<template>
	<view class="">
		<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=='狗狗'">
					<u-icon name="info-circle" color="#A94F20" size="12"></u-icon>
					<view style="margin-left: 3px;">
						未办理养犬许可证且需要外出遛狗, 犬只存在被相关单位收缴
						甚至捕杀的可能，请您遵守当地养犬规范，合法文明养犬。具体
						请您查看当地养犬条例
					</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>

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

<script>
	import { getDictList } from "@/api/system/user"
	export default {
		data() {
			return {
				showVaccine: false,
				showExpelling: false,
				showSterilization: false,
				showDog:false,
				showHealths: false,
				vaccineActions: [[ '每年都免疫','有免疫史','未免疫']],
				expellingActions: [['未驱虫', '定期驱虫', '有驱虫史']],
				sterilizationActions: [['已绝育','未绝育']],
				dogActions: [[ '是','否']],
				healthData: [],
				tempHealths: []
			}
		},
		props: {
			petType: {
			    type: String,
			    default: 'dog'
			},
			petHealthInfo:{
				type:Object,
				default:()=>({
					vaccineStatus: '',
					dewormingStatus: '',
					sterilization: '',
					doglicenseStatus:'',
					healthStatus: [],
					remark:''
				})
			},
			defaultVaccine:0,
			defaultDeworming:0,
			defaultSterilization:0,
			defaultDoglicense:0
		},
		mounted() {
			this.getHealthDataList()
			this.defaultVaccine=[].push(this.vaccineActions[0].indexOf(this.petHealthInfo.vaccineStatus))
			this.defaultDeworming=[].push(this.expellingActions[0].indexOf(this.petHealthInfo.dewormingStatus))
			this.defaultSterilization=[].push(this.sterilizationActions[0].indexOf(this.petHealthInfo.sterilization))
			this.defaultDoglicense=[].push(this.dogActions[0].indexOf(this.petHealthInfo.doglicenseStatus))
		},
		methods: {
			// getVaccineList(){ 
			// 	getDictList('pet_vaccine_status').then(res=>{
			// 		if (res.code == 200) {
			// 			let vaccineType = res.data.map(e=>e.dictLabel)
			// 			this.vaccineActions=[vaccineType]
			// 		} else {
			// 			this.$modal.showToast('获取免疫类型失败')
			// 		}
			// 	})
			// },
			// getDewormingList(){
			// 	getDictList('pet_deworming_status').then(res=>{
			// 		if (res.code == 200) {
			// 			let dewormingType = res.data.map(e=>e.dictLabel)
			// 			this.expellingActions=[dewormingType]
			// 		} else {
			// 			this.$modal.showToast('获取驱虫情况失败')
			// 		}
			// 	})
			// },
			getHealthDataList(){
				getDictList('pet_health_status').then(res=>{
					if (res.code == 200) {
						this.healthData = res.data.map(e=>e.dictLabel)
					} else {
						this.$modal.showToast('获取健康类型失败')
					}
				})
			},
			vaccineSelect(e) {
				this.petHealthInfo.vaccineStatus = e.value[0];
				this.showVaccine = false;
				this.updatePetHealthInfo();
			},
			expellingSelect(e) {
				this.petHealthInfo.dewormingStatus = e.value[0];
				this.showExpelling = false;
				this.updatePetHealthInfo();
			},
			sterilizationSelect(e) {
				this.petHealthInfo.sterilization = e.value[0];
				this.showSterilization = false;
				this.updatePetHealthInfo();
			},
			dogSelect(e){
				this.petHealthInfo.doglicenseStatus = e.value[0];
				this.showDog = false;
				this.updatePetHealthInfo();
			},
			healthsSelect() {
				this.showHealths = !this.showHealths;
				this.$nextTick(() => {
					uni.pageScrollTo({
					  scrollTop: 2000,
					  duration: 300
					})
				  })
			},
			checkboxChange(n) {
				console.log('change', n);
				this.updatePetHealthInfo();
			},
			changeRemark(e){
				debugger;
				this.petHealthInfo.remark=e
				this.updatePetHealthInfo()
			},
			updatePetHealthInfo() {
			  // 触发 update 事件，将修改后的 petHealthInfo 对象发送给父组件
			  this.$emit('update:petHealthInfo', this.petHealthInfo);
			}
		}

	}
</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;
	}
</style>