From f798ddf028ff583492cfec9d04d2530de54f46eb Mon Sep 17 00:00:00 2001
From: licp <lichunping@guanfang.com.cn>
Date: 星期四, 11 四月 2024 14:28:10 +0800
Subject: [PATCH] 完成检验项目统计前端页面

---
 src/components/tool/echart.vue                        |    8 
 src/components/view/b4-daily-business-statistics.vue  |   10 
 static/js/menu.js                                     |    2 
 src/util/echarts.js                                   |   82 +++++++++++
 src/components/view/b4-inspection-item-statistics.vue |  261 +++++++++++++++++++++++++++++++++++++
 5 files changed, 353 insertions(+), 10 deletions(-)

diff --git a/src/components/tool/echart.vue b/src/components/tool/echart.vue
index c0686d1..f9b5300 100644
--- a/src/components/tool/echart.vue
+++ b/src/components/tool/echart.vue
@@ -19,7 +19,7 @@
         default: () => {}
       },
       datas: {
-          type: Array,
+          type: Object,
           default: () => {}
       }
   },
@@ -74,6 +74,11 @@
             case 'line':
             iuCharts.drawLine(this.chart,this.datas)
               break;
+            case 'pie':
+            iuCharts.drawPie(this.chart,this.datas)
+              break;
+            default:
+              break;
           }
           setTimeout(()=>{
             this.chart.resize()
@@ -91,7 +96,6 @@
               this.chart.resize();
           });
       },
