From d6f94d02fd033c1c0a68fe2d4e987eb233d2afb1 Mon Sep 17 00:00:00 2001
From: 田源 <tianyuan@vci-tech.com>
Date: 星期三, 05 三月 2025 18:05:03 +0800
Subject: [PATCH] 整合代码

---
 Source/UBCS-WEB/src/components/StatisticsComponent/lineChart.vue |  162 +++++++++++++++++++++++++++++-------------------------
 1 files changed, 87 insertions(+), 75 deletions(-)

diff --git a/Source/UBCS-WEB/src/components/StatisticsComponent/lineChart.vue b/Source/UBCS-WEB/src/components/StatisticsComponent/lineChart.vue
index 4427fb6..083b0ac 100644
--- a/Source/UBCS-WEB/src/components/StatisticsComponent/lineChart.vue
+++ b/Source/UBCS-WEB/src/components/StatisticsComponent/lineChart.vue
@@ -1,103 +1,115 @@
 <template>
-  <div id="main">
+  <div id="main" style="height: 460px;margin-bottom: 15px">
     <basic-container>
-      <v-chart :options="option" ref="chart" style="width: 100%;"></v-chart>
+      <v-chart id="chart" :auto-resize="true" :options="chartOptions"></v-chart>
+      <div style="display: inline-block;float: right;margin-bottom: 10px;margin-right: 60px">
+        <el-button size="small" type="danger" plain @click="delHandler">鍒犻櫎</el-button>
+      </div>
     </basic-container>
   </div>
 </template>
 
 <script>
 import 'echarts'
-import 'echarts/lib/chart/line';
-import 'echarts/lib/component/tooltip';
-import 'echarts/lib/component/title';
-import 'echarts/lib/component/legend';
+import 'echarts/lib/chart/line'
+import 'echarts/lib/component/tooltip'
+import 'echarts/lib/component/title'
+import 'echarts/lib/component/legend'
+import {deleteChartId} from "@/api/statistic/chart"
+
 export default {
-  name: "statisticPage",
+  name: "lineChart",
+  props: {
+    lineData: {
+      type: Array,
+      default: []
+    },
+    chartName: {
+      type: String,
+      default: ""
+    },
+    btmname :{
+      type: String
+    }
+  },
+  watch: {
+    lineData: {
+      immediate: true,
+      handler(newval, oldval) {
+        if (newval) {
+          const series = newval.map((data, index) => ({
+            name: index === 0 ? '鎬婚噺' : '鏂板',
+            type: 'line',
+            smooth: true,
+            stack: index === 0 ? 'Total' : 'total2', // 鏍规嵁 index 鍖哄垎鎬婚噺鍜屾柊澧炵殑鍫嗗彔鎯呭喌
+            label: {
+              show: true,
+              textStyle: {
+                fontSize: 14
+              }
+            },
+            data: data.map(value => ({value}))
+          }));
+
+          this.chartOptions.series = series;
+        }
+      }
+    },
+    chartName: {
+      handler(newval, oldval) {
+        if (newval) {
+          this.chartOptions.title.text = newval + "鏁版嵁缁熻"
+        }
+      },
+      immediate: true,
+      deep: true
+    },
+  },
   data() {
     return {
-      option: {
-        color: ['red','black'],
-        legend: {
-          data: ['鍥句緥1', '鍥句緥2', '鍥句緥3'],
-        },
-        dataset: [
-          {
-            id: 'dataset_raw',
-            source: [
-              { month: 1, total: 1000, newly: 800 },
-              { month: 2, total: 5000, newly: 1000 },
-              { month: 3, total: 1800, newly: 1400 },
-              { month: 4, total: 1500, newly: 1200 },
-              { month: 5, total: 1000, newly: 1200 },
-              { month: 6, total: 1500, newly: 1200 },
-              { month: 7, total: 1500, newly: 1200 },
-              { month: 8, total: 1500, newly: 1000 },
-              { month: 9, total: 1500, newly: 1200 },
-              { month: 10, total: 1500, newly: 1200 },
-              { month: 11, total: 1500, newly: 1200 },
-              { month: 12, total: 1500, newly: 1200 },
-            ],
-          },
-        ],
+      chartOptions: {
+        color: ['#2eadd6', '#FFA500'],
         title: {
-          text: '涓绘暟鎹粺璁″垎鏋�',
-          left:'center',
-          textAlign:'center'
+          text: ''
         },
         tooltip: {
-          trigger: 'axis',
+          trigger: 'axis'
+        },
+        legend: {
+          data: ['鎬婚噺', '鏂板'],
+          textStyle: {
+            fontSize: 14 // 璋冩暣瀛椾綋澶у皬
+          }
         },
         xAxis: {
+          boundaryGap: true,
           type: 'category',
-          nameLocation: 'middle',
-          name:'month',
-          // data: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] // 鏈堜唤鏁版嵁
+          data: ['1鏈�', '2鏈�', '3鏈�', '4鏈�', '5鏈�', '6鏈�', '7鏈�', '8鏈�', '9鏈�', '10鏈�', '11鏈�', '12鏈�'],
         },
         yAxis: {
-          name: 'Number',
           type: 'value',
         },
-        series: [
-          {
-            type: 'line',
-            datasetId: 'dataset_raw',
-            showSymbol: false,
-            encode: {
-              x: 'month',
-              y: 'total',
-              itemName: 'month',
-              tooltip: ['total'],
-            },
-          },
-          {
-            type: 'line',
-            datasetId: 'dataset_raw',
-            showSymbol: false,
-            encode: {
-              x: 'month',
-              y: 'newly',
-              itemName: 'month',
-              tooltip: ['newly'],
-            },
-          },
-        ],
+        series: []
       }
     };
   },
-  mounted() {
-    import('echarts').then((echarts) => {
-      // console.log(echarts)
-      this.$nextTick(() => {
-        const chartDom = this.$refs.chart.$el;
-        const myChart = echarts.init(chartDom);
-        myChart.setOption(this.option);
-      });
-    });
-  },
-}
+  methods:{
+    delHandler(){
+      deleteChartId({btmname:this.btmname,chartId:'0'}).then(res=>{
+        this.$message.success(this.chartName+'鎶樼嚎鍥撅紝鍒犻櫎鎴愬姛锛�')
+        this.$emit('refresh');
+      }).catch(error=>{
+        this.$message.error(error)
+      })
+    }
+  }
+};
 </script>
 
-<style scoped>
+<style lang="scss" scoped>
+#chart {
+  width: 100%;
+  height: 400px;
+}
 
 </style>

--
Gitblit v1.9.3