From 60930863e57b14c4d852cdae1ec3d270e8deda95 Mon Sep 17 00:00:00 2001
From: ZhangXianQiang <1135831638@qq.com>
Date: 星期二, 19 三月 2024 16:44:34 +0800
Subject: [PATCH] feat:考核数据

---
 src/views/screen/components/screen-examine/components/examine-chart.vue |   74 ++++++++++-------
 src/views/screen/components/screen-examine/components/examine-hola.vue  |  157 +++++++++++++++++++++++++++++++++++++++
 src/views/screen/components/screen-examine/index.vue                    |    5 
 3 files changed, 203 insertions(+), 33 deletions(-)

diff --git a/src/views/screen/components/screen-examine/components/examine-chart.vue b/src/views/screen/components/screen-examine/components/examine-chart.vue
index 0a6b467..3146d3d 100644
--- a/src/views/screen/components/screen-examine/components/examine-chart.vue
+++ b/src/views/screen/components/screen-examine/components/examine-chart.vue
@@ -1,61 +1,73 @@
 <template>
   <div class="chart-container">
-    <div class="rank-chart" ref="rankChart"></div>
+    <div class="rank-chart">
+      <div class="hola-item" v-for="item in dataList" :key="item.id">
+        <examine-hola :startColor="'#02C77E'" :endColor="'#017770'" :centerValue="item.value"
+          :bottomTitle="item.name"></examine-hola>
+      </div>
+    </div>
   </div>
 </template>
 
 <script>
 import * as echarts from 'echarts';
+import ExamineHola from './examine-hola.vue';
 let barChart = null;
 export default {
   name: 'ExamineChart',
+  components: {
+    ExamineHola
+  },
   data() {
     return {
-
+      dataList: [
+        {id: 1,name: '骞冲彴鍦ㄧ嚎鐜�', value: 60},
+        {id: 2,name: '涓�鏈轰竴妗e悎鏍肩巼', value: 20},
+        {id: 3,name: '妗f鑰冩牳姣�', value: 60},
+        {id: 4,name: '鐐逛綅鍦ㄧ嚎鐜�', value: 40},
+        {id: 5,name: '褰曞儚鍙敤鐜�', value: 80},
+        {id: 6,name: '閲嶇偣鐐逛綅褰曞儚鍙敤鐜�', value: 20},
+        {id: 7,name: '鏍囨敞姝g‘鐜�', value: 24},
+        {id: 8,name: '瑙嗗浘搴撳鎺ョǔ瀹氭��', value: 25},
+        {id: 9,name: '淇℃伅閲囬泦鍑嗙‘鐜�', value: 75},
+        {id: 10,name: '杞﹁締鍗″彛璁惧鏃堕挓鍑嗙‘鎬�', value: 12},
+        {id: 11,name: '璁惧鎶撴媿鍥剧墖鏃堕挓鍑嗙‘鎬�', value: 82},
+        {id: 12,name: '浜鸿劯鍗″彛淇℃伅閲囬泦鍑嗙‘鐜�', value: 13},
+        {id: 13,name: '璁惧鎶撴媿鍥剧墖鍚堟牸鎬�', value: 91},
+        {id: 14,name: '璁惧鎶撴媿鍥剧墖鏃堕挓鍑嗙‘鎬�', value: 12},
+        {id: 15,name: '骞冲彴鍦ㄧ嚎鐜�', value: 42},
+      ]
     }
   },
 
   methods: {
-    initChart() {
-      const options = {
-        xAxis: {
-          type: 'category',
-          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
-        },
-        yAxis: {
-          type: 'value'
-        },
-        series: [
-          {
-            data: [120, 200, 150, 80, 70, 110, 130],
-            type: 'bar'
-          }
-        ]
-      }
-      barChart.setOption(options,true);
-    }
+
+
   },
   mounted() {
-    barChart = echarts.init(this.$refs.rankChart);
-
-    this.initChart();
-  },
-  beforeDestroy() {
-    if (lineChart) {
-      barChart.dispose();
-    }
-  },
-
+  }
 }
 </script>
 
 <style lang="scss" scoped>
 .chart-container {
   width: 100%;
-  height: 400px;
+  height: 100%;
+
   .rank-chart {
     width: 100%;
     height: 100%;
+    display: flex;
+    justify-content: space-between;
+    flex-wrap: wrap;
+    align-content: space-between;
+
+    .hola-item {
+      flex-shrink: 0;
+      width: 180px;
+      height: 150px;
+      color: #008000
+    }
   }
 }
 </style>
