From 538cb677c7cd304bc8a348c261c74694a06ec8e6 Mon Sep 17 00:00:00 2001
From: lxp <1928192722@qq.com>
Date: 星期六, 15 三月 2025 16:59:44 +0800
Subject: [PATCH] 统计图表 、 任务展示代码搬迁

---
 src/views/chart/inspetionItemStatistics/index.vue |  329 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 323 insertions(+), 6 deletions(-)

diff --git a/src/views/chart/inspetionItemStatistics/index.vue b/src/views/chart/inspetionItemStatistics/index.vue
index c5980fc..f25dc44 100644
--- a/src/views/chart/inspetionItemStatistics/index.vue
+++ b/src/views/chart/inspetionItemStatistics/index.vue
@@ -1,9 +1,326 @@
 <template>
-  <div>妫�娴嬮」鐩粺璁�</div>
-</template>
+  <div class="inspection-main" v-loading="loading">
+    <div class="inspection-content" style="height:100%">
+      <!-- <p style="font-size: 16px;padding:19.5px 0px">妫�娴嬮」鐩粺璁�</p> -->
+      <el-row :gutter="20">
+        <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;">
+          <div class="inspection-card inspection-head">
+            <div class="inspection-head-left">
+              <h4>浠婃棩椤圭洰鎺ユ敹</h4>
+              <span >{{ pageData.RECEVICE }}</span>
+              <div class="inspection-head-left-info">
+                <img :src="`../../../static/img/daliy-${pageData.RECEIVE_RATIO<0?'down':'up'}.svg`" alt="">
+                <span :class="{active:pageData.RECEIVE_RATIO<0}" class="num" v-html="`&nbsp; ${handleData(pageData.RECEIVE_RATIO)}%&nbsp; `"></span>
+                <span style="font-size: 12px;">杈冩槰澶�</span>
+              </div>
+            </div>
+            <img src="../../../static/img/daliy-0.svg" alt="" srcset="">
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;">
+          <div class="inspection-card inspection-head">
+            <div class="inspection-head-left">
+              <h4>浠婃棩椤圭洰瀹屾垚</h4>
+              <span >{{ pageData.FINISHE }}</span>
+              <div class="inspection-head-left-info">
+                <img :src="`../../../static/img/daliy-${pageData.FINISHE_RATIO<0?'down':'up'}.svg`" alt="">
+                <span :class="{active:pageData.FINISHE_RATIO<0}" class="num" v-html="`&nbsp; ${handleData(pageData.FINISHE_RATIO)}%&nbsp; `"></span>
+                <span style="font-size: 12px;">杈冩槰澶�</span>
+              </div>
+            </div>
+            <img src="../../../static/img/daliy-1.svg" alt="" srcset="">
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;">
+          <div class="inspection-card inspection-head">
+            <div class="inspection-head-left">
+              <h4>浠婃棩椤圭洰鍓╀綑</h4>
+              <span >{{ pageData.SURPLUS }}</span>
+              <div class="inspection-head-left-info">
+                <img :src="`../../../static/img/daliy-${pageData.SURPLUS_RATIO<0?'down':'up'}.svg`" alt="">
+                <span :class="{active:pageData.SURPLUS_RATIO<0}" class="num" v-html="`&nbsp; ${handleData(pageData.SURPLUS_RATIO)}%&nbsp; `"></span>
+                <span style="font-size: 12px;">杈冩槰澶�</span>
+              </div>
+            </div>
+            <img src="../../../static/img/daliy-2.svg" alt="" srcset="">
+          </div>
+        </el-col>
+        <el-col :xs="12" :sm="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;">
+          <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="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;">
+          <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="8" :md="6" :lg="4" :xl="4" style="margin-bottom: 16px;">
+          <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="20" style="height: calc(100% - 170px);">
+        <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" style="margin-bottom: 16px; height: 100%;">
+          <div class="inspection-card chart-box" style="height: 100%;">
+            <h4>杩�10鏃ラ」鐩帴鏀堕噺</h4>
+            <echart-module :id="'inspection-left'" :config="chartConfig0" :datas="chartData0" style="height: calc(100% - 32px);"></echart-module>
+          </div>
+        </el-col>
+        <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" style="margin-bottom: 16px;height: 100%;">
+          <div class="inspection-card chart-box" style="height: 100%;">
+            <h4>杩�10鏃ュ疄闄呭畬鎴愰」鐩笌鎺ユ敹椤圭洰瀵规瘮</h4>
+            <echart-module :id="'inspection-right'" :config="chartConfig1" :datas="chartData1" style="height: calc(100% - 32px);"></echart-module>
+          </div>
+        </el-col>
+      </el-row>
+    </div>
+  </div>
+  </template>
 
-<script>
-export default {};
-</script>
+  <script>
 
