Browse Source

分析报告接口联调

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 8 months ago
parent
commit
dd50fc3a78

+ 17 - 3
.env.development

@@ -8,17 +8,31 @@ VUE_APP_TITLE = '页面标题'
 
 # 登录
 # VUE_APP_LOGIN_URL = 'http://123.60.219.66:48080'
-VUE_APP_LOGIN_URL = 'http://192.168.2.143:48080'
+# 马力军
+# VUE_APP_LOGIN_URL = 'http://192.168.2.45:48080'
+# 王波
+VUE_APP_LOGIN_URL = 'http://192.168.2.232:48080'
 
 # 发电能力分析
 # VUE_APP_GENERAT_URL = 'http://123.60.219.66:9002'
+# 马力军
+# VUE_APP_GENERAT_URL = 'http://192.168.2.45:9002'
+# 王波
 VUE_APP_GENERAT_URL = 'http://192.168.2.232:9002'
+
 # 智能报表
 # VUE_APP_REPORT_URL = 'http://123.60.219.66:9001'
-VUE_APP_REPORT_URL = 'http://192.168.2.143:9001'
+# 马力军
+# VUE_APP_REPORT_URL = 'http://192.168.2.45:9001'
+# 王波
+VUE_APP_REPORT_URL = 'http://192.168.2.232:9001'
+
 # 功率预测
 # VUE_APP_BASE_URL = 'http://123.60.219.66:8086'
-VUE_APP_BASE_URL = 'http://192.168.2.143:8086'
+# 马力军
+# VUE_APP_BASE_URL = 'http://192.168.2.45:8086'
+# 王波
+VUE_APP_BASE_URL = 'http://192.168.2.232:8086'
 
 # 百度地图KEY
 VUE_APP_BAIDU_MAP_KEY = ''

+ 0 - 20
.env.production

@@ -13,13 +13,8 @@ VUE_APP_TITLE = '页面标题'
 
 # 登录
 # VUE_APP_LOGIN_URL = 'http://123.60.219.66:48080'
-<<<<<<< HEAD
-# VUE_APP_LOGIN_URL = 'http://10.127.7.196:48080'
-VUE_APP_LOGIN_URL = 'http://172.16.12.101:48080'
-=======
 VUE_APP_LOGIN_URL = 'http://10.127.7.241:48080'
 # VUE_APP_LOGIN_URL = 'http://172.16.12.101:48080'
->>>>>>> d7aaee0a7192239bdf3789d9b53cdce868e3f1d1
 # VUE_APP_LOGIN_URL = 'http://192.168.2.231:48080'
 # VUE_APP_LOGIN_URL = 'http://127.0.0.1:48080'
 
@@ -27,37 +22,22 @@ VUE_APP_LOGIN_URL = 'http://10.127.7.241:48080'
 
 # 发电能力分析
 # VUE_APP_GENERAT_URL = 'http://123.60.219.66:9002'
-<<<<<<< HEAD
-# VUE_APP_GENERAT_URL = 'http://10.127.7.196:9002'
-VUE_APP_GENERAT_URL = 'http://172.16.12.101:9002'
-=======
 VUE_APP_GENERAT_URL = 'http://10.127.7.241:9002'
 # VUE_APP_GENERAT_URL = 'http://172.16.12.101:9002'
->>>>>>> d7aaee0a7192239bdf3789d9b53cdce868e3f1d1
 # VUE_APP_GENERAT_URL = 'http://192.168.2.231:9002'
 # VUE_APP_GENERAT_URL = 'http://127.0.0.1:9002'
 
 # 智能报表
 # VUE_APP_REPORT_URL = 'http://123.60.219.66:9001'
-<<<<<<< HEAD
-# VUE_APP_REPORT_URL = 'http://10.127.7.196:9001'
-VUE_APP_REPORT_URL = 'http://172.16.12.101:9001'
-=======
 VUE_APP_REPORT_URL = 'http://10.127.7.241:9001'
 # VUE_APP_REPORT_URL = 'http://172.16.12.101:9001'
->>>>>>> d7aaee0a7192239bdf3789d9b53cdce868e3f1d1
 # VUE_APP_REPORT_URL = 'http://192.168.2.231:9001'
 # VUE_APP_REPORT_URL = 'http://127.0.0.1:9001'
 
 # 功率预测
 # VUE_APP_BASE_URL = 'http://123.60.219.66:8086'
-<<<<<<< HEAD
-# VUE_APP_BASE_URL = 'http://10.127.7.196:8086'
-VUE_APP_BASE_URL = 'http://172.16.12.101:8086'
-=======
 VUE_APP_BASE_URL = 'http://10.127.7.241:8086'
 # VUE_APP_BASE_URL = 'http://172.16.12.101:8086'
->>>>>>> d7aaee0a7192239bdf3789d9b53cdce868e3f1d1
 # VUE_APP_BASE_URL = 'http://192.168.2.231:8086'
 # VUE_APP_BASE_URL = 'http://127.0.0.1:8086'
 

+ 397 - 364
src/components/generatingCapacityComponent/tree.vue

@@ -1,396 +1,429 @@
 <template>
-    <div class="treeData" :style="{'height': height}">
-        <div class="treeSeach">
-            <el-input v-model="filterText" style="height: 30px" placeholder="输入关键字过滤" :suffix-icon="Search" />
-            <div class="treeShuax" @click="refreshFn">
-                <img :src="tree_shuaxing">
-            </div>
-        </div>
-        <div class="treeMain">
-            <div class="treeMainTit">
-                <span>数据</span>
-            </div>
-            <!-- <div v-for="node in data" :key="node.id" class="treeMainMsg">
+  <div class="treeData" :style="{ height: height }">
+    <div class="treeSeach">
+      <el-input
+        v-model="filterText"
+        style="height: 30px"
+        placeholder="输入关键字过滤"
+        :suffix-icon="Search"
+      />
+      <div class="treeShuax" @click="refreshFn">
+        <img :src="tree_shuaxing" />
+      </div>
+    </div>
+    <div class="treeMain">
+      <div class="treeMainTit">
+        <span>数据</span>
+      </div>
+      <!-- <div v-for="node in data" :key="node.id" class="treeMainMsg">
                 <span>{{node.label}}</span>
                 <tree-node :node="node.children" :data="data" :show-checkbox="showCheckbox"
                     :dropdownMenu="dropdownMenu">
                 </tree-node>
             </div> -->
