فهرست منبع

Merge branch 'master' of http://git.zthymaoyi.com/gdc/yiliangyiyun-app

zhongtianhaoyuan 2 سال پیش
والد
کامیت
6357072057

+ 2 - 2
config/index.js

@@ -4,9 +4,9 @@ const dev = {
 	// baseUrlNew: 'http://192.168.110.67:9100/',
 	// baseUrlNew: 'http://192.168.1.118:8090/',
 	// baseUrlNew: 'http://192.168.110.9:9100/',
-	// baseUrlNew: 'http://192.168.110.138:8090/',
+	baseUrlNew: 'http://192.168.110.138:8090/',
 	// baseUrlNew: 'http://192.168.110.82:8099/',
-	 baseUrlNew: 'http://192.168.110.82:8090/',
+	 // baseUrlNew: 'http://192.168.110.82:8090/',
 	// baseUrlNew: 'http://192.168.110.202:8090/',
 	// baseUrlNew: 'http://192.168.110.138:8090/',
 	// 上传图片的

+ 2 - 2
pages/task/audit/Issueandreceipt_task_approval.vue

@@ -247,7 +247,7 @@
 						流程
 					</view>
 					<view v-for="(item,index) in auditList" :key='index' class="audit">
-						<view class="row">
+						<view class="row"  v-if='item.desc!="_PLACEHOLDER_"'>
 							<view class="left">
 								<view class="item1">
 									<view class="item-content">{{item.operatorTitle}}</view> 
@@ -297,7 +297,7 @@
 								</view>
 							</view>
 						</view>
-						<view class="row-line" :style='[{"height":item.auditMind?"80px":"40px"}]' v-if="index!= auditList.length - 1"></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>

+ 2 - 2
pages/task/audit/Issueandreceipt_task_details.vue

@@ -245,7 +245,7 @@
 						流程
 					</view>
 					<view v-for="(item,index) in auditList" :key='index' class="audit">
-						<view class="row">
+						<view class="row"  v-if='item.desc!="_PLACEHOLDER_"'>
 							<view class="left">
 								<view class="item1">
 									<view class="item-content">{{item.operatorTitle}}</view> 
@@ -295,7 +295,7 @@
 								</view>
 							</view>
 						</view>
-						<view class="row-line" v-if="index!= auditList.length - 1"></view>
+						<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
 					</view>
 				</view>
 			</u-form>

+ 347 - 0
pages/task/audit/freight_setting_approval.vue

@@ -53,6 +53,72 @@
 				</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-modal v-model="show" :title-style="{fontSize: '18px',fontWeight:'500'}"
 			:content-style="{fontSize: '14px',fontWeight:'400'}" confirm-color='#22C572' confirm-text='确定' title='提示'
 			showCancelButton='false' :content="content" @confirm="passSubmit" @cancel="show = false"></u-modal>
@@ -78,6 +144,7 @@
 				show: false,
 				rejectInfo: "", //审核意见
 				title: "提示",
+				auditList:[],
 				content: '是否通过该设置?'
 			}
 		},
@@ -100,10 +167,143 @@
 		},
 		methods: {
 			getList() {
+				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:that.list[0].jointVentureParties?that.list[0].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
+									} 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 = ''
+									}
+								}
+					
+							}
+							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'
+							})
+						})
+					})
 				})
 			},
 			passSubmit() {
@@ -242,4 +442,151 @@
 		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;
+			font-size: 26rpx;
+			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;
+						height: 44px;
+						border-radius: 22px;
+						line-height: 44px;
+						text-align: center;
+						font-size: 15px;
+						color: #fff;
+					}
+	
+					.status {
+						position: absolute;
+						border-radius: 50%;
+						padding: 0px 2px;
+						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;
+					}
+				}
+	
+			}
+	
+			.row-right {
+				width: 80%;
+				// color: #B0B1B5;
+				margin-top: 10px;
+	
+				.right-content {
+					background: #F2F3F7;
+					margin-left: 10px;
+					margin-top: 10px;
+					padding: 10px;
+					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;
+						}
+					}
+				}
+			}
+		}
+	
+		.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;
+		}
+	}
 </style>

+ 346 - 1
pages/task/audit/freight_setting_details.vue

@@ -45,6 +45,72 @@
 				</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="primary" class="submit" @click="fanHui()">返回</u-button>
 	</view>
 </template>
@@ -60,6 +126,7 @@
 					priceStatus:"",
 				},
 				id: "",
