From 423155b8134694c2f2e68f6d3f5239ba0541b0cf Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期二, 31 十二月 2024 18:10:35 +0800
Subject: [PATCH] ll

---
 h5/pages/wdata/detail.vue            |   32 +++--
 admin/src/views/task/index.vue       |  116 +++++++++--------------
 h5/pages/login/login.vue             |    9 +
 screen/src/views/LogisticsCenter.vue |   36 +++++-
 h5/App.vue                           |    1 
 h5/pages/wdata/list.vue              |   18 +-
 h5/pages/wdata/home.vue              |   14 +-
 screen/src/views/FireFighting.vue    |   26 +++-
 screen/src/views/TaskEfficiency.vue  |   14 ++
 9 files changed, 146 insertions(+), 120 deletions(-)

diff --git a/admin/src/views/task/index.vue b/admin/src/views/task/index.vue
index 97d8c7f..11345da 100644
--- a/admin/src/views/task/index.vue
+++ b/admin/src/views/task/index.vue
@@ -1,18 +1,9 @@
 <template>
   <div class="main_app">
-    <QueryForm
-      v-model="filters"
-      :query-form-config="queryFormConfig"
-      @handleQuery="getList(1)"
-      @clear="clear"
-      @changeForm='changeForm'
-    >
+    <QueryForm v-model="filters" :query-form-config="queryFormConfig" @handleQuery="getHeadData(1)" @clear="clear"
+      @changeForm='changeForm'>
       <template #fastdate>
-        <el-radio-group
-          v-model="filters.fastdate"
-          size="small"
-          @input="changeRadio"
-        >
+        <el-radio-group v-model="filters.fastdate" size="small" @input="changeRadio">
           <el-radio-button label="0">褰撳ぉ</el-radio-button>
           <el-radio-button label="6">杩�7澶�</el-radio-button>
           <el-radio-button label="29">杩�30澶�</el-radio-button>
@@ -20,17 +11,11 @@
       </template>
     </QueryForm>
     <!--  -->
-    <el-tabs v-model="filters.queryType" @tab-click="(e) => getList(1)">
+    <el-tabs v-model="filters.queryType" @tab-click="(e) => getHeadData(1)">
       <el-tab-pane label="寰呭鐞�" name="0">
         <template #label>
-          <span
-            >寰呭鐞�
-            <el-badge
-              v-if="headData.noticeWaitNum"
-              :value="headData.noticeWaitNum"
-              class="item"
-              type="danger"
-            >
+          <span>寰呭鐞�
+            <el-badge v-if="headData.noticeWaitNum" :value="headData.noticeWaitNum" class="item" type="danger">
             </el-badge>
           </span>
         </template>
@@ -41,29 +26,16 @@
       </el-tab-pane>
       <el-tab-pane :value="headData.noticeCopyNum" label="鎶勯�佹垜鐨�" name="3">
         <template #label>
-          <span
-            >鎶勯�佹垜鐨�
-            <el-badge
-              v-if="headData.noticeCopyNum"
-              :value="headData.noticeCopyNum"
-              class="item"
-              type="danger"
-            >
+          <span>鎶勯�佹垜鐨�
+            <el-badge v-if="headData.noticeCopyNum" :value="headData.noticeCopyNum" class="item" type="danger">
             </el-badge>
           </span>
         </template>
       </el-tab-pane>
     </el-tabs>
-    <el-table
-      v-loading="loading"
-      :data="dataList"
-      stripe
-      row-key="id"
-      class="mb20"
-      default-expand-all
-    >
+    <el-table v-loading="loading" :data="dataList" stripe row-key="id" class="mb20" default-expand-all>
       <el-table-column label="澶勭悊浜嬮」" min-width="160">
-        <template slot-scope="{ row }"> {{ row.title}}
+        <template slot-scope="{ row }"> {{ row.title }}
         </template>
       </el-table-column>
       <el-table-column prop="info" label="褰撳墠闃舵" min-width="100"></el-table-column>
@@ -71,27 +43,23 @@
       </el-table-column>
       <el-table-column label="鎿嶄綔" width="230" fixed="right">
         <template slot-scope="{ row }">
