vxe-table 3.13.3 → 3.13.5
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/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/locale/lang/zh-CHT.js +1 -1
- package/es/locale/lang/zh-CN.js +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/render/index.js +29 -6
- package/es/table/src/header.js +2 -4
- package/es/table/src/methods.js +40 -37
- package/es/table/src/table.js +1 -1
- package/es/table/style.css +19 -0
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +19 -0
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +75 -55
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +1 -1
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +1 -1
- package/lib/locale/lang/zh-CN.js +1 -1
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/render/index.js +27 -6
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/header.js +1 -4
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +41 -39
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +1 -1
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +19 -0
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +19 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/locale/lang/zh-CHT.ts +1 -1
- package/packages/locale/lang/zh-CN.ts +1 -1
- package/packages/table/render/index.ts +30 -6
- package/packages/table/src/header.ts +2 -4
- package/packages/table/src/methods.ts +42 -39
- package/packages/table/src/table.ts +1 -1
- package/styles/components/table.scss +29 -0
- package/styles/theme/base.scss +2 -1
- /package/es/{iconfont.1739938254381.ttf → iconfont.1740038065641.ttf} +0 -0
- /package/es/{iconfont.1739938254381.woff → iconfont.1740038065641.woff} +0 -0
- /package/es/{iconfont.1739938254381.woff2 → iconfont.1740038065641.woff2} +0 -0
- /package/lib/{iconfont.1739938254381.ttf → iconfont.1740038065641.ttf} +0 -0
- /package/lib/{iconfont.1739938254381.woff → iconfont.1740038065641.woff} +0 -0
- /package/lib/{iconfont.1739938254381.woff2 → iconfont.1740038065641.woff2} +0 -0
package/es/table/render/index.js
CHANGED
|
@@ -71,11 +71,11 @@ function getCellEditFilterProps(renderOpts, params, value, defaultProps) {
|
|
|
71
71
|
function isImmediateCell(renderOpts, params) {
|
|
72
72
|
return params.$type === 'cell' || getInputImmediateModel(renderOpts);
|
|
73
73
|
}
|
|
74
|
-
function getCellLabelVNs(h, renderOpts, params, cellLabel) {
|
|
74
|
+
function getCellLabelVNs(h, renderOpts, params, cellLabel, opts) {
|
|
75
75
|
const { placeholder } = renderOpts;
|
|
76
76
|
return [
|
|
77
77
|
h('span', {
|
|
78
|
-
class: 'vxe-cell--label'
|
|
78
|
+
class: ['vxe-cell--label', opts ? opts.class : '']
|
|
79
79
|
}, placeholder && isEmptyValue(cellLabel)
|
|
80
80
|
? [
|
|
81
81
|
h('span', {
|
|
@@ -626,11 +626,12 @@ renderer.mixin({
|
|
|
626
626
|
tableAutoFocus: 'input',
|
|
627
627
|
renderTableEdit: defaultEditRender,
|
|
628
628
|
renderTableCell(h, renderOpts, params) {
|
|
629
|
-
const { props = {} } = renderOpts;
|
|
629
|
+
const { props = {}, showNegativeStatus } = renderOpts;
|
|
630
630
|
const { row, column } = params;
|
|
631
631
|
const { type } = props;
|
|
632
632
|
let cellValue = XEUtils.get(row, column.field);
|
|
633
|
-
|
|
633
|
+
let isNegative = false;
|
|
634
|
+
if (!isEmptyValue(cellValue)) {
|
|
634
635
|
const numberInputConfig = getConfig().numberInput || {};
|
|
635
636
|
if (type === 'float') {
|
|
636
637
|
const autoFill = handleDefaultValue(props.autoFill, numberInputConfig.autoFill, true);
|
|
@@ -639,12 +640,23 @@ renderer.mixin({
|
|
|
639
640
|
if (!autoFill) {
|
|
640
641
|
cellValue = XEUtils.toNumber(cellValue);
|
|
641
642
|
}
|
|
643
|
+
if (showNegativeStatus) {
|
|
644
|
+
if (cellValue < 0) {
|
|
645
|
+
isNegative = true;
|
|
646
|
+
}
|
|
647
|
+
}
|
|
642
648
|
}
|
|
643
649
|
else if (type === 'amount') {
|
|
644
650
|
const autoFill = handleDefaultValue(props.autoFill, numberInputConfig.autoFill, true);
|
|
645
651
|
const digits = handleDefaultValue(props.digits, numberInputConfig.digits, 2);
|
|
646
652
|
const showCurrency = handleDefaultValue(props.showCurrency, numberInputConfig.showCurrency, false);
|
|
647
|
-
cellValue = XEUtils.
|
|
653
|
+
cellValue = XEUtils.toNumber(cellValue);
|
|
654
|
+
if (showNegativeStatus) {
|
|
655
|
+
if (cellValue < 0) {
|
|
656
|
+
isNegative = true;
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
cellValue = XEUtils.commafy(cellValue, { digits });
|
|
648
660
|
if (!autoFill) {
|
|
649
661
|
const [iStr, dStr] = cellValue.split('.');
|
|
650
662
|
if (dStr) {
|
|
@@ -656,8 +668,19 @@ renderer.mixin({
|
|
|
656
668
|
cellValue = `${props.currencySymbol || numberInputConfig.currencySymbol || getI18n('vxe.numberInput.currencySymbol') || ''}${cellValue}`;
|
|
657
669
|
}
|
|
658
670
|
}
|
|
671
|
+
else {
|
|
672
|
+
if (showNegativeStatus) {
|
|
673
|
+
if (XEUtils.toNumber(cellValue) < 0) {
|
|
674
|
+
isNegative = true;
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
}
|
|
659
678
|
}
|
|
660
|
-
return getCellLabelVNs(h, renderOpts, params, cellValue
|
|
679
|
+
return getCellLabelVNs(h, renderOpts, params, cellValue, isNegative
|
|
680
|
+
? {
|
|
681
|
+
class: 'is--negative'
|
|
682
|
+
}
|
|
683
|
+
: {});
|
|
661
684
|
},
|
|
662
685
|
renderTableFooter(h, renderOpts, params) {
|
|
663
686
|
const { props = {} } = renderOpts;
|
package/es/table/src/header.js
CHANGED
|
@@ -12,7 +12,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
12
12
|
const tableReactData = $xeTable;
|
|
13
13
|
const tableInternalData = $xeTable;
|
|
14
14
|
const { fixedType } = props;
|
|
15
|
-
const { resizable: allResizable,
|
|
15
|
+
const { resizable: allResizable, columnKey, headerCellClassName, headerCellStyle, showHeaderOverflow: allColumnHeaderOverflow, headerAlign: allHeaderAlign, align: allAlign, mouseConfig } = tableProps;
|
|
16
16
|
const { currentColumn, scrollXLoad, scrollYLoad, overflowX } = tableReactData;
|
|
17
17
|
const { scrollXStore } = tableInternalData;
|
|
18
18
|
const columnOpts = $xeTable.computeColumnOpts;
|
|
@@ -138,9 +138,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
138
138
|
*/
|
|
139
139
|
!fixedHiddenColumn && showResizable
|
|
140
140
|
? h('div', {
|
|
141
|
-
class:
|
|
142
|
-
'is--line': !border || border === 'none'
|
|
143
|
-
}],
|
|
141
|
+
class: 'vxe-cell--col-resizable',
|
|
144
142
|
on: {
|
|
145
143
|
mousedown: (evnt) => $xeTable.handleColResizeMousedownEvent(evnt, fixedType, cellParams),
|
|
146
144
|
dblclick: (evnt) => $xeTable.handleColResizeDblclickEvent(evnt, cellParams)
|
package/es/table/src/methods.js
CHANGED
|
@@ -2113,15 +2113,11 @@ const Methods = {
|
|
|
2113
2113
|
internalData.tableFullData = fullData;
|
|
2114
2114
|
internalData.tableFullTreeData = treeData;
|
|
2115
2115
|
// 缓存数据
|
|
2116
|
-
$xeTable.cacheRowMap(true
|
|
2116
|
+
$xeTable.cacheRowMap(true);
|
|
2117
2117
|
// 原始数据
|
|
2118
2118
|
internalData.tableSynchData = datas;
|
|
2119
2119
|
if (isReset) {
|
|
2120
2120
|
internalData.isResizeCellHeight = false;
|
|
2121
|
-
reactData.rowExpandedMaps = {};
|
|
2122
|
-
reactData.rowExpandLazyLoadedMaps = {};
|
|
2123
|
-
reactData.treeExpandedMaps = {};
|
|
2124
|
-
reactData.treeExpandLazyLoadedMaps = {};
|
|
2125
2121
|
}
|
|
2126
2122
|
// 克隆原数据,用于显示编辑状态,与编辑值做对比
|
|
2127
2123
|
if (keepSource) {
|
|
@@ -2305,16 +2301,21 @@ const Methods = {
|
|
|
2305
2301
|
/**
|
|
2306
2302
|
* 更新数据行的 Map
|
|
2307
2303
|
*/
|
|
2308
|
-
cacheRowMap(
|
|
2309
|
-
const
|
|
2304
|
+
cacheRowMap() {
|
|
2305
|
+
const $xeTable = this;
|
|
2306
|
+
const props = $xeTable;
|
|
2307
|
+
const internalData = $xeTable;
|
|
2308
|
+
const { treeConfig } = props;
|
|
2309
|
+
const treeOpts = $xeTable.computeTreeOpts;
|
|
2310
|
+
const { fullAllDataRowIdData, tableFullData, tableFullTreeData } = internalData;
|
|
2310
2311
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
2311
2312
|
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
|
|
2312
|
-
const rowkey = getRowkey(
|
|
2313
|
+
const rowkey = getRowkey($xeTable);
|
|
2313
2314
|
const isLazy = treeConfig && treeOpts.lazy;
|
|
2314
2315
|
const fullAllDataRowIdMaps = {};
|
|
2315
2316
|
const fullDataRowIdMaps = {};
|
|
2316
|
-
const
|
|
2317
|
-
let rowid = getRowid(
|
|
2317
|
+
const handleRow = (row, index, items, path, parentRow, nodes) => {
|
|
2318
|
+
let rowid = getRowid($xeTable, row);
|
|
2318
2319
|
const seq = treeConfig && path ? toTreePathSeq(path) : index + 1;
|
|
2319
2320
|
const level = nodes ? nodes.length - 1 : 0;
|
|
2320
2321
|
if (eqEmptyValue(rowid)) {
|
|
@@ -2324,29 +2325,25 @@ const Methods = {
|
|
|
2324
2325
|
if (isLazy && row[hasChildField] && XEUtils.isUndefined(row[childrenField])) {
|
|
2325
2326
|
row[childrenField] = null;
|
|
2326
2327
|
}
|
|
2327
|
-
let
|
|
2328
|
-
if (
|
|
2329
|
-
|
|
2330
|
-
}
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2335
|
-
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
}
|
|
2339
|
-
fullAllDataRowIdMaps[rowid] = cacheItem;
|
|
2328
|
+
let rowRest = fullAllDataRowIdData[rowid];
|
|
2329
|
+
if (!rowRest) {
|
|
2330
|
+
rowRest = { row, rowid, seq, index: -1, _index: -1, $index: -1, treeIndex: index, items, parent: parentRow, level, height: 0, resizeHeight: 0, oTop: 0, expandHeight: 0 };
|
|
2331
|
+
}
|
|
2332
|
+
rowRest.row = row;
|
|
2333
|
+
rowRest.items = items;
|
|
2334
|
+
rowRest.parent = parentRow;
|
|
2335
|
+
rowRest.level = level;
|
|
2336
|
+
rowRest.index = treeConfig && parentRow ? -1 : index;
|
|
2337
|
+
fullDataRowIdMaps[rowid] = rowRest;
|
|
2338
|
+
fullAllDataRowIdMaps[rowid] = rowRest;
|
|
2340
2339
|
};
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
}
|
|
2344
|
-
this.fullAllDataRowIdData = fullAllDataRowIdMaps;
|
|
2340
|
+
internalData.fullDataRowIdData = fullDataRowIdMaps;
|
|
2341
|
+
internalData.fullAllDataRowIdData = fullAllDataRowIdMaps;
|
|
2345
2342
|
if (treeConfig) {
|
|
2346
|
-
XEUtils.eachTree(tableFullTreeData,
|
|
2343
|
+
XEUtils.eachTree(tableFullTreeData, handleRow, { children: childrenField });
|
|
2347
2344
|
}
|
|
2348
2345
|
else {
|
|
2349
|
-
tableFullData.forEach(
|
|
2346
|
+
tableFullData.forEach(handleRow);
|
|
2350
2347
|
}
|
|
2351
2348
|
},
|
|
2352
2349
|
cacheSourceMap(fullData) {
|
|
@@ -3168,7 +3165,7 @@ const Methods = {
|
|
|
3168
3165
|
const props = $xeTable;
|
|
3169
3166
|
const internalData = $xeTable;
|
|
3170
3167
|
const { treeConfig } = props;
|
|
3171
|
-
const {
|
|
3168
|
+
const { fullAllDataRowIdData } = internalData;
|
|
3172
3169
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
3173
3170
|
const { transform, mapChildrenField } = treeOpts;
|
|
3174
3171
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
@@ -3181,7 +3178,7 @@ const Methods = {
|
|
|
3181
3178
|
rowid = getRowid($xeTable, rowOrRowid);
|
|
3182
3179
|
}
|
|
3183
3180
|
if (rowid) {
|
|
3184
|
-
const rest =
|
|
3181
|
+
const rest = fullAllDataRowIdData[rowid];
|
|
3185
3182
|
const row = rest ? rest.row : null;
|
|
3186
3183
|
if (row) {
|
|
3187
3184
|
return row[transform ? mapChildrenField : childrenField] || [];
|
|
@@ -3198,7 +3195,7 @@ const Methods = {
|
|
|
3198
3195
|
const props = $xeTable;
|
|
3199
3196
|
const internalData = $xeTable;
|
|
3200
3197
|
const { treeConfig } = props;
|
|
3201
|
-
const {
|
|
3198
|
+
const { fullAllDataRowIdData } = internalData;
|
|
3202
3199
|
if (rowOrRowid && treeConfig) {
|
|
3203
3200
|
let rowid;
|
|
3204
3201
|
if (XEUtils.isString(rowOrRowid)) {
|
|
@@ -3208,7 +3205,7 @@ const Methods = {
|
|
|
3208
3205
|
rowid = getRowid($xeTable, rowOrRowid);
|
|
3209
3206
|
}
|
|
3210
3207
|
if (rowid) {
|
|
3211
|
-
const rest =
|
|
3208
|
+
const rest = fullAllDataRowIdData[rowid];
|
|
3212
3209
|
return rest ? rest.parent : null;
|
|
3213
3210
|
}
|
|
3214
3211
|
}
|
|
@@ -3226,9 +3223,9 @@ const Methods = {
|
|
|
3226
3223
|
getRowById(cellValue) {
|
|
3227
3224
|
const $xeTable = this;
|
|
3228
3225
|
const internalData = $xeTable;
|
|
3229
|
-
const {
|
|
3226
|
+
const { fullAllDataRowIdData } = internalData;
|
|
3230
3227
|
const rowid = XEUtils.eqNull(cellValue) ? '' : encodeURIComponent(cellValue);
|
|
3231
|
-
return
|
|
3228
|
+
return fullAllDataRowIdData[rowid] ? fullAllDataRowIdData[rowid].row : null;
|
|
3232
3229
|
},
|
|
3233
3230
|
/**
|
|
3234
3231
|
* 根据行获取行的唯一主键
|
|
@@ -7459,11 +7456,12 @@ const Methods = {
|
|
|
7459
7456
|
const $xeTable = this;
|
|
7460
7457
|
const reactData = $xeTable;
|
|
7461
7458
|
const internalData = $xeTable;
|
|
7462
|
-
const tExpandedMaps = Object.assign({}, reactData.treeExpandedMaps);
|
|
7463
7459
|
const { fullAllDataRowIdData } = internalData;
|
|
7464
7460
|
const treeOpts = $xeTable.computeTreeOpts;
|
|
7465
7461
|
const { transform } = treeOpts;
|
|
7462
|
+
let tExpandedMaps = {};
|
|
7466
7463
|
if (rows) {
|
|
7464
|
+
tExpandedMaps = Object.assign({}, reactData.treeExpandedMaps);
|
|
7467
7465
|
if (!XEUtils.isArray(rows)) {
|
|
7468
7466
|
rows = [rows];
|
|
7469
7467
|
}
|
|
@@ -7478,7 +7476,12 @@ const Methods = {
|
|
|
7478
7476
|
}
|
|
7479
7477
|
});
|
|
7480
7478
|
}
|
|
7481
|
-
|
|
7479
|
+
else {
|
|
7480
|
+
XEUtils.each(fullAllDataRowIdData, (rowRest) => {
|
|
7481
|
+
rowRest.treeLoaded = false;
|
|
7482
|
+
});
|
|
7483
|
+
}
|
|
7484
|
+
reactData.treeExpandedMaps = {};
|
|
7482
7485
|
if (transform) {
|
|
7483
7486
|
handleVirtualTreeToList($xeTable);
|
|
7484
7487
|
return $xeTable.handleTableData();
|
package/es/table/src/table.js
CHANGED
|
@@ -1113,7 +1113,7 @@ export default {
|
|
|
1113
1113
|
if (value && value.length >= 50000) {
|
|
1114
1114
|
warnLog('vxe.error.errLargeData', ['loadData(data), reloadData(data)']);
|
|
1115
1115
|
}
|
|
1116
|
-
this.loadTableData(value || [],
|
|
1116
|
+
this.loadTableData(value || [], false).then(() => {
|
|
1117
1117
|
const { scrollXLoad, scrollYLoad, expandColumn } = reactData;
|
|
1118
1118
|
const expandOpts = $xeTable.computeExpandOpts;
|
|
1119
1119
|
this.inited = true;
|
package/es/table/style.css
CHANGED
|
@@ -1932,6 +1932,11 @@
|
|
|
1932
1932
|
min-height: 100%;
|
|
1933
1933
|
}
|
|
1934
1934
|
|
|
1935
|
+
/*负数显示红色*/
|
|
1936
|
+
.vxe-cell--label.is--negative {
|
|
1937
|
+
color: var(--vxe-ui-table-cell-negative-color);
|
|
1938
|
+
}
|
|
1939
|
+
|
|
1935
1940
|
.vxe-table--checkbox-range,
|
|
1936
1941
|
.vxe-table--cell-main-area,
|
|
1937
1942
|
.vxe-table--cell-extend-area,
|
|
@@ -2566,6 +2571,20 @@
|
|
|
2566
2571
|
.vxe-table--render-default.border--default.sx-pos--bottom .vxe-table--scroll-x-wrapper::before, .vxe-table--render-default.border--full.sx-pos--bottom .vxe-table--scroll-x-wrapper::before, .vxe-table--render-default.border--outer.sx-pos--bottom .vxe-table--scroll-x-wrapper::before, .vxe-table--render-default.border--inner.sx-pos--bottom .vxe-table--scroll-x-wrapper::before {
|
|
2567
2572
|
top: -1px;
|
|
2568
2573
|
}
|
|
2574
|
+
.vxe-table--render-default.border--default .vxe-cell--col-resizable:before, .vxe-table--render-default.border--default .vxe-cell--col-resizable:after, .vxe-table--render-default.border--none .vxe-cell--col-resizable:before, .vxe-table--render-default.border--none .vxe-cell--col-resizable:after, .vxe-table--render-default.border--outer .vxe-cell--col-resizable:before, .vxe-table--render-default.border--outer .vxe-cell--col-resizable:after, .vxe-table--render-default.border--inner .vxe-cell--col-resizable:before, .vxe-table--render-default.border--inner .vxe-cell--col-resizable:after {
|
|
2575
|
+
content: "";
|
|
2576
|
+
display: inline-block;
|
|
2577
|
+
vertical-align: middle;
|
|
2578
|
+
}
|
|
2579
|
+
.vxe-table--render-default.border--default .vxe-cell--col-resizable:before, .vxe-table--render-default.border--none .vxe-cell--col-resizable:before, .vxe-table--render-default.border--outer .vxe-cell--col-resizable:before, .vxe-table--render-default.border--inner .vxe-cell--col-resizable:before {
|
|
2580
|
+
width: 1px;
|
|
2581
|
+
height: 50%;
|
|
2582
|
+
background-color: var(--vxe-ui-table-resizable-line-color);
|
|
2583
|
+
}
|
|
2584
|
+
.vxe-table--render-default.border--default .vxe-cell--col-resizable:after, .vxe-table--render-default.border--none .vxe-cell--col-resizable:after, .vxe-table--render-default.border--outer .vxe-cell--col-resizable:after, .vxe-table--render-default.border--inner .vxe-cell--col-resizable:after {
|
|
2585
|
+
width: 0;
|
|
2586
|
+
height: 100%;
|
|
2587
|
+
}
|
|
2569
2588
|
.vxe-table--render-default.border--default .vxe-table--header-wrapper, .vxe-table--render-default.border--full .vxe-table--header-wrapper, .vxe-table--render-default.border--outer .vxe-table--header-wrapper {
|
|
2570
2589
|
background-color: var(--vxe-ui-table-header-background-color);
|
|
2571
2590
|
}
|