<template>
    <view >
        <view class="personal-pet-health-info">
            <view class="personal-pet-info-title border-bottom">
                宠物健康情况
            </view>
            <u--form labelPosition="left" :model="petHealthInfo" ref="uForm">
                <u-form-item required label="疫苗" :prop="`petHealthInfo.vaccineStatus`" labelWidth="80" borderBottom
                    @click="showVaccine = true">
                    <u--input v-model="petHealthInfo.vaccineStatus" disabled disabledColor="#ffffff" placeholder="请选择"
                        placeholderStyle="text-align:right;color:#AAA" border="none"  inputAlign="right"></u--input>
                    <u-icon slot="right" name="arrow-right" color="#AAA"></u-icon>
                </u-form-item>
                <u-form-item required label="驱虫" :prop="`petHealthInfo.dewormingStatus`" labelWidth="80" borderBottom
                    @click="showExpelling = true">
                    <u--input v-model="petHealthInfo.dewormingStatus" disabled disabledColor="#ffffff" placeholder="请选择"
                        placeholderStyle="text-align:right;color:#AAA" border="none"  inputAlign="right"></u--input>
                    <u-icon slot="right" name="arrow-right" color="#AAA"></u-icon>
                </u-form-item>
                <u-form-item label="绝育" :prop="`petHealthInfo.sterilization`" labelWidth="80" borderBottom
                    @click="showSterilization = true" ref="item1">
                    <u--input v-model="petHealthInfo.sterilization" disabled disabledColor="#ffffff" placeholder="请选择"
                        placeholderStyle="text-align:right;color:#AAA" border="none"  inputAlign="right"></u--input>
                    <u-icon slot="right" name="arrow-right" color="#AAA"></u-icon>
                </u-form-item>
                <u-form-item v-if="petType === 'dog' || petType === '狗狗' " label="狗证" :prop="`petHealthInfo.doglicenseStatus`" labelWidth="80" borderBottom
                    @click="showDog = true" ref="item1">
                    <u--input v-model="petHealthInfo.doglicenseStatus" disabled disabledColor="#ffffff" placeholder="请选择"
                        placeholderStyle="text-align:right;color:#AAA" border="none"  inputAlign="right"></u--input>
                    <u-icon slot="right" name="arrow-right" color="#AAA"></u-icon>
                </u-form-item>
                <view class="dog-tips" v-if="petType === 'dog' || petType === '狗狗'">
			        <image class="icon" :src="configList.pet_dog_license.paramValueImage"></image>
                    <view>
                        <up-parse :content="configList.pet_dog_license.paramValueArea" containerStyle="{
                            color: '#A94F20',
                            fontSize: '12px',
                        }"></up-parse>
                    </view>
                </view>
                <u-form-item required label="健康" :prop="`petHealthInfo.healths`" labelWidth="80"
                    @click="healthsSelect">
                    <u--input disabled disabledColor="#ffffff" placeholder="请选择(多选)" :value="petHealthInfo.healthStatus && petHealthInfo.healthStatus.join(',')"
                        placeholderStyle="text-align:right;color:#AAA" border="none"  inputAlign="right"></u--input>
                    <view slot="right">
                        <u-icon v-if="showHealths"  name="arrow-down" color="#AAA"></u-icon>
                        <u-icon v-else name="arrow-right" color="#AAA" ></u-icon>
                    </view>
                </u-form-item>
            </u--form>
        </view>	
        <view class="health-select" v-show="showHealths">
            <view style="padding: 10px;height: 85%;">
                <u-checkbox-group v-model="petHealthInfo.healthStatus" @change="checkboxChange" placement="column" activeColor="#ffbf60">
                    <u-checkbox :customStyle="{marginBottom: '8px'}" v-for="(item, index) in healthData"
                        :key="index" :label="item" :name="item">
                    </u-checkbox>
                </u-checkbox-group>
                <u--input placeholder="请输入其他健康特征" 
                    :disabled="!(petHealthInfo.healthStatus && petHealthInfo.healthStatus.includes('其他'))" 
                    border="surround" maxlength='20' 
                    :customStyle="{backgroundColor: '#fff'}"
                    @change="updatePetHealthInfo()"
                    v-model="petHealthInfo.remark"></u--input>
            </view>
        </view>

		<!-- 赶进度，先注释 -->
		<!-- <view class="health-select" v-show="showHealths">
			<view style="padding: 10px;height: 85%;">
				<u-checkbox-group v-model="petHealthInfo.healthStatus" @change="checkboxChange" placement="column"
					activeColor="#ffbf60">
					<u-checkbox :customStyle="{marginBottom: '8px'}" v-for="(item, index) in healthData" :key="index"
						:label="item" :name="item">
					</u-checkbox>
				</u-checkbox-group>
				<u--input placeholder="请输入其他健康特征"
					:disabled="!(petHealthInfo.healthStatus && petHealthInfo.healthStatus.includes('其他'))"
					border="surround" maxlength='20' :customStyle="{backgroundColor: '#fff'}"
					@change="updatePetHealthInfo()" v-model="petHealthInfo.remark"></u--input>
			</view>
		</view> -->

		<u-picker :show="showVaccine" :showToolbar='false' :columns="vaccineActions" @cancel="showVaccine = false"
			:immediateChange="true" :defaultIndex="defaultVaccine" @change="vaccineSelect"></u-picker>
		<u-picker :show="showExpelling" :showToolbar='false' :columns="expellingActions" @cancel="showExpelling = false"
			:immediateChange="true" :defaultIndex="defaultDeworming" @change="expellingSelect"></u-picker>
		<u-picker :show="showSterilization" :showToolbar='false' :columns="sterilizationActions"
			@cancel="showSterilization = false" :immediateChange="true" :defaultIndex="defaultSterilization"
			@change="sterilizationSelect"></u-picker>
		<u-picker :show="showDog" :showToolbar='false' :columns="dogActions" @cancel="showDog = false"
			:immediateChange="true" :defaultIndex="defaultDoglicense" @change="dogSelect"></u-picker>
	</view>
