<template>
	<view class="warp">
		<view class="top">
			<view class="top-left">{{warehouseName}}</view>
			<view>{{binNumber}}仓位</view>
		</view>
		<view class="content">
			<view class="row">
				<view class="left">合同编号</view>
				<view @click='slectcontractNo'>{{detailData.contractNo}}</view>
			</view>
			<view class="row">
				<view class="left">货名</view>
				<view class="right">{{detailData.goodsName ? detailData.goodsName : "选择合同，自动获取"}}
				</view>
			</view>
			<view class="row">
				<view class="left">类型</view>
				<view @click='show1=true'>{{detailData.type}}</view>
				<u-picker :range="typeList" range-key="type" @confirm='typePicker($event)' v-model="show1"
					mode="selector">
					<view class="">{{detailData.type}}</view>
				</u-picker>
			</view>
			<view class="row row-bottom">
				<view class="left">毛重（吨）</view>
				<input @input='calculate' v-model='detailData.grossWeight' class="right-bottom"
					placeholder="输入毛重"></input>
			</view>
			<view class="row row-bottom">
				<view class="left">皮重（吨）</view>
				<input @input='calculate' v-model='detailData.tare' class="right-bottom" placeholder="输入皮重"></input>
			</view>
			<view class="row row-bottom">
				<view class="left">净重（吨）</view>
				<input v-model='netWeight' disabled class="right-bottom" placeholder="不可编辑,自动计算"></input>
			</view>
			<view class="row row-bottom" v-if="detailData.type == '潮粮'">
				<view class="left">扣重比</view>
				<input v-model='detailData.buckleWeightRatio' class="right-bottom" placeholder="输入扣重比"
					@input="pureWeightCount"></input>
			</view>
			<view class="row row-bottom" v-if="detailData.type == '潮粮'">
				<view class="left">干粮水分（%）</view>
				<input v-model='detailData.solidGrainWater' class="right-bottom" placeholder="输入干粮水分占比"
					@input="pureWeightCount"></input>
			</view>
			<view class="row row-bottom" v-if="detailData.type == '潮粮'">
				<view class="left">潮粮水分（%）</view>
				<input v-model='detailData.tidalGrainWater' class="right-bottom" placeholder="输入潮粮水分占比"
					@input="pureWeightCount"></input>
			</view>
			<view class="row row-bottom" v-if="detailData.type == '潮粮'">
				<view class="left">纯重（吨）</view>
				<input v-model='detailData.pureWeight' class="right-bottom" placeholder="不可编辑,自动计算"></input>
			</view>
			<view class="row">
				<view class="left">品级</view>
				<view @click='show3=true'>{{detailData.grade}}</view>
				<u-picker :range="pjList" range-key="type" @confirm='pjPicker($event)' v-model="show3" mode="selector">
				</u-picker>
			</view>
			<view class="row">
				<view class="left">经办人</view>
				<view @click='show6=true'>{{detailData.agent}}</view>
				<u-picker :range="handlerList" range-key="staffName" @confirm='handlerPicker($event)' v-model="show6"
					mode="selector">
				</u-picker>
			</view>
			<view class="row">
				<view class="left">出库日期</view>
				<view @click='show7=true'>{{detailData.inOutDate}}</view>
				<u-picker v-model="show7" mode="time" @confirm='dateChange($event)' :params="params">
				</u-picker>
			</view>
			<view class="row">
				<view class="left">出库类型</view>
				<view @click='show5=true'>{{detailData.inOutType}}</view>
				<u-picker :range="warehousingTypeList" range-key="constValue" @confirm='warehousingTypePicker($event)'
					v-model="show5" mode="selector">
				</u-picker>
			</view>
			<view class="row row-bottom">
				<view class="left">车牌号</view>
				<input v-if="!isPC" v-model='detailData.carNo' class="right-bottom" placeholder="请输入车牌号"></input>
				<view @click='slectCarNo' v-if="isPC">{{detailData.carNo}}</view>
			</view>
		</view>
		<view class="content2">
			<view class="left">上传磅单</view>
			<upload class="upload" ref="upload" :action="action" :max-size="maxSize" :max-count="1"
				:size-type="['compressed']" @on-success="getImgUrl" @on-error="onError" @on-remove="onRemove"
				@on-uploaded="isAdd = true" :before-upload="filterFileType" @on-progress="onProgress"></upload>
		</view>
		<view class="content1">
			<view class="title">
				质检数据（选填）
			</view>
			<view class="row row-bottom">
				<view class="left">质检员</view>
				<input v-model='detailData.warehouseInOutDetail.qualityInspector' class="right-bottom"
					placeholder="输入质检员姓名"></input>
			</view>
			<view class="row row-bottom">
				<view class="left">水分（%）</view>
				<input v-model='detailData.warehouseInOutDetail.waterContent' class="right-bottom"
					placeholder="输入水分占比"></input>
			</view>
			<view class="row row-bottom">
				<view class="left">容重（克/升）</view>
				<input v-model='detailData.warehouseInOutDetail.bulkDensity' class="right-bottom"
					placeholder="输入容重"></input>
			</view>
			<view class="row row-bottom">
				<view class="left">热损伤（%）</view>
				<input v-model='detailData.warehouseInOutDetail.jiaorenli' class="right-bottom"
					placeholder="输入热损伤占比"></input>
			</view>
			<view class="row row-bottom">
				<view class="left">杂质（%）</view>
				<input v-model='detailData.warehouseInOutDetail.impurity' class="right-bottom"
					placeholder="输入杂质占比"></input>
			</view>
			<view class="row row-bottom">
				<view class="left">霉变粒（%）</view>
				<input v-model='detailData.warehouseInOutDetail.mildewGrain' class="right-bottom"
					placeholder="输入霉变粒占比"></input>
			</view>
			<view class="row row-bottom">
				<view class="left">不完善粒（%）</view>
				<input v-model='detailData.warehouseInOutDetail.imperfectGrain' class="right-bottom"
					placeholder="输入不完善粒占比"></input>
			</view>
		</view>
		<u-toast ref="uToast" />
		<view class="bottom-btn">
			<u-button type="primary" class="submit" hover-class="none" @click="submit(1)">暂存</u-button>
			<u-button type="primary" class="submit" hover-class="none" @click="submit(2)">提交</u-button>
		</view>
	</view>
