<template>
	<view class="container">
		<view class="detail-desc">
			<view class="d-header">
				<text>派车单</text>
			</view>
			 <view class="c-list">
			 	<view class="c-row b-b">
			 		<text class="tit">派车单号</text>
			 		<view class="con-list">
			 			<text>{{carInfo.sendCarNo}}</text>
			 		</view>
			 	</view>
			 	<!-- <view class="c-row b-b">
			 		<text class="tit">车皮号</text>
			 		<view class="con-list">
			 			<text>{{carInfo.carSkinNo}}</text>
			 		</view>
			 	</view>
				<view class="c-row b-b">
					<text class="tit">箱号</text>
					<view class="con-list">
						<text>{{carInfo.boxNo}}</text>
					</view>
				</view> -->
			 	<view class="c-row b-b">
			 		<text class="tit">运价</text>
			 		<view class="con-list">
			 			<text>{{carInfo.price}}</text>
			 		</view>
			 	</view>
				<view class="c-row b-b">
					<text class="tit">入库汽车号</text>
					<view class="con-list">
						<text>{{carInfo.carNo}}</text>
					</view>
				</view>
			 </view>
			<view class="d-header">
				<text>入库数据</text>
			</view>
			<view class="c-list">
				<view class="c-row b-b">
					<text class="tit">毛重(吨)</text>
					<view class="con-list">
						<input placeholder="请填写毛重" name="input" v-model="grossWeight" @input="grossWeightInput"></input>
					</view>
				</view>
				<view class="c-row b-b">
					<text class="tit">皮重(吨)</text>
					<view class="con-list">
						<input placeholder="请填写皮重" name="input" v-model="skinWeight" @input="skinWeightInput"></input>
					</view>
				</view>
				<view class="c-row b-b">
					<text class="tit">净重(自动计算)</text>
					<view class="con-list">
						<text>{{numFilter(netWeight)}}</text>
					</view>
				</view>
				<view class="cu-bar bg-white ">
					<view class="action">
						磅单照片
					</view>
				</view>
				<view class="cu-form-group">
					<view class="grid col-2 grid-square flex-sub">
						<view class="bg-img" v-if="poundImg != ''" @tap="ViewImage" :data-url="poundImg">
						 <image :src="poundImg" mode="aspectFit"></image>
							<view class="cu-tag bg-red" @tap.stop="DelImg" >
								<text class='cuIcon-close'></text>
							</view>
						</view>
						<view class="solids" @tap="ChooseImage" v-if="poundImg == ''">
							<text class='cuIcon-cameraadd'></text>
						</view>
					</view>
				</view>
				<view class="c-row b-b">
					<text class="tit">入库费用(元/吨)</text>
					<view class="con-list">
						<input placeholder="请填写入库费用" name="input" v-model="inFee" @input="inFeeInput"></input>
					</view>
				</view>
				<view class="c-row b-b">
					<text class="tit">入库杂费(元/吨)</text>
					<view class="con-list">
						<input placeholder="请填写入库杂费" name="input" v-model="inOtherFee" @input="inOtherFeeInput"></input>
					</view>
				</view>
			</view> 
		</view>
		<view class="cu-modal" :class="modalName=='userModal'?'show':''" @tap="hideModal">
			<scroll-view scroll-y class="cu-dialog" :style="userStyle" @tap.stop="">
				<view class="cu-list menu text-center" >
					<view class="cu-item" v-for="(item,index) in userList" :key="index" @click="mygaipai(item.id)">
						<label class="flex justify-between align-center flex-sub">
							<view class="flex-sub">{{item.userName}}</view>
						</label>
					</view>
				</view>
			</scroll-view>
		</view>
		<view v-if="taskStatus == 1 && (carInfo.status == 20 ||carInfo.status == 30)" class="page-bottom">
			<view class="action-btn-group">
				<button type="primary" class=" action-btn no-border buy-now-btn" @click="save">保存</button>
				<button type="primary" class=" action-btn no-border add-cart-btn" @click="finish">完成</button>
				<button type="primary" class=" action-btn no-border add-cart-btn" @click="gaipai">改派</button>
			</view>
		</view> 
	</view>
</template>

