|                                                                                                                                                                                                                                 |  | <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>
 |