+				auditList:[]
 			}
 		},
 		onLoad(options) {
@@ -75,7 +142,138 @@
 					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:that.list[0].jointVentureParties?that.list[0].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
+										} 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 = ''
+										}
+									}
+						
+								}
+								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'
+								})
+							})
+						})
+					})
 			},
 			fanHui(){
 				uni.navigateBack()
@@ -145,4 +343,151 @@
 		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;
+			font-size: 26rpx;
+			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;
+						height: 44px;
+						border-radius: 22px;
+						line-height: 44px;
+						text-align: center;
+						font-size: 15px;
+						color: #fff;
+					}
+	
+					.status {
+						position: absolute;
+						border-radius: 50%;
+						padding: 0px 2px;
+						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;
+					}
+				}
+	
+			}
+	
+			.row-right {
+				width: 80%;
+				// color: #B0B1B5;
+				margin-top: 10px;
+	
+				.right-content {
+					background: #F2F3F7;
+					margin-left: 10px;
+					margin-top: 10px;
+					padding: 10px;
+					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;
+						}
+					}
+				}
+			}
+		}
+	
+		.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;
+		}
+	}
 </style>

+ 0 - 192
pages/task/audit/viewDetail.vue

@@ -1,192 +0,0 @@
-<template>
-	<view class="center">
-		<view class="data_css" v-for="(item,index) in dataList">
-			<!-- <view class="data_item"> -->
-				<!-- <view class="data_item_left">货源</view>
-				<view class="data_item_right">{{item.customer}}</view> -->
-				<!-- <u-form ref="uForm" >
-				<u-form-item label-width='260' :borderBottom="false" class="label_css"  label="货源">
-					<u-input v-model="item.customer" input-align="right" placeholder="--" disabled />
-				</u-form-item>
-				</u-form> -->
-				<u-row customStyle="margin-bottom: 10px" class="row_css">
-					<u-col span="6">
-						<view class="demo-layout title_name">货源</view>
-					</u-col>
-					<u-col span="6">
-						<view class="demo-layout value_css" >{{item.customer}}</view>
-					</u-col>
-				</u-row>
-			<!-- </view> -->
-			<view class="data_top_css">
-				<u-row customStyle="margin-bottom: 10px" class="row_css">
-					<u-col span="2">
-						<view class="demo-layout title_name">车牌号</view>
-					</u-col>
-					<u-col span="4">
-						<view class="demo-layout value_css" >{{item.carNo?item.carNo:'--'}}</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout title_name">水分(%)</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout value_css">{{item.waterContent?item.waterContent:'--'}}</view>
-					</u-col>
-				</u-row>
-				<u-row customStyle="margin-bottom: 10px" class="row_css">
-					<u-col span="3">
-						<view class="demo-layout title_name">毛重(吨)</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout value_css">{{item.grossWeight?item.grossWeight:'--'}}</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout title_name">容重(g/L)</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout value_css">{{item.bulkDensity?item.bulkDensity:'--'}}</view>
-					</u-col>
-				</u-row>
-				<u-row customStyle="margin-bottom: 10px" class="row_css">
-					<u-col span="3">
-						<view class="demo-layout title_name">皮重(吨)</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout value_css">{{item.tare?item.tare:'--'}}</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout title_name">杂质(%)</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout value_css">{{item.impurity?item.impurity:'--'}}</view>
-					</u-col>
-				</u-row>
-				<u-row customStyle="margin-bottom: 10px" class="row_css">
-					<u-col span="3">
-						<view class="demo-layout title_name">净重(吨)</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout value_css">{{item.netWeight?item.netWeight:'--'}}</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout title_name">霉变粒(%)</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout value_css">{{item.mildewGrain?item.mildewGrain:'--'}}</view>
-					</u-col>
-				</u-row> 
-				<u-row customStyle="margin-bottom: 10px" class="row_css">
-					<u-col span="3">
-						<view class="demo-layout title_name">单价(元/吨)</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout value_css">{{item.price?item.price:'--'}}</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout title_name">热损伤(%)</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout value_css">{{item. jiaorenli?item. jiaorenli:'--'}}</view>
-					</u-col>
-				</u-row>
-				<u-row customStyle="margin-bottom: 10px" class="row_css">
-					<u-col span="3">
-						<view class="demo-layout title_name">粮款(元)</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout value_css">{{item.grainFund?item.grainFund:'--'}}</view>
-					</u-col>
-					<u-col span="4">
-						<view class="demo-layout title_name">不完整粒(%)</view>
-					</u-col>
-					<u-col span="2"> 
-						<view class="demo-layout value_css">{{item.imperfectGrain?item.imperfectGrain:'--'}}</view>
-					</u-col>
-				</u-row>
-				<u-row customStyle="margin-bottom: 10px" class="row_css">
-					<u-col span="3">
-						<view class="demo-layout title_name">等级</view>
-					</u-col>
-					<u-col span="3">
-						<view class="demo-layout value_css">{{item.grade?item.grade:'--'}}</view>
-					</u-col>
-				</u-row>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				dataList: [],
-			}
-		},
-		onLoad(options) {
-			this.dataList = JSON.parse(options.data)
-			console.log(this.dataList)
-		},
-		onShow() {
-
-		},
-		methods: {
-
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.center {
-		padding: 30rpx 20rpx;
-	}
-	.u-form {
-		// margin-bottom: 20rpx;
-		background: #fff;
-		border-radius: 10px;
-		padding: 0rpx 10px;
-	
-		.u-form-item {
-			line-height: 30px;
-			padding: 0px 0;
-			font-size: 26rpx;
-			color: #878C9C;
-		}
-	}
-
-	.data_css {
-		background-color: #ffffff;
-		border-radius: 20rpx;
-		padding: 20rpx;
-		margin-bottom: 20rpx;
-		.data_item {
-			display: flex;
-			.data_item_left,
-			.data_item_right {
-				width: 50%;
-			}
-			.data_item_left{
-				margin-left: 10rpx;
-			}
-
-			.data_item_right {
-				text-align: right;
-			}
-		}
-		.data_top_css{
-			margin-top: 10rpx;
-			
-		}
-	}
-	.row_css{
-		margin-bottom: 10rpx;
-	}
-	.title_name{
-		color: #8F8F8F;
-	} 
-	.value_css{
-		color: #333333;
-		text-align: right;
-		margin-right: 40rpx;
-	}
-</style>

+ 53 - 7
pages/task/audit/warehouse_warrant.vue

@@ -31,15 +31,25 @@
 				<view class="left">请款人</view>
 				<view class="right">{{auditInfo.requestPerson}}</view>
 			</view>
+			<view class="row">
+				<view class="left" style='width:33.3333%;text-align:center;border-right:1px solid #ccc;'>货名 </view>
+				<view class="right" style='width:33.3333%;text-align:center;border-right:1px solid #ccc;'>重量(吨)</view>
+				<view class="right" style='width:33.3333%;text-align:center;'>金额(元)</view>
+			</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>
+				<view class="right" style='width:33.3333%;text-align:center;border-right:1px solid #ccc;'>{{item.inWarehouseWeight}}</view>
+				<view class="right" style='width:33.3333%;text-align:center;'>{{item.requestFunds}}</view>
+			</view>
 			<view class="row">
 				<view class="left">所属仓库 </view>
 				<view class="right">{{auditInfo.warehouseName}}</view>
 			</view>
-			<view class="row">
+			<view @click="detailed('',1)" class="row">
 				<view class="left">合计重量(吨)</view>
 				<view class="right">{{auditInfo.inWarehouseWeightTotal}}</view>
 			</view>
-			<view class="row">
+			<view @click="detailed('',1)" class="row">
 				<view class="left">合计金额(元)</view>
 				<view class="right">{{auditInfo.requestFundsTotal}}</view>
 			</view>
@@ -61,7 +71,7 @@
 			<view class="title ">
 				支付明细
 			</view>
-			<view class="mx-content" v-for="item in auditInfo.warehousingOrderList" @click="detailed">
+			<view class="mx-content" v-for="item in auditInfo.warehousingOrderList" @click="detailed(item,2)">
 				<view class='flex align-center justify-between'>
 					<view class="name">
 						{{item.customer}}
@@ -116,7 +126,7 @@
 				流程
 			</view>
 			<view v-for="(item,index) in auditList" :key='index' class="audit">
-				<view class="row">
+				<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
 					<view class="left">
 						<view class="item1">
 							<view class="item-content">{{item.operatorTitle}}</view> 
@@ -166,7 +176,7 @@
 						</view>
 					</view>
 				</view>
-				<view class="row-line" v-if="index!= auditList.length - 1"></view>
+				<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
 			</view>
 		</view>
 		<view v-if='show' class="shade">
@@ -248,8 +258,13 @@
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
-			detailed(){
-				let obj = JSON.stringify(this.auditInfo.warehousingOrderList)
+			detailed(data,status){
+				let obj
+				if(status==1){
+					 obj= JSON.stringify(this.auditInfo.warehousingOrderList)
+				}else{
+					obj = JSON.stringify([data])
+				}
 					uni.navigateTo({
 						url: '/pages/task/audit/viewDetail?data='+obj
 					});
@@ -343,6 +358,37 @@
 				}).then(res1 => {
 					if (res1.data.code == 200) {
 						this.auditInfo = res1.data.data
+						var arr=[]
+						if(res1.data.data.warehousingOrderList){
+							var datalist=JSON.parse(JSON.stringify(res1.data.data.warehousingOrderList))
+						}
+						var arr=[]
+						for (var i = 0; i < datalist.length; i++) {
+							if(arr.length==0){
+								arr.push(datalist[i])
+							}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].requestFunds+=datalist[i].requestFunds
+										}
+									}
+								}else{
+									arr.push(datalist[i])
+								}
+							}
+							
+						}
+						for (var q = 0; q < arr.length; q++) {
+							arr[q].inWarehouseWeight=arr[q].inWarehouseWeight.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)
 						}

