<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">
				<comDeliverRequestCreator ref="deliverRequest" :dataContent="detailSource">
				</comDeliverRequestCreator>
				<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>
			<comMessage ref="comMessage"></comMessage>
		</view>
	</view>
	<comDeliverRequestPopup ref="comDeliverRequestPopup" @confirm='requestConfirm'></comDeliverRequestPopup>
</template>

<script>
	import {
		deliverRequestSubmit,
		issueRecordSubmit
	} from '@/api/request2.js';
	
	import {
		calc
	} from '@/common/calc.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 comDeliverRequestPopup from '@/pages/deliver/coms/comDeliverRequestPopup.vue'
	import jobDetailPopup from '@/mycomponents/job/jobDetailPopup.vue'
	import comDeliverRequestCreator from '@/pages/deliver/coms/comDeliverRequestCreator.vue'

	export default {
		name: 'issueRequestSubmit',
		components: {
			comBlankView,
			comDeliverRequestPopup,
			jobDetailPopup,
			comDeliverRequestCreator
		},
		data() {
			return {
				subList: [], //接口返回的任务subList
				detailSource: {
					subList: []
				}, //绑定在页面上的数据源
				detailOptions: [],
				scanOptions: [],
				fromType: "",
				dataContent: {}

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

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

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

				if (this.detailSource.subList.length == 0) {
					this.detailSource = {
						customerCode: item.customerCode,
						customerName: item.customerName,
						totalQty: 0,
						subList: []
					}
					var subItem = {
						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 &&
							res.productionLineCode == item.productionLineCode &&
							res.workStationCode == item.workStationCode) {
							return res
						}
					})

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

						this.detailSource.subList.push(subItem)

					} else {
						//有了更新数据
						result[0].qty = calc.add(result[0].qty,item.qty)

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

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


			setParams() {
				return this.detailSource
			},
			submit() {
				uni.showLoading({
					title: "提交中....",
					mask: true
				});

				var params = this.setRequestParams()
				console.log("提交参数", JSON.stringify(params));
				deliverRequestSubmit(params).then(res => {
					uni.hideLoading()
					if (res.data) {
						this.showCommitSuccessMessage("提交成功<br>生成成品发货申请<br>" + res.data)
					} else {
						this.showErrorMessage("提交失败[" + res.msg + "]")
					}
				}).catch(error => {
					uni.hideLoading()
					this.showErrorMessage(error)
				})
			},

			setRequestParams() {
				let requestContent = {};
				requestContent.customerCode = this.detailSource.customerCode;
				var subList = []
				this.detailSource.subList.forEach(detail => {
					subList.push(detail)
				})
				requestContent.subList = subList;
				return requestContent;
			},
			showCommitSuccessMessage(hint) {
				this.$refs.comMessage.showSuccessMessage(hint, res => {
					uni.navigateTo({
						url: './deliverRequest'
					})
				})
			},
			showErrorMessage(message) {
				this.$refs.comMessage.showErrorMessage(message, res => {
					if (res) {}
				});
			},
		}
	}
</script>

<style>
</style>
