2.0.1 • Published 5 years ago

my-district v2.0.1

Weekly downloads
26
License
-
Repository
-
Last release
5 years ago

#效果


效果图

预览地址:https://huoguozhang.github.io/my-district/dist/

github:https://github.com/huoguozhang/my-district

#介绍:


vue + element-ui (el-select+el-option)的地区选择组件 实现了:省+市+区 #说明:


#使用


1 引入

// es6
// 全局
// main.js
import myDistrict from 'my-district'
Vue.use(myDistrict)
// 局部
// xxx.vue
<script>
import myDistrict from 'my-district'
export default {
    components: {
         myDistrict
     }
}
</script>

2 使用

<template>
      <myDistrict
        :province.sync="province"
        :city.sync="city"
        :area.sync="area"
      ></myDistrict>
</template>
  1. 参数说明 myDistrict Attributes

    参数说明类型可选值默认值
    provincestring----
    citystring----
    areastring----
    layoutLevels显示级别 1省2市3区 1 2 3 自由组合,但前面的值必须提供array1,2,3 构成的数组1,2,3
    uint样式长度单位stringpx,%等px
    sizeelement组件的sizestringmini,small,medium--
    selectWidthselect组件的宽度number--200
    spaceWidth两个select的间隙number--24

4 其他使用可与调取内置函数

名称说明参数用法
provinceArr省列表--
getCitys获取市列表,提供省中文名getCitys('浙江省')
getArea获取区县列表,提供省市中文名getAreas('浙江省', '杭州市')
import { getAreas, getCitys, provinceArr } from 'my-district'

5 和ui库的form表单结合,此处用的element,你可以使用其他的ui库,校验规则由你自己定义。

<template>
  <div id="app">
    <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
      <el-form-item prop="district">
        <myDistrict
          :province.sync="ruleForm.district.province"
          :city.sync="ruleForm.district.city"
          :area.sync="ruleForm.district.area"
        ></myDistrict>
      </el-form-item>
      <el-button @click="submitForm('ruleForm')">提交</el-button>
    </el-form>
  </div>
</template>

<script>
let checkDistrict= (rule, {province, city, area}, cb) => {
  if (!province) {
    cb(new Error('请选择省'))
  } else if (!city) {
    cb(new Error('请选择市'))
  } else if (!area) {
    cb(new Error('请选择区'))
  } else {
    cb()
  }
}
export default {
  name: 'app',
  data() {
    return {
      ruleForm: {
        district: {
          province: '',
          city: '',
          area: ''
        }
      },
      rules: {
        district: [
          {validator: checkDistrict, trigger: 'blur'},
          {validator: checkDistrict, trigger: 'change'}
        ]
      }
    }
  },
  methods: {
    submitForm(formName) {
      this.$refs[formName].validate((valid) => {
        if (valid) {
          alert('submit!')
        } else {
          // sconsole.log('error submit!!')
          return false
        }
      })
    }
  }
}
</script>

#question:


  1. 数据不对怎么办? 可以更改china.json文件,可以删改某项。
...
        "name": "天津市",
        "child": [
            {
                "name": "天津市",
                "child": [
                    {"value":"和平区"},
                    {"value":"河东区"},
                    {"value":"河西区"},
                    {"value":"南开区"},
                    {"value":"河北区"},
                    {"value":"红桥区"},
                    {"value":"东丽区"},
                    {"value":"西青区"},
                    {"value":"津南区"},
                    {"value":"北辰区"},
                    {"value":"武清区"},
                    {"value":"宝坻区"},
                    {"value":"滨海新区"},
                    {"value":"宁河县"},
                    {"value":"静海县"},
                    {"value":"蓟州县"},
                    {"value":"xxx"} // 你需要增加的
                ]
            }
      ...

执行npm run make:area-json

2.其他问题可以提issue

huoguozhang 3.感谢

OrionwlCutiePanther整理的地区json文件

2.0.1

5 years ago

2.0.0

5 years ago

1.0.0

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago