From cd1eb4f48fbbba55154e9aec80ec93f48e9c075b Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 03 七月 2025 11:03:37 +0800
Subject: [PATCH] 代码初始化

---
 admin/src/views/index.vue |  182 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 154 insertions(+), 28 deletions(-)

diff --git a/admin/src/views/index.vue b/admin/src/views/index.vue
index 76fe18c..db6abe6 100644
--- a/admin/src/views/index.vue
+++ b/admin/src/views/index.vue
@@ -18,8 +18,8 @@
 <!--              <img src="@/assets/images/bg_a.png" alt="" />-->
             </div>
             <div class="content">
-<!--              <div>鏈В鍐筹細{{ headerData.sheNum || 0}}</div>-->
-<!--              <div>宸茶В鍐筹細{{ headerData.sheNum || 0}}</div>-->
+              <div>鏈В鍐筹細{{ 0}}</div>
+              <div>宸茶В鍐筹細{{ headerData.sheNum || 0}}</div>
               <div>鎬诲伐鍗曢噺锛歿{ headerData.sheNum || 0}}</div>
             </div>
           </div>
@@ -34,8 +34,8 @@
 -->
             </div>
             <div class="content">
-              <div>鏈В鍐筹細{{ headerData.dbhYesNum || 0}}</div>
-              <div>宸茶В鍐筹細{{ headerData.dbhNoNum || 0}}</div>
+              <div>鏈В鍐筹細{{ headerData.dbhNoNum || 0}}</div>
+              <div>宸茶В鍐筹細{{ headerData.dbhYesNum || 0}}</div>
                <div>鎬诲伐鍗曢噺锛歿{ headerData.dbhNum || 0}}</div>
             </div>
           </div>
@@ -62,13 +62,34 @@
 <!--              <img src="@/assets/images/bg_a.png" alt="" />-->
             </div>
             <div class="content">
-              <div>鏈В鍐筹細{{ headerData.dcaChildYesNum || 0}}</div>
-              <div>宸茶В鍐筹細{{ headerData.dcaChildNoNum || 0}}</div>
+              <div>鏈В鍐筹細{{ headerData.dcaChildNoNum || 0}}</div>
+              <div>宸茶В鍐筹細{{ headerData.dcaChildYesNum || 0}}</div>
               <div>鎬诲伐鍗曢噺锛歿{ headerData.dcaChildNum || 0}}</div>
             </div>
           </div>
         </div>
         <div class="static_wrap">
+          <div class="df mb50" >
+            <div class="wrap static1">
+              <div class="header" style="text-align: center">
+                <div class="home_title"  style="text-align: center;width: 80%">鍚勭被鍨嬪伐鍗曞崰姣旂粺璁★紙{{searchForm.timeName}}锛�</div>
+                <div style="text-align: right;width: 150px;font-size: 12px;height: 25px">
+                  <el-form   :model="searchForm" label-width="100px" inline >
+                      <el-select v-model="searchForm.timeType"  :popper-append-to-body="true" clearable   placeholder="鏃堕棿鑼冨洿"   @change="reloadDataByType()">
+                        <el-option value="0" label="鏈懆"/>
+                        <el-option value="1" label="鏈湀"/>
+                        <el-option value="2" label="鏈搴�"/>
+                        <el-option value="3" label="鏈勾"/>
+                      </el-select>
+                  </el-form>
+                </div>
+              </div>
+              <div class="echart"  style="height: 400px" >
+                <div  id="circleChart0"></div>
+                <div  id="circleChart1"></div>
+              </div>
+            </div>
+          </div>
           <div class="df mb50" >
             <div class="wrap static1">
               <div class="header">
