From e624de57bbe192f32a0ab2c7aff2bbfec32f9714 Mon Sep 17 00:00:00 2001
From: rain <1679827795@qq.com>
Date: Tue, 13 May 2025 18:02:17 +0800
Subject: [PATCH] Merge branch 'test' of http://139.196.74.78:10010/r/drone/drone-web-manage into test

---
 src/views/wel/components/statistics.vue  |  142 ++++++++++-------
 src/views/tickets/orderLog.vue           |   16 +
 src/views/wel/index.vue                  |  257 +++++++++++++++----------------
 src/views/wel/components/flyratio.vue    |   17 -
 src/axios.js                             |    4 
 src/views/wel/components/calendarBox.vue |    4 
 src/views/wel/components/backlog.vue     |    6 
 7 files changed, 226 insertions(+), 220 deletions(-)

diff --git a/src/axios.js b/src/axios.js
index 7dacdc5..76fa2d0 100644
--- a/src/axios.js
+++ b/src/axios.js
@@ -5,6 +5,7 @@
  * isSerialize是否开启form表单提交
  * isToken是否需要token
  */
+
 import axios from 'axios';
 import store from '@/store/';
 import router from '@/router/';
@@ -62,6 +63,9 @@
 			config.url = baseUrl + config.url;
 		}
 		//安全请求header
+		console.log('selectedAreaCode',store.state.user.userInfo.detail.areaCode);
+		
+		config.headers['areaCode'] = store.state.user.userInfo.detail.areaCode
 		config.headers['Blade-Requested-With'] = 'BladeHttpRequest';
 		//headers判断是否需要
 		const authorization = config.authorization === false;
diff --git a/src/views/tickets/orderLog.vue b/src/views/tickets/orderLog.vue
index aea7b26..59ae037 100644
--- a/src/views/tickets/orderLog.vue
+++ b/src/views/tickets/orderLog.vue
@@ -198,21 +198,27 @@
                   <el-button type="text" icon="el-icon-warning" @click="rejectDetail(row.id)"
                     >驳回原因</el-button
                   >
+                  <el-button type="text" icon="el-icon-view" @click="handleViewDetail(row)"
+                    >详情</el-button
+                  >
+                </template>  
+                <!-- 已通过 -->
+                 <template v-if="row.status == 3 " >
+                  <el-button type="text" icon="el-icon-view" @click="handleViewDetail(row)"
+                    >详情</el-button
+                  >
                 </template>
                 <!--草稿-->
+                  <template v-else >
                 <el-button type="text" icon="el-icon-edit" @click="handleViewDetail(row)"
                   >编辑</el-button
                 >
                 <el-button type="text" icon="el-icon-position" @click="userPublishPush(row.id)"
-                  >发起</el-button
+                  >发布</el-button
                 >
                 <el-button type="text" icon="el-icon-delete" @click="deleteOrderLog(row.id)"
                   >删除</el-button
                 >
-                <template v-if="row.status == 3 || row.status == 1 || row.status == 2">
-                  <el-button type="text" icon="el-icon-view" @click="handleViewDetail(row)"
-                    >详情</el-button
-                  >
                 </template>
               </div>
             </template>
diff --git a/src/views/wel/components/backlog.vue b/src/views/wel/components/backlog.vue
index f1664fa..03a90d9 100644
--- a/src/views/wel/components/backlog.vue
+++ b/src/views/wel/components/backlog.vue
@@ -96,16 +96,16 @@
   }
 };
 const getListMatter = async () => {
-  console.log('permission.value.o_and_m_p_jump', permission.value.o_and_m_p_jump);
+  // console.log('permission.value.o_and_m_p_jump', permission.value.o_and_m_p_jump);
 
   if (permission.value.o_and_m_p_jump === true) {
     const res = await getdaiban(0,userInfo.value.detail.areaCode);
     todos.value = res.data.data?.slice(0, 5);
-     console.log('2222',res.data.data);
+ 
   } else {
     const res = await getdaiban(1,userInfo.value.detail.areaCode);
     todos.value = res.data.data?.slice(0, 5);
-      console.log('111111',res.data.data);
+
   }
 
 };
diff --git a/src/views/wel/components/calendarBox.vue b/src/views/wel/components/calendarBox.vue
index e6106ca..5ea7bc5 100644
--- a/src/views/wel/components/calendarBox.vue
+++ b/src/views/wel/components/calendarBox.vue
@@ -28,6 +28,7 @@
 import { useRouter } from 'vue-router';
 import ev1 from '@/assets/images/workbench/ev1.png';
 import ev2 from '@/assets/images/workbench/ev2.png';
