소스 검색

质检为小麦时不校验热损伤

gjy 3 년 전
부모
커밋
f44aced305

+ 105 - 8
App.vue

@@ -8,7 +8,7 @@
 	import * as config from '@/config'
 	import appUpdate from 'common/appUpdate.js'
 	import app_push from './components/APPPush/app_push.js'
-
+	const pushLive = uni.requireNativePlugin('service-keep-live');
 	export default {
 		methods: {
 			...mapMutations(['login']),
@@ -83,16 +83,108 @@
 					}
 				}
 				return _haveRoles
-			}
+			},
+			 goStartService() {
+				let obj = {
+					title: "易粮易运",
+					content: "正在后台运行",
+					mode: 1,  //0是省点模式 1流氓模式
+					isShow:false  //true显示通知栏,false隐藏通知栏
+				}
+				pushLive.startService(obj, function(res) {
+					console.log(res)
+				});
+				//判断是否加入白名单
+				pushLive.isIgnoringBatteryOptimizations(function(res) {
+					console.log(res);
+					let flag = res.flag;
+					if (flag == false) {
+						//提示 如果为了提高黑屏传点效果可以使用第二种申请加入白名单方式
+						//第一种申请加入白名单 只设置电量优化        
+						pushLive.requestIgnoreBatteryOptimizations(function(res) {
+								console.log(res)
+							});
+						//第二种 申请加入白名单,设置后台无限制,自启动(无需设置),设置电量优化
+						// pushLive.gotoBackstage_WhiteList_autStart()
+					}
+				})
+				//设置定时任务触发时间 单位秒 60秒
+				//如果在设置后台运行的情况下,黑屏不发送数据,请使用setInterval代替
+				pushLive.setJobTime(60, function(res) {
+					console.log(res)
+				});
+				//设置黑屏唤醒屏幕 单位分钟 10分钟
+				pushLive.setWakeScreen(5)
+
+			},
+			//判断应用是否添加在白名单之中
+			isIgnoringBattery() {
+				pushLive.isIgnoringBatteryOptimizations(function(res) {
+					console.log(res);
+					let flag = res.flag;
+					if (flag == false) {
+						pushLive.requestIgnoreBatteryOptimizations(function(res) {
+							console.log(res)
+						});
+					}
+				})
+			},
+			//申请加入白名单
+			requestIgnoreBattery() {
+				pushLive.requestIgnoreBatteryOptimizations(function(res) {
+					console.log(res)
+				});
+			},
+			//设置app自启动
+			whiteListSetting() {
+				pushLive.gotoWhiteListSetting()
+			},
+			stopService() {
+				pushLive.closeService(function(res) {
+					console.log(res)
+				});
+			},
+			gotoBackstageWhiteListAutStart() {
+				pushLive.gotoBackstage_WhiteList_autStart()
+			},
+			addLocation() {
+				let dst = setInterval(function() {
+					uni.request({
+						header: {
+							'Content-Type': 'application/x-www-form-urlencoded'
+						},
+						url: 'http://123.*******/location',
+						data: {
+							longitude: 114.1598,
+							latitude: 32.145380,
+							user_id: 1812
+						},
+						method: 'POST',
+						success: (res) => {
+							console.log(res)
+						}
+					})
+				}, 1000 * 60)
+			},
 		},
 		onLaunch: function() {
 			// #ifdef APP-PLUS
-
-			let type = uni.getSystemInfoSync().platform
-			console.log(type)
-			if (type == "android") {
-				appUpdate()
-			}
+			
+			//获取安卓版本号 
+			pushLive.checkAndroidVersion(function(res) {
+				console.log(res)
+			})
+			//注意:开启服务之后,配置后台运行,白名单,自启动,即可实现长时间保活,黑屏传数据
+			this.goStartService();
+			// !!!如果在设置后台运行的情况下,黑屏不发送数据,请使用setInterval代替 定时任务回调
+			var globalEvent = uni.requireNativePlugin('globalEvent');
+			globalEvent.addEventListener('doJobEvent', function() {
+				console.log("---------")
+				/* uni.request({}) */
+			});
+			
+			
+			
 			var that = this
 			plus.push.getClientInfoAsync((info) => {
 				var name = 'clientId'
@@ -183,6 +275,11 @@
 
 		},
 		onShow: function() {
+			let type = uni.getSystemInfoSync().platform
+			console.log(type)
+			if (type == "android") {
+				// appUpdate()
+			}
 			console.log('App Show')
 		},
 		onHide: function() {

+ 4 - 0
common/appUpdate.js

@@ -51,6 +51,10 @@ export default function appUpdate() {
 						})
 					} else if (flag_hot) {
 						console.log("热更新") 
+						uni.showToast({
+							icon:'none',
+							title:'正在热更新'
+						})
 						uni.downloadFile({
 							url: res.data.data.wgtUrl,
 							success: (downloadResult) => {

+ 3 - 2
config/index.js

@@ -1,10 +1,11 @@
 const dev = {
 	baseUrl: 'https://www.zthymaoyi.com',
 	// baseUrl: 'http://localhost:8080/',
-	baseUrlNew: 'http://192.168.110.138:9100/',
+	// baseUrlNew: 'http://192.168.110.138:9100/',
+	// baseUrlNew: 'http://192.168.1.118:8090/',
 	// baseUrlNew: 'http://192.168.1.114:8090/',
 	// baseUrlNew: 'http://192.168.1.122:8090/',
-	// baseUrlNew: 'http://192.168.1.119:9100/',
+	baseUrlNew: 'http://192.168.110.138:8090/',
 	// baseUrlNew: 'http://api1.eliangeyun.com/',
 	h5Appid: 'wxb66b599f7f61b46f',
 	debug: false

+ 18 - 3
manifest.json

@@ -2,8 +2,8 @@
     "name" : "易粮易运",
     "appid" : "__UNI__7297DA2",
     "description" : "易粮易运——为天下粮食人服务的App",
-    "versionName" : "1.1.74",
-    "versionCode" : 1174,
+    "versionName" : "2.1.100",
+    "versionCode" : 21100,
     "transformPx" : false,
     /* SDK配置 */
     "quickapp" : {},
@@ -197,6 +197,21 @@
         "statusbar" : {
             "immersed" : false
         },
-        "nativePlugins" : {}
+        "nativePlugins" : {
+            "service-keep-live" : {
+                "__plugin_info__" : {
+                    "name" : "【推荐】安卓保活插件 防杀  增强保活,黑屏防睡眠(测试黑屏传数据一天多没问题)",
+                    "description" : "如果你的应用希望能够一直在后台运行而不被系统自动杀死的话,可以尝试一下。群485147231(已满) 598812409",
+                    "platforms" : "Android",
+                    "url" : "https://ext.dcloud.net.cn/plugin?id=3422",
+                    "android_package_name" : "uni.UNI7297DA2",
+                    "ios_bundle_id" : "uni.UNI7297DA2",
+                    "isCloud" : true,
+                    "bought" : 1,
+                    "pid" : "3422",
+                    "parameters" : {}
+                }
+            }
+        }
     }
 }

+ 32 - 1
pages.json

@@ -1150,7 +1150,29 @@
 				"enablePullDownRefresh": false
 			}
 
-		}, {
+		},
+		{
+			"path": "pages/task/audit/warehouse_warrant",
+			"style": {
+				"navigationBarTitleText": "入库单结算审核",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "pages/task/audit/charge_against_revenue",
+			"style": {
+				"navigationBarTitleText": "费用支出审核",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
+			"path": "pages/task/audit/expense_allocation",
+			"style": {
+				"navigationBarTitleText": "费用分配审核",
+				"enablePullDownRefresh": false
+			}
+		},
+		{
 			"path": "pages/task/audit/acquisition_settlement_details",
 			"style": {
 				"navigationBarTitleText": "收购结算详情",
@@ -1310,6 +1332,15 @@
             }
             
         }
+        ,{
+            "path" : "pages/clock/the_clock",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "",
+                "enablePullDownRefresh": false
+            }
+            
+        }
     ],
 	"subpackages": [{
 			"root": "pageA",

+ 239 - 0
pages/clock/the_clock.vue

@@ -0,0 +1,239 @@
+<template>
+	<view >
+		<view class='wrap'>
+			<view class="c-row">
+				<view class="title">打卡原因</view>
+				<view class="con-list">
+					<u-radio-group @change="groupChange" v-model="typevalue">
+						<u-radio key="3" label="其他" name="3">其他</u-radio>
+						<u-radio key="1" label="上班/下班" name="1">上班/下班</u-radio>
+					</u-radio-group>
+				</view>
+			</view>
+			<view class="c-row"  v-if='show1'>
+				<view class="title">其他原因</view>
+				<view class="con-list">
+					<input type="digit" @input='calculate' name="otherReasons" v-model='detailData.otherReasons'
+						placeholder="请输入其他原因"></input>
+				</view>
+			</view>
+			<view class="c-row">
+				<view class="title">目标位置</view>
+				<view class="con-list">
+					<view @click='show=true'>{{detailData.targetLocation}}</view>
+					<u-picker :range="warehouseBaseInfoList" range-key="warehouseName" @confirm='targetLPicker($event)'
+						v-model="show" mode="selector">
+					</u-picker>
+				</view>
+			</view>
+			<view class="c-row">
+				<view class="title">打卡距离</view>
+				<view class="con-list">
+					<input type="number" v-model='clockDistance' placeholder="重新获取" :disabled="true"></input>
+				</view>
+			</view>
+		</view>
+		<view class="footer">
+			<view @click='submit' class="button">提交</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				typevalue: '1',
+				show: false,
+				show1: false,
+				detailData: {
+					clockType: '',
+					otherReasons: '',
+					targetLocation: '请选择目标位置',
+					clockDistance: '重新获取',
+				},
+				clockDistance:"",
+				warehouseType:'1',
+				warehouseBaseInfoList:[],
+				
+			}
+		},
+		onLoad() {
+			this.getWarehouse()
+			// this.getLocation()
+		},
+		methods: {
+			calculate() {
+				const query = uni.createSelectorQuery().in(this);
+				query.selectAll('.left')
+				console.log(query)
+			},
+			groupChange(e) {
+				console.log(e)
+				this.detailData.clockType = e
+				if (e == 1 || e == null) {
+					this.show1 = false
+				}
+				else{
+					this.show1 = true
+				}
+			},
+			getWarehouse() {
+				this.$api.doRequest('get', '/warehouseBaseInfo/selectWarehouse', {
+					compId: uni.getStorageSync("pcUserInfo").compId,
+					warehouseType: '1'
+				}).then(res => {
+					if (res.data.data.length != 0) {
+						this.warehouseBaseInfoList = res.data.data
+						uni.getLocation({
+							type: 'gcj02',
+							geocode: true,
+							success: function(res) {
+								console.log('获取位置数据:', res);
+								console.log('当前位置的经度:' + res.longitude);
+								console.log('当前位置的纬度:' + res.latitude);
+								this.lat2 = res.latitude
+								this.lng2 = res.longitude
+								if(this.warehouseBaseInfoList.length > 0){
+									this.clockDistance = this.utils.getDistance(this.warehouseBaseInfoList[0].warehousePositioning.split(',')[1],
+										this.warehouseBaseInfoList[0].warehousePositioning.split(',')[0], this.lat2, this.lng2)
+								}
+							},
+							fail:function(req){
+								console.log(req)
+							}
+						});
+						
+					}
+				})
+			},
+			targetLPicker(e) {
+				this.detailData.targetLocation = this.warehouseBaseInfoList[e[0]].warehouseName
+				this.clockDistance = this.utils.getDistance(this.warehouseBaseInfoList[e[0]].warehousePositioning.split(',')[1],
+					this.warehouseBaseInfoList[e[0]].warehousePositioning.split(',')[0], this.lat2, this.lng2)
+			},
+			submit() {
+				// if (!this.detailData.clockType) {
+				// 	this.$api.msg('打卡原因不能为空')
+				// 	return
+				// }
+				// if (this.typevalue == 3) {
+				// 	if (!this.detailData.otherReasons) {
+				// 		this.$api.msg('其他原因不能为空')
+				// 		return
+				// 	}
+				// }
+				// if (!this.detailData.targetLocation) {
+				// 	this.$api.msg('目标位置不能为空')
+				// 	return
+				// }
+				uni.showModal({
+					content: "确定提交打卡信息?",
+					showCancel: true,
+					confirmText: '提交',
+					success: function(res) {
+						if (res.confirm) {
+							
+						}
+					}
+				})
+			},
+		}
+	}
+</script>
+
+<style lang='scss' scoped>
+	page {
+		background: #F5F6FA;
+	}
+
+	.title_b {
+		margin: 20rpx 20rpx 0rpx 20rpx;
+		padding: 20rpx 10rpx 20rpx 10rpx;
+		font-size: 18px;
+		font-weight: 550;
+	}
+
+	.c-row {
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-align: center;
+		-webkit-align-items: center;
+		align-items: center;
+		padding: 20rpx 30rpx;
+		position: relative;
+	}
+
+	.con-list {
+		-webkit-box-flex: 1;
+		-webkit-flex: 1;
+		flex: 1;
+		display: -webkit-box;
+		display: -webkit-flex;
+		display: flex;
+		-webkit-box-orient: vertical;
+		-webkit-box-direction: normal;
+		-webkit-flex-direction: column;
+		flex-direction: column;
+		color: #303133;
+		line-height: 40rpx;
+		text-align: right;
+		padding-right: 20rpx;
+	}
+
+	.wrap {
+		padding-bottom: 10px;
+		font-size: 14px;
+		background: #fff;
+		margin: 10px;
+		border-radius: 10px;
+
+		input {
+			font-size: 14px;
+		}
+
+		>.title {
+			padding: 10px 16px;
+		}
+
+	}
+
+	.footer {
+		background: #fff;
+		position: fixed;
+		bottom: 0;
+		width: 100%;
+		padding: 20px 10px;
+		z-index: 10;
+
+		.button {
+			background: #22C572;
+			width: 90%;
+			margin: 20rpx auto;
+			padding: 10px;
+			color: #fff;
+			text-align: center;
+			border-radius: 30px;
+		}
+	}
+
+	.buns_item {
+		display: flex;
+		padding: 80rpx 0 50rpx 0;
+		justify-content: space-around;
+	}
+
+	.but_css {
+		background: #22C572;
+		width: 40%;
+		padding: 20rpx;
+		color: #fff;
+		text-align: center;
+		border-radius: 20rpx;
+	}
+
+	/deep/.u-radio-group {
+		flex-direction: row-reverse;
+	}
+</style>

+ 17 - 20
pages/erp/exWarehousing/exWarehousing.vue

@@ -69,11 +69,7 @@
 			</view>
 			<view class="row row-bottom">
 				<view class="left">运费(元/吨)</view>
-				<input v-model='detailData.freight' class="right-bottom" placeholder="不可编辑,自动计算"></input>
-			</view>
-			<view class="row row-bottom">
-				<view class="left">出库单价(元/吨)</view>
-				<input v-model='detailData.cost' class="right-bottom" placeholder="输入出库单价"></input>
+				<input v-model='detailData.freight' class="right-bottom" placeholder="输入运费"></input>
 			</view>
 			<view class="row">
 				<view class="left">品级</view>
@@ -115,7 +111,7 @@
 				<view @click='slectCarNo' v-if="isPC">{{detailData.carNo}}</view> -->
 				<view class="left">车牌号</view>
 				<!-- 他运合同车牌号输入 -->
-				<input v-model='detailData.carNo' @click.stop="handleShowKeyboard":disabled="true"  class="right-bottom" placeholder="请输入车牌号" v-if="!showCar"></input>
+				<input v-model='detailData.carNo' @click.stop="handleShowKeyboard":disabled="true"  class="right-bottom" placeholder="请输入车牌号1" v-if="!showCar"></input>
 				<input v-model='detailData.carNo' @click.stop="handleShowKeyboard":disabled="true"  class="right-bottom" placeholder="请输入车牌号" v-if="showCar&&carjudge"></input>
 				<view v-else v-show="showCar" @click="carno = true">
 					<view v-if="detailData.tranCarNo">
@@ -437,11 +433,9 @@
 			        if(!this.carjudge){
 			            this.detailData.selfLoading = "0"
 			            this.carChange1="手动填写"
-						this.detailData.carNo = ""
 			        }else{
 			            this.detailData.selfLoading = "1"
 			            this.carChange1="识别下拉"
-						this.detailData.carNo = ""
 			        }
 			      },
 			print() {
@@ -877,17 +871,20 @@
 						return
 					}
 				}
