<template>
	<view class="replenishment-manualPrint-wrap">
		<view class="replenishment-manualPrint-body">
			<view class="part-list">
				<!-- 补货产品 -->
				<partList :list="partList" title="补货产品" model="checkbox" fromPage="manualPrint" ref="partList" noDataText="暂无产品" @allChecked="allCheckedCallback"></partList>
			</view>
		</view>
		<view class="replenishment-manualPrint-footer">
			<view>
				<u-checkbox size="40" @change="allCheckeChange" v-model="allChecked" shape="circle">{{allChecked?'取消全选':'全选'}}</u-checkbox>
			</view>
			<view>
				<u-button @click="handleSubmit" shape="circle" :custom-style="{background:$config('primaryColor')}" type="primary">开始打印</u-button>
			</view>
		</view>
	</view>
</template>

<script>
	import { shelfReplenishDetail, shelfReplenishDetailList, shelfReplenishPrintSign } from '@/api/shelfReplenish'
	import partList from '@/pages/common/partList.vue'
	export default {
		components: { partList },
		data() {
			return {
				replenishBillSn: '',
				basicInfoData:null,
				partList: [],
				allChecked: false,
			}
		},
		onReady() {
			uni.setNavigationBarColor({
				frontColor: '#ffffff',
				backgroundColor: this.$config('primaryColor')
			})
		},
		onLoad(option) {
			this.replenishBillSn = option.sn
			this.getDetail()
			this.getPartList()
		},
		methods: {
			// 查询详情
			getDetail(){
				shelfReplenishDetail({ sn: this.replenishBillSn }).then(res => {
					if(res.status == 200){
						this.basicInfoData = res.data || null
					}else{
						this.basicInfoData = null
					}
				})
			},
			// 查询列表
			getPartList(){
				const _this = this
				shelfReplenishDetailList({ replenishBillSn: this.replenishBillSn }).then(res => {
					if(res.status == 200 && res.data){
						res.data.map(item =>{
							item.confirmQty = item.confirmQty ? Number(item.confirmQty) : 0
							item.printQty = item.confirmQty ? Number(item.confirmQty) : 0
						})
						this.partList = res.data || []
					}else{
						this.partList = []
					}
				})
			},
			// 开始打印
			handleSubmit(){
				const result =this.$refs.partList.getAllChecked()
				if(result.length){
					const arr = []
					result.map((item, index) => {
					  if (item.printQty || item.printQty == 0) {
					    arr.push({ productSn: item.productSn, printQty: item.printQty })
					  }
					})
					const params = {
					  replenishBillSn: this.replenishBillSn,
					  detailList: arr
					}
					shelfReplenishPrintSign(params).then(res => {
						if(res.status == 200){
							uni.$emit("refreshBL")
							uni.navigateBack()
						}
						this.toashMsg(res.message)
					})
				}else{
					this.toashMsg("请选择产品！")
				}
			},
			// 全选
			allCheckeChange(e){
				this.$refs.partList.allSelect(e.value)
			},
			allCheckedCallback(val){
				this.allChecked = val
			},
		}
	}
</script>

<style lang="less">
.replenishment-manualPrint-wrap{
	position: relative;
	width: 100%;
	height: 100%;
	overflow: hidden;
	padding-bottom: 102upx;
	.replenishment-manualPrint-body{
		> view{
			padding: 10rpx 25rpx;
			background-color: #fff;
			margin-bottom: 20rpx;
			border-radius: 25rpx;
			box-shadow: 2rpx 3rpx 5rpx #eee;
		}
	}
	.replenishment-manualPrint-footer{
		padding: 10upx 32upx 12upx;
		background-color: #fff;
		position: fixed;
		left: 0;
		bottom: 0;
		width: 100%;
		box-shadow: 3px 1px 7px #eee;
		display: flex;
		align-items: center;
		justify-content: space-between;
	}
}
</style>
