From 3c738f4fe2762bba8087e5a22fc0dc06560eab0e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Thu, 08 Aug 2024 10:01:17 +0800
Subject: [PATCH] 三色任务与自查任务

---
 subPackage/workbench/views/bailReportDetail.vue |  296 ++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 182 insertions(+), 114 deletions(-)

diff --git a/subPackage/workbench/views/bailReportDetail.vue b/subPackage/workbench/views/bailReportDetail.vue
index 8415b7e..78243d4 100644
--- a/subPackage/workbench/views/bailReportDetail.vue
+++ b/subPackage/workbench/views/bailReportDetail.vue
@@ -1,39 +1,51 @@
 <template>
 	<view class="container">
 		<view class="basic">
-			<box-title title="基本信息" class="box-title"></box-title>
-			<view class="info">
+			<!-- <box-title title="基本信息" class="box-title"></box-title> -->
+			<view class="info mt-20 bgc-ff">
 				<lineItem :dataInfo="basicData"></lineItem>
+
+				<view class="licence" v-if="locationImageUrls.length">
+					<!-- <box-title title="位置图片" class="box-title"></box-title> -->
+					<view class="f-30 mb-20">位置图片</view>
+					<view class="flex-wrap">
+						<view v-for="(i,k) in locationImageUrls" :key="k" class="mr-20 mt-20"
+							@click="previewImg(i,locationImageUrls)">
+							<u-image :src="i" width="80" height="80"></u-image>
+						</view>
+					</view>
+				</view>
+
 			</view>
 		</view>
-		<view class="licence" v-if="locationImageUrls.length">
+		<!-- <view class="licence" v-if="locationImageUrls.length">
 			<box-title title="位置图片" class="box-title"></box-title>
 			<view class="flex-wrap">
-				<view v-for="(i,k) in locationImageUrls" :key="k" class="ml-20 mt-20">
+				<view v-for="(i,k) in locationImageUrls" :key="k" class="ml-20 mt-20"
+					@click="previewImg(i,locationImageUrls)">
 					<u-image :src="i" width="80" height="80"></u-image>
 				</view>
 			</view>
-		</view>
+		</view> -->
 
 
-		<view class="item mt-30">
-			<u-form labelPosition="left" :model="info"  ref="form" labelWidth="100"
-				:labelStyle="{fontSize:'28rpx'}">
-				<u-form-item label="审核结果" prop="confirmFlag" borderBottom  @click="showPicker()">
+		<view class="item mt-20 bgc-ff">
+			<u-form labelPosition="left" :model="info" ref="form" labelWidth="100" :labelStyle="{fontSize:'28rpx'}">
+				<u-form-item label="审核结果" prop="confirmFlag" borderBottom>
 					<u-input v-model="confirmFlag" disabled disabledColor="#ffffff" border="none" placeholder="请输入"
 						placeholderClass="f-28 c-99" inputAlign="right"></u-input>
-					<u-icon slot="right" name="arrow-right"></u-icon>
+					<!-- <u-icon slot="right" name="arrow-right"></u-icon> -->
 				</u-form-item>
-				<u-form-item label="备注"  borderBottom>
-					<u--input type="textarea" v-model="info.confirmNotion" :disabled="isDisabled"
-						disabledColor="#ffffff" placeholderClass="f-28 c-99" border="none" inputAlign="right"></u--input>
+				<u-form-item label="备注" borderBottom v-if="info.confirmNotion">
+					<u--input type="textarea" v-model="info.confirmNotion" :disabled="true" disabledColor="#ffffff"
+						placeholderClass="f-28 c-99" border="none" inputAlign="right"></u--input>
 
 				</u-form-item>
-				<u-form-item label="审核人员" prop="checkUserName" borderBottom >
+				<u-form-item label="审核人员" prop="checkUserName" borderBottom>
 					<u-input v-model="info.confirmUserName" :disabled="isDisabled" disabledColor="#ffffff" border="none"
 						placeholder="请输入审核人员姓名" placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 				</u-form-item>