-				if (this.detailData.warehouseInOutDetail.jiaorenli) {
-					if (this.detailData.warehouseInOutDetail.jiaorenli < 0 || this.detailData.warehouseInOutDetail
-						.jiaorenli > 40) {
-						this.$api.msg('热损伤占比输入错误')
-						return
-					}
-					if (String(this.detailData.warehouseInOutDetail.jiaorenli).indexOf('.') != -1 && String(this.detailData
-							.warehouseInOutDetail.jiaorenli).length - (String(
-							this.detailData.warehouseInOutDetail.jiaorenli).indexOf('.') + 1) > 1) {
-						this.$api.msg('热损伤占比输入错误')
-						return
+				if(this.detailData.goodsName!='小麦'){
+					if (this.detailData.warehouseInOutDetail.jiaorenli) {
+						if (this.detailData.warehouseInOutDetail.jiaorenli < 0 || this.detailData.warehouseInOutDetail
+							.jiaorenli > 40) {
+							this.$api.msg('热损伤占比输入错误')
+							return
+						}
+						if (String(this.detailData.warehouseInOutDetail.jiaorenli).indexOf('.') != -1 && String(this
+								.detailData
+								.warehouseInOutDetail.jiaorenli).length - (String(
+								this.detailData.warehouseInOutDetail.jiaorenli).indexOf('.') + 1) > 1) {
+							this.$api.msg('热损伤占比输入错误')
+							return
+						}
 					}
 				}
 				if (this.detailData.warehouseInOutDetail.impurity) {
@@ -932,7 +929,7 @@
 					}
 				}
 				if(!this.showCar){//若自运的合同该字段置空
-				          this.detailData.selfLoading = ""
+				          this.deptBudgetList.selfLoading = ""
 				    }
 				if (this.detailData.boxNo) {
 					this.detailData.boxNo = this.detailData.boxNo.toUpperCase()

+ 16 - 0
pages/erp/improvedExWaehousing/improvedExWaehousingDetail.vue

@@ -733,6 +733,22 @@
 						return
 					}
 				}
+				if(this.detailData.goodsName!='小麦'){
+					if (this.detailData.warehouseInOutDetail.jiaorenli) {
+						if (this.detailData.warehouseInOutDetail.jiaorenli < 0 || this.detailData.warehouseInOutDetail
+							.jiaorenli > 40) {
+							this.$api.msg('热损伤占比输入错误')
+							return
+						}
+						if (String(this.detailData.warehouseInOutDetail.jiaorenli).indexOf('.') != -1 && String(this
+						.detailData
+						.warehouseInOutDetail.jiaorenli).length - (String(
+						this.detailData.warehouseInOutDetail.jiaorenli).indexOf('.') + 1) > 1) {
+							this.$api.msg('热损伤占比输入错误')
+							return
+						}
+					}
+				}
 				if (this.detailData.warehouseInOutDetail.impurity) {
 					if (this.detailData.warehouseInOutDetail.impurity < 0 || this.detailData.warehouseInOutDetail
 						.impurity > 40) {

+ 14 - 12
pages/erp/improvedWrehousing/improvedWrehousingDetail.vue

@@ -828,18 +828,20 @@
 					return
 				}
 			}
-			if (this.detailData.warehouseInOutDetail.jiaorenli) {
-				if (this.detailData.warehouseInOutDetail.jiaorenli < 0 || this.detailData.warehouseInOutDetail
-					.jiaorenli > 40) {
-					this.$api.msg('热损伤占比输入错误')
-					return
-				}
-				if (String(this.detailData.warehouseInOutDetail.jiaorenli).indexOf('.') != -1 && String(this
-						.detailData
-						.warehouseInOutDetail.jiaorenli).length - (String(
-						this.detailData.warehouseInOutDetail.jiaorenli).indexOf('.') + 1) > 1) {
-					this.$api.msg('热损伤占比输入错误')
-					return
+			if(this.detailData.goodsName!='小麦'){
+				if (this.detailData.warehouseInOutDetail.jiaorenli) {
+					if (this.detailData.warehouseInOutDetail.jiaorenli < 0 || this.detailData.warehouseInOutDetail
+						.jiaorenli > 40) {
+						this.$api.msg('热损伤占比输入错误')
+						return
+					}
+					if (String(this.detailData.warehouseInOutDetail.jiaorenli).indexOf('.') != -1 && String(this
+							.detailData
+							.warehouseInOutDetail.jiaorenli).length - (String(
+							this.detailData.warehouseInOutDetail.jiaorenli).indexOf('.') + 1) > 1) {
+						this.$api.msg('热损伤占比输入错误')
+						return
+					}
 				}
 			}
 			if (this.detailData.warehouseInOutDetail.impurity) {

+ 71 - 71
pages/erp/index.vue

@@ -139,79 +139,79 @@
 									// }
 								],
 				gridList: [
-					// {
+					{
 
-					// 	num: 0,
-					// 	name: '入库',
-					// 	// icon: 'cuIcon-apps',
-					// 	src: '../../static/img/erp/yaoqingyonghu@3x.png',
-					// 	tips: 0,
-					// 	url: '/pages/erp/warehousing/warehousing',
-					// 	show: true
-					// },
-					// {
-					// 	num: 1,
-					// 	name: '待完善入库',
-					// 	// icon: 'cuIcon-calendar',
-					// 	src: '../../static/img/erp/shougouzhijian@3x.png',
-					// 	tips: 0,
-					// 	url: '/pages/erp/improvedWrehousing/improvedWrehousing',
-					// 	show: true
-					// },
-					// {
-					// 	num: 2,
-					// 	name: '出库',
-					// 	// icon: 'cuIcon-copy',
-					// 	src: '../../static/img/erp/shougoujianjin@3x.png',
-					// 	tips: 0,
-					// 	url: '/pages/erp/exWarehousing/exWarehousing',
-					// 	show: true
-					// },
-					// {
-					// 	num: 3,
-					// 	name: '待完善出库',
-					// 	// icon: 'cuIcon-edit',
-					// 	src: '../../static/img/erp/shougouzhijian@3x.png',
-					// 	tips: 0,
-					// 	url: `/pages/erp/improvedExWaehousing/improvedExWaehousing`,
-					// 	show: true
-					// }
+						num: 0,
+						name: '入库',
+						// icon: 'cuIcon-apps',
+						src: '../../static/img/erp/yaoqingyonghu@3x.png',
+						tips: 0,
+						url: '/pages/erp/warehousing/warehousing',
+						show: true
+					},
 					{
-							num: 0,
-							name: '入库质检',
-							// icon: 'cuIcon-apps',
-							src: '../../static/img/erp/yaoqingyonghu@3x.png',
-							tips: 0,
-							url: '/pages/erpbusiness/quality_testing?managementType=1',
-							show: true
-						},
-						{
-							num: 1,
-							name: '入库检斤',
-							// icon: 'cuIcon-calendar',
-							src: '../../static/img/erp/shougouzhijian@3x.png',
-							tips: 0,
-							url: '/pages/erpbusiness/acquisitionInspection/acquisitionInspection',
-							show: true
-						},
-						{
-							num: 2,
-							name: '出库检斤',
-							// icon: 'cuIcon-copy',
-							src: '../../static/img/erp/shougoujianjin@3x.png',
-							tips: 0,
-							url: '/pages/erpbusiness/acquisitionInspection/warehouseWeighing',
-							show: true
-						},
-						{
-							num: 3,
-							name: '出库质检',
-							// icon: 'cuIcon-edit',
-							src: '../../static/img/erp/shougouzhijian@3x.png',
-							tips: 0,
-							url: `/pages/erpbusiness/outbound_quality_testing?managementType=3`,
-							show: true
-						}
+						num: 1,
+						name: '待完善入库',
+						// icon: 'cuIcon-calendar',
+						src: '../../static/img/erp/shougouzhijian@3x.png',
+						tips: 0,
+						url: '/pages/erp/improvedWrehousing/improvedWrehousing',
+						show: true
+					},
+					{
+						num: 2,
+						name: '出库',
+						// icon: 'cuIcon-copy',
+						src: '../../static/img/erp/shougoujianjin@3x.png',
+						tips: 0,
+						url: '/pages/erp/exWarehousing/exWarehousing',
+						show: true
+					},
+					{
+						num: 3,
+						name: '待完善出库',
+						// icon: 'cuIcon-edit',
+						src: '../../static/img/erp/shougouzhijian@3x.png',
+						tips: 0,
+						url: `/pages/erp/improvedExWaehousing/improvedExWaehousing`,
+						show: true
+					}
+					// {
+					// 		num: 0,
+					// 		name: '入库质检',
+					// 		// icon: 'cuIcon-apps',
+					// 		src: '../../static/img/erp/yaoqingyonghu@3x.png',
+					// 		tips: 0,
+					// 		url: '/pages/erpbusiness/quality_testing?managementType=1',
+					// 		show: true
+					// 	},
+					// 	{
+					// 		num: 1,
+					// 		name: '入库检斤',
+					// 		// icon: 'cuIcon-calendar',
+					// 		src: '../../static/img/erp/shougouzhijian@3x.png',
+					// 		tips: 0,
+					// 		url: '/pages/erpbusiness/acquisitionInspection/acquisitionInspection',
+					// 		show: true
+					// 	},
+					// 	{
+					// 		num: 2,
+					// 		name: '出库检斤',
+					// 		// icon: 'cuIcon-copy',
+					// 		src: '../../static/img/erp/shougoujianjin@3x.png',
+					// 		tips: 0,
+					// 		url: '/pages/erpbusiness/acquisitionInspection/warehouseWeighing',
+					// 		show: true
+					// 	},
+					// 	{
+					// 		num: 3,
+					// 		name: '出库质检',
+					// 		// icon: 'cuIcon-edit',
+					// 		src: '../../static/img/erp/shougouzhijian@3x.png',
+					// 		tips: 0,
+					// 		url: `/pages/erpbusiness/outbound_quality_testing?managementType=3`,
+					// 		show: true
+					// 	}
 
 					// {
 					// 	num: 4,

+ 14 - 12
pages/erp/warehousing/warehousing.vue

@@ -969,18 +969,20 @@
 						return
 					}
 				}
