<template>
	<div>
		<uni-nav-bar title="退仓复核-详情" :status-bar="true" background-color="#3F92F9" color="#FFF">
			<view slot="left">
				<u-icon name="account-fill" color="#FFF" size="35"></u-icon>
				<span style="padding: 0 5rpx;color: #FFFFFF;">{{ userInfo.name }}</span>
			</view>
			<view slot="right" @tap="$utils.openNew(`/pages/warehouse/review`)">
				<span style="color: #FFFFFF;">返回</span>
			</view>
		</uni-nav-bar>
		<ul class="review-ul">
			<li v-for="(i,index) in dtlData.checkDetailsInfoList" :key="i.materialId">
				<view class="title">
					物料名称:{{i.materialName}}
				</view>
				<view class="lists">
					<view class="list-box" v-for="(j,jindex) in i.stockBackDetailsList" :key="i.id">
						<view class="col" style="width:15%">
							卷{{jindex + 1}}
						</view>
						<view class="col" style="padding: 0 10rpx;">
							{{j.materialMeters}}
						</view style="padding: 0 10rpx;">
						<view class="col" style="min-height:10rpx;width:25%" @click="openRfidModal(j.rfid)">
							{{j.rfid ? '*' + j.rfid.slice(16) : ' '}}
						</view>
						<view class="col">
							<button @click="sacnFn(index,jindex)">扫描</button>
						</view>
						<view class="col">
							<button @click="tagFn(index,jindex)">生成</button>
						</view>
					</view>
					<view class="footer-btn-warp" style="margin-top: 20rpx;">
						<button class="cancel" style="color:#333" @click="dtlDataListDlt(index)">删除</button>
						<button class="upload" style="color:#333" @click="listUpdate(i,index)">修改</button>
					</view>
				</view>
			</li>
		</ul>
		<view class="footer-btn-warp" style="margin-top: 20rpx;">
			<button class="cancel" style="background-color:red" @tap="$utils.back()">取消</button>
			<button class="upload" style="background-color:blue" @click="submitCheck">确定</button>
		</view>
		<uni-popup ref="addModal" type="bottom">
			<view class="addModal-content">
				<view class="select-warp">
					<view class="label">
						选择面料
					</view>
					<view class="show-text" @click="openSelectModal">
						{{!selectMaterialDtl.materialName ? '请选择物料' : selectMaterialDtl.materialName }}
					</view>
					<view class="add-icon">
						+
					</view>
				</view>
				<view style="height:40rpx;border-bottom: 1px solid #ccc;">

				</view>
				<view class="ul">
					<view class="li" v-for="(i,index) in selectMaterialDtl.stockBackDetailsList">
						<view class="delete-icon" @click="materialMetersListDelete(index)">
							-
						</view>
						<view class="li-label">
							卷{{index + 1}}
						</view>
						<view class="input">

							<input type="number" :value="i.materialMeters" @input="((e)=>inputChange(e,index))">
						</view>
					</view>

				</view>
				<!-- <button class="add-btn" @click="addList">在添加一卷</button> -->
				<view class="footer-btn-warp" style="margin-top: 20rpx;">
					<button class="cancel" style="background-color:red" @click="closeaddModal">取消</button>
					<button class="upload" style="background-color:blue" @click="closeaddModal">确定</button>
				</view>
			</view>
		</uni-popup>
		<uni-popup ref="popup2" type="bottom">
			<u-tabs-swiper ref="uTabs" :list="list" :current="current" @change="tabsChange" :is-scroll="false"
				swiperWidth="750"></u-tabs-swiper>
			<view class="search-box" v-if="current == 0">
				<ul>
					<li @click="selectMaterialList(i)" v-for="i in pickingToday" :key="i.id">
						{{i.name}}
					</li>
					<view class="no-data" v-if="pickingToday.length == 0">
						暂无今日领取面料数据
					</view>
				</ul>
			</view>
			<view class="search-box" v-if="current == 1">
				<view class="input-warp">
					<u-input v-model="req.search" :searchIcon="true" :border="true" placeholder="请输入物料名称或编码"
						@search="getSelectMaterialList" class="search-input" />
				</view>
				<ul style="height:60vh;overflow-y: scroll;">
					<li @click="selectMaterialList(i)" v-for="i in materialData" :key="i.id">
						{{i.name}}
					</li>
					<view class="no-data" v-if="materialData.length == 0">
						暂无数据
					</view>
				</ul>
			</view>
		</uni-popup>
		<uni-popup ref="alertDialog" type="dialog">
			<view  style="color:#fff;font-size: 34rpx;">
				{{showModalId}}
			</view>
		</uni-popup>
	</div>
</template>