+import { ElMessage } from 'element-plus'
 const router = useRouter();
 const events = ref({});
 const params = ref({
@@ -53,7 +54,6 @@
   (newV, oldV) => {
     if (newV && oldV) {
       const newDate = dayjs(newV);
-      const oldDate = dayjs(oldV);
       params.value = {
         start_date: newDate.startOf('month').format('YYYY-MM-DD HH:mm:ss'),
         end_date: newDate.endOf('month').format('YYYY-MM-DD HH:mm:ss'),
@@ -88,6 +88,8 @@
         day: day,
       },
     });
+  }else{
+     ElMessage.warning('加急开发中...')
   }
 };
 onMounted(() => {
diff --git a/src/views/wel/components/flyratio.vue b/src/views/wel/components/flyratio.vue
index 6a0138e..c4ce7f3 100644
--- a/src/views/wel/components/flyratio.vue
+++ b/src/views/wel/components/flyratio.vue
@@ -5,21 +5,8 @@
         <img :src="jc1" alt="" />
         <div class="cardtotal">
           <p>机巢工单数量排名</p>
-          <!-- <div class="total-number">111</div>
-          <span>个</span> -->
         </div>
       </div>
-      <!-- <div class="status-grid">
-        <div v-for="(item, index) in jcOrder" :key="index" class="status-item">
-          <img :src="jc2" alt="" />
-          <div>
-            <div class="status-label">{{ item.name }}</div>
-            <div :style="{ color: '#387FC8' }" class="status-value">
-              {{ item.value }}
-            </div>
-          </div>
-        </div>
-      </div> -->
     </div>
     <div class="nestCenter">
       <div class="chart" ref="echartsRef"></div>
@@ -97,13 +84,13 @@
     xAxis: {
       type: 'value',
       splitLine: { lineStyle: { color: '#E5E5E5' } },
-      axisLabel: { color: '#35455aa6' },
+      axisLabel: { color: '#7C8091' },
       boundaryGap: [0, 0.01],
     },
     yAxis: {
       type: 'category',
       data: optionData.yAxisData,
-      axisLabel: { color: '#35455aa6' },
+      axisLabel: { color: '#7C8091' },
       axisLine: { lineStyle: { color: '#D1D1D1' } },
       axisTick: { show: false },
       // 4. 确保排序后的数据从上到下显示(最大值在顶部)
diff --git a/src/views/wel/components/statistics.vue b/src/views/wel/components/statistics.vue
index be26d0e..df7cd57 100644
--- a/src/views/wel/components/statistics.vue
+++ b/src/views/wel/components/statistics.vue
@@ -20,15 +20,24 @@
           </div>
         </div>
         <div class="status-list">
-          <div v-for="(status, statusIndex) in newtitleData[item].status_map" :key="statusIndex" class="status-item"
+          <div
+            v-for="(status, statusIndex) in newtitleData[item].status_map"
+            :key="statusIndex"
+            class="status-item"
             :class="getStatusStyle(test[item]?.name, statusIndex)"
-            :style="{ color: getStatusColor(test[item]?.name, statusIndex) }">
-            <span class="indicator" :style="{
-              backgroundColor: getStatusBackground(test[item]?.name, statusIndex),
-              color: getStatusColor(test[item]?.name, statusIndex),
-            }"></span>
+            :style="{ color: getStatusColor(test[item]?.name, statusIndex) }"
+          >
+            <span
+              class="indicator"
+              :style="{
+                backgroundColor: getStatusBackground(test[item]?.name, statusIndex),
+                color: getStatusColor(test[item]?.name, statusIndex),
+              }"
+            ></span>
             <span class="label">{{ getStatusLabel(test[item]?.name, statusIndex) }}</span>
-            <span class="count">{{ status }} {{ test[item]?.name === '无人机' ? '架' : '个' }}</span>
+            <span class="count"
+              >{{ status }} {{ test[item]?.name === '无人机' ? '架' : '个' }}</span
+            >
           </div>
         </div>
       </div>
@@ -37,32 +46,30 @@
 </template>
 
 <script setup>
-import { useStore } from 'vuex'
-import { computed } from 'vue'
-import titleImg1 from '@/assets/images/workbench/st3.png'
-import titleImg2 from '@/assets/images/workbench/st4.png'
-import titleImg3 from '@/assets/images/workbench/st5.png'
-import titleImg4 from '@/assets/images/workbench/st6.png'
-import titleImg5 from '@/assets/images/workbench/st8.png'
-import titleImg6 from '@/assets/images/workbench/st9.png'
-import { getStatics } from '@/api/home/index'
-import { useRouter } from 'vue-router'
-const router = useRouter()
-const store = useStore()
+import { useStore } from 'vuex';
+import { computed } from 'vue';
+import titleImg1 from '@/assets/images/workbench/st3.png';
+import titleImg2 from '@/assets/images/workbench/st4.png';
+import titleImg3 from '@/assets/images/workbench/st5.png';
+import titleImg4 from '@/assets/images/workbench/st6.png';
+import titleImg5 from '@/assets/images/workbench/st8.png';
+import titleImg6 from '@/assets/images/workbench/st9.png';
+import { getStatics } from '@/api/home/index';
+import { useRouter } from 'vue-router';
+const router = useRouter();
+const store = useStore();
 const refresh = () => {
-  getStaticsList()
-}
+  getStaticsList();
+};
 const jumppage = () => {
   router.push({
-		path: '/device/index',
-	})
+    path: '/device/index',
+  });
+};
+const userInfo = computed(() => store.getters.userInfo);
+const permission = computed(() => store.getters.permission);
 
