浏览代码

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

# Conflicts:
#	config/index.js
ccjgmwz 3 年之前
父节点
当前提交
d22dfe65c6

+ 7 - 2
components/upload.vue

@@ -266,6 +266,10 @@
 			custom: {
 				type: Boolean,
 				default: false
+			},
+			imgIndex:{
+				type: Number,
+				default: false
 			}
 
 		},
@@ -432,16 +436,17 @@
 				this.uploading = true;
 				uploadImage(this.lists[index].url, 'appData/',
 					result => {
+						console.log
 						// 上传成功
 						this.lists[index].response = result;
 						this.lists[index].progress = 100;
 						this.lists[index].error = false;
 						let data = result
-						this.$emit('on-success', data, index, this.lists);
+						this.$emit('on-success', data, index, this.lists,this.imgIndex);
 						uni.hideLoading();
 						this.uploading = false;
 						this.uploadFile(index + 1);
-						this.$emit('on-change', data, index, this.lists);
+						this.$emit('on-change', data, index, this.lists,this.imgIndex);
 					}
 				)
 				// 创建上传对象

+ 1 - 1
config/index.js

@@ -1,7 +1,7 @@
 const dev = {
 	baseUrl: 'https://www.zthymaoyi.com',
-	// baseUrlNew: 'http://192.168.1.122:9100/',
 	baseUrlNew: 'http://api1.eliangeyun.com/',
+	// baseUrlNew: 'http://192.168.1.122:9100/',
 	h5Appid: 'wxb66b599f7f61b46f',
 	debug: false
 }

+ 50 - 0
pages.json

@@ -161,6 +161,20 @@
 				"navigationBarTitleText": "采购订单详情"
 			}
 		},
+		{
+			"path": "pages/task/audit/salecontract",
+			"style": {
+				"enablePullDownRefresh": true,
+				"navigationBarTitleText": "销售合同审核"
+			}
+		},
+		{
+			"path": "pages/task/audit/purchasecontract",
+			"style": {
+				"enablePullDownRefresh": true,
+				"navigationBarTitleText": "采购合同审核"
+			}
+		},
 		{
 			"path": "pages/task/sale_details",
 			"style": {
@@ -959,6 +973,42 @@
             }
             
         }
