Element UI 自定义省市区三级联动选择组件

这篇具有很好参考价值的文章主要介绍了Element UI 自定义省市区三级联动选择组件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一 自定义组件代码

1 文件存放位置

Element UI 自定义省市区三级联动选择组件

2 代码

<template>
  <div>
    <el-cascader
      ref="cas"
      expand-trigger="hover"
      style="width: 100%;"
      :options="options"
      v-model="value1"
      @change="handleChange"
      filterable
      :props="{value:'label'}"
      placeholder="省/市/区"
    ></el-cascader>
  </div>
</template>

<script>
  export default {
    name: 'regionCascader',
    props: ['value'],
    data () {
      return {
        options: [],
        selectedOptions: []
      }
    },
    computed: {
      value1: {
        set (val) {
          this.$emit('input', val)
        },
        get (val) {
          return this.value
        }
      }
    },
    mounted () {
      let page = this
      page.getNode()
    },
    methods: {
      handleChange (value) {
        this.$emit('provincesValueChang', this.$refs.cas.getCheckedNodes()[0].pathLabels)
      },

      getNode () {
        this.$http({
          url: `/base/division/pcd`,
          method: 'get'
        }).then(({data}) => {
          if (data && data.code === 0) {
            // eslint-disable-next-line no-useless-escape
            this.options = JSON.parse(JSON.stringify(data.options).replace(/\"children"\:\[]/g, '"no":0'))
          }
        })
      }
    }
  }
</script>

二 main.js 代码

import RegionCascader from './components/regionCascader'
Vue.use(RegionCascader)
Vue.component('regionCascader', RegionCascader)

三 使用方法

1 结构部分

<!-- 自定义省/市/区级联选择控件的使用 -->
<el-form-item label="省/市/区">
  <regionCascader
    @provincesValueChang="provincesValueChang"
    :value="region"
    @update:value="region=$event"
    style="width: 100%;"
  ></regionCascader>
</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>

2 js 数据部分

data () {
  return {
    region: '', // 自定义省/市/区级联选择控件用此数据
    visible: false,
    dataForm: {
      ......
      province: '', // 省
      city: '', // 市
      district: '', // 区
    },
    dataRule: {
      name: [
        {required: true, message: '名称不能为空', trigger: 'blur'}
      ]
    }
  }
},

3 js 方法部分

methods: {
  // 省市区选择处理
  provincesValueChang (value) {
    this.dataForm.province = value[0]
    this.dataForm.city = value[1]
    this.dataForm.district = value[2]
  }
}

四 测试

1 选择省、市、区

Element UI 自定义省市区三级联动选择组件

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

Element UI 自定义省市区三级联动选择组件

五 参考

1 element-ui如何使用el-cascader进行省市区的选择

https://blog.csdn.net/qq_42690194/article/details/125669141文章来源地址https://www.toymoban.com/news/detail-515640.html

到了这里,关于Element UI 自定义省市区三级联动选择组件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包