From dd2e649ffa10db24432598922662e35d1b33702e Mon Sep 17 00:00:00 2001
From: ali <ali9696@163.com>
Date: 星期二, 25 二月 2025 09:55:53 +0800
Subject: [PATCH] 统计指标分页总行数和内容错误 https://gitee.com/ustcyc/zhitan-ems/issues/IBLCFK
---
zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/statisticalIndicators.vue | 141 +++++++-------
zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/StatisticModal.vue | 360 ++++++++++++++++++++-------------------
2 files changed, 257 insertions(+), 244 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">
diff --git a/zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/statisticalIndicators.vue b/zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/statisticalIndicators.vue
index 076edcf..c042e37 100644
--- a/zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/statisticalIndicators.vue
+++ b/zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/statisticalIndicators.vue
@@ -1,69 +1,68 @@
<template>
- <div class="table-box">
- <el-button class="mb20 " type="primary" icon="Plus" @click="handleAdd">
- 鏂板
- </el-button>
- <el-button class="mb20 " icon="Delete" :disabled="multiple" @click="handleDel">
- 鎵归噺鍒犻櫎
- </el-button>
- <el-table v-loading="loading" :data="tableData" height="calc(100vh - 370px)"
- @selection-change="handleSelectionChange">
- <el-table-column type="selection" width="55" align="center" show-overflow-tooltip />
- <el-table-column label="鎸囨爣缂栫爜" align="center" prop="code" />
- <el-table-column label="鎸囨爣鍚嶇О" align="center" prop="name" />
- <el-table-column label="鎿嶄綔" align="center">
- <template #default="scope">
- <el-button link type="primary" icon="Delete" @click="handleDel(scope.row)">
- 鍒犻櫎
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- <statisticModal ref="statisticModalRef" @statisticIndexConfirmSelect="statisticIndexConfirmSelect" />
+ <div class="table-box">
+ <div style="width: 100%; text-align: right; padding: 20px 20px 0 0">
+ <el-button class="mb20" type="primary" icon="Plus" @click="handleAdd"> 鏂板 </el-button>
+ <el-button class="mb20" icon="Delete" :disabled="multiple" @click="handleDel"> 鎵归噺鍒犻櫎 </el-button>
</div>
+ <el-table
+ v-loading="loading"
+ :data="tableData"
+ height="calc(100vh - 370px)"
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column type="selection" width="55" align="center" show-overflow-tooltip />
+ <el-table-column label="鎸囨爣缂栫爜" align="center" prop="code" />
+ <el-table-column label="鎸囨爣鍚嶇О" align="center" prop="name" />
+ <el-table-column label="鎿嶄綔" align="center">
+ <template #default="scope">
+ <el-button link type="primary" icon="Delete" @click="handleDel(scope.row)"> 鍒犻櫎 </el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <statisticModal ref="statisticModalRef" @statisticIndexConfirmSelect="statisticIndexConfirmSelect" />
+ </div>
</template>
<script setup>
let { proxy } = getCurrentInstance()
-import { getSettingIndex, setNodeToIndex, delIndex } from '@/api/modelConfiguration/businessModel'
-import statisticModal from './StatisticModal.vue'
+import { getSettingIndex, setNodeToIndex, delIndex } from "@/api/modelConfiguration/businessModel"
+import statisticModal from "./StatisticModal.vue"
let tableData = ref([])
let loading = ref(false)
let currentNode = ref(null)
function getList(modelNode) {
- if (!modelNode) {
- tableData.value = []
- return
+ if (!modelNode) {
+ tableData.value = []
+ return
+ }
+ currentNode.value = modelNode
+ loading.value = true
+ getSettingIndex(modelNode.id).then((response) => {
+ if (response.code === 200) {
+ let result = response.data
+ tableData.value = result.filter((f) => f.indexType === "STATISTIC")
+ loading.value = false
+ } else {
+ proxy.$modal.msgError(response.msg)
}
- currentNode.value = modelNode
- loading.value = true;
- getSettingIndex(modelNode.id).then((response) => {
- if (response.code === 200) {
- let result = response.data;
- tableData.value = result.filter(f => f.indexType === 'STATISTIC');
- loading.value = false
- } else {
- proxy.$modal.msgError(response.msg);
- }
- });
+ })
}
let statisticModalRef = ref(null)
function handleAdd() {
- if (statisticModalRef.value) {
- statisticModalRef.value.handleOpen(tableData.value)
- }
+ if (statisticModalRef.value) {
+ statisticModalRef.value.handleOpen(tableData.value)
+ }
}
-
function statisticIndexConfirmSelect(selectedIndex) {
- tableData.value = selectedIndex
- let indexIds = selectedIndex.map(item => item.indexId)
- setNodeToIndex(currentNode.value.id, indexIds, 'STATISTIC').then((response) => {
- if (response.code !== 200) {
- proxy.$modal.msgError(response.msg)
- }
- })
+ tableData.value = selectedIndex
+ let indexIds = selectedIndex.map((item) => item.indexId)
+ setNodeToIndex(currentNode.value.id, indexIds, "STATISTIC").then((response) => {
+ if (response.code !== 200) {
+ proxy.$modal.msgError(response.msg)
+ }
+ })
}
// 閫変腑鏁扮粍
@@ -72,32 +71,34 @@
// 闈炲涓鐢�
let multiple = ref(true)
function handleDel(row) {
- const indexIds = row && row.indexId ? [row.indexId] : ids.value
- const indexNames = row.name || names.value
- proxy.$modal.confirm('鏄惁纭鍒犻櫎鎸囨爣鍚嶄负"' + indexNames + '"鐨勬暟鎹」?', '璀﹀憡').then(function () {
- return delIndex(currentNode.value.id, indexIds);
- }).then((response) => {
- if (response.code === 200) {
- getList(currentNode.value)
- // 鍒犻櫎鎴愬姛锛屾洿鏂拌〃鏍兼暟鎹�
- // tableData.value = tableData.value.filter(f => f.indexId !== row.indexId)
- proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- } else {
- // 鍒犻櫎澶辫触锛屾樉绀洪敊璇秷鎭�
- proxy.$modal.msgError(response.msg);
- }
- }).catch(() => {
- });
+ const indexIds = row && row.indexId ? [row.indexId] : ids.value
+ const indexNames = row.name || names.value
+ proxy.$modal
+ .confirm('鏄惁纭鍒犻櫎鎸囨爣鍚嶄负"' + indexNames + '"鐨勬暟鎹」?', "璀﹀憡")
+ .then(function () {
+ return delIndex(currentNode.value.id, indexIds)
+ })
+ .then((response) => {
+ if (response.code === 200) {
+ getList(currentNode.value)
+ // 鍒犻櫎鎴愬姛锛屾洿鏂拌〃鏍兼暟鎹�
+ // tableData.value = tableData.value.filter(f => f.indexId !== row.indexId)
+ proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛")
+ } else {
+ // 鍒犻櫎澶辫触锛屾樉绀洪敊璇秷鎭�
+ proxy.$modal.msgError(response.msg)
+ }
+ })
+ .catch(() => {})
}
-
defineExpose({
- getList
-});
+ getList,
+})
function handleSelectionChange(selection) {
- ids.value = selection.map(item => item.indexId);
- names.value = selection.map(item => item.name);
- multiple.value = !selection.length
+ ids.value = selection.map((item) => item.indexId)
+ names.value = selection.map((item) => item.name)
+ multiple.value = !selection.length
}
</script>
--
Gitblit v1.9.3