From e2b55c8bbba3492d7cc97e5bfe97589aaf932b1f Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期三, 20 十二月 2023 19:24:24 +0800 Subject: [PATCH] 整合代码 --- Source/UBCS-WEB/src/views/statistic/statisticPage.vue | 142 +++++++++++++++++++++++++++------------------- 1 files changed, 83 insertions(+), 59 deletions(-) diff --git a/Source/UBCS-WEB/src/views/statistic/statisticPage.vue b/Source/UBCS-WEB/src/views/statistic/statisticPage.vue index 87f13cb..ea9146a 100644 --- a/Source/UBCS-WEB/src/views/statistic/statisticPage.vue +++ b/Source/UBCS-WEB/src/views/statistic/statisticPage.vue @@ -4,35 +4,13 @@ <div style=" display: flex; justify-content: flex-end;"> <el-button plain type="primary" @click="addHandler">閰嶇疆</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-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"> + <!--鏂板瀵硅瘽妗�--> + <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-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"> <template slot-scope="{ row }"> <el-select v-model="row.codeType" :multiple="true" limit="4" placeholder="璇烽�夋嫨鍥捐〃绫诲瀷" style="width: 400px"> <el-option v-for="(item) in selectList" :label="item.label" :value="item.value"></el-option> @@ -45,16 +23,28 @@ <el-button type="primary" @click="addSaveHandler">淇濆瓨</el-button> </span> </el-dialog> - <!-- echarts缁勪欢--> + <!--echarts缁勪欢--> <div style="margin-top: 15px;padding-bottom: 35px"> - <lineChart v-for="(item,index) in lineList" :key="index" :chartName="item.menuName" - :lineData="item.menuData"></lineChart> - <pieChart v-for="(item,index) in pieList" :key="index" :chartName="item.menuName" - :pieData="item.menuData"></pieChart> - <ColumnarChart v-for="(item,index) in columnarList" :key="index" :chartName="item.menuName" - :columnarData="item.menuData"></ColumnarChart> - <mixCart v-for="(item,index) in mixList" :key="index" :chartName="item.menuName" - :mixData="item.menuData"></mixCart> + <lineChart + v-for="(item,index) in lineList" + :key="index" + :chartName="item.menuName" + :lineData="item.menuData"></lineChart> + <pieChart + v-for="(item,index) in pieList" + :key="index" + :chartName="item.menuName" + :pieData="item.menuData"></pieChart> + <ColumnarChart + v-for="(item,index) in columnarList" + :key="index" + :chartName="item.menuName" + :columnarData="item.menuData"></ColumnarChart> + <mixCart + v-for="(item,index) in mixList" + :key="index" + :chartName="item.menuName" + :mixData="item.menuData"></mixCart> </div> </div> </template> @@ -64,7 +54,7 @@ import pieChart from "../../components/StatisticsComponent/pieChart" import ColumnarChart from "../../components/StatisticsComponent/ColumnarChart" import mixCart from "../../components/StatisticsComponent/mixCart" -import {getStatisticAnalysis,getBtmAndChart,saveStatisticAnalysis} from "@/api/statistic/chart" +import {getStatisticAnalysis, getBtmAndChart, saveStatisticAnalysis, deleteChartId} from "@/api/statistic/chart" import {getList} from "@/api/system/statistic"; export default { @@ -110,27 +100,61 @@ }, created() { this.getMasterList(); - this.getEcharts() + // deleteChartId({btmname:'zxssaac',chartId:'3'}).then(res=>{ + // console.log('res',res) + // }) + }, + mounted() { + this.getEcharts(); }, methods: { getMasterList() { const userId = localStorage.getItem('userId'); getList({userId: userId}).then(res => { this.tableData = res.data.data; - }).catch(error=>{ + }).catch(error => { this.$message.error(error) }) }, - getEcharts(){ - getBtmAndChart().then(res=>{ - const btmNames = Object.keys(res.data.data).join(','); - console.log(btmNames); - if(btmNames){ - getStatisticAnalysis({btmNames}).then(item=>{ - console.log(item) + 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; + if (btmNames) { + const secondResponse = await getStatisticAnalysis({btmNames}); + const secondData = secondResponse.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 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) + } + }) + } + } }) } - }) + } catch (error) { + console.error('Error:', error); + } }, //鏂板 addHandler() { @@ -141,7 +165,7 @@ this.addVisible = false; }, //淇濆瓨 - async addSaveHandler() { + async addSaveHandler() { if (this.selectData.length <= 0) { this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹紒'); return; @@ -158,13 +182,13 @@ chartIds: item.codeType.join(',') } }) - saveStatisticAnalysis(newArray).then(res => { - this.menuList = res.data.data; - this.nextSave(); - this.$message.success('淇濆瓨鎴愬姛') - }).catch(error=>{ - this.$message.error(error) - }); + saveStatisticAnalysis(newArray).then(res => { + this.menuList = res.data.data; + this.nextSave(); + this.$message.success('淇濆瓨鎴愬姛') + }).catch(error => { + this.$message.error(error) + }); }, nextSave() { const typeList = { @@ -181,8 +205,6 @@ const dataKey = typeList[item.codeType]; if (dataKey) { this[dataKey].push(item); - this[dataKey].forEach(res => { - }) hasValidData = true; } }); @@ -194,10 +216,12 @@ }, //琛ㄦ牸澶氶�� selectChange(selection) { + console.log('selection', selection) this.selectData = selection; }, } } + </script> <style lang="scss" scoped> -- Gitblit v1.9.3