elementui Cascader 省市区联动选择器,应用与回显

目的:往数据库添加数据,形式为:xx省/xx市/xx县 ,并在前端回显
eg:
在这里插入图片描述

  1. 在element form表单里添加
<el-form-item label="地区" prop="user_address" label-width="130px">
        <el-cascader
          class="widthSmall"
          size="large"
          :options="options"
          v-model="selectedOptions"
          @change="addressChange"
          >
        </el-cascader>
      </el-form-item>
  1. 在data里添加
data(){
    return{
options: regionData, //省市区数据
selectedOptions:[], // 选中的地区
}
}
  1. 在create里添加
created() {
    this.selectedOptions = [this.form.provinceCode,this.form.cityCode,this.form.areaCode];
  },
  1. 在methods里添加
methods:{
//初始化省市
    addressChange(arr) {
      var _this = this;
      console.log(arr);
      console.log(CodeToText[arr[0]], CodeToText[arr[1]], CodeToText[arr[2]]);
      _this.form.provinceCode = arr[0];
      _this.form.cityCode = arr[1];
      _this.form.areaCode = arr[2];
    },
    }
  1. import
import {regionData,CodeToText,TextToCode } from 'element-china-area-data'

如果没安装需要安装element-china-area-data

npm install element-china-area-data -S

在这里插入图片描述

完成第五步我们的级联选择器就可以使用了,现在我们来处理存数据和回显问题

  1. 为我们的数据库字段赋值,拼接成xx省/xx市/xx县 ,在addressChange方法里添加
    在这里插入图片描述

CodeToText用法:CodeToText[‘110000’]输出北京市
设置完这里,我们直接上传表单就可以存选择的数据了

  1. 回显
    在我们打开页面初始化获得数据的方法里分解数据
       //分解地区信息
        var index=this.userData.user_address.indexOf("\/")  // "/"第一次出现的位置
        var last=this.userData.user_address.lastIndexOf("\/")  //  "/"最后次出现的位置
        //TextToCode转换成地区编码
        var provinceCode=TextToCode[this.userData.user_address.slice(0,index)].code
        var cityCode=TextToCode[this.userData.user_address.slice(0,index)][this.userData.user_address.slice(index+1,last)].code
        var areaCode=TextToCode[this.userData.user_address.slice(0,index)][this.userData.user_address.slice(index+1,last)][this.userData.user_address.slice(last+1)].code
        this.selectedOptions=[provinceCode,cityCode,areaCode]

slice用法:
let str=“我爱中国”
str.slice(1) //爱中国
str.slice(0,3) //我爱中

TextToCode用法:
TextToCode[‘北京市’].code 输出110000
TextToCode[‘北京市’][‘市辖区’].code 输出110100
TextToCode[‘北京市’][‘市辖区’][‘朝阳区’].code 输出110105

eg:
在这里插入图片描述
回显成功。
在这里插入图片描述
加:
得到树的最后一个项目的id

handleChange(val) {
      const len = val.length;
      this.form.id = val[len-1]
     
    },
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

悢七

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

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

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

打赏作者

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

抵扣说明:

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

余额充值