vue项目中的element-ui地区级联选择器加详细地址push到对象中不显示的问题
vue项目中的element-ui地区级联选择器加详细地址push到对象中不显示的问题Posted on 2021-09-29 11:06 娱乐圈在逃女明猩 阅读(0) 评论(0) 编辑
顺晟科技
2022-09-23 11:01:43
83
话不多说,直接上代码:
1.添加地址按钮
<el-button type="primary" class="btnAdd" @click="dialog = true">添加订单</el-button>
2.table表格
<el-table>
<el-table-column prop="address" label="收货地址"></el-table-column>
</el-table>
3.el-drawer弹窗
<el-drawer
title="添加订单"
:visible.sync="dialog"
:before-close="handleClose"
custom-class="demo-drawer"
ref="drawer"
size="35%"
>
<div class="demo-drawer__content">
<el-form :model="form" ref="form">
<el-form-item label="地址" prop="address" :label-width="formLabelWidth" v-model="form.address">
<el-col :span="12">
<el-cascader style="width: 100%" clearable size="large" :options="regionDatas" ref="cascaderAddr" :props="cateProps" v-model="form.address1" @change="handleChange"></el-cascader>
</el-col>
<el-col :span="12">
<el-input v-model="form.address2" placeholder="请输入详细地址" clearable maxlength="20" show-word-limit></el-input>
</el-col>
</el-form-item>
</el-form>
<div class="demo-drawer__footer">
<el-button @click="resetForm">重 置</el-button>
<el-button type="primary" @click="submitForm('form')">确 定</el-button>
</div>
</div>
</el-drawer>
form表单里的样式:

4.在script里引入import {provinceAndCityData,regionData,provinceAndCityDataPlus,regionDataPlus,CodeToText,TextToCode,} from "element-china-area-data";
5.data里的数据:
data() {
return {
tableData: [],
dialog: false,
form: {
address: "",
address1: [],
address2: "",
},
formLabelWidth: "80px",
regionDatas: regionData,
cateProps: {
value: "value",
label: "label",
children: "children",
},
addtions: [],
};
},
6.methods方法
methods: {
//级联选择器详细数据
handleChange(value) {
this.form.address1 = value;
var name = "";
this.form.address1.map((item) => (name += CodeToText[item] + "")); //将省市区三个拼接一起
this.addtions.names = name;
},
//提交表单
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
this.tableData.push(this.form); //将新增数据push到dataList数组中
this.tableData.forEach(element => {
element.address = this.addtions.names + this.form.address2;// 将级联选择器的地址和input里的详细地址合并赋值给table数据表中
});
this.dialog = false;
this.rewrite();
} else {
console.log("error submit!!");
return false;
}
});
},
handleClose(done) {
this.$confirm("确定要退出吗?")
.then((_) => {
this.dialog = false;
done();
})
.catch((_) => {});
},
// 重置
resetForm(formName) {
this.$nextTick(() => {
this.$refs[formName].resetFields();
});
},
rewrite() {
this.form = {
username: "",
datetime: "",
goods: "",
consignee: "",
phone: "",
remarks: "",
address1: [],
address2: "",
};
},
},
最终效果:

23
2022-09
13
2022-09
13
2022-09
03
2022-09
17
2021-09
09
2021-09