From 75f043dfa6660716364e66ee0b3cf99f44255686 Mon Sep 17 00:00:00 2001
From: DYL0109 <dn18191638832@163.com>
Date: 星期三, 16 四月 2025 19:20:36 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/develop1.0' into dyl_dev

---
 zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/StatisticModal.vue |  360 +++++++++++++++++++++++++++++++-----------------------------
 1 files changed, 186 insertions(+), 174 deletions(-)

diff --git a/zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/StatisticModal.vue b/zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/StatisticModal.vue
index a7c36f8..8432493 100644
--- a/zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/StatisticModal.vue
+++ b/zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/StatisticModal.vue
@@ -1,229 +1,241 @@
 <template>
-    <el-dialog v-model="visible" title="閫夋嫨缁熻鎸囨爣" width="1100" @close="handleClose" destroy-on-close
-        :close-on-click-modal="false" :close-on-press-escape="false">
-        <el-row :gutter="24">
-            <el-col :span="6">
-                <el-tree ref="treeRef" :props="defaultProps" :data="treeData" node-key="id" highlight-current
-                    :default-expanded-keys="treeExpandData" :expand-on-click-node="false" @node-click="changeNode"
-                    accordion>
-                    <template #default="{ node, data }">
-                        <span>
-                            <el-tooltip v-if="node.label.length > 6" class="item" effect="dark" :content="node.label"
-                                placement="top-end">
-                                <span>{{ node.label.slice(0, 6) + "..." }}</span>
-                            </el-tooltip>
-                            <span v-else id="b">{{ node.label }}</span>
-                        </span>
+  <el-dialog
+    v-model="visible"
+    title="閫夋嫨缁熻鎸囨爣"
+    width="1100"
+    @close="handleClose"
+    destroy-on-close
+    :close-on-click-modal="false"
+    :close-on-press-escape="false"
+  >
+    <el-row :gutter="24">
+      <el-col :span="6">
+        <el-tree
+          ref="treeRef"
+          :props="defaultProps"
+          :data="treeData"
+          node-key="id"
+          highlight-current
+          :default-expanded-keys="treeExpandData"
+          :expand-on-click-node="false"
+          @node-click="changeNode"
+          accordion
+        >
+          <template #default="{ node, data }">
+            <span>
+              <el-tooltip
+                v-if="node.label.length > 6"
+                class="item"
+                effect="dark"
+                :content="node.label"
+                placement="top-end"
+              >
+                <span>{{ node.label.slice(0, 6) + "..." }}</span>
+              </el-tooltip>
+              <span v-else id="b">{{ node.label }}</span>
+            </span>
+          </template>
+        </el-tree>
+      </el-col>
+      <el-col :span="18">
+        <el-form :model="queryParams" :inline="true" label-width="120px">
+          <el-form-item label="鎸囨爣鍚嶇О/缂栫爜" prop="name">
+            <el-input v-model="queryParams.name" placeholder="璇疯緭鍏ユ寚鏍囧悕绉�/缂栫爜" />
+          </el-form-item>
+          <el-form-item label="鎸囨爣鍒嗙被" prop="indexCategory">
+            <el-select v-model="queryParams.indexCategory" clearable placeholder="閫夋嫨绉嶇被" style="width: 170px">
+              <el-option v-for="dict in sys_index_category" :key="dict.value" :label="dict.label" :value="dict.value" />
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
+            <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
+          </el-form-item>
+        </el-form>
 
-                    </template>
-                </el-tree>
-            </el-col>
-            <el-col :span="18">
-                <el-form :model="queryParams" :inline="true" label-width="120px">
-                    <el-form-item label="鎸囨爣鍚嶇О/缂栫爜" prop="name">
-                        <el-input v-model="queryParams.name" placeholder="璇疯緭鍏ユ寚鏍囧悕绉�/缂栫爜" />
-                    </el-form-item>
-                    <el-form-item label="鎸囨爣鍒嗙被" prop="indexCategory">
-                        <el-select v-model="queryParams.indexCategory" clearable placeholder="閫夋嫨绉嶇被"
-                            style="width: 170px;">
-                            <el-option v-for="dict in sys_index_category" :key="dict.value" :label="dict.label"
-                                :value="dict.value" />
-                        </el-select>
-                    </el-form-item>
-                    <el-form-item>
-                        <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
-                        <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
-                    </el-form-item>
-                </el-form>
+        <el-table
+          v-loading="loading"
+          :data="tableData"
+          row-key="indexId"
+          @select="handleSelectChange"
+          @select-all="handleSelectionAllChange"
+          height="50vh"
+          ref="energySettingTable"
+        >
+          <el-table-column type="selection" width="55" align="center" row-key="indexId" :reserve-selection="true" />
+          <el-table-column label="鎸囨爣缂栫爜" align="center" prop="code" />
+          <el-table-column label="鎸囨爣鍚嶇О" align="center" prop="name" />
+          <el-table-column
+            label="鍗曚綅"
+            align="center"
+            prop="unitId"
+            :formatter="(row, c) => proxy.selectDictLabel(sys_unit, row.unitId)"
+          />
+        </el-table>
+        <pagination
+          v-show="total > 0"
+          :total="total"
+          v-model:page="queryParams.pageNum"
+          v-model:limit="queryParams.pageSize"
+          @pagination="getList"
+        />
+      </el-col>
+    </el-row>
 
