# iPicker **Repository Path**: waveBBGgit/iPicker ## Basic Information - **Project Name**: iPicker - **Description**: 无任何依赖的轻量级地区选择组件 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 41 - **Created**: 2020-03-24 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

iPicker

无任何依赖的轻量级地区选择组件

iPicker 是一个轻量级的地区选择组件,可以简单快速的对 “省市区” 进行选择
专门针对桌面端的现代高级浏览器,无任何第三方依赖完全使用原生 JavaScript 开发

查看在线示例


JSON 数据来源 area-data

## 安装组件 #### 本地引入 ```html ``` #### cdn 引入 ```html ``` #### npm 安装 ```javascript npm i new-ipicker -S ``` ```javascript const iPicker = require( "new-ipicker" ); ```
## 使用方法 #### 创建容器后,先获取 json 数据,然后调用 `iPicker` 方法即可: ```html
``` #### 也可以传入一个 Promise 对象或 jquery 的 Deferred 对象,iPicker 会自动调用 then 方法获取数据: ```html
``` #### 可以选择 cascader 主题 ```javascript $.getJSON( "area.json" ).then(function ( response ) { iPicker("#target", { data: response, type: "cascader" }); }) ``` #### 设置默认选中值 ```javascript $.getJSON( "area.json" ).then(function ( response ) { iPicker("#target", { data: response, selected: [ "230000", "230100", "230103" ] // 也可以是 name 形式 // selected: [ "黑龙江省", "哈尔滨市", "南岗区" ] }); }) ``` #### 监听选中项的变化 ```javascript $.getJSON( "area.json" ).then(function ( response ) { iPicker("#target", { data: response, onSelect: function ( code, name, all ) { // 有三种返回值(均为数组形式) console.log( code ); console.log( name ); console.log( all ); } }); }) ``` ## 组件方法 #### iPicker 提供了六个方法: ![输入图片说明](https://images.gitee.com/uploads/images/2020/0306/123227_4782b14c_5535128.png "iPicker.png") ```javascript var picker = iPicker( "#target", { ... } ); // 获取选中结果(前两种等效) iPicker.get( picker ); iPicker.get( picker, "code" ); iPicker.get( picker, "name" ); iPicker.get( picker, "all" ); // 清空选中结果 iPicker.clear( picker ); // 重置(恢复初始状态) iPicker.reset( picker ); // 启用(全部) iPicker.enabled( picker ); // 启用(指定层级,范围:0-2,仅限 select 主题模式下) iPicker.enabled( picker, [ 0, 1 ] ); // 禁用(全部) iPicker.disabled( picker ); // 禁用(指定层级,范围:0-2,仅限 select 主题模式下) iPicker.disabled( picker, [ 0, 1 ] ); ```
## 配置参数
参数 说明 类型 默认值
theme 主题模式,可选值:select, cascader String select
data 地区的 json 数据(必填项),可直接传入数据或传入 Promise Object {}
level 数据的展示层级,范围:0-2(代表 1-3 级,省-市-区) Number 2
width 展示框的宽度,单位:px,cascader 模式下建议适当的增加 Number 200
maxHeight 数据列表的最大高度,单位:px Number 300
activeColor 设置选中项的高亮颜色 String #00b8ff
disabled 默认禁用的展示框,设置为 true 时将禁用所有展示框;
在 select 模式下可传入数组形式,设置禁用指定层级的展示框,范围:0-2(代表 1-3 级,省-市-区)
Boolean / Array false
selected 默认选中项,可以是 name 或 code 形式 Array []
placeholder 展示框的占位文字,select 模式下是数组形式,cascader 模式下是字符串形式 String / Array [ "省", "市", "区" ]
onSelect 选择项改变时执行的回调函数,有 3 个回调参数:
1. code 数组
2. name 数组
3. code 与 name 的数组集合
Function 空函数

## 开源协议

MIT License


## 浏览器支持 | Chrome | Firefox | Opera | Edge | Safari | IE | | --- | --- | --- | --- | --- | --- | | 60+ | 60+ | 60+ | 17+ | 12+ | 11+ |