-}
-const userInfo = computed(() => store.getters.userInfo)
-const permission = computed(() => store.getters.permission)
-
-
-const newtitleData = ref({})
+const newtitleData = ref({});
 const titleData = ref([
   {
     img: titleImg1,
@@ -96,7 +103,7 @@
     leisure: 0,
     offline: 0,
   },
-])
+]);
 const test = {
   no_move_list: {
     name: '机巢',
@@ -123,25 +130,25 @@
     name: '机巢保险',
     img: titleImg6,
   },
-}
+};
 const statusSelect = {
   0: '空闲中',
   4: '作业中',
   '-1': '离线中',
-}
+};
 const flowStatus = {
   0: '流量无忧',
   1: '流量到期',
   2: '流量不足',
-}
+};
 const monitorStatus = {
   0: '离线中',
   1: '在线中',
-}
+};
 const insureStatus = {
   0: '临近到期',
   1: '正常期限',
-}
+};
 // 样式配置对象
 const statusStyles = {
   机巢保险: {
@@ -164,65 +171,68 @@
     4: { class: 'success', color: '#11ce3e', background: '#11ce3e' },
     '-1': { class: 'success', color: '#bababa', background: '#bababa' },
   },
-}
+};
 const getStatusStyle = (name, statusIndex) => {
   // 获取样式配置,优先使用名称专属配置
-  const styleConfig = statusStyles[name] || statusStyles.default
-  return styleConfig[statusIndex]?.class || ''
-}
+  const styleConfig = statusStyles[name] || statusStyles.default;
+  return styleConfig[statusIndex]?.class || '';
+};
 
 const getStatusColor = (name, statusIndex) => {
   // 获取颜色配置,优先使用名称专属配置
-  const styleConfig = statusStyles[name] || statusStyles.default
-  return styleConfig[statusIndex]?.color || '#333'
-}
+  const styleConfig = statusStyles[name] || statusStyles.default;
+  return styleConfig[statusIndex]?.color || '#333';
+};
 // 新增背景颜色获取方法
 const getStatusBackground = (name, statusIndex) => {
-  const styleConfig = statusStyles[name] || statusStyles.default
+  const styleConfig = statusStyles[name] || statusStyles.default;
   return (
     styleConfig[statusIndex]?.background ||
     styleConfig[statusIndex]?.color || // 降级使用字体颜色
     '#F0F0F0'
-  ) // 最终默认颜色
-}
+  ); // 最终默认颜色
+};
 const getStatusLabel = (itemName, statusCode) => {
   switch (itemName) {
     case '机巢流量':
-      return flowStatus[statusCode] || statusSelect[statusCode]
+      return flowStatus[statusCode] || statusSelect[statusCode];
     case '监控设备':
-      return monitorStatus[statusCode] || statusSelect[statusCode]
+      return monitorStatus[statusCode] || statusSelect[statusCode];
     case '机巢保险':
-      return insureStatus[statusCode] || statusSelect[statusCode]
+      return insureStatus[statusCode] || statusSelect[statusCode];
     default:
-      return statusSelect[statusCode] || `未知状态(${statusCode})`
+      return statusSelect[statusCode] || `未知状态(${statusCode})`;
   }
-}
+};
 const getStaticsList = () => {
   getStatics(userInfo.value.detail.areaCode).then(res => {
-  console.log('userInfo.value.detail.areaCode',permission.value);
+    // console.log('userInfo.value.detail.areaCode',permission.value);
     if (permission.value?.device_statistics_six) {
-      newtitleData.value = res.data.data
-      return
+      newtitleData.value = res.data.data;
+      return;
     }
 
     for (let key in res.data.data) {
-      if (permission.value?.device_statistics_four && (key === 'flow_type_list' ||
-        key === 'insure_list')) continue
-      newtitleData.value[key] = res.data.data[key]
+      if (
+        permission.value?.device_statistics_four &&
+        (key === 'flow_type_list' || key === 'insure_list')
+      )
+        continue;
+      newtitleData.value[key] = res.data.data[key];
     }
-  })
-}
+  });
+};
 
 const unitMap = {
   drone: '架',
   nest: '个',
   monitor: '个',
   mobile: '个',
-}
+};
 
 onMounted(() => {
-  getStaticsList()
-})
+  getStaticsList();
+});
 </script>
 
 <style scoped lang="scss">