<script>
    import uploadImage from '@/components/ossutil/uploadFile.js';
	import Handwriting from '@/components/ossutil/signature.js';
	import {  
	    mapState 
	} from 'vuex';
	export default {
		data() {
			return {
				carInfo:[],
				poundImg:'',
				otherImg:'',
				grossWeight:'',
				skinWeight:'',
				netWeight:'',
				price:'',
				carNo:'',
				inFee:'',
				taskStatus:'',
				userStyle:'',
				userList:[],
				modalName:'',
				taskType:'',
				taskId:'',
				addNumStatus:false,
				inCarNo:'',
				inOtherFee:'',
				lineColor:'black',
				slideValue:50,
				handwriting:'',
				selectColor:'black',
				color:'',
			};
		},
		computed: {
			...mapState(['hasLogin','userInfo'])
		},
		onShow() {
		},
		onLoad(options) {
			const that = this
			this.taskStatus = options.taskStatus
			this.taskType = options.taskType
			this.taskId = options.taskId
			uni.showLoading({
				title: '正在加载',
				mask:true
			})
			that.$api.request('tran', 'getCarInfoBySendCarNo', {
				sendCarNo: options.sendCarNo
			}, failres => {
				that.$api.msg(failres.errmsg)
				uni.hideLoading()
			}).then(res => {	
				that.carInfo = res.data
				// that.inPersonName = res.data.receiver
				that.grossWeight = that.carInfo.grossWeightRec
				that.skinWeight = that.carInfo.skinWeightRec
				that.netWeight = that.carInfo.netWeightRec
				that.poundImg = that.carInfo.poundImgRec
				that.carNo=that.carInfo.carNo
				that.inFee=that.carInfo.inFee
				that.inOtherFee=that.carInfo.inOtherFee
				uni.hideLoading()
			})
		},
		onReady(){
			
		},
		methods: {
			inFeeInput(e){
				this.inFee = e.detail.value
			},
			// inCarNoInput(e){
			// 	this.inCarNo = e.detail.value
			// },
			inOtherFeeInput(e){
				this.inOtherFee = e.detail.value
			},
			numFilter (value) {
				if(!value){
					return 0
				}
				// 截取当前数据到小数点后两位
				let realVal = parseFloat(value).toFixed(2)
				return realVal
			},
			ChooseSignImage() {
				this.handwriting = new Handwriting({
				  lineColor: this.lineColor,
				  slideValue: this.slideValue, // 0, 25, 50, 75, 100
				  canvasName: 'handWriting',
				})
				this.showAutograph = true
			},
			uploadScaleStart(event){
			  this.handwriting.uploadScaleStart(event)
		    },
		    uploadScaleMove(event){
			  this.handwriting.uploadScaleMove(event)
		    },
		    uploadScaleEnd(event){
			  this.handwriting.uploadScaleEnd(event)
		    },
			retDraw() {
				this.handwriting.retDraw()
			},
			hideModal(e) {
				this.modalName = null
			},
			ViewImage(e) {
				var img = [];
				img = e.currentTarget.dataset.url.split(' ')
				uni.previewImage({
					current:0,
					urls: img
				});
			},
			DelImg(e) {
				uni.showModal({
					title: '提示',
					content: '确定要删除该磅单照片吗？',
					cancelText: '取消',
					confirmText: '确定',
					success: res => {
						if (res.confirm) {
							this.poundImg = "";
						}
					}
				})
			},
			ChooseImage() {
				uni.chooseImage({
					count: 1, //默认9
					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图，默认二者都有
					sourceType: ['album','camera'], //从相册选择
					success: (res) => {
						//上传图片
						//图片路径可自行修改
						uploadImage(res.tempFilePaths[0], 'carNoImg/',
							result => {
								this.poundImg = result
								uni.hideLoading();
							}
						)
					}
				});
			},
			grossWeightInput(e) {
				this.grossWeight = e.detail.value
				if(this.grossWeight && this.skinWeight){
					this.netWeight = this.numFilter(this.grossWeight - this.skinWeight)
					if(this.netWeight > this.carInfo.num){
						this.addNumStatus = true
					}
				}
			},
			skinWeightInput(e) {
				this.skinWeight = e.detail.value
				if(this.grossWeight && this.skinWeight){
					this.netWeight = this.numFilter(this.grossWeight - this.skinWeight)
					if(this.netWeight > this.carInfo.num){
						this.addNumStatus = true
					}
					else{
						this.addNumStatus = false
					}
				}
			},
			save(){
				const that = this
				uni.showLoading({
					title: '正在加载',
					mask:true
				})
				that.$api.request('tran', 'saveInTrainInfo', {
					sendCarNo: that.carInfo.sendCarNo,
					grossWeight:!that.grossWeight?'':that.grossWeight,
					skinWeight:!that.skinWeight?'':that.skinWeight,
					netWeight:!that.netWeight?'':that.netWeight,
					poundImg:!that.poundImg?'':that.poundImg,
					inFee:!that.inFee?'':that.inFee,
					inOtherFee:!that.inOtherFee?'':that.inOtherFee
				}, failres => {
					that.$api.msg(failres.errmsg)
					uni.hideLoading()
				}).then(res => {			
					that.$api.msg('保存成功')
					uni.hideLoading()
				})
			},
			finish(){		
				const that = this
				if(!that.grossWeight){
					this.$api.msg('请填写毛重');
					return;
				}
				if(!that.skinWeight){
					this.$api.msg('请填写皮重');
					return;
				}
				if(!that.poundImg){
					this.$api.msg('请上传磅单照片');
					return;
				}
				if (!that.inFee ) {
					that.$api.msg('请填写入库费用');
					return
				}
				uni.showLoading({
					title: '正在加载',
					mask:true
				})
				that.$api.request('tran', 'finishInTrainInfo', {
					sendCarNo: that.carInfo.sendCarNo,
					grossWeight:that.grossWeight,
					skinWeight:that.skinWeight,
					netWeight:that.netWeight,
					poundImg:that.poundImg,
					inFee:that.inFee,
					inOtherFee:that.inOtherFee,
					taskId:that.taskId,
				}, failres => {
					that.$api.msg(failres.errmsg)
					uni.hideLoading()
				}).then(res => {			
					uni.hideLoading()
					that.$api.msg('完成成功')
					setTimeout(()=>{uni.navigateBack({
						delta: 1
					})},1000);
					
				})
			},
			gaipai(){
				const that = this
				uni.showLoading({
					title: '正在加载',
					mask:true
				})
				that.$api.request('user', 'getUserList', {
					role:'外勤'
				}, failres => {
				 	that.$api.msg(failres.errmsg)
				 	uni.hideLoading()
				 }).then(res => {
					that.userList = res.data
					if(that.userList.length == 0){
						that.$api.msg('暂无外勤信息')
					}
					else{
						var height = that.userList.length * 100
						var width = 500
						that.userStyle = "height:"+height+"rpx;width:" + width+"rpx"
						that.modalName = 'userModal'
					}
					
					uni.hideLoading()
				})
			},
			mygaipai(id){
				var that = this
				that.$api.request('tran', 'gaipai',{
					taskId: that.taskId,
					outPersonId:id,
					taskType:that.taskType
				},failres => {
					that.$api.msg(failres.errmsg)
					that.modalName = null
					uni.hideLoading()
				}).then(res => {		
					that.modalName = null
					uni.navigateBack({
						delta: 2
					})
					uni.hideLoading()
				})
			},

			
		},
	}
