vxe-table 4.16.0 → 4.16.2

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 (73) hide show
  1. package/es/grid/src/grid.js +1 -1
  2. package/es/index.css +1 -1
  3. package/es/index.min.css +1 -1
  4. package/es/style.css +1 -1
  5. package/es/style.min.css +1 -1
  6. package/es/table/module/edit/hook.js +55 -17
  7. package/es/table/src/column.js +2 -0
  8. package/es/table/src/columnInfo.js +1 -0
  9. package/es/table/src/emits.js +5 -0
  10. package/es/table/src/header.js +47 -16
  11. package/es/table/src/props.js +11 -3
  12. package/es/table/src/store.js +8 -0
  13. package/es/table/src/table.js +579 -87
  14. package/es/table/src/util.js +70 -2
  15. package/es/table/style.css +11 -17
  16. package/es/table/style.min.css +1 -1
  17. package/es/ui/index.js +2 -2
  18. package/es/ui/src/log.js +1 -1
  19. package/es/vxe-table/style.css +11 -17
  20. package/es/vxe-table/style.min.css +1 -1
  21. package/lib/grid/src/grid.js +1 -1
  22. package/lib/grid/src/grid.min.js +1 -1
  23. package/lib/index.css +1 -1
  24. package/lib/index.min.css +1 -1
  25. package/lib/index.umd.js +265 -65
  26. package/lib/index.umd.min.js +1 -1
  27. package/lib/style.css +1 -1
  28. package/lib/style.min.css +1 -1
  29. package/lib/table/module/edit/hook.js +54 -15
  30. package/lib/table/module/edit/hook.min.js +1 -1
  31. package/lib/table/src/column.js +2 -0
  32. package/lib/table/src/column.min.js +1 -1
  33. package/lib/table/src/columnInfo.js +1 -0
  34. package/lib/table/src/columnInfo.min.js +1 -1
  35. package/lib/table/src/emits.js +1 -1
  36. package/lib/table/src/emits.min.js +1 -1
  37. package/lib/table/src/header.js +62 -13
  38. package/lib/table/src/header.min.js +1 -1
  39. package/lib/table/src/props.js +11 -3
  40. package/lib/table/src/props.min.js +1 -1
  41. package/lib/table/src/store.js +15 -0
  42. package/lib/table/src/store.min.js +1 -0
  43. package/lib/table/src/table.js +45 -25
  44. package/lib/table/src/table.min.js +1 -1
  45. package/lib/table/src/util.js +74 -2
  46. package/lib/table/src/util.min.js +1 -1
  47. package/lib/table/style/style.css +11 -17
  48. package/lib/table/style/style.min.css +1 -1
  49. package/lib/ui/index.js +2 -2
  50. package/lib/ui/index.min.js +1 -1
  51. package/lib/ui/src/log.js +1 -1
  52. package/lib/ui/src/log.min.js +1 -1
  53. package/lib/vxe-table/style/style.css +11 -17
  54. package/lib/vxe-table/style/style.min.css +1 -1
  55. package/package.json +2 -2
  56. package/packages/grid/src/grid.ts +1 -1
  57. package/packages/table/module/edit/hook.ts +55 -19
  58. package/packages/table/src/column.ts +2 -0
  59. package/packages/table/src/columnInfo.ts +1 -0
  60. package/packages/table/src/emits.ts +6 -0
  61. package/packages/table/src/header.ts +49 -17
  62. package/packages/table/src/props.ts +11 -3
  63. package/packages/table/src/store.ts +14 -0
  64. package/packages/table/src/table.ts +583 -83
  65. package/packages/table/src/util.ts +76 -2
  66. package/packages/ui/index.ts +1 -1
  67. package/styles/components/table.scss +33 -55
  68. /package/es/{iconfont.1756083655214.ttf → iconfont.1756452373591.ttf} +0 -0
  69. /package/es/{iconfont.1756083655214.woff → iconfont.1756452373591.woff} +0 -0
  70. /package/es/{iconfont.1756083655214.woff2 → iconfont.1756452373591.woff2} +0 -0
  71. /package/lib/{iconfont.1756083655214.ttf → iconfont.1756452373591.ttf} +0 -0
  72. /package/lib/{iconfont.1756083655214.woff → iconfont.1756452373591.woff} +0 -0
  73. /package/lib/{iconfont.1756083655214.woff2 → iconfont.1756452373591.woff2} +0 -0
@@ -186,11 +186,13 @@ hooks.add('tableEditModule', {
186
186
  tableFullData,
187
187
  fullDataRowIdData,
188
188
  fullAllDataRowIdData,
189
- insertRowMaps
189
+ insertRowMaps,
190
+ removeRowMaps
190
191
  } = internalData;
191
192
  const treeOpts = computeTreeOpts.value;
192
193
  const {
193
194
  transform,
195
+ parentField,
194
196
  rowField,
195
197
  mapChildrenField
196
198
  } = treeOpts;
@@ -202,6 +204,14 @@ hooks.add('tableEditModule', {
202
204
  [mapChildrenField]: [],
203
205
  [childrenField]: []
204
206
  } : {}, record))));
