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