-                <el-table v-loading="loading" :data="tableData" row-key="indexId" @select="handleSelectChange"
-                    @select-all="handleSelectionAllChange" height="50vh" ref="energySettingTable">
-                    <el-table-column type="selection" width="55" align="center" row-key="indexId"
-                        :reserve-selection="true" />
-                    <el-table-column label="鎸囨爣缂栫爜" align="center" prop="code" />
-                    <el-table-column label="鎸囨爣鍚嶇О" align="center" prop="name" />
-                    <el-table-column label="鍗曚綅" align="center" prop="unitId"
-                        :formatter="(row, c) => proxy.selectDictLabel(sys_unit, row.unitId)" />
-                </el-table>
-                <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
-                    v-model:limit="queryParams.pageSize" @pagination="getList" />
-            </el-col>
-        </el-row>
-
-
-
-
-
-        <div slot="footer" class="text-right">
-            <el-button type="primary" @click="handleOk">纭畾</el-button>
-            <el-button @click="handleClose">鍙栨秷</el-button>
-        </div>
-
-
-
-    </el-dialog>
+    <div slot="footer" class="text-right">
+      <el-button type="primary" @click="handleOk">纭畾</el-button>
+      <el-button @click="handleClose">鍙栨秷</el-button>
+    </div>
+  </el-dialog>
 </template>
 <script setup>
 let { proxy } = getCurrentInstance()
-let { sys_index_category } = proxy.useDict('sys_index_category')
-let { sys_unit } = proxy.useDict('sys_unit')
-import { listEnergyindex, treeList } from '@/api/modelConfiguration/indexWarehouse'
+let { sys_index_category } = proxy.useDict("sys_index_category")
+let { sys_unit } = proxy.useDict("sys_unit")
+import { listEnergyindex, treeList } from "@/api/modelConfiguration/indexWarehouse"
 let treeRef = ref(null)
 let treeData = ref([])
 let treeExpandData = ref([])
 const defaultProps = ref({
-    children: 'children',
-    label: 'label',
+  children: "children",
+  label: "label",
 })