207
+ let treeRecords = [];
208
+ if (treeConfig && transform) {
209
+ treeRecords = _xeUtils.default.toArrayTree(newRecords, {
210
+ key: rowField,
211
+ parentKey: parentField,
212
+ children: childrenField
213
+ });
214
+ }
205
215
  if (_xeUtils.default.eqNull(targetRow)) {
206
216
  // 如果为虚拟树
207
217
  if (treeConfig && transform) {
@@ -299,21 +309,26 @@ hooks.add('tableEditModule', {
299
309
  const parentMapChilds = parentRow ? parentRow[mapChildrenField] : tableFullTreeData;
300
310
  const parentRest = fullAllDataRowIdData[(0, _util.getRowid)($xeTable, parentRow)];
301
311
  const parentLevel = parentRest ? parentRest.level : 0;
302
- newRecords.forEach((item, i) => {
303
- const rowid = (0, _util.getRowid)($xeTable, item);
304
- if (item[treeOpts.parentField]) {
305
- if (parentRow && item[treeOpts.parentField] !== parentRow[rowField]) {
306
- (0, _log.errLog)('vxe.error.errProp', [`${treeOpts.parentField}=${item[treeOpts.parentField]}`, `${treeOpts.parentField}=${parentRow[rowField]}`]);
307
- }
308
- }
312
+ treeRecords.forEach((row, i) => {
309
313
  if (parentRow) {
310
- item[treeOpts.parentField] = parentRow[rowField];
314
+ if (row[parentField] !== parentRow[rowField]) {
315
+ row[parentField] = parentRow[rowField];
316
+ (0, _log.errLog)('vxe.error.errProp', [`${parentField}=${row[parentField]}`, `${parentField}=${parentRow[rowField]}`]);
317
+ }
318
+ } else {
319
+ if (row[parentField] !== null) {
320
+ row[parentField] = null;
321
+ (0, _log.errLog)('vxe.error.errProp', [`${parentField}=${row[parentField]}`, 'null']);
322
+ }
311
323
  }
312
324
  let targetIndex = matchMapObj.index + i;
313
325
  if (isInsertNextRow) {
314
326
  targetIndex = targetIndex + 1;
315
327
  }
316
- parentMapChilds.splice(targetIndex, 0, item);
328
+ parentMapChilds.splice(targetIndex, 0, row);
329
+ });
330
+ _xeUtils.default.eachTree(treeRecords, item => {
331
+ const rowid = (0, _util.getRowid)($xeTable, item);
317
332
  const rest = {
318
333
  row: item,
319
334
  rowid,
@@ -331,8 +346,13 @@ hooks.add('tableEditModule', {
331
346
  oTop: 0,
332
347
  expandHeight: 0
333
348
  };
349
+ if (item[childrenField]) {
350
+ item[mapChildrenField] = item[childrenField];
351
+ }
334
352
  fullDataRowIdData[rowid] = rest;
335
353
  fullAllDataRowIdData[rowid] = rest;
354
+ }, {
355
+ children: childrenField
336
356
  });
337
357
  // 源
338
358
  if (parentRow) {
@@ -345,7 +365,7 @@ hooks.add('tableEditModule', {
345
365
  if (isInsertNextRow) {
346
366
  targetIndex = targetIndex + 1;
347
367
  }
348
- parentChilds.splice(targetIndex, 0, ...newRecords);
368
+ parentChilds.splice(targetIndex, 0, ...treeRecords);
349
369
  }
350
370
  }
351
371
  } else {
@@ -400,10 +420,27 @@ hooks.add('tableEditModule', {
400
420
  }
401
421
  }
402
422
  }
403
- newRecords.forEach(newRow => {
423
+ const handleStatus = newRow => {
404
424
  const rowid = (0, _util.getRowid)($xeTable, newRow);
405
- insertRowMaps[rowid] = newRow;
406
- });
425
+ // 如果是被删除的数据,则还原状态
426
+ if (removeRowMaps[rowid]) {
427
+ delete removeRowMaps[rowid];
428
+ if (insertRowMaps[rowid]) {
429
+ delete insertRowMaps[rowid];
430
+ }
431
+ } else {
432
+ insertRowMaps[rowid] = newRow;
433
+ }
434
+ };
435
+ // 如果为虚拟树
436
+ if (treeConfig && transform) {
437
+ _xeUtils.default.eachTree(treeRecords, handleStatus, {
438
+ children: mapChildrenField
439
+ });
440
+ } else {
441
+ newRecords.forEach(handleStatus);
442
+ }
443
+ reactData.removeRowFlag++;
407
444
  reactData.insertRowFlag++;
408
445
  $xeTable.cacheRowMap(false);
409
446
  $xeTable.updateScrollYStatus();
@@ -986,7 +1023,9 @@ hooks.add('tableEditModule', {
986
1023
  if (column && row) {
987
1024
  return {
988
1025
  row,
989
- column
1026
+ rowIndex: $xeTable.getRowIndex(row),
1027
+ column,
1028
+ columnIndex: $xeTable.getColumnIndex(column)
990
1029
  };
991
1030
  }
992
1031
  return null;
@@ -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","getEditCell","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(p){let{props:R,reactData:C,internalData:_}=p,t=p.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:m,computeCheckboxOpts:I,computeTreeOpts:E,computeValidOpts:n}=p.getComputeMaps(),s=_xeUtils.default.browse(),b={},g={},F=(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=t.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")},d=()=>{var{editStore:e,tableColumn:t}=C,l=m.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>a(r,e)):a(r,o))},A=(e,t)=>{let{tableFullTreeData:i,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:u}=_;var l=E.value;let{rowField:s,parentField:c,mapChildrenField:g}=l,w=l.children||l.childrenField,v=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(p,l),o=t?_xeUtils.default.findTree(i,e=>t===e[s],{children:g}):null;if(o){var o=o.item,a=u[(0,_util.getRowid)(p,o)],a=a?a.level:0;let e=o[w],t=o[g];_xeUtils.default.isArray(e)||(e=o[w]=[]),_xeUtils.default.isArray(t)||(t=o[w]=[]),e[v](l),t[v](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:e,parent:o,level:a+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=o,u[r]=o}else{t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[v](l),i[v](l);a={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=a,u[r]=a}})},u=(t,l,d)=>{let o=R.treeConfig;var e=C.isRowGroupStatus;let{tableFullTreeData:r,afterFullData:a,mergeBodyList:i,tableFullData:n,fullDataRowIdData:u,fullAllDataRowIdData:s,insertRowMaps:c}=_,g=E.value,{transform:w,rowField:v,mapChildrenField:x}=g,f=g.children||g.childrenField,h=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(p.defineField(t.map(e=>Object.assign(o&&w?{[x]:[],[f]:[]}:{},e)))));if(_xeUtils.default.eqNull(l))if(o&&w)A(h,!1);else if(e){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.warnLog)(getI18n("vxe.error.noGroup",["remove"]))}else h.forEach(e=>{var t=(0,_util.getRowid)(p,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,s[t]=l,a.unshift(e),n.unshift(e)}),i.forEach(e=>{var t=e.row;0<=t&&(e.row=t+h.length)});else if(-1===l)if(o&&w)A(h,!0);else if(e){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.warnLog)(getI18n("vxe.error.noGroup",["remove"]))}else h.forEach(e=>{var t=(0,_util.getRowid)(p,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,_tIndex:-1,$index:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[t]=l,s[t]=l,a.push(e),n.push(e)});else if(o&&w){let n=_xeUtils.default.findTree(r,e=>l[v]===e[v],{children:x});if(n){let o=n.parent,a=o?o[x]:r;t=s[(0,_util.getRowid)(p,o)];let i=t?t.level:0;if(h.forEach((e,t)=>{var l=(0,_util.getRowid)(p,e);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,_tIndex:-1,items:a,parent:o,level:i+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};u[l]=t,s[l]=t}),o){t=_xeUtils.default.findTree(r,e=>l[v]===e[v],{children:f});if(t){var m=t.items;let e=t.index;d&&(e+=1),m.splice(e,0,...h)}}}else(0,_log.warnLog)("vxe.error.unableInsert"),A(h,!0)}else if(e){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.warnLog)(getI18n("vxe.error.noGroup",["remove"]))}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=p.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=p.findRowIndexOf(n,l);-1<t?n.splice(t+(d?1:0),0,...h):n.push(...h),i.forEach(e=>{var{row:t,rowspan:l}=e;t>=r?e.row=t+h.length:(d?t+l>=r:t+l>r)&&(e.rowspan=l+h.length)})}return h.forEach(e=>{var t=(0,_util.getRowid)(p,e);c[t]=e}),C.insertRowFlag++,p.cacheRowMap(!1),p.updateScrollYStatus(),p.handleTableData(o&&w),o&&w||p.updateAfterDataIndex(),p.updateFooter(),p.handleUpdateBodyMerge(),p.checkSelectionStatus(),C.scrollYLoad&&p.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(p.updateCellAreas(),p.recalculate(!0))).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]),u(e.map(e=>Object.assign({},e,{[n]:t[i]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]}))},S=(e,t)=>{var l=C.editStore,{actived:l,focused:r}=l,{row:o,column:a}=l,i=n.value;if(o||a){if(t&&(0,_util.getRowid)(p,t)!==(0,_util.getRowid)(p,o))return(0,_vue.nextTick)();d(),l.args=null,l.row=null,l.column=null,p.updateFooter(),p.dispatchEvent("edit-closed",{row:o,rowIndex:p.getRowIndex(o),$rowIndex:p.getVMRowIndex(o),column:a,columnIndex:p.getColumnIndex(a),$columnIndex:p.getVMColumnIndex(a)},e||null)}return r.row=null,r.column=null,i.autoClear&&("full"!==i.msgMode||"obsolete"===getConfig().cellVaildMode)&&p.clearValidate?p.clearValidate():(0,_vue.nextTick)().then(()=>p.updateCellAreas())},i=(l,r,o,e)=>{let a=p.xeGrid,i=p.xeGantt;var{editConfig:t,mouseConfig:n}=R,{editStore:d,tableColumn:u}=C,s=m.value,c=s.mode,{actived:d,focused:g}=d;let{row:w,column:v}=l;var x=v.editRender,f=l.cell||p.getCellElement(w,v),h=s.beforeEditMethod||s.activeMethod;if((l.cell=f)&&(0,_utils.isEnableConf)(t)&&(0,_utils.isEnableConf)(x)&&!p.isPendingByRow(w)&&!p.isAggregateRecord(w)){if(d.row!==w||"cell"===c&&d.column!==v){let t="edit-disabled";if(!h||h(Object.assign(Object.assign({},l),{$table:p,$grid:a,$gantt:i}))){n&&(p.clearSelected(),p.clearCellAreas)&&(p.clearCellAreas(),p.clearCopyCellArea()),p.closeTooltip(),d.column&&S(r),t="edit-activated",v.renderHeight=f.offsetHeight,d.args=l,d.row=w,d.column=v,"row"===c?u.forEach(e=>F(w,e)):F(w,v);let e=s.afterEditMethod;(0,_vue.nextTick)(()=>{o&&p.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:p,$grid:a,$gantt:i}))})}p.dispatchEvent(t,{row:w,rowIndex:p.getRowIndex(w),$rowIndex:p.getVMRowIndex(w),column:v,columnIndex:p.getColumnIndex(v),$columnIndex:p.getVMColumnIndex(v)},r),"edit-activated"===t&&p.dispatchEvent("edit-actived",{row:w,rowIndex:p.getRowIndex(w),$rowIndex:p.getVMRowIndex(w),column:v,columnIndex:p.getColumnIndex(v),$columnIndex:p.getVMColumnIndex(v)},r)}else{t=d.column;n&&(p.clearSelected(),p.clearCellAreas)&&(p.clearCellAreas(),p.clearCopyCellArea()),t!==v&&(x=t.model,x.update&&(0,_util.setCellValue)(w,t,x.value),p.clearValidate)&&p.clearValidate(w,v),v.renderHeight=f.offsetHeight,d.args=l,d.column=v,e&&setTimeout(()=>{p.handleFocus(l,r)})}g.column=null,g.row=null,p.focus()}return(0,_vue.nextTick)()},w=(t,e,l)=>{var r=R.editConfig;let o=_xeUtils.default.isString(e)?p.getColumnByField(e):e;return t&&o&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(o.editRender)&&!p.isAggregateRecord(t)?Promise.resolve(l?p.scrollToRow(t,o):null).then(()=>{var e=p.getCellElement(t,o);return e&&(i({row:t,rowIndex:p.getRowIndex(t),column:o,columnIndex:p.getColumnIndex(o),cell:e,$table:p},null,l,l),_._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()};return b={insert(e){return u(e,null)},insertAt(e,t){return u(e,t)},insertNextAt(e,t){return u(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,{editStore:l,isRowGroupStatus:r}=C;let{tableFullTreeData:o,selectCheckboxMaps:a,afterFullData:i,mergeBodyList:n,tableFullData:d,pendingRowMaps:u,insertRowMaps:s,removeRowMaps:c}=_;var g=I.value,w=E.value;let{transform:v,mapChildrenField:x}=w,f=w.children||w.childrenField;w=l.actived,l=g.checkField;let h=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=d,e.forEach(e=>{var t;p.isInsertByRow(e)||(t=(0,_util.getRowid)(p,e),c[t]=e)}),l||(e.forEach(e=>{e=(0,_util.getRowid)(p,e);a[e]&&delete a[e]}),C.updateCheckboxFlag++),d===e?(e=h=d.slice(0),_.tableFullData=[],_.afterFullData=[],p.clearMergeCells()):t&&v?e.forEach(e=>{let t=(0,_util.getRowid)(p,e);var l=_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(p,e),{children:x}),l=(l&&(l=l.items.splice(l.index,1),h.push(l[0])),_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(p,e),{children:f})),l=(l&&l.items.splice(l.index,1),p.findRowIndexOf(i,e));-1<l&&i.splice(l,1)}):r?(0,_log.warnLog)(getI18n("vxe.error.noGroup",["remove"])):e.forEach(e=>{var t=p.findRowIndexOf(d,e);-1<t&&(t=d.splice(t,1),h.push(t[0]));let r=p.findRowIndexOf(i,e);-1<r&&(n.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))}),w.row&&-1<p.findRowIndexOf(e,w.row)&&b.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(p,e);s[e]&&delete s[e],u[e]&&delete u[e]}),C.removeRowFlag++,C.insertRowFlag++,C.pendingRowFlag++,p.cacheRowMap(!1),p.handleTableData(t&&v),p.updateFooter(),p.handleUpdateBodyMerge(),t&&v||p.updateAfterDataIndex(),p.checkSelectionStatus(),C.scrollYLoad&&p.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(p.updateCellAreas(),p.recalculate(!0))).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},removeCheckboxRow(){return b.remove(p.getCheckboxRecords()).then(e=>(p.clearCheckboxRow(),e))},removeRadioRow(){var e=p.getRadioRecord();return b.remove(e||[]).then(e=>(p.clearRadioRow(),e))},removeCurrentRow(){var e=p.getCurrentRecord();return b.remove(e||[]).then(e=>(p.clearCurrentRow(),e))},getRecordset(){var e=b.getRemoveRecords(),t=p.getPendingRecords();let l=e.concat(t);var r=b.getUpdateRecords().filter(t=>!l.some(e=>p.eqRow(e,t)));return{insertRecords:b.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){let{fullAllDataRowIdData:l,insertRowMaps:e}=_,r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=_.removeRowMaps;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?(d(),t?_xeUtils.default.filterTree(l,e=>p.isUpdateByRow(e),r):l.filter(e=>p.isUpdateByRow(e))):[]},getActiveRecord(){(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditCell"]);var e=C.editStore,t=_.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(p,l)]?Object.assign({},e,{row:l}):null},getEditRecord(){(0,_log.warnLog)("vxe.error.delFunc",["getEditRecord","getEditCell"]);var e=C.editStore,t=_.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(p,l)]?Object.assign({},e,{row:l}):null},getEditCell(){var e=C.editStore,{row:e,column:t}=e.actived;return t&&e?{row:e,column:t}:null},getSelectedCell(){var e=C.editStore,{row:e,column:t}=e.selected;return e&&t?{row:e,column:t}:null},clearActived(e){return(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),p.clearEdit(e)},clearEdit(e){return S(null,e)},clearSelected(){var e=C.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),p.isEditByRow(e)},isEditByRow(e){var t=C.editStore;return t.actived.row===e},setActiveRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),b.setEditRow(e)},setEditRow(e,t){var l=_.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender)),o=!1;return t&&(o=!0)!==t&&(r=_xeUtils.default.isString(t)?p.getColumnByField(t):t),w(e,r,o)},setActiveCell(e,t){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),b.setEditCell(e,t)},setEditCell(e,t){return w(e,t,!0)},setSelectCell(e,t){var l=C.tableData,r=m.value,t=_xeUtils.default.isString(t)?p.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=p.findRowIndexOf(l,e))&&t&&(l=p.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:p.getColumnIndex(t),cell:l},p.handleSelected(e,{})),(0,_vue.nextTick)()}},g={handleEdit(e,t){return i(e,t,!0,!0)},handleActived(e,t){return g.handleEdit(e,t)},handleClearEdit:S,handleFocus(r){var{row:o,column:a,cell:i}=r,n=a.editRender,d=m.value;if((0,_utils.isEnableConf)(n)){var u=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&u&&(e=u.tableAutoFocus||u.tableAutofocus||u.autofocus),!t&&u&&(t=u.tableAutoSelect||u.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():s.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!a.fixed&&p.scrollToRow(o,a)}},handleSelected(e,t){var l=R.mouseConfig,r=C.editStore,o=c.value;let a=m.value,{actived:i,selected:n}=r,{row:d,column:u}=e,s=l&&o.selected;return!s||n.row===d&&n.column===u||(i.row!==d||"cell"===a.mode&&i.column!==u)&&(S(t),p.clearSelected(),p.clearCellAreas&&(p.clearCellAreas(),p.clearCopyCellArea()),n.args=e,n.row=d,n.column=u,s&&g.addCellSelectedClass(),p.focus(),t)&&p.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=p.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},b),g)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)},setupGantt(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","getEditCell","getSelectedCell","clearEdit","clearActived","clearSelected","isEditByRow","isActiveByRow","setEditRow","setActiveRow","setEditCell","setActiveCell","setSelectCell"];hooks.add("tableEditModule",{setupTable(_){let{props:C,reactData:I,internalData:E}=_,t=_.getRefMaps().refElem,{computeMouseOpts:c,computeEditOpts:m,computeCheckboxOpts:R,computeTreeOpts:b,computeValidOpts:n}=_.getComputeMaps(),s=_xeUtils.default.browse(),p={},g={},A=(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=t.value;e&&(e=e.querySelector(".col--selected"))&&(0,_dom.removeClass)(e,"col--selected")},d=()=>{var{editStore:e,tableColumn:t}=I,l=m.value,e=e.actived;let{row:r,column:o}=e;(r||o)&&("row"===l.mode?t.forEach(e=>a(r,e)):a(r,o))},F=(e,t)=>{let{tableFullTreeData:i,afterFullData:n,fullDataRowIdData:d,fullAllDataRowIdData:u}=E;var l=b.value;let{rowField:s,parentField:c,mapChildrenField:g}=l,w=l.children||l.childrenField,v=t?"push":"unshift";e.forEach(l=>{let t=l[c];var r=(0,_util.getRowid)(_,l),o=t?_xeUtils.default.findTree(i,e=>t===e[s],{children:g}):null;if(o){var o=o.item,a=u[(0,_util.getRowid)(_,o)],a=a?a.level:0;let e=o[w],t=o[g];_xeUtils.default.isArray(e)||(e=o[w]=[]),_xeUtils.default.isArray(t)||(t=o[w]=[]),e[v](l),t[v](l);o={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:e,parent:o,level:a+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=o,u[r]=o}else{t&&(0,_log.warnLog)("vxe.error.unableInsert"),n[v](l),i[v](l);a={row:l,rowid:r,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:i,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};d[r]=a,u[r]=a}})},u=(t,l,n)=>{let o=C.treeConfig;var e=I.isRowGroupStatus;let{tableFullTreeData:d,afterFullData:a,mergeBodyList:i,tableFullData:u,fullDataRowIdData:s,fullAllDataRowIdData:c,insertRowMaps:r,removeRowMaps:g}=E;var w=b.value;let{transform:v,parentField:x,rowField:f,mapChildrenField:h}=w,m=w.children||w.childrenField,R=(_xeUtils.default.isArray(t)||(t=[t]),(0,_vue.reactive)(_.defineField(t.map(e=>Object.assign(o&&v?{[h]:[],[m]:[]}:{},e))))),p=[];if(o&&v&&(p=_xeUtils.default.toArrayTree(R,{key:f,parentKey:x,children:m})),_xeUtils.default.eqNull(l))if(o&&v)F(R,!1);else if(e){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.warnLog)(getI18n("vxe.error.noGroup",["remove"]))}else R.forEach(e=>{var t=(0,_util.getRowid)(_,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[t]=l,c[t]=l,a.unshift(e),u.unshift(e)}),i.forEach(e=>{var t=e.row;0<=t&&(e.row=t+R.length)});else if(-1===l)if(o&&v)F(R,!0);else if(e){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.warnLog)(getI18n("vxe.error.noGroup",["remove"]))}else R.forEach(e=>{var t=(0,_util.getRowid)(_,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,treeIndex:-1,_tIndex:-1,$index:-1,items:a,parent:null,level:0,height:0,resizeHeight:0,oTop:0,expandHeight:0};s[t]=l,c[t]=l,a.push(e),u.push(e)});else if(o&&v){let i=_xeUtils.default.findTree(d,e=>l[f]===e[f],{children:h});if(i){let r=i.parent,o=r?r[h]:d;w=c[(0,_util.getRowid)(_,r)];let a=w?w.level:0;if(p.forEach((e,t)=>{r?e[x]!==r[f]&&(e[x]=r[f],(0,_log.errLog)("vxe.error.errProp",[x+"="+e[x],x+"="+r[f]])):null!==e[x]&&(e[x]=null,_log.errLog)("vxe.error.errProp",[x+"="+e[x],"null"]);let l=i.index+t;n&&(l+=1),o.splice(l,0,e)}),_xeUtils.default.eachTree(p,e=>{var t=(0,_util.getRowid)(_,e),l={row:e,rowid:t,seq:-1,index:-1,_index:-1,$index:-1,treeIndex:-1,_tIndex:-1,items:o,parent:r,level:a+1,height:0,resizeHeight:0,oTop:0,expandHeight:0};e[m]&&(e[h]=e[m]),s[t]=l,c[t]=l},{children:m}),r){t=_xeUtils.default.findTree(d,e=>l[f]===e[f],{children:m});if(t){w=t.items;let e=t.index;n&&(e+=1),w.splice(e,0,...p)}}}else(0,_log.warnLog)("vxe.error.unableInsert"),F(R,!0)}else if(e){if(o)throw new Error(getI18n("vxe.error.noTree",["insert"]));(0,_log.warnLog)(getI18n("vxe.error.noGroup",["remove"]))}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=_.findRowIndexOf(a,l),-1===(r=n?Math.min(a.length,r+1):r))throw new Error(getI18n("vxe.error.unableInsert"));a.splice(r,0,...R);t=_.findRowIndexOf(u,l);-1<t?u.splice(t+(n?1:0),0,...R):u.push(...R),i.forEach(e=>{var{row:t,rowspan:l}=e;t>=r?e.row=t+R.length:(n?t+l>=r:t+l>r)&&(e.rowspan=l+R.length)})}w=e=>{var t=(0,_util.getRowid)(_,e);g[t]?(delete g[t],r[t]&&delete r[t]):r[t]=e};return o&&v?_xeUtils.default.eachTree(p,w,{children:h}):R.forEach(w),I.removeRowFlag++,I.insertRowFlag++,_.cacheRowMap(!1),_.updateScrollYStatus(),_.handleTableData(o&&v),o&&v||_.updateAfterDataIndex(),_.updateFooter(),_.handleUpdateBodyMerge(),_.checkSelectionStatus(),I.scrollYLoad&&_.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(_.updateCellAreas(),_.recalculate(!0))).then(()=>({row:R.length?R[R.length-1]:null,rows:R}))},r=(e,t,l,r)=>{var o=C.treeConfig;let{transform:a,rowField:i,parentField:n}=b.value;return o&&a?(_xeUtils.default.isArray(e)||(e=[e]),u(e.map(e=>Object.assign({},e,{[n]:t[i]})),l,r)):((0,_log.errLog)("vxe.error.errProp",["tree-config.transform=false","tree-config.transform=true"]),Promise.resolve({row:null,rows:[]}))},S=(e,t)=>{var l=I.editStore,{actived:l,focused:r}=l,{row:o,column:a}=l,i=n.value;if(o||a){if(t&&(0,_util.getRowid)(_,t)!==(0,_util.getRowid)(_,o))return(0,_vue.nextTick)();d(),l.args=null,l.row=null,l.column=null,_.updateFooter(),_.dispatchEvent("edit-closed",{row:o,rowIndex:_.getRowIndex(o),$rowIndex:_.getVMRowIndex(o),column:a,columnIndex:_.getColumnIndex(a),$columnIndex:_.getVMColumnIndex(a)},e||null)}return r.row=null,r.column=null,i.autoClear&&("full"!==i.msgMode||"obsolete"===getConfig().cellVaildMode)&&_.clearValidate?_.clearValidate():(0,_vue.nextTick)().then(()=>_.updateCellAreas())},i=(l,r,o,e)=>{let a=_.xeGrid,i=_.xeGantt;var{editConfig:t,mouseConfig:n}=C,{editStore:d,tableColumn:u}=I,s=m.value,c=s.mode,{actived:d,focused:g}=d;let{row:w,column:v}=l;var x=v.editRender,f=l.cell||_.getCellElement(w,v),h=s.beforeEditMethod||s.activeMethod;if((l.cell=f)&&(0,_utils.isEnableConf)(t)&&(0,_utils.isEnableConf)(x)&&!_.isPendingByRow(w)&&!_.isAggregateRecord(w)){if(d.row!==w||"cell"===c&&d.column!==v){let t="edit-disabled";if(!h||h(Object.assign(Object.assign({},l),{$table:_,$grid:a,$gantt:i}))){n&&(_.clearSelected(),_.clearCellAreas)&&(_.clearCellAreas(),_.clearCopyCellArea()),_.closeTooltip(),d.column&&S(r),t="edit-activated",v.renderHeight=f.offsetHeight,d.args=l,d.row=w,d.column=v,"row"===c?u.forEach(e=>A(w,e)):A(w,v);let e=s.afterEditMethod;(0,_vue.nextTick)(()=>{o&&_.handleFocus(l,r),e&&e(Object.assign(Object.assign({},l),{$table:_,$grid:a,$gantt:i}))})}_.dispatchEvent(t,{row:w,rowIndex:_.getRowIndex(w),$rowIndex:_.getVMRowIndex(w),column:v,columnIndex:_.getColumnIndex(v),$columnIndex:_.getVMColumnIndex(v)},r),"edit-activated"===t&&_.dispatchEvent("edit-actived",{row:w,rowIndex:_.getRowIndex(w),$rowIndex:_.getVMRowIndex(w),column:v,columnIndex:_.getColumnIndex(v),$columnIndex:_.getVMColumnIndex(v)},r)}else{t=d.column;n&&(_.clearSelected(),_.clearCellAreas)&&(_.clearCellAreas(),_.clearCopyCellArea()),t!==v&&(x=t.model,x.update&&(0,_util.setCellValue)(w,t,x.value),_.clearValidate)&&_.clearValidate(w,v),v.renderHeight=f.offsetHeight,d.args=l,d.column=v,e&&setTimeout(()=>{_.handleFocus(l,r)})}g.column=null,g.row=null,_.focus()}return(0,_vue.nextTick)()},w=(t,e,l)=>{var r=C.editConfig;let o=_xeUtils.default.isString(e)?_.getColumnByField(e):e;return t&&o&&(0,_utils.isEnableConf)(r)&&(0,_utils.isEnableConf)(o.editRender)&&!_.isAggregateRecord(t)?Promise.resolve(l?_.scrollToRow(t,o):null).then(()=>{var e=_.getCellElement(t,o);return e&&(i({row:t,rowIndex:_.getRowIndex(t),column:o,columnIndex:_.getColumnIndex(o),cell:e,$table:_},null,l,l),E._lastCallTime=Date.now()),(0,_vue.nextTick)()}):(0,_vue.nextTick)()};return p={insert(e){return u(e,null)},insertAt(e,t){return u(e,t)},insertNextAt(e,t){return u(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=C.treeConfig,{editStore:l,isRowGroupStatus:r}=I;let{tableFullTreeData:o,selectCheckboxMaps:a,afterFullData:i,mergeBodyList:n,tableFullData:d,pendingRowMaps:u,insertRowMaps:s,removeRowMaps:c}=E;var g=R.value,w=b.value;let{transform:v,mapChildrenField:x}=w,f=w.children||w.childrenField;w=l.actived,l=g.checkField;let h=[];return e?_xeUtils.default.isArray(e)||(e=[e]):e=d,e.forEach(e=>{var t;_.isInsertByRow(e)||(t=(0,_util.getRowid)(_,e),c[t]=e)}),l||(e.forEach(e=>{e=(0,_util.getRowid)(_,e);a[e]&&delete a[e]}),I.updateCheckboxFlag++),d===e?(e=h=d.slice(0),E.tableFullData=[],E.afterFullData=[],_.clearMergeCells()):t&&v?e.forEach(e=>{let t=(0,_util.getRowid)(_,e);var l=_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(_,e),{children:x}),l=(l&&(l=l.items.splice(l.index,1),h.push(l[0])),_xeUtils.default.findTree(o,e=>t===(0,_util.getRowid)(_,e),{children:f})),l=(l&&l.items.splice(l.index,1),_.findRowIndexOf(i,e));-1<l&&i.splice(l,1)}):r?(0,_log.warnLog)(getI18n("vxe.error.noGroup",["remove"])):e.forEach(e=>{var t=_.findRowIndexOf(d,e);-1<t&&(t=d.splice(t,1),h.push(t[0]));let r=_.findRowIndexOf(i,e);-1<r&&(n.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))}),w.row&&-1<_.findRowIndexOf(e,w.row)&&p.clearEdit(),e.forEach(e=>{e=(0,_util.getRowid)(_,e);s[e]&&delete s[e],u[e]&&delete u[e]}),I.removeRowFlag++,I.insertRowFlag++,I.pendingRowFlag++,_.cacheRowMap(!1),_.handleTableData(t&&v),_.updateFooter(),_.handleUpdateBodyMerge(),t&&v||_.updateAfterDataIndex(),_.checkSelectionStatus(),I.scrollYLoad&&_.updateScrollYSpace(),(0,_vue.nextTick)().then(()=>(_.updateCellAreas(),_.recalculate(!0))).then(()=>({row:h.length?h[h.length-1]:null,rows:h}))},removeCheckboxRow(){return p.remove(_.getCheckboxRecords()).then(e=>(_.clearCheckboxRow(),e))},removeRadioRow(){var e=_.getRadioRecord();return p.remove(e||[]).then(e=>(_.clearRadioRow(),e))},removeCurrentRow(){var e=_.getCurrentRecord();return p.remove(e||[]).then(e=>(_.clearCurrentRow(),e))},getRecordset(){var e=p.getRemoveRecords(),t=_.getPendingRecords();let l=e.concat(t);var r=p.getUpdateRecords().filter(t=>!l.some(e=>_.eqRow(e,t)));return{insertRecords:p.getInsertRecords(),removeRecords:e,updateRecords:r,pendingRecords:t}},getInsertRecords(){let{fullAllDataRowIdData:l,insertRowMaps:e}=E,r=[];return _xeUtils.default.each(e,(e,t)=>{l[t]&&r.push(e)}),r},getRemoveRecords(){var e=E.removeRowMaps;let t=[];return _xeUtils.default.each(e,e=>{t.push(e)}),t},getUpdateRecords(){var{keepSource:e,treeConfig:t}=C,l=E.tableFullData,r=b.value;return e?(d(),t?_xeUtils.default.filterTree(l,e=>_.isUpdateByRow(e),r):l.filter(e=>_.isUpdateByRow(e))):[]},getActiveRecord(){(0,_log.warnLog)("vxe.error.delFunc",["getActiveRecord","getEditCell"]);var e=I.editStore,t=E.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(_,l)]?Object.assign({},e,{row:l}):null},getEditRecord(){(0,_log.warnLog)("vxe.error.delFunc",["getEditRecord","getEditCell"]);var e=I.editStore,t=E.fullAllDataRowIdData,{args:e,row:l}=e.actived;return e&&l&&t[(0,_util.getRowid)(_,l)]?Object.assign({},e,{row:l}):null},getEditCell(){var e=I.editStore,{row:e,column:t}=e.actived;return t&&e?{row:e,rowIndex:_.getRowIndex(e),column:t,columnIndex:_.getColumnIndex(t)}:null},getSelectedCell(){var e=I.editStore,{row:e,column:t}=e.selected;return e&&t?{row:e,column:t}:null},clearActived(e){return(0,_log.warnLog)("vxe.error.delFunc",["clearActived","clearEdit"]),_.clearEdit(e)},clearEdit(e){return S(null,e)},clearSelected(){var e=I.editStore,e=e.selected;return e.row=null,e.column=null,l(),(0,_vue.nextTick)()},isActiveByRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["isActiveByRow","isEditByRow"]),_.isEditByRow(e)},isEditByRow(e){var t=I.editStore;return t.actived.row===e},setActiveRow(e){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveRow","setEditRow"]),p.setEditRow(e)},setEditRow(e,t){var l=E.visibleColumn;let r=_xeUtils.default.find(l,e=>(0,_utils.isEnableConf)(e.editRender)),o=!1;return t&&(o=!0)!==t&&(r=_xeUtils.default.isString(t)?_.getColumnByField(t):t),w(e,r,o)},setActiveCell(e,t){return(0,_log.warnLog)("vxe.error.delFunc",["setActiveCell","setEditCell"]),p.setEditCell(e,t)},setEditCell(e,t){return w(e,t,!0)},setSelectCell(e,t){var l=I.tableData,r=m.value,t=_xeUtils.default.isString(t)?_.getColumnByField(t):t;return e&&t&&"manual"!==r.trigger&&-1<(r=_.findRowIndexOf(l,e))&&t&&(l=_.getCellElement(e,t),e={row:e,rowIndex:r,column:t,columnIndex:_.getColumnIndex(t),cell:l},_.handleSelected(e,{})),(0,_vue.nextTick)()}},g={handleEdit(e,t){return i(e,t,!0,!0)},handleActived(e,t){return g.handleEdit(e,t)},handleClearEdit:S,handleFocus(r){var{row:o,column:a,cell:i}=r,n=a.editRender,d=m.value;if((0,_utils.isEnableConf)(n)){var u=renderer.get(n.name);let e=n.autofocus||n.autoFocus,t=n.autoSelect||n.autoselect,l;d.autoFocus&&(!e&&u&&(e=u.tableAutoFocus||u.tableAutofocus||u.autofocus),!t&&u&&(t=u.tableAutoSelect||u.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():s.msie&&((n=l.createTextRange()).collapse(!1),n.select()):d.autoPos&&!a.fixed&&_.scrollToRow(o,a)}},handleSelected(e,t){var l=C.mouseConfig,r=I.editStore,o=c.value;let a=m.value,{actived:i,selected:n}=r,{row:d,column:u}=e,s=l&&o.selected;return!s||n.row===d&&n.column===u||(i.row!==d||"cell"===a.mode&&i.column!==u)&&(S(t),_.clearSelected(),_.clearCellAreas&&(_.clearCellAreas(),_.clearCopyCellArea()),n.args=e,n.row=d,n.column=u,s&&g.addCellSelectedClass(),_.focus(),t)&&_.dispatchEvent("cell-selected",e,t),(0,_vue.nextTick)()},addCellSelectedClass(){var e=I.editStore,e=e.selected,{row:e,column:t}=e;l(),e&&t&&(e=_.getCellElement(e,t))&&(0,_dom.addClass)(e,"col--selected")}},Object.assign(Object.assign({},p),g)},setupGrid(e){return e.extendTableMethods(tableEditMethodKeys)},setupGantt(e){return e.extendTableMethods(tableEditMethodKeys)}});
@@ -60,6 +60,8 @@ const columnProps = exports.columnProps = {
60
60
  footerClassName: [String, Function],
61
61
  // 格式化显示内容
62
62
  formatter: [Function, Array, String],
63
+ // 格式化表头显示内容
64
+ headerFormatter: [Function, Array, String],
63
65
  // 格式化表尾显示内容
64
66
  footerFormatter: [Function, Array, String],
65
67
  // 是否显示间距
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.columnProps=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_util=require("./util"),_cell=_interopRequireDefault(require("./cell"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let columnProps=exports.columnProps={colId:[String,Number],type:String,field:String,title:String,width:[Number,String],minWidth:[Number,String],maxWidth:[Number,String],resizable:{type:Boolean,default:null},fixed:String,align:String,headerAlign:String,footerAlign:String,showOverflow:{type:[Boolean,String],default:null},showHeaderOverflow:{type:[Boolean,String],default:null},showFooterOverflow:{type:[Boolean,String],default:null},className:[String,Function],headerClassName:[String,Function],footerClassName:[String,Function],formatter:[Function,Array,String],footerFormatter:[Function,Array,String],padding:{type:Boolean,default:null},verticalAlign:{type:String,default:null},sortable:Boolean,sortBy:[String,Function],sortType:String,filters:{type:Array,default:null},filterMultiple:{type:Boolean,default:!0},filterMethod:Function,filterResetMethod:Function,filterRecoverMethod:Function,filterRender:Object,rowGroupNode:Boolean,treeNode:Boolean,dragSort:Boolean,rowResize:Boolean,visible:{type:Boolean,default:null},headerExportMethod:Function,exportMethod:Function,footerExportMethod:Function,titleHelp:Object,titlePrefix:Object,titleSuffix:Object,cellType:String,cellRender:Object,editRender:Object,contentRender:Object,aggFunc:[String,Boolean],params:Object};var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeColumn",props:columnProps,setup(e,{slots:t}){let o=(0,_vue.ref)(),r=(0,_vue.inject)("$xeTable",null),l=(0,_vue.inject)("$xeColgroup",null);if(!r)return()=>(0,_vue.createCommentVNode)();let n=_cell.default.createColumn(r,e);n.slots=t;var t=()=>(0,_vue.h)("div",{ref:o}),u={columnConfig:n,renderVN:t};return(0,_util.watchColumn)(r,e,n),(0,_vue.onMounted)(()=>{var e=o.value;e&&(0,_util.assembleColumn)(r,e,n,l)}),(0,_vue.onUnmounted)(()=>{(0,_util.destroyColumn)(r,n)}),(0,_vue.provide)("$xeColumn",u),(0,_vue.provide)("$xeGrid",null),(0,_vue.provide)("$xeGantt",null),t}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.columnProps=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_util=require("./util"),_cell=_interopRequireDefault(require("./cell"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let columnProps=exports.columnProps={colId:[String,Number],type:String,field:String,title:String,width:[Number,String],minWidth:[Number,String],maxWidth:[Number,String],resizable:{type:Boolean,default:null},fixed:String,align:String,headerAlign:String,footerAlign:String,showOverflow:{type:[Boolean,String],default:null},showHeaderOverflow:{type:[Boolean,String],default:null},showFooterOverflow:{type:[Boolean,String],default:null},className:[String,Function],headerClassName:[String,Function],footerClassName:[String,Function],formatter:[Function,Array,String],headerFormatter:[Function,Array,String],footerFormatter:[Function,Array,String],padding:{type:Boolean,default:null},verticalAlign:{type:String,default:null},sortable:Boolean,sortBy:[String,Function],sortType:String,filters:{type:Array,default:null},filterMultiple:{type:Boolean,default:!0},filterMethod:Function,filterResetMethod:Function,filterRecoverMethod:Function,filterRender:Object,rowGroupNode:Boolean,treeNode:Boolean,dragSort:Boolean,rowResize:Boolean,visible:{type:Boolean,default:null},headerExportMethod:Function,exportMethod:Function,footerExportMethod:Function,titleHelp:Object,titlePrefix:Object,titleSuffix:Object,cellType:String,cellRender:Object,editRender:Object,contentRender:Object,aggFunc:[String,Boolean],params:Object};var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeColumn",props:columnProps,setup(e,{slots:t}){let r=(0,_vue.ref)(),o=(0,_vue.inject)("$xeTable",null),n=(0,_vue.inject)("$xeColgroup",null);if(!o)return()=>(0,_vue.createCommentVNode)();let l=_cell.default.createColumn(o,e);l.slots=t;var t=()=>(0,_vue.h)("div",{ref:r}),u={columnConfig:l,renderVN:t};return(0,_util.watchColumn)(o,e,l),(0,_vue.onMounted)(()=>{var e=r.value;e&&(0,_util.assembleColumn)(o,e,l,n)}),(0,_vue.onUnmounted)(()=>{(0,_util.destroyColumn)(o,l)}),(0,_vue.provide)("$xeColumn",u),(0,_vue.provide)("$xeGrid",null),(0,_vue.provide)("$xeGantt",null),t}});
@@ -101,6 +101,7 @@ class ColumnInfo {
101
101
  headerClassName: _vm.headerClassName,
102
102
  footerClassName: _vm.footerClassName,
103
103
  formatter: formatter,
104
+ headerFormatter: _vm.headerFormatter,
104
105
  footerFormatter: _vm.footerFormatter,
105
106
  padding: _vm.padding,
106
107
  verticalAlign: _vm.verticalAlign,
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.ColumnInfo=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,formats}=_ui.VxeUI;class ColumnInfo{constructor(e,r,{renderHeader:t,renderCell:l,renderFooter:o,renderData:i}={}){var d=e.props,n=e.xeGrid,a=e.xeGantt,s=n||a,{field:u,editRender:f}=r,g=r.formatter,p=!_xeUtils.default.isBoolean(r.visible)||r.visible,c=["seq","checkbox","radio","expand","html"];r.type&&-1===c.indexOf(r.type)&&(0,_log.warnLog)("vxe.error.errProp",["type="+r.type,c.join(", ")]),(_xeUtils.default.isBoolean(r.cellRender)||r.cellRender&&!_xeUtils.default.isObject(r.cellRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.cell-render="+r.cellRender,"column.cell-render={}"]),(_xeUtils.default.isBoolean(r.editRender)||r.editRender&&!_xeUtils.default.isObject(r.editRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.edit-render="+r.editRender,"column.edit-render={}"]),"expand"===r.type&&(c=d.treeConfig,d=e.getComputeMaps().computeTreeOpts,d=d.value,c)&&(d.showLine||d.line)&&(0,_log.errLog)("vxe.error.errConflicts",["tree-config.showLine","column.type=expand"]),g&&(_xeUtils.default.isString(g)?(c=formats.get(g)||_xeUtils.default[g])&&_xeUtils.default.isFunction(c.tableCellFormatMethod||c.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[g]):!_xeUtils.default.isArray(g)||(d=formats.get(g[0])||_xeUtils.default[g[0]])&&_xeUtils.default.isFunction(d.tableCellFormatMethod||d.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[g[0]])),r.aggFunc&&!e.handlePivotTableAggregateData&&!0!==r.aggFunc&&(0,_log.errLog)("vxe.error.errProp",["column.agg-func="+r.aggFunc,"column.agg-func=true"]),u&&f&&(f.startField&&0<=(""+f.startField).indexOf(u)&&(0,_log.errLog)("vxe.error.modelConflicts",["field="+u,"edit-render.startField="+f.startField]),f.endField)&&0<=(""+f.endField).indexOf(u)&&(0,_log.errLog)("vxe.error.modelConflicts",["field="+u,"edit-render.endField="+f.endField]),Object.assign(this,{type:r.type,property:r.field,field:u,title:r.title,width:r.width,minWidth:r.minWidth,maxWidth:r.maxWidth,resizable:r.resizable,fixed:r.fixed,align:r.align,headerAlign:r.headerAlign,footerAlign:r.footerAlign,showOverflow:r.showOverflow,showHeaderOverflow:r.showHeaderOverflow,showFooterOverflow:r.showFooterOverflow,className:r.className,headerClassName:r.headerClassName,footerClassName:r.footerClassName,formatter:g,footerFormatter:r.footerFormatter,padding:r.padding,verticalAlign:r.verticalAlign,sortable:r.sortable,sortBy:r.sortBy,sortType:r.sortType,filters:(0,_util.toFilters)(r.filters),filterMultiple:!_xeUtils.default.isBoolean(r.filterMultiple)||r.filterMultiple,filterMethod:r.filterMethod,filterResetMethod:r.filterResetMethod,filterRecoverMethod:r.filterRecoverMethod,filterRender:r.filterRender,rowGroupNode:r.rowGroupNode,treeNode:r.treeNode,dragSort:r.dragSort,rowResize:r.rowResize,cellType:r.cellType,cellRender:r.cellRender,editRender:f,contentRender:r.contentRender,headerExportMethod:r.headerExportMethod,exportMethod:r.exportMethod,footerExportMethod:r.footerExportMethod,titleHelp:r.titleHelp,titlePrefix:r.titlePrefix,titleSuffix:r.titleSuffix,aggFunc:r.aggFunc,params:r.params,id:r.colId||_xeUtils.default.uniqueId("col_"),parentId:null,visible:p,defaultParentId:null,halfVisible:!1,defaultVisible:p,defaultFixed:r.fixed,defaultAggGroup:r.aggGroup,defaultAggFunc:r.aggFunc,checked:!1,halfChecked:!1,disabled:!1,level:1,rowSpan:1,colSpan:1,order:null,sortTime:0,sortNumber:0,renderSortNumber:0,renderAggFn:"",renderFixed:"",renderVisible:!1,renderWidth:0,renderHeight:0,renderResizeWidth:0,renderAutoWidth:0,resizeWidth:0,renderLeft:0,renderArgs:[],model:{},renderHeader:t||r.renderHeader,renderCell:l||r.renderCell,renderFooter:o||r.renderFooter,renderData:i,slots:r.slots}),s&&(c=s.getComputeMaps().computeProxyOpts,(d=c.value).beforeColumn)&&d.beforeColumn({$table:e,$grid:n,$gantt:a,column:this})}getTitle(){return(0,_utils.getFuncText)(this.title||("seq"===this.type?getI18n("vxe.table.seqTitle"):""))}getKey(){var e=this.type;return this.field||(e?"type="+e:null)}update(e,r){"filters"!==e&&("field"===e&&(this.property=r),this[e]=r)}}exports.ColumnInfo=ColumnInfo;
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.ColumnInfo=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,formats}=_ui.VxeUI;class ColumnInfo{constructor(e,r,{renderHeader:t,renderCell:l,renderFooter:o,renderData:i}={}){var d=e.props,n=e.xeGrid,a=e.xeGantt,s=n||a,{field:u,editRender:f}=r,g=r.formatter,p=!_xeUtils.default.isBoolean(r.visible)||r.visible,c=["seq","checkbox","radio","expand","html"];r.type&&-1===c.indexOf(r.type)&&(0,_log.warnLog)("vxe.error.errProp",["type="+r.type,c.join(", ")]),(_xeUtils.default.isBoolean(r.cellRender)||r.cellRender&&!_xeUtils.default.isObject(r.cellRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.cell-render="+r.cellRender,"column.cell-render={}"]),(_xeUtils.default.isBoolean(r.editRender)||r.editRender&&!_xeUtils.default.isObject(r.editRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.edit-render="+r.editRender,"column.edit-render={}"]),"expand"===r.type&&(c=d.treeConfig,d=e.getComputeMaps().computeTreeOpts,d=d.value,c)&&(d.showLine||d.line)&&(0,_log.errLog)("vxe.error.errConflicts",["tree-config.showLine","column.type=expand"]),g&&(_xeUtils.default.isString(g)?(c=formats.get(g)||_xeUtils.default[g])&&_xeUtils.default.isFunction(c.tableCellFormatMethod||c.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[g]):!_xeUtils.default.isArray(g)||(d=formats.get(g[0])||_xeUtils.default[g[0]])&&_xeUtils.default.isFunction(d.tableCellFormatMethod||d.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[g[0]])),r.aggFunc&&!e.handlePivotTableAggregateData&&!0!==r.aggFunc&&(0,_log.errLog)("vxe.error.errProp",["column.agg-func="+r.aggFunc,"column.agg-func=true"]),u&&f&&(f.startField&&0<=(""+f.startField).indexOf(u)&&(0,_log.errLog)("vxe.error.modelConflicts",["field="+u,"edit-render.startField="+f.startField]),f.endField)&&0<=(""+f.endField).indexOf(u)&&(0,_log.errLog)("vxe.error.modelConflicts",["field="+u,"edit-render.endField="+f.endField]),Object.assign(this,{type:r.type,property:r.field,field:u,title:r.title,width:r.width,minWidth:r.minWidth,maxWidth:r.maxWidth,resizable:r.resizable,fixed:r.fixed,align:r.align,headerAlign:r.headerAlign,footerAlign:r.footerAlign,showOverflow:r.showOverflow,showHeaderOverflow:r.showHeaderOverflow,showFooterOverflow:r.showFooterOverflow,className:r.className,headerClassName:r.headerClassName,footerClassName:r.footerClassName,formatter:g,headerFormatter:r.headerFormatter,footerFormatter:r.footerFormatter,padding:r.padding,verticalAlign:r.verticalAlign,sortable:r.sortable,sortBy:r.sortBy,sortType:r.sortType,filters:(0,_util.toFilters)(r.filters),filterMultiple:!_xeUtils.default.isBoolean(r.filterMultiple)||r.filterMultiple,filterMethod:r.filterMethod,filterResetMethod:r.filterResetMethod,filterRecoverMethod:r.filterRecoverMethod,filterRender:r.filterRender,rowGroupNode:r.rowGroupNode,treeNode:r.treeNode,dragSort:r.dragSort,rowResize:r.rowResize,cellType:r.cellType,cellRender:r.cellRender,editRender:f,contentRender:r.contentRender,headerExportMethod:r.headerExportMethod,exportMethod:r.exportMethod,footerExportMethod:r.footerExportMethod,titleHelp:r.titleHelp,titlePrefix:r.titlePrefix,titleSuffix:r.titleSuffix,aggFunc:r.aggFunc,params:r.params,id:r.colId||_xeUtils.default.uniqueId("col_"),parentId:null,visible:p,defaultParentId:null,halfVisible:!1,defaultVisible:p,defaultFixed:r.fixed,defaultAggGroup:r.aggGroup,defaultAggFunc:r.aggFunc,checked:!1,halfChecked:!1,disabled:!1,level:1,rowSpan:1,colSpan:1,order:null,sortTime:0,sortNumber:0,renderSortNumber:0,renderAggFn:"",renderFixed:"",renderVisible:!1,renderWidth:0,renderHeight:0,renderResizeWidth:0,renderAutoWidth:0,resizeWidth:0,renderLeft:0,renderArgs:[],model:{},renderHeader:t||r.renderHeader,renderCell:l||r.renderCell,renderFooter:o||r.renderFooter,renderData:i,slots:r.slots}),s&&(c=s.getComputeMaps().computeProxyOpts,(d=c.value).beforeColumn)&&d.beforeColumn({$table:e,$grid:n,$gantt:a,column:this})}getTitle(){return(0,_utils.getFuncText)(this.title||("seq"===this.type?getI18n("vxe.table.seqTitle"):""))}getKey(){var e=this.type;return this.field||(e?"type="+e:null)}update(e,r){"filters"!==e&&("field"===e&&(this.property=r),this[e]=r)}}exports.ColumnInfo=ColumnInfo;
@@ -4,4 +4,4 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.tableEmits = void 0;
7
- const tableEmits = exports.tableEmits = ['update:data', 'keydown-start', 'keydown', 'keydown-end', 'paste', 'copy', 'cut', 'current-change', 'current-row-change', 'current-row-disabled', 'current-column-change', 'current-column-disabled', 'radio-change', 'checkbox-change', 'checkbox-all', 'checkbox-range-start', 'checkbox-range-change', 'checkbox-range-end', 'checkbox-range-select', 'cell-click', 'cell-dblclick', 'cell-menu', 'cell-mouseenter', 'cell-mouseleave', 'cell-selected', 'cell-delete-value', 'cell-backspace-value', 'header-cell-click', 'header-cell-dblclick', 'header-cell-menu', 'footer-cell-click', 'footer-cell-dblclick', 'footer-cell-menu', 'clear-merge', 'sort-change', 'clear-sort', 'clear-all-sort', 'filter-change', 'filter-visible', 'clear-filter', 'clear-all-filter', 'resizable-change', 'column-resizable-change', 'row-resizable-change', 'toggle-row-group-expand', 'toggle-row-expand', 'toggle-tree-expand', 'menu-click', 'edit-closed', 'row-dragstart', 'row-dragover', 'row-dragend', 'column-dragstart', 'column-dragover', 'column-dragend', 'enter-append-row', 'edit-actived', 'edit-activated', 'edit-disabled', 'valid-error', 'scroll', 'scroll-boundary', 'custom', 'custom-visible-change', 'custom-visible-all', 'custom-fixed-change', 'change-fnr', 'open-fnr', 'show-fnr', 'hide-fnr', 'fnr-change', 'fnr-find', 'fnr-find-all', 'fnr-replace', 'fnr-replace-all', 'cell-area-copy', 'cell-area-cut', 'cell-area-paste', 'cell-area-merge', 'clear-cell-area-selection', 'clear-cell-area-merge', 'header-cell-area-selection', 'cell-area-selection-invalid', 'cell-area-selection-start', 'cell-area-selection-drag', 'cell-area-selection-end', 'cell-area-extension-start', 'cell-area-extension-drag', 'cell-area-extension-end', 'cell-area-selection-all-start', 'cell-area-selection-all-end', 'cell-area-arrows-start', 'cell-area-arrows-end', 'active-cell-change-start', 'active-cell-change-end'];
7
+ const tableEmits = exports.tableEmits = ['update:data', 'keydown-start', 'keydown', 'keydown-end', 'paste', 'copy', 'cut', 'columns-change', 'data-change', 'footer-data-change', 'current-change', 'current-row-change', 'current-row-disabled', 'current-column-change', 'current-column-disabled', 'radio-change', 'checkbox-change', 'checkbox-all', 'checkbox-range-start', 'checkbox-range-change', 'checkbox-range-end', 'checkbox-range-select', 'cell-click', 'cell-dblclick', 'cell-menu', 'cell-mouseenter', 'cell-mouseleave', 'cell-selected', 'cell-delete-value', 'cell-backspace-value', 'header-cell-click', 'header-cell-dblclick', 'header-cell-menu', 'footer-cell-click', 'footer-cell-dblclick', 'footer-cell-menu', 'clear-merge', 'sort-change', 'clear-sort', 'clear-all-sort', 'filter-change', 'filter-visible', 'clear-filter', 'clear-all-filter', 'resizable-change', 'column-resizable-change', 'row-resizable-change', 'toggle-row-group-expand', 'toggle-row-expand', 'toggle-tree-expand', 'menu-click', 'edit-closed', 'row-dragstart', 'row-dragover', 'row-dragend', 'row-remove-dragend', 'row-insert-dragend', 'column-dragstart', 'column-dragover', 'column-dragend', 'enter-append-row', 'edit-actived', 'edit-activated', 'edit-disabled', 'valid-error', 'scroll', 'scroll-boundary', 'custom', 'custom-visible-change', 'custom-visible-all', 'custom-fixed-change', 'change-fnr', 'open-fnr', 'show-fnr', 'hide-fnr', 'fnr-change', 'fnr-find', 'fnr-find-all', 'fnr-replace', 'fnr-replace-all', 'cell-area-copy', 'cell-area-cut', 'cell-area-paste', 'cell-area-merge', 'clear-cell-area-selection', 'clear-cell-area-merge', 'header-cell-area-selection', 'cell-area-selection-invalid', 'cell-area-selection-start', 'cell-area-selection-drag', 'cell-area-selection-end', 'cell-area-extension-start', 'cell-area-extension-drag', 'cell-area-extension-end', 'cell-area-selection-all-start', 'cell-area-selection-all-end', 'cell-area-arrows-start', 'cell-area-arrows-end', 'active-cell-change-start', 'active-cell-change-end'];
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.tableEmits=void 0;let tableEmits=exports.tableEmits=["update:data","keydown-start","keydown","keydown-end","paste","copy","cut","current-change","current-row-change","current-row-disabled","current-column-change","current-column-disabled","radio-change","checkbox-change","checkbox-all","checkbox-range-start","checkbox-range-change","checkbox-range-end","checkbox-range-select","cell-click","cell-dblclick","cell-menu","cell-mouseenter","cell-mouseleave","cell-selected","cell-delete-value","cell-backspace-value","header-cell-click","header-cell-dblclick","header-cell-menu","footer-cell-click","footer-cell-dblclick","footer-cell-menu","clear-merge","sort-change","clear-sort","clear-all-sort","filter-change","filter-visible","clear-filter","clear-all-filter","resizable-change","column-resizable-change","row-resizable-change","toggle-row-group-expand","toggle-row-expand","toggle-tree-expand","menu-click","edit-closed","row-dragstart","row-dragover","row-dragend","column-dragstart","column-dragover","column-dragend","enter-append-row","edit-actived","edit-activated","edit-disabled","valid-error","scroll","scroll-boundary","custom","custom-visible-change","custom-visible-all","custom-fixed-change","change-fnr","open-fnr","show-fnr","hide-fnr","fnr-change","fnr-find","fnr-find-all","fnr-replace","fnr-replace-all","cell-area-copy","cell-area-cut","cell-area-paste","cell-area-merge","clear-cell-area-selection","clear-cell-area-merge","header-cell-area-selection","cell-area-selection-invalid","cell-area-selection-start","cell-area-selection-drag","cell-area-selection-end","cell-area-extension-start","cell-area-extension-drag","cell-area-extension-end","cell-area-selection-all-start","cell-area-selection-all-end","cell-area-arrows-start","cell-area-arrows-end","active-cell-change-start","active-cell-change-end"];
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.tableEmits=void 0;let tableEmits=exports.tableEmits=["update:data","keydown-start","keydown","keydown-end","paste","copy","cut","columns-change","data-change","footer-data-change","current-change","current-row-change","current-row-disabled","current-column-change","current-column-disabled","radio-change","checkbox-change","checkbox-all","checkbox-range-start","checkbox-range-change","checkbox-range-end","checkbox-range-select","cell-click","cell-dblclick","cell-menu","cell-mouseenter","cell-mouseleave","cell-selected","cell-delete-value","cell-backspace-value","header-cell-click","header-cell-dblclick","header-cell-menu","footer-cell-click","footer-cell-dblclick","footer-cell-menu","clear-merge","sort-change","clear-sort","clear-all-sort","filter-change","filter-visible","clear-filter","clear-all-filter","resizable-change","column-resizable-change","row-resizable-change","toggle-row-group-expand","toggle-row-expand","toggle-tree-expand","menu-click","edit-closed","row-dragstart","row-dragover","row-dragend","row-remove-dragend","row-insert-dragend","column-dragstart","column-dragover","column-dragend","enter-append-row","edit-actived","edit-activated","edit-disabled","valid-error","scroll","scroll-boundary","custom","custom-visible-change","custom-visible-all","custom-fixed-change","change-fnr","open-fnr","show-fnr","hide-fnr","fnr-change","fnr-find","fnr-find-all","fnr-replace","fnr-replace-all","cell-area-copy","cell-area-cut","cell-area-paste","cell-area-merge","clear-cell-area-selection","clear-cell-area-merge","header-cell-area-selection","cell-area-selection-invalid","cell-area-selection-start","cell-area-selection-drag","cell-area-selection-end","cell-area-extension-start","cell-area-extension-drag","cell-area-extension-end","cell-area-selection-all-start","cell-area-selection-all-end","cell-area-arrows-start","cell-area-arrows-end","active-cell-change-start","active-cell-change-end"];
@@ -53,12 +53,33 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
53
53
  const refHeaderXSpace = (0, _vue.ref)();
