From 6f1203d1cf895efc473fade3ab049fc30d92c618 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期三, 26 三月 2025 16:48:23 +0800
Subject: [PATCH] 优化

---
 h5/pages/visitorApplication/visitorApplication.vue         |  339 ---------------------------------
 screen/src/views/PlatformCall.vue                          |   11 
 h5/pages/staff/task/visitorApprove.vue                     |   31 ++
 h5/pages/appointmentDetails/appointmentDetails.vue         |   36 +++
 h5/api/visitor.js                                          |    7 
 h5/pages/driver/reserved.vue                               |   14 
 screen/vite.config.js                                      |    4 
 admin/src/components/business/OperaPlatformGroupWindow.vue |  101 +++++++++
 screen/src/views/TaskEfficiency.vue                        |   31 +--
 9 files changed, 199 insertions(+), 375 deletions(-)

diff --git a/admin/src/components/business/OperaPlatformGroupWindow.vue b/admin/src/components/business/OperaPlatformGroupWindow.vue
index 155a070..5892ad5 100644
--- a/admin/src/components/business/OperaPlatformGroupWindow.vue
+++ b/admin/src/components/business/OperaPlatformGroupWindow.vue
@@ -17,6 +17,18 @@
           <el-radio  :label="2"  >甯傚叕鍙稿嵏璐�</el-radio>
         </el-radio-group>
       </el-form-item>
+      <el-form-item label="閫夋嫨绛惧埌閫氱煡浜哄憳" prop="signInNoticeUsers">
+        <el-select v-model="form.signInNoticeUsers" filterable multiple clearable @change="changeSignInNoticeUsers" placeholder="璇烽�夋嫨">
+          <el-option v-for="item in memberList" :key="item.id" :label="item.name" :value="item.id">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="閫夋嫨浣滀笟鏈畬鎴愰�氱煡浜哄憳" prop="unFinishNoticeUsers">
+        <el-select v-model="form.unFinishNoticeUsers" filterable multiple clearable @change="changeUnFinishNoticeUsers" placeholder="璇烽�夋嫨">
+          <el-option v-for="item in memberList" :key="item.id" :label="item.name" :value="item.id">
+          </el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item label="宸ヤ綔鏃堕棿锛�" prop="startTime">
         <div style=" display: inline-block">
           <el-time-picker
@@ -49,7 +61,7 @@
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
 import { numRuleGtZero } from '@/utils/form'
