<template>
	<view class="page">
		<navbar title="工种选择组件示例" leftClick @leftClick="$utils.navigateBack" />
		
		<view class="content">
			<view class="demo-section">
				<view class="section-title">单选模式</view>
				<view class="demo-item">
					<uv-cell
						title="选择工种（单选）"
						rightIconStyle="fontSize: 30rpx;"
						:value="singleResult.fullJobType || '请选择工种'"
						@click="openSinglePicker"
						isLink
					></uv-cell>
					<view v-if="singleResult.selectedId" class="result-info">
						<text>选中ID: {{ singleResult.selectedId }}</text>
						<text>选中工种: {{ singleResult.selectedJobType?.name }}</text>
					</view>
				</view>
			</view>
			
			<view class="demo-section">
				<view class="section-title">多选模式</view>
				<view class="demo-item">
					<uv-cell
						title="选择工种（多选）"
						rightIconStyle="fontSize: 30rpx;"
						:value="multipleResult.fullJobType || '请选择工种'"
						@click="openMultiplePicker"
						isLink
					></uv-cell>
					<view v-if="multipleResult.selectedIds && multipleResult.selectedIds.length > 0" class="result-info">
						<text>选中ID数组: {{ multipleResult.selectedIds.join(',') }}</text>
						<text>选中数量: {{ multipleResult.selectedIds.length }}</text>
					</view>
				</view>
			</view>
			
			<view class="demo-section">
				<view class="section-title">只选择到二级工种</view>
				<view class="demo-item">
					<uv-cell
						title="选择工种（二级）"
						rightIconStyle="fontSize: 30rpx;"
						:value="subTypeResult.fullJobType || '请选择工种'"
						@click="openSubTypePicker"
						isLink
					></uv-cell>
					<view v-if="subTypeResult.selectedId" class="result-info">
						<text>选中ID: {{ subTypeResult.selectedId }}</text>
						<text>选中工种: {{ subTypeResult.selectedJobType?.name }}</text>
					</view>
				</view>
			</view>
			
			<view class="demo-section">
				<view class="section-title">带"选择整个工种"选项</view>
				<view class="demo-item">
					<uv-cell
						title="选择工种（整个工种）"
						rightIconStyle="fontSize: 30rpx;"
						:value="wholeTypeResult.fullJobType || '请选择工种'"
						@click="openWholeTypePicker"
						isLink
					></uv-cell>
					<view v-if="wholeTypeResult.selectedId" class="result-info">
						<text>选中ID: {{ wholeTypeResult.selectedId }}</text>
						<text>选中工种: {{ wholeTypeResult.selectedJobType?.name }}</text>
					</view>
				</view>
			</view>
			
			<view class="demo-section">
				<view class="section-title">使用说明</view>
				<view class="usage-info">
					<text class="usage-title">组件属性：</text>
					<text>• multiple: 是否支持多选</text>
					<text>• onlySubType: 是否只选择到二级工种</text>
					<text>• showSelectWholeType: 是否显示"选择整个工种"选项</text>
					<text class="usage-title">返回数据：</text>
					<text>• selectedId: 单选时的工种ID</text>
					<text>• selectedIds: 多选时的工种ID数组</text>
					<text>• fullJobType: 完整的工种名称文本</text>
					<text>• selectedJobType: 选中的工种对象</text>
				</view>
			</view>
		</view>
		
		<!-- 工种选择组件 -->
		<JobTypePicker 
			ref="singlePicker" 
			@confirm="onSingleConfirm" 
		/>
		
		<JobTypePicker 
			ref="multiplePicker" 
			:multiple="true"
			@confirm="onMultipleConfirm" 
		/>
		
		<JobTypePicker 
			ref="subTypePicker" 
			:onlySubType="true"
			@confirm="onSubTypeConfirm" 
		/>
		
		<JobTypePicker 
			ref="wholeTypePicker" 
			:showSelectWholeType="true"
			@confirm="onWholeTypeConfirm" 
		/>
	</view>
</template>

<script>
	import JobTypePicker from '@/components/JobTypePicker.vue'
	
	export default {
		components: {
			JobTypePicker
		},
		data() {
			return {
				singleResult: {}, // 单选结果
				multipleResult: {}, // 多选结果
				subTypeResult: {}, // 二级工种结果
				wholeTypeResult: {} // 整个工种结果
			}
		},
		onLoad() {
			// 确保工种数据已加载
			this.$store.commit('getJobTypeList')
		},
		methods: {
			// 打开单选工种选择器
			openSinglePicker() {
				this.$refs.singlePicker.open()
			},
			
			// 打开多选工种选择器
			openMultiplePicker() {
				this.$refs.multiplePicker.open()
			},
			
			// 打开二级工种选择器
			openSubTypePicker() {
				this.$refs.subTypePicker.open()
			},
			
			// 打开整个工种选择器
			openWholeTypePicker() {
				this.$refs.wholeTypePicker.open()
			},
			
			// 单选确认回调
			onSingleConfirm(result) {
				console.log('单选结果:', result)
				this.singleResult = result
			},
			
			// 多选确认回调
			onMultipleConfirm(result) {
				console.log('多选结果:', result)
				this.multipleResult = result
			},
			
			// 二级工种确认回调
			onSubTypeConfirm(result) {
				console.log('二级工种结果:', result)
				this.subTypeResult = result
			},
			
			// 整个工种确认回调
			onWholeTypeConfirm(result) {
				console.log('整个工种结果:', result)
				this.wholeTypeResult = result
			}
		}
	}
</script>

<style scoped lang="scss">
.page {
	background: #f5f5f5;
	min-height: 100vh;
}

.content {
	padding: 20rpx;
}

.demo-section {
	margin-bottom: 40rpx;
	background: #fff;
	border-radius: 20rpx;
	overflow: hidden;
	
	.section-title {
		padding: 30rpx 30rpx 20rpx;
		font-size: 32rpx;
		font-weight: bold;
		color: #333;
		border-bottom: 1px solid #f0f0f0;
	}
	
	.demo-item {
		padding: 0;
		
		.result-info {
			padding: 20rpx 30rpx;
			background: #f8f9fa;
			border-top: 1px solid #f0f0f0;
			
			text {
				display: block;
				font-size: 26rpx;
				color: #666;
				margin-bottom: 10rpx;
				
				&:last-child {
					margin-bottom: 0;
				}
			}
		}
	}
	
	.usage-info {
		padding: 30rpx;
		
		text {
			display: block;
			font-size: 26rpx;
			color: #666;
			line-height: 1.6;
			margin-bottom: 10rpx;
			
			&.usage-title {
				font-weight: bold;
				color: #333;
				margin-top: 20rpx;
				margin-bottom: 15rpx;
				
				&:first-child {
					margin-top: 0;
				}
			}
			
			&:last-child {
				margin-bottom: 0;
			}
		}
	}
}
</style>