<template>
	<view>
		<u-navbar back-text="返回" title="系统盘点" :background="background"></u-navbar>
		<u-form ref="testForm">
			<u-form-item :border-bottom="false">
				<p>盘点单号:</p>
				<u-select v-model="dlistShow" mode="single-column" value-name="id" :list="dlist"
					@confirm="selCheckPlanNo" confirm-text="确认选择" />
				<u-input :focus="focusShipRequest" :border="true" v-model="CheckPlanNo" placeholder="请输入盘点单号"
					@confirm="serachMaterialList" />
				<u-button @click="selectCheckPlanNo" type="primary" size="mini">选择单号</u-button>
			</u-form-item>
			<u-form-item :border-bottom="false">
				<p>货位:</p>
				<u-input :border="true" v-model="locationName" placeholder="请扫描货位" :focus="focusBarCode"
					@confirm="confirmLocationName" :readonly="locationRead" />
				<u-button @click="clearLocationName" type="primary" size="mini">货位清空</u-button>
			</u-form-item>
			<u-form-item :border-bottom="false">
				<p>条码:</p>
				<u-input :border="true" v-model="barCode" placeholder="请扫描条码" :focus="focusBarCode"
					@confirm="confirmBarcode" />
			</u-form-item>
		</u-form>
		<uni-table ref="ConfirmTable" border stripe type="false" height="650" style="width: 100%">
			<uni-tr>
				<uni-th align="center">批次</uni-th>
				<uni-th align="center">系统货位</uni-th>
				<uni-th align="center">实际货位</uni-th>
				<uni-th align="center">货位异动</uni-th>
				<uni-th align="center">系统仓库</uni-th>
				<uni-th align="center">实际仓库</uni-th>
				<uni-th align="center">仓库异动</uni-th>
				<uni-th align="center">系统数量</uni-th>
				<uni-th align="center">实际数量</uni-th>
				<uni-th align="center">数量异动</uni-th>
				<uni-th align="center">品名</uni-th>
				<uni-th align="center">盘点结果</uni-th>
				<uni-th align="center">条码</uni-th>
			</uni-tr>
			<uni-tr v-for="(item, index) in BoxInfoList" :key="index"
				:style="{ backgroundColor: item.CHECKRESULT != '未盘点' ? 'yellowgreen' : 'white' }">
				<!-- :style="getStyle(index)"-->
				<!--:style="{ backgroundColor: item.color === 0 ? 'white' : 'blue' }" -->

				<uni-td align="center">{{ item.CHARGE}}</uni-td>
				<uni-td align="center">{{ item.SYSLOCATION}}</uni-td>
				<uni-td align="center">{{ item.ACTLOCATION}}</uni-td>
				<uni-td align="center">{{ item.LOCATIONSTATE1}}</uni-td>
				<uni-td align="center">{{ item.ERPLOCATION}}</uni-td>
				<uni-td align="center">{{ item.ERPLOCATION1 }}</uni-td>
				<uni-td align="center">{{ item.LOCATIONSTATE2 }}</uni-td>
				<uni-td align="center">{{ item.MATERIALQUANTITY1 }}</uni-td>
				<uni-td align="center">{{ item.MATERIALQUANTITY }}</uni-td>
				<uni-td align="center">{{ item.QTYSTATE }}</uni-td>
				<uni-td align="center">{{ item.DESC_CN }}</uni-td>
				<uni-td align="center">{{ item.CHECKRESULT }}</uni-td>
				<uni-td align="center">{{ item.MATERIALPACKINGNAME}}</uni-td>
			</uni-tr>
		</uni-table>

<!-- 		<u-form>
			<u-form-item>
				<u-button @click="ConfirmButton" type="primary" size="mini" style="background-color: green;width: 80%;">
					盘点确认</u-button>
			</u-form-item>
		</u-form> -->

	</view>
</template>