@@ -124,10 +145,15 @@
   },
   data () {
     return {
+      searchForm: {
+        timeType: null,
+        timeName: '鍏ㄩ儴'
+      },
       colors,
       nowDate: '',
       nowWeek: '',
       headerData: {},
+      headerData1: {},
       staticData0: {},
       staticData01: {},
       staticData1: {},
@@ -158,6 +184,23 @@
       this.getWorkBody2()
       this.getWorkBody3()
       // this.getWorkBody()
+    },
+    reloadDataByType () {
+      getIndexData({timeType: this.searchForm.timeType }).then(res => {
+        if (this.searchForm.timeType == '0') {
+          this.searchForm.timeName = '鏈懆'
+        } else if (this.searchForm.timeType =='1') {
+          this.searchForm.timeName = '鏈湀'
+        } else if (this.searchForm.timeType =='2') {
+          this.searchForm.timeName = '鏈搴�'
+        } else if (this.searchForm.timeType == '3') {
+          this.searchForm.timeName = '鏈勾'
+        } else {
+          this.searchForm.timeName = '鍏ㄩ儴'
+        }
+        this.headerData1 =res || []
+        this.initAllData()
+      })
     },
     getWorkBody0 () {
       getWorkOrderData({ queryType: 0, orderType: 0 }).then(res => {
@@ -202,7 +245,22 @@
     getWorkHead () {
       getIndexData({ }).then(res => {
         this.headerData = res || {}
+        this.headerData1 = res || {}
+        this.initAllData()
       })
+    },
+    initAllData(){
+      var cdata = []
+      cdata.push({ name: '璺岀粖婊戜簨浠�', value: this.headerData1.dbhNum || 0 })
+      cdata.push({ name: 'DCA浜嬩欢', value: this.headerData1.dcaChildNum || 0 })
+      cdata.push({ name: 'SHE浜嬩欢', value: this.headerData1.sheNum || 0 })
+      this.initEchartCircleDo('circleChart0', '鍚勭被鍨嬩簨浠跺伐鍗曚笂鎶ョ粺璁�', '', cdata)
+      var xdata = ['SHE浜嬩欢', '璺岀粖婊戜簨浠�', 'DCA浜嬩欢']
+      var ydata = []
+      ydata.push({ name: '宸茶В鍐�', stack: 'cateNum', type: 'bar', unit: '椤�', color: '#f07e6f', data: [this.headerData1.sheNum || 0, this.headerData1.dbhYesNum || 0, this.headerData1.dcaChildYesNum || 0] })
+      ydata.push({ name: '鏈В鍐�', stack: 'cateNum', type: 'bar', unit: '椤�', color: '#8383ff', data: [0, this.headerData1.dbhNoNum || 0, this.headerData1.dcaChildNoNum || 0] })
+      ydata.push({ name: '鎬诲崟閲�', type: 'bar', unit: '娆�', color: '#29aeff', data: [this.headerData1.sheNum || 0, this.headerData1.dbhNum || 0, this.headerData1.dcaChildNum || 0] })
+      this.initEchartDataDo('鍚勭被鍨嬩簨浠剁姸鎬佺粺璁�', 'circleChart1', xdata, ydata)
     },
     updateDate () {
       this.nowDate = dayjs().format('YYYY骞碝鏈圖鏃�')
@@ -210,25 +268,25 @@
     },
     initEchart0 () {
       var ydata = [{ name: '宸ュ崟鏁伴噺', type: 'line', unit: '鍗�', color: '#29aeff', data: this.staticData0.map(i => i.total) }]
-      this.initEchartDataDo('鏈堝害缁熻','echart0', this.staticData0.map(i => i.dateStr), ydata)
+      this.initEchartDataDo('鏈堝害缁熻', 'echart0', this.staticData0.map(i => i.dateStr), ydata)
     },
     initEchart01 () {
       var ydata = [{ name: '宸ュ崟鏁伴噺', type: 'bar', unit: '鍗�', color: '#29aeff', data: this.staticData01.map(i => i.total) }]
-      this.initEchartDataDo('瀛e害缁熻','echart01', this.staticData01.map(i => i.dateStr), ydata)
+      this.initEchartDataDo('瀛e害缁熻', 'echart01', this.staticData01.map(i => i.dateStr), ydata)
     },
     initEchart1 () {
       var ydata = []
       ydata.push({ name: '绗﹀悎椤�', type: 'line', unit: '椤�', color: '#f07e6f', data: this.staticData1.map(i => i.dcaYesTotal) })
       ydata.push({ name: '涓嶇鍚堥」', type: 'line', unit: '椤�', color: '#8383ff', data: this.staticData1.map(i => i.dcaNoTotal) })
       ydata.push({ name: '涓婃姤娆℃暟', type: 'bar', unit: '娆�', color: '#29aeff', data: this.staticData1.map(i => i.total) })
-      this.initEchartDataDo('鏈堝害缁熻','echart1', this.staticData1.map(i => i.dateStr), ydata)
+      this.initEchartDataDo('鏈堝害缁熻', 'echart1', this.staticData1.map(i => i.dateStr), ydata)
     },
     initEchart11 () {
       var ydata = []
       ydata.push({ name: '绗﹀悎椤�', type: 'line', unit: '椤�', color: '#f07e6f', data: this.staticData11.map(i => i.dcaYesTotal) })
       ydata.push({ name: '涓嶇鍚堥」', type: 'line', unit: '椤�', color: '#8383ff', data: this.staticData11.map(i => i.dcaNoTotal) })
       ydata.push({ name: '涓婃姤娆℃暟', type: 'bar', unit: '娆�', color: '#29aeff', data: this.staticData11.map(i => i.total) })
-      this.initEchartDataDo('瀛e害缁熻','echart11', this.staticData11.map(i => i.dateStr), ydata)
+      this.initEchartDataDo('瀛e害缁熻', 'echart11', this.staticData11.map(i => i.dateStr), ydata)
     },
     initEchart2 () {
       var ydata = []
@@ -237,7 +295,7 @@
       ydata.push({ name: 'SHE鍏抽棴鍗曢噺', type: 'line', unit: '鍗�', color: '#e75314', data: this.staticData2.map(i => i.sheTotal) })
       ydata.push({ name: '鏈В鍐冲崟閲�', type: 'line', unit: '鍗�', color: '#8383ff', data: this.staticData2.map(i => i.unCloseTotal) })
       ydata.push({ name: '宸ュ崟鎬婚噺', type: 'line', unit: '鍗�', color: '#30d3de', data: this.staticData2.map(i => i.total) })
-      this.initEchartDataDo('鏈堝害缁熻','echart2', this.staticData2.map(i => i.dateStr), ydata)
+      this.initEchartDataDo('鏈堝害缁熻', 'echart2', this.staticData2.map(i => i.dateStr), ydata)
     },
     initEchart21 () {
       var ydata = []
@@ -245,8 +303,8 @@
       ydata.push({ name: 'WTS鍏抽棴鍗曢噺', type: 'bar', unit: '鍗�', color: '#29aeff', data: this.staticData21.map(i => i.wtsTotal) })
       ydata.push({ name: 'SHE鍏抽棴鍗曢噺', type: 'bar', unit: '鍗�', color: '#e75314', data: this.staticData21.map(i => i.sheTotal) })
       ydata.push({ name: '鏈В鍐冲崟閲�', type: 'bar', unit: '鍗�', color: '#8383ff', data: this.staticData21.map(i => i.unCloseTotal) })
-      ydata.push({ name: '宸ュ崟鎬婚噺', type: 'bar', unit: '鍗�', color: '#30d3de', data: this.staticData21.map(i => i.total) })
-      this.initEchartDataDo('瀛e害缁熻','echart21', this.staticData21.map(i => i.dateStr), ydata)
+      ydata.push({ name: '宸ュ崟鎬婚噺', type: 'line', unit: '鍗�', color: '#30d3de', data: this.staticData21.map(i => i.total) })
+      this.initEchartDataDo('瀛e害缁熻', 'echart21', this.staticData21.map(i => i.dateStr), ydata)
     },
     initEchart3 () {
       var ydata = []
@@ -255,7 +313,7 @@
       ydata.push({ name: 'SHE鍏抽棴鍗曢噺', type: 'line', unit: '鍗�', color: '#e75314', data: this.staticData3.map(i => i.sheTotal) })
       ydata.push({ name: '鏈В鍐冲崟閲�', type: 'line', unit: '鍗�', color: '#8383ff', data: this.staticData3.map(i => i.unCloseTotal) })
       ydata.push({ name: '宸ュ崟鎬婚噺', type: 'line', unit: '鍗�', color: '#30d3de', data: this.staticData3.map(i => i.total) })
-      this.initEchartDataDo('鏈堝害缁熻','echart3', this.staticData3.map(i => i.dateStr), ydata)
+      this.initEchartDataDo('鏈堝害缁熻', 'echart3', this.staticData3.map(i => i.dateStr), ydata)
     },
     initEchart31 () {
       var ydata = []
@@ -263,49 +321,55 @@
       ydata.push({ name: 'WTS鍏抽棴鍗曢噺', type: 'bar', unit: '鍗�', color: 'rgba(217,4,34,0.83)', data: this.staticData31.map(i => i.wtsTotal) })
       ydata.push({ name: 'SHE鍏抽棴鍗曢噺', type: 'bar', unit: '鍗�', color: '#e75314', data: this.staticData31.map(i => i.sheTotal) })
       ydata.push({ name: '鏈В鍐冲崟閲�', type: 'bar', unit: '鍗�', color: '#8383ff', data: this.staticData31.map(i => i.unCloseTotal) })
-      ydata.push({ name: '宸ュ崟鎬婚噺', type: 'bar', unit: '鍗�', color: '#30d3de', data: this.staticData31.map(i => i.total) })
-      this.initEchartDataDo('瀛e害缁熻','echart31', this.staticData31.map(i => i.dateStr), ydata)
+      ydata.push({ name: '宸ュ崟鎬婚噺', type: 'line', unit: '鍗�', color: '#30d3de', data: this.staticData31.map(i => i.total) })
+      this.initEchartDataDo('瀛e害缁熻', 'echart31', this.staticData31.map(i => i.dateStr), ydata)
     },
-    initEchartDataDo (title,id, xdata, ydata) {
+    initEchartDataDo (title, id, xdata, ydata) {
       const myChart = echarts.init(document.getElementById(id))
       myChart.setOption({
         title: {
-          text:  (title || '') ,
-          textStyle:{
+          text: (title || ''),
+          textStyle: {
             fontSize: 12,
             fontStyle: 'normal',
             fontWeight: 'bold'
-          },
+          }
         },
         tooltip: {
           trigger: 'axis',
           axisPointer: {
             type: 'shadow'
           },
-          textStyle:{
+          textStyle: {
             fontSize: 10,
             fontStyle: 'normal',
             fontWeight: 'normal'
-          },
+          }
         },
-        legend:{
+        legend: {
           orient: 'vertical',
           left: 'right',
-          textStyle:{
+          textStyle: {
             fontSize: 10,
             fontStyle: 'normal',
             fontWeight: 'normal'
-          },
+          }
         },
         xAxis: {
           type: 'category',
-          boundaryGap: false,
+          // boundaryGap: false,
           data: xdata
         },
         yAxis: {
           type: 'value',
           name: '',
-          textStyle:{
+          min: 0,
+          axisLabel: {
+            formatter: function (value) {
+              return Number.isInteger(value) ? value : ''
+            }
+          },
+          textStyle: {
             fontSize: 10,
             fontStyle: 'normal',
             fontWeight: 'normal'
@@ -340,6 +404,7 @@
         array.push({
           data: ydata[i].data,
           name: ydata[i].name,
+          stack: ydata[i].stack || '',
           type: ydata[i].type || 'line',
           areaStyle: {
             normal: {
@@ -369,7 +434,7 @@
               colorStops: [{
                 offset: 0, color: ydata[i].color || '#207FF7' // 0% 澶勭殑棰滆壊
               }, {
-                offset: 1, color: ydata[i].color|| '#207FF7' // 100% 澶勭殑棰滆壊
+                offset: 1, color: ydata[i].color || '#207FF7' // 100% 澶勭殑棰滆壊
               }]
             },
             width: 2 // 绾挎潯绮楃粏
@@ -386,12 +451,73 @@
       }
 
       return array
+    },
+    initEchartCircleDo (id, title, subTitle, data) {
+      var option = {
+        title: {
+          text: '',
+          subtext: '',
+          left: 'center',
+          bottom: 'bottom',
+          textStyle: {
+            fontSize: 10,
+            fontStyle: 'normal',
+            fontWeight: 'bold'
+          }
+        },
+        tooltip: {
+          trigger: 'item'
+        },
+        legend: {
+          orient: 'vertical',
+          left: 'left',
+          textStyle: {
+            fontSize: 10,
+            fontStyle: 'normal',
+            fontWeight: 'normal'
+          }
+        },
+        series: [
+          {
+            name: title || '',
+            type: 'pie',
+            radius: '50%',
+            data: data,
+            label: {
+              show: true,
+              formatter: '{b}:{d}%',
+              textStyle: {
+                fontSize: 10,
+                fontStyle: 'normal',
+                fontWeight: 'normal'
+              }
+            },
+            labelLine: {
+              show: true
+            },
+            emphasis: {
+              itemStyle: {
+                shadowBlur: 10,
+                shadowOffsetX: 0,
+                shadowColor: 'rgba(0, 0, 0, 0.5)'
+              }
+            }
+          }
+        ]
+      }
+      const myChart = echarts.init(document.getElementById(id))
+      myChart.setOption(option)
     }
   }
 }
 </script>
 
 <style lang="scss" scoped>
+
+::v-deep .el-input--small .el-input__inner {
+  height: 30px !important; // 杩欓噷灏辨槸淇敼榛樿楂樺害
+  width: 120px;
+}
 div {
   box-sizing: border-box;
 }

--
Gitblit v1.9.3