@vxe-ui/plugin-render-element 3.0.0 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/README.md +154 -154
- package/dist/all.common.js +14 -53
- package/dist/form/index.js +1 -48
- package/dist/index.common.js +12 -4
- package/dist/index.js +12 -4
- package/dist/index.umd.js +14 -53
- package/dist/index.umd.min.js +1 -1
- package/dist/table/index.js +1 -1
- package/package.json +73 -73
- package/src/form/index.ts +359 -406
- package/src/index.ts +85 -76
- package/src/table/index.ts +628 -627
- package/types/index.d.ts +12 -12
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2019 Xu Liangzhan
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2019 Xu Liangzhan
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
21
|
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,154 +1,154 @@
|
|
|
1
|
-
# @vxe-ui/plugin-render-element
|
|
2
|
-
|
|
3
|
-
[Vxe UI](https://vxeui.com/) plug-in for compatibility with the [element-ui](https://www.npmjs.com/package/element-ui) component.
|
|
4
|
-
|
|
5
|
-
## Compatibility
|
|
6
|
-
|
|
7
|
-
It corresponds to [vxe-table v3](https://www.npmjs.com/package/vxe-table) or [vxe-pc-ui v3](https://www.npmjs.com/package/vxe-pc-ui)
|
|
8
|
-
|
|
9
|
-
## Installing
|
|
10
|
-
|
|
11
|
-
```shell
|
|
12
|
-
npm install @vxe-ui/plugin-render-element
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
```javascript
|
|
16
|
-
// ...
|
|
17
|
-
// Use vxe-pc-ui
|
|
18
|
-
import { VxeUI } from 'vxe-pc-ui'
|
|
19
|
-
// Use vxe-table
|
|
20
|
-
// import { VxeUI } from 'vxe-table'
|
|
21
|
-
import VxeUIPluginRenderElement from '@vxe-ui/plugin-render-element'
|
|
22
|
-
import '@vxe-ui/plugin-render-element/dist/style.css'
|
|
23
|
-
// ...
|
|
24
|
-
|
|
25
|
-
VxeUI.use(VxeUIPluginRenderElement)
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## API
|
|
29
|
-
|
|
30
|
-
### cell-render 默认的渲染配置项说明
|
|
31
|
-
|
|
32
|
-
| 属性 | 描述 | 类型 | 可选值 | 默认值 |
|
|
33
|
-
|------|------|-----|-----|-----|
|
|
34
|
-
| name | 支持的渲染组件 | String | ElInput, ElAutocomplete, ElInputNumber, ElSwitch, ElRate, ElSlider, ElButton, ElButtons | — |
|
|
35
|
-
| attrs | 渲染组件附加属性,参数请查看被渲染的 Component attrs | Object | — | {} |
|
|
36
|
-
| props | 渲染组件附加属性,参数请查看被渲染的 Component props | Object | — | {} |
|
|
37
|
-
| options | 只对 name=ElSelect 有效,下拉组件选项列表 | Array | — | [] |
|
|
38
|
-
| optionProps | 只对 name=ElSelect 有效,下拉组件选项属性参数配置 | Object | — | { value: 'value', label: 'label' } |
|
|
39
|
-
| optionGroups | 只对 name=ElSelect 有效,下拉组件分组选项列表 | Array | — | [] |
|
|
40
|
-
| optionGroupProps | 只对 name=ElSelect 有效,下拉组件分组选项属性参数配置 | Object | — | { options: 'options', label: 'label' } |
|
|
41
|
-
| events | 渲染组件附加事件,参数为 ( {row,rowIndex,column,columnIndex}, ...Component arguments ) | Object | — | — |
|
|
42
|
-
|
|
43
|
-
### edit-render 可编辑渲染器配置项说明
|
|
44
|
-
|
|
45
|
-
| 属性 | 描述 | 类型 | 可选值 | 默认值 |
|
|
46
|
-
|------|------|-----|-----|-----|
|
|
47
|
-
| name | 支持的渲染组件 | String | ElInput, ElAutocomplete, ElInputNumber, ElSelect, ElCascader, ElTimeSelect, ElTimePicker, ElDatePicker, ElSwitch, ElRate, ElSlider, ElButton, ElButtons | — |
|
|
48
|
-
| attrs | 渲染组件附加属性,参数请查看被渲染的 Component attrs | Object | — | {} |
|
|
49
|
-
| props | 渲染组件附加属性,参数请查看被渲染的 Component props | Object | — | {} |
|
|
50
|
-
| options | 只对 name=ElSelect 有效,下拉组件选项列表 | Array | — | [] |
|
|
51
|
-
| optionProps | 只对 name=ElSelect 有效,下拉组件选项属性参数配置 | Object | — | { value: 'value', label: 'label' } |
|
|
52
|
-
| optionGroups | 只对 name=ElSelect 有效,下拉组件分组选项列表 | Array | — | [] |
|
|
53
|
-
| optionGroupProps | 只对 name=ElSelect 有效,下拉组件分组选项属性参数配置 | Object | — | { options: 'options', label: 'label' } |
|
|
54
|
-
| events | 渲染组件附加事件,参数为 ( {row,rowIndex,column,columnIndex}, ...Component arguments ) | Object | — | — |
|
|
55
|
-
|
|
56
|
-
### filter-render 筛选渲染器配置项说明
|
|
57
|
-
|
|
58
|
-
| 属性 | 描述 | 类型 | 可选值 | 默认值 |
|
|
59
|
-
|------|------|-----|-----|-----|
|
|
60
|
-
| name | 支持的渲染组件 | String | ElInput, ElInputNumber, ElAutocomplete, ElSelect, ElDatePicker, ElSwitch, ElRate, ElSlider | — |
|
|
61
|
-
| attrs | 渲染组件附加属性,参数请查看被渲染的 Component attrs | Object | — | {} |
|
|
62
|
-
| props | 渲染组件附加属性,参数请查看被渲染的 Component props | Object | — | {} |
|
|
63
|
-
| options | 只对 name=ElSelect 有效,下拉组件选项列表 | Array | — | [] |
|
|
64
|
-
| optionProps | 只对 name=ElSelect 有效,下拉组件选项属性参数配置 | Object | — | { value: 'value', label: 'label' } |
|
|
65
|
-
| optionGroups | 只对 name=ElSelect 有效,下拉组件分组选项列表 | Array | — | [] |
|
|
66
|
-
| optionGroupProps | 只对 name=ElSelect 有效,下拉组件分组选项属性参数配置 | Object | — | { options: 'options', label: 'label' } |
|
|
67
|
-
| events | 渲染组件附加事件,参数为 ( {}, ...Component arguments ) | Object | — | — |
|
|
68
|
-
|
|
69
|
-
### item-render 表单-项渲染器配置项说明
|
|
70
|
-
|
|
71
|
-
| 属性 | 描述 | 类型 | 可选值 | 默认值 |
|
|
72
|
-
|------|------|-----|-----|-----|
|
|
73
|
-
| name | 支持的渲染组件 | String | ElInput, ElInputNumber, ElAutocomplete, ElSelect, ElDatePicker, ElSwitch, ElRate, ElSlider, ElRadio, ElCheckbox, ElButton, ElButtons | — |
|
|
74
|
-
| attrs | 渲染组件附加属性,参数请查看被渲染的 Component attrs | Object | — | {} |
|
|
75
|
-
| props | 渲染组件附加属性,参数请查看被渲染的 Component props | Object | — | {} |
|
|
76
|
-
| options | 只对 name=ElSelect 有效,下拉组件选项列表 | Array | — | [] |
|
|
77
|
-
| optionProps | 只对 name=ElSelect 有效,下拉组件选项属性参数配置 | Object | — | { value: 'value', label: 'label' } |
|
|
78
|
-
| optionGroups | 只对 name=ElSelect 有效,下拉组件分组选项列表 | Array | — | [] |
|
|
79
|
-
| optionGroupProps | 只对 name=ElSelect 有效,下拉组件分组选项属性参数配置 | Object | — | { options: 'options', label: 'label' } |
|
|
80
|
-
| events | 渲染组件附加事件,参数为 ( {}, ...Component arguments ) | Object | — | — |
|
|
81
|
-
|
|
82
|
-
### 表单设计器配置项
|
|
83
|
-
|
|
84
|
-
| 描述 |
|
|
85
|
-
|------|
|
|
86
|
-
| 'ElInputWidget', 'ElTextareaWidget', 'ElNumberInputWidget', 'ElDatePickerWidget', 'ElSelectWidget', 'ElRadioWidget', 'ElCheckboxWidget', 'ElSwitchWidget' |
|
|
87
|
-
|
|
88
|
-
## Cell demo
|
|
89
|
-
|
|
90
|
-
```html
|
|
91
|
-
<vxe-table
|
|
92
|
-
height="600"
|
|
93
|
-
:data="tableData"
|
|
94
|
-
:edit-config="{trigger: 'click', mode: 'cell'}">
|
|
95
|
-
<vxe-column field="name" title="Name" :edit-render="{name: 'ElInput'}"></vxe-column>
|
|
96
|
-
<vxe-column field="age" title="Age" :edit-render="{name: 'ElInputNumber'}"></vxe-column>
|
|
97
|
-
<vxe-column field="date" title="Date" width="200" :edit-render="{name: 'ElDatePicker'}"></vxe-column>
|
|
98
|
-
</vxe-table>
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
```javascript
|
|
102
|
-
export default {
|
|
103
|
-
data () {
|
|
104
|
-
return {
|
|
105
|
-
tableData: [
|
|
106
|
-
{ id: 100, name: 'test0', age: 28, sex: '1', date: '' },
|
|
107
|
-
{ id: 101, name: 'test1', age: 32, sex: '0', date: '' },
|
|
108
|
-
{ id: 102, name: 'test2', age: 36, sex: '1', date: '' }
|
|
109
|
-
]
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## Filter demo
|
|
116
|
-
|
|
117
|
-
```html
|
|
118
|
-
<vxe-table
|
|
119
|
-
height="600"
|
|
120
|
-
:data="tableData">
|
|
121
|
-
<vxe-column field="name" title="Name":filters="nameOptions" :filter-render="{name: 'ElInput'}"></vxe-column>
|
|
122
|
-
<vxe-column field="age" title="Age"></vxe-column>
|
|
123
|
-
<vxe-column field="date" title="Date" ></vxe-column>
|
|
124
|
-
</vxe-table>
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
```javascript
|
|
128
|
-
import { defineComponent } from 'vue'
|
|
129
|
-
|
|
130
|
-
export default defineComponent({
|
|
131
|
-
setup () {
|
|
132
|
-
return {
|
|
133
|
-
nameOptions: [
|
|
134
|
-
{ data: '' }
|
|
135
|
-
],
|
|
136
|
-
tableData: [
|
|
137
|
-
{ id: 100, name: 'test0', age: 28, date: null },
|
|
138
|
-
{ id: 101, name: 'test1', age: 32, date: null },
|
|
139
|
-
{ id: 102, name: 'test2', age: 36, date: null }
|
|
140
|
-
]
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
})
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
## Contributors
|
|
147
|
-
|
|
148
|
-
Thank you to everyone who contributed to this project.
|
|
149
|
-
|
|
150
|
-
[](https://github.com/x-extends/vxe-ui-plugins/graphs/contributors)
|
|
151
|
-
|
|
152
|
-
## License
|
|
153
|
-
|
|
154
|
-
[MIT](LICENSE) © 2019-present, Xu Liangzhan
|
|
1
|
+
# @vxe-ui/plugin-render-element
|
|
2
|
+
|
|
3
|
+
[Vxe UI](https://vxeui.com/) plug-in for compatibility with the [element-ui](https://www.npmjs.com/package/element-ui) component.
|
|
4
|
+
|
|
5
|
+
## Compatibility
|
|
6
|
+
|
|
7
|
+
It corresponds to [vxe-table v3](https://www.npmjs.com/package/vxe-table) or [vxe-pc-ui v3](https://www.npmjs.com/package/vxe-pc-ui)
|
|
8
|
+
|
|
9
|
+
## Installing
|
|
10
|
+
|
|
11
|
+
```shell
|
|
12
|
+
npm install @vxe-ui/plugin-render-element
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
```javascript
|
|
16
|
+
// ...
|
|
17
|
+
// Use vxe-pc-ui
|
|
18
|
+
import { VxeUI } from 'vxe-pc-ui'
|
|
19
|
+
// Use vxe-table
|
|
20
|
+
// import { VxeUI } from 'vxe-table'
|
|
21
|
+
import VxeUIPluginRenderElement from '@vxe-ui/plugin-render-element'
|
|
22
|
+
import '@vxe-ui/plugin-render-element/dist/style.css'
|
|
23
|
+
// ...
|
|
24
|
+
|
|
25
|
+
VxeUI.use(VxeUIPluginRenderElement)
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## API
|
|
29
|
+
|
|
30
|
+
### cell-render 默认的渲染配置项说明
|
|
31
|
+
|
|
32
|
+
| 属性 | 描述 | 类型 | 可选值 | 默认值 |
|
|
33
|
+
|------|------|-----|-----|-----|
|
|
34
|
+
| name | 支持的渲染组件 | String | ElInput, ElAutocomplete, ElInputNumber, ElSwitch, ElRate, ElSlider, ElButton, ElButtons | — |
|
|
35
|
+
| attrs | 渲染组件附加属性,参数请查看被渲染的 Component attrs | Object | — | {} |
|
|
36
|
+
| props | 渲染组件附加属性,参数请查看被渲染的 Component props | Object | — | {} |
|
|
37
|
+
| options | 只对 name=ElSelect 有效,下拉组件选项列表 | Array | — | [] |
|
|
38
|
+
| optionProps | 只对 name=ElSelect 有效,下拉组件选项属性参数配置 | Object | — | { value: 'value', label: 'label' } |
|
|
39
|
+
| optionGroups | 只对 name=ElSelect 有效,下拉组件分组选项列表 | Array | — | [] |
|
|
40
|
+
| optionGroupProps | 只对 name=ElSelect 有效,下拉组件分组选项属性参数配置 | Object | — | { options: 'options', label: 'label' } |
|
|
41
|
+
| events | 渲染组件附加事件,参数为 ( {row,rowIndex,column,columnIndex}, ...Component arguments ) | Object | — | — |
|
|
42
|
+
|
|
43
|
+
### edit-render 可编辑渲染器配置项说明
|
|
44
|
+
|
|
45
|
+
| 属性 | 描述 | 类型 | 可选值 | 默认值 |
|
|
46
|
+
|------|------|-----|-----|-----|
|
|
47
|
+
| name | 支持的渲染组件 | String | ElInput, ElAutocomplete, ElInputNumber, ElSelect, ElCascader, ElTimeSelect, ElTimePicker, ElDatePicker, ElSwitch, ElRate, ElSlider, ElButton, ElButtons | — |
|
|
48
|
+
| attrs | 渲染组件附加属性,参数请查看被渲染的 Component attrs | Object | — | {} |
|
|
49
|
+
| props | 渲染组件附加属性,参数请查看被渲染的 Component props | Object | — | {} |
|
|
50
|
+
| options | 只对 name=ElSelect 有效,下拉组件选项列表 | Array | — | [] |
|
|
51
|
+
| optionProps | 只对 name=ElSelect 有效,下拉组件选项属性参数配置 | Object | — | { value: 'value', label: 'label' } |
|
|
52
|
+
| optionGroups | 只对 name=ElSelect 有效,下拉组件分组选项列表 | Array | — | [] |
|
|
53
|
+
| optionGroupProps | 只对 name=ElSelect 有效,下拉组件分组选项属性参数配置 | Object | — | { options: 'options', label: 'label' } |
|
|
54
|
+
| events | 渲染组件附加事件,参数为 ( {row,rowIndex,column,columnIndex}, ...Component arguments ) | Object | — | — |
|
|
55
|
+
|
|
56
|
+
### filter-render 筛选渲染器配置项说明
|
|
57
|
+
|
|
58
|
+
| 属性 | 描述 | 类型 | 可选值 | 默认值 |
|
|
59
|
+
|------|------|-----|-----|-----|
|
|
60
|
+
| name | 支持的渲染组件 | String | ElInput, ElInputNumber, ElAutocomplete, ElSelect, ElDatePicker, ElSwitch, ElRate, ElSlider | — |
|
|
61
|
+
| attrs | 渲染组件附加属性,参数请查看被渲染的 Component attrs | Object | — | {} |
|
|
62
|
+
| props | 渲染组件附加属性,参数请查看被渲染的 Component props | Object | — | {} |
|
|
63
|
+
| options | 只对 name=ElSelect 有效,下拉组件选项列表 | Array | — | [] |
|
|
64
|
+
| optionProps | 只对 name=ElSelect 有效,下拉组件选项属性参数配置 | Object | — | { value: 'value', label: 'label' } |
|
|
65
|
+
| optionGroups | 只对 name=ElSelect 有效,下拉组件分组选项列表 | Array | — | [] |
|
|
66
|
+
| optionGroupProps | 只对 name=ElSelect 有效,下拉组件分组选项属性参数配置 | Object | — | { options: 'options', label: 'label' } |
|
|
67
|
+
| events | 渲染组件附加事件,参数为 ( {}, ...Component arguments ) | Object | — | — |
|
|
68
|
+
|
|
69
|
+
### item-render 表单-项渲染器配置项说明
|
|
70
|
+
|
|
71
|
+
| 属性 | 描述 | 类型 | 可选值 | 默认值 |
|
|
72
|
+
|------|------|-----|-----|-----|
|
|
73
|
+
| name | 支持的渲染组件 | String | ElInput, ElInputNumber, ElAutocomplete, ElSelect, ElDatePicker, ElSwitch, ElRate, ElSlider, ElRadio, ElCheckbox, ElButton, ElButtons | — |
|
|
74
|
+
| attrs | 渲染组件附加属性,参数请查看被渲染的 Component attrs | Object | — | {} |
|
|
75
|
+
| props | 渲染组件附加属性,参数请查看被渲染的 Component props | Object | — | {} |
|
|
76
|
+
| options | 只对 name=ElSelect 有效,下拉组件选项列表 | Array | — | [] |
|
|
77
|
+
| optionProps | 只对 name=ElSelect 有效,下拉组件选项属性参数配置 | Object | — | { value: 'value', label: 'label' } |
|
|
78
|
+
| optionGroups | 只对 name=ElSelect 有效,下拉组件分组选项列表 | Array | — | [] |
|
|
79
|
+
| optionGroupProps | 只对 name=ElSelect 有效,下拉组件分组选项属性参数配置 | Object | — | { options: 'options', label: 'label' } |
|
|
80
|
+
| events | 渲染组件附加事件,参数为 ( {}, ...Component arguments ) | Object | — | — |
|
|
81
|
+
|
|
82
|
+
### 表单设计器配置项
|
|
83
|
+
|
|
84
|
+
| 描述 |
|
|
85
|
+
|------|
|
|
86
|
+
| 'ElInputWidget', 'ElTextareaWidget', 'ElNumberInputWidget', 'ElDatePickerWidget', 'ElSelectWidget', 'ElRadioWidget', 'ElCheckboxWidget', 'ElSwitchWidget' |
|
|
87
|
+
|
|
88
|
+
## Cell demo
|
|
89
|
+
|
|
90
|
+
```html
|
|
91
|
+
<vxe-table
|
|
92
|
+
height="600"
|
|
93
|
+
:data="tableData"
|
|
94
|
+
:edit-config="{trigger: 'click', mode: 'cell'}">
|
|
95
|
+
<vxe-column field="name" title="Name" :edit-render="{name: 'ElInput'}"></vxe-column>
|
|
96
|
+
<vxe-column field="age" title="Age" :edit-render="{name: 'ElInputNumber'}"></vxe-column>
|
|
97
|
+
<vxe-column field="date" title="Date" width="200" :edit-render="{name: 'ElDatePicker'}"></vxe-column>
|
|
98
|
+
</vxe-table>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
```javascript
|
|
102
|
+
export default {
|
|
103
|
+
data () {
|
|
104
|
+
return {
|
|
105
|
+
tableData: [
|
|
106
|
+
{ id: 100, name: 'test0', age: 28, sex: '1', date: '' },
|
|
107
|
+
{ id: 101, name: 'test1', age: 32, sex: '0', date: '' },
|
|
108
|
+
{ id: 102, name: 'test2', age: 36, sex: '1', date: '' }
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Filter demo
|
|
116
|
+
|
|
117
|
+
```html
|
|
118
|
+
<vxe-table
|
|
119
|
+
height="600"
|
|
120
|
+
:data="tableData">
|
|
121
|
+
<vxe-column field="name" title="Name":filters="nameOptions" :filter-render="{name: 'ElInput'}"></vxe-column>
|
|
122
|
+
<vxe-column field="age" title="Age"></vxe-column>
|
|
123
|
+
<vxe-column field="date" title="Date" ></vxe-column>
|
|
124
|
+
</vxe-table>
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
```javascript
|
|
128
|
+
import { defineComponent } from 'vue'
|
|
129
|
+
|
|
130
|
+
export default defineComponent({
|
|
131
|
+
setup () {
|
|
132
|
+
return {
|
|
133
|
+
nameOptions: [
|
|
134
|
+
{ data: '' }
|
|
135
|
+
],
|
|
136
|
+
tableData: [
|
|
137
|
+
{ id: 100, name: 'test0', age: 28, date: null },
|
|
138
|
+
{ id: 101, name: 'test1', age: 32, date: null },
|
|
139
|
+
{ id: 102, name: 'test2', age: 36, date: null }
|
|
140
|
+
]
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
})
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Contributors
|
|
147
|
+
|
|
148
|
+
Thank you to everyone who contributed to this project.
|
|
149
|
+
|
|
150
|
+
[](https://github.com/x-extends/vxe-ui-plugins/graphs/contributors)
|
|
151
|
+
|
|
152
|
+
## License
|
|
153
|
+
|
|
154
|
+
[MIT](LICENSE) © 2019-present, Xu Liangzhan
|
package/dist/all.common.js
CHANGED
|
@@ -21,7 +21,7 @@ function defineFormRender(VxeUI) {
|
|
|
21
21
|
return cellValue === null || cellValue === undefined || cellValue === '';
|
|
22
22
|
}
|
|
23
23
|
function getOnName(type) {
|
|
24
|
-
return type;
|
|
24
|
+
return _xeUtils["default"].kebabCase(type);
|
|
25
25
|
}
|
|
26
26
|
function getModelProp(renderOpts) {
|
|
27
27
|
return 'value';
|
|
@@ -194,48 +194,6 @@ function defineFormRender(VxeUI) {
|
|
|
194
194
|
})];
|
|
195
195
|
};
|
|
196
196
|
}
|
|
197
|
-
/**
|
|
198
|
-
* 检查触发源是否属于目标节点
|
|
199
|
-
*/
|
|
200
|
-
function getEventTargetNode(evnt, container, className) {
|
|
201
|
-
var targetElem;
|
|
202
|
-
var target = evnt.target;
|
|
203
|
-
while (target && target.nodeType && target !== document) {
|
|
204
|
-
if (className && target.className && target.className.split && target.className.split(' ').indexOf(className) > -1) {
|
|
205
|
-
targetElem = target;
|
|
206
|
-
} else if (target === container) {
|
|
207
|
-
return {
|
|
208
|
-
flag: className ? !!targetElem : true,
|
|
209
|
-
container: container,
|
|
210
|
-
targetElem: targetElem
|
|
211
|
-
};
|
|
212
|
-
}
|
|
213
|
-
target = target.parentNode;
|
|
214
|
-
}
|
|
215
|
-
return {
|
|
216
|
-
flag: false
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
/**
|
|
220
|
-
* 事件兼容性处理
|
|
221
|
-
*/
|
|
222
|
-
function handleClearEvent(params) {
|
|
223
|
-
var $event = params.$event;
|
|
224
|
-
var bodyElem = document.body;
|
|
225
|
-
if (
|
|
226
|
-
// 远程搜索
|
|
227
|
-
getEventTargetNode($event, bodyElem, 'el-autocomplete-suggestion').flag ||
|
|
228
|
-
// 下拉框
|
|
229
|
-
getEventTargetNode($event, bodyElem, 'el-select-dropdown').flag ||
|
|
230
|
-
// 级联
|
|
231
|
-
getEventTargetNode($event, bodyElem, 'el-cascader__dropdown').flag || getEventTargetNode($event, bodyElem, 'el-cascader-menus').flag ||
|
|
232
|
-
// 日期
|
|
233
|
-
getEventTargetNode($event, bodyElem, 'el-time-panel').flag || getEventTargetNode($event, bodyElem, 'el-picker-panel').flag ||
|
|
234
|
-
// 颜色
|
|
235
|
-
getEventTargetNode($event, bodyElem, 'el-color-dropdown').flag) {
|
|
236
|
-
return false;
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
197
|
VxeUI.renderer.mixin({
|
|
240
198
|
ElAutocomplete: {
|
|
241
199
|
renderFormItemContent: createFormItemRender()
|
|
@@ -404,11 +362,6 @@ function defineFormRender(VxeUI) {
|
|
|
404
362
|
renderFormItemContent: defaultButtonsItemRender
|
|
405
363
|
}
|
|
406
364
|
});
|
|
407
|
-
VxeUI.interceptor.add('event.clearFilter', handleClearEvent);
|
|
408
|
-
VxeUI.interceptor.add('event.clearEdit', handleClearEvent);
|
|
409
|
-
VxeUI.interceptor.add('event.clearAreas', handleClearEvent);
|
|
410
|
-
// 兼容老版本
|
|
411
|
-
VxeUI.interceptor.add('event.clearActived', handleClearEvent);
|
|
412
365
|
}
|
|
413
366
|
},{"xe-utils":"xe-utils"}],2:[function(require,module,exports){
|
|
414
367
|
"use strict";
|
|
@@ -421,13 +374,21 @@ var _table = require("./table");
|
|
|
421
374
|
var _form = require("./form");
|
|
422
375
|
// eslint-disable-next-line no-unused-vars
|
|
423
376
|
var ElementPlus;
|
|
377
|
+
function getEventTarget(evnt) {
|
|
378
|
+
var target = evnt.target;
|
|
379
|
+
if (target && target.shadowRoot && evnt.composed) {
|
|
380
|
+
return evnt.composedPath()[0] || target;
|
|
381
|
+
}
|
|
382
|
+
return target;
|
|
383
|
+
}
|
|
424
384
|
/**
|
|
425
385
|
* 检查触发源是否属于目标节点
|
|
426
386
|
*/
|
|
427
387
|
function getEventTargetNode(evnt, container, className) {
|
|
428
388
|
var targetElem;
|
|
429
|
-
var target = evnt
|
|
430
|
-
|
|
389
|
+
var target = getEventTarget(evnt);
|
|
390
|
+
var rootEl = document.documentElement || document.querySelector('html');
|
|
391
|
+
while (target && target.nodeType && target !== rootEl) {
|
|
431
392
|
if (className && target.className && target.className.split && target.className.split(' ').indexOf(className) > -1) {
|
|
432
393
|
targetElem = target;
|
|
433
394
|
} else if (target === container) {
|
|
@@ -437,7 +398,7 @@ function getEventTargetNode(evnt, container, className) {
|
|
|
437
398
|
targetElem: targetElem
|
|
438
399
|
};
|
|
439
400
|
}
|
|
440
|
-
target = target.
|
|
401
|
+
target = target.parentElement;
|
|
441
402
|
}
|
|
442
403
|
return {
|
|
443
404
|
flag: false
|
|
@@ -468,7 +429,7 @@ var VxeUIPluginRenderElement = exports.VxeUIPluginRenderElement = {
|
|
|
468
429
|
ElementPlus = options ? options.ElementPlus : {};
|
|
469
430
|
// 检查版本
|
|
470
431
|
if (!/^(3)\./.test(VxeUI.uiVersion)) {
|
|
471
|
-
console.error('[plugin-render-element 3.
|
|
432
|
+
console.error('[@vxe-ui/plugin-render-element 3.0.2] Requires vxe-table 3.9.0+ version. https://vxeui.com/other3/#/plugin-export-xlsx/install');
|
|
472
433
|
}
|
|
473
434
|
(0, _table.defineTableRender)(VxeUI);
|
|
474
435
|
(0, _form.defineFormRender)(VxeUI);
|
|
@@ -506,7 +467,7 @@ function defineTableRender(VxeUI) {
|
|
|
506
467
|
return cellValue === null || cellValue === undefined || cellValue === '';
|
|
507
468
|
}
|
|
508
469
|
function getOnName(type) {
|
|
509
|
-
return type;
|
|
470
|
+
return _xeUtils["default"].kebabCase(type);
|
|
510
471
|
}
|
|
511
472
|
function getModelProp(renderOpts) {
|
|
512
473
|
return 'value';
|
package/dist/form/index.js
CHANGED
|
@@ -20,7 +20,7 @@ function defineFormRender(VxeUI) {
|
|
|
20
20
|
return cellValue === null || cellValue === undefined || cellValue === '';
|
|
21
21
|
}
|
|
22
22
|
function getOnName(type) {
|
|
23
|
-
return type;
|
|
23
|
+
return _xeUtils["default"].kebabCase(type);
|
|
24
24
|
}
|
|
25
25
|
function getModelProp(renderOpts) {
|
|
26
26
|
return 'value';
|
|
@@ -193,48 +193,6 @@ function defineFormRender(VxeUI) {
|
|
|
193
193
|
})];
|
|
194
194
|
};
|
|
195
195
|
}
|
|
196
|
-
/**
|
|
197
|
-
* 检查触发源是否属于目标节点
|
|
198
|
-
*/
|
|
199
|
-
function getEventTargetNode(evnt, container, className) {
|
|
200
|
-
var targetElem;
|
|
201
|
-
var target = evnt.target;
|
|
202
|
-
while (target && target.nodeType && target !== document) {
|
|
203
|
-
if (className && target.className && target.className.split && target.className.split(' ').indexOf(className) > -1) {
|
|
204
|
-
targetElem = target;
|
|
205
|
-
} else if (target === container) {
|
|
206
|
-
return {
|
|
207
|
-
flag: className ? !!targetElem : true,
|
|
208
|
-
container: container,
|
|
209
|
-
targetElem: targetElem
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
target = target.parentNode;
|
|
213
|
-
}
|
|
214
|
-
return {
|
|
215
|
-
flag: false
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* 事件兼容性处理
|
|
220
|
-
*/
|
|
221
|
-
function handleClearEvent(params) {
|
|
222
|
-
var $event = params.$event;
|
|
223
|
-
var bodyElem = document.body;
|
|
224
|
-
if (
|
|
225
|
-
// 远程搜索
|
|
226
|
-
getEventTargetNode($event, bodyElem, 'el-autocomplete-suggestion').flag ||
|
|
227
|
-
// 下拉框
|
|
228
|
-
getEventTargetNode($event, bodyElem, 'el-select-dropdown').flag ||
|
|
229
|
-
// 级联
|
|
230
|
-
getEventTargetNode($event, bodyElem, 'el-cascader__dropdown').flag || getEventTargetNode($event, bodyElem, 'el-cascader-menus').flag ||
|
|
231
|
-
// 日期
|
|
232
|
-
getEventTargetNode($event, bodyElem, 'el-time-panel').flag || getEventTargetNode($event, bodyElem, 'el-picker-panel').flag ||
|
|
233
|
-
// 颜色
|
|
234
|
-
getEventTargetNode($event, bodyElem, 'el-color-dropdown').flag) {
|
|
235
|
-
return false;
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
196
|
VxeUI.renderer.mixin({
|
|
239
197
|
ElAutocomplete: {
|
|
240
198
|
renderFormItemContent: createFormItemRender()
|
|
@@ -403,9 +361,4 @@ function defineFormRender(VxeUI) {
|
|
|
403
361
|
renderFormItemContent: defaultButtonsItemRender
|
|
404
362
|
}
|
|
405
363
|
});
|
|
406
|
-
VxeUI.interceptor.add('event.clearFilter', handleClearEvent);
|
|
407
|
-
VxeUI.interceptor.add('event.clearEdit', handleClearEvent);
|
|
408
|
-
VxeUI.interceptor.add('event.clearAreas', handleClearEvent);
|
|
409
|
-
// 兼容老版本
|
|
410
|
-
VxeUI.interceptor.add('event.clearActived', handleClearEvent);
|
|
411
364
|
}
|
package/dist/index.common.js
CHANGED
|
@@ -8,13 +8,21 @@ var _table = require("./table");
|
|
|
8
8
|
var _form = require("./form");
|
|
9
9
|
// eslint-disable-next-line no-unused-vars
|
|
10
10
|
var ElementPlus;
|
|
11
|
+
function getEventTarget(evnt) {
|
|
12
|
+
var target = evnt.target;
|
|
13
|
+
if (target && target.shadowRoot && evnt.composed) {
|
|
14
|
+
return evnt.composedPath()[0] || target;
|
|
15
|
+
}
|
|
16
|
+
return target;
|
|
17
|
+
}
|
|
11
18
|
/**
|
|
12
19
|
* 检查触发源是否属于目标节点
|
|
13
20
|
*/
|
|
14
21
|
function getEventTargetNode(evnt, container, className) {
|
|
15
22
|
var targetElem;
|
|
16
|
-
var target = evnt
|
|
17
|
-
|
|
23
|
+
var target = getEventTarget(evnt);
|
|
24
|
+
var rootEl = document.documentElement || document.querySelector('html');
|
|
25
|
+
while (target && target.nodeType && target !== rootEl) {
|
|
18
26
|
if (className && target.className && target.className.split && target.className.split(' ').indexOf(className) > -1) {
|
|
19
27
|
targetElem = target;
|
|
20
28
|
} else if (target === container) {
|
|
@@ -24,7 +32,7 @@ function getEventTargetNode(evnt, container, className) {
|
|
|
24
32
|
targetElem: targetElem
|
|
25
33
|
};
|
|
26
34
|
}
|
|
27
|
-
target = target.
|
|
35
|
+
target = target.parentElement;
|
|
28
36
|
}
|
|
29
37
|
return {
|
|
30
38
|
flag: false
|
|
@@ -55,7 +63,7 @@ var VxeUIPluginRenderElement = exports.VxeUIPluginRenderElement = {
|
|
|
55
63
|
ElementPlus = options ? options.ElementPlus : {};
|
|
56
64
|
// 检查版本
|
|
57
65
|
if (!/^(3)\./.test(VxeUI.uiVersion)) {
|
|
58
|
-
console.error('[plugin-render-element 3.
|
|
66
|
+
console.error('[@vxe-ui/plugin-render-element 3.0.2] Requires vxe-table 3.9.0+ version. https://vxeui.com/other3/#/plugin-export-xlsx/install');
|
|
59
67
|
}
|
|
60
68
|
(0, _table.defineTableRender)(VxeUI);
|
|
61
69
|
(0, _form.defineFormRender)(VxeUI);
|
package/dist/index.js
CHANGED
|
@@ -8,13 +8,21 @@ var _table = require("./table");
|
|
|
8
8
|
var _form = require("./form");
|
|
9
9
|
// eslint-disable-next-line no-unused-vars
|
|
10
10
|
var ElementPlus;
|
|
11
|
+
function getEventTarget(evnt) {
|
|
12
|
+
var target = evnt.target;
|
|
13
|
+
if (target && target.shadowRoot && evnt.composed) {
|
|
14
|
+
return evnt.composedPath()[0] || target;
|
|
15
|
+
}
|
|
16
|
+
return target;
|
|
17
|
+
}
|
|
11
18
|
/**
|
|
12
19
|
* 检查触发源是否属于目标节点
|
|
13
20
|
*/
|
|
14
21
|
function getEventTargetNode(evnt, container, className) {
|
|
15
22
|
var targetElem;
|
|
16
|
-
var target = evnt
|
|
17
|
-
|
|
23
|
+
var target = getEventTarget(evnt);
|
|
24
|
+
var rootEl = document.documentElement || document.querySelector('html');
|
|
25
|
+
while (target && target.nodeType && target !== rootEl) {
|
|
18
26
|
if (className && target.className && target.className.split && target.className.split(' ').indexOf(className) > -1) {
|
|
19
27
|
targetElem = target;
|
|
20
28
|
} else if (target === container) {
|
|
@@ -24,7 +32,7 @@ function getEventTargetNode(evnt, container, className) {
|
|
|
24
32
|
targetElem: targetElem
|
|
25
33
|
};
|
|
26
34
|
}
|
|
27
|
-
target = target.
|
|
35
|
+
target = target.parentElement;
|
|
28
36
|
}
|
|
29
37
|
return {
|
|
30
38
|
flag: false
|
|
@@ -55,7 +63,7 @@ var VxeUIPluginRenderElement = exports.VxeUIPluginRenderElement = {
|
|
|
55
63
|
ElementPlus = options ? options.ElementPlus : {};
|
|
56
64
|
// 检查版本
|
|
57
65
|
if (!/^(3)\./.test(VxeUI.uiVersion)) {
|
|
58
|
-
console.error('[plugin-render-element 3.
|
|
66
|
+
console.error('[@vxe-ui/plugin-render-element 3.0.2] Requires vxe-table 3.9.0+ version. https://vxeui.com/other3/#/plugin-export-xlsx/install');
|
|
59
67
|
}
|
|
60
68
|
(0, _table.defineTableRender)(VxeUI);
|
|
61
69
|
(0, _form.defineFormRender)(VxeUI);
|