-          <el-button
-            type="text"
-            @click="handleDetail(row)"
-            >鏌ョ湅璇︽儏</el-button
-          >
+          <el-button type="text" @click="handleDetail(row)">鏌ョ湅璇︽儏</el-button>
         </template>
       </el-table-column>
     </el-table>
-    <pagination
-      @size-change="handleSizeChange"
-      @current-change="getList"
-      :pagination="pagination"
-    />
-    <TaskDetail v-if="isShowDetail" ref="DetailRef" @close="isShowDetail = false" @success="SubSuccess('isShowDetail')" />
-    <VisReportDetail v-if="isShowReport" ref="VisReportDetailRef" @close="isShowReport = false" @success="SubSuccess('isShowReport')" />
-    <DangetDetail v-if="isShowDanger" ref="DangetDetailRef" @close="isShowDanger = false" @success="SubSuccess('isShowDanger')" />
-    <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" @close="isShowDriver = false" @success="SubSuccess('isShowDriver')" />
+    <pagination @size-change="handleSizeChange" @current-change="getHeadData" :pagination="pagination" />
+    <TaskDetail v-if="isShowDetail" ref="DetailRef" @close="isShowDetail = false"
+      @success="SubSuccess('isShowDetail')" />
+    <VisReportDetail v-if="isShowReport" ref="VisReportDetailRef" @close="isShowReport = false"
+      @success="SubSuccess('isShowReport')" />
+    <DangetDetail v-if="isShowDanger" ref="DangetDetailRef" @close="isShowDanger = false"
+      @success="SubSuccess('isShowDanger')" />
+    <DriverDetail v-if="isShowDriver" ref="DriverDetailRef" @close="isShowDriver = false"
+      @success="SubSuccess('isShowDriver')" />
     <!-- 鐢ㄨ溅鐢宠 -->
-    <OperaCarUseBookWindow ref="OperaDetailsWindow" @success="getList" />
+    <OperaCarUseBookWindow ref="OperaDetailsWindow" @success="getHeadData" />
     <!-- 闅愭偅 -->
-    <OperaHiddenDangerWindow ref="OperaHiddenDangerWindow" @success="getList" />
+    <OperaHiddenDangerWindow ref="OperaHiddenDangerWindow" @success="getHeadData" />
     <!-- 棰勭害璇︽儏 -->
     <OperaVisitsDesWindow ref="OperaVisitsDesWindow" />
   </div>
@@ -126,7 +94,7 @@
     OperaHiddenDangerWindow,
     OperaVisitsDesWindow
   },
-  data () {
+  data() {
     return {
       isShowDetail: false,
       isShowReport: false,
@@ -182,22 +150,22 @@
       ]
     }
   },