-				if (this.detailData.warehouseInOutDetail.jiaorenli) {
-					if (this.detailData.warehouseInOutDetail.jiaorenli < 0 || this.detailData.warehouseInOutDetail
-						.jiaorenli > 40) {
-						this.$api.msg('热损伤占比输入错误')
-						return
-					}
-					if (String(this.detailData.warehouseInOutDetail.jiaorenli).indexOf('.') != -1 && String(this
-							.detailData
-							.warehouseInOutDetail.jiaorenli).length - (String(
-							this.detailData.warehouseInOutDetail.jiaorenli).indexOf('.') + 1) > 1) {
-						this.$api.msg('热损伤占比输入错误')
-						return
+				if(this.detailData.goodsName!='小麦'){
+					if (this.detailData.warehouseInOutDetail.jiaorenli) {
+						if (this.detailData.warehouseInOutDetail.jiaorenli < 0 || this.detailData.warehouseInOutDetail
+							.jiaorenli > 40) {
+							this.$api.msg('热损伤占比输入错误')
+							return
+						}
+						if (String(this.detailData.warehouseInOutDetail.jiaorenli).indexOf('.') != -1 && String(this
+								.detailData
+								.warehouseInOutDetail.jiaorenli).length - (String(
+								this.detailData.warehouseInOutDetail.jiaorenli).indexOf('.') + 1) > 1) {
+							this.$api.msg('热损伤占比输入错误')
+							return
+						}
 					}
 				}
 				if (this.detailData.warehouseInOutDetail.impurity) {

+ 19 - 8
pages/erpbusiness/add_quality_testing.vue

@@ -95,7 +95,7 @@
 				<view class="con-list">
 					<view @click='show6=true'>{{gridList.fleet?ridList.fleet:'非车队车辆'}}</view>
 					<u-picker @confirm='fleetpicker($event)' :range="fleetNameList" range-key="fleetName"
-						v-model="show5" mode="selector">
+						v-model="show6" mode="selector">
 					</u-picker>
 				</view>
 			</view>
@@ -204,9 +204,10 @@
 				<view class="title">仓位号</view>
 				<view class="con-list">
 					<view @click='show=true'>{{gridList.binNumber?gridList.binNumber:'请选择仓位号'}}</view>
-					<u-picker :range="warehouseList" range-key="binNumber" @confirm='binNumberpicker($event)'
+					
+					<!-- <u-picker :range="warehouseList" range-key="binNumber" 
 						v-model="show" mode="selector">
-					</u-picker>
+					</u-picker> -->
 				</view>
 			</view>
 			<view class="c-row ">
@@ -224,6 +225,7 @@
 				</view>
 				<view v-else class="con-list">{{gridList.type}}</view>
 			</view>
+			
 			<view v-if="gridList.type == '潮粮'" class="c-row">
 				<view class="title">净重单价(元/公斤)</view>
 				<view class="con-list" @click="setPrice">
@@ -333,9 +335,9 @@
 			<!-- <view @click='confirmInfo' class="button">确认初检信息</view> -->
 			<view @click='submit' class="button">提交</view>
 		</view>
-		<u-modal v-model="isShowAlert" :title-style="{fontSize: '18px',fontWeight:'500'}"
+<!-- 		<u-modal v-model="isShowAlert" :title-style="{fontSize: '18px',fontWeight:'500'}"
 			:content-style="{fontSize: '14px',fontWeight:'400'}" confirm-color='#22C572' confirm-text='确定' title='提示'
-			showCancelButton='false' :content="content" @confirm="alertBtn" @cancel="cancelClick"></u-modal>
+			showCancelButton='false' :content="content" @confirm="alertBtn" @cancel="cancelClick"></u-modal> -->
 		<u-popup v-model="isShowPrint" class="popup" @close="close" mode="bottom" border-radius="30" :closeable="true">
 			<view class="buns_item">
 				<view class="but_css" @click="print">打印小票</view>
@@ -353,6 +355,7 @@
 			</view>
 			<u-button type="success" style="width: 50%;margin-bottom: 10px;" @click="good">确定</u-button>
 		</u-popup>
+		<u-picker mode="selector" v-model="show" :default-selector="[0]" :range="warehouseList" range-key="binNumber" @confirm='binNumberpicker($event)'></u-picker>
 	</view>
 </template>
 
@@ -384,16 +387,18 @@
 				modalName: '',
 				pricetext: '锁定',
 				pricedisabled: false,
-				show8: false,
 				mycarStyle: '',
 				feild: undefined,
 				id: 0,
 				outType: '他运',
 				show: false,
+				show3: false,
+				show2: false,
 				show4: false,
 				show5: false,
 				show6: false,
 				show7: false,
+				show8: false,
 				edit: true,
 				goodsdisabled: false,
 				freighttext: '手动填写',
@@ -419,8 +424,7 @@
 				freightstatus: false,
 				coststatus: false,
 				pageSize: 10,
-				show3: false,
-				show2: false,
+				
 				goodsList: [],
 				currentPage: 1,
 				value: false,
@@ -580,6 +584,7 @@
 				}
 			}
 		},
+		
 		onLoad(options) {
 			this.commonWarehouseNo = options.commonWarehouseNo
 			this.warehouseCount = Number(options.warehouseCount) + 1
@@ -893,6 +898,7 @@
 
 				}
 				console.log(this.gridList)
+				this.show4 =false
 			},
 			print() {
 				uni.navigateTo({
@@ -1013,6 +1019,8 @@
 					if (this.outType) {
 						this.gridList.outType = this.outType
 					}
+				}else{
+					this.gridList.customerName = ''
 				}
 				var that = this
 				this.gridList.carNo = this.gridList.carNumber
@@ -1165,6 +1173,9 @@
 																			uni.setStorageSync(
 																				"quality_print",
 																				that.gridList)
+																				uni.setStorageSync(
+																					"quality_print_id",
+																					res.data.data)
 																			console.log(
 																				'that.gridList',
 																				that.gridList)

+ 12 - 4
pages/erpbusiness/edit_quality_testing.vue

@@ -126,9 +126,6 @@
 			<view class="c-row ">
 				<view class="title">仓位号</view>
 				<view class="con-list">
-					<u-picker :range="warehouseList" range-key="binNumber" @confirm='binNumberpicker($event)'
-						v-model="show" mode="selector">
-					</u-picker>
 					<view v-if='flag!=1' @click='show=true'>{{gridList.binNumber}}</view>
 					<view v-else>{{gridList.binNumber}}</view>
 				</view>
@@ -262,6 +259,12 @@
 				</view>
 
 			</view>
+			<view v-if="gridList.type == '干粮'" class="c-row">
+				<view class="title">干粮单价(元/公斤)</view>
+				<view class="con-list" @click="setPrice">
+					{{gridList.dryGrainPrice}}
+				</view>
+			</view>
 		</view>
 		<view style='padding-bottom:300rpx;'>
 			<view class='wrap'>
@@ -358,6 +361,9 @@
 				<view class="but_css" @click="close">返回</view>
 			</view>
 		</u-popup>
+		<u-picker :range="warehouseList" range-key="binNumber" @confirm='binNumberpicker($event)'
+			v-model="show" mode="selector">
+		</u-picker>
 	</view>
 </template>
 
@@ -808,6 +814,8 @@
 					if(this.outType){
 						this.gridList.outType=this.outType
 					}
+				}else{
+					this.gridList.customerName = ''
 				}
 				this.gridList.flag = this.flag
 				// if(this.flag==2){
@@ -822,7 +830,7 @@
 					this.$api.msg('仓位不能为空')
 					return
 				}