-import { allList } from '@/api/platform/platformGroup'
+import { allList } from '@/api/business/member'
 import { getList as deviceList } from '@/api/business/device'
 export default {
   name: 'OperaPlatformWindow',
@@ -67,13 +79,18 @@
         type: 0,
         startTime: '',
         endTime: '',
-        waitCallTime: ''
+        waitCallTime: '',
+        signInNoticeUsers: [],
+        unFinishNoticeUsers: []
       },
       // 楠岃瘉瑙勫垯
       rules: {
         name: [{ required: true, message: '璇疯緭鍏ュ垎缁勫悕绉� ', trigger: 'blur' }],
-        type: [{ required: true, message: '璇烽�夋嫨涓氬姟绫诲瀷 '}]
-      }
+        type: [{ required: true, message: '璇烽�夋嫨涓氬姟绫诲瀷 '}],
+        signInNoticeUsers: [{ required: true, message: '璇烽�夋嫨绛惧埌閫氱煡浜哄憳', trigger: 'blur' }],
+        unFinishNoticeUsers: [{ required: true, message: '璇烽�夋嫨浣滀笟鏈畬鎴愰�氱煡浜哄憳', trigger: 'blur' }]
+      },
+      memberList: []
     }
   },
   created () {
@@ -83,6 +100,75 @@
     })
   },
   methods: {
+    changeSignInNoticeUsers(e) {
+      if (this.form.signInNoticeUsers.length > 5) {
+        this.form.signInNoticeUsers.splice(this.form.signInNoticeUsers.length - 1, 1)
+        this.$message.warning('鏈�澶氬彧鑳介�夋嫨浜斾釜浜哄憳锛�')
+      }
+    },
+    changeUnFinishNoticeUsers(e) {
+      if (this.form.unFinishNoticeUsers.length > 5) {
+        this.form.unFinishNoticeUsers.splice(this.form.unFinishNoticeUsers.length - 1, 1)
+        this.$message.warning('鏈�澶氬彧鑳介�夋嫨浜斾釜浜哄憳锛�')
+      }
+    },
+    // 纭鏂板缓
+    __confirmCreate () {
+      this.$refs.form.validate((valid) => {
+        if (!valid) {
+          return
+        }
+        let obj = JSON.parse(JSON.stringify(this.form))
+        obj.signInNoticeUsers = obj.signInNoticeUsers.join(',')
+        obj.unFinishNoticeUsers = obj.unFinishNoticeUsers.join(',')
+        // 璋冪敤鏂板缓鎺ュ彛
+        this.isWorking = true
+        this.api.create(obj)
+          .then(() => {
+            this.visible = false
+            this.$tip.apiSuccess('鏂板缓鎴愬姛')
+            this.$emit('success')
+          })
+          .catch(e => {
+            // this.$tip.apiFailed(e)
+          })
+          .finally(() => {
+            this.isWorking = false
+          })
+      })
+    },
+    __confirmEdit () {
+      this.$refs.form.validate((valid) => {
+        if (!valid) {
+          return
+        }
+        let obj = JSON.parse(JSON.stringify(this.form))
+        obj.signInNoticeUsers = obj.signInNoticeUsers.join(',')
+        obj.unFinishNoticeUsers = obj.unFinishNoticeUsers.join(',')
+        // 璋冪敤鏂板缓鎺ュ彛
+        this.isWorking = true
+        this.api.updateById(obj)
+          .then(() => {
+            this.visible = false
+            this.$tip.apiSuccess('淇敼鎴愬姛')
+            this.$emit('success')
+          })
+          .catch(e => {
+            // this.$tip.apiFailed(e)
+          })
+          .finally(() => {
+            this.isWorking = false
+          })
+      })
+    },
+    loadMember() {
+      allList({
+        type: 2,
+        companyType: 1
+      }).then(res => {
+        this.memberList = res
+      })
+    },
     seleTime(){},
     /**
      * 鎵撳紑绐楀彛
@@ -91,6 +177,7 @@
      */
     open (title, target) {
       this.title = title
+      this.loadMember()
       this.visible = true
       // 鏂板缓
       if (target == null) {
@@ -105,6 +192,12 @@
         for (const key in this.form) {
           this.form[key] = target[key]
         }
+        if (this.form.signInNoticeUsers) {
+          this.form.signInNoticeUsers = this.form.signInNoticeUsers.split(',').map(item => Number(item))
+        }
+        if (this.form.unFinishNoticeUsers) {
+          this.form.unFinishNoticeUsers = this.form.unFinishNoticeUsers.split(',').map(item => Number(item))
+        }
       })
     }
   }
diff --git a/h5/api/visitor.js b/h5/api/visitor.js
index 34bb521..38f55fa 100644
--- a/h5/api/visitor.js
+++ b/h5/api/visitor.js
@@ -80,6 +80,13 @@
     method: 'get'
   })
 }