-				<u-form-item label="电话号码" prop="confirmUserTelephone" borderBottom >
+				<u-form-item label="电话号码" prop="confirmUserTelephone" borderBottom>
 					<u-input v-model="info.confirmUserTelephone" :disabled="isDisabled" disabledColor="#ffffff"
 						border="none" placeholder="请输入审核人员电话号码" placeholderClass="f-28 c-99"
 						inputAlign="right"></u-input>
@@ -41,60 +53,55 @@
 			</u-form>
 		</view>
 
-		<view  v-if="status == 2 && roleType  == 2">
-			<u-subsection :list="tabList" :current="tabIndex"  button-color="#017BFC" @change="changeTab"></u-subsection>
+		<view v-if="status == 2" class="section bgc-ff mt-20 mb-20">
+			<u-subsection :list="tabList" :current="tabIndex" button-color="#017BFC" @change="changeTab"></u-subsection>
 			<u-form labelPosition="left" :model="goOutInfo" ref="form" labelWidth="100"
 				:labelStyle="{fontSize:'28rpx'}">
 				<view class="" v-if="tabIndex == 0">
-					<u-form-item label="当前时间" prop="checkUserName" borderBottom   @click="showPickerDate">
-						<u-input v-model="goOutInfo.startTime" disabled disabledColor="#ffffff"
-							border="none" placeholder="请获取当前时间" placeholderClass="f-28 c-99"
-							inputAlign="right"></u-input>
+					<u-form-item label="当前时间" prop="checkUserName" borderBottom @click="showPickerDate">
+						<u-input v-model="goOutInfo.startTime" disabled disabledColor="#ffffff" border="none"
+							placeholder="请获取当前时间" placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 						<u-icon slot="right" name="arrow-right"></u-icon>
 					</u-form-item>
-					<u-form-item label="报备位置" prop="checkUserName" borderBottom  @click="getLocation('startLocation')">
-						<u-input v-model="goOutInfo.startLocation" disabled disabledColor="#ffffff"
-							border="none" placeholder="请获取当前位置" placeholderClass="f-28 c-99"
-							inputAlign="right"></u-input>
+					<u-form-item label="报备位置" prop="checkUserName" borderBottom @click="getLocation('startLocation')">
+						<u-input v-model="goOutInfo.startLocation" disabled disabledColor="#ffffff" border="none"
+							placeholder="请获取当前位置" placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 						<u-icon slot="right" name="arrow-right"></u-icon>
 					</u-form-item>
 				</view>
 				<view class="" v-if="tabIndex == 1">
-					<u-form-item label="到达时间" prop="reachTime" borderBottom  @click="showPickerDate">
-						<u-input v-model="goOutInfo.reachTime" disabled disabledColor="#ffffff"
-							border="none" placeholder="请获取当前时间" placeholderClass="f-28 c-99"
-							inputAlign="right"></u-input>
+					<u-form-item label="到达时间" prop="reachTime" borderBottom @click="showPickerDate">
+						<u-input v-model="goOutInfo.reachTime" disabled disabledColor="#ffffff" border="none"
+							placeholder="请获取当前时间" placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 						<u-icon slot="right" name="arrow-right"></u-icon>
 					</u-form-item>
-					<u-form-item label="到达位置" prop="reachLocation" borderBottom  @click="getLocation('reachLocation')">
-						<u-input v-model="goOutInfo.reachLocation" disabled disabledColor="#ffffff"
-							border="none" placeholder="请获取当前位置" placeholderClass="f-28 c-99"
-							inputAlign="right"></u-input>
+					<u-form-item label="到达位置" prop="reachLocation" borderBottom @click="getLocation('reachLocation')">
+						<u-input v-model="goOutInfo.reachLocation" disabled disabledColor="#ffffff" border="none"
+							placeholder="请获取当前位置" placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 						<u-icon slot="right" name="arrow-right"></u-icon>
 					</u-form-item>
 				</view>
 				<view class="" v-if="tabIndex == 2">
-					<u-form-item label="返回时间" prop="returnTime" borderBottom  @click="showPickerDate">
-						<u-input v-model="goOutInfo.returnTime" disabled disabledColor="#ffffff"
-							border="none" placeholder="请获取返回时间" placeholderClass="f-28 c-99"
-							inputAlign="right"></u-input>
+					<u-form-item label="返回时间" prop="returnTime" borderBottom @click="showPickerDate">
+						<u-input v-model="goOutInfo.returnTime" disabled disabledColor="#ffffff" border="none"
+							placeholder="请获取返回时间" placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 						<u-icon slot="right" name="arrow-right"></u-icon>
 					</u-form-item>
