<template>
	<view class="page-container uni-column">
		<view class="consultation-container uni-column">
			<view class="title uni-row">咨询</view>
			<view class="info-row uni-row">
				<view class="label">批次号</view>
				<view class="value">{{ lot.lotCode }}</view>
			</view>
			<view class="info-row uni-row">
				<view class="label">技术负责人</view>
				<view class="value">{{ lot.product.technicianName }}</view>
			</view>
			<view class="info-row uni-row">
				<view class="label">产品描述</view>
				<view class="value">{{ lot.productDescription }}</view>
			</view>
			<view class="info-row uni-row">
				<view class="label">咨询部门</view>
				<view class="value" >
					<checkbox-group @change="checkboxChange"  style="margin-top: 16px;">
							<view v-for="(item, index) in consulteList" :key="item.value">
								<view class="uni-row checkbox-item" >
									<view style="flex-grow: 1;font-size: 16px;">{{item.label}}</view>
									<view class="checkboxHidden">
										<checkbox :value="item.value" :checked="selected.includes(item.value)" color="#0000ff"
											class="checkbox"  />
									</view>
								</view>
								<view v-if="index!=consulteList.length -1" class='middle'>
									<view class='segment'></view>
									<view class='segment'></view>
								</view>
							</view>
						</checkbox-group>
			</view>
			</view>
			<view class="info-row uni-column">
				<view class="label" style="margin-bottom: 16rpx;">问题描述</view>
				<view class="value uni-row">
					<textarea v-model="lot.question"></textarea>
				</view>
			</view>
			<view class="info-row">
				<view class="label" style="margin-bottom: 16rpx;">照片</view>
				<view  >
					<uni-file-picker :value="photoList.url" @select="select" file-mediatype="image" class="my-files" @delete="handleDeletedPhoto" ></uni-file-picker>
				</view>
			</view>
			<view class="btn uni-row" @click.stop="handleSubmit">提交</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 {
		getProductConsult
	} from '@/api/business/processInspection.js'
	import {getURL} from '@/api/sys/user.js'

	const lot = ref({});
	const selected = ref([]);
	const selectedPhotos = ref([])
	const urlList = JSON.parse(uni.getStorageSync('baseUrl'))
	const webHost = ref(urlList.pdfAppURL)
	const photoList = ref([])
	const consulteList = ref([
		{
				value: 0,
				label: "技术"
			},
			{
				value: 1,
				label: "品管"
			},
	])
	// 创建一个引用来存储最后一次请求的时间戳
	const lastRequestTimestamp = ref(0);

	// 页面生命周期函数

	onMounted(() => {
		const instance = getCurrentInstance().proxy
		const eventChannel = instance.getOpenerEventChannel();

		eventChannel.on('outsourcedInspectionConsultation', function(data) {
			console.log('show')
			console.log(lot.value)
			console.log('outsourcedInspectionConsultation', data)
			// 传入当前报工信息 通过当前报工的产品和工序获取检查指导书和分选标准
			if (data && data.data) {
				getProductConsult(data.data).then(res => {
					// console.log("res", res);
					if (res.code == 200) {
						lot.value = data.data
						lot.value.product = res.data
						lot.value.question = ''
					}
				})

			}
		})
	})
	onLoad(() => {})

	onShow(() => {})
	function upLoadImageHandler(arg) {
		getURL(arg).then(res =>{
			let data = JSON.parse(res)
						   selectedPhotos.value.push({
							   url:data.fileName,
							   pictureName:data.originalFilename
						   })
						   console.log(selectedPhotos.value)
						   })
	}
	function select (e) {
		console.log(e)
		const {
			tempFilePaths,
			tempFiles
		} = e	
		tempFiles.forEach((item,index)=>{
			upLoadImageHandler({ filePath: tempFilePaths[index],name:item.name})
		})
	}
	function handleDeletedPhoto(e) {
		let fileName = selectedPhotos.value.map(info => info.name)
			let index = fileName.findIndex(name => name === e.tempFile.name);
			selectedPhotos.value.splice(index,1)
	}
	//选中咨询部门数据
	function checkboxChange(value) {
	lot.value.departments = value.detail.value;
	}
	

	const handleSubmit = () => {
		if (lot.value.departments ==null || (lot.value.departments !=null &&lot.value.departments.length ==0 )) {
			uni.showToast({
				icon: 'none',
				title: '请选择咨询部门'
			})
			return
		}
		if (lot.value.question == null || lot.value.question == '') {
			uni.showToast({
				icon: 'none',
				title: '请输入问题描述'
			})
			return
		}

		const currentTime = Date.now();

		// 检查是否已经过去了 2 秒
		if (currentTime - lastRequestTimestamp.value < 2000) {
			// 如果在 2 秒 内已经点击，那么不执行
			uni.showToast({
				icon: 'none',
				title: `请勿重复点击`,
				duration: 2000
			})
			return;
		}

		store.processInspection = null;
		var consultList = []
		for(let i = 0;i<lot.value.departments.length;i++) {
			let consult = {}
			consult.content = lot.value.question
			consult.consultDepartment = lot.value.departments[i]
			consult.pictures = selectedPhotos.value
			consultList.push(consult)
		}
		uni.$emit('wasteConsultationEvent',consultList)
		lot.value = {};
		uni.navigateBack()
	}
</script>

<style lang="scss">
	.page-container {
		height: 100%;
		background-color: #ececec;
		font-size: 28rpx;
		padding: 24rpx;
		box-sizing: border-box;
	}

	.consultation-container {
		background-color: #ffffff;
		padding: 24rpx;
		border-radius: 12rpx;

		.title {
			justify-content: center;
			font-size: 32rpx;
			font-weight: 700;
		}

		.info-row {
			margin-top: 24rpx;

			.label {
				width: 160rpx;
			}

			.value {
				flex: 1;

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

		.btn {
			background-color: #00D068;
			color: #ffffff;
			border-radius: 8rpx;
			margin: 24rpx;
			height: 64rpx;
			justify-content: center;
			align-items: center;
		}
	}
	.middle {
			display: flex;
			flex-direction: row;
			align-items: center;
			justify-content: center
		}
		
		.segment {
			width: 60%;
			background-color: rgba(213, 213, 213, 1);
			border: 1rpx solid rgba(213, 213, 213, 1);
			margin:8px 0;
		}
	.checkbox-item {
	  display: flex;
	  justify-content: space-between;
	  align-items: center;
	  margin-bottom: 10px;
	}
	
	.checkbox {
	  margin-right: 10px;
	}
	// .uni-file-picker__container{
	// }
	.my-files {
		display: flex;
		justify-content: center;
		
		:deep(.uni-file-picker__container) {
		flex-direction: row;
			
		}
	}
</style>