From a78672e878dfd35bd98eb9554eb967745ab31b25 Mon Sep 17 00:00:00 2001 From: Alioo <ali1996110@163.com> Date: 星期二, 25 二月 2025 09:57:07 +0800 Subject: [PATCH] !91 Merge remote-tracking branch 'origin/develop1.0' into develop_alioo Merge pull request !91 from Alioo/develop_alioo --- zhitan-vue/src/assets/styles/ruoyi.scss | 12 - zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/statisticalIndicators.vue | 141 +++++++------- zhitan-vue/src/assets/styles/page.scss | 2 zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/StatisticModal.vue | 360 ++++++++++++++++++++------------------- zhitan-vue/.env.development | 2 5 files changed, 263 insertions(+), 254 deletions(-) diff --git a/zhitan-vue/.env.development b/zhitan-vue/.env.development index e2c2499..ff211da 100644 --- a/zhitan-vue/.env.development +++ b/zhitan-vue/.env.development @@ -6,6 +6,6 @@ # 绯荤粺/寮�鍙戠幆澧� # test -VITE_APP_BASE_API = 'http://127.0.0.1:8080' +VITE_APP_BASE_API = 'http://139.159.201.118:8201' # hangmingjun diff --git a/zhitan-vue/src/assets/styles/page.scss b/zhitan-vue/src/assets/styles/page.scss index 7a600a2..dfbcd09 100644 --- a/zhitan-vue/src/assets/styles/page.scss +++ b/zhitan-vue/src/assets/styles/page.scss @@ -49,6 +49,7 @@ .chart-box { width: 100%; height: 320px; + padding-top: 12px; div { width: 100%; @@ -129,6 +130,7 @@ .chart-box { width: 100%; height: 320px; + padding-top: 12px; div { width: 100%; diff --git a/zhitan-vue/src/assets/styles/ruoyi.scss b/zhitan-vue/src/assets/styles/ruoyi.scss index cd8f03c..f446cf6 100644 --- a/zhitan-vue/src/assets/styles/ruoyi.scss +++ b/zhitan-vue/src/assets/styles/ruoyi.scss @@ -269,14 +269,11 @@ td { word-break: break-word; background-color: #1d3778 !important; - // color: #515a6e; + color: #515a6e; height: 48px !important; - // font-size: 13px; - border-radius: 0px 0px 0px 0px; font-family: OPPOSans, OPPOSans; font-weight: 500; - // font-size: 16px; color: #ffffff; border-bottom: none !important; } @@ -833,14 +830,11 @@ background-color: #F7F8FA !important; // color: #515a6e; height: 48px !important; - // font-size: 13px; - border-radius: 0px 0px 0px 0px; font-family: OPPOSans, OPPOSans; font-weight: 500; - // font-size: 16px; color: #222222; - border-bottom: none !important; + // border-bottom: none !important; } } @@ -889,7 +883,7 @@ // 琛ㄦ牸搴曢儴鐧界嚎 .el-table__inner-wrapper::before { - background-color: transparent; + // background-color: transparent; } /** 琛ㄥ崟甯冨眬 **/ 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