-            <el-tree :data="data" :props="defaultProps" default-expand-all highlight-current icon="none"
-                :filter-node-method="filterNode" ref="tree" @node-click="funCurrentChange" :show-checkbox="showCheckbox"
-                @check="funCheckChange" node-key="id" :expand-on-click-node="false" :current-node-key="''"
-                :class="showCheckbox?'elTreeSty':''">
-                <template #default="{ node, data }">
-                    <div class="dashedSty">
-                        <span class="hasMore_shu"
-                            :style="node.id !== node.parent.childNodes[node.parent.childNodes.length-1].id ? 'height: 30px' : 'height: 18px'"
-                            :styel="shuFn(node, data)"></span>
-                        <span class="hasMore_heng"></span>
-                    </div>
-
-                    <el-dropdown ref="dropdown1" size="small" trigger="contextmenu" @command="funCommand"
-                        :class="!node.expanded || (node.isLeaf && !node.isCurrent) ? '' : 'eldropdownCla'">
+      <el-tree
+        :data="data"
+        :props="defaultProps"
+        default-expand-all
+        highlight-current
+        icon="none"
+        :filter-node-method="filterNode"
+        ref="tree"
+        @node-click="funCurrentChange"
+        :show-checkbox="showCheckbox"
+        @check="funCheckChange"
+        node-key="id"
+        :expand-on-click-node="false"
+        :current-node-key="''"
+        :class="showCheckbox ? 'elTreeSty' : ''"
+      >
+        <template #default="{ node, data }">
+          <div class="dashedSty">
+            <span
+              class="hasMore_shu"
+              :style="
+                node.id !==
+                node.parent.childNodes[node.parent.childNodes.length - 1].id
+                  ? 'height: 30px'
+                  : 'height: 18px'
+              "
+              :styel="shuFn(node, data)"
+            ></span>
+            <span class="hasMore_heng"></span>
+          </div>
 
-                        <span class="el-dropdown-link" :class="node.isCurrent ? 'changenodeLabel' : 'nodeLabel'">
-                            {{ node.label }}
-                        </span>
-                        <span>{{ node.label }}</span>
-                        <template #dropdown>
-                            <el-dropdown-menu>
-                                <el-dropdown-item class="text-[#409EFF]" v-if="dropdownMenu.includes('save')"
-                                    :command="{ type: 'save', data, node }">保存</el-dropdown-item>
-                                <el-dropdown-item class="text-[#409EFF]"
-                                    v-if="data.childs && data.childs.length && dropdownMenu.includes('export')"
-                                    :command="{ type: 'export', data, node }">导出
-                                </el-dropdown-item>
-                                <el-dropdown-item class="text-[#F56C6C]" v-if="dropdownMenu.includes('delete')"
-                                    :command="{ type: 'delete', data, node }">删除</el-dropdown-item>
-                            </el-dropdown-menu>
-                        </template>
-                    </el-dropdown>
-                </template>
-                <template #empty>
-                    <div class="nodata">
-                        <img :src="nodata" alt="">
-                        <p class="nodataText">暂无数据,敬请期待</p>
-                    </div>
-                </template>
-            </el-tree>
-        </div>
+          <el-dropdown
+            ref="dropdown1"
+            size="small"
+            trigger="contextmenu"
+            @command="funCommand"
+            :class="
+              !node.expanded || (node.isLeaf && !node.isCurrent)
+                ? ''
+                : 'eldropdownCla'
+            "
+          >
+            <span
+              class="el-dropdown-link"
+              :class="node.isCurrent ? 'changenodeLabel' : 'nodeLabel'"
+            >
+              {{ node.label }}
+            </span>
+            <span>{{ node.label }}</span>
+            <template #dropdown>
+              <el-dropdown-menu>
+                <el-dropdown-item
+                  class="text-[#409EFF]"
+                  v-if="dropdownMenu.includes('save')"
+                  :command="{ type: 'save', data, node }"
+                  >保存</el-dropdown-item
+                >
+                <el-dropdown-item
+                  class="text-[#409EFF]"
+                  v-if="
+                    data.childs &&
+                    data.childs.length &&
+                    dropdownMenu.includes('export')
+                  "
+                  :command="{ type: 'export', data, node }"
+                  >导出
+                </el-dropdown-item>
+                <el-dropdown-item
+                  class="text-[#F56C6C]"
+                  v-if="dropdownMenu.includes('delete')"
+                  :command="{ type: 'delete', data, node }"
+                  >删除</el-dropdown-item
+                >
+              </el-dropdown-menu>
+            </template>
+          </el-dropdown>
+        </template>
+        <template #empty>
+          <div class="nodata">
+            <img :src="nodata" alt="" />
+            <p class="nodataText">暂无数据,敬请期待</p>
+          </div>
+        </template>
+      </el-tree>
     </div>
+  </div>
 </template>
 <script>
