@vxe-ui/plugin-render-element 3.0.0
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 +21 -0
- package/README.md +154 -0
- package/dist/all.common.js +1136 -0
- package/dist/form/index.js +411 -0
- package/dist/index.common.js +72 -0
- package/dist/index.js +72 -0
- package/dist/index.umd.js +1288 -0
- package/dist/index.umd.min.js +1 -0
- package/dist/style.css +54 -0
- package/dist/style.min.css +1 -0
- package/dist/table/index.js +649 -0
- package/package.json +73 -0
- package/src/form/index.ts +406 -0
- package/src/index.ts +76 -0
- package/src/table/index.ts +627 -0
- package/types/index.d.ts +12 -0
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.defineFormRender = defineFormRender;
|
|
7
|
+
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
9
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
14
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
15
|
+
/**
|
|
16
|
+
* 表单 - 渲染器
|
|
17
|
+
*/
|
|
18
|
+
function defineFormRender(VxeUI) {
|
|
19
|
+
function isEmptyValue(cellValue) {
|
|
20
|
+
return cellValue === null || cellValue === undefined || cellValue === '';
|
|
21
|
+
}
|
|
22
|
+
function getOnName(type) {
|
|
23
|
+
return type;
|
|
24
|
+
}
|
|
25
|
+
function getModelProp(renderOpts) {
|
|
26
|
+
return 'value';
|
|
27
|
+
}
|
|
28
|
+
function getModelEvent(renderOpts) {
|
|
29
|
+
return 'input';
|
|
30
|
+
}
|
|
31
|
+
function getChangeEvent(renderOpts) {
|
|
32
|
+
var type = 'change';
|
|
33
|
+
switch (renderOpts.name) {
|
|
34
|
+
case 'ElAutocomplete':
|
|
35
|
+
type = 'select';
|
|
36
|
+
break;
|
|
37
|
+
case 'ElInput':
|
|
38
|
+
case 'ElInputNumber':
|
|
39
|
+
type = 'input';
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
return type;
|
|
43
|
+
}
|
|
44
|
+
function getItemProps(renderOpts, params, value, defaultProps) {
|
|
45
|
+
return _xeUtils["default"].assign({}, defaultProps, renderOpts.props, _defineProperty({}, getModelProp(renderOpts), value));
|
|
46
|
+
}
|
|
47
|
+
function formatText(cellValue) {
|
|
48
|
+
return '' + (isEmptyValue(cellValue) ? '' : cellValue);
|
|
49
|
+
}
|
|
50
|
+
function getOns(renderOpts, params, inputFunc, changeFunc) {
|
|
51
|
+
var events = renderOpts.events;
|
|
52
|
+
var modelEvent = getModelEvent(renderOpts);
|
|
53
|
+
var changeEvent = getChangeEvent(renderOpts);
|
|
54
|
+
var isSameEvent = changeEvent === modelEvent;
|
|
55
|
+
var ons = {};
|
|
56
|
+
_xeUtils["default"].objectEach(events, function (func, key) {
|
|
57
|
+
ons[getOnName(key)] = function () {
|
|
58
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
59
|
+
args[_key] = arguments[_key];
|
|
60
|
+
}
|
|
61
|
+
func.apply(void 0, [params].concat(args));
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
if (inputFunc) {
|
|
65
|
+
ons[getOnName(modelEvent)] = function (targetEvnt) {
|
|
66
|
+
inputFunc(targetEvnt);
|
|
67
|
+
if (events && events[modelEvent]) {
|
|
68
|
+
events[modelEvent](params, targetEvnt);
|
|
69
|
+
}
|
|
70
|
+
if (isSameEvent && changeFunc) {
|
|
71
|
+
changeFunc(targetEvnt);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
if (!isSameEvent && changeFunc) {
|
|
76
|
+
ons[getOnName(changeEvent)] = function () {
|
|
77
|
+
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
78
|
+
args[_key2] = arguments[_key2];
|
|
79
|
+
}
|
|
80
|
+
changeFunc.apply(void 0, args);
|
|
81
|
+
if (events && events[changeEvent]) {
|
|
82
|
+
events[changeEvent].apply(events, [params].concat(args));
|
|
83
|
+
}
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
return ons;
|
|
87
|
+
}
|
|
88
|
+
function getItemOns(renderOpts, params) {
|
|
89
|
+
var $form = params.$form,
|
|
90
|
+
data = params.data,
|
|
91
|
+
field = params.field;
|
|
92
|
+
return getOns(renderOpts, params, function (value) {
|
|
93
|
+
// 处理 model 值双向绑定
|
|
94
|
+
_xeUtils["default"].set(data, field, value);
|
|
95
|
+
}, function () {
|
|
96
|
+
// 处理 change 事件相关逻辑
|
|
97
|
+
$form.updateStatus(params);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
function renderOptions(h, options, optionProps) {
|
|
101
|
+
var labelProp = optionProps.label || 'label';
|
|
102
|
+
var valueProp = optionProps.value || 'value';
|
|
103
|
+
return _xeUtils["default"].map(options, function (item, oIndex) {
|
|
104
|
+
return h('el-option', {
|
|
105
|
+
key: oIndex,
|
|
106
|
+
props: {
|
|
107
|
+
value: item[valueProp],
|
|
108
|
+
label: item[labelProp],
|
|
109
|
+
disabled: item.disabled
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
function cellText(cellValue) {
|
|
115
|
+
return [formatText(cellValue)];
|
|
116
|
+
}
|
|
117
|
+
function createFormItemRender(defaultProps) {
|
|
118
|
+
return function (h, renderOpts, params) {
|
|
119
|
+
var data = params.data,
|
|
120
|
+
field = params.field;
|
|
121
|
+
var name = renderOpts.name;
|
|
122
|
+
var attrs = renderOpts.attrs;
|
|
123
|
+
var itemValue = _xeUtils["default"].get(data, field);
|
|
124
|
+
return [h(name, {
|
|
125
|
+
attrs: attrs,
|
|
126
|
+
props: _objectSpread({}, getItemProps(renderOpts, params, itemValue, defaultProps)),
|
|
127
|
+
on: getItemOns(renderOpts, params)
|
|
128
|
+
})];
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
function defaultButtonItemRender(h, renderOpts, params) {
|
|
132
|
+
var attrs = renderOpts.attrs;
|
|
133
|
+
var props = getItemProps(renderOpts, params, null);
|
|
134
|
+
return [h('el-button', {
|
|
135
|
+
attrs: attrs,
|
|
136
|
+
props: _objectSpread({}, props),
|
|
137
|
+
on: getOns(renderOpts, params),
|
|
138
|
+
scopedSlots: {
|
|
139
|
+
"default": function _default() {
|
|
140
|
+
return cellText(renderOpts.content || props.content);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
})];
|
|
144
|
+
}
|
|
145
|
+
function defaultButtonsItemRender(h, renderOpts, params) {
|
|
146
|
+
var children = renderOpts.children;
|
|
147
|
+
if (children) {
|
|
148
|
+
return children.map(function (childRenderOpts) {
|
|
149
|
+
return defaultButtonItemRender(h, childRenderOpts, params)[0];
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
return [];
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* 已废弃
|
|
156
|
+
* @deprecated
|
|
157
|
+
*/
|
|
158
|
+
function createOldFormItemRadioAndCheckboxRender() {
|
|
159
|
+
return function (h, renderOpts, params) {
|
|
160
|
+
var name = renderOpts.name,
|
|
161
|
+
_renderOpts$options = renderOpts.options,
|
|
162
|
+
options = _renderOpts$options === void 0 ? [] : _renderOpts$options,
|
|
163
|
+
_renderOpts$optionPro = renderOpts.optionProps,
|
|
164
|
+
optionProps = _renderOpts$optionPro === void 0 ? {} : _renderOpts$optionPro,
|
|
165
|
+
attrs = renderOpts.attrs;
|
|
166
|
+
var data = params.data,
|
|
167
|
+
field = params.field;
|
|
168
|
+
var labelProp = optionProps.label || 'label';
|
|
169
|
+
var valueProp = optionProps.value || 'value';
|
|
170
|
+
var itemValue = _xeUtils["default"].get(data, field);
|
|
171
|
+
return [h("".concat(name, "Group"), {
|
|
172
|
+
attrs: attrs,
|
|
173
|
+
props: _objectSpread({}, getItemProps(renderOpts, params, itemValue)),
|
|
174
|
+
on: getItemOns(renderOpts, params),
|
|
175
|
+
scopedSlots: {
|
|
176
|
+
"default": function _default() {
|
|
177
|
+
return options.map(function (option, oIndex) {
|
|
178
|
+
return h(name, {
|
|
179
|
+
key: oIndex,
|
|
180
|
+
props: {
|
|
181
|
+
label: option[valueProp],
|
|
182
|
+
disabled: option.disabled
|
|
183
|
+
},
|
|
184
|
+
scopedSlots: {
|
|
185
|
+
"default": function _default() {
|
|
186
|
+
return cellText(option[labelProp]);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
})];
|
|
194
|
+
};
|
|
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
|
+
VxeUI.renderer.mixin({
|
|
239
|
+
ElAutocomplete: {
|
|
240
|
+
renderFormItemContent: createFormItemRender()
|
|
241
|
+
},
|
|
242
|
+
ElInput: {
|
|
243
|
+
renderFormItemContent: createFormItemRender()
|
|
244
|
+
},
|
|
245
|
+
ElInputNumber: {
|
|
246
|
+
renderFormItemContent: createFormItemRender()
|
|
247
|
+
},
|
|
248
|
+
ElSelect: {
|
|
249
|
+
renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
|
|
250
|
+
var _renderOpts$options2 = renderOpts.options,
|
|
251
|
+
options = _renderOpts$options2 === void 0 ? [] : _renderOpts$options2,
|
|
252
|
+
optionGroups = renderOpts.optionGroups,
|
|
253
|
+
_renderOpts$optionPro2 = renderOpts.optionProps,
|
|
254
|
+
optionProps = _renderOpts$optionPro2 === void 0 ? {} : _renderOpts$optionPro2,
|
|
255
|
+
_renderOpts$optionGro = renderOpts.optionGroupProps,
|
|
256
|
+
optionGroupProps = _renderOpts$optionGro === void 0 ? {} : _renderOpts$optionGro;
|
|
257
|
+
var data = params.data,
|
|
258
|
+
field = params.field;
|
|
259
|
+
var attrs = renderOpts.attrs;
|
|
260
|
+
var itemValue = _xeUtils["default"].get(data, field);
|
|
261
|
+
var props = getItemProps(renderOpts, params, itemValue);
|
|
262
|
+
var ons = getItemOns(renderOpts, params);
|
|
263
|
+
if (optionGroups) {
|
|
264
|
+
var groupOptions = optionGroupProps.options || 'options';
|
|
265
|
+
var groupLabel = optionGroupProps.label || 'label';
|
|
266
|
+
return [h('el-select', {
|
|
267
|
+
attrs: attrs,
|
|
268
|
+
props: _objectSpread({}, props),
|
|
269
|
+
on: ons,
|
|
270
|
+
scopedSlots: {
|
|
271
|
+
"default": function _default() {
|
|
272
|
+
return _xeUtils["default"].map(optionGroups, function (group, gIndex) {
|
|
273
|
+
return h('el-option-group', {
|
|
274
|
+
key: gIndex,
|
|
275
|
+
props: {
|
|
276
|
+
label: group[groupLabel]
|
|
277
|
+
},
|
|
278
|
+
scopedSlots: {
|
|
279
|
+
"default": function _default() {
|
|
280
|
+
return renderOptions(h, group[groupOptions], optionProps);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
})];
|
|
288
|
+
}
|
|
289
|
+
return [h('el-select', {
|
|
290
|
+
attrs: attrs,
|
|
291
|
+
props: _objectSpread({}, props),
|
|
292
|
+
on: ons,
|
|
293
|
+
scopedSlots: {
|
|
294
|
+
"default": function _default() {
|
|
295
|
+
return renderOptions(h, options, optionProps);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
})];
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
ElCascader: {
|
|
302
|
+
renderFormItemContent: createFormItemRender()
|
|
303
|
+
},
|
|
304
|
+
ElDatePicker: {
|
|
305
|
+
renderFormItemContent: createFormItemRender()
|
|
306
|
+
},
|
|
307
|
+
ElTimePicker: {
|
|
308
|
+
renderFormItemContent: createFormItemRender()
|
|
309
|
+
},
|
|
310
|
+
ElTimeSelect: {
|
|
311
|
+
renderFormItemContent: createFormItemRender()
|
|
312
|
+
},
|
|
313
|
+
ElRate: {
|
|
314
|
+
renderFormItemContent: createFormItemRender()
|
|
315
|
+
},
|
|
316
|
+
ElSwitch: {
|
|
317
|
+
renderFormItemContent: createFormItemRender()
|
|
318
|
+
},
|
|
319
|
+
ElSlider: {
|
|
320
|
+
renderFormItemContent: createFormItemRender()
|
|
321
|
+
},
|
|
322
|
+
ElRadioGroup: {
|
|
323
|
+
renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
|
|
324
|
+
var _renderOpts$options3 = renderOpts.options,
|
|
325
|
+
options = _renderOpts$options3 === void 0 ? [] : _renderOpts$options3,
|
|
326
|
+
_renderOpts$optionPro3 = renderOpts.optionProps,
|
|
327
|
+
optionProps = _renderOpts$optionPro3 === void 0 ? {} : _renderOpts$optionPro3,
|
|
328
|
+
attrs = renderOpts.attrs;
|
|
329
|
+
var data = params.data,
|
|
330
|
+
field = params.field;
|
|
331
|
+
var labelProp = optionProps.label || 'label';
|
|
332
|
+
var valueProp = optionProps.value || 'value';
|
|
333
|
+
var itemValue = _xeUtils["default"].get(data, field);
|
|
334
|
+
return [h('el-radio-group', {
|
|
335
|
+
attrs: attrs,
|
|
336
|
+
props: _objectSpread({}, getItemProps(renderOpts, params, itemValue)),
|
|
337
|
+
on: _objectSpread({}, getItemOns(renderOpts, params)),
|
|
338
|
+
scopedSlots: {
|
|
339
|
+
"default": function _default() {
|
|
340
|
+
return options.map(function (option, oIndex) {
|
|
341
|
+
return h('el-radio', {
|
|
342
|
+
key: oIndex,
|
|
343
|
+
props: {
|
|
344
|
+
value: option[valueProp],
|
|
345
|
+
disabled: option.disabled
|
|
346
|
+
},
|
|
347
|
+
scopedSlots: {
|
|
348
|
+
"default": function _default() {
|
|
349
|
+
return cellText(option[labelProp]);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
})];
|
|
357
|
+
}
|
|
358
|
+
},
|
|
359
|
+
ElCheckboxGroup: {
|
|
360
|
+
renderFormItemContent: function renderFormItemContent(h, renderOpts, params) {
|
|
361
|
+
var _renderOpts$options4 = renderOpts.options,
|
|
362
|
+
options = _renderOpts$options4 === void 0 ? [] : _renderOpts$options4,
|
|
363
|
+
_renderOpts$optionPro4 = renderOpts.optionProps,
|
|
364
|
+
optionProps = _renderOpts$optionPro4 === void 0 ? {} : _renderOpts$optionPro4,
|
|
365
|
+
attrs = renderOpts.attrs;
|
|
366
|
+
var data = params.data,
|
|
367
|
+
field = params.field;
|
|
368
|
+
var labelProp = optionProps.label || 'label';
|
|
369
|
+
var valueProp = optionProps.value || 'value';
|
|
370
|
+
var itemValue = _xeUtils["default"].get(data, field);
|
|
371
|
+
return [h('el-checkbox-group', {
|
|
372
|
+
attrs: attrs,
|
|
373
|
+
props: _objectSpread({}, getItemProps(renderOpts, params, itemValue)),
|
|
374
|
+
on: _objectSpread({}, getItemOns(renderOpts, params)),
|
|
375
|
+
scopedSlots: {
|
|
376
|
+
"default": function _default() {
|
|
377
|
+
return options.map(function (option, oIndex) {
|
|
378
|
+
return h('el-checkbox', {
|
|
379
|
+
key: oIndex,
|
|
380
|
+
props: {
|
|
381
|
+
value: option[valueProp],
|
|
382
|
+
label: option[labelProp],
|
|
383
|
+
disabled: option.disabled
|
|
384
|
+
}
|
|
385
|
+
});
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
})];
|
|
390
|
+
}
|
|
391
|
+
},
|
|
392
|
+
ElButton: {
|
|
393
|
+
renderFormItemContent: defaultButtonItemRender
|
|
394
|
+
},
|
|
395
|
+
// 已废弃
|
|
396
|
+
ElRadio: {
|
|
397
|
+
renderFormItemContent: createOldFormItemRadioAndCheckboxRender()
|
|
398
|
+
},
|
|
399
|
+
ElCheckbox: {
|
|
400
|
+
renderFormItemContent: createOldFormItemRadioAndCheckboxRender()
|
|
401
|
+
},
|
|
402
|
+
ElButtons: {
|
|
403
|
+
renderFormItemContent: defaultButtonsItemRender
|
|
404
|
+
}
|
|
405
|
+
});
|
|
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
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.VxeUIPluginRenderElement = void 0;
|
|
7
|
+
var _table = require("./table");
|
|
8
|
+
var _form = require("./form");
|
|
9
|
+
// eslint-disable-next-line no-unused-vars
|
|
10
|
+
var ElementPlus;
|
|
11
|
+
/**
|
|
12
|
+
* 检查触发源是否属于目标节点
|
|
13
|
+
*/
|
|
14
|
+
function getEventTargetNode(evnt, container, className) {
|
|
15
|
+
var targetElem;
|
|
16
|
+
var target = evnt.target;
|
|
17
|
+
while (target && target.nodeType && target !== document) {
|
|
18
|
+
if (className && target.className && target.className.split && target.className.split(' ').indexOf(className) > -1) {
|
|
19
|
+
targetElem = target;
|
|
20
|
+
} else if (target === container) {
|
|
21
|
+
return {
|
|
22
|
+
flag: className ? !!targetElem : true,
|
|
23
|
+
container: container,
|
|
24
|
+
targetElem: targetElem
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
target = target.parentNode;
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
flag: false
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 事件兼容性处理
|
|
35
|
+
*/
|
|
36
|
+
function handleClearEvent(params) {
|
|
37
|
+
var $event = params.$event;
|
|
38
|
+
var bodyElem = document.body;
|
|
39
|
+
if (
|
|
40
|
+
// 远程搜索
|
|
41
|
+
getEventTargetNode($event, bodyElem, 'el-autocomplete-suggestion').flag ||
|
|
42
|
+
// 下拉框
|
|
43
|
+
getEventTargetNode($event, bodyElem, 'el-select-dropdown').flag ||
|
|
44
|
+
// 级联
|
|
45
|
+
getEventTargetNode($event, bodyElem, 'el-cascader__dropdown').flag || getEventTargetNode($event, bodyElem, 'el-cascader-menus').flag ||
|
|
46
|
+
// 日期
|
|
47
|
+
getEventTargetNode($event, bodyElem, 'el-time-panel').flag || getEventTargetNode($event, bodyElem, 'el-picker-panel').flag ||
|
|
48
|
+
// 颜色
|
|
49
|
+
getEventTargetNode($event, bodyElem, 'el-color-dropdown').flag) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
var VxeUIPluginRenderElement = exports.VxeUIPluginRenderElement = {
|
|
54
|
+
install: function install(VxeUI, options) {
|
|
55
|
+
ElementPlus = options ? options.ElementPlus : {};
|
|
56
|
+
// 检查版本
|
|
57
|
+
if (!/^(3)\./.test(VxeUI.uiVersion)) {
|
|
58
|
+
console.error('[plugin-render-element 3.x] Version 3.x is required');
|
|
59
|
+
}
|
|
60
|
+
(0, _table.defineTableRender)(VxeUI);
|
|
61
|
+
(0, _form.defineFormRender)(VxeUI);
|
|
62
|
+
VxeUI.interceptor.add('event.clearFilter', handleClearEvent);
|
|
63
|
+
VxeUI.interceptor.add('event.clearEdit', handleClearEvent);
|
|
64
|
+
VxeUI.interceptor.add('event.clearAreas', handleClearEvent);
|
|
65
|
+
// 兼容老版本
|
|
66
|
+
VxeUI.interceptor.add('event.clearActived', handleClearEvent);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
if (typeof window !== 'undefined' && window.VxeUI && window.VxeUI.use) {
|
|
70
|
+
window.VxeUI.use(VxeUIPluginRenderElement);
|
|
71
|
+
}
|
|
72
|
+
var _default = exports["default"] = VxeUIPluginRenderElement;
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = exports.VxeUIPluginRenderElement = void 0;
|
|
7
|
+
var _table = require("./table");
|
|
8
|
+
var _form = require("./form");
|
|
9
|
+
// eslint-disable-next-line no-unused-vars
|
|
10
|
+
var ElementPlus;
|
|
11
|
+
/**
|
|
12
|
+
* 检查触发源是否属于目标节点
|
|
13
|
+
*/
|
|
14
|
+
function getEventTargetNode(evnt, container, className) {
|
|
15
|
+
var targetElem;
|
|
16
|
+
var target = evnt.target;
|
|
17
|
+
while (target && target.nodeType && target !== document) {
|
|
18
|
+
if (className && target.className && target.className.split && target.className.split(' ').indexOf(className) > -1) {
|
|
19
|
+
targetElem = target;
|
|
20
|
+
} else if (target === container) {
|
|
21
|
+
return {
|
|
22
|
+
flag: className ? !!targetElem : true,
|
|
23
|
+
container: container,
|
|
24
|
+
targetElem: targetElem
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
target = target.parentNode;
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
flag: false
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 事件兼容性处理
|
|
35
|
+
*/
|
|
36
|
+
function handleClearEvent(params) {
|
|
37
|
+
var $event = params.$event;
|
|
38
|
+
var bodyElem = document.body;
|
|
39
|
+
if (
|
|
40
|
+
// 远程搜索
|
|
41
|
+
getEventTargetNode($event, bodyElem, 'el-autocomplete-suggestion').flag ||
|
|
42
|
+
// 下拉框
|
|
43
|
+
getEventTargetNode($event, bodyElem, 'el-select-dropdown').flag ||
|
|
44
|
+
// 级联
|
|
45
|
+
getEventTargetNode($event, bodyElem, 'el-cascader__dropdown').flag || getEventTargetNode($event, bodyElem, 'el-cascader-menus').flag ||
|
|
46
|
+
// 日期
|
|
47
|
+
getEventTargetNode($event, bodyElem, 'el-time-panel').flag || getEventTargetNode($event, bodyElem, 'el-picker-panel').flag ||
|
|
48
|
+
// 颜色
|
|
49
|
+
getEventTargetNode($event, bodyElem, 'el-color-dropdown').flag) {
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
var VxeUIPluginRenderElement = exports.VxeUIPluginRenderElement = {
|
|
54
|
+
install: function install(VxeUI, options) {
|
|
55
|
+
ElementPlus = options ? options.ElementPlus : {};
|
|
56
|
+
// 检查版本
|
|
57
|
+
if (!/^(3)\./.test(VxeUI.uiVersion)) {
|
|
58
|
+
console.error('[plugin-render-element 3.x] Version 3.x is required');
|
|
59
|
+
}
|
|
60
|
+
(0, _table.defineTableRender)(VxeUI);
|
|
61
|
+
(0, _form.defineFormRender)(VxeUI);
|
|
62
|
+
VxeUI.interceptor.add('event.clearFilter', handleClearEvent);
|
|
63
|
+
VxeUI.interceptor.add('event.clearEdit', handleClearEvent);
|
|
64
|
+
VxeUI.interceptor.add('event.clearAreas', handleClearEvent);
|
|
65
|
+
// 兼容老版本
|
|
66
|
+
VxeUI.interceptor.add('event.clearActived', handleClearEvent);
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
if (typeof window !== 'undefined' && window.VxeUI && window.VxeUI.use) {
|
|
70
|
+
window.VxeUI.use(VxeUIPluginRenderElement);
|
|
71
|
+
}
|
|
72
|
+
var _default = exports["default"] = VxeUIPluginRenderElement;
|