-					<u-form-item label="返回位置" prop="returnLocation" borderBottom   @click="getLocation('returnLocation')">
-						<u-input v-model="goOutInfo.returnLocation" disabled disabledColor="#ffffff"
-							border="none" placeholder="请获取返回位置" placeholderClass="f-28 c-99"
-							inputAlign="right"></u-input>
+					<u-form-item label="返回位置" prop="returnLocation" borderBottom @click="getLocation('returnLocation')">
+						<u-input v-model="goOutInfo.returnLocation" disabled disabledColor="#ffffff" border="none"
+							placeholder="请获取返回位置" placeholderClass="f-28 c-99" inputAlign="right"></u-input>
 						<u-icon slot="right" name="arrow-right"></u-icon>
 					</u-form-item>
 				</view>
 			</u-form>
 			<view class="upload bgc-ff">
-				<view class="f-28 mb-20">位置图片</view>
-				<view class="mt-20"  v-if="tabIndex == 0">
+				<view class="f-30 mb-20">位置图片</view>
+				<view class="mt-20" v-if="tabIndex == 0">
 					<u-upload :fileList="startImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
-						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImgs($event,'startImageUrls')"
-						@delete="deletePic">
+						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
+						@afterRead="afterReadImgs($event,'startImageUrls')"
+						@delete="deletePics($event,'startImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -103,18 +110,20 @@
 				<view class="mt-20" v-if="tabIndex == 1">
 					<u-upload :fileList="reachImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
-						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImgs($event,'reachImageUrls')"
-						@delete="deletePic">
+						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
+						@afterRead="afterReadImgs($event,'reachImageUrls')"
+						@delete="deletePics($event,'reachImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
-						</view>					
+						</view>
 					</u-upload>
 				</view>
 				<view class="mt-20" v-if="tabIndex == 2">
 					<u-upload :fileList="returnImageUrls" :previewFullImage="uploadConfig.previewFullImage"
 						:accept="uploadConfig.acceptImg" :multiple="uploadConfig.multiple"
-						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture" @afterRead="afterReadImgs($event,'returnImageUrls')"
-						@delete="deletePic">
+						:maxCount="uploadConfig.maxCount" :capture="uploadConfig.capture"
+						@afterRead="afterReadImgs($event,'returnImageUrls')"
+						@delete="deletePics($event,'returnImageUrls')">
 						<view class="upload-item upload-icon flex_base">
 							<u-icon name="/static/icon/upload.png" width="60rpx" height="60rpx"></u-icon>
 						</view>
@@ -124,12 +133,20 @@
 		</view>
 
 
-		<view class="bottom-btn"    v-if="roleType == 1 && status == 1">
+		<!-- <view class="bottom-btn" v-if="roleType == 1 && status == 1">
 			<u-button type="primary" @click="submit">提交审核</u-button>
 		</view>
-		<view class="bottom-btn"    v-if="roleType == 2 && status == 2">
+		<view class="bottom-btn" v-if="roleType == 2 && status == 2">
 			<u-button type="primary" @click="submit">提交</u-button>
-		</view>
+		</view> -->
+
+		<!-- <footer-btn   v-if="roleType == 1 && status == 1" text="提交审核"  @click="submit" /> -->
+
+		<audit-action @handle="submit" v-if="roleType == 1 && status == 1"></audit-action>
+		<footer-btn v-if="roleType == 2 && status == 2" text="提交" @click="submit" />
+		<footer-btn v-if="roleType == 2 && status == 3" text="重新编辑" @click="navToEdit" />
+
+
 		<u-datetime-picker ref="datetimePicker" :show="showSelectDate" v-model="goOutDate[tabIndex]" mode="datetime"
 			:formatter="formatter" @confirm="confirmDate" @cancel="cancelPickerDate"></u-datetime-picker>
 		<u-picker :closeOnClickOverlay="true" @close="isPickerShow = false" :show="isPickerShow" ref="uPicker"