-    import httpRequest from '@/utils/request.js'
-    import tree_shuaxing from '@/assets/menuImg/tree_shuaxing.png'
-    import nodata from '@/assets/images/noData.png'
-    import TreeNode from './treeStyle.vue'
-    import treeJson from './treeJson.json'
-    import {
-        Search
-    } from '@element-plus/icons-vue'
-    import {
-        saveAs
-    } from 'file-saver'
-    import {
-        apiGetExportMsg
-    } from '@/api/gengra'
-    import {
-        DebugCameraPrimitive
-    } from 'cesium'
-    export default {
-        components: {
-            TreeNode
-        },
-        props: {
-            data: {
-                type: Array,
-                default: () => {
-                    return [];
-                },
-            },
-            height: {
-                type: String,
-                default: () => {
-                    return '';
-                },
-            },
-            type: {
-                type: String,
-                default: () => {
-                    return 'wind';
-                },
-            },
-            dropdownMenu: {
-                type: Array,
-                default: () => {
-                    return ['export',
-                        'delete',
-                    ];
-                },
-            },
-            showCheckbox: {
-                type: Boolean,
-                default: () => {
-                    return false;
-                },
-            },
-        },
-        data() {
-            return {
-                // treeJson: treeJson,
-                treeJsonArr: [],
-                filterText: '',
-                Search: Search,
-                nodata: nodata,
-                tree_shuaxing: tree_shuaxing,
-                defaultProps: {
-                    children: 'children',
-                    label: 'label'
-                },
-            }
-        },
-        watch: {
-            filterText(val) {
-                this.$refs.tree.filter(val);
-            }
-        },
-        mounted() {
-            // this.treeJsonFn()
-        },
-        methods: {
-            treeJsonFn() {
-                this.treeJsonArr = this.funRepeatMap(this.treeJson.data)
-            },
-            funRepeatMap(arr, type = 'prepare') {
-                return arr.map(o => {
-                    if (o.children) {
-                        const findIndex = o.children.findIndex(p => !!p.type)
-                        if (findIndex !== -1) {
-                            o.childs = o.children
-                            o.children = []
-                        }
-                    }
-                    return {
-                        ...o,
-                        children: o.children ? this.funRepeatMap(o.children, type) : []
-                    }
-                })
-            },
-            shuFn(node, data) {
-                // debugger
-            },
-            filterNode(value, data) {
-                if (!value) return true;
-                return data.label.indexOf(value) !== -1;
-            },
-            refreshFn() {
-                this.$emit("refresh")
-            },
-            funCurrentChange(current, currentNode) {
-                this.$emit("currentChange", {
-                    current,
-                    currentNode
-                })
-            },
-            async funCommand({
-                type,
-                data,
-                node
-            }) {
-                switch (type) {
-                    case 'save':
-                        /**该保存功能目前暂用于风电场, combine页 */
-                        if (this.type !== 'wind') {
-                            return false
-                        }
-                        ElMessageBox.confirm("确认保存当前节点的拟合功率?", "保存", {
-                            confirmButtonText: "确认",
-                            cancelButtonText: "取消",
-                            type: "warning",
-                        }).then(async () => {
-                            let saveArr = [];
-                            const repeatArr = (arr, saveArr) => {
-                                for (const unit of arr) {
-                                    if (unit.childs.length) {
-                                        saveArr.push(...unit.childs.map((o) => o.id));
-                                    } else if (unit.children.length) {
-                                        repeatArr(unit.children, saveArr);
-                                    }
-                                }
-                            };
-                            if (data.childs.length) {
-                                saveArr = data.childs.map((o) => o.id);
-                            } else if (data.children.length) {
-                                repeatArr(data.children, saveArr);
-                            }
-                            let res = {
-                                code: 500
-                            }
-                            res = await httpRequest.get("/power/fitting/curve/save", {
-                                params: {
-                                    ids: saveArr.join(",")
-                                },
-                            }); //删除当前节点
-
-                            if (res.code === 200) {
-                                ElMessage.success(res.msg);
-                            }
-                        });
-                        break;
-                    case "export":
-                        ElMessageBox.confirm("确认导出当前节点的所有数据?", "导出", {
-                            confirmButtonText: "确认",
-                            cancelButtonText: "取消",
-                            type: "warning",
-                        }).then(() => {
-                            const a = document.createElement("a");
-                            let childs = []
-                            childs = this.type === 'wind' ? data.childs.map((o) => o.id) : data.childs.map(
-                                (o) => o.path)
-                            const url = this.type === 'wind' ? '/data/option/download?ids=' :
-                                '/export/files?filename='
-                            a.href =
-                                // config.baseURL + url + childs.join(",");
-                                process.env.VUE_APP_GENERAT_URL + url + childs.join(",");
-                            a.download = "";
-                            a.target = '_blank'
-                            a.click();
-
-                            // let that = this
-                            // let childs = []
-                            // childs = this.type === 'wind' ? data.childs.map((o) => o.id) : data.childs.map(
-                            //     (o) => o.path)
-                            // let params = {
-                            //     ids: childs.join(",")
-                            // }
-                            // apiGetExportMsg(params).then(datas => {
-                            //     let blob = new Blob([datas], {
-                            //         type: `application/vnd.ms-excel;charset=utf-8`
-                            //     })
-                            //     saveAs(blob)
-                            // }).catch((r) => {
-                            //     console.error(r)
-                            // })
-                        });
-                        break;
-                    case "delete":
-                        ElMessageBox.confirm("确认删除当前节点的所有数据?", "删除", {
-                            confirmButtonText: "确认",
-                            cancelButtonText: "取消",
-                            type: "warning",
-                        }).then(async () => {
-                            let deleteArr = [];
-                            const repeatArr = (arr, deleteArr) => {
-                                for (const unit of arr) {
-                                    if (unit.childs.length) {
-                                        deleteArr.push(...unit.childs.map((o) => this.type ===
-                                            'wind' ? o.id : o.path));
-                                    } else if (unit.children.length) {
-                                        repeatArr(unit.children, deleteArr);
-                                    }
-                                }
-                            };
-                            if (data.childs.length) {
-                                deleteArr = data.childs.map((o) => this.type === 'wind' ? o.id : o
-                                    .path);
-                            } else if (data.children.length) {
-                                repeatArr(data.children, deleteArr);
-                            }
-                            let res = {
-                                code: 500
-                            }
-                            if (this.type === 'wind') {
-                                res = await httpRequest.get("/data/option/delete", {
-                                    params: {
-                                        ids: deleteArr.join(",")
-                                    },
-                                }); //删除当前节点
-                            } else {
-                                res = await httpRequest.delete("/delete/files", {
-                                    data: {
-                                        filename: deleteArr.join(",")
-                                    },
-                                }); //删除当前节点
-                            }
-                            if (res.code === 200) {
-                                ElMessage.success(res.msg);
-                                this.$emit("refresh");
-                            }
-                        });
-
-                        break;
+import httpRequest from "@/utils/request.js";
+import tree_shuaxing from "@/assets/menuImg/tree_shuaxing.png";
+import nodata from "@/assets/images/noData.png";
+import TreeNode from "./treeStyle.vue";
+import treeJson from "./treeJson.json";
+import { Search } from "@element-plus/icons-vue";
+import { saveAs } from "file-saver";
+import { apiGetExportMsg } from "@/api/gengra";
+import { DebugCameraPrimitive } from "cesium";
+export default {
+  components: {
+    TreeNode,
+  },
+  props: {
+    data: {
+      type: Array,
+      default: () => {
+        return [];
+      },
+    },
+    height: {
+      type: String,
+      default: () => {
+        return "";
+      },
+    },
+    type: {
+      type: String,
+      default: () => {
+        return "wind";
+      },
+    },
+    dropdownMenu: {
+      type: Array,
+      default: () => {
+        return ["export", "delete"];
+      },
+    },
+    showCheckbox: {
+      type: Boolean,
+      default: () => {
+        return false;
+      },
+    },
+  },
+  data() {
+    return {
+      // treeJson: treeJson,
+      treeJsonArr: [],
+      filterText: "",
+      Search: Search,
+      nodata: nodata,
+      tree_shuaxing: tree_shuaxing,
+      defaultProps: {
+        children: "children",
+        label: "label",
+      },
+    };
+  },
+  watch: {
+    filterText(val) {
+      this.$refs.tree.filter(val);
+    },
+  },
+  mounted() {
+    // this.treeJsonFn()
+  },
+  methods: {
+    treeJsonFn() {
+      this.treeJsonArr = this.funRepeatMap(this.treeJson.data);
+    },
+    funRepeatMap(arr, type = "prepare") {
+      return arr.map((o) => {
+        if (o.children) {
+          const findIndex = o.children.findIndex((p) => !!p.type);
+          if (findIndex !== -1) {
+            o.childs = o.children;
+            o.children = [];
+          }
+        }
+        return {
+          ...o,
+          children: o.children ? this.funRepeatMap(o.children, type) : [],
+        };
+      });
+    },
+    shuFn(node, data) {
+      // debugger
+    },
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.label.indexOf(value) !== -1;
+    },
+    refreshFn() {
+      this.$emit("refresh");
+    },
+    funCurrentChange(current, currentNode) {
+      this.$emit("currentChange", {
+        current,
+        currentNode,
+      });
+    },
+    async funCommand({ type, data, node }) {
+      switch (type) {
+        case "save":
+          /**该保存功能目前暂用于风电场, combine页 */
+          if (this.type !== "wind") {
+            return false;
+          }
+          ElMessageBox.confirm("确认保存当前节点的拟合功率?", "保存", {
+            confirmButtonText: "确认",
+            cancelButtonText: "取消",
+            type: "warning",
+          }).then(async () => {
+            let saveArr = [];
+            const repeatArr = (arr, saveArr) => {
+              for (const unit of arr) {
+                if (unit.childs.length) {
+                  saveArr.push(...unit.childs.map((o) => o.id));
+                } else if (unit.children.length) {
+                  repeatArr(unit.children, saveArr);
                 }
-            },
-            funCheckChange(current, checkedNodes) {
-                this.$emit("checkChange", {
-                    current,
-                    checkedNodes
-                })
+              }
+            };
+            if (data.childs.length) {
+              saveArr = data.childs.map((o) => o.id);
+            } else if (data.children.length) {
+              repeatArr(data.children, saveArr);
             }
-        },
-    }
-</script>
-<style lang="less">
-    .treeData {
-        overflow-y: auto;
-
-        .treeSeach {
-            width: 100%;
-            display: flex;
-            margin-bottom: 5px;
-
-            .treeShuax {
-                cursor: pointer;
-                margin-left: 5px;
-                height: 30px;
-                width: 30px;
-                background: #5473E8;
-                border-radius: 2px;
-                text-align: center;
+            let res = {
+              code: 500,
+            };
+            res = await httpRequest.get("/power/fitting/curve/save", {
+              params: {
+                ids: saveArr.join(","),
+              },
+            }); //删除当前节点
 
-                img {
-                    width: 25px;
-                    height: 25px;
+            if (res.code === 200) {
+              ElMessage.success(res.msg);
+            }
+          });
+          break;
+        case "export":
+          ElMessageBox.confirm("确认导出当前节点的所有数据?", "导出", {
+            confirmButtonText: "确认",
+            cancelButtonText: "取消",
+            type: "warning",
+          }).then(() => {
+            const a = document.createElement("a");
+            let childs = [];
+            childs =
+              this.type === "wind"
+                ? data.childs.map((o) => o.id)
+                : data.childs.map((o) => o.path);
+            const url =
+              this.type === "wind"
+                ? "/data/option/download?ids="
+                : "/export/files?filename=";
+            a.href =
+              // config.baseURL + url + childs.join(",");
+              process.env.VUE_APP_GENERAT_URL + url + childs.join(",");
+            a.download = "";
+            a.target = "_blank";
+            a.click();
 
-                    position: relative;
-                    top: 2px;
-                    left: -1px;
+            // let that = this
+            // let childs = []
+            // childs = this.type === 'wind' ? data.childs.map((o) => o.id) : data.childs.map(
+            //     (o) => o.path)
+            // let params = {
+            //     ids: childs.join(",")
+            // }
+            // apiGetExportMsg(params).then(datas => {
+            //     let blob = new Blob([datas], {
+            //         type: `application/vnd.ms-excel;charset=utf-8`
+            //     })
+            //     saveAs(blob)
+            // }).catch((r) => {
+            //     console.error(r)
+            // })
+          });
+          break;
+        case "delete":
+          ElMessageBox.confirm("确认删除当前节点的所有数据?", "删除", {
+            confirmButtonText: "确认",
+            cancelButtonText: "取消",
+            type: "warning",
+          }).then(async () => {
+            let deleteArr = [];
+            const repeatArr = (arr, deleteArr) => {
+              for (const unit of arr) {
+                if (unit.childs.length) {
+                  deleteArr.push(
+                    ...unit.childs.map((o) =>
+                      this.type === "wind" ? o.id : o.path
+                    )
+                  );
+                } else if (unit.children.length) {
+                  repeatArr(unit.children, deleteArr);
                 }
+              }
+            };
+            if (data.childs.length) {
+              deleteArr = data.childs.map((o) =>
+                this.type === "wind" ? o.id : o.path
+              );
+            } else if (data.children.length) {
+              repeatArr(data.children, deleteArr);
             }
-
-        }
-
-        .treeMain {
-
-            .treeMainTit {
-                width: calc(100% - 10px);
-                height: 22px;
-                background: #1E3F9A;
-                color: #fff;
-                font-size: 12px;
-                padding: 8px 0 0 10px;
+            let res = {
+              code: 500,
+            };
+            if (this.type === "wind") {
+              res = await httpRequest.get("/data/option/delete", {
+                params: {
+                  ids: deleteArr.join(","),
+                },
+              }); //删除当前节点
+            } else {
+              res = await httpRequest.delete("/delete/files", {
+                data: {
+                  filename: deleteArr.join(","),
+                },
+              }); //删除当前节点
             }
-
-            .treeMainMsg {
-                span {
-                    font-family: Microsoft YaHei;
-                    font-weight: 400;
-                    font-size: 14px;
-                    color: #121212;
-                    line-height: 30px;
-                }
+            if (res.code === 200) {
+              ElMessage.success(res.msg);
+              this.$emit("refresh");
             }
+          });
 
+          break;
+      }
+    },
+    funCheckChange(current, checkedNodes) {
+      this.$emit("checkChange", {
+        current,
+        checkedNodes,
+      });
+    },
+  },
+};
+</script>
+<style lang="less">
+.treeData {
+  overflow-y: auto;
 
+  .treeSeach {
+    width: 100%;
+    display: flex;
+    margin-bottom: 5px;
 
-            .el-tree {
-                background: transparent;
-                color: #fff;
-                height: 100%;
-
-                .is-current {
-                    width: 100%;
-                    background: none !important;
-                }
+    .treeShuax {
+      cursor: pointer;
+      margin-left: 5px;
+      height: 30px;
+      width: 30px;
+      background: #5473e8;
+      border-radius: 2px;
+      text-align: center;
 
+      img {
+        width: 25px;
+        height: 25px;
 
+        position: relative;
+        top: 2px;
+        left: -1px;
+      }
+    }
+  }
 
-                .el-tree__empty-block {
-                    img {
-                        margin-top: 20px;
-                    }
+  .treeMain {
+    .treeMainTit {
+      width: calc(100% - 10px);
+      height: 22px;
+      background: #1e3f9a;
+      color: #fff;
+      font-size: 12px;
+      padding: 8px 0 0 10px;
+    }
 
-                    .nodataText {
-                        line-height: 50px;
-                        font-size: 14px;
-                        color: #8C8E91;
-                    }
-                }
+    .treeMainMsg {
+      span {
+        font-family: Microsoft YaHei;
+        font-weight: 400;
+        font-size: 14px;
+        color: #121212;
+        line-height: 30px;
+      }
+    }
 
-            }
+    .el-tree {
+      background: transparent;
+      color: #fff;
+      height: 100%;
 
+      .is-current {
+        width: 100%;
+        background: none !important;
+      }
 
+      .el-tree__empty-block {
+        img {
+          margin-top: 20px;
         }
 
+        .nodataText {
+          line-height: 50px;
+          font-size: 14px;
+          color: #8c8e91;
+        }
+      }
     }
+  }
+}
 </style>

+ 417 - 401
src/views/generatingCapacity/dataFilter/process/index.vue

@@ -1,426 +1,442 @@
 <template>
-    <div class="dataFileProcess" :class="!theme ? 'themeDark' : 'themeLight'">
-        <div class="dataFileProcessMain">
-            <div class="main_top">
-                <p class="topPsty">风电数据处理</p>
-                <search-cop @submit="funSubmit">
-                </search-cop>
-            </div>
-            <div class="main">
-                <div class="treeDataMain">
-                    <tree-cop :data="treeData" :height="treeHeight" :show-checkbox="true"
-                        @currentChange="funCurrentChange" @refresh="funGetTree" @checkChange="funTreeCheckChange">
-                    </tree-cop>
-                    <tree-cop :data="processTreeData" :height="treeHeight" @currentChange="funProcessCurrentChange"
-                        @refresh="funGetProcessTree">
-                    </tree-cop>
-                </div>
-                <div class="excelDataMain">
-                    <excel-cop :data="excelList" :showCheckbox="excelCheckboxShow" :height="excelHeight" :theme="theme"
-                        @excelChange="funExcelChange" @checkChange="funExcelCheckChange" :checkIds="excelCheckIds">
-                    </excel-cop>
-                </div>
-                <div class="tableDataMain">
-                    <table-cop class="" :data="tableData" :column="tableColumn" :loading="tableLoading" :theme="theme"
-                        :height="tableHeight" :tableId="tableShowId" :tableName="tableName" @export="funExport">
-                    </table-cop>
-                </div>
-            </div>
+  <div class="dataFileProcess" :class="!theme ? 'themeDark' : 'themeLight'">
+    <div class="dataFileProcessMain">
+      <div class="main_top">
+        <p class="topPsty">风电数据处理</p>
+        <search-cop @submit="funSubmit"> </search-cop>
+      </div>
+      <div class="main">
+        <div class="treeDataMain">
+          <tree-cop
+            :data="treeData"
+            :height="treeHeight"
+            :show-checkbox="true"
+            @currentChange="funCurrentChange"
+            @refresh="funGetTree"
+            @checkChange="funTreeCheckChange"
+          >
+          </tree-cop>
+          <tree-cop
+            :data="processTreeData"
+            :height="treeHeight"
+            @currentChange="
+              (treeItem) => {
+                funProcessCurrentChange(treeItem, true);
+              }
+            "
+            @refresh="funGetProcessTree"
+          >
+          </tree-cop>
         </div>
+        <div class="excelDataMain">
+          <excel-cop
+            :data="excelList"
+            :showCheckbox="excelCheckboxShow"
+            :height="excelHeight"
+            :theme="theme"
+            @excelChange="funExcelChange"
+            @checkChange="funExcelCheckChange"
+            :checkIds="excelCheckIds"
+          >
+          </excel-cop>
+        </div>
+        <div class="tableDataMain">
+          <table-cop
+            class=""
+            :data="tableData"
+            :column="tableColumn"
+            :loading="tableLoading"
+            :theme="theme"
+            :height="tableHeight"
+            :tableId="tableShowId"
+            :tableName="tableName"
+            @export="funExport"
+          >
+          </table-cop>
+        </div>
+      </div>
     </div>
+  </div>
 </template>
 <script setup name="prepare">
-    import searchCop from './search.vue'
-    import excelCop from '@/components/generatingCapacityComponent/excel.vue'
-    import treeCop from '@/components/generatingCapacityComponent/tree.vue'
-    import tableCop from '@/components/generatingCapacityComponent/table.vue'
-    import {
-        ref,
-        onActivated,
-        onMounted,
-        watch
-    } from 'vue'
-    import {
-        useStore
-    } from 'vuex';
-    import httpRequest from '@/utils/request.js'
-    // import {
-    //     baseURL
-    // } from '@/api/axios.js'
-    import {
-        ElMessage
-    } from 'element-plus'
-    /**配置参数 */
-    const treeHeight = ref((window.innerHeight - 120) / 2 + 'px') //tree高度
-    const excelHeight = ref(window.innerHeight - 116 + 'px') //excel高度
-    const tableHeight = ref(window.innerHeight - 116 + 'px')
-    /**excel 开始 */
-    const excelCheckboxShow = ref(false)
-    const excelCheckIds = ref([])
-    const excelList = ref([])
-    const funExcelChange = async (obj) => { //点击excel项时
-        tableShowId.value = obj.id
-        tableName.value = obj.name
-        let res = null
-        tableLoading.value = true
-        if (obj.type === 'prepare') {
-            res = await httpRequest.get('/power/prepare/show', {
-                params: {
-                    id: obj.id
-                }
-            })
-        } else if (obj.type === 'process') {
-            res = await httpRequest.get('/power/process/show', {
-                params: {
-                    id: obj.id
-                }
-            })
-        }
-        if (res.code === 200) {
-            tableColumn.value = res.data.title.map(o => {
-                return {
-                    prop: o.key,
-                    label: o.des,
-                    width: o.des === '时间' ? 100 : 70,
-                }
-            })
-            tableData.value = res.data.data
-            tableLoading.value = false
-        } else {
-            tableLoading.value = false
-        }
-    }
-    const funExcelCheckChange = ({
-        checkArr,
-        data
-    }) => { //bug 
-        excelCheckIds.value = checkArr
-    }
-    /**prepare tree 开始 */
-    const treeData = ref([])
-    const funRepeatMap = (arr, type = 'prepare') => {
-        return arr.map(o => {
-            if (o.children) {
-                const findIndex = o.children.findIndex(p => !!p.type)
-                if (findIndex !== -1) {
-                    o.childs = o.children
-                    o.children = []
-                    if (!actTreeNode.value && type === 'fitting') { //判断当且仅有process获取tree时 赋值
-                        actTreeNode.value = o
-                    }
-                }
-            }
-            return {
-                ...o,
-                children: o.children ? funRepeatMap(o.children, type) : []
-            }
-        })
-    }
-    const funGetTree = async () => {
-        const res = await httpRequest.get("/power/prepare/tree")
-        treeData.value = funRepeatMap(res.data)
-        excelList.value = []
-    }
-    const funCurrentChange = ({
-        current,
-        currentNode
-    }) => {
-        excelCheckboxShow.value = true
-        if (current.childs) {
-            excelList.value = current.childs.map(o => {
-                return {
-                    id: o.id,
-                    interval: o.interval,
-                    path: o.path,
-                    prepareid: o.prepareid,
-                    station: o.station,
-                    time: o.time,
-                    type: o.type,
-                    windturbine: o.windturbine,
-                    name: o.path.substring(o.path.indexOf(o.station + '_') + (o.station + '_').length)
-                }
-            })
-
-        } else {
-            excelList.value = []
+import searchCop from "./search.vue";
+import excelCop from "@/components/generatingCapacityComponent/excel.vue";
+import treeCop from "@/components/generatingCapacityComponent/tree.vue";
+import tableCop from "@/components/generatingCapacityComponent/table.vue";
+import { ref, onActivated, onMounted, watch } from "vue";
+import { useStore } from "vuex";
+import httpRequest from "@/utils/request.js";
+// import {
+//     baseURL
+// } from '@/api/axios.js'
+import { ElMessage } from "element-plus";
+/**配置参数 */
+const treeHeight = ref((window.innerHeight - 120) / 2 + "px"); //tree高度
+const excelHeight = ref(window.innerHeight - 116 + "px"); //excel高度
+const tableHeight = ref(window.innerHeight - 116 + "px");
+/**excel 开始 */
+const excelCheckboxShow = ref(false);
+const excelCheckIds = ref([]);
+const excelList = ref([]);
+const funExcelChange = async (obj) => {
+  //点击excel项时
+  tableShowId.value = obj.id;
+  tableName.value = obj.name;
+  let res = null;
+  tableLoading.value = true;
+  if (obj.type === "prepare") {
+    res = await httpRequest.get("/power/prepare/show", {
+      params: {
+        id: obj.id,
+      },
+    });
+  } else if (obj.type === "process") {
+    res = await httpRequest.get("/power/process/show", {
+      params: {
+        id: obj.id,
+      },
+    });
+  }
+  if (res.code === 200) {
+    tableColumn.value = res.data.title.map((o) => {
+      return {
+        prop: o.key,
+        label: o.des,
+        width: o.des === "时间" ? 100 : 70,
+      };
+    });
+    tableData.value = res.data.data;
+    tableLoading.value = false;
+  } else {
+    tableLoading.value = false;
+  }
+};
+const funExcelCheckChange = ({ checkArr, data }) => {
+  //bug
+  excelCheckIds.value = checkArr;
+};
+/**prepare tree 开始 */
+const treeData = ref([]);
+const funRepeatMap = (arr, type = "prepare") => {
+  return arr.map((o) => {
+    if (o.children) {
+      const findIndex = o.children.findIndex((p) => !!p.type);
+      if (findIndex !== -1) {
+        o.childs = o.children;
+        o.children = [];
+        if (!actTreeNode.value && type === "fitting") {
+          //判断当且仅有process获取tree时 赋值
+          actTreeNode.value = o;
         }
+      }
     }
-    const funTreeCheckChange = ({
-        current,
-        checkedNodes,
-        checkedKeys,
-        halfCheckedNodes,
-        halfCheckedKeys
-    }) => { //tree change  -> excel change
-        funCurrentChange({
-            current,
-            currentNode: ''
-        })
-        const checkIds = []
-        if (checkedNodes.checkedNodes.length) {
-            let checkArr = checkedNodes.checkedNodes
-            checkArr.forEach(it => {
-                if (it.childs && it.childs.length) {
-                    it.childs.forEach(iv => {
-                        checkIds.push(iv.id)
-                    })
-                }
-            })
-        }
-        // if (checkedNodes) {
-        //     let checkArr = [checkedNodes]
-        //     checkArr.forEach(it => {
-        //         if (it.childs && it.childs.length) {
-        //             it.childs.forEach(iv => {
-        //                 checkIds.push(iv.id)
-        //             })
-        //         }
-        //     })
-        // }
-        excelCheckIds.value = checkIds
+    return {
+      ...o,
+      children: o.children ? funRepeatMap(o.children, type) : [],
+    };
+  });
+};
+const funGetTree = async () => {
+  const res = await httpRequest.get("/power/prepare/tree");
+  treeData.value = funRepeatMap(res.data);
+  excelList.value = [];
+};
+const funCurrentChange = ({ current, currentNode }) => {
+  excelCheckboxShow.value = true;
+  if (current.childs) {
+    excelList.value = current.childs.map((o) => {
+      return {
+        id: o.id,
+        interval: o.interval,
+        path: o.path,
+        prepareid: o.prepareid,
+        station: o.station,
+        time: o.time,
+        type: o.type,
+        windturbine: o.windturbine,
+        name: o.path.substring(
+          o.path.indexOf(o.station + "_") + (o.station + "_").length
+        ),
+      };
+    });
+  } else {
+    excelList.value = [];
+  }
+};
+const funTreeCheckChange = ({
+  current,
+  checkedNodes,
+  checkedKeys,
+  halfCheckedNodes,
+  halfCheckedKeys,
+}) => {
+  //tree change  -> excel change
+  funCurrentChange({
+    current,
+    currentNode: "",
+  });
+  const checkIds = [];
+  if (checkedNodes.checkedNodes.length) {
+    let checkArr = checkedNodes.checkedNodes;
+    checkArr.forEach((it) => {
+      if (it.childs && it.childs.length) {
+        it.childs.forEach((iv) => {
+          checkIds.push(iv.id);
+        });
+      }
+    });
+  }
+  // if (checkedNodes) {
+  //     let checkArr = [checkedNodes]
+  //     checkArr.forEach(it => {
+  //         if (it.childs && it.childs.length) {
+  //             it.childs.forEach(iv => {
+  //                 checkIds.push(iv.id)
+  //             })
+  //         }
+  //     })
+  // }
+  excelCheckIds.value = checkIds;
+};
+
+/**process tree 开始 */
+const processTreeData = ref([]);
+const actTreeNode = ref(null);
+const funGetProcessTree = async () => {
+  actTreeNode.value = null;
+  const res = await httpRequest.get("/power/process/tree");
+  processTreeData.value = funRepeatMap(res.data, "fitting");
+  excelList.value = [];
+  if (actTreeNode.value) {
+    funProcessCurrentChange({
+      current: actTreeNode.value,
+      currentNode: null,
+    });
+    const child = actTreeNode.value.childs[0];
+    const obj = {
+      id: child.id,
+      interval: child.interval,
+      path: child.path,
+      prepareid: child.prepareid,
+      station: child.station,
+      time: child.time,
+      type: child.type,
+      windturbine: child.windturbine,
+      name: child.path.substring(
+        child.path.indexOf(child.station + "_") + (child.station + "_").length
+      ),
+    };
+    funExcelChange(obj);
+  }
+};
+const funProcessCurrentChange = ({ current, currentNode }, xhrFlg = false) => {
+  excelCheckboxShow.value = false;
+  if (current.childs) {
+    excelList.value = current.childs.map((o) => {
+      return {
+        id: o.id,
+        interval: o.interval,
+        path: o.path,
+        prepareid: o.prepareid,
+        station: o.station,
+        time: o.time,
+        type: o.type,
+        windturbine: o.windturbine,
+        name: o.path.substring(
+          o.path.indexOf(o.station + "_") + (o.station + "_").length
+        ),
+      };
+    });
+    if (excelList.value.length > 0) {
+      funExcelChange(excelList.value[0]);
     }
+  } else {
+    excelList.value = [];
+  }
+  if (xhrFlg) {
+    httpRequest.get(`/report/analysis?id=${current.id}`);
+  }
+};
+
+/**table 开始 */
+const tableShowId = ref("");
+const tableColumn = ref([]);
+const tableLoading = ref(false);
+const tableName = ref("");
+const tableData = ref([]);
+const funExport = async () => {
+  const a = document.createElement("a");
+  // a.href = baseURL + '/power/process/download?id=' + tableShowId.value
+  a.href = "/power/process/download?id=" + tableShowId.value;
+  a.download = "";
+  a.click();
+};
+/**table 结束 */
+/**search 开始 */
+const funSubmit = async (query) => {
+  if (!excelCheckIds.value.length) {
+    ElMessage.error("请勾选要预处理的项");
+    return false;
+  }
+  const params = {
+    ...query,
+    ids: excelCheckIds.value.join(","),
+  };
+  const res = await httpRequest.get("/power/process/data", {
+    params: params,
+  });
+  if (res.code === 200) {
+    ElMessage.success(res.msg);
+    funGetProcessTree();
+  }
+};
+/**created */
+// funGetTree()
+// funGetProcessTree()
+const theme = ref(null);
+const store = useStore();
+watch(
+  () => store.state.theme,
+  async (newVal, oldVal) => {
+    theme.value = newVal;
+    await funGetTree();
+    funGetProcessTree();
+  },
+  {
+    deep: true,
+  }
+);
+/**mounted */
+onMounted(async () => {
+  await funGetTree();
+  funGetProcessTree();
+  theme.value = store.state.theme;
+  tableHeight.value = window.innerHeight - 116 + "px";
+  excelHeight.value = window.innerHeight - 116 + "px";
+  treeHeight.value = (window.innerHeight - 120) / 2 + "px";
+  window.addEventListener("resize", () => {
+    tableHeight.value = window.innerHeight - 116 + "px";
+    excelHeight.value = window.innerHeight - 116 + "px";
+    treeHeight.value = (window.innerHeight - 120) / 2 + "px";
+  });
+});
+/**activated */
+// onActivated(async () => {
+//     await funGetTree()
+//     funGetProcessTree()
+// })
+</script>
 
-    /**process tree 开始 */
-    const processTreeData = ref([])
-    const actTreeNode = ref(null)
-    const funGetProcessTree = async () => {
-        actTreeNode.value = null
-        const res = await httpRequest.get("/power/process/tree")
-        processTreeData.value = funRepeatMap(res.data, 'fitting')
-        excelList.value = []
-        if (actTreeNode.value) {
-            funProcessCurrentChange({
-                current: actTreeNode.value,
-                currentNode: null
-            })
-            const child = actTreeNode.value.childs[0]
-            const obj = {
-                id: child.id,
-                interval: child.interval,
-                path: child.path,
-                prepareid: child.prepareid,
-                station: child.station,
-                time: child.time,
-                type: child.type,
-                windturbine: child.windturbine,
-                name: child.path.substring(child.path.indexOf(child.station + '_') + (child.station + '_')
-                    .length)
-            }
-            funExcelChange(obj)
-        }
-    }
-    const funProcessCurrentChange = ({
-        current,
-        currentNode
-    }) => {
-        excelCheckboxShow.value = false
-        if (current.childs) {
-            excelList.value = current.childs.map(o => {
-                return {
-                    id: o.id,
-                    interval: o.interval,
-                    path: o.path,
-                    prepareid: o.prepareid,
-                    station: o.station,
-                    time: o.time,
-                    type: o.type,
-                    windturbine: o.windturbine,
-                    name: o.path.substring(o.path.indexOf(o.station + '_') + (o.station + '_').length)
-                }
-            })
-            if (excelList.value.length > 0) {
-                funExcelChange(excelList.value[0])
-            }
-        } else {
-            excelList.value = []
-        }
+<style lang="less">
+.dataFileProcess {
+  height: 100%;
+
+  .dataFileProcessMain {
+    height: 100%;
+
+    .main_top {
+      height: 40px;
+      display: flex;
+      align-items: center;
+
+      .topPsty {
+        position: relative;
+        top: 5px;
+        padding: 7px 20px;
+        font-size: 12px;
+        font-weight: 600;
+        margin-left: 10px;
+        border-radius: 3px;
+      }
     }
 
-    /**table 开始 */
-    const tableShowId = ref('')
-    const tableColumn = ref([])
-    const tableLoading = ref(false)
-    const tableName = ref('')
-    const tableData = ref([])
-    const funExport = async () => {
-        const a = document.createElement('a')
-        // a.href = baseURL + '/power/process/download?id=' + tableShowId.value
-        a.href = '/power/process/download?id=' + tableShowId.value
-        a.download = ''
-        a.click()
+    .main {
+      display: flex;
+      // justify-content: space-between;
+      // width: calc(100% - 50px);
+      width: 100%;
+
+      .treeDataMain,
+      .excelDataMain,
+      .tableDataMain {
+        border-radius: 10px;
+      }
+
+      .treeDataMain {
+        margin-right: 10px;
+        padding: 10px 0 10px 10px;
+        width: calc(19% - 20px);
+      }
+
+      .excelDataMain {
+        margin-right: 10px;
+        padding: 10px 0 10px 10px;
+        width: calc(15% - 20px);
+      }
+
+      .tableDataMain {
+        padding: 10px;
+        width: calc(66% - 20px);
+      }
     }
-    /**table 结束 */
-    /**search 开始 */
-    const funSubmit = async (query) => {
-        if (!excelCheckIds.value.length) {
-            ElMessage.error('请勾选要预处理的项')
-            return false
-        }
-        const params = {
-            ...query,
-            ids: excelCheckIds.value.join(',')
-        }
-        const res = await httpRequest.get('/power/process/data', {
-            params: params
-        })
-        if (res.code === 200) {
-            ElMessage.success(res.msg)
-            funGetProcessTree()
-        }
+  }
+}
+
+.themeDark {
+  .dataFileProcessMain {
+    .main_top {
+      .topPsty {
+        color: #1c99ff;
+        background: #1e2126;
+      }
     }
-    /**created */
-    // funGetTree()
-    // funGetProcessTree()
-    const theme = ref(null)
-    const store = useStore()
-    watch(() => store.state.theme, async (newVal, oldVal) => {
-        theme.value = newVal
-        await funGetTree()
-        funGetProcessTree()
-    }, {
-        deep: true
-    })
-    /**mounted */
-    onMounted(async () => {
-        await funGetTree()
-        funGetProcessTree()
-        theme.value = store.state.theme
-        tableHeight.value = window.innerHeight - 116 + 'px'
-        excelHeight.value = window.innerHeight - 116 + 'px'
-        treeHeight.value = (window.innerHeight - 120) / 2 + 'px'
-        window.addEventListener('resize', () => {
-            tableHeight.value = window.innerHeight - 116 + 'px'
-            excelHeight.value = window.innerHeight - 116 + 'px'
-            treeHeight.value = (window.innerHeight - 120) / 2 + 'px'
-        })
-    })
-    /**activated */
-    // onActivated(async () => {
-    //     await funGetTree()
-    //     funGetProcessTree()
-    // })
-</script>
-
-<style lang="less">
-    .dataFileProcess {
-        height: 100%;
-
-        .dataFileProcessMain {
-            height: 100%;
-
-            .main_top {
-                height: 40px;
-                display: flex;
-                align-items: center;
 
-                .topPsty {
-                    position: relative;
-                    top: 5px;
-                    padding: 7px 20px;
-                    font-size: 12px;
-                    font-weight: 600;
-                    margin-left: 10px;
-                    border-radius: 3px;
-                }
-            }
+    .main {
+      background: #13171e;
 
-            .main {
-                display: flex;
-                // justify-content: space-between;
-                // width: calc(100% - 50px);
-                width: 100%;
-
-                .treeDataMain,
-                .excelDataMain,
-                .tableDataMain {
-                    border-radius: 10px;
-                }
-
-                .treeDataMain {
-                    margin-right: 10px;
-                    padding: 10px 0 10px 10px;
-                    width: calc(19% - 20px);
-
-                }
-
-                .excelDataMain {
-                    margin-right: 10px;
-                    padding: 10px 0 10px 10px;
-                    width: calc(15% - 20px);
-                }
-
-                .tableDataMain {
-                    padding: 10px;
-                    width: calc(66% - 20px);
-                }
-
-            }
-        }
+      .treeDataMain {
+        background: transparent;
+      }
 
+      .excelDataMain {
+        background: #313233;
+      }
 
+      .tableDataMain {
+        margin-top: 5px;
+        background: #212223;
+      }
     }
-
-    .themeDark {
-
-        .dataFileProcessMain {
-            .main_top {
-
-                .topPsty {
-                    color: #1C99FF;
-                    background: #1E2126;
-                }
-            }
-
-            .main {
-                background: #13171e;
-
-                .treeDataMain {
-                    background: transparent;
-                }
-
-                .excelDataMain {
-                    background: #313233;
-                }
-
-                .tableDataMain {
-                    margin-top: 5px;
-                    background: #212223;
-                }
-            }
-
-        }
-
+  }
+}
+
+.themeLight {
+  padding: 0;
+
+  .dataFileProcessMain {
+    .main_top {
+      .topPsty {
+        color: #2778ff;
+        background: #ffffff;
+      }
     }
 
-    .themeLight {
-        padding: 0;
+    .main {
+      background: #e6e8f2;
 
-        .dataFileProcessMain {
-            .main_top {
+      .treeDataMain {
+        background: transparent;
+      }
 
-                .topPsty {
-                    color: #2778FF;
-                    background: #FFFFFF;
-                }
-            }
-
-            .main {
-                background: #E6E8F2;
-
-                .treeDataMain {
-                    background: transparent;
-                }
-
-                .excelDataMain {
-                    background: #F4F6FB;
-                }
-
-                .tableDataMain {
-                    background: #fff;
-                    margin-top: 5px;
-                }
-            }
-        }
+      .excelDataMain {
+        background: #f4f6fb;
+      }
 
+      .tableDataMain {
+        background: #fff;
+        margin-top: 5px;
+      }
     }
+  }
+}
 </style>