<script>
	import scan from './scan'
	export default {
		name: "xx",
		components: {
			scan
		},
		data() {
			return {
				dtlData: {},
				isEdit: false,
				swiperCurrent: 0,
				current: 0,
				list: [{
					name: '今日领取的面料'
				}, {
					name: '选择其他'
				}],
				userInfo: this.$storage.getStorageSync('userInfo'),
				form: {
					operatorId: this.$storage.getStorageSync('userInfo').id,
					backDetailList: [],
				},
				req: {
					userId: this.$storage.getStorageSync('userInfo').id,
					pageNum: 1,
					pageSize: 30,
					search: null,
					materialCode: null,
				},
				pickingToday: [],
				materialData: [],
				selectMaterialDtl: {},
				updateIndex: null,
				showModalId: null,
			}
		},
		onLoad(option) {
			const v = this
			uni.getStorage({
				key: 'reviewDtl',
				success: function(res) {
					console.log(res)
					v.dtlData = res.data
				},
				fail(err) {
					v.getDtl(option.id)
				}
			});

		},
		created() {
			this.selectList()
			this.getSelectMaterialList()
		},
		methods: {
			dialogClose(){
				this.$refs.alertDialog.close()
			},
			openRfidModal(id) {
				this.showModalId = id
				this.$refs.alertDialog.open()
			},
			closeaddModal() {
				this.$refs.addModal.close()
			},
			submitCheck() {
				uni.showLoading({
					title: '正在提交'
				})
				const v = this
				var rfidItems = []
				for (var i = 0; i < v.dtlData.checkDetailsInfoList.length; i++) {
					const element = v.dtlData.checkDetailsInfoList[i]
					for (var j = 0; j < element.stockBackDetailsList.length; j++) {
						const jelement = element.stockBackDetailsList[j]
						if (!jelement.rfid) {
							this.$msg.showToast('请扫描或生成所有面料!')
							return
						} else {
							rfidItems.push(jelement.rfid)
						}
					}
				}
				const obj = {
					"userId": v.req.userId,
					"plcCode": "1",
					"rfidItems": rfidItems,
					"stockChangeType": "16",
					"remark": "退仓复合"
				}
				
				uni.request({
					url: 'http://120.79.80.64:8050' + '/cloudApi/stockBack/submitCheck',
					method: 'POST',
					header: {
						'Content-Type': 'application/json',
					},
					data: v.dtlData,
					success: res => {
						console.log(res)
						if (res.data.code == 200) {
							this.$http.HandleMacStockInOut(obj).then(res => {
								console.log(res)
								if (res.code === 0) {
									this.$msg.showToast(res.msg || '操作成功!')
									this.timer = setTimeout(() => {
										this.$utils.openNew(`/pages/warehouse/review`)
									}, 2000)
								}
							})

						}
						uni.hideLoading()
					},
					fail() {
						uni.hideLoading()
					}
				});
			},
			tagFn(index, jindex) {
				const v = this
				v.dtlData.index = index
				v.dtlData.jindex = jindex
				uni.setStorage({
					key: 'reviewDtl',
					data: v.dtlData,
					success: function() {
						v.$utils.open('/pages/warehouse/tag')
					}
				});
			},
			sacnFn(index, jindex) {
				const v = this
				v.dtlData.index = index
				v.dtlData.jindex = jindex
				uni.setStorage({
					key: 'reviewDtl',
					data: v.dtlData,
					success: function() {
						v.$utils.open('/pages/warehouse/scan')
					}
				});
			},
			getDtl(_id) {
				console.log(_id)
				const v = this
				uni.request({
					url: 'http://120.79.80.64:8050' + '/cloudApi/stockBack/checkDetails',
					method: 'POST',
					header: {
						'Content-Type': 'application/json',
					},
					data: {
						stockBackId: _id
					},
					success: res => {
						this.dtlData = res.data.data
						v.dtlData.checkerId = this.$storage.getStorageSync('userInfo').id
						console.log(this.dtlData)
					},
				});
			},
			submitBack() {
				const v = this
				console.log(v.form)
				uni.request({
					url: 'http://120.79.80.64:8050' + '/cloudApi/stockBack/submitBack',
					method: 'POST',
					header: {
						'Content-Type': 'application/json',
					},
					data: v.form,
					success: res => {
						console.log(res)
						if (res.data.code == 200) {
							this.$msg.showToast('操作成功!')
							this.$utils.back()
						}
					},
				});

			},
			dtlDataListDlt(index) {
				this.dtlData.checkDetailsInfoList.splice(index, 1)
			},
			materialMetersListDelete(index) {
				this.dtlData.checkDetailsInfoList[this.updateIndex].stockBackDetailsList.splice(index, 1)
			},
			listUpdate(i, index) {
				console.log(i)
				this.selectMaterialDtl = i
				this.updateIndex = index
				this.$refs.addModal.open()
			},
			listDelete(index) {
				this.form.backDetailList.splice(index, 1)
			},
			pushList() {
				if (this.updateIndex === null) {
					this.form.backDetailList.push(this.selectMaterialDtl)
				} else {
					this.form.backDetailList[this.updateIndex] = this.selectMaterialDtl
				}

				this.selectMaterialDtl = {}
				this.$refs.addModal.close()
			},
			inputChange(e, index) {

				this.selectMaterialDtl.stockBackDetailsList[index].materialMeters = e.detail.value
				console.log(this.selectMaterialDtl)
			},
			tabsChange(index) {
				this.swiperCurrent = index;
				this.current = index;
			},
			addList() {
				this.selectMaterialDtl.materialMetersList.push({
					"id": "1565274397500047361",
					"stockBackId": "1565274397445521410",
					"materialId": "01.002.0043",
					"materialMeters": 0,
					"oldMaterialMeters": 0,
					"rfid": ""
				})
			},
			selectMaterialList(i) {
				const v = this
				this.dtlData.checkDetailsInfoList[this.updateIndex].materialId = i.code
				this.dtlData.checkDetailsInfoList[this.updateIndex].materialName = i.name
				console.log(i)
				console.log(this.updateIndex)
			},
			openSelectModal() {

				this.$refs.popup2.open()
			},

			getSelectMaterialList() {
				const v = this
				uni.request({
					url: 'http://120.79.80.64:8050' + '/cloudApi/material/selectList',
					method: 'POST',
					header: {
						'Content-Type': 'application/json',
					},
					data: v.req,
					success: res => {
						console.log(res)
						this.materialData = res.data.data
					},
				});
			},
			selectList() {
				const v = this
				uni.request({
					url: 'http://120.79.80.64:8050' + '/cloudApi/stockBack/getPickingToday',
					method: 'POST',
					header: {
						'Content-Type': 'application/json',
					},
					data: v.req,
					success: res => {
						console.log(res)
						this.pickingToday = res.data.data
					},
				});
			},
			openModal() {
				this.$refs.addModal.open('bottom')
			},
		},
	}