@@ -138,17 +155,19 @@
 </template>
 
 <script>
-	import boxTitle from '@/components/boxTitle/index.vue'
+	import boxTitle from "@/subPackage/workbench/components/boxTitle/index.vue"
 	import lineItem from '../components/lineItem.vue'
 	import uploadMixin from "@/mixin/uploadMixin";
 	import {
 		getBailReportingDetail,
 		setBailReporting
 	} from '@/api/reporting/reporting'
+	import auditAction from '../components/actionBtn.vue'
 	export default {
 		components: {
 			boxTitle,
-			lineItem
+			lineItem,
+			auditAction
 		},
 		mixins: [uploadMixin],
 		data() {
@@ -164,7 +183,7 @@
 						value: '未完善'
 					},
 					{
-						label: '申请名称',
+						label: '申请事由',
 						name: 'applyName',
 						value: '未完善'
 					},
@@ -231,11 +250,11 @@
 						name: '返程时'
 					}
 				],
-				tabIndex:0,
-				goOutDate:[new Date(),new Date(),new Date()],
-				showSelectDate:false,
-				status:1     ,//当前状态   1待审核  2审核通过   3审核不通过
-				id:""
+				tabIndex: 0,
+				goOutDate: [new Date(), new Date(), new Date()],
+				showSelectDate: false,
+				status: 1, //当前状态   1待审核  2审核通过   3审核不通过
+				id: ""
 
 			}
 		},