@@ -244,6 +254,10 @@
 
       span {
         margin-right: 4px;
+        font-weight: bold;
+        font-size: 16px;
+        color: #363636;
+        font-family: 'YouSheBiaoTiHei';
       }
 
       img {
@@ -286,6 +300,9 @@
           font-weight: bold;
           font-size: 36px;
           color: #363636;
+          display: inline-block;
+          transform: skewX(-5deg);
+          font-family: 'YouSheBiaoTiHei';
         }
 
         span {
@@ -383,6 +400,9 @@
           font-weight: bold;
           font-size: 36px;
           color: #363636;
+          display: inline-block;
+          transform: skewX(-5deg);
+          font-family: 'YouSheBiaoTiHei';
         }
 
         span {
diff --git a/src/views/wel/index.vue b/src/views/wel/index.vue
index 624697b..45a00bb 100644
--- a/src/views/wel/index.vue
+++ b/src/views/wel/index.vue
@@ -45,9 +45,10 @@
                       <div class="status-item" v-for="(item, index) in eventTypeList" :key="index">
                         <div class="statusCon">
                           <div class="status-label">{{ item.name }}</div>
-                          <div :style="{ color: item.color }" class="status-value">
+                          <!-- <div :style="{ color: item.color }" class="status-value">
                             {{ item.value }}<span>个</span>
-                          </div>
+                          </div> -->
+                          <div class="status-value">{{ item.value }}<span>个</span></div>
                           <div class="ratio">
                             占比
                             <span :style="{ color: item.color }"
@@ -73,8 +74,11 @@
                 <div class="flycenter">
                   <div class="centerBox">
                     <div class="centerItem" v-for="(itemfly, index) in flyTypeList" :key="index">
-                      <div class="flyimg"><img :src="itemfly.img" alt="" />{{itemfly.name}}</div>
-                      <div class="flydata"><span>{{itemfly.value}}</span>{{unitMap[itemfly.name]}}</div>
+                      <div class="flyimg"><img :src="itemfly.img" alt="" />{{ itemfly.name }}</div>
+                      <div class="flydata">
+                        <span>{{ itemfly.value }}</span
+                        >{{ unitMap[itemfly.name] }}
+                      </div>
                     </div>
                   </div>
                   <div class="lineChart">
@@ -105,7 +109,7 @@
 import * as echarts from 'echarts';
 import useEchartsResize from '@/hooks/useEchartsResize';
 import { mapGetters } from 'vuex';
-import { getJobEventByStatus, getJobEventTotal,getFly,getFlyTime } from '@/api/home/index';
+import { getJobEventByStatus, getJobEventTotal, getFly, getFlyTime } from '@/api/home/index';
 import overviewImg1 from '@/assets/images/workbench/tc1.png';
 import overviewImg2 from '@/assets/images/workbench/tc2.png';
 import overviewImg3 from '@/assets/images/workbench/tc3.png';
@@ -116,6 +120,7 @@
 import flyImg2 from '@/assets/images/workbench/fy3.png';
 import flyImg3 from '@/assets/images/workbench/fy4.png';
 import statistics from './components/statistics.vue';
+import { ElMessage } from 'element-plus';
 let checked = ref('CURRENT_YEAR');
 let timeListStr = ['本周', '本月', '本年'];
 let timeListEnum = ['CURRENT_WEEK', 'CURRENT_MONTH', 'CURRENT_YEAR'];
@@ -130,13 +135,15 @@
   checked.value = item;
   params.value.date_enum = item;
   dateSelect.value = item;
-  // console.log('日期选择', params.value.date_enum);
   getTypeData();
-  getFlyList()
-  getFlyTimeList()
+  getFlyList();
+  getFlyTimeList();
 };
 // 跳转