</script>

<style scoped lang="less">
	.review-ul {
		padding: 0 20rpx;

		li {
			background-color: #fff;
			border-radius: 6rpx;
			list-style: none;
			margin-top: 20rpx;

			.title {
				height: 100rpx;
				line-height: 100rpx;
				font-size: 30rpx;
				border-bottom: 1px solid #dcdcdc;
				padding: 0 20rpx;
				overflow: hidden;
			}

			.lists {
				.list-box {
					overflow: hidden;
					line-height: 80rpx;

					.col {
						float: left;
						width: 20%;
						text-align: center;
						overflow: hidden;

						button {
							width: 80%;

						}
					}
				}
			}
		}
	}

	.footer-btn-warp {
		display: flex;
		padding: 20rpx;

		button {
			width: 48%;
			color: #fff;
		}
	}

	.search-box {
		.input-warp {
			padding: 40rpx;
		}

		.search-input {}

		background-color: #fff;

		text-align: center;

		ul {
			li {
				padding: 25rpx 30rpx;
				border-bottom: 1rpx solid #dcdcdc;
				list-style: none;
			}
		}

		.no-data {
			padding: 100rpx;
		}
	}

	.addModal-content {
		background-color: #fff;
		border-top-left-radius: 20rpx;
		border-top-right-radius: 20rpx;
		padding-top: 40rpx;

		.footer-btn-warp {
			display: flex;
			padding: 20rpx;

			button {
				width: 48%;
				color: #fff;
			}
		}

		.ul {

			.li {
				display: flex;
				justify-content: space-between;
				height: 80rpx;
				line-height: 80rpx;
				margin-top: 20rpx;

				.input {
					width: 70%;

					input {
						border: 1rpx solid #dcdcdc;
						height: 78rpx;
						line-height: 78rpx;
						padding: 0 20rpx;
					}
				}
			}

			.delete-icon {
				height: 80rpx;
				width: 80rpx;
				text-align: center;
				line-height: 80rpx;
				font-size: 40rpx;
				color: #fff;
				background-color: #ccc;
			}
		}

		.select-warp {
			height: 80rpx;
			line-height: 80rpx;
			padding: 0 20rpx;
			box-sizing: border-box;
			display: flex;
			justify-content: space-between;

			.show-text {
				width: 70%;
				border: 1rpx solid #dcdcdc;
				padding: 0 20rpx;
			}

			.add-icon {
				height: 80rpx;
				width: 80rpx;
				text-align: center;
				line-height: 80rpx;
				font-size: 40rpx;
				color: #fff;
				background-color: #ccc;
			}
		}
	}

	.ul {
		.li {
			background-color: #fff;
			border-radius: 5rpx;
			margin: 20rpx 20rpx 0;

			.label {
				height: 100rpx;
				line-height: 100rpx;
				font-weight: 30rpx;
				border-bottom: 1rpx solid #ccc;
				padding: 0 20rpx;

			}

			.lists {
				border-bottom: 1rpx solid #ccc;

				.list-box {
					height: 100rpx;
					line-height: 100rpx;
					display: flex;
					justify-content: space-between;
					padding: 0 20rpx;
				}
			}

			.list-btn-warp {
				display: flex;
				padding: 20rpx;

				button {
					width: 48%;
				}
			}
		}
	}

	.add-header {
		height: 100rpx;
		line-height: 100rpx;
		font-size: 30rpx;
		font-weight: bold;
		overflow: hidden;
		padding: 20rpx;

		button {
			width: 200rpx;
			color: #fff;
			background-color: red;
			float: right;
			margin: 14rpx 0;
		}
	}
</style>