<template>
	<view class="page-container uni-column">
		<view class="carrier-info uni-column">
			<view class="carrier-code uni-row">
				<text>箱号</text>
				<text style="margin-left: 24rpx;">{{processInspecion.lot.allCarrierName}}</text>
			</view>
			<view class="info-row uni-row">
				<view class="label">图号</view>
				<view class="value">{{ processInspecion.lot.drawingNumber }}</view>
			</view>
			<view class="info-row uni-row">
				<view class="label">批次号</view>
				<view class="value">{{ processInspecion.lot.lotCode }}</view>
			</view>
			<view class="info-row uni-row">
				<view class="label">工艺版本</view>
				<view class="value">{{ processInspecion.lot.technologyVersion }}</view>
			</view>
			<view class="info-row uni-row">
				<view class="label">产品描述</view>
				<view class="value">{{processInspecion.lot. productDescription }}</view>
			</view>
			<view class="info-row uni-row">
				<view class="label">当前工序</view>
				<view class="value">{{ processInspecion.lot.processAlias }}</view>
			</view>
			<view class="info-row uni-row">
				<view class="label">操作者</view>
				<view class="value">{{ processInspecion.lot.nickName }}</view>
			</view>
			<view class="info-row uni-row">
				<view class="label">设备</view>
				<view class="value">{{ processInspecion.lot.equipmentDetailCode }}</view>
			</view>
			<view class="info-row uni-row">
				<view class="label">检查载具</view>
				<view class="value">{{ processInspecion.lot.inspectionCarrierCode }}
					{{ processInspecion.isInspectionCarrierChanged == 1 ? '(已解绑)' : ''}}
				</view>
			</view>
			<view class="info-row uni-row">
				<view class="drawing-btn" @click="handleDrawingMenu">图纸信息</view>
			</view>
		</view>

		<!-- 废品信息 -->
		<view class="title unfit-title uni-row">
			<text>检查信息</text>
		</view>
		<view class="unfit-container">
			<view class="unfit-item-container uni-column" v-for="(item, index) in unfitInfos" :key="index">
			<view class="resu uni-row">
				<view class="label">检查标准</view>
				<view class="value" style="margin-left:16rpx;width: 400rpx;">{{ item.checkStandard }}</view>
			</view>
			
			<!-- <view class="result uni-row">
				<view class="label">检查结果</view>
				<input v-model="item.checkResult" placeholder="请输入检查结果" />
				<view class="label" style="text-align: right; padding-right: 16rpx;">数量
				</view>
				<input class="number" type="number" @blur="rejectNumberChange" v-model="item.rejectNum"
					placeholder="" />
			</view> -->
			<view class="resu uni-row">
				<view class="label">检查结果</view>
				<input v-if="editable()" :disabled="true" v-model="item.checkResult"  maxlength="50" />
				<view v-else class="value">{{ item.checkResult }}</view>
			</view>
			<view class="resu uni-row">
				<view class="label">超差范围</view>
				<input v-if="editable()" :disabled="true" v-model="item.exceedLimits"  maxlength="50" />
				<view v-else class="value">{{ item.exceedLimits }}</view>
			</view>
			<view class="resu uni-row">
				<view :class="!editable() ? 'label' : ''">检查量</view>
				<input v-if="editable()" :disabled="true" class="number" type="number" 
					v-model="item.examiningNum"  />
				<view v-else class="number value">{{ item.examiningNum }}</view>
				<view :class="!editable() ? 'label' : ''">不良品量</view>
				<input v-if="editable()" :disabled="true" class="number" type="number" 
					v-model="item.disqualificationNum"  />
				<view v-else class="value">{{ item.disqualificationNum }}</view>
			</view>
			</view>
		</view>

		<!-- 咨询部分 -->
		<view class="title unfit-title uni-row">
			<text>咨询</text>
		</view>
		<view class="consultation-container uni-column">
			<view class="consultation-item-container" v-for="(item, index) in consultations" :key="index">
				<view class="question uni-column">
					<view class="label uni-row">
						<text>问题描述</text>
						<text :style="selectType(item)">{{item.consultDepartment == 0?'技术':'品管'}} {{ selectText(item) }}</text>
					</view>
					<view class="content">{{ item.content }}</view>
				</view>
				<!-- 不需要暂时注释 -->
				<!-- 	<view v-if="item.answer !== ''" class="answer"
					style="margin-top: 24rpx; padding-top: 24rpx; border-top: 1px dotted #aaaaaa;">
					<view class="label">回复</view>
					<view class="content">{{ item.answer }}</view>
				</view> -->
			</view>
		</view>

		<!-- 报工部分 -->
		<view class="daywork-container">
			<view class="result uni-row">
				<view class="label" style="margin-top: 20rpx; margin-right: 10rpx;">交检状态</view>
				<uni-data-checkbox disabled="true" style="margin-top: 20rpx;" v-model="processInspecion.status"
					:localdata="range"></uni-data-checkbox>
			</view>
			<view class="remark uni-row">
				<view class="label">备注</view>
				<textarea disabled="true"  v-model="processInspecion.remark" />
			</view>

			<view class="btns-container uni-row">
				<view class="finished-btn"  v-if="processInspecion.adoptStatus != 1" style="background-color: #1684fc;" @click="handlePass">通过</view>
				<view class="finished-btn" v-if="processInspecion.adoptStatus != 2" style="margin-left: 16rpx;" @click="handleFailed">不通过</view>
			</view>

		</view>
	</view>
