From 377c0a70c094d024aeb0bb94f4b791c6d5530c1e Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 06 八月 2026 10:21:55 +0800
Subject: [PATCH] 新疆_马铃薯 1.不合格管理添加拒收逻辑

---
 src/views/reportAnalysis/qualityAnalysis/components/center-bottom.vue |  212 ++++++++++++++++++++++++++++++++---------------------
 1 files changed, 128 insertions(+), 84 deletions(-)

diff --git a/src/views/reportAnalysis/qualityAnalysis/components/center-bottom.vue b/src/views/reportAnalysis/qualityAnalysis/components/center-bottom.vue
index 24d9552..d15352c 100644
--- a/src/views/reportAnalysis/qualityAnalysis/components/center-bottom.vue
+++ b/src/views/reportAnalysis/qualityAnalysis/components/center-bottom.vue
@@ -1,21 +1,23 @@
 <template>
   <div>
     <div class="chart-header">
-      <PanelHeader title="瀹屾垚妫�楠屾暟" />
+      <div class="chart-header-title">
+        <PanelHeader title="瀹屾垚妫�楠屾暟" />
+      </div>
       <div class="warn-range" @click="handleRangeClick">杩�7澶�</div>
     </div>
     <div class="main-panel panel-item-customers">
       <Echarts
-          ref="chart"
-          :chartStyle="chartStyle"
-          :grid="grid"
-          :legend="barLegend"
-          :series="chartSeries"
-          :tooltip="tooltip"
-          :xAxis="xAxis1"
-          :yAxis="yAxis1"
-          :options="{ backgroundColor: 'transparent', textStyle: { color: '#B8C8E0' } }"
-          style="height: 260px"
+        ref="chart"
+        :chartStyle="chartStyle"
+        :grid="grid"
+        :legend="barLegend"
+        :series="chartSeries"
+        :tooltip="tooltip"
+        :xAxis="xAxis1"
+        :yAxis="yAxis1"
+        :options="{ backgroundColor: 'transparent', textStyle: { color: '#B8C8E0' } }"
+        style="height: 260px"
       />
     </div>
   </div>
@@ -29,28 +31,23 @@
 
 const chartStyle = {
   width: '100%',
-  height: '135%',
+  height: '140%',
 }
 
-const grid = { left: '8%', right: '8%', bottom: '8%', top: '15%', containLabel: true }
+const grid = { left: '3%', right: '4%', bottom: '3%', top: '10%', containLabel: true }
 
 const barLegend = {
   show: true,
-  top: '5%',
-  left: 'center',
-  textStyle: { color: '#B8C8E0', fontSize: 14 },
-  itemGap: 30,
+  textStyle: { color: '#B8C8E0' },
   data: ['鍚堟牸', '涓嶅悎鏍�', '鍚堟牸鐜�'],
 }
 