+		,{
+		    "path" : "pages/erp/deliveryfeedback/list",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "发货反馈",
+		        "enablePullDownRefresh": false
+		    }
+		    
+		}
+		,{
+		    "path" : "pages/erp/receivingfeedback/list",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "收货反馈",
+		        "enablePullDownRefresh": false
+		    }
+		    
+		},
+		{
+		    "path" : "pages/erp/deliveryfeedback/details",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "发货反馈详情",
+		        "enablePullDownRefresh": false
+		    }
+		    
+		}
+		,{
+		    "path" : "pages/erp/receivingfeedback/details",
+		    "style" :                                                                                    
+		    {
+		        "navigationBarTitleText": "收货反馈详情",
+		        "enablePullDownRefresh": false
+		    }
+		    
+		}
         ,{
             "path" : "pages/erp/openService/openService",
             "style" :                                                                                    

+ 547 - 0
pages/erp/deliveryfeedback/details.vue

@@ -0,0 +1,547 @@
+<template>
+	<view class="wrap">
+		<view class="content">
+			<view class="row">
+				<view class="left">任务编号</view>
+				<view>{{detailData.processNo}}</view>
+			</view>
+			<view class="row">
+				<view class="left">货名</view>
+				<view>{{detailData.goodsName}}</view>
+			</view>
+			<view class="row">
+				<view class="left">重量</view>
+				<view>{{detailData.weight}}</view>
+			</view>
+			<view class="row">
+				<view class="left">发货地址</view>
+				<view>{{detailData.sendPrivate}}{{detailData.sendCity}}{{detailData.sendArea}}</view>
+			</view>
+			<view class="row">
+				<view class="left">发货人</view>
+				<view>{{detailData.sender}}</view>
+			</view>
+			<view class="row">
+				<view class="left">发货人电话</view>
+				<view>{{detailData.senderPhone}}</view>
+			</view>
+			<view class="row">
+				<view class="left">收货地址</view>
+				<view>{{detailData.receivePrivate}}{{detailData.receiveCity}}{{detailData.receiveArea}}</view>
+			</view>
+			<view class="row">
+				<view class="left">收货人</view>
+				<view>{{detailData.receiver}}</view>
+			</view>
+			<view class="row">
+				<view class="left">收货人电话</view>
+				<view>{{detailData.receiverPhone}}</view>
+			</view>
+			<view class="row">
+				<view class="left">发货日期</view>
+				<view>{{detailData.deliveryDateStart}}</view>
+			</view>
+			<view class="row">
+				<view class="left">最晚到货日期</view>
+				<view>{{detailData.deliveryDateEnd}}</view>
+			</view>
+			<view class="row">
+				<view class="left">合同编号</view>
+				<view>{{detailData.contractNo}}</view>
+			</view>
+			<view class="row">
+				<view class="left">运输方式</view>
+				<view>{{detailData.tranType}}</view>
+			</view>
+		</view>
+		<view v-if='detailData.tranType=="火运"' class="content">
+			<view class="row">
+				<view class="left">姓名</view>
+				<view>{{detailData.driver}}</view>
+			</view>
+			<view class="row">
+				<view class="left">电话</view>
+				<view>{{detailData.driverPhone}}</view>
+			</view>
+			<view class="row">
+				<view class="left">发车日期</view>
+				<view>
+					<view @click='show1=true'>{{detailData.sendDateStart}}</view>
+					<u-picker v-model="show1" mode="time" @confirm='dateChange($event)' :params="params">
+					</u-picker>
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">预计到站日期</view>
+				<view> 
+					<view>{{detailData.receiveDateEnd}}</view>
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">车型</view>
+				<view> 
+					<view>{{detailData.carModel}}</view>
+				</view>
+			</view>
+		</view>
+		<view v-if='detailData.tranType=="船运"' class="content">
+			<view class="row">
+				<view class="left">姓名</view>
+				<view>{{detailData.driver}}</view>
+			</view>
+			<view class="row">
+				<view class="left">电话</view>
+				<view>{{detailData.driverPhone}}</view>
+			</view>
+			<view class="row">
+				<view class="left">发船日期</view>
+				<view>
+					<view @click='show1=true'>{{detailData.sendDateStart}}</view>
+					<u-picker v-model="show1" mode="time" @confirm='dateChange($event)' :params="params">
+					</u-picker>
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">预计到港日期</view>
+				<view> 
+					<view>{{detailData.receiveDateEnd}}</view>
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">船名</view>
+				<view> 
+					<view>{{detailData.shipName}}</view>
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">航次</view>
+				<view> 
+					<view>{{detailData.shipNo}}</view>
+				</view>
+			</view>
+			<view class="row">
+				<view class="left">类型</view>
+				<view> 
+					<view>{{detailData.shipType}}</view>
+				</view>
+			</view>
+			<view v-if="detailData.shipType == '集装箱'" class="row">
+				<view class="left">数量</view>
+				<view> 
+					<view>{{detailData.boxNumber}}</view>
+				</view>
+			</view>
+		</view>
+		<view v-if='detailData.tranType=="火运"'>
+			<view style='margin-left:10px;'>装车详情</view>
+			<view v-for='(item,index) in freightspace' class="content">
+				<view class="row">
+					<view class="left">车厢号-{{index+1}}</view>
+					<view>{{item.boxNo}}</view>
+				</view>
+				<view class="row">
+					<view class="left">装车净重</view>
+					<view v-if="item.status == '已装车' || item.status == '已送达'">{{item.loadNetWeight}}</view>
+					<view style='text-align:right;' v-else>
+						<input  v-model='item.loadNetWeight' class="right-bottom"
+					placeholder="输入毛重"></input>
+					</view>
+				</view>
+				<view class="row">
+					<view class="left">磅单</view>
+					<view v-if="item.loadPoundImg">
+						<image style='width:100px;height:100px;' :src="item.loadPoundImg" mode=""></image>
+					</view>
+					<view v-else>
+						<upload class="upload" ref="upload" :action="action" :max-size="maxSize" :max-count="1" :file-list="imgUrl"
+							:size-type="['compressed']" :imgIndex='index' @on-success="getImgUrl" @on-error="onError" @on-remove="onRemove"
+							@on-uploaded="isAdd = true" :before-upload="filterFileType" @on-progress="onProgress"></upload>
+					</view>
+				</view>
+				<view class="row">
+					<view class="left">装车日期</view>
+					<view>
+						<view v-if="item.status == '已装车' || item.status == '已送达'">{{item.loadingDate}}</view>
+						<view v-else @click='show2=true'>{{item.loadingDate?item.loadingDate:'请选择日期'}}</view>
+						<u-picker v-model="show2" mode="time" @confirm='dateChange1($event,index)' :params="params">
+						</u-picker>
+					</view>
+				</view>
+				<view style='text-align:right;' v-if="item.status == '已装车' || item.status == '已送达'">{{item.status}}</view>
+				<u-button v-else @click='submit(index)' type="success">提交</u-button>
+			</view>
+		</view>
+		<view v-if='detailData.tranType=="汽运"'>
+			<view style='margin-left:10px;'>装车详情</view>
+			<view v-for='(item,index) in freightspace' class="content">
+				<view class="row">
+					<view class="left">司机-{{index+1}}</view>
+					<view>{{item.status}}</view>
+				</view>
+				<view class="row">
+					<view class="left">姓名</view>
+					<view>{{item.driver}}</view>
+				</view>
+				<view class="row">
+					<view class="left">司机电话</view>
+					<view>{{item.driverPhone}}</view>
+				</view>
+				<view class="row">
+					<view class="left">车牌号</view>
+					<view>{{item.carNo}}</view>
+				</view>
+				<view class="row">
+					<view class="left">装车净重</view>
+					<view v-if="item.status == '已装车' || item.status == '已送达'">{{item.loadNetWeight}}</view>
+					<view style='text-align:right;' v-else>
+						<input  v-model='item.loadNetWeight' class="right-bottom"
+					placeholder="输入毛重"></input>
+					</view>
+				</view>
+				<view class="row">
+					<view class="left">装车日期</view>
+					<view>
+						<view v-if="item.status == '已装车' || item.status == '已送达'">{{item.loadingDate}}</view>
+						<view v-else @click='show2=true'>{{item.loadingDate?item.loadingDate:'请选择日期'}}</view>
+						<u-picker v-model="show2" mode="time" @confirm='dateChange1($event,index)' :params="params">
+						</u-picker>
+					</view>
+				</view>
+				<view class="row">
+					<view class="left">磅单</view>
+					<view v-if="item.loadPoundImg">
+						<image style='width:100px;height:100px;' :src="item.loadPoundImg" mode=""></image>
+					</view>
+					<view v-else>
+						<upload class="upload" ref="upload" :action="action" :max-size="maxSize" :max-count="1" :file-list="imgUrl"
+							:size-type="['compressed']" :imgIndex='index' @on-success="getImgUrl" @on-error="onError" @on-remove="onRemove"
+							@on-uploaded="isAdd = true" :before-upload="filterFileType" @on-progress="onProgress"></upload>
+					</view>
+				</view>
+				<view class="row">
+					<view class="left">箱号</view>
+					<view>{{item.caseNo}}</view>
+				</view>
+				<view class="row">
+					<view class="left">封号</view>
+					<view>{{item.titleNo}}</view>
+				</view>
+				<view v-if="item.signStatus == '未签合同'">未签合同</view>
+				<view v-if="item.signStatus == '已签合同'">已签合同</view>
+				<u-button v-if="item.status != '已装车' && item.status != '已送达'" @click='submit(index)' type="success">保存</u-button>
+			</view>
+		</view>
+		<view v-if='detailData.tranType=="船运"'>
+			<view style='margin-left:10px;'>装车详情</view>
+			<view v-for='(item,index) in freightspace' class="content">
+				<view class="row">
+					<view class="left">司机-{{index+1}}</view>
+					<view>{{item.status}}</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import upload from '@/components/upload.vue';
+	import helper from '@/common/helper.js';
+	export default {
+		components: {
+			upload
+		},
+		data() {
+			return {
+				id:'',
+				show1: false,
+				show2: false,
+				currentPage: 1,
+				pageSize: 10,
+				show1:false,
+				positionId: "",
+				binNumber: "",
+				maxSize: 50 * 1024 * 1024,
+				status: '执行中',
+				positionName: '',
+				statusList: [
+					{name:'执行中',value:1},
+					{name:'已完货',value:2},
+					{name:'全部任务',value:3},
+				],
+				params: {
+					year: true,
+					month: true,
+					day: true,
+				},
+				imgUrl:[],
+				action: this.$uploadUrl,
+				freightspace:[],
+				feedbackFlag:1,
+				detailData:{},
+				allWarehouse: [],
+				showTime: ''
+			}
+		},
+		onLoad(options) {
+			this.id = options.id
+		},
+		onShow() {
+			this.getList()
+		},
+		
+		methods: {
+			submit(index){
+				var that = this
+				if(this.detailData.tranType=='火运'){
+					if (!this.freightspace[index].loadNetWeight) {
+						this.$api.msg('装车净重不能为空!')
+						return
+					}
+					if (
+						this.freightspace[index].loadNetWeight < 0 ||
+						this.freightspace[index].loadNetWeight > 10000
+					) {
+						this.$api.msg('装车净重输入错误!')
+						return
+					}
+					if (!this.freightspace[index].loadingDate) {
+						this.$api.msg('装车日期不能为空!')
+						return
+					}
+					uni.showModal({
+						content: "提交成功后提醒司机及时签订运输合同,确定提交装车信息?",
+						success(res) {
+							if (res.confirm) { 
+								that.tranCarInfoList = that.freightspace
+								that.tranCarInfoList.driver = that.detailData.driver
+								that.tranCarInfoList.driverPhone = that.detailData.driverPhone
+								that.tranCarInfoList.tranCarNo = that.detailData.tranCarNo
+								that.tranCarInfoList.carNo = that.detailData.carNo
+								that.tranCarInfoList[0].sendDateStart = that.detailData.sendDateStart
+								that.tranCarInfoList.loadNetWeight = that.detailData.loadNetWeight
+								that.tranCarInfoList.tranType = that.tranType
+								that.tranCarInfoList.loadPoundImg = that.detailData.loadPoundImg
+								  // this.tranCarInfoList.boxNo = this.arr.toString()
+								for (var i = 0; i < that.tranCarInfoList.length; i++) {
+									that.tranCarInfoList[i].id = that.freightspace[i].id
+									if (that.tranCarInfoList[i].temporaryDriverFlag != 0) {
+										that.tranCarInfoList[i].temporaryDriverFlag = 1
+										that.tranCarInfoList[i].tranType = that.tranType
+									}
+								}
+								var tranProcessInfo = {}
+								tranProcessInfo.id = that.detailData.id
+								tranProcessInfo.infoId = that.detailData.infoId
+								tranProcessInfo.processNo = that.detailData.processNo
+								tranProcessInfo.tranPrice = that.detailData.tranPrice
+								tranProcessInfo.tranCarInfoList = that.tranCarInfoList
+								that.$api.doRequest('post', '/tranProcessInfo/api/insertTranCar', {
+									id:this.id
+								}).then(res => {
+									if (res.data.code == 200) {
+										that.$api.msg('提交成功')
+										that.detailData = {}
+										that.freightspace = {}
+										uni.navigateBack({
+											
+										})
+									}
+								})
+							}
+						}
+					})
+				}
+			},
+			getList() {
+				this.$api.doRequest('get', '/tranProcessInfo/getTranProcess', {
+					id:this.id
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.detailData = res.data.data
+						if(res.data.data.tranType=='火运'){
+							if(res.data.data.tranCarInfoList.length){
+								 if(res.data.data.tranCarInfoList[0].driver){
+									this.detailData.driver = res.data.data.tranCarInfoList[0].driver
+								}
+								this.detailData.driverPhone =res.data.data.tranCarInfoList[0].driverPhone
+								this.$set(this.detailData,'sendDateStart',res.data.data.tranCarInfoList[0].sendDateStart)
+								this.detailData.receiveDateEnd =
+								            res.data.data.tranCarInfoList[0].receiveDateEnd
+								this.detailData.carModel = res.data.data.tranCarInfoList[0].carModel
+								this.freightspace=res.data.data.tranCarInfoList
+							}
+						}else if(res.data.data.tranType=='汽运'){
+							this.freightspace=res.data.data.tranCarInfoList
+							
+						}else if(res.data.data.tranType=='船运'){
+							if (res.data.data.tranCarInfoList.length > 0) {
+							            this.detailData.driver = res.data.data.tranCarInfoList[0].driver
+							            this.detailData.driverPhone =
+							              res.data.data.tranCarInfoList[0].driverPhone
+							            this.$set(
+							              this.detailData,
+							              'sendDateStart',
+							              res.data.data.tranCarInfoList[0].sendDateStart
+							            )
+							            this.detailData.receiveDateEnd =
+							              res.data.data.tranCarInfoList[0].receiveDateEnd
+							            this.detailData.shipName = res.data.data.tranCarInfoList[0].shipName
+							            this.detailData.shipNo = res.data.data.tranCarInfoList[0].shipNo
+							            this.detailData.shipType = res.data.data.tranCarInfoList[0].shipType
+							            this.detailData.boxNumber = res.data.data.tranCarInfoList[0].boxNumber
+							            //上传附件计数
+							            if(this.detailData.tranCarInfoList[0].loadPoundImg){
+							              this.pictureTotal =  this.detailData.tranCarInfoList[0].loadPoundImg.split(",").length
+							            }
+							            this.freightspace = res.data.data.tranCarInfoList
+							          }
+							
+						}
+						
+					}
+				})
+			},
+			getImgUrl(res1,res2,res3,res4) {
+				// debugger
+				console.log(res1,res2,res3,res4,res5)
+				this.freightspace[res4].loadPoundImg=res1
+				// this.detailData.addressUrl = res
+				// console.log(res)
+				// console.log('------------res-----------')
+			},
+			setImgUrl(val){
+				debugger
+				for(let i = 0;i<freightspace.length;i++){
+					
+				}
+			},
+			filterFileType(index, lists) {
+				if (lists[index].fileType != 'jpg' && lists[index].fileType != 'png' && lists[index].fileType != 'gif') {
+					lists.splice(index, 1);
+					// 当前文件不支持
+					uni.showModal({
+						title: '暂不支持当前图片类型',
+						showCancel: false
+					});
+				} else {
+					this.isAdd = false;
+				}
+			},
+			dateChange(e) {
+				this.detailData.sendDateStart = e.year + "-" + e.month + "-" + e.day
+			},
+			dateChange1(e,index){
+				this.$set(this.freightspace[index],'loadingDate',e.year + "-" + e.month + "-" + e.day)
+			},
+			statuschange(e) {
+				this.status = this.statusList[e[0]].name
+				this.getList()
+			},
+			goDetail(val) {
+				uni.navigateTo({
+					url: '/pages/erp/deliveryfeedback/details?data=' + JSON.stringify(val),
+				})
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	uni-page-body {
+		overflow: hidden;
+	}
+	.content{
+		margin:10px 0;
+	}
+	.wrap {
+		margin: 10rpx;
+		padding: 20rpx 20rpx 140rpx 20rpx;
+	
+		.top {
+			display: flex;
+			margin-bottom: 20rpx;
+	
+			.top-left {
+				margin-right: 20rpx;
+			}
+		}
+	}
+	
+	.content,
+	.content1,
+	.content2 {
+		border-radius: 20rpx;
+		background: white;
+		padding: 20rpx;
+	
+		.title {
+			font-size: 28rpx;
+			font-weight: 600;
+			color: #333333;
+		}
+	
+		.row {
+			display: flex;
+			justify-content: space-between;
+			// border-bottom: 1px solid #EEEEEE;
+			padding: 21rpx 0;
+	
+			.right,
+			input {
+				font-size: 28rpx;
+				color: #333333;
+			}
+		}
+	
+		.row-bottom {
+	
+			// border: 0;
+			.right-bottom {
+				width: 280rpx;
+				text-align: right;
+			}
+		}
+	}
+	
+	.content1 {
+		margin-top: 20rpx;
+	}
+	
+	.content2 {
+		margin-top: 10px;
+		// display: flex;
+		align-items: center;
+	
+		.left {
+			margin-right: 20px;
+		}
+	}
+	
+	.submit {
+		width: 40%;
+		background: #22C572;
+		border-radius: 10rpx;
+	}
+	
+	.edit-btn {
+		background: #22C572;
+		width: 100rpx;
+		height: 50rpx;
+		margin: 0;
+		color: white;
+	}
+	
+	.has-btn {
+		align-items: center;
+	}
+	
+	.bottom-btn {
+	    padding: 30rpx;
+		background: #FFFFFF;
+		width: 92%;
+		position: fixed;
+		bottom: 0rpx;
+		display: flex;
+		z-index: 9999;
+	}
+</style>

+ 171 - 0
pages/erp/deliveryfeedback/list.vue

@@ -0,0 +1,171 @@
+<template>
+	<view class="wrap">
+		<view class="dropdown content1">
+			<view class="right" @click='show1=true'>
+				<view>{{status}}</view>
+				<u-icon name="arrow-right"></u-icon>
+				<u-picker @confirm="statuschange" range-key='warehouseName' mode="selector" v-model="show1"
+					:range="statusList"></u-picker>
+			</view>
+		</view>
+		<view class="content2">
+			<view class="content2-item" v-for="(item,index) in dataList" @click="goDetail(item)">
+				<view class="row bold">
+					<view class="left">{{item.processNo}}</view>
+					<view>{{item.tranType}}</view>
+				</view>
+				<view style='color:#878C9C;font-size:14px;' class="row">
+					<view class="left">{{item.goodsName}}</view>
+					<view>{{item.weight}}</view>
+				</view>
+				<view style='color:#878C9C;font-size:14px;' class="row">
+					<view style='flex:1;' class="left">发货</view>
+					<view style='flex:2;text-align:right;'>{{item.send}}</view>
+				</view>
+				<view style='color:#878C9C;font-size:14px;' class="row">
+					<view style='flex:1;' class="left">收货</view>
+					<view style='flex:2;text-align:right;'>{{item.receive}}</view>
+				</view>
+				<view style='color:#878C9C;font-size:14px;' class="row">
+					<view style='flex:1;' class="left">运输周期</view>
+					<view style='flex:2;text-align:right;'>{{item.deliveryDateStart}} ~ {{item.deliveryDateEnd}}</view>
+				</view>
+				<view style='color:#878C9C;font-size:14px;' class="row">
+					<view style='flex:1;' class="left">{{item.feedbackStatus}}</view>
+					<view style='flex:2;text-align:right;'>{{item.createDate}}</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import helper from '@/common/helper.js';
+	export default {
+		data() {
+			return {
+				show1: false,
+				show2: false,
+				currentPage: 1,
+				pageSize: 10,
+				positionId: "",
+				binNumber: "",
+				status: '执行中',
+				positionName: '',
+				statusList: [
+					{name:'执行中',value:1},
+					{name:'已完货',value:2},
+					{name:'全部任务',value:3},
+				],
+				feedbackFlag:1,
+				dataList: [],
+				allWarehouse: [],
+				showTime: ''
+			}
+		},
+		onLoad() {
+			this.positionId = helper.erpWarehouse.positionId
+			this.warehouseId = helper.erpWarehouse.warehouseId
+		},
+		onShow() {
+			let _data = helper.erpWarehouse
+			this.warehouseList = _data.allWarehouse
+			this.warehouseCWList = _data.warehouseCWList
+			this.binNumber = _data.binNumber
+			this.positionId = _data.positionId
+			this.warehouseId = _data.warehouseId
+			this.getList()
+		},
+		onReachBottom() {
+			 this.currentPage+=1
+		    this.getList(false)
+			// this.getMoreNews()
+		},
+		methods: {
+			getList() {
+				this.$api.doRequest('get', '/tranProcessInfo/selectTranProcessInfo', {
+					feedbackFlag: this.feedbackFlag,
+					currentPage: this.currentPage,
+					pageSize: this.pageSize
+				}).then(res => {
+					if (res.data.code == 200) {
+						var data=res.data.data.records
+						this.dataList = this.dataList.concat(data)
+					}
+				})
+			},
+			statuschange(e) {
+				this.status = this.statusList[e[0]].name
+				this.getList()
+			},
+			goDetail(val) {
+				uni.navigateTo({
+					url: '/pages/erp/deliveryfeedback/details?id=' + val.id,
+				})
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.dropdown {
+		display: flex;
+		margin: 20rpx 0;
+		justify-content: space-between;
+
+		.left,
+		.right {
+			display: flex;
+			align-items: center;
+		}
+	}
+
+	.content1 {
+		padding: 40rpx 20rpx;
+		margin: 20rpx;
+		border-radius: 10rpx;
+		background: #FFFFFF;
+	}
+
+	.content2 {
+		background: white;
+		margin:10px;
+		border-radius:10px;
+		.row {
+			display: flex;
+			justify-content: space-between;
+			// border-bottom: 1px solid #EEEEEE;
+			padding: 18rpx 10rpx;
+
+			.right,
+			input {
+				font-size: 28rpx;
+				color: #333333;
+			}
+		}
+
+		.row-bottom {
+			.right-bottom {
+				width: 300rpx;
+				text-align: right;
+			}
+		}
+	}
+
+	.content2-item {
+		// margin: 0 20rpx 20rpx 20rpx;
+		margin:0 10px;
+		// padding: 10rpx;
+		border-bottom: 1px solid #EEEEEE;
+	}
+	.content2-item:last-child{
+		border-bottom: 1px solid transparent;
+	}
+	.no-boder {
+		border-bottom: none !important;
+	}
+	.bold{
+		font-size:18px;
+		font-weight:600;
+	}
+</style>

+ 18 - 0
pages/erp/index.vue

@@ -107,6 +107,24 @@
 					},
 					// {
 					// 	num: 4,
+					// 	name: '发货反馈',
+					// 	// icon: 'cuIcon-copy',
+					// 	src: '../../static/img/erp/shougoujianjin@3x.png',
+					// 	tips: 0,
+					// 	url: '/pages/erp/deliveryfeedback/list',
+					// 	show: true
+					// },
+					// {
+					// 	num: 5,
+					// 	name: '收货反馈',
+					// 	// icon: 'cuIcon-edit',
+					// 	src: '../../static/img/erp/shougouzhijian@3x.png',
+					// 	tips: 0,
+					// 	url: `/pages/erp/receivingfeedback/list`,
+					// 	show: true
+					// },
+					// {
+					// 	num: 4,
 					// 	name: '开通业务',
 					// 	// icon: 'cuIcon-edit',
 					// 	src: '../../static/img/erp/shougouzhijian@3x.png',

+ 8 - 0
pages/erp/receivingfeedback/details.vue

@@ -0,0 +1,8 @@
+<template>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 165 - 0
pages/erp/receivingfeedback/list.vue

@@ -0,0 +1,165 @@
+<template>
+	<view class="wrap">
+		<view class="dropdown content1">
+			<view class="right" @click='show1=true'>
+				<view>{{status}}</view>
+				<u-icon name="arrow-right"></u-icon>
+				<u-picker @confirm="statuschange" range-key='warehouseName' mode="selector" v-model="show1"
+					:range="statusList"></u-picker>
+			</view>
+		</view>
+		<view class="content2">
+			<view class="content2-item" v-for="(item,index) in dataList" @click="goDetail(item)">
+				<view class="row bold">
+					<view class="left">{{item.processNo}}</view>
+					<view>{{item.tranType}}</view>
+				</view>
+				<view style='color:#878C9C;font-size:14px;' class="row">
+					<view class="left">{{item.goodsName}}</view>
+					<view>{{item.weight}}</view>
+				</view>
+				<view style='color:#878C9C;font-size:14px;' class="row">
+					<view style='flex:1;' class="left">发货</view>
+					<view style='flex:2;text-align:right;'>{{item.send}}</view>
+				</view>
+				<view style='color:#878C9C;font-size:14px;' class="row">
+					<view style='flex:1;' class="left">收货</view>
+					<view style='flex:2;text-align:right;'>{{item.receive}}</view>
+				</view>
+				<view style='color:#878C9C;font-size:14px;' class="row">
+					<view style='flex:1;' class="left">运输周期</view>
+					<view style='flex:2;text-align:right;'>{{item.deliveryDateStart}} ~ {{item.deliveryDateEnd}}</view>
+				</view>
+				<view style='color:#878C9C;font-size:14px;' class="row">
+					<view style='flex:1;' class="left">{{item.feedbackStatus}}</view>
+					<view style='flex:2;text-align:right;'>{{item.createDate}}</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import helper from '@/common/helper.js';
+	export default {
+		data() {
+			return {
+				show1: false,
+				show2: false,
+				currentPage: 1,
+				pageSize: 10,
+				positionId: "",
+				binNumber: "",
+				status: '执行中',
+				positionName: '',
+				statusList: [
+					{name:'执行中',value:1},
+					{name:'已完货',value:2},
+					{name:'全部任务',value:3},
+				],
+				feedbackFlag:1,
+				dataList: [],
+				allWarehouse: [],
+				showTime: ''
+			}
+		},
+		onLoad() {
+			this.positionId = helper.erpWarehouse.positionId
+			this.warehouseId = helper.erpWarehouse.warehouseId
+		},
+		onShow() {
+			let _data = helper.erpWarehouse
+			this.warehouseList = _data.allWarehouse
+			this.warehouseCWList = _data.warehouseCWList
+			this.binNumber = _data.binNumber
+			this.positionId = _data.positionId
+			this.warehouseId = _data.warehouseId
+			this.getList()
+		},
+		methods: {
+			getList() {
+				this.$api.doRequest('get', '/tranProcessInfo/selectTranProcessInfo', {
+					feedbackFlag: this.feedbackFlag,
+					currentPage: this.currentPage,
+					pageSize: this.pageSize
+				}).then(res => {
+					if (res.data.code == 200) {
+						this.dataList = res.data.data.records
+					}
+				})
+			},
+			statuschange(e) {
+				this.status = this.statusList[e[0]].name
+				this.getList()
+			},
+			goDetail(val) {
+				uni.navigateTo({
+					url: '/pages/erp/receivingfeedback/details?data=' + JSON.stringify(val),
+				})
+			}
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.dropdown {
+		display: flex;
+		margin: 20rpx 0;
+		justify-content: space-between;
+
+		.left,
+		.right {
+			display: flex;
+			align-items: center;
+		}
+	}
+
+	.content1 {
+		padding: 40rpx 20rpx;
+		margin: 20rpx;
+		border-radius: 10rpx;
+		background: #FFFFFF;
+	}
+
+	.content2 {
+		background: white;
+		margin:10px;
+		border-radius:10px;
+		.row {
+			display: flex;
+			justify-content: space-between;
+			// border-bottom: 1px solid #EEEEEE;
+			padding: 18rpx 10rpx;
+
+			.right,
+			input {
+				font-size: 28rpx;
+				color: #333333;
+			}
+		}
+
+		.row-bottom {
+			.right-bottom {
+				width: 300rpx;
+				text-align: right;
+			}
+		}
+	}
+
+	.content2-item {
+		// margin: 0 20rpx 20rpx 20rpx;
+		margin:0 10px;
+		// padding: 10rpx;
+		border-bottom: 1px solid #EEEEEE;
+	}
+	.content2-item:last-child{
+		border-bottom: 1px solid transparent;
+	}
+	.no-boder {
+		border-bottom: none !important;
+	}
+	.bold{
+		font-size:18px;
+		font-weight:600;
+	}
+</style>

+ 409 - 0
pages/task/audit/purchasecontract.vue

@@ -0,0 +1,409 @@
+<template>
+	<view class="container">
+		<u-form ref="uForm">
+			<u-form-item label-width='260' label="合同编号">
+				{{list.contractNo}}
+			</u-form-item>
+			<u-form-item label-width='260' label="运输方式">
+				{{list.shippingType}}
+			</u-form-item>
+			<u-form-item label-width='260' label="买方">
+				{{list.buyer}}
+			</u-form-item>
+			<u-form-item label-width='260' label="结算方式">
+				{{ list.settlementMethod }}
+			</u-form-item>
+			<u-form-item label-width='260' label="卖方">
+				{{list.seller}}
+			</u-form-item>
+			<u-form-item label-width='260' label="交货方式">
+				{{list.deliverType1}}
+			</u-form-item>
+			<u-form-item label-width='260' label="买方电话">
+				{{list.buyerPhone}}
+			</u-form-item>
+			<u-form-item label-width='260' label="包装方式">
+				{{list.packingMethod}}
+			</u-form-item>
+			<u-form-item label-width='260' label="卖方电话">
+				{{list.sellerPhone}}
+			</u-form-item>
+			<u-form-item label-width='260' label="验收方式">
+				{{list.acceptanceMethod}}
+			</u-form-item>
+			<u-form-item label-width='260' label="重量(吨)">
+				{{list.weight}}
+			</u-form-item>
+			<u-form-item label-width='260' label="交货日期(起)">
+				{{list.deliveryDateStart}}
+			</u-form-item>
+			<u-form-item label-width='260' label="溢短装(%)">
+				{{list.overShort}}
+			</u-form-item>
+			<u-form-item label-width='260' label="交货日期(止)">
+				{{list.deliveryDateEnd}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="合同单价(元/吨)">
+				{{list.unitContractPrice}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="合同总价(元)">
+				{{list.totalContractPrice}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="货源所在地区">
+				{{list.sourceProvince}}{{list.sourceCity}}{{list.sourceArea}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="货源详细地址">
+				{{list.sourceGoods}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="交货地所在地区">
+				{{list.deliveryProvince}}{{list.deliveryCity}}{{list.deliveryArea}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="交货地详细地址">
+				{{list.placeDelivery}}
+			</u-form-item>
+			<u-form-item label-width='260' label="签订日期">
+				{{list.signingDate}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="最终实际交易量 (吨)">
+				{{list.finalTradingVolume}}
+			</u-form-item>
+			<u-form-item v-if='list.deliverType == 1' label-width='260' label="临时仓库负责人">
+				{{list.personCharge}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="货名">
+				{{list.contractGoodsInfo.goodsName}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="水分(%)<=">
+				{{list.contractGoodsInfo.waterContent}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="品级">
+				{{list.contractGoodsInfo.grade}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="杂质(%)<=">
+				{{list.contractGoodsInfo.impurity}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="容重(克/升)>=">
+				{{list.contractGoodsInfo.bulkDensity}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="霉变粒(%)<=">
+				{{list.contractGoodsInfo.mildewGrain}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="热损伤(%)<=">
+				{{list.contractGoodsInfo.jiaorenli}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="不完善粒(%)<=">
+				{{list.contractGoodsInfo.imperfectGrain}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="合同收入(元)">
+				{{list.contractProcessInfo.goodsNameKey}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="已开发票(元)">
+				{{list.contractProcessInfo.goodsName}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="费用支出(元)">
+				{{list.contractProcessInfo.waterContent}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="未开发票(元)">
+				{{list.contractProcessInfo.impurity}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="未回款(元)">
+				{{list.contractProcessInfo.mildewGrain}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="双章原件回收情况">
+				{{list.contractProcessInfo.grade}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="备注信息">
+				{{list.remarks}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="附件">
+				<!-- {{list.contractProcessInfo.grade}} -->
+				<view v-for='item in imglist'>
+					<image style='width:100px;height:100px;' :src="item" mode=""></image>
+				</view>
+				
+			</u-form-item>
+		</u-form>
+		<view style='padding:10px;' class='flex bottom-btn'>
+			<u-button v-if='list.approveStatus'  @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
+			<u-button v-if='list.approveStatus'  @click='pass' type="success" class="btn2">通过</u-button>
+		</view>
+		<view v-if='show' class="shade">
+			<view class="wrap">
+				<view style='border-bottom:1px solid #eee;padding:10px;display:flex;justify-content:space-between;'>{{title}}
+				<u-icon name="close"></u-icon></view>
+				<view style='padding:10px;'>
+					<input v-model='auditMind' placeholder="请输入原因" type="text" value="" />
+				</view>
+				<view  @click='close()' class="cancel">取消</view>
+				<view  @click='passSubmit()' class="confirm">确定</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				id: "",
+				currentPage: 1,
+				pageSize: 10,
+				list: [
+					{
+						status:"",
+					}
+				],
+				imglist:[],
+				auditMind:'',
+				show:false,
+				title:'',
+				contractNo: "",
+			}
+		},
+		onLoad(options) {
+			this.id = options.id
+			this.getList()
+		},
+		methods: {
+			getList(id) {
+				var that = this
+				this.$api.doRequest('get', '/contractManagementInfo/getInfo', {
+					id: this.id
+				}).then(res => {
+					if(res.data.code==200){
+						this.list=res.data.data
+						if (this.list.deliverType == 1) {
+							this.list.deliverType1 = '我方自提'
+						} else if (this.list.deliverType == 2) {
+							this.list.deliverType1 = '对方送货'
+						}
+						this.$api.doRequest('get', '/appendix/query/getFileList', {
+							appendixIds:that.list.addressUrl
+						}).then(res1 => {
+							for(var i=0;i<res1.data.data.length;i++){
+								that.imglist.push(res1.data.data[i].appendixPath)
+							}
+							
+					   })
+					}
+				})
+			},
+			//驳回
+			rejectSubmit() {
+				var that = this
+				that.$api.doRequest('post', '/workflow/api/handle', {
+					taskId: that.list.taskId,
+					approved: false,
+					auditMind: this.auditMind,
+					needReapply: true,
+				}).then(res => {
+					that.$api.msg('驳回成功')
+					that.show=false
+				})
+			},
+			close(){
+				this.show=false
+			},
+			pass(){
+				console.log(1111)
+				this.show=true
+				this.title='通过原因'
+			},
+			reject() {
+				this.show=true
+				this.title='驳回原因'
+			},
+			//通过
+			passSubmit() {
+				var that = this
+				if(this.title=='驳回原因'){
+					this.rejectSubmit()
+				}else{
+					that.$api.doRequest('post', '/workflow/api/handle', {
+						taskId: that.list.taskId,
+						approved: true,
+						auditMind: this.auditMind,
+						needReapply: true,
+					}).then(res => {
+						that.$api.msg('通过成功')
+						that.show=false
+					})
+				}
+				
+			},
+			//审核方法
+			audit(item, index, status, status2, reason) {
+				if (index < this.list.length) {
+					this.$api.doRequest('post', '/workflow/api/handle', {
+						taskId: item.taskId,
+						approved: status,
+						auditMind: reason != undefined ? '已驳回' : '34',
+						needReapply: status2 != undefined ? true : false,
+					}).then(res => {
+						this.audit(this.list[index + 1], index + 1, status)
+					})
+				} else {
+					if (status == true) {
+						that.$api.msg('通过成功')
+						this.getList()
+					} else if (status == false) {
+						that.$api.msg('驳回成功')
+						this.getList()
+					}
+				}
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.container {
+		padding: 20rpx 20rpx 250rpx 20rpx;
+	}
+	.u-form{
+		background:#fff;
+		border-radius:10px;
+		padding:0 10px;
+		.u-form-item{
+			line-height:30px;
+			padding:5px 0;
+		}
+	}
+	.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;
+			color: #333333;
+			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;
+			// .right,
+			// input {
+			// 	font-size: 28rpx;
+			// 	// color: #333333;
+			// }
+		}
+
+		.money {
+			font-size: 32rpx;
+			font-weight: 500;
+			margin-bottom: 30rpx ;
+		}
+
+		.moneyInfo {
+			color: #22C572;
+			font-size: 32rpx;
+		}
+	}
+.bottom-btn {
+		width: 100%;
+		position: fixed;
+		bottom:0;
+		display: flex;
+		z-index: 2;
+		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;
+					margin-top: 10rpx;
+				}
+			}
+		}
+		.shade{
+			position:fixed;
+			top:0;
+			left:0;
+			height:100%;width:100%;
+			background:rgba(0,0,0,0.1);
+			z-index:3;
+			.wrap{
+				position:absolute;
+				left:0;top:0;right:0;bottom:0;margin:auto;
+				background:#fff;
+				width:80%;
+				height:30%;
+			}
+		}
+		.cancel,.confirm{
+			position:absolute;
+			display:inline-block;
+			width:50%;
+			text-align:center;
+			bottom:0;
+			padding:10px;
+			border-top:1px solid #eee;
+		}
+		.cancel{
+			left:0;
+			border-right:1px solid #eee;
+		}
+		.confirm{
+			right:0;
+		}
+</style>

+ 398 - 0
pages/task/audit/salecontract.vue

@@ -0,0 +1,398 @@
+<template>
+	<view class="container">
+		<u-form ref="uForm">
+			<u-form-item label-width='260' label="合同编号">
+				{{list.contractNo}}
+			</u-form-item>
+			<u-form-item label-width='260' label="运输方式">
+				{{list.shippingType}}
+			</u-form-item>
+			<u-form-item label-width='260' label="买方">
+				{{list.buyer}}
+			</u-form-item>
+			<u-form-item label-width='260' label="结算方式">
+				{{ list.settlementMethod }}
+			</u-form-item>
+			<u-form-item label-width='260' label="卖方">
+				{{list.seller}}
+			</u-form-item>
+			<u-form-item label-width='260' label="交货方式">
+				{{list.deliverType1}}
+			</u-form-item>
+			<u-form-item label-width='260' label="买方电话">
+				{{list.buyerPhone}}
+			</u-form-item>
+			<u-form-item label-width='260' label="包装方式">
+				{{list.packingMethod}}
+			</u-form-item>
+			<u-form-item label-width='260' label="卖方电话">
+				{{list.sellerPhone}}
+			</u-form-item>
+			<u-form-item label-width='260' label="验收方式">
+				{{list.acceptanceMethod}}
+			</u-form-item>
+			<u-form-item label-width='260' label="重量(吨)">
+				{{list.weight}}
+			</u-form-item>
+			<u-form-item label-width='260' label="交货日期(起)">
+				{{list.deliveryDateStart}}
+			</u-form-item>
+			<u-form-item label-width='260' label="溢短装(%)">
+				{{list.overShort}}
+			</u-form-item>
+			<u-form-item label-width='260' label="交货日期(止)">
+				{{list.deliveryDateEnd}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="合同单价(元/吨)">
+				{{list.unitContractPrice}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="合同总价(元)">
+				{{list.totalContractPrice}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="货源所在地区">
+				{{list.sourceProvince}}{{list.sourceCity}}{{list.sourceArea}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="货源详细地址">
+				{{list.sourceGoods}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="交货地所在地区">
+				{{list.deliveryProvince}}{{list.deliveryCity}}{{list.deliveryArea}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="交货地详细地址">
+				{{list.placeDelivery}}
+			</u-form-item>
+			<u-form-item label-width='260' label="签订日期">
+				{{list.signingDate}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="最终实际交易量 (吨)">
+				{{list.finalTradingVolume}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="货名">
+				{{list.contractGoodsInfo.goodsName}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="水分(%)<=">
+				{{list.contractGoodsInfo.waterContent}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="品级">
+				{{list.contractGoodsInfo.grade}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="杂质(%)<=">
+				{{list.contractGoodsInfo.impurity}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="容重(克/升)>=">
+				{{list.contractGoodsInfo.bulkDensity}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="霉变粒(%)<=">
+				{{list.contractGoodsInfo.mildewGrain}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="热损伤(%)<=">
+				{{list.contractGoodsInfo.jiaorenli}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="不完善粒(%)<=">
+				{{list.contractGoodsInfo.imperfectGrain}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="合同收入(元)">
+				{{list.contractProcessInfo.goodsNameKey}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="已开发票(元)">
+				{{list.contractProcessInfo.goodsName}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="费用支出(元)">
+				{{list.contractProcessInfo.waterContent}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="未开发票(元)">
+				{{list.contractProcessInfo.impurity}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="未回款(元)">
+				{{list.contractProcessInfo.mildewGrain}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="双章原件回收情况">
+				{{list.contractProcessInfo.grade}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="备注信息">
+				{{list.remarks}}
+			</u-form-item>
+			<u-form-item  label-width='260' label="附件">
+				<!-- {{list.contractProcessInfo.grade}} -->
+				<view v-for='item in imglist'>
+					<image style='width:100px;height:100px;' :src="item" mode=""></image>
+				</view>
+				
+			</u-form-item>
+		</u-form>
+		<view style='padding:10px;' class='flex bottom-btn'>
+			<u-button v-if='list.approveStatus'  @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
+			<u-button v-if='list.approveStatus'  @click='pass' type="success" class="btn2">通过</u-button>
+		</view>
+		<view v-if='show' class="shade">
+			<view class="wrap">
+				<view style='border-bottom:1px solid #eee;padding:10px;display:flex;justify-content:space-between;'>{{title}}
+				<u-icon name="close"></u-icon></view>
+				<view style='padding:10px;'>
+					<input v-model='auditMind' placeholder="请输入原因" type="text" value="" />
+				</view>
+				<view  @click='passSubmit()' class="cancel">取消</view>
+				<view  @click='passSubmit()' class="confirm">确定</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				id: "",
+				currentPage: 1,
+				pageSize: 10,
+				list: [
+					{
+						status:"",
+					}
+				],
+				imglist:[],
+				auditMind:'',
+				show:false,
+				title:'',
+				contractNo: "",
+			}
+		},
+		onLoad(options) {
+			this.id = options.id
+			this.getList()
+		},
+		methods: {
+			getList(id) {
+				var that = this
+				this.$api.doRequest('get', '/contractManagementInfo/getInfo', {
+					id: this.id
+				}).then(res => {
+					if(res.data.code==200){
+						this.list=res.data.data
+						if (this.list.deliverType == 1) {
+							this.list.deliverType1 = '我方送货'
+						} else if (this.list.deliverType == 2) {
+							this.list.deliverType1 = '对方自提'
+						}
+						this.$api.doRequest('get', '/appendix/query/getFileList', {
+							appendixIds:that.list.addressUrl
+						}).then(res1 => {
+							for(var i=0;i<res1.data.data.length;i++){
+								that.imglist.push(res1.data.data[i].appendixPath)
+							}
+							
+					   })
+					}
+				})
+			},
+			//驳回
+			rejectSubmit() {
+				var that = this
+				that.$api.doRequest('post', '/workflow/api/handle', {
+					taskId: that.list.taskId,
+					approved: false,
+					auditMind: this.auditMind,
+					needReapply: true,
+				}).then(res => {
+					that.$api.msg('驳回成功')
+					that.show=false
+				})
+			},
+			pass(){
+				console.log(1111)
+				this.show=true
+				this.title='通过原因'
+			},
+			reject() {
+				this.show=true
+				this.title='驳回原因'
+			},
+			//通过
+			passSubmit() {
+				var that = this
+				that.$api.doRequest('post', '/workflow/api/handle', {
+					taskId: that.list.taskId,
+					approved: true,
+					auditMind: this.auditMind,
+					needReapply: true,
+				}).then(res => {
+					that.$api.msg('通过成功')
+					that.show=false
+				})
+			},
+			//审核方法
+			audit(item, index, status, status2, reason) {
+				if (index < this.list.length) {
+					this.$api.doRequest('post', '/workflow/api/handle', {
+						taskId: item.taskId,
+						approved: status,
+						auditMind: reason != undefined ? '已驳回' : '34',
+						needReapply: status2 != undefined ? true : false,
+					}).then(res => {
+						this.audit(this.list[index + 1], index + 1, status)
+					})
+				} else {
+					if (status == true) {
+						that.$api.msg('通过成功')
+						this.getList()
+					} else if (status == false) {
+						that.$api.msg('驳回成功')
+						this.getList()
+					}
+				}
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.container {
+		padding: 20rpx 20rpx 250rpx 20rpx;
+	}
+	.u-form{
+		background:#fff;
+		border-radius:10px;
+		padding:0 10px;
+		.u-form-item{
+			line-height:30px;
+			padding:5px 0;
+		}
+	}
+	.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;
+			color: #333333;
+			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;
+			// .right,
+			// input {
+			// 	font-size: 28rpx;
+			// 	// color: #333333;
+			// }
+		}
+
+		.money {
+			font-size: 32rpx;
+			font-weight: 500;
+			margin-bottom: 30rpx ;
+		}
+
+		.moneyInfo {
+			color: #22C572;
+			font-size: 32rpx;
+		}
+	}
+.bottom-btn {
+		width: 100%;
+		position: fixed;
+		bottom:0;
+		display: flex;
+		z-index: 2;
+		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;
+					margin-top: 10rpx;
+				}
+			}
+		}
+		.shade{
+			position:fixed;
+			top:0;
+			left:0;
+			height:100%;width:100%;
+			background:rgba(0,0,0,0.1);
+			z-index:3;
+			.wrap{
+				position:absolute;
+				left:0;top:0;right:0;bottom:0;margin:auto;
+				background:#fff;
+				width:80%;
+				height:30%;
+			}
+		}
+		.cancel,.confirm{
+			position:absolute;
+			display:inline-block;
+			width:50%;
+			text-align:center;
+			bottom:0;
+			padding:10px;
+			border-top:1px solid #eee;
+		}
+		.cancel{
+			left:0;
+			border-right:1px solid #eee;
+		}
+		.confirm{
+			right:0;
+		}
+</style>

+ 9 - 0
pages/task/my_task.vue

@@ -334,6 +334,15 @@
 					uni.navigateTo({
 						url: '/pages/task/sale_details?id=' + item.businessId
 					})
+				} 
+				else if (item.businessCode == 'SALE-CONTRACT-APPROVE') {
+					uni.navigateTo({
+						url: '/pages/task/audit/salecontract?id=' + item.businessId
+					})
+				}else if (item.businessCode == 'BUY-CONTRACT-APPROVE') {
+					uni.navigateTo({
+						url: '/pages/task/audit/purchasecontract?id=' + item.businessId
+					})
 				} else if (item.businessCode == 'PROCUREMENT-RECEIPT-REPORT') {
 					uni.navigateTo({
 						url: '/pages/task/procurement_report_details?id=' + item.businessId

+ 61 - 2
pages/user/user.vue

@@ -10,7 +10,9 @@
 				<image v-bind:src="headUrl" class="headPortrait"></image>
 				<view class="personal">
 					<view @click="toLogin" class="information">{{hasLogin? username : '立即登录' }}</view>
-					<view class="information">{{starUserphone}}</view>
+					<view style='font-size:13px;color:#8F97AB;' class="information">{{starUserphone}}</view>
+					<view @click='show=true' class="company"><image class='icon' style='width:19px;height:19px;' src="../../static/img/icon_qiye@3x.png" mode=""></image> {{compName}}></view>
+					<u-picker @confirm='compconfirm' mode="selector" v-model="show"   :range="companyList" range-key="compName"></u-picker>
 				</view>
 			</view>
 
@@ -76,6 +78,7 @@
 	</view>
 </template>
 <script>
+	import helper from '@/common/helper.js'; 
 	import dragButton from "@/components/drag-button/drag-button.vue";
 	import {
 		mapState
@@ -92,7 +95,9 @@
 				scrollTop: 0,
 				inputShow: false,
 				modalName: '',
+				compName:'',
 				mycarStyle: '',
+				show:false,
 				feild: undefined,
 				inputContent: '',
 				coverTransform: 'translateY(0px)',
@@ -109,6 +114,7 @@
 				gridCol: 4,
 				gridBorder: false,
 				username: "请更改昵称",
+				companyList:[],
 				gridList: [{
 						num: 0,
 						name: '认证',
@@ -301,6 +307,20 @@
 						// });
 					}
 				})
+				if(!uni.getStorageSync('compName')){
+					this.$api.doRequest('get', '/commonUser/getComp').then(res => {
+						if (res.data.data) {
+							this.companyList=res.data.data
+							if(this.companyList.length>0){
+								this.compName=this.companyList[0].compName
+								uni.setStorageSync('compName', this.companyList[0].compName)
+							}
+						}
+					})
+				}else{
+					this.compName=uni.getStorageSync('compName')
+				}
+				
 			} else {
 				this.headUrl = "../../static/img/myimg/YongHu@3x.png"
 				this.username = "立即登录"
@@ -308,6 +328,31 @@
 			console.log("this.userInfo", this.userInfo)
 		},
 		methods: {
+			compconfirm(e){
+				
+				var that = this
+				this.$api.doRequest('post','/commonUser/api/loginQuickly',{mobilePhone: this.userInfo.phone,companyName:this.companyList[e[0]].compName,
+				veriCode: "123456",}).then(res1 => {
+					if(res1.data.code==200){
+						uni.setStorageSync('pcUserInfo', res1.data.data)
+						uni.setStorageSync('compName', that.companyList[e[0]].compName)
+						that.compName=that.companyList[e[0]].compName
+						helper.getListByUserId()
+						that.$api.msg('切换成功')
+					}
+					else{
+						that.$api.doRequest('post','/commonUser/api/loginQuickly',{mobilePhone: '13333333333',companyName:this.companyList[e[0]].compName,
+						veriCode: "123456",}).then(res2 => {
+							uni.setStorageSync('pcUserInfo', res2.data.data)
+							uni.setStorageSync('compName', that.companyList[e[0]].compName)
+							that.compName=that.companyList[e[0]].compName
+							helper.getListByUserId()
+							that.$api.msg('切换成功')
+						})
+					}
+					
+				})
+			},
 			getRoles: function(role) {
 				let _roles = uni.getStorageSync('rolesList')
 				for (let i = 0; i < _roles.length; i++) {
@@ -619,6 +664,20 @@
 	}
 </script>
 <style lang='scss' scoped>
+	.company{
+		position:fixed;
+		right:0;
+		top:13%;
+		background:url('../../static/img/qiyebeijing.png');
+		background-size:100%;
+		font-size:11px;
+		padding-bottom:5px;
+		padding-left:10px;
+	}
+	.company .icon{
+		position:relative;
+		top:4px;
+	}
 	page {
 		background: #F8F9FC;
 	}
@@ -989,7 +1048,7 @@
 
 	.personal {
 		margin-top: 10px;
-		margin-left: 20px;
+		margin-left: 10px;
 	}
 
 	.information {

二进制
static/img/icon_qiye@3x.png


二进制
static/img/qiyebeijing.png