-
       /* 褰撶獥鍙g缉鏀炬椂锛宔chart鍔ㄦ�佽皟鏁磋嚜韬ぇ灏� */
       windowResizeListener() {
           if (!this.chart) return;
diff --git a/src/components/view/b4-daily-business-statistics.vue b/src/components/view/b4-daily-business-statistics.vue
index a559a44..b6ca2d7 100644
--- a/src/components/view/b4-daily-business-statistics.vue
+++ b/src/components/view/b4-daily-business-statistics.vue
@@ -2,7 +2,7 @@
 <div class="daily-main">
   <div class="daily-content" style="height:100%">
     <p style="font-size: 16px;padding:19.5px 0px">姣忔棩涓氬姟缁熻</p>
-    <el-row :gutter="30">
+    <el-row :gutter="35">
       <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;">
         <div class="daily-card daily-head">
           <div class="daily-head-left">
@@ -88,17 +88,17 @@
         </div>
       </el-col>
     </el-row>
-    <el-row :gutter="30">
+    <el-row :gutter="35">
       <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" style="margin-bottom: 30px;">
         <div class="daily-card chart-box">
           <h4>杩�10鏃ヤ换鍔℃帴鏀堕噺</h4>
-          <echart-module :id="'left'" :config="chartConfig0" :datas="chartData0"></echart-module>
+          <echart-module :id="'daily-left'" :config="chartConfig0" :datas="chartData0"></echart-module>
         </div>
       </el-col>
       <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" style="margin-bottom: 30px;">
         <div class="daily-card chart-box">
           <h4>杩�10鏃ュ疄闄呭畬鎴愪换鍔′笌鎺ユ敹浠诲姟瀵规瘮</h4>
-          <echart-module :id="'right'" :config="chartConfig1" :datas="chartData1"></echart-module>
+          <echart-module :id="'daily-right'" :config="chartConfig1" :datas="chartData1"></echart-module>
         </div>
       </el-col>
     </el-row>
@@ -184,7 +184,7 @@
   font-weight: bold;
   font-size: 28px;
   display: inline-block;
-  margin-bottom: 26px;
+  margin-bottom: 30px;
 }
 
 .daily-head-left .daily-head-left-info{
diff --git a/src/components/view/b4-inspection-item-statistics.vue b/src/components/view/b4-inspection-item-statistics.vue
new file mode 100644
index 0000000..e204faa
--- /dev/null
+++ b/src/components/view/b4-inspection-item-statistics.vue
@@ -0,0 +1,261 @@
+<template>
+  <div class="inspection-main">
+    <div class="inspection-content" style="height:100%">
+      <p style="font-size: 16px;padding:19.5px 0px">妫�娴嬮」鐩粺璁�</p>
+      <el-row :gutter="35">
+        <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;">
+          <div class="inspection-card inspection-head">
+            <div class="inspection-head-left">
+              <h4>浠婃棩椤圭洰鎺ユ敹</h4>
+              <span >2453</span>
+              <div class="inspection-head-left-info">
+                <img src="../../../static/img/daliy-up.svg" alt="">
+                <span :class="{active:false}" class="num">&nbsp; 8.5%&nbsp; </span>
+                <span>杈冩槰澶�</span>
+              </div>
+            </div>
+            <img src="../../../static/img/daliy-0.svg" alt="" srcset="">
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;">
+          <div class="inspection-card inspection-head">
+            <div class="inspection-head-left">
+              <h4>浠婃棩椤圭洰瀹屾垚</h4>
+              <span >1687</span>
+              <div class="inspection-head-left-info">
+                <img src="../../../static/img/daliy-up.svg" alt="">
+                <span :class="{active:false}" class="num">&nbsp; 8.5%&nbsp; </span>
+                <span>杈冩槰澶�</span>
+              </div>
+            </div>
+            <img src="../../../static/img/daliy-1.svg" alt="" srcset="">
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;">
+          <div class="inspection-card inspection-head">
+            <div class="inspection-head-left">
+              <h4>浠婃棩椤圭洰鍓╀綑</h4>
+              <span >766</span>
+              <div class="inspection-head-left-info">
+                <img src="../../../static/img/daliy-down.svg" alt="">
+                <span :class="{active:true}" class="num">&nbsp; 8.5%&nbsp; </span>
+                <span>杈冩槰澶�</span>
+              </div>
+            </div>
+            <img src="../../../static/img/daliy-2.svg" alt="" srcset="">
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;">
+          <div class="inspection-card inspection-head" style="flex-direction: column;padding-bottom: 5px;">
+            <h4 style="margin-bottom: 5px;">浠婃棩椤圭洰鍚堟牸鐜�</h4>
+            <echart-module :id="'inspection-qualified'" :config="chartConfig2" :datas="chartData2" style="align-self: center;"></echart-module>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;">
+          <div class="inspection-card inspection-head" style="flex-direction: column;padding-bottom: 5px;">
+            <h4 style="margin-bottom: 5px;">浠婃棩椤圭洰瀹屾垚鐜�</h4>
+            <echart-module :id="'inspection-complete'" :config="chartConfig3" :datas="chartData3" style="align-self: center;"></echart-module>
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="10" :md="8" :lg="6" :xl="4" style="margin-bottom: 30px;">
+          <div class="inspection-card inspection-head" style="flex-direction: column;padding-bottom: 5px;">
+            <h4 style="margin-bottom: 5px;">浠婃棩椤圭洰寤舵湡鐜�</h4>
+            <echart-module :id="'inspection-extension'" :config="chartConfig4" :datas="chartData4" style="align-self: center;"></echart-module>
+          </div>
+        </el-col>
+      </el-row>
+      <el-row :gutter="35">
+        <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" style="margin-bottom: 30px;">
+          <div class="inspection-card chart-box">
+            <h4>杩�10鏃ラ」鐩帴鏀堕噺</h4>
+            <echart-module :id="'inspection-left'" :config="chartConfig0" :datas="chartData0"></echart-module>
+          </div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" style="margin-bottom: 30px;">
+          <div class="inspection-card chart-box">
+            <h4>杩�10鏃ュ疄闄呭畬鎴愰」鐩笌鎺ユ敹椤圭洰瀵规瘮</h4>
+            <echart-module :id="'inspection-right'" :config="chartConfig1" :datas="chartData1"></echart-module>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+  </div>
+  </template>
+
+  <script>
+
+  import EchartModule from '../tool/echart.vue'
+  export default {
+    components: {EchartModule},
+    data(){
+      return{
+        chartConfig0:{
+          height: '435px',
+          isLoading:true,
+          type:'line'
+        },
+        chartData0:{
+          xData:['4-11','4-12','4-13','4-14','4-15','4-16','4-17','4-18','4-19','4-20'],
+          yData:[
+            {
+              title:'椤圭洰鎺ユ敹閲�',
+              data:[10,20,10,40,50,20,70,40,90,50]
+            }
+          ]
+        },
+        chartConfig1:{
+          height: '435px',
+          isLoading:true,
+          type:'bar'
+        },
+        chartData1:{
+          xData:['4-11','4-12','4-13','4-14','4-15','4-16','4-17','4-18','4-19','4-20'],
+          yData:[
+            {
+              title:'浠婃棩鎺ユ敹',
+              data:[10,20,10,40,50,20,70,40,90,50]
+            },
+            {
+              title:'浠婃棩瀹屾垚',
+              data:[15,10,6,33,66,44,56,77,44,55]
+            },
+          ]
+        },
+        chartConfig2:{
+          height: '118px',
+          width:'140px',
+          isLoading:true,
+          type:'pie'
+        },
+        chartData2:{
+          title:'浠婃棩椤圭洰鍚堟牸鐜�',
+          percentage:'68%',
+          color:['#1CCAB8','#E1E4E8'],
+          data:[
+            {
+              name:'鍚堟牸',
+              value:'68'
+            },
+            {
+              name:'涓嶅悎鏍�',
+              value:'32'
+            },
+          ]
+        },
+        chartConfig3:{
+          height: '118px',
+          width:'140px',
+          isLoading:true,
+          type:'pie'
+        },
+        chartData3:{
+          title:'浠婃棩椤圭洰瀹屾垚鐜�',
+          percentage:'68%',
+          color:['#FBB647','#E1E4E8'],
+          data:[
+            {
+              name:'瀹屾垚',
+              value:'68'
+            },
+            {
+              name:'鏈畬鎴�',
+              value:'32'
+            },
+          ]
+        },
+        chartConfig4:{
+          height: '118px',
+          width:'140px',
+          isLoading:true,
+          type:'pie'
+        },
+        chartData4:{
+          title:'浠婃棩椤瑰欢鏈熺巼',
+          percentage:'68%',
+          color:['#FF3838','#E1E4E8'],
+          data:[
+            {
+              name:'寤舵湡',
+              value:'68'
+            },
+            {
+              name:'鏈欢鏈�',
+              value:'32'
+            },
+          ]
+        },
+      }
+    }
+  }
+  </script>
+
+  <style scoped>
+  .inspection-main{
+    height: 100%;
+    overflow-y: auto;
+    overflow-x: hidden;
+  }
+  .inspection-card{
+    width: 100%;
+    background: #FFFFFF;
+    border-radius: 14px;
+    box-shadow: 6px 6px 54px 0px rgba(0,0,0,0.05);
+  }
+
+  .inspection-head{
+    padding: 16px;
+    box-sizing: border-box;
+    display: flex;
+    justify-content: space-between;
+    align-items: flex-start;
+  }
+
+  .inspection-head h4{
+    color: #202224;
+    font-size: 16px;
+    font-weight: 400;
+    margin-bottom: 20px;
+    opacity: 0.8;
+  }
+
+  .inspection-head-left>span{
+    font-family: Nunito Sans-Bold;color: #202224;
+    font-weight: bold;
+    font-size: 28px;
+    display: inline-block;
+    margin-bottom: 30px;
+  }
+
+  .inspection-head-left .inspection-head-left-info{
+    display: flex;
+    align-items: center;
+    font-size: 16px;
+    color: #202224;
+  }
+
+  .inspection-head-left .inspection-head-left-info .num{
+    color: #00B69B;
+  }
+
+  .inspection-head-left .inspection-head-left-info .num.active{
+    color: #F93C65;
+  }
+
+  .chart-box{
+    padding: 30px 24px;
+    box-sizing: border-box;
+  }
+
+  .chart-box h4{
+    color: #202224;
+    font-family: PingFang SC-Regular;
+    font-weight: 400;
+    font-size: 24px;
+    margin-bottom: 16px;
+  }
+
+  .chart{
+    width: 100%;
+    height: 450px;
+  }
+  </style>
diff --git a/src/util/echarts.js b/src/util/echarts.js
index a2b8cc8..0842962 100644
--- a/src/util/echarts.js
+++ b/src/util/echarts.js
@@ -33,7 +33,7 @@
         top: '5%',
         left: '7%',
         right: '3%',
-        bottom: '5%',
+        bottom: '7%',
         // containLabel: true
       },
       legend: {
@@ -56,6 +56,7 @@
         },
         axisLabel: {
             color: 'rgba(43,48,52, 0.4)',
+            margin: 20
         },
         axisTick: {
             show: false
@@ -140,7 +141,7 @@
           top: '5%',
           left: '7%',
           right: '2%',
-          bottom: '5%',
+          bottom: '7%',
           // containLabel: true
       },
       xAxis: [{
@@ -150,6 +151,7 @@
           },
           axisLabel: {
               color: 'rgba(43,48,52, 0.4)',
+              margin: 20
           },
           axisTick: {
               show: false
@@ -185,6 +187,82 @@
       series: series
     };
     chart.setOption(option);
+  },
+  drawPie:function(chart,params){
+    let option = {
+      color: params.color,
+      backgroundColor: '#fff',
+      tooltip: {
+          trigger: 'item',
+          formatter: '{a} <br/>{b} : {c} ({d}%)'
+      },
+      title: {
+          text: params.percentage,
+          textStyle: {
+              color: '#4379EE',
+              fontSize: 14,
+              align: 'center',
+              fontWeight: 'normal'
+          },
+          x: 'center',
+          y: 'center',
+      },
+      grid: {
+        top:20,
+        bottom: 20,
+        left: 0,
+        right: 0
+      },
+      legend: {
+        show: false,
+      },
+      series: [
+          // 涓昏灞曠ず灞傜殑
+          {
+              radius: ['55%', '90%'],
+              center: ['50%', '50%'],
+              type: 'pie',
+              label: {
+                  show:false
+              },
+              name: params.title,
+              data: params.data,
+          },
+          // 杈规鐨勮缃�
+          {
+              radius: ['55%', '65%'],
+              center: ['50%', '50%'],
+              type: 'pie',
+              label: {
+                  normal: {
+                      show: false
+                  },
+                  emphasis: {
+                      show: false
+                  }
+              },
+              labelLine: {
+                  normal: {
+                      show: false
+                  },
+                  emphasis: {
+                      show: false
+                  }
+              },
+              animation: false,
+              tooltip: {
+                  show: false
+              },
+              data: [{
+                  value: 1,
+                  itemStyle: {
+                      color: "rgba(250,250,250,0.3)",
+                  },
+              }],
+          }
+      ]
+    };
+    chart.setOption(option);
   }
 }
 
diff --git a/static/js/menu.js b/static/js/menu.js
index 02527a0..4de375e 100644
--- a/static/js/menu.js
+++ b/static/js/menu.js
@@ -115,7 +115,7 @@
 		}, {
 			v: "妫�娴嬮」鐩粺璁�",
 			i: "font icon-erjidaohang",
-			u: "",
+			u: "b4-inspection-item-statistics",
 			p: ""
 		}, {
 			v: "鏍峰搧缂洪櫡鎸囨暟",

--
Gitblit v1.9.3