</script>

<style lang='scss' scoped="true">
	.container{
		padding-bottom: 160upx;
	}
	.detail-desc {
		background: #fff;
		margin-top: 16upx;
		width: 750upx;
	
		.d-header {
			display: flex;
			justify-content: center;
			align-items: center;
			height: 80upx;
			font-size: $font-base + 2upx;
			color: $font-color-dark;
			position: relative;
	
			text {
				padding: 0 20upx;
				background: #fff;
				position: relative;
				z-index: 1;
			}
	
			&:after {
				position: absolute;
				left: 50%;
				top: 50%;
				transform: translateX(-50%);
				width: 300upx;
				height: 0;
				content: '';
				border-bottom: 1px solid #ccc;
			}
		}
	}
	.c-list {
		font-size: $font-sm + 2upx;
		color: $font-color-base;
		background: #fff;
	
		.c-row {
			display: flex;
			align-items: center;
			padding: 20upx 30upx;
			position: relative;
		}
	
		.tit {
			width: 220upx;
		}
	
		.con {
			flex: 1;
			color: $font-color-dark;
	
			.selected-text {
				margin-right: 10upx;
			}
		}
	
		.bz-list {
			height: 40upx;
			font-size: $font-sm+2upx;
			color: $font-color-dark;
	
			text {
				display: inline-block;
				margin-right: 30upx;
			}
		}
	
		.con-list {
			flex: 1;
			display: flex;
			flex-direction: column;
			color: $font-color-dark;
			line-height: 40upx;
			text-align: right;
			padding-right: 20upx;
		}
	
		.red {
			color: $uni-color-primary;
		}
	}
	.page-bottom {
		.action-btn-group {
			.action-btn {
				width: 33.3333%;
			}
		}
	}
	@mixin playcenter {
		display: flex;
		align-items: center;
		justify-content: center;
	}
	.xsh-start {
		width: 105rpx;
		height: 105rpx;
		background: #FFFFFF;
		border-radius: 50%;
		font-size: 29rpx;
		color: #4135EB;
		@include playcenter;
		flex-wrap: wrap;
	}
	.x-modal {
		width: 100%;
		.x-m-title {
			width: 100%;
			height: 90rpx;
			padding: 0 38rpx 0 31rpx;
			box-sizing: border-box;
			font-size: 29rpx;
			color: #333333;
			border-bottom: 1px dashed #999;
			@include playcenter;
			justify-content: space-between;
			.xm-t-clear {
				font-size: 25rpx;
				color: #341DB7;
				@include playcenter;
				>image {
					width: 28rpx;
					height: 28rpx;
					display: block;
					margin-right: 8rpx;
				}
			}
		}
		.x-m-con {
			width: 100%;
			padding: 0 31rpx 18rpx;
			margin-top: 5rpx;
			box-sizing: border-box;
		}
	}
	.wrapper {
	  width: 100%;
	  height: 100%;
	  margin: 30upx 0;
	  overflow: hidden;
	  display: flex;
	  align-content: center;
	  flex-direction: column;
	  justify-content: center;
	  font-size: 28upx;
	}
	
	.handWriting {
	  background: #fff;
	  width: 100%;
	  height: 350upx;
	}
	
	.handRight {
	  align-items: center;
	}
	
	.handCenter {
	  border: 4upx dashed #e9e9e9;
	  flex: 5;
	  overflow: hidden;
	  box-sizing: border-box;
	  width: 90%;
	  margin: 0 auto;
	}
	.handTitle {
	  flex: 1;
	  color: #666;
	  justify-content: center;
	  font-size: 30upx;
	}
	.handBtn {
	  flex-direction: column;
	  padding: 40upx 20upx;
	}
	.buttons{
		width: 100%;
		margin-top: 20upx;
		justify-content: space-between;
	}
	.buttons>button{
		font-size: 30upx;
		height: 80upx;
	}
	.delBtn {
	  background: #23df02;
	  color: #fff;
	}
	.color{
		align-items: center;
	}
	.color>text{
		margin-right: 20upx;
	}
	.subBtn {
	  background: #008ef6;
	  color: #fff;
	  text-align: center;
	  justify-content: center;
	}
	
	.black-select {
	  width: 60upx;
	  height: 60upx;
	}
	.black-select.color_select {
	  width: 90upx;
	  height: 90upx;
	}
	.red-select {
	  width: 60upx;
	  height: 60upx;
	}
	.red-select.color_select {
	  width: 90upx;
	  height: 90upx;
	}
	.slide-wrapper {
	  align-items: center;
	  margin-bottom: 20upx;
	}
	.slider{
		width: 400upx;
		padding-left: 20upx;
	}
	.drop {
	  width: 50upx;
	  height: 50upx;
	  border-radius: 50%;
	  background: #FFF;
	  position: absolute;
	  left: 0upx;
	  top: -10upx;
	  box-shadow: 0px 1px 5px #888888;
	}
	
	.slide {
	  width: 250upx;
	  height: 30upx;
	}
	.showimg{
		border: 4upx solid #e9e9e9;
		overflow: hidden;
		width: 90%;
		margin: 0 auto;
		background: #eee;
		height: 350upx;
		margin-top: 40upx;
		align-items: center;
		justify-content: center;
	}
	.showimg>image{
		width: 100%;
		height: 100%;	
	}
	.showimg>text{
		font-size: 40upx;
		color: #888;
	}	
	.indexFixed{
		position: fixed;
		left:0;
		bottom:0;
		right:0;
	}
</style>
