Giter VIP home page Giter VIP logo

vue-area-linkage's Introduction

npm-version license

vue-area-linkage

省市区联动选择. 组合数据来源:area-data

Installation

Install the pkg with npm:

// v5之前的版本
npm i --save vue-area-linkage

// v5及之后的版本
npm i --save vue-area-linkage area-data

or yarn

// v5之前的版本
yarn add vue-area-linkage

// v5及之后的版本
yarn add vue-area-linkage area-data

Usage

import Vue from 'vue';
import { pca, pcaa } from 'area-data'; // v5 or higher
import 'vue-area-linkage/dist/index.css'; // v2 or higher
import VueAreaLinkage from 'vue-area-linkage';

Vue.use(VueAreaLinkage)
// v5之前的版本
<area-select v-model="selected"></area-select>
<area-cascader v-model="selected2"></area-cascader>

// v5及之后的版本
<area-select v-model="selected" :data="pca"></area-select> // 省市
// 省市区:<area-select v-model="selected" :data="pcaa"></area-select>
<area-cascader v-model="selected2" :data="pca"></area-cascader> // 省市
// 省市区:<area-cascader v-model="selected2" :data="pcaa"></area-cascader>

//setting
<area-select type='all' :level='2' v-model="selected" :data="pcaa"></area-select>
<area-cascader type='all' v-model="selected2" :level='1' :data="pcaa"></area-cascader>

More demo to visit here.

On Demand Import

version >= 2.1.2

安装 babel-plugin-on-demand-import:

npm i babel-plugin-on-demand-import -D

修改 .babelrc:

{
    // ...
    "plugins": [
        ["on-demand-import" {
            "libraryName": "vue-area-linkage",
            "libraryPath": "dist/lib"
        }]
    ]
}
import 'vue-area-linkage/dist/index.css'; // v2 or higher
import pcaa from 'area-data/pcaa';
// Only import AreaCascader component
import { AreaCascader } from 'vue-area-linkage';
Vue.use(AreaCascader);

<area-cascader v-model="val" level={1} :data="pcaa"></area-cascader>

// Only import AreaSelect component
import { AreaSelect } from 'vue-area-linkage';
Vue.use(AreaSelect);

<area-select v-model="val2" level={2} :data="pcaa"></area-select>

属性

area-select 组件

参数 类型 可选值 默认值 说明
type String all/code/text code 设置返回的数据格式
placeholders Array - [] 设置 placeholder text
level Number 0/1/2 1 设置联动层级(0-只选省份/1-省市联动/2-省市区联动)
size String small/medium/large medium 设置输入框的大小
disabled Boolean - false 是否禁用
data Object - - 地区数据(v5需要传入)
icon String - area-select-icon 自定义下拉小图标
disableLinkage Boolean - true 地区选择是否进行联动

v4 仅支持省市区联动,即 v4 不再支持 level 的值为 3(省市区街联动)

area-cascader 组件

参数 类型 可选值 默认值 说明
type String all/code/text code 设置返回的数据格式
placeholder String - '' 设置 placeholder text
level Number 0/1 0 设置联动层级(0-省市联动/1-省市区联动)
size String small/medium/large medium 设置输入框的大小
separator String - '-' 显示选中文本的分隔符
disabled Boolean - false 是否禁用
data Object - - 地区数据(v5需要传入)

事件

事件名 说明 参数
change 选中值发生变化时触发 目前选择的值

change 事件在 1.2.5 之后提供

Related Project

License

MIT.

vue-area-linkage's People

Contributors

dwqs avatar ice6 avatar wuliupo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vue-area-linkage's Issues

安装时报错

无论是npm还是yarn安装均报错,npm提示说这是 npm自己的问题,yarn 报错如下:

error An unexpected error occurred: "ENOENT: no such file or directory, copyfile 'C:\\Users\\Administrator\\AppData\\Local\\Yarn\\Cache\\v6\\npm-ms-2.1.2-d09d1f 357b443f493382a8eb3ccd183872ae6009-integrity\\node_modules\\ms\\index.js' -> 'E: \\gitee\\KeJiTuan\\frontEnd\\node_modules\\@babel\\core\\node_modules\\ms\\index .js'". info If you think this is a bug, please open a bug report with the information p rovided in "E:\\gitee\\KeJiTuan\\frontEnd\\yarn-error.log". info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this comm and.