+// 鍙栨秷棰勭害
+export const visitsCancel = (id) => {
+  return http({
+    url: 'visitsAdmin/cloudService/business/visits/visitsCancel?visitId=' + id,
+    method: 'get'
+  })
+}
 // 鏉ヨ浜嬬敱
 export const getVisitReason = (data) => {
   return http({
diff --git a/h5/pages/appointmentDetails/appointmentDetails.vue b/h5/pages/appointmentDetails/appointmentDetails.vue
index 451b063..35c0d1c 100644
--- a/h5/pages/appointmentDetails/appointmentDetails.vue
+++ b/h5/pages/appointmentDetails/appointmentDetails.vue
@@ -85,11 +85,26 @@
         <view class="box_list_item_val">{{ info.carNos }}</view>
       </view>
     </view>
+	<view class="footer">
+		<u-button
+		text="鍙栨秷棰勭害"
+		size="mini"
+		v-if="[0,1,2,5].includes(info.status)"
+		@click="cancelShow = true" />
+	</view>
     <u-popup :show="show" mode="center" @close="close">
       <view class="qrocde">
         <canvas class="qrcode_img" canvas-id="img1"></canvas>
       </view>
     </u-popup>
+	<!-- 鍙栨秷棰勭害寮圭獥 -->
+	<u-modal
+		:show="cancelShow"
+		:showCancelButton="true"
+		title="绯荤粺鎻愮ず"
+		content='纭畾鍙栨秷褰撳墠棰勭害鍚楋紵'
+		@cancel="cancelShow = false"
+		@confirm="cancel" />
   </view>
 </template>
 
@@ -100,9 +115,11 @@
 export default {
   data() {
     return {
+		id: null,
       info: {},
       show: false,
-      detail: ''
+      detail: '',
+	  cancelShow: false
     }
   },
   onBackPress(options) {
@@ -121,6 +138,7 @@
   onLoad(option) {
 		uni.setStorageSync('ywinfo',{})
     this.detail = option.detail || ''
+	this.id = option.id
     this.getDetail(option.id)
     // visitorSubDetail({ id: option.id })
     // 	.then(res => {
@@ -136,6 +154,12 @@
 
   },
   methods: {
+	// 鍙栨秷棰勭害
+	cancel() {
+		visitsCancel(this.id).then(res => {
+			this.getDetail(this.id)
+		})
+	},
     close() {
       this.show = false
     },
@@ -170,6 +194,16 @@
 <style lang="scss" scoped>
 .box {
   width: 100%;
+  .footer {
+	  position: fixed;
+	  left: 0;
+	  bottom: 0;
+	  width: 100%;
+	  height: 100rpx;
+	  text-align: right;
+	  background-color: #ffffff;
+	  padding-bottom: calc(30rpx + env(safe-area-inset-bottom));
+  }
   .qrocde {
     width: 300rpx;
     height: 300rpx;
diff --git a/h5/pages/driver/reserved.vue b/h5/pages/driver/reserved.vue
index 1ec23fd..3571990 100644
--- a/h5/pages/driver/reserved.vue
+++ b/h5/pages/driver/reserved.vue
@@ -15,9 +15,9 @@
 			<view class="line">
 				<view class="label">
 					<text>*</text>
-					<text>鍚堝悓鍙�</text>
+					<text>鍚堝悓/鍗曟嵁缂栧彿</text>
 				</view>
-				<view class="value"><input type="text" placeholder="璇疯緭鍏ユ偍鐨勫悎鍚屽彿" v-model="param.contractNum" placeholder-style="color: #999999;" /></view>
+				<view class="value"><input type="text" placeholder="璇疯緭鍏ユ偍鐨勫悎鍚�/鍗曟嵁缂栧彿" v-model="param.contractNum" placeholder-style="color: #999999;" /></view>
 			</view>
 			<!--  -->
 			<view class="line">
@@ -33,7 +33,7 @@
 			<view class="line">
 				<view class="label">
 					<text>*</text>
-					<text>鍏ュ簱绫诲瀷</text>
+					<text>浣滀笟绫诲瀷</text>
 				</view>
 				<view class="value">
 					<view class="btns">
@@ -55,7 +55,7 @@
 			<view class="line">
 				<view class="label">
 					<text>*</text>
-					<text>鍑嗚繍璇佺収鐗�</text>
+					<text>鍑嗚繍璇�/杩愬崟鐓х墖</text>
 				</view>
 				<view class="value" @click="handleUpload">
 					<image v-if="param.transportImgFull" class="upload_wrap" :src="param.transportImgFull" alt="">
@@ -175,14 +175,14 @@
 		onSubmit() {
 			const param = { ...this.param }
 			if (!param.arriveDate) return this.showToast('璇烽�夋嫨鍒板満鏃堕棿')
-			if (!param.inType && param.inType != 0) return this.showToast('璇烽�夋嫨鍏ュ簱绫诲瀷')
-			if (!param.contractNum) return this.showToast('璇疯緭鍏ュ悎鍚屽彿')
+			if (!param.inType && param.inType != 0) return this.showToast('璇烽�夋嫨浣滀笟绫诲瀷')
+			if (!param.contractNum) return this.showToast('璇疯緭鍏ュ悎鍚�/鍗曟嵁缂栧彿')
 			if (!param.totalNum) return this.showToast('璇疯緭鍏ユ�昏繍杈撻噺')
 			if (!param.driverName) return this.showToast('璇疯緭鍏ュ徃鏈哄鍚�')
 			if (!param.driverPhone) return this.showToast('璇疯緭鍏ユ墜鏈哄彿')
 			if (!param.carCodeFront) return this.showToast('璇疯緭鍏ヨ溅鍓嶇墝鍙�')
 			if (!param.carCodeBack) return this.showToast('璇疯緭鍏ヨ溅鍚庣墝鍙�')
-			if (!param.transportImgFull) return this.showToast('璇蜂笂浼犲噯杩愯瘉鐓х墖')
+			if (!param.transportImgFull) return this.showToast('璇蜂笂浼犲噯杩愯瘉/杩愬崟鐓х墖')
 			param.arriveDate = param.arriveDate + ':00'
 			let fn = param.id ? driverCarApplyEdit : driverCarApply
 			fn({...param}).then(res => {
diff --git a/h5/pages/staff/task/visitorApprove.vue b/h5/pages/staff/task/visitorApprove.vue
index 970f44b..af5b291 100644
--- a/h5/pages/staff/task/visitorApprove.vue
+++ b/h5/pages/staff/task/visitorApprove.vue
@@ -106,7 +106,10 @@
         info.approveDateVO.canBeApproved != null &&
         info.approveDateVO.canBeApproved == 1
       " class="main_footer">
+			<view class="btn" @click="cancelShow = true" v-if="checkAuth('business:visits:cancel') && [0,1,2,5].includes(info.status)">鍙栨秷棰勭害</view>
+			<view style="width: 30rpx; height: 100%;"></view>
 			<view class="btn" @click="handleSub(3)">鎷掔粷</view>
+			<view style="width: 30rpx; height: 100%;"></view>
 			<view class="btn agree" @click="handleSub(2)">鍚屾剰</view>
 		</view>
 
@@ -118,10 +121,19 @@
           " placeholder-class="placeholder9" />
 				<view class="main_footer">
 					<view class="btn" @click="showApprModal = false">鍙栨秷</view>
+					<view style="width: 30rpx; height: 100%;"></view>
 					<view class="btn agree" @click="onSubmit">鎻愪氦</view>
 				</view>
 			</view>
 		</u-popup>
+		<!-- 鍙栨秷棰勭害寮圭獥 -->
+		<u-modal
+			:show="cancelShow"
+			:showCancelButton="true"
+			title="绯荤粺鎻愮ず"
+			content='纭畾鍙栨秷褰撳墠棰勭害鍚楋紵'
+			@cancel="cancelShow = false"
+			@confirm="cancel" />
 	</view>
 </template>
 
@@ -133,6 +145,9 @@
 	export default {
 		data() {
 			return {
+				userInfo: uni.getStorageSync('userInfo') || {
+					permissions: []
+				},
 				showApprModal: false,
 				param: {},
 				info: {},
@@ -167,7 +182,8 @@
 					2: '宸查�氳繃',
 					3: '宸叉嫆缁�',
 					4: '宸插彇娑�',
-				}
+				},
+				cancelShow: false
 			}
 		},
 		onLoad(op) {
@@ -176,6 +192,16 @@
 			this.getDetail()
 		},
 		methods: {
+			// 鍙栨秷棰勭害
+			cancel() {
+				visitsCancel(this.id).then(res => {
+					this.getDetail()
+				})
+			},
+			checkAuth(str) {
+				const permissions = this.userInfo.permissions || []
+				return permissions.indexOf(str) > -1
+			},
 			getDetail() {
 				const {
 					id
@@ -503,7 +529,8 @@
 			background: #ffffff;
 
 			.btn {
-				width: 336rpx;
+				// width: 336rpx;
+				flex: 1;
 				height: 88rpx;
 				line-height: 88rpx;
 				background: #ffffff;
diff --git a/h5/pages/visitorApplication/visitorApplication.vue b/h5/pages/visitorApplication/visitorApplication.vue
index 5b8f978..0fd3b21 100644
--- a/h5/pages/visitorApplication/visitorApplication.vue
+++ b/h5/pages/visitorApplication/visitorApplication.vue
@@ -61,17 +61,12 @@
 					<u-icon name="arrow-right" color="#CCCCCC" size="20"></u-icon>
 				</view>
 			</view>
-			<view class="list_item">
+			<!-- <view class="list_item">
 				<view class="list_item_label">
 					<text></text>
 					<text>鏄惁鏂藉伐浣滀笟</text>
 				</view>
 				<view class="list_item_content">
-					<!-- <switch color="#4e99a9" style="transform: scale(0.8)" @change="constructionChange" /> -->
-<!-- 					<u-radio-group v-model="form1.type">
-						<u-radio label="鏄�" :name="1" activeColor="#4d99a8" class="mr24" />
-						<u-radio label="鍚�" :name="0" activeColor="#4d99a8" />
-					</u-radio-group> -->
 					<view class="checkbox_wrap">
 						<view class="check_item" @click="constructionChange(1)">
 							<text>鏄�</text>
@@ -86,7 +81,7 @@
 						
 					</view>
 				</view>
-			</view>
+			</view> -->
 			<view v-if="form1.type == '1'" class="list_item">
 				<view class="list_item_label">
 					<text></text>
@@ -430,7 +425,7 @@
 				if (type === 'day') {
 					return `${value}鏃
 				}
-<<<<<<< HEAD
+// <<<<<<< HEAD
 				this.$forceUpdate()
 				this.closeInput()
 			},
@@ -555,10 +550,9 @@
 						title: '璇佷欢鍙风爜鏍煎紡閿欒',
 						icon: 'none'
 					})
-=======
+				}
 				if (type === 'hour') {
 					return `${value}鏃禶
->>>>>>> f0f08cc1ff84d45de32d8bff4a40e6a7d0d7a9e6
 				}
 				if (type === 'minute') {
 					return `${value}鍒哷
@@ -791,7 +785,9 @@
 			},
 			selectedReason(e) {
 				this.form1.reason = e.value[0].title
+				this.form1.type = e.value[0].constructionType
 				console.log(e.value[0].title)
+				console.log(e.value[0].constructionType)
 				this.showReason = false
 			},
 			submitCart() {
@@ -1442,329 +1438,6 @@
 						color: #222222;
 					}
 				}
-<<<<<<< HEAD
-				let arr = JSON.parse(JSON.stringify(this.withUserList))
-				this.personnel.push(arr)
-				this.show3 = false
-				this.withUserList.name = ''
-				this.withUserList.phone = ''
-				this.withUserList.idcardType = ''
-				this.withUserList.idcardTypeName = ''
-				this.withUserList.companyName = ''
-				this.withUserList.idcardNo = ''
-				this.withUserList.faceImg = ''
-				this.withUserList.faceImgUrl = ''
-				this.withUserList.imgurl = ''
-				this.withUserList.imgurlUrl = ''
-			},
-			upload(type) {
-				this.type = type
-				if (type === 'faceImg') {
-					this.$refs.cropper.open()
-					return
-				}
-				uni.chooseImage({
-					success: (chooseImageRes) => {
-						// if (type === 'faceImg') {
-						// 	this.photoSrc = chooseImageRes.tempFilePaths[0];
-						// 	this.$refs.tlyPictureCut.showPop();
-						// 	return
-						// }
-						uni.showLoading({ title: '涓婁紶涓�', mask: true });
-						for (let i = 0; i < chooseImageRes.tempFilePaths.length; i++) {
-							uni.uploadFile({
-								url: `${this.$baseUrl}public/api/uploadFtp.do`,
-								filePath: chooseImageRes.tempFilePaths[i],
-								name: 'file',
-								formData: {
-									folderCode: 'MEMBER_IMG'
-								},
-								success: (uploadFileRes) => {
-									let res = JSON.parse(uploadFileRes.data)
-									if (type === 'faceImg') {
-										this.withUserList.faceImg = res.data.halfPath
-										this.withUserList.faceImgUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
-									} else {
-										this.withUserList.imgurl = res.data.halfPath
-										this.withUserList.imgurlUrl = res.data.prefixPath + res.data.folder + res.data.halfPath
-									}
-								},
-								complete() {
-									if (i === chooseImageRes.tempFilePaths.length - 1) {
-										uni.hideLoading();
-									}
-								}
-							});
-						}
-					}
-				});
-			},
-			seleIdcard(e) {
-				this.withUserList.idcardType = e.value[0].id
-				this.withUserList.idcardTypeName = e.value[0].name
-				this.show6 = false
-			},
-			submitCart() {
-				if (!this.carName) return uni.showToast({
-					title: '璇疯緭鍏ヨ溅鐗屽彿鐮�',
-					icon: 'none'
-				})
-				this.cars.push(this.carName)
-				this.form1.carNos = this.cars.join(',')
-				this.carName = ''
-				this.show2 = false
-			},
-			deleCars(i) {
-				this.cars.splice(i, 1)
-				this.form1.carNos = this.cars.join(',')
-			},
-			submitMJ() {
-				let arr = []
-				let names = []
-				this.columns.forEach(item => {
-					if (item.active) {
-						arr.push(item.id)
-						names.push(item.name)
-					}
-				})
-				if (arr.length === 0) return uni.showToast({
-					title: '璇烽�夋嫨闂ㄧ',
-					icon: 'none'
-				})
-				this.form1.doorSelectName = names.join(',')
-				this.form1.doors = arr.join(',')
-				this.show = false
-			},
-			seleMJ(i) {
-				this.columns.forEach((item,index) => {
-					if (index === i) {
-						item.active = !item.active
-					}
-				})
-			},
-			openLC() {
-				if (!this.form1.starttime) return uni.showToast({
-					title: '璇峰厛閫夋嫨鍏ュ巶鏃堕棿',
-					icon: 'none'
-				})
-				this.show5 = true
-			},
-			setinDate(e) {
-				this.form1.starttime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM');
-				this.maxTime = getDaysAfterDate(uni.$u.timeFormat(e.value, 'yyyy-mm-dd'), this.day - 1)
-				this.show4 = false
-			},
-			setoutDate(e) {
-				this.form1.endtime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM');
-				this.show5 = false
-			},
-			formatTimeStamp(date) {
-			    return Date.parse(new Date(`${date}`)) || Date.parse(new Date(`${date.replace(/-/g,'/')}`))
-			},
-			// 鏌ヨ鐢ㄦ埛
-			getUser() {
-				if (this.verify === '0') {
-					if (this.form1.phone1) {
-						this.$u.api.getVisitedMember({
-							mobile: this.form1.phone1
-						}).then(res => {
-							if (res.code === 200) {
-								this.form1.receptMemberId = res.data.id
-								this.form1.receptMemberName = res.data.name
-							}
-						})
-					}
-				} else {
-					if (this.form1.phone1 && this.form1.receptMemberName) {
-						this.$u.api.getVisitedMember({
-							mobile: this.form1.phone1,
-							name: this.form1.receptMemberName
-						}).then(res => {
-							if (res.code === 200) {
-								this.form1.receptMemberId = res.data.id
-								this.form1.receptMemberName = res.data.name
-							}
-						})
-					}
-				}
-			},
-			// 琚嫓璁夸汉淇℃伅鏍¢獙鏂瑰紡锛�0鎵嬫満鍙峰崟鐙牎楠� 1鎵嬫満鍙峰拰濮撳悕缁勫悎鏍¢獙锛�
-			getUserValid() {
-				this.$u.api.getSystemDictData({
-					dictCode: 'SYSTEM',
-					label: 'BEVISITED_USER_VALID'
-				}).then(res => {
-					if (res.code === 200) {
-						this.verify = res.data.code
-					}
-				})
-			},
-			// 鑾峰彇鏄惁闇�瑕侀�夋嫨闂ㄧ/闂ㄧ鍒楄〃
-			getvisit() {
-				this.$u.api.getSystemDictData({
-					dictCode: 'SYSTEM',
-					label: 'SELECT_DOORS_VISIT_REQUIRED'
-				}).then(res => {
-					if (res.code === 200) {
-						this.accessControl = res.data.code
-						if (res.data.code === '1') {
-							this.$u.api.deviceRoleList({ type: 1 })
-								.then(device => {
-									if (device.code === 200) {
-										if (device.data.length > 0) {
-											device.data.forEach(item => {
-												item.active = false
-											})
-											this.columns = device.data
-										}
-									}
-								})
-						}
-					}
-				})
-			},
-			confirm(e) {
-				this.show = false
-			}
-		}
-	}
-</script>
-<style>
-	page {
-		background-color: #F7F7F7 !important;
-	}
-	.u-upload__button {
-		margin: 0 !important;
-	}
-</style>
-<style lang="scss" scoped>
-	.visit {
-		width: 100%;
-		.menjin {
-			width: 100%;
-			.respondent-title {
-				width: 100%;
-				height: 100rpx;
-				line-height: 100rpx;
-				text-align: center;
-				font-size: 32rpx;
-				font-weight: 500;
-				color: #222222;
-			}
-			.list {
-				width: 100%;
-				height: 400rpx;
-				display: flex;
-				flex-direction: column;
-				.list_item {
-					width: 100%;
-=======
-				.checkbox_wrap{
->>>>>>> f0f08cc1ff84d45de32d8bff4a40e6a7d0d7a9e6
-					display: flex;
-					align-items: center;
-					.check_item{
-						display: flex;
-						align-items: center;
-						margin-left: 20rpx;
-					}
-					image{
-						width: 42rpx;
-						height: 42rpx;
-						margin-left: 10rpx;
-					}
-				}
-			}
-		}
-
-		.cate {
-			width: 100%;
-			padding: 30rpx;
-			box-sizing: border-box;
-			background-color: #ffffff;
-
-			.cate_head {
-				font-size: 32rpx;
-				font-family: PingFangSC, PingFang SC;
-				font-weight: 600;
-				color: #222222;
-			}
-
-			.cate_list {
-				width: 100%;
-				display: flex;
-				align-items: center;
-				flex-wrap: wrap;
-				margin-top: 30rpx;
-
-				.cate_list_item {
-					height: 64rpx;
-					padding: 0 20rpx;
-					box-sizing: border-box;
-					background-color: #eeeeee;
-					border-radius: 4rpx;
-					margin-right: 20rpx;
-					margin-bottom: 20rpx;
-					display: flex;
-					align-items: center;
-
-					&:last-child {
-						margin-right: 0 !important;
-					}
-
-					text {
-						font-size: 26rpx;
-						font-family: PingFangSC, PingFang SC;
-						font-weight: 400;
-						color: #333333;
-						margin-right: 30rpx;
-					}
-				}
-			}
-
-			.cate_add {
-				width: 200rpx;
-				height: 50rpx;
-				display: flex;
-				align-items: center;
-				justify-content: center;
-				background: rgba(2, 94, 239, 0);
-				border-radius: 25rpx;
-				border: 1rpx solid #4c99a8;
-				font-size: 22rpx;
-				font-family: PingFangSC, PingFang SC;
-				font-weight: 400;
-				margin-top: 20rpx;
-				color: #4c99a8;
-				margin: 0 auto;
-			}
-		}
-
-		.zw {
-			width: 100%;
-			height: calc(env(safe-area-inset-bottom) + 118rpx);
-		}
-
-		.footer {
-			width: 100%;
-			padding: 0 30rpx;
-			padding-bottom: env(safe-area-inset-bottom);
-			box-sizing: border-box;
-			margin-top: 80rpx;
-			// position: fixed;
-			// left: 0;
-			// bottom: 30rpx;
-
-			.footer_btn {
-				width: 100%;
-				height: 88rpx;
-				line-height: 88rpx;
-				text-align: center;
-				background: #4c99a8;
-				border-radius: 44rpx;
-				font-size: 32rpx;
-				font-weight: 600;
-				color: #ffffff;
 			}
 		}
 	}
diff --git a/screen/src/views/PlatformCall.vue b/screen/src/views/PlatformCall.vue
index 143dcc8..e042bff 100644
--- a/screen/src/views/PlatformCall.vue
+++ b/screen/src/views/PlatformCall.vue
@@ -21,7 +21,8 @@
 const initData = () => {
   getLargeScreenData().then(res => {
     if (res.data && res.data.allList) {
-      contentList.value = res.data.allList.map(item => {
+      contentList.value = res.data.allList.map((item, index) => {
+        item.index = index + 1
         if (item.optTime) {
           item.optTimeTemp = dayjs(item.optTime).format('HH:mm')
           if(item.status == 4){
@@ -160,7 +161,7 @@
 const handler = () => {
   isFullscreen.value = document.fullscreenElement !== null
   if (!isFullscreen) {
-    // 閫�鍑哄叏灞忔椂鍊欒В闄ょ洃鍚紝涓嶇劧姣忔鐩戝惉閮戒細娣诲姞涓�娆$粦瀹� 
+    // 閫�鍑哄叏灞忔椂鍊欒В闄ょ洃鍚紝涓嶇劧姣忔鐩戝惉閮戒細娣诲姞涓�娆$粦瀹�
     document.removeEventListener("fullscreenchange", handler)
   }
 }
@@ -214,8 +215,8 @@
             <div class="item">鍋滈潬鏈堝彴</div>
             <div class="item">鏃堕棿</div>
           </div>
-          <div class="line" v-for="item in contentTempList" :key="item.id">
-            <div class="item no">{{ item.signNum }}</div>
+          <div class="line" v-for="(item, index) in contentTempList" :key="index">
+            <div class="item no">{{ item.index }}</div>
             <div class="item">{{ item.carCodeFront }}</div>
             <div class="item">
               <div :class="{
@@ -545,4 +546,4 @@
   }
 
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/screen/src/views/TaskEfficiency.vue b/screen/src/views/TaskEfficiency.vue
index a44debc..61ef984 100644
--- a/screen/src/views/TaskEfficiency.vue
+++ b/screen/src/views/TaskEfficiency.vue
@@ -498,47 +498,36 @@
     series: [
       {
         name: '鍒嗘椂浣滀笟閲�',
-        type: 'line',
-        smooth: true,
-        showAllSymbol: true,
-        symbol: 'circle',
-        symbolSize: 0,
-        lineStyle: {
-          color: '#2355f5',
-          borderColor: '#2355f5'
-        },
+        type: 'bar',
+        barWidth: 15,
         label: {
           show: false,
           position: 'top',
           color: '#fff',
         },
         itemStyle: {
-          color: "#2355f5",
-          lineStyle: {
-            width: 0,
-            type: 'solid'
-          }
-        },
-        areaStyle: {
           color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
             {
               offset: 0,
-              color: '#2355f5'
+              color: '#63d6fa'
             },
             {
               offset: 1,
-              color: 'rgba(14, 31, 65,0.1)'
+              color: '#32718d'
             }
           ], false),
-          shadowColor: 'rgba(124,248,255, 0)',
-          shadowBlur: 20
+          lineStyle: {
+            width: 1,
+            type: 'solid'
+          },
+          barBorderRadius: [30, 30, 0, 0],
         },
         data: dataList3.value.map(i => i.workNum || 0)
       },
       {
         name: '绱浣滀笟閲�',
         type: 'bar',
-        barWidth: 6,
+        barWidth: 15,
         label: {
           show: false,
           position: 'top',
diff --git a/screen/vite.config.js b/screen/vite.config.js
index ff40646..31658b3 100644
--- a/screen/vite.config.js
+++ b/screen/vite.config.js
@@ -26,8 +26,8 @@
     proxy: {
       "/gateway_interface": {
         // target: "http://192.168.0.104:10010",
-        // target: "http://10.50.250.253:8088/gateway_interface",
-        target: "https://atwl.ahzyssl.com/zhyq_interface",
+        target: "http://10.50.250.253:8088/gateway_interface",
+        // target: "https://atwl.ahzyssl.com/zhyq_interface",
         changeOrigin: true,
         rewrite: (path) => path.replace(/^\/gateway_interface/, ""),
       },

--
Gitblit v1.9.3