-// 鏌辩姸鍥撅細鍚堟牸锛堥粍鑹诧級銆佷笉鍚堟牸锛堢传鑹诧級锛涙姌绾垮浘锛氬悎鏍肩巼锛堣摑鑹诧級
 const chartSeries = ref([
   {
     name: '鍚堟牸',
     type: 'bar',
     barWidth: 20,
-    barGap: '20%',
-    yAxisIndex: 0,
+    barGap: '40%',
     emphasis: { focus: 'series' },
     itemStyle: {
       color: {
@@ -60,8 +57,8 @@
         x2: 0,
         y2: 1,
         colorStops: [
-          { offset: 0, color: 'rgba(255, 215, 0, 1)' }, // 閲戦粍鑹查《閮�
-          { offset: 1, color: 'rgba(255, 215, 0, 0.5)' }, // 鍗婇�忔槑搴曢儴
+          { offset: 1, color: 'rgba(0, 164, 237, 0)' },
+          { offset: 0, color: 'rgba(78, 228, 255, 1)' },
         ],
       },
     },
@@ -70,9 +67,8 @@
   {
     name: '涓嶅悎鏍�',
     type: 'bar',
-    barGap: '20%',
+    barGap: '40%',
     barWidth: 20,
-    yAxisIndex: 0,
     emphasis: { focus: 'series' },
     itemStyle: {
       color: {
@@ -82,8 +78,8 @@
         x2: 0,
         y2: 1,
         colorStops: [
-          { offset: 0, color: 'rgba(144, 97, 248, 1)' }, // 绱壊椤堕儴
-          { offset: 1, color: 'rgba(144, 97, 248, 0.6)' }, // 鍗婇�忔槑搴曢儴
+          { offset: 1, color: 'rgba(83, 126, 245, 0.19)' },
+          { offset: 0, color: 'rgba(144, 97, 248, 1)' },
         ],
       },
     },
@@ -93,87 +89,43 @@
     name: '鍚堟牸鐜�',
     type: 'line',
     yAxisIndex: 1,
-    smooth: true,
+    showSymbol: true,
     symbol: 'circle',
     symbolSize: 8,
-    lineStyle: {
-      color: 'rgba(78, 228, 255, 1)', // 闈掕壊
-      width: 2,
-    },
-    itemStyle: {
-      color: 'rgba(78, 228, 255, 1)',
-      borderWidth: 2,
-      borderColor: '#fff',
-    },
-    emphasis: {
-      focus: 'series',
-      itemStyle: {
-        shadowBlur: 10,
-        shadowColor: 'rgba(78, 228, 255, 0.8)',
-      },
-    },
+    lineStyle: { color: 'rgba(90, 216, 166, 1)', width: 2 },
+    itemStyle: { color: 'rgba(90, 216, 166, 1)' },
     data: [],
+    emphasis: { focus: 'series' },
   },
 ])
 
 const tooltip = {
   trigger: 'axis',
   axisPointer: { type: 'cross' },
-  backgroundColor: 'rgba(0, 0, 0, 0.8)',
-  borderColor: 'rgba(78, 228, 255, 0.5)',
-  borderWidth: 1,
-  textStyle: { color: '#B8C8E0' },
   formatter(params) {
     let result = params[0].axisValueLabel + '<br/>'
     params.forEach((item) => {
-      let unit = ''
-      if (item.seriesName === '鍚堟牸鐜�') {
-        unit = '%'
-      } else {
-        unit = '浠�'
-      }
-      result += `<div style="margin: 4px 0;">${item.marker} ${item.seriesName}: ${item.value}${unit}</div>`
+      const unit = item.seriesName === '鍚堟牸鐜�' ? '%' : '浠�'
+      result += `<div>${item.marker} ${item.seriesName}: ${item.value}${unit}</div>`
     })
     return result
   },
 }
 
 const xAxis1 = ref([
-  {
-    type: 'category',
-    axisTick: { show: false },
-    axisLabel: { color: '#B8C8E0', fontSize: 12 },
-    axisLine: { lineStyle: { color: 'rgba(184, 200, 224, 0.3)' } },
-    data: [],
-  },
+  { type: 'category', axisTick: { show: false }, axisLabel: { color: '#B8C8E0' }, data: [] },
 ])
 
 const yAxis1 = [
+  { type: 'value', name: '浠�', axisLabel: { color: '#B8C8E0' }, nameTextStyle: { color: '#B8C8E0' } },
   {
     type: 'value',
-    name: '鍗曚綅: 浠�',
-    nameLocation: 'start',
-    nameTextStyle: { color: '#B8C8E0', fontSize: 12, padding: [0, 0, 0, 10] },
-    axisLabel: { color: '#B8C8E0', fontSize: 12 },
-    axisLine: { show: false },
-    splitLine: {
-      show: true,
-      lineStyle: { color: 'rgba(184, 200, 224, 0.2)', type: 'dashed' },
-    },
-  },
-  {
-    type: 'value',
-    name: '鍗曚綅: %',
-    nameLocation: 'end',
-    nameTextStyle: { color: '#B8C8E0', fontSize: 12, padding: [0, 0, 0, 10] },
+    name: '鍚堟牸鐜�(%)',
     min: 0,
     max: 100,
-    axisLabel: { color: '#B8C8E0', fontSize: 12, formatter: '{value}' },
-    axisLine: { show: false },
-    splitLine: {
-      show: true,
-      lineStyle: { color: 'rgba(184, 200, 224, 0.2)', type: 'dashed' },
-    },
+    axisLabel: { color: '#B8C8E0', formatter: '{value}%' },
+    nameTextStyle: { color: '#B8C8E0' },
+    splitLine: { lineStyle: { color: 'rgba(184, 200, 224, 0.2)' } },
   },
 ]
 
@@ -212,6 +164,13 @@
   position: relative;
   display: flex;
   align-items: center;
+  width: 100%;
+}
+
+.chart-header-title {
+  flex: 1;
+  min-width: 0;
+  width: 100%;
 }
 
 .warn-range {
@@ -231,10 +190,29 @@
   border: 1px solid rgba(78, 228, 255, 0.25);
   cursor: pointer;
   z-index: 10;
+  transition: all 0.3s ease;
 }
 
 .warn-range:hover {
   background: linear-gradient(180deg, rgba(51, 140, 255, 1) 0%, rgba(0, 184, 237, 1) 100%);
+  box-shadow: 0 0 15px rgba(0, 212, 255, 0.4);
+  transform: translateY(-1px);
+}
+
+/* 鎸夐挳寰厜鏁堟灉 */
+.warn-range::before {
+  content: '';
+  position: absolute;
+  top: 0;
+  left: -100%;
+  width: 100%;
+  height: 100%;
+  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
+  transition: left 0.5s;
+}
+
+.warn-range:hover::before {
+  left: 100%;
 }
 
 .main-panel {
@@ -247,8 +225,74 @@
   border: 1px solid #1a58b0;
   padding: 18px;
   width: 100%;
-  height: 449px;
+  height: 436px;
   position: relative;
-  background: radial-gradient(circle at 50% 50%, rgba(78, 228, 255, 0.05) 0%, rgba(0, 0, 0, 0) 70%);
+  overflow: hidden;
+}
+
+/* 鍥捐〃闈㈡澘瑙掕惤瑁呴グ */
+.panel-item-customers::before,
+.panel-item-customers::after {
+  content: '';
+  position: absolute;
+  width: 15px;
+  height: 15px;
+  border-color: rgba(0, 212, 255, 0.5);
+  border-style: solid;
+  pointer-events: none;
+}
+
+.panel-item-customers::before {
+  top: -1px;
+  left: -1px;
+  border-width: 2px 0 0 2px;
+}
+
+.panel-item-customers::after {
+  bottom: -1px;
+  right: -1px;
+  border-width: 0 2px 2px 0;
+}
+
+/* 鍥捐〃搴曢儴鍏夌嚎 */
+.panel-item-customers::before {
+  content: '';
+  position: absolute;
+  bottom: 0;
+  left: 10%;
+  right: 10%;
+  height: 2px;
+  background: linear-gradient(90deg, transparent, rgba(0, 212, 255, 0.4), transparent);
+  animation: bottomGlow 3s ease-in-out infinite;
+  z-index: 1;
+}
+
+@keyframes bottomGlow {
+  0%, 100% { opacity: 0.3; }
+  50% { opacity: 0.7; }
+}
+
+/* 娣卞害鍥捐儗鏅厜鏁� */
+.panel-item-customers > div {
+  position: relative;
+  z-index: 2;
+}
+
+.panel-item-customers::after {
+  content: '';
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+  width: 80%;
+  height: 80%;
+  background: radial-gradient(ellipse, rgba(78, 228, 255, 0.05) 0%, transparent 70%);
+  pointer-events: none;
+  animation: chartGlow 4s ease-in-out infinite;
+}
+
+@keyframes chartGlow {
+  0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
+  50% { opacity: 0.8; transform: translate(-50%, -50%) scale(1.02); }
 }
 </style>

--
Gitblit v1.9.3