</template>

<script setup>
	import {
		ref,
		onMounted,
		getCurrentInstance

	} from 'vue'
	import {
		onLoad,
		onReady,
		onUnload,
		onShow
	} from '@dcloudio/uni-app'
	import {
		store
	} from '@/store/index.js'
	import {
		updateAdoptStatus,
		selectInspecion
	} from '@/api/business/processInspection.js'
	import {
		getInspectionStandardsList
	} from '@/api/business/inspectionStandards.js'
	const lot = ref({})
	const isEventTriggered = ref(false); // 创建一个标志位
	const unfitInfos = ref([]) //废品信息
	const consultations = ref([]) //咨询信息
	const flag = ref(false)
	// 创建一个引用来存储最后一次请求的时间戳
	const lastRequestTimestamp = ref(0);
	const processInspecion = ref({
		remark: "",
		rejectNum: 0,
		examiningNum: 0,
		status: 0,
	})
	const initStatus = ref(0)
	const editable = () => {
		return true
	}

	const consul = [{
		value: 0,
		text: "待确认",
		type: "color: #fcab53"
	}, {
		value: 2,
		text: "合格",
		type: "color: #55ff7f"
	}, {
		value: 1,
		text: "不合格",
		type: "color: #ff0c2c"
	}]

	const range = [{
		value: 0,
		text: "待确认",
		type: "color: #fcab53"
	}, {
		value: 1,
		text: "合格",
		type: "color: #55ff7f"
	}, {
		value: 2,
		text: "不合格",
		type: "color: #ff0c2c"
	}]

	/***************************** 页面生命周期函数 *****************************/


	onShow(() => {
		console.log(store.processInspection)
		console.log(flag.value)
			uni.showLoading({
				title: '加载中'
			});
			processInspecion.value = store.processInspection
			selectInspecion(processInspecion.value).then(res => { 
				if (res.code == 200) {
					processInspecion.value = res.data;
					unfitInfos.value = res.data.processInspectionDetails;
					initStatus.value = res.data.status
					consultations.value = res.data.dayworkItemConsults;
					console.log("res", res);
					console.log(processInspecion.value)
					uni.hideLoading();
					// getInspecion();
				} else {
					uni.showToast({
						icon: 'none',
						title: res.msg,
						duration: 2000
					})
				}
			});
	})
	function getOringicalList() {
		console.log(processInspecion.value)
			//查询该产品，当前工序，当前检查绑定的检查
				getInspectionStandardsList({
					productId:processInspecion.value.lot.productId,
					processId:processInspecion.value.lot.processId,
					inspectionCode:"deliveryInspection"
					}).then(res =>{
						unfitInfos.value = res.rows.map(item => {
						    // 映射新的数组，包含 inspectionStandardsId 和 checkStandard 属性
						    return {
						      inspectionStandardsId: item.id, // 从 item 中获取 id
						      checkStandard: item.standard // 从 item 中获取 standard
						    };
						  });
			})
	}

	/***************************** 定义了一些方法 *****************************/
	//咨询文本
	function selectText(item) {
		for (var i = 0; i < consul.length; i++) {
			if (item.status == consul[i].value) {
				return consul[i].text
			}
		}
	} 
	function handleDrawingMenu(){
		  // 对 technologicalProcessDetailId 进行URL编码
		  var encodedId = encodeURIComponent(processInspecion.value.lot.productId);
		  var enTechnologicalProcessId = encodeURIComponent(processInspecion.value.lot.technologicalProcessId);
		  var enprocessCode = encodeURIComponent(processInspecion.value.lot.processCode);
		  var encodeCode = encodeURIComponent(processInspecion.value.lot.lotCode);
		  var enProcessAlias = encodeURIComponent(processInspecion.value.lot.processAlias);
		  // 构建查询参数字符串
		  var queryParam = `param1=${encodedId}&param2=${encodeCode}&param3=${enprocessCode}&param4=${enTechnologicalProcessId}&param5=${enProcessAlias}`;
		
		  // 使用模板字符串构建完整的URL
		  var navigateUrl = `/pages/drawingMenu/index?${queryParam}`;
		
		  // 导航到指定页面
		  uni.navigateTo({
			url: navigateUrl
		  });
	}

	//查询咨询列表
	function getInspecion() {

		processInspecion.value = store.processInspection
		selectInspecion(processInspecion.value).then(res => {
			console.log("咨询", res);
			if (res.code == 200) {
				console.log("res", res);
			} else {
				uni.showToast({
					icon: 'none',
					title: res.msg,
					duration: 2000
				})
			}
		});
	}
	//交检审核通过
	function handlePass() {
		let data = processInspecion.value
		data.adoptStatus = 1
		updateAdoptStatus(data).then(res =>{
			let pages = getCurrentPages();
			let index = 0
			for (let i = 0; i < pages.length; i++) {
			
				if (pages[i].$page.fullPath == "/pages/deliveryExamine/index") {
			
					index = pages.length - i - 1;
				}
			}
			console.log("index", index);
			uni.navigateBack({
				delta: index
			});
		})
	}
	//交检不通过
	function handleFailed() {
		let data = processInspecion.value
		data.adoptStatus = 2
			updateAdoptStatus(data).then(res =>{
				let pages = getCurrentPages();
				let index = 0
				for (let i = 0; i < pages.length; i++) {
				
					if (pages[i].$page.fullPath == "/pages/deliveryExamine/index") {
				
						index = pages.length - i - 1;
					}
				}
				console.log("index", index);
				uni.navigateBack({
					delta: index
				});
			})
	}





	//咨询样式
	function selectType(item) {
		for (var i = 0; i < consul.length; i++) {
			if (item.status == consul[i].value) {
				return consul[i].type
			}
		}
	}




