From 02611cd19ef961dedee41f74eb3df13b002993aa Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 19 十二月 2023 17:57:11 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/views/statistic/statisticPage.vue | 262 +++++++++++++++++++++++---------------------------- 1 files changed, 118 insertions(+), 144 deletions(-) diff --git a/Source/UBCS-WEB/src/views/statistic/statisticPage.vue b/Source/UBCS-WEB/src/views/statistic/statisticPage.vue index 316ba94..0369f5c 100644 --- a/Source/UBCS-WEB/src/views/statistic/statisticPage.vue +++ b/Source/UBCS-WEB/src/views/statistic/statisticPage.vue @@ -2,41 +2,18 @@ <!-- 鏂板鍙充晶鎸夐挳--> <div> <div style=" display: flex; justify-content: flex-end;"> - <el-button plain type="primary" @click="addHandler">鏂板</el-button> + <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 - :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"> - </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" placeholder="璇烽�夋嫨鍥捐〃绫诲瀷"> - <el-option label="鎶樼嚎鍥�" value="0"></el-option> - <el-option label="楗肩姸鍥�" value="1"></el-option> - <el-option label="鏌辩姸鍥�" value="2"></el-option> - <el-option label="鏌辩姸鎶樼嚎鍥�" value="3"></el-option> + <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> </el-select> </template> </el-table-column> @@ -46,16 +23,28 @@ <el-button type="primary" @click="addSaveHandler">淇濆瓨</el-button> </span> </el-dialog> - <!-- echarts缁勪欢--> - <div style="margin-top: 15px"> - <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> + <!--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> </div> </div> </template> @@ -65,6 +54,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 {getList} from "@/api/system/statistic"; export default { components: { @@ -76,6 +67,27 @@ name: "statisticPage", data() { return { + selectValue: '', + selectList: [ + { + label: '鎶樼嚎鍥�', + value: '0' + }, + { + label: '楗肩姸鍥�', + value: '1' + }, + { + label: '鏌辩姸鍥�', + value: '2' + }, + { + label: '鍫嗗彔鎶樼嚎鍥�', + value: '3' + } + ], + menuList: [], + dataKeyList: [], addVisible: false, chartName: "", lineList: [], @@ -83,99 +95,41 @@ columnarList: [], mixList: [], selectData: [], - tableData: [ - { - menuName: "宸ヨ壓鏂囦欢", - codeType: "1", - menuData: [ - [222, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], - [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], - ] - }, - { - menuName: "娴嬭瘯sc", - codeType: null, - menuData: [ - [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], - [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], - ] - }, - { - menuName: "浜у搧鍨嬪彿", - codeType: null, - menuData: [ - [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], - [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], - ] - }, - { - menuName: "鍥哄畾璧勪骇", - codeType: null, - menuData: [ - [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], - [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], - ] - }, - { - menuName: "鏉庤埅涓绘暟鎹�", - codeType: null, - menuData: [ - [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], - [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], - ] - }, - { - menuName: "Part", - codeType: null, - menuData: [ - [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], - [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], - ] - }, - { - menuName: "浜哄憳涓绘暟鎹�", - codeType: null, - menuData: [ - [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], - [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], - ] - }, - { - menuName: "浜哄憳", - codeType: null, - menuData: [ - [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], - [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], - ] - }, - { - menuName: "鏍囧噯", - codeType: null, - menuData: [ - [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], - [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], - ] - }, - { - menuName: "鐗╁搧涓绘暟鎹�", - codeType: null, - menuData: [ - [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], - [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], - ] - }, - { - menuName: "鍨嬪彿", - codeType: null, - menuData: [ - [220, 232, 301, 334, 290, 330, 410, 330, 212, 322, 200, 234], - [120, 132, 101, 134, 90, 230, 210, 130, 10, 122, 100, 80], - ] - } - ] + tableData: [] } }, + created() { + this.getMasterList(); + this.getEcharts(); + // deleteChartId({btmname:'zxssaac',chartId:'3'}).then(res=>{ + // console.log('res',res) + // }) + }, methods: { + getMasterList() { + const userId = localStorage.getItem('userId'); + getList({userId: userId}).then(res => { + this.tableData = res.data.data; + }).catch(error => { + this.$message.error(error) + }) + }, + getEcharts() { + getBtmAndChart().then(firstResponse => { + console.log('btm', firstResponse) + const btmNames = Object.keys(firstResponse.data.data).join(','); + const firstData = firstResponse.data.data; + Object.keys(firstData).forEach((item,index) => { + let firstIndex = firstData[item].split(','); + console.log('firstIndex',firstIndex); + }); + if (btmNames) { + getStatisticAnalysis({btmNames}).then(secondResponse => { + console.log('getStatisticAnalysis', secondResponse) + }) + } + }) + }, //鏂板 addHandler() { this.addVisible = true; @@ -185,12 +139,32 @@ this.addVisible = false; }, //淇濆瓨 - addSaveHandler() { + async addSaveHandler() { if (this.selectData.length <= 0) { this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹紒'); return; } + let codeStatus = this.selectData.every(key => key.codeType) + if (!codeStatus) { + this.$message.warning("璇锋鏌ュ凡鍕鹃�夋暟鎹被鍨嬫槸鍚︿负绌猴紒"); + return; + } + const newArray = this.selectData.map(item => { + return { + btmname: item.code, + chartIds: item.codeType.join(',') + } + }) + saveStatisticAnalysis(newArray).then(res => { + this.menuList = res.data.data; + this.nextSave(); + this.$message.success('淇濆瓨鎴愬姛') + }).catch(error => { + this.$message.error(error) + }); + }, + nextSave() { const typeList = { "0": "lineList", "1": "pieList", @@ -199,32 +173,32 @@ }; let hasValidData = false; // 娣诲姞涓�涓爣蹇楁潵璁板綍鏄惁鏈夋湁鏁堢殑閫夋嫨鏁版嵁 - let codeStatus = this.selectData.every(key => key.codeType) - if (!codeStatus) { - this.$message.warning("璇锋鏌ュ凡鍕鹃�夋暟鎹被鍨嬫槸鍚︿负绌猴紒"); - return; - } - this.selectData.forEach(item => { + + this.selectData.forEach((item, index) => { + item.menuData = this.menuList[index].menuData; const dataKey = typeList[item.codeType]; if (dataKey) { this[dataKey].push(item); - hasValidData = true; // 鏍囪鏈夋湁鏁堟暟鎹娣诲姞 + this[dataKey].forEach(res => { + }) + hasValidData = true; } }); if (hasValidData) { + // this.$refs.table.clearSelection(); this.addVisible = false; } }, //琛ㄦ牸澶氶�� - selectChange(selection, row) { - // console.log(selection, row) + selectChange(selection) { this.selectData = selection; }, } } + </script> -<style scoped lang="scss"> +<style lang="scss" scoped> </style> -- Gitblit v1.9.3