vxe-table 4.10.13 → 4.10.15-beta.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.
Files changed (44) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/module/edit/hook.js +138 -128
  6. package/es/table/src/body.js +57 -43
  7. package/es/table/src/table.js +236 -51
  8. package/es/table/style.css +26 -0
  9. package/es/table/style.min.css +1 -1
  10. package/es/ui/index.js +1 -1
  11. package/es/ui/src/log.js +1 -1
  12. package/es/vxe-table/style.css +26 -0
  13. package/es/vxe-table/style.min.css +1 -1
  14. package/lib/index.css +1 -1
  15. package/lib/index.min.css +1 -1
  16. package/lib/index.umd.js +531 -265
  17. package/lib/index.umd.min.js +1 -1
  18. package/lib/style.css +1 -1
  19. package/lib/style.min.css +1 -1
  20. package/lib/table/module/edit/hook.js +169 -154
  21. package/lib/table/module/edit/hook.min.js +1 -1
  22. package/lib/table/src/body.js +65 -58
  23. package/lib/table/src/body.min.js +1 -1
  24. package/lib/table/src/table.js +293 -49
  25. package/lib/table/src/table.min.js +1 -1
  26. package/lib/table/style/style.css +26 -0
  27. package/lib/table/style/style.min.css +1 -1
  28. package/lib/ui/index.js +1 -1
  29. package/lib/ui/index.min.js +1 -1
  30. package/lib/ui/src/log.js +1 -1
  31. package/lib/ui/src/log.min.js +1 -1
  32. package/lib/vxe-table/style/style.css +26 -0
  33. package/lib/vxe-table/style/style.min.css +1 -1
  34. package/package.json +2 -2
  35. package/packages/table/module/edit/hook.ts +141 -129
  36. package/packages/table/src/body.ts +60 -50
  37. package/packages/table/src/table.ts +247 -51
  38. package/styles/components/table.scss +26 -0
  39. /package/es/{iconfont.1739257038865.ttf → iconfont.1739426300784.ttf} +0 -0
  40. /package/es/{iconfont.1739257038865.woff → iconfont.1739426300784.woff} +0 -0
  41. /package/es/{iconfont.1739257038865.woff2 → iconfont.1739426300784.woff2} +0 -0
  42. /package/lib/{iconfont.1739257038865.ttf → iconfont.1739426300784.ttf} +0 -0
  43. /package/lib/{iconfont.1739257038865.woff → iconfont.1739426300784.woff} +0 -0
  44. /package/lib/{iconfont.1739257038865.woff2 → iconfont.1739426300784.woff2} +0 -0
@@ -64,7 +64,7 @@ hooks.add('tableEditModule', {
64
64
  }
65
65
  }
66
66
  };