@@ -256,60 +275,61 @@
 		},
 
 		methods: {
-			
-			changeTab(index){
+
+			changeTab(index) {
 				this.tabIndex = index;
 			},
-			
-			showPickerDate(){
-				if(this.roleType == 2 && this.status != 2) return;
+
+			showPickerDate() {
+				if (this.roleType == 1 && this.status != 1) return;
 				this.showSelectDate = true;
 			},
-			cancelPickerDate(){
+			cancelPickerDate() {
 				this.showSelectDate = false;
 			},
-			showPicker(){
-				if(this.roleType == 2 && this.status != 2) return;
-				this.isPickerShow = true
+			showPicker() {
+				if (this.roleType == 1) {
+					this.isPickerShow = true
+				};
 			},
-			
-			showConfirmFlag(status){
-				if(status == 1){
+
+			showConfirmFlag(status) {
+				if (status == 1) {
 					this.confirmFlag = "待审核"
-				}else if(status == 2){
+				} else if (status == 2) {
 					this.confirmFlag = "审核通过"
-				}else {
+				} else {
 					this.confirmFlag = "审核不通过"
 				}
 			},
-			
+
 			confirmDate(e) {
 				this.showSelectDate = false;
 				this.goOutDate[this.tabIndex] = e.value;
-				if(this.tabIndex == 0){
+				if (this.tabIndex == 0) {
 					this.goOutInfo.startTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss')
-					
-				}else if(this.tabIndex == 1){
+
+				} else if (this.tabIndex == 1) {
 					this.goOutInfo.reachTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss')
-				}else {
+				} else {
 					this.goOutInfo.returnTime = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM:ss')
 				}
 			},
-			
-			getLocation(key){
+
+			getLocation(key) {
 				console.log(key)
-				if(this.roleType == 2 &&  this.status != 2) return;
+				if (this.roleType == 2 && this.status != 2) return;
 				uni.chooseLocation({
-					success:(res)=>{
+					success: (res) => {
 						console.log(res);
 						this.$set(this.goOutInfo, key, res.address)
 					},
-					complete:(err)=> {
+					complete: (err) => {
 						console.log(err)
 					}
 				})
 			},
-			
+
 			async afterReadImgs(event, key) {
 				this.showLoading()
 				let lists = [].concat(event.file)
@@ -341,24 +361,29 @@
 					this.status = data.confirmFlag
 					this.id = data.id;
 					this.showConfirmFlag(data.confirmFlag)
-					if(data.confirmFlag != 1){
+					if (data.confirmFlag != 1) {
 						this.info.confirmFlag = data.confirmFlag;
 						this.info.confirmUserName = data.confirmUserName;
 						this.info.confirmUserTelephone = data.confirmUserTelephone;
+						for (let i in this.goOutInfo) {
+							this.goOutInfo[i] = data[i];
+						}
+						this.startImageUrls = this.$setImageUrl(data.startImageUrls, 2);
+						this.reachImageUrls = this.$setImageUrl(data.reachImageUrls, 2);
+						this.returnImageUrls = this.$setImageUrl(data.returnImageUrls, 2);
 					}
 					this.basicData.forEach(item => {
 						item.value = data[item.name]
 					})
-					this.locationImageUrls = this.setImages(data.locationImageUrls);
-
+					this.locationImageUrls = this.$setImageUrl(data.locationImageUrls);
 				})
 			},
-			setImages(str) {
-				if (str) {
-					return str.split(",")
-				} else {
-					return []
-				}
+
+			previewImg(current, urls) {
+				uni.previewImage({
+					current,
+					urls
+				})
 			},
 
 			handleConfirm(e) {
@@ -366,7 +391,7 @@
 				this.info.confirmFlag = e.value[0].status;
 				this.isPickerShow = false
 			},
-			
+
 			checkImages() {
 				if (this.startImageUrls.length) {
 					this.$set(this.goOutInfo, "startImageUrls", this.setGoOutImages(this.startImageUrls))
@@ -378,27 +403,44 @@
 					this.$set(this.goOutInfo, "returnImageUrls", this.setGoOutImages(this.returnImageUrls))
 				}
 			},
-			
+
 			setGoOutImages(key) {
 				let urls = [];
 				for (let i of key) {
-					urls.push(i.url);
+					urls.push(i.name);
 				}
 				return urls.join(",")
 			},
-			
-			submit() {
-				if(this.roleType == 1){
+
+			submit(val) {
+				if (this.roleType == 1) {
+					if (!this.info.confirmUserName) {
+						uni.showToast({
+							title: "请输入审核人员姓名",
+							icon: "none"
+						})
+						return
+					}
+					if (!this.info.confirmUserTelephone) {
+						uni.showToast({
+							title: "请输入审核人员手机号",
+							icon: "none"
+						})
+						return;
+					}
+					this.info.status = val.type;
+					this.info.confirmNotion = val.remark;
+					this.info.confirmFlag = 2;
 					this.submitRequest(this.info);
-				}else{
+				} else {
 					this.checkImages()
-					setTimeout(()=>{
+					setTimeout(() => {
 						this.submitRequest(this.goOutInfo);
-					},1000)
-				}		
+					}, 300)
+				}
 			},
-			
-			submitRequest(data){
+
+			submitRequest(data) {
 				data.taskId = this.taskId;
 				data.id = this.id;
 				setBailReporting(data).then(res => {
@@ -407,7 +449,7 @@
 							title: '更新失败',
 							icon: 'error'
 						})
-					}else {
+					} else {
 						uni.showToast({
 							title: '提交成功!',
 							icon: 'success'
@@ -416,12 +458,23 @@
 					}
 					// uni.navigateBack()
 				})
+			},
+
+			navToEdit() {
+				uni.navigateTo({
+					url: `/subPackage/label/bail?id=${this.taskId}`
+				})
 			}
+
 		}
 	}
 </script>
 
 <style lang="scss">
+	page {
+		background-color: #f5f5f5;
+	}
+
 	.container {
 		padding: 0 20rpx 130rpx;
 
@@ -468,18 +521,33 @@
 	/deep/ .u-form-item__body__left__content__label,
 	/deep/ .uni-input-placeholder {
 		font-size: 30rpx;
+		color: #000;
 	}
-	
+
 	.upload {
-		margin: 0 30rpx;
-		padding: 30rpx;
-	
-	
+		// margin: 0 30rpx;
+		padding: 20rpx 0 0;
+
+
 	}
+
 	.upload-item {
 		width: 140rpx;
 		height: 140rpx;
 		border: 1px solid #EEEEEE;
 	}
-	
+
+	.section {
+		padding: 20rpx;
+
+	}
+
+	.item,
+	.licence {
+		padding: 0 20rpx;
+	}
+
+	/deep/ .line-item-container .text .r {
+		color: #000 !important;
+	}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3