From e9a590e862148092027510b15d33cdd32691a6f5 Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期三, 06 十二月 2023 09:43:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/UBCS-WEB/src/views/statistic/statisticPage.vue |  159 ++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 152 insertions(+), 7 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/statistic/statisticPage.vue b/Source/UBCS-WEB/src/views/statistic/statisticPage.vue
index 415865a..9403436 100644
--- a/Source/UBCS-WEB/src/views/statistic/statisticPage.vue
+++ b/Source/UBCS-WEB/src/views/statistic/statisticPage.vue
@@ -8,14 +8,55 @@
     <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">
+        </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>
+          </template>
+        </el-table-column>
+      </el-table>
+      <span slot="footer" class="dialog-footer">
+    <el-button @click="escHandler">鍙� 娑�</el-button>
+    <el-button type="primary" @click="addSaveHandler">淇濆瓨</el-button>
+  </span>
     </el-dialog>
     <!--    echarts缁勪欢-->
-    <div>
-            <lineChart></lineChart>
-            <pieChart></pieChart>
-            <ColumnarChart></ColumnarChart>
+    <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>
     </div>
   </div>
 </template>
@@ -24,27 +65,131 @@
 import lineChart from "../../components/StatisticsComponent/lineChart"
 import pieChart from "../../components/StatisticsComponent/pieChart"
 import ColumnarChart from "../../components/StatisticsComponent/ColumnarChart"
+import mixCart from "../../components/StatisticsComponent/mixCart"
+import {getStatisticAnalysis} from "@/api/statistic/chart"
+import {getList} from "@/api/system/statistic";
 
 export default {
   components: {
     lineChart,
     pieChart,
-    ColumnarChart
+    ColumnarChart,
+    mixCart
   },
   name: "statisticPage",
   data() {
     return {
+      menuList:[],
+      dataKeyList: [],
       addVisible: false,
+      chartName: "",
+      lineList: [],
+      pieList: [],
+      columnarList: [],
+      mixList: [],
+      selectData: [],
+      tableData: []
     }
   },
+  created() {
+    this.getMasterList()
+  },
   methods: {
+    getMasterList() {
+      const userId = localStorage.getItem('userId');
+      getList({userId: userId}).then(res => {
+        this.tableData = res.data.data;
+      })
+    },
+    //鏂板
     addHandler() {
       this.addVisible = true;
-    }
+    },
+    //鍙栨秷
+    escHandler() {
+      this.addVisible = false;
+    },
+    //淇濆瓨
+    addSaveHandler() {
+      if (this.selectData.length <= 0) {
+        this.$message.warning('璇疯嚦灏戦�夋嫨涓�鏉℃暟鎹紒');
+        return;
+      }
+      let codeStatus = this.selectData.every(key => key.codeType)
+      if (!codeStatus) {
+        this.$message.warning("璇锋鏌ュ凡鍕鹃�夋暟鎹被鍨嬫槸鍚︿负绌猴紒");
+        return;
+      }
+
+      this.dataKeyList = this.selectData.map(obj => obj.code)
+      const btmName = this.dataKeyList.join(",");
+      if (btmName) {
+        // this.menuList=[
+        //   {
+        //     menuData: [
+        //       [0, 0, 0, 0, 0, 0, 4, 9, 12, 12, 12, 12],
+        //       [0, 0, 0, 0, 0, 0, 4, 5, 3, 0, 0, 0]
+        //     ],
+        //     code:1
+        //   },
+        //   {
+        //     menuData: [
+        //       [0, 0, 0, 1, 1, 1, 1, 1, 1, 29, 5315, 5315],
+        //       [0, 0, 0, 1, 0, 0, 0, 0, 0, 28, 5286, 0]
+        //     ],
+        //     code:2
+        //   },
+        //   {
+        //     menuData: [
+        //       [0, 58, 60, 61, 75, 84, 145, 162, 166, 177, 186, 186],
+        //       [0, 58, 2, 1, 14, 9, 61, 17, 4, 11, 9, 0]
+        //     ],
+        //     code:3
+        //   }
+        // ]
+        // this.nextSave();
+        // this.$message.success('淇濆瓨鎴愬姛')
+        getStatisticAnalysis({btmNames: btmName}).then(res => {
+          this.menuList = res.data.data;
+          this.nextSave();
+          this.$message.success('淇濆瓨鎴愬姛')
+        });
+      }else {
+        this.$message.warning('璇烽�夋嫨鏁版嵁锛�')
+      }
+    },
+    nextSave() {
+      const typeList = {
+        "0": "lineList",
+        "1": "pieList",
+        "2": "columnarList",
+        "3": "mixList"
+      };
+
+      let hasValidData = false; // 娣诲姞涓�涓爣蹇楁潵璁板綍鏄惁鏈夋湁鏁堢殑閫夋嫨鏁版嵁
+
+      this.selectData.forEach((item, index) => {
+        item.menuData = this.menuList[index].menuData;
+        const dataKey = typeList[item.codeType];
+        if (dataKey) {
+          this[dataKey].push(item);
+          hasValidData = true;
+        }
+      });
+
+      if (hasValidData) {
+        // this.$refs.table.clearSelection();
+        this.addVisible = false;
+      }
+    },
+    //琛ㄦ牸澶氶��
+    selectChange(selection) {
+      this.selectData = selection;
+    },
   }
 }
 </script>
 
-<style scoped>
+<style lang="scss" scoped>
 
 </style>

--
Gitblit v1.9.3