</template>

<script>
	import upload from '@/components/upload.vue';
	import helper from '@/common/helper.js';
	import {
		mapState
	} from 'vuex';
	export default {
		components: {
			upload
		},
		data() {
			return {
				show: false,
				show1: false,
				show2: false,
				show3: false,
				show4: false,
				show5: false,
				show6: false,
				show7: false,
				isPC: true,
				contractNoList: [{
					contractNo: ""
				}],
				typeList: [{
						type: "干粮"
					},
					{
						type: "潮粮"
					}
				],
				pjList: [{
						type: "一等品"
					},
					{
						type: "二等品"
					},
					{
						type: "三等品"
					},
					{
						type: "等外"
					}
				],
				handlerList: [{
						name: "张三"
					},
					{
						name: "二等"
					},
					{
						name: "三等"
					},
					{
						name: "等外"
					}
				],
				warehousingTypeList: [],
				action: this.$uploadUrl,
				maxSize: 50 * 1024 * 1024, //限制文件大小 50M
				btnLoading: false, //防止重复点击
				isAdd: true,
				warehouseName: '',
				binNumber: '',
				detailData: {
					contractNo: "请选择合同编号或移库任务编号",
					type: "请选择类型",
					grade: "请输入品级",
					agent: "请选择经办人",
					inOutDate: "请选择出库日期",
					inOutType: "请选择出库类型",
					warehouseInOutDetail: {},
					gradeKey: "",
				},
				params: {
					year: true,
					month: true,
					day: true,
					hour: true,
					minute: true,
					second: true
				},
				inOutDate1: "",
				netWeight: ""
			}
		},
		computed: {
			...mapState(['hasLogin', 'userInfo'])
		},
		watch: {
			netWeight: function(v) {
				this.pureWeightCount()
			},
		},
		onLoad(options) {
			this.id = options.id
			this.cangId = options.cangId
		},
		onShow() {
			this.binNumber = helper.erpWarehouse.binNumber
			this.warehouseName = helper.erpWarehouse.warehouseName
			this.detailData.goodsName = uni.getStorageSync('erpContractNo').goodsName;
			this.detailData.contractNo = uni.getStorageSync('erpContractNo').contractNo;
			this.detailData.goodsNameKey = uni.getStorageSync('erpContractNo').goodsNameKey;
			if (!uni.getStorageSync('erpContractNo').tranCarInfoList) uni.getStorageSync('erpContractNo')
				.tranCarInfoList = []
			if (!this.detailData.contractNo) {
				this.detailData.contractNo = '请选择合同编号'
			} else {
				if(uni.getStorageSync('erpContractNo').tranCarInfoList){
				if (uni.getStorageSync('erpContractNo').tranCarInfoList.length == 0) {
					this.isPC = false
				}}
			}
			if (!this.detailData.goodsName) {
				this.detailData.goodsName = '货名'
			}
			//出库类型
			this.outWarehouse()
			//经办人
			this.handler()
		},
		methods: {
			//计算纯重
			pureWeightCount() {
				if (this.netWeight && this.detailData.buckleWeightRatio && this.detailData.solidGrainWater && this
					.detailData.tidalGrainWater) {
					// 纯重=净重x[100-(潮粮水分-干粮水分)x扣重比]/100
					this.detailData.pureWeight = 100 - (this.detailData.tidalGrainWater - this.detailData
						.solidGrainWater) * this.netWeight * this.detailData.buckleWeightRatio / 100
					this.detailData.pureWeight = this.detailData.pureWeight.toFixed(3)
				}
			},
			outWarehouse() {
				this.$api.doRequest('get', '/commonSysParameter/getInfo', {
					constId: 'CON6'
				}).then(res => {
					this.warehousingTypeList = res.data.data
				})
			},
			handler() {
				this.$api.doRequest('get', '/staff/query/getStaffListByCompIdAndWarehouseId', {
					compId: helper.erpWarehouse.compId,
					warehouseId: helper.erpWarehouse.warehouseId
				}).then(res => {
					this.handlerList = res.data.data
				})
			},
			contractNopicker(e) {

			},
			typePicker(e) {
				this.detailData.type = this.typeList[e].type
			},
			pjPicker(e) {
				this.detailData.gradeKey = e[0]
				this.detailData.grade = this.pjList[e].type
			},
			handlerPicker(e) {
				this.detailData.agentKey = e[0]
				this.detailData.agent = this.handlerList[e].staffName
			},
			dateChange(e) {
				this.detailData.inOutDate = e.year + "-" + e.month + "-" + e.day
				this.inOutDate1 = e.year + "-" + e.month + "-" + e.day + " " + e.hour + ":" + e.minute
			},
			warehousingTypePicker(e) {
				this.detailData.inOutType = this.warehousingTypeList[e].constValue
			},
			filterFileType(index, lists) {
				if (lists[index].fileType != 'jpg' && lists[index].fileType != 'png' && lists[index].fileType != 'gif') {
					lists.splice(index, 1);
					// 当前文件不支持
					uni.showModal({
						title: '暂不支持当前图片类型',
						showCancel: false
					});
				} else {
					this.isAdd = false;
				}
			},
			calculate() {
				if (this.detailData.grossWeight && this.detailData.tare) {
					this.netWeight = this.detailData.grossWeight - this.detailData.tare
				}
			},
			getImgUrl(res) {
				this.detailData.addressUrl = res
				console.log(res)
				console.log('------------res-----------')
			},
			onError(error) {
				alert(error)
				console.log('------------error-----------')
				console.log(error)
			},
			binNumberpicker(e) {
				this.detailData.binNumber = this.positionList[e[0]].binNumber
			},
			// getWeighingManagement() {
			// 	this.$api.doRequest('get', '/weighingManagement/getWeighingManagement', {
			// 		id: this.id
			// 	}).then(res => {
			// 		if (res.data.code == 200) {
			// 			this.detailData = res.data.data
			// 		}
			// 	})
			// 	this.$api.doRequest('get', '/warehouseBaseInfo/getWarehouse', {
			// 		id: this.cangId
			// 	}).then(res => {
			// 		if (res.data.code == 200) {
			// 			this.positionList = res.data.data.warehousePositionInfoList
			// 		}
			// 	})
			// 	this.$api.doRequest('get', '/warehouseBaseInfo/selectContractNoList', {
			// 		compId: '',
			// 		flag: 5
			// 	}).then(res => {
			// 		if (res.data.code == 200) {
			// 			this.contractNoList = res.data.data
			// 		}
			// 	})
			// },
			onProgress(e) {},
			onRemove(index) {},
			submit(num) {
				if (!this.detailData.grossWeight) {
					this.$api.msg('毛重不能为空')
					return
				}
				if (!this.detailData.grossWeight) {
					this.$api.msg('毛重不能为空')
					return
				}
				if (isNaN(this.detailData.grossWeight) ||
					(String(this.detailData.grossWeight).indexOf('.') != -1 &&
						String(this.detailData.grossWeight).length -
						(String(this.detailData.grossWeight).indexOf('.') + 1) >
						1) ||
					this.detailData.grossWeight < 1 ||
					this.detailData.grossWeight > 100000
				) {
					this.$api.msg('毛重输入错误！')
					return
				}
				this.detailData.baseId = helper.erpWarehouse.warehouseId
				this.detailData.warehouseName = helper.erpWarehouse.warehouseName
				this.detailData.positionId = helper.erpWarehouse.positionId
				this.detailData.binNumber = this.binNumber
				this.detailData.goodsNameKey = uni.getStorageSync('erpContractNo').goodsNameKey;
				this.detailData.compId = helper.erpWarehouse.compId
				this.detailData.netWeight = this.netWeight
				this.detailData.inOutFlag = 1
				this.detailData.taskType = "出库任务"
				this.detailData.pcFlag = 0
				let title = ""
				if (num == 1) {
					this.detailData.statusFlag = 1
					this.detailData.inOutDate = this.inOutDate1
					this.detailData.backOffice = this.userInfo.userName
					this.detailData.backOfficeId = this.userInfo.id
					title = "暂存成功"
				} else if (num == 2) {
					this.detailData.statusFlag = 3
					title = "提交成功"
				}
				let that = this
				uni.showModal({
					content: "确定提交出库信息?",
					success(res) {
						if (res.confirm) {
							that.$api.doRequest('post', '/warehouseInOutInfo/InOutWarehouse',
								that.detailData).then(res => {
								if (res.data.code == 200) {
									that.$api.msg(title)
									uni.navigateBack()
								}
							})
						}
					}
				})
			},
			slectcontractNo() {
				uni.navigateTo({
					url: '/pages/erp/warehousing/selectContractNo?flag=' + 5
				})
			},
			slectCarNo() {
				uni.navigateTo({
					url: '/pages/erp/exWarehousing/selectCarNo'
				})
			},
		}
	}