-const jumpshebei= ()=>{}
+const jumpshebei = () => {
+  ElMessage.warning('加急开发中...');
+};
+
 const eventTypeList = ref([
   { name: '待审核', value: 0, img: overviewImg2, color: '#FF472F', status: '2', rate: 0 },
   { name: '待处理', value: 0, img: overviewImg3, color: '#FF7411', status: '0', rate: 0 },
@@ -144,14 +151,14 @@
   { name: '已完成', value: 0, img: overviewImg5, color: '#0291A1', status: '4', rate: 0 },
 ]);
 const keyMapping = {
-  '飞行时长': 'total_flight_time',
-  '飞行里程': 'total_flight_distance',
-  '任务成果': 'event_num'
+  飞行时长: 'total_flight_time',
+  飞行里程: 'total_flight_distance',
+  任务成果: 'event_num',
 };
 const unitMap = {
-  '飞行时长': '时',
-  '飞行里程': '千米',
-  '任务成果': '个'
+  飞行时长: '时',
+  飞行里程: '千米',
+  任务成果: '个',
 };
 const flyTypeList = ref([
   { name: '飞行时长', value: 0, img: flyImg1 },
@@ -178,28 +185,26 @@
 };
 // 飞行统计
 
-const getFlyList=()=>{
-  getFly(params.value).then(res=>{
-   flyTypeList.value = flyTypeList.value.map(item => ({
-    ...item,
-    value: res.data.data[keyMapping[item.name]] || 0
-  }));   
-  })
-}
-const getFlyTimeList=()=>{
-  getFlyTime(params.value).then(res=>{
-   const resList = res?.data?.data || [];
-    // console.log('飞行统计11',res.data.data);
-    lineCharts(resList)
-  })
-}
+const getFlyList = () => {
+  getFly(params.value).then(res => {
+    flyTypeList.value = flyTypeList.value.map(item => ({
+      ...item,
+      value: res.data.data[keyMapping[item.name]] || 0,
+    }));
+  });
+};
+const getFlyTimeList = () => {
+  getFlyTime(params.value).then(res => {
+    const resList = res?.data?.data || [];
+    lineCharts(resList);
+  });
+};
 // 图表
 const echartsRef = ref(null);
 let { chart } = useEchartsResize(echartsRef);
 const chartRef = ref(null);
 let { chart: lineChart } = useEchartsResize(chartRef);
 const initChart = val => {
-  // 转换数据格式并计算总数
   const totalNum = val.reduce((sum, item) => sum + item.num, 0);
   const data = {
     total: {
@@ -249,7 +254,8 @@
         fontWeight: '600',
       },
       top: '40%',
-      left: '50%',
+      left: '53%',
+      textAlign: 'center', // 文本对齐
     },
     series: [
       {
@@ -259,9 +265,9 @@
         avoidLabelOverlap: true,
         left: '10%',
         label: {
-         formatter: (params) => {
-          return `{a|${params.name}}: ${params.data.rate}%`;
-        },
+          formatter: params => {
+            return `{a|${params.name}}: ${params.data.rate}%`;
+          },
           alignTo: 'labelLine',
           rich: {
             a: {
@@ -290,17 +296,19 @@
 };
 
 // 柱状图
-const lineCharts = (bardata) => {
- const categories = bardata?.map(item => item.name); // x轴类别
-const flight_distance=[]
-const flight_time=[]
-const event_num=[]
-// /遍历数据填充各系列
+const lineCharts = bardata => {
+  const categories = bardata?.map(item => item.name); // x轴类别
+  const flight_distance = [];
+  const flight_time = [];
+  const event_num = [];
+  // /遍历数据填充各系列
   bardata?.forEach(period => {
-    let hasDuration = false, hasDistance = false, hasResult = false;
-    
+    let hasDuration = false,
+      hasDistance = false,
+      hasResult = false;
+
     period.data?.forEach(item => {
-      switch(item.name) {
+      switch (item.name) {
         case '飞行时长':
           flight_time.push(parseFloat(item.value) || 0);
           hasDuration = true;
@@ -308,7 +316,7 @@
         case '飞行里程':
           // 转换为万公 (假设原始单位是米)
           // flight_distance.push((parseFloat(item.value) / 10 || 0));
-          flight_distance.push((parseFloat(item.value)  || 0));
+          flight_distance.push(parseFloat(item.value) || 0);
           hasDistance = true;
           break;
         case '任务成果':
@@ -319,9 +327,9 @@
     });
 
     // 处理可能缺失的数据项
-    if(!hasDuration) flight_time.push(0);
-    if(!hasDistance) flight_distance.push(0);
-    if(!hasResult) event_num.push(0);
+    if (!hasDuration) flight_time.push(0);
+    if (!hasDistance) flight_distance.push(0);
+    if (!hasResult) event_num.push(0);
   });
   var option = {
     tooltip: {
@@ -341,9 +349,7 @@
       data: ['飞行时长', '飞行里程', '任务成果'],
       left: 'center',
       top: '5%',
-      textStyle: {
-        color: '#666666',
-      },
+      color: '#383838', // 直接配置颜色
       itemWidth: 15,
       itemHeight: 10,
       itemGap: 25,
@@ -356,21 +362,17 @@
           color: '#cdd5e2',
         },
       },
-
       axisLabel: {
         interval: 0,
-        textStyle: {
-          color: '#666666',
-        },
+        color: '#383838', // 直接配置颜色
       },
     },
     yAxis: [
-      // 只保留第一个y轴
       {
         type: 'log',
         name: '单位:万套',
         nameTextStyle: {
-          color: '#666666',
+          color: '#383838',
         },
         min: 1,
         logBase: 3,
@@ -380,33 +382,24 @@
             color: '#cdd5e2',
           },
         },
-
         splitLine: {
-          show: true, // 显示分割线
+          show: true,
           lineStyle: {
-            type: 'dashed', // 设置为虚线
-            color: '#cdd5e2', // 颜色与轴线一致
-            width: 1, // 线宽
-            opacity: 0.5, // 透明度
+            type: 'dashed',
+            color: '#cdd5e2',
+            width: 1,
+            opacity: 0.5,
           },
         },
         axisLabel: {
-          textStyle: {
-            color: '#666666',
-          },
-        },
-        axisLine: {
-          lineStyle: {
-            color: '#cdd5e2',
-          },
+          color: '#666666', // 直接配置颜色
         },
       },
-      
       {
         type: 'log',
         name: '',
         nameTextStyle: {
-          color: '#666666',
+          color: '#383838',
         },
         min: 1,
         logBase: 3,
@@ -416,25 +409,17 @@
             color: '#cdd5e2',
           },
         },
-
         splitLine: {
-          show: true, // 显示分割线
+          show: true,
           lineStyle: {
-            type: 'dashed', // 设置为虚线
-            color: '#cdd5e2', // 颜色与轴线一致
-            width: 1, // 线宽
-            opacity: 0.5, // 透明度
+            type: 'dashed',
+            color: '#cdd5e2',
+            width: 1,
+            opacity: 0.5,
           },
         },
         axisLabel: {
-          textStyle: {
-            color: '#666666',
-          },
-        },
-        axisLine: {
-          lineStyle: {
-            color: '#cdd5e2',
-          },
+          color: '#383838', // 直接配置颜色
         },
       },
     ],
@@ -444,19 +429,11 @@
         type: 'bar',
         barWidth: '12px',
         itemStyle: {
-          normal: {
-            color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-              {
-                offset: 0,
-                color: '#29acff',
-              },
-              {
-                offset: 1,
-                color: '#4bdfff',
-              },
-            ]),
-            barBorderRadius: 6,
-          },
+          color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+            { offset: 0, color: '#29acff' },
+            { offset: 1, color: '#4bdfff' },
+          ]),
+          borderRadius: 6,
         },
         data: flight_time,
       },