+ 53 - 8
pages/task/audit/warehouse_warrant_detail.vue

@@ -36,12 +36,22 @@
 				<view class="right">{{auditInfo.warehouseName}}</view>
 			</view>
 			<view class="row">
+				<view class="left" style='width:33.3333%;text-align:center;border-right:1px solid #ccc;'>货名 </view>
+				<view class="right" style='width:33.3333%;text-align:center;border-right:1px solid #ccc;'>重量(吨)</view>
+				<view class="right" style='width:33.3333%;text-align:center;'>金额(元)</view>
+			</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>
+				<view class="right" style='width:33.3333%;text-align:center;border-right:1px solid #ccc;'>{{item.inWarehouseWeight}}</view>
+				<view class="right" style='width:33.3333%;text-align:center;'>{{item.requestFunds}}</view>
+			</view>
+			<view @click="detailed('',1)" class="row">
 				<view class="left">合计重量(吨)</view>
-				<view class="right">{{auditInfo.inWarehouseWeightTotal}}</view>
+				<view class="right" style='color:red;'>{{auditInfo.inWarehouseWeightTotal}}</view>
 			</view>
-			<view class="row">
+			<view @click="detailed('',1)" class="row">
 				<view class="left">合计金额(元)</view>
-				<view class="right">{{auditInfo.requestFundsTotal}}</view>
+				<view class="right" style='color:red;'>{{auditInfo.requestFundsTotal}}</view>
 			</view>
 			<!-- 	<view class="row">
 				<view class="left">仓库名称</view>
