<template>
	<view class="content-box">
		<uni-nav-bar fixed="true" statusBar="true" left-icon="back" :title="title" background-color="#F7F9FA" color="#000"
			@clickLeft="back" right-icon="scan" @clickRight="HandlScanCode">
		</uni-nav-bar>
		<view class="list_box">
			<u-list @scrolltolower="scrolltolower">
				<view class="card_box" v-for="(item, index) in List" :key="index">

					<workOrderBom :item='item' v-if='item' @handleScan='handleWordScan'></workOrderBom>


					<turnoverBom v-if='item.turnover.length != 0' :list='item.turnover' :wordItem='item' pattern='job'>
					</turnoverBom>

					<view class="operate_box rx-sc">
						<u-button size="small" class="u-reset-button" type="success" @click="handAdd">手动添加</u-button>
					</view>



					<sampleBom :item='item.quality' v-if='item.quality' :isDetails='false' :turnoverList='item.turnover'
						:paramList='paramList' @showReuseTurnover='showReuseTurnover = true'></sampleBom>

              
					<reuseTurnoverBom v-if='showReuseTurnover' :list='item.turnover' :wordItem='item' :sampleList='item.quality && item.quality.sampleList'
						:reuseNum='item.quality.reuseNum'>
					</reuseTurnoverBom>



				</view>
			</u-list>
		</view>

		<view class="bottom-wrapper">
			<view class="btn_box" @click="save">一键报工</view>
		</view>


	</view>
</template>

<script>
import {
	workorderList,
	scanLedger,
	sampleTurnoverReview,
	paramByTaskId
} from '@/api/pda/workOrder.js'


import workOrderBom from '../../feeding/components/workOrderBom.vue'
import sampleBom from '../components/sampleBom.vue'
import turnoverBom from '../components/turnoverBom.vue'
import reuseTurnoverBom from '../components/reuseTurnoverBom.vue'
import {
	batchSave
} from '@/api/pda/feeding.js'

export default {
	components: {
		workOrderBom,
		sampleBom,
		turnoverBom,
		reuseTurnoverBom
	},
	data() {
		return {
			title: null,
			id: null,
			taskId: null,
			List: [],
			count: 0,

			isLastJob: true,

			paramList: [],
			showReuseTurnover: false

		}
	},

	onLoad(options) {

		this.title = options.taskName ? options.taskName : '质检'
		this.id = options.workOrderId
		this.taskId = options.taskId
		this.getList()




	},
	onShow() {
		uni.$off("setSelectList");
		uni.$on("setSelectList", (selectList, id) => {

			let turnover = [] //周转车
			selectList.forEach(f => {
				if (f.rootCategoryLevelId == 7) {
					// turnover = turnover.concat(f)
					turnover = [f]
				}

			})
			this.$set(this.List[0], 'turnover', turnover)
			this.$forceUpdate()





		});
	},
	methods: {

		getList() {
			workorderList({
				ids: [this.id],
				taskId: this.taskId
			}).then(res => {
				

				this.List = res.map(m => {
					m.workOrderId = m.id
					if (m.quality) {
						m.quality['sampleList'] = []
						m['reuseTurnover'] = [],
						m.quality['reuseNum'] = 0
					} else {
						this.isLastJob = false
					}


					if (Object.prototype.hasOwnProperty.call(m, 'turnover')) {
						m['turnover'] = []
						this.getSampleTurnover()
					}

					this.getParam(res[0].currentTaskDiagram.sourceTaskId)

					m.feedType = 2
					delete m.id
					return {
						...m
					}
				})
			})

		},


		getParam(sourceTaskId) {
			paramByTaskId(sourceTaskId).then(res => {
				this.paramList = res
			})
		},


		getSampleTurnover() {
			let param = {
				workOrderId: this.id,
				taskId: this.taskId
			}
			sampleTurnoverReview(param).then(res => {
				this.List[0].turnover = res
			})
		},

		scrolltolower() { },

		handleWordScan() {
			uni.showToast({
				icon: 'none',
				title: '不支持换工单'
			})
		},

		// 相机扫码
		HandlScanCode() {
			uni.scanCode({
				success: (res) => {
					this.scanItAllData(res.result)
				}
			})

		},


		scanItAllData(result) {
			scanLedger(result).then(res => {
				if (res.length == 1 && res[0].rootCategoryLevelId == 7) { // 周转车

					let isFals = this.List[0].turnover.some(m => m.code == result)
					if (isFals) {
						uni.showToast({
							title: '周转车已存在',
							icon: 'none'
						})
						return false
					}
					this.List[0].turnover.push(res[0])
					this.$forceUpdate()

				}
			})


		},

		save() {



			
			if (!this.isLastJob) {
				uni.showToast({
					icon: 'none',
					title: '上道工序暂未报工'
				})
				return false

			}


			if (this.List[0].quality.sampleNum != this.List[0].quality.sampleList.length) {
				uni.showToast({
					icon: 'none',
					title: '处置数量和取样数量对应不上'
				})

				return false
			}



			batchSave(this.List).then(res => {
				uni.navigateBack()

			})
		},


		handAdd() {
			let param = {
				turnover: this.List[0].turnover
			}
			const storageKey = Date.now() + "";

			uni.setStorageSync(storageKey, param || {});
			uni.navigateTo({
				url: `/pages/pda/workOrder/search/index?storageKey=${storageKey}&isType=job&taskId=${this.taskId}`
			})
		},

	}
}
</script>


<style lang="scss" scoped>
.content-box {
	height: 100vh;
	overflow: hidden;
	display: flex;
	flex-direction: column;

}

.list_box {
	flex: 1;
	overflow: hidden;
	padding: 4rpx 0;

	.u-list {
		height: 100% !important;
	}

	.card_box {
		padding: 16rpx;
	}



}

.bottom-wrapper {
	.btn_box {
		width: 750rpx;
		height: 88rpx;
		line-height: 88rpx;
		background: $theme-color;
		text-align: center;
		font-size: 36rpx;
		font-style: normal;
		font-weight: 400;
		color: #fff;
	}
}


.operate_box {
	padding: 10rpx 160rpx;

	/deep/ .u-button {
		width: 160rpx;
	}
}
</style>