\ No newline at end of file
diff --git a/src/views/screen/components/screen-examine/components/examine-hola.vue b/src/views/screen/components/screen-examine/components/examine-hola.vue
new file mode 100644
index 0000000..e034ab7
--- /dev/null
+++ b/src/views/screen/components/screen-examine/components/examine-hola.vue
@@ -0,0 +1,157 @@
+<template>
+  <!-- 杩涘害鏉$被鍨嬬粍浠� -->
+  <div class="progressChart">
+    <div class="chart" id="progressChart" ref="chartRef"></div>
+    <label class="bottom le-0-font">{{ bottomTitle }}</label>
+  </div>
+</template>
+<script>
+import * as echarts from 'echarts';
+export default {
+  data() {
+    return {
+      series: [
+        {
+          type: 'gauge', // 浠〃鐩樼被鍨�
+          name: '绯诲垪鍚嶇О', // 鐢ㄤ簬tooltip鐨勬樉绀�
+          startAngle: 90, // 浠〃鐩樺紑濮嬭搴︼紙璁剧疆鑳屾櫙鍦嗙殑瑙掑害锛�
+          endAngle: -270, // 浠〃鐩樼粨鏉熻搴�
+          center: ['50%', '50%'], // 涓績鐐癸紙鍦嗗績鍧愭爣锛�
+          radius: '100%', // 鍦嗗ぇ灏忥紙浠〃鐩樺崐寰勶級
+          clockwise: true, // 浠〃鐩樺埢搴︽槸鍚︽槸椤烘椂閽堝闀�
+          // 浠〃鐩樿酱绾跨浉鍏抽厤缃�
+          axisLine: {
+            show: true,
+            roundCap: false, // 涓ょ鏄剧ず鎴愬渾褰紙鑳屾櫙鐜級
+            clip: false, // 鏄惁瑁佸壀瓒呭嚭閮ㄥ垎
+            // 璁剧疆鑳屾櫙鍦嗙幆鏍峰紡
+            lineStyle: {
+              width: 10, // 鍦嗙幆瀹藉害
+              color: [[1, '#002865']] // 鍦嗙幆鑳屾櫙鑹�
+            }
+          },
+          // 浠〃鐩樻寚閽�
+          pointer: {
+            show: false
+          },
+          // 杩涘害璁剧疆
+          progress: {
+            show: true,
+            overlap: false, // 澶氱粍鏁版嵁鏃惰繘搴︽潯鏄惁閲嶅彔
+            roundCap: true, // 鏄惁鍦ㄤ袱绔樉绀烘垚鍦嗗舰
+            clip: false, // 鏄惁瑁佹帀瓒呭嚭閮ㄥ垎
+            // 杩涘害鏉℃牱寮�
+            itemStyle: {
+              borderWidth: 0,
+              shadowColor: '',
+              color: {
+                type: 'linear',
+                x: 0,
+                y: 0,
+                x2: 0,
+                y2: 1,
+                colorStops: [
+                  {
+                    offset: 0,
+                    color: this.startColor // 0% 澶勭殑棰滆壊  '#02C77E'
+                  },
+                  {
+                    offset: 1,
+                    color: this.endColor // 100% 澶勭殑棰滆壊  '#017770'
+                  }
+                ],
+                global: false // 缂虹渷涓� false
+              }
+            }
+          },
+          // 浠〃鐩樺垎鍓茬嚎
+          splitLine: {
+            show: false
+          },
+          // 鍒诲害鏍峰紡
+          axisTick: {
+            show: false
+          },
+          // 鍒诲害鏍囩
+          axisLabel: {
+            show: false
+          },
+          title: {
+            show: false,
+            fontSize: 24
+          },
+          detail: {
+            // width: 50,
+            // height: 14,
+            fontSize: 14,
+            color: 'auto'
+          },
+          data: [
+            {
+              value: this.centerValue,
+              name: '345',
+              title: {},
+              detail: {
+                // 涓績title璁剧疆
+                offsetCenter: ['0%', '0%'],
+                color: '#01F8FF',
+                formatter: '{value}%'
+                // borderColor: '#01F8FF',
+                // borderRadius: 20,
+                // borderWidth: 1,
+              }
+            }
+          ],
+        }
+      ]
+    }
+  },
+  setup() { },
+  props: {
+    startColor: {
+      type: String,
+      default: ''
+    },
+    endColor: {
+      type: String,
+      default: ''
+    },
+    centerValue: {
+      type: [Number, String],
+      default: 0
+    },
+    bottomTitle: {
+      type: String,
+      default: ''
+    }
+  },
+  methods: {},
+  created() { },
+  mounted() {
+    let myChart = echarts.init(this.$refs['chartRef']) // 浣跨敤Id鏃犳硶瀹炵幇
+    myChart.setOption({
+      series: this.series
+    })
+  }
+}
+</script>
+<style lang="scss" scoped>
+.progressChart {
+  width: 100%;
+  height: 100%;
+
+  .chart {
+    width: 100%;
+    height: 75%;
+  }
+
+  .bottom {
+    display: inline-block;
+    width: 100%;
+    color: #01f8ff;
+    text-align: center;
+    font-size: 16px;
+    margin-top: 10px;
+  }
+}
+</style>
\ No newline at end of file
diff --git a/src/views/screen/components/screen-examine/index.vue b/src/views/screen/components/screen-examine/index.vue
index 9240013..5447573 100644
--- a/src/views/screen/components/screen-examine/index.vue
+++ b/src/views/screen/components/screen-examine/index.vue
@@ -1,10 +1,10 @@
 <template>
   <div class="examine-container">
-    <wrapper-title :title="'鑰冩牳鎴愮哗鏁版嵁'"></wrapper-title>
+    <wrapper-title :title="'鑰冩牳鏁版嵁'"></wrapper-title>
     <div class="examine-content">
       <div class="examine-wrapper">
-        <examine-table class="wrapper-item"></examine-table>
         <examine-chart class="wrapper-item"></examine-chart>
+        <!-- <examine-table class="wrapper-item"></examine-table> -->
       </div>
     </div>
   </div>
@@ -39,6 +39,7 @@
   position: relative;
 
   .examine-wrapper {
+    position: absolute;
     width: 100%;
     height: 100%;
     display: flex;

--
Gitblit v1.8.0