@@ -465,34 +442,30 @@
         type: 'bar',
         barWidth: '12px',
         itemStyle: {
-          normal: {
-            color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
-              {
-                offset: 0,
-                color: '#01c871',
-              },
-              {
-                offset: 1,
-                color: '#55f49c',
-              },
-            ]),
-            barBorderRadius: 6,
-          },
+          color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
+            { offset: 0, color: '#01c871' },
+            { offset: 1, color: '#55f49c' },
+          ]),
+          borderRadius: 6,
         },
         data: flight_distance,
       },
+
       {
         name: '任务成果',
         type: 'line',
-        yAxisIndex: 1, // 改为使用第一个y轴
+        yAxisIndex: 1,
         smooth: true,
-        // symbol: 'circle',
-        // symbolSize: 8,
         // itemStyle: {
-        //   normal: {
-        //     color: '#ffa43a',
-        //     borderColor: 'rgba(255, 234, 0, 0.5)',
-        //     borderWidth: 5,
+        //   color: '#ffa43a', // 默认状态颜色
+        //   borderColor: 'rgba(255, 234, 0, 0.5)',
+        //   borderWidth: 5,
+        // },
+        // emphasis: {
+        //   // 悬停状态
+        //   itemStyle: {
+        //     color: '#ff8c00', // 悬停时颜色变深
+        //     borderWidth: 6,
         //   },
         // },
         lineStyle: {
@@ -511,8 +484,8 @@
 
   getTypeData();
   lineCharts();
-  getFlyList()
-  getFlyTimeList()
+  getFlyList();
+  getFlyTimeList();
 });
 </script>
 