67
- function syncActivedCell() {
67
+ const syncActivedCell = () => {
68
68
  const {
69
69
  editStore,
70
70
  tableColumn
@@ -84,8 +84,8 @@ hooks.add('tableEditModule', {
84
84
  setEditColumnModel(row, column);
85
85
  }
86
86
  }
87
- }
88
- function insertTreeRow(newRecords, isAppend) {
87
+ };
88
+ const insertTreeRow = (newRecords, isAppend) => {
89
89
  const {
90
90
  tableFullTreeData,
91
91
  afterFullData,
@@ -135,7 +135,8 @@ hooks.add('tableEditModule', {
135
135
  level: parentLevel + 1,
136
136
  height: 0,
137
137
  resizeHeight: 0,
138
- oTop: 0
138
+ oTop: 0,
139
+ expandHeight: 0
139
140
  };
140
141
  fullDataRowIdData[rowid] = rest;
141
142
  fullAllDataRowIdData[rowid] = rest;
@@ -160,13 +161,14 @@ hooks.add('tableEditModule', {
160
161
  level: 0,
161
162
  height: 0,
162
163
  resizeHeight: 0,
163
- oTop: 0
164
+ oTop: 0,
165
+ expandHeight: 0
164
166
  };
165
167
  fullDataRowIdData[rowid] = rest;
166
168
  fullAllDataRowIdData[rowid] = rest;
167
169
  }
168
170
  });
169
- }
171
+ };
170
172
  const handleInsertRowAt = (records, targetRow, isInsertNextRow) => {
171
173
  const {
172
174
  treeConfig
@@ -216,7 +218,8 @@ hooks.add('tableEditModule', {
216
218
  level: 0,
217
219
  height: 0,
218
220
  resizeHeight: 0,
219
- oTop: 0
221
+ oTop: 0,
222
+ expandHeight: 0
220
223
  };
221
224
  fullDataRowIdData[rowid] = rest;
222
225
  fullAllDataRowIdData[rowid] = rest;
@@ -254,7 +257,8 @@ hooks.add('tableEditModule', {
254
257
  level: 0,
255
258
  height: 0,
256
259
  resizeHeight: 0,
257
- oTop: 0
260
+ oTop: 0,
261
+ expandHeight: 0
258
262
  };
259
263
  fullDataRowIdData[rowid] = rest;
260
264
  fullAllDataRowIdData[rowid] = rest;
@@ -315,7 +319,8 @@ hooks.add('tableEditModule', {
315
319
  level: parentLevel + 1,
316
320
  height: 0,
317
321
  resizeHeight: 0,
318
- oTop: 0
322
+ oTop: 0,
323
+ expandHeight: 0
319
324
  };
320
325
  fullDataRowIdData[rowid] = rest;
321
326
  fullAllDataRowIdData[rowid] = rest;
@@ -485,6 +490,158 @@ hooks.add('tableEditModule', {
485
490
  }
486
491
  });
487
492
  };
493
+ const handleEditActive = (params, evnt, isFocus) => {
494
+ const {
495
+ editConfig,
496
+ mouseConfig
497
+ } = props;
498
+ const {
499
+ editStore,
500
+ tableColumn
501
+ } = reactData;
502
+ const editOpts = computeEditOpts.value;
503
+ const {
504
+ mode
505
+ } = editOpts;
506
+ const {
507
+ actived,
508
+ focused
509
+ } = editStore;
510
+ const {
511
+ row,
512
+ column
513
+ } = params;
514
+ const {
515
+ editRender
516
+ } = column;
517
+ const cell = params.cell || $xeTable.getCellElement(row, column);
518
+ const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod;
519
+ params.cell = cell;
520
+ if (cell && (0, _utils.isEnableConf)(editConfig) && (0, _utils.isEnableConf)(editRender)) {
521
+ // 激活编辑
522
+ if (!$xeTable.isPendingByRow(row)) {
523
+ if (actived.row !== row || (mode === 'cell' ? actived.column !== column : false)) {
524
+ // 判断是否禁用编辑
525
+ let type = 'edit-disabled';
526
+ if (!beforeEditMethod || beforeEditMethod(Object.assign(Object.assign({}, params), {
527
+ $table: $xeTable,
528
+ $grid: $xeTable.xegrid
529
+ }))) {
530
+ if (mouseConfig) {
531
+ $xeTable.clearSelected();
532
+ if ($xeTable.clearCellAreas) {
533
+ $xeTable.clearCellAreas();
534
+ $xeTable.clearCopyCellArea();
535
+ }
536
+ }
537
+ $xeTable.closeTooltip();
538
+ if (actived.column) {
539
+ handleClearEdit(evnt);
540
+ }
541
+ type = 'edit-activated';
542
+ column.renderHeight = cell.offsetHeight;
543
+ actived.args = params;
544
+ actived.row = row;
545
+ actived.column = column;
546
+ if (mode === 'row') {
547
+ tableColumn.forEach(column => getEditColumnModel(row, column));
548
+ } else {
549
+ getEditColumnModel(row, column);
550
+ }
551
+ const afterEditMethod = editOpts.afterEditMethod;
552
+ (0, _vue.nextTick)(() => {
553
+ if (isFocus) {
554
+ $xeTable.handleFocus(params, evnt);
555
+ }
556
+ if (afterEditMethod) {
557
+ afterEditMethod(Object.assign(Object.assign({}, params), {
558
+ $table: $xeTable,
559
+ $grid: $xeTable.xegrid
560
+ }));
561
+ }
562
+ });
563
+ }
564
+ $xeTable.dispatchEvent(type, {
565
+ row,
566
+ rowIndex: $xeTable.getRowIndex(row),
567
+ $rowIndex: $xeTable.getVMRowIndex(row),
568
+ column,
569
+ columnIndex: $xeTable.getColumnIndex(column),
570
+ $columnIndex: $xeTable.getVMColumnIndex(column)
571
+ }, evnt);
572
+ // v4已废弃
573
+ if (type === 'edit-activated') {
574
+ $xeTable.dispatchEvent('edit-actived', {
575
+ row,
576
+ rowIndex: $xeTable.getRowIndex(row),
577
+ $rowIndex: $xeTable.getVMRowIndex(row),
578
+ column,
579
+ columnIndex: $xeTable.getColumnIndex(column),
580
+ $columnIndex: $xeTable.getVMColumnIndex(column)
581
+ }, evnt);
582
+ }
583
+ } else {
584
+ const {
585
+ column: oldColumn
586
+ } = actived;
587
+ if (mouseConfig) {
588
+ $xeTable.clearSelected();
589
+ if ($xeTable.clearCellAreas) {
590
+ $xeTable.clearCellAreas();
591
+ $xeTable.clearCopyCellArea();
592
+ }
593
+ }
594
+ if (oldColumn !== column) {
595
+ const {
596
+ model: oldModel
597
+ } = oldColumn;
598
+ if (oldModel.update) {
599
+ (0, _util.setCellValue)(row, oldColumn, oldModel.value);
600
+ }
601
+ if ($xeTable.clearValidate) {
602
+ $xeTable.clearValidate(row, column);
603
+ }
604
+ }
605
+ column.renderHeight = cell.offsetHeight;
606
+ actived.args = params;
607
+ actived.column = column;
608
+ if (isFocus) {
609
+ setTimeout(() => {
610
+ $xeTable.handleFocus(params, evnt);
611
+ });
612
+ }
613
+ }
614
+ focused.column = null;
615
+ focused.row = null;
616
+ $xeTable.focus();
617
+ }
618
+ }
619
+ return (0, _vue.nextTick)();
620
+ };
621
+ const handleEditCell = (row, fieldOrColumn, isPos) => {
622
+ const {
623
+ editConfig
624
+ } = props;
625
+ const column = _xeUtils.default.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn;
626
+ if (row && column && (0, _utils.isEnableConf)(editConfig) && (0, _utils.isEnableConf)(column.editRender)) {
627
+ return Promise.resolve(isPos ? $xeTable.scrollToRow(row, column) : null).then(() => {
628
+ const cell = $xeTable.getCellElement(row, column);
629
+ if (cell) {
630
+ handleEditActive({
631
+ row,
632
+ rowIndex: $xeTable.getRowIndex(row),
633
+ column,
634
+ columnIndex: $xeTable.getColumnIndex(column),
635
+ cell,
636
+ $table: $xeTable
637
+ }, null, false);
638
+ internalData._lastCallTime = Date.now();
639
+ }
640
+ return (0, _vue.nextTick)();
641
+ });
642
+ }
643
+ return (0, _vue.nextTick)();
644
+ };
488
645
  editMethods = {
489
646
  /**
490
647
  * 往表格中插入临时数据
@@ -877,7 +1034,7 @@ hooks.add('tableEditModule', {
877
1034
  if (fieldOrColumn) {
878
1035
  column = _xeUtils.default.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn;
879
1036
  }
880
- return $xeTable.setEditCell(row, column);
1037
+ return handleEditCell(row, column, false);
881
1038
  },
882
1039
  setActiveCell(row, fieldOrColumn) {
883
1040
  if (process.env.NODE_ENV === 'development') {
@@ -890,28 +1047,7 @@ hooks.add('tableEditModule', {
890
1047
  * 激活单元格编辑
891
1048
  */
892
1049
  setEditCell(row, fieldOrColumn) {
893
- const {
894
- editConfig
895
- } = props;
896
- const column = _xeUtils.default.isString(fieldOrColumn) ? $xeTable.getColumnByField(fieldOrColumn) : fieldOrColumn;
897
- if (row && column && (0, _utils.isEnableConf)(editConfig) && (0, _utils.isEnableConf)(column.editRender)) {
898
- return $xeTable.scrollToRow(row, column).then(() => {
899
- const cell = $xeTable.getCellElement(row, column);
900
- if (cell) {
901
- editPrivateMethods.handleEdit({
902
- row,
903
- rowIndex: $xeTable.getRowIndex(row),
904
- column,
905
- columnIndex: $xeTable.getColumnIndex(column),
906
- cell,
907
- $table: $xeTable
908
- });
909
- internalData._lastCallTime = Date.now();
910
- }
911
- return (0, _vue.nextTick)();
912
- });
913
- }
914
- return (0, _vue.nextTick)();
1050
+ return handleEditCell(row, fieldOrColumn, true);
915
1051
  },
916
1052
  /**
917
1053
  * 只对 trigger=dblclick 有效,选中单元格
@@ -944,128 +1080,7 @@ hooks.add('tableEditModule', {
944
1080
  * 处理激活编辑
945
1081
  */
946
1082
  handleEdit(params, evnt) {
947
- const {
948
- editConfig,
949
- mouseConfig
950
- } = props;
951
- const {
952
- editStore,
953
- tableColumn
954
- } = reactData;
955
- const editOpts = computeEditOpts.value;
956
- const {
957
- mode
958
- } = editOpts;
959
- const {
960
- actived,
961
- focused
962
- } = editStore;
963
- const {
964
- row,
965
- column
966
- } = params;
967
- const {
968
- editRender
969
- } = column;
970
- const cell = params.cell || $xeTable.getCellElement(row, column);
971
- const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod;
972
- params.cell = cell;
973
- if (cell && (0, _utils.isEnableConf)(editConfig) && (0, _utils.isEnableConf)(editRender)) {
974
- // 激活编辑
975
- if (!$xeTable.isPendingByRow(row)) {
976
- if (actived.row !== row || (mode === 'cell' ? actived.column !== column : false)) {
977
- // 判断是否禁用编辑
978
- let type = 'edit-disabled';
979
- if (!beforeEditMethod || beforeEditMethod(Object.assign(Object.assign({}, params), {
980
- $table: $xeTable,
981
- $grid: $xeTable.xegrid
982
- }))) {
983
- if (mouseConfig) {
984
- editMethods.clearSelected();
985
- if ($xeTable.clearCellAreas) {
986
- $xeTable.clearCellAreas();
987
- $xeTable.clearCopyCellArea();
988
- }
989
- }
990
- $xeTable.closeTooltip();
991
- if (actived.column) {
992
- handleClearEdit(evnt);
993
- }
994
- type = 'edit-activated';
995
- column.renderHeight = cell.offsetHeight;
996
- actived.args = params;
997
- actived.row = row;
998
- actived.column = column;
999
- if (mode === 'row') {
1000
- tableColumn.forEach(column => getEditColumnModel(row, column));
1001
- } else {
1002
- getEditColumnModel(row, column);
1003
- }
1004
- const afterEditMethod = editOpts.afterEditMethod;
1005
- (0, _vue.nextTick)(() => {
1006
- editPrivateMethods.handleFocus(params, evnt);
1007
- if (afterEditMethod) {
1008
- afterEditMethod(Object.assign(Object.assign({}, params), {
1009
- $table: $xeTable,
1010
- $grid: $xeTable.xegrid
1011
- }));
1012
- }
1013
- });
1014
- }
1015
- $xeTable.dispatchEvent(type, {
1016
- row,
1017
- rowIndex: $xeTable.getRowIndex(row),
1018
- $rowIndex: $xeTable.getVMRowIndex(row),
1019
- column,
1020
- columnIndex: $xeTable.getColumnIndex(column),
1021
- $columnIndex: $xeTable.getVMColumnIndex(column)
1022
- }, evnt);
1023
- // v4已废弃
1024
- if (type === 'edit-activated') {
1025
- $xeTable.dispatchEvent('edit-actived', {
1026
- row,
1027
- rowIndex: $xeTable.getRowIndex(row),
1028
- $rowIndex: $xeTable.getVMRowIndex(row),
1029
- column,
1030
- columnIndex: $xeTable.getColumnIndex(column),
1031
- $columnIndex: $xeTable.getVMColumnIndex(column)
1032
- }, evnt);
1033
- }
1034
- } else {
1035
- const {
1036
- column: oldColumn
1037
- } = actived;
1038
- if (mouseConfig) {
1039
- editMethods.clearSelected();
1040
- if ($xeTable.clearCellAreas) {
1041
- $xeTable.clearCellAreas();
1042
- $xeTable.clearCopyCellArea();
1043
- }
1044
- }
1045
- if (oldColumn !== column) {
1046
- const {
1047
- model: oldModel
1048
- } = oldColumn;
1049
- if (oldModel.update) {
1050
- (0, _util.setCellValue)(row, oldColumn, oldModel.value);
1051
- }
1052
- if ($xeTable.clearValidate) {
1053
- $xeTable.clearValidate(row, column);
1054
- }
1055
- }
1056
- column.renderHeight = cell.offsetHeight;
1057
- actived.args = params;
1058
- actived.column = column;
1059
- setTimeout(() => {
1060
- editPrivateMethods.handleFocus(params, evnt);
1061
- });
1062
- }
1063
- focused.column = null;
1064
- focused.row = null;
1065
- $xeTable.focus();
1066
- }
1067
- }
1068
- return (0, _vue.nextTick)();
1083
+ return handleEditActive(params, evnt, true);
1069
1084
  },
1070
1085
  /**
1071
1086
  * @deprecated
@@ -1 +1 @@
1
- var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,renderer,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","insertChild","insertChildAt","insertChildNextAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getEditRecord","getActiveRecord","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(m){let{props:R,reactData:C,internalData:_}=m,o=m.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:w,computeCheckboxOpts:x,computeTreeOpts:E,computeValidOpts:s}=m.getComputeMaps(),I={},f={},h=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},i=(e,t)=>{var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},l=()=>{var e=o.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")};function u(){var{editStore:e,tableColumn:t}=C,l=w.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>i(r,e)):i(r,o))}function b(e,t){let{tableFullTreeData:a,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:s}=_;var l=E.value;let{rowField:u,parentField:c,mapChildrenField:g}=l,v=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(m,l),o=t?_xeUtils.default.findTree(a,e=>t===e[u],{children:g}):null;if(o){var o=o.item,i=s[(0,_util.getRowid)(m,o)],i=i?i.level:0;let e=o[v],t=o[g];_xeUtils.default.isArray(e)||(e=o[v]=[]),_xeUtils.default.isArray(t)||(t=o[v]=[]),e[w](l),t[w](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0};d[r]=o,s[r]=o}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[w](l),a[w](l);i={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0};d[r]=i,s[r]=i}})}let d=(t,l,d)=>{let o=R.treeConfig;var{mergeList:e,editStore:r}=C;let{tableFullTreeData:s,afterFullData:i,tableFullData:a,fullDataRowIdData:u,fullAllDataRowIdData:c}=_,g=E.value,{transform:n,rowField:v,mapChildrenField:w}=g,f=g.children||g.childrenField,h=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(m.defineField(t.map(e=>Object.assign(o&&n?{[w]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))o&&n?b(h,!1):(h.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0};u[t]=l,c[t]=l,i.unshift(e),a.unshift(e)}),e.forEach(e=>{var t=e.row;0<t&&(e.row=t+h.length)}));else if(-1===l)o&&n?b(h,!0):(h.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,$index:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0};u[t]=l,c[t]=l,i.push(e),a.push(e)}),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>i.length&&(e.rowspan=l+h.length)}));else if(o&&n){let n=_xeUtils.default.findTree(s,e=>l[v]===e[v],{children:w});if(n){let o=n.parent,i=o?o[w]:s;t=c[(0,_util.getRowid)(m,o)];let a=t?t.level:0;if(h.forEach((e,t)=>{var l=(0,_util.getRowid)(m,e);"development"===process.env.NODE_ENV&&e[g.parentField]&&o&&e[g.parentField]!==o[v]&&(0,_log.errLog)("vxe.error.errProp",[g.parentField+"="+e[g.parentField],g.parentField+"="+o[v]]),o&&(e[g.parentField]=o[v]);let r=n.index+t;d&&(r+=1),i.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:o,level:a+1,height:0,resizeHeight:0,oTop:0};u[l]=t,c[l]=t}),o){t=_xeUtils.default.findTree(s,e=>l[v]===e[v],{children:f});if(t){var p=t.items;let e=t.index;d&&(e+=1),p.splice(e,0,...h)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),b(h,!0)}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<i.length&&(r=l):r=m.findRowIndexOf(i,l),-1===(r=d?Math.min(i.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));i.splice(r,0,...h);t=m.findRowIndexOf(a,l);-1<t?a.splice(t+(d?1:0),0,...h):a.push(...h),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+h.length:t+l>r&&(e.rowspan=l+h.length)})}let x=r.insertMaps;return h.forEach(e=>{var t=(0,_util.getRowid)(m,e);x[t]=e}),m.cacheRowMap(!1),m.updateScrollYStatus(),m.handleTableData(o&&n),o&&n||m.updateAfterDataIndex(),m.updateFooter(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},r=(e,t,l,r)=>{var o=R.treeConfig;let{transform:i,rowField:a,parentField:n}=E.value;return o&&i?(_xeUtils.default.isArray(e)||(e=[e]),d(e.map(e=>Object.assign({},e,{[n]:t[a]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.treeConfig=false","tree-config.treeConfig=true"]),Promise.resolve({row:null,rows:[]}))},p=(e,t)=>{let l=R.mouseConfig;var r=C.editStore,{actived:r,focused:o}=r,{row:i,column:a}=r,n=s.value;let d=c.value;if(i||a){if(t&&(0,_util.getRowid)(m,t)!==(0,_util.getRowid)(m,i))return(0,_vue.nextTick)();u(),r.args=null,r.row=null,r.column=null,m.updateFooter(),m.dispatchEvent("edit-closed",{row:i,rowIndex:m.getRowIndex(i),$rowIndex:m.getVMRowIndex(i),column:a,columnIndex:m.getColumnIndex(a),$columnIndex:m.getVMColumnIndex(a)},e||null)}return o.row=null,o.column=null,n.autoClear&&("full"!==n.msgMode||"obsolete"===getConfig().cellVaildMode)&&m.clearValidate?m.clearValidate():(0,_vue.nextTick)().then(()=>{if(l&&d.area&&m.handleRecalculateCellAreas)return m.handleRecalculateCellAreas()})};return I={insert(e){return d(e,null)},insertAt(e,t){return d(e,t)},insertNextAt(e,t){return d(e,t,!0)},insertChild(e,t){return r(e,t,null)},insertChildAt(e,t,l){return r(e,t,l)},insertChildNextAt(e,t,l){return r(e,t,l,!0)},remove(e){var t=R.treeConfig;let{mergeList:l,editStore:r,selectCheckboxMaps:o}=C,{tableFullTreeData:i,afterFullData:a,tableFullData:n}=_;var d=x.value,s=E.value;let{transform:u,mapChildrenField:c}=s,g=s.children||s.childrenField,{actived:v,removeMaps:w}=r,f=Object.assign({},r.insertMaps),h=Object.assign({},C.pendingRowMaps);s=d.checkField;let p=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=n,e.forEach(e=>{var t;m.isInsertByRow(e)||(t=(0,_util.getRowid)(m,e),w[t]=e)}),!s){let t=Object.assign({},o);e.forEach(e=>{e=(0,_util.getRowid)(m,e);t[e]&&delete t[e]}),C.selectCheckboxMaps=t}return n===e?(e=p=n.slice(0),_.tableFullData=[],_.afterFullData=[],m.clearMergeCells()):t&&u?e.forEach(e=>{let t=(0,_util.getRowid)(m,e);var l=_xeUtils.default.findTree(i,e=>t===(0,_util.getRowid)(m,e),{children:c}),l=(l&&(l=l.items.splice(l.index,1),p.push(l[0])),_xeUtils.default.findTree(i,e=>t===(0,_util.getRowid)(m,e),{children:g})),l=(l&&l.items.splice(l.index,1),m.findRowIndexOf(a,e));-1<l&&a.splice(l,1)}):e.forEach(e=>{var t=m.findRowIndexOf(n,e);-1<t&&(t=n.splice(t,1),p.push(t[0]));let r=m.findRowIndexOf(a,e);-1<r&&(l.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),a.splice(r,1))}),v.row&&-1<m.findRowIndexOf(e,v.row)&&I.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(m,e);f[e]&&delete f[e],h[e]&&delete h[e]}),r.insertMaps=f,C.pendingRowMaps=h,m.updateFooter(),m.cacheRowMap(!1),m.handleTableData(t&&u),t&&u||m.updateAfterDataIndex(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},removeCheckboxRow(){return I.remove(m.getCheckboxRecords()).then(e=>(m.clearCheckboxRow(),e))},removeRadioRow(){var e=m.getRadioRecord();return I.remove(e||[]).then(e=>(m.clearRadioRow(),e))},removeCurrentRow(){var e=m.getCurrentRecord();return I.remove(e||[]).then(e=>(m.clearCurrentRow(),e))},getRecordset(){var e=I.getRemoveRecords(),t=m.getPendingRecords();let l=e.concat(t);var r=I.getUpdateRecords().filter(t=>!l.some(e=>m.eqRow(e,t)));return{insertRecords:I.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){var e=C.editStore;let l=_.fullAllDataRowIdData;e=e.insertMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=C.editStore,e=e.removeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=R,l=_.tableFullData,r=E.value;return e?(u(),t?_xeUtils.default.filterTree(l,e=>m.isUpdateByRow(e),r):l.filter(e=>m.isUpdateByRow(e))):[]},getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},getEditRecord(){var e=C.editStore,t=_.afterFullData,l=o.value,{args:e,row:r}=e.actived;return e&&-1<m.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=C.editStore,{args:e,column:t}=e.selected;return e&&t?Object.assign({},e):null},clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},clearEdit(e){return p(null,e)},clearSelected(){var e=C.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},isEditByRow(e){var t=C.editStore;return t.actived.row===e},setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),I.setEditRow(e)},setEditRow(e,t){var l=_.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender));return t&&(r=_xeUtils.default.isString(t)?m.getColumnByField(t):t),m.setEditCell(e,r)},setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),I.setEditCell(e,t)},setEditCell(t,e){var l=R.editConfig;let r=_xeUtils.default.isString(e)?m.getColumnByField(e):e;return t&&r&&(0,_utils.isEnableConf)(l)&&(0,_utils.isEnableConf)(r.editRender)?m.scrollToRow(t,r).then(()=>{var e=m.getCellElement(t,r);return e&&(f.handleEdit({row:t,rowIndex:m.getRowIndex(t),column:r,columnIndex:m.getColumnIndex(r),cell:e,$table:m}),_._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()},setSelectCell(e,t){var l=C.tableData,r=w.value,t=_xeUtils.default.isString(t)?m.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=m.findRowIndexOf(l,e))&&t&&(l=m.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:m.getColumnIndex(t),cell:l},m.handleSelected(e,{})),(0,_vue.nextTick)()}},f={handleEdit(l,r){var{editConfig:e,mouseConfig:o}=R,{editStore:i,tableColumn:a}=C,n=w.value,d=n.mode,{actived:i,focused:t}=i;let{row:s,column:u}=l;var c=u.editRender,g=l.cell||m.getCellElement(s,u),v=n.beforeEditMethod||n.activeMethod;if((l.cell=g)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(c)&&!m.isPendingByRow(s)){if(i.row!==s||"cell"===d&&i.column!==u){let t="edit-disabled";if(!v||v(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))){o&&(I.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),m.closeTooltip(),i.column&&p(r),t="edit-activated",u.renderHeight=g.offsetHeight,i.args=l,i.row=s,i.column=u,"row"===d?a.forEach(e=>h(s,e)):h(s,u);let e=n.afterEditMethod;(0,_vue.nextTick)(()=>{f.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))})}m.dispatchEvent(t,{row:s,rowIndex:m.getRowIndex(s),$rowIndex:m.getVMRowIndex(s),column:u,columnIndex:m.getColumnIndex(u),$columnIndex:m.getVMColumnIndex(u)},r),"edit-activated"===t&&m.dispatchEvent("edit-actived",{row:s,rowIndex:m.getRowIndex(s),$rowIndex:m.getVMRowIndex(s),column:u,columnIndex:m.getColumnIndex(u),$columnIndex:m.getVMColumnIndex(u)},r)}else{e=i.column;o&&(I.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),e!==u&&(c=e.model,c.update&&(0,_util.setCellValue)(s,e,c.value),m.clearValidate)&&m.clearValidate(s,u),u.renderHeight=g.offsetHeight,i.args=l,i.column=u,setTimeout(()=>{f.handleFocus(l,r)})}t.column=null,t.row=null,m.focus()}return(0,_vue.nextTick)()},handleActived(e,t){return f.handleEdit(e,t)},handleClearEdit:p,handleFocus(r){var{row:o,column:i,cell:a}=r,n=i.editRender,d=w.value;if((0,_utils.isEnableConf)(n)){var s=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?a.querySelector("input,textarea"):a.querySelector(e))&&l.focus()),l?t?l.select():_dom.browse.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!i.fixed&&m.scrollToRow(o,i)}},handleSelected(e,t){var l=R.mouseConfig,r=C.editStore,o=c.value;let i=w.value,{actived:a,selected:n}=r,{row:d,column:s}=e,u=l&&o.selected;return!u||n.row===d&&n.column===s||(a.row!==d||"cell"===i.mode&&a.column!==s)&&(p(t),I.clearSelected(),m.clearCellAreas&&(m.clearCellAreas(),m.clearCopyCellArea()),n.args=e,n.row=d,n.column=s,u&&f.addCellSelectedClass(),m.focus(),t)&&m.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=C.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=m.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},I),f)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)}});
1
+ var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom"),_log=require("../../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getConfig,renderer,hooks,getI18n}=_ui.VxeUI,tableEditMethodKeys=["insert","insertAt","insertNextAt","insertChild","insertChildAt","insertChildNextAt","remove","removeCheckboxRow","removeRadioRow","removeCurrentRow","getRecordset","getInsertRecords","getRemoveRecords","getUpdateRecords","getEditRecord","getActiveRecord","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(m){let{props:R,reactData:C,internalData:_}=m,o=m.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:f,computeCheckboxOpts:x,computeTreeOpts:E,computeValidOpts:s}=m.getComputeMaps(),I={},g={},h=(e,t)=>{var{model:l,editRender:r}=t;r&&(l.value=(0,_util.getCellValue)(e,t),l.update=!1)},a=(e,t)=>{var{model:l,editRender:r}=t;r&&l.update&&((0,_util.setCellValue)(e,t,l.value),l.update=!1,l.value=null)},l=()=>{var e=o.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")},u=()=>{var{editStore:e,tableColumn:t}=C,l=f.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>a(r,e)):a(r,o))},b=(e,t)=>{let{tableFullTreeData:i,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:s}=_;var l=E.value;let{rowField:u,parentField:c,mapChildrenField:g}=l,v=l.children||l.childrenField,w=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(m,l),o=t?_xeUtils.default.findTree(i,e=>t===e[u],{children:g}):null;if(o){var o=o.item,a=s[(0,_util.getRowid)(m,o)],a=a?a.level:0;let e=o[v],t=o[g];_xeUtils.default.isArray(e)||(e=o[v]=[]),_xeUtils.default.isArray(t)||(t=o[v]=[]),e[w](l),t[w](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:e,parent:o,level:a+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=o,s[r]=o}else{"development"===process.env.NODE_ENV&&t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[w](l),i[w](l);a={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=a,s[r]=a}})},d=(t,l,d)=>{let o=R.treeConfig;var{mergeList:e,editStore:r}=C;let{tableFullTreeData:s,afterFullData:a,tableFullData:i,fullDataRowIdData:u,fullAllDataRowIdData:c}=_,g=E.value,{transform:n,rowField:v,mapChildrenField:w}=g,f=g.children||g.childrenField,h=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(m.defineField(t.map(e=>Object.assign(o&&n?{[w]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))o&&n?b(h,!1):(h.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,c[t]=l,a.unshift(e),i.unshift(e)}),e.forEach(e=>{var t=e.row;0<t&&(e.row=t+h.length)}));else if(-1===l)o&&n?b(h,!0):(h.forEach(e=>{var t=(0,_util.getRowid)(m,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,$index:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,c[t]=l,a.push(e),i.push(e)}),e.forEach(e=>{var{row:t,rowspan:l}=e;t+l>a.length&&(e.rowspan=l+h.length)}));else if(o&&n){let n=_xeUtils.default.findTree(s,e=>l[v]===e[v],{children:w});if(n){let o=n.parent,a=o?o[w]:s;t=c[(0,_util.getRowid)(m,o)];let i=t?t.level:0;if(h.forEach((e,t)=>{var l=(0,_util.getRowid)(m,e);"development"===process.env.NODE_ENV&&e[g.parentField]&&o&&e[g.parentField]!==o[v]&&(0,_log.errLog)("vxe.error.errProp",[g.parentField+"="+e[g.parentField],g.parentField+"="+o[v]]),o&&(e[g.parentField]=o[v]);let r=n.index+t;d&&(r+=1),a.splice(r,0,e);t={row:e,rowid:l,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,items:a,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[l]=t,c[l]=t}),o){t=_xeUtils.default.findTree(s,e=>l[v]===e[v],{children:f});if(t){var p=t.items;let e=t.index;d&&(e+=1),p.splice(e,0,...h)}}}else"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.unableInsert"),b(h,!0)}else{if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));let r=-1;if(_xeUtils.default.isNumber(l)?l<a.length&&(r=l):r=m.findRowIndexOf(a,l),-1===(r=d?Math.min(a.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));a.splice(r,0,...h);t=m.findRowIndexOf(i,l);-1<t?i.splice(t+(d?1:0),0,...h):i.push(...h),e.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t+h.length:t+l>r&&(e.rowspan=l+h.length)})}let x=r.insertMaps;return h.forEach(e=>{var t=(0,_util.getRowid)(m,e);x[t]=e}),m.cacheRowMap(!1),m.updateScrollYStatus(),m.handleTableData(o&&n),o&&n||m.updateAfterDataIndex(),m.updateFooter(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},r=(e,t,l,r)=>{var o=R.treeConfig;let{transform:a,rowField:i,parentField:n}=E.value;return o&&a?(_xeUtils.default.isArray(e)||(e=[e]),d(e.map(e=>Object.assign({},e,{[n]:t[i]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.treeConfig=false","tree-config.treeConfig=true"]),Promise.resolve({row:null,rows:[]}))},p=(e,t)=>{let l=R.mouseConfig;var r=C.editStore,{actived:r,focused:o}=r,{row:a,column:i}=r,n=s.value;let d=c.value;if(a||i){if(t&&(0,_util.getRowid)(m,t)!==(0,_util.getRowid)(m,a))return(0,_vue.nextTick)();u(),r.args=null,r.row=null,r.column=null,m.updateFooter(),m.dispatchEvent("edit-closed",{row:a,rowIndex:m.getRowIndex(a),$rowIndex:m.getVMRowIndex(a),column:i,columnIndex:m.getColumnIndex(i),$columnIndex:m.getVMColumnIndex(i)},e||null)}return o.row=null,o.column=null,n.autoClear&&("full"!==n.msgMode||"obsolete"===getConfig().cellVaildMode)&&m.clearValidate?m.clearValidate():(0,_vue.nextTick)().then(()=>{if(l&&d.area&&m.handleRecalculateCellAreas)return m.handleRecalculateCellAreas()})},i=(l,r,o)=>{var{editConfig:e,mouseConfig:a}=R,{editStore:i,tableColumn:n}=C,d=f.value,s=d.mode,{actived:i,focused:t}=i;let{row:u,column:c}=l;var g=c.editRender,v=l.cell||m.getCellElement(u,c),w=d.beforeEditMethod||d.activeMethod;if((l.cell=v)&&(0,_utils.isEnableConf)(e)&&(0,_utils.isEnableConf)(g)&&!m.isPendingByRow(u)){if(i.row!==u||"cell"===s&&i.column!==c){let t="edit-disabled";if(!w||w(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))){a&&(m.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),m.closeTooltip(),i.column&&p(r),t="edit-activated",c.renderHeight=v.offsetHeight,i.args=l,i.row=u,i.column=c,"row"===s?n.forEach(e=>h(u,e)):h(u,c);let e=d.afterEditMethod;(0,_vue.nextTick)(()=>{o&&m.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:m,$grid:m.xegrid}))})}m.dispatchEvent(t,{row:u,rowIndex:m.getRowIndex(u),$rowIndex:m.getVMRowIndex(u),column:c,columnIndex:m.getColumnIndex(c),$columnIndex:m.getVMColumnIndex(c)},r),"edit-activated"===t&&m.dispatchEvent("edit-actived",{row:u,rowIndex:m.getRowIndex(u),$rowIndex:m.getVMRowIndex(u),column:c,columnIndex:m.getColumnIndex(c),$columnIndex:m.getVMColumnIndex(c)},r)}else{e=i.column;a&&(m.clearSelected(),m.clearCellAreas)&&(m.clearCellAreas(),m.clearCopyCellArea()),e!==c&&(g=e.model,g.update&&(0,_util.setCellValue)(u,e,g.value),m.clearValidate)&&m.clearValidate(u,c),c.renderHeight=v.offsetHeight,i.args=l,i.column=c,o&&setTimeout(()=>{m.handleFocus(l,r)})}t.column=null,t.row=null,m.focus()}return(0,_vue.nextTick)()},n=(t,e,l)=>{var r=R.editConfig;let o=_xeUtils.default.isString(e)?m.getColumnByField(e):e;return t&&o&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(o.editRender)?Promise.resolve(l?m.scrollToRow(t,o):null).then(()=>{var e=m.getCellElement(t,o);return e&&(i({row:t,rowIndex:m.getRowIndex(t),column:o,columnIndex:m.getColumnIndex(o),cell:e,$table:m},null,!1),_._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()};return I={insert(e){return d(e,null)},insertAt(e,t){return d(e,t)},insertNextAt(e,t){return d(e,t,!0)},insertChild(e,t){return r(e,t,null)},insertChildAt(e,t,l){return r(e,t,l)},insertChildNextAt(e,t,l){return r(e,t,l,!0)},remove(e){var t=R.treeConfig;let{mergeList:l,editStore:r,selectCheckboxMaps:o}=C,{tableFullTreeData:a,afterFullData:i,tableFullData:n}=_;var d=x.value,s=E.value;let{transform:u,mapChildrenField:c}=s,g=s.children||s.childrenField,{actived:v,removeMaps:w}=r,f=Object.assign({},r.insertMaps),h=Object.assign({},C.pendingRowMaps);s=d.checkField;let p=[];if(e?_xeUtils.default.isArray(e)||(e=[e]):e=n,e.forEach(e=>{var t;m.isInsertByRow(e)||(t=(0,_util.getRowid)(m,e),w[t]=e)}),!s){let t=Object.assign({},o);e.forEach(e=>{e=(0,_util.getRowid)(m,e);t[e]&&delete t[e]}),C.selectCheckboxMaps=t}return n===e?(e=p=n.slice(0),_.tableFullData=[],_.afterFullData=[],m.clearMergeCells()):t&&u?e.forEach(e=>{let t=(0,_util.getRowid)(m,e);var l=_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(m,e),{children:c}),l=(l&&(l=l.items.splice(l.index,1),p.push(l[0])),_xeUtils.default.findTree(a,e=>t===(0,_util.getRowid)(m,e),{children:g})),l=(l&&l.items.splice(l.index,1),m.findRowIndexOf(i,e));-1<l&&i.splice(l,1)}):e.forEach(e=>{var t=m.findRowIndexOf(n,e);-1<t&&(t=n.splice(t,1),p.push(t[0]));let r=m.findRowIndexOf(i,e);-1<r&&(l.forEach(e=>{var{row:t,rowspan:l}=e;t>r?e.row=t-1:t+l>r&&(e.rowspan=l-1)}),i.splice(r,1))}),v.row&&-1<m.findRowIndexOf(e,v.row)&&I.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(m,e);f[e]&&delete f[e],h[e]&&delete h[e]}),r.insertMaps=f,C.pendingRowMaps=h,m.updateFooter(),m.cacheRowMap(!1),m.handleTableData(t&&u),t&&u||m.updateAfterDataIndex(),m.checkSelectionStatus(),C.scrollYLoad&&m.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(m.updateCellAreas(),m.recalculate())).then(()=>({row:p.length?p[p.length-1]:null,rows:p}))},removeCheckboxRow(){return I.remove(m.getCheckboxRecords()).then(e=>(m.clearCheckboxRow(),e))},removeRadioRow(){var e=m.getRadioRecord();return I.remove(e||[]).then(e=>(m.clearRadioRow(),e))},removeCurrentRow(){var e=m.getCurrentRecord();return I.remove(e||[]).then(e=>(m.clearCurrentRow(),e))},getRecordset(){var e=I.getRemoveRecords(),t=m.getPendingRecords();let l=e.concat(t);var r=I.getUpdateRecords().filter(t=>!l.some(e=>m.eqRow(e,t)));return{insertRecords:I.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){var e=C.editStore;let l=_.fullAllDataRowIdData;e=e.insertMaps;let r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=C.editStore,e=e.removeMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=R,l=_.tableFullData,r=E.value;return e?(u(),t?_xeUtils.default.filterTree(l,e=>m.isUpdateByRow(e),r):l.filter(e=>m.isUpdateByRow(e))):[]},getActiveRecord(){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditRecord"]),this.getEditRecord()},getEditRecord(){var e=C.editStore,t=_.afterFullData,l=o.value,{args:e,row:r}=e.actived;return e&&-1<m.findRowIndexOf(t,r)&&l.querySelectorAll(".vxe-body--column.col--active").length?Object.assign({},e):null},getSelectedCell(){var e=C.editStore,{args:e,column:t}=e.selected;return e&&t?Object.assign({},e):null},clearActived(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),this.clearEdit(e)},clearEdit(e){return p(null,e)},clearSelected(){var e=C.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),this.isEditByRow(e)},isEditByRow(e){var t=C.editStore;return t.actived.row===e},setActiveRow(e){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),I.setEditRow(e)},setEditRow(e,t){var l=_.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender));return t&&(r=_xeUtils.default.isString(t)?m.getColumnByField(t):t),n(e,r,!1)},setActiveCell(e,t){return"development"===process.env.NODE_ENV&&(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),I.setEditCell(e,t)},setEditCell(e,t){return n(e,t,!0)},setSelectCell(e,t){var l=C.tableData,r=f.value,t=_xeUtils.default.isString(t)?m.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=m.findRowIndexOf(l,e))&&t&&(l=m.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:m.getColumnIndex(t),cell:l},m.handleSelected(e,{})),(0,_vue.nextTick)()}},g={handleEdit(e,t){return i(e,t,!0)},handleActived(e,t){return g.handleEdit(e,t)},handleClearEdit:p,handleFocus(r){var{row:o,column:a,cell:i}=r,n=a.editRender,d=f.value;if((0,_utils.isEnableConf)(n)){var s=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&s&&(e=s.tableAutoFocus||s.tableAutofocus||s.autofocus),!t&&s&&(t=s.tableAutoSelect||s.autoselect),_xeUtils.default.isFunction(e)?l=e(r):e&&(l=!0===e?i.querySelector("input,textarea"):i.querySelector(e))&&l.focus()),l?t?l.select():_dom.browse.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!a.fixed&&m.scrollToRow(o,a)}},handleSelected(e,t){var l=R.mouseConfig,r=C.editStore,o=c.value;let a=f.value,{actived:i,selected:n}=r,{row:d,column:s}=e,u=l&&o.selected;return!u||n.row===d&&n.column===s||(i.row!==d||"cell"===a.mode&&i.column!==s)&&(p(t),I.clearSelected(),m.clearCellAreas&&(m.clearCellAreas(),m.clearCopyCellArea()),n.args=e,n.row=d,n.column=s,u&&g.addCellSelectedClass(),m.focus(),t)&&m.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=C.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=m.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},I),g)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)}});
@@ -55,8 +55,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
55
55
  computeColumnOpts,
56
56
  computeRowDragOpts,
57
57
  computeColumnDragOpts,
58
- computeLeftFixedWidth,
59
- computeRightFixedWidth,
60
58
  computeResizableOpts
61
59
  } = $xeTable.getComputeMaps();
62
60
  const refElem = (0, _vue.ref)();
@@ -494,7 +492,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
494
492
  expandColumn,
495
493
  selectRadioRow,
496
494
  pendingRowMaps,
497
- isDragColMove
495
+ isDragColMove,
496
+ rowExpandHeightFlag
498
497
  } = tableReactData;
499
498
  const {
500
499
  fullAllDataRowIdData
@@ -536,18 +535,18 @@ var _default = exports.default = (0, _vue.defineComponent)({
536
535
  };
537
536
  }
538
537
  const rowid = (0, _util.getRowid)($xeTable, row);
539
- const rest = fullAllDataRowIdData[rowid];
538
+ const rowRest = fullAllDataRowIdData[rowid];
540
539
  let rowLevel = 0;
541
540
  let seq = -1;
542
541
  let _rowIndex = 0;
543
- if (rest) {
544
- rowLevel = rest.level;
542
+ if (rowRest) {
543
+ rowLevel = rowRest.level;
545
544
  if (treeConfig && transform && seqMode === 'increasing') {
546
- seq = rest._index + 1;
545
+ seq = rowRest._index + 1;
547
546
  } else {
548
- seq = rest.seq;
547
+ seq = rowRest.seq;
549
548
  }
550
- _rowIndex = rest._index;
549
+ _rowIndex = rowRest._index;
551
550
  }
552
551
  const params = {
553
552
  $table: $xeTable,
@@ -613,51 +612,63 @@ var _default = exports.default = (0, _vue.defineComponent)({
613
612
  const expandOpts = computeExpandOpts.value;
614
613
  const {
615
614
  height: expandHeight,
616
- padding
615
+ padding,
616
+ mode: expandMode
617
617
  } = expandOpts;
618
- const cellStyle = {};
619
- if (expandHeight) {
620
- cellStyle.height = `${expandHeight}px`;
621
- }
622
- if (treeConfig) {
623
- cellStyle.paddingLeft = `${rowLevel * treeOpts.indent + 30}px`;
618
+ if (expandMode === 'fixed') {
619
+ rows.push((0, _vue.h)('tr', {
620
+ class: 'vxe-body--row-expanded-place',
621
+ key: `expand_${rowid}`,
622
+ rowid
623
+ }, [(0, _vue.h)('td', {
624
+ class: 'vxe-body--row-expanded-place-column',
625
+ colspan: tableColumn.length,
626
+ style: {
627
+ height: `${rowExpandHeightFlag ? rowRest.expandHeight || expandHeight : 0}px`
628
+ }
629
+ })]));
630
+ } else {
631
+ const cellStyle = {};
632
+ if (expandHeight) {
633
+ cellStyle.height = `${expandHeight}px`;
634
+ }
635
+ if (treeConfig) {
636
+ cellStyle.paddingLeft = `${rowLevel * treeOpts.indent + 30}px`;
637
+ }
638
+ const {
639
+ showOverflow
640
+ } = expandColumn;
641
+ const hasEllipsis = _xeUtils.default.isUndefined(showOverflow) || _xeUtils.default.isNull(showOverflow) ? isAllOverflow : showOverflow;
642
+ const expandParams = {
643
+ $table: $xeTable,
644
+ seq,
645
+ column: expandColumn,
646
+ fixed: fixedType,
647
+ type: renderType,
648
+ level: rowLevel,
649
+ row,
650
+ rowIndex,
651
+ $rowIndex,
652
+ _rowIndex
653
+ };
654
+ rows.push((0, _vue.h)('tr', {
655
+ class: ['vxe-body--expanded-row', {
656
+ 'is--padding': padding
657
+ }],
658
+ key: `expand_${rowid}`
659
+ }, [(0, _vue.h)('td', {
660
+ class: ['vxe-body--expanded-column', {
661
+ 'fixed--hidden': fixedType && !hasFixedColumn,
662
+ 'col--ellipsis': hasEllipsis
663
+ }],
664
+ colspan: tableColumn.length
665
+ }, [(0, _vue.h)('div', {
666
+ class: ['vxe-body--expanded-cell', {
667
+ 'is--ellipsis': expandHeight
668
+ }],
669
+ style: cellStyle
670
+ }, [expandColumn.renderData(expandParams)])])]));
624
671
  }
625
- const {
626
- showOverflow
627
- } = expandColumn;
628
- const hasEllipsis = _xeUtils.default.isUndefined(showOverflow) || _xeUtils.default.isNull(showOverflow) ? isAllOverflow : showOverflow;
629
- const expandParams = {
630
- $table: $xeTable,
631
- seq,
632
- column: expandColumn,
633
- fixed: fixedType,
634
- type: renderType,
635
- level: rowLevel,
636
- row,
637
- rowIndex,
638
- $rowIndex,
639
- _rowIndex
640
- };
641
- rows.push((0, _vue.h)('tr', Object.assign({
642
- class: ['vxe-body--expanded-row', {
643
- 'is--padding': padding
644
- }],
645
- key: `expand_${rowid}`,
646
- style: rowStyle ? _xeUtils.default.isFunction(rowStyle) ? rowStyle(expandParams) : rowStyle : null
647
- }, trOn), [(0, _vue.h)('td', {
648
- class: {
649
- 'vxe-body--expanded-column': 1,
650
- 'fixed--hidden': fixedType && !hasFixedColumn,
651
- 'col--ellipsis': hasEllipsis
652
- },
653
- colspan: tableColumn.length
654
- }, [(0, _vue.h)('div', {
655
- class: {
656
- 'vxe-body--expanded-cell': 1,
657
- 'is--ellipsis': expandHeight
658
- },
659
- style: cellStyle
660
- }, [expandColumn.renderData(expandParams)])])]));
661
672
  }
662
673
  // 如果是树形表格
663
674
  if (isExpandTree) {
@@ -738,14 +749,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
738
749
  const emptyOpts = computeEmptyOpts.value;
739
750
  const mouseOpts = computeMouseOpts.value;
740
751
  const rowDragOpts = computeRowDragOpts.value;
741
- const leftFixedWidth = computeLeftFixedWidth.value;
742
- const rightFixedWidth = computeRightFixedWidth.value;
752
+ const expandOpts = computeExpandOpts.value;
743
753
  let renderDataList = tableData;
744
754
  let renderColumnList = tableColumn;
745
755
  let isOptimizeMode = false;
746
756
  // 如果是使用优化模式
747
757
  if (scrollXLoad || scrollYLoad || isAllOverflow) {
748
- if (expandColumn || spanMethod || footerSpanMethod) {
758
+ if (expandColumn && expandOpts.mode !== 'fixed' || spanMethod || footerSpanMethod) {
749
759
  // 如果不支持优化模式
750
760
  } else {
751
761
  isOptimizeMode = true;
@@ -826,9 +836,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
826
836
  $xeTable.triggerBodyScrollEvent(evnt, fixedType);
827
837
  }
828
838
  };
829
- if (scrollYLoad || leftFixedWidth || rightFixedWidth) {
830
- ons.onWheel = $xeTable.triggerBodyWheelEvent;
831
- }
832
839
  return (0, _vue.h)('div', {
833
840
  ref: refElem,
834
841
  class: ['vxe-table--body-wrapper', fixedType ? `fixed-${fixedType}--wrapper` : 'body--wrapper'],