关于 5.0 data

5.0 之后每个使用的页面都要 import { pca, pcaa } from 'area-data'; // v5 or higher 这样导入数据吗?

关于动态绑定值的问题

默认情况下是可以通过v-model绑定选中的,但是从api 请求回来的数据时,无法将数据重置到上次保存的数据,麻烦帮忙看看谢谢!

1

2

这样是可以选中的,但是如下图就选不中了
3

还有就是怎么初始化值type=‘all’ 时为请选择?

关于设置默认值的问题

vue-area-linkage当type设置为all 时,初始化数据空数([])组时,在下拉选择时,总会报错,[vue-area-linkage]: 传入的默认值参数有误,请问怎么解决,谢谢🙏

disableLinkage字段README.md文档错误

README.md中地区选择是否进行联动字段disableLinkage默认值为true,但实际代码使用中默认值是false。不知是文档错误还是组件功能逻辑错误。
image
image

样式有些问题

好像有些错位,修改样式也不起作用。
image

<el-form-item prop="areas" label="地区">
      <area-select :level="2" v-model="shopForm.areas" :data="pca" size="large" class="areas-wrapper" type="text"/>
    </el-form-item>

设置默认值代码

解析出来是这个样子的
“'选择省', '选择市'] v-model='selected'>”

bug

安装完没样式!

v2.0.0

v2.0.0 将去掉对 Element UI 的依赖

缺少值

深圳市缺少了龙华区、坪山区、光明区

有一个Bug,影响el-dialog中的el-select

如题,不知道是不是bug。但是我在没有引用这个库的时候,el-select-dropdown的z-index比v-modal高,会显示出来:

image

而如果我引用了这个库,el-select-dropdown的z-index就变得和v-modal一样了,无法显示在顶层,必须点第二次才会让el-select-dropdown的z-index比v-modal大,然后显示出来:
image

今天排查好久才排查出原因,目前不知道具体是为什么。

关于area-cascader 赋值问题

第一次赋值 假设为
辽宁省/丹东市/凤城市

代码如下



第二次我将query清空,但是还是显示上面的 辽宁省/丹东市/凤城市
请问下有清空的方法或方式么?

请问数组项是文本时,怎么设置默认值

area-cascader type='text' :level='1' v-model="value1" placeholder="请选择地址"></area-cascader
我用的是文本的数据,设置完地址后,要编辑修改数据是,怎么设置默认值(上回文本数据)?

change事件有问题

页面初始化配置完这个三级联动的插件之后,当我选择省,后面的区和市都没有选择,对应的change事件没有被触发,然后选择市,再选择区,选择完区以后,change事件才被触发;接下来重新选择省,change事件被触发了;
期望:初始化载入页面,三级联动插件配置完以后,第一次选择省change事件可以被触发

如何设置默认值

如何设置默认值

后台传给我的数据 是 汉字,但是文档是要求为 区域代码 440000,如何可以设置为汉字

for (let [key, val] of Object.entries(province)) {
        if (val === v1) {
          this.selected.splice(0, 0, key) // splice 进行提示
          const v = this.pca[key]
          for (let [key1, val1] of Object.entries(v)) {
            if (val1 === v2) {
              this.selected[1] = key1
            }
          }
        }
      }

结果是可以实现,但是会报错

** index.js?620f:3139 [vue-area-linkage]: 设置的默认值和 level 值不匹配**
这个是报错信息

可否在提出一层抽象以便适用于任何联动

你好,我有个想法,就是在 省-市-区-街道 再提出一层抽象,就是 UI + data = 联动,其中data有可能是2-4层之间,提供的json的数据 省[key1] - 市[key2]-区[key3]..., 其中key1,2,3...是可以自定义的,自定义的key并与json的key是一致的!这样就可以适用于了任何联动了,比如网站自定义,经营类型,省区等...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.