<template>
	<view class="checkSubmit">
		<view class="form-box" style="margin:0 30rpx">
			<uni-forms ref="baseForm" label-position="left">
				<view class="commons-title">
					接班人员
				</view>
				<uni-forms-item label="接班人员" required>
					<picker @change="bindPickerChange2" :range="userList" range-key="nickName">
						<view class="" style="text-align: right;display: flex;justify-content: space-between;padding-top:20rpx">
							<view class="" style="color:#999">
								{{successorName || '请选择接班人员'}}
							</view>
							 <uni-icons type="forward" size="20"></uni-icons>
						</view>
					</picker>
				</uni-forms-item>
				<view class="commons-title">
					转班明细
				</view>
				<view style="border-bottom: 1rpx solid #000;" v-for="(i,index) in formData" :key="i.qrCode">
					<uni-forms-item label="物料名称" required>
						<view>
							<view class="" style="text-align: right;display: flex;justify-content: space-between;padding-top:20rpx">
								<view class="" style="color:#999"  @click="openSelectQd(index)">
									{{i.qrCodeName || '请选择物料或者扫描二维码'}}
								</view>
								<uni-icons type="scan"  @click="scanCode(index)" size="20"></uni-icons>
								<uni-icons  @click="openSelectQd(index)" type="forward" size="20"></uni-icons>
							</view>
						</view>
					</uni-forms-item>
					<view style="width:90%">
						<uni-forms-item   label="称重结果" required>
							<uni-easyinput  v-model="i.weighingResults" />
							<span style="position: absolute;right:-80rpx;top:10px">kg</span>
						</uni-forms-item>
					</view>
					<uni-forms-item label="有无外包装" required>
						<switch  style="transform:scale(0.8)" @change="(e)=>switchChange(e,index,'outerPackaging')" />
					</uni-forms-item>
					<uni-forms-item label="有无卷芯" required>
						<switch style="transform:scale(0.8)" @change="(e)=>switchChange(e,index,'convolution')" />
					</uni-forms-item>
				</view>
			</uni-forms>
			<button size="mini" type="default" style="width: 500rpx;margin: 20rpx auto;display: block;"
				@click="add()">
				添加明细
			</button>
		</view>
		<view class="submit-box">
			<view class="" style="line-height: 80rpx;text-align: center;">
				本次转班：{{formData.length}} 件
			</view>
			<button @click="addShift" style="background: #0066CC;color:#fff;margin-bottom: 30rpx;">提交</button>
			
		</view>
		<uni-popup ref="popup" type="top">
			<view class="search-box">
				<uni-search-bar @confirm="getMaterial" v-model="req.materialName" @cancel="reload">
				</uni-search-bar>
				<ul>
					<li @click="selectMaterialList(i)" v-for="i in materialList" :key="i.id">
						{{i.name}}
					</li>
				</ul>
			</view>
		</uni-popup>
	</view>
</template>

<script>
	import {
		getInfo
	} from "@/util/api.js";
	import Vue from 'vue'
	import htzImageUpload from '@/components/htz-image-upload/htz-image-upload.vue'
	import {
		dateFormat,
		getTime
	} from '../../util/uitl.js'
	export default {
		components: {
			htzImageUpload,
		},
		data() {
			return {
				req:{
					materialName:null, 
				},
				formData: [],
				userList:[],
				materialList:[],
				successorName:null,
				successorId:null,
				userData:null,
				materialIndex:null,
			}
		},
		onLoad(option) {
			const v = this
			v.getUser()
			uni.getStorage({
				key: "userInfo",
				success(_data) {
					v.userData = _data.data
				},
				fail() {
			
				}
			})
			//v.getMaterial()
		},
		methods: {
			selectMaterialList(i){
				const v = this
				console.log(i)
				v.formData[v.materialIndex].qrCode = null
				v.formData[v.materialIndex].qrCodeName = i.name
				v.formData[v.materialIndex].quantity = null
				v.formData[v.materialIndex].materialId = i.id
				console.log(v.formData)
			},
			addShift(){
				const v = this
				console.log(v.formData,123123123)
				if(!v.successorId){
					uni.showToast({
						icon:'none',
						title: '请选择交接人员',
						duration: 2000
					});
					return
				}
				if(v.formData.length == 0){
					uni.showToast({
						icon:'none',
						title: '请添加明细',
						duration: 2000
					});
					return
				}
				for (var i = 0; i < v.formData.length; i++) {
					const element = v.formData[i]
					element.shiftHandoverPersonneId = v.userData.id
					element.successorId = v.successorId
					element.count = v.formData.length
					console.log(element.weighingResults)
					if(element.weighingResults == 0 || !element.weighingResults){
						uni.showToast({
							icon:'none',
							title: '请填写物料剩余数量',
							duration: 2000
						});
						return
					}
					if(!element.materialId){
						uni.showToast({
							icon:'none',
							title: '请选择物料',
							duration: 2000
						});
						return
					}
				}
				v.$post('/mgr/shiftChange/addShift',v.formData).then(res=>{
					if(res.code == 200){
						uni.showToast({
							title: '提交成功，跳转中！'
						})
						setTimeout(()=>{
							wx.reLaunch({
								url: '/pages/home'
							})
						},500)
					}
				})
			},
			
			add(){
				const v = this
				v.formData.push({
					shiftHandoverPersonneId:null,
					successorId:null,
					qrCode:null,
					qrCodeName:null,
					materialId:null,
					quantity:null,
					convolution:0,
					outerPackaging:0,
					weighingResults:0,
				})
			},
			scanCode(index) {
				const v = this
				uni.scanCode({
					onlyFromCamera: true,
					success: function(res) {
						uni.showToast({
							icon: "loading",
							title: '加载中',
							duration: 1500
						});
						v.$post('/wx/common/gerMaterialInfoByQrcode', {
							qrCode: res.result
						}).then(res => {
							if(res.code == 200){
								v.formData[index].qrCode = res.data.qrCode
								v.formData[index].qrCodeName = res.data.materialName
								v.formData[index].quantity = res.data.quantity
								v.formData[index].materialId = res.data.materialId
							}
						})
					}
				});
			},
			//打开搜索
			openSelectQd(index){
				const v = this
				v.materialIndex = index
				this.$refs.popup.open('top')
			},
			reload(){
				this.req.keyword = null
				this.getMaterial()
			},
			//物料信息
			getMaterial(){
				const v = this
				v.$post('/wx/common/getMaterial',v.req).then(res=>{
					if(res.code == 200){
						v.materialList = res.data
					}
				})
			},
			//用户信息
			getUser(){
				const v = this
				v.$post('/wx/common/getUser',v.formData).then(res=>{
					if(res.code == 200){
						v.userList = res.data
					}
				})
				
			},
			switchChange(e,index,key){
				const v = this
				e.detail.value ? v.formData[index][key] = 1 :  v.formData[index][key] = 0
				console.log(v.formData)
			},
			//选择人员
			bindPickerChange2(e){
				const v = this
				console.log(v.userList[e.detail.value])
				v.successorName = v.userList[e.detail.value].nickName
				v.successorId = v.userList[e.detail.value].userId
			},
		},
	}
</script>

<style lang="less">
	.checkSubmit {
		.search-box{
			background-color: #fff;
			ul{
				li{
					height: 80rpx;
					line-height: 80rpx;
					padding: 0 30rpx;
					border-bottom: 1rpx solid #dcdcdc;
				}
			}
		}
		.submit-box {

			padding: 0 30rpx;
		}

		.dtl {
			padding: 30rpx;
			border-bottom: 1rpx solid #dcdcdc;
			font-size: 26rpx;
			line-height: 40rpx;
		}

		.addQrcode-list {
			height: 80rpx;
			display: flex;
			justify-content: space-between;
			padding: 15rpx;
			border-bottom: 1rpx solid #dcdcdc;
			font-size: 24rpx;

			.fl {
				display: flex;

				.code {
					margin-right: 20rpx;
				}
			}

			.fr {
				line-height: 80rpx;
			}
		}
	}

	.popup-input-warp {
		padding: 30rpx 40rpx;
	}


	.txt {
		margin-bottom: 20rpx;
	}

	.imglist {
		display: flex;
		flex-wrap: wrap;
	}

	.imglist .item {
		width: 150rpx;
		height: 150rpx;
		margin-right: 22rpx;
		margin-bottom: 10rpx;
		position: relative;
	}

	.imglist .last-item {
		width: 150rpx;
		height: 150rpx;
		text-align: center;
		line-height: 146rpx;
		border: 2rpx dashed #8B97A9;
		box-sizing: border-box;
	}

	.imglist .item image {
		width: 100%;
		height: 100%;
	}

	.imglist .item .delete {
		width: 30rpx;
		height: 30rpx;
		position: absolute;
		top: -25rpx;
		right: -12rpx;
		font-size: 40rpx;
		font-weight: bold;
	}
</style>