</template>

<script setup>
	import {
		ref,
		computed,
		onMounted,
	} from 'vue';
	import { useStore } from 'vuex'

	const store = useStore()

	const configList = computed(() => {
		return store.getters.configList
	})

	// 定义 props
	const props = defineProps({
		petType: {
			type: String,
			default: 'dog'
		},
		petHealthInfo: {
			type: Object,
			default: () => ({
				vaccine: '',
				deworm: '',
				neutered: '',
				doglicenseStatus: '',
				health: [],
				remark: ''
			})
		},
		defaultVaccine: {
			type: Number,
			default: 0
		},
		defaultDeworming: {
			type: Number,
			default: 0
		},
		defaultSterilization: {
			type: Number,
			default: 0
		},
		defaultDoglicense: {
			type: Number,
			default: 0
		}
	});

	// 定义 emits
	const emits = defineEmits(['update:petHealthInfo']);

	// 定义响应式数据
	const showVaccine = ref(false);
	const showExpelling = ref(false);
	const showSterilization = ref(false);
	const showDog = ref(false);
	const showHealths = ref(false);
	const vaccineActions = ref([
		['每年都免疫', '有免疫史', '未免疫']
	]);
	const expellingActions = ref([
		['未驱虫', '定期驱虫', '有驱虫史']
	]);
	const sterilizationActions = ref([
		['已绝育', '未绝育']
	]);
	const dogActions = ref([
		['是', '否']
	]);
	const healthData = ref([]);
	const tempHealths = ref([]);
	const uForm = ref(null);
	const item1 = ref(null);

	// 定义方法
	const getHealthDataList = () => {
		// getDictList('pet_health_status').then(res => {
		//     if (res.code === 200) {
		//         healthData.value = res.data.map(e => e.dictLabel);
		//     } else {
		//         uni.showToast({
		//             title: '获取健康类型失败',
		//             icon: 'none'
		//         });
		//     }
		// });
	};

	const vaccineSelect = (e) => {
		props.petHealthInfo.vaccine = e.index;
		showVaccine.value = false;
		updatePetHealthInfo();
	};

	const expellingSelect = (e) => {
		props.petHealthInfo.deworm = e.index;
		showExpelling.value = false;
		updatePetHealthInfo();
	};

	const sterilizationSelect = (e) => {
		props.petHealthInfo.neutered = e.index;
		showSterilization.value = false;
		updatePetHealthInfo();
	};

	const dogSelect = (e) => {
		props.petHealthInfo.doglicenseStatus = e.value[0];
		showDog.value = false;
		updatePetHealthInfo();
	};

	const healthsSelect = () => {
		showHealths.value = !showHealths.value;
		uni.pageScrollTo({
			scrollTop: 2000,
			duration: 300
		});
	};

	const checkboxChange = (n) => {
		console.log('change', n);
		updatePetHealthInfo();
	};

	const changeRemark = (e) => {
		props.petHealthInfo.remark = e;
		updatePetHealthInfo();
	};

	const updatePetHealthInfo = () => {
		// 触发 update 事件，将修改后的 petHealthInfo 对象发送给父组件
		emits('update:petHealthInfo', props.petHealthInfo);
	};

	// 生命周期钩子
	onMounted(() => {
		// getHealthDataList();
		// defaultVaccine.value = vaccineActions.value[0].indexOf(props.petHealthInfo.vaccineStatus);
		// defaultDeworming.value = expellingActions.value[0].indexOf(props.petHealthInfo.dewormingStatus);
		// defaultSterilization.value = sterilizationActions.value[0].indexOf(props.petHealthInfo.sterilization);
		// defaultDoglicense.value = dogActions.value[0].indexOf(props.petHealthInfo.doglicenseStatus);
	});
</script>

<style lang="scss">
.personal-pet-health-info{
    background-color: #fff;
    padding: 10px 20px 0 20px;
    margin-top: 10px;
}
.health-select{
    background-color: #fffcf2;
    padding: 10px 20px;
}
.dog-tips{
    color: #A94F20;
    font-size: 12px;
    display: flex;
    align-items: baseline;
    margin-top: 5px;

    .icon {
        width: 12px;
        height: 12px;
        margin-right: 3px;
    }
}
</style>    