-				if(this.gridList.s==3){
+				if(this.gridList.serviceManagementType==3){
 					if (!this.gridList.customerName) {
 						this.$api.msg('客户不能为空')
 						return

+ 20 - 3
pages/erpbusiness/sendCommand.vue

@@ -64,6 +64,19 @@
 		},
 		computed: mapState(['sysinfo', 'Bluetooth']),
 		onLoad() {
+			uni.showLoading({
+				title: '加载中',
+				mask:true
+			})
+			this.$api.doRequest('get', '/qualityInspectionManagement/api/getQualityInspection', {
+				id: uni.getStorageSync('quality_print_id')
+			}).then(res => {
+				uni.hideLoading()
+				if (res.data.data) {
+					let data = res.data.data
+					this.gridList.qualityNo = data.qualityNo
+				}
+			})
 			let that = this;
 			let {
 				BLEInformation
@@ -105,7 +118,7 @@
 		onShow() {
 			this.gridList = uni.getStorageSync("quality_print")
 			this.utils.nullToString(this.gridList)
-			if(!this.gridList.compId){
+			if (!this.gridList.compId) {
 				this.gridList.compId = uni.getStorageSync('pcUserInfo').compId
 			}
 			console.log(this.gridList)
@@ -144,7 +157,7 @@
 			//    })	
 		},
 		methods: {
-			goToList(){
+			goToList() {
 				uni.navigateTo({
 					url: '/pages/erpbusiness/quality_testing?managementType=1'
 				})
@@ -166,6 +179,7 @@
 			},
 			//打印票据数据
 			receiptTest() {
+				console.log(this.gridList)
 				var that = this;
 				var canvasWidth = that.canvasWidth
 				var canvasHeight = that.canvasHeight
@@ -177,11 +191,13 @@
 				command.setSelectJustification(1) //居中
 				command.rowSpace(200);
 				// command.rowSpace(10);
+
 				command.setText(that.gridList.qualityNo.substring(that.gridList.qualityNo.length - 3));
 				command.setPrint();
 				command.rowSpace(60);
 				command.bold(0); //取消加粗
 				command.setFontSize(0); //正常字体
+
 				// 标题
 				command.bold(1); //加粗
 				command.setFontSize(16); //字体大小
@@ -196,7 +212,8 @@
 				command.rowSpace(60);
 				command.setSelectSizeOfModuleForQRCode(5);
 				command.setSelectErrorCorrectionLevelForQRCode(7)
-				command.setStoreQRCodeData(that.gridList.compId + '&' + that.gridList.qualityNo + '&' + that.gridList.warehouseId);
+				command.setStoreQRCodeData(that.gridList.compId + '&' + that.gridList.qualityNo + '&' + that.gridList
+					.warehouseId);
 				command.setPrintQRCode();
 				//客户姓名
 				command.setSelectJustification(0); //居左

+ 783 - 0
pages/task/audit/charge_against_revenue.vue

@@ -0,0 +1,783 @@
+<template>
+	<view class="warp">
+		<view class="topInfo">
+			<view class="topInfo-item">
+				<view class="flex info">
+					<view class="logo">
+						<image src="../../../static/img/reject.png" mode="" v-if="status == '已驳回'"
+							style="height: 40rpx;"></image><!-- 驳回 -->
+						<image src="../../../static/img/tongguo.png" mode="" v-if="status == '已通过'"
+							style="height: 40rpx;"></image><!-- 通过 -->
+						<!-- v-if="status == '审核中' || status == '待决策人审核'" -->
+						<image src="../../../static/img/daishenhe.png" mode="" style="height: 40rpx;"></image>
+						<!-- 待审核 -->
+					</view>
+					<!-- {{auditList.length > 0 ?auditList[auditList.length - 1].operatorMajorRoleName:""}} -->
+					<view class="infoText">待决策人审核</view>
+				</view>
+				<view class="infoData">{{updateDate}}</view>
+			</view>
+		</view>
+		<!-- 	<view class='content1'>
+			<view class='row content-item'>
+				<view class="left" style="color: #878C9C ;">仓库</view>
+				<view class="right">{{warehouseName}}</view>
+			</view>
+			<view class="content-item">
+				<view v-for="(item,index) in List">
+					<view class='row row1'>
+						<view class="left title">{{item.paymentNo}}</view>
+						<view class="right title">{{item.carNo}}</view>
+					</view>
+					<view class='row'>
+						<view class="left goodsInfoCss">{{item.goodsName}}({{item.netWeight}}kg -
+							¥{{item.tidalGrainPrice}})</view>
+						<view class="right priceCss">¥{{item.amountIngPayable}}</view>
+					</view>
+				</view>
+			</view>
+		</view> -->
+		<view class="content1">
+			<!-- 	<view class="title">
+				销售外勤 张三
+			</view> -->
+			<view class="row">
+				<view class="left">用途</view>
+				<view class="right" v-if='auditInfo.expensesPurpose==1'>合同费用</view>
+				<view class="right" v-if='auditInfo.expensesPurpose==3'>库点费用</view>
+				<view class="right" v-if='auditInfo.expensesPurpose==5'>经营性费用</view>
+			</view>
+			<view v-if='auditInfo.expensesPurpose==1' class="row">
+				<view class="left">类型</view>
+				<view class="right" v-if='auditInfo.costType==1'>粮款</view>
+				<view class="right" v-if='auditInfo.costType==3'>非粮款</view>
+				<view class="right" v-if='auditInfo.costType==5'>保证金</view>
+			</view>
+			<view v-if='auditInfo.expensesPurpose==1' class="row">
+				<view class="left">合同编号</view>
+				<view class="right">{{auditInfo.contractNo}}</view>
+			</view>
+			<view v-if='auditInfo.expensesPurpose==3' class="row">
+				<view class="left">仓库名称</view>
+				<view class="right">{{auditInfo.warehouseName}}</view>
+			</view>
+			<view class="row">
+				<view class="left">费用名称</view>
+				<view class="right">{{auditInfo.expenseName}}</view>
+			</view>
+			<view class="row">
+				<view class="left">金额(元)</view>
+				<view class="right">{{auditInfo.amountMoney}}</view>
+			</view>
+			<view style='border-bottom: 0;' class="row">
+				<view class="left">备注</view>
+				<view class="right">{{auditInfo.remark}}</view>
+			</view>
+			<!-- <view class="row">
+				<view class="left">附件</view>
+				<view class="right">{{auditInfo.amountMoney}}</view>
+			</view> -->
+
+			<!-- <view class="row row-bottom">
+				<view class="left">水分(%)</view>
+				<input type="digit" v-model='detailData.warehouseInOutDetail.waterContent' class="right-bottom"
+					placeholder="输入水分占比"></input>
+			</view>
+			<view class="row row-bottom">
+				<view class="left">容重(克/升)</view>
+				<input type="digit" v-model='detailData.warehouseInOutDetail.bulkDensity' class="right-bottom"
+					placeholder="输入容重"></input>
+			</view>
+			<view class="row row-bottom">
+				<view class="left">热损伤(%)</view>
+				<input type="digit" v-model='detailData.warehouseInOutDetail.jiaorenli' class="right-bottom"
+					placeholder="输入热损伤占比"></input>
+			</view>
+			<view class="row row-bottom">
+				<view class="left">杂质(%)</view>
+				<input type="digit" v-model='detailData.warehouseInOutDetail.impurity' class="right-bottom"
+					placeholder="输入杂质占比"></input>
+			</view>
+			<view class="row row-bottom">
+				<view class="left">霉变粒(%)</view>
+				<input type="digit" v-model='detailData.warehouseInOutDetail.mildewGrain' class="right-bottom"
+					placeholder="输入霉变粒占比"></input>
+			</view>
+			<view class="row row-bottom">
+				<view class="left">不完善粒(%)</view>
+				<input type="digit" v-model='detailData.warehouseInOutDetail.imperfectGrain' class="right-bottom"
+					placeholder="输入不完善粒占比"></input>
+			</view> -->
+		</view>
+		<view class="content1" v-if="url && url != 'ng'">
+			<view class="title ">
+				附件
+			</view>
+			<view v-if='auditInfo.srcList.length>0' class="">
+				<view style='flex-wrap: wrap;' class="file">
+					<image v-for='(item,index) in auditInfo.srcList'  @click="previewImageFn(index)" class='fujianImg' :src="item" mode=""></image>
+				</view>
+			</view>
+			<view v-else class="">
+				暂无附件
+			</view>
+		</view>
+		<view class="content1" v-if="url && url != 'ng'">
+			<view class="title ">
+				费用分配附件
+			</view>
+			<view class="file" @click="openXls">
+				<image src="../../../static/img/excle.png" mode="" class="img_css"></image>
+				<text class="text_css">明细.xls</text>
+			</view>
+		</view>
+		<view v-if='show' class="shade">
+			<view class="wrap">
+				<view class="alert-top">
+					<view class="title">
+						{{title}}
+					</view>
+					<u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
+				</view>
+				<view class="u-textarea-style">
+					<view class="right-bottom">
+						{{auditMind.length}}/100个字
+					</view>
+					<u-input class="" v-model='auditMind' placeholder="请在此输入审核意见" type="textarea" height="414"
+						maxlength="100" />
+				</view>
+				<view @click='close()' class="cancel">取消</view>
+				<view @click='passSubmit()' class="confirm">确定</view>
+			</view>
+		</view>
+		<u-toast ref="uToast" />
+		<view style='padding:10px;' class='flex bottom-btn'>
+			<u-button @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
+			<u-button @click='pass' type="success" class="btn2">通过</u-button>
+		</view>
+	</view>
+</template>
+
+<script>
+	import helper from '@/common/helper.js';
+	import {
+		mapState
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				src: '../../../static/img/myimg/LiangShang@2x.png',
+				isSHowBtn: true,
+				height: 200,
+				autoHeight: true,
+				border: false,
+				title: '',
+				show: false,
+				auditMind: '',
+				id: "",
+				currentPage: 1,
+				pageSize: 100,
+				List: [],
+				status: "",
+				updateDate: "",
+				warehouseName: "",
+				everyCheck: '',
+				auditInfo: {srcList:[]},
+				id: "",
+				auditList: [],
+				url: "11",
+			}
+		},
+		onBackPress(e) {
+			if (this.everyCheck) {
+				uni.navigateTo({
+					url: "/pages/task/my_task"
+				})
+				return true;
+			}
+		},
+		onLoad(options) {
+			this.id = options.id
+			this.vesselId = options.vesselId
+			this.everyCheck = uni.getStorageSync("everyTask")
+			this.isSHowBtn = options.isShowbtn
+		},
+		onShow(options) {
+			this.getList()
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+		},
+		methods: {
+			previewImageFn(index) {
+						/* 预览图片 */
+						uni.previewImage({
+							current: index,
+							/* 需要是数组 */
+							urls: this.auditInfo.srcList,
+							/* 默认底部圆点  number顶部数字1234 */
+							// indicator:'default',
+							indicator: 'number',
+							loop: false,
+							/* 长按图片底部显示选项 */
+							longPressActions: {
+								itemList: ['保存图片'],
+								itemColor: '#d60000',
+								success: data => {
+									console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
+									/* 保存图片到系统相册 */
+									plus.nativeUI.closePreviewImage();
+									if(data.tapIndex==0){
+										uni.saveImageToPhotosAlbum({
+											filePath:this.auditInfo.srcList[data.index],
+											success:res=>{
+												// console.log(this.userImgList[data.index])
+												// console.log(res.path,"res")
+												// plus.nativeUI.closePreviewImage();
+												plus.nativeUI.closePreviewImage();    
+												// uni.closePreviewImage()
+												plus.nativeUI.toast("保存成功",{background:"#c3002f"});
+												// this.$http.showTK({title:"保存成功",duration:500,position:"bottom"})
+											},
+											fail:err=>{
+												console.log(err,"err")
+											}
+										})
+									}else if(data.tapIndex==1){
+										this.uniShare()
+									}
+								},
+								fail: err => {
+									console.log(err.errMsg);
+								}
+							}
+						});
+					},
+			openXls() {
+				if (this.url && this.url != "ng") {
+					uni.downloadFile({
+						url: this.url,
+						success: function(res) {
+							var filePath = res.tempFilePath;
+							uni.openDocument({
+								filePath: filePath,
+								showMenu: true,
+								success: function(res) {
+									console.log('打开文档成功');
+								}
+							});
+						}
+					});
+				}
+			},
+			getList() {
+				uni.showLoading({
+					title: "加载中...",
+					mask: true
+				})
+				this.$api.doRequest('get', '/paymentManagement/selectPaymentManagement', {
+					currentPage: 1,
+					pageSize: 100,
+					searchType: '1', //searchType:1待审核
+					warehouseName: this.vesselId,
+					managementType: 1
+				}).then(res1 => {
+					uni.hideLoading()
+					if (res1.data.code == 200) {
+						this.List = res1.data.data.records
+					}
+				})
+				// this.$api.doRequest('get', '/paymentManagement/getInfo', {
+				// 	id: this.id
+				// }).then(res => {
+				// 	if (res.data.code == 200) {
+				// 		uni.showLoading({
+				// 			title: "加载中...",
+				// 			mask: true
+				// 		})
+
+				// 	}
+				// })
+				this.$api.doRequest('post', '/paymentManagement/exportPhone', {
+					warehouseName: this.vesselId,
+				}).then(res1 => {
+					if (res1.data.code == 200) {
+						this.url = res1.data.data
+					}
+				})
+				this.$api.doRequest('post', '/paymentManagement/exportPhoneData', {
+					warehouseName: this.vesselId,
+					searchType: 1
+				}).then(res1 => {
+					if (res1.data.code == 200) {
+						this.auditInfo = res1.data.data
+						if(this.auditInfo.addressUrl&&this.auditInfo.addressUrl!=''){
+							this.auditInfo.srcList=this.auditInfo.addressUrl.split(',')
+						}else{
+							this.auditInfo.srcList=[]
+						}
+						this.auditInfo.amountIngPayableTotal1 = helper.convertCurrency(this.auditInfo
+							.amountIngPayableTotal)
+					}
+				})
+				this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
+					businessCode: 'PAYMENT-MANAGEMENT-APPROVE',
+					tmpCompId: uni.getStorageSync('pcUserInfo').compId
+				}).then(res1 => {
+					this.updateDate = res1.data.data[0].updateDate
+					this.$api.doRequest('get', '/commonUser/getHis', {
+						workflowId: res1.data.data[0].id,
+						businessKey: this.id
+					}).then(response => {
+						// uni.hideLoading()
+						this.auditList = response.data.data
+
+					})
+				})
+			},
+			close() {
+				this.show = false
+			},
+			pass() {
+				this.show = true
+				this.title = '审核意见(通过)'
+			},
+			reject() {
+				this.show = true
+				this.title = '驳回原因(驳回)'
+			},
+			//驳回
+			// rejectSubmit() {
+			// 	if (!this.auditMind) {
+			// 		this.$api.msg('驳回原因不能为空!')
+			// 	} else {
+			// 		var that = this
+			// 		that.show = false
+			// 		if (this.List.length > 0) {
+			// 			uni.showModal({
+			// 				content: "确定驳回付款申请?",
+			// 				showCancel: true,
+			// 				confirmText: '确定',
+			// 				success: function(res) {
+			// 					if (res.confirm) {
+			// 						that.audit(that.List[0], 0, false, '', '')
+			// 					}
+			// 				}
+			// 			})
+			// 		}
+			// 	}
+			// },
+			//审核确定
+			passSubmit() {
+				var that = this
+				that.show = false
+				if (this.title == '驳回原因(驳回)') {
+					// this.rejectSubmit()
+					if (!that.auditMind) {
+						this.$api.msg('驳回原因不能为空!')
+					} else {
+						uni.showModal({
+							content: "确定驳回付款申请?",
+							showCancel: true,
+							confirmText: '确定',
+							success: function(res) {
+								if (res.confirm) {
+									uni.showLoading({
+										title: "审核中...",
+										mask: true
+									})
+									var count = 0
+									for (let num = 0; num < that.List.length; num++) {
+										that.$api.doRequest('post', '/workflow/api/handle', {
+											taskId: that.List[num].taskId,
+											approved: false,
+											auditMind: that.auditMind ? that.auditMind : "",
+											needReapply: true
+										}).then(res => {
+											count++
+											if (count == that.List.length) {
+												uni.hideLoading()
+												that.$api.msg('审核成功!')
+												setTimeout(function() {
+													uni.navigateBack();
+												}, 2000);
+											}
+										})
+									}
+								}
+							}
+						})
+					}
+				} else {
+					var that = this
+					this.show = false
+					uni.showModal({
+						content: "确定通过付款申请?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							if (res.confirm) {
+								uni.showLoading({
+									title: "审核中...",
+									mask: true
+								})
+								for (let num = 0; num < that.List.length; num++) {
+									var tmp = 0
+									that.$api.doRequest('post', '/workflow/api/handle', {
+										taskId: that.List[num].taskId,
+										approved: true,
+										auditMind: that.auditMind ? that.auditMind : "",
+										needReapply: false
+									}).then(res => {
+										tmp++
+										if (tmp == that.List.length) {
+											uni.hideLoading()
+											that.$api.msg('审核成功!')
+											setTimeout(function() {
+												uni.navigateBack();
+											}, 2000);
+										}
+									})
+								}
+							}
+						}
+					})
+				}
+			},
+			// audit(list, index, status, status2, reason) {
+			// 	uni.showLoading({
+			// 		title: "审核中"
+			// 	})
+			// 	if (this.List.length > 0) {
+			// 		if (status == true && list.status == "已驳回") {
+			// 			this.$api.doRequest('get', '/paymentManagement/api/openAuditFlow', {
+			// 				compId: "2710b21efc1e4393930c5dc800010dc4",
+			// 				id: list.id
+			// 			}).then(res => {
+			// 				if (res.data.code == 200) {
+			// 					this.audit(this.List[index + 1], index + 1, status, status2, reason)
+			// 				}
+			// 			})
+			// 		} else {
+			// 			for (var i = 0; i < this.List.length; i++) {
+			// 				this.$api.doRequest('post', '/workflow/api/handle', {
+			// 					taskId: this.List[i].taskId,
+			// 					approved: status,
+			// 					auditMind: this.auditMind ? this.auditMind : "",
+			// 					needReapply: status2 ? true : false
+			// 				}).then(res => {
+			// 					if (res.data.code == 200) {
+			// 						uni.hideLoading()
+			// 						// this.audit(this.List[index + 1], index + 1, status, status2, reason)
+			// 						this.$api.msg('通过成功')
+			// 					}else{
+			// 						uni.hideLoading()
+			// 						this.$api.msg('审核失败')
+			// 					}
+			// 				})
+			// 			}
+
+			// 		}
+			// 	} else {
+			// 		if (status == true) {
+			// 			this.$api.msg('通过成功')
+			// 		} else if (status == false) {
+			// 			this.$api.msg('驳回成功')
+			// 		}
+			// 		let that = this
+			// 		setTimeout(function() {
+
+			// 			if (that.everyCheck) {
+			// 				helper.setAudit(that.list)
+			// 			} else {
+			// 				uni.navigateBack()
+			// 			}
+			// 			uni.hideLoading()
+			// 		}, 1000);
+			// 	}
+			// },
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.warp {
+		margin: 10rpx;
+		padding: 20rpx 20rpx 240rpx 20rpx;
+	}
+
+	.content1 {
+		font-size: 28rpx;
+		color: #333333;
+		margin-top: 30rpx;
+		padding: 20rpx;
+		// .content-item {
+		border-radius: 20rpx;
+		background: white;
+		// 	padding: 40rpx 20rpx;
+		// 	margin-bottom: 30rpx;
+		// }
+
+		// .title {
+		// 	font-size: 32rpx;
+		// 	font-weight: 600;
+		// 	color: #333333;
+		// 	margin: 30rpx 0;
+		// }
+
+		// .goodsInfoCss {
+		// 	font-size: 28rpx;
+		// 	font-weight: 600;
+		// 	color: #878C9C;
+		// 	margin: 26rpx 10rpx;
+		// }
+
+		// .priceCss {
+		// 	font-size: 40rpx;
+		// 	margin: 26rpx 10rpx;
+		// 	color: #22C572;
+		// 	font-weight: 600;
+		// }
+		.row {
+			display: flex;
+			justify-content: space-between;
+			border-bottom: 1px solid #EEEEEE;
+			padding: 20rpx 0;
+
+			.right,
+			input {
+				font-size: 28rpx;
+				// color: #333333;
+			}
+		}
+
+		.img_css {
+			width: 50rpx;
+			height: 50rpx;
+		}
+
+		.file {
+			display: flex;
+			align-items: center;
+			margin: 30rpx 0 0 20rpx;
+
+			.text_css {
+				font-size: 30rpx;
+				margin-left: 20rpx;
+			}
+		}
+	}
+
+	.title {
+		font-size: 34rpx;
+		font-weight: 700;
+		// margin-bottom: 20rpx;
+		height: 70rpx;
+		border-bottom: 2rpx solid #EEEEEE;
+	}
+
+	.titlerow {
+		font-size: 34rpx;
+		font-weight: 700;
+		// margin-bottom: 20rpx;
+		// height: 70rpx;
+		// border-bottom: 2rpx solid #EEEEEE;
+	}
+
+	.content2 {
+		background: white;
+		margin: 20rpx 0;
+		border-radius: 20rpx;
+		padding: 20rpx;
+
+		.row {
+			display: flex;
+			justify-content: space-between;
+
+			.left {
+				display: flex;
+				align-items: center;
+
+				.item2 {
+					margin-left: 20rpx;
+
+					.name {
+						font-size: 32rpx;
+						font-weight: 800;
+					}
+
+					.status {
+						color: #6CC48C;
+					}
+				}
+			}
+
+			.right {
+				color: #B0B1B5;
+				margin-top: 10px;
+			}
+		}
+
+		.row-line {
+			width: 1px;
+			height: 30px;
+			background: #F2F2F2;
+			margin: 10rpx 50rpx;
+
+		}
+
+		.audit {
+			margin-top: 20rpx;
+		}
+	}
+
+	.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;
+		}
+	}
+
+	.row1 {
+		border-bottom: 0 !important;
+	}
+
+	.topInfo {
+		height: 210rpx;
+		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
+		padding: 30rpx;
+
+		.topInfo-item {
+			height: 150rpx;
+			background-color: #FFFFFF;
+			border-radius: 20rpx;
+			padding: 40rpx;
+
+			.logo {
+				width: 40rpx;
+				height: 40rpx;
+				margin-top: 8rpx;
+			}
+
+			.infoText {
+				font-size: 36rpx;
+				font-weight: 600;
+				margin-left: 20rpx;
+			}
+
+			.infoData {
+				color: #878C9C;
+				font-size: 26rpx;
+				margin-top: 10rpx;
+			}
+		}
+	}
+
+	.shade {
+		position: fixed;
+		top: 0;
+		left: 0;
+		height: 100%;
+		width: 100%;
+		background: rgba(0, 0, 0, 0.4);
+		z-index: 3;
+
+		.wrap {
+			position: absolute;
+			left: 0;
+			top: 0;
+			right: 0;
+			bottom: 0;
+			margin: auto;
+			background: #fff;
+			width: calc(100% - 198rpx);
+			height: 700rpx;
+			border-radius: 20rpx;
+
+			.alert-top {
+				padding: 33rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				position: relative;
+			}
+
+			.title {
+				font-size: 32rpx;
+				font-weight: 600;
+				color: #333333;
+			}
+
+			.close {
+				position: absolute;
+				right: 33rpx;
+			}
+		}
+	}
+
+	.cancel,
+	.confirm {
+		position: absolute;
+		display: inline-block;
+		width: 50%;
+		text-align: center;
+		bottom: 0;
+		padding: 10px;
+		border-top: 1px solid #eee;
+		font-size: 34rpx;
+	}
+
+	.cancel {
+		left: 0;
+		border-right: 1px solid #eee;
+		color: #AFB3BF;
+	}
+
+	.confirm {
+		right: 0;
+		color: #22C572;
+	}
+
+	.u-textarea-style {
+		margin: 20rpx;
+		background: #F9F9FA;
+		border-radius: 10px;
+		border: 1px solid #EEEEEE;
+		padding: 10rpx 20rpx;
+		position: relative;
+
+		.right-bottom {
+			position: absolute;
+			right: 20rpx;
+			bottom: 20rpx;
+			color: #AFB3BF;
+		}
+	}
+
+	/deep/.u-input__textarea {
+		height: 300rpx !important;
+	}
+	.fujianImg{
+		width:30%;
+		height:80px;
+		border-radius:3px;
+		border:1px solid #ccc;
+		margin:5px;
+	}
+</style>

+ 783 - 0
pages/task/audit/expense_allocation.vue

@@ -0,0 +1,783 @@
+<template>
+	<view class="warp">
+		<view class="topInfo">
+			<view class="topInfo-item">
+				<view class="flex info">
+					<view class="logo">
+						<image src="../../../static/img/reject.png" mode="" v-if="status == '已驳回'"
+							style="height: 40rpx;"></image><!-- 驳回 -->
+						<image src="../../../static/img/tongguo.png" mode="" v-if="status == '已通过'"
+							style="height: 40rpx;"></image><!-- 通过 -->
+						<!-- v-if="status == '审核中' || status == '待决策人审核'" -->
+						<image src="../../../static/img/daishenhe.png" mode="" style="height: 40rpx;"></image>
+						<!-- 待审核 -->
+					</view>
+					<!-- {{auditList.length > 0 ?auditList[auditList.length - 1].operatorMajorRoleName:""}} -->
+					<view class="infoText">待决策人审核</view>
+				</view>
+				<view class="infoData">{{updateDate}}</view>
+			</view>
+		</view>
+		<!-- 	<view class='content1'>
+			<view class='row content-item'>
+				<view class="left" style="color: #878C9C ;">仓库</view>
+				<view class="right">{{warehouseName}}</view>
+			</view>
+			<view class="content-item">
+				<view v-for="(item,index) in List">
+					<view class='row row1'>
+						<view class="left title">{{item.paymentNo}}</view>
+						<view class="right title">{{item.carNo}}</view>
+					</view>
+					<view class='row'>
+						<view class="left goodsInfoCss">{{item.goodsName}}({{item.netWeight}}kg -
+							¥{{item.tidalGrainPrice}})</view>
+						<view class="right priceCss">¥{{item.amountIngPayable}}</view>
+					</view>
+				</view>
+			</view>
+		</view> -->
+		<view class="content1">
+			<!-- 	<view class="title">
+				销售外勤 张三
+			</view> -->
+			<view class="row">
+				<view class="left">用途</view>
+				<view class="right" v-if='auditInfo.expensesPurpose==1'>合同费用</view>
+				<view class="right" v-if='auditInfo.expensesPurpose==3'>库点费用</view>
+				<view class="right" v-if='auditInfo.expensesPurpose==5'>经营性费用</view>
+			</view>
+			<view v-if='auditInfo.expensesPurpose==1' class="row">
+				<view class="left">类型</view>
+				<view class="right" v-if='auditInfo.costType==1'>粮款</view>
+				<view class="right" v-if='auditInfo.costType==3'>非粮款</view>
+				<view class="right" v-if='auditInfo.costType==5'>保证金</view>
+			</view>
+			<view v-if='auditInfo.expensesPurpose==1' class="row">
+				<view class="left">合同编号</view>
+				<view class="right">{{auditInfo.contractNo}}</view>
+			</view>
+			<view v-if='auditInfo.expensesPurpose==3' class="row">
+				<view class="left">仓库名称</view>
+				<view class="right">{{auditInfo.warehouseName}}</view>
+			</view>
+			<view class="row">
+				<view class="left">费用名称</view>
+				<view class="right">{{auditInfo.expenseName}}</view>
+			</view>
+			<view class="row">
+				<view class="left">金额(元)</view>
+				<view class="right">{{auditInfo.amountMoney}}</view>
+			</view>
+			<view style='border-bottom: 0;' class="row">
+				<view class="left">备注</view>
+				<view class="right">{{auditInfo.remark}}</view>
+			</view>
+			<!-- <view class="row">
+				<view class="left">附件</view>
+				<view class="right">{{auditInfo.amountMoney}}</view>
+			</view> -->
+
+			<!-- <view class="row row-bottom">
+				<view class="left">水分(%)</view>
+				<input type="digit" v-model='detailData.warehouseInOutDetail.waterContent' class="right-bottom"
+					placeholder="输入水分占比"></input>
+			</view>
+			<view class="row row-bottom">
+				<view class="left">容重(克/升)</view>
+				<input type="digit" v-model='detailData.warehouseInOutDetail.bulkDensity' class="right-bottom"
+					placeholder="输入容重"></input>
+			</view>
+			<view class="row row-bottom">
+				<view class="left">热损伤(%)</view>
+				<input type="digit" v-model='detailData.warehouseInOutDetail.jiaorenli' class="right-bottom"
+					placeholder="输入热损伤占比"></input>
+			</view>
+			<view class="row row-bottom">
+				<view class="left">杂质(%)</view>
+				<input type="digit" v-model='detailData.warehouseInOutDetail.impurity' class="right-bottom"
+					placeholder="输入杂质占比"></input>
+			</view>
+			<view class="row row-bottom">
+				<view class="left">霉变粒(%)</view>
+				<input type="digit" v-model='detailData.warehouseInOutDetail.mildewGrain' class="right-bottom"
+					placeholder="输入霉变粒占比"></input>
+			</view>
+			<view class="row row-bottom">
+				<view class="left">不完善粒(%)</view>
+				<input type="digit" v-model='detailData.warehouseInOutDetail.imperfectGrain' class="right-bottom"
+					placeholder="输入不完善粒占比"></input>
+			</view> -->
+		</view>
+		<view class="content1" v-if="url && url != 'ng'">
+			<view class="title ">
+				附件
+			</view>
+			<view v-if='auditInfo.srcList.length>0' class="">
+				<view style='flex-wrap: wrap;' class="file">
+					<image v-for='(item,index) in auditInfo.srcList'  @click="previewImageFn(index)" class='fujianImg' :src="item" mode=""></image>
+				</view>
+			</view>
+			<view v-else class="">
+				暂无附件
+			</view>
+		</view>
+		<view class="content1" v-if="url && url != 'ng'">
+			<view class="title ">
+				费用分配附件
+			</view>
+			<view class="file" @click="openXls">
+				<image src="../../../static/img/excle.png" mode="" class="img_css"></image>
+				<text class="text_css">明细.xls</text>
+			</view>
+		</view>
+		<view v-if='show' class="shade">
+			<view class="wrap">
+				<view class="alert-top">
+					<view class="title">
+						{{title}}
+					</view>
+					<u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
+				</view>
+				<view class="u-textarea-style">
+					<view class="right-bottom">
+						{{auditMind.length}}/100个字
+					</view>
+					<u-input class="" v-model='auditMind' placeholder="请在此输入审核意见" type="textarea" height="414"
+						maxlength="100" />
+				</view>
+				<view @click='close()' class="cancel">取消</view>
+				<view @click='passSubmit()' class="confirm">确定</view>
+			</view>
+		</view>
+		<u-toast ref="uToast" />
+		<view style='padding:10px;' class='flex bottom-btn'>
+			<u-button @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
+			<u-button @click='pass' type="success" class="btn2">通过</u-button>
+		</view>
+	</view>
+</template>
+
+<script>
+	import helper from '@/common/helper.js';
+	import {
+		mapState
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				src: '../../../static/img/myimg/LiangShang@2x.png',
+				isSHowBtn: true,
+				height: 200,
+				autoHeight: true,
+				border: false,
+				title: '',
+				show: false,
+				auditMind: '',
+				id: "",
+				currentPage: 1,
+				pageSize: 100,
+				List: [],
+				status: "",
+				updateDate: "",
+				warehouseName: "",
+				everyCheck: '',
+				auditInfo: {srcList:[]},
+				id: "",
+				auditList: [],
+				url: "11",
+			}
+		},
+		onBackPress(e) {
+			if (this.everyCheck) {
+				uni.navigateTo({
+					url: "/pages/task/my_task"
+				})
+				return true;
+			}
+		},
+		onLoad(options) {
+			this.id = options.id
+			this.vesselId = options.vesselId
+			this.everyCheck = uni.getStorageSync("everyTask")
+			this.isSHowBtn = options.isShowbtn
+		},
+		onShow(options) {
+			this.getList()
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+		},
+		methods: {
+			previewImageFn(index) {
+						/* 预览图片 */
+						uni.previewImage({
+							current: index,
+							/* 需要是数组 */
+							urls: this.auditInfo.srcList,
+							/* 默认底部圆点  number顶部数字1234 */
+							// indicator:'default',
+							indicator: 'number',
+							loop: false,
+							/* 长按图片底部显示选项 */
+							longPressActions: {
+								itemList: ['保存图片'],
+								itemColor: '#d60000',
+								success: data => {
+									console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
+									/* 保存图片到系统相册 */
+									plus.nativeUI.closePreviewImage();
+									if(data.tapIndex==0){
+										uni.saveImageToPhotosAlbum({
+											filePath:this.auditInfo.srcList[data.index],
+											success:res=>{
+												// console.log(this.userImgList[data.index])
+												// console.log(res.path,"res")
+												// plus.nativeUI.closePreviewImage();
+												plus.nativeUI.closePreviewImage();    
+												// uni.closePreviewImage()
+												plus.nativeUI.toast("保存成功",{background:"#c3002f"});
+												// this.$http.showTK({title:"保存成功",duration:500,position:"bottom"})
+											},
+											fail:err=>{
+												console.log(err,"err")
+											}
+										})
+									}else if(data.tapIndex==1){
+										this.uniShare()
+									}
+								},
+								fail: err => {
+									console.log(err.errMsg);
+								}
+							}
+						});
+					},
+			openXls() {
+				if (this.url && this.url != "ng") {
+					uni.downloadFile({
+						url: this.url,
+						success: function(res) {
+							var filePath = res.tempFilePath;
+							uni.openDocument({
+								filePath: filePath,
+								showMenu: true,
+								success: function(res) {
+									console.log('打开文档成功');
+								}
+							});
+						}
+					});
+				}
+			},
+			getList() {
+				uni.showLoading({
+					title: "加载中...",
+					mask: true
+				})
+				this.$api.doRequest('get', '/paymentManagement/selectPaymentManagement', {
+					currentPage: 1,
+					pageSize: 100,
+					searchType: '1', //searchType:1待审核
+					warehouseName: this.vesselId,
+					managementType: 1
+				}).then(res1 => {
+					uni.hideLoading()
+					if (res1.data.code == 200) {
+						this.List = res1.data.data.records
+					}
+				})
+				// this.$api.doRequest('get', '/paymentManagement/getInfo', {
+				// 	id: this.id
+				// }).then(res => {
+				// 	if (res.data.code == 200) {
+				// 		uni.showLoading({
+				// 			title: "加载中...",
+				// 			mask: true
+				// 		})
+
+				// 	}
+				// })
+				this.$api.doRequest('post', '/paymentManagement/exportPhone', {
+					warehouseName: this.vesselId,
+				}).then(res1 => {
+					if (res1.data.code == 200) {
+						this.url = res1.data.data
+					}
+				})
+				this.$api.doRequest('post', '/paymentManagement/exportPhoneData', {
+					warehouseName: this.vesselId,
+					searchType: 1
+				}).then(res1 => {
+					if (res1.data.code == 200) {
+						this.auditInfo = res1.data.data
+						if(this.auditInfo.addressUrl&&this.auditInfo.addressUrl!=''){
+							this.auditInfo.srcList=this.auditInfo.addressUrl.split(',')
+						}else{
+							this.auditInfo.srcList=[]
+						}
+						this.auditInfo.amountIngPayableTotal1 = helper.convertCurrency(this.auditInfo
+							.amountIngPayableTotal)
+					}
+				})
+				this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
+					businessCode: 'PAYMENT-MANAGEMENT-APPROVE',
+					tmpCompId: uni.getStorageSync('pcUserInfo').compId
+				}).then(res1 => {
+					this.updateDate = res1.data.data[0].updateDate
+					this.$api.doRequest('get', '/commonUser/getHis', {
+						workflowId: res1.data.data[0].id,
+						businessKey: this.id
+					}).then(response => {
+						// uni.hideLoading()
+						this.auditList = response.data.data
+
+					})
+				})
+			},
+			close() {
+				this.show = false
+			},
+			pass() {
+				this.show = true
+				this.title = '审核意见(通过)'
+			},
+			reject() {
+				this.show = true
+				this.title = '驳回原因(驳回)'
+			},
+			//驳回
+			// rejectSubmit() {
+			// 	if (!this.auditMind) {
+			// 		this.$api.msg('驳回原因不能为空!')
+			// 	} else {
+			// 		var that = this
+			// 		that.show = false
+			// 		if (this.List.length > 0) {
+			// 			uni.showModal({
+			// 				content: "确定驳回付款申请?",
+			// 				showCancel: true,
+			// 				confirmText: '确定',
+			// 				success: function(res) {
+			// 					if (res.confirm) {
+			// 						that.audit(that.List[0], 0, false, '', '')
+			// 					}
+			// 				}
+			// 			})
+			// 		}
+			// 	}
+			// },
+			//审核确定
+			passSubmit() {
+				var that = this
+				that.show = false
+				if (this.title == '驳回原因(驳回)') {
+					// this.rejectSubmit()
+					if (!that.auditMind) {
+						this.$api.msg('驳回原因不能为空!')
+					} else {
+						uni.showModal({
+							content: "确定驳回付款申请?",
+							showCancel: true,
+							confirmText: '确定',
+							success: function(res) {
+								if (res.confirm) {
+									uni.showLoading({
+										title: "审核中...",
+										mask: true
+									})
+									var count = 0
+									for (let num = 0; num < that.List.length; num++) {
+										that.$api.doRequest('post', '/workflow/api/handle', {
+											taskId: that.List[num].taskId,
+											approved: false,
+											auditMind: that.auditMind ? that.auditMind : "",
+											needReapply: true
+										}).then(res => {
+											count++
+											if (count == that.List.length) {
+												uni.hideLoading()
+												that.$api.msg('审核成功!')
+												setTimeout(function() {
+													uni.navigateBack();
+												}, 2000);
+											}
+										})
+									}
+								}
+							}
+						})
+					}
+				} else {
+					var that = this
+					this.show = false
+					uni.showModal({
+						content: "确定通过付款申请?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							if (res.confirm) {
+								uni.showLoading({
+									title: "审核中...",
+									mask: true
+								})
+								for (let num = 0; num < that.List.length; num++) {
+									var tmp = 0
+									that.$api.doRequest('post', '/workflow/api/handle', {
+										taskId: that.List[num].taskId,
+										approved: true,
+										auditMind: that.auditMind ? that.auditMind : "",
+										needReapply: false
+									}).then(res => {
+										tmp++
+										if (tmp == that.List.length) {
+											uni.hideLoading()
+											that.$api.msg('审核成功!')
+											setTimeout(function() {
+												uni.navigateBack();
+											}, 2000);
+										}
+									})
+								}
+							}
+						}
+					})
+				}
+			},
+			// audit(list, index, status, status2, reason) {
+			// 	uni.showLoading({
+			// 		title: "审核中"
+			// 	})
+			// 	if (this.List.length > 0) {
+			// 		if (status == true && list.status == "已驳回") {
+			// 			this.$api.doRequest('get', '/paymentManagement/api/openAuditFlow', {
+			// 				compId: "2710b21efc1e4393930c5dc800010dc4",
+			// 				id: list.id
+			// 			}).then(res => {
+			// 				if (res.data.code == 200) {
+			// 					this.audit(this.List[index + 1], index + 1, status, status2, reason)
+			// 				}
+			// 			})
+			// 		} else {
+			// 			for (var i = 0; i < this.List.length; i++) {
+			// 				this.$api.doRequest('post', '/workflow/api/handle', {
+			// 					taskId: this.List[i].taskId,
+			// 					approved: status,
+			// 					auditMind: this.auditMind ? this.auditMind : "",
+			// 					needReapply: status2 ? true : false
+			// 				}).then(res => {
+			// 					if (res.data.code == 200) {
+			// 						uni.hideLoading()
+			// 						// this.audit(this.List[index + 1], index + 1, status, status2, reason)
+			// 						this.$api.msg('通过成功')
+			// 					}else{
+			// 						uni.hideLoading()
+			// 						this.$api.msg('审核失败')
+			// 					}
+			// 				})
+			// 			}
+
+			// 		}
+			// 	} else {
+			// 		if (status == true) {
+			// 			this.$api.msg('通过成功')
+			// 		} else if (status == false) {
+			// 			this.$api.msg('驳回成功')
+			// 		}
+			// 		let that = this
+			// 		setTimeout(function() {
+
+			// 			if (that.everyCheck) {
+			// 				helper.setAudit(that.list)
+			// 			} else {
+			// 				uni.navigateBack()
+			// 			}
+			// 			uni.hideLoading()
+			// 		}, 1000);
+			// 	}
+			// },
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.warp {
+		margin: 10rpx;
+		padding: 20rpx 20rpx 240rpx 20rpx;
+	}
+
+	.content1 {
+		font-size: 28rpx;
+		color: #333333;
+		margin-top: 30rpx;
+		padding: 20rpx;
+		// .content-item {
+		border-radius: 20rpx;
+		background: white;
+		// 	padding: 40rpx 20rpx;
+		// 	margin-bottom: 30rpx;
+		// }
+
+		// .title {
+		// 	font-size: 32rpx;
+		// 	font-weight: 600;
+		// 	color: #333333;
+		// 	margin: 30rpx 0;
+		// }
+
+		// .goodsInfoCss {
+		// 	font-size: 28rpx;
+		// 	font-weight: 600;
+		// 	color: #878C9C;
+		// 	margin: 26rpx 10rpx;
+		// }
+
+		// .priceCss {
+		// 	font-size: 40rpx;
+		// 	margin: 26rpx 10rpx;
+		// 	color: #22C572;
+		// 	font-weight: 600;
+		// }
+		.row {
+			display: flex;
+			justify-content: space-between;
+			border-bottom: 1px solid #EEEEEE;
+			padding: 20rpx 0;
+
+			.right,
+			input {
+				font-size: 28rpx;
+				// color: #333333;
+			}
+		}
+
+		.img_css {
+			width: 50rpx;
+			height: 50rpx;
+		}
+
+		.file {
+			display: flex;
+			align-items: center;
+			margin: 30rpx 0 0 20rpx;
+
+			.text_css {
+				font-size: 30rpx;
+				margin-left: 20rpx;
+			}
+		}
+	}
+
+	.title {
+		font-size: 34rpx;
+		font-weight: 700;
+		// margin-bottom: 20rpx;
+		height: 70rpx;
+		border-bottom: 2rpx solid #EEEEEE;
+	}
+
+	.titlerow {
+		font-size: 34rpx;
+		font-weight: 700;
+		// margin-bottom: 20rpx;
+		// height: 70rpx;
+		// border-bottom: 2rpx solid #EEEEEE;
+	}
+
+	.content2 {
+		background: white;
+		margin: 20rpx 0;
+		border-radius: 20rpx;
+		padding: 20rpx;
+
+		.row {
+			display: flex;
+			justify-content: space-between;
+
+			.left {
+				display: flex;
+				align-items: center;
+
+				.item2 {
+					margin-left: 20rpx;
+
+					.name {
+						font-size: 32rpx;
+						font-weight: 800;
+					}
+
+					.status {
+						color: #6CC48C;
+					}
+				}
+			}
+
+			.right {
+				color: #B0B1B5;
+				margin-top: 10px;
+			}
+		}
+
+		.row-line {
+			width: 1px;
+			height: 30px;
+			background: #F2F2F2;
+			margin: 10rpx 50rpx;
+
+		}
+
+		.audit {
+			margin-top: 20rpx;
+		}
+	}
+
+	.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;
+		}
+	}
+
+	.row1 {
+		border-bottom: 0 !important;
+	}
+
+	.topInfo {
+		height: 210rpx;
+		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
+		padding: 30rpx;
+
+		.topInfo-item {
+			height: 150rpx;
+			background-color: #FFFFFF;
+			border-radius: 20rpx;
+			padding: 40rpx;
+
+			.logo {
+				width: 40rpx;
+				height: 40rpx;
+				margin-top: 8rpx;
+			}
+
+			.infoText {
+				font-size: 36rpx;
+				font-weight: 600;
+				margin-left: 20rpx;
+			}
+
+			.infoData {
+				color: #878C9C;
+				font-size: 26rpx;
+				margin-top: 10rpx;
+			}
+		}
+	}
+
+	.shade {
+		position: fixed;
+		top: 0;
+		left: 0;
+		height: 100%;
+		width: 100%;
+		background: rgba(0, 0, 0, 0.4);
+		z-index: 3;
+
+		.wrap {
+			position: absolute;
+			left: 0;
+			top: 0;
+			right: 0;
+			bottom: 0;
+			margin: auto;
+			background: #fff;
+			width: calc(100% - 198rpx);
+			height: 700rpx;
+			border-radius: 20rpx;
+
+			.alert-top {
+				padding: 33rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				position: relative;
+			}
+
+			.title {
+				font-size: 32rpx;
+				font-weight: 600;
+				color: #333333;
+			}
+
+			.close {
+				position: absolute;
+				right: 33rpx;
+			}
+		}
+	}
+
+	.cancel,
+	.confirm {
+		position: absolute;
+		display: inline-block;
+		width: 50%;
+		text-align: center;
+		bottom: 0;
+		padding: 10px;
+		border-top: 1px solid #eee;
+		font-size: 34rpx;
+	}
+
+	.cancel {
+		left: 0;
+		border-right: 1px solid #eee;
+		color: #AFB3BF;
+	}
+
+	.confirm {
+		right: 0;
+		color: #22C572;
+	}
+
+	.u-textarea-style {
+		margin: 20rpx;
+		background: #F9F9FA;
+		border-radius: 10px;
+		border: 1px solid #EEEEEE;
+		padding: 10rpx 20rpx;
+		position: relative;
+
+		.right-bottom {
+			position: absolute;
+			right: 20rpx;
+			bottom: 20rpx;
+			color: #AFB3BF;
+		}
+	}
+
+	/deep/.u-input__textarea {
+		height: 300rpx !important;
+	}
+	.fujianImg{
+		width:30%;
+		height:80px;
+		border-radius:3px;
+		border:1px solid #ccc;
+		margin:5px;
+	}
+</style>