</script>

<style lang="scss">
	.page-container {
		// height: 100%;
		background-color: #ececec;
		font-size: 28rpx;

		>.title {
			font-weight: 700;
			margin: 24rpx 16rpx;
		}
	}

	.carrier-info {
		margin: 32rpx 16rpx 0 16rpx;
		padding: 24rpx;
		background-color: #ffffff;
		border-radius: 8rpx;

		.carrier-code {
			font-size: 32rpx;
			font-weight: 700;
		}

		.info-row {
			margin-top: 16rpx;
			color: #767676;

			.label {
				width: 160rpx;
			}
			.drawing-btn {
				padding: 12rpx 32rpx;
				background-color: #0055ff;
				color: #ffffff;
				border-radius: 12rpx;
				margin-left: auto;
				font-size: 28rpx;
			}

			.value {
				flex: 1;

				textarea {
					flex: 1;
					border: 1px solid #888888;
					box-sizing: border-box;
					padding: 16rpx;
				}
			}
		}
	}

	.unfit-title {
		margin-bottom: 24rpx;
		justify-content: space-between;
		align-items: center;

		text {
			font-size: 28rpx;
			font-weight: 700;
		}

		.add-btn {
			padding: 12rpx 32rpx;
			background-color: #a4adb3;
			color: #ffffff;
			border-radius: 12rpx;
			font-size: 24rpx;
		}
	}

	.unfit-container {
		padding: 24rpx;
		margin: 0 16rpx;
		background-color: #ffffff;
		border-radius: 12rpx;

		.unfit-item-container {
			position: relative;

			>* {
				margin-bottom: 24rpx;
			}

			.title {
				font-weight: 700;
				justify-content: space-between;
				align-items: center;

				image {
					width: 40rpx;
					height: 40rpx;
				}
			}

			.standard {}

			.resu {
				width: 100%;
				align-items: center;

				input {
					margin-left: 20rpx;
					width: 200rpx;
					height: 56rpx;
					flex: 1;
					border: 1px solid #9f9f9f;
					font-size: 28rpx;
				}
			}

			.result {
				align-items: center;
				border-bottom: 1px solid #9f9f9f;
				padding-bottom: 32rpx;

				.label {
					flex: 1;
				}

				input {
					width: 280rpx;
					height: 56rpx;
					border: 1px solid #9f9f9f;
					font-size: 28rpx;

					&.number {
						width: 104rpx;
						text-align: center;
					}
				}
			}
		}

		.unfit-item-container:last-child {
			.result {
				border-bottom: none;
				padding-bottom: 0;
			}
		}
	}

	.consultation-container {
		margin: 0 16rpx;
		padding: 24rpx;
		background-color: #ffffff;
		border-radius: 8rpx;

		.consultation-item-container {
			margin-bottom: 24rpx;
			border-bottom: 2px solid #888888;
			padding-bottom: 24rpx;
		}

		.consultation-item-container:last-child {
			margin-bottom: 0;
			border-bottom: 0;
			padding-bottom: 0;
		}

		.question,
		.answer {
			.label {
				justify-content: space-between;
				margin-bottom: 16rpx;
				font-weight: 700;
			}

			.content {
				line-height: 40rpx;
			}
		}

		.answer {
			margin-top: 24rpx;
		}
	}

	.daywork-container {
		margin-top: 24rpx;
		padding: 24rpx;
		background-color: #ffffff;
		border: 1px solid #bcbcbc;

		.result {
			align-items: center;

			.label {
				width: 112rpx;
			}

			input {
				flex: 1;
				height: 56rpx;
				border: 1px solid #9f9f9f;
				font-size: 28rpx;
				text-align: center;
			}
		}

		.remark {
			margin-top: 24rpx;

			.label {
				width: 112rpx;
			}

			textarea {
				flex: 1;
				border: 1px solid #9f9f9f;
				height: 168rpx;
			}
		}

		.btns-container {
			margin-top: 24rpx;

			.finished-btn {
				display: flex;
				flex: 1;
				height: 80rpx;
				background-color: #fc6565;
				color: #ffffff;
				text-align: center;
				justify-content: center;
				align-items: center;
				border-radius: 8rpx;
			}

			.question-btn {
				width: 80rpx;
				align-items: flex-end;

				image {
					width: 48rpx;
					height: 48rpx;
				}

				text {
					font-size: 24rpx;
				}
			}
		}
	}
</style>