@@ -61,7 +71,7 @@
 			<view class="title ">
 				支付明细
 			</view>
-			<view class="mx-content" v-for="item in auditInfo.warehousingOrderList" @click="detailed">
+			<view class="mx-content" v-for="item in auditInfo.warehousingOrderList" @click="detailed(item,2)">
 				<view class='flex align-center justify-between'>
 					<view class="name">
 						{{item.customer}}
@@ -116,7 +126,7 @@
 				流程
 			</view>
 			<view v-for="(item,index) in auditList" :key='index' class="audit">
-				<view class="row">
+				<view class="row" v-if='item.desc!="_PLACEHOLDER_"'>
 					<view class="left">
 						<view class="item1">
 							<view class="item-content">{{item.operatorTitle}}</view> 
@@ -166,7 +176,7 @@
 						</view>
 					</view>
 				</view>
-				<view class="row-line" v-if="index!= auditList.length - 1"></view>
+				<view class="row-line" v-if="index!= auditList.length - 1&&item.desc!='_PLACEHOLDER_'"></view>
 			</view>
 		</view>
 		<view v-if='show' class="shade">
@@ -247,8 +257,13 @@
 			...mapState(['hasLogin', 'userInfo']),
 		},
 		methods: {
-			detailed(){
-				let obj = JSON.stringify(this.auditInfo.warehousingOrderList)
+			detailed(data,status){
+				let obj
+				if(status==1){
+					 obj= JSON.stringify(this.auditInfo.warehousingOrderList)
+				}else{
+					obj = JSON.stringify([data])
+				}
 					uni.navigateTo({
 						url: '/pages/task/audit/viewDetail?data='+obj
 					});
@@ -341,6 +356,36 @@
 				}).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))
+						}
+						var arr=[]
+						for (var i = 0; i < datalist.length; i++) {
+							if(arr.length==0){
+								arr.push(datalist[i])
+							}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].requestFunds+=datalist[i].requestFunds
+										}
+									}
+								}else{
+									arr.push(datalist[i])
+								}
+							}
+							
+						}
+						for (var q = 0; q < arr.length; q++) {
+							arr[q].inWarehouseWeight=arr[q].inWarehouseWeight.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)
 						}