+ 636 - 0
pages/task/audit/warehouse_warrant.vue

@@ -0,0 +1,636 @@
+<template>
+	<view class="warp">
+		<view class="topInfo">
+			<view class="topInfo-item">
+				<view class="flex info">
+					<view class="logo">
+						<image src="../../../static/img/reject.png" mode="" v-if="status == '已驳回'"
+							style="height: 40rpx;"></image><!-- 驳回 -->
+						<image src="../../../static/img/tongguo.png" mode="" v-if="status == '已通过'"
+							style="height: 40rpx;"></image><!-- 通过 -->
+						<!-- v-if="status == '审核中' || status == '待决策人审核'" -->
+						<image src="../../../static/img/daishenhe.png" mode="" style="height: 40rpx;"></image>
+						<!-- 待审核 -->
+					</view>
+					<!-- {{auditList.length > 0 ?auditList[auditList.length - 1].operatorMajorRoleName:""}} -->
+					<view class="infoText">待决策人审核</view>
+				</view>
+				<view class="infoData">{{updateDate}}</view>
+			</view>
+		</view>
+
+		<view class="content1">
+			<!-- 	<view class="title">
+				销售外勤 张三
+			</view> -->
+			<view class="row">
+				<view class="left">合计重量(吨)</view>
+				<view class="right">{{auditInfo.inWarehouseWeightTotal}}</view>
+			</view>
+			<view class="row" style="border-bottom:0">
+				<view class="left">合计金额(元)</view>
+				<view class="right">{{auditInfo.requestFundsTotal}}</view>
+			</view>
+
+		</view>
+		<view class="content1" v-if="url && url != 'ng'">
+			<view class="title ">
+				附件
+			</view>
+			<view class="file" @click="openXls">
+				<image src="../../../static/img/excle.png" mode="" class="img_css"></image>
+				<text class="text_css">明细.xls</text>
+			</view>
+		</view>
+		<view v-if='show' class="shade">
+			<view class="wrap">
+				<view class="alert-top">
+					<view class="title">
+						{{title}}
+					</view>
+					<u-icon name="close" class="close" color="#8890B1" @click="close()"></u-icon>
+				</view>
+				<view class="u-textarea-style">
+					<view class="right-bottom">
+						{{auditMind.length}}/100个字
+					</view>
+					<u-input class="" v-model='auditMind' placeholder="请在此输入审核意见" type="textarea" height="414"
+						maxlength="100" />
+				</view>
+				<view @click='close()' class="cancel">取消</view>
+				<view @click='passSubmit()' class="confirm">确定</view>
+			</view>
+		</view>
+		<u-toast ref="uToast" />
+		<view style='padding:10px;' class='flex bottom-btn'>
+			<u-button @click='reject' type="error" class="btn1" hover-class='none'>驳回</u-button>
+			<u-button @click='pass' type="success" class="btn2">通过</u-button>
+		</view>
+	</view>
+</template>
+
+<script>
+	import helper from '@/common/helper.js';
+	import {
+		mapState
+	} from 'vuex';
+	export default {
+		data() {
+			return {
+				src: '../../../static/img/myimg/LiangShang@2x.png',
+				isSHowBtn: true,
+				height: 200,
+				autoHeight: true,
+				border: false,
+				title: '',
+				show: false,
+				auditMind: '',
+				id: "",
+				currentPage: 1,
+				pageSize: 100,
+				List: [],
+				status: "",
+				updateDate: "",
+				warehouseName: "",
+				everyCheck: '',
+				auditInfo: {},
+				id: "",
+				auditList: [],
+				url: "11",
+			}
+		},
+		onBackPress(e) {
+			if (this.everyCheck) {
+				uni.navigateTo({
+					url: "/pages/task/my_task"
+				})
+				return true;
+			}
+		},
+		onLoad(options) {
+			this.id = options.id
+			this.vesselId = options.vesselId
+			this.everyCheck = uni.getStorageSync("everyTask")
+			this.isSHowBtn = options.isShowbtn
+		},
+		onShow(options) {
+			this.getList()
+		},
+		computed: {
+			...mapState(['hasLogin', 'userInfo']),
+		},
+		methods: {
+			openXls() {
+				if (this.url && this.url != "ng") {
+					uni.downloadFile({
+						url: this.url,
+						success: function(res) {
+							var filePath = res.tempFilePath;
+							uni.openDocument({
+								filePath: filePath,
+								showMenu: true,
+								success: function(res) {
+									console.log('打开文档成功');
+								}
+							});
+						}
+					});
+				}
+			},
+			getList() {
+				uni.showLoading({
+					title: "加载中...",
+					mask: true
+				})
+				// this.$api.doRequest('get', '/paymentManagement/selectPaymentManagement', {
+				// 	currentPage: 1,
+				// 	pageSize: 100,
+				// 	searchType: '1', //searchType:1待审核
+				// 	warehouseName: this.vesselId,
+				// 	managementType: 1
+				// }).then(res1 => {
+				// 	uni.hideLoading()
+				// 	if (res1.data.code == 200) {
+				// 		this.List = res1.data.data.records
+				// 	}
+				// })
+				// this.$api.doRequest('get', '/paymentManagement/getInfo', {
+				// 	id: this.id
+				// }).then(res => {
+				// 	if (res.data.code == 200) {
+				// 		uni.showLoading({
+				// 			title: "加载中...",
+				// 			mask: true
+				// 		})
+
+				// 	}
+				// })
+				this.$api.doRequest('post', '/warehousingOrder/exportPhone', {
+					batchId:this.id,searchType: 1,
+				}).then(res1 => {
+					if (res1.data.code == 200) {
+						this.url = res1.data.data
+					}
+				})
+				this.$api.doRequest('post', '/warehousingOrder/exportPhoneData', {searchType: 1,batchId:this.id}).then(res1 => {
+					if (res1.data.code == 200) {
+						this.auditInfo = res1.data.data
+						this.auditInfo.amountIngPayableTotal1 = helper.convertCurrency(this.auditInfo
+							.amountIngPayableTotal)
+							uni.hideLoading()
+					}
+				})
+				// this.$api.doRequest('get', '/workflow/query/workflowDefinitions', {
+				// 	businessCode: 'PAYMENT-MANAGEMENT-APPROVE',
+				// 	tmpCompId: uni.getStorageSync('pcUserInfo').compId
+				// }).then(res1 => {
+				// 	this.updateDate = res1.data.data[0].updateDate
+				// 	this.$api.doRequest('get', '/commonUser/getHis', {
+				// 		workflowId: res1.data.data[0].id,
+				// 		businessKey: this.id
+				// 	}).then(response => {
+				// 		// uni.hideLoading()
+				// 		this.auditList = response.data.data
+
+				// 	})
+				// })
+			},
+			close() {
+				this.show = false
+			},
+			pass() {
+				this.show = true
+				this.title = '审核意见(通过)'
+			},
+			reject() {
+				this.show = true
+				this.title = '驳回原因(驳回)'
+			},
+			//驳回
+			// rejectSubmit() {
+			// 	if (!this.auditMind) {
+			// 		this.$api.msg('驳回原因不能为空!')
+			// 	} else {
+			// 		var that = this
+			// 		that.show = false
+			// 		if (this.List.length > 0) {
+			// 			uni.showModal({
+			// 				content: "确定驳回付款申请?",
+			// 				showCancel: true,
+			// 				confirmText: '确定',
+			// 				success: function(res) {
+			// 					if (res.confirm) {
+			// 						that.audit(that.List[0], 0, false, '', '')
+			// 					}
+			// 				}
+			// 			})
+			// 		}
+			// 	}
+			// },
+			//审核确定
+			passSubmit() {
+				var that = this
+				that.show = false
+				if (this.title == '驳回原因(驳回)') {
+					// this.rejectSubmit()
+					if (!that.auditMind) {
+						this.$api.msg('驳回原因不能为空!')
+					} else {
+						uni.showModal({
+							content: "确定驳回付款申请?",
+							showCancel: true,
+							confirmText: '确定',
+							success: function(res) {
+								if (res.confirm) {
+									uni.showLoading({
+										title: "审核中...",
+										mask: true
+									})
+									var count = 0
+									for (let num = 0; num < that.List.length; num++) {
+										that.$api.doRequest('post', '/workflow/api/handle', {
+											taskId: that.List[num].taskId,
+											approved: false,
+											auditMind: that.auditMind ? that.auditMind : "",
+											needReapply: true
+										}).then(res => {
+											count++
+											if (count == that.List.length) {
+												uni.hideLoading()
+												that.$api.msg('审核成功!')
+												setTimeout(function() {
+													uni.navigateBack();
+												}, 2000);
+											}
+										})
+									}
+								}
+							}
+						})
+					}
+				} else {
+					var that = this
+					this.show = false
+					uni.showModal({
+						content: "确定通过付款申请?",
+						showCancel: true,
+						confirmText: '确定',
+						success: function(res) {
+							if (res.confirm) {
+								uni.showLoading({
+									title: "审核中...",
+									mask: true
+								})
+								for (let num = 0; num < that.List.length; num++) {
+									var tmp = 0
+									that.$api.doRequest('post', '/workflow/api/handle', {
+										taskId: that.List[num].taskId,
+										approved: true,
+										auditMind: that.auditMind ? that.auditMind : "",
+										needReapply: false
+									}).then(res => {
+										tmp++
+										if (tmp == that.List.length) {
+											uni.hideLoading()
+											that.$api.msg('审核成功!')
+											setTimeout(function() {
+												uni.navigateBack();
+											}, 2000);
+										}
+									})
+								}
+							}
+						}
+					})
+				}
+			},
+			// audit(list, index, status, status2, reason) {
+			// 	uni.showLoading({
+			// 		title: "审核中"
+			// 	})
+			// 	if (this.List.length > 0) {
+			// 		if (status == true && list.status == "已驳回") {
+			// 			this.$api.doRequest('get', '/paymentManagement/api/openAuditFlow', {
+			// 				compId: "2710b21efc1e4393930c5dc800010dc4",
+			// 				id: list.id
+			// 			}).then(res => {
+			// 				if (res.data.code == 200) {
+			// 					this.audit(this.List[index + 1], index + 1, status, status2, reason)
+			// 				}
+			// 			})
+			// 		} else {
+			// 			for (var i = 0; i < this.List.length; i++) {
+			// 				this.$api.doRequest('post', '/workflow/api/handle', {
+			// 					taskId: this.List[i].taskId,
+			// 					approved: status,
+			// 					auditMind: this.auditMind ? this.auditMind : "",
+			// 					needReapply: status2 ? true : false
+			// 				}).then(res => {
+			// 					if (res.data.code == 200) {
+			// 						uni.hideLoading()
+			// 						// this.audit(this.List[index + 1], index + 1, status, status2, reason)
+			// 						this.$api.msg('通过成功')
+			// 					}else{
+			// 						uni.hideLoading()
+			// 						this.$api.msg('审核失败')
+			// 					}
+			// 				})
+			// 			}
+
+			// 		}
+			// 	} else {
+			// 		if (status == true) {
+			// 			this.$api.msg('通过成功')
+			// 		} else if (status == false) {
+			// 			this.$api.msg('驳回成功')
+			// 		}
+			// 		let that = this
+			// 		setTimeout(function() {
+
+			// 			if (that.everyCheck) {
+			// 				helper.setAudit(that.list)
+			// 			} else {
+			// 				uni.navigateBack()
+			// 			}
+			// 			uni.hideLoading()
+			// 		}, 1000);
+			// 	}
+			// },
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	.warp {
+		margin: 10rpx;
+		padding: 20rpx 20rpx 240rpx 20rpx;
+	}
+
+	.content1 {
+		font-size: 28rpx;
+		color: #333333;
+		margin-top: 30rpx;
+		padding: 20rpx;
+		// .content-item {
+		border-radius: 20rpx;
+		background: white;
+		// 	padding: 40rpx 20rpx;
+		// 	margin-bottom: 30rpx;
+		// }
+
+		// .title {
+		// 	font-size: 32rpx;
+		// 	font-weight: 600;
+		// 	color: #333333;
+		// 	margin: 30rpx 0;
+		// }
+
+		// .goodsInfoCss {
+		// 	font-size: 28rpx;
+		// 	font-weight: 600;
+		// 	color: #878C9C;
+		// 	margin: 26rpx 10rpx;
+		// }
+
+		// .priceCss {
+		// 	font-size: 40rpx;
+		// 	margin: 26rpx 10rpx;
+		// 	color: #22C572;
+		// 	font-weight: 600;
+		// }
+		.row {
+			display: flex;
+			justify-content: space-between;
+			border-bottom: 1px solid #EEEEEE;
+			padding: 20rpx 0;
+
+			.right,
+			input {
+				font-size: 28rpx;
+				// color: #333333;
+			}
+		}
+
+		.img_css {
+			width: 50rpx;
+			height: 50rpx;
+		}
+
+		.file {
+			display: flex;
+			align-items: center;
+			margin: 30rpx 0 0 20rpx;
+
+			.text_css {
+				font-size: 30rpx;
+				margin-left: 20rpx;
+			}
+		}
+	}
+
+	.title {
+		font-size: 34rpx;
+		font-weight: 700;
+		// margin-bottom: 20rpx;
+		height: 70rpx;
+		border-bottom: 2rpx solid #EEEEEE;
+	}
+
+	.titlerow {
+		font-size: 34rpx;
+		font-weight: 700;
+		// margin-bottom: 20rpx;
+		// height: 70rpx;
+		// border-bottom: 2rpx solid #EEEEEE;
+	}
+
+	.content2 {
+		background: white;
+		margin: 20rpx 0;
+		border-radius: 20rpx;
+		padding: 20rpx;
+
+		.row {
+			display: flex;
+			justify-content: space-between;
+
+			.left {
+				display: flex;
+				align-items: center;
+
+				.item2 {
+					margin-left: 20rpx;
+
+					.name {
+						font-size: 32rpx;
+						font-weight: 800;
+					}
+
+					.status {
+						color: #6CC48C;
+					}
+				}
+			}
+
+			.right {
+				color: #B0B1B5;
+				margin-top: 10px;
+			}
+		}
+
+		.row-line {
+			width: 1px;
+			height: 30px;
+			background: #F2F2F2;
+			margin: 10rpx 50rpx;
+
+		}
+
+		.audit {
+			margin-top: 20rpx;
+		}
+	}
+
+	.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;
+		}
+	}
+
+	.row1 {
+		border-bottom: 0 !important;
+	}
+
+	.topInfo {
+		height: 210rpx;
+		background: linear-gradient(270deg, #22C572 0%, #34DE8A 100%);
+		padding: 30rpx;
+
+		.topInfo-item {
+			height: 150rpx;
+			background-color: #FFFFFF;
+			border-radius: 20rpx;
+			padding: 40rpx;
+
+			.logo {
+				width: 40rpx;
+				height: 40rpx;
+				margin-top: 8rpx;
+			}
+
+			.infoText {
+				font-size: 36rpx;
+				font-weight: 600;
+				margin-left: 20rpx;
+			}
+
+			.infoData {
+				color: #878C9C;
+				font-size: 26rpx;
+				margin-top: 10rpx;
+			}
+		}
+	}
+
+	.shade {
+		position: fixed;
+		top: 0;
+		left: 0;
+		height: 100%;
+		width: 100%;
+		background: rgba(0, 0, 0, 0.4);
+		z-index: 3;
+
+		.wrap {
+			position: absolute;
+			left: 0;
+			top: 0;
+			right: 0;
+			bottom: 0;
+			margin: auto;
+			background: #fff;
+			width: calc(100% - 198rpx);
+			height: 700rpx;
+			border-radius: 20rpx;
+
+			.alert-top {
+				padding: 33rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				position: relative;
+			}
+
+			.title {
+				font-size: 32rpx;
+				font-weight: 600;
+				color: #333333;
+			}
+
+			.close {
+				position: absolute;
+				right: 33rpx;
+			}
+		}
+	}
+
+	.cancel,
+	.confirm {
+		position: absolute;
+		display: inline-block;
+		width: 50%;
+		text-align: center;
+		bottom: 0;
+		padding: 10px;
+		border-top: 1px solid #eee;
+		font-size: 34rpx;
+	}
+
+	.cancel {
+		left: 0;
+		border-right: 1px solid #eee;
+		color: #AFB3BF;
+	}
+
+	.confirm {
+		right: 0;
+		color: #22C572;
+	}
+
+	.u-textarea-style {
+		margin: 20rpx;
+		background: #F9F9FA;
+		border-radius: 10px;
+		border: 1px solid #EEEEEE;
+		padding: 10rpx 20rpx;
+		position: relative;
+
+		.right-bottom {
+			position: absolute;
+			right: 20rpx;
+			bottom: 20rpx;
+			color: #AFB3BF;
+		}
+	}
+
+	/deep/.u-input__textarea {
+		height: 300rpx !important;
+	}
+</style>

+ 4 - 0
pages/task/my_task.vue

@@ -625,6 +625,10 @@
 							url: `/pages/task/audit/tradeServices_audit_approval?id=` + item.businessId
 						})
 					}