-
+let currentNode = ref(null)
 //鏍戠偣鍑�
 function changeNode(data, node, ev) {
-    getList(data)
-    //   if (statisticalIndicatorManagementRef.value) {
-    //     statisticalIndicatorManagementRef.value.getList(data)
-    //   }
+  currentNode.value = data
+  getList()
 }
 
 let isFirstLeafNode = ref(false)
 //鑾峰彇鏍戝垪琛�
 function getTreeList() {
-    treeList({ modelCode: "JCZBK_CODE" }).then(res => {
-        let { data } = res
-        treeData.value = data;
-        let chooseNode = null;
-        if (data.length > 0) {
-            if (data[0].children && data[0].children.length !== 0 && isFirstLeafNode.value) {
-                if (data[0].children[0].children && data[0].children[0].children.length !== 0) {
-                    chooseNode = data[0].children[0].children[0];
-                } else {
-                    chooseNode = data[0].children[0];
-                }
-            } else {
-                chooseNode = data[0];
-            }
-            treeExpandData.value.push(chooseNode.id);
-            nextTick(() => {
-                treeRef.value.setCurrentKey(chooseNode.id);
-                getList(chooseNode)
-            });
+  treeList({ modelCode: "JCZBK_CODE" }).then((res) => {
+    let { data } = res
+    treeData.value = data
+    let chooseNode = null
+    if (data.length > 0) {
+      if (data[0].children && data[0].children.length !== 0 && isFirstLeafNode.value) {
+        if (data[0].children[0].children && data[0].children[0].children.length !== 0) {
+          chooseNode = data[0].children[0].children[0]
+        } else {
+          chooseNode = data[0].children[0]
         }
-    })
+      } else {
+        chooseNode = data[0]
+      }
+      treeExpandData.value.push(chooseNode.id)
+      currentNode.value = chooseNode
+      nextTick(() => {
+        treeRef.value.setCurrentKey(chooseNode.id)
+        getList()
+      })
+    }
+  })
 }
-
 
 let loading = ref(false)
 let visible = ref(false)
 let tableData = ref([])
-let total = ref(0);
+let total = ref(0)
 let queryParams = ref({
-    name: null,
-    indexCategory: null,
-    pageNum: 1,
-    pageSize: 10,
+  name: null,
+  indexCategory: null,
+  pageNum: 1,
+  pageSize: 10,
 })
 
 let selectedStatistic = ref([])
 function handleOpen(selectRow) {
-    getTreeList()
-    selectedStatistic.value = JSON.parse(JSON.stringify(selectRow))
-    visible.value = true
+  getTreeList()
+  selectedStatistic.value = JSON.parse(JSON.stringify(selectRow))
+  visible.value = true
 }
 
 let energySettingTable = ref(null)
-let currentNode = ref(null)
-function getList(modelNode) {
-    currentNode.value = modelNode;
-    if (modelNode) {
-        loading.value = true;
-        queryParams.value.nodeId = modelNode.id;
-        queryParams.value.indexType = 'STATISTIC';
-        listEnergyindex(queryParams.value).then(response => {
-            tableData.value = response.rows;
-            total.value = response.total;
-            loading.value = false;
-            nextTick(function () {
-                energySettingTable.value.data.forEach(rowData => {
-                    let exist = selectedStatistic.value.filter(
-                        f => f.indexId === rowData.indexId).length;
-                    if (exist > 0) {
-                        energySettingTable.value.toggleRowSelection(rowData, true);
-                    }
-                });
-            });
-        });
-    } else {
-        tableData.value = [];
-    }
+function getList() {
+  loading.value = true
+  queryParams.value.nodeId = currentNode.value.id
+  queryParams.value.indexType = "STATISTIC"
+  listEnergyindex(queryParams.value).then((response) => {
+    tableData.value = response.rows
+    total.value = response.total
+    loading.value = false
+    nextTick(function () {
+      energySettingTable.value.data.forEach((rowData) => {
+        let exist = selectedStatistic.value.filter((f) => f.indexId === rowData.indexId).length
+        if (exist > 0) {
+          energySettingTable.value.toggleRowSelection(rowData, true)
+        }
+      })
+    })
+  })
 }
 function handleQuery() {
-    queryParams.value.pageNum = 1;
-    getList(currentNode.value)
+  queryParams.value.pageNum = 1
+  getList()
 }
 function resetQuery() {
-    queryParams.value = {
-        name: null,
-        indexCategory: null,
-        pageNum: 1,
-        pageSize: 10,
-    }
-    getList(currentNode.value)
+  queryParams.value = {
+    name: null,
+    indexCategory: null,
+    pageNum: 1,
+    pageSize: 10,
+  }
+  getList()
 }
 
 function handleClose() {
-    visible.value = false
+  visible.value = false
 }
-
-
 
 //鍒ゆ柇涓�涓� 鏄叏閫夎繕鏄叏閫夊彇娑�
 function formatterSelect(selection, data) {
-    let idMap = {};
-    selection.forEach(item => {
-        idMap[item.indexId] = true;
-    });
-    let allIn = data.every(item => idMap.hasOwnProperty(item.indexId));
-    return allIn;
+  let idMap = {}
+  selection.forEach((item) => {
+    idMap[item.indexId] = true
+  })
+  let allIn = data.every((item) => idMap.hasOwnProperty(item.indexId))
+  return allIn
 }
 function handleSelectionAllChange(selection) {
-    if (formatterSelect(selection, tableData.value)) {
-        selection.forEach(row => {
-            let rowStatus = selectedStatistic.value.filter(f => f.indexId == row.indexId).length;
-            if (rowStatus === 0) {
-                selectedStatistic.value.push({
-                    "indexId": row.indexId,
-                    "code": row.code,
-                    "name": row.name
-                });
-            }
-        });
-    } else {
-        selectedStatistic.value = selectedStatistic.value.filter(f => {
-            return !tableData.value.some(s => s.indexId == f.indexId);
-        });
-    }
+  if (formatterSelect(selection, tableData.value)) {
+    selection.forEach((row) => {
+      let rowStatus = selectedStatistic.value.filter((f) => f.indexId == row.indexId).length
+      if (rowStatus === 0) {
+        selectedStatistic.value.push({
+          indexId: row.indexId,
+          code: row.code,
+          name: row.name,
+        })
+      }
+    })
+  } else {
+    selectedStatistic.value = selectedStatistic.value.filter((f) => {
+      return !tableData.value.some((s) => s.indexId == f.indexId)
+    })
+  }
 }
 function handleSelectChange(selection, row) {
-    let rowStatus = selection.filter(f => f.indexId === row.indexId).length;
-    if (rowStatus > 0) {
-        selectedStatistic.value.push({
-            "indexId": row.indexId,
-            "code": row.code,
-            "name": row.name
-        });
-    } else {
-        selectedStatistic.value = selectedStatistic.value.filter(
-            f => f.indexId !== row.indexId);
-    }
-
+  let rowStatus = selection.filter((f) => f.indexId === row.indexId).length
+  if (rowStatus > 0) {
+    selectedStatistic.value.push({
+      indexId: row.indexId,
+      code: row.code,
+      name: row.name,
+    })
+  } else {
+    selectedStatistic.value = selectedStatistic.value.filter((f) => f.indexId !== row.indexId)
+  }
 }
 
 function handleOk() {
-    emit('statisticIndexConfirmSelect', selectedStatistic.value)
-    visible.value = false
+  emit("statisticIndexConfirmSelect", selectedStatistic.value)
+  visible.value = false
 }
 
-defineExpose({ handleOpen });
-let emit = defineEmits(['statisticIndexConfirmSelect'])
+defineExpose({ handleOpen })
+let emit = defineEmits(["statisticIndexConfirmSelect"])
 </script>
 
 <style scoped lang="scss">

--
Gitblit v1.9.3