@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 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
- [![vxe-ui-plugins](https://contrib.rocks/image?repo=x-extends/vxe-ui-plugins)](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
+ [![vxe-ui-plugins](https://contrib.rocks/image?repo=x-extends/vxe-ui-plugins)](https://github.com/x-extends/vxe-ui-plugins/graphs/contributors)
151
+
152
+ ## License
153
+
154
+ [MIT](LICENSE) © 2019-present, Xu Liangzhan
@@ -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.target;
430
- while (target && target.nodeType && target !== document) {
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.parentNode;
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.x] Version 3.x is required');
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';
@@ -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
  }
@@ -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.target;
17
- while (target && target.nodeType && target !== document) {
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.parentNode;
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.x] Version 3.x is required');
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.target;
17
- while (target && target.nodeType && target !== document) {
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.parentNode;
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.x] Version 3.x is required');
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);