<template>
	<view class="page-wraper">
		<view class="" v-if='detailSource.subList.length==0'>
			<com-blank-view @goScan='goScan(true)'></com-blank-view>
		</view>
		<view v-else class="page-wraper">
			<view class="page-main">
				<comIssueRequestCreator ref="issueRequest" :dataContent="detailSource">
				</comIssueRequestCreator>
				<button class="btn_add" @click="goScan(false)">+去添加</button>
			</view>

			<div class="btn_bottom">
				<view class="" style="display: flex;flex-direction: row;">
					<view class="">
						<button class="btn_commit" hover-class="btn_commit_after" @click="submit()">提交</button>
					</view>
				</view>
			</div>

			<com-scan-issue-pack ref="comScanIssuePack">
			</com-scan-issue-pack>
			<comMessage ref="comMessage"></comMessage>
		</view>
	</view>
	<com-issue-request-popup ref="comIssueRequestPopup" @confirm='requestConfirm'></com-issue-request-popup>
</template>

<script>
	import {
		issueRequestSubmit,
		issueRecordSubmit
	} from '@/api/request2.js';

	import {
		goHome,
		updateTitle,
		getRemoveOption,
		getISODateTime
	} from '@/common/basic.js';

	import {
		getDataSource
	} from '@/pages/issue/js/issue.js';

	import comBlankView from '@/mycomponents/common/comBlankView.vue'
	import comIssueRequestPopup from '@/pages/issue/coms/comIssueRequestPopup.vue'
	import jobDetailPopup from '@/mycomponents/job/jobDetailPopup.vue'
	import comScanIssuePack from '@/pages/issue/coms/comScanIssuePack.vue'
	import comMessage from '@/mycomponents/common/comMessage.vue'
	import comIssueRequestCreator from '@/pages/issue/coms/comIssueRequestCreator.vue'

	export default {
		name: 'issueRequestSubmit',
		components: {
			comBlankView,
			comIssueRequestPopup,
			jobDetailPopup,
			comScanIssuePack,
			comMessage,
			comIssueRequestCreator
		},
		data() {
			return {
				jobContent: {}, //任务内容
				subList: [], //接口返回的任务subList
				detailSource: {
					subList: []
				}, //绑定在页面上的数据源
				detailOptions: [],
				scanOptions: [],
				requestList: [], //需求信息

			}
		},
		mounted() {
			this.goScan(true)
		},
		onLoad(option) {


		},
		methods: {
			goScan(editPosition) {
				this.$refs.comIssueRequestPopup.openRequestPopup(editPosition);
			},

			//确定需求信息
			requestConfirm(action, item) {

				if (this.detailSource.subList.length == 0) {
					this.detailSource = {
						workshopCode: item.workshopCode,
						workShopName: item.workShopName,
						productionLineCode: item.productionLineCode,
						productionLineName: item.productionLineName,
						workStationCode: item.workStationCode,
						workStationName: item.workStationName, //工位
						totalQty: 0,
						subList: []
					}
					var subItem = {
						productionLineCode: item.productionLineCode,
						workStationCode: item.workStationCode,
						itemCode: item.itemCode,
						itemName: item.itemName,
						qty: item.qty,
						uom: item.uom
					}
					this.detailSource.subList.push(subItem)
				} else {
					var result = this.detailSource.subList.filter(res => {
						if (res.itemCode == item.itemCode) {
							return res
						}
					})

					//没有添加数据
					if (result.length == 0) {
						var subItem = {
							productionLineCode: item.productionLineCode,
							workStationCode: item.workStationCode,
							itemCode: item.itemCode,
							itemName: item.itemName,
							qty: item.qty,
							uom: item.uom
						}

						this.detailSource.subList.push(subItem)

					} else {
						//有了更新数据
						result[0].qty += item.qty

					}
				}
				this.caclcQty();
				if (this.$refs.issueRequest != undefined) {
					this.$refs.issueRequest.update()
				}
			},

			caclcQty() {
				var totalQty = 0;
				this.detailSource.subList.forEach(res => {
					totalQty += res.qty
				})
				this.detailSource.totalQty = totalQty;
			},


			setParams() {
				return this.detailSource
			},
			submit() {
				uni.showLoading({
					title: "提交中....",
					mask: true
				});
				var params = this.setParams()
				console.log("提交参数", JSON.stringify(params));
				issueRequestSubmit(params).then(res => {
					uni.hideLoading()
					if (res.data) {
						this.showCommitSuccessMessage("提交成功<br>生成发料申请" + res.data)
					} else {
						this.showErrorMessage("提交失败[" + res.msg + "]")
					}
				}).catch(error => {
					uni.hideLoading()
					this.showErrorMessage(error)
				})
			},
			showCommitSuccessMessage(hint) {
				this.$refs.comMessage.showSuccessMessage(hint, res => {
					uni.navigateTo({
						url: './issueRequest'
					})
				})
			},
			showErrorMessage(message) {
				this.$refs.comMessage.showErrorMessage(message, res => {
					if (res) {}
				});
			},
		}
	}
</script>

<style>
</style>