-<style></style>
+  import EchartModule from '@/components/Echart/echart.vue'
+
+  import {
+    testProductByDay
+} from "../../../api/chart/dailyBusinessStatistical";
+  export default {
+    components: {EchartModule},
+    data(){
+      return{
+        chartConfig0:{
+          height: '',
+          isLoading:true,
+          type:'line'
+        },
+        chartData0:{
+          xData:[],
+          yData:[
+            {
+              title:'椤圭洰鎺ユ敹閲�',
+              data:[]
+            }
+          ]
+        },
+        chartConfig1:{
+          height: '',
+          isLoading:true,
+          type:'bar'
+        },
+        chartData1:{
+          xData:[],
+          yData:[
+            {
+              title:'浠婃棩鎺ユ敹',
+              data:[]
+            },
+            {
+              title:'浠婃棩瀹屾垚',
+              data:[]
+            },
+          ]
+        },
+        chartConfig2:{
+          height: '103px',
+          width:'140px',
+          isLoading:true,
+          type:'pie'
+        },
+        chartData2:{
+          title:'浠婃棩椤圭洰鍚堟牸鐜�',
+          percentage:'0',
+          color:['#1CCAB8','#E1E4E8'],
+          data:[
+            {
+              name:'鍚堟牸',
+              value:'0'
+            },
+            {
+              name:'涓嶅悎鏍�',
+              value:'0'
+            },
+          ]
+        },
+        chartConfig3:{
+          height: '103px',
+          width:'140px',
+          isLoading:true,
+          type:'pie'
+        },
+        chartData3:{
+          title:'浠婃棩椤圭洰瀹屾垚鐜�',
+          percentage:'0',
+          color:['#FBB647','#E1E4E8'],
+          data:[
+            {
+              name:'瀹屾垚',
+              value:'0'
+            },
+            {
+              name:'鏈畬鎴�',
+              value:'0'
+            },
+          ]
+        },
+        chartConfig4:{
+          height: '103px',
+          width:'140px',
+          isLoading:true,
+          type:'pie'
+        },
+        chartData4:{
+          title:'浠婃棩椤瑰欢鏈熺巼',
+          percentage:'0',
+          color:['#FF3838','#E1E4E8'],
+          data:[
+            {
+              name:'寤舵湡',
+              value:'0'
+            },
+            {
+              name:'鏈欢鏈�',
+              value:'0'
+            },
+          ]
+        },
+        loading:false,
+        pageData:{},
+        timers:null
+      }
+    },
+    mounted(){
+      this.init()
+      this.timers&&clearInterval(this.timers);
+      setInterval(this.init(),1000*60*5)
+    },
+    methods:{
+      init(){
+      this.chartConfig0.isLoading = false
+      this.chartConfig1.isLoading = false
+      this.chartConfig2.isLoading = false
+      this.chartConfig3.isLoading = false
+      this.chartConfig4.isLoading = false
+      this.loading = true;
+      testProductByDay().then(res => {
+        if (res.code == 201) return
+        this.pageData = this.HaveJson(res.data)
+        let xData = res.data.DAYS.map(m=>{
+          let arr = m.split('-')
+          return `${arr[1]}-${arr[2]}`
+        })
+        this.chartData0.xData = xData
+        this.chartData1.xData = xData
+        this.chartData0.yData[0].data = this.pageData.RECETENDAYS
+        this.chartData1.yData[0].data = this.pageData.RECETENDAYS
+        this.chartData1.yData[1].data = this.pageData.FINISHTENDAYS
+        this.chartData2.percentage = (this.pageData.ACCEPT_RATE_TODAY*100).toFixed(0)+'%'
+        this.chartData3.percentage = (this.pageData.FINISH_RATE_TODAY*100).toFixed(0)+'%'
+        this.chartData4.percentage = (this.pageData.DELAY_RATE_TODAY*100).toFixed(0)+'%'
+        this.chartData2.data[0].value = this.pageData.ACCEPT
+        this.chartData2.data[1].value = this.pageData.FINISHE - this.pageData.ACCEPT
+        this.loading = false;
+        this.chartData3.data[0].value = this.pageData.FINISHE
+        this.chartData3.data[1].value = this.pageData.RECEVICE - this.pageData.FINISHE
+        this.chartData4.data[0].value = this.pageData.SURPLUS
+        this.chartData4.data[1].value = this.pageData.RECEVICE - this.pageData.SURPLUS
+        this.chartConfig0.isLoading = true
+        this.chartConfig1.isLoading = true
+        this.chartConfig2.isLoading = true
+        this.chartConfig3.isLoading = true
+        this.chartConfig4.isLoading = true
+      })
+      },
+      handleData(val){
+        if(val){
+          let num = Math.abs(val)*100
+          return num.toFixed(0);
+        }else{
+          return '0'
+        }
+      }
+    },
+    deactivated(){
+      this.timers&&clearInterval(this.timers);
+    }
+  }
+  </script>
+
+  <style scoped>
+  .inspection-main{
+    height: 450px;
+    overflow-y: auto;
+    overflow-x: hidden;
+  }
+  .inspection-content{
+    padding: 20px 0;
+    box-sizing: border-box;
+  }
+  .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: 16px;
+  }
+
+  .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: 16px 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>

--
Gitblit v1.9.3