vue3TS中后台给你数据实现省市区实现三级联动

  1. 点击省获取省的数据
  2. 选择省的数据获取市区的数据(带你选择省的id给后台获取市)
  3. 选择市的数据获取县区的数据(带你选择市区的id给后台获取县区)

前端代码

			<el-form-item>
				<el-select @change="handleProvinceChange" v-model="state.queryForm.province" clearable placeholder="所属省份"
					style="width: 250px">
					<el-option v-for="item in provinceList" :key="item.code" :label="item.name" :value="item.id" />
				</el-select>
			</el-form-item>

			<el-form-item>
				<el-select @change="handleCityChange" v-model="state.queryForm.city" clearable placeholder="所属城市"
					style="width: 250px">
					<el-option v-for="item in cityList" :key="item.code" :label="item.name" :value="item.id" />
				</el-select>
			</el-form-item>

			<el-form-item>
				<el-select v-model="state.queryForm.county" clearable placeholder="所属县区" style="width: 250px">
					<el-option v-for="item in countyList" :key="item.code" :label="item.name" :value="item.id" />
				</el-select>
			</el-form-item>

js代码


// 获取省
interface provinceList {
	id: number
	name: string
	code: string
}
const provinceList = ref<Array<provinceList>>([]) // 省份的响应式数据
const getProvinceList = () => {
	return useCityApi().then(res => {
		provinceList.value = res.data


	})
}



// 获取市
interface cityList {
	id: number
	name: string
	code: string
}

const cityList = ref<Array<cityList>>([]) // 省份的响应式数据
// 监听省份选择变化
const handleProvinceChange = (provinceId: any) => {
	// 将选择的省份ID发送给后台接口进行处理
	return useCityApi1(provinceId).then((res: any) => {
		cityList.value = res.data


	}).catch((error: any) => {
		ElMessage({
			message: 'Congrats, this is a success message.',
			type: 'warning',
		})
	})
}


// 获取县区
interface countyList {
	id: number
	name: string
	code: string
}

const countyList = ref<Array<countyList>>([]) // 省份的响应式数据
// 监听省份选择变化
const handleCityChange = (provinceId: any) => {
	// 将选择的省份ID发送给后台接口进行处理
	return useCityApi1(provinceId).then((res: any) => {
		countyList.value = res.data


	}).catch((error: any) => {
		ElMessage({
			message: 'Congrats, this is a success message.',
			type: 'success',
		})
	})
}

有问题有疑问可以直接@本人,解决你的疑问 

 

 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于Vue+TypeScript和Element Plus的三级联动数据回显,可以按照以下步骤进行实现: 1. 首先,在Vue组件定义省市区数据源,可以使用数组或者对象的形式存储。例如: ```typescript data() { return { provinceList: [], // 省份数据源 cityList: [], // 城市数据源 districtList: [], // 区县数据源 selectedProvince: '', // 选的省份 selectedCity: '', // 选的城市 selectedDistrict: '', // 选的区县 // 其他数据... }; }, ``` 2. 在组件的`mounted`生命周期钩子函数初始化省份数据源,并根据选的省份获取对应的城市和区县数据。例如: ```typescript mounted() { // 初始化省份数据源 this.provinceList = [ { id: 1, name: '北京' }, { id: 2, name: '上海' }, { id: 3, name: '广东' }, // 其他省份... ]; // 根据选的省份获取城市和区县数据 this.fetchCityList(this.selectedProvince); this.fetchDistrictList(this.selectedCity); }, ``` 3. 实现方法`fetchCityList`和`fetchDistrictList`,用于根据选的省份和城市获取对应的城市和区县数据。可以使用ajax、axios或者其他方式获取数据。例如: ```typescript methods: { fetchCityList(provinceId: number) { // 根据省份ID获取城市数据,此处假设省份ID与城市数据对应 this.cityList = [ { id: 11, name: '北京市' }, { id: 12, name: '天津市' }, { id: 13, name: '石家庄市' }, // 其他城市... ]; // 清空选的城市和区县 this.selectedCity = ''; this.selectedDistrict = ''; }, fetchDistrictList(cityId: number) { // 根据城市ID获取区县数据,此处假设城市ID与区县数据对应 this.districtList = [ { id: 111, name: '东城区' }, { id: 112, name: '西城区' }, { id: 113, name: '朝阳区' }, // 其他区县... ]; // 清空选的区县 this.selectedDistrict = ''; }, }, ``` 4. 在模板使用`<el-select>`组件实现三级联动选择框,并绑定选的值和数据源。例如: ```html <el-select v-model="selectedProvince" placeholder="请选择省份" @change="fetchCityList(selectedProvince)"> <el-option v-for="province in provinceList" :key="province.id" :value="province.id" :label="province.name"></el-option> </el-select> <el-select v-model="selectedCity" placeholder="请选择城市" @change="fetchDistrictList(selectedCity)"> <el-option v-for="city in cityList" :key="city.id" :value="city.id" :label="city.name"></el-option> </el-select> <el-select v-model="selectedDistrict" placeholder="请选择区县"> <el-option v-for="district in districtList" :key="district.id" :value="district.id" :label="district.name"></el-option> </el-select> ``` 通过以上步骤,就可以实现省市区三级联动数据回显的功能了。当选择省份时,会根据选的省份动态获取对应的城市数据;当选择城市时,会根据选的城市动态获取对应的区县数据。同时,选的值会与`selectedProvince`、`selectedCity`和`selectedDistrict`进行双向绑定,以便在提交表单或其他操作时使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子伟-H5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值