@@ -522,7 +495,6 @@
 }
 </style>
 <style scoped lang="scss">
-// 开始
 .workbench {
   padding: 0px 20px 0 20px;
   display: flex;
@@ -531,7 +503,6 @@
 .workleft {
   width: 68%;
   margin-right: 10px;
-  // 综合
   .comprehensiveCon {
     // height: 736px;
     background: #ffffff;
@@ -545,6 +516,10 @@
         .name {
           display: flex;
           align-items: center;
+          font-weight: bold;
+          font-size: 16px;
+          color: #363636;
+          font-family: 'YouSheBiaoTiHei';
           span {
             margin-right: 4px;
           }
@@ -576,8 +551,9 @@
           .card-item:nth-child(2) {
             border-right: 1px solid #e5e5e5;
           }
-          .active {
+          .card-item.active {
             color: #1441ff;
+            border: 1px solid #1c5cff;
           }
         }
       }
@@ -618,6 +594,7 @@
                 }
                 .total-number {
                   font-family: 'YouSheBiaoTiHei';
+
                   font-weight: bold;
                   font-size: 32px;
                   color: #2a54ff;
@@ -639,16 +616,18 @@
                   img {
                     width: 26px;
                     height: 26px;
-                    padding: 9px 2px;
+                    padding: 9px 10px 9px 2px;
                   }
                   .statusCon {
                     display: flex;
                     flex-direction: column;
-                    align-items: center;
-                    padding: 9px 4px 0 4px;
+                    // align-items: center;
+                    padding: 9px 4px 7px 10px;
+                    text-align: left;
                     .status-label {
                       font-weight: 400;
                       font-size: 14px;
+                      text-align: left;
                       color: #383838;
                     }
                     .ratio {
@@ -656,12 +635,17 @@
                       font-size: 12px;
                       color: #363636;
                       white-space: nowrap;
+                      text-align: left;
                     }
                     .status-value {
                       font-family: 'YouSheBiaoTiHei';
                       font-weight: bold;
-                      font-size: 24px;
+                      font-size: 30px;
                       margin: 5px 0;
+                      // font-style: italic;
+                      display: inline-block;
+                      transform: skewX(-5deg);
+
                       span {
                         font-weight: 400;
                         font-size: 14px;
@@ -716,14 +700,17 @@
                   border-radius: 8px 8px 8px 8px;
                   border: 1px solid #ffffff;
                   margin-right: 16px;
-                  img{
-                  width: 15px;
-                  height: 15px;
-                  margin-right: 5px;
+                  img {
+                    width: 15px;
+                    height: 15px;
+                    margin-right: 5px;
                   }
                   .flyimg {
-                  display: flex;
-                  align-items: center;
+                    display: flex;
+                    align-items: center;
+                    font-weight: 400;
+                    font-size: 14px;
+                    color: #7c8091;
                   }
                   .flydata {
                     margin-top: 15px;

--
Gitblit v1.9.3