54
54
  const refHeaderBorderRepair = (0, _vue.ref)();
55
55
  const uploadColumn = () => {
56
+ const {
57
+ showCustomHeader
58
+ } = tableProps;
59
+ const {
60
+ collectColumn,
61
+ visibleColumn
62
+ } = tableInternalData;
63
+ const {
64
+ tableGroupColumn
65
+ } = props;
56
66
  const {
57
67
  isGroup
58
68
  } = tableReactData;
59
- headerColumn.value = isGroup ? (0, _util.convertHeaderColumnToRows)(props.tableGroupColumn) : [];
69
+ let spanColumns = isGroup ? (0, _util.convertHeaderColumnToRows)(tableGroupColumn) : [];
70
+ let visibleColgroups = [];
71
+ if (showCustomHeader && spanColumns.length > 1) {
72
+ visibleColgroups = (0, _util.convertHeaderToGridRows)(spanColumns);
73
+ spanColumns = visibleColgroups;
74
+ }
75
+ headerColumn.value = spanColumns;
76
+ $xeTable.dispatchEvent('columns-change', {
77
+ visibleColgroups,
78
+ collectColumn,
79
+ visibleColumn
80
+ }, null);
60
81
  };
61
- const renderRows = (isGroup, isOptimizeMode, cols, $rowIndex) => {
82
+ const renderRows = (isGroup, isOptimizeMode, headerGroups, $rowIndex, cols) => {
62
83
  const $xeGrid = $xeTable.xeGrid;
63
84
  const $xeGantt = $xeTable.xeGantt;
64
85
  const {
@@ -67,6 +88,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
67
88
  const {
68
89
  resizable: allResizable,
69
90
  columnKey,
91
+ showCustomHeader,
70
92
  headerCellClassName,
71
93
  headerCellStyle,
72
94
  showHeaderOverflow: allColumnHeaderOverflow,
@@ -80,11 +102,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
80
102
  scrollXLoad,
81
103
  scrollYLoad,
82
104
  overflowX,
105
+ mergeHeadFlag,
83
106
  tableColumn
84
107
  } = tableReactData;
85
108
  const {
86
109
  fullColumnIdData,
87
- scrollXStore
110
+ scrollXStore,
111
+ mergeHeaderList,
112
+ mergeHeaderCellMaps
88
113
  } = tableInternalData;
89
114
  const virtualXOpts = computeVirtualXOpts.value;
90
115
  const columnOpts = computeColumnOpts.value;
@@ -98,6 +123,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
98
123
  isCrossDrag,
99
124
  isPeerDrag
100
125
  } = columnDragOpts;
126
+ const isLastRow = $rowIndex === headerGroups.length - 1;
101
127
  return cols.map((column, $columnIndex) => {
102
128
  const {
103
129
  type,
@@ -146,10 +172,34 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
146
172
  hasFilter
147
173
  };
148
174
  const thAttrs = {
149
- colid,
150
- colspan: column.colSpan > 1 ? column.colSpan : null,
151
- rowspan: column.rowSpan > 1 ? column.rowSpan : null
175
+ colid
152
176
  };
177
+ let isMergeCell = false;
178
+ // 合并行或列
179
+ if (!showCustomHeader) {
180
+ thAttrs.colspan = column.colSpan > 1 ? column.colSpan : null;
181
+ thAttrs.rowspan = column.rowSpan > 1 ? column.rowSpan : null;
182
+ }
183
+ if (mergeHeadFlag && mergeHeaderList.length && (showCustomHeader || isLastRow)) {
184
+ const spanRest = mergeHeaderCellMaps[`${$rowIndex}:${showCustomHeader ? $columnIndex : _columnIndex}`];
185
+ if (spanRest) {
186
+ const {
187
+ rowspan,
188
+ colspan
189
+ } = spanRest;
190
+ if (!rowspan || !colspan) {
191
+ return null;
192
+ }
193
+ if (rowspan > 1) {
194
+ isMergeCell = true;
195
+ thAttrs.rowspan = rowspan;
196
+ }
197
+ if (colspan > 1) {
198
+ isMergeCell = true;
199
+ thAttrs.colspan = colspan;
200
+ }
201
+ }
202
+ }
153
203
  const thOns = {
154
204
  onClick: evnt => $xeTable.triggerHeaderCellClickEvent(evnt, cellParams),
155
205
  onDblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt, cellParams)
@@ -176,7 +226,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
176
226
  const showResizable = _xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable;
177
227
  const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
178
228
  let isVNPreEmptyStatus = false;
179
- if (isOptimizeMode && overflowX && !isGroup) {
229
+ if (isOptimizeMode && overflowX && !isGroup && !isMergeCell) {
180
230
  if (!dragCol || dragCol.id !== colid) {
181
231
  if (scrollXLoad && tableColumn.length > 10 && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
182
232
  isVNPreEmptyStatus = true;
@@ -190,7 +240,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
190
240
  tcStyle.minHeight = `${currCellHeight}px`;
191
241
  }
192
242
  return (0, _vue.h)('th', Object.assign(Object.assign(Object.assign({
193
- class: ['vxe-table--column vxe-header--column', colid, {
243
+ class: ['vxe-table--column vxe-header--column', colid, fixedHiddenColumn ? 'fixed--hidden' : 'fixed--visible', {
194
244
  [`col--${headAlign}`]: headAlign,
195
245
  [`col--${type}`]: type,
196
246
  'col--last': isLastColumn,
@@ -198,7 +248,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
198
248
  'col--group': isColGroup,
199
249
  'col--ellipsis': hasEllipsis,
200
250
  'fixed--width': !isAutoCellWidth,
201
- 'fixed--hidden': fixedHiddenColumn,
202
251
  'is--padding': isPadding,
203
252
  'is--sortable': column.sortable,
204
253
  'col--filter': !!filters,
@@ -209,7 +258,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
209
258
  }, headerClassName ? _xeUtils.default.isFunction(headerClassName) ? headerClassName(cellParams) : headerClassName : '', headerCellClassName ? _xeUtils.default.isFunction(headerCellClassName) ? headerCellClassName(cellParams) : headerCellClassName : ''],
210
259
  style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(cellParams) : headerCellStyle : null
211
260
  }, thAttrs), thOns), {
212
- key: columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
261
+ key: showCustomHeader ? `${colid}${$columnIndex}` : columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
213
262
  }), [(0, _vue.h)('div', {
214
263
  class: ['vxe-cell', {
215
264
  'c--title': showTitle,
@@ -224,7 +273,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
224
273
  /**
225
274
  * 列宽拖动
226
275
  */
227
- !fixedHiddenColumn && showResizable ? (0, _vue.h)('div', {
276
+ !fixedHiddenColumn && showResizable && (!showCustomHeader || isLastRow) ? (0, _vue.h)('div', {
228
277
  class: 'vxe-cell--col-resizable',
229
278
  onMousedown: evnt => $xeTable.handleColResizeMousedownEvent(evnt, fixedType, cellParams),
230
279
  onDblclick: evnt => $xeTable.handleColResizeDblclickEvent(evnt, cellParams)
@@ -250,7 +299,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
250
299
  key: $rowIndex,
251
300
  class: ['vxe-header--row', headerRowClassName ? _xeUtils.default.isFunction(headerRowClassName) ? headerRowClassName(params) : headerRowClassName : ''],
252
301
  style: headerRowStyle ? _xeUtils.default.isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle : null
253
- }, renderRows(isGroup, isOptimizeMode, cols, $rowIndex));
302
+ }, renderRows(isGroup, isOptimizeMode, headerGroups, $rowIndex, cols));
254
303
  });
255
304
  };
256
305
  const renderVN = () => {
@@ -277,7 +326,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
277
326
  fullColumnIdData
278
327
  } = tableInternalData;
279
328
  const mouseOpts = computeMouseOpts.value;
280
- let renderHeaderList = headerColumn.value;
329
+ let renderHeaderList = headerColumn.value || [];
281
330
  let renderColumnList = tableColumn;
282
331
  let isOptimizeMode = false;
283
332
  if (isGroup) {
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,renderType="header";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(m){let re=(0,_vue.inject)("$xeTable",{}),{xID:_,props:b,reactData:C,internalData:y}=re,{computeColumnOpts:l,computeColumnDragOpts:a,computeCellOpts:r,computeMouseOpts:w,computeHeaderCellOpts:t,computeDefaultRowHeight:n,computeVirtualXOpts:i}=re.getComputeMaps(),D=(0,_vue.ref)([]),H=(0,_vue.ref)(),E=(0,_vue.ref)(),S=(0,_vue.ref)(),M=(0,_vue.ref)(),O=(0,_vue.ref)(),T=(0,_vue.ref)(),o=(0,_vue.ref)(),d=()=>{var e=C.isGroup;D.value=e?(0,_util.convertHeaderColumnToRows)(m.tableGroupColumn):[]},I=(H,E,S,M)=>{let O=re.xeGrid,T=re.xeGantt,I=m.fixedType,{resizable:k,columnKey:U,headerCellClassName:$,headerCellStyle:z,showHeaderOverflow:R,headerAlign:q,align:A,mouseConfig:F}=b,{currentColumn:G,dragCol:X,scrollXLoad:j,scrollYLoad:L,overflowX:N,tableColumn:V}=C,{fullColumnIdData:W,scrollXStore:B}=y,K=i.value,P=l.value,Y=a.value,J=r.value;var e=n.value;let Q=t.value,Z=(0,_util.getCalcHeight)(Q.height)||e,{disabledMethod:ee,isCrossDrag:le,isPeerDrag:ae}=Y;return S.map((e,l)=>{var{type:a,showHeaderOverflow:r,headerAlign:t,align:n,filters:i,headerClassName:o,editRender:d,cellRender:u}=e,s=e.id,c=W[s]||{},d=d||u,u=d?renderer.get(d.name):null,d=e.children&&e.children.length,p=N&&!d&&(I?e.fixed!==I:!!e.fixed),v=(_xeUtils.default.isBoolean(Q.padding)?Q:J).padding,r=_xeUtils.default.eqNull(r)?R:r,t=t||(u?u.tableHeaderCellAlign:"")||q||n||(u?u.tableCellAlign:"")||A,n="ellipsis"===r,u="title"===r,r=!0===r||"tooltip"===r,x=u||r||n;let h=!1,g=null;i&&(g=i[0],h=i.some(e=>e.checked));var f=c.index,c=c._index;let m={$table:re,$grid:O,$gantt:T,$rowIndex:M,column:e,columnIndex:f,$columnIndex:l,_columnIndex:c,firstFilterOption:g,fixed:I,type:renderType,isHidden:p,hasFilter:h};var f={colid:s,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},_={onClick:e=>re.triggerHeaderCellClickEvent(e,m),onDblclick:e=>re.triggerHeaderCellDblclickEvent(e,m)},b=P.drag&&"cell"===Y.trigger;let C=!1;b&&(C=!(!ee||!ee(m))),(F||b)&&(_.onMousedown=e=>re.triggerHeaderCellMousedownEvent(e,m)),P.drag&&(_.onDragstart=re.handleHeaderCellDragDragstartEvent,_.onDragend=re.handleHeaderCellDragDragendEvent,_.onDragover=re.handleHeaderCellDragDragoverEvent,b)&&(_.onMouseup=re.handleHeaderCellDragMouseupEvent);var b=l===S.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:P.resizable||k,w=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let D=!1;!E||!N||H||X&&X.id===s||j&&10<V.length&&!e.fixed&&!K.immediate&&(c<B.visibleStartIndex-B.preloadSize||c>B.visibleEndIndex+B.preloadSize)&&(D=!0);c={};return x?c.height=Z+"px":c.minHeight=Z+"px",(0,_vue.h)("th",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-header--column",s,{["col--"+t]:t,["col--"+a]:a,"col--last":b,"col--fixed":e.fixed,"col--group":d,"col--ellipsis":x,"fixed--width":!w,"fixed--hidden":p,"is--padding":v,"is--sortable":e.sortable,"col--filter":!!i,"is--filter-active":h,"is--drag-active":P.drag&&!e.fixed&&!C&&(le||ae||!e.parentId),"is--drag-disabled":P.drag&&C,"col--current":G===e},o?_xeUtils.default.isFunction(o)?o(m):o:"",$?_xeUtils.default.isFunction($)?$(m):$:""],style:z?_xeUtils.default.isFunction(z)?z(m):z:null},f),_),{key:U||j||L||P.useKey||P.drag||d?s:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":r,"c--ellipsis":n}],style:c},D||E&&p?[]:[(0,_vue.h)("div",{colid:s,class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(m))]),!p&&y?(0,_vue.h)("div",{class:"vxe-cell--col-resizable",onMousedown:e=>re.handleColResizeMousedownEvent(e,I,m),onDblclick:e=>re.handleColResizeDblclickEvent(e,m)}):renderEmptyElement(re)])})};return(0,_vue.watch)(()=>m.tableColumn,d),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=m.fixedType,l=re.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=H,l[e+"scroll"]=E,l[e+"table"]=S,l[e+"colgroup"]=M,l[e+"list"]=O,l[e+"xSpace"]=T,l[e+"repair"]=o,d()})}),(0,_vue.onUnmounted)(()=>{var e=m.fixedType,l=re.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:a}=m;var{mouseConfig:r,showHeaderOverflow:t,spanMethod:n,footerSpanMethod:i}=b,{isGroup:o,isColLoading:d,overflowX:u,scrollXLoad:s,dragCol:c}=C,{visibleColumn:p,fullColumnIdData:v}=y,x=w.value;let h=D.value,g=a,f=!1;return o?g=p:(s&&t&&(n||i||(f=!0)),f&&(d||!l&&u)||(g=p),l&&f&&(g=e||[]),h=[g]),l||o||s&&c&&2<g.length&&(t=v[c.id])&&(n=t._index,i=g[0],d=g[g.length-1],u=v[i.id],p=v[d.id],u)&&p&&(s=u._index,t=p._index,n<s?(g=[c].concat(g),h=[[c].concat(h[0])].concat(h.slice(1))):t<n&&(g=g.concat([c]),h=[h[0].concat([c])].concat(h.slice(1)))),(0,_vue.h)("div",{ref:H,class:["vxe-table--header-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:_},[(0,_vue.h)("div",{ref:E,class:"vxe-table--header-inner-wrapper",onScroll(e){re.triggerHeaderScrollEvent(e,l)}},[l?renderEmptyElement(re):(0,_vue.h)("div",{ref:T,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:S,class:"vxe-table--header",xid:_,cellspacing:0,cellpadding:0,border:0,xvm:f?"1":null},[(0,_vue.h)("colgroup",{ref:M},g.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("thead",{ref:O},((r,t,e)=>{let n=m.fixedType,{headerRowClassName:i,headerRowStyle:o}=b;return e.map((e,l)=>{var a={$table:re,$rowIndex:l,fixed:n,type:renderType};return(0,_vue.h)("tr",{key:l,class:["vxe-header--row",i?_xeUtils.default.isFunction(i)?i(a):i:""],style:o?_xeUtils.default.isFunction(o)?o(a):o:null},I(r,t,e,l))})})(o,f,h))]),r&&x.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(re)])])}}});
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,renderType="header";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(f){let ue=(0,_vue.inject)("$xeTable",{}),{xID:_,props:b,reactData:C,internalData:w}=ue,{computeColumnOpts:a,computeColumnDragOpts:r,computeCellOpts:t,computeMouseOpts:y,computeHeaderCellOpts:n,computeDefaultRowHeight:i,computeVirtualXOpts:o}=ue.getComputeMaps(),D=(0,_vue.ref)([]),H=(0,_vue.ref)(),E=(0,_vue.ref)(),S=(0,_vue.ref)(),M=(0,_vue.ref)(),O=(0,_vue.ref)(),T=(0,_vue.ref)(),d=(0,_vue.ref)(),u=()=>{var e=b.showCustomHeader,{collectColumn:l,visibleColumn:a}=w,r=f.tableGroupColumn,t=C.isGroup;let n=t?(0,_util.convertHeaderColumnToRows)(r):[],i=[];e&&1<n.length&&(i=(0,_util.convertHeaderToGridRows)(n),n=i),D.value=n,ue.dispatchEvent("columns-change",{visibleColgroups:i,collectColumn:l,visibleColumn:a},null)},I=(E,S,e,M,O)=>{let T=ue.xeGrid,I=ue.xeGantt,k=f.fixedType,{resizable:R,columnKey:U,showCustomHeader:$,headerCellClassName:z,headerCellStyle:q,showHeaderOverflow:A,headerAlign:F,align:G,mouseConfig:X}=b,{currentColumn:j,dragCol:L,scrollXLoad:N,scrollYLoad:V,overflowX:W,mergeHeadFlag:B,tableColumn:K}=C,{fullColumnIdData:P,scrollXStore:Y,mergeHeaderList:J,mergeHeaderCellMaps:Q}=w,Z=o.value,ee=a.value,le=r.value,ae=t.value;var l=i.value;let re=n.value,te=(0,_util.getCalcHeight)(re.height)||l,{disabledMethod:ne,isCrossDrag:oe,isPeerDrag:de}=le,ie=M===e.length-1;return O.map((e,l)=>{var{type:a,showHeaderOverflow:r,headerAlign:t,align:n,filters:i,headerClassName:o,editRender:d,cellRender:u}=e,s=e.id,c=P[s]||{},d=d||u,u=d?renderer.get(d.name):null,d=e.children&&e.children.length,p=W&&!d&&(k?e.fixed!==k:!!e.fixed),v=(_xeUtils.default.isBoolean(re.padding)?re:ae).padding,r=_xeUtils.default.eqNull(r)?A:r,t=t||(u?u.tableHeaderCellAlign:"")||F||n||(u?u.tableCellAlign:"")||G,n="ellipsis"===r,u="title"===r,r=!0===r||"tooltip"===r,x=u||r||n;let h=!1,g=null;i&&(g=i[0],h=i.some(e=>e.checked));var m=c.index,c=c._index;let f={$table:ue,$grid:T,$gantt:I,$rowIndex:M,column:e,columnIndex:m,$columnIndex:l,_columnIndex:c,firstFilterOption:g,fixed:k,type:renderType,isHidden:p,hasFilter:h};m={colid:s};let _=!1;if($||(m.colspan=1<e.colSpan?e.colSpan:null,m.rowspan=1<e.rowSpan?e.rowSpan:null),B&&J.length&&($||ie)){var b=Q[M+":"+($?l:c)];if(b){var{rowspan:b,colspan:C}=b;if(!b||!C)return null;1<b&&(_=!0,m.rowspan=b),1<C&&(_=!0,m.colspan=C)}}b={onClick:e=>ue.triggerHeaderCellClickEvent(e,f),onDblclick:e=>ue.triggerHeaderCellDblclickEvent(e,f)},C=ee.drag&&"cell"===le.trigger;let w=!1;C&&(w=!(!ne||!ne(f))),(X||C)&&(b.onMousedown=e=>ue.triggerHeaderCellMousedownEvent(e,f)),ee.drag&&(b.onDragstart=ue.handleHeaderCellDragDragstartEvent,b.onDragend=ue.handleHeaderCellDragDragendEvent,b.onDragover=ue.handleHeaderCellDragDragoverEvent,C)&&(b.onMouseup=ue.handleHeaderCellDragMouseupEvent);var C=l===O.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:ee.resizable||R,D=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let H=!1;!S||!W||E||_||L&&L.id===s||N&&10<K.length&&!e.fixed&&!Z.immediate&&(c<Y.visibleStartIndex-Y.preloadSize||c>Y.visibleEndIndex+Y.preloadSize)&&(H=!0);c={};return x?c.height=te+"px":c.minHeight=te+"px",(0,_vue.h)("th",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-header--column",s,p?"fixed--hidden":"fixed--visible",{["col--"+t]:t,["col--"+a]:a,"col--last":C,"col--fixed":e.fixed,"col--group":d,"col--ellipsis":x,"fixed--width":!D,"is--padding":v,"is--sortable":e.sortable,"col--filter":!!i,"is--filter-active":h,"is--drag-active":ee.drag&&!e.fixed&&!w&&(oe||de||!e.parentId),"is--drag-disabled":ee.drag&&w,"col--current":j===e},o?_xeUtils.default.isFunction(o)?o(f):o:"",z?_xeUtils.default.isFunction(z)?z(f):z:""],style:q?_xeUtils.default.isFunction(q)?q(f):q:null},m),b),{key:$?""+s+l:U||N||V||ee.useKey||ee.drag||d?s:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":r,"c--ellipsis":n}],style:c},H||S&&p?[]:[(0,_vue.h)("div",{colid:s,class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(f))]),p||!y||$&&!ie?renderEmptyElement(ue):(0,_vue.h)("div",{class:"vxe-cell--col-resizable",onMousedown:e=>ue.handleColResizeMousedownEvent(e,k,f),onDblclick:e=>ue.handleColResizeDblclickEvent(e,f)})])})};return(0,_vue.watch)(()=>f.tableColumn,u),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=f.fixedType,l=ue.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=H,l[e+"scroll"]=E,l[e+"table"]=S,l[e+"colgroup"]=M,l[e+"list"]=O,l[e+"xSpace"]=T,l[e+"repair"]=d,u()})}),(0,_vue.onUnmounted)(()=>{var e=f.fixedType,l=ue.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:a}=f;var{mouseConfig:r,showHeaderOverflow:t,spanMethod:n,footerSpanMethod:i}=b,{isGroup:o,isColLoading:d,overflowX:u,scrollXLoad:s,dragCol:c}=C,{visibleColumn:p,fullColumnIdData:v}=w,x=y.value;let h=D.value||[],g=a,m=!1;return o?g=p:(s&&t&&(n||i||(m=!0)),m&&(d||!l&&u)||(g=p),l&&m&&(g=e||[]),h=[g]),l||o||s&&c&&2<g.length&&(t=v[c.id])&&(n=t._index,i=g[0],d=g[g.length-1],u=v[i.id],p=v[d.id],u)&&p&&(s=u._index,t=p._index,n<s?(g=[c].concat(g),h=[[c].concat(h[0])].concat(h.slice(1))):t<n&&(g=g.concat([c]),h=[h[0].concat([c])].concat(h.slice(1)))),(0,_vue.h)("div",{ref:H,class:["vxe-table--header-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:_},[(0,_vue.h)("div",{ref:E,class:"vxe-table--header-inner-wrapper",onScroll(e){ue.triggerHeaderScrollEvent(e,l)}},[l?renderEmptyElement(ue):(0,_vue.h)("div",{ref:T,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:S,class:"vxe-table--header",xid:_,cellspacing:0,cellpadding:0,border:0,xvm:m?"1":null},[(0,_vue.h)("colgroup",{ref:M},g.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("thead",{ref:O},((r,t,n)=>{let i=f.fixedType,{headerRowClassName:o,headerRowStyle:d}=b;return n.map((e,l)=>{var a={$table:ue,$rowIndex:l,fixed:i,type:renderType};return(0,_vue.h)("tr",{key:l,class:["vxe-header--row",o?_xeUtils.default.isFunction(o)?o(a):o:""],style:d?_xeUtils.default.isFunction(d)?d(a):d:null},I(r,t,n,l,e))})})(o,m,h))]),r&&x.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(ue)])])}}});
@@ -18,7 +18,7 @@ const tableProps = exports.tableProps = {
18
18
  // 表格的最小高度
19
19
  minHeight: {
20
20
  type: [Number, String],
21
- default: () => getConfig().table.minHeight
21
+ default: () => null
22
22
  },
23
23
  // 表格的最大高度
24
24
  maxHeight: [Number, String],
@@ -137,9 +137,17 @@ const tableProps = exports.tableProps = {
137
137
  headerRowStyle: [Object, Function],
138
138
  // 给表尾行附加样式
139
139
  footerRowStyle: [Object, Function],
140
- // 合并指定单元格
140
+ // 用于分组表头,显示为自定义列头,配合 mergeHeaderCells 灵活实现自定义合并
141
+ showCustomHeader: {
142
+ type: Boolean,
143
+ default: () => getConfig().table.showCustomHeader
144
+ },
145
+ // 临时合并指定的表头单元格
146
+ mergeHeaderCells: Array,
147
+ // 临时合并指定的单元格
141
148
  mergeCells: Array,
142
- // 合并指定的表尾
149
+ // 临时合并指定的表尾单元格
150
+ mergeFooterCells: Array,
143
151
  mergeFooterItems: Array,
144
152
  // 自定义合并行或列的方法
145
153
  spanMethod: Function,
@@ -1 +1 @@
1
- Object.defineProperty(exports,"__esModule",{value:!0}),exports.tableProps=void 0;var _ui=require("../../ui");let getConfig=_ui.VxeUI.getConfig,tableProps=exports.tableProps={id:[String,Function],data:Array,height:[Number,String],minHeight:{type:[Number,String],default:()=>getConfig().table.minHeight},maxHeight:[Number,String],resizable:{type:Boolean,default:()=>getConfig().table.resizable},stripe:{type:Boolean,default:()=>getConfig().table.stripe},border:{type:[Boolean,String],default:()=>getConfig().table.border},padding:{type:Boolean,default:null},round:{type:Boolean,default:()=>getConfig().table.round},size:{type:String,default:()=>getConfig().table.size||getConfig().size},fit:{type:Boolean,default:()=>getConfig().table.fit},loading:Boolean,align:{type:String,default:()=>getConfig().table.align},headerAlign:{type:String,default:()=>getConfig().table.headerAlign},footerAlign:{type:String,default:()=>getConfig().table.footerAlign},showHeader:{type:Boolean,default:()=>getConfig().table.showHeader},highlightCurrentRow:{type:Boolean,default:()=>getConfig().table.highlightCurrentRow},highlightHoverRow:{type:Boolean,default:()=>getConfig().table.highlightHoverRow},highlightCurrentColumn:{type:Boolean,default:()=>getConfig().table.highlightCurrentColumn},highlightHoverColumn:{type:Boolean,default:()=>getConfig().table.highlightHoverColumn},highlightCell:Boolean,showFooter:Boolean,footerData:Array,footerMethod:Function,rowClassName:[String,Function],cellClassName:[String,Function],headerRowClassName:[String,Function],headerCellClassName:[String,Function],footerRowClassName:[String,Function],footerCellClassName:[String,Function],cellStyle:[Object,Function],headerCellStyle:[Object,Function],footerCellStyle:[Object,Function],rowStyle:[Object,Function],headerRowStyle:[Object,Function],footerRowStyle:[Object,Function],mergeCells:Array,mergeFooterItems:Array,spanMethod:Function,footerSpanMethod:Function,showOverflow:{type:[Boolean,String],default:()=>getConfig().table.showOverflow},showHeaderOverflow:{type:[Boolean,String],default:()=>getConfig().table.showHeaderOverflow},showFooterOverflow:{type:[Boolean,String],default:()=>getConfig().table.showFooterOverflow},columnKey:Boolean,rowKey:Boolean,rowId:{type:String,default:()=>getConfig().table.rowId},zIndex:Number,emptyText:{type:String,default:()=>getConfig().table.emptyText},keepSource:{type:Boolean,default:()=>getConfig().table.keepSource},autoResize:{type:Boolean,default:()=>getConfig().table.autoResize},syncResize:[Boolean,String,Number],resizeConfig:Object,columnConfig:Object,currentColumnConfig:Object,cellConfig:Object,headerCellConfig:Object,footerCellConfig:Object,rowConfig:Object,aggregateConfig:Object,rowGroupConfig:Object,currentRowConfig:Object,dragConfig:Object,rowDragConfig:Object,columnDragConfig:Object,resizableConfig:Object,seqConfig:Object,sortConfig:Object,filterConfig:Object,radioConfig:Object,checkboxConfig:Object,tooltipConfig:Object,exportConfig:Object,importConfig:Object,printConfig:Object,expandConfig:Object,treeConfig:Object,menuConfig:Object,mouseConfig:Object,areaConfig:Object,keyboardConfig:Object,clipConfig:Object,fnrConfig:Object,editConfig:Object,validConfig:Object,editRules:Object,loadingConfig:Object,emptyRender:Object,customConfig:Object,scrollX:Object,scrollY:Object,virtualXConfig:Object,virtualYConfig:Object,scrollbarConfig:Object,animat:{type:Boolean,default:()=>getConfig().table.animat},delayHover:{type:Number,default:()=>getConfig().table.delayHover},params:Object};
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.tableProps=void 0;var _ui=require("../../ui");let getConfig=_ui.VxeUI.getConfig,tableProps=exports.tableProps={id:[String,Function],data:Array,height:[Number,String],minHeight:{type:[Number,String],default:()=>null},maxHeight:[Number,String],resizable:{type:Boolean,default:()=>getConfig().table.resizable},stripe:{type:Boolean,default:()=>getConfig().table.stripe},border:{type:[Boolean,String],default:()=>getConfig().table.border},padding:{type:Boolean,default:null},round:{type:Boolean,default:()=>getConfig().table.round},size:{type:String,default:()=>getConfig().table.size||getConfig().size},fit:{type:Boolean,default:()=>getConfig().table.fit},loading:Boolean,align:{type:String,default:()=>getConfig().table.align},headerAlign:{type:String,default:()=>getConfig().table.headerAlign},footerAlign:{type:String,default:()=>getConfig().table.footerAlign},showHeader:{type:Boolean,default:()=>getConfig().table.showHeader},highlightCurrentRow:{type:Boolean,default:()=>getConfig().table.highlightCurrentRow},highlightHoverRow:{type:Boolean,default:()=>getConfig().table.highlightHoverRow},highlightCurrentColumn:{type:Boolean,default:()=>getConfig().table.highlightCurrentColumn},highlightHoverColumn:{type:Boolean,default:()=>getConfig().table.highlightHoverColumn},highlightCell:Boolean,showFooter:Boolean,footerData:Array,footerMethod:Function,rowClassName:[String,Function],cellClassName:[String,Function],headerRowClassName:[String,Function],headerCellClassName:[String,Function],footerRowClassName:[String,Function],footerCellClassName:[String,Function],cellStyle:[Object,Function],headerCellStyle:[Object,Function],footerCellStyle:[Object,Function],rowStyle:[Object,Function],headerRowStyle:[Object,Function],footerRowStyle:[Object,Function],showCustomHeader:{type:Boolean,default:()=>getConfig().table.showCustomHeader},mergeHeaderCells:Array,mergeCells:Array,mergeFooterCells:Array,mergeFooterItems:Array,spanMethod:Function,footerSpanMethod:Function,showOverflow:{type:[Boolean,String],default:()=>getConfig().table.showOverflow},showHeaderOverflow:{type:[Boolean,String],default:()=>getConfig().table.showHeaderOverflow},showFooterOverflow:{type:[Boolean,String],default:()=>getConfig().table.showFooterOverflow},columnKey:Boolean,rowKey:Boolean,rowId:{type:String,default:()=>getConfig().table.rowId},zIndex:Number,emptyText:{type:String,default:()=>getConfig().table.emptyText},keepSource:{type:Boolean,default:()=>getConfig().table.keepSource},autoResize:{type:Boolean,default:()=>getConfig().table.autoResize},syncResize:[Boolean,String,Number],resizeConfig:Object,columnConfig:Object,currentColumnConfig:Object,cellConfig:Object,headerCellConfig:Object,footerCellConfig:Object,rowConfig:Object,aggregateConfig:Object,rowGroupConfig:Object,currentRowConfig:Object,dragConfig:Object,rowDragConfig:Object,columnDragConfig:Object,resizableConfig:Object,seqConfig:Object,sortConfig:Object,filterConfig:Object,radioConfig:Object,checkboxConfig:Object,tooltipConfig:Object,exportConfig:Object,importConfig:Object,printConfig:Object,expandConfig:Object,treeConfig:Object,menuConfig:Object,mouseConfig:Object,areaConfig:Object,keyboardConfig:Object,clipConfig:Object,fnrConfig:Object,editConfig:Object,validConfig:Object,editRules:Object,loadingConfig:Object,emptyRender:Object,customConfig:Object,scrollX:Object,scrollY:Object,virtualXConfig:Object,virtualYConfig:Object,scrollbarConfig:Object,animat:{type:Boolean,default:()=>getConfig().table.animat},delayHover:{type:Number,default:()=>getConfig().table.delayHover},params:Object};
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.crossTableDragRowInfo = void 0;
7
+ exports.getCrossTableDragRowInfo = getCrossTableDragRowInfo;
8
+ var _vue = require("vue");
9
+ // 跨表拖拽
10
+ const crossTableDragRowInfo = exports.crossTableDragRowInfo = (0, _vue.reactive)({
11
+ row: null
12
+ });
13
+ function getCrossTableDragRowInfo() {
14
+ return crossTableDragRowInfo;
15
+ }
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,"__esModule",{value:!0}),exports.crossTableDragRowInfo=void 0,exports.getCrossTableDragRowInfo=getCrossTableDragRowInfo;var _vue=require("vue");let crossTableDragRowInfo=exports.crossTableDragRowInfo=(0,_vue.reactive)({row:null});function getCrossTableDragRowInfo(){return crossTableDragRowInfo}