Ver Fonte

审核流加评论

achao há 2 anos atrás
pai
commit
679e356828

+ 492 - 0
components/flow.vue

@@ -0,0 +1,492 @@
+<template>
+	<view class="ali">
+		<u-form ref="uForm">
+			<view class="form_top">流程</view>
+			<view class="content2">
+				<view v-for="(item,index) in auditList" :key='index' class="audit">
+					<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
+						<view class="left">
+							<view class="item1">
+								<view class="item-content">{{item.operatorTitle}}</view>
+								<view v-if="item.status=='success'" class='status success'>
+									<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
+								</view>
+								<view v-if="item.status=='error'" class='status error'>
+									<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
+								</view>
+								<view v-if="item.status=='question'" class='status question'>
+									<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
+								</view>
+							</view>
+						</view>
+						<view class="right">
+							<view class="right-item">
+								<view class="item2">
+									<view class="name">{{item.operatorName}}
+									</view>
+									<!-- <view class='time'>{{item.updateDate}}</view> -->
+									<view v-if="item.status=='success'" class="status success">
+										{{item.commonStaffs1?item.staffscontent:item.desc}}<text
+											v-if='!item.commonStaffs1&&index!=0'>已审核</text>
+									</view>
+									<view v-if="item.status=='error'" class="status error">
+										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
+											v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
+									</view>
+									<view v-if="item.status=='question'" class="status question">
+										{{item.commonStaffs1?item.staffscontent:''}}<text
+											v-if='!item.commonStaffs1'>未审核</text>
+									</view>
+									<!-- <view  class="status success">吕波(已审核)</view> -->
+
+								</view>
+								<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
+									class='time'>
+									{{item.updateDate}}
+								</view>
+							</view>
+							<view class="">
+								<view v-if='item.auditMind' class="right-content">
+									{{item.auditMind}}
+								</view>
+								<view v-if='item.commonReviewComments' v-for="item1 in item.commonReviewComments"
+									style="display: flex; align-items: center; justify-content: space-between;margin-top: 20rpx;">
+									<view class="right-content">
+										{{item1.test}}
+									</view>
+									<view class="del" @click="del(item1)">
+										<image src="../static/delete.png" mode="widthFix" style="width: 30rpx;"></image>
+									</view>
+								</view>
+
+
+							</view>
+
+							<view class="flex audit_img">
+								<view v-for="(items,indexs) in item.fileUrl" class="url_css">
+									<image :src="items" imageMode='aspectFill' class="url_img"
+										@click="auditFile(items)"></image>
+								</view>
+							</view>
+						</view>
+						<view v-if='item.commonStaffs1' class="right">
+							<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
+							</u-icon>
+						</view>
+					</view>
+					<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
+						<view class='row2'>
+							<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
+								<view class="item-content">
+									<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
+									<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
+								</view>
+								<view class="name">{{item1.staffName}}</view>
+							</view>
+						</view>
+					</view>
+					<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
+				</view>
+			</view>
+		</u-form>
+		<view class="pl" @click="plClick">
+			评论
+		</view>
+		<view v-if='show' class="shade">
+			<view class="wrap">
+				<view class="alert-top">
+					<view class="title">
+						评论
+					</view>
+					<u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
+				</view>
+				<view style='overflow-y: scroll;height: 732rpx;padding-bottom:102rpx;'>
+					<view class="u-textarea-style">
+						<view class="right-bottom">
+							{{text.length}}/500个字
+						</view>
+						<textarea maxlength="500" v-model='text' placeholder="请在此输入评论内容" name="" id="" cols="30"
+							rows="11"></textarea>
+
+					</view>
+
+				</view>
+				<view @click='close()' class="cancel">取消</view>
+				<view @click='passSubmit()' class="confirm">确定</view>
+			</view>
+		</view>
+		<u-toast ref="uToast" />
+	</view>
+</template>
+
+<script>
+	export default {
+		props: ["auditList"],
+		data() {
+			return {
+				show: false,
+				hisId: '',
+				list: [],
+				text: ""
+			}
+		},
+		watch: {
+			auditList(val1, val2) {
+				console.log(145)
+				console.log(val1[1])
+				this.list = val1
+				for (let i = 0; i < this.list.length; i++) {
+					// 获取当前人的hisId
+					if (this.list[i].auditUsers && this.list[i].auditUsers == uni.getStorageSync("userInfo").id) {
+						this.hisId = this.list[i].id
+
+					}
+				}
+				console.log("this.hisId", this.hisId)
+
+			}
+		},
+		methods: {
+			del(val) {
+				this.$api.doRequest('post', '/commonReviewComments/api/deleteInfo', {
+						id: val.id,
+					}).then(res => {
+						console.log(res)
+						uni.hideLoading()
+						if (res.data.code == 200) {
+							this.$emit('status', res.data.code)
+						}
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+			},
+			close() {
+				this.show = false
+			},
+			passSubmit() {
+				uni.showLoading({
+					mask: true,
+					title: "加载中"
+				})
+				this.$api.doRequest('post', '/commonReviewComments/api/addInfo', {
+						hisId: this.hisId,
+						test: this.text,
+
+					}).then(res => {
+						console.log(res)
+						uni.hideLoading()
+						if (res.data.code == 200) {
+							this.show = false
+							this.$emit('status', res.data.code)
+						}
+					})
+					.catch(res => {
+						uni.$u.toast(res.message);
+					});
+			},
+			plClick() {
+				this.show = true
+
+
+			},
+		},
+	}
+</script>
+
+<style scoped lang="scss">
+	.shade {
+		position: fixed;
+		top: 0;
+		bottom: 0;
+		left: 0;
+		width: 100%;
+		background: rgba(0, 0, 0, 0.4);
+		z-index: 13;
+
+		.wrap {
+			position: absolute;
+			left: 0;
+			top: 0;
+			right: 0;
+			bottom: 0;
+			margin: auto;
+			background: #fff;
+			width: calc(100% - 198rpx);
+			height: 836rpx;
+			border-radius: 20rpx;
+			// overflow-y: scroll;
+
+			.alert-top {
+				padding: 33rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				position: relative;
+			}
+
+			.title {
+				font-size: 32rpx;
+				font-weight: 600;
+				color: #333333;
+			}
+
+			.close {
+				position: absolute;
+				right: 33rpx;
+			}
+		}
+	}
+
+	.cancel,
+	.confirm {
+		position: absolute;
+		display: inline-block;
+		width: 50%;
+		text-align: center;
+		bottom: 0;
+		padding: 10px;
+		border-top: 1px solid #eee;
+		font-size: 34rpx;
+		z-index: 10;
+		background: #fff;
+	}
+
+	.cancel {
+		left: 0;
+		border-right: 1px solid #eee;
+		color: #AFB3BF;
+	}
+
+	.confirm {
+		right: 0;
+		color: #22C572;
+	}
+
+	.textarea,
+	.textarea1 {
+		margin: 18rpx auto;
+		width: 100%;
+		background: #F9F9FA;
+		border-radius: 10px;
+		border: 1px solid #EEEEEE;
+		font-size: 28rpx;
+		padding: 10px;
+	}
+
+	.textCss {
+		display: flex;
+		justify-content: flex-end;
+		width: 100%;
+		text-align: right;
+		color: #333333;
+	}
+
+	.u-textarea-style {
+		margin: 20rpx;
+		background: #F9F9FA;
+		border-radius: 10px;
+		border: 1px solid #EEEEEE;
+		padding: 10rpx 20rpx;
+		position: relative;
+
+		height: 240px;
+
+		/deep/.uni-textarea-textarea {
+			width: 80%;
+		}
+
+		.right-bottom {
+			position: absolute;
+			right: 20rpx;
+			bottom: 20rpx;
+			color: #AFB3BF;
+		}
+	}
+
+	/deep/.u-input__textarea {
+		height: 300rpx !important;
+	}
+
+	/deep/.textarea1 .u-input__textarea {
+		height: 200rpx !important;
+	}
+
+	.pl {
+		background-color: #fff;
+		border-radius: 50rpx;
+		padding: 20rpx;
+		text-align: center;
+		color: #22C572;
+	}
+
+	.form_top {
+		border-bottom: 1px solid #F5F6FA;
+		padding-bottom: 10px;
+		margin-bottom: 18rpx;
+		font-size: 30rpx;
+		font-weight: 600;
+	}
+
+	.content2 {
+		background: white;
+		margin: 20rpx 0;
+		border-radius: 20rpx;
+		padding: 20rpx;
+
+		.row {
+			display: flex;
+			align-items: flex-start;
+
+			.left {
+				display: flex;
+				align-items: center;
+
+				.item1 {
+					position: relative;
+
+					.item-content {
+						background: #617AE0;
+						width: 44px;
+						height: 44px;
+						border-radius: 22px;
+						line-height: 44px;
+						text-align: center;
+						font-size: 15px;
+						color: #fff;
+					}
+
+					.status {
+						position: absolute;
+						border-radius: 50%;
+						padding: 0px 8rpx;
+						width: 40rpx;
+						height: 40rpx;
+						right: -3px;
+						bottom: -3px;
+						background: #fff;
+					}
+
+					.status.success {
+						border: 1px solid rgb(60, 156, 255);
+					}
+
+					.status.error {
+						border: 1px solid rgb(245, 108, 108);
+					}
+
+					.status.question {
+						border: 1px solid #f9ae3d;
+					}
+				}
+
+			}
+
+			.right {
+				width: 80%;
+				// color: #B0B1B5;
+				margin-top: 10px;
+
+				.right-content {
+					background: #F3F4F6;
+					margin: 0 20rpx;
+					padding: 10px;
+					border-radius: 5px;
+					color: #676D76;
+					border-radius: 50rpx;
+				}
+
+				.right-item {
+					display: flex;
+					justify-content: space-between;
+
+					.time {
+						color: #999;
+					}
+
+					.item2 {
+						margin-left: 20rpx;
+						margin-top: -7px;
+
+						.name {
+							font-size: 28rpx;
+							font-weight: 800;
+							margin-bottom: 4px;
+						}
+
+						.status.success {
+							color: #AFB3BF;
+						}
+
+						.status.error {
+							color: rgb(245, 108, 108);
+						}
+
+						.status.question {
+							color: #f9ae3d;
+						}
+					}
+				}
+
+				.audit_img {
+					flex-wrap: wrap;
+					// margin: 0 10rpx;
+					margin-left: 20rpx;
+
+					.url_css {
+						border: 1px solid #999999;
+						border-radius: 10px;
+						margin-top: 10px;
+						margin-right: 4px;
+						overflow: hidden;
+						width: 73px;
+						height: 73px;
+
+						.url_img {
+							width: 73px;
+							height: 73px;
+							// border-radius: 10px;
+						}
+					}
+				}
+			}
+		}
+
+		.row2 {
+			display: flex;
+
+			.item-content {
+				background: #22C572;
+				width: 30px;
+				height: 30px;
+				border-radius: 50%;
+				line-height: 30px;
+				text-align: center;
+				font-size: 12px;
+				color: #fff;
+				padding: 0 2px;
+				margin: 0 auto;
+			}
+
+			.status {
+				position: absolute;
+				top: 0;
+				right: 0;
+			}
+		}
+
+		.row-line {
+			width: 1px;
+			height: 30px;
+			background: #F2F2F2;
+			margin: 10rpx 50rpx;
+
+		}
+
+		.audit {
+			margin-top: 20rpx;
+		}
+	}
+
+	.del {}
+</style>

+ 75 - 126
pages/task/audit/Issueandreceipt_task_approval.vue

@@ -257,94 +257,18 @@
 					</view>
 
 				</view>
-				<view class="content2">
-					<view class="title row">
-						流程
-					</view>
-					<view v-for="(item,index) in auditList" :key='index' class="audit">
-						<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-							<view class="left">
-								<view class="item1">
-									<view class="item-content">{{item.operatorTitle}}</view>
-									<view v-if="item.status=='success'" class='status success'>
-										<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-									</view>
-									<view v-if="item.status=='error'" class='status error'>
-										<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-									</view>
-									<view v-if="item.status=='question'" class='status question'>
-										<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-									</view>
-								</view>
-							</view>
-							<view class="right">
-								<view class="right-item">
-									<view class="item2">
-										<view class="name">{{item.desc}}
-										</view>
-										<!-- <view class='time'>{{item.updateDate}}</view> -->
-										<view v-if="item.status=='success'" class="status success">
-											{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-												v-if='!item.commonStaffs1&&index!=0'>已审核</text>
-										</view>
-										<view v-if="item.status=='error'" class="status error">
-											{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-												v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
-										</view>
-										<view v-if="item.status=='question'" class="status question">
-											{{item.commonStaffs1?item.staffscontent:''}}<text
-												v-if='!item.commonStaffs1'>未审核</text>
-										</view>
-										<!-- <view  class="status success">吕波(已审核)</view> -->
-
-									</view>
-									<view
-										v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
-										class='time'>
-										{{item.updateDate}}
-									</view>
-								</view>
-								<view v-if='item.auditMind' class="right-content">
-									{{item.auditMind}}
-								</view>
-								<view class="flex audit_img">
-									<view v-for="(items,indexs) in item.fileUrl" class="url_css">
-										<image :src="items" mode="aspectFill" class="url_img" @click="openDocument(items)">
-										</image>
-									</view>
-								</view>
-							</view>
-							<view v-if='item.commonStaffs1' class="right">
-								<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'"
-									size="28"></u-icon>
-							</view>
-						</view>
-						<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-							<view class='row2'>
-								<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-									<view class="item-content">
-										<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-										<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-									</view>
-									<view class="name">{{item1.staffName}}</view>
-								</view>
-							</view>
-						</view>
-						<view class="row-line" :style='[{"height":item.auditMind?"80px":"40px"}]'
-							v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
-					</view>
-				</view>
 			</u-form>
 		</view>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view v-if='show1' class="shade">
-			
+
 			<view class="wrap">
 				<view class="alert-top">
-						<view class="title">
-							{{title}}
-						</view>
-						<u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
+					<view class="title">
+						{{title}}
 					</view>
+					<u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
+				</view>
 				<view class="content">
 					<view class="u-textarea-style">
 						<view class="right-bottom">
@@ -360,17 +284,19 @@
 								vesselId: ''}" :action="action" :max-size="maxSize" :max-count="99"
 							:size-type="['compressed']" @on-success="getImgUrl" @on-error="onError" @on-remove="onRemove"
 							@on-uploaded="isAdd = true"  @on-progress="onProgress"></u-upload> -->
-							<u-upload :custom-btn='true' class="upload" ref="upload" name='fileName' :form-data="{companyId: pcUserInfo.compId,
+						<u-upload :custom-btn='true' class="upload" ref="upload" name='fileName' :form-data="{companyId: pcUserInfo.compId,
 									modelId: '',
 									vesselId: ''}" :action="action" :show-tips="false" :max-size="maxSize" :max-count="9"
 							:size-type="['compressed']" @on-success="getImgUrl($event)" @on-error="onError"
-							@on-remove="onRemove" @on-uploaded="isAdd = true" :limitType ="['png', 'jpg', 'jpeg', 'webp', 'gif']"
-							@on-progress="onProgress">
-							<view slot="addBtn" class="slot-btn u-list-item" hover-class="slot-btn__hover" hover-stay-time="150">
-									<image style="width:23px;height:23px;" src="../../../static/img/liangmai/xiangji-2.png" mode=""></image>
-									<view>选择图片</view>
-								</view>
-							</u-upload>
+							@on-remove="onRemove" @on-uploaded="isAdd = true"
+							:limitType="['png', 'jpg', 'jpeg', 'webp', 'gif']" @on-progress="onProgress">
+							<view slot="addBtn" class="slot-btn u-list-item" hover-class="slot-btn__hover"
+								hover-stay-time="150">
+								<image style="width:23px;height:23px;" src="../../../static/img/liangmai/xiangji-2.png"
+									mode=""></image>
+								<view>选择图片</view>
+							</view>
+						</u-upload>
 					</view>
 				</view>
 				<view class="audit_btn">
@@ -390,12 +316,14 @@
 <script>
 	import helper from '@/common/helper.js';
 	import upload from '@/components/upload.vue';
+	import flow from '@/components/flow.vue';
 	import {
 		mapState
 	} from 'vuex';
 	export default {
 		components: {
 			upload,
+			flow
 		},
 		data() {
 			return {
@@ -430,7 +358,7 @@
 				// 上传附件、
 				action: this.$uploadUrl,
 				// action1: config.def().baseUrlNew+ 'appendix/api/uploadFiles',
-				pcUserInfo :uni.getStorageSync('pcUserInfo'),
+				pcUserInfo: uni.getStorageSync('pcUserInfo'),
 				maxSize: 50 * 1024 * 1024, //限制文件大小 50M
 				isAdd: true,
 				fileUrl: []
@@ -460,6 +388,9 @@
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			openDocument(src) {
 				uni.downloadFile({
 					url: src,
@@ -662,11 +593,25 @@
 												response.data.data[i].updateDate = this.$u
 													.timeFormat(time, 'mm.dd hh:MM')
 												// 显示附件和审核意见
-												if (response.data.data[i].workflowHistoricTasks[len].auditMind && response.data.data[i].workflowHistoricTasks[len].auditMind.indexOf("##") !=-1) {
-													response.data.data[i].auditMind = response.data.data[i].workflowHistoricTasks[len].auditMind.split("##")[0]
-													response.data.data[i].fileUrl = response.data.data[i].workflowHistoricTasks[len].auditMind.split("##")[1].split(",")
-												}else{
-													response.data.data[i].auditMind = response.data.data[i].workflowHistoricTasks[len].auditMind
+												if (response.data.data[i]
+													.workflowHistoricTasks[len]
+													.auditMind && response.data.data[i]
+													.workflowHistoricTasks[len].auditMind
+													.indexOf("##") != -1) {
+													response.data.data[i].auditMind =
+														response.data.data[i]
+														.workflowHistoricTasks[len]
+														.auditMind.split("##")[0]
+													response.data.data[i].fileUrl =
+														response.data.data[i]
+														.workflowHistoricTasks[len]
+														.auditMind.split("##")[1].split(
+															",")
+												} else {
+													response.data.data[i].auditMind =
+														response.data.data[i]
+														.workflowHistoricTasks[len]
+														.auditMind
 												}
 											} else {
 												this.$set(response.data.data[i], 'status',
@@ -754,9 +699,9 @@
 							if (res.confirm) {
 								uni.showLoading({
 									title: "审核中",
-									mask:true
+									mask: true
 								})
-								console.log(that.OutList,that.EnterList)
+								console.log(that.OutList, that.EnterList)
 								that.OutList.inOutFlag = 1
 								that.EnterList.inOutFlag = 2
 								if (that.OutList.taskTypeKey == 1) {
@@ -784,7 +729,7 @@
 				}
 			},
 			rejectSubmit() {
-				
+
 				// (1出库2入库3移库4退库并出库)
 				if (!this.auditMind) {
 					this.$api.msg('驳回原因不能为空!')
@@ -799,7 +744,7 @@
 							if (res.confirm) {
 								uni.showLoading({
 									title: "审核中",
-									mask:true
+									mask: true
 								})
 								if (that.OutList.taskTypeKey == 1) {
 									that.requestaudit(that.OutList)
@@ -856,14 +801,14 @@
 										needReapply: false
 									}).then(res => {
 										if (res.data.code == 200) {
-											
+
 											that.$api.msg('审核成功!')
 											that.count++
 											if (that.everyCheck) {
 												helper.setAudit(that.list)
 											}
 										} else {
-											that.show1=true
+											that.show1 = true
 											that.$api.msg('审核失败!')
 										}
 										if (list.taskTypeKey == '3' || list.taskTypeKey == '4') {
@@ -924,10 +869,9 @@
 			requestaudit(list, status) {
 
 				let pcUserInfo = uni.getStorageSync('pcUserInfo')
-				if(pcUserInfo){
+				if (pcUserInfo) {
 					list.compId = pcUserInfo.compId
-				}
-				else{
+				} else {
 					list.compId = '2710b21efc1e4393930c5dc800010dc4'
 				}
 				// list.publisher = this.userInfo.userName
@@ -1297,7 +1241,8 @@
 			}
 		}
 	}
-.shade {
+
+	.shade {
 		position: fixed;
 		top: 0;
 		left: 0;
@@ -1306,7 +1251,7 @@
 		background: rgba(0, 0, 0, 0.4);
 		z-index: 3;
 		overflow-y: scroll;
-	
+
 		.wrap {
 			position: absolute;
 			left: 0;
@@ -1317,10 +1262,10 @@
 			background: #fff;
 			width: calc(100% - 198rpx);
 			height: 798rpx;
-			
+
 			// overflow: hidden;
 			border-radius: 20rpx;
-	
+
 			.alert-top {
 				padding: 33rpx;
 				display: flex;
@@ -1328,24 +1273,26 @@
 				align-items: center;
 				position: relative;
 			}
-	
+
 			.title {
 				font-size: 32rpx;
 				font-weight: 600;
 				color: #333333;
 			}
-	
+
 			.close {
 				position: absolute;
 				right: 33rpx;
 			}
-			.content{
-				height:600rpx;
+
+			.content {
+				height: 600rpx;
 				overflow-y: scroll;
 			}
+
 			.upload_css {
-				margin:0 0 16rpx 20rpx;
-				
+				margin: 0 0 16rpx 20rpx;
+
 				.upload {
 					// width: 80px;
 					// height: 80px;
@@ -1353,12 +1300,12 @@
 			}
 		}
 	}
-	
+
 	.audit_btn {
 		display: flex;
 		top: 0px;
 	}
-	
+
 	.cancel,
 	.confirm {
 		// position: absolute;
@@ -1371,12 +1318,13 @@
 		font-size: 34rpx;
 		margin: auto;
 	}
-	
+
 	.cancel {
 		left: 0;
 		border-right: 1px solid #eee;
 		color: #AFB3BF;
 	}
+
 	.confirm {
 		right: 0;
 		color: #22C572;
@@ -1555,14 +1503,15 @@
 			margin-top: 20rpx;
 		}
 	}
-	/deep/.u-upload .u-list-item{
-		background:#fff;
-		border:1px dashed #ccc;
-		border-radius:10rpx;
-		height:190rpx !important;
-		width:190rpx !important;
-		margin:10rpx;
-		text-align:center;
+
+	/deep/.u-upload .u-list-item {
+		background: #fff;
+		border: 1px dashed #ccc;
+		border-radius: 10rpx;
+		height: 190rpx !important;
+		width: 190rpx !important;
+		margin: 10rpx;
+		text-align: center;
 		display: flex;
 		align-items: center;
 		justify-content: center;

+ 175 - 165
pages/task/audit/Issueandreceipt_task_details.vue

@@ -14,18 +14,23 @@
 							v-else-if="OutList.taskStatus == '审核中'||OutList.taskStatus == '待审核'||EnterList.taskStatus == '待审核'"
 							style="height: 40rpx;"></image><!-- 待审核 -->
 					</view>
-					<view class="infoText" v-if="OutList.taskStatus">{{OutList.approveStatus?OutList.approveStatus:OutList.taskStatus}}</view>
-						<view class="infoText" v-else>{{EnterList.approveStatus?EnterList.approveStatus:EnterList.taskStatus}}</view>
+					<view class="infoText" v-if="OutList.taskStatus">
+						{{OutList.approveStatus?OutList.approveStatus:OutList.taskStatus}}
 					</view>
-					<view class="infoData" v-if="OutList.updateDate">{{OutList.updateDate}}</view>
-					<view class="infoData" v-else>{{EnterList.updateDate}}</view>
+					<view class="infoText" v-else>
+						{{EnterList.approveStatus?EnterList.approveStatus:EnterList.taskStatus}}
+					</view>
+				</view>
+				<view class="infoData" v-if="OutList.updateDate">{{OutList.updateDate}}</view>
+				<view class="infoData" v-else>{{EnterList.updateDate}}</view>
 			</view>
 		</view>
 		<view class="content1">
 			<u-form :model="OutList" ref="uForm">
 				<u-form-item label="任务类型" prop="inOutType" label-width="140" class="uForm_item">
 					<u-input v-model="OutList.inOutType" input-align="right" disabled v-if="OutList.inOutType" />
-					<u-input v-model="retreatList.inOutType" input-align="right" disabled v-else-if="retreatList.inOutType" />
+					<u-input v-model="retreatList.inOutType" input-align="right" disabled
+						v-else-if="retreatList.inOutType" />
 					<u-input v-model="EnterList.inOutType" input-align="right" disabled v-else />
 				</u-form-item>
 				<view v-if="retreatList.judge == 3 && retreatList">
@@ -245,70 +250,7 @@
 				<view class="uForm_item" v-if="OutList.taskTypeKey == 3 && !EnterList.judge">
 					<view class="deleteText">移库入库(已删除)</view>
 				</view>
-				<view class="content2">
-					<view class="title row">
-						流程
-					</view>
-					<view v-for="(item,index) in auditList" :key='index' class="audit">
-						<view class="row"  v-if='item.desc!="_PLACEHOLDER_"'>
-							<view class="left">
-								<view class="item1">
-									<view class="item-content">{{item.operatorTitle}}</view> 
-									<view v-if="item.status=='success'" class='status success'>
-										<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-									</view>
-									<view v-if="item.status=='error'" class='status error'>
-										<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-									</view>
-									<view  v-if="item.status=='question'" class='status question'>
-										<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-									</view>
-								</view>
-							</view>
-							<view class="right">
-								<view class="right-item">
-									<view class="item2">
-										<view class="name">{{item.desc}}
-										</view>
-										<!-- <view class='time'>{{item.updateDate}}</view> -->
-										<view  v-if="item.status=='success'" class="status success">{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text v-if='!item.commonStaffs1&&index!=0'>已审核</text></view>
-										<view  v-if="item.status=='error'" class="status error">{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text></view>
-										<view  v-if="item.status=='question'" class="status question">{{item.commonStaffs1?item.staffscontent:''}}<text v-if='!item.commonStaffs1'>未审核</text></view>
-										<!-- <view  class="status success">吕波(已审核)</view> -->
-										
-									</view>
-									<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0' class='time'>
-									{{item.updateDate}}
-									</view>
-								</view>
-								<view v-if='item.auditMind' class="right-content">
-									{{item.auditMind}}
-								</view>
-								<view v-if='item.fileUrl' class="flex audit_img">
-									<view v-for="(items,indexs) in item.fileUrl" class="url_css">
-										<image :src="items" mode="aspectFill" class="url_img" @click="openDocument(items)">
-										</image>
-									</view>
-								</view>
-							</view>
-							<view v-if='item.commonStaffs1' class="right">
-								<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'"  size="28"></u-icon>
-							</view>
-						</view>
-						<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-							<view class='row2'>
-								<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-									<view class="item-content">
-										<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-										<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-									</view> 
-									<view class="name">{{item1.staffName}}</view> 
-								</view>
-							</view>
-						</view>
-						<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
-					</view>
-				</view>
+				<flow :auditList="auditList" @status='getStatus'></flow>
 			</u-form>
 		</view>
 		<view style='padding:10px;' class='flex bottom-btn'>
@@ -319,10 +261,14 @@
 </template>
 
 <script>
+	import flow from '@/components/flow.vue';
 	import {
 		mapState
 	} from 'vuex';
 	export default {
+		components: {
+			flow
+		},
 		data() {
 			return {
 				id: "",
@@ -333,8 +279,8 @@
 				show: false,
 				show1: false,
 				border: false,
-				auditList:[],
-				list:{},
+				auditList: [],
+				list: {},
 				rejectInfo: "", //驳回原因
 				pjList: [{
 						type: '一等品'
@@ -362,6 +308,9 @@
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			openDocument(src) {
 				uni.downloadFile({
 					url: src,
@@ -377,20 +326,20 @@
 					}
 				});
 			},
-			showcontent(item){
-				item.showflow=!item.showflow
+			showcontent(item) {
+				item.showflow = !item.showflow
 			},
 			getList() {
 				var that = this
 				uni.showLoading({
-					title:'加载中',
-					mask:true
+					title: '加载中',
+					mask: true
 				})
 				this.$api.doRequest('get', '/inOutWarehouseTask/getTask', {
 					id: this.id
 				}).then(res => {
 					if (res.data.code == 200) {
-						this.list=res.data.data
+						this.list = res.data.data
 						this.$api.doRequest('get', '/inOutWarehouseTask/getInOutWarehouseTask', {
 							relevanceId: res.data.data.relevanceId
 						}).then(res => {
@@ -404,7 +353,7 @@
 									} else if (res.data.data[i].inOutType == "移库入库" || res.data.data[i]
 										.inOutType == "暂存入库" || res
 										.data.data[i].inOutType == "采购入库" || res.data.data[i].inOutType ==
-										"贸易服务入库"|| res.data.data[i].inOutType ==
+										"贸易服务入库" || res.data.data[i].inOutType ==
 										"收购入库") {
 										this.EnterList = res.data.data[i]
 										this.EnterList.judge = 2
@@ -422,54 +371,100 @@
 								this.$api.doRequest('get', '/commonUser/getHis', {
 									workflowId: res1.data.data[0].id,
 									businessKey: this.id,
-									branch:that.list.jointVentureParties?that.list.jointVentureParties:'zt'
+									branch: that.list.jointVentureParties ? that.list
+										.jointVentureParties : 'zt'
 								}).then(response => {
 									uni.hideLoading()
 									for (let i = 0; i < response.data.data.length; i++) {
-										this.$set(response.data.data[i],'status','question')
-										console.log(response.data.data[i].workflowHistoricTasks,i)
-										if(response.data.data[i].commonStaffs){
-											response.data.data[i].showflow=false
-											response.data.data[i].operatorTitle=response.data.data[i].desc.substring(0,2)
-											response.data.data[i].operatorName=response.data.data[i].desc
-											response.data.data[i].staffscontent='共'+response.data.data[i].commonStaffs.length+'人,当前审核'+response.data.data[i].workflowHistoricTasks.length+'人'
-											if(response.data.data[i].workflowHistoricTasks&&response.data.data[i].workflowHistoricTasks.length>0){
-												if(response.data.data[i].workflowHistoricTasks.length!=response.data.data[i].commonStaffs.length){
+										this.$set(response.data.data[i], 'status',
+											'question')
+										console.log(response.data.data[i]
+											.workflowHistoricTasks, i)
+										if (response.data.data[i].commonStaffs) {
+											response.data.data[i].showflow = false
+											response.data.data[i].operatorTitle = response
+												.data.data[i].desc.substring(0, 2)
+											response.data.data[i].operatorName = response
+												.data.data[i].desc
+											response.data.data[i].staffscontent = '共' +
+												response.data.data[i].commonStaffs.length +
+												'人,当前审核' + response.data.data[i]
+												.workflowHistoricTasks.length + '人'
+											if (response.data.data[i]
+												.workflowHistoricTasks && response.data
+												.data[i].workflowHistoricTasks.length > 0
+											) {
+												if (response.data.data[i]
+													.workflowHistoricTasks.length !=
+													response.data.data[i].commonStaffs
+													.length) {
 													// response.data.data[i].status='question'
-													this.$set(response.data.data[i],'status','question')
-												}else{
-													this.$set(response.data.data[i],'status','success')
+													this.$set(response.data.data[i],
+														'status', 'question')
+												} else {
+													this.$set(response.data.data[i],
+														'status', 'success')
 													// response.data.data[i].status='success'
 												}
-												response.data.data[i].workflowlen=response.data.data[i].workflowHistoricTasks.length
-												var workflowdata=response.data.data[i].workflowHistoricTasks
-												var staffsdata=response.data.data[i].commonStaffs
-												for (let q = 0; q < staffsdata.length; q++) {
-													staffsdata[q].status=false
-													staffsdata[q].staffTitle=staffsdata[q].staffName
-													for (let k = 0; k < workflowdata.length; k++) {
-														if(staffsdata[q].staffId==workflowdata[k].operatorId){
-															staffsdata[q].status=true
+												response.data.data[i].workflowlen =
+													response.data.data[i]
+													.workflowHistoricTasks.length
+												var workflowdata = response.data.data[i]
+													.workflowHistoricTasks
+												var staffsdata = response.data.data[i]
+													.commonStaffs
+												for (let q = 0; q < staffsdata
+													.length; q++) {
+													staffsdata[q].status = false
+													staffsdata[q].staffTitle = staffsdata[
+														q].staffName
+													for (let k = 0; k < workflowdata
+														.length; k++) {
+														if (staffsdata[q].staffId ==
+															workflowdata[k].operatorId) {
+															staffsdata[q].status = true
 														}
 													}
 												}
 											}
-											response.data.data[i].commonStaffs1=response.data.data[i].commonStaffs
-										}else{
-											if(response.data.data[i].workflowHistoricTasks&&response.data.data[i].workflowHistoricTasks.length>0){
-												var len =response.data.data[i].workflowHistoricTasks.length-1
-												if(response.data.data[i].workflowHistoricTasks[len].approved){
-													this.$set(response.data.data[i],'status','success')
-												}else{
-													this.$set(response.data.data[i],'status','error')
+											response.data.data[i].commonStaffs1 = response
+												.data.data[i].commonStaffs
+										} else {
+											if (response.data.data[i]
+												.workflowHistoricTasks && response.data
+												.data[i].workflowHistoricTasks.length > 0
+											) {
+												var len = response.data.data[i]
+													.workflowHistoricTasks.length - 1
+												if (response.data.data[i]
+													.workflowHistoricTasks[len].approved) {
+													this.$set(response.data.data[i],
+														'status', 'success')
+												} else {
+													this.$set(response.data.data[i],
+														'status', 'error')
 												}
-												response.data.data[i].operatorTitle=response.data.data[i].workflowHistoricTasks[len].operatorName.substring(response.data.data[i].workflowHistoricTasks[0].operatorName.length - 2)
-												response.data.data[i].operatorName=response.data.data[i].workflowHistoricTasks[len].operatorName
-												var time=new Date(response.data.data[i].workflowHistoricTasks[len].claimTime).getTime()
-												response.data.data[i].updateDate=this.$u.timeFormat(time, 'mm.dd hh:MM')
+												response.data.data[i].operatorTitle =
+													response.data.data[i]
+													.workflowHistoricTasks[len]
+													.operatorName.substring(response.data
+														.data[i].workflowHistoricTasks[0]
+														.operatorName.length - 2)
+												response.data.data[i].operatorName =
+													response.data.data[i]
+													.workflowHistoricTasks[len]
+													.operatorName
+												var time = new Date(response.data.data[i]
+													.workflowHistoricTasks[len]
+													.claimTime).getTime()
+												response.data.data[i].updateDate = this.$u
+													.timeFormat(time, 'mm.dd hh:MM')
 												if (response.data.data[i]
+													.workflowHistoricTasks[len]
+													.auditMind &&
+													response.data.data[i]
 													.workflowHistoricTasks[len].auditMind
-												&&response.data.data[i].workflowHistoricTasks[len].auditMind.indexOf("##")!=-1) {
+													.indexOf("##") != -1) {
 													response.data.data[i].auditMind =
 														response.data.data[i]
 														.workflowHistoricTasks[len]
@@ -481,48 +476,59 @@
 															",")
 												}
 												// response.data.data[i].auditMind=response.data.data[i].workflowHistoricTasks[len].auditMind
-											}else{
-												this.$set(response.data.data[i],'status','question')
+											} else {
+												this.$set(response.data.data[i], 'status',
+													'question')
 												// response.data.data[i].status='question'
-												if(response.data.data[i].desc=='总经理助理审核'){
-													response.data.data[i].operatorTitle='总助'
-												}else if(response.data.data[i].desc=='杜大光审核'){
-													response.data.data[i].operatorTitle='大光'
-												}else{
-													response.data.data[i].operatorTitle=response.data.data[i].desc.substring(0,2)
+												if (response.data.data[i].desc ==
+													'总经理助理审核') {
+													response.data.data[i].operatorTitle =
+														'总助'
+												} else if (response.data.data[i].desc ==
+													'杜大光审核') {
+													response.data.data[i].operatorTitle =
+														'大光'
+												} else {
+													response.data.data[i].operatorTitle =
+														response.data.data[i].desc
+														.substring(0, 2)
 												}
-												
-												response.data.data[i].operatorName=response.data.data[i].desc
-												var time1=new Date(response.data.data[i].updateDate).getTime()
-												response.data.data[i].updateDate=this.$u.timeFormat(time1, 'mm.dd hh:MM')
-												response.data.data[i].auditMind=''
+
+												response.data.data[i].operatorName =
+													response.data.data[i].desc
+												var time1 = new Date(response.data.data[i]
+													.updateDate).getTime()
+												response.data.data[i].updateDate = this.$u
+													.timeFormat(time1, 'mm.dd hh:MM')
+												response.data.data[i].auditMind = ''
 											}
 										}
-										
+
 									}
 									console.log(response.data.data)
 									this.auditList = response.data.data
-									var time2=new Date(this.list.createDate).getTime()
-									var time3=this.$u.timeFormat(time2, 'mm.dd hh:MM')
+									var time2 = new Date(this.list.createDate).getTime()
+									var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
 									this.auditList.unshift({
-										operatorTitle:this.list.creater.substring(0,2),
-										operatorName:this.list.creater,
-										updateDate:time3,
-										auditMind:'',
-										desc:'发起申请',
-										showflow:false,
-										commonStaffs1:null,
-										commonStaffs:null,
-										workflowHistoricTasks:[],
-										status:'success'
+										operatorTitle: this.list.creater.substring(
+											0, 2),
+										operatorName: this.list.creater,
+										updateDate: time3,
+										auditMind: '',
+										desc: '发起申请',
+										showflow: false,
+										commonStaffs1: null,
+										commonStaffs: null,
+										workflowHistoricTasks: [],
+										status: 'success'
 									})
 								})
 							})
 						})
-						
+
 					}
 				})
-				
+
 			},
 			// pjPicker(e) {
 			// 	this.OutList.grade = this.pjList[e[0]].type
@@ -675,22 +681,23 @@
 		text-align: center;
 		color: #AFB3BF;
 	}
+
 	.content2 {
 		background: white;
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		padding: 20rpx;
-	
+
 		.row {
 			display: flex;
-	
+
 			.left {
 				display: flex;
 				align-items: center;
-	
+
 				.item1 {
 					position: relative;
-	
+
 					.item-content {
 						background: #617AE0;
 						width: 44px;
@@ -701,7 +708,7 @@
 						font-size: 15px;
 						color: #fff;
 					}
-	
+
 					.status {
 						position: absolute;
 						border-radius: 50%;
@@ -710,27 +717,27 @@
 						bottom: -3px;
 						background: #fff;
 					}
-	
+
 					.status.success {
 						border: 1px solid rgb(60, 156, 255);
 					}
-	
+
 					.status.error {
 						border: 1px solid rgb(245, 108, 108);
 					}
-	
+
 					.status.question {
 						border: 1px solid #f9ae3d;
 					}
 				}
-	
+
 			}
-	
+
 			.right {
 				width: 80%;
 				// color: #B0B1B5;
 				margin-top: 10px;
-	
+
 				.right-content {
 					background: #F2F3F7;
 					margin-left: 10px;
@@ -739,58 +746,61 @@
 					border-radius: 5px;
 					color: #B0B1B5;
 				}
-	
+
 				.right-item {
 					display: flex;
 					justify-content: space-between;
-	
+
 					.time {
 						color: #999;
 					}
-	
+
 					.item2 {
 						margin-left: 20rpx;
 						margin-top: -7px;
-	
+
 						.name {
 							font-size: 28rpx;
 							font-weight: 800;
 							margin-bottom: 4px;
 						}
-	
+
 						.status.success {
 							color: #6CC48C;
 						}
-	
+
 						.status.error {
 							color: rgb(245, 108, 108);
 						}
-	
+
 						.status.question {
 							color: #f9ae3d;
 						}
 					}
 				}
+
 				.audit_img {
 					flex-wrap: wrap;
+
 					.url_css {
 						// border: 1px solid #999999;
 						border-radius: 10px;
 						margin-top: 10px;
 						margin-right: 10px;
+
 						.url_img {
 							width: 66px;
 							height: 66px;
 							border-radius: 10px;
 						}
 					}
-				}	
+				}
 			}
 		}
-	
+
 		.row2 {
 			display: flex;
-	
+
 			.item-content {
 				background: #22C572;
 				width: 30px;
@@ -803,22 +813,22 @@
 				padding: 0 2px;
 				margin: 0 auto;
 			}
-	
+
 			.status {
 				position: absolute;
 				top: 0;
 				right: 0;
 			}
 		}
-	
+
 		.row-line {
 			width: 1px;
 			height: 30px;
 			background: #F2F2F2;
 			margin: 10rpx 50rpx;
-	
+
 		}
-	
+
 		.audit {
 			margin-top: 20rpx;
 		}

+ 8 - 24
pages/task/audit/acquisition_settlement_approval.vue

@@ -135,30 +135,7 @@
 				<text class="text_css">明细.xls</text>
 			</view>
 		</view>
-		<view class="content2">
-			<view class="title row">
-				流程
-			</view>
-			<view v-for="(item,index) in auditList" :key='index' class="audit">
-				<view class="row">
-					<view class="left">
-						<view class="item1">
-							<image :src="src" style="width: 100rpx;height: 100rpx;border-radius: 500%;"></image>
-						</view>
-						<view class="item2">
-							<view class="name">{{item.operatorName ? item.operatorName:item.operatorMajorRoleName}}
-							</view>
-							<view class="status">{{item.approved ? "已审核":"待决策人审核"}}</view>
-						</view>
-					</view>
-					<view class="right">
-						{{item.updateDate}}
-					</view>
-				</view>
-				<view class="row-line" v-if="index!= auditList.length - 1"></view>
-			</view>
-
-		</view>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view v-if='show' class="shade">
 			<view class="wrap">
 				<view class="alert-top">
@@ -188,10 +165,14 @@
 
 <script>
 	import helper from '@/common/helper.js';
+	import flow from '@/components/flow.vue';
 	import {
 		mapState
 	} from 'vuex';
 	export default {
+		components: {
+			flow
+		},
 		data() {
 			return {
 				src: '../../../static/img/myimg/LiangShang@2x.png',
@@ -237,6 +218,9 @@
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			openXls() {
 				if (this.url && this.url != "ng") {
 					uni.downloadFile({

+ 9 - 24
pages/task/audit/acquisition_settlement_details.vue

@@ -135,30 +135,7 @@
 				<text class="text_css">明细.xls</text>
 			</view>
 		</view>
-		<view class="content2">
-			<view class="title row">
-				流程
-			</view>
-			<view v-for="(item,index) in auditList" :key='index' class="audit">
-				<view class="row">
-					<view class="left">
-						<view class="item1">
-							<image :src="src" style="width: 100rpx;height: 100rpx;border-radius: 500%;"></image>
-						</view>
-						<view class="item2">
-							<view class="name">{{item.operatorName ? item.operatorName:item.operatorMajorRoleName}}
-							</view>
-							<view class="status">{{item.approved ? "已审核":"待决策人审核"}}</view>
-						</view>
-					</view>
-					<view class="right">
-						{{item.updateDate}}
-					</view>
-				</view>
-				<view class="row-line" v-if="index!= auditList.length - 1"></view>
-			</view>
-
-		</view>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view v-if='show' class="shade">
 			<view class="wrap">
 				<view class="alert-top">
@@ -188,10 +165,15 @@
 
 <script>
 	import helper from '@/common/helper.js';
+	import flow from '@/components/flow.vue';
 	import {
 		mapState
 	} from 'vuex';
 	export default {
+		components: {
+			flow
+		},
+
 		data() {
 			return {
 				src: '../../../static/img/myimg/LiangShang@2x.png',
@@ -237,6 +219,9 @@
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			openXls() {
 				if (this.url && this.url != "ng") {
 					uni.downloadFile({

+ 281 - 254
pages/task/audit/acquisitioncontract.vue

@@ -39,7 +39,7 @@
 			<u-form-item label-width='260' label="交货日期(起 - 止)" :borderBottom="false">
 				<view class="textCss">
 					{{list.deliveryDateStart }} ~ {{list.deliveryDateEnd}}
-				</view> 
+				</view>
 			</u-form-item>
 			<u-form-item label-width='260' label="溢短装(%)" :borderBottom="false">
 				<u-input v-model="list.overShort" input-align="right" placeholder="--" disabled />
@@ -59,42 +59,49 @@
 			<u-form-item label-width='300' label="结算单价(元/吨)" :borderBottom="false" v-show="list.settlementPrice">
 				<u-input v-model="list.settlementPrice" input-align="right" placeholder="--" disabled />
 			</u-form-item>
-			<u-form-item label-width='260' label="合同收入(元)" :borderBottom="false" v-show="list.contractProcessInfo.goodsNameKey">
+			<u-form-item label-width='260' label="合同收入(元)" :borderBottom="false"
+				v-show="list.contractProcessInfo.goodsNameKey">
 				<u-input v-model="list.contractProcessInfo.goodsNameKey" input-align="right" placeholder="--"
 					disabled />
 			</u-form-item>
-			<u-form-item label-width='260' label="已开发票(元)" :borderBottom="false" v-show="list.contractProcessInfo.goodsName">
+			<u-form-item label-width='260' label="已开发票(元)" :borderBottom="false"
+				v-show="list.contractProcessInfo.goodsName">
 				<u-input v-model="list.contractProcessInfo.goodsName" input-align="right" placeholder="--" disabled />
 			</u-form-item>
-			<u-form-item label-width='260' label="费用支出(元)" :borderBottom="false" v-show="list.contractProcessInfo.waterContent">
+			<u-form-item label-width='260' label="费用支出(元)" :borderBottom="false"
+				v-show="list.contractProcessInfo.waterContent">
 				<u-input v-model="list.contractProcessInfo.waterContent" input-align="right" placeholder="--"
 					disabled />
 			</u-form-item>
-			<u-form-item label-width='260' label="未开发票(元)" :borderBottom="false" v-show="list.contractProcessInfo.impurity">
+			<u-form-item label-width='260' label="未开发票(元)" :borderBottom="false"
+				v-show="list.contractProcessInfo.impurity">
 				<u-input v-model="list.contractProcessInfo.impurity" input-align="right" placeholder="--" disabled />
 			</u-form-item>
-			<u-form-item label-width='260' label="未回款(元)" :borderBottom="false" v-show="list.contractProcessInfo.mildewGrain">
+			<u-form-item label-width='260' label="未回款(元)" :borderBottom="false"
+				v-show="list.contractProcessInfo.mildewGrain">
 				<u-input v-model="list.contractProcessInfo.mildewGrain" input-align="right" placeholder="--" disabled />
 			</u-form-item>
-			<u-form-item label-width='260' label="双章原件回收情况" :borderBottom="false" v-show="list.contractProcessInfo.grade">
+			<u-form-item label-width='260' label="双章原件回收情况" :borderBottom="false"
+				v-show="list.contractProcessInfo.grade">
 				<u-input v-model="list.contractProcessInfo.grade" input-align="right" placeholder="--" disabled />
 			</u-form-item>
 			<u-form-item label-width='260' label="备注信息" :borderBottom="false">
 			</u-form-item>
 			<u-form-item>
-				<textarea class='textarea' autoHeight v-model="list.remarks" input-align="right" placeholder="暂无备注信息" disabled />
+				<textarea class='textarea' autoHeight v-model="list.remarks" input-align="right" placeholder="暂无备注信息"
+					disabled />
 			</u-form-item>
-			
+
 			<!-- <u-form-item label-width='260' label="附件"> -->
-				<!-- <view class="textCss">
+			<!-- <view class="textCss">
 					<upload class="upload" ref="upload" :action="action" :max-size="maxSize" :max-count="1"
 						:file-list="imglist" :size-type="['compressed']" @on-success="getImgUrl" @on-error="onError"
 						@on-remove="onRemove" @on-uploaded="isAdd = true" :before-upload="filterFileType"
 						@on-progress="onProgress" :deletable="false" :showProgress = "false"></upload>
 				</view> -->
-				
+
 			<!-- </u-form-item> -->
-			
+
 		</u-form>
 		<u-form ref="uForm">
 			<view class="form_top">货物信息</view>
@@ -155,7 +162,7 @@
 						</u-form-item>
 					</u-col>
 				</u-row>
-				
+
 			</view>
 		</u-form>
 		<u-form ref="uForm">
@@ -189,7 +196,7 @@
 						</u-form-item>
 					</u-col>
 				</u-row>
-				
+
 			</view>
 		</u-form>
 		<u-form ref="uForm">
@@ -198,106 +205,32 @@
 				<view style="justify-content: space-between;" class='flex' v-for='item in imglist'>
 					<view class="img_item">
 						<view class="" style="width: 16%;">
-							<image
-								v-if="item.type == 'pdf'"
-								class="imgsign" src="../../../static/img/oa_office/pdf3.png"
-								mode=""></image>
-							<image v-else-if="item.type == 'xls'||item.type == 'xlsx'"
-								class="imgsign" src="../../../static/img/oa_office/excle3.png"
-								mode=""></image>
-							<image v-else-if="item.type == 'doc'||item.type == 'docx'"
-								class="imgsign" src="../../../static/img/oa_office/word3.png"
-								mode=""></image>
+							<image v-if="item.type == 'pdf'" class="imgsign"
+								src="../../../static/img/oa_office/pdf3.png" mode=""></image>
+							<image v-else-if="item.type == 'xls'||item.type == 'xlsx'" class="imgsign"
+								src="../../../static/img/oa_office/excle3.png" mode=""></image>
+							<image v-else-if="item.type == 'doc'||item.type == 'docx'" class="imgsign"
+								src="../../../static/img/oa_office/word3.png" mode=""></image>
 							<image v-else class="imgsign" :src="item.appendixPath" mode="">
 							</image>
 						</view>
 						<view class="" style="width: 70%;">
 							<view class="char_css">{{item.appendixName}}</view>
-							<u-line-progress v-if='item.progressstatus' :striped="true" :percent="item.progress" :striped-active="true"></u-line-progress>
+							<u-line-progress v-if='item.progressstatus' :striped="true" :percent="item.progress"
+								:striped-active="true"></u-line-progress>
 							<view class="img_size">{{item.appendixSize}}</view>
 						</view>
 						<view style="color: #22C572;" class="img_dowload" @click="openDocument(item)">
 							下载
 						</view>
 					</view>
-					
+
 					<!-- <u-icon name="attach" ></u-icon> -->
 					<!-- <image style='width: 200rpx;height: 200rpx;' :src="item" mode=""></image> -->
 				</view>
 			</view>
 		</u-form>
-		<u-form ref="uForm">
-			<view class="form_top">流程</view>
-			<view class="content2">
-				<view v-for="(item,index) in auditList" :key='index' class="audit">
-					<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-						<view class="left">
-							<view class="item1">
-								<view class="item-content">{{item.operatorTitle}}</view>
-								<view v-if="item.status=='success'" class='status success'>
-									<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='error'" class='status error'>
-									<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='question'" class='status question'>
-									<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-								</view>
-							</view>
-						</view>
-						<view class="right">
-							<view class="right-item">
-								<view class="item2">
-									<view class="name">{{item.desc}}
-									</view>
-									<!-- <view class='time'>{{item.updateDate}}</view> -->
-									<view v-if="item.status=='success'" class="status success">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1&&index!=0'>已审核</text></view>
-									<view v-if="item.status=='error'" class="status error">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
-									</view>
-									<view v-if="item.status=='question'" class="status question">
-										{{item.commonStaffs1?item.staffscontent:''}}<text
-											v-if='!item.commonStaffs1'>未审核</text></view>
-									<!-- <view  class="status success">吕波(已审核)</view> -->
-								</view>
-								<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
-									class='time'>
-									{{item.updateDate}}
-								</view>
-							</view>
-							<view v-if='item.auditMind' class="right-content">
-								{{item.auditMind}}
-							</view>
-							<view class="flex audit_img">
-								<view v-for="(items,indexs) in item.fileUrl" class="url_css">
-									<image :src="items" mode="aspectFill" class="url_img" @click="auditFile(items)">
-									</image>
-								</view>
-							</view>
-						</view>
-						<view v-if='item.commonStaffs1' class="right">
-							<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
-							</u-icon>
-						</view>
-					</view>
-					<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-						<view class='row2'>
-							<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-								<view class="item-content">
-									<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-									<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-								</view>
-								<view class="name">{{item1.staffName}}</view>
-							</view>
-						</view>
-					</view>
-					<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
-				</view>
-			</view>
-		</u-form>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view v-if='list.taskId' style='padding:10px;' class='flex bottom-btn'>
 			<u-button v-if='list.approveStatus||isSHowBtn' @click='reject' type="error" class="btn1" hover-class='none'>
 				驳回
@@ -319,7 +252,8 @@
 						</view>
 						<!-- <u-input class="" v-model='auditMind' placeholder="请在此输入审核意见" type="textarea" height="414"
 							maxlength="100" /> -->
-							<textarea maxlength="1000" v-model='auditMind' placeholder="请在此输入审核意见" name="" id="" cols="30" rows="11"></textarea>
+						<textarea maxlength="1000" v-model='auditMind' placeholder="请在此输入审核意见" name="" id="" cols="30"
+							rows="11"></textarea>
 					</view>
 					<view class="upload_css">
 						上传附件
@@ -329,23 +263,25 @@
 							:size-type="['compressed']" @on-success="getImgUrl" @on-error="onError" @on-remove="onRemove"
 							@on-uploaded="isAdd = true" :before-upload="filterFileType" @on-progress="onProgress"></upload>
 							 -->
-							 <u-upload :custom-btn='true' class="upload" ref="upload" name='fileName' :form-data="{companyId: pcUserInfo.compId,
+						<u-upload :custom-btn='true' class="upload" ref="upload" name='fileName' :form-data="{companyId: pcUserInfo.compId,
 									modelId: '',
 									vesselId: ''}" :action="action" :show-tips="false" :max-size="maxSize" :max-count="9"
-							 :size-type="['compressed']" @on-success="getImgUrl($event)" @on-error="onError"
-							 @on-remove="onRemove" @on-uploaded="isAdd = true" :limitType ="['png', 'jpg', 'jpeg', 'webp', 'gif']"
-							 @on-progress="onProgress">
-							 <view slot="addBtn" class="slot-btn u-list-item" hover-class="slot-btn__hover" hover-stay-time="150">
-									<image style="width:23px;height:23px;" src="../../../static/img/liangmai/xiangji-2.png" mode=""></image>
-									<view>选择图片</view>
-								</view>
-							 </u-upload>
+							:size-type="['compressed']" @on-success="getImgUrl($event)" @on-error="onError"
+							@on-remove="onRemove" @on-uploaded="isAdd = true"
+							:limitType="['png', 'jpg', 'jpeg', 'webp', 'gif']" @on-progress="onProgress">
+							<view slot="addBtn" class="slot-btn u-list-item" hover-class="slot-btn__hover"
+								hover-stay-time="150">
+								<image style="width:23px;height:23px;" src="../../../static/img/liangmai/xiangji-2.png"
+									mode=""></image>
+								<view>选择图片</view>
+							</view>
+						</u-upload>
 					</view>
 				</view>
-				
+
 				<view class="audit_btn">
-				<view @click='close()' class="cancel">取消</view>
-				<view @click='passSubmit()' class="confirm">确定</view>
+					<view @click='close()' class="cancel">取消</view>
+					<view @click='passSubmit()' class="confirm">确定</view>
 				</view>
 			</view>
 		</view>
@@ -358,9 +294,11 @@
 <script>
 	import upload from '@/components/upload.vue';
 	import helper from '@/common/helper.js';
+	import flow from '@/components/flow.vue';
 	export default {
 		components: {
-			upload
+			upload,
+			flow
 		},
 		data() {
 			return {
@@ -386,10 +324,10 @@
 				imgShow: false,
 				url: "",
 				everyCheck: '',
-				auditCheck:"question",//判断审核是否通过
+				auditCheck: "question", //判断审核是否通过
 				// 上传附件、
 				action: this.$uploadUrl,
-				pcUserInfo :uni.getStorageSync('pcUserInfo'),
+				pcUserInfo: uni.getStorageSync('pcUserInfo'),
 				maxSize: 50 * 1024 * 1024, //限制文件大小 50M
 				isAdd: true,
 				fileUrl: []
@@ -412,6 +350,9 @@
 			this.getList()
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			auditFile(src) {
 				uni.downloadFile({
 					url: src,
@@ -442,13 +383,14 @@
 				this.fileUrl.splice(index, 1)
 			},
 			openDocument(item) {
-				this.$set(item,'progressstatus',true)
+				this.$set(item, 'progressstatus', true)
 				this.$forceUpdate()
-				const downloadTask =uni.downloadFile({
+				const downloadTask = uni.downloadFile({
 					url: item.appendixPath,
 					success: function(res) {
 						var filePath = res.tempFilePath;
-						if(item.type=='pdf'||item.type == 'xls'||item.type == 'xlsx'||item.type == 'doc'||item.type == 'docx'){
+						if (item.type == 'pdf' || item.type == 'xls' || item.type == 'xlsx' || item.type ==
+							'doc' || item.type == 'docx') {
 							uni.openDocument({
 								filePath: filePath,
 								showMenu: true,
@@ -456,17 +398,17 @@
 									console.log('打开文档成功');
 								}
 							});
-						}else{
+						} else {
 							uni.previewImage({
 								current: 0, //预览图片的下标
 								urls: [item.appendixPath]
 							})
 						}
-						
+
 					}
 				});
 				downloadTask.onProgressUpdate((res) => {
-					this.$set(item,'progress',res.progress)
+					this.$set(item, 'progress', res.progress)
 					this.$forceUpdate()
 					console.log('下载进度' + res.progress);
 					console.log('已经下载的数据长度' + res.totalBytesWritten);
@@ -507,12 +449,13 @@
 							appendixIds: that.list.addressUrl
 						}).then(res1 => {
 							that.imglist = res1.data.data
-							for (let i = 0; i < that.imglist.length; i++) {//获取后缀
-							that.imglist[i].progressstatus=false
-							that.imglist[i].progress=0
+							for (let i = 0; i < that.imglist.length; i++) { //获取后缀
+								that.imglist[i].progressstatus = false
+								that.imglist[i].progress = 0
 								if (that.imglist[i].appendixName) {
-									let index = that.imglist[i].appendixName.lastIndexOf(".") 
-									that.imglist[i].type = that.imglist[i].appendixName.substring(index+1)
+									let index = that.imglist[i].appendixName.lastIndexOf(".")
+									that.imglist[i].type = that.imglist[i].appendixName.substring(index +
+										1)
 								}
 							}
 							// 查流程
@@ -523,120 +466,177 @@
 								this.$api.doRequest('get', '/commonUser/getHis', {
 									workflowId: res1.data.data[0].id,
 									businessKey: this.id,
-									branch:that.list.jointVentureParties?that.list.jointVentureParties:'zt'
+									branch: that.list.jointVentureParties ? that.list
+										.jointVentureParties : 'zt'
 								}).then(response => {
 									uni.hideLoading()
 									for (let i = 0; i < response.data.data.length; i++) {
-										this.$set(response.data.data[i], 'status', 'question')
-										console.log(response.data.data[i].workflowHistoricTasks, i)
+										this.$set(response.data.data[i], 'status',
+											'question')
+										console.log(response.data.data[i]
+											.workflowHistoricTasks, i)
 										if (response.data.data[i].commonStaffs) {
 											response.data.data[i].showflow = false
-											response.data.data[i].operatorTitle = response.data.data[i]
+											response.data.data[i].operatorTitle = response
+												.data.data[i]
 												.desc.substring(0, 2)
-											response.data.data[i].operatorName = response.data.data[i]
+											response.data.data[i].operatorName = response
+												.data.data[i]
 												.desc
-											response.data.data[i].staffscontent = '共' + response.data
-												.data[i].commonStaffs.length + '人,当前审核' + response.data
+											response.data.data[i].staffscontent = '共' +
+												response.data
+												.data[i].commonStaffs.length + '人,当前审核' +
+												response.data
 												.data[i].workflowHistoricTasks.length + '人'
-											if (response.data.data[i].workflowHistoricTasks && response
-												.data.data[i].workflowHistoricTasks.length > 0) {
-												if (response.data.data[i].workflowHistoricTasks
-													.length != response.data.data[i].commonStaffs
+											if (response.data.data[i]
+												.workflowHistoricTasks && response
+												.data.data[i].workflowHistoricTasks
+												.length > 0) {
+												if (response.data.data[i]
+													.workflowHistoricTasks
+													.length != response.data.data[i]
+													.commonStaffs
 													.length) {
 													// response.data.data[i].status='question'
-													this.$set(response.data.data[i], 'status',
+													this.$set(response.data.data[i],
+														'status',
 														'question')
 												} else {
-													this.$set(response.data.data[i], 'status',
+													this.$set(response.data.data[i],
+														'status',
 														'success')
 													// response.data.data[i].status='success'
 												}
-												response.data.data[i].workflowlen = response.data.data[
-													i].workflowHistoricTasks.length
+												response.data.data[i].workflowlen =
+													response.data.data[
+														i].workflowHistoricTasks.length
 												var workflowdata = response.data.data[i]
 													.workflowHistoricTasks
-												var staffsdata = response.data.data[i].commonStaffs
-												for (let q = 0; q < staffsdata.length; q++) {
+												var staffsdata = response.data.data[i]
+													.commonStaffs
+												for (let q = 0; q < staffsdata
+													.length; q++) {
 													staffsdata[q].status = false
-													staffsdata[q].staffTitle = staffsdata[q].staffName
-													for (let k = 0; k < workflowdata.length; k++) {
-														if (staffsdata[q].staffId == workflowdata[k]
+													staffsdata[q].staffTitle = staffsdata[
+														q].staffName
+													for (let k = 0; k < workflowdata
+														.length; k++) {
+														if (staffsdata[q].staffId ==
+															workflowdata[k]
 															.operatorId) {
 															staffsdata[q].status = true
 														}
 													}
 												}
 											}
-											response.data.data[i].commonStaffs1 = response.data.data[i]
+											response.data.data[i].commonStaffs1 = response
+												.data.data[i]
 												.commonStaffs
 										} else {
-											if (response.data.data[i].workflowHistoricTasks && response
-												.data.data[i].workflowHistoricTasks.length > 0) {
-												var len = response.data.data[i].workflowHistoricTasks
+											if (response.data.data[i]
+												.workflowHistoricTasks && response
+												.data.data[i].workflowHistoricTasks
+												.length > 0) {
+												var len = response.data.data[i]
+													.workflowHistoricTasks
 													.length - 1
-												if (response.data.data[i].workflowHistoricTasks[len]
+												if (response.data.data[i]
+													.workflowHistoricTasks[len]
 													.approved) {
-													this.$set(response.data.data[i], 'status',
+													this.$set(response.data.data[i],
+														'status',
 														'success')
 												} else {
-													this.$set(response.data.data[i], 'status', 'error')
+													this.$set(response.data.data[i],
+														'status', 'error')
 												}
-												response.data.data[i].operatorTitle = response.data
-													.data[i].workflowHistoricTasks[len].operatorName
+												response.data.data[i].operatorTitle =
+													response.data
+													.data[i].workflowHistoricTasks[len]
+													.operatorName
 													.substring(response.data.data[i]
-														.workflowHistoricTasks[0].operatorName.length -
+														.workflowHistoricTasks[0]
+														.operatorName.length -
 														2)
-												response.data.data[i].operatorName = response.data
-													.data[i].workflowHistoricTasks[len].operatorName
+												response.data.data[i].operatorName =
+													response.data
+													.data[i].workflowHistoricTasks[len]
+													.operatorName
 												var time = new Date(response.data.data[i]
-													.workflowHistoricTasks[len].claimTime)
-												.getTime()
-												response.data.data[i].updateDate = this.$u.timeFormat(
-													time, 'mm.dd hh:MM')
+														.workflowHistoricTasks[len]
+														.claimTime)
+													.getTime()
+												response.data.data[i].updateDate = this.$u
+													.timeFormat(
+														time, 'mm.dd hh:MM')
 												// response.data.data[i].auditMind = response.data.data[i]
 												// 	.workflowHistoricTasks[len].auditMind
-													// 显示附件和审核意见
-													if (response.data.data[i].workflowHistoricTasks[len].auditMind && response.data.data[i].workflowHistoricTasks[len].auditMind.indexOf("##") !=-1) {
-														response.data.data[i].auditMind = response.data.data[i].workflowHistoricTasks[len].auditMind.split("##")[0]
-														response.data.data[i].fileUrl = response.data.data[i].workflowHistoricTasks[len].auditMind.split("##")[1].split(",")
-													}else{
-														response.data.data[i].auditMind = response.data.data[i].workflowHistoricTasks[len].auditMind
-													}
+												// 显示附件和审核意见
+												if (response.data.data[i]
+													.workflowHistoricTasks[len]
+													.auditMind && response.data.data[i]
+													.workflowHistoricTasks[len].auditMind
+													.indexOf("##") != -1) {
+													response.data.data[i].auditMind =
+														response.data.data[i]
+														.workflowHistoricTasks[len]
+														.auditMind.split("##")[0]
+													response.data.data[i].fileUrl =
+														response.data.data[i]
+														.workflowHistoricTasks[len]
+														.auditMind.split("##")[1].split(
+															",")
+												} else {
+													response.data.data[i].auditMind =
+														response.data.data[i]
+														.workflowHistoricTasks[len]
+														.auditMind
+												}
 											} else {
-												this.$set(response.data.data[i], 'status', 'question')
+												this.$set(response.data.data[i], 'status',
+													'question')
 												// response.data.data[i].status='question'
-												if (response.data.data[i].desc == '总经理助理审核') {
-													response.data.data[i].operatorTitle = '总助'
-												} else if (response.data.data[i].desc == '杜大光审核') {
-													response.data.data[i].operatorTitle = '大光'
+												if (response.data.data[i].desc ==
+													'总经理助理审核') {
+													response.data.data[i].operatorTitle =
+														'总助'
+												} else if (response.data.data[i].desc ==
+													'杜大光审核') {
+													response.data.data[i].operatorTitle =
+														'大光'
 												} else {
-													response.data.data[i].operatorTitle = response.data
+													response.data.data[i].operatorTitle =
+														response.data
 														.data[i].desc.substring(0, 2)
 												}
-							
-												response.data.data[i].operatorName = response.data
+
+												response.data.data[i].operatorName =
+													response.data
 													.data[i].desc
-												var time1 = new Date(response.data.data[i].updateDate)
+												var time1 = new Date(response.data.data[i]
+														.updateDate)
 													.getTime()
-												response.data.data[i].updateDate = this.$u.timeFormat(
-													time1, 'mm.dd hh:MM')
+												response.data.data[i].updateDate = this.$u
+													.timeFormat(
+														time1, 'mm.dd hh:MM')
 												response.data.data[i].auditMind = ''
 											}
 										}
-							
+
 									}
 									console.log(response.data.data)
-									if(response.data.data.length == 0 ){
+									if (response.data.data.length == 0) {
 										this.auditCheck = "success"
 									}
-									for(let i = 0 ;i<response.data.data.length;i++){
-										if(response.data.data[i].status == "error"){
+									for (let i = 0; i < response.data.data.length; i++) {
+										if (response.data.data[i].status == "error") {
 											this.auditCheck = "error"
 											break;
-										}else if(response.data.data[i].status == "question"){
+										} else if (response.data.data[i].status ==
+											"question") {
 											this.auditCheck = "question"
 											break;
-										}else{ 
+										} else {
 											this.auditCheck = "success"
 										}
 									}
@@ -644,7 +644,8 @@
 									var time2 = new Date(this.list.createDate).getTime()
 									var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
 									this.auditList.unshift({
-										operatorTitle: this.list.creater.substring(0, 2),
+										operatorTitle: this.list.creater.substring(
+											0, 2),
 										operatorName: this.list.creater,
 										updateDate: time3,
 										auditMind: '',
@@ -656,7 +657,7 @@
 										status: 'success'
 									})
 								})
-							})	
+							})
 						})
 					}
 				})
@@ -687,7 +688,7 @@
 				that.$api.doRequest('post', '/newWorkflow/api/handle', {
 					taskId: that.list.taskId,
 					approved: false,
-					auditMind: info?info:"",
+					auditMind: info ? info : "",
 					needReapply: true,
 				}).then(res => {
 					that.$api.msg('驳回成功')
@@ -704,7 +705,7 @@
 			},
 			close() {
 				this.show = false
-				this.fileUrl = []//清除审核附件
+				this.fileUrl = [] //清除审核附件
 			},
 			pass() {
 				this.show = true
@@ -731,7 +732,7 @@
 					that.$api.doRequest('post', '/newWorkflow/api/handle', {
 						taskId: that.list.taskId,
 						approved: true,
-						auditMind: info?info:"",
+						auditMind: info ? info : "",
 						needReapply: true,
 					}).then(res => {
 						that.$api.msg('通过成功')
@@ -784,7 +785,7 @@
 		background: #fff;
 		border-radius: 10px;
 		padding: 30rpx 10px;
-	
+
 		.u-form-item {
 			line-height: 30px;
 			padding: 0px 0;
@@ -917,7 +918,7 @@
 		background: rgba(0, 0, 0, 0.4);
 		z-index: 3;
 		overflow-y: scroll;
-	
+
 		.wrap {
 			position: absolute;
 			left: 0;
@@ -930,10 +931,12 @@
 			height: 770rpx;
 			// overflow: hidden;
 			border-radius: 20rpx;
-			.content{
-				height:600rpx;
+
+			.content {
+				height: 600rpx;
 				overflow-y: scroll;
 			}
+
 			.alert-top {
 				padding: 33rpx;
 				display: flex;
@@ -941,21 +944,21 @@
 				align-items: center;
 				position: relative;
 			}
-	
+
 			.title {
 				font-size: 32rpx;
 				font-weight: 600;
 				color: #333333;
 			}
-	
+
 			.close {
 				position: absolute;
 				right: 33rpx;
 			}
-	
+
 			.upload_css {
 				margin-left: 20rpx;
-	
+
 				.upload {
 					// width: 80px;
 					// height: 80px;
@@ -963,12 +966,12 @@
 			}
 		}
 	}
-	
+
 	.audit_btn {
 		display: flex;
 		top: 0px;
 	}
-	
+
 	.cancel,
 	.confirm {
 		// position: absolute;
@@ -981,12 +984,13 @@
 		font-size: 34rpx;
 		margin: auto;
 	}
-	
+
 	.cancel {
 		left: 0;
 		border-right: 1px solid #eee;
 		color: #AFB3BF;
 	}
+
 	.confirm {
 		right: 0;
 		color: #22C572;
@@ -999,6 +1003,7 @@
 		text-align: right;
 		color: #333333;
 	}
+
 	.textarea {
 		margin: 15rpx auto;
 		width: 100%;
@@ -1016,11 +1021,13 @@
 		border: 1px solid #EEEEEE;
 		padding: 10rpx 20rpx;
 		position: relative;
-		height:280rpx;
+		height: 280rpx;
 		overflow: scroll;
-		/deep/.uni-textarea-textarea{
+
+		/deep/.uni-textarea-textarea {
 			width: 80%;
 		}
+
 		.right-bottom {
 			position: absolute;
 			right: 20rpx;
@@ -1034,17 +1041,17 @@
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		padding: 20rpx;
-	
+
 		.row {
 			display: flex;
-	
+
 			.left {
 				display: flex;
 				align-items: center;
-	
+
 				.item1 {
 					position: relative;
-	
+
 					.item-content {
 						background: #617AE0;
 						width: 44px;
@@ -1055,7 +1062,7 @@
 						font-size: 15px;
 						color: #fff;
 					}
-	
+
 					.status {
 						position: absolute;
 						border-radius: 50%;
@@ -1064,27 +1071,27 @@
 						bottom: -3px;
 						background: #fff;
 					}
-	
+
 					.status.success {
 						border: 1px solid rgb(60, 156, 255);
 					}
-	
+
 					.status.error {
 						border: 1px solid rgb(245, 108, 108);
 					}
-	
+
 					.status.question {
 						border: 1px solid #f9ae3d;
 					}
 				}
-	
+
 			}
-	
+
 			.right {
 				width: 80%;
 				// color: #B0B1B5;
 				margin-top: 10px;
-	
+
 				.right-content {
 					background: #F2F3F7;
 					margin-left: 10px;
@@ -1093,48 +1100,49 @@
 					border-radius: 5px;
 					color: #B0B1B5;
 				}
-	
+
 				.right-item {
 					display: flex;
 					justify-content: space-between;
-	
+
 					.time {
 						color: #999;
 					}
-	
+
 					.item2 {
 						margin-left: 20rpx;
 						margin-top: -7px;
-	
+
 						.name {
 							font-size: 28rpx;
 							font-weight: 800;
 							margin-bottom: 4px;
 						}
-	
+
 						.status.success {
 							color: #6CC48C;
 						}
-	
+
 						.status.error {
 							color: rgb(245, 108, 108);
 						}
-	
+
 						.status.question {
 							color: #f9ae3d;
 						}
 					}
 				}
+
 				.audit_img {
 					flex-wrap: wrap;
 					margin: 0 20rpx;
-				
+
 					.url_css {
 						// border: 1px solid #999999;
 						border-radius: 10px;
 						margin-top: 10px;
 						margin-right: 10px;
-				
+
 						.url_img {
 							width: 66px;
 							height: 66px;
@@ -1144,10 +1152,10 @@
 				}
 			}
 		}
-	
+
 		.row2 {
 			display: flex;
-	
+
 			.item-content {
 				background: #22C572;
 				width: 30px;
@@ -1160,22 +1168,22 @@
 				padding: 0 2px;
 				margin: 0 auto;
 			}
-	
+
 			.status {
 				position: absolute;
 				top: 0;
 				right: 0;
 			}
 		}
-	
+
 		.row-line {
 			width: 1px;
 			height: 30px;
 			background: #F2F2F2;
 			margin: 10rpx 50rpx;
-	
+
 		}
-	
+
 		.audit {
 			margin-top: 20rpx;
 		}
@@ -1189,7 +1197,7 @@
 		font-weight: 600;
 	}
 
-	.form_view{
+	.form_view {
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		background: #F9F9FA;
@@ -1205,16 +1213,19 @@
 	.input_css {
 		font-size: 20rpx;
 	}
+
 	.img_item {
 		display: flex;
 		width: 100%;
 		margin: 10px 0;
 		padding: 0 10rpx;
-		.imgsign{
+
+		.imgsign {
 			width: 25px;
 			height: 25px;
 			margin-top: 6px;
 		}
+
 		.char_css {
 			font-size: 28rpx;
 			font-weight: 600;
@@ -1227,19 +1238,21 @@
 			text-overflow: ellipsis;
 			word-break: break-all;
 		}
-		.img_size{
+
+		.img_size {
 			color: #B0B3BF;
 			font-size: 12px;
 			margin-top: 5px;
 		}
-	
+
 		.img_dowload {
 			width: 14%;
 			color: #22C572;
 			text-align: right;
 		}
 	}
-	.headInfo{
+
+	.headInfo {
 		height: 100px;
 		background-color: #FFFFFF;
 		margin-bottom: 20rpx;
@@ -1247,60 +1260,74 @@
 		padding: 30rpx 10px;
 		display: flex;
 		position: relative;
-		.headInfo_left{
+
+		.headInfo_left {
 			width: 10%;
 			line-height: 60px;
 			text-align: center;
 		}
-		.headInfo_middle{
+
+		.headInfo_middle {
 			width: 70%;
 			padding-left: 10px;
 			margin-top: 10px;
 		}
-		.headInfo_right{
+
+		.headInfo_right {
 			width: 20%;
 			line-height: 60px;
-			.char_a{
+
+			.char_a {
 				color: #22C572;
 			}
-			.char_b{
-				 color: #FE6430;
+
+			.char_b {
+				color: #FE6430;
 			}
-			.char_c{
+
+			.char_c {
 				color: #FB2323;
 			}
-			.char_a,.char_b,.char_c{
+
+			.char_a,
+			.char_b,
+			.char_c {
 				font-size: 16px;
 			}
 		}
-		.adopt{
+
+		.adopt {
 			position: absolute;
 			right: 30px;
 			top: 60px;
-			.adopt_img{
+
+			.adopt_img {
 				width: 90px;
 				height: 90px;
 			}
 		}
-		.headInfo_title{
+
+		.headInfo_title {
 			font-size: 19px;
 			color: #333333;
 			font-weight: 600;
 		}
-		.headInfo_No{
+
+		.headInfo_No {
 			color: #878C9C;
 			font-size: 13px;
 			margin-top: 6px;
 		}
 	}
-	/deep/.u-upload .u-list-item{
-		background:#fff;
-		border:1px dashed #ccc;
-		border-radius:10rpx;
-		height:190rpx !important;
-		width:190rpx !important;
-		margin:10rpx;
-		text-align:center;
+
+	/deep/.u-upload .u-list-item {
+		background: #fff;
+		border: 1px dashed #ccc;
+		border-radius: 10rpx;
+		height: 190rpx !important;
+		width: 190rpx !important;
+		margin: 10rpx;
+		text-align: center;
 		display: flex;
 		align-items: center;
 		justify-content: center;

+ 154 - 205
pages/task/audit/charge_against_revenue.vue

@@ -150,22 +150,19 @@
 					<view class="" v-for='(item,index) in imglist2'>
 						<view class="img_item">
 							<view class="" style="width: 16%;">
-								<image
-									v-if="item.type == 'pdf'"
-									class="imgsign" src="../../../static/img/oa_office/pdf3.png"
-									mode=""></image>
-								<image v-else-if="item.type == 'xls'||item.type == 'xlsx'"
-									class="imgsign" src="../../../static/img/oa_office/excle3.png"
-									mode=""></image>
-								<image v-else-if="item.type == 'doc'||item.type == 'docx'"
-									class="imgsign" src="../../../static/img/oa_office/word3.png"
-									mode=""></image>
-								<image v-else class="imgsign"
-									src="../../../static/img/oa_office/img.png" mode=""></image>
+								<image v-if="item.type == 'pdf'" class="imgsign"
+									src="../../../static/img/oa_office/pdf3.png" mode=""></image>
+								<image v-else-if="item.type == 'xls'||item.type == 'xlsx'" class="imgsign"
+									src="../../../static/img/oa_office/excle3.png" mode=""></image>
+								<image v-else-if="item.type == 'doc'||item.type == 'docx'" class="imgsign"
+									src="../../../static/img/oa_office/word3.png" mode=""></image>
+								<image v-else class="imgsign" src="../../../static/img/oa_office/img.png" mode="">
+								</image>
 							</view>
 							<view class="" style="width: 70%;">
 								<view class="char_css">{{item.appendixName}}</view>
-								<u-line-progress v-if='item.progressstatus' :striped="true" :percent="item.progress" :striped-active="true"></u-line-progress>
+								<u-line-progress v-if='item.progressstatus' :striped="true" :percent="item.progress"
+									:striped-active="true"></u-line-progress>
 								<view class="img_size">{{item.appendixSize}}</view>
 							</view>
 							<view class="img_dowload" @click="openDocument(item)">下载</view>
@@ -186,80 +183,7 @@
 				<text class="text_css">明细.xls</text>
 			</view>
 		</view>
-		<view class="content2">
-			<view class="title row">
-				流程
-			</view>
-			<view v-for="(item,index) in auditList" :key='index' class="audit">
-				<view class="row">
-					<view class="left">
-						<view class="item1">
-							<view class="item-content">{{item.operatorTitle}}</view>
-							<view v-if="item.status=='success'" class='status success'>
-								<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-							</view>
-							<view v-if="item.status=='error'" class='status error'>
-								<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-							</view>
-							<view v-if="item.status=='question'" class='status question'>
-								<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-							</view>
-						</view>
-					</view>
-					<view class="right">
-						<view class="right-item">
-							<view class="item2">
-								<view class="name">{{item.desc}}
-								</view>
-								<!-- <view class='time'>{{item.updateDate}}</view> -->
-								<view v-if="item.status=='success'" class="status success">
-									{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-										v-if='!item.commonStaffs1&&index!=0'>已审核</text>
-								</view>
-								<view v-if="item.status=='error'" class="status error">
-									{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-										v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
-								</view>
-								<view v-if="item.status=='question'" class="status question">
-									{{item.commonStaffs1?item.staffscontent:''}}<text
-										v-if='!item.commonStaffs1'>未审核</text>
-								</view>
-								<!-- <view  class="status success">吕波(已审核)</view> -->
-
-							</view>
-							<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
-								class='time'>
-								{{item.updateDate}}
-							</view>
-						</view>
-						<view v-if='item.auditMind' class="right-content">
-							{{item.auditMind}}
-						</view>
-						<view class="flex audit_img">
-							<view v-for="(items,indexs) in item.fileUrl" class="url_css">
-								<image :src="items" mode='aspectFill' class="url_img" @click="auditFile(items)"></image>
-							</view>
-						</view>
-					</view>
-					<view v-if='item.commonStaffs1' class="right">
-						<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
-						</u-icon>
-					</view>
-				</view>
-				<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-					<view class='row2'>
-						<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-							<view class="item-content">
-								<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-								<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-							</view>
-							<view class="name">{{item1.staffName}}</view>
-						</view>
-					</view>
-				</view>
-				<view class="row-line" v-if="index!= auditList.length - 1"></view>
-			</view>
-		</view>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view v-if='show' class="shade">
 			<view class="wrap">
 				<view class="alert-top">
@@ -273,8 +197,8 @@
 						<view class="right-bottom">
 							{{auditMind.length}}/1000个字
 						</view>
-						<u-input :clearable='false' class="" v-model='auditMind' placeholder="请在此输入审核意见" type="textarea" height="240"
-							maxlength="1000" />
+						<u-input :clearable='false' class="" v-model='auditMind' placeholder="请在此输入审核意见" type="textarea"
+							height="240" maxlength="1000" />
 					</view>
 					<view class="upload_css">
 						上传附件
@@ -286,20 +210,22 @@
 						<u-upload :custom-btn='true' class="upload" ref="upload" name='fileName' :form-data="{companyId: pcUserInfo.compId,
 								modelId: '',
 								vesselId: ''}" :action="action" :show-tips="false" :max-size="maxSize" :max-count="9"
-						:size-type="['compressed']" @on-success="getImgUrl($event)" @on-error="onError"
-						@on-remove="onRemove" @on-uploaded="isAdd = true" :limitType ="['png', 'jpg', 'jpeg', 'webp', 'gif']"
-						@on-progress="onProgress">
-						<view slot="addBtn" class="slot-btn u-list-item" hover-class="slot-btn__hover" hover-stay-time="150">
-								<image style="width:23px;height:23px;" src="../../../static/img/liangmai/xiangji-2.png" mode=""></image>
+							:size-type="['compressed']" @on-success="getImgUrl($event)" @on-error="onError"
+							@on-remove="onRemove" @on-uploaded="isAdd = true"
+							:limitType="['png', 'jpg', 'jpeg', 'webp', 'gif']" @on-progress="onProgress">
+							<view slot="addBtn" class="slot-btn u-list-item" hover-class="slot-btn__hover"
+								hover-stay-time="150">
+								<image style="width:23px;height:23px;" src="../../../static/img/liangmai/xiangji-2.png"
+									mode=""></image>
 								<view>选择图片</view>
 							</view>
 						</u-upload>
 					</view>
 				</view>
-				
+
 				<view class="audit_btn">
-				<view @click='close()' class="cancel">取消</view>
-				<view @click='passSubmit()' class="confirm">确定</view>
+					<view @click='close()' class="cancel">取消</view>
+					<view @click='passSubmit()' class="confirm">确定</view>
 				</view>
 			</view>
 		</view>
@@ -314,12 +240,14 @@
 <script>
 	import helper from '@/common/helper.js';
 	import upload from '@/components/upload.vue';
+	import flow from '@/components/flow.vue';
 	import {
 		mapState
 	} from 'vuex';
 	export default {
 		components: {
 			upload,
+			flow
 		},
 		data() {
 			return {
@@ -339,8 +267,8 @@
 				updateDate: "",
 				warehouseName: "",
 				everyCheck: '',
-				detialData:{
-                   id:'',
+				detialData: {
+					id: '',
 				},
 				auditInfo: {
 					srcList: []
@@ -352,7 +280,7 @@
 				imglist2: [],
 				// 上传附件、
 				action: this.$uploadUrl,
-				pcUserInfo :uni.getStorageSync('pcUserInfo'),
+				pcUserInfo: uni.getStorageSync('pcUserInfo'),
 				maxSize: 50 * 1024 * 1024, //限制文件大小 50M
 				isAdd: true,
 				fileUrl: []
@@ -387,11 +315,11 @@
 					}).then(res => {
 						this.imglist2 = res.data.data
 						for (let i = 0; i < this.imglist2.length; i++) {
-							that.imglist2[i].progressstatus=false
-							that.imglist2[i].progress=0
-							if (this.imglist2[i].appendixName) {//获取文件的后缀名
-								let index = that.imglist2[i].appendixName.lastIndexOf(".")//获取最后出现.的下标
-								that.imglist2[i].type = that.imglist2[i].appendixName.substring(index+1)
+							that.imglist2[i].progressstatus = false
+							that.imglist2[i].progress = 0
+							if (this.imglist2[i].appendixName) { //获取文件的后缀名
+								let index = that.imglist2[i].appendixName.lastIndexOf(".") //获取最后出现.的下标
+								that.imglist2[i].type = that.imglist2[i].appendixName.substring(index + 1)
 								// this.imglist2[i].type = this.imglist2[i].appendixName.split(".")[1]
 							}
 						}
@@ -401,6 +329,9 @@
 			}
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			auditFile(src) {
 				uni.downloadFile({
 					url: src,
@@ -431,41 +362,42 @@
 				this.fileUrl.splice(index, 1)
 			},
 			openDocument(item) {
-							this.$set(item,'progressstatus',true)
-							this.$forceUpdate()
-							const downloadTask =uni.downloadFile({
-								url: item.appendixPath,
+				this.$set(item, 'progressstatus', true)
+				this.$forceUpdate()
+				const downloadTask = uni.downloadFile({
+					url: item.appendixPath,
+					success: function(res) {
+						var filePath = res.tempFilePath;
+						if (item.type == 'pdf' || item.type == 'xls' || item.type == 'xlsx' || item.type ==
+							'doc' || item.type == 'docx') {
+							uni.openDocument({
+								filePath: filePath,
+								showMenu: true,
 								success: function(res) {
-									var filePath = res.tempFilePath;
-									if(item.type=='pdf'||item.type == 'xls'||item.type == 'xlsx'||item.type == 'doc'||item.type == 'docx'){
-										uni.openDocument({
-											filePath: filePath,
-											showMenu: true,
-											success: function(res) {
-												console.log('打开文档成功');
-											}
-										});
-									}else{
-										uni.previewImage({
-											current: 0, //预览图片的下标
-											urls: [item.appendixPath]
-										})
-									}
-									
+									console.log('打开文档成功');
 								}
 							});
-							downloadTask.onProgressUpdate((res) => {
-								this.$set(item,'progress',res.progress)
-								this.$forceUpdate()
-								console.log('下载进度' + res.progress);
-								console.log('已经下载的数据长度' + res.totalBytesWritten);
-								console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
-								// 满足测试条件,取消下载任务。
-								// if (res.progress > 50) {
-								// 	downloadTask.abort();
-								// }
-							});
-						},
+						} else {
+							uni.previewImage({
+								current: 0, //预览图片的下标
+								urls: [item.appendixPath]
+							})
+						}
+
+					}
+				});
+				downloadTask.onProgressUpdate((res) => {
+					this.$set(item, 'progress', res.progress)
+					this.$forceUpdate()
+					console.log('下载进度' + res.progress);
+					console.log('已经下载的数据长度' + res.totalBytesWritten);
+					console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
+					// 满足测试条件,取消下载任务。
+					// if (res.progress > 50) {
+					// 	downloadTask.abort();
+					// }
+				});
+			},
 			previewImageFn(index) {
 				/* 预览图片 */
 				uni.previewImage({
@@ -530,7 +462,7 @@
 				}
 			},
 			getList() {
-				var that =this
+				var that = this
 				that.detialData.id = this.id
 				uni.showLoading({
 					title: "加载中...",
@@ -561,7 +493,7 @@
 				// 	}
 				// })
 				this.$api.doRequest('post', '/expenseInfo/exportPhone', {
-					id:this.id
+					id: this.id
 				}).then(res1 => {
 					if (res1.data.code == 200) {
 						this.url = res1.data.data
@@ -582,8 +514,8 @@
 						}
 						this.auditInfo.amountIngPayableTotal1 = helper.convertCurrency(this.auditInfo
 							.amountIngPayableTotal)
-						if((this.auditInfo.status == '已收款' && this.vesselId == '点击切换任务状态') 
-						|| (this.auditInfo.status == '待付款' && this.vesselId == '点击切换任务状态')){
+						if ((this.auditInfo.status == '已收款' && this.vesselId == '点击切换任务状态') ||
+							(this.auditInfo.status == '待付款' && this.vesselId == '点击切换任务状态')) {
 							this.$api.doRequest('post', '/expenseInfo/editCollectionStatus',
 								that.detialData).then(res1 => {
 								if (res1.data.code == 200) {
@@ -591,7 +523,7 @@
 									setTimeout(function() {
 										uni.navigateBack();
 									}, 2000);
-								}else{
+								} else {
 									return
 								}
 							})
@@ -603,7 +535,8 @@
 							this.$api.doRequest('get', '/commonUser/getHis', {
 								workflowId: res1.data.data[0].id,
 								businessKey: this.id,
-								branch:that.auditInfo.jointVentureParties?that.auditInfo.jointVentureParties:'zt'
+								branch: that.auditInfo.jointVentureParties ? that.auditInfo
+									.jointVentureParties : 'zt'
 							}).then(response => {
 								uni.hideLoading()
 								for (let i = 0; i < response.data.data.length; i++) {
@@ -676,11 +609,19 @@
 											// response.data.data[i].auditMind = response.data.data[i]
 											// 	.workflowHistoricTasks[len].auditMind
 											// 显示附件和审核意见
-											if (response.data.data[i].workflowHistoricTasks[len].auditMind && response.data.data[i].workflowHistoricTasks[len].auditMind.indexOf("##") !=-1) {
-												response.data.data[i].auditMind = response.data.data[i].workflowHistoricTasks[len].auditMind.split("##")[0]
-												response.data.data[i].fileUrl = response.data.data[i].workflowHistoricTasks[len].auditMind.split("##")[1].split(",")
-											}else{
-												response.data.data[i].auditMind = response.data.data[i].workflowHistoricTasks[len].auditMind
+											if (response.data.data[i].workflowHistoricTasks[len]
+												.auditMind && response.data.data[i]
+												.workflowHistoricTasks[len].auditMind.indexOf(
+													"##") != -1) {
+												response.data.data[i].auditMind = response.data
+													.data[i].workflowHistoricTasks[len].auditMind
+													.split("##")[0]
+												response.data.data[i].fileUrl = response.data.data[
+														i].workflowHistoricTasks[len].auditMind
+													.split("##")[1].split(",")
+											} else {
+												response.data.data[i].auditMind = response.data
+													.data[i].workflowHistoricTasks[len].auditMind
 											}
 										} else {
 											this.$set(response.data.data[i], 'status', 'question')
@@ -795,10 +736,10 @@
 									})
 									var count = 0
 									// for (let num = 0; num < that.List.length; num++) {
-										var info = that.auditMind
-										if (that.fileUrl.length > 0) {
-											info = that.auditMind + "##" + that.fileUrl.toString()
-										}
+									var info = that.auditMind
+									if (that.fileUrl.length > 0) {
+										info = that.auditMind + "##" + that.fileUrl.toString()
+									}
 									that.$api.doRequest('post', '/newWorkflow/api/handle', {
 										taskId: that.auditInfo.taskId,
 										approved: false,
@@ -807,12 +748,12 @@
 									}).then(res => {
 										// count++
 										// if (count == that.List.length) {
-											uni.hideLoading()
-											that.$api.msg('驳回成功!')
-											console.log('驳回成功!')
-											setTimeout(function() {
-												uni.navigateBack();
-											}, 2000);
+										uni.hideLoading()
+										that.$api.msg('驳回成功!')
+										console.log('驳回成功!')
+										setTimeout(function() {
+											uni.navigateBack();
+										}, 2000);
 										// }
 									})
 									// }
@@ -1006,17 +947,17 @@
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		padding: 20rpx;
-	
+
 		.row {
 			display: flex;
-	
+
 			.left {
 				display: flex;
 				align-items: center;
-	
+
 				.item1 {
 					position: relative;
-	
+
 					.item-content {
 						background: #617AE0;
 						width: 44px;
@@ -1027,7 +968,7 @@
 						font-size: 15px;
 						color: #fff;
 					}
-	
+
 					.status {
 						position: absolute;
 						border-radius: 50%;
@@ -1036,27 +977,27 @@
 						bottom: -3px;
 						background: #fff;
 					}
-	
+
 					.status.success {
 						border: 1px solid rgb(60, 156, 255);
 					}
-	
+
 					.status.error {
 						border: 1px solid rgb(245, 108, 108);
 					}
-	
+
 					.status.question {
 						border: 1px solid #f9ae3d;
 					}
 				}
-	
+
 			}
-	
+
 			.right {
 				width: 80%;
 				// color: #B0B1B5;
 				margin-top: 10px;
-	
+
 				.right-content {
 					background: #F2F3F7;
 					margin-left: 10px;
@@ -1065,43 +1006,44 @@
 					border-radius: 5px;
 					color: #B0B1B5;
 				}
-	
+
 				.right-item {
 					display: flex;
 					justify-content: space-between;
-	
+
 					.time {
 						color: #999;
 					}
-	
+
 					.item2 {
 						margin-left: 20rpx;
 						margin-top: -7px;
-	
+
 						.name {
 							font-size: 28rpx;
 							font-weight: 800;
 							margin-bottom: 4px;
 						}
-	
+
 						.status.success {
 							color: #6CC48C;
 						}
-	
+
 						.status.error {
 							color: rgb(245, 108, 108);
 						}
-	
+
 						.status.question {
 							color: #f9ae3d;
 						}
 					}
 				}
+
 				.audit_img {
 					flex-wrap: wrap;
 					// margin: 0 10rpx;
 					margin-left: 20rpx;
-				
+
 					.url_css {
 						border: 1px solid #999999;
 						border-radius: 10px;
@@ -1110,7 +1052,7 @@
 						overflow: hidden;
 						width: 73px;
 						height: 73px;
-				
+
 						.url_img {
 							width: 73px;
 							height: 73px;
@@ -1120,10 +1062,10 @@
 				}
 			}
 		}
-	
+
 		.row2 {
 			display: flex;
-	
+
 			.item-content {
 				background: #22C572;
 				width: 30px;
@@ -1136,26 +1078,27 @@
 				padding: 0 2px;
 				margin: 0 auto;
 			}
-	
+
 			.status {
 				position: absolute;
 				top: 0;
 				right: 0;
 			}
 		}
-	
+
 		.row-line {
 			width: 1px;
 			height: 30px;
 			background: #F2F2F2;
 			margin: 10rpx 50rpx;
-	
+
 		}
-	
+
 		.audit {
 			margin-top: 20rpx;
 		}
 	}
+
 	.bottom-btn {
 		width: 100%;
 		position: fixed;
@@ -1223,7 +1166,7 @@
 		background: rgba(0, 0, 0, 0.4);
 		z-index: 3;
 		overflow-y: scroll;
-	
+
 		.wrap {
 			position: absolute;
 			left: 0;
@@ -1236,10 +1179,12 @@
 			height: 780rpx;
 			// overflow: hidden;
 			border-radius: 20rpx;
-			.content{
-				height:600rpx;
+
+			.content {
+				height: 600rpx;
 				overflow-y: scroll;
 			}
+
 			.alert-top {
 				padding: 33rpx;
 				display: flex;
@@ -1247,21 +1192,21 @@
 				align-items: center;
 				position: relative;
 			}
-	
+
 			.title {
 				font-size: 32rpx;
 				font-weight: 600;
 				color: #333333;
 			}
-	
+
 			.close {
 				position: absolute;
 				right: 33rpx;
 			}
-	
+
 			.upload_css {
 				margin-left: 20rpx;
-	
+
 				.upload {
 					// width: 80px;
 					// height: 80px;
@@ -1269,12 +1214,12 @@
 			}
 		}
 	}
-	
+
 	.audit_btn {
 		display: flex;
 		top: 0px;
 	}
-	
+
 	.cancel,
 	.confirm {
 		// position: absolute;
@@ -1287,7 +1232,7 @@
 		font-size: 34rpx;
 		margin: auto;
 	}
-	
+
 	.cancel {
 		left: 0;
 		border-right: 1px solid #eee;
@@ -1342,11 +1287,13 @@
 		width: 100%;
 		margin: 10px 0;
 		padding: 0 10rpx;
-		.imgsign{
+
+		.imgsign {
 			width: 25px;
 			height: 25px;
 			margin-top: 6px;
 		}
+
 		.char_css {
 			font-size: 28rpx;
 			font-weight: 600;
@@ -1359,26 +1306,28 @@
 			text-overflow: ellipsis;
 			word-break: break-all;
 		}
-		.img_size{
+
+		.img_size {
 			color: #B0B3BF;
 			font-size: 12px;
 			margin-top: 5px;
 		}
-	
+
 		.img_dowload {
 			width: 14%;
 			color: #22C572;
 			text-align: right;
 		}
 	}
-	/deep/.u-upload .u-list-item{
-		background:#fff;
-		border:1px dashed #ccc;
-		border-radius:10rpx;
-		height:190rpx !important;
-		width:190rpx !important;
-		margin:10rpx;
-		text-align:center;
+
+	/deep/.u-upload .u-list-item {
+		background: #fff;
+		border: 1px dashed #ccc;
+		border-radius: 10rpx;
+		height: 190rpx !important;
+		width: 190rpx !important;
+		margin: 10rpx;
+		text-align: center;
 		display: flex;
 		align-items: center;
 		justify-content: center;

+ 203 - 218
pages/task/audit/charge_against_revenue_detail.vue

@@ -150,28 +150,25 @@
 					<view class="" v-for='(item,index) in imglist2'>
 						<view class="img_item">
 							<view class="" style="width: 16%;">
-								<image
-									v-if="item.type == 'pdf'"
-									class="imgsign" src="../../../static/img/oa_office/pdf3.png"
-									mode=""></image>
-								<image v-else-if="item.type == 'xls'||item.type == 'xlsx'"
-									class="imgsign" src="../../../static/img/oa_office/excle3.png"
-									mode=""></image>
-								<image v-else-if="item.type == 'doc'||item.type == 'docx'"
-									class="imgsign" src="../../../static/img/oa_office/word3.png"
-									mode=""></image>
-								<image v-else class="imgsign"
-									src="../../../static/img/oa_office/img.png" mode=""></image>
+								<image v-if="item.type == 'pdf'" class="imgsign"
+									src="../../../static/img/oa_office/pdf3.png" mode=""></image>
+								<image v-else-if="item.type == 'xls'||item.type == 'xlsx'" class="imgsign"
+									src="../../../static/img/oa_office/excle3.png" mode=""></image>
+								<image v-else-if="item.type == 'doc'||item.type == 'docx'" class="imgsign"
+									src="../../../static/img/oa_office/word3.png" mode=""></image>
+								<image v-else class="imgsign" src="../../../static/img/oa_office/img.png" mode="">
+								</image>
 							</view>
 							<view style='justify-content: space-between;width: 81%;' class="flex">
 								<view>
 									<view class="char_css">{{item.appendixName}}</view>
-									<u-line-progress v-if='item.progressstatus' :striped="true" :percent="item.progress" :striped-active="true"></u-line-progress>
+									<u-line-progress v-if='item.progressstatus' :striped="true" :percent="item.progress"
+										:striped-active="true"></u-line-progress>
 									<view class="img_size">{{item.appendixSize}}</view>
 								</view>
 								<view class="img_dowload" @click="openDocument(item)">下载</view>
 							</view>
-							
+
 						</view>
 					</view>
 				</view>
@@ -189,69 +186,7 @@
 				<text class="text_css">明细.xls</text>
 			</view>
 		</view>
-		<view class="content2">
-			<view class="title row">
-				流程
-			</view>
-			<view v-for="(item,index) in auditList" :key='index' class="audit">
-				<view class="row">
-					<view class="left">
-						<view class="item1">
-							<view class="item-content">{{item.operatorTitle}}</view> 
-							<view v-if="item.status=='success'" class='status success'>
-								<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-							</view>
-							<view v-if="item.status=='error'" class='status error'>
-								<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-							</view>
-							<view  v-if="item.status=='question'" class='status question'>
-								<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-							</view>
-						</view>
-					</view>
-					<view class="right">
-						<view class="right-item">
-							<view class="item2">
-								<view class="name">{{item.desc}}
-								</view>
-								<!-- <view class='time'>{{item.updateDate}}</view> -->
-								<view  v-if="item.status=='success'" class="status success">{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text v-if='!item.commonStaffs1&&index!=0'>已审核</text></view>
-								<view  v-if="item.status=='error'" class="status error">{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text></view>
-								<view  v-if="item.status=='question'" class="status question">{{item.commonStaffs1?item.staffscontent:''}}<text v-if='!item.commonStaffs1'>未审核</text></view>
-								<!-- <view  class="status success">吕波(已审核)</view> -->
-								
-							</view>
-							<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0' class='time'>
-							{{item.updateDate}}
-							</view>
-						</view>
-						<view v-if='item.auditMind' class="right-content">
-							{{item.auditMind}}
-						</view>
-						<view class="flex audit_img">
-							<view v-for="(items,indexs) in item.fileUrl" class="url_css">
-								<image :src="items" mode='aspectFill' class="url_img" @click="auditFile(items)"></image>
-							</view>
-						</view>
-					</view>
-					<view v-if='item.commonStaffs1' class="right">
-						<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'"  size="28"></u-icon>
-					</view>
-				</view>
-				<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-					<view class='row2'>
-						<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-							<view class="item-content">
-								<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-								<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-							</view> 
-							<view class="name">{{item1.staffName}}</view> 
-						</view>
-					</view>
-				</view>
-				<view class="row-line" v-if="index!= auditList.length - 1"></view>
-			</view>
-		</view>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<u-toast ref="uToast" />
 		<view style='padding:10px;' class='flex bottom-btn'>
 			<u-button @click='fanhui' type="success" class="btn2">返回</u-button>
@@ -260,11 +195,15 @@
 </template>
 
 <script>
+	import flow from '@/components/flow.vue';
 	import helper from '@/common/helper.js';
 	import {
 		mapState
 	} from 'vuex';
 	export default {
+		components: {
+			flow
+		},
 		data() {
 			return {
 				src: '../../../static/img/myimg/LiangShang@2x.png',
@@ -321,11 +260,11 @@
 					}).then(res => {
 						this.imglist2 = res.data.data
 						for (let i = 0; i < this.imglist2.length; i++) {
-							that.imglist2[i].progressstatus=false
-							that.imglist2[i].progress=0
+							that.imglist2[i].progressstatus = false
+							that.imglist2[i].progress = 0
 							if (this.imglist2[i].appendixName) {
-								let index = this.imglist2[i].appendixName.lastIndexOf(".")//获取最后出现.的下标
-								this.imglist2[i].type = this.imglist2[i].appendixName.substring(index+1)
+								let index = this.imglist2[i].appendixName.lastIndexOf(".") //获取最后出现.的下标
+								this.imglist2[i].type = this.imglist2[i].appendixName.substring(index + 1)
 								// this.imglist2[i].type = this.imglist2[i].appendixName.split(".")[1]
 							}
 						}
@@ -335,6 +274,9 @@
 			}
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			auditFile(src) {
 				uni.downloadFile({
 					url: src,
@@ -397,13 +339,14 @@
 				});
 			},
 			openDocument(item) {
-				this.$set(item,'progressstatus',true)
+				this.$set(item, 'progressstatus', true)
 				this.$forceUpdate()
-				const downloadTask =uni.downloadFile({
+				const downloadTask = uni.downloadFile({
 					url: item.appendixPath,
 					success: function(res) {
 						var filePath = res.tempFilePath;
-						if(item.type=='pdf'||item.type == 'xls'||item.type == 'xlsx'||item.type == 'doc'||item.type == 'docx'){
+						if (item.type == 'pdf' || item.type == 'xls' || item.type == 'xlsx' || item.type ==
+							'doc' || item.type == 'docx') {
 							uni.openDocument({
 								filePath: filePath,
 								showMenu: true,
@@ -411,21 +354,21 @@
 									console.log('打开文档成功');
 								}
 							});
-						}else{
+						} else {
 							uni.previewImage({
 								current: 0, //预览图片的下标
 								urls: [item.appendixPath]
 							})
-							}
 						}
-					});
-					downloadTask.onProgressUpdate((res) => {
-						this.$set(item,'progress',res.progress)
-						this.$forceUpdate()
-						console.log('下载进度' + res.progress);
-						console.log('已经下载的数据长度' + res.totalBytesWritten);
-						console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
-					});
+					}
+				});
+				downloadTask.onProgressUpdate((res) => {
+					this.$set(item, 'progress', res.progress)
+					this.$forceUpdate()
+					console.log('下载进度' + res.progress);
+					console.log('已经下载的数据长度' + res.totalBytesWritten);
+					console.log('预期需要下载的数据总长度' + res.totalBytesExpectedToWrite);
+				});
 			},
 			openXls() {
 				if (this.url && this.url != "ng") {
@@ -445,7 +388,7 @@
 				}
 			},
 			getList() {
-				var that =this
+				var that = this
 				uni.showLoading({
 					title: "加载中...",
 					mask: true
@@ -495,105 +438,143 @@
 						}
 						this.auditInfo.amountIngPayableTotal1 = helper.convertCurrency(this.auditInfo
 							.amountIngPayableTotal)
-					this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
-						businessCode: 'FEIYONGGUANLI-APPROVE',
-						tmpCompId: uni.getStorageSync('pcUserInfo').compId
-					}).then(res1 => {
-						this.$api.doRequest('get', '/commonUser/getHis', {
-							workflowId: res1.data.data[0].id,
-							businessKey: this.id,
-							branch:that.auditInfo.jointVentureParties?that.auditInfo.jointVentureParties:'zt'
-						}).then(response => {
-							uni.hideLoading()
-							for (let i = 0; i < response.data.data.length; i++) {
-								this.$set(response.data.data[i],'status','question')
-								console.log(response.data.data[i].workflowHistoricTasks,i)
-								if(response.data.data[i].commonStaffs){
-									response.data.data[i].showflow=false
-									response.data.data[i].operatorTitle=response.data.data[i].desc.substring(0,2)
-									response.data.data[i].operatorName=response.data.data[i].desc
-									response.data.data[i].staffscontent='共'+response.data.data[i].commonStaffs.length+'人,当前审核'+response.data.data[i].workflowHistoricTasks.length+'人'
-									if(response.data.data[i].workflowHistoricTasks&&response.data.data[i].workflowHistoricTasks.length>0){
-										if(response.data.data[i].workflowHistoricTasks.length!=response.data.data[i].commonStaffs.length){
-											// response.data.data[i].status='question'
-											this.$set(response.data.data[i],'status','question')
-										}else{
-											this.$set(response.data.data[i],'status','success')
-											// response.data.data[i].status='success'
-										}
-										response.data.data[i].workflowlen=response.data.data[i].workflowHistoricTasks.length
-										var workflowdata=response.data.data[i].workflowHistoricTasks
-										var staffsdata=response.data.data[i].commonStaffs
-										for (let q = 0; q < staffsdata.length; q++) {
-											staffsdata[q].status=false
-											staffsdata[q].staffTitle=staffsdata[q].staffName
-											for (let k = 0; k < workflowdata.length; k++) {
-												if(staffsdata[q].staffId==workflowdata[k].operatorId){
-													staffsdata[q].status=true
+						this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
+							businessCode: 'FEIYONGGUANLI-APPROVE',
+							tmpCompId: uni.getStorageSync('pcUserInfo').compId
+						}).then(res1 => {
+							this.$api.doRequest('get', '/commonUser/getHis', {
+								workflowId: res1.data.data[0].id,
+								businessKey: this.id,
+								branch: that.auditInfo.jointVentureParties ? that.auditInfo
+									.jointVentureParties : 'zt'
+							}).then(response => {
+								uni.hideLoading()
+								for (let i = 0; i < response.data.data.length; i++) {
+									this.$set(response.data.data[i], 'status', 'question')
+									console.log(response.data.data[i].workflowHistoricTasks, i)
+									if (response.data.data[i].commonStaffs) {
+										response.data.data[i].showflow = false
+										response.data.data[i].operatorTitle = response.data.data[i]
+											.desc.substring(0, 2)
+										response.data.data[i].operatorName = response.data.data[i]
+											.desc
+										response.data.data[i].staffscontent = '共' + response.data
+											.data[i].commonStaffs.length + '人,当前审核' + response.data
+											.data[i].workflowHistoricTasks.length + '人'
+										if (response.data.data[i].workflowHistoricTasks && response
+											.data.data[i].workflowHistoricTasks.length > 0) {
+											if (response.data.data[i].workflowHistoricTasks
+												.length != response.data.data[i].commonStaffs
+												.length) {
+												// response.data.data[i].status='question'
+												this.$set(response.data.data[i], 'status',
+													'question')
+											} else {
+												this.$set(response.data.data[i], 'status',
+													'success')
+												// response.data.data[i].status='success'
+											}
+											response.data.data[i].workflowlen = response.data.data[
+												i].workflowHistoricTasks.length
+											var workflowdata = response.data.data[i]
+												.workflowHistoricTasks
+											var staffsdata = response.data.data[i].commonStaffs
+											for (let q = 0; q < staffsdata.length; q++) {
+												staffsdata[q].status = false
+												staffsdata[q].staffTitle = staffsdata[q].staffName
+												for (let k = 0; k < workflowdata.length; k++) {
+													if (staffsdata[q].staffId == workflowdata[k]
+														.operatorId) {
+														staffsdata[q].status = true
+													}
 												}
 											}
 										}
-									}
-									response.data.data[i].commonStaffs1=response.data.data[i].commonStaffs
-								}else{
-									if(response.data.data[i].workflowHistoricTasks&&response.data.data[i].workflowHistoricTasks.length>0){
-										var len =response.data.data[i].workflowHistoricTasks.length-1
-										if(response.data.data[i].workflowHistoricTasks[len].approved){
-											this.$set(response.data.data[i],'status','success')
-										}else{
-											this.$set(response.data.data[i],'status','error')
-										}
-										response.data.data[i].operatorTitle=response.data.data[i].workflowHistoricTasks[len].operatorName.substring(response.data.data[i].workflowHistoricTasks[0].operatorName.length - 2)
-										response.data.data[i].operatorName=response.data.data[i].workflowHistoricTasks[len].operatorName
-										var time=new Date(response.data.data[i].workflowHistoricTasks[len].claimTime).getTime()
-										response.data.data[i].updateDate=this.$u.timeFormat(time, 'mm.dd hh:MM')
-										// response.data.data[i].auditMind=response.data.data[i].workflowHistoricTasks[len].auditMind
-										// 显示附件和审核意见
-										if (response.data.data[i].workflowHistoricTasks[len].auditMind && response.data.data[i].workflowHistoricTasks[len].auditMind.indexOf("##") !=-1) {
-											response.data.data[i].auditMind = response.data.data[i].workflowHistoricTasks[len].auditMind.split("##")[0]
-											response.data.data[i].fileUrl = response.data.data[i].workflowHistoricTasks[len].auditMind.split("##")[1].split(",")
-										}else{
-											response.data.data[i].auditMind = response.data.data[i].workflowHistoricTasks[len].auditMind
-										}
-									}else{
-										this.$set(response.data.data[i],'status','question')
-										// response.data.data[i].status='question'
-										if(response.data.data[i].desc=='总经理助理审核'){
-											response.data.data[i].operatorTitle='总助'
-										}else if(response.data.data[i].desc=='杜大光审核'){
-											response.data.data[i].operatorTitle='大光'
-										}else{
-											response.data.data[i].operatorTitle=response.data.data[i].desc.substring(0,2)
+										response.data.data[i].commonStaffs1 = response.data.data[i]
+											.commonStaffs
+									} else {
+										if (response.data.data[i].workflowHistoricTasks && response
+											.data.data[i].workflowHistoricTasks.length > 0) {
+											var len = response.data.data[i].workflowHistoricTasks
+												.length - 1
+											if (response.data.data[i].workflowHistoricTasks[len]
+												.approved) {
+												this.$set(response.data.data[i], 'status',
+													'success')
+											} else {
+												this.$set(response.data.data[i], 'status', 'error')
+											}
+											response.data.data[i].operatorTitle = response.data
+												.data[i].workflowHistoricTasks[len].operatorName
+												.substring(response.data.data[i]
+													.workflowHistoricTasks[0].operatorName.length -
+													2)
+											response.data.data[i].operatorName = response.data
+												.data[i].workflowHistoricTasks[len].operatorName
+											var time = new Date(response.data.data[i]
+													.workflowHistoricTasks[len].claimTime)
+												.getTime()
+											response.data.data[i].updateDate = this.$u.timeFormat(
+												time, 'mm.dd hh:MM')
+											// response.data.data[i].auditMind=response.data.data[i].workflowHistoricTasks[len].auditMind
+											// 显示附件和审核意见
+											if (response.data.data[i].workflowHistoricTasks[len]
+												.auditMind && response.data.data[i]
+												.workflowHistoricTasks[len].auditMind.indexOf(
+													"##") != -1) {
+												response.data.data[i].auditMind = response.data
+													.data[i].workflowHistoricTasks[len].auditMind
+													.split("##")[0]
+												response.data.data[i].fileUrl = response.data.data[
+														i].workflowHistoricTasks[len].auditMind
+													.split("##")[1].split(",")
+											} else {
+												response.data.data[i].auditMind = response.data
+													.data[i].workflowHistoricTasks[len].auditMind
+											}
+										} else {
+											this.$set(response.data.data[i], 'status', 'question')
+											// response.data.data[i].status='question'
+											if (response.data.data[i].desc == '总经理助理审核') {
+												response.data.data[i].operatorTitle = '总助'
+											} else if (response.data.data[i].desc == '杜大光审核') {
+												response.data.data[i].operatorTitle = '大光'
+											} else {
+												response.data.data[i].operatorTitle = response.data
+													.data[i].desc.substring(0, 2)
+											}
+
+											response.data.data[i].operatorName = response.data
+												.data[i].desc
+											var time1 = new Date(response.data.data[i].updateDate)
+												.getTime()
+											response.data.data[i].updateDate = this.$u.timeFormat(
+												time1, 'mm.dd hh:MM')
+											response.data.data[i].auditMind = ''
 										}
-										
-										response.data.data[i].operatorName=response.data.data[i].desc
-										var time1=new Date(response.data.data[i].updateDate).getTime()
-										response.data.data[i].updateDate=this.$u.timeFormat(time1, 'mm.dd hh:MM')
-										response.data.data[i].auditMind=''
 									}
+
 								}
-								
-							}
-							console.log(response.data.data)
-							this.auditList = response.data.data
-							var time2=new Date(this.auditInfo.createDate).getTime()
-							var time3=this.$u.timeFormat(time2, 'mm.dd hh:MM')
-							this.auditList.unshift({
-								operatorTitle:this.auditInfo.creater.substring(0,2),
-								operatorName:this.auditInfo.creater,
-								updateDate:time3,
-								auditMind:'',
-								desc:'发起申请',
-								showflow:false,
-								commonStaffs1:null,
-								commonStaffs:null,
-								workflowHistoricTasks:[],
-								status:'success'
+								console.log(response.data.data)
+								this.auditList = response.data.data
+								var time2 = new Date(this.auditInfo.createDate).getTime()
+								var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
+								this.auditList.unshift({
+									operatorTitle: this.auditInfo.creater.substring(0, 2),
+									operatorName: this.auditInfo.creater,
+									updateDate: time3,
+									auditMind: '',
+									desc: '发起申请',
+									showflow: false,
+									commonStaffs1: null,
+									commonStaffs: null,
+									workflowHistoricTasks: [],
+									status: 'success'
+								})
 							})
 						})
-					})
 					}
-					
+
 				})
 				// this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
 				// 	businessCode: 'FEIYONGGUANLI-APPROVE',
@@ -642,9 +623,9 @@
 			// 		}
 			// 	}
 			// },
-			fanhui(){
+			fanhui() {
 				uni.navigateBack({
-					delta:1
+					delta: 1
 				})
 			},
 			// audit(list, index, status, status2, reason) {
@@ -792,17 +773,17 @@
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		padding: 20rpx;
-	
+
 		.row {
 			display: flex;
-	
+
 			.left {
 				display: flex;
 				align-items: center;
-	
+
 				.item1 {
 					position: relative;
-	
+
 					.item-content {
 						background: #617AE0;
 						width: 44px;
@@ -813,7 +794,7 @@
 						font-size: 15px;
 						color: #fff;
 					}
-	
+
 					.status {
 						position: absolute;
 						border-radius: 50%;
@@ -822,27 +803,27 @@
 						bottom: -3px;
 						background: #fff;
 					}
-	
+
 					.status.success {
 						border: 1px solid rgb(60, 156, 255);
 					}
-	
+
 					.status.error {
 						border: 1px solid rgb(245, 108, 108);
 					}
-	
+
 					.status.question {
 						border: 1px solid #f9ae3d;
 					}
 				}
-	
+
 			}
-	
+
 			.right {
 				width: 80%;
 				// color: #B0B1B5;
 				margin-top: 10px;
-	
+
 				.right-content {
 					background: #F2F3F7;
 					margin-left: 10px;
@@ -851,43 +832,44 @@
 					border-radius: 5px;
 					color: #B0B1B5;
 				}
-	
+
 				.right-item {
 					display: flex;
 					justify-content: space-between;
-	
+
 					.time {
 						color: #999;
 					}
-	
+
 					.item2 {
 						margin-left: 20rpx;
 						margin-top: -7px;
-	
+
 						.name {
 							font-size: 28rpx;
 							font-weight: 800;
 							margin-bottom: 4px;
 						}
-	
+
 						.status.success {
 							color: #6CC48C;
 						}
-	
+
 						.status.error {
 							color: rgb(245, 108, 108);
 						}
-	
+
 						.status.question {
 							color: #f9ae3d;
 						}
 					}
 				}
+
 				.audit_img {
 					flex-wrap: wrap;
 					// margin: 0 10rpx;
 					margin-left: 20rpx;
-				
+
 					.url_css {
 						border: 1px solid #999999;
 						border-radius: 10px;
@@ -896,7 +878,7 @@
 						overflow: hidden;
 						width: 73px;
 						height: 73px;
-				
+
 						.url_img {
 							width: 73px;
 							height: 73px;
@@ -906,10 +888,10 @@
 				}
 			}
 		}
-	
+
 		.row2 {
 			display: flex;
-	
+
 			.item-content {
 				background: #22C572;
 				width: 30px;
@@ -922,22 +904,22 @@
 				padding: 0 2px;
 				margin: 0 auto;
 			}
-	
+
 			.status {
 				position: absolute;
 				top: 0;
 				right: 0;
 			}
 		}
-	
+
 		.row-line {
 			width: 1px;
 			height: 30px;
 			background: #F2F2F2;
 			margin: 10rpx 50rpx;
-	
+
 		}
-	
+
 		.audit {
 			margin-top: 20rpx;
 		}
@@ -1093,7 +1075,7 @@
 		border: 1px solid #ccc;
 		margin: 5px;
 	}
-	
+
 	// .char_css {
 	// 	// text-align: center;
 	// 	// width: 90px;
@@ -1108,17 +1090,19 @@
 	// 	text-overflow: ellipsis;
 	// 	word-break: break-all;
 	// }
-	
+
 	.img_item {
 		display: flex;
 		width: 85vw;
 		margin: 10px 0;
 		padding: 0 10rpx;
-		.imgsign{
+
+		.imgsign {
 			width: 25px;
 			height: 25px;
 			margin-top: 6px;
 		}
+
 		.char_css {
 			font-size: 28rpx;
 			font-weight: 600;
@@ -1131,12 +1115,13 @@
 			text-overflow: ellipsis;
 			word-break: break-all;
 		}
-		.img_size{
+
+		.img_size {
 			color: #B0B3BF;
 			font-size: 12px;
 			margin-top: 5px;
 		}
-	
+
 		.img_dowload {
 			width: 14%;
 			color: #22C572;

+ 203 - 260
pages/task/audit/daichu_details.vue

@@ -133,106 +133,35 @@
 				<textarea class='textarea' v-model="list.remarks" input-align="right" placeholder="" disabled />
 			</u-form-item>
 			<u-form-item label-width='120' label="附件">
-					<view class="form_top">共{{imglist.length}}个附件</view>
-					<view v-if='imglist.length>0'>
-						<view style="justify-content: space-between;" class='flex' v-for='item in imglist'>
-							<view class="img_item">
-								<view class="" style="width: 16%;">
-									<image
-										v-if="item.type == 'pdf'"
-										class="imgsign" src="../../../static/img/oa_office/pdf3.png"
-										mode=""></image>
-									<image v-else-if="item.type == 'xls'||item.type == 'xlsx'"
-										 class="imgsign" src="../../../static/img/oa_office/excle3.png"
-										mode=""></image>
-									<image v-else-if="item.type == 'doc'||item.type == 'docx'"
-										 class="imgsign" src="../../../static/img/oa_office/word3.png"
-										mode=""></image>
-									<image v-else  class="imgsign" :src="item.appendixPath" mode="">
-									</image>
-								</view>
-								<view class="" style="width: 70%;">
-									<view class="char_css">{{item.appendixName}}</view>
-									<u-line-progress v-if='item.progressstatus' :striped="true" :percent="item.progress" :striped-active="true"></u-line-progress>
-									<view class="img_size">{{item.appendixSize}}</view>
-								</view>
-								<view style="color: #22C572;" class="img_dowload" @click="openDocument(item)">
-									下载
-								</view>
+				<view class="form_top">共{{imglist.length}}个附件</view>
+				<view v-if='imglist.length>0'>
+					<view style="justify-content: space-between;" class='flex' v-for='item in imglist'>
+						<view class="img_item">
+							<view class="" style="width: 16%;">
+								<image v-if="item.type == 'pdf'" class="imgsign"
+									src="../../../static/img/oa_office/pdf3.png" mode=""></image>
+								<image v-else-if="item.type == 'xls'||item.type == 'xlsx'" class="imgsign"
+									src="../../../static/img/oa_office/excle3.png" mode=""></image>
+								<image v-else-if="item.type == 'doc'||item.type == 'docx'" class="imgsign"
+									src="../../../static/img/oa_office/word3.png" mode=""></image>
+								<image v-else class="imgsign" :src="item.appendixPath" mode="">
+								</image>
 							</view>
+							<view class="" style="width: 70%;">
+								<view class="char_css">{{item.appendixName}}</view>
+								<u-line-progress v-if='item.progressstatus' :striped="true" :percent="item.progress"
+									:striped-active="true"></u-line-progress>
+								<view class="img_size">{{item.appendixSize}}</view>
 							</view>
-					</view>
-			</u-form-item>
-		</u-form>
-		<u-form style='margin-top:10px;' ref="uForm">
-			<view class="form_top">流程</view>
-			<view class="content2">
-			<view v-for="(item,index) in auditList" :key='index' class="audit">
-				<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-					<view class="left">
-						<view class="item1">
-							<view class="item-content">{{item.operatorTitle}}</view>
-							<view v-if="item.status=='success'" class='status success'>
-								<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-							</view>
-							<view v-if="item.status=='error'" class='status error'>
-								<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-							</view>
-							<view v-if="item.status=='question'" class='status question'>
-								<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-							</view>
-						</view>
-					</view>
-					<view class="right">
-						<view class="right-item">
-							<view class="item2">
-								<view class="name">{{item.desc}}
-								</view>
-								<!-- <view class='time'>{{item.updateDate}}</view> -->
-								<view v-if="item.status=='success'" class="status success">
-									{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-										v-if='!item.commonStaffs1&&index!=0'>已审核</text>
-								</view>
-								<view v-if="item.status=='error'" class="status error">
-									{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-										v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
-								</view>
-								<view v-if="item.status=='question'" class="status question">
-									{{item.commonStaffs1?item.staffscontent:''}}<text
-										v-if='!item.commonStaffs1'>未审核</text>
-								</view>
-								<!-- <view  class="status success">吕波(已审核)</view> -->
-			
-							</view>
-							<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
-								class='time'>
-								{{item.updateDate}}
+							<view style="color: #22C572;" class="img_dowload" @click="openDocument(item)">
+								下载
 							</view>
 						</view>
-						<view v-if='item.auditMind' class="right-content">
-							{{item.auditMind}}
-						</view>
-					</view>
-					<view v-if='item.commonStaffs1' class="right">
-						<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
-						</u-icon>
 					</view>
 				</view>
-				<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-					<view class='row2'>
-						<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-							<view class="item-content">
-								<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-								<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-							</view>
-							<view class="name">{{item1.staffName}}</view>
-						</view>
-					</view>
-				</view>
-				<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
-			</view>
-			</view>
+			</u-form-item>
 		</u-form>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view style='padding:10px;' class='flex bottom-btn'>
 			<u-button v-if='list.approveStatus||isSHowBtn' @click='reject' type="error" class="btn1" hover-class='none'>
 				驳回
@@ -267,9 +196,11 @@
 <script>
 	import upload from '@/components/upload.vue';
 	import helper from '@/common/helper.js';
+	import flow from '@/components/flow.vue';
 	export default {
 		components: {
-			upload
+			upload,
+			flow
 		},
 		data() {
 			return {
@@ -292,16 +223,16 @@
 				isAdd: true,
 				imgShow: false,
 				url: "",
-				auditList:[],
+				auditList: [],
 				everyCheck: ''
 			}
 		},
 		onBackPress(e) {
-			if(this.everyCheck){
-			uni.navigateTo({
-				url: "/pages/task/my_task"
-			})
-			return true;
+			if (this.everyCheck) {
+				uni.navigateTo({
+					url: "/pages/task/my_task"
+				})
+				return true;
 			}
 		},
 		onLoad(options) {
@@ -312,14 +243,18 @@
 
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			openDocument(item) {
-				this.$set(item,'progressstatus',true)
+				this.$set(item, 'progressstatus', true)
 				this.$forceUpdate()
-				const downloadTask =uni.downloadFile({
+				const downloadTask = uni.downloadFile({
 					url: item.appendixPath,
 					success: function(res) {
 						var filePath = res.tempFilePath;
-						if(item.type=='pdf'||item.type == 'xls'||item.type == 'xlsx'||item.type == 'doc'||item.type == 'docx'){
+						if (item.type == 'pdf' || item.type == 'xls' || item.type == 'xlsx' || item.type ==
+							'doc' || item.type == 'docx') {
 							uni.openDocument({
 								filePath: filePath,
 								showMenu: true,
@@ -327,17 +262,17 @@
 									console.log('打开文档成功');
 								}
 							});
-						}else{
+						} else {
 							uni.previewImage({
 								current: 0, //预览图片的下标
 								urls: [item.appendixPath]
 							})
 						}
-						
+
 					}
 				});
 				downloadTask.onProgressUpdate((res) => {
-					this.$set(item,'progress',res.progress)
+					this.$set(item, 'progress', res.progress)
 					this.$forceUpdate()
 					console.log('下载进度' + res.progress);
 					console.log('已经下载的数据长度' + res.totalBytesWritten);
@@ -367,146 +302,147 @@
 						this.$api.doRequest('get', '/appendix/query/getFileList', {
 							appendixIds: that.list.addressUrl
 						}).then(res1 => {
-							that.imglist=res1.data.data
-							for (let i = 0; i < that.imglist.length; i++) {//获取后缀
-							that.imglist[i].progressstatus=false
-							that.imglist[i].progress=0
+							that.imglist = res1.data.data
+							for (let i = 0; i < that.imglist.length; i++) { //获取后缀
+								that.imglist[i].progressstatus = false
+								that.imglist[i].progress = 0
 								if (that.imglist[i].appendixName) {
-									let index = that.imglist[i].appendixName.lastIndexOf(".") 
-									that.imglist[i].type = that.imglist[i].appendixName.substring(index+1)
+									let index = that.imglist[i].appendixName.lastIndexOf(".")
+									that.imglist[i].type = that.imglist[i].appendixName.substring(index +
+										1)
 								}
 							}
 						})
 						// 审核流程
-							this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
-								businessCode: 'DAICHU-CONTRACT-APPROVE',
-								tmpCompId: uni.getStorageSync('pcUserInfo').compId
-							}).then(res1 => {
-								this.$api.doRequest('get', '/commonUser/getHis', {
-									workflowId: res1.data.data[0].id,
-									businessKey: this.id,
-									// branch:that.list.jointVentureParties?that.list.jointVentureParties:'zt'
-								}).then(response => {
-									uni.hideLoading()
-									for (let i = 0; i < response.data.data.length; i++) {
-										this.$set(response.data.data[i], 'status', 'question')
-										// console.log(response.data.data[i].workflowHistoricTasks,i)
-										if (response.data.data[i].commonStaffs) {
-											response.data.data[i].showflow = false
-											response.data.data[i].operatorTitle = response.data.data[i]
-												.desc.substring(0, 2)
-											response.data.data[i].operatorName = response.data.data[i]
-												.desc
-											response.data.data[i].staffscontent = '共' + response.data
-												.data[i].commonStaffs.length + '人,当前审核' + response.data
-												.data[i].workflowHistoricTasks.length + '人'
-											if (response.data.data[i].workflowHistoricTasks && response
-												.data.data[i].workflowHistoricTasks.length > 0) {
-												if (response.data.data[i].workflowHistoricTasks
-													.length != response.data.data[i].commonStaffs
-													.length) {
-													// response.data.data[i].status='question'
-													this.$set(response.data.data[i], 'status',
-														'question')
-												} else {
-													this.$set(response.data.data[i], 'status',
-														'success')
-													// response.data.data[i].status='success'
-												}
-												response.data.data[i].workflowlen = response.data.data[
-													i].workflowHistoricTasks.length
-												var workflowdata = response.data.data[i]
-													.workflowHistoricTasks
-												var staffsdata = response.data.data[i].commonStaffs
-												for (let q = 0; q < staffsdata.length; q++) {
-													staffsdata[q].status = false
-													staffsdata[q].staffTitle = staffsdata[q].staffName
-													for (let k = 0; k < workflowdata.length; k++) {
-														if (staffsdata[q].staffId == workflowdata[k]
-															.operatorId) {
-															staffsdata[q].status = true
-														}
+						this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
+							businessCode: 'DAICHU-CONTRACT-APPROVE',
+							tmpCompId: uni.getStorageSync('pcUserInfo').compId
+						}).then(res1 => {
+							this.$api.doRequest('get', '/commonUser/getHis', {
+								workflowId: res1.data.data[0].id,
+								businessKey: this.id,
+								// branch:that.list.jointVentureParties?that.list.jointVentureParties:'zt'
+							}).then(response => {
+								uni.hideLoading()
+								for (let i = 0; i < response.data.data.length; i++) {
+									this.$set(response.data.data[i], 'status', 'question')
+									// console.log(response.data.data[i].workflowHistoricTasks,i)
+									if (response.data.data[i].commonStaffs) {
+										response.data.data[i].showflow = false
+										response.data.data[i].operatorTitle = response.data.data[i]
+											.desc.substring(0, 2)
+										response.data.data[i].operatorName = response.data.data[i]
+											.desc
+										response.data.data[i].staffscontent = '共' + response.data
+											.data[i].commonStaffs.length + '人,当前审核' + response.data
+											.data[i].workflowHistoricTasks.length + '人'
+										if (response.data.data[i].workflowHistoricTasks && response
+											.data.data[i].workflowHistoricTasks.length > 0) {
+											if (response.data.data[i].workflowHistoricTasks
+												.length != response.data.data[i].commonStaffs
+												.length) {
+												// response.data.data[i].status='question'
+												this.$set(response.data.data[i], 'status',
+													'question')
+											} else {
+												this.$set(response.data.data[i], 'status',
+													'success')
+												// response.data.data[i].status='success'
+											}
+											response.data.data[i].workflowlen = response.data.data[
+												i].workflowHistoricTasks.length
+											var workflowdata = response.data.data[i]
+												.workflowHistoricTasks
+											var staffsdata = response.data.data[i].commonStaffs
+											for (let q = 0; q < staffsdata.length; q++) {
+												staffsdata[q].status = false
+												staffsdata[q].staffTitle = staffsdata[q].staffName
+												for (let k = 0; k < workflowdata.length; k++) {
+													if (staffsdata[q].staffId == workflowdata[k]
+														.operatorId) {
+														staffsdata[q].status = true
 													}
 												}
 											}
-											response.data.data[i].commonStaffs1 = response.data.data[i]
-												.commonStaffs
+										}
+										response.data.data[i].commonStaffs1 = response.data.data[i]
+											.commonStaffs
+									} else {
+										if (response.data.data[i].workflowHistoricTasks && response
+											.data.data[i].workflowHistoricTasks.length > 0) {
+											var len = response.data.data[i].workflowHistoricTasks
+												.length - 1
+											if (response.data.data[i].workflowHistoricTasks[len]
+												.approved) {
+												this.$set(response.data.data[i], 'status',
+													'success')
+											} else {
+												this.$set(response.data.data[i], 'status', 'error')
+											}
+											response.data.data[i].operatorTitle = response.data
+												.data[i].workflowHistoricTasks[len].operatorName
+												.substring(response.data.data[i]
+													.workflowHistoricTasks[0].operatorName.length -
+													2)
+											response.data.data[i].operatorName = response.data
+												.data[i].workflowHistoricTasks[len].operatorName
+											var time = new Date(response.data.data[i]
+													.workflowHistoricTasks[len].claimTime)
+												.getTime()
+											response.data.data[i].updateDate = this.$u.timeFormat(
+												time, 'mm.dd hh:MM')
+											response.data.data[i].auditMind = response.data.data[i]
+												.workflowHistoricTasks[len].auditMind
 										} else {
-											if (response.data.data[i].workflowHistoricTasks && response
-												.data.data[i].workflowHistoricTasks.length > 0) {
-												var len = response.data.data[i].workflowHistoricTasks
-													.length - 1
-												if (response.data.data[i].workflowHistoricTasks[len]
-													.approved) {
-													this.$set(response.data.data[i], 'status',
-														'success')
-												} else {
-													this.$set(response.data.data[i], 'status', 'error')
-												}
-												response.data.data[i].operatorTitle = response.data
-													.data[i].workflowHistoricTasks[len].operatorName
-													.substring(response.data.data[i]
-														.workflowHistoricTasks[0].operatorName.length -
-														2)
-												response.data.data[i].operatorName = response.data
-													.data[i].workflowHistoricTasks[len].operatorName
-												var time = new Date(response.data.data[i]
-														.workflowHistoricTasks[len].claimTime)
-													.getTime()
-												response.data.data[i].updateDate = this.$u.timeFormat(
-													time, 'mm.dd hh:MM')
-												response.data.data[i].auditMind = response.data.data[i]
-													.workflowHistoricTasks[len].auditMind
+											this.$set(response.data.data[i], 'status', 'question')
+											// response.data.data[i].status='question'
+											if (response.data.data[i].desc == '总经理助理审核') {
+												response.data.data[i].operatorTitle = '总助'
+											} else if (response.data.data[i].desc == '杜大光审核') {
+												response.data.data[i].operatorTitle = '大光'
 											} else {
-												this.$set(response.data.data[i], 'status', 'question')
-												// response.data.data[i].status='question'
-												if (response.data.data[i].desc == '总经理助理审核') {
-													response.data.data[i].operatorTitle = '总助'
-												} else if (response.data.data[i].desc == '杜大光审核') {
-													response.data.data[i].operatorTitle = '大光'
-												} else {
-													response.data.data[i].operatorTitle = response.data
-														.data[i].desc.substring(0, 2)
-												}
-												response.data.data[i].operatorName = response.data
-													.data[i].desc
-												var time1 = new Date(response.data.data[i].updateDate)
-													.getTime()
-												response.data.data[i].updateDate = this.$u.timeFormat(
-													time1, 'mm.dd hh:MM')
-												response.data.data[i].auditMind = ''
+												response.data.data[i].operatorTitle = response.data
+													.data[i].desc.substring(0, 2)
 											}
+											response.data.data[i].operatorName = response.data
+												.data[i].desc
+											var time1 = new Date(response.data.data[i].updateDate)
+												.getTime()
+											response.data.data[i].updateDate = this.$u.timeFormat(
+												time1, 'mm.dd hh:MM')
+											response.data.data[i].auditMind = ''
 										}
 									}
-									console.log(response.data.data)
-									for(let i = 0 ;i<response.data.data.length;i++){
-										if(response.data.data[i].status == "error"){
-											this.auditCheck = "error"
-											break;
-										}else if(response.data.data[i].status == "question"){
-											this.auditCheck = "question"
-											break;
-										}else{ 
-											this.auditCheck = "success"
-										}
+								}
+								console.log(response.data.data)
+								for (let i = 0; i < response.data.data.length; i++) {
+									if (response.data.data[i].status == "error") {
+										this.auditCheck = "error"
+										break;
+									} else if (response.data.data[i].status == "question") {
+										this.auditCheck = "question"
+										break;
+									} else {
+										this.auditCheck = "success"
 									}
-									this.auditList = response.data.data
-									var time2 = new Date(this.list.createDate).getTime()
-									var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
-									this.auditList.unshift({
-										operatorTitle: this.list.creater.substring(0, 2),
-										operatorName: this.list.creater,
-										updateDate: time3,
-										auditMind: '',
-										desc: '发起申请',
-										showflow: false,
-										commonStaffs1: null,
-										commonStaffs: null,
-										workflowHistoricTasks: [],
-										status: 'success'
-									})
+								}
+								this.auditList = response.data.data
+								var time2 = new Date(this.list.createDate).getTime()
+								var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
+								this.auditList.unshift({
+									operatorTitle: this.list.creater.substring(0, 2),
+									operatorName: this.list.creater,
+									updateDate: time3,
+									auditMind: '',
+									desc: '发起申请',
+									showflow: false,
+									commonStaffs1: null,
+									commonStaffs: null,
+									workflowHistoricTasks: [],
+									status: 'success'
 								})
 							})
+						})
 					}
 				})
 			},
@@ -827,9 +763,11 @@
 		font-size: 28rpx;
 		padding: 10px;
 	}
-/deep/.u-form-item--right__content__slot{
-	flex-wrap: wrap;
-}
+
+	/deep/.u-form-item--right__content__slot {
+		flex-wrap: wrap;
+	}
+
 	.u-textarea-style {
 		margin: 20rpx;
 		background: #F9F9FA;
@@ -845,16 +783,19 @@
 			color: #AFB3BF;
 		}
 	}
+
 	.img_item {
 		display: flex;
 		width: 100%;
 		margin: 10px 0;
 		padding: 0 10rpx;
-		.imgsign{
+
+		.imgsign {
 			width: 25px;
 			height: 25px;
 			margin-top: 6px;
 		}
+
 		.char_css {
 			font-size: 28rpx;
 			font-weight: 600;
@@ -867,34 +808,36 @@
 			text-overflow: ellipsis;
 			word-break: break-all;
 		}
-		.img_size{
+
+		.img_size {
 			color: #B0B3BF;
 			font-size: 12px;
 			margin-top: 5px;
 		}
-	
+
 		.img_dowload {
 			width: 16%;
 			color: #22C572;
 			text-align: right;
 		}
 	}
+
 	.content2 {
 		background: white;
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		padding: 20rpx;
-	
+
 		.row {
 			display: flex;
-	
+
 			.left {
 				display: flex;
 				align-items: center;
-	
+
 				.item1 {
 					position: relative;
-	
+
 					.item-content {
 						background: #617AE0;
 						width: 44px;
@@ -905,7 +848,7 @@
 						font-size: 15px;
 						color: #fff;
 					}
-	
+
 					.status {
 						position: absolute;
 						border-radius: 50%;
@@ -914,27 +857,27 @@
 						bottom: -3px;
 						background: #fff;
 					}
-	
+
 					.status.success {
 						border: 1px solid rgb(60, 156, 255);
 					}
-	
+
 					.status.error {
 						border: 1px solid rgb(245, 108, 108);
 					}
-	
+
 					.status.question {
 						border: 1px solid #f9ae3d;
 					}
 				}
-	
+
 			}
-	
+
 			.right {
 				width: 80%;
 				// color: #B0B1B5;
 				margin-top: 10px;
-	
+
 				.right-content {
 					background: #F2F3F7;
 					margin-left: 10px;
@@ -943,33 +886,33 @@
 					border-radius: 5px;
 					color: #B0B1B5;
 				}
-	
+
 				.right-item {
 					display: flex;
 					justify-content: space-between;
-	
+
 					.time {
 						color: #999;
 					}
-	
+
 					.item2 {
 						margin-left: 20rpx;
 						margin-top: -7px;
-	
+
 						.name {
 							font-size: 28rpx;
 							font-weight: 800;
 							margin-bottom: 4px;
 						}
-	
+
 						.status.success {
 							color: #6CC48C;
 						}
-	
+
 						.status.error {
 							color: rgb(245, 108, 108);
 						}
-	
+
 						.status.question {
 							color: #f9ae3d;
 						}
@@ -977,10 +920,10 @@
 				}
 			}
 		}
-	
+
 		.row2 {
 			display: flex;
-	
+
 			.item-content {
 				background: #22C572;
 				width: 30px;
@@ -993,22 +936,22 @@
 				padding: 0 2px;
 				margin: 0 auto;
 			}
-	
+
 			.status {
 				position: absolute;
 				top: 0;
 				right: 0;
 			}
 		}
-	
+
 		.row-line {
 			width: 1px;
 			height: 30px;
 			background: #F2F2F2;
 			margin: 10rpx 50rpx;
-	
+
 		}
-	
+
 		.audit {
 			margin-top: 20rpx;
 		}

+ 192 - 249
pages/task/audit/daishou_details.vue

@@ -115,101 +115,30 @@
 					<view style="justify-content: space-between;" class='flex' v-for='item in imglist'>
 						<view class="img_item">
 							<view class="" style="width: 16%;">
-								<image
-									v-if="item.type == 'pdf'"
-									class="imgsign" src="../../../static/img/oa_office/pdf3.png"
-									mode=""></image>
-								<image v-else-if="item.type == 'xls'||item.type == 'xlsx'"
-									 class="imgsign" src="../../../static/img/oa_office/excle3.png"
-									mode=""></image>
-								<image v-else-if="item.type == 'doc'||item.type == 'docx'"
-									 class="imgsign" src="../../../static/img/oa_office/word3.png"
-									mode=""></image>
-								<image v-else  class="imgsign" :src="item.appendixPath" mode="">
+								<image v-if="item.type == 'pdf'" class="imgsign"
+									src="../../../static/img/oa_office/pdf3.png" mode=""></image>
+								<image v-else-if="item.type == 'xls'||item.type == 'xlsx'" class="imgsign"
+									src="../../../static/img/oa_office/excle3.png" mode=""></image>
+								<image v-else-if="item.type == 'doc'||item.type == 'docx'" class="imgsign"
+									src="../../../static/img/oa_office/word3.png" mode=""></image>
+								<image v-else class="imgsign" :src="item.appendixPath" mode="">
 								</image>
 							</view>
 							<view class="" style="width: 70%;">
 								<view class="char_css">{{item.appendixName}}</view>
-								<u-line-progress v-if='item.progressstatus' :striped="true" :percent="item.progress" :striped-active="true"></u-line-progress>
+								<u-line-progress v-if='item.progressstatus' :striped="true" :percent="item.progress"
+									:striped-active="true"></u-line-progress>
 								<view class="img_size">{{item.appendixSize}}</view>
 							</view>
 							<view style="color: #22C572;" class="img_dowload" @click="openDocument(item)">
 								下载
 							</view>
 						</view>
-						</view>
-				</view>
-			</u-form-item>
-		</u-form>
-		<u-form style='margin-top:10px;' ref="uForm">
-			<view class="form_top">流程</view>
-			<view class="content2">
-			<view v-for="(item,index) in auditList" :key='index' class="audit">
-				<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-					<view class="left">
-						<view class="item1">
-							<view class="item-content">{{item.operatorTitle}}</view>
-							<view v-if="item.status=='success'" class='status success'>
-								<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-							</view>
-							<view v-if="item.status=='error'" class='status error'>
-								<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-							</view>
-							<view v-if="item.status=='question'" class='status question'>
-								<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-							</view>
-						</view>
-					</view>
-					<view class="right">
-						<view class="right-item">
-							<view class="item2">
-								<view class="name">{{item.desc}}
-								</view>
-								<!-- <view class='time'>{{item.updateDate}}</view> -->
-								<view v-if="item.status=='success'" class="status success">
-									{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-										v-if='!item.commonStaffs1&&index!=0'>已审核</text>
-								</view>
-								<view v-if="item.status=='error'" class="status error">
-									{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-										v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
-								</view>
-								<view v-if="item.status=='question'" class="status question">
-									{{item.commonStaffs1?item.staffscontent:''}}<text
-										v-if='!item.commonStaffs1'>未审核</text>
-								</view>
-								<!-- <view  class="status success">吕波(已审核)</view> -->
-			
-							</view>
-							<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
-								class='time'>
-								{{item.updateDate}}
-							</view>
-						</view>
-						<view v-if='item.auditMind' class="right-content">
-							{{item.auditMind}}
-						</view>
-					</view>
-					<view v-if='item.commonStaffs1' class="right">
-						<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
-						</u-icon>
 					</view>
 				</view>
-				<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-					<view class='row2'>
-						<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-							<view class="item-content">
-								<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-								<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-							</view>
-							<view class="name">{{item1.staffName}}</view>
-						</view>
-					</view>
-				</view>
-				<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
-			</view>
-			</view>
+			</u-form-item>
 		</u-form>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view style='padding:10px;' class='flex bottom-btn'>
 			<u-button v-if='list.approveStatus||isSHowBtn' @click='reject' type="error" class="btn1" hover-class='none'>
 				驳回
@@ -244,9 +173,11 @@
 <script>
 	import upload from '@/components/upload.vue';
 	import helper from '@/common/helper.js';
+	import flow from '@/components/flow.vue';
 	export default {
 		components: {
-			upload
+			upload,
+			flow
 		},
 		data() {
 			return {
@@ -263,7 +194,7 @@
 				auditMind: '',
 				show: false,
 				title: '',
-				auditList:[],
+				auditList: [],
 				contractNo: "",
 				action: this.$uploadUrl,
 				maxSize: 50 * 1024 * 1024, //限制文件大小 50M
@@ -274,11 +205,11 @@
 			}
 		},
 		onBackPress(e) {
-			if(this.everyCheck){
-			uni.navigateTo({
-				url: "/pages/task/my_task"
-			})
-			return true;
+			if (this.everyCheck) {
+				uni.navigateTo({
+					url: "/pages/task/my_task"
+				})
+				return true;
 			}
 		},
 		onLoad(options) {
@@ -289,14 +220,18 @@
 
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			openDocument(item) {
-				this.$set(item,'progressstatus',true)
+				this.$set(item, 'progressstatus', true)
 				this.$forceUpdate()
-				const downloadTask =uni.downloadFile({
+				const downloadTask = uni.downloadFile({
 					url: item.appendixPath,
 					success: function(res) {
 						var filePath = res.tempFilePath;
-						if(item.type=='pdf'||item.type == 'xls'||item.type == 'xlsx'||item.type == 'doc'||item.type == 'docx'){
+						if (item.type == 'pdf' || item.type == 'xls' || item.type == 'xlsx' || item.type ==
+							'doc' || item.type == 'docx') {
 							uni.openDocument({
 								filePath: filePath,
 								showMenu: true,
@@ -304,17 +239,17 @@
 									console.log('打开文档成功');
 								}
 							});
-						}else{
+						} else {
 							uni.previewImage({
 								current: 0, //预览图片的下标
 								urls: [item.appendixPath]
 							})
 						}
-						
+
 					}
 				});
 				downloadTask.onProgressUpdate((res) => {
-					this.$set(item,'progress',res.progress)
+					this.$set(item, 'progress', res.progress)
 					this.$forceUpdate()
 					console.log('下载进度' + res.progress);
 					console.log('已经下载的数据长度' + res.totalBytesWritten);
@@ -344,146 +279,147 @@
 						this.$api.doRequest('get', '/appendix/query/getFileList', {
 							appendixIds: that.list.addressUrl
 						}).then(res1 => {
-							that.imglist=res1.data.data
-							for (let i = 0; i < that.imglist.length; i++) {//获取后缀
-							that.imglist[i].progressstatus=false
-							that.imglist[i].progress=0
+							that.imglist = res1.data.data
+							for (let i = 0; i < that.imglist.length; i++) { //获取后缀
+								that.imglist[i].progressstatus = false
+								that.imglist[i].progress = 0
 								if (that.imglist[i].appendixName) {
-									let index = that.imglist[i].appendixName.lastIndexOf(".") 
-									that.imglist[i].type = that.imglist[i].appendixName.substring(index+1)
+									let index = that.imglist[i].appendixName.lastIndexOf(".")
+									that.imglist[i].type = that.imglist[i].appendixName.substring(index +
+										1)
 								}
 							}
 						})
 						// 审核流程
-							this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
-								businessCode: 'DAISHOU-CONTRACT-APPROVE',
-								tmpCompId: uni.getStorageSync('pcUserInfo').compId
-							}).then(res1 => {
-								this.$api.doRequest('get', '/commonUser/getHis', {
-									workflowId: res1.data.data[0].id,
-									businessKey: this.id,
-									// branch:that.list.jointVentureParties?that.list.jointVentureParties:'zt'
-								}).then(response => {
-									uni.hideLoading()
-									for (let i = 0; i < response.data.data.length; i++) {
-										this.$set(response.data.data[i], 'status', 'question')
-										// console.log(response.data.data[i].workflowHistoricTasks,i)
-										if (response.data.data[i].commonStaffs) {
-											response.data.data[i].showflow = false
-											response.data.data[i].operatorTitle = response.data.data[i]
-												.desc.substring(0, 2)
-											response.data.data[i].operatorName = response.data.data[i]
-												.desc
-											response.data.data[i].staffscontent = '共' + response.data
-												.data[i].commonStaffs.length + '人,当前审核' + response.data
-												.data[i].workflowHistoricTasks.length + '人'
-											if (response.data.data[i].workflowHistoricTasks && response
-												.data.data[i].workflowHistoricTasks.length > 0) {
-												if (response.data.data[i].workflowHistoricTasks
-													.length != response.data.data[i].commonStaffs
-													.length) {
-													// response.data.data[i].status='question'
-													this.$set(response.data.data[i], 'status',
-														'question')
-												} else {
-													this.$set(response.data.data[i], 'status',
-														'success')
-													// response.data.data[i].status='success'
-												}
-												response.data.data[i].workflowlen = response.data.data[
-													i].workflowHistoricTasks.length
-												var workflowdata = response.data.data[i]
-													.workflowHistoricTasks
-												var staffsdata = response.data.data[i].commonStaffs
-												for (let q = 0; q < staffsdata.length; q++) {
-													staffsdata[q].status = false
-													staffsdata[q].staffTitle = staffsdata[q].staffName
-													for (let k = 0; k < workflowdata.length; k++) {
-														if (staffsdata[q].staffId == workflowdata[k]
-															.operatorId) {
-															staffsdata[q].status = true
-														}
+						this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
+							businessCode: 'DAISHOU-CONTRACT-APPROVE',
+							tmpCompId: uni.getStorageSync('pcUserInfo').compId
+						}).then(res1 => {
+							this.$api.doRequest('get', '/commonUser/getHis', {
+								workflowId: res1.data.data[0].id,
+								businessKey: this.id,
+								// branch:that.list.jointVentureParties?that.list.jointVentureParties:'zt'
+							}).then(response => {
+								uni.hideLoading()
+								for (let i = 0; i < response.data.data.length; i++) {
+									this.$set(response.data.data[i], 'status', 'question')
+									// console.log(response.data.data[i].workflowHistoricTasks,i)
+									if (response.data.data[i].commonStaffs) {
+										response.data.data[i].showflow = false
+										response.data.data[i].operatorTitle = response.data.data[i]
+											.desc.substring(0, 2)
+										response.data.data[i].operatorName = response.data.data[i]
+											.desc
+										response.data.data[i].staffscontent = '共' + response.data
+											.data[i].commonStaffs.length + '人,当前审核' + response.data
+											.data[i].workflowHistoricTasks.length + '人'
+										if (response.data.data[i].workflowHistoricTasks && response
+											.data.data[i].workflowHistoricTasks.length > 0) {
+											if (response.data.data[i].workflowHistoricTasks
+												.length != response.data.data[i].commonStaffs
+												.length) {
+												// response.data.data[i].status='question'
+												this.$set(response.data.data[i], 'status',
+													'question')
+											} else {
+												this.$set(response.data.data[i], 'status',
+													'success')
+												// response.data.data[i].status='success'
+											}
+											response.data.data[i].workflowlen = response.data.data[
+												i].workflowHistoricTasks.length
+											var workflowdata = response.data.data[i]
+												.workflowHistoricTasks
+											var staffsdata = response.data.data[i].commonStaffs
+											for (let q = 0; q < staffsdata.length; q++) {
+												staffsdata[q].status = false
+												staffsdata[q].staffTitle = staffsdata[q].staffName
+												for (let k = 0; k < workflowdata.length; k++) {
+													if (staffsdata[q].staffId == workflowdata[k]
+														.operatorId) {
+														staffsdata[q].status = true
 													}
 												}
 											}
-											response.data.data[i].commonStaffs1 = response.data.data[i]
-												.commonStaffs
+										}
+										response.data.data[i].commonStaffs1 = response.data.data[i]
+											.commonStaffs
+									} else {
+										if (response.data.data[i].workflowHistoricTasks && response
+											.data.data[i].workflowHistoricTasks.length > 0) {
+											var len = response.data.data[i].workflowHistoricTasks
+												.length - 1
+											if (response.data.data[i].workflowHistoricTasks[len]
+												.approved) {
+												this.$set(response.data.data[i], 'status',
+													'success')
+											} else {
+												this.$set(response.data.data[i], 'status', 'error')
+											}
+											response.data.data[i].operatorTitle = response.data
+												.data[i].workflowHistoricTasks[len].operatorName
+												.substring(response.data.data[i]
+													.workflowHistoricTasks[0].operatorName.length -
+													2)
+											response.data.data[i].operatorName = response.data
+												.data[i].workflowHistoricTasks[len].operatorName
+											var time = new Date(response.data.data[i]
+													.workflowHistoricTasks[len].claimTime)
+												.getTime()
+											response.data.data[i].updateDate = this.$u.timeFormat(
+												time, 'mm.dd hh:MM')
+											response.data.data[i].auditMind = response.data.data[i]
+												.workflowHistoricTasks[len].auditMind
 										} else {
-											if (response.data.data[i].workflowHistoricTasks && response
-												.data.data[i].workflowHistoricTasks.length > 0) {
-												var len = response.data.data[i].workflowHistoricTasks
-													.length - 1
-												if (response.data.data[i].workflowHistoricTasks[len]
-													.approved) {
-													this.$set(response.data.data[i], 'status',
-														'success')
-												} else {
-													this.$set(response.data.data[i], 'status', 'error')
-												}
-												response.data.data[i].operatorTitle = response.data
-													.data[i].workflowHistoricTasks[len].operatorName
-													.substring(response.data.data[i]
-														.workflowHistoricTasks[0].operatorName.length -
-														2)
-												response.data.data[i].operatorName = response.data
-													.data[i].workflowHistoricTasks[len].operatorName
-												var time = new Date(response.data.data[i]
-														.workflowHistoricTasks[len].claimTime)
-													.getTime()
-												response.data.data[i].updateDate = this.$u.timeFormat(
-													time, 'mm.dd hh:MM')
-												response.data.data[i].auditMind = response.data.data[i]
-													.workflowHistoricTasks[len].auditMind
+											this.$set(response.data.data[i], 'status', 'question')
+											// response.data.data[i].status='question'
+											if (response.data.data[i].desc == '总经理助理审核') {
+												response.data.data[i].operatorTitle = '总助'
+											} else if (response.data.data[i].desc == '杜大光审核') {
+												response.data.data[i].operatorTitle = '大光'
 											} else {
-												this.$set(response.data.data[i], 'status', 'question')
-												// response.data.data[i].status='question'
-												if (response.data.data[i].desc == '总经理助理审核') {
-													response.data.data[i].operatorTitle = '总助'
-												} else if (response.data.data[i].desc == '杜大光审核') {
-													response.data.data[i].operatorTitle = '大光'
-												} else {
-													response.data.data[i].operatorTitle = response.data
-														.data[i].desc.substring(0, 2)
-												}
-												response.data.data[i].operatorName = response.data
-													.data[i].desc
-												var time1 = new Date(response.data.data[i].updateDate)
-													.getTime()
-												response.data.data[i].updateDate = this.$u.timeFormat(
-													time1, 'mm.dd hh:MM')
-												response.data.data[i].auditMind = ''
+												response.data.data[i].operatorTitle = response.data
+													.data[i].desc.substring(0, 2)
 											}
+											response.data.data[i].operatorName = response.data
+												.data[i].desc
+											var time1 = new Date(response.data.data[i].updateDate)
+												.getTime()
+											response.data.data[i].updateDate = this.$u.timeFormat(
+												time1, 'mm.dd hh:MM')
+											response.data.data[i].auditMind = ''
 										}
 									}
-									console.log(response.data.data)
-									for(let i = 0 ;i<response.data.data.length;i++){
-										if(response.data.data[i].status == "error"){
-											this.auditCheck = "error"
-											break;
-										}else if(response.data.data[i].status == "question"){
-											this.auditCheck = "question"
-											break;
-										}else{ 
-											this.auditCheck = "success"
-										}
+								}
+								console.log(response.data.data)
+								for (let i = 0; i < response.data.data.length; i++) {
+									if (response.data.data[i].status == "error") {
+										this.auditCheck = "error"
+										break;
+									} else if (response.data.data[i].status == "question") {
+										this.auditCheck = "question"
+										break;
+									} else {
+										this.auditCheck = "success"
 									}
-									this.auditList = response.data.data
-									var time2 = new Date(this.list.createDate).getTime()
-									var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
-									this.auditList.unshift({
-										operatorTitle: this.list.creater.substring(0, 2),
-										operatorName: this.list.creater,
-										updateDate: time3,
-										auditMind: '',
-										desc: '发起申请',
-										showflow: false,
-										commonStaffs1: null,
-										commonStaffs: null,
-										workflowHistoricTasks: [],
-										status: 'success'
-									})
+								}
+								this.auditList = response.data.data
+								var time2 = new Date(this.list.createDate).getTime()
+								var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
+								this.auditList.unshift({
+									operatorTitle: this.list.creater.substring(0, 2),
+									operatorName: this.list.creater,
+									updateDate: time3,
+									auditMind: '',
+									desc: '发起申请',
+									showflow: false,
+									commonStaffs1: null,
+									commonStaffs: null,
+									workflowHistoricTasks: [],
+									status: 'success'
 								})
 							})
+						})
 					}
 				})
 			},
@@ -804,9 +740,11 @@
 		font-size: 28rpx;
 		padding: 10px;
 	}
-/deep/.u-form-item--right__content__slot{
-	flex-wrap: wrap;
-}
+
+	/deep/.u-form-item--right__content__slot {
+		flex-wrap: wrap;
+	}
+
 	.u-textarea-style {
 		margin: 20rpx;
 		background: #F9F9FA;
@@ -822,16 +760,19 @@
 			color: #AFB3BF;
 		}
 	}
+
 	.img_item {
 		display: flex;
 		width: 100%;
 		margin: 10px 0;
 		padding: 0 10rpx;
-		.imgsign{
+
+		.imgsign {
 			width: 25px;
 			height: 25px;
 			margin-top: 6px;
 		}
+
 		.char_css {
 			font-size: 28rpx;
 			font-weight: 600;
@@ -844,34 +785,36 @@
 			text-overflow: ellipsis;
 			word-break: break-all;
 		}
-		.img_size{
+
+		.img_size {
 			color: #B0B3BF;
 			font-size: 12px;
 			margin-top: 5px;
 		}
-	
+
 		.img_dowload {
 			width: 16%;
 			color: #22C572;
 			text-align: right;
 		}
 	}
+
 	.content2 {
 		background: white;
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		padding: 20rpx;
-	
+
 		.row {
 			display: flex;
-	
+
 			.left {
 				display: flex;
 				align-items: center;
-	
+
 				.item1 {
 					position: relative;
-	
+
 					.item-content {
 						background: #617AE0;
 						width: 44px;
@@ -882,7 +825,7 @@
 						font-size: 15px;
 						color: #fff;
 					}
-	
+
 					.status {
 						position: absolute;
 						border-radius: 50%;
@@ -891,27 +834,27 @@
 						bottom: -3px;
 						background: #fff;
 					}
-	
+
 					.status.success {
 						border: 1px solid rgb(60, 156, 255);
 					}
-	
+
 					.status.error {
 						border: 1px solid rgb(245, 108, 108);
 					}
-	
+
 					.status.question {
 						border: 1px solid #f9ae3d;
 					}
 				}
-	
+
 			}
-	
+
 			.right {
 				width: 80%;
 				// color: #B0B1B5;
 				margin-top: 10px;
-	
+
 				.right-content {
 					background: #F2F3F7;
 					margin-left: 10px;
@@ -920,33 +863,33 @@
 					border-radius: 5px;
 					color: #B0B1B5;
 				}
-	
+
 				.right-item {
 					display: flex;
 					justify-content: space-between;
-	
+
 					.time {
 						color: #999;
 					}
-	
+
 					.item2 {
 						margin-left: 20rpx;
 						margin-top: -7px;
-	
+
 						.name {
 							font-size: 28rpx;
 							font-weight: 800;
 							margin-bottom: 4px;
 						}
-	
+
 						.status.success {
 							color: #6CC48C;
 						}
-	
+
 						.status.error {
 							color: rgb(245, 108, 108);
 						}
-	
+
 						.status.question {
 							color: #f9ae3d;
 						}
@@ -954,10 +897,10 @@
 				}
 			}
 		}
-	
+
 		.row2 {
 			display: flex;
-	
+
 			.item-content {
 				background: #22C572;
 				width: 30px;
@@ -970,22 +913,22 @@
 				padding: 0 2px;
 				margin: 0 auto;
 			}
-	
+
 			.status {
 				position: absolute;
 				top: 0;
 				right: 0;
 			}
 		}
-	
+
 		.row-line {
 			width: 1px;
 			height: 30px;
 			background: #F2F2F2;
 			margin: 10rpx 50rpx;
-	
+
 		}
-	
+
 		.audit {
 			margin-top: 20rpx;
 		}

+ 58 - 112
pages/task/audit/freight_setting_approval.vue

@@ -45,84 +45,18 @@
 
 				</u-form-item>
 				<u-form-item label="运费(元)" prop="tranPrice" label-width="250">
-					<u-input v-if='list.billingMethod==1&&list.tranType=="汽运"' v-model="list.tranPriceIng" input-align="right"
-						placeholder="请输入运费单价" />
-					<u-input v-else-if='list.billingMethod!=1&&list.tranType=="汽运"' v-model="list.tranPriceIngCar" input-align="right" placeholder="请输入运费单价" />
-					<u-input v-else v-model="list.tranPriceIng" input-align="right"
-						placeholder="请输入运费单价" />
+					<u-input v-if='list.billingMethod==1&&list.tranType=="汽运"' v-model="list.tranPriceIng"
+						input-align="right" placeholder="请输入运费单价" />
+					<u-input v-else-if='list.billingMethod!=1&&list.tranType=="汽运"' v-model="list.tranPriceIngCar"
+						input-align="right" placeholder="请输入运费单价" />
+					<u-input v-else v-model="list.tranPriceIng" input-align="right" placeholder="请输入运费单价" />
 				</u-form-item>
 				<u-form-item label="货值" prop="tranPrice" label-width="250">
-					<u-input  v-model="list.goodsValueIng" input-align="right"
-						placeholder="请输入货值" />
+					<u-input v-model="list.goodsValueIng" input-align="right" placeholder="请输入货值" />
 				</u-form-item>
 			</u-form>
 		</view>
-		<u-form ref="uForm">
-			<view class="form_top">流程</view>
-			<view class="content2">
-				<view v-for="(item,index) in auditList" :key='index' class="audit">
-					<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-						<view class="row-left">
-							<view class="item1">
-								<view class="item-content">{{item.operatorTitle}}</view>
-								<view v-if="item.status=='success'" class='status success'>
-									<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='error'" class='status error'>
-									<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='question'" class='status question'>
-									<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-								</view>
-							</view>
-						</view>
-						<view class="row-right">
-							<view class="right-item">
-								<view class="item2">
-									<view class="name">{{item.desc}}
-									</view>
-									<!-- <view class='time'>{{item.updateDate}}</view> -->
-									<view v-if="item.status=='success'" class="status success">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1&&index!=0'>已审核</text></view>
-									<view v-if="item.status=='error'" class="status error">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
-									</view>
-									<view v-if="item.status=='question'" class="status question">
-										{{item.commonStaffs1?item.staffscontent:''}}<text
-											v-if='!item.commonStaffs1'>未审核</text></view>
-									<!-- <view  class="status success">吕波(已审核)</view> -->
-								</view>
-								<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
-									class='time'>
-									{{item.updateDate}}
-								</view>
-							</view>
-							<view v-if='item.auditMind' class="right-content">
-								{{item.auditMind}}
-							</view>
-						</view>
-						<view v-if='item.commonStaffs1' class="right">
-							<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
-							</u-icon>
-						</view>
-					</view>
-					<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-						<view class='row2'>
-							<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-								<view class="item-content">
-									<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-									<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-								</view>
-								<view class="name">{{item1.staffName}}</view>
-							</view>
-						</view>
-					</view>
-					<view class="row-line" v-if="index!= auditList.length - 1 &&item.desc!='_PLACEHOLDER_'"></view>
-				</view>
-			</view>
-		</u-form>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<u-modal v-model="show" :title-style="{fontSize: '18px',fontWeight:'500'}"
 			:content-style="{fontSize: '14px',fontWeight:'400'}" confirm-color='#22C572' confirm-text='确定' title='提示'
 			:showCancelButton='true' :content="content" @confirm="passSubmit" @cancel="show = false"></u-modal>
@@ -132,11 +66,15 @@
 </template>
 
 <script>
+	import flow from '@/components/flow.vue';
 	import helper from '@/common/helper.js';
 	import {
 		mapState
 	} from 'vuex';
 	export default {
+		components: {
+			flow
+		},
 		data() {
 			return {
 				isSHowBtn: true,
@@ -148,7 +86,7 @@
 				show: false,
 				rejectInfo: "", //审核意见
 				title: "提示",
-				auditList:[],
+				auditList: [],
 				content: '是否通过该设置?'
 			}
 		},
@@ -170,6 +108,9 @@
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			getList() {
 				var that = this
 				this.$api.doRequest('get', '/tranProcessInfo/getTranProcess', {
@@ -250,8 +191,8 @@
 										response.data.data[i].operatorName = response.data
 											.data[i].workflowHistoricTasks[len].operatorName
 										var time = new Date(response.data.data[i]
-											.workflowHistoricTasks[len].claimTime)
-										.getTime()
+												.workflowHistoricTasks[len].claimTime)
+											.getTime()
 										response.data.data[i].updateDate = this.$u.timeFormat(
 											time, 'mm.dd hh:MM')
 										response.data.data[i].auditMind = response.data.data[i]
@@ -267,7 +208,7 @@
 											response.data.data[i].operatorTitle = response.data
 												.data[i].desc.substring(0, 2)
 										}
-					
+
 										response.data.data[i].operatorName = response.data
 											.data[i].desc
 										var time1 = new Date(response.data.data[i].updateDate)
@@ -277,17 +218,17 @@
 										response.data.data[i].auditMind = ''
 									}
 								}
-					
+
 							}
 							console.log(response.data.data)
-							for(let i = 0 ;i<response.data.data.length;i++){
-								if(response.data.data[i].status == "error"){
+							for (let i = 0; i < response.data.data.length; i++) {
+								if (response.data.data[i].status == "error") {
 									this.auditCheck = "error"
 									break;
-								}else if(response.data.data[i].status == "question"){
+								} else if (response.data.data[i].status == "question") {
 									this.auditCheck = "question"
 									break;
-								}else{ 
+								} else {
 									this.auditCheck = "success"
 								}
 							}
@@ -312,8 +253,10 @@
 			},
 			passSubmit() {
 				var that = this
-				if (!this.list.tranPriceIng && this.list.billingMethod == 1&&this.list.tranType=="汽运" || !this.list.tranPriceIngCar && this.list
-					.billingMethod == 2&&this.list.tranType=="汽运"||!this.list.tranPriceIng &&this.list.tranType!="汽运") {
+				if (!this.list.tranPriceIng && this.list.billingMethod == 1 && this.list.tranType == "汽运" || !this.list
+					.tranPriceIngCar && this.list
+					.billingMethod == 2 && this.list.tranType == "汽运" || !this.list.tranPriceIng && this.list.tranType !=
+					"汽运") {
 					this.$api.msg('运费单价不能为空')
 					return
 				}
@@ -328,7 +271,7 @@
 				tranProcessInfo.goodsValueIng = that.list.goodsValueIng
 				tranProcessInfo.reviewer = that.userInfo.userName
 				tranProcessInfo.tranTypeKey = that.list.tranTypeKey
-				if (that.list.billingMethod == 1&&that.list.tranType=="汽运"||that.list.tranType!="汽运") {
+				if (that.list.billingMethod == 1 && that.list.tranType == "汽运" || that.list.tranType != "汽运") {
 					tranProcessInfo.tranPriceIng = that.list.tranPriceIng
 					url = '/tranProcessInfo/api/setUpTranPrice'
 				} else {
@@ -447,12 +390,13 @@
 		width: 100%;
 		justify-content: flex-end;
 	}
+
 	.u-form {
 		margin-bottom: 20rpx;
 		background: #fff;
 		border-radius: 10px;
 		padding: 30rpx 10px;
-	
+
 		.u-form-item {
 			line-height: 30px;
 			padding: 0px 0;
@@ -460,22 +404,23 @@
 			color: #878C9C;
 		}
 	}
+
 	.content2 {
 		background: white;
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		padding: 20rpx;
-	
+
 		.row {
 			display: flex;
-	
+
 			.row-left {
 				display: flex;
 				align-items: center;
-	
+
 				.item1 {
 					position: relative;
-	
+
 					.item-content {
 						background: #617AE0;
 						width: 44px;
@@ -486,7 +431,7 @@
 						font-size: 15px;
 						color: #fff;
 					}
-	
+
 					.status {
 						position: absolute;
 						border-radius: 50%;
@@ -495,27 +440,27 @@
 						bottom: -3px;
 						background: #fff;
 					}
-	
+
 					.status.success {
 						border: 1px solid rgb(60, 156, 255);
 					}
-	
+
 					.status.error {
 						border: 1px solid rgb(245, 108, 108);
 					}
-	
+
 					.status.question {
 						border: 1px solid #f9ae3d;
 					}
 				}
-	
+
 			}
-	
+
 			.row-right {
 				width: 80%;
 				// color: #B0B1B5;
 				margin-top: 10px;
-	
+
 				.right-content {
 					background: #F2F3F7;
 					margin-left: 10px;
@@ -524,33 +469,33 @@
 					border-radius: 5px;
 					color: #B0B1B5;
 				}
-	
+
 				.right-item {
 					display: flex;
 					justify-content: space-between;
-	
+
 					.time {
 						color: #999;
 					}
-	
+
 					.item2 {
 						margin-left: 20rpx;
 						margin-top: -7px;
-	
+
 						.name {
 							font-size: 28rpx;
 							font-weight: 800;
 							margin-bottom: 4px;
 						}
-	
+
 						.status.success {
 							color: #6CC48C;
 						}
-	
+
 						.status.error {
 							color: rgb(245, 108, 108);
 						}
-	
+
 						.status.question {
 							color: #f9ae3d;
 						}
@@ -558,10 +503,10 @@
 				}
 			}
 		}
-	
+
 		.row2 {
 			display: flex;
-	
+
 			.item-content {
 				background: #22C572;
 				width: 30px;
@@ -574,27 +519,28 @@
 				padding: 0 2px;
 				margin: 0 auto;
 			}
-	
+
 			.status {
 				position: absolute;
 				top: 0;
 				right: 0;
 			}
 		}
-	
+
 		.row-line {
 			width: 1px;
 			height: 30px;
 			background: #F2F2F2;
 			margin: 10rpx 50rpx;
-	
+
 		}
-	
+
 		.audit {
 			margin-top: 20rpx;
 		}
 	}
-	.warp{
-		padding-bottom:30rpx;
+
+	.warp {
+		padding-bottom: 30rpx;
 	}
 </style>

+ 168 - 221
pages/task/audit/freight_setting_details.vue

@@ -37,100 +37,42 @@
 					<u-input v-model="list.receiveDetailedAddress" input-align="right" placeholder="收货地址" disabled />
 				</u-form-item>
 				<u-form-item label="运费(元)" prop="tranPrice" label-width="250">
-					<u-input v-if='list.billingMethod==2&&list.tranPriceCar!=0' v-model="list.tranPriceCar" input-align="right" placeholder="请输入运费单价" disabled/>
-					<u-input v-else-if='list.billingMethod==2&&list.tranPriceCar==0' v-model="list.tranPriceIngCar" input-align="right" placeholder="请输入运费单价" disabled/>
-					<u-input v-else-if='list.billingMethod==1&&list.tranPrice==0' v-model="list.tranPriceIng" input-align="right" placeholder="请输入运费单价" disabled/>
-					<u-input v-else-if='list.tranPrice' v-model="list.tranPrice" input-align="right" placeholder="请输入运费单价" disabled/>
-					<u-input v-else v-model="list.tranPriceIng" input-align="right" placeholder="请输入运费单价" disabled/>
+					<u-input v-if='list.billingMethod==2&&list.tranPriceCar!=0' v-model="list.tranPriceCar"
+						input-align="right" placeholder="请输入运费单价" disabled />
+					<u-input v-else-if='list.billingMethod==2&&list.tranPriceCar==0' v-model="list.tranPriceIngCar"
+						input-align="right" placeholder="请输入运费单价" disabled />
+					<u-input v-else-if='list.billingMethod==1&&list.tranPrice==0' v-model="list.tranPriceIng"
+						input-align="right" placeholder="请输入运费单价" disabled />
+					<u-input v-else-if='list.tranPrice' v-model="list.tranPrice" input-align="right"
+						placeholder="请输入运费单价" disabled />
+					<u-input v-else v-model="list.tranPriceIng" input-align="right" placeholder="请输入运费单价" disabled />
 				</u-form-item>
 				<u-form-item label="货值" prop="tranPrice" label-width="250">
-					<u-input  v-model="list.goodsValue" input-align="right"
-						placeholder="请输入货值" />
+					<u-input v-model="list.goodsValue" input-align="right" placeholder="请输入货值" />
 				</u-form-item>
 			</u-form>
 		</view>
-		<u-form ref="uForm">
-			<view class="form_top">流程</view>
-			<view class="content2">
-				<view v-for="(item,index) in auditList" :key='index' class="audit">
-					<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-						<view class="row-left">
-							<view class="item1">
-								<view class="item-content">{{item.operatorTitle}}</view>
-								<view v-if="item.status=='success'" class='status success'>
-									<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='error'" class='status error'>
-									<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='question'" class='status question'>
-									<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-								</view>
-							</view>
-						</view>
-						<view class="row-right">
-							<view class="right-item">
-								<view class="item2">
-									<view class="name">{{item.desc}}
-									</view>
-									<!-- <view class='time'>{{item.updateDate}}</view> -->
-									<view v-if="item.status=='success'" class="status success">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1&&index!=0'>已审核</text></view>
-									<view v-if="item.status=='error'" class="status error">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
-									</view>
-									<view v-if="item.status=='question'" class="status question">
-										{{item.commonStaffs1?item.staffscontent:''}}<text
-											v-if='!item.commonStaffs1'>未审核</text></view>
-									<!-- <view  class="status success">吕波(已审核)</view> -->
-								</view>
-								<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
-									class='time'>
-									{{item.updateDate}}
-								</view>
-							</view>
-							<view v-if='item.auditMind' class="right-content">
-								{{item.auditMind}}
-							</view>
-						</view>
-						<view v-if='item.commonStaffs1' class="right">
-							<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
-							</u-icon>
-						</view>
-					</view>
-					<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-						<view class='row2'>
-							<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-								<view class="item-content">
-									<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-									<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-								</view>
-								<view class="name">{{item1.staffName}}</view>
-							</view>
-						</view>
-					</view>
-					<view class="row-line" v-if="index!= auditList.length - 1 &&item.desc!='_PLACEHOLDER_'"></view>
-				</view>
-			</view>
-		</u-form>
-	     <u-button type="success" class="submit" @click="fanHui()">返回</u-button>
+		<flow :auditList="auditList" @status='getStatus'></flow>
+		<u-button type="success" class="submit" @click="fanHui()">返回</u-button>
 	</view>
 </template>
 
 <script>
+	import flow from '@/components/flow.vue';
 	import {
 		mapState
 	} from 'vuex';
 	export default {
+		components: {
+			flow
+		},
 		data() {
 			return {
 				list: {
-					priceStatus:"",
+					priceStatus: "",
 				},
 				id: "",
-				auditList:[]
+				auditList: []
 			}
 		},
 		onLoad(options) {
@@ -141,146 +83,149 @@
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			getList() {
-				var that =this
+				var that = this
 				this.$api.doRequest('get', '/tranProcessInfo/getTranProcess', {
 					id: this.id
 				}).then(res => {
 					this.list = res.data.data
 					this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
-							businessCode: 'YUNJIA-TRAN-APPROVE',
-							tmpCompId: uni.getStorageSync('pcUserInfo').compId
-						}).then(res1 => {
-							this.$api.doRequest('get', '/commonUser/getHis', {
-								workflowId: res1.data.data[0].id,
-								businessKey: this.id,
-								// branch:'zt'
-							}).then(response => {
-								uni.hideLoading()
-								for (let i = 0; i < response.data.data.length; i++) {
-									this.$set(response.data.data[i], 'status', 'question')
-									console.log(response.data.data[i].workflowHistoricTasks, i)
-									if (response.data.data[i].commonStaffs) {
-										response.data.data[i].showflow = false
-										response.data.data[i].operatorTitle = response.data.data[i]
-											.desc.substring(0, 2)
-										response.data.data[i].operatorName = response.data.data[i]
-											.desc
-										response.data.data[i].staffscontent = '共' + response.data
-											.data[i].commonStaffs.length + '人,当前审核' + response.data
-											.data[i].workflowHistoricTasks.length + '人'
-										if (response.data.data[i].workflowHistoricTasks && response
-											.data.data[i].workflowHistoricTasks.length > 0) {
-											if (response.data.data[i].workflowHistoricTasks
-												.length != response.data.data[i].commonStaffs
-												.length) {
-												// response.data.data[i].status='question'
-												this.$set(response.data.data[i], 'status',
-													'question')
-											} else {
-												this.$set(response.data.data[i], 'status',
-													'success')
-												// response.data.data[i].status='success'
-											}
-											response.data.data[i].workflowlen = response.data.data[
-												i].workflowHistoricTasks.length
-											var workflowdata = response.data.data[i]
-												.workflowHistoricTasks
-											var staffsdata = response.data.data[i].commonStaffs
-											for (let q = 0; q < staffsdata.length; q++) {
-												staffsdata[q].status = false
-												staffsdata[q].staffTitle = staffsdata[q].staffName
-												for (let k = 0; k < workflowdata.length; k++) {
-													if (staffsdata[q].staffId == workflowdata[k]
-														.operatorId) {
-														staffsdata[q].status = true
-													}
+						businessCode: 'YUNJIA-TRAN-APPROVE',
+						tmpCompId: uni.getStorageSync('pcUserInfo').compId
+					}).then(res1 => {
+						this.$api.doRequest('get', '/commonUser/getHis', {
+							workflowId: res1.data.data[0].id,
+							businessKey: this.id,
+							// branch:'zt'
+						}).then(response => {
+							uni.hideLoading()
+							for (let i = 0; i < response.data.data.length; i++) {
+								this.$set(response.data.data[i], 'status', 'question')
+								console.log(response.data.data[i].workflowHistoricTasks, i)
+								if (response.data.data[i].commonStaffs) {
+									response.data.data[i].showflow = false
+									response.data.data[i].operatorTitle = response.data.data[i]
+										.desc.substring(0, 2)
+									response.data.data[i].operatorName = response.data.data[i]
+										.desc
+									response.data.data[i].staffscontent = '共' + response.data
+										.data[i].commonStaffs.length + '人,当前审核' + response.data
+										.data[i].workflowHistoricTasks.length + '人'
+									if (response.data.data[i].workflowHistoricTasks && response
+										.data.data[i].workflowHistoricTasks.length > 0) {
+										if (response.data.data[i].workflowHistoricTasks
+											.length != response.data.data[i].commonStaffs
+											.length) {
+											// response.data.data[i].status='question'
+											this.$set(response.data.data[i], 'status',
+												'question')
+										} else {
+											this.$set(response.data.data[i], 'status',
+												'success')
+											// response.data.data[i].status='success'
+										}
+										response.data.data[i].workflowlen = response.data.data[
+											i].workflowHistoricTasks.length
+										var workflowdata = response.data.data[i]
+											.workflowHistoricTasks
+										var staffsdata = response.data.data[i].commonStaffs
+										for (let q = 0; q < staffsdata.length; q++) {
+											staffsdata[q].status = false
+											staffsdata[q].staffTitle = staffsdata[q].staffName
+											for (let k = 0; k < workflowdata.length; k++) {
+												if (staffsdata[q].staffId == workflowdata[k]
+													.operatorId) {
+													staffsdata[q].status = true
 												}
 											}
 										}
-										response.data.data[i].commonStaffs1 = response.data.data[i]
-											.commonStaffs
-									} else {
-										if (response.data.data[i].workflowHistoricTasks && response
-											.data.data[i].workflowHistoricTasks.length > 0) {
-											var len = response.data.data[i].workflowHistoricTasks
-												.length - 1
-											if (response.data.data[i].workflowHistoricTasks[len]
-												.approved) {
-												this.$set(response.data.data[i], 'status',
-													'success')
-											} else {
-												this.$set(response.data.data[i], 'status', 'error')
-											}
-											response.data.data[i].operatorTitle = response.data
-												.data[i].workflowHistoricTasks[len].operatorName
-												.substring(response.data.data[i]
-													.workflowHistoricTasks[0].operatorName.length -
-													2)
-											response.data.data[i].operatorName = response.data
-												.data[i].workflowHistoricTasks[len].operatorName
-											var time = new Date(response.data.data[i]
+									}
+									response.data.data[i].commonStaffs1 = response.data.data[i]
+										.commonStaffs
+								} else {
+									if (response.data.data[i].workflowHistoricTasks && response
+										.data.data[i].workflowHistoricTasks.length > 0) {
+										var len = response.data.data[i].workflowHistoricTasks
+											.length - 1
+										if (response.data.data[i].workflowHistoricTasks[len]
+											.approved) {
+											this.$set(response.data.data[i], 'status',
+												'success')
+										} else {
+											this.$set(response.data.data[i], 'status', 'error')
+										}
+										response.data.data[i].operatorTitle = response.data
+											.data[i].workflowHistoricTasks[len].operatorName
+											.substring(response.data.data[i]
+												.workflowHistoricTasks[0].operatorName.length -
+												2)
+										response.data.data[i].operatorName = response.data
+											.data[i].workflowHistoricTasks[len].operatorName
+										var time = new Date(response.data.data[i]
 												.workflowHistoricTasks[len].claimTime)
 											.getTime()
-											response.data.data[i].updateDate = this.$u.timeFormat(
-												time, 'mm.dd hh:MM')
-											response.data.data[i].auditMind = response.data.data[i]
-												.workflowHistoricTasks[len].auditMind
+										response.data.data[i].updateDate = this.$u.timeFormat(
+											time, 'mm.dd hh:MM')
+										response.data.data[i].auditMind = response.data.data[i]
+											.workflowHistoricTasks[len].auditMind
+									} else {
+										this.$set(response.data.data[i], 'status', 'question')
+										// response.data.data[i].status='question'
+										if (response.data.data[i].desc == '总经理助理审核') {
+											response.data.data[i].operatorTitle = '总助'
+										} else if (response.data.data[i].desc == '杜大光审核') {
+											response.data.data[i].operatorTitle = '大光'
 										} else {
-											this.$set(response.data.data[i], 'status', 'question')
-											// response.data.data[i].status='question'
-											if (response.data.data[i].desc == '总经理助理审核') {
-												response.data.data[i].operatorTitle = '总助'
-											} else if (response.data.data[i].desc == '杜大光审核') {
-												response.data.data[i].operatorTitle = '大光'
-											} else {
-												response.data.data[i].operatorTitle = response.data
-													.data[i].desc.substring(0, 2)
-											}
-						
-											response.data.data[i].operatorName = response.data
-												.data[i].desc
-											var time1 = new Date(response.data.data[i].updateDate)
-												.getTime()
-											response.data.data[i].updateDate = this.$u.timeFormat(
-												time1, 'mm.dd hh:MM')
-											response.data.data[i].auditMind = ''
+											response.data.data[i].operatorTitle = response.data
+												.data[i].desc.substring(0, 2)
 										}
+
+										response.data.data[i].operatorName = response.data
+											.data[i].desc
+										var time1 = new Date(response.data.data[i].updateDate)
+											.getTime()
+										response.data.data[i].updateDate = this.$u.timeFormat(
+											time1, 'mm.dd hh:MM')
+										response.data.data[i].auditMind = ''
 									}
-						
 								}
-								console.log(response.data.data)
-								for(let i = 0 ;i<response.data.data.length;i++){
-									if(response.data.data[i].status == "error"){
-										this.auditCheck = "error"
-										break;
-									}else if(response.data.data[i].status == "question"){
-										this.auditCheck = "question"
-										break;
-									}else{ 
-										this.auditCheck = "success"
-									}
+
+							}
+							console.log(response.data.data)
+							for (let i = 0; i < response.data.data.length; i++) {
+								if (response.data.data[i].status == "error") {
+									this.auditCheck = "error"
+									break;
+								} else if (response.data.data[i].status == "question") {
+									this.auditCheck = "question"
+									break;
+								} else {
+									this.auditCheck = "success"
 								}
-								this.auditList = response.data.data
-								var time2 = new Date(this.list[0].createDate).getTime()
-								var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
-								this.auditList.unshift({
-									operatorTitle: this.list[0].requester.substring(0, 2),
-									operatorName: this.list[0].requester,
-									updateDate: time3,
-									auditMind: '',
-									desc: '发起申请',
-									showflow: false,
-									commonStaffs1: null,
-									commonStaffs: null,
-									workflowHistoricTasks: [],
-									status: 'success'
-								})
+							}
+							this.auditList = response.data.data
+							var time2 = new Date(this.list[0].createDate).getTime()
+							var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
+							this.auditList.unshift({
+								operatorTitle: this.list[0].requester.substring(0, 2),
+								operatorName: this.list[0].requester,
+								updateDate: time3,
+								auditMind: '',
+								desc: '发起申请',
+								showflow: false,
+								commonStaffs1: null,
+								commonStaffs: null,
+								workflowHistoricTasks: [],
+								status: 'success'
 							})
 						})
 					})
+				})
 			},
-			fanHui(){
+			fanHui() {
 				uni.navigateBack()
 			}
 		}
@@ -348,12 +293,13 @@
 		border-radius: 40rpx;
 		margin-top: 40rpx;
 	}
+
 	.u-form {
 		margin-bottom: 20rpx;
 		background: #fff;
 		border-radius: 10px;
 		padding: 30rpx 10px;
-	
+
 		.u-form-item {
 			line-height: 30px;
 			padding: 0px 0;
@@ -361,22 +307,23 @@
 			color: #878C9C;
 		}
 	}
+
 	.content2 {
 		background: white;
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		padding: 20rpx;
-	
+
 		.row {
 			display: flex;
-	
+
 			.row-left {
 				display: flex;
 				align-items: center;
-	
+
 				.item1 {
 					position: relative;
-	
+
 					.item-content {
 						background: #617AE0;
 						width: 44px;
@@ -387,7 +334,7 @@
 						font-size: 15px;
 						color: #fff;
 					}
-	
+
 					.status {
 						position: absolute;
 						border-radius: 50%;
@@ -396,27 +343,27 @@
 						bottom: -3px;
 						background: #fff;
 					}
-	
+
 					.status.success {
 						border: 1px solid rgb(60, 156, 255);
 					}
-	
+
 					.status.error {
 						border: 1px solid rgb(245, 108, 108);
 					}
-	
+
 					.status.question {
 						border: 1px solid #f9ae3d;
 					}
 				}
-	
+
 			}
-	
+
 			.row-right {
 				width: 80%;
 				// color: #B0B1B5;
 				margin-top: 10px;
-	
+
 				.right-content {
 					background: #F2F3F7;
 					margin-left: 10px;
@@ -425,33 +372,33 @@
 					border-radius: 5px;
 					color: #B0B1B5;
 				}
-	
+
 				.right-item {
 					display: flex;
 					justify-content: space-between;
-	
+
 					.time {
 						color: #999;
 					}
-	
+
 					.item2 {
 						margin-left: 20rpx;
 						margin-top: -7px;
-	
+
 						.name {
 							font-size: 28rpx;
 							font-weight: 800;
 							margin-bottom: 4px;
 						}
-	
+
 						.status.success {
 							color: #6CC48C;
 						}
-	
+
 						.status.error {
 							color: rgb(245, 108, 108);
 						}
-	
+
 						.status.question {
 							color: #f9ae3d;
 						}
@@ -459,10 +406,10 @@
 				}
 			}
 		}
-	
+
 		.row2 {
 			display: flex;
-	
+
 			.item-content {
 				background: #22C572;
 				width: 30px;
@@ -475,22 +422,22 @@
 				padding: 0 2px;
 				margin: 0 auto;
 			}
-	
+
 			.status {
 				position: absolute;
 				top: 0;
 				right: 0;
 			}
 		}
-	
+
 		.row-line {
 			width: 1px;
 			height: 30px;
 			background: #F2F2F2;
 			margin: 10rpx 50rpx;
-	
+
 		}
-	
+
 		.audit {
 			margin-top: 20rpx;
 		}

+ 135 - 171
pages/task/audit/freight_settlement_approval.vue

@@ -98,72 +98,7 @@
 
 			</view>
 		</view>
-		<u-form ref="uForm">
-			<view class="form_top">流程</view>
-			<view class="content2">
-				<view v-for="(item,index) in auditList" :key='index' class="audit">
-					<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-						<view class="row-left">
-							<view class="item1">
-								<view class="item-content">{{item.operatorTitle}}</view>
-								<view v-if="item.status=='success'" class='status success'>
-									<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='error'" class='status error'>
-									<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='question'" class='status question'>
-									<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-								</view>
-							</view>
-						</view>
-						<view class="row-right">
-							<view class="right-item">
-								<view class="item2">
-									<view class="name">{{item.desc}}
-									</view>
-									<!-- <view class='time'>{{item.updateDate}}</view> -->
-									<view v-if="item.status=='success'" class="status success">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1&&index!=0'>已审核</text></view>
-									<view v-if="item.status=='error'" class="status error">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
-									</view>
-									<view v-if="item.status=='question'" class="status question">
-										{{item.commonStaffs1?item.staffscontent:''}}<text
-											v-if='!item.commonStaffs1'>未审核</text></view>
-									<!-- <view  class="status success">吕波(已审核)</view> -->
-								</view>
-								<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
-									class='time'>
-									{{item.updateDate}}
-								</view>
-							</view>
-							<view v-if='item.auditMind' class="right-content">
-								{{item.auditMind}}
-							</view>
-						</view>
-						<view v-if='item.commonStaffs1' class="right">
-							<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
-							</u-icon>
-						</view>
-					</view>
-					<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-						<view class='row2'>
-							<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-								<view class="item-content">
-									<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-									<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-								</view>
-								<view class="name">{{item1.staffName}}</view>
-							</view>
-						</view>
-					</view>
-					<view class="row-line" v-if="index!= auditList.length - 1 &&item.desc!='_PLACEHOLDER_'"></view>
-				</view>
-			</view>
-		</u-form>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view v-if='show' class="shade">
 			<view class="wrap">
 				<view class="alert-top">
@@ -192,8 +127,12 @@
 </template>
 
 <script>
+	import flow from '@/components/flow.vue';
 	import helper from '@/common/helper.js';
 	export default {
+		components: {
+			flow
+		},
 		data() {
 			return {
 				isSHowBtn: true,
@@ -203,10 +142,10 @@
 					approveStatus: "",
 				},
 				title: '',
-				num:0,
+				num: 0,
 				show: false,
 				height: 200,
-				auditList:[],
+				auditList: [],
 				auditMind: '',
 				autoHeight: true,
 				border: false,
@@ -232,20 +171,20 @@
 		},
 		methods: {
 			getList() {
-				var that =this
+				var that = this
 				this.$api.doRequest('get', '/tranSettlementReport/getTranSettlementReport', {
 					batchId: this.id
 				}).then(res => {
 					if (res.data.code == 200) {
-						if(res.data.data.length>0){
-							this.num=0
+						if (res.data.data.length > 0) {
+							this.num = 0
 							for (var i = 0; i < res.data.data.length; i++) {
-								if(res.data.data[i].totalPayable){
-									this.num+=res.data.data[i].totalPayable	
+								if (res.data.data[i].totalPayable) {
+									this.num += res.data.data[i].totalPayable
 								}
 							}
 						}
-						this.num=this.num.toFixed(2)
+						this.num = this.num.toFixed(2)
 						this.list = res.data.data
 						// console.log(this.list, 124)
 						// 查流程
@@ -322,8 +261,8 @@
 											response.data.data[i].operatorName = response.data
 												.data[i].workflowHistoricTasks[len].operatorName
 											var time = new Date(response.data.data[i]
-												.workflowHistoricTasks[len].claimTime)
-											.getTime()
+													.workflowHistoricTasks[len].claimTime)
+												.getTime()
 											response.data.data[i].updateDate = this.$u.timeFormat(
 												time, 'mm.dd hh:MM')
 											response.data.data[i].auditMind = response.data.data[i]
@@ -339,7 +278,7 @@
 												response.data.data[i].operatorTitle = response.data
 													.data[i].desc.substring(0, 2)
 											}
-						
+
 											response.data.data[i].operatorName = response.data
 												.data[i].desc
 											var time1 = new Date(response.data.data[i].updateDate)
@@ -349,17 +288,17 @@
 											response.data.data[i].auditMind = ''
 										}
 									}
-						
+
 								}
 								console.log(response.data.data)
-								for(let i = 0 ;i<response.data.data.length;i++){
-									if(response.data.data[i].status == "error"){
+								for (let i = 0; i < response.data.data.length; i++) {
+									if (response.data.data[i].status == "error") {
 										this.auditCheck = "error"
 										break;
-									}else if(response.data.data[i].status == "question"){
+									} else if (response.data.data[i].status == "question") {
 										this.auditCheck = "question"
 										break;
-									}else{ 
+									} else {
 										this.auditCheck = "success"
 									}
 								}
@@ -405,7 +344,7 @@
 				// 		})
 				// 	}
 				// })
-				
+
 			},
 			close() {
 				this.show = false
@@ -467,7 +406,7 @@
 					this.$api.doRequest('post', '/newWorkflow/api/handle', {
 						taskId: list.taskId,
 						approved: status,
-						auditMind: this.auditMind ,
+						auditMind: this.auditMind,
 						needReapply: status2 != undefined ? true : false,
 					}).then(res => {
 						if (status == true) {
@@ -494,12 +433,13 @@
 		margin: 10rpx;
 		padding: 20rpx 20rpx 230rpx 20rpx;
 	}
+
 	.u-form {
 		margin-bottom: 20rpx;
 		background: #fff;
 		border-radius: 10px;
 		padding: 30rpx 10px;
-	
+
 		.u-form-item {
 			line-height: 30px;
 			padding: 0px 0;
@@ -507,6 +447,7 @@
 			color: #878C9C;
 		}
 	}
+
 	.content {
 		.top {
 			display: flex;
@@ -531,8 +472,8 @@
 
 		.top_info {
 			margin: 10rpx 0;
-			width:70%;
-			text-align:right;
+			width: 70%;
+			text-align: right;
 		}
 
 		.title {
@@ -774,16 +715,17 @@
 		padding: 20rpx 30rpx;
 		position: relative;
 	}
+
 	.container {
 		padding: 20rpx 20rpx 250rpx 20rpx;
 	}
-	
+
 	.u-form {
 		margin-bottom: 20rpx;
 		background: #fff;
 		border-radius: 10px;
 		padding: 30rpx 10px;
-	
+
 		.u-form-item {
 			line-height: 30px;
 			padding: 0px 0;
@@ -791,22 +733,22 @@
 			color: #878C9C;
 		}
 	}
-	
+
 	.content {
 		margin-top: 30rpx;
-	
+
 		.top {
 			display: flex;
 			justify-content: space-between;
 		}
-	
+
 		.content-item {
 			border-radius: 20rpx;
 			background: white;
 			padding: 40rpx 20rpx;
 			margin-bottom: 30rpx;
 		}
-	
+
 		.title {
 			font-size: 32rpx;
 			font-weight: 600;
@@ -814,23 +756,23 @@
 			text-align: left;
 			margin: 20rpx 0;
 		}
-	
+
 		.car-container {
 			border-bottom: 2rpx solid #EEEEEE;
 		}
-	
+
 		.car-type-item {
 			font-size: 28rpx;
 			margin: 20rpx 0;
 			color: #878C9C;
 		}
-	
+
 		.weightInfoCss {
 			font-size: 28rpx;
 			color: #333333;
 			font-weight: 500;
 		}
-	
+
 		.row {
 			display: flex;
 			justify-content: space-between;
@@ -840,19 +782,19 @@
 			// 	// color: #333333;
 			// }
 		}
-	
+
 		.money {
 			font-size: 32rpx;
 			font-weight: 500;
 			margin-bottom: 30rpx;
 		}
-	
+
 		.moneyInfo {
 			color: #22C572;
 			font-size: 32rpx;
 		}
 	}
-	
+
 	.bottom-btn {
 		width: 100%;
 		position: fixed;
@@ -862,43 +804,43 @@
 		left: 0;
 		background-color: #f8f8f8;
 		flex-direction: column;
-	
+
 		.btn1,
 		.btn2 {
 			width: 100%;
 			margin-bottom: 26rpx;
 			border-radius: 90rpx;
 		}
-	
+
 		.btn1 {
 			background: white;
 			color: #00C265;
 		}
 	}
-	
+
 	.topInfo {
 		height: 210rpx;
 		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
 		padding: 30rpx;
-	
+
 		.topInfo-item {
 			height: 150rpx;
 			background-color: #FFFFFF;
 			border-radius: 20rpx;
 			padding: 40rpx;
-	
+
 			.logo {
 				width: 40rpx;
 				height: 40rpx;
 				margin-top: 8rpx;
 			}
-	
+
 			.infoText {
 				font-size: 36rpx;
 				font-weight: 600;
 				margin-left: 20rpx;
 			}
-	
+
 			.infoData {
 				color: #878C9C;
 				font-size: 26rpx;
@@ -906,7 +848,7 @@
 			}
 		}
 	}
-	
+
 	.shade {
 		position: fixed;
 		top: 0;
@@ -915,7 +857,7 @@
 		width: 100%;
 		background: rgba(0, 0, 0, 0.4);
 		z-index: 3;
-	
+
 		.wrap {
 			position: absolute;
 			left: 0;
@@ -927,7 +869,7 @@
 			width: calc(100% - 198rpx);
 			height: 700rpx;
 			border-radius: 20rpx;
-	
+
 			.alert-top {
 				padding: 33rpx;
 				display: flex;
@@ -935,20 +877,20 @@
 				align-items: center;
 				position: relative;
 			}
-	
+
 			.title {
 				font-size: 32rpx;
 				font-weight: 600;
 				color: #333333;
 			}
-	
+
 			.close {
 				position: absolute;
 				right: 33rpx;
 			}
 		}
 	}
-	
+
 	.cancel,
 	.confirm {
 		position: absolute;
@@ -960,18 +902,18 @@
 		border-top: 1px solid #eee;
 		font-size: 34rpx;
 	}
-	
+
 	.cancel {
 		left: 0;
 		border-right: 1px solid #eee;
 		color: #AFB3BF;
 	}
-	
+
 	.confirm {
 		right: 0;
 		color: #22C572;
 	}
-	
+
 	.textarea {
 		margin: 18rpx auto;
 		width: 100%;
@@ -981,7 +923,7 @@
 		font-size: 28rpx;
 		padding: 10px;
 	}
-	
+
 	.textCss {
 		display: flex;
 		justify-content: flex-end;
@@ -989,7 +931,7 @@
 		text-align: right;
 		color: #333333;
 	}
-	
+
 	.u-textarea-style {
 		margin: 20rpx;
 		background: #F9F9FA;
@@ -997,11 +939,13 @@
 		border: 1px solid #EEEEEE;
 		padding: 10rpx 20rpx;
 		position: relative;
-	
-		height:240px;
-		/deep/.uni-textarea-textarea{
+
+		height: 240px;
+
+		/deep/.uni-textarea-textarea {
 			width: 80%;
 		}
+
 		.right-bottom {
 			position: absolute;
 			right: 20rpx;
@@ -1009,27 +953,27 @@
 			color: #AFB3BF;
 		}
 	}
-	
+
 	/deep/.u-input__textarea {
 		height: 300rpx !important;
 	}
-	
+
 	.content2 {
 		background: white;
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		padding: 20rpx;
-	
+
 		.row {
 			display: flex;
-	
+
 			.row-left {
 				display: flex;
 				align-items: center;
-	
+
 				.item1 {
 					position: relative;
-	
+
 					.item-content {
 						background: #617AE0;
 						width: 44px;
@@ -1040,7 +984,7 @@
 						font-size: 15px;
 						color: #fff;
 					}
-	
+
 					.status {
 						position: absolute;
 						border-radius: 50%;
@@ -1049,27 +993,27 @@
 						bottom: -3px;
 						background: #fff;
 					}
-	
+
 					.status.success {
 						border: 1px solid rgb(60, 156, 255);
 					}
-	
+
 					.status.error {
 						border: 1px solid rgb(245, 108, 108);
 					}
-	
+
 					.status.question {
 						border: 1px solid #f9ae3d;
 					}
 				}
-	
+
 			}
-	
+
 			.row-right {
 				width: 80%;
 				// color: #B0B1B5;
 				margin-top: 10px;
-	
+
 				.right-content {
 					background: #F2F3F7;
 					margin-left: 10px;
@@ -1078,33 +1022,33 @@
 					border-radius: 5px;
 					color: #B0B1B5;
 				}
-	
+
 				.right-item {
 					display: flex;
 					justify-content: space-between;
-	
+
 					.time {
 						color: #999;
 					}
-	
+
 					.item2 {
 						margin-left: 20rpx;
 						margin-top: -7px;
-	
+
 						.name {
 							font-size: 28rpx;
 							font-weight: 800;
 							margin-bottom: 4px;
 						}
-	
+
 						.status.success {
 							color: #6CC48C;
 						}
-	
+
 						.status.error {
 							color: rgb(245, 108, 108);
 						}
-	
+
 						.status.question {
 							color: #f9ae3d;
 						}
@@ -1112,10 +1056,10 @@
 				}
 			}
 		}
-	
+
 		.row2 {
 			display: flex;
-	
+
 			.item-content {
 				background: #22C572;
 				width: 30px;
@@ -1128,119 +1072,138 @@
 				padding: 0 2px;
 				margin: 0 auto;
 			}
-	
+
 			.status {
 				position: absolute;
 				top: 0;
 				right: 0;
 			}
 		}
-	
+
 		.row-line {
 			width: 1px;
 			height: 30px;
 			background: #F2F2F2;
 			margin: 10rpx 50rpx;
-	
+
 		}
-	
+
 		.audit {
 			margin-top: 20rpx;
 		}
 	}
-	
+
 	.form_top {
 		border-bottom: 1px solid #C7CAD6;
 		padding-bottom: 10px;
 		font-size: 30rpx;
 		font-weight: 600;
 	}
-	.form_view{
+
+	.form_view {
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		background: #F9F9FA;
 		padding: 30rpx 20rpx;
 	}
-	.label_css{
+
+	.label_css {
 		font-size: 26rpx;
 		color: #878C9C;
 	}
-	.input_css{
+
+	.input_css {
 		font-size: 20rpx;
 	}
-	/deep/.uni-textarea-wrapper{
-		height:200px;
+
+	/deep/.uni-textarea-wrapper {
+		height: 200px;
 	}
-	
+
 	// .fujian_title{
 	// 	font-size: 34rpx;
 	// 	margin-top: 20px;
 	// 	font-weight: 600;
 	// 	// margin-left: 10px;
 	// }
-	.headInfo{
+	.headInfo {
 		height: 100px;
 		background-color: #FFFFFF;
 		margin-bottom: 20rpx;
 		border-radius: 10px;
 		padding: 30rpx 10px;
 		display: flex;
-		.headInfo_left{
+
+		.headInfo_left {
 			width: 10%;
 			line-height: 60px;
 			text-align: center;
 		}
-		.headInfo_middle{
+
+		.headInfo_middle {
 			width: 70%;
 			padding-left: 10px;
 		}
-		.headInfo_right{
+
+		.headInfo_right {
 			width: 20%;
 			line-height: 60px;
-			.char_a{
+
+			.char_a {
 				color: #22C572;
 			}
-			.char_b{
-				 color: #FE6430;
+
+			.char_b {
+				color: #FE6430;
 			}
-			.char_c{
+
+			.char_c {
 				color: #FB2323;
 			}
-			.char_a,.char_b,.char_c{
+
+			.char_a,
+			.char_b,
+			.char_c {
 				font-size: 16px;
 			}
 		}
-		.adopt{
+
+		.adopt {
 			position: absolute;
 			right: 30px;
 			top: 60px;
-			.adopt_img{
+
+			.adopt_img {
 				width: 90px;
 				height: 90px;
 			}
 		}
-		.headInfo_title{
+
+		.headInfo_title {
 			font-size: 19px;
 			color: #333333;
 			font-weight: 600;
 		}
-		.headInfo_No{
+
+		.headInfo_No {
 			color: #878C9C;
 			font-size: 13px;
 			margin-top: 10px;
 		}
 	}
-	
+
 	.img_item {
 		display: flex;
 		width: 100%;
 		margin: 10px 0;
 		padding: 0 10rpx;
-		.imgsign{
+
+		.imgsign {
 			width: 25px;
 			height: 25px;
 			margin-top: 6px;
 		}
+
 		.char_css {
 			font-size: 28rpx;
 			font-weight: 600;
@@ -1253,12 +1216,13 @@
 			text-overflow: ellipsis;
 			word-break: break-all;
 		}
-		.img_size{
+
+		.img_size {
 			color: #B0B3BF;
 			font-size: 12px;
 			margin-top: 5px;
 		}
-	
+
 		.img_dowload {
 			width: 14%;
 			color: #22C572;

+ 40 - 96
pages/task/audit/freight_settlement_approvalcopy.vue

@@ -56,22 +56,22 @@
 							<view style="margin-top: 20rpx;" v-for='item in imglist2'>
 								<view class="img_item">
 									<view class="" style="width: 16%;">
-									<image
-										v-if="item.type == 'pdf'"
-										style="width: 40px; height: 40px;" src="../../../static/img/pdf3.png"
-										mode=""></image>
-									<image v-else-if="item.type == 'xls'||item.type == 'xlsx'"
-										style="width: 40px; height: 40px;" src="../../../static/img/excle3.png"
-										mode=""></image>
-									<image v-else-if="item.type == 'doc'||item.type == 'docx'"
-										style="width: 40px; height: 40px;" src="../../../static/img/word3.png"
-										mode=""></image>
-									<image v-else style="width: 40px; height: 40px;" :src="item.appendixPath" mode="">
-									</image>
-								</view>
+										<image v-if="item.type == 'pdf'" style="width: 40px; height: 40px;"
+											src="../../../static/img/pdf3.png" mode=""></image>
+										<image v-else-if="item.type == 'xls'||item.type == 'xlsx'"
+											style="width: 40px; height: 40px;" src="../../../static/img/excle3.png"
+											mode=""></image>
+										<image v-else-if="item.type == 'doc'||item.type == 'docx'"
+											style="width: 40px; height: 40px;" src="../../../static/img/word3.png"
+											mode=""></image>
+										<image v-else style="width: 40px; height: 40px;" :src="item.appendixPath"
+											mode="">
+										</image>
+									</view>
 									<view class="" style="width: 70%;">
 										<view class="char_css">{{item.appendixName}}</view>
-										<u-line-progress v-if='item.progressstatus' :striped="true" :percent="item.progress" :striped-active="true"></u-line-progress>
+										<u-line-progress v-if='item.progressstatus' :striped="true"
+											:percent="item.progress" :striped-active="true"></u-line-progress>
 										<view class="">{{item.appendixSize}}</view>
 									</view>
 									<view class="img_dowload" @click="openDocument(item)">下载</view>
@@ -96,7 +96,8 @@
 					<view style='display:flex;align-items: center;' class="top1">
 						<view>收货地</view>
 						<view class="top_info">
-							{{item1.endPrivate}}{{item1.endCity}}{{item1.endArea}}{{item1.endDetailedAddress}}</view>
+							{{item1.endPrivate}}{{item1.endCity}}{{item1.endArea}}{{item1.endDetailedAddress}}
+						</view>
 					</view>
 					<view v-for="item in item1.tranSettlementReportList" class="car-container-item">
 
@@ -133,9 +134,11 @@
 							<view v-if='item.deductionAmount>=0' class="right">扣</view>
 							<view v-if='item.deductionAmount<0' class="right">加</view>
 							<view v-if='item.deductionAmount<0' class="textInfo">
-								{{item.deductionAmount?-item.deductionAmount:0}}元</view>
+								{{item.deductionAmount?-item.deductionAmount:0}}元
+							</view>
 							<view v-if='item.deductionAmount>=0' class="textInfo">
-								{{item.deductionAmount?-item.deductionAmount:0}}元</view>
+								{{item.deductionAmount?-item.deductionAmount:0}}元
+							</view>
 						</view>
 						<view class="car-type-item">
 							<view class="left">服</view>
@@ -157,74 +160,7 @@
 				</view>
 			</view>
 		</view>
-		<u-form ref="uForm">
-			<view class="form_top">流程</view>
-			<view class="content2">
-				<view v-for="(item,index) in auditList" :key='index' class="audit">
-					<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-						<view class="row-left">
-							<view class="item1">
-								<view class="item-content">{{item.operatorTitle}}</view>
-								<view v-if="item.status=='success'" class='status success'>
-									<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='error'" class='status error'>
-									<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='question'" class='status question'>
-									<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-								</view>
-							</view>
-						</view>
-						<view class="row-right">
-							<view class="right-item">
-								<view class="item2">
-									<view class="name">{{item.desc}}
-									</view>
-									<!-- <view class='time'>{{item.updateDate}}</view> -->
-									<view v-if="item.status=='success'" class="status success">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1&&index!=0'>已审核</text>
-									</view>
-									<view v-if="item.status=='error'" class="status error">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
-									</view>
-									<view v-if="item.status=='question'" class="status question">
-										{{item.commonStaffs1?item.staffscontent:''}}<text
-											v-if='!item.commonStaffs1'>未审核</text>
-									</view>
-									<!-- <view  class="status success">吕波(已审核)</view> -->
-								</view>
-								<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
-									class='time'>
-									{{item.updateDate}}
-								</view>
-							</view>
-							<view v-if='item.auditMind' class="right-content">
-								{{item.auditMind}}
-							</view>
-						</view>
-						<view v-if='item.commonStaffs1' class="right">
-							<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
-							</u-icon>
-						</view>
-					</view>
-					<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-						<view class='row2'>
-							<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-								<view class="item-content">
-									<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-									<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-								</view>
-								<view class="name">{{item1.staffName}}</view>
-							</view>
-						</view>
-					</view>
-					<view class="row-line" v-if="index!= auditList.length - 1 &&item.desc!='_PLACEHOLDER_'"></view>
-				</view>
-			</view>
-		</u-form>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view v-if='show' class="shade">
 			<view class="wrap">
 				<view class="alert-top">
@@ -253,8 +189,12 @@
 </template>
 
 <script>
+	import flow from '@/components/flow.vue';
 	import helper from '@/common/helper.js';
 	export default {
+		components: {
+			flow
+		},
 		data() {
 			return {
 				isSHowBtn: true,
@@ -301,10 +241,10 @@
 						appendixIds: this.imglist.toString()
 					}).then(res => {
 						this.imglist2 = res.data.data
-						
+
 						for (let i = 0; i < this.imglist2.length; i++) {
-							this.imglist2[i].progressstatus=false
-							this.imglist2[i].progress=0
+							this.imglist2[i].progressstatus = false
+							this.imglist2[i].progress = 0
 							if (this.imglist2[i].appendixName) {
 								this.imglist2[i].type = this.imglist2[i].appendixName.split(".")[1]
 							}
@@ -315,14 +255,18 @@
 			}
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			openDocument(item) {
-				this.$set(item,'progressstatus',true)
+				this.$set(item, 'progressstatus', true)
 				this.$forceUpdate()
-				const downloadTask =uni.downloadFile({
+				const downloadTask = uni.downloadFile({
 					url: item.appendixPath,
 					success: function(res) {
 						var filePath = res.tempFilePath;
-						if(item.type=='pdf'||item.type == 'xls'||item.type == 'xlsx'||item.type == 'doc'||item.type == 'docx'){
+						if (item.type == 'pdf' || item.type == 'xls' || item.type == 'xlsx' || item.type ==
+							'doc' || item.type == 'docx') {
 							uni.openDocument({
 								filePath: filePath,
 								showMenu: true,
@@ -330,17 +274,17 @@
 									console.log('打开文档成功');
 								}
 							});
-						}else{
+						} else {
 							uni.previewImage({
 								current: 0, //预览图片的下标
 								urls: [item.appendixPath]
 							})
 						}
-						
+
 					}
 				});
 				downloadTask.onProgressUpdate((res) => {
-					this.$set(item,'progress',res.progress)
+					this.$set(item, 'progress', res.progress)
 					this.$forceUpdate()
 					console.log('下载进度' + res.progress);
 					console.log('已经下载的数据长度' + res.totalBytesWritten);
@@ -358,10 +302,10 @@
 				}).then(res => {
 					if (res.data.code == 200) {
 						this.dataobj = res.data.data
-						if(this.dataobj.freightAddressUrl){
+						if (this.dataobj.freightAddressUrl) {
 							this.imglist = this.dataobj.freightAddressUrl.split(',')
 						}
-						
+
 						if (res.data.data.tranTaskInfoList.length > 0) {
 							this.num = 0
 							for (var i = 0; i < res.data.data.tranTaskInfoList.length; i++) {

+ 55 - 111
pages/task/audit/freight_settlement_details.vue

@@ -91,72 +91,7 @@
 				</view>
 			</view>
 		</view>
-		<u-form ref="uForm">
-			<view class="form_top">流程</view>
-			<view class="content2">
-				<view v-for="(item,index) in auditList" :key='index' class="audit">
-					<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-						<view class="row-left">
-							<view class="item1">
-								<view class="item-content">{{item.operatorTitle}}</view>
-								<view v-if="item.status=='success'" class='status success'>
-									<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='error'" class='status error'>
-									<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='question'" class='status question'>
-									<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-								</view>
-							</view>
-						</view>
-						<view class="row-right">
-							<view class="right-item">
-								<view class="item2">
-									<view class="name">{{item.desc}}
-									</view>
-									<!-- <view class='time'>{{item.updateDate}}</view> -->
-									<view v-if="item.status=='success'" class="status success">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1&&index!=0'>已审核</text></view>
-									<view v-if="item.status=='error'" class="status error">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
-									</view>
-									<view v-if="item.status=='question'" class="status question">
-										{{item.commonStaffs1?item.staffscontent:''}}<text
-											v-if='!item.commonStaffs1'>未审核</text></view>
-									<!-- <view  class="status success">吕波(已审核)</view> -->
-								</view>
-								<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
-									class='time'>
-									{{item.updateDate}}
-								</view>
-							</view>
-							<view v-if='item.auditMind' class="right-content">
-								{{item.auditMind}}
-							</view>
-						</view>
-						<view v-if='item.commonStaffs1' class="right">
-							<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
-							</u-icon>
-						</view>
-					</view>
-					<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-						<view class='row2'>
-							<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-								<view class="item-content">
-									<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-									<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-								</view>
-								<view class="name">{{item1.staffName}}</view>
-							</view>
-						</view>
-					</view>
-					<view class="row-line" v-if="index!= auditList.length - 1 &&item.desc!='_PLACEHOLDER_'"></view>
-				</view>
-			</view>
-		</u-form>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<u-toast ref="uToast" />
 		<view style='padding:10px;' class='flex bottom-btn'>
 			<u-button @click="fanHui" type="success" class="btn1" hover-class='none'>返回</u-button>
@@ -165,16 +100,20 @@
 </template>
 
 <script>
+	import flow from '@/components/flow.vue';
 	export default {
+		components: {
+			flow
+		},
 		data() {
 			return {
 				currentPage: 1,
 				pageSize: 10,
-				num:0,
+				num: 0,
 				list: {
 					approveStatus: "",
 				},
-				auditList:[],
+				auditList: [],
 				customerName: "", //客户
 				shippingAddress: "", //发货地址
 				receivingAddress: "", //收货地址
@@ -185,20 +124,23 @@
 			this.getList()
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			getList() {
 				this.$api.doRequest('get', '/tranSettlementReport/getTranSettlementReport', {
 					batchId: this.id
 				}).then(res => {
 					if (res.data.code == 200) {
-						if(res.data.data.length>0){
-							this.num=0
+						if (res.data.data.length > 0) {
+							this.num = 0
 							for (var i = 0; i < res.data.data.length; i++) {
-								if(res.data.data[i].totalPayable){
-									this.num+=res.data.data[i].totalPayable	
+								if (res.data.data[i].totalPayable) {
+									this.num += res.data.data[i].totalPayable
 								}
 							}
 						}
-						this.num=this.num.toFixed(2)
+						this.num = this.num.toFixed(2)
 						this.list = res.data.data
 						// console.log(this.list, 124)
 						// 查流程
@@ -274,8 +216,8 @@
 											response.data.data[i].operatorName = response.data
 												.data[i].workflowHistoricTasks[len].operatorName
 											var time = new Date(response.data.data[i]
-												.workflowHistoricTasks[len].claimTime)
-											.getTime()
+													.workflowHistoricTasks[len].claimTime)
+												.getTime()
 											response.data.data[i].updateDate = this.$u.timeFormat(
 												time, 'mm.dd hh:MM')
 											response.data.data[i].auditMind = response.data.data[i]
@@ -291,7 +233,7 @@
 												response.data.data[i].operatorTitle = response.data
 													.data[i].desc.substring(0, 2)
 											}
-						
+
 											response.data.data[i].operatorName = response.data
 												.data[i].desc
 											var time1 = new Date(response.data.data[i].updateDate)
@@ -301,17 +243,17 @@
 											response.data.data[i].auditMind = ''
 										}
 									}
-						
+
 								}
 								console.log(response.data.data)
-								for(let i = 0 ;i<response.data.data.length;i++){
-									if(response.data.data[i].status == "error"){
+								for (let i = 0; i < response.data.data.length; i++) {
+									if (response.data.data[i].status == "error") {
 										this.auditCheck = "error"
 										break;
-									}else if(response.data.data[i].status == "question"){
+									} else if (response.data.data[i].status == "question") {
 										this.auditCheck = "question"
 										break;
-									}else{ 
+									} else {
 										this.auditCheck = "success"
 									}
 								}
@@ -493,25 +435,25 @@
 		height: 210rpx;
 		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
 		padding: 30rpx;
-	
+
 		.topInfo-item {
 			height: 150rpx;
 			background-color: #FFFFFF;
 			border-radius: 20rpx;
 			padding: 40rpx;
-	
+
 			.logo {
 				width: 40rpx;
 				height: 40rpx;
 				margin-top: 8rpx;
 			}
-	
+
 			.infoText {
 				font-size: 36rpx;
 				font-weight: 600;
 				margin-left: 20rpx;
 			}
-	
+
 			.infoData {
 				color: #878C9C;
 				font-size: 26rpx;
@@ -536,22 +478,23 @@
 	/deep/.u-input__textarea {
 		height: 300rpx !important;
 	}
+
 	.content2 {
 		background: white;
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		padding: 20rpx;
-	
+
 		.row {
 			display: flex;
-	
+
 			.row-left {
 				display: flex;
 				align-items: center;
-	
+
 				.item1 {
 					position: relative;
-	
+
 					.item-content {
 						background: #617AE0;
 						width: 44px;
@@ -562,7 +505,7 @@
 						font-size: 15px;
 						color: #fff;
 					}
-	
+
 					.status {
 						position: absolute;
 						border-radius: 50%;
@@ -571,27 +514,27 @@
 						bottom: -3px;
 						background: #fff;
 					}
-	
+
 					.status.success {
 						border: 1px solid rgb(60, 156, 255);
 					}
-	
+
 					.status.error {
 						border: 1px solid rgb(245, 108, 108);
 					}
-	
+
 					.status.question {
 						border: 1px solid #f9ae3d;
 					}
 				}
-	
+
 			}
-	
+
 			.row-right {
 				width: 80%;
 				// color: #B0B1B5;
 				margin-top: 10px;
-	
+
 				.right-content {
 					background: #F2F3F7;
 					margin-left: 10px;
@@ -600,33 +543,33 @@
 					border-radius: 5px;
 					color: #B0B1B5;
 				}
-	
+
 				.right-item {
 					display: flex;
 					justify-content: space-between;
-	
+
 					.time {
 						color: #999;
 					}
-	
+
 					.item2 {
 						margin-left: 20rpx;
 						margin-top: -7px;
-	
+
 						.name {
 							font-size: 28rpx;
 							font-weight: 800;
 							margin-bottom: 4px;
 						}
-	
+
 						.status.success {
 							color: #6CC48C;
 						}
-	
+
 						.status.error {
 							color: rgb(245, 108, 108);
 						}
-	
+
 						.status.question {
 							color: #f9ae3d;
 						}
@@ -634,10 +577,10 @@
 				}
 			}
 		}
-	
+
 		.row2 {
 			display: flex;
-	
+
 			.item-content {
 				background: #22C572;
 				width: 30px;
@@ -650,29 +593,30 @@
 				padding: 0 2px;
 				margin: 0 auto;
 			}
-	
+
 			.status {
 				position: absolute;
 				top: 0;
 				right: 0;
 			}
 		}
-	
+
 		.row-line {
 			width: 1px;
 			height: 30px;
 			background: #F2F2F2;
 			margin: 10rpx 50rpx;
-	
+
 		}
-	
+
 		.audit {
 			margin-top: 20rpx;
 		}
 	}
+
 	.top_info {
 		margin: 10rpx 0;
-		width:70%;
-		text-align:right;
+		width: 70%;
+		text-align: right;
 	}
 </style>

+ 20 - 78
pages/task/audit/freight_settlement_detailscopy.vue

@@ -69,7 +69,8 @@
 									</view>
 									<view class="" style="width: 70%;">
 										<view class="char_css">{{item.appendixName}}</view>
-										<u-line-progress v-if='item.progressstatus' :striped="true" :percent="item.progress" :striped-active="true"></u-line-progress>
+										<u-line-progress v-if='item.progressstatus' :striped="true"
+											:percent="item.progress" :striped-active="true"></u-line-progress>
 										<view class="">{{item.appendixSize}}</view>
 									</view>
 									<view class="img_dowload" @click="openDocument(item)">下载</view>
@@ -157,74 +158,7 @@
 				</view>
 			</view>
 		</view>
-		<u-form ref="uForm">
-			<view class="form_top">流程</view>
-			<view class="content2">
-				<view v-for="(item,index) in auditList" :key='index' class="audit">
-					<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-						<view class="row-left">
-							<view class="item1">
-								<view class="item-content">{{item.operatorTitle}}</view>
-								<view v-if="item.status=='success'" class='status success'>
-									<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='error'" class='status error'>
-									<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='question'" class='status question'>
-									<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-								</view>
-							</view>
-						</view>
-						<view class="row-right">
-							<view class="right-item">
-								<view class="item2">
-									<view class="name">{{item.desc}}
-									</view>
-									<!-- <view class='time'>{{item.updateDate}}</view> -->
-									<view v-if="item.status=='success'" class="status success">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1&&index!=0'>已审核</text>
-									</view>
-									<view v-if="item.status=='error'" class="status error">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
-									</view>
-									<view v-if="item.status=='question'" class="status question">
-										{{item.commonStaffs1?item.staffscontent:''}}<text
-											v-if='!item.commonStaffs1'>未审核</text>
-									</view>
-									<!-- <view  class="status success">吕波(已审核)</view> -->
-								</view>
-								<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
-									class='time'>
-									{{item.updateDate}}
-								</view>
-							</view>
-							<view v-if='item.auditMind' class="right-content">
-								{{item.auditMind}}
-							</view>
-						</view>
-						<view v-if='item.commonStaffs1' class="right">
-							<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
-							</u-icon>
-						</view>
-					</view>
-					<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-						<view class='row2'>
-							<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-								<view class="item-content">
-									<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-									<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-								</view>
-								<view class="name">{{item1.staffName}}</view>
-							</view>
-						</view>
-					</view>
-					<view class="row-line" v-if="index!= auditList.length - 1 &&item.desc!='_PLACEHOLDER_'"></view>
-				</view>
-			</view>
-		</u-form>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view v-if='show' class="shade">
 			<view class="wrap">
 				<view class="alert-top">
@@ -252,7 +186,11 @@
 </template>
 
 <script>
+	import flow from '@/components/flow.vue';
 	export default {
+		components: {
+			flow
+		},
 		data() {
 			return {
 				currentPage: 1,
@@ -283,8 +221,8 @@
 					}).then(res => {
 						this.imglist2 = res.data.data
 						for (let i = 0; i < this.imglist2.length; i++) {
-							this.imglist2[i].progressstatus=false
-							this.imglist2[i].progress=0
+							this.imglist2[i].progressstatus = false
+							this.imglist2[i].progress = 0
 							if (this.imglist2[i].appendixName) {
 								this.imglist2[i].type = this.imglist2[i].appendixName.split(".")[1]
 							}
@@ -295,14 +233,18 @@
 			}
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			openDocument(item) {
-				this.$set(item,'progressstatus',true)
+				this.$set(item, 'progressstatus', true)
 				this.$forceUpdate()
-				const downloadTask =uni.downloadFile({
+				const downloadTask = uni.downloadFile({
 					url: item.appendixPath,
 					success: function(res) {
 						var filePath = res.tempFilePath;
-						if(item.type=='pdf'||item.type == 'xls'||item.type == 'xlsx'||item.type == 'doc'||item.type == 'docx'){
+						if (item.type == 'pdf' || item.type == 'xls' || item.type == 'xlsx' || item.type ==
+							'doc' || item.type == 'docx') {
 							uni.openDocument({
 								filePath: filePath,
 								showMenu: true,
@@ -310,17 +252,17 @@
 									console.log('打开文档成功');
 								}
 							});
-						}else{
+						} else {
 							uni.previewImage({
 								current: 0, //预览图片的下标
 								urls: [item.appendixPath]
 							})
 						}
-						
+
 					}
 				});
 				downloadTask.onProgressUpdate((res) => {
-					this.$set(item,'progress',res.progress)
+					this.$set(item, 'progress', res.progress)
 					this.$forceUpdate()
 					console.log('下载进度' + res.progress);
 					console.log('已经下载的数据长度' + res.totalBytesWritten);
@@ -338,7 +280,7 @@
 				}).then(res => {
 					if (res.data.code == 200) {
 						this.dataobj = res.data.data
-						if(this.dataobj.freightAddressUrl){
+						if (this.dataobj.freightAddressUrl) {
 							this.imglist = this.dataobj.freightAddressUrl.split(',')
 						}
 						if (res.data.data.tranTaskInfoList.length > 0) {

Diff do ficheiro suprimidas por serem muito extensas
+ 285 - 248
pages/task/audit/purchasecontract.vue


+ 64 - 120
pages/task/audit/refuel.vue

@@ -30,10 +30,12 @@
 					v-model="datalist.fillingDetailInfo.currentConsumption" />
 			</u-form-item>
 			<u-form-item label-width='260' :borderBottom="false" label="申请时间">
-				<u-input input-align="right" placeholder="--" disabled v-model="datalist.fillingDetailInfo.createDate" />
+				<u-input input-align="right" placeholder="--" disabled
+					v-model="datalist.fillingDetailInfo.createDate" />
 			</u-form-item>
 			<u-form-item label-position='top' label-width='150' :borderBottom="false" label="备注">
-				<u-input disabled="" class='textarea1' v-model="datalist.remark" type="textarea" :border="border" :height="height" :auto-height="autoHeight" />
+				<u-input disabled="" class='textarea1' v-model="datalist.remark" type="textarea" :border="border"
+					:height="height" :auto-height="autoHeight" />
 			</u-form-item>
 		</u-form>
 		<u-form ref="uForm">
@@ -42,7 +44,7 @@
 				<view style="justify-content: space-between;" class='flex' v-for='item in datalist.urlList'>
 					<view class="img_item">
 						<view class="" style="width: 16%;">
-							<image  class="imgsign" :src="item.url" mode="">
+							<image class="imgsign" :src="item.url" mode="">
 							</image>
 						</view>
 						<view class="" style="width: 70%;">
@@ -76,83 +78,10 @@
 				{{trackObj}}
 			</view> -->
 		</view>
-		<u-form ref="uForm">
-			<view class="form_top">流程</view>
-			<view class="content2">
-				<view v-for="(item,index) in auditList" :key='index' class="audit">
-					<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-						<view class="left">
-							<view class="item1">
-								<view class="item-content">{{item.operatorTitle}}</view>
-								<view v-if="item.status=='success'" class='status success'>
-									<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='error'" class='status error'>
-									<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='question'" class='status question'>
-									<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-								</view>
-							</view>
-						</view>
-						<view class="right">
-							<view class="right-item">
-								<view class="item2">
-									<view class="name">{{item.desc}}
-									</view>
-									<!-- <view class='time'>{{item.updateDate}}</view> -->
-									<view v-if="item.status=='success'" class="status success">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1&&index!=0'>已审核</text>
-									</view>
-									<view v-if="item.status=='error'" class="status error">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
-									</view>
-									<view v-if="item.status=='question'" class="status question">
-										{{item.commonStaffs1?item.staffscontent:''}}<text
-											v-if='!item.commonStaffs1'>未审核</text>
-									</view>
-									<!-- <view  class="status success">吕波(已审核)</view> -->
-
-								</view>
-								<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
-									class='time'>
-									{{item.updateDate}}
-								</view>
-							</view>
-							<view v-if='item.auditMind' class="right-content">
-								{{item.auditMind}}
-							</view>
-							<view class="flex audit_img">
-								<view v-for="(items,indexs) in item.fileUrl" class="url_css">
-									<image :src="items" imageMode='aspectFill' class="url_img"
-										@click="auditFile(items)"></image>
-								</view>
-							</view>
-						</view>
-						<view v-if='item.commonStaffs1' class="right">
-							<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
-							</u-icon>
-						</view>
-					</view>
-					<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-						<view class='row2'>
-							<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-								<view class="item-content">
-									<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-									<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-								</view>
-								<view class="name">{{item1.staffName}}</view>
-							</view>
-						</view>
-					</view>
-					<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
-				</view>
-			</view>
-		</u-form>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view v-if='datalist.taskId' style='padding:10px;z-index: 12;' class='flex bottom-btn'>
-			<u-button v-if='datalist.approveStatus||isSHowBtn' @click='reject' type="error" class="btn1" hover-class='none'>
+			<u-button v-if='datalist.approveStatus||isSHowBtn' @click='reject' type="error" class="btn1"
+				hover-class='none'>
 				驳回
 			</u-button>
 			<u-button v-if='datalist.approveStatus||isSHowBtn' @click='pass' type="success" class="btn2">通过
@@ -166,29 +95,31 @@
 					</view>
 					<u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
 				</view>
-				<view style='overflow-y: scroll;height: 732rpx;padding-bottom:102rpx;'>
-				<view class="u-textarea-style">
-					<view class="right-bottom">
-						{{auditMind.length}}/1000个字
-					</view>
-					<textarea maxlength="1000" v-model='auditMind' placeholder="请在此输入审核意见" name="" id="" cols="30"
-						rows="11"></textarea>
+				<view style='height: 832rpx;padding-bottom:102rpx;'>
+					<view class="u-textarea-style">
+						<view class="right-bottom">
+							{{auditMind.length}}/1000个字
+						</view>
+						<textarea maxlength="1000" v-model='auditMind' placeholder="请在此输入审核意见" name="" id="" cols="30"
+							rows="11"></textarea>
 
-				</view>
-				<view style='padding-left:10px;'>
-					上传附件
-					<u-upload :custom-btn='true' class="upload" ref="upload" name='fileName' :form-data="{companyId: pcUserInfo.compId,
+					</view>
+					<view style='padding-left:10px;'>
+						上传附件
+						<u-upload :custom-btn='true' class="upload" ref="upload" name='fileName' :form-data="{companyId: pcUserInfo.compId,
 							modelId: '',
 							vesselId: ''}" :action="action1" :show-tips="false" :max-size="maxSize" :max-count="9"
-					:size-type="['compressed']" @on-success="getImgUrl($event)" @on-error="onError"
-					@on-remove="onRemove" @on-uploaded="isAdd = true" :limitType ="['png', 'jpg', 'jpeg', 'webp', 'gif']"
-					@on-progress="onProgress">
-					<view slot="addBtn" class="slot-btn u-list-item" hover-class="slot-btn__hover" hover-stay-time="150">
-							<image style="width:23px;height:23px;" src="../../../static/img/liangmai/xiangji-2.png" mode=""></image>
-							<view>选择图片</view>
-						</view>
+							:size-type="['compressed']" @on-success="getImgUrl($event)" @on-error="onError"
+							@on-remove="onRemove" @on-uploaded="isAdd = true"
+							:limitType="['png', 'jpg', 'jpeg', 'webp', 'gif']" @on-progress="onProgress">
+							<view slot="addBtn" class="slot-btn u-list-item" hover-class="slot-btn__hover"
+								hover-stay-time="150">
+								<image style="width:23px;height:23px;" src="../../../static/img/liangmai/xiangji-2.png"
+									mode=""></image>
+								<view>选择图片</view>
+							</view>
 						</u-upload>
-				</view>
+					</view>
 
 				</view>
 				<view @click='close()' class="cancel">取消</view>
@@ -198,17 +129,20 @@
 		<view @click='imgShow=false' v-if="imgShow" class="shade">
 			<image style='position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;' :src="url" mode=""></image>
 		</view>
+		<u-toast ref="uToast" />
 	</view>
 </template>
 
 <script>
 	import * as config from '../../../config'
 	import upload from '@/components/upload.vue';
+	import flow from '@/components/flow.vue';
 	import helper from '@/common/helper.js';
 	// import xbdMaptrack from '@/components/xbdMaptrack/xbdMaptrack';
 	export default {
 		components: {
-			upload
+			upload,
+			flow
 			// xbdMaptrack
 		},
 		data() {
@@ -245,7 +179,7 @@
 					fillingDetailInfo: {
 						oilConsumption: ''
 					},
-					urlList:[],
+					urlList: [],
 					status: "",
 					contractGoodsInfo: {},
 					contractProcessInfo: {}
@@ -262,7 +196,7 @@
 				url: "",
 				imgShow: false,
 				height: 200,
-				list:[],
+				list: [],
 				autoHeight: true,
 				border: false,
 				rejectInfo: "",
@@ -286,10 +220,13 @@
 			this.getList()
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			//播放轨迹
 			playPlace() {
 				console.log("tiaozhuan")
-				if(this.list.length<=0){
+				if (this.list.length <= 0) {
 					this.$api.msg('暂无轨迹')
 					return
 				}
@@ -373,18 +310,18 @@
 
 						that.datalist = res.data.data
 						let urlList = []
-						console.log(this.datalist)
+						console.log("111", this.datalist)
 						if (that.datalist.fillingDetailInfo.addressUrl) {
 							let datalist = that.datalist.fillingDetailInfo.addressUrl.split(",")
 							for (let j = 0; j < datalist.length; j++) {
 								urlList.push({
 									url: datalist[j],
-									name:datalist[j].split('liangeyun/')[1]
+									name: datalist[j].split('liangeyun/')[1]
 								})
 							}
 							that.datalist.urlList = urlList
-						}else{
-							that.datalist.urlList=[]
+						} else {
+							that.datalist.urlList = []
 						}
 
 						// 审核流程
@@ -542,7 +479,8 @@
 								var time2 = new Date(this.datalist.createDate).getTime()
 								var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
 								this.auditList.unshift({
-									operatorTitle: this.datalist.creater.substring(0, 2),
+									operatorTitle: this.datalist.creater.substring(0,
+										2),
 									operatorName: this.datalist.creater,
 									updateDate: time3,
 									auditMind: '',
@@ -553,6 +491,8 @@
 									workflowHistoricTasks: [],
 									status: 'success'
 								})
+
+								console.log("this.auditList", this.auditList)
 							})
 
 						})
@@ -568,7 +508,7 @@
 						console.log(res)
 						if (res.data.code == 200) {
 							// uni.hideLoading()
-							this.list=JSON.parse(res.data.data)
+							this.list = JSON.parse(res.data.data)
 							let _list = JSON.parse(res.data.data)
 							this.latitude = _list[0].lat
 							this.longitude = _list[0].lng
@@ -859,7 +799,7 @@
 			margin: auto;
 			background: #fff;
 			width: calc(100% - 198rpx);
-			height: 836rpx;
+			height: 1000rpx;
 			border-radius: 20rpx;
 			// overflow-y: scroll;
 
@@ -909,7 +849,8 @@
 		color: #22C572;
 	}
 
-	.textarea,.textarea1 {
+	.textarea,
+	.textarea1 {
 		margin: 18rpx auto;
 		width: 100%;
 		background: #F9F9FA;
@@ -952,9 +893,11 @@
 	/deep/.u-input__textarea {
 		height: 300rpx !important;
 	}
+
 	/deep/.textarea1 .u-input__textarea {
 		height: 200rpx !important;
 	}
+
 	.content2 {
 		background: white;
 		margin: 20rpx 0;
@@ -1275,22 +1218,23 @@
 	}
 
 
-/deep/.u-upload .u-list-item{
-		background:#fff;
-		border:1px dashed #ccc;
-		border-radius:10rpx;
-		height:190rpx;
-		width:190rpx;
-		margin:10rpx;
-		text-align:center;
+	/deep/.u-upload .u-list-item {
+		background: #fff;
+		border: 1px dashed #ccc;
+		border-radius: 10rpx;
+		height: 190rpx;
+		width: 190rpx;
+		margin: 10rpx;
+		text-align: center;
 		display: flex;
 		align-items: center;
 		justify-content: center;
 		flex-direction: column;
-}
+	}
+
 	/deep/.place {
 		color: #000;
-		width:50%;
+		width: 50%;
 		flex-flow: wrap;
 	}
 </style>

Diff do ficheiro suprimidas por serem muito extensas
+ 264 - 250
pages/task/audit/salecontract.vue


+ 204 - 234
pages/task/audit/sales_shift.vue

@@ -19,7 +19,8 @@
 		<view class="transaction">
 			<u-form :model="list" ref="list" class="uForm">
 				<u-form-item label="任务类型" prop="contractNo" label-width="140">
-					<view style='text-align:right;width: 100%;color:#000;min-height: 70rpx;line-height: 70rpx;'> 销售转移</view>
+					<view style='text-align:right;width: 100%;color:#000;min-height: 70rpx;line-height: 70rpx;'> 销售转移
+					</view>
 				</u-form-item>
 			</u-form>
 			<view style='margin-left:20rpx;font-weight:600;'>基本信息</view>
@@ -31,7 +32,8 @@
 					<u-input v-model="list.pointOut" input-align="right" placeholder="空" disabled />
 				</u-form-item>
 				<u-form-item class='taskNo' :border-bottom='false' label="原出库任务" prop="processNo" label-width="140">
-					<view style='text-align:right;width: 100%;color:#000;min-height: 70rpx;line-height: 70rpx;' v-for='item in list.taskNoList'> {{item}}</view>
+					<view style='text-align:right;width: 100%;color:#000;min-height: 70rpx;line-height: 70rpx;'
+						v-for='item in list.taskNoList'> {{item}}</view>
 				</u-form-item>
 				<u-form-item :border-bottom='false' label="新合同/移库编号" prop="goodsName" label-width="220">
 					<u-input v-model="list.contractNoNew" input-align="right" placeholder="" disabled />
@@ -43,8 +45,10 @@
 					<u-input v-model="list.taskNoNew" input-align="right" placeholder="" disabled />
 				</u-form-item>
 				<u-form-item :border-bottom='false' label="新运输任务" prop="sendDetailedAddress" label-width="140">
-					<u-input v-if='list.tranTaskNew' v-model="list.tranTaskNew" input-align="right" placeholder="" disabled />
-					<view v-else style='text-align:right;width: 100%;color:#000;min-height: 70rpx;line-height: 70rpx;'> 他运无运输任务</view>
+					<u-input v-if='list.tranTaskNew' v-model="list.tranTaskNew" input-align="right" placeholder=""
+						disabled />
+					<view v-else style='text-align:right;width: 100%;color:#000;min-height: 70rpx;line-height: 70rpx;'>
+						他运无运输任务</view>
 				</u-form-item>
 			</u-form>
 			<view v-if='list.tranCarInfoList' style='margin-left:20rpx;font-weight:600;'>车辆信息</view>
@@ -58,83 +62,16 @@
 					<view v-else>&nbsp;</view>
 					<view style='align-items: center;' class='flex ' v-if='list.tranTaskNew'>
 						新运费
-						<u-input :style='!editstatus?"":"border-bottom:1px solid #ccc;"' style='width:200rpx;margin:0 4rpx;padding-right:10rpx;' v-model="item.tranPrice" input-align="right" placeholder="" :disabled='!editstatus' />
-						<text>{{item.billingMethod==1?'元/吨':'元/车'}}</text> <u-icon @click='downchange(index)' name="arrow-down-fill" color="#000" size="24"></u-icon>
+						<u-input :style='!editstatus?"":"border-bottom:1px solid #ccc;"'
+							style='width:200rpx;margin:0 4rpx;padding-right:10rpx;' v-model="item.tranPrice"
+							input-align="right" placeholder="" :disabled='!editstatus' />
+						<text>{{item.billingMethod==1?'元/吨':'元/车'}}</text>
+						<u-icon @click='downchange(index)' name="arrow-down-fill" color="#000" size="24"></u-icon>
 					</view>
 				</view>
 			</view>
 		</view>
-		<u-form ref="uForm">
-			<view class="form_top">流程</view>
-			<view class="content2">
-				<view v-for="(item,index) in auditList" :key='index' class="audit">
-					<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-						<view class="row-left">
-							<view class="item1">
-								<view class="item-content">{{item.operatorTitle}}</view>
-								<view v-if="item.status=='success'" class='status success'>
-									<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='error'" class='status error'>
-									<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-								</view>
-								<view v-if="item.status=='question'" class='status question'>
-									<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-								</view>
-							</view>
-						</view>
-						<view class="row-right">
-							<view class="right-item">
-								<view class="item2">
-									<view class="name">{{item.desc}}
-									</view>
-									<!-- <view class='time'>{{item.updateDate}}</view> -->
-									<view v-if="item.status=='success'" class="status success">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1&&index!=0'>已审核</text></view>
-									<view v-if="item.status=='error'" class="status error">
-										{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-											v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
-									</view>
-									<view v-if="item.status=='question'" class="status question">
-										{{item.commonStaffs1?item.staffscontent:''}}<text
-											v-if='!item.commonStaffs1'>未审核</text></view>
-									<!-- <view  class="status success">吕波(已审核)</view> -->
-								</view>
-								<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
-									class='time'>
-									{{item.updateDate}}
-								</view>
-							</view>
-							<view v-if='item.auditMind' class="right-content">
-								{{item.auditMind}}
-							</view>
-							<view class="flex audit_img">
-								<view v-for="(items,indexs) in item.fileUrl" class="url_css">
-									<image :src="items"  imageMode='aspectFill' class="url_img" @click="auditFile(items)"></image>
-								</view>
-							</view>
-						</view>
-						<view v-if='item.commonStaffs1' class="right">
-							<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
-							</u-icon>
-						</view>
-					</view>
-					<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-						<view class='row2'>
-							<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-								<view class="item-content">
-									<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-									<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-								</view>
-								<view class="name">{{item1.staffName}}</view>
-							</view>
-						</view>
-					</view>
-					<view class="row-line" v-if="index!= auditList.length - 1 &&item.desc!='_PLACEHOLDER_'"></view>
-				</view>
-			</view>
-		</u-form>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view v-if='show' class="shade">
 			<view class="wrap">
 				<view class="alert-top">
@@ -144,40 +81,42 @@
 					<u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
 				</view>
 				<view style='overflow-y: scroll;height: 732rpx;padding-bottom:102rpx;'>
-				<view class="u-textarea-style">
-					<view class="right-bottom">
-						{{auditMind.length}}/1000个字
+					<view class="u-textarea-style">
+						<view class="right-bottom">
+							{{auditMind.length}}/1000个字
+						</view>
+						<textarea maxlength="1000" v-model='auditMind' placeholder="请在此输入审核意见" name="" id="" cols="30"
+							rows="11"></textarea>
+
 					</view>
-					<textarea maxlength="1000" v-model='auditMind' placeholder="请在此输入审核意见" name="" id="" cols="30"
-						rows="11"></textarea>
-		
-				</view>
-				<view style='padding-left:10px;'>
-					上传附件
-					<u-upload :custom-btn='true' class="upload" ref="upload" name='fileName' :form-data="{companyId: pcUserInfo.compId,
+					<view style='padding-left:10px;'>
+						上传附件
+						<u-upload :custom-btn='true' class="upload" ref="upload" name='fileName' :form-data="{companyId: pcUserInfo.compId,
 							modelId: '',
 							vesselId: ''}" :action="action1" :show-tips="false" :max-size="maxSize" :max-count="9"
-					:size-type="['compressed']" @on-success="getImgUrl($event)" @on-error="onError"
-					@on-remove="onRemove" @on-uploaded="isAdd = true" :limitType ="['png', 'jpg', 'jpeg', 'webp', 'gif']"
-					@on-progress="onProgress">
-					<view slot="addBtn" class="slot-btn u-list-item" hover-class="slot-btn__hover" hover-stay-time="150">
-							<image style="width:23px;height:23px;" src="../../../static/img/liangmai/xiangji-2.png" mode=""></image>
-							<view>选择图片</view>
-						</view>
+							:size-type="['compressed']" @on-success="getImgUrl($event)" @on-error="onError"
+							@on-remove="onRemove" @on-uploaded="isAdd = true"
+							:limitType="['png', 'jpg', 'jpeg', 'webp', 'gif']" @on-progress="onProgress">
+							<view slot="addBtn" class="slot-btn u-list-item" hover-class="slot-btn__hover"
+								hover-stay-time="150">
+								<image style="width:23px;height:23px;" src="../../../static/img/liangmai/xiangji-2.png"
+									mode=""></image>
+								<view>选择图片</view>
+							</view>
 						</u-upload>
-				</view>
+					</view>
 				</view>
 				<view @click='close()' class="cancel">取消</view>
 				<view @click='passSubmit()' class="confirm">确定</view>
 			</view>
 		</view>
 
-		<u-modal :show-cancel-button='true' confirm-color='#19be6b' title='选择单位' v-model="show1" >
+		<u-modal :show-cancel-button='true' confirm-color='#19be6b' title='选择单位' v-model="show1">
 			<view style='text-align:center;padding:30rpx 20rpx;' class="slot-content">
-						<u-radio-group active-color="#19be6b" @change='radiochange' v-model="value">
-							<u-radio name='1' shape="circle">元/吨</u-radio>
-							<u-radio name='2' shape="circle">元/车</u-radio>
-						</u-radio-group>
+				<u-radio-group active-color="#19be6b" @change='radiochange' v-model="value">
+					<u-radio name='1' shape="circle">元/吨</u-radio>
+					<u-radio name='2' shape="circle">元/车</u-radio>
+				</u-radio-group>
 			</view>
 		</u-modal>
 		<view v-if='list.taskId' style='padding:10px;z-index: 12;' class='flex bottom-btn'>
@@ -193,10 +132,14 @@
 <script>
 	import * as config from '../../../config'
 	import helper from '@/common/helper.js';
+	import flow from '@/components/flow.vue';
 	import {
 		mapState
 	} from 'vuex';
 	export default {
+		components: {
+			flow
+		},
 		data() {
 			return {
 				isSHowBtn: true,
@@ -205,19 +148,19 @@
 					status: "",
 				},
 				id: "",
-				pcUserInfo :uni.getStorageSync('pcUserInfo'),
-				action1: config.def().baseUrlNew+ 'appendix/api/uploadFiles',
+				pcUserInfo: uni.getStorageSync('pcUserInfo'),
+				action1: config.def().baseUrlNew + 'appendix/api/uploadFiles',
 				show: false,
-				editstatus:false,
+				editstatus: false,
 				rejectInfo: "", //审核意见
 				title: '',
-				value:'1',
-				show1:false,
-				index:0,
+				value: '1',
+				show1: false,
+				index: 0,
 				auditMind: '',
-				auditList:[],
-				fileUrl:[],
-				maxSize: 50 * 1024 * 1024, 
+				auditList: [],
+				fileUrl: [],
+				maxSize: 50 * 1024 * 1024,
 				content: '是否通过该设置?'
 			}
 		},
@@ -239,6 +182,9 @@
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			auditFile(src) {
 				uni.downloadFile({
 					url: src,
@@ -254,15 +200,15 @@
 					}
 				});
 			},
-			downchange(index){
-				if(this.editstatus){
-					this.index=index
-					this.value=this.list.tranCarInfoList[this.index].billingMethod
-					this.show1=true
+			downchange(index) {
+				if (this.editstatus) {
+					this.index = index
+					this.value = this.list.tranCarInfoList[this.index].billingMethod
+					this.show1 = true
 				}
 			},
-			radiochange(e){
-				this.list.tranCarInfoList[this.index].billingMethod=e
+			radiochange(e) {
+				this.list.tranCarInfoList[this.index].billingMethod = e
 				console.log(e)
 			},
 			getImgUrl(res) {
@@ -286,7 +232,7 @@
 			//驳回
 			rejectSubmit() {
 				var that = this
-	
+
 				var info = that.auditMind
 				if (that.fileUrl.length > 0) {
 					info = that.auditMind + "##" + that.fileUrl.toString()
@@ -294,7 +240,7 @@
 				that.$api.doRequest('post', '/newWorkflow/api/handle', {
 					taskId: that.list.taskId,
 					approved: false,
-					auditMind: info?info:"",
+					auditMind: info ? info : "",
 					needReapply: true,
 				}).then(res => {
 					that.$api.msg('驳回成功')
@@ -305,7 +251,7 @@
 						} else {
 							uni.navigateBack()
 						}
-			
+
 						uni.hideLoading()
 					}, 1000);
 				})
@@ -314,24 +260,24 @@
 			async passSubmit() {
 				var that = this
 				uni.showLoading({
-						title: '加载中',
-						mask: true
-					});
-					if(this.list.tranCarInfoList){
-						for (var i = 0; i < this.list.tranCarInfoList.length; i++) {
-							this.list.tranCarInfoList[i].tranPrice=Number(this.list.tranCarInfoList[i].tranPrice)
-						}
+					title: '加载中',
+					mask: true
+				});
+				if (this.list.tranCarInfoList) {
+					for (var i = 0; i < this.list.tranCarInfoList.length; i++) {
+						this.list.tranCarInfoList[i].tranPrice = Number(this.list.tranCarInfoList[i].tranPrice)
 					}
-				if(this.editstatus){
+				}
+				if (this.editstatus) {
 					await that.$api.doRequest('post', '/salesTransferInfo/api/editInfo', {
-						id:this.list.id,
-						tranCarInfoList:this.list.tranCarInfoList
+						id: this.list.id,
+						tranCarInfoList: this.list.tranCarInfoList
 					}).then(res => {})
 				}
 				if (this.title == '驳回原因(驳回)') {
 					this.rejectSubmit()
 				} else {
-					
+
 					var info = that.auditMind
 					if (that.fileUrl.length > 0) {
 						info = that.auditMind + "##" + that.fileUrl.toString()
@@ -339,7 +285,7 @@
 					await that.$api.doRequest('post', '/newWorkflow/api/handle', {
 						taskId: that.list.taskId,
 						approved: true,
-						auditMind: info?info:"",
+						auditMind: info ? info : "",
 						needReapply: true,
 					}).then(res => {
 						that.$api.msg('通过成功')
@@ -356,44 +302,46 @@
 				}
 			},
 			pass() {
-				if(this.list.tranCarInfoList){
+				if (this.list.tranCarInfoList) {
 					for (var i = 0; i < this.list.tranCarInfoList.length; i++) {
-						if(!this.list.tranCarInfoList[i].tranPrice){
+						if (!this.list.tranCarInfoList[i].tranPrice) {
 							this.$api.msg('运费不能为空')
 							return
 						}
-						if(this.list.tranCarInfoList[i].tranPrice<0){
+						if (this.list.tranCarInfoList[i].tranPrice < 0) {
 							this.$api.msg('运费输入错误')
 							return
 						}
-						if(String(this.list.tranCarInfoList[i].tranPrice).indexOf('.')!=-1&&String(this.list.tranCarInfoList[i].tranPrice).split('.')[1].length>2){
+						if (String(this.list.tranCarInfoList[i].tranPrice).indexOf('.') != -1 && String(this.list
+								.tranCarInfoList[i].tranPrice).split('.')[1].length > 2) {
 							this.$api.msg('运费输入错误')
 							return
 						}
 					}
 				}
-				
+
 				this.show = true
 				this.title = '审核意见(通过)'
 			},
 			reject() {
-				if(this.list.tranCarInfoList){
+				if (this.list.tranCarInfoList) {
 					for (var i = 0; i < this.list.tranCarInfoList.length; i++) {
-						if(!this.list.tranCarInfoList[i].tranPrice){
+						if (!this.list.tranCarInfoList[i].tranPrice) {
 							this.$api.msg('运费不能为空')
 							return
 						}
-						if(this.list.tranCarInfoList[i].tranPrice<0){
+						if (this.list.tranCarInfoList[i].tranPrice < 0) {
 							this.$api.msg('运费输入错误')
 							return
 						}
-						if(String(this.list.tranCarInfoList[i].tranPrice).indexOf('.')!=-1&&String(this.list.tranCarInfoList[i].tranPrice).split('.')[1].length>2){
+						if (String(this.list.tranCarInfoList[i].tranPrice).indexOf('.') != -1 && String(this.list
+								.tranCarInfoList[i].tranPrice).split('.')[1].length > 2) {
 							this.$api.msg('运费输入错误')
 							return
 						}
 					}
 				}
-				
+
 				this.show = true
 				this.title = '驳回原因(驳回)'
 			},
@@ -402,8 +350,8 @@
 				this.$api.doRequest('get', '/salesTransferInfo/getInfo', {
 					id: this.id
 				}).then(res => {
-					res.data.data.taskNoList=res.data.data.taskNo.split(',')
-					
+					res.data.data.taskNoList = res.data.data.taskNo.split(',')
+
 					this.list = res.data.data
 					// 查流程
 					this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
@@ -416,10 +364,10 @@
 							// branch:'zt'
 						}).then(response => {
 							uni.hideLoading()
-							if(response.data.data[0].workflowHistoricTasks.length>0){
-								this.editstatus=false
-							}else{
-								this.editstatus=true
+							if (response.data.data[0].workflowHistoricTasks.length > 0) {
+								this.editstatus = false
+							} else {
+								this.editstatus = true
 							}
 							for (let i = 0; i < response.data.data.length; i++) {
 								this.$set(response.data.data[i], 'status', 'question')
@@ -484,15 +432,23 @@
 										response.data.data[i].operatorName = response.data
 											.data[i].workflowHistoricTasks[len].operatorName
 										var time = new Date(response.data.data[i]
-											.workflowHistoricTasks[len].claimTime)
-										.getTime()
+												.workflowHistoricTasks[len].claimTime)
+											.getTime()
 										response.data.data[i].updateDate = this.$u.timeFormat(
 											time, 'mm.dd hh:MM')
-										if (response.data.data[i].workflowHistoricTasks[len].auditMind && response.data.data[i].workflowHistoricTasks[len].auditMind.indexOf("##") !=-1) {
-											response.data.data[i].auditMind = response.data.data[i].workflowHistoricTasks[len].auditMind.split("##")[0]
-											response.data.data[i].fileUrl = response.data.data[i].workflowHistoricTasks[len].auditMind.split("##")[1].split(",")
-										}else{
-											response.data.data[i].auditMind = response.data.data[i].workflowHistoricTasks[len].auditMind
+										if (response.data.data[i].workflowHistoricTasks[len]
+											.auditMind && response.data.data[i]
+											.workflowHistoricTasks[len].auditMind.indexOf("##") !=
+											-1) {
+											response.data.data[i].auditMind = response.data.data[i]
+												.workflowHistoricTasks[len].auditMind.split("##")[
+													0]
+											response.data.data[i].fileUrl = response.data.data[i]
+												.workflowHistoricTasks[len].auditMind.split("##")[
+													1].split(",")
+										} else {
+											response.data.data[i].auditMind = response.data.data[i]
+												.workflowHistoricTasks[len].auditMind
 										}
 									} else {
 										this.$set(response.data.data[i], 'status', 'question')
@@ -505,7 +461,7 @@
 											response.data.data[i].operatorTitle = response.data
 												.data[i].desc.substring(0, 2)
 										}
-					
+
 										response.data.data[i].operatorName = response.data
 											.data[i].desc
 										var time1 = new Date(response.data.data[i].updateDate)
@@ -515,17 +471,17 @@
 										response.data.data[i].auditMind = ''
 									}
 								}
-					
+
 							}
 							console.log(response.data.data)
-							for(let i = 0 ;i<response.data.data.length;i++){
-								if(response.data.data[i].status == "error"){
+							for (let i = 0; i < response.data.data.length; i++) {
+								if (response.data.data[i].status == "error") {
 									this.auditCheck = "error"
 									break;
-								}else if(response.data.data[i].status == "question"){
+								} else if (response.data.data[i].status == "question") {
 									this.auditCheck = "question"
 									break;
-								}else{ 
+								} else {
 									this.auditCheck = "success"
 								}
 							}
@@ -545,20 +501,23 @@
 								status: 'success'
 							})
 							for (var i = 0; i < this.list.tranCarInfoList.length; i++) {
-								if(!this.list.tranCarInfoList[i].billingMethod){
-									this.list.tranCarInfoList[i].billingMethod=1
+								if (!this.list.tranCarInfoList[i].billingMethod) {
+									this.list.tranCarInfoList[i].billingMethod = 1
 								}
-								if(this.editstatus){
-									if(this.list.tranCarInfoList[i].tranPriceOld&&this.list.tranCarInfoList[i].tranPriceOld!=0){
-										this.list.tranCarInfoList[i].tranPrice=this.list.tranCarInfoList[i].tranPriceOld
+								if (this.editstatus) {
+									if (this.list.tranCarInfoList[i].tranPriceOld && this.list
+										.tranCarInfoList[i].tranPriceOld != 0) {
+										this.list.tranCarInfoList[i].tranPrice = this.list
+											.tranCarInfoList[i].tranPriceOld
 									}
-								}else{
-									this.list.tranCarInfoList[i].tranPrice=	Number(this.list.tranCarInfoList[i].tranPrice).toFixed(2)
+								} else {
+									this.list.tranCarInfoList[i].tranPrice = Number(this.list
+										.tranCarInfoList[i].tranPrice).toFixed(2)
 								}
 							}
 						})
 					})
-					
+
 				})
 			},
 		}
@@ -587,7 +546,7 @@
 		bottom: 0rpx;
 		display: flex;
 		z-index: 2;
-		background:#fff;
+		background: #fff;
 	}
 
 	.topInfo {
@@ -650,12 +609,13 @@
 		width: 100%;
 		justify-content: flex-end;
 	}
+
 	.u-form {
 		margin-bottom: 20rpx;
 		background: #fff;
 		border-radius: 10px;
 		padding: 30rpx 10px;
-	
+
 		.u-form-item {
 			line-height: 30px;
 			padding: 0px 0;
@@ -663,22 +623,23 @@
 			color: #878C9C;
 		}
 	}
+
 	.content2 {
 		background: white;
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		padding: 20rpx;
-	
+
 		.row {
 			display: flex;
-	
+
 			.row-left {
 				display: flex;
 				align-items: center;
-	
+
 				.item1 {
 					position: relative;
-	
+
 					.item-content {
 						background: #617AE0;
 						width: 44px;
@@ -689,7 +650,7 @@
 						font-size: 15px;
 						color: #fff;
 					}
-	
+
 					.status {
 						position: absolute;
 						border-radius: 50%;
@@ -698,27 +659,27 @@
 						bottom: -3px;
 						background: #fff;
 					}
-	
+
 					.status.success {
 						border: 1px solid rgb(60, 156, 255);
 					}
-	
+
 					.status.error {
 						border: 1px solid rgb(245, 108, 108);
 					}
-	
+
 					.status.question {
 						border: 1px solid #f9ae3d;
 					}
 				}
-	
+
 			}
-	
+
 			.row-right {
 				width: 80%;
 				// color: #B0B1B5;
 				margin-top: 10px;
-	
+
 				.right-content {
 					background: #F2F3F7;
 					margin-left: 10px;
@@ -727,43 +688,44 @@
 					border-radius: 5px;
 					color: #B0B1B5;
 				}
-	
+
 				.right-item {
 					display: flex;
 					justify-content: space-between;
-	
+
 					.time {
 						color: #999;
 					}
-	
+
 					.item2 {
 						margin-left: 20rpx;
 						margin-top: -7px;
-	
+
 						.name {
 							font-size: 28rpx;
 							font-weight: 800;
 							margin-bottom: 4px;
 						}
-	
+
 						.status.success {
 							color: #6CC48C;
 						}
-	
+
 						.status.error {
 							color: rgb(245, 108, 108);
 						}
-	
+
 						.status.question {
 							color: #f9ae3d;
 						}
 					}
 				}
+
 				.audit_img {
 					flex-wrap: wrap;
 					// margin: 0 10rpx;
 					margin-left: 20rpx;
-				
+
 					.url_css {
 						border: 1px solid #999999;
 						border-radius: 10px;
@@ -772,7 +734,7 @@
 						overflow: hidden;
 						width: 73px;
 						height: 73px;
-				
+
 						.url_img {
 							width: 73px;
 							height: 73px;
@@ -782,10 +744,10 @@
 				}
 			}
 		}
-	
+
 		.row2 {
 			display: flex;
-	
+
 			.item-content {
 				background: #22C572;
 				width: 30px;
@@ -798,29 +760,31 @@
 				padding: 0 2px;
 				margin: 0 auto;
 			}
-	
+
 			.status {
 				position: absolute;
 				top: 0;
 				right: 0;
 			}
 		}
-	
+
 		.row-line {
 			width: 1px;
 			height: 30px;
 			background: #F2F2F2;
 			margin: 10rpx 50rpx;
-	
+
 		}
-	
+
 		.audit {
 			margin-top: 20rpx;
 		}
 	}
-	.warp{
-		padding-bottom:252rpx;
+
+	.warp {
+		padding-bottom: 252rpx;
 	}
+
 	.shade {
 		position: fixed;
 		top: 0;
@@ -829,7 +793,7 @@
 		width: 100%;
 		background: rgba(0, 0, 0, 0.4);
 		z-index: 13;
-	
+
 		.wrap {
 			position: absolute;
 			left: 0;
@@ -842,7 +806,7 @@
 			height: 836rpx;
 			border-radius: 20rpx;
 			// overflow-y: scroll;
-	
+
 			.alert-top {
 				padding: 33rpx;
 				display: flex;
@@ -850,20 +814,20 @@
 				align-items: center;
 				position: relative;
 			}
-	
+
 			.title {
 				font-size: 32rpx;
 				font-weight: 600;
 				color: #333333;
 			}
-	
+
 			.close {
 				position: absolute;
 				right: 33rpx;
 			}
 		}
 	}
-	
+
 	.cancel,
 	.confirm {
 		position: absolute;
@@ -874,23 +838,23 @@
 		padding: 10px;
 		border-top: 1px solid #eee;
 		font-size: 34rpx;
-		z-index:10;
-		background:#fff;
+		z-index: 10;
+		background: #fff;
 	}
-	
+
 	.cancel {
 		left: 0;
 		border-right: 1px solid #eee;
 		color: #AFB3BF;
 		border-radius: 0 0 0 10px;
 	}
-	
+
 	.confirm {
 		right: 0;
 		color: #22C572;
 		border-radius: 0 0 10px 0;
 	}
-	
+
 	.textarea {
 		margin: 18rpx auto;
 		width: 100%;
@@ -900,7 +864,7 @@
 		font-size: 28rpx;
 		padding: 10px;
 	}
-	
+
 	.textCss {
 		display: flex;
 		justify-content: flex-end;
@@ -908,7 +872,7 @@
 		text-align: right;
 		color: #333333;
 	}
-	
+
 	.u-textarea-style {
 		margin: 20rpx;
 		background: #F9F9FA;
@@ -916,13 +880,13 @@
 		border: 1px solid #EEEEEE;
 		padding: 10rpx 20rpx;
 		position: relative;
-	
+
 		height: 170px;
-	
+
 		/deep/.uni-textarea-textarea {
 			width: 80%;
 		}
-	
+
 		.right-bottom {
 			position: absolute;
 			right: 20rpx;
@@ -930,13 +894,15 @@
 			color: #AFB3BF;
 		}
 	}
-	
+
 	/deep/.u-input__textarea {
 		height: 300rpx !important;
 	}
+
 	/deep/.taskNo .u-form-item--right__content__slot {
 		flex-direction: column;
 	}
+
 	.bottom-btn {
 		width: 100%;
 		position: fixed;
@@ -946,47 +912,51 @@
 		left: 0;
 		background-color: #f8f8f8;
 		flex-direction: column;
-	
+
 		.btn1,
 		.btn2 {
 			width: 100%;
 			margin-bottom: 26rpx;
 			border-radius: 90rpx;
 		}
-	
+
 		.btn1 {
 			background: white;
 			color: #00C265;
 		}
 	}
-	/deep/.u-upload .u-list-item{
-		background:#fff;
-		border:1px dashed #ccc;
-		border-radius:10rpx;
-		height:190rpx;
-		width:190rpx;
-		margin:10rpx;
-		text-align:center;
+
+	/deep/.u-upload .u-list-item {
+		background: #fff;
+		border: 1px dashed #ccc;
+		border-radius: 10rpx;
+		height: 190rpx;
+		width: 190rpx;
+		margin: 10rpx;
+		text-align: center;
 		display: flex;
 		align-items: center;
 		justify-content: center;
 		flex-direction: column;
 	}
-	/deep/.u-radio-group{
+
+	/deep/.u-radio-group {
 		display: flex;
 		justify-content: space-around;
-		width:90%;
-		margin:0 auto;
+		width: 90%;
+		margin: 0 auto;
 	}
-	/deep/.u-radio:first-child{
-			margin-left:60rpx;
-		}
-	/deep/.u-radio:last-child{
+
+	/deep/.u-radio:first-child {
+		margin-left: 60rpx;
+	}
+
+	/deep/.u-radio:last-child {
 		text-align: right;
+
 		// margin-left:auto;
-		.u-radio__label{
-			margin-right:0;
+		.u-radio__label {
+			margin-right: 0;
 		}
 	}
-	
 </style>

+ 224 - 220
pages/task/audit/warehouse_approval.vue

@@ -43,17 +43,18 @@
 				<view class="right">{{list.deductWeight}}</view>
 			</view> -->
 			<view class="form_view" style="background: #F9F9FA;" v-if="list.bulkDensityStandard ==1">
-				<table border="1" width="100%" style="border-collapse: collapse;" cellspacing="0" cellpadding="0" class="table_css">
-				<tr>
-					<td>{{list.goodsName!='大豆' ? '容重(g/L)' : '蛋白(g/L)'}}</td>
-					<td>价格(元/公斤)</td>
-				</tr>
-				<tr v-for="(item,index) in list.detailPrints">
-					<td>{{item.bulkDensityMax }} ~ {{ item.bulkDensityMin}}</td>
-					<td>{{item.bulkDensityPrice}}</td>
-				</tr>
+				<table border="1" width="100%" style="border-collapse: collapse;" cellspacing="0" cellpadding="0"
+					class="table_css">
+					<tr>
+						<td>{{list.goodsName!='大豆' ? '容重(g/L)' : '蛋白(g/L)'}}</td>
+						<td>价格(元/公斤)</td>
+					</tr>
+					<tr v-for="(item,index) in list.detailPrints">
+						<td>{{item.bulkDensityMax }} ~ {{ item.bulkDensityMin}}</td>
+						<td>{{item.bulkDensityPrice}}</td>
+					</tr>
 				</table>
-				
+
 			</view>
 			<!-- <view class='row' v-if="list.bulkDensityStandard !=1">
 				<view class="left">干粮收购价格(元/公斤)</view>
@@ -65,23 +66,24 @@
 			</view>
 		</view>
 		<view class="form_view" v-if="list.bulkDensityStandard !=1">
-			<table border="1" width="100%" style="border-collapse: collapse;" cellspacing="0" cellpadding="0" class="table_css">
-			<tr>
-				<td>水分</td>
-				<td>一等</td>
-				<td>二等</td>
-				<td>三等</td>
-				<td>等外</td>
-			</tr>
-			<tr v-for="(item,index) in list.detailPrints">
-				<td>{{item.waterMin}}</td>
-				<td>{{item.price1}}</td>
-				<td>{{item.price2}}</td>
-				<td>{{item.price3}}</td>
-				<td>{{item.priceOther}}</td>
-			</tr>
+			<table border="1" width="100%" style="border-collapse: collapse;" cellspacing="0" cellpadding="0"
+				class="table_css">
+				<tr>
+					<td>水分</td>
+					<td>一等</td>
+					<td>二等</td>
+					<td>三等</td>
+					<td>等外</td>
+				</tr>
+				<tr v-for="(item,index) in list.detailPrints">
+					<td>{{item.waterMin}}</td>
+					<td>{{item.price1}}</td>
+					<td>{{item.price2}}</td>
+					<td>{{item.price3}}</td>
+					<td>{{item.priceOther}}</td>
+				</tr>
 			</table>
-			
+
 		</view>
 		<!-- <view class="content2" v-if="list.bulkDensityStandard !=1">
 			<view class="title">粮价设置</view>
@@ -103,64 +105,7 @@
 				</view>
 			</view>
 		</view> -->
-		<view class="content3">
-			<view class="title row">
-				流程
-			</view>
-			<view v-for="(item,index) in auditList" :key='index' class="audit">
-				<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-					<view class="left">
-						<view class="item1">
-							<view class="item-content">{{item.operatorTitle}}</view> 
-							<view v-if="item.status=='success'" class='status success'>
-								<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-							</view>
-							<view v-if="item.status=='error'" class='status error'>
-								<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-							</view>
-							<view  v-if="item.status=='question'" class='status question'>
-								<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-							</view>
-						</view>
-					</view>
-					<view class="right">
-						<view class="right-item">
-							<view class="item2">
-								<view class="name">{{item.desc}}
-								</view>
-								<!-- <view class='time'>{{item.updateDate}}</view> -->
-								<view  v-if="item.status=='success'" class="status success">{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text v-if='!item.commonStaffs1&&index!=0'>已审核</text></view>
-								<view  v-if="item.status=='error'" class="status error">{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text></view>
-								<view  v-if="item.status=='question'" class="status question">{{item.commonStaffs1?item.staffscontent:''}}<text v-if='!item.commonStaffs1'>未审核</text></view>
-								<!-- <view  class="status success">吕波(已审核)</view> -->
-								
-							</view>
-							<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0' class='time'>
-							{{item.updateDate}}
-							</view>
-						</view>
-						<view v-if='item.auditMind' class="right-content">
-							{{item.auditMind}}
-						</view>
-					</view>
-					<view v-if='item.commonStaffs1' class="right">
-						<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'"  size="28"></u-icon>
-					</view>
-				</view>
-				<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-					<view class='row2'>
-						<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-							<view class="item-content">
-								<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-								<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-							</view> 
-							<view class="name">{{item1.staffName}}</view> 
-						</view>
-					</view>
-				</view>
-				<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
-			</view>
-		</view>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view v-if='show1' class="shade">
 			<view class="wrap">
 				<view class="alert-top">
@@ -213,10 +158,14 @@
 
 <script>
 	import helper from '@/common/helper.js';
+	import flow from '@/components/flow.vue';
 	import {
 		mapState
 	} from 'vuex';
 	export default {
+		components: {
+			flow
+		},
 		name: "task",
 		data() {
 			return {
@@ -232,7 +181,7 @@
 				rejectInfo1: "",
 				id: 0,
 				list: {},
-				auditList:[],
+				auditList: [],
 				pcUserInfo: uni.getStorageSync('pcUserInfo'),
 				switchVal: false,
 				contractNoList: [],
@@ -261,24 +210,27 @@
 			})
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			close() {
 				this.show1 = false
 				this.show2 = false
 			},
-			showcontent(item){
-				item.showflow=!item.showflow
+			showcontent(item) {
+				item.showflow = !item.showflow
 			},
 			getData() {
 				uni.showLoading({
-					title:'加载中',
-					mask:true
+					title: '加载中',
+					mask: true
 				})
 				var data = []
-				var that =this
+				var that = this
 				this.$api.doRequest('get', '/purchasePrice/purchasePriceLook', {
 					id: this.id
 				}).then(res => {
-					if (res.data.code == 200) { 
+					if (res.data.code == 200) {
 						this.list = res.data.data
 						this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
 							businessCode: 'PROCUREMENT-PRICE-APPROVE',
@@ -291,81 +243,111 @@
 							}).then(response => {
 								uni.hideLoading()
 								for (let i = 0; i < response.data.data.length; i++) {
-									this.$set(response.data.data[i],'status','question')
+									this.$set(response.data.data[i], 'status', 'question')
 									// console.log(response.data.data[i].workflowHistoricTasks,i)
-									if(response.data.data[i].commonStaffs){
-										response.data.data[i].showflow=false
-										response.data.data[i].operatorTitle=response.data.data[i].desc.substring(0,2)
-										response.data.data[i].operatorName=response.data.data[i].desc
-										response.data.data[i].staffscontent='共'+response.data.data[i].commonStaffs.length+'人,当前审核'+response.data.data[i].workflowHistoricTasks.length+'人'
-										if(response.data.data[i].workflowHistoricTasks&&response.data.data[i].workflowHistoricTasks.length>0){
-											if(response.data.data[i].workflowHistoricTasks.length!=response.data.data[i].commonStaffs.length){
+									if (response.data.data[i].commonStaffs) {
+										response.data.data[i].showflow = false
+										response.data.data[i].operatorTitle = response.data.data[i]
+											.desc.substring(0, 2)
+										response.data.data[i].operatorName = response.data.data[i]
+											.desc
+										response.data.data[i].staffscontent = '共' + response.data
+											.data[i].commonStaffs.length + '人,当前审核' + response.data
+											.data[i].workflowHistoricTasks.length + '人'
+										if (response.data.data[i].workflowHistoricTasks && response
+											.data.data[i].workflowHistoricTasks.length > 0) {
+											if (response.data.data[i].workflowHistoricTasks
+												.length != response.data.data[i].commonStaffs
+												.length) {
 												// response.data.data[i].status='question'
-												this.$set(response.data.data[i],'status','question')
-											}else{
-												this.$set(response.data.data[i],'status','success')
+												this.$set(response.data.data[i], 'status',
+													'question')
+											} else {
+												this.$set(response.data.data[i], 'status',
+													'success')
 												// response.data.data[i].status='success'
 											}
-											response.data.data[i].workflowlen=response.data.data[i].workflowHistoricTasks.length
-											var workflowdata=response.data.data[i].workflowHistoricTasks
-											var staffsdata=response.data.data[i].commonStaffs
+											response.data.data[i].workflowlen = response.data.data[
+												i].workflowHistoricTasks.length
+											var workflowdata = response.data.data[i]
+												.workflowHistoricTasks
+											var staffsdata = response.data.data[i].commonStaffs
 											for (let q = 0; q < staffsdata.length; q++) {
-												staffsdata[q].status=false
-												staffsdata[q].staffTitle=staffsdata[q].staffName
+												staffsdata[q].status = false
+												staffsdata[q].staffTitle = staffsdata[q].staffName
 												for (let k = 0; k < workflowdata.length; k++) {
-													if(staffsdata[q].staffId==workflowdata[k].operatorId){
-														staffsdata[q].status=true
+													if (staffsdata[q].staffId == workflowdata[k]
+														.operatorId) {
+														staffsdata[q].status = true
 													}
 												}
 											}
 										}
-										response.data.data[i].commonStaffs1=response.data.data[i].commonStaffs
-									}else{
-										if(response.data.data[i].workflowHistoricTasks&&response.data.data[i].workflowHistoricTasks.length>0){
-											var len =response.data.data[i].workflowHistoricTasks.length-1
-											if(response.data.data[i].workflowHistoricTasks[len].approved){
-												this.$set(response.data.data[i],'status','success')
-											}else{
-												this.$set(response.data.data[i],'status','error')
+										response.data.data[i].commonStaffs1 = response.data.data[i]
+											.commonStaffs
+									} else {
+										if (response.data.data[i].workflowHistoricTasks && response
+											.data.data[i].workflowHistoricTasks.length > 0) {
+											var len = response.data.data[i].workflowHistoricTasks
+												.length - 1
+											if (response.data.data[i].workflowHistoricTasks[len]
+												.approved) {
+												this.$set(response.data.data[i], 'status',
+													'success')
+											} else {
+												this.$set(response.data.data[i], 'status', 'error')
 											}
-											response.data.data[i].operatorTitle=response.data.data[i].workflowHistoricTasks[len].operatorName.substring(response.data.data[i].workflowHistoricTasks[0].operatorName.length - 2)
-											response.data.data[i].operatorName=response.data.data[i].workflowHistoricTasks[len].operatorName
-											var time=new Date(response.data.data[i].workflowHistoricTasks[len].claimTime).getTime()
-											response.data.data[i].updateDate=this.$u.timeFormat(time, 'mm.dd hh:MM')
-											response.data.data[i].auditMind=response.data.data[i].workflowHistoricTasks[len].auditMind
-										}else{
-											this.$set(response.data.data[i],'status','question')
+											response.data.data[i].operatorTitle = response.data
+												.data[i].workflowHistoricTasks[len].operatorName
+												.substring(response.data.data[i]
+													.workflowHistoricTasks[0].operatorName.length -
+													2)
+											response.data.data[i].operatorName = response.data
+												.data[i].workflowHistoricTasks[len].operatorName
+											var time = new Date(response.data.data[i]
+													.workflowHistoricTasks[len].claimTime)
+												.getTime()
+											response.data.data[i].updateDate = this.$u.timeFormat(
+												time, 'mm.dd hh:MM')
+											response.data.data[i].auditMind = response.data.data[i]
+												.workflowHistoricTasks[len].auditMind
+										} else {
+											this.$set(response.data.data[i], 'status', 'question')
 											// response.data.data[i].status='question'
-											if(response.data.data[i].desc=='总经理助理审核'){
-												response.data.data[i].operatorTitle='总助'
-											}else if(response.data.data[i].desc=='杜大光审核'){
-												response.data.data[i].operatorTitle='大光'
-											}else{
-												response.data.data[i].operatorTitle=response.data.data[i].desc.substring(0,2)
+											if (response.data.data[i].desc == '总经理助理审核') {
+												response.data.data[i].operatorTitle = '总助'
+											} else if (response.data.data[i].desc == '杜大光审核') {
+												response.data.data[i].operatorTitle = '大光'
+											} else {
+												response.data.data[i].operatorTitle = response.data
+													.data[i].desc.substring(0, 2)
 											}
-											response.data.data[i].operatorName=response.data.data[i].desc
-											var time1=new Date(response.data.data[i].updateDate).getTime()
-											response.data.data[i].updateDate=this.$u.timeFormat(time1, 'mm.dd hh:MM')
-											response.data.data[i].auditMind=''
+											response.data.data[i].operatorName = response.data
+												.data[i].desc
+											var time1 = new Date(response.data.data[i].updateDate)
+												.getTime()
+											response.data.data[i].updateDate = this.$u.timeFormat(
+												time1, 'mm.dd hh:MM')
+											response.data.data[i].auditMind = ''
 										}
 									}
-									
+
 								}
 								console.log(response.data.data)
 								this.auditList = response.data.data
-								var time2=new Date(this.list.updateDate).getTime()
-								var time3=this.$u.timeFormat(time2, 'mm.dd hh:MM')
+								var time2 = new Date(this.list.updateDate).getTime()
+								var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
 								this.auditList.unshift({
-									operatorTitle:this.list.creater.substring(0,2),
-									operatorName:this.list.creater,
-									updateDate:time3,
-									auditMind:'',
-									desc:'发起申请',
-									showflow:false,
-									commonStaffs1:null,
-									commonStaffs:null,
-									workflowHistoricTasks:[],
-									status:'success'
+									operatorTitle: this.list.creater.substring(0, 2),
+									operatorName: this.list.creater,
+									updateDate: time3,
+									auditMind: '',
+									desc: '发起申请',
+									showflow: false,
+									commonStaffs1: null,
+									commonStaffs: null,
+									workflowHistoricTasks: [],
+									status: 'success'
 								})
 							})
 						})
@@ -390,30 +372,30 @@
 							// that.$api.doRequest('post', '/purchasePrice/purchasePriceEdit', that.list)
 							// 	.then(res => {
 							// 		if (res.data.code == 200) {
-										that.$api.doRequest('post', '/newWorkflow/api/handle', {
-											approved: true,
-											auditMind: that.rejectInfo1,
-											needReapply: true,
-											taskId: that.list.taskId,
-										}).then(res1 => {
-											if (res1.data.code == 200) {
-												that.$api.msg('审核成功');
-												setTimeout(function() {
-													if (this.everyCheck) {
-														helper.setAudit(that.list)
-													} else {
-														uni.navigateBack()
-													}
-													uni.hideLoading()
-												}, 1000);
-											} else {
-												that.$api.msg(res1.data.message);
-											}
-										})
-									// } else {
-									// 	that.$api.msg('系统异常,请联系管理员');
-									// }
-								// })
+							that.$api.doRequest('post', '/newWorkflow/api/handle', {
+								approved: true,
+								auditMind: that.rejectInfo1,
+								needReapply: true,
+								taskId: that.list.taskId,
+							}).then(res1 => {
+								if (res1.data.code == 200) {
+									that.$api.msg('审核成功');
+									setTimeout(function() {
+										if (this.everyCheck) {
+											helper.setAudit(that.list)
+										} else {
+											uni.navigateBack()
+										}
+										uni.hideLoading()
+									}, 1000);
+								} else {
+									that.$api.msg(res1.data.message);
+								}
+							})
+							// } else {
+							// 	that.$api.msg('系统异常,请联系管理员');
+							// }
+							// })
 						}
 					}
 				})
@@ -671,21 +653,24 @@
 		right: 0;
 		color: #22C572;
 	}
+
 	.content3 {
 		background: white;
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		padding: 20rpx;
-	
+
 		.row {
 			display: flex;
-	
+
 			.left {
 				display: flex;
 				align-items: center;
-				.item1{
-					position:relative;
-					.item-content{
+
+				.item1 {
+					position: relative;
+
+					.item-content {
 						background: #617AE0;
 						width: 44px;
 						height: 44px;
@@ -695,108 +680,127 @@
 						font-size: 15px;
 						color: #fff;
 					}
-					.status{
-						position:absolute;
+
+					.status {
+						position: absolute;
 						border-radius: 50%;
 						padding: 0px 2px;
 						right: -3px;
 						bottom: -3px;
-						background:#fff;
+						background: #fff;
 					}
-					.status.success{
-						border:1px solid rgb(60, 156, 255);
+
+					.status.success {
+						border: 1px solid rgb(60, 156, 255);
 					}
-					.status.error{
-						border:1px solid rgb(245, 108, 108);
+
+					.status.error {
+						border: 1px solid rgb(245, 108, 108);
 					}
-					.status.question{
-						border:1px solid #f9ae3d;
+
+					.status.question {
+						border: 1px solid #f9ae3d;
 					}
 				}
-				
+
 			}
-	
+
 			.right {
-				width:80%;
+				width: 80%;
 				// color: #B0B1B5;
 				margin-top: 10px;
-				.right-content{
-					background:#F2F3F7;
-					margin-left:10px;
-					margin-top:10px;
-					padding:10px;
-					border-radius:5px;
+
+				.right-content {
+					background: #F2F3F7;
+					margin-left: 10px;
+					margin-top: 10px;
+					padding: 10px;
+					border-radius: 5px;
 					color: #B0B1B5;
 				}
-				.right-item{
+
+				.right-item {
 					display: flex;
 					justify-content: space-between;
-					.time{
-						color:#999;
+
+					.time {
+						color: #999;
 					}
+
 					.item2 {
 						margin-left: 20rpx;
 						margin-top: -7px;
-						
+
 						.name {
 							font-size: 28rpx;
 							font-weight: 800;
 						}
+
 						.status.success {
 							color: #6CC48C;
 						}
+
 						.status.error {
 							color: rgb(245, 108, 108);
 						}
+
 						.status.question {
 							color: #f9ae3d;
 						}
 					}
 				}
-			}	
+			}
 		}
-		.row2{
-			display:flex;
-			.item-content{
-				background:#22C572;
-			    width: 30px;
-			    height: 30px;
-			    border-radius: 50%;
-			    line-height: 30px;
-			    text-align: center;
-			    font-size: 12px;
-			    color: #fff;
-				padding:0 2px;
-				margin:0 auto;
+
+		.row2 {
+			display: flex;
+
+			.item-content {
+				background: #22C572;
+				width: 30px;
+				height: 30px;
+				border-radius: 50%;
+				line-height: 30px;
+				text-align: center;
+				font-size: 12px;
+				color: #fff;
+				padding: 0 2px;
+				margin: 0 auto;
 			}
-			.status{
-				position:absolute;
-				top:0;right:0;
+
+			.status {
+				position: absolute;
+				top: 0;
+				right: 0;
 			}
 		}
+
 		.row-line {
 			width: 1px;
 			height: 30px;
 			background: #F2F2F2;
 			margin: 10rpx 50rpx;
-	
+
 		}
-	
+
 		.audit {
 			margin-top: 20rpx;
 		}
 	}
-	.form_view{
+
+	.form_view {
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		background: #F9F9FA;
 		padding: 30rpx 20rpx;
-		.table_css td{
+
+		.table_css td {
 			text-align: center;
 			border: 1rpx solid #DBD9CE;
 			padding: 14rpx 0;
 		}
-		.table_css{
+
+		.table_css {
 			border: 1rpx solid #DBD9CE;
 		}
 	}

+ 175 - 184
pages/task/audit/warehouse_details.vue

@@ -43,15 +43,16 @@
 				<view class="right">{{list.deductWeight}}</view>
 			</view> -->
 			<view class="form_view" style="background: #F9F9FA;" v-if="list.bulkDensityStandard ==1">
-				<table border="1" width="100%" style="border-collapse: collapse;" cellspacing="0" cellpadding="0" class="table_css">
-				<tr>
-					<td>{{list.goodsName!='大豆' ? '容重(g/L)' : '蛋白(g/L)'}}</td>
-					<td>价格(元/公斤)</td>
-				</tr>
-				<tr v-for="(item,index) in list.detailPrints">
-					<td>{{item.bulkDensityMax }} ~ {{ item.bulkDensityMin}}</td>
-					<td>{{item.bulkDensityPrice}}</td>
-				</tr>
+				<table border="1" width="100%" style="border-collapse: collapse;" cellspacing="0" cellpadding="0"
+					class="table_css">
+					<tr>
+						<td>{{list.goodsName!='大豆' ? '容重(g/L)' : '蛋白(g/L)'}}</td>
+						<td>价格(元/公斤)</td>
+					</tr>
+					<tr v-for="(item,index) in list.detailPrints">
+						<td>{{item.bulkDensityMax }} ~ {{ item.bulkDensityMin}}</td>
+						<td>{{item.bulkDensityPrice}}</td>
+					</tr>
 				</table>
 			</view>
 			<!-- <view class='row' v-if="list.bulkDensityStandard !=1">
@@ -64,23 +65,24 @@
 			</view>
 		</view>
 		<view class="form_view" v-if="list.bulkDensityStandard !=1">
-			<table border="1" width="100%" style="border-collapse: collapse;" cellspacing="0" cellpadding="0" class="table_css">
-			<tr>
-				<td>水分</td>
-				<td>一等</td>
-				<td>二等</td>
-				<td>三等</td>
-				<td>等外</td>
-			</tr>
-			<tr v-for="(item,index) in list.detailPrints">
-				<td>{{item.waterMin}}</td>
-				<td>{{item.price1}}</td>
-				<td>{{item.price2}}</td>
-				<td>{{item.price3}}</td>
-				<td>{{item.priceOther}}</td>
-			</tr>
+			<table border="1" width="100%" style="border-collapse: collapse;" cellspacing="0" cellpadding="0"
+				class="table_css">
+				<tr>
+					<td>水分</td>
+					<td>一等</td>
+					<td>二等</td>
+					<td>三等</td>
+					<td>等外</td>
+				</tr>
+				<tr v-for="(item,index) in list.detailPrints">
+					<td>{{item.waterMin}}</td>
+					<td>{{item.price1}}</td>
+					<td>{{item.price2}}</td>
+					<td>{{item.price3}}</td>
+					<td>{{item.priceOther}}</td>
+				</tr>
 			</table>
-			
+
 		</view>
 		<!-- <view class="content2" v-if="list.bulkDensityStandard !=1">
 			<view class="title">粮价设置</view>
@@ -100,76 +102,23 @@
 				</view>
 			</view>
 		</view> -->
-		<view class="content3">
-			<view class="title row">
-				流程
-			</view>
-			<view v-for="(item,index) in auditList" :key='index' class="audit">
-				<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-					<view class="left">
-						<view class="item1">
-							<view class="item-content">{{item.operatorTitle}}</view> 
-							<view v-if="item.status=='success'" class='status success'>
-								<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-							</view>
-							<view v-if="item.status=='error'" class='status error'>
-								<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-							</view>
-							<view  v-if="item.status=='question'" class='status question'>
-								<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-							</view>
-						</view>
-					</view>
-					<view class="right">
-						<view class="right-item">
-							<view class="item2">
-								<view class="name">{{item.desc}}
-								</view>
-								<!-- <view class='time'>{{item.updateDate}}</view> -->
-								<view  v-if="item.status=='success'" class="status success">{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text v-if='!item.commonStaffs1&&index!=0'>已审核</text></view>
-								<view  v-if="item.status=='error'" class="status error">{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text></view>
-								<view  v-if="item.status=='question'" class="status question">{{item.commonStaffs1?item.staffscontent:''}}<text v-if='!item.commonStaffs1'>未审核</text></view>
-								<!-- <view  class="status success">吕波(已审核)</view> -->
-								
-							</view>
-							<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0' class='time'>
-							{{item.updateDate}}
-							</view>
-						</view>
-						<view v-if='item.auditMind' class="right-content">
-							{{item.auditMind}}
-						</view>
-					</view>
-					<view v-if='item.commonStaffs1' class="right">
-						<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'"  size="28"></u-icon>
-					</view>
-				</view>
-				<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-					<view class='row2'>
-						<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-							<view class="item-content">
-								<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-								<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-							</view> 
-							<view class="name">{{item1.staffName}}</view> 
-						</view>
-					</view>
-				</view>
-				<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
-			</view>
-		</view>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<u-toast ref="uToast" />
 		<view style='padding:10px;' class='flex bottom-btn'>
-			<u-button  @click='fanHui' type="success" class="btn2">返回</u-button>
+			<u-button @click='fanHui' type="success" class="btn2">返回</u-button>
 		</view>
 	</view>
 </template>
 
 <script>
+	import flow from '@/components/flow.vue';
 	import {
 		mapState
 	} from 'vuex';
 	export default {
+		components: {
+			flow
+		},
 		name: "task",
 		data() {
 			return {
@@ -185,7 +134,7 @@
 				pcUserInfo: uni.getStorageSync('pcUserInfo'),
 				switchVal: false,
 				contractNoList: [],
-				auditList:[],
+				auditList: [],
 			};
 		},
 		computed: {
@@ -201,13 +150,16 @@
 			})
 		},
 		methods: {
-			showcontent(item){
-				item.showflow=!item.showflow
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
+			showcontent(item) {
+				item.showflow = !item.showflow
 			},
 			getData() {
 				uni.showLoading({
-					title:'加载中',
-					mask:true
+					title: '加载中',
+					mask: true
 				})
 				var data = []
 				var that = this
@@ -227,82 +179,112 @@
 							}).then(response => {
 								uni.hideLoading()
 								for (let i = 0; i < response.data.data.length; i++) {
-									this.$set(response.data.data[i],'status','question')
+									this.$set(response.data.data[i], 'status', 'question')
 									// console.log(response.data.data[i].workflowHistoricTasks,i)
-									if(response.data.data[i].commonStaffs){
-										response.data.data[i].showflow=false
-										response.data.data[i].operatorTitle=response.data.data[i].desc.substring(0,2)
-										response.data.data[i].operatorName=response.data.data[i].desc
-										response.data.data[i].staffscontent='共'+response.data.data[i].commonStaffs.length+'人,当前审核'+response.data.data[i].workflowHistoricTasks.length+'人'
-										if(response.data.data[i].workflowHistoricTasks&&response.data.data[i].workflowHistoricTasks.length>0){
-											if(response.data.data[i].workflowHistoricTasks.length!=response.data.data[i].commonStaffs.length){
+									if (response.data.data[i].commonStaffs) {
+										response.data.data[i].showflow = false
+										response.data.data[i].operatorTitle = response.data.data[i]
+											.desc.substring(0, 2)
+										response.data.data[i].operatorName = response.data.data[i]
+											.desc
+										response.data.data[i].staffscontent = '共' + response.data
+											.data[i].commonStaffs.length + '人,当前审核' + response.data
+											.data[i].workflowHistoricTasks.length + '人'
+										if (response.data.data[i].workflowHistoricTasks && response
+											.data.data[i].workflowHistoricTasks.length > 0) {
+											if (response.data.data[i].workflowHistoricTasks
+												.length != response.data.data[i].commonStaffs
+												.length) {
 												// response.data.data[i].status='question'
-												this.$set(response.data.data[i],'status','question')
-											}else{
-												this.$set(response.data.data[i],'status','success')
+												this.$set(response.data.data[i], 'status',
+													'question')
+											} else {
+												this.$set(response.data.data[i], 'status',
+													'success')
 												// response.data.data[i].status='success'
 											}
-											response.data.data[i].workflowlen=response.data.data[i].workflowHistoricTasks.length
-											var workflowdata=response.data.data[i].workflowHistoricTasks
-											var staffsdata=response.data.data[i].commonStaffs
+											response.data.data[i].workflowlen = response.data.data[
+												i].workflowHistoricTasks.length
+											var workflowdata = response.data.data[i]
+												.workflowHistoricTasks
+											var staffsdata = response.data.data[i].commonStaffs
 											for (let q = 0; q < staffsdata.length; q++) {
-												staffsdata[q].status=false
-												staffsdata[q].staffTitle=staffsdata[q].staffName
+												staffsdata[q].status = false
+												staffsdata[q].staffTitle = staffsdata[q].staffName
 												for (let k = 0; k < workflowdata.length; k++) {
-													if(staffsdata[q].staffId==workflowdata[k].operatorId){
-														staffsdata[q].status=true
+													if (staffsdata[q].staffId == workflowdata[k]
+														.operatorId) {
+														staffsdata[q].status = true
 													}
 												}
 											}
 										}
-										response.data.data[i].commonStaffs1=response.data.data[i].commonStaffs
-									}else{
-										if(response.data.data[i].workflowHistoricTasks&&response.data.data[i].workflowHistoricTasks.length>0){
-											var len =response.data.data[i].workflowHistoricTasks.length-1
-											if(response.data.data[i].workflowHistoricTasks[len].approved){
-												this.$set(response.data.data[i],'status','success')
-											}else{
-												this.$set(response.data.data[i],'status','error')
+										response.data.data[i].commonStaffs1 = response.data.data[i]
+											.commonStaffs
+									} else {
+										if (response.data.data[i].workflowHistoricTasks && response
+											.data.data[i].workflowHistoricTasks.length > 0) {
+											var len = response.data.data[i].workflowHistoricTasks
+												.length - 1
+											if (response.data.data[i].workflowHistoricTasks[len]
+												.approved) {
+												this.$set(response.data.data[i], 'status',
+													'success')
+											} else {
+												this.$set(response.data.data[i], 'status', 'error')
 											}
-											response.data.data[i].operatorTitle=response.data.data[i].workflowHistoricTasks[len].operatorName.substring(response.data.data[i].workflowHistoricTasks[0].operatorName.length - 2)
-											response.data.data[i].operatorName=response.data.data[i].workflowHistoricTasks[len].operatorName
-											var time=new Date(response.data.data[i].workflowHistoricTasks[len].claimTime).getTime()
-											response.data.data[i].updateDate=this.$u.timeFormat(time, 'mm.dd hh:MM')
-											response.data.data[i].auditMind=response.data.data[i].workflowHistoricTasks[len].auditMind
-										}else{
-											this.$set(response.data.data[i],'status','question')
+											response.data.data[i].operatorTitle = response.data
+												.data[i].workflowHistoricTasks[len].operatorName
+												.substring(response.data.data[i]
+													.workflowHistoricTasks[0].operatorName.length -
+													2)
+											response.data.data[i].operatorName = response.data
+												.data[i].workflowHistoricTasks[len].operatorName
+											var time = new Date(response.data.data[i]
+													.workflowHistoricTasks[len].claimTime)
+												.getTime()
+											response.data.data[i].updateDate = this.$u.timeFormat(
+												time, 'mm.dd hh:MM')
+											response.data.data[i].auditMind = response.data.data[i]
+												.workflowHistoricTasks[len].auditMind
+										} else {
+											this.$set(response.data.data[i], 'status', 'question')
 											// response.data.data[i].status='question'
-											if(response.data.data[i].desc=='总经理助理审核'){
-												response.data.data[i].operatorTitle='总助'
-											}else if(response.data.data[i].desc=='杜大光审核'){
-												response.data.data[i].operatorTitle='大光'
-											}else{
-												response.data.data[i].operatorTitle=response.data.data[i].desc.substring(0,2)
+											if (response.data.data[i].desc == '总经理助理审核') {
+												response.data.data[i].operatorTitle = '总助'
+											} else if (response.data.data[i].desc == '杜大光审核') {
+												response.data.data[i].operatorTitle = '大光'
+											} else {
+												response.data.data[i].operatorTitle = response.data
+													.data[i].desc.substring(0, 2)
 											}
-											
-											response.data.data[i].operatorName=response.data.data[i].desc
-											var time1=new Date(response.data.data[i].updateDate).getTime()
-											response.data.data[i].updateDate=this.$u.timeFormat(time1, 'mm.dd hh:MM')
-											response.data.data[i].auditMind=''
+
+											response.data.data[i].operatorName = response.data
+												.data[i].desc
+											var time1 = new Date(response.data.data[i].updateDate)
+												.getTime()
+											response.data.data[i].updateDate = this.$u.timeFormat(
+												time1, 'mm.dd hh:MM')
+											response.data.data[i].auditMind = ''
 										}
 									}
-									
+
 								}
 								// console.log(response.data.data)
 								this.auditList = response.data.data
-								var time2=new Date(this.list.updateDate).getTime()
-								var time3=this.$u.timeFormat(time2, 'mm.dd hh:MM')
+								var time2 = new Date(this.list.updateDate).getTime()
+								var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
 								this.auditList.unshift({
-									operatorTitle:this.list.creater.substring(0,2),
-									operatorName:this.list.creater,
-									updateDate:time3,
-									auditMind:'',
-									desc:'发起申请',
-									showflow:false,
-									commonStaffs1:null,
-									commonStaffs:null,
-									workflowHistoricTasks:[],
-									status:'success'
+									operatorTitle: this.list.creater.substring(0, 2),
+									operatorName: this.list.creater,
+									updateDate: time3,
+									auditMind: '',
+									desc: '发起申请',
+									showflow: false,
+									commonStaffs1: null,
+									commonStaffs: null,
+									workflowHistoricTasks: [],
+									status: 'success'
 								})
 							})
 						})
@@ -312,7 +294,7 @@
 			confirm(item) {
 				this.list.contractNo = item[0].value
 			},
-			fanHui(){
+			fanHui() {
 				uni.navigateBack()
 			}
 		}
@@ -359,18 +341,21 @@
 	.bottom-btn {
 		width: 100%;
 		position: fixed;
-		bottom:0;
+		bottom: 0;
 		display: flex;
 		z-index: 2;
 		left: 0;
 		background-color: #f8f8f8;
 		flex-direction: column;
-		.btn1,.btn2{
+
+		.btn1,
+		.btn2 {
 			width: 100%;
 			margin-bottom: 26rpx;
 			border-radius: 90rpx;
 		}
-		.btn1{
+
+		.btn1 {
 			background: white;
 			color: #00C265;
 		}
@@ -381,33 +366,35 @@
 		background: #22C572;
 		border-radius: 10rpx;
 	}
-	.boder{
-		border:0;
-		border-bottom: 0!important;
+
+	.boder {
+		border: 0;
+		border-bottom: 0 !important;
 	}
+
 	.topInfo {
 		height: 210rpx;
 		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
 		padding: 30rpx;
-	
+
 		.topInfo-item {
 			height: 150rpx;
 			background-color: #FFFFFF;
 			border-radius: 20rpx;
 			padding: 40rpx;
-	
+
 			.logo {
 				width: 40rpx;
 				height: 40rpx;
 				margin-top: 8rpx;
 			}
-	
+
 			.infoText {
 				font-size: 36rpx;
 				font-weight: 600;
 				margin-left: 20rpx;
 			}
-	
+
 			.infoData {
 				color: #878C9C;
 				font-size: 26rpx;
@@ -415,22 +402,23 @@
 			}
 		}
 	}
+
 	.content3 {
 		background: white;
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		padding: 20rpx;
-	
+
 		.row {
 			display: flex;
-	
+
 			.left {
 				display: flex;
 				align-items: center;
-	
+
 				.item1 {
 					position: relative;
-	
+
 					.item-content {
 						background: #617AE0;
 						width: 44px;
@@ -441,7 +429,7 @@
 						font-size: 15px;
 						color: #fff;
 					}
-	
+
 					.status {
 						position: absolute;
 						border-radius: 50%;
@@ -450,27 +438,27 @@
 						bottom: -3px;
 						background: #fff;
 					}
-	
+
 					.status.success {
 						border: 1px solid rgb(60, 156, 255);
 					}
-	
+
 					.status.error {
 						border: 1px solid rgb(245, 108, 108);
 					}
-	
+
 					.status.question {
 						border: 1px solid #f9ae3d;
 					}
 				}
-	
+
 			}
-	
+
 			.right {
 				width: 80%;
 				// color: #B0B1B5;
 				margin-top: 10px;
-	
+
 				.right-content {
 					background: #F2F3F7;
 					margin-left: 10px;
@@ -479,33 +467,33 @@
 					border-radius: 5px;
 					color: #B0B1B5;
 				}
-	
+
 				.right-item {
 					display: flex;
 					justify-content: space-between;
-	
+
 					.time {
 						color: #999;
 					}
-	
+
 					.item2 {
 						margin-left: 20rpx;
 						margin-top: -7px;
-	
+
 						.name {
 							font-size: 28rpx;
 							font-weight: 800;
 							margin-bottom: 4px;
 						}
-	
+
 						.status.success {
 							color: #6CC48C;
 						}
-	
+
 						.status.error {
 							color: rgb(245, 108, 108);
 						}
-	
+
 						.status.question {
 							color: #f9ae3d;
 						}
@@ -513,10 +501,10 @@
 				}
 			}
 		}
-	
+
 		.row2 {
 			display: flex;
-	
+
 			.item-content {
 				background: #22C572;
 				width: 30px;
@@ -529,37 +517,40 @@
 				padding: 0 2px;
 				margin: 0 auto;
 			}
-	
+
 			.status {
 				position: absolute;
 				top: 0;
 				right: 0;
 			}
 		}
-	
+
 		.row-line {
 			width: 1px;
 			height: 30px;
 			background: #F2F2F2;
 			margin: 10rpx 50rpx;
-	
+
 		}
-	
+
 		.audit {
 			margin-top: 20rpx;
 		}
 	}
-	.form_view{
+
+	.form_view {
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		background: #F9F9FA;
 		padding: 30rpx 20rpx;
-		.table_css td{
+
+		.table_css td {
 			text-align: center;
 			border: 1rpx solid #DBD9CE;
 			padding: 14rpx 0;
 		}
-		.table_css{
+
+		.table_css {
 			border: 1rpx solid #DBD9CE;
 		}
 	}

+ 16 - 72
pages/task/audit/warehouse_warrant.vue

@@ -38,9 +38,11 @@
 			</view>
 			<view class="row" v-for='item in auditInfo.goodNameList'>
 				<view class="left" style='width:33.3333%;text-align:center;border-right:1px solid #ccc;'>
-					{{item.goodsName}}</view>
+					{{item.goodsName}}
+				</view>
 				<view class="right" style='width:33.3333%;text-align:center;border-right:1px solid #ccc;'>
-					{{item.inWarehouseWeight}}</view>
+					{{item.inWarehouseWeight}}
+				</view>
 				<view class="right" style='width:33.3333%;text-align:center;'>{{item.requestFunds}}</view>
 			</view>
 			<view class="row">
@@ -73,7 +75,8 @@
 				备注信息
 			</view>
 			<view style="margin-top: 20rpx;">
-				<textarea v-model="auditInfo.warehousingOrderList[0].remark" :autoHeight="true" disabled style="font-size: 28rpx;"></textarea>
+				<textarea v-model="auditInfo.warehousingOrderList[0].remark" :autoHeight="true" disabled
+					style="font-size: 28rpx;"></textarea>
 			</view>
 		</view>
 
@@ -131,73 +134,7 @@
 				<text class="text_css">粮食指标.xls</text>
 			</view>
 		</view>
-		<view class="content2">
-			<view class="title row">
-				流程
-			</view>
-			<view v-for="(item,index) in auditList" :key='index' class="audit">
-				<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-					<view class="left">
-						<view class="item1">
-							<view class="item-content">{{item.operatorTitle}}</view>
-							<view v-if="item.status=='success'" class='status success'>
-								<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-							</view>
-							<view v-if="item.status=='error'" class='status error'>
-								<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-							</view>
-							<view v-if="item.status=='question'" class='status question'>
-								<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-							</view>
-						</view>
-					</view>
-					<view class="right">
-						<view class="right-item">
-							<view class="item2">
-								<view class="name">{{item.desc}}
-								</view>
-								<!-- <view class='time'>{{item.updateDate}}</view> -->
-								<view v-if="item.status=='success'" class="status success">
-									{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-										v-if='!item.commonStaffs1&&index!=0'>已审核</text></view>
-								<view v-if="item.status=='error'" class="status error">
-									{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text
-										v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text>
-								</view>
-								<view v-if="item.status=='question'" class="status question">
-									{{item.commonStaffs1?item.staffscontent:''}}<text
-										v-if='!item.commonStaffs1'>未审核</text></view>
-								<!-- <view  class="status success">吕波(已审核)</view> -->
-
-							</view>
-							<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0'
-								class='time'>
-								{{item.updateDate}}
-							</view>
-						</view>
-						<view v-if='item.auditMind' class="right-content">
-							{{item.auditMind}}
-						</view>
-					</view>
-					<view v-if='item.commonStaffs1' class="right">
-						<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'" size="28">
-						</u-icon>
-					</view>
-				</view>
-				<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-					<view class='row2'>
-						<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-							<view class="item-content">
-								<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-								<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-							</view>
-							<view class="name">{{item1.staffName}}</view>
-						</view>
-					</view>
-				</view>
-				<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
-			</view>
-		</view>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view v-if='show' class="shade">
 			<view class="wrap">
 				<view class="alert-top">
@@ -227,10 +164,14 @@
 
 <script>
 	import helper from '@/common/helper.js';
+	import flow from '@/components/flow.vue';
 	import {
 		mapState
 	} from 'vuex';
 	export default {
+		components: {
+			flow
+		},
 		data() {
 			return {
 				src: '../../../static/img/myimg/LiangShang@2x.png',
@@ -277,6 +218,9 @@
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			detailed(data, status) {
 				let obj
 				if (status == 1) {
@@ -493,8 +437,8 @@
 											response.data.data[i].operatorName = response.data
 												.data[i].workflowHistoricTasks[len].operatorName
 											var time = new Date(response.data.data[i]
-												.workflowHistoricTasks[len].claimTime)
-											.getTime()
+													.workflowHistoricTasks[len].claimTime)
+												.getTime()
 											response.data.data[i].updateDate = this.$u.timeFormat(
 												time, 'mm.dd hh:MM')
 											response.data.data[i].auditMind = response.data.data[i]

+ 188 - 195
pages/task/audit/warehouse_warrant_detail.vue

@@ -42,9 +42,13 @@
 				<view class="right" style='width:25%;text-align:center;'>金额(元)</view>
 			</view>
 			<view class="row" v-for='item in auditInfo.goodNameList'>
-				<view class="left" style='width:30%;text-align:center;border-right:1px solid #ccc;'>{{item.goodsName}}</view>
-				<view class="right" style='width:20%;text-align:center;border-right:1px solid #ccc;'>{{item.inWarehouseWeight}}</view>
-				<view class="right" style='width:25%;text-align:center;border-right:1px solid #ccc;'>{{item.cost}}</view>
+				<view class="left" style='width:30%;text-align:center;border-right:1px solid #ccc;'>{{item.goodsName}}
+				</view>
+				<view class="right" style='width:20%;text-align:center;border-right:1px solid #ccc;'>
+					{{item.inWarehouseWeight}}
+				</view>
+				<view class="right" style='width:25%;text-align:center;border-right:1px solid #ccc;'>{{item.cost}}
+				</view>
 				<view class="right" style='width:25%;text-align:center;'>{{item.requestFunds}}</view>
 			</view>
 			<view @click="detailed('',1)" class="row">
@@ -77,7 +81,8 @@
 				备注信息
 			</view>
 			<view style="margin-top: 20rpx;">
-				<textarea v-model="auditInfo.warehousingOrderList[0].remark" :autoHeight="true" disabled style="font-size: 28rpx;"></textarea>
+				<textarea v-model="auditInfo.warehousingOrderList[0].remark" :autoHeight="true" disabled
+					style="font-size: 28rpx;"></textarea>
 			</view>
 		</view>
 
@@ -135,69 +140,7 @@
 				<text class="text_css">粮食指标.xls</text>
 			</view>
 		</view>
-		<view class="content2">
-			<view class="title row">
-				流程
-			</view>
-			<view v-for="(item,index) in auditList" :key='index' class="audit">
-				<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
-					<view class="left">
-						<view class="item1">
-							<view class="item-content">{{item.operatorTitle}}</view> 
-							<view v-if="item.status=='success'" class='status success'>
-								<u-icon name="checkmark" color="#2979ff" size="24"></u-icon>
-							</view>
-							<view v-if="item.status=='error'" class='status error'>
-								<u-icon name="close" color="rgb(245, 108, 108)" size="24"></u-icon>
-							</view>
-							<view  v-if="item.status=='question'" class='status question'>
-								<u-icon name="question" color="#f9ae3d" size="24"></u-icon>
-							</view>
-						</view>
-					</view>
-					<view class="right">
-						<view class="right-item">
-							<view class="item2">
-								<view class="name">{{item.desc}}
-								</view>
-								<!-- <view class='time'>{{item.updateDate}}</view> -->
-								<view  v-if="item.status=='success'" class="status success">{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text v-if='!item.commonStaffs1&&index!=0'>已审核</text></view>
-								<view  v-if="item.status=='error'" class="status error">{{item.commonStaffs1?item.staffscontent:item.operatorName}}<text v-if='!item.commonStaffs1'>{{item.workflowHistoricTasks ? "已驳回":''}}</text></view>
-								<view  v-if="item.status=='question'" class="status question">{{item.commonStaffs1?item.staffscontent:''}}<text v-if='!item.commonStaffs1'>未审核</text></view>
-								<!-- <view  class="status success">吕波(已审核)</view> -->
-								
-							</view>
-							<view v-if='index==0||item.workflowHistoricTasks&&item.workflowHistoricTasks.length>0' class='time'>
-							{{item.updateDate}}
-							</view>
-						</view>
-						<view v-if='item.auditMind' class="right-content">
-							{{item.auditMind}}
-						</view>
-						<view class="flex audit_img">
-							<view v-for="(items,indexs) in item.fileUrl" class="url_css">
-								<image :src="items" mode="" class="url_img" @click="auditFile(items)"></image>
-							</view>
-						</view>
-					</view>
-					<view v-if='item.commonStaffs1' class="right">
-						<u-icon @click='showcontent(item)' :name="item.showflow?'arrow-up':'arrow-down'"  size="28"></u-icon>
-					</view>
-				</view>
-				<view v-if='item.showflow' style='padding:10px 0 0 50px;'>
-					<view class='row2'>
-						<view v-for='item1 in item.commonStaffs1' style='margin:5px;text-align:center;'>
-							<view class="item-content">
-								<u-icon v-if='item1.status' name="checkmark" color="#fff" size="14"></u-icon>
-								<u-icon v-if='!item1.status' name="question" color="#f9ae3d" size="14"></u-icon>
-							</view> 
-							<view class="name">{{item1.staffName}}</view> 
-						</view>
-					</view>
-				</view>
-				<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
-			</view>
-		</view>
+		<flow :auditList="auditList" @status='getStatus'></flow>
 		<view v-if='show' class="shade">
 			<view class="wrap">
 				<view class="alert-top">
@@ -226,10 +169,14 @@
 
 <script>
 	import helper from '@/common/helper.js';
+	import flow from '@/components/flow.vue';
 	import {
 		mapState
 	} from 'vuex';
 	export default {
+		components: {
+			flow
+		},
 		data() {
 			return {
 				src: '../../../static/img/myimg/LiangShang@2x.png',
@@ -276,6 +223,9 @@
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
+			getStatus(val) {
+				if (val == 200) this.getList()
+			},
 			auditFile(src) {
 				uni.downloadFile({
 					url: src,
@@ -291,19 +241,19 @@
 					}
 				});
 			},
-			detailed(data,status){
+			detailed(data, status) {
 				let obj
-				if(status==1){
-					 obj= JSON.stringify(this.auditInfo.warehousingOrderList)
-				}else{
+				if (status == 1) {
+					obj = JSON.stringify(this.auditInfo.warehousingOrderList)
+				} else {
 					obj = JSON.stringify([data])
 				}
-					uni.navigateTo({
-						url: '/pages/task/audit/viewDetail?data='+obj
-					});
+				uni.navigateTo({
+					url: '/pages/task/audit/viewDetail?data=' + obj
+				});
 			},
-			showcontent(item){
-				item.showflow=!item.showflow
+			showcontent(item) {
+				item.showflow = !item.showflow
 			},
 			openXls() {
 				if (this.url && this.url != "ng") {
@@ -344,7 +294,7 @@
 					title: "加载中...",
 					mask: true
 				})
-				var that =this
+				var that = this
 				// this.$api.doRequest('get', '/warehousingOrder/selectInfo', {
 				// 	currentPage: 1,
 				// 	pageSize: 100,
@@ -390,43 +340,47 @@
 				}).then(res1 => {
 					if (res1.data.code == 200) {
 						this.auditInfo = res1.data.data
-						if(res1.data.data.warehousingOrderList){
-							var datalist=JSON.parse(JSON.stringify(res1.data.data.warehousingOrderList))
+						if (res1.data.data.warehousingOrderList) {
+							var datalist = JSON.parse(JSON.stringify(res1.data.data.warehousingOrderList))
 						}
-						var arr=[]
+						var arr = []
 						for (var i = 0; i < datalist.length; i++) {
-							datalist[i].cost=datalist[i].requestFunds/datalist[i].inWarehouseWeight
-							if(arr.length==0){
+							datalist[i].cost = datalist[i].requestFunds / datalist[i].inWarehouseWeight
+							if (arr.length == 0) {
 								arr.push(datalist[i])
-							}else{
-								var arr1=arr.filter((item)=>{return item.goodsName==datalist[i].goodsName})
-								if(arr1.length>0){
+							} else {
+								var arr1 = arr.filter((item) => {
+									return item.goodsName == datalist[i].goodsName
+								})
+								if (arr1.length > 0) {
 									for (var q = 0; q < arr.length; q++) {
-										
-										if(arr[q].goodsName==datalist[i].goodsName){console.log(22222)
-											console.log(arr[q].inWarehouseWeight,datalist[i].inWarehouseWeight)
-											arr[q].inWarehouseWeight+=datalist[i].inWarehouseWeight
-											arr[q].cost+=datalist[i].cost
-											arr[q].requestFunds+=datalist[i].requestFunds
+
+										if (arr[q].goodsName == datalist[i].goodsName) {
+											console.log(22222)
+											console.log(arr[q].inWarehouseWeight, datalist[i].inWarehouseWeight)
+											arr[q].inWarehouseWeight += datalist[i].inWarehouseWeight
+											arr[q].cost += datalist[i].cost
+											arr[q].requestFunds += datalist[i].requestFunds
 										}
 									}
-								}else{
+								} else {
 									arr.push(datalist[i])
 								}
 							}
-							
+
 						}
 						for (var q = 0; q < arr.length; q++) {
-							arr[q].inWarehouseWeight=arr[q].inWarehouseWeight.toFixed(2)
-							arr[q].cost=arr[q].cost.toFixed(2)
-							arr[q].requestFunds=arr[q].requestFunds.toFixed(2)
+							arr[q].inWarehouseWeight = arr[q].inWarehouseWeight.toFixed(2)
+							arr[q].cost = arr[q].cost.toFixed(2)
+							arr[q].requestFunds = arr[q].requestFunds.toFixed(2)
 						}
-						console.log(arr,1111111)
-						this.auditInfo.goodNameList=arr
-						if(this.auditInfo.inWarehouseWeightTotal){
-							this.auditInfo.inWarehouseWeightTotal = this.auditInfo.inWarehouseWeightTotal.toFixed(2)
+						console.log(arr, 1111111)
+						this.auditInfo.goodNameList = arr
+						if (this.auditInfo.inWarehouseWeightTotal) {
+							this.auditInfo.inWarehouseWeightTotal = this.auditInfo.inWarehouseWeightTotal.toFixed(
+								2)
 						}
-						if(this.auditInfo.requestFundsTotal){
+						if (this.auditInfo.requestFundsTotal) {
 							this.auditInfo.requestFundsTotal = this.auditInfo.requestFundsTotal.toFixed(2)
 						}
 						this.auditInfo.amountIngPayableTotal1 = helper.convertCurrency(this.auditInfo
@@ -439,97 +393,135 @@
 							this.$api.doRequest('get', '/commonUser/getHis', {
 								workflowId: res1.data.data[0].id,
 								businessKey: this.id,
-								branch:that.auditInfo.jointVentureParties?that.auditInfo.jointVentureParties:'zt'
+								branch: that.auditInfo.jointVentureParties ? that.auditInfo
+									.jointVentureParties : 'zt'
 							}).then(response => {
 								uni.hideLoading()
 								for (let i = 0; i < response.data.data.length; i++) {
-									this.$set(response.data.data[i],'status','question')
-									console.log(response.data.data[i].workflowHistoricTasks,i)
-									if(response.data.data[i].commonStaffs){
-										response.data.data[i].showflow=false
-										response.data.data[i].operatorTitle=response.data.data[i].desc.substring(0,2)
-										response.data.data[i].operatorName=response.data.data[i].desc
-										response.data.data[i].staffscontent='共'+response.data.data[i].commonStaffs.length+'人,当前审核'+response.data.data[i].workflowHistoricTasks.length+'人'
-										if(response.data.data[i].workflowHistoricTasks&&response.data.data[i].workflowHistoricTasks.length>0){
-											if(response.data.data[i].workflowHistoricTasks.length!=response.data.data[i].commonStaffs.length){
+									this.$set(response.data.data[i], 'status', 'question')
+									console.log(response.data.data[i].workflowHistoricTasks, i)
+									if (response.data.data[i].commonStaffs) {
+										response.data.data[i].showflow = false
+										response.data.data[i].operatorTitle = response.data.data[i]
+											.desc.substring(0, 2)
+										response.data.data[i].operatorName = response.data.data[i]
+											.desc
+										response.data.data[i].staffscontent = '共' + response.data
+											.data[i].commonStaffs.length + '人,当前审核' + response.data
+											.data[i].workflowHistoricTasks.length + '人'
+										if (response.data.data[i].workflowHistoricTasks && response
+											.data.data[i].workflowHistoricTasks.length > 0) {
+											if (response.data.data[i].workflowHistoricTasks
+												.length != response.data.data[i].commonStaffs
+												.length) {
 												// response.data.data[i].status='question'
-												this.$set(response.data.data[i],'status','question')
-											}else{
-												this.$set(response.data.data[i],'status','success')
+												this.$set(response.data.data[i], 'status',
+													'question')
+											} else {
+												this.$set(response.data.data[i], 'status',
+													'success')
 												// response.data.data[i].status='success'
 											}
-											response.data.data[i].workflowlen=response.data.data[i].workflowHistoricTasks.length
-											var workflowdata=response.data.data[i].workflowHistoricTasks
-											var staffsdata=response.data.data[i].commonStaffs
+											response.data.data[i].workflowlen = response.data.data[
+												i].workflowHistoricTasks.length
+											var workflowdata = response.data.data[i]
+												.workflowHistoricTasks
+											var staffsdata = response.data.data[i].commonStaffs
 											for (let q = 0; q < staffsdata.length; q++) {
-												staffsdata[q].status=false
-												staffsdata[q].staffTitle=staffsdata[q].staffName
+												staffsdata[q].status = false
+												staffsdata[q].staffTitle = staffsdata[q].staffName
 												for (let k = 0; k < workflowdata.length; k++) {
-													if(staffsdata[q].staffId==workflowdata[k].operatorId){
-														staffsdata[q].status=true
+													if (staffsdata[q].staffId == workflowdata[k]
+														.operatorId) {
+														staffsdata[q].status = true
 													}
 												}
 											}
 										}
-										response.data.data[i].commonStaffs1=response.data.data[i].commonStaffs
-									}else{
-										if(response.data.data[i].workflowHistoricTasks&&response.data.data[i].workflowHistoricTasks.length>0){
-											var len =response.data.data[i].workflowHistoricTasks.length-1
-											if(response.data.data[i].workflowHistoricTasks[len].approved){
-												this.$set(response.data.data[i],'status','success')
-											}else{
-												this.$set(response.data.data[i],'status','error')
+										response.data.data[i].commonStaffs1 = response.data.data[i]
+											.commonStaffs
+									} else {
+										if (response.data.data[i].workflowHistoricTasks && response
+											.data.data[i].workflowHistoricTasks.length > 0) {
+											var len = response.data.data[i].workflowHistoricTasks
+												.length - 1
+											if (response.data.data[i].workflowHistoricTasks[len]
+												.approved) {
+												this.$set(response.data.data[i], 'status',
+													'success')
+											} else {
+												this.$set(response.data.data[i], 'status', 'error')
 											}
-											response.data.data[i].operatorTitle=response.data.data[i].workflowHistoricTasks[len].operatorName.substring(response.data.data[i].workflowHistoricTasks[0].operatorName.length - 2)
-											response.data.data[i].operatorName=response.data.data[i].workflowHistoricTasks[len].operatorName
-											var time=new Date(response.data.data[i].workflowHistoricTasks[len].claimTime).getTime()
-											response.data.data[i].updateDate=this.$u.timeFormat(time, 'mm.dd hh:MM')
+											response.data.data[i].operatorTitle = response.data
+												.data[i].workflowHistoricTasks[len].operatorName
+												.substring(response.data.data[i]
+													.workflowHistoricTasks[0].operatorName.length -
+													2)
+											response.data.data[i].operatorName = response.data
+												.data[i].workflowHistoricTasks[len].operatorName
+											var time = new Date(response.data.data[i]
+													.workflowHistoricTasks[len].claimTime)
+												.getTime()
+											response.data.data[i].updateDate = this.$u.timeFormat(
+												time, 'mm.dd hh:MM')
 											// response.data.data[i].auditMind=response.data.data[i].workflowHistoricTasks[len].auditMind
-										    // 显示附件和审核意见
-										    if (response.data.data[i].workflowHistoricTasks[len].auditMind && response.data.data[i].workflowHistoricTasks[len].auditMind.indexOf("##") !=-1) {
-										    	response.data.data[i].auditMind = response.data.data[i].workflowHistoricTasks[len].auditMind.split("##")[0]
-										    	response.data.data[i].fileUrl = response.data.data[i].workflowHistoricTasks[len].auditMind.split("##")[1].split(",")
-										    }else{
-										    	response.data.data[i].auditMind = response.data.data[i].workflowHistoricTasks[len].auditMind
-										    }
-										}else{
-											this.$set(response.data.data[i],'status','question')
+											// 显示附件和审核意见
+											if (response.data.data[i].workflowHistoricTasks[len]
+												.auditMind && response.data.data[i]
+												.workflowHistoricTasks[len].auditMind.indexOf(
+													"##") != -1) {
+												response.data.data[i].auditMind = response.data
+													.data[i].workflowHistoricTasks[len].auditMind
+													.split("##")[0]
+												response.data.data[i].fileUrl = response.data.data[
+														i].workflowHistoricTasks[len].auditMind
+													.split("##")[1].split(",")
+											} else {
+												response.data.data[i].auditMind = response.data
+													.data[i].workflowHistoricTasks[len].auditMind
+											}
+										} else {
+											this.$set(response.data.data[i], 'status', 'question')
 											// response.data.data[i].status='question'
-											if(response.data.data[i].desc=='总经理助理审核'){
-												response.data.data[i].operatorTitle='总助'
-											}else if(response.data.data[i].desc=='杜大光审核'){
-												response.data.data[i].operatorTitle='大光'
-											}else{
-												response.data.data[i].operatorTitle=response.data.data[i].desc.substring(0,2)
+											if (response.data.data[i].desc == '总经理助理审核') {
+												response.data.data[i].operatorTitle = '总助'
+											} else if (response.data.data[i].desc == '杜大光审核') {
+												response.data.data[i].operatorTitle = '大光'
+											} else {
+												response.data.data[i].operatorTitle = response.data
+													.data[i].desc.substring(0, 2)
 											}
-											
-											response.data.data[i].operatorName=response.data.data[i].desc
-											var time1=new Date(response.data.data[i].updateDate).getTime()
-											response.data.data[i].updateDate=this.$u.timeFormat(time1, 'mm.dd hh:MM')
-											response.data.data[i].auditMind=''
+
+											response.data.data[i].operatorName = response.data
+												.data[i].desc
+											var time1 = new Date(response.data.data[i].updateDate)
+												.getTime()
+											response.data.data[i].updateDate = this.$u.timeFormat(
+												time1, 'mm.dd hh:MM')
+											response.data.data[i].auditMind = ''
 										}
 									}
-									
+
 								}
 								console.log(response.data.data)
 								this.auditList = response.data.data
-								var time2=new Date(this.auditInfo.createDate).getTime()
-								var time3=this.$u.timeFormat(time2, 'mm.dd hh:MM')
+								var time2 = new Date(this.auditInfo.createDate).getTime()
+								var time3 = this.$u.timeFormat(time2, 'mm.dd hh:MM')
 								this.auditList.unshift({
-									operatorTitle:this.auditInfo.creater.substring(0,2),
-									operatorName:this.auditInfo.creater,
-									updateDate:time3,
-									auditMind:'',
-									desc:'发起申请',
-									showflow:false,
-									commonStaffs1:null,
-									commonStaffs:null,
-									workflowHistoricTasks:[],
-									status:'success'
+									operatorTitle: this.auditInfo.creater.substring(0, 2),
+									operatorName: this.auditInfo.creater,
+									updateDate: time3,
+									auditMind: '',
+									desc: '发起申请',
+									showflow: false,
+									commonStaffs1: null,
+									commonStaffs: null,
+									workflowHistoricTasks: [],
+									status: 'success'
 								})
 							})
 						})
-						
+
 					}
 				})
 				// this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
@@ -550,7 +542,7 @@
 			close() {
 				this.show = false
 			},
-			fanHui(){
+			fanHui() {
 				uni.navigateBack()
 			},
 			pass() {
@@ -582,7 +574,7 @@
 			// 		}
 			// 	}
 			// },
-			
+
 			// audit(list, index, status, status2, reason) {
 			// 	uni.showLoading({
 			// 		title: "审核中"
@@ -728,17 +720,17 @@
 		margin: 20rpx 0;
 		border-radius: 20rpx;
 		padding: 20rpx;
-	
+
 		.row {
 			display: flex;
-	
+
 			.left {
 				display: flex;
 				align-items: center;
-	
+
 				.item1 {
 					position: relative;
-	
+
 					.item-content {
 						background: #617AE0;
 						width: 44px;
@@ -749,7 +741,7 @@
 						font-size: 15px;
 						color: #fff;
 					}
-	
+
 					.status {
 						position: absolute;
 						border-radius: 50%;
@@ -758,27 +750,27 @@
 						bottom: -3px;
 						background: #fff;
 					}
-	
+
 					.status.success {
 						border: 1px solid rgb(60, 156, 255);
 					}
-	
+
 					.status.error {
 						border: 1px solid rgb(245, 108, 108);
 					}
-	
+
 					.status.question {
 						border: 1px solid #f9ae3d;
 					}
 				}
-	
+
 			}
-	
+
 			.right {
 				width: 80%;
 				// color: #B0B1B5;
 				margin-top: 10px;
-	
+
 				.right-content {
 					background: #F2F3F7;
 					margin-left: 10px;
@@ -787,48 +779,49 @@
 					border-radius: 5px;
 					color: #B0B1B5;
 				}
-	
+
 				.right-item {
 					display: flex;
 					justify-content: space-between;
-	
+
 					.time {
 						color: #999;
 					}
-	
+
 					.item2 {
 						margin-left: 20rpx;
 						margin-top: -7px;
-	
+
 						.name {
 							font-size: 28rpx;
 							font-weight: 800;
 							margin-bottom: 4px;
 						}
-	
+
 						.status.success {
 							color: #6CC48C;
 						}
-	
+
 						.status.error {
 							color: rgb(245, 108, 108);
 						}
-	
+
 						.status.question {
 							color: #f9ae3d;
 						}
 					}
 				}
+
 				.audit_img {
 					flex-wrap: wrap;
 					margin: 0 20rpx;
-				
+
 					.url_css {
 						border: 1px solid #999999;
 						border-radius: 10px;
 						margin-top: 10px;
 						margin-right: 10px;
-				
+
 						.url_img {
 							width: 80px;
 							height: 80px;
@@ -838,10 +831,10 @@
 				}
 			}
 		}
-	
+
 		.row2 {
 			display: flex;
-	
+
 			.item-content {
 				background: #22C572;
 				width: 30px;
@@ -854,22 +847,22 @@
 				padding: 0 2px;
 				margin: 0 auto;
 			}
-	
+
 			.status {
 				position: absolute;
 				top: 0;
 				right: 0;
 			}
 		}
-	
+
 		.row-line {
 			width: 1px;
 			height: 30px;
 			background: #F2F2F2;
 			margin: 10rpx 50rpx;
-	
+
 		}
-	
+
 		.audit {
 			margin-top: 20rpx;
 		}

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff