省市区三级联动选择组件前端实现
一 代码
<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
省市区三级联动选择组件前端实现相关推荐
- 【Android笔记】使用v5.2.2最新版CityPickerView实现省市区三级联动选择
目录 1. CityPickerView开源框架简介 2. CityPickerView在Android程序中的使用 2.1 build.gradle(Module:app)添加依赖 2.1.1 安装 ...
- web 端 省市区三级联动选择框
web 端 省市区三级联动选择框 <!DOCTYPE html> <html lang="en"> <head><meta charset ...
- vue项目中使用地址选择插件v-distpicker,省市区三级联动选择
步骤: 1. npm install v-distpicker --save 2. import VDistpicker from 'v-distpicker' 3. export default { ...
- html省市区选择器代码,js实现一个省市区三级联动选择框代码分享
运行效果: ================================================= 部分代码: ====================================== ...
- laraveladmin省市区三级联动
Distpicker是一个中国省市区三级联动选择组件,这个包是基于Distpicker的laravel-admin扩展,用来将Distpicker集成进laravel-admin的表单中 安装 com ...
- vue实现省市区三级联动地址选择组件
昨天收到一个新的需求,需要选择地址,因此就要做一个省市区三级联动的组件来使用,在网上找了一些资源,然后进行了尝试,没想到就这么成功了!要记录一下方便后续使用. 效果如下: 下面就记录一下代码叭! 一 ...
- ios收货地址三级联动选择
这次的需求,是省市区三级联动选择,并且市的选择要根据省的id,然后区的选择要根据市的id 每次都要进行网络请求,关键代码,其实是 //监听轮子的移动 - (void)pickerView:(UIPic ...
- range 小程序picker_微信小程序-官方组件picker云开发省市区三级联动选择器
早在一年多以前,我写过一篇微信小程序-省市区县三级联动选择器的文章,那时候小程序刚起步,网上找了很久没有相关的文献,官方也没有相关的组件,我就自己动手写了一个,也因为刚开始接触写的不是很好. 当时省市 ...
- element-ui省市区三级联动:选择即改变
element-ui 省市区三级联动:选择即改变 注意: 阅读本文,经验传授: vue.js单组件引入外部或自定义的 .js文件,并调用文件内三级联动的 json数据: 自定义设置 默认地址,结合js ...
最新文章
- 计算机基础知识精品课程,计算机应用基础精品课
- Linux内核中的进程组及会话
- 【QGIS入门实战精品教程】3.2:QGIS如何打开ArcGIS创建的个人数据库(MDB)?
- Python chr 函数 - Python零基础入门教程
- JS逆向笔记-记录某测试论坛的js逆向练习
- idea的英文是什么意思_idealisation是什么意思中文翻译
- 利用networkx求解网络的重叠度
- 【已解决】wordpress文章页面如何去掉特色图像
- 网站获取ip代码怎么写_大学生写论文必备技能:怎么免费获取外文文献并下载...
- To XSS or not ? 杂谈
- 卫星地图破坏男女恋人之间的关系
- 用HTML写手机QQ登录界面
- Zoned-Storage - 对ZNS块设备进行基准测试
- 农产品商铺商城小程序(JavaSSM+微信小程序)
- 手写Hashmap第二版
- 什么是JSONP协议 及对JSONP的改进
- 移动域全链路可观测架构和关键技术
- 【Android驱动】aw9106驱动代码流程
- requests模块用法举例
- 银行的存款利率是怎么计算的?
热门文章
- 运行OpenCV编写的函数时提示“应用程序无法正常启动(0xC000001b)”的解决办法
- 路由器桥接dns服务器未响应,华为WS5200无线桥接(Wi-Fi中继)的设置方法?
- python内存管理与垃圾回收
- spring mvc 中Timestamp 日期的转换
- Spring Boot 实体类 Entity的自动生成,利用Python实现 sql 语句快速转换成 Java 代码(一)
- 基于smiles的神经网络预测分子性质
- typedef 学习
- 高级java面试题记录(二)
- linux命令-按照文件名长度排序
- Photoshop_CS6永久验证的方法