vxe-table 4.1.4 → 4.1.7
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/es/edit/src/hook.js +189 -69
- package/es/form/src/form.js +2 -2
- package/es/input/src/input.js +8 -2
- package/es/table/src/body.js +6 -3
- package/es/table/src/props.js +6 -6
- package/es/table/src/table.js +53 -42
- package/es/v-x-e-table/src/conf.js +4 -1
- package/es/validator/src/hook.js +3 -3
- package/lib/edit/src/hook.js +243 -70
- package/lib/edit/src/hook.min.js +1 -1
- package/lib/form/src/form.js +2 -2
- package/lib/form/src/form.min.js +1 -1
- package/lib/index.umd.js +340 -224
- package/lib/index.umd.min.js +2 -1
- package/lib/input/src/input.js +10 -2
- package/lib/input/src/input.min.js +1 -1
- package/lib/table/src/body.js +6 -3
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/props.js +6 -6
- package/lib/table/src/table.js +57 -45
- package/lib/table/src/table.min.js +1 -1
- package/lib/v-x-e-table/src/conf.js +4 -1
- package/lib/v-x-e-table/src/conf.min.js +1 -1
- package/lib/validator/src/hook.js +3 -3
- package/lib/validator/src/hook.min.js +1 -1
- package/package.json +3 -26
- package/packages/edit/src/hook.ts +183 -69
- package/packages/form/src/form.ts +2 -2
- package/packages/input/src/input.ts +9 -2
- package/packages/table/src/body.ts +6 -3
- package/packages/table/src/props.ts +6 -6
- package/packages/table/src/table.ts +52 -40
- package/packages/v-x-e-table/src/conf.ts +4 -1
- package/packages/v-x-e-table/src/renderer.ts +1 -1
- package/packages/validator/src/hook.ts +3 -3
- package/types/edit.d.ts +6 -3
- package/types/plugins/pro.d.ts +6 -6
- package/types/table.d.ts +9 -0
- package/types/v-x-e-table/renderer.d.ts +4 -2
package/es/table/src/table.js
CHANGED
|
@@ -2260,18 +2260,13 @@ export default defineComponent({
|
|
|
2260
2260
|
var oRow = tableSourceData[rowIndex];
|
|
2261
2261
|
if (oRow && row) {
|
|
2262
2262
|
if (field) {
|
|
2263
|
-
|
|
2263
|
+
var newValue = XEUtils.get(record || row, field);
|
|
2264
|
+
XEUtils.set(row, field, newValue);
|
|
2265
|
+
XEUtils.set(oRow, field, newValue);
|
|
2264
2266
|
}
|
|
2265
2267
|
else {
|
|
2266
|
-
|
|
2267
|
-
|
|
2268
|
-
XEUtils.clear(row, undefined);
|
|
2269
|
-
Object.assign(row, tablePrivateMethods.defineField(Object.assign({}, record)));
|
|
2270
|
-
tablePrivateMethods.cacheRowMap(true);
|
|
2271
|
-
}
|
|
2272
|
-
else {
|
|
2273
|
-
XEUtils.destructuring(oRow, XEUtils.clone(row, true));
|
|
2274
|
-
}
|
|
2268
|
+
var newRecord = XEUtils.clone(__assign({}, record), true);
|
|
2269
|
+
XEUtils.destructuring(oRow, Object.assign(row, newRecord));
|
|
2275
2270
|
}
|
|
2276
2271
|
}
|
|
2277
2272
|
reactData.tableData = tableData.slice(0);
|
|
@@ -2291,8 +2286,8 @@ export default defineComponent({
|
|
|
2291
2286
|
var tableSourceData = internalData.tableSourceData, fullDataRowIdData = internalData.fullDataRowIdData, fullAllDataRowIdData = internalData.fullAllDataRowIdData;
|
|
2292
2287
|
var treeOpts = computeTreeOpts.value;
|
|
2293
2288
|
var children = treeOpts.children;
|
|
2294
|
-
var
|
|
2295
|
-
var parentLevel =
|
|
2289
|
+
var parentRest = fullAllDataRowIdData[getRowid($xetable, row)];
|
|
2290
|
+
var parentLevel = parentRest ? parentRest.level : 0;
|
|
2296
2291
|
return tableMethods.createData(childRecords).then(function (rows) {
|
|
2297
2292
|
if (keepSource) {
|
|
2298
2293
|
var rowid_1 = getRowid($xetable, row);
|
|
@@ -3059,6 +3054,17 @@ export default defineComponent({
|
|
|
3059
3054
|
var treeOpts = computeTreeOpts.value;
|
|
3060
3055
|
var reserveSelection = [];
|
|
3061
3056
|
if (checkboxOpts.reserve) {
|
|
3057
|
+
var afterFullIdMaps_1 = {};
|
|
3058
|
+
if (treeConfig) {
|
|
3059
|
+
XEUtils.eachTree(afterFullData, function (row) {
|
|
3060
|
+
afterFullIdMaps_1[getRowid($xetable, row)] = 1;
|
|
3061
|
+
}, treeOpts);
|
|
3062
|
+
}
|
|
3063
|
+
else {
|
|
3064
|
+
afterFullData.forEach(function (row) {
|
|
3065
|
+
afterFullIdMaps_1[getRowid($xetable, row)] = 1;
|
|
3066
|
+
});
|
|
3067
|
+
}
|
|
3062
3068
|
XEUtils.each(checkboxReserveRowMap, function (oldRow, oldRowid) {
|
|
3063
3069
|
if (oldRow) {
|
|
3064
3070
|
if (isFull) {
|
|
@@ -3067,15 +3073,8 @@ export default defineComponent({
|
|
|
3067
3073
|
}
|
|
3068
3074
|
}
|
|
3069
3075
|
else {
|
|
3070
|
-
if (
|
|
3071
|
-
|
|
3072
|
-
reserveSelection.push(oldRow);
|
|
3073
|
-
}
|
|
3074
|
-
}
|
|
3075
|
-
else {
|
|
3076
|
-
if (!afterFullData.some(function (row) { return getRowid($xetable, row) === oldRowid; })) {
|
|
3077
|
-
reserveSelection.push(oldRow);
|
|
3078
|
-
}
|
|
3076
|
+
if (!afterFullIdMaps_1[oldRowid]) {
|
|
3077
|
+
reserveSelection.push(oldRow);
|
|
3079
3078
|
}
|
|
3080
3079
|
}
|
|
3081
3080
|
}
|
|
@@ -3126,11 +3125,12 @@ export default defineComponent({
|
|
|
3126
3125
|
* @param {Row} row 行对象
|
|
3127
3126
|
*/
|
|
3128
3127
|
setCurrentRow: function (row) {
|
|
3128
|
+
var rowOpts = computeRowOpts.value;
|
|
3129
3129
|
var el = refElem.value;
|
|
3130
3130
|
tableMethods.clearCurrentRow();
|
|
3131
3131
|
tableMethods.clearCurrentColumn();
|
|
3132
3132
|
reactData.currentRow = row;
|
|
3133
|
-
if (props.highlightCurrentRow) {
|
|
3133
|
+
if (rowOpts.isCurrent || props.highlightCurrentRow) {
|
|
3134
3134
|
if (el) {
|
|
3135
3135
|
XEUtils.arrayEach(el.querySelectorAll("[rowid=\"" + getRowid($xetable, row) + "\"]"), function (elem) { return addClass(elem, 'row--current'); });
|
|
3136
3136
|
}
|
|
@@ -3176,7 +3176,8 @@ export default defineComponent({
|
|
|
3176
3176
|
* 用于当前行,获取当前行的数据
|
|
3177
3177
|
*/
|
|
3178
3178
|
getCurrentRecord: function () {
|
|
3179
|
-
|
|
3179
|
+
var rowOpts = computeRowOpts.value;
|
|
3180
|
+
return rowOpts.isCurrent || props.highlightCurrentRow ? reactData.currentRow : null;
|
|
3180
3181
|
},
|
|
3181
3182
|
/**
|
|
3182
3183
|
* 用于单选行,获取当已选中的数据
|
|
@@ -3202,7 +3203,7 @@ export default defineComponent({
|
|
|
3202
3203
|
}
|
|
3203
3204
|
}
|
|
3204
3205
|
else {
|
|
3205
|
-
if (
|
|
3206
|
+
if ($xetable.findRowIndexOf(afterFullData, selectRow) > -1) {
|
|
3206
3207
|
return selectRow;
|
|
3207
3208
|
}
|
|
3208
3209
|
}
|
|
@@ -3211,7 +3212,8 @@ export default defineComponent({
|
|
|
3211
3212
|
return null;
|
|
3212
3213
|
},
|
|
3213
3214
|
getCurrentColumn: function () {
|
|
3214
|
-
|
|
3215
|
+
var columnOpts = computeColumnOpts.value;
|
|
3216
|
+
return columnOpts.isCurrent || props.highlightCurrentColumn ? reactData.currentColumn : null;
|
|
3215
3217
|
},
|
|
3216
3218
|
/**
|
|
3217
3219
|
* 用于当前列,设置某列行为高亮状态
|
|
@@ -3970,6 +3972,7 @@ export default defineComponent({
|
|
|
3970
3972
|
var mouseConfig = props.mouseConfig, keyboardConfig = props.keyboardConfig;
|
|
3971
3973
|
var filterStore = reactData.filterStore, ctxMenuStore = reactData.ctxMenuStore, editStore = reactData.editStore;
|
|
3972
3974
|
var mouseOpts = computeMouseOpts.value;
|
|
3975
|
+
var keyboardOpts = computeKeyboardOpts.value;
|
|
3973
3976
|
var actived = editStore.actived;
|
|
3974
3977
|
var isEsc = hasEventKey(evnt, EVENT_KEYS.ESCAPE);
|
|
3975
3978
|
if (isEsc) {
|
|
@@ -3984,13 +3987,15 @@ export default defineComponent({
|
|
|
3984
3987
|
$xetable.closeMenu();
|
|
3985
3988
|
}
|
|
3986
3989
|
tableMethods.closeFilter();
|
|
3987
|
-
|
|
3988
|
-
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
|
|
3990
|
+
if (keyboardConfig && keyboardOpts.isEsc) {
|
|
3991
|
+
// 如果是激活编辑状态,则取消编辑
|
|
3992
|
+
if (actived.row) {
|
|
3993
|
+
var params_1 = actived.args;
|
|
3994
|
+
$xetable.clearActived(evnt);
|
|
3995
|
+
// 如果配置了选中功能,则为选中状态
|
|
3996
|
+
if (mouseOpts.selected) {
|
|
3997
|
+
nextTick(function () { return $xetable.handleSelected(params_1, evnt); });
|
|
3998
|
+
}
|
|
3994
3999
|
}
|
|
3995
4000
|
}
|
|
3996
4001
|
}
|
|
@@ -4014,6 +4019,7 @@ export default defineComponent({
|
|
|
4014
4019
|
var editOpts = computeEditOpts.value;
|
|
4015
4020
|
var treeOpts = computeTreeOpts.value;
|
|
4016
4021
|
var menuList = computeMenuList.value;
|
|
4022
|
+
var rowOpts = computeRowOpts.value;
|
|
4017
4023
|
var selected = editStore.selected, actived = editStore.actived;
|
|
4018
4024
|
var keyCode = evnt.keyCode;
|
|
4019
4025
|
var isEsc = hasEventKey(evnt, EVENT_KEYS.ESCAPE);
|
|
@@ -4055,7 +4061,7 @@ export default defineComponent({
|
|
|
4055
4061
|
$xetable.closeMenu();
|
|
4056
4062
|
}
|
|
4057
4063
|
tableMethods.closeFilter();
|
|
4058
|
-
if (
|
|
4064
|
+
if (keyboardConfig && keyboardOpts.isEsc) {
|
|
4059
4065
|
// 如果是激活编辑状态,则取消编辑
|
|
4060
4066
|
if (actived.row) {
|
|
4061
4067
|
var params_2 = actived.args;
|
|
@@ -4094,7 +4100,7 @@ export default defineComponent({
|
|
|
4094
4100
|
internalData._keyCtx = false;
|
|
4095
4101
|
}, 1000);
|
|
4096
4102
|
}
|
|
4097
|
-
else if (isEnter && !isAltKey && keyboardConfig && keyboardOpts.isEnter && (selected.row || actived.row || (treeConfig && highlightCurrentRow && currentRow))) {
|
|
4103
|
+
else if (isEnter && !isAltKey && keyboardConfig && keyboardOpts.isEnter && (selected.row || actived.row || (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow))) {
|
|
4098
4104
|
// 退出选中
|
|
4099
4105
|
if (hasCtrlKey) {
|
|
4100
4106
|
// 如果是激活编辑状态,则取消编辑
|
|
@@ -4128,7 +4134,7 @@ export default defineComponent({
|
|
|
4128
4134
|
}
|
|
4129
4135
|
}
|
|
4130
4136
|
}
|
|
4131
|
-
else if (treeConfig && highlightCurrentRow && currentRow) {
|
|
4137
|
+
else if (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow) {
|
|
4132
4138
|
// 如果是树形表格当前行回车移动到子节点
|
|
4133
4139
|
var childrens = currentRow[treeOpts.children];
|
|
4134
4140
|
if (childrens && childrens.length) {
|
|
@@ -4153,7 +4159,7 @@ export default defineComponent({
|
|
|
4153
4159
|
if (selected.row && selected.column) {
|
|
4154
4160
|
$xetable.moveSelected(selected.args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt);
|
|
4155
4161
|
}
|
|
4156
|
-
else if ((isUpArrow || isDwArrow) && highlightCurrentRow) {
|
|
4162
|
+
else if ((isUpArrow || isDwArrow) && (rowOpts.isCurrent || highlightCurrentRow)) {
|
|
4157
4163
|
// 当前行按键上下移动
|
|
4158
4164
|
$xetable.moveCurrentRow(isUpArrow, isDwArrow, evnt);
|
|
4159
4165
|
}
|
|
@@ -4168,7 +4174,7 @@ export default defineComponent({
|
|
|
4168
4174
|
$xetable.moveTabSelected(actived.args, hasShiftKey, evnt);
|
|
4169
4175
|
}
|
|
4170
4176
|
}
|
|
4171
|
-
else if (keyboardConfig && isEnableConf(editConfig) && (isDel || (treeConfig && highlightCurrentRow && currentRow ? isBack && keyboardOpts.isArrow : isBack))) {
|
|
4177
|
+
else if (keyboardConfig && isEnableConf(editConfig) && (isDel || (treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow ? isBack && keyboardOpts.isArrow : isBack))) {
|
|
4172
4178
|
if (!isEditStatus) {
|
|
4173
4179
|
var delMethod = keyboardOpts.delMethod, backMethod = keyboardOpts.backMethod;
|
|
4174
4180
|
// 如果是删除键
|
|
@@ -4204,7 +4210,7 @@ export default defineComponent({
|
|
|
4204
4210
|
tableMethods.updateFooter();
|
|
4205
4211
|
}
|
|
4206
4212
|
}
|
|
4207
|
-
else if (isBack && keyboardOpts.isArrow && treeConfig && highlightCurrentRow && currentRow) {
|
|
4213
|
+
else if (isBack && keyboardOpts.isArrow && treeConfig && (rowOpts.isCurrent || highlightCurrentRow) && currentRow) {
|
|
4208
4214
|
// 如果树形表格回退键关闭当前行返回父节点
|
|
4209
4215
|
var parentRow_1 = XEUtils.findTree(internalData.afterFullData, function (item) { return item === currentRow; }, treeOpts).parent;
|
|
4210
4216
|
if (parentRow_1) {
|
|
@@ -4845,6 +4851,7 @@ export default defineComponent({
|
|
|
4845
4851
|
triggerHeaderCellClickEvent: function (evnt, params) {
|
|
4846
4852
|
var _lastResizeTime = internalData._lastResizeTime;
|
|
4847
4853
|
var sortOpts = computeSortOpts.value;
|
|
4854
|
+
var columnOpts = computeColumnOpts.value;
|
|
4848
4855
|
var column = params.column;
|
|
4849
4856
|
var cell = evnt.currentTarget;
|
|
4850
4857
|
var triggerResizable = _lastResizeTime && _lastResizeTime > Date.now() - 300;
|
|
@@ -4854,7 +4861,7 @@ export default defineComponent({
|
|
|
4854
4861
|
tablePrivateMethods.triggerSortEvent(evnt, column, getNextSortOrder(column));
|
|
4855
4862
|
}
|
|
4856
4863
|
tableMethods.dispatchEvent('header-cell-click', Object.assign({ triggerResizable: triggerResizable, triggerSort: triggerSort, triggerFilter: triggerFilter, cell: cell }, params), evnt);
|
|
4857
|
-
if (props.highlightCurrentColumn) {
|
|
4864
|
+
if (columnOpts.isCurrent || props.highlightCurrentColumn) {
|
|
4858
4865
|
tableMethods.setCurrentColumn(column);
|
|
4859
4866
|
}
|
|
4860
4867
|
},
|
|
@@ -4874,6 +4881,7 @@ export default defineComponent({
|
|
|
4874
4881
|
var treeOpts = computeTreeOpts.value;
|
|
4875
4882
|
var radioOpts = computeRadioOpts.value;
|
|
4876
4883
|
var checkboxOpts = computeCheckboxOpts.value;
|
|
4884
|
+
var rowOpts = computeRowOpts.value;
|
|
4877
4885
|
var actived = editStore.actived;
|
|
4878
4886
|
var row = params.row, column = params.column;
|
|
4879
4887
|
var type = column.type, treeNode = column.treeNode;
|
|
@@ -4900,7 +4908,7 @@ export default defineComponent({
|
|
|
4900
4908
|
if (!triggerTreeNode) {
|
|
4901
4909
|
if (!triggerExpandNode) {
|
|
4902
4910
|
// 如果是高亮行
|
|
4903
|
-
if (highlightCurrentRow) {
|
|
4911
|
+
if (rowOpts.isCurrent || highlightCurrentRow) {
|
|
4904
4912
|
if (!triggerCheckbox && !triggerRadio) {
|
|
4905
4913
|
tablePrivateMethods.triggerCurrentRowEvent(evnt, params);
|
|
4906
4914
|
}
|
|
@@ -5214,6 +5222,7 @@ export default defineComponent({
|
|
|
5214
5222
|
tablePrivateMethods.handleTableData();
|
|
5215
5223
|
tablePrivateMethods.updateScrollYSpace();
|
|
5216
5224
|
},
|
|
5225
|
+
updateVirtualTreeData: updateVirtualTreeData,
|
|
5217
5226
|
/**
|
|
5218
5227
|
* 处理固定列的显示状态
|
|
5219
5228
|
*/
|
|
@@ -5681,6 +5690,8 @@ export default defineComponent({
|
|
|
5681
5690
|
var leftList = columnStore.leftList, rightList = columnStore.rightList;
|
|
5682
5691
|
var tooltipOpts = computeTooltipOpts.value;
|
|
5683
5692
|
var treeOpts = computeTreeOpts.value;
|
|
5693
|
+
var rowOpts = computeRowOpts.value;
|
|
5694
|
+
var columnOpts = computeColumnOpts.value;
|
|
5684
5695
|
var vSize = computeSize.value;
|
|
5685
5696
|
var tableBorder = computeTableBorder.value;
|
|
5686
5697
|
var mouseOpts = computeMouseOpts.value;
|
|
@@ -5695,8 +5706,8 @@ export default defineComponent({
|
|
|
5695
5706
|
_a['cell--highlight'] = highlightCell,
|
|
5696
5707
|
_a['cell--selected'] = mouseConfig && mouseOpts.selected,
|
|
5697
5708
|
_a['cell--area'] = mouseConfig && mouseOpts.area,
|
|
5698
|
-
_a['row--highlight'] = highlightHoverRow,
|
|
5699
|
-
_a['column--highlight'] = highlightHoverColumn,
|
|
5709
|
+
_a['row--highlight'] = rowOpts.isHover || highlightHoverRow,
|
|
5710
|
+
_a['column--highlight'] = columnOpts.isHover || highlightHoverColumn,
|
|
5700
5711
|
_a['is--header'] = showHeader,
|
|
5701
5712
|
_a['is--footer'] = showFooter,
|
|
5702
5713
|
_a['is--group'] = isGroup,
|
|
@@ -10,6 +10,7 @@ var GlobalConfig = {
|
|
|
10
10
|
showHeader: true,
|
|
11
11
|
animat: true,
|
|
12
12
|
delayHover: 250,
|
|
13
|
+
autoResize: true,
|
|
13
14
|
// keepSource: false,
|
|
14
15
|
// showOverflow: null,
|
|
15
16
|
// showHeaderOverflow: null,
|
|
@@ -17,7 +18,6 @@ var GlobalConfig = {
|
|
|
17
18
|
// resizeInterval: 500,
|
|
18
19
|
// size: null,
|
|
19
20
|
// zIndex: null,
|
|
20
|
-
// autoResize: false,
|
|
21
21
|
// stripe: false,
|
|
22
22
|
// border: false,
|
|
23
23
|
// round: false,
|
|
@@ -90,6 +90,9 @@ var GlobalConfig = {
|
|
|
90
90
|
mouseConfig: {
|
|
91
91
|
extension: true
|
|
92
92
|
},
|
|
93
|
+
keyboardConfig: {
|
|
94
|
+
isEsc: true
|
|
95
|
+
},
|
|
93
96
|
areaConfig: {
|
|
94
97
|
selectCellByHeader: true
|
|
95
98
|
},
|
package/es/validator/src/hook.js
CHANGED
|
@@ -160,14 +160,14 @@ var validatorHook = {
|
|
|
160
160
|
var ruleProps = Object.keys(validRest);
|
|
161
161
|
return nextTick().then(function () {
|
|
162
162
|
if (ruleProps.length) {
|
|
163
|
-
return
|
|
163
|
+
return validRest[ruleProps[0]][0];
|
|
164
164
|
}
|
|
165
165
|
if (cb) {
|
|
166
166
|
cb();
|
|
167
167
|
}
|
|
168
168
|
});
|
|
169
169
|
}).catch(function (firstErrParams) {
|
|
170
|
-
return new Promise(function (resolve
|
|
170
|
+
return new Promise(function (resolve) {
|
|
171
171
|
var finish = function () {
|
|
172
172
|
nextTick(function () {
|
|
173
173
|
if (cb) {
|
|
@@ -175,7 +175,7 @@ var validatorHook = {
|
|
|
175
175
|
resolve();
|
|
176
176
|
}
|
|
177
177
|
else {
|
|
178
|
-
|
|
178
|
+
resolve(validRest);
|
|
179
179
|
}
|
|
180
180
|
});
|
|
181
181
|
};
|