+				} else if (item.businessCode == 'WAREHOUSING-ORDER-APPROVE') {
+					uni.navigateTo({
+						url: `/pages/task/audit/warehouse_warrant?id=` + item.businessId
+					})
 				} else if (item.businessCode == 'COLLECTION-WAREHOUSING-RECORD') {
 					if (this.statusFlag == 1) {
 						uni.navigateTo({

+ 151 - 11
pages/user/setUp.vue

@@ -41,6 +41,12 @@
 				</view>
 				<image src="../../static/img/myimg/gengduo1@3x.png" class="arrow"></image>
 			</view>
+			<view class='cu-item' style='margin-bottom:10px;' @click='updataEdition'>
+				<view>
+					<text>检查新版本</text>
+				</view>
+				<image src="../../static/img/myimg/gengduo1@3x.png" class="arrow"></image>
+			</view>
 		</view>
 		<view class='exitloginwrap'>
 			<button @click='logout()' class='exitlogin'>退出登录</button>
@@ -52,6 +58,7 @@
 </template>
 
 <script>
+	import appUpdate from 'common/appUpdate.js'
 	import {
 		mapState
 	} from 'vuex';
@@ -81,39 +88,172 @@
 		},
 		onLoad() {},
 		methods: {
-			UpdataPassword(){
+			updataEdition() {
+				// #ifdef APP-PLUS
+				let type = uni.getSystemInfoSync().platform
+				if (type == "android") {
+					uni.request({
+						url: 'http://api1.eliangeyun.com/appVersion/selectInfo',
+						data: {
+							appid: plus.runtime.appid,
+							version: plus.runtime.version,
+							imei: "1"
+						},
+						method: 'GET',
+						success: (res) => {
+							if (res.statusCode === 200) {
+								console.log("uni.request update success", res)
+								plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) {
+									let client_version = wgtinfo.version
+									var flag_update = client_version.split(".").splice(0, 2).join(
+										".") != res.data.data.version.split(".").splice(0, 2)
+										.join(".")
+									var flag_hot = (Number(client_version.split(".")[2]) < Number(res
+										.data.data.version.split(".")[2])) & !flag_update
+									console.log("client_version", client_version)
+									console.log("flag_update", flag_update)
+									console.log("flag_hot", flag_hot)
+
+									if (flag_update) {
+										console.log("更新弹窗")
+										// 提醒用户更新
+										uni.showModal({
+											title: '更新提示',
+											content: res.data.data.note,
+											success: (showResult) => {
+												if (showResult.confirm) {
+													plus.nativeUI.toast("正在准备环境,请稍后!");
+													console.log(res.data.data.url, )
+													var dtask = plus.downloader
+														.createDownload(res.data.data
+														.url, {
+															method: 'GET',
+															filename: '_doc/update/'
+														}, function(d, status) {
+															if (status == 200) {
+																var path = d
+																.filename; //下载apk
+																plus.runtime.install(
+																	path); // 自动安装apk文件
+															} else {
+																plus.nativeUI.alert(
+																	'版本更新失败:' +
+																	status);
+															}
+														});
+													dtask.start();
+												}
+											}
+										})
+									} else if (flag_hot) {
+										console.log("热更新")
+										uni.showLoading({
+											title:'正在热更新'
+										})
+										uni.downloadFile({
+											url: res.data.data.wgtUrl,
+											success: (downloadResult) => {
+												console.log(downloadResult.tempFilePath)
+												if (downloadResult.statusCode === 200) {
+													plus.nativeUI.toast(
+														`正在热更新!${res.data.data.versionCode}`
+														);
+													plus.runtime.install(downloadResult
+														.tempFilePath, {
+															force: false
+														},
+														function() {
+															uni.hideLoading()
+															plus.nativeUI.toast(
+																"热更新成功");
+															uni.clearStorageSync();
+															plus.nativeUI.toast(
+																"缓存清除成功");
+															that.$api.doRequest('post',
+																	'/auth/api/logout')
+																.then(res => {
+																	if (res.data
+																		.data) {
+																		that.$store
+																			.commit(
+																				'logout'
+																				)
+																		that.$api
+																			.logout()
+																		plus.nativeUI
+																			.toast(
+																				"登出成功"
+																				);
+																		plus.runtime
+																			.restart();
+																		plus.nativeUI
+																			.toast(
+																				"重启成功"
+																				);
+																	}
+																})
+															plus.runtime.restart();
+														},
+														function(e) {
+															uni.hideLoading()
+															console.log(e)
+															plus.nativeUI.toast(
+																`热更新失败:${e.message}`
+																);
+														});
+												}
+											}
+										});
+									} else {
+										this.content = '您当前版本为最新版本'
+										this.isShowAlert = true
+									}
+
+								});
+							}
+						}
+					})
+				}
+
+				// #endif
+			},
+			UpdataPassword() {
 				uni.navigateTo({
 					url: `/pages/public/reset?phone=${this.userInfo.phone}`
 				})
 			},
-			clearStorage(){
-			let that = this
+			clearStorage() {
+				let that = this
 				uni.clearStorage({
-				    success: function (res) {
-				        console.log('success');
+					success: function(res) {
+						console.log('success');
 						that.goOpenService()
-				    }
+					}
 				})
 			},
 			cancelClick() {
 				this.isShowAlert = false
 			},
 			goOpenService() {
+				if (this.content == '您当前版本为最新版本') {
+					this.isShowAlert = false
+					return
+				}
 				uni.hideTabBarRedDot({
 					index: 3
 				})
 				uni.clearStorageSync();
-				var that=this
+				var that = this
 				this.$api.doRequest('post', '/auth/api/logout').then(res => {
 					if (res.data.data) {
-						
+
 					}
 				})
 				this.$store.commit('logout')
 				this.$api.logout()
-						uni.navigateTo({
-							url: `/pages/public/login`
-						})
+				uni.navigateTo({
+					url: `/pages/public/login`
+				})
 			},
 			getList() {
 				this.userInfo = uni.getStorageSync('userInfo')

+ 19 - 23
pages/user/user.vue

@@ -175,16 +175,16 @@
 						url: `/pages/erp/index`,
 						show: true
 					},
-					// {
-					// 	num: 1,
-					// 	name: '入库管理',
-					// 	// name: '收购业务',
-					// 	// icon: 'cuIcon-copy',
-					// 	src: '../../static/img/myimg/sg.png',
-					// 	tips: 0,
-					// 	url: `/pages/erpbusiness/index`,
-					// 	show: true
-					// },
+					{
+						num: 1,
+						name: '入库管理',
+						// name: '收购业务',
+						// icon: 'cuIcon-copy',
+						src: '../../static/img/myimg/sg.png',
+						tips: 0,
+						url: `/pages/erpbusiness/index`,
+						show: true
+					},
 					// {
 					// 	num: 2,
 					// 	name: '我的票据',
@@ -304,12 +304,12 @@
 						show: false
 					},
 					{
-						num: 7,
-						name: '库点收购',
+						num: 8,
+						name: '打卡',
 						// icon: 'cuIcon-edit',
 						src: '../../static/img/sign/kdsg.png',
 						tips: 0,
-						url: `/pages/user/depotAcquisition/depotAcquisition`,
+						url: `/pages/clock/the_clock`,
 						show: true
 					}
 				],
@@ -845,25 +845,21 @@
 
 	.cu-list.grid>.cu-item .badge_user {
 		color: #fff;
+		display: flex;
+		justify-content: center;
+		align-items: center;
 		    border: 1px solid #fff;
-		    background-color: #FF6600;
-		    display: inline-block;
-		    padding: 0.45em .25em 0.25em;
+		    background-color: #f43530;
+		    padding: 4px;
 		    position: absolute;
-		    font-size: 9px;
+		    font-size: 12px;
 		    font-weight: 700;
-		    line-height: 1;
-		    text-align: center;
-		    white-space: nowrap;
-		    vertical-align: top;
 		    width: 22px;
 		    height: 22px;
 		    right: 19px;
-		    /* transform: scale(0.5); */
 		    top: -12px;
 		    z-index: 2;
 		    border-radius: 50%;
-		    transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
 	}
 
 	@keyframes move_wave {