<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'
						@handleScan='handleScan'>
					</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'
						:reuseNum='item.quality.reuseNum'>
					</reuseTurnoverBom>



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

		<view class="bottom-wrapper">
			<view class="btn_box" @click="save">一键报工</view>
		</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)
					}

				})
				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() {



				let _this = this
				uni.scanCode({
					success: function(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

				}


				this.count = 0;
				this.List[0].quality.sampleList.forEach(e => {
					if (Number(e.num) > 0 && Number(e.num) != NaN) {
						this.count += Number(e.num);
					}

				})

				if (this.List[0].quality.sampleNum != this.count) {
					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>