</script>

<style scoped lang="scss">
	uni-page-body {
		overflow: hidden;
	}

	.warp {
		margin: 10rpx;
		padding: 20rpx 20rpx 140rpx 20rpx;

		.top {
			display: flex;
			margin-bottom: 20rpx;

			.top-left {
				margin-right: 20rpx;
			}
		}
	}

	.content,
	.content1,
	.content2 {
		border-radius: 20rpx;
		background: white;
		padding: 20rpx;

		.title {
			font-size: 28rpx;
			font-weight: 600;
			color: #333333;
		}

		.row {
			display: flex;
			justify-content: space-between;
			border-bottom: 1px solid #EEEEEE;
			padding: 21rpx 0;

			.right,
			input {
				font-size: 28rpx;
				color: #333333;
			}
		}

		.row-bottom {

			// border: 0;
			.right-bottom {
				width: 300rpx;
				text-align: right;
			}
		}
	}

	.content1 {
		margin-top: 20rpx;
	}

	.content2 {
		margin-top: 10px;
		// display: flex;
		align-items: center;

		.left {
			margin-right: 20px;
		}
	}

	.submit {
		width: 40%;
		background: #22C572;
		border-radius: 10rpx;
	}

	.edit-btn {
		background: #22C572;
		width: 100rpx;
		height: 50rpx;
		margin: 0;
		color: white;
	}

	.has-btn {
		align-items: center;
	}

	.bottom-btn {
		width: 92%;
		position: fixed;
		bottom: 40rpx;
		display: flex;
		z-index: 2;
	}
</style>
