@vxe-ui/plugin-render-element 4.2.3 → 4.2.4
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/dist/index.common.js +3 -3
- package/dist/index.js +3 -3
- package/dist/index.umd.js +152 -28
- package/dist/index.umd.min.js +1 -1
- package/dist/table/index.js +140 -26
- package/dist/util/comp.js +10 -0
- package/package.json +1 -1
- package/src/table/index.ts +157 -39
- package/src/util/comp.ts +11 -0
package/dist/table/index.js
CHANGED
|
@@ -71,6 +71,15 @@ function defineTableRender(VxeUI) {
|
|
|
71
71
|
function formatText(cellValue) {
|
|
72
72
|
return '' + (isEmptyValue(cellValue) ? '' : cellValue);
|
|
73
73
|
}
|
|
74
|
+
function updateFilterChangeOption(params, checked, option) {
|
|
75
|
+
var $table = params.$table;
|
|
76
|
+
$table.updateFilterOptionStatus(option, checked);
|
|
77
|
+
}
|
|
78
|
+
function saveFilterEvent(params) {
|
|
79
|
+
var $table = params.$table,
|
|
80
|
+
column = params.column;
|
|
81
|
+
$table.saveFilterByEvent(new Event('change'), column);
|
|
82
|
+
}
|
|
74
83
|
function getCellLabelVNs(renderOpts, params, cellLabel) {
|
|
75
84
|
var placeholder = renderOpts.placeholder;
|
|
76
85
|
return [(0, _vue.h)('span', {
|
|
@@ -79,32 +88,45 @@ function defineTableRender(VxeUI) {
|
|
|
79
88
|
"class": 'vxe-cell--placeholder'
|
|
80
89
|
}, formatText(VxeUI.getI18n(placeholder)))] : formatText(cellLabel))];
|
|
81
90
|
}
|
|
82
|
-
|
|
91
|
+
var blurEvent = 'blur';
|
|
92
|
+
var clearEvent = 'clear';
|
|
93
|
+
/**
|
|
94
|
+
* 组件事件处理
|
|
95
|
+
* @param renderOpts
|
|
96
|
+
* @param params
|
|
97
|
+
* @param modelFunc
|
|
98
|
+
* @param changeFunc
|
|
99
|
+
*/
|
|
100
|
+
function getComponentOns(renderOpts, params, eFns, eventOns) {
|
|
83
101
|
var events = renderOpts.events;
|
|
84
102
|
var modelEvent = getModelEvent(renderOpts);
|
|
85
103
|
var changeEvent = getChangeEvent(renderOpts);
|
|
86
|
-
var
|
|
104
|
+
var _ref = eFns || {},
|
|
105
|
+
modelFunc = _ref.model,
|
|
106
|
+
changeFunc = _ref.change,
|
|
107
|
+
blurFunc = _ref.blur,
|
|
108
|
+
clearFunc = _ref.clear;
|
|
87
109
|
var ons = {};
|
|
88
110
|
_xeUtils["default"].objectEach(events, function (func, key) {
|
|
89
111
|
ons[getOnName(key)] = function () {
|
|
112
|
+
if (!_xeUtils["default"].isFunction(func)) {
|
|
113
|
+
console.error("Parameter \"".concat(func, "\" is not a method"));
|
|
114
|
+
}
|
|
90
115
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
91
116
|
args[_key] = arguments[_key];
|
|
92
117
|
}
|
|
93
118
|
func.apply(void 0, [params].concat(args));
|
|
94
119
|
};
|
|
95
120
|
});
|
|
96
|
-
if (
|
|
121
|
+
if (modelFunc) {
|
|
97
122
|
ons[getOnName(modelEvent)] = function (targetEvnt) {
|
|
98
|
-
|
|
123
|
+
modelFunc(targetEvnt);
|
|
99
124
|
if (events && events[modelEvent]) {
|
|
100
125
|
events[modelEvent](params, targetEvnt);
|
|
101
126
|
}
|
|
102
|
-
if (isSameEvent && changeFunc) {
|
|
103
|
-
changeFunc(targetEvnt);
|
|
104
|
-
}
|
|
105
127
|
};
|
|
106
128
|
}
|
|
107
|
-
if (
|
|
129
|
+
if (changeFunc) {
|
|
108
130
|
ons[getOnName(changeEvent)] = function () {
|
|
109
131
|
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
110
132
|
args[_key2] = arguments[_key2];
|
|
@@ -115,25 +137,89 @@ function defineTableRender(VxeUI) {
|
|
|
115
137
|
}
|
|
116
138
|
};
|
|
117
139
|
}
|
|
118
|
-
|
|
140
|
+
if (blurFunc) {
|
|
141
|
+
ons[getOnName(blurEvent)] = function () {
|
|
142
|
+
for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
143
|
+
args[_key3] = arguments[_key3];
|
|
144
|
+
}
|
|
145
|
+
blurFunc.apply(void 0, args);
|
|
146
|
+
if (events && events[blurEvent]) {
|
|
147
|
+
events[blurEvent].apply(events, [params].concat(args));
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
if (clearFunc) {
|
|
152
|
+
ons[getOnName(clearEvent)] = function () {
|
|
153
|
+
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
154
|
+
args[_key4] = arguments[_key4];
|
|
155
|
+
}
|
|
156
|
+
clearFunc.apply(void 0, args);
|
|
157
|
+
if (events && events[clearEvent]) {
|
|
158
|
+
events[clearEvent].apply(events, [params].concat(args));
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
return eventOns ? Object.assign(ons, eventOns) : ons;
|
|
119
163
|
}
|
|
120
164
|
function getEditOns(renderOpts, params) {
|
|
121
165
|
var $table = params.$table,
|
|
122
166
|
row = params.row,
|
|
123
167
|
column = params.column;
|
|
124
|
-
return
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
168
|
+
return getComponentOns(renderOpts, params, {
|
|
169
|
+
model: function model(value) {
|
|
170
|
+
// 处理 model 值双向绑定
|
|
171
|
+
_xeUtils["default"].set(row, column.field, value);
|
|
172
|
+
},
|
|
173
|
+
change: function change() {
|
|
174
|
+
// 处理 change 事件相关逻辑
|
|
175
|
+
$table.updateStatus(params);
|
|
176
|
+
}
|
|
130
177
|
});
|
|
131
178
|
}
|
|
132
179
|
function getFilterOns(renderOpts, params, option, changeFunc) {
|
|
133
|
-
return
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
180
|
+
return getComponentOns(renderOpts, params, {
|
|
181
|
+
model: function model(value) {
|
|
182
|
+
// 处理 model 值双向绑定
|
|
183
|
+
option.data = value;
|
|
184
|
+
},
|
|
185
|
+
change: changeFunc
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
function getFloatingFilterOns(renderOpts, params, option) {
|
|
189
|
+
var $table = params.$table,
|
|
190
|
+
column = params.column;
|
|
191
|
+
if ((0, _comp.hasInputType)(renderOpts)) {
|
|
192
|
+
return getComponentOns(renderOpts, params, {
|
|
193
|
+
model: function model(value) {
|
|
194
|
+
// 处理 model 值双向绑定
|
|
195
|
+
option.data = value;
|
|
196
|
+
},
|
|
197
|
+
change: function change() {
|
|
198
|
+
updateFilterChangeOption(params, !isEmptyValue(option.data), option);
|
|
199
|
+
},
|
|
200
|
+
clear: function clear() {
|
|
201
|
+
updateFilterChangeOption(params, !isEmptyValue(option.data), option);
|
|
202
|
+
saveFilterEvent(params);
|
|
203
|
+
},
|
|
204
|
+
blur: function blur() {
|
|
205
|
+
$table.saveFilterByEvent(new Event('change'), column);
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
return getComponentOns(renderOpts, params, {
|
|
210
|
+
model: function model(value) {
|
|
211
|
+
// 处理 model 值双向绑定
|
|
212
|
+
option.data = value;
|
|
213
|
+
},
|
|
214
|
+
clear: function clear() {
|
|
215
|
+
updateFilterChangeOption(params, !isEmptyValue(option.data), option);
|
|
216
|
+
$table.saveFilterByEvent(new Event('change'), column);
|
|
217
|
+
},
|
|
218
|
+
change: function change() {
|
|
219
|
+
updateFilterChangeOption(params, !isEmptyValue(option.data), option);
|
|
220
|
+
$table.saveFilterByEvent(new Event('change'), column);
|
|
221
|
+
}
|
|
222
|
+
});
|
|
137
223
|
}
|
|
138
224
|
function matchCascaderData(index, list, values, labels) {
|
|
139
225
|
var val = values[index];
|
|
@@ -279,14 +365,16 @@ function defineTableRender(VxeUI) {
|
|
|
279
365
|
var row = params.row,
|
|
280
366
|
column = params.column;
|
|
281
367
|
var name = renderOpts.name,
|
|
282
|
-
attrs = renderOpts.attrs
|
|
368
|
+
attrs = renderOpts.attrs,
|
|
369
|
+
props = renderOpts.props;
|
|
283
370
|
var cellValue = _xeUtils["default"].get(row, column.field);
|
|
284
|
-
return [(0, _vue.h)((0, _comp.getCurrComponent)(name), _objectSpread(_objectSpread(_objectSpread({}, attrs), getCellEditFilterProps(renderOpts, params, cellValue, defaultProps)), getEditOns(renderOpts, params)))];
|
|
371
|
+
return [(0, _vue.h)((0, _comp.getCurrComponent)(name), _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, attrs), props), getCellEditFilterProps(renderOpts, params, cellValue, defaultProps)), getEditOns(renderOpts, params)))];
|
|
285
372
|
};
|
|
286
373
|
}
|
|
287
374
|
function defaultButtonEditRender(renderOpts, params) {
|
|
288
|
-
var attrs = renderOpts.attrs
|
|
289
|
-
|
|
375
|
+
var attrs = renderOpts.attrs,
|
|
376
|
+
props = renderOpts.props;
|
|
377
|
+
return [(0, _vue.h)((0, _comp.getCurrComponent)('el-button'), _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, attrs), props), getCellEditFilterProps(renderOpts, params, null)), getComponentOns(renderOpts, params)), cellText(renderOpts.content))];
|
|
290
378
|
}
|
|
291
379
|
function defaultButtonsEditRender(renderOpts, params) {
|
|
292
380
|
var children = renderOpts.children;
|
|
@@ -301,20 +389,31 @@ function defineTableRender(VxeUI) {
|
|
|
301
389
|
return function (renderOpts, params) {
|
|
302
390
|
var column = params.column;
|
|
303
391
|
var name = renderOpts.name,
|
|
304
|
-
attrs = renderOpts.attrs
|
|
392
|
+
attrs = renderOpts.attrs,
|
|
393
|
+
props = renderOpts.props;
|
|
305
394
|
return [(0, _vue.h)('div', {
|
|
306
395
|
"class": 'vxe-table--filter-element-wrapper'
|
|
307
396
|
}, column.filters.map(function (option, oIndex) {
|
|
308
397
|
var optionValue = option.data;
|
|
309
|
-
return (0, _vue.h)((0, _comp.getCurrComponent)(name), _objectSpread(_objectSpread(_objectSpread({
|
|
398
|
+
return (0, _vue.h)((0, _comp.getCurrComponent)(name), _objectSpread(_objectSpread(_objectSpread(_objectSpread({
|
|
310
399
|
key: oIndex
|
|
311
|
-
}, attrs), getCellEditFilterProps(renderOpts, params, optionValue, defaultProps)), getFilterOns(renderOpts, params, option, function () {
|
|
400
|
+
}, attrs), props), getCellEditFilterProps(renderOpts, params, optionValue, defaultProps)), getFilterOns(renderOpts, params, option, function () {
|
|
312
401
|
// 处理 change 事件相关逻辑
|
|
313
402
|
handleConfirmFilter(params, !!option.data, option);
|
|
314
403
|
})));
|
|
315
404
|
}))];
|
|
316
405
|
};
|
|
317
406
|
}
|
|
407
|
+
function createFloatingFilterRender(defaultProps) {
|
|
408
|
+
return function (renderOpts, params) {
|
|
409
|
+
var option = params.option;
|
|
410
|
+
var name = renderOpts.name,
|
|
411
|
+
attrs = renderOpts.attrs,
|
|
412
|
+
props = renderOpts.props;
|
|
413
|
+
var optionValue = option.data;
|
|
414
|
+
return [(0, _vue.h)((0, _comp.getCurrComponent)(name), _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, attrs), props), getCellEditFilterProps(renderOpts, params, optionValue, defaultProps)), getFloatingFilterOns(renderOpts, params, option)))];
|
|
415
|
+
};
|
|
416
|
+
}
|
|
318
417
|
function handleConfirmFilter(params, checked, option) {
|
|
319
418
|
var $panel = params.$panel;
|
|
320
419
|
$panel.changeOption(null, checked, option);
|
|
@@ -367,11 +466,17 @@ function defineTableRender(VxeUI) {
|
|
|
367
466
|
return options && options.original ? _xeUtils["default"].get(row, column.field) : getExportCellValue(column.editRender || column.cellRender, params);
|
|
368
467
|
};
|
|
369
468
|
}
|
|
469
|
+
function defaultFilterOptions() {
|
|
470
|
+
return [{
|
|
471
|
+
data: null
|
|
472
|
+
}];
|
|
473
|
+
}
|
|
370
474
|
VxeUI.renderer.mixin({
|
|
371
475
|
ElAutocomplete: {
|
|
372
476
|
tableAutoFocus: 'input',
|
|
373
477
|
renderTableDefault: createEditRender(),
|
|
374
478
|
renderTableEdit: createEditRender(),
|
|
479
|
+
createTableFilterOptions: defaultFilterOptions,
|
|
375
480
|
renderTableFilter: createFilterRender(),
|
|
376
481
|
tableFilterDefaultMethod: defaultExactFilterMethod
|
|
377
482
|
},
|
|
@@ -379,14 +484,18 @@ function defineTableRender(VxeUI) {
|
|
|
379
484
|
tableAutoFocus: 'input',
|
|
380
485
|
renderTableDefault: createEditRender(),
|
|
381
486
|
renderTableEdit: createEditRender(),
|
|
487
|
+
createTableFilterOptions: defaultFilterOptions,
|
|
382
488
|
renderTableFilter: createFilterRender(),
|
|
489
|
+
renderTableFloatingFilter: createFloatingFilterRender(),
|
|
383
490
|
tableFilterDefaultMethod: defaultFuzzyFilterMethod
|
|
384
491
|
},
|
|
385
492
|
ElInputNumber: {
|
|
386
493
|
tableAutoFocus: 'input',
|
|
387
494
|
renderTableDefault: createEditRender(),
|
|
388
495
|
renderTableEdit: createEditRender(),
|
|
496
|
+
createTableFilterOptions: defaultFilterOptions,
|
|
389
497
|
renderTableFilter: createFilterRender(),
|
|
498
|
+
renderTableFloatingFilter: createFloatingFilterRender(),
|
|
390
499
|
tableFilterDefaultMethod: defaultFuzzyFilterMethod
|
|
391
500
|
},
|
|
392
501
|
ElSelect: {
|
|
@@ -432,6 +541,7 @@ function defineTableRender(VxeUI) {
|
|
|
432
541
|
renderTableCell: function renderTableCell(renderOpts, params) {
|
|
433
542
|
return getCellLabelVNs(renderOpts, params, getSelectCellValue(renderOpts, params));
|
|
434
543
|
},
|
|
544
|
+
createTableFilterOptions: defaultFilterOptions,
|
|
435
545
|
renderTableFilter: function renderTableFilter(renderOpts, params) {
|
|
436
546
|
var _renderOpts$options3 = renderOpts.options,
|
|
437
547
|
options = _renderOpts$options3 === void 0 ? [] : _renderOpts$options3,
|
|
@@ -518,6 +628,7 @@ function defineTableRender(VxeUI) {
|
|
|
518
628
|
renderTableCell: function renderTableCell(renderOpts, params) {
|
|
519
629
|
return getCellLabelVNs(renderOpts, params, getDatePickerCellValue(renderOpts, params));
|
|
520
630
|
},
|
|
631
|
+
createTableFilterOptions: defaultFilterOptions,
|
|
521
632
|
renderTableFilter: function renderTableFilter(renderOpts, params) {
|
|
522
633
|
var column = params.column;
|
|
523
634
|
var name = renderOpts.name,
|
|
@@ -534,6 +645,7 @@ function defineTableRender(VxeUI) {
|
|
|
534
645
|
})));
|
|
535
646
|
}))];
|
|
536
647
|
},
|
|
648
|
+
renderTableFloatingFilter: createFloatingFilterRender(),
|
|
537
649
|
tableFilterDefaultMethod: function tableFilterDefaultMethod(params) {
|
|
538
650
|
var option = params.option,
|
|
539
651
|
row = params.row,
|
|
@@ -574,6 +686,7 @@ function defineTableRender(VxeUI) {
|
|
|
574
686
|
ElRate: {
|
|
575
687
|
renderTableDefault: createEditRender(),
|
|
576
688
|
renderTableEdit: createEditRender(),
|
|
689
|
+
createTableFilterOptions: defaultFilterOptions,
|
|
577
690
|
renderTableFilter: createFilterRender(),
|
|
578
691
|
tableFilterDefaultMethod: defaultExactFilterMethod
|
|
579
692
|
},
|
|
@@ -601,6 +714,7 @@ function defineTableRender(VxeUI) {
|
|
|
601
714
|
ElSlider: {
|
|
602
715
|
renderTableDefault: createEditRender(),
|
|
603
716
|
renderTableEdit: createEditRender(),
|
|
717
|
+
createTableFilterOptions: defaultFilterOptions,
|
|
604
718
|
renderTableFilter: createFilterRender(),
|
|
605
719
|
tableFilterDefaultMethod: defaultExactFilterMethod
|
|
606
720
|
},
|
package/dist/util/comp.js
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getCurrComponent = getCurrComponent;
|
|
7
|
+
exports.hasInputType = hasInputType;
|
|
7
8
|
var _vue = require("vue");
|
|
8
9
|
var _store = require("../store");
|
|
9
10
|
function getCurrComponent(name) {
|
|
@@ -12,4 +13,13 @@ function getCurrComponent(name) {
|
|
|
12
13
|
return comp;
|
|
13
14
|
}
|
|
14
15
|
return (0, _vue.resolveComponent)(name);
|
|
16
|
+
}
|
|
17
|
+
function hasInputType(renderOpts) {
|
|
18
|
+
switch (renderOpts.name) {
|
|
19
|
+
case 'ElInput':
|
|
20
|
+
case 'ElInputNumber':
|
|
21
|
+
case 'ElTextarea':
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
return false;
|
|
15
25
|
}
|