-  created () {
+  created() {
     // this.getHeadData()
     // this.changeRadio('0')
-    this.getList()
+    this.getHeadData()
   },
   methods: {
-    changeRadio (day) {
+    changeRadio(day) {
       const arr = [dayjs().subtract(day, 'day').format('YYYY-MM-DD') + ' 00:00:00', dayjs().format('YYYY-MM-DD') + ' 23:59:59']
       this.$set(this.filters, 'selTime', arr)
-      this.getList()
+      this.getHeadData()
     },
     SubSuccess(str) {
       this[str] = false
-      this.getTaskList()
+      this.getHeadData()
     },
-    handleTest (row) {
+    handleTest(row) {
       getAppHeaderNav(5).then(res => {
         if (res === undefined || res == null) {
           return
@@ -208,9 +176,9 @@
         }, 3000)
       })
     },
-    handleDetail (row) {
+    handleDetail(row) {
       if (row.type === 7) {
-        this.handleTest(row);
+        this.handleTest(row)
         return
       }
       if (this.filters.queryType == 3) {
@@ -261,14 +229,13 @@
         })
       }
     },
-    changeForm (str) {
+    changeForm(str) {
       if (str === 'selTime') {
         this.$set(this.filters, 'fastdate', null)
-        this.getList()
+        this.getHeadData()
       }
     },
-    getList (page) {
-      this.getHeadData()
+    getList(page) {
       const { filters, pagination } = this
       if (filters.selTime && filters.selTime.length > 0) {
         filters.startDate = filters.selTime[0]
@@ -283,14 +250,17 @@
         ...pagination
       }).then(res => {
         console.log('res', res)
+        this.loading = false
         this.dataList = res.records || []
         this.pagination.total = res.total || 0
         this.dataList.forEach(i => {
           i.param1 = JSON.parse(i.param1)
+        }, () => {
+          this.loading = false
         })
       })
     },
-    getHeadData () {
+    getHeadData(page) {
       const { filters } = this
       if (filters.selTime && filters.selTime.length > 0) {
         filters.startDate = filters.selTime[0]
@@ -299,17 +269,21 @@
         filters.startDate = null
         filters.endDate = null
       }
+      this.loading = true
       taskCenterHeadPC({ ...filters, queryType: Number(filters.queryType), isDetail: '1' }).then(res => {
         this.headData = res
+        this.getList(page)
+      }, () => {
+        this.loading = false
       })
     },
-    clear () {
+    clear() {
       this.filters = {
         queryType: '0',
       }
-      this.getList(0)
+      this.getHeadData(0)
     },
-    handleSizeChange (capacity) {
+    handleSizeChange(capacity) {
       this.pagination.capacity = capacity
     }
   }
diff --git a/h5/App.vue b/h5/App.vue
index 82f0674..5ce65e1 100644
--- a/h5/App.vue
+++ b/h5/App.vue
@@ -7,6 +7,7 @@
     	if(path == '/pages/login/login' || path == '/'){
 				window.location.href = app_url
 			}
+			// console.log('path', path);
 			if(path == '/pages/wdata/home'){
 				window.location.href = 'https://atwl.ahzyssl.com/zhyq_h5/#/pages/wdata/home'
 			}
diff --git a/h5/pages/login/login.vue b/h5/pages/login/login.vue
index 59d9e67..8107316 100644
--- a/h5/pages/login/login.vue
+++ b/h5/pages/login/login.vue
@@ -41,7 +41,7 @@
 	export default {
 		data() {
 			return {
-				code: 'aaa'
+				code: ''
 			}
 		},
 		onLoad(option) {
@@ -58,7 +58,12 @@
 			var that = this
 			let url = 'https://atwl.ahzyssl.com/zhyq_h5/#/'
 			let code = ''
-			if (window.location.href.indexOf('code=') !== -1 || this.code) {
+			if (window.location.href.indexOf('code=') !== -1 || this.code) {
+				// if(window.location.href.indexOf('wdata') !== -1){
+				// 	uni.redirectTo({
+				// 		url: '/pages/wdata/home?code=' + 
+				// 	})
+				// }
 				const ywinfo = uni.getStorageSync('ywinfo') || {}
 				 if(ywinfo.ywid && (ywinfo.type || ywinfo.type == 0)){
 					 this.userAuth(ywinfo.type)
diff --git a/h5/pages/wdata/detail.vue b/h5/pages/wdata/detail.vue
index 04be1cd..f831583 100644
--- a/h5/pages/wdata/detail.vue
+++ b/h5/pages/wdata/detail.vue
@@ -81,7 +81,7 @@
 							<image v-else src="@/static/waybill/ic_dingdan@2x.png" mode=""></image>
 						</view>
 						<view class="content">
-							<view class="name">{{item.receiveLocation}}</view>
+							<view class="name" :class="{primaryColor: (info.logisticsStatus == 1 && item.actualArrivedDate) || info.logisticsStatus == 2}">{{item.receiveLocation}}</view>
 							<view class="status">
 								<view v-if="info.logisticsStatus == 0" class="btn">鍒拌揣</view>
 								<view v-else-if="info.logisticsStatus == 1 && !item.actualArrivedDate" @click="startAri(item.stopNumber)"
@@ -95,7 +95,8 @@
 					</view>
 					<view class="top1">
 						<view class="left_icon"></view>
-						<view class="time">鍒拌揣鏃堕棿锛歿{ item.actualArrivedDate || '-' }}</view>
+						<view class="time" v-if="item.actualArrivedDate">鍒拌揣鏃堕棿锛歿{ item.actualArrivedDate}}</view>
+						<view class="time" style="margin-top: -10rpx;" v-else>-</view>
 					</view>
 				</view>
 			</view>
@@ -143,7 +144,8 @@
 								optType: 0
 							}).then((ress) => {
 								if (ress.code == 200) {
-									this.showToast('鍚繍鎴愬姛')
+									this.showToast('鍚繍鎴愬姛')
+									this.getDetail()
 								}
 							})
 						}
@@ -162,7 +164,8 @@
 								id: this.id
 							}).then(ress => {
 								if (ress.code == 200) {
-									this.showToast('鍒拌揣鎴愬姛')
+									this.showToast('鍒拌揣鎴愬姛')
+									this.getDetail()
 								}
 							})
 						}
@@ -185,7 +188,6 @@
 		position: absolute;
 		top: 0;
 		left: 0;
-		z-index: -1;
 	}
 
 	.info {
@@ -193,7 +195,8 @@
 		overflow: hidden;
 		margin-top: 30rpx;
 		background: #FFFFFF;
-
+		position: relative;
+		z-index: 1;
 		.head {
 			display: flex;
 			justify-content: space-between;
@@ -256,7 +259,7 @@
 				color: #222222;
 
 				.line {
-					height: 68rpx;
+					min-height: 68rpx;
 					align-items: center;
 					display: flex;
 					border-bottom: 1px solid #E5E5E5;
@@ -297,7 +300,7 @@
 		border-radius: 16rpx;
 		padding: 30rpx;
 		margin-top: 20rpx;
-
+		margin-bottom: 20rpx;
 		.title {
 			font-weight: 500;
 			font-size: 32rpx;
@@ -308,7 +311,10 @@
 		.list {
 			.item {
 				position: relative;
-
+				padding-bottom: 24rpx;
+				&:nth-last-child(1){
+					padding-bottom: 0;
+				}
 				.dian {
 					border: 1rpx dashed #CCCCCC;
 					height: calc(100% - 48rpx);
@@ -320,7 +326,6 @@
 
 				.top1 {
 					display: flex;
-
 					.left_icon {
 						width: 78rpx;
 
@@ -334,7 +339,7 @@
 						flex: 1;
 						display: flex;
 						justify-content: space-between;
-						align-items: center;
+						// align-items: center;
 						margin-bottom: 12rpx;
 
 						.name {
@@ -346,7 +351,7 @@
 
 						.status {
 							display: flex;
-							align-items: center;
+							// align-items: center;
 							font-size: 26rpx;
 
 							.btn {
@@ -362,7 +367,8 @@
 
 							.pri {
 								color: #fff;
-								background-color: $uni-color-primary;
+								background-color: $uni-color-primary;
+								border: 1rpx solid $uni-color-primary;
 							}
 
 							image {
diff --git a/h5/pages/wdata/home.vue b/h5/pages/wdata/home.vue
index 980e35b..8509eaa 100644
--- a/h5/pages/wdata/home.vue
+++ b/h5/pages/wdata/home.vue
@@ -52,7 +52,7 @@
 				let uri = encodeURIComponent(url)
 				let authURL =
 					`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appID}&redirect_uri=${uri}&response_type=code&scope=snsapi_base#wechat_redirect`
-				// window.location.href = authURL
+				window.location.href = authURL
 			}
 		},
 		methods: {
@@ -66,7 +66,7 @@
 				loginDriverWithCode({
 					phone,
 					code,
-					openid: this.$store.state.openId || '000'
+					openid: this.$store.state.openId || '111'
 				}).then(res => {
 					if (res && res.code == 200) {
 						if (res.data) {
@@ -74,9 +74,11 @@
 							getUserInfo().then(ress => {
 								this.$store.commit('setDriverInfo', ress.data)
 							})
-							uni.navigateTo({
-								url: '/pages/wdata/list'
-							})
+							setTimeout(() => {
+								uni.navigateTo({
+									url: '/pages/wdata/list'
+								})
+							}, 300)
 						}
 					}
 				})
@@ -89,7 +91,7 @@
 				sendSms({
 					phone: this.form.phone
 				}).then(res => {
-					this.countDown = 60
+					this.countDown = 10
 					setInterval(() => {
 						if (this.countDown == 0) return
 						this.countDown--
diff --git a/h5/pages/wdata/list.vue b/h5/pages/wdata/list.vue
index 3d7b149..f86a953 100644
--- a/h5/pages/wdata/list.vue
+++ b/h5/pages/wdata/list.vue
@@ -1,10 +1,10 @@
 <template>
 	<view class="main_app">
 		<view class="title_wrap">
-			<view class="name" v-if="driverInfo.realname">{{ driverInfo.realname || "" }}锛屾杩庣櫥褰曪綖</view>
+			<view class="name" v-if="driverInfo.realname || driverInfo.username">{{ driverInfo.realname || driverInfo.username }}锛屾杩庣櫥褰曪綖</view>
 			<view class="name" v-else>璇峰厛鐧诲綍</view>
 			<view class="btn" @click="loginOut">{{
-				driverInfo.realname ? "閫�鍑虹櫥褰�" : "鍘荤櫥褰�"
+				driverInfo.realname || driverInfo.username ? "閫�鍑虹櫥褰�" : "鍘荤櫥褰�"
 			}}</view>
 		</view>
 		<view class="head_wrap">
@@ -55,7 +55,8 @@
 <script>
 	import {
 		putTaskList,
-		logoutPost
+		logoutPost,
+		getUserInfo
 	} from '@/api'
 	import dayjs from 'dayjs';
 	export default {
@@ -73,7 +74,7 @@
 			};
 		},
 		onLoad(options) {
-			this.driverInfo = uni.getStorageSync('driverInfo')
+			this.driverInfo = uni.getStorageSync('driverInfo') || {}
 			this.getList()
 		},
 		methods: {
@@ -110,7 +111,7 @@
 						driverTel: this.driverInfo.username
 					},
 					pager: {
-						rows: 10,
+						rows: 30,
 						page
 					}
 				}).then(res => {
@@ -126,9 +127,8 @@
 				}).then(res => {
 					this.$store.commit('empty')
 					setTimeout(() => {
-						uni.redirectTo({
-							url: '/pages/wdata/home'
-						})
+						let str = 'https://atwl.ahzyssl.com/zhyq_h5/#/pages/wdata/home'
+						window.location.href = str
 					}, 300)
 				})
 			}
@@ -220,7 +220,7 @@
 
 	.scroll_Y {
 		background-color: #f7f7f7;
-		height: calc(100vh - 240rpx);
+		height: calc(100vh - 220rpx);
 		margin-top: 20rpx;
 		.main_list {
 			width: 750rpx;
diff --git a/screen/src/views/FireFighting.vue b/screen/src/views/FireFighting.vue
index 473d5ec..b6fa2a4 100644
--- a/screen/src/views/FireFighting.vue
+++ b/screen/src/views/FireFighting.vue
@@ -147,7 +147,9 @@
                   <div class="item">
                     <img class="icon" src="@/assets/images/FireFighting/ic_wendu@2x.png" alt="">
                     <div class="content">
-                      <div class="num" v-if="dataList8[dataIndex8].temperatureData && dataList8[dataIndex8].temperatureData.latestValue">{{ Number(dataList8[dataIndex8].temperatureData.latestValue).toFixed(1) }}<span>掳C</span></div>
+                      <div class="num"
+                        v-if="dataList8[dataIndex8].temperatureData && dataList8[dataIndex8].temperatureData.latestValue">
+                        {{ Number(dataList8[dataIndex8].temperatureData.latestValue).toFixed(1) }}<span>掳C</span></div>
                       <div class="la">闃堝�� {{ dataList8[dataIndex8].temperatureData?.alarmLow }}锝瀧{
                         dataList8[dataIndex8].temperatureData?.alarmHigh }}掳C</div>
                     </div>
@@ -155,7 +157,9 @@
                   <div class="item">
                     <img class="icon" src="@/assets/images/FireFighting/ic_shidu@2x.png" alt="">
                     <div class="content">
-                      <div class="num" v-if="dataList8[dataIndex8].humidityData && dataList8[dataIndex8].humidityData.latestValue">{{ Number(dataList8[dataIndex8].humidityData.latestValue).toFixed(1) }}<span>%</span></div>
+                      <div class="num"
+                        v-if="dataList8[dataIndex8].humidityData && dataList8[dataIndex8].humidityData.latestValue">{{
+                          Number(dataList8[dataIndex8].humidityData.latestValue).toFixed(1) }}<span>%</span></div>
                       <div class="la">闃堝�� {{ dataList8[dataIndex8].humidityData?.alarmLow }}锝瀧{
                         dataList8[dataIndex8].humidityData?.alarmHigh }}掳C</div>
                     </div>
@@ -284,7 +288,7 @@
                         <span class="status" v-else-if="item.handleStatus == 3">鏍稿疄涓�</span>
                         <span v-else class="status">鏈牳瀹�</span>
                       </div>
-                      <div class="have_time">宸茬粡鍙戠敓{{ item.haveTime }}</div>
+                      <div class="have_time">宸插彂鐢焮{ item.haveTime }}</div>
                     </div>
                     <div class="wrap">
                       <div class="title">
@@ -520,8 +524,8 @@
   let conNum = maxNum - minNum
   let acNum = item.obj.value.replaceAll('M', '')
   var data = (((acNum - minNum) / conNum) * 100).toFixed(0)
-  console.log('data', data);
-  
+  console.log('data', data)
+
   const option = {
     tooltip: {
       trigger: 'none',
@@ -659,7 +663,7 @@
         label: {
           distance: 15,
           show: true,
-          position: data > 52  ? 'inside' : 'top',
+          position: data > 52 ? 'inside' : 'top',
           formatter: '{c}' + '%',
           fontSize: 72,
           color: '#1AFCFF',
@@ -929,7 +933,14 @@
   getFighalarmDataList().then(res => {
     dataList7.value = res.data || []
     dataList7.value = dataList7.value.map(item => {
-      item.haveTime = dayjs.duration(new Date().getTime() - new Date(item.alarmTime).getTime()).format('H灏忔椂m鍒嗛挓')
+      let times = new Date().getTime() - new Date(item.alarmTime).getTime()
+      if (times > 86400000) {
+        item.haveTime = dayjs.duration(times).format('D澶〩灏忔椂m鍒嗛挓')
+      } else if (times > 3600000) {
+        item.haveTime = dayjs.duration(times).format('H灏忔椂m鍒嗛挓')
+      } else {
+        item.haveTime = dayjs.duration(times).format('m鍒嗛挓')
+      }
       return item
     })
   })
@@ -1252,6 +1263,7 @@
       width: 108%;
       display: flex;
       margin: 0 -4%;
+
       .content_wrap {
         flex: 1;
         flex-shrink: 0;
diff --git a/screen/src/views/LogisticsCenter.vue b/screen/src/views/LogisticsCenter.vue
index c371f99..9f37ba8 100644
--- a/screen/src/views/LogisticsCenter.vue
+++ b/screen/src/views/LogisticsCenter.vue
@@ -518,14 +518,23 @@
     { name: '婢抽棬鐗瑰埆琛屾斂鍖�', code:'820003',value: 0 },
     { name: '鍗楁捣璇稿矝', code:'',value: 0 },
   ]
+  let totalNum = 0
+  mapList.value.forEach(i => {
+    totalNum += i.yearNum
+  })
   mapData.forEach(item => {
     item.monthNum = 0
     item.yearNum = 0
     mapList.value.forEach(ite => {
       if (item.code == ite.code) {
-        item.value = ite.yearNum
+        item.value = 0
         item.monthNum = ite.monthNum
         item.yearNum = ite.yearNum
+        if(totalNum > 0){
+          item.rate = ((ite.yearNum / totalNum) * 100).toFixed(2)
+          item.value = (ite.yearNum / totalNum).toFixed(4)
+          
+        }
       }
     })
   })
@@ -535,10 +544,14 @@
     visualMap: {
       type: 'piecewise',
       pieces: [
-        { min: 100000, max: 99999999999, label: '鍑哄簱閲�10w浠ヤ笂', color: '#be6f2b' },
-        { min: 50000, max: 100000, label: '鍑哄簱閲�5-10w', color: '#c39332' },
-        { min: 20000, max: 50000, label: '鍑哄簱閲�2-5w', color: '#5ecbaf' },
-        { min: -1, max: 20000, label: '鍑哄簱閲�2w浠ヤ笅', color: '#3561a4' },
+        { min: 0.05, max: 99999999999, label: '璋冩嫧閲忓崰姣�5%浠ヤ笂', color: '#be6f2b' },
+        { min: 0.02, max: 0.05, label: '璋冩嫧閲忓崰姣�2%~5%', color: '#c39332' },
+        { min: 0.01, max: 0.02, label: '璋冩嫧閲忓崰姣�1%~2%', color: '#5ecbaf' },
+        { min: -1, max: 0.01, label: '璋冩嫧閲忓崰姣�1%浠ヤ笅', color: '#3561a4' },
+        // { min: 100000, max: 99999999999, label: '鍑哄簱閲�10w浠ヤ笂', color: '#be6f2b' },
+        // { min: 50000, max: 100000, label: '鍑哄簱閲�5-10w', color: '#c39332' },
+        // { min: 20000, max: 50000, label: '鍑哄簱閲�2-5w', color: '#5ecbaf' },
+        // { min: -1, max: 20000, label: '鍑哄簱閲�2w浠ヤ笅', color: '#3561a4' },
       ],
       itemWidth: 22,
       itemHeight: 22,
@@ -644,17 +657,24 @@
                         <div class="item-state-con">
                           <span class="dot bj"></span>
                           <span class="item-state-num">
-                            <span class="text">鏈湀鍑哄簱閲忥細</span>
+                            <span class="text">鏈湀璋冩嫧閲忥細</span>
                             <span class="num">${params.data.monthNum}涓囨敮</span>
                           </span>
                         </div>
-                         <div class="item-state-con">
+                        <div class="item-state-con">
                           <span class="dot yj"></span>
                           <span class="item-state-num">
-                           <span class="text">鏈勾鍑哄簱閲忥細</span>
+                           <span class="text">鏈勾璋冩嫧閲忥細</span>
                             <span class="num">${params.data.yearNum}涓囨敮</span>
                           </span>
                         </div>
+                        <div class="item-state-con">
+                          <span class="dot yj"></span>
+                          <span class="item-state-num">
+                           <span class="text">璋冩嫧閲忓崰姣旓細</span>
+                            <span class="num">${params.data.rate || 0}%</span>
+                          </span>
+                        </div>
                        </div>`
           }
         },
diff --git a/screen/src/views/TaskEfficiency.vue b/screen/src/views/TaskEfficiency.vue
index 3189033..2c6c0a1 100644
--- a/screen/src/views/TaskEfficiency.vue
+++ b/screen/src/views/TaskEfficiency.vue
@@ -65,7 +65,7 @@
             <div class="list one-swiper">
               <div class="swiper-wrapper">
                 <div class="line one-swiper-slide swiper-slide" v-for="item, i in dataList2" :key="i">
-                  <div class="top" :class="{top3: i < 3}"><span v-if="i < 3">top</span>{{ i + 1 }}</div>
+                  <div class="top" :class="{ top3: i < 3 }"><span v-if="i < 3">top</span>{{ i + 1 }}</div>
                   <div class="id_card">{{ item.platformName }}</div>
                   <div class="wrap">
                     <ChargeRate :rate="item.rate" />
@@ -812,7 +812,7 @@
 const platformClick = (val) => {
   const index = pointList.findIndex(i => i.name == val.platformName)
   workModalParam.value = { ...val, ...pointList[index], index: pointList }
-  if(workModalParam.value.workTime){
+  if (workModalParam.value.workTime) {
     workModalParam.value.workTime = workModalParam.value.workTime.replaceAll('m', '鍒嗛挓')
     workModalParam.value.workTime = workModalParam.value.workTime.replaceAll('h', '灏忔椂')
   }
@@ -1021,9 +1021,11 @@
             box-shadow: inset 0px 0px 3px 0px #01D9FE;
             margin-right: 10px;
           }
-          .top3{
+
+          .top3 {
             box-shadow: inset 0px 0px 3px 0px #FEAF01;
           }
+
           .one-swiper-slide {
             height: 40px !important;
           }
@@ -1041,11 +1043,14 @@
 
           .num {
             font-weight: 500;
-            width: 82px;
+            width: 88px;
             text-align: right;
             font-size: 13px;
             color: #DBEAEA;
             margin-left: 2px;
+            overflow: hidden;
+            white-space: nowrap;
+            text-overflow: ellipsis;
           }
 
           .wrap {
@@ -1153,6 +1158,7 @@
         left: 850px;
         top: 60px;
         z-index: 99999999;
+
         .head {
           display: flex;
           justify-content: space-between;

--
Gitblit v1.9.3