<script>
	import {msToDate} from "../../../utils/utils.js"
	export default {
		data() {
			return {
				pageNum: 1, // 页数
				pageSize: 5, // 条数
				total: 0, //每页总数
				dlist: [], //选择内容
				dlistShow: false, //是否显示选择框				
				BoxInfoList: [],
				CheckPlanNo: "",
				shipRequestType: "",
				locationName: "",
				erpFactory: "",
				erpLocation: "",
				barCode: "",
				locationRead: false,
				background: {
					backgroundImage: 'linear-gradient(45deg, rgb(28, 187, 180), rgb(141, 198, 63))'
				},
				focusBarCode: false, //焦点是否被选中
				focusShipRequest: true, //默认焦点在单号
			}

		},

		methods: {
			tableRowStyleName({
				row
			}) {
				if (row.CHECKRESULT != '未盘点') {
					return 'background-color: yellowgreen;';
				}
			},
			selCheckPlanNo(e) {
				this.CheckPlanNo = e[0].value;
				this.serachMaterialList();
			},
			clearLocationName() {
				this.locationName = "";
				this.erpFactory = "";
				this.erpLocation = "";
			},
			confirmLocationName() {

				this.$MyRequest('/storage/getLocationName', {
					storageName: this.locationName
				}).then(res => {
					if (res.data.success) {
						var _Arr = res.data.resultObj;
						this.locationName = _Arr[0].STORAGENAME;
						this.erpFactory = _Arr[0].ERPFACTORY;
						this.erpLocation = _Arr[0].ERPLOCATION;
						this.locationRead = true;
					} else {
						this.locationName = ''
						this.$showMessage(res.data.message)
					}
					this.focusBarCode = true
					this.focusShipRequest = false
				}).catch(err => {
					this.$showMessage(err)
				});
			},
			selectCheckPlanNo() {
				this.dlist = [];
				this.$MyRequest('/invoice/getCheckPlanList', {
					checkPlanNo: this.CheckPlanNo
				}).then(res => {
					console.log("************************************")
					console.log(res.data)
					if (res.data.success) {
						console.log("************************************")
						console.log(res.data.resultObj.length)
						for (var i = 0; i <= res.data.resultObj.length; i++) {
							console.log(res.data.resultObj[i].CHECKPLANNAME)
							this.dlist.push({
								id: res.data.resultObj[i].CHECKPLANNAME,
								label: res.data.resultObj[i].CHECKPLANNAME
							});
							console.log(this.dlist);
							this.dlistShow = true;
						}

					} else {
						this.$showMessage(res.data.message)
					}

				}).catch(err => {
					this.$showMessage(err)
				})
			},
			serachMaterialList() {
				let siteName = uni.getStorageSync('siteName')
				console.log(siteName)
				if (siteName == null || siteName == '') {
					this.$showMessage("登录失败，请退出重新登入")
					return
				}
				this.$MyRequest('/invoice/getCheckPlanInfo', {
					CheckPlanNo: this.CheckPlanNo,
					SITENAME: siteName,
					pageSize: this.pageSize,
					pageNum: this.pageNum
				}).then(res => {
					if (res.data.success) {
						console.log(res.data)
						this.BoxInfoList = res.data.resultObj //接数据
					}
					this.focusBarCode = true
					this.focusShipRequest = false
				}).catch(err => {
					this.$showMessage(err)
				})
			},

			confirmBarcode() {
				let siteName = uni.getStorageSync('siteName')
				console.log(siteName)
				if (siteName == null || siteName == '') {
					this.$showMessage("登录失败，请退出重新登入")
					return
				}
				this.$MyRequest('/checkPlan/PDACreateCheckRecord', {
					 ACTLOCATION : this.locationName,
					 CHECKPLANNAME : this.CheckPlanNo,
					 MATERIALPACKINGNAME : this.barCode,
					 SITENAME : uni.getStorageSync('siteName'),
					 CHECKTIMEKEY : msToDate(new Date()).hasTime,
					 USER : uni.getStorageSync('userid')
				}).then(res => {
					this.serachMaterialList()
					this.focusBarCode = true
					this.focusShipRequest = false
				}).catch(err => {
					this.$showMessage(err)
				})


			},
			ConfirmButton() {
				let list = this.BoxInfoList;
				if (list <= 0) {
					this.$showMessage("不存在需要提交的信息")
					return;
				}
				for (var i = 0; i < list.length; ++i) {
					var judge = this.BoxInfoList[i]['ISCHECK']
					if (judge != "Y") {
						this.$showMessage("存在未审核确认的信息")
						return;
					}
				}
				this.$MyRequest('/invoice/ConfirmCheckPlanDetail', {
					CheckPlanNo: this.CheckPlanNo
				}).then(res => {
					this.$showMessage(res.data.message) //执行出库后返回的消息
					this.BoxInfoList = null; //清空条码，继续扫
					this.focusShipRequest = true //获取焦点，好继续扫描
				}).catch(err => {
					this.BoxInfoList = null; //请空条码
					this.focusShipRequest = true
					this.$showMessage(err)
				})
			}


		}
	}
</script>
