封装一个省市区公共组件

news/2024/11/16 9:46:56/

难点:封装一个省市区三级联动的公共组件,难点在与对三级嵌套数据的处理,其中三级嵌套数据来源于github上的Administrative-divisions-of-china

<template><el-select v-model="province" class="m-2" placeholder="请选择省份" size="small"><el-optionv-for="item in areas":key="item.code":label="item.name":value="item.code"/></el-select><el-select v-model="city" :disabled="!province" class="m-2" placeholder="请选择市" size="small"><el-optionv-for="item in selectCitys":key="item.code":label="item.name":value="item.code"/></el-select><el-select v-model="area" :disabled="!city" class="m-2" placeholder="请选择区" size="small"><el-optionv-for="item in selectAreas":key="item.code":label="item.name":value="item.code"/></el-select></template><script setup>import { ref, watch, defineEmits } from 'vue'import allAreas from './lib/pca-code.json'const areas = ref(allAreas)const selectCitys = ref([])const selectAreas = ref([])const province = ref('')const city = ref('')const area = ref('')const emit = defineEmits(['change'])watch(province,async (value) => {if(value) {let citys = areas.value.find(item => item.code===province.value)?.childrenselectCitys.value = cityscity.value = ''area.value = ''}else{return}})watch(city,async (value) => {if(value) {let areas = selectCitys.value.find(item => item.code===city.value)?.childrenselectAreas.value = areasarea.value = ''}else{return}})watch(area,async (value) => {if(value) {let provinceData = {code: province.value,name: areas.value.find(item => item.code===province.value)?.name,}let cityData = {code: city.value,name: selectCitys.value.find(item => item.code===city.value)?.name,}let areaData = {code: area.value,name: selectAreas.value.find(item => item.code===area.value)?.name}emit('change',{provinceData,cityData,areaData})}})</script>

http://www.ppmy.cn/news/1201921.html

相关文章

Ribbon讲解

一&#xff1a;Ribbon是什么&#xff1f; Ribbon其实就是一个软负载均衡的客户端组件。 二&#xff1a;负载均衡(LB)是什么&#xff1f; 用户的请求平摊的分配到多个服务上&#xff0c;从而达到系统的HA&#xff08;高可用&#xff09; 三&#xff1a;负载均衡分类&#xf…

Text-based diagram tool

0 Preface/Foreword 基于文本的图形工具 1 Graphviz Graphviz&#xff1a;Graph visualization software&#xff0c;图形可视化软件 Pros: FlexibleExtendible Cons: learning curve Graphviz 2 Mermaid Mermaid&#xff0c;美人鱼&#xff0c;一个类似markdown&…

C语言——循环结构

C语言提供了while&#xff0c;do...while&#xff0c;for三种语句构成循环结构。循环语句是程序中的一个基本语句&#xff0c;在编程中&#xff0c;如果我们需要对某些操作对象进行相同的操作&#xff0c;那么&#xff0c;使用循环语句&#xff0c;就能让计算机反复执行&#x…

047_第三代软件开发-日志分离

第三代软件开发-日志分离 文章目录 第三代软件开发-日志分离项目介绍日志分离用法 关键字&#xff1a; Qt、 Qml、 log、 日志、 分离 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object Language&#xff09;和 C 的强…

YB506A是一款锂电池充、放电管理专用芯片,集成锂电池充电管理和降压DCDC电路

YB506A 锂电转可充电AA/AAA电池专用SOC芯片 概述&#xff1a; YB506A是一款锂电池充、放电管理专用芯片&#xff0c;集成锂电池充电管理和降压DCDC电路。充电过程满足锂电池三段式滑流/恒流/恒压充电规范&#xff0c;YB506A内部的线性充电电路采用了恒流可配置模式&#xff0…

输电线路AR可视化巡检降低作业风险

随着现代工业的快速发展&#xff0c;各行业的一线技术工人要处理的问题越来越复杂&#xff0c;一些工作中棘手的问题迫切需要远端专家的协同处理。但远端专家赶来现场往往面临着专家差旅成本高、设备停机损失大、专业支持滞后、突发故障无法立即解决等痛点。传统的远程协助似乎…

【23真题】Easy!速成120两个月够了!

今天分享的是23年广西科技809的信号与系统试题及解析。 本套试卷难度分析&#xff1a;本套试题内容难度中等偏下&#xff0c;题量不大&#xff0c;考察的知识点很基础。所有的知识点都出现在它应该出现的地方&#xff0c;无任何偏难怪&#xff0c;非常常规的试卷&#xff01;个…

什么是vue的生命周期?

Vue 的生命周期指的是组件实例从创建到销毁的整个过程中&#xff0c;会触发的一系列钩子函数。这些钩子函数允许开发者在不同的阶段插入自定义代码&#xff0c;以便在组件的不同生命周期阶段执行特定的逻辑。 Vue 2.x 的生命周期包括以下钩子函数&#xff1a; beforeCreate&a…