From 9b4433fddf5b401edb0aace8a404ac733b122702 Mon Sep 17 00:00:00 2001 From: 田源 <tianyuan@vci-tech.com> Date: 星期四, 03 四月 2025 14:35:02 +0800 Subject: [PATCH] 添加非密字段显示 --- Source/UBCS-WEB/src/views/statistic/statisticPage.vue | 160 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 108 insertions(+), 52 deletions(-) diff --git a/Source/UBCS-WEB/src/views/statistic/statisticPage.vue b/Source/UBCS-WEB/src/views/statistic/statisticPage.vue index 60ef14b..6df37e1 100644 --- a/Source/UBCS-WEB/src/views/statistic/statisticPage.vue +++ b/Source/UBCS-WEB/src/views/statistic/statisticPage.vue @@ -1,13 +1,13 @@ <template> <!-- 鏂板鍙充晶鎸夐挳--> - <div> + <div v-loading="loading"> <div style=" display: flex; justify-content: flex-end;"> - <el-button plain type="primary" @click="addHandler">閰嶇疆</el-button> + <el-button plain type="primary" @click="addHandler" size="small">閰嶇疆</el-button> </div> <!--鏂板瀵硅瘽妗�--> <el-dialog :visible.sync="addVisible" append-to-body class="avue-dialog avue-dialog--top" title="閰嶇疆鏁版嵁缁熻鍒嗘瀽" top="-50px"> - <el-table ref="table" :data="tableData" border style="width: 100%" @selection-change="selectChange"> + <el-table ref="table" :data="tableData" border style="width: 100%" @selection-change="selectChange" @row-click="rowHandlerClick"> <el-table-column type="selection" width="55"></el-table-column> <el-table-column align="center" label="涓绘暟鎹簱鍚�" prop="menuName" width="300"></el-table-column> <el-table-column align="center" label="绫诲瀷" prop="codeType"> @@ -24,27 +24,36 @@ </span> </el-dialog> <!--echarts缁勪欢--> - <div style="margin-top: 15px;padding-bottom: 35px"> + <div style="margin-top: 10px;padding-bottom: 35px"> <lineChart v-for="(item,index) in lineList" :key="index" + :btmname="item.btmname" :chartName="item.menuName" - :lineData="item.menuData"></lineChart> + :lineData="item.menuData" + @refresh="getEcharts"> + </lineChart> <pieChart v-for="(item,index) in pieList" :key="index" + :btmname="item.btmname" :chartName="item.menuName" - :pieData="item.menuData"></pieChart> + :pieData="item.menuData" + @refresh="getEcharts"></pieChart> <ColumnarChart v-for="(item,index) in columnarList" :key="index" + :btmname="item.btmname" :chartName="item.menuName" - :columnarData="item.menuData"></ColumnarChart> + :columnarData="item.menuData" + @refresh="getEcharts"></ColumnarChart> <mixCart v-for="(item,index) in mixList" :key="index" + :btmname="item.btmname" :chartName="item.menuName" - :mixData="item.menuData"></mixCart> + :mixData="item.menuData" + @refresh="getEcharts"></mixCart> </div> </div> </template> @@ -54,7 +63,8 @@ import pieChart from "../../components/StatisticsComponent/pieChart" import ColumnarChart from "../../components/StatisticsComponent/ColumnarChart" import mixCart from "../../components/StatisticsComponent/mixCart" -import {getStatisticAnalysis, getBtmAndChart, saveStatisticAnalysis, deleteChartId} from "@/api/statistic/chart" +import {getStatisticAnalysis, getBtmAndChart, saveStatisticAnalysis} from "@/api/statistic/chart" +//閰嶇疆琛ㄥ崟涓绘暟鎹垪琛ㄦ帴鍙� import {getList} from "@/api/system/statistic"; export default { @@ -67,6 +77,7 @@ name: "statisticPage", data() { return { + loading: false, selectValue: '', selectList: [ { @@ -95,17 +106,16 @@ columnarList: [], mixList: [], selectData: [], - tableData: [] + tableData: [], + ResponseData: {} } }, created() { - this.getMasterList(); - // deleteChartId({btmname:'zxssaac',chartId:'3'}).then(res=>{ - // console.log('res',res) - // }) + this.loading = true; }, mounted() { this.getEcharts(); + this.getMasterList(); }, methods: { getMasterList() { @@ -116,50 +126,92 @@ this.$message.error(error) }) }, + //鍒楄〃鏁版嵁 async getEcharts() { try { const firstResponse = await getBtmAndChart(); - const typeList = { - "0": "lineList", - "1": "pieList", - "2": "columnarList", - "3": "mixList" - }; - const btmNames = Object.keys(firstResponse.data.data).join(','); - const firstData = firstResponse.data.data; - console.log('firstData',firstData) - if (btmNames) { - const secondResponse = await getStatisticAnalysis({btmNames}); - const secondData = secondResponse.data.data; - console.log('secondData', secondData) - Object.keys(firstData).sort().forEach((key,index)=>{ - if (firstData[key]) { - const indexes = firstData[key].split(','); - for (const indexSec of indexes) { - const type = typeList[indexSec]; - const List = secondData.map(record => { - return { - menuData: record.menuData, - menuName: record.menuName - } - }) - List.forEach((i,j)=>{ - if(index === j ){ - this[type].push(i) - } - }) - } - } - }) + const btmValue = Object.values(firstResponse.data.data); + if (!btmNames) { + this.lineList = []; + this.pieList = []; + this.columnarList = []; + this.mixList = []; + this.loading = false; + return; } + const typeList = { + '0': 'lineList', + '1': 'pieList', + '2': 'columnarList', + '3': 'mixList' + }; + await this.handleStatisticAnalysis(btmNames, firstResponse); + this.loading = false; } catch (error) { - console.error('Error:', error); + this.loading = false; + // console.error('Error:', error); } + }, + async handleStatisticAnalysis(btmNames, firstResponse) { + const secondResponse = await getStatisticAnalysis({btmNames}); + const secondData = secondResponse.data.data; + const typeList = { + "0": "lineList", + "1": "pieList", + "2": "columnarList", + "3": "mixList" + }; + this.lineList = []; + this.pieList = []; + this.columnarList = []; + this.mixList = []; + const firstData = firstResponse.data.data; + //Object.keys瀵艰嚧瀵硅薄椤哄簭涓嶄竴鑷达紝浣跨敤sort鎺掑簭涓庡悗绔繑鍥炴牸寮忎竴鑷� + Object.keys(firstData).sort().forEach((key, index) => { + if (firstData[key]) { + const indexes = firstData[key].split(','); + for (const indexSec of indexes) { + const listType = typeList[indexSec]; + const list = secondData.map(record => { + return { + menuData: record.menuData, + menuName: record.menuName, + btmname: key + }; + }); + this.$nextTick(() => { + list.forEach((i, j) => { + if (index === j) { + this[listType].push(i); + } + }); + }); + } + } + }); }, //鏂板 addHandler() { this.addVisible = true; + // let checkedrow = [] + // this.tableData.forEach(item => { + // // item.codeType = []; + // Object.keys(this.ResponseData.data.data).forEach(k => { + // if (item.code === k) { + // Object.values(this.ResponseData.data.data).forEach(v => { + // // item.codeType.push(v); + // checkedrow.push(item) + // }) + // } + // }) + // }) + // this.$nextTick(() => { + // checkedrow.forEach(row => { + // // console.log(row) + // this.$refs.table.toggleRowSelection(row, true) // 鍥炴樉 + // }) + // }) }, //鍙栨秷 escHandler() { @@ -171,12 +223,12 @@ this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹紒'); return; } - let codeStatus = this.selectData.every(key => key.codeType) + let codeStatus = this.selectData.every(key => key.codeType.length > 0); + if (!codeStatus) { this.$message.warning("璇锋鏌ュ凡鍕鹃�夋暟鎹被鍨嬫槸鍚︿负绌猴紒"); return; } - const newArray = this.selectData.map(item => { return { btmname: item.code, @@ -184,9 +236,10 @@ } }) saveStatisticAnalysis(newArray).then(res => { - this.menuList = res.data.data; - this.nextSave(); + // this.menuList = res.data.data; + this.getEcharts(); this.$message.success('淇濆瓨鎴愬姛') + this.addVisible = false; }).catch(error => { this.$message.error(error) }); @@ -217,9 +270,12 @@ }, //琛ㄦ牸澶氶�� selectChange(selection) { - console.log('selection', selection) this.selectData = selection; }, + rowHandlerClick(row){ + this.selectData = row; + this.$refs.table.toggleRowSelection(row); + } } } -- Gitblit v1.9.3