当前位置:   article > 正文

vue+elementUI实现省市区三级联动_vue3 elementui省市区联动

vue3 elementui省市区联动

1、获取elementUI的省市区级联数据

npm install element-china-area-data -S

2、引入数据

  import { regionData, CodeToText } from 'element-china-area-data'

3、在vue页面中使用

  1. <el-col :span="12">
  2. <el-form-item label="目的城市" prop="destinationCity">
  3. <el-cascader placeholder="可搜索" :options="citys" filterable clearable @change="handleChange">
  4. <template slot-scope="{ node, data }">
  5. <span>{{ data.label }}</span>
  6. <span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
  7. </template>
  8. </el-cascader>
  9. </el-form-item>
  10. </el-col>
  1. data() {
  2. return {
  3. kuaidi: {
  4. name: '',
  5. departmentName: '',
  6. applicationDate: this.$moment().format('YYYY-MM-DD'),
  7. attribute: '',
  8. destinationCity: '',
  9. addressee: '',
  10. consigneeAddress: '',
  11. expressCompany: '',
  12. courierNumber: '',
  13. },
  14. rules: {
  15. attribute: [
  16. { required: true, message: '请选择快递属性', trigger: 'change' }
  17. ],
  18. destinationCity: [
  19. { required: true, message: '请选择城市', trigger: 'change' }
  20. ],
  21. addressee: [
  22. { required: true, message: '请输入收件单位', trigger: 'blur' }
  23. ],
  24. consigneeAddress: [
  25. { required: true, message: '请输入收件地址', trigger: 'blur' }
  26. ],
  27. expressCompany: [
  28. { required: true, message: '请输入快递公司', trigger: 'blur' }
  29. ],
  30. courierNumber: [
  31. { required: true, message: '请输入快递单号', trigger: 'blur' }
  32. ],
  33. },
  34. attributeList: ['客户', '供应商', '其他'],
  35. citys: regionData,
  36. }
  37. },
  1. handleChange(value) {
  2. let cityNames = []
  3. value.forEach(e => {
  4. cityNames.push(CodeToText[e])
  5. });
  6. this.kuaidi.destinationCity = cityNames.join('/')
  7. },

其中:filterable实现可搜索;clearable实现可清除

注:由于handleChange(value)中value是区域编码,所以需要引入CodeToText[i],将区域码转换成对应中文。

最终效果如下所示:

附录:

import { provinceAndCityData, regionData, provinceAndCityDataPlus, regionDataPlus, CodeToTextTextToCode } from 'element-china-area-data' 
  1. provinceAndCityData是省市二级联动数据(不带“全部”选项)
  2. regionData是省市区三级联动数据(不带“全部”选项)
  3. provinceAndCityDataPlus是省市区三级联动数据(带“全部”选项)
  4. regionDataPlus是省市区三级联动数据(带“全部”选项)
  5. "全部"选项绑定的value是空字符串""
  6. CodeToText是个大对象,属性是区域码,属性值是汉字 用法例如:CodeToText['110000']输出北京市
  7. TextToCode是个大对象,属性是汉字,属性值是区域码 用法例如:TextToCode['北京市'].code输出110000,TextToCode['北京市']['市辖区'].code输出110100,TextToCode['北京市']['市辖区']['朝阳区'].code输出110105 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/608429
推荐阅读
相关标签
  

闽ICP备14008679号