一 代码

<template><el-dialog:title="!dataForm.id ? '新增' : !disabled ? '修改' : '查看'":close-on-click-modal="false":visible.sync="visible"><el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmit()"label-width="80px"><el-form-item label="编码" prop="code"><el-input v-model="dataForm.code" :disabled="disabled" placeholder="公司编码"></el-input></el-form-item><el-form-item label="名称" prop="name"><el-input v-model="dataForm.name" :disabled="disabled" placeholder="公司名称"></el-input></el-form-item><!-- 省/市/区级联选择控件--><el-form-item label="省/市/区"><el-cascaderref="cas"expand-trigger="hover"v-model="selectedOptions":options="options"style="width: 100%;@change="handleChange"></el-cascader></el-form-item><!-- 显示选择的省/市/区--><el-form-item label="所在省" prop="province"><el-input v-model="dataForm.province" :disabled="disabled" placeholder="所在省"></el-input></el-form-item><el-form-item label="所在市" prop="city"><el-input v-model="dataForm.city" :disabled="disabled" placeholder="所在市"></el-input></el-form-item><el-form-item label="所在区县" prop="district"><el-input v-model="dataForm.district" :disabled="disabled" placeholder="所在区县"></el-input></el-form-item><el-form-item label="所在街道" prop="address"><el-input v-model="dataForm.address" :disabled="disabled" placeholder="所在街道"></el-input></el-form-item><el-form-item label="法人" prop="legalPerson"><el-input v-model="dataForm.legalPerson" :disabled="disabled" placeholder="法人"></el-input></el-form-item><el-form-item label="联系人" prop="contactPerson"><el-input v-model="dataForm.contactPerson" :disabled="disabled" placeholder="联系人"></el-input></el-form-item><el-form-item label="联系电话" prop="contactPhone"><el-input v-model="dataForm.contactPhone" :disabled="disabled" placeholder="联系电话"></el-input></el-form-item><el-form-item label="签约名称" prop="signatureName"><el-input v-model="dataForm.signatureName" :disabled="disabled" placeholder="签约名称"></el-input></el-form-item><el-form-item label="是否测试" size="mini" prop="test"><el-radio-group v-model="dataForm.test"><el-radio :label="0">是</el-radio><el-radio :label="1">否</el-radio></el-radio-group></el-form-item></el-form><span slot="footer" class="dialog-footer"><el-button @click="visible = false">取消</el-button><el-button v-if="!disabled" type="primary" @click="dataFormSubmit()">确定</el-button></span></el-dialog>
</template><script>export default {data () {return {selectedOptions: [], // 省/市/区级联选择控件用此数据options: [], // 省/市/区级联选择控件用此数据visible: false,dataForm: {id: 0,code: '',name: '',province: '', // 省city: '', // 市district: '', // 区address: '',legalPerson: '',contactPerson: '',contactPhone: '',test: '',switch1: '',switch2: '',switch3: '',visitDurationMax: '',switch4: '',switch5: '',switch6: '',medicalRepresentativeFilingCheckSwitch: '',photoSwitch: '',doctorAnonymousSwitch: '',onePageTemplateOption: '',locationCheckSwitch: '',invoiceMoney: '',checkUser: '',checkTime: '',checkState: '',checkRemark: '',createUser: '',createTime: '',updateUser: '',updateTime: '',bankCardNumber: '',bankName: '',dailyProductCustomerVisitCountMax: '',monthlyProductCustomerVisitCountMax: '',dataInputDelayDay: '',isAllowOffSiteInputVisit: '',dailyVisitCustomerActivityMax: '',signatureName: '',loginNames: '',switch8: '',visitMoveTime: '',monthlyAmountQuotaReminder: '',monthlyAmountQuotaMaximum: '',visitStyles: '',visitTypes: '',index1MaxCount: '',index2MaxCount: '',index3MaxCount: '',index4MaxCount: '',researchStyles: '',researchTypes: '',businessTypeList: '',isOverdue: '',annualAmountQuota: ''},dataRule: {name: [{required: true, message: '名称不能为空', trigger: 'blur'}]}}},methods: {init (id, disabled) {this.disabled = disabledthis.dataForm.id = id || ''this.visible = truethis.$nextTick(() => {this.$refs['dataForm'].resetFields()if (this.dataForm.id) {this.$http({url: `/base/company/info/${this.dataForm.id}`,method: 'get'}).then(({data}) => {if (data && data.code === 0) {this.dataForm = data.company}})}// 获取省市区树型列表this.$http({url: `/base/division/pcd`,method: 'get'}).then(({data}) => {if (data && data.code === 0) {// eslint-disable-next-line no-useless-escapethis.options = JSON.parse(JSON.stringify(data.options).replace(/\"children"\:\[]/g, '"no":0'))}})})},// 表单提交dataFormSubmit () {this.$refs['dataForm'].validate((valid) => {if (valid) {this.$http({url: `/base/company/${!this.dataForm.id ? 'save' : 'update'}`,method: 'post',data: this.dataForm}).then(({data}) => {if (data && data.code === 0) {this.$message({message: '操作成功',type: 'success',duration: 1500})this.visible = falsethis.$emit('refreshDataList')}})}})},// 省市区选择处理handleChange (value) {let areaName = this.$refs.cas.getCheckedNodes()[0].pathLabelsthis.dataForm.province = areaName[0]this.dataForm.city = areaName[1]this.dataForm.district = areaName[2]}}}
</script>

二 测试

1 选择省市区

2 填充所在省、所在省、所在区,点击确定后,就可把选择的省市区存到后端数据库

三 参考

开发过程中遇到的形形色色的问题,可参考下面案例。

1 <elselect> 无法回显问题

https://www.bilibili.com/video/BV1np4y1C7Yf?p=74&spm_id_from=pageDriver&vd_source=668cbcfea0e58aaad4fe64d45cc738d2

2 前端使用elementui的级联选择器去显示省市区

https://blog.csdn.net/fortunate_leixin/article/details/120891798

3 el-cascader级联展开时,无法定位到子节点,去除末节点的children

https://blog.csdn.net/m0_38004177/article/details/107014243

4 el-cascader样式错乱

https://www.cnblogs.com/yuedy/articles/13235739.html

https://blog.csdn.net/liubangbo/article/details/125640914

5 el-cascader 显示 label 的值

https://blog.csdn.net/qq_53755493/article/details/127868836

6 vue + element-ui 实现省市区三级联动选择组件

https://blog.csdn.net/keke11211/article/details/119780670

省市区三级联动选择组件前端实现相关推荐

  1. 【Android笔记】使用v5.2.2最新版CityPickerView实现省市区三级联动选择

    目录 1. CityPickerView开源框架简介 2. CityPickerView在Android程序中的使用 2.1 build.gradle(Module:app)添加依赖 2.1.1 安装 ...

  2. web 端 省市区三级联动选择框

    web 端 省市区三级联动选择框 <!DOCTYPE html> <html lang="en"> <head><meta charset ...

  3. vue项目中使用地址选择插件v-distpicker,省市区三级联动选择

    步骤: 1. npm install v-distpicker --save 2. import VDistpicker from 'v-distpicker' 3. export default { ...

  4. html省市区选择器代码,js实现一个省市区三级联动选择框代码分享

    运行效果: ================================================= 部分代码: ====================================== ...

  5. laraveladmin省市区三级联动

    Distpicker是一个中国省市区三级联动选择组件,这个包是基于Distpicker的laravel-admin扩展,用来将Distpicker集成进laravel-admin的表单中 安装 com ...

  6. vue实现省市区三级联动地址选择组件

    昨天收到一个新的需求,需要选择地址,因此就要做一个省市区三级联动的组件来使用,在网上找了一些资源,然后进行了尝试,没想到就这么成功了!要记录一下方便后续使用. 效果如下:  下面就记录一下代码叭! 一 ...

  7. ios收货地址三级联动选择

    这次的需求,是省市区三级联动选择,并且市的选择要根据省的id,然后区的选择要根据市的id 每次都要进行网络请求,关键代码,其实是 //监听轮子的移动 - (void)pickerView:(UIPic ...

  8. range 小程序picker_微信小程序-官方组件picker云开发省市区三级联动选择器

    早在一年多以前,我写过一篇微信小程序-省市区县三级联动选择器的文章,那时候小程序刚起步,网上找了很久没有相关的文献,官方也没有相关的组件,我就自己动手写了一个,也因为刚开始接触写的不是很好. 当时省市 ...

  9. element-ui省市区三级联动:选择即改变

    element-ui 省市区三级联动:选择即改变 注意: 阅读本文,经验传授: vue.js单组件引入外部或自定义的 .js文件,并调用文件内三级联动的 json数据: 自定义设置 默认地址,结合js ...

最新文章

  1. 计算机基础知识精品课程,计算机应用基础精品课
  2. Linux内核中的进程组及会话
  3. 【QGIS入门实战精品教程】3.2:QGIS如何打开ArcGIS创建的个人数据库(MDB)?
  4. Python chr 函数 - Python零基础入门教程
  5. JS逆向笔记-记录某测试论坛的js逆向练习
  6. idea的英文是什么意思_idealisation是什么意思中文翻译
  7. 利用networkx求解网络的重叠度
  8. 【已解决】wordpress文章页面如何去掉特色图像
  9. 网站获取ip代码怎么写_大学生写论文必备技能:怎么免费获取外文文献并下载...
  10. To XSS or not ? 杂谈
  11. 卫星地图破坏男女恋人之间的关系
  12. 用HTML写手机QQ登录界面
  13. Zoned-Storage - 对ZNS块设备进行基准测试
  14. 农产品商铺商城小程序(JavaSSM+微信小程序)
  15. 手写Hashmap第二版
  16. 什么是JSONP协议 及对JSONP的改进
  17. 移动域全链路可观测架构和关键技术
  18. 【Android驱动】aw9106驱动代码流程
  19. requests模块用法举例
  20. 银行的存款利率是怎么计算的?

热门文章

  1. 运行OpenCV编写的函数时提示“应用程序无法正常启动(0xC000001b)”的解决办法
  2. 路由器桥接dns服务器未响应,华为WS5200无线桥接(Wi-Fi中继)的设置方法?
  3. python内存管理与垃圾回收
  4. spring mvc 中Timestamp 日期的转换
  5. Spring Boot 实体类 Entity的自动生成,利用Python实现 sql 语句快速转换成 Java 代码(一)
  6. 基于smiles的神经网络预测分子性质
  7. typedef 学习
  8. 高级java面试题记录(二)
  9. linux命令-按照文件名长度排序
  10. Photoshop_CS6永久验证的方法