UNPKG

8.67 kBMarkdownView Raw
1| 参数 | 说明 | 类型 | 默认值 | 是否必传 |
2| --------------------- | ------------------------------------------------------------------------------------------------------------------------- | ----------------------- | --------- | -------- |
3| selectType | 类型('single' / 'multiple' / 'group') 分别代表单选、多选、分组单选 | string | single | No |
4| disabled | 该输入项是否禁用 | boolean | false | No |
5| placeHolder | 输入框的占位符 | string | | No |
6| hasError | 是否显示错误 | boolean | false | No |
7| isPreview | 是否用于表单展示态 | boolean | false | No |
8| value | 已选的值,需要与 options 中的 value 对应(如果是多选 value 默认使用','分开,如“1,2,3”,也可以用 splitKey 指定分隔符) | string | | No |
9| zIndex | 弹层的 z-index 值 | number | 199 | No |
10| stretch | 弹层是否根据父容器的大小进行拉伸,可选值包括 width、minWidth、height、minHeight | string | | No |
11| options | 可选项 | obj[] | | Yes |
12| isSearch | 是否开启搜索功能 | boolean | true | No |
13| optionSearch | 选项列表上是否显示搜索 | boolean | false | No |
14| hostSubmit | 多选模式下是否托管提交事件,如果托管,则弹层不会主动关闭,需要用户手动调用 callback | boolean | false | No |
15| onChange | 选中地区数据的回调,负责将值传回 form | (data,callback) => void | | No |
16| getPopupContainer | 弹层挂载的容器(默认是挂载到 body 下,通过此函数可以改变弹层挂载的节点) | Funtion | | No |
17| layerWidth | 如果不选择下拉宽度自适应,可以使用此属性自己控制宽度 | number | | No |
18| size | 选择框大小可配置 | small 、large 、normal | | normal |
19| displayLabel | 非空时,选择器中选中值的展示(解决异步数据源时,无法指定当前选中值的问题)'选项一,选项二',也可以通过 splitKey 指定分隔符 | string | | No |
20| showCheckAll | 多选模式是否显示全选 | | boolean | true | No |
21| onBlur | 失焦调用 | | (e)=>void | no | No |
22| extraCls | 自定义 selector class,一般用于覆盖组件默认样式使用 (2019-09-11 新增 api) | string | 无 | 否 |
23| caseSensitive | 搜索时是否大小写敏感 (2019-09-27 新增 api) | boolean | false | 否 |
24| optionSearchAutoFocus | 弹层内搜索框是否自动获取焦点(2019-10-15 新增) | boolean | false | 否 |
25| splitKey | 多选时传入 value 和 displayLabel 可以指定分隔符分割(2019-10-30 新增) | string | false | "," |
26
27### changelog
28
29###2019/10/30
30
31- 新增 splitKey,由于在复选下有些 value 或者 label 里有“,”号这个字符,导致组件内部通过“,”分割的逻辑不能做到支持,所以新增 splitKey 属性,在复选场景下组件使用者可以根据自身需要,将 value 或者 label 按照固定字符进行分割
32
33###2019/10/10
34
35- 变更 displayLabel 属性,移除对禁用状态的判断,指定了此属性且非空,选择器中直接展示此属性的值。【注意:更改选中数据后,需要同步修改该属性值】
36
37### 2019/09/27
38
39- 新增 caseSensitive 属性,搜索时是否大小写敏感
40
41### 2019/09/11
42
43- 新增 autoFocus 属性,是否挂载自动获焦
44
45###2019/09/09
46
47- 新增 onBlur 属性,选择器失焦时将会调用)
48 ###2019/09/03
49
50- 新增 displayLabel 属性,用于禁用状态下,选中值的展示(解决禁用没有数据源时,无法指定选中值的问题)
51
52### 2019/09/02
53
54- 新增 layerWidth 属性,用于控制下拉选择的层的宽度
55- 新增 size 属性,用于控制下拉选的大小
56
57##### 单选和多选的 options
58
59```javascript
60const options2 = [
61 {
62 label: 'aaabbb',
63 value: 0
64 },
65 {
66 label: 'bbbccc',
67 value: 1
68 },
69 {
70 label: 'cccddd',
71 value: 2
72 },
73 {
74 label: 'dddeee',
75 value: 3
76 },
77 {
78 label: 'eeefff',
79 value: 4
80 },
81 {
82 label: 'fffggg',
83 value: 5
84 },
85 {
86 label: 'ggghhh',
87 value: 6
88 },
89 {
90 label: 'hhhiii',
91 value: 7
92 },
93 {
94 label: 'jjj',
95 value: 8
96 },
97 {
98 label: 'kkk',
99 value: 9
100 },
101 {
102 label: 'LLL',
103 value: 10
104 },
105 {
106 label: 'MMM',
107 value: 11
108 },
109 {
110 label: 'NNN',
111 value: 12
112 },
113 {
114 label: 'OOO',
115 value: 13
116 }
117];
118```
119
120##### 分组单选的 options
121
122```javascript
123const options1 = [
124 {
125 label: '分类一',
126 children: [
127 {
128 label:
129 '在职员工测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试',
130 value: 'employee'
131 },
132 {
133 label: '退休员工',
134 value: 'retiredemployee'
135 },
136 {
137 label: '离职员工',
138 value: 'leavedemployee'
139 }
140 ]
141 },
142 {
143 label: '分类三',
144 children: [
145 {
146 label: '在职员工1',
147 value: 'employee111'
148 },
149 {
150 label: '退休员工2',
151 value: 'retiredemployee1111'
152 },
153 {
154 label: '离职员工3',
155 value: 'leavedemployee222'
156 }
157 ]
158 }
159];
160```
161
162##### hostSubmit 说明
163
164###### 此 api 在多选模式下起作用,表示是否要自己托管确定按钮的点击事件
165
166- 如果值为 true 表示要托管,此时的 onChange 回调函数的格式为(data,callback) => void。
167- 若值为 false,表示不托管此事件,则 onChange 的回调函数格式为(data) => void。
168
169###### 什么情况下会使用此 api
170
171- 希望在 onChange 接受到选中的之后,立即做一些自定义验证,根据验证结果来决定是否要关闭多选弹层
172
173###### 什么情况下不会使用此 api
174
175- 单选模式不会使用此 api
176- 不需要在onChange中做立即验证逻辑
177
178###### 托管模式下的示例
179
180```javascript
181const onChange = (data, callback) => {
182 if (!data) {
183 alert('必须选中某个选项');
184 } else {
185 callback();
186 }
187};
188```
189
190###### 指定挂载点的示例
191
192```javascript
193const getPopupContainer = trigger => {
194 return trigger.parentNode;
195};
196```