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"> 8.5% </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"> 8.5% </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"> 8.5% </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