Vue+ElementUI Cascader级联选择器 省市区编辑回显(通过CodeToText,TextToCode辅助)

Posted 是小橙鸭丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue+ElementUI Cascader级联选择器 省市区编辑回显(通过CodeToText,TextToCode辅助)相关的知识,希望对你有一定的参考价值。

一、首先引入element-china-area-data

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

二、使用时的html结构

<el-form-item label="地区">
	<el-cascader
		size="large"
		:options="options"
		placeholder="请选择地区"
		expand-trigger="hover"
		ref="cascaderAddr"
		:props="cateProps"
		v-model="selectedOptions"
		 @change="handleChange">
	</el-cascader>
</el-form-item>

data中的数据

//省市区显示
cateProps:{
	value:'value',
	label:'label',
	children:'children',
},
// 存储省市区选中的ID值
selectedOptions: [],

选择时触发的事件handleChange

//省市区三级联动事件
		handleChange(value) {		
			
			this.selectedOptions = value
			console.log(this.selectedOptions)
			var name = ''
			this.selectedOptions.map(item => name += CodeToText[item] + '') //将省市区三个拼接一起
			this.addtions.names = name
			console.log(this.addtions.names)
            //运用了CodeToText把编码转成了中文
			this.addForm.province = CodeToText[this.selectedOptions[0]]
			this.addForm.county = CodeToText[this.selectedOptions[1]]
			this.addForm.area = CodeToText[this.selectedOptions[2]]	
	
			console.log(this.addForm)
			
		},

 

我们正常选中时,显示的值是对应每个区域的对应编码,因为需求我们通过CodeToText把它变成中文赋值给对应的字段

接下来进入正题如何进行编辑时回显

在编辑时打开的对话框加入以下的HTML代码片段(重点是v-model的值绑定)

 <el-form-item label="地区">
	<el-cascader
		   size="large"
		    :options="options"
		   placeholder="请选择地区"
		   expand-trigger="hover"
		   ref="cascaderAddr"
		   :props="cateProps"
		   v-model="editForm.selectedOptions"
		   @change="handleChange">
    </el-cascader>
 </el-form-item>



data中的数据
editForm:{
    // 存储省市区选中的ID值
	selectedOptions: [],
}
<el-button type="primary" icon="el-icon-edit" size="mini" @click="showEditDialog(scope.row)">编辑</el-button>

添加点击事件打开对应的编辑框事件,传入scope.row值,重点我们引入TextToCode可以把中文区域转换成对应的编码,我们分析以下代码

//展示编辑用户的对话框
showEditDialog(row){
    //拿到对应的列表值
    console.log(row)
    //你们看看这个打印的是什么就知道下面为何这样写
    console.log(TextToCode["广东省"])
    console.log(TextToCode["广东省"].惠州市)
    //这个是回显的重点
    this.editForm.selectedOptions= [TextToCode[row.province].code,TextToCode[row.province].[row.county].code,TextToCode[row.province].[row.county].[row.area].code]
}

我们打印 console.log(TextToCode["广东省"].惠州市)  结构如下(看下面结构你们就能理解上面为何那样写了)

即我们成功回显数据如下图所示

 

以上是关于Vue+ElementUI Cascader级联选择器 省市区编辑回显(通过CodeToText,TextToCode辅助)的主要内容,如果未能解决你的问题,请参考以下文章

vue中使用elementUI 的级联选择器el-cascader实现动态加载

Vue+ElementUI Cascader级联选择器 省市区编辑回显(通过CodeToText,TextToCode辅助)

怎么获取cascader级联选择器的值

基于layui的cascader级联选择器

修改antd级联选择器(cascader)

elementui级联选择器怎么穿参给后端