vxe-table 4.7.66 → 4.7.68

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 (53) hide show
  1. package/es/grid/style.css +1 -0
  2. package/es/grid/style.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/src/body.js +5 -4
  6. package/es/table/src/header.js +3 -2
  7. package/es/table/src/table.js +33 -27
  8. package/es/table/style.css +12 -0
  9. package/es/table/style.min.css +1 -1
  10. package/es/ui/index.js +2 -2
  11. package/es/ui/src/log.js +1 -1
  12. package/es/vxe-grid/style.css +1 -0
  13. package/es/vxe-grid/style.min.css +1 -1
  14. package/es/vxe-table/style.css +12 -0
  15. package/es/vxe-table/style.min.css +1 -1
  16. package/lib/grid/style/style.css +1 -0
  17. package/lib/grid/style/style.min.css +1 -1
  18. package/lib/index.umd.js +42 -34
  19. package/lib/index.umd.min.js +1 -1
  20. package/lib/style.css +1 -1
  21. package/lib/style.min.css +1 -1
  22. package/lib/table/src/body.js +5 -4
  23. package/lib/table/src/body.min.js +1 -1
  24. package/lib/table/src/header.js +4 -3
  25. package/lib/table/src/header.min.js +1 -1
  26. package/lib/table/src/table.js +30 -24
  27. package/lib/table/src/table.min.js +1 -1
  28. package/lib/table/style/style.css +12 -0
  29. package/lib/table/style/style.min.css +1 -1
  30. package/lib/ui/index.js +2 -2
  31. package/lib/ui/index.min.js +1 -1
  32. package/lib/ui/src/log.js +1 -1
  33. package/lib/ui/src/log.min.js +1 -1
  34. package/lib/vxe-grid/style/style.css +1 -0
  35. package/lib/vxe-grid/style/style.min.css +1 -1
  36. package/lib/vxe-table/style/style.css +12 -0
  37. package/lib/vxe-table/style/style.min.css +1 -1
  38. package/package.json +2 -2
  39. package/packages/table/src/body.ts +5 -4
  40. package/packages/table/src/header.ts +4 -3
  41. package/packages/table/src/table.ts +31 -24
  42. package/styles/components/grid.scss +1 -0
  43. package/styles/components/table-module/custom.scss +1 -0
  44. package/styles/components/table-module/export.scss +1 -0
  45. package/styles/components/table-module/filter.scss +1 -0
  46. package/styles/components/table.scss +9 -0
  47. package/styles/theme/base.scss +1 -0
  48. /package/es/{iconfont.1724145396059.ttf → iconfont.1724292790389.ttf} +0 -0
  49. /package/es/{iconfont.1724145396059.woff → iconfont.1724292790389.woff} +0 -0
  50. /package/es/{iconfont.1724145396059.woff2 → iconfont.1724292790389.woff2} +0 -0
  51. /package/lib/{iconfont.1724145396059.ttf → iconfont.1724292790389.ttf} +0 -0
  52. /package/lib/{iconfont.1724145396059.woff → iconfont.1724292790389.woff} +0 -0
  53. /package/lib/{iconfont.1724145396059.woff2 → iconfont.1724292790389.woff2} +0 -0
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const renderType="header";var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(W){const k=(0,_vue.inject)("$xeTable",{}),{xID:u,props:d,reactData:H,internalData:I}=k,{refElem:M,refTableBody:z,refLeftContainer:S,refRightContainer:$,refCellResizeBar:D}=k.getRefMaps(),c=k.getComputeMaps()["computeColumnOpts"],f=(0,_vue.ref)([]),O=(0,_vue.ref)(),p=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),h=(0,_vue.ref)(),U=(0,_vue.ref)(),t=()=>{var e=H["isGroup"];f.value=e?(0,_util.convertHeaderColumnToRows)(W.tableGroupColumn):[]},q=(e,t)=>{const r=t["column"],a=W["fixedType"];var l=z.value;const o=S.value,n=$.value,i=D.value,s=e["clientX"];var u=O.value,d=e.target;const c=t.cell=d.parentNode;let f=0;const p=l.$el;l=(0,_dom.getOffsetPos)(d,u),u=d.clientWidth,d=Math.floor(u/2);const v=(0,_util.getColReMinWidth)(t)-d;let m=l.left-c.clientWidth+u+v,h=l.left+d;const x=document.onmousemove,_=document.onmouseup,g="left"===a,b="right"===a,C=M.value;let y=0;if(g||b){var w=g?"nextElementSibling":"previousElementSibling";let e=c[w];for(;e&&!(0,_dom.hasClass)(e,"fixed--hidden");)(0,_dom.hasClass)(e,"col--group")||(y+=e.offsetWidth),e=e[w];b&&n&&(h=n.offsetLeft+y)}function T(e){e.stopPropagation(),e.preventDefault(),e=e.clientX-s;let l=h+e;e=a?0:p.scrollLeft,g?l=Math.min(l,(n?n.offsetLeft:p.clientWidth)-y-v):b?(m=(o?o.clientWidth:0)+y+v,l=Math.min(l,h+c.clientWidth-v)):m=Math.max(p.scrollLeft,m),f=Math.max(l,m),i.style.left=f-e+"px"}H._isResize=!0,(0,_dom.addClass)(C,"drag--resize"),i.style.display="block",document.onmousemove=T,document.onmouseup=function(e){document.onmousemove=x,document.onmouseup=_;const l=r.renderWidth+(b?h-f:f-h);r.resizeWidth=l,i.style.display="none",H._isResize=!1,I._lastResizeTime=Date.now(),k.analyColumnWidth(),k.recalculate(!0).then(()=>{k.saveCustomStore("update:visible"),k.updateCellAreas(),k.dispatchEvent("resizable-change",Object.assign(Object.assign({},t),{resizeWidth:l}),e),setTimeout(()=>k.recalculate(!0),300)}),(0,_dom.removeClass)(C,"drag--resize")},T(e),k.closeMenu&&k.closeMenu()};(0,_vue.watch)(()=>W.tableColumn,t),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=W["fixedType"],l=k["internalData"],l=l["elemStore"],e=`${e||"main"}-header-`;l[e+"wrapper"]=O,l[e+"table"]=p,l[e+"colgroup"]=v,l[e+"list"]=m,l[e+"xSpace"]=h,l[e+"repair"]=U,t()})}),(0,_vue.onUnmounted)(()=>{var e=W["fixedType"],l=k["internalData"],l=l["elemStore"],e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null});return()=>{const{fixedType:x,fixedColumn:e,tableColumn:l}=W,{resizable:_,border:g,columnKey:b,headerRowClassName:t,headerCellClassName:C,headerRowStyle:r,headerCellStyle:y,showHeaderOverflow:w,headerAlign:T,align:M,mouseConfig:z}=d,{isGroup:a,currentColumn:S,scrollXLoad:$,overflowX:D,scrollbarWidth:o}=H;var n=I["visibleColumn"];const R=c.value;let i=f.value,s=l;return a?s=n:(x&&($||w)&&(s=e),i=[s]),(0,_vue.h)("div",{ref:O,class:["vxe-table--header-wrapper",x?`fixed-${x}--wrapper`:"body--wrapper"],xid:u},[x?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:h,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:p,class:"vxe-table--header",xid:u,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:v},s.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l})).concat(o?[(0,_vue.h)("col",{name:"col_gutter"})]:[])),(0,_vue.h)("thead",{ref:m},i.map((m,h)=>(0,_vue.h)("tr",{class:["vxe-header--row",t?_xeUtils.default.isFunction(t)?t({$table:k,$rowIndex:h,fixed:x,type:renderType}):t:""],style:r?_xeUtils.default.isFunction(r)?r({$table:k,$rowIndex:h,fixed:x,type:renderType}):r:null},m.map((e,l)=>{var{type:t,showHeaderOverflow:r,headerAlign:a,align:o,headerClassName:n}=e,i=e.children&&e.children.length,s=x?e.fixed!==x&&!i:!!e.fixed&&D,r=_xeUtils.default.eqNull(r)?w:r,a=a||o||T||M;let u="ellipsis"===r;o="title"===r,r=!0===r||"tooltip"===r;let d=o||r||u;var c=e.filters&&e.filters.some(e=>e.checked),f=k.getColumnIndex(e),p=k.getVTColumnIndex(e);const v={$table:k,$grid:k.xegrid,$rowIndex:h,column:e,columnIndex:f,$columnIndex:l,_columnIndex:p,fixed:x,type:renderType,isHidden:s,hasFilter:c};f={onClick:e=>k.triggerHeaderCellClickEvent(e,v),onDblclick:e=>k.triggerHeaderCellDblclickEvent(e,v)};return $&&!d&&(u=d=!0),z&&(f.onMousedown=e=>k.triggerHeaderCellMousedownEvent(e,v)),(0,_vue.h)("th",Object.assign(Object.assign({class:["vxe-header--column",e.id,{["col--"+a]:a,["col--"+t]:t,"col--last":l===m.length-1,"col--fixed":e.fixed,"col--group":i,"col--ellipsis":d,"fixed--hidden":s,"is--sortable":e.sortable,"col--filter":!!e.filters,"is--filter-active":c,"col--current":S===e},n?_xeUtils.default.isFunction(n)?n(v):n:"",C?_xeUtils.default.isFunction(C)?C(v):C:""],colid:e.id,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null,style:y?_xeUtils.default.isFunction(y)?y(v):y:null},f),{key:b||R.useKey||i?e.id:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":o,"c--tooltip":r,"c--ellipsis":u}]},e.renderHeader(v)),s||i||!(_xeUtils.default.isBoolean(e.resizable)?e.resizable:R.resizable||_)?null:(0,_vue.h)("div",{class:["vxe-resizable",{"is--line":!g||"none"===g}],onMousedown:e=>q(e,v)})])}).concat(o?[(0,_vue.h)("th",{class:"vxe-header--gutter col--gutter"})]:[]))))]),(0,_vue.h)("div",{ref:U,class:"vxe-table--header-border-line"})])}}});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("./util"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const renderType="header";var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(k){const H=(0,_vue.inject)("$xeTable",{}),{xID:u,props:d,reactData:I,internalData:O}=H,{refElem:M,refTableBody:z,refLeftContainer:S,refRightContainer:$,refCellResizeBar:D}=H.getRefMaps(),c=H.getComputeMaps()["computeColumnOpts"],f=(0,_vue.ref)([]),U=(0,_vue.ref)(),p=(0,_vue.ref)(),v=(0,_vue.ref)(),m=(0,_vue.ref)(),h=(0,_vue.ref)(),x=(0,_vue.ref)(),t=()=>{var e=I["isGroup"];f.value=e?(0,_util.convertHeaderColumnToRows)(k.tableGroupColumn):[]},q=(e,t)=>{const r=t["column"],a=k["fixedType"];var l=z.value;const o=S.value,n=$.value,i=D.value,s=e["clientX"];var u=U.value,d=e.target;const c=t.cell=d.parentNode;let f=0;const p=l.$el;l=(0,_dom.getOffsetPos)(d,u),u=d.clientWidth,d=Math.floor(u/2);const v=(0,_util.getColReMinWidth)(t)-d;let m=l.left-c.clientWidth+u+v,h=l.left+d;const x=document.onmousemove,_=document.onmouseup,g="left"===a,b="right"===a,C=M.value;let y=0;if(g||b){var w=g?"nextElementSibling":"previousElementSibling";let e=c[w];for(;e&&!(0,_dom.hasClass)(e,"fixed--hidden");)(0,_dom.hasClass)(e,"col--group")||(y+=e.offsetWidth),e=e[w];b&&n&&(h=n.offsetLeft+y)}function T(e){e.stopPropagation(),e.preventDefault(),e=e.clientX-s;let l=h+e;e=a?0:p.scrollLeft,g?l=Math.min(l,(n?n.offsetLeft:p.clientWidth)-y-v):b?(m=(o?o.clientWidth:0)+y+v,l=Math.min(l,h+c.clientWidth-v)):m=Math.max(p.scrollLeft,m),f=Math.max(l,m),i.style.left=f-e+"px"}I._isResize=!0,(0,_dom.addClass)(C,"drag--resize"),i.style.display="block",document.onmousemove=T,document.onmouseup=function(e){document.onmousemove=x,document.onmouseup=_;const l=r.renderWidth+(b?h-f:f-h);r.resizeWidth=l,i.style.display="none",I._isResize=!1,O._lastResizeTime=Date.now(),H.analyColumnWidth(),H.recalculate(!0).then(()=>{H.saveCustomStore("update:visible"),H.updateCellAreas(),H.dispatchEvent("resizable-change",Object.assign(Object.assign({},t),{resizeWidth:l}),e),setTimeout(()=>H.recalculate(!0),300)}),(0,_dom.removeClass)(C,"drag--resize")},T(e),H.closeMenu&&H.closeMenu()};(0,_vue.watch)(()=>k.tableColumn,t),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=k["fixedType"],l=H["internalData"],l=l["elemStore"],e=`${e||"main"}-header-`;l[e+"wrapper"]=U,l[e+"table"]=p,l[e+"colgroup"]=v,l[e+"list"]=m,l[e+"xSpace"]=h,l[e+"repair"]=x,t()})}),(0,_vue.onUnmounted)(()=>{var e=k["fixedType"],l=H["internalData"],l=l["elemStore"],e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null});return()=>{const{fixedType:_,fixedColumn:e,tableColumn:l}=k,{resizable:g,border:b,columnKey:C,headerRowClassName:t,headerCellClassName:y,headerRowStyle:r,headerCellStyle:w,showHeaderOverflow:T,headerAlign:M,align:z,mouseConfig:S}=d,{isGroup:a,currentColumn:$,scrollXLoad:D,overflowX:R,scrollbarWidth:o}=I;var n=O["visibleColumn"];const W=c.value;let i=f.value,s=l;return a?s=n:(_&&(D||T)&&(s=e),i=[s]),(0,_vue.h)("div",{ref:U,class:["vxe-table--header-wrapper",_?`fixed-${_}--wrapper`:"body--wrapper"],xid:u},[_?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:h,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:p,class:"vxe-table--header",xid:u,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:v},s.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l})).concat(o?[(0,_vue.h)("col",{name:"col_gutter"})]:[])),(0,_vue.h)("thead",{ref:m},i.map((h,x)=>(0,_vue.h)("tr",{class:["vxe-header--row",t?_xeUtils.default.isFunction(t)?t({$table:H,$rowIndex:x,fixed:_,type:renderType}):t:""],style:r?_xeUtils.default.isFunction(r)?r({$table:H,$rowIndex:x,fixed:_,type:renderType}):r:null},h.map((e,l)=>{var{type:t,showHeaderOverflow:r,headerAlign:a,align:o,headerClassName:n}=e,i=e.id,s=e.children&&e.children.length,u=_?e.fixed!==_&&!s:!!e.fixed&&R,r=_xeUtils.default.eqNull(r)?T:r,a=a||o||M||z;let d="ellipsis"===r;o="title"===r,r=!0===r||"tooltip"===r;let c=o||r||d;var f=e.filters&&e.filters.some(e=>e.checked),p=H.getColumnIndex(e),v=H.getVTColumnIndex(e);const m={$table:H,$grid:H.xegrid,$rowIndex:x,column:e,columnIndex:p,$columnIndex:l,_columnIndex:v,fixed:_,type:renderType,isHidden:u,hasFilter:f};p={onClick:e=>H.triggerHeaderCellClickEvent(e,m),onDblclick:e=>H.triggerHeaderCellDblclickEvent(e,m)};return D&&!c&&(d=c=!0),S&&(p.onMousedown=e=>H.triggerHeaderCellMousedownEvent(e,m)),(0,_vue.h)("th",Object.assign(Object.assign({class:["vxe-header--column",i,{["col--"+a]:a,["col--"+t]:t,"col--last":l===h.length-1,"col--fixed":e.fixed,"col--group":s,"col--ellipsis":c,"fixed--hidden":u,"is--sortable":e.sortable,"col--filter":!!e.filters,"is--filter-active":f,"col--current":$===e},n?_xeUtils.default.isFunction(n)?n(m):n:"",y?_xeUtils.default.isFunction(y)?y(m):y:""],colid:i,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null,style:w?_xeUtils.default.isFunction(w)?w(m):w:null},p),{key:C||W.useKey||s?i:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":o,"c--tooltip":r,"c--ellipsis":d}]},e.renderHeader(m)),u||s||!(_xeUtils.default.isBoolean(e.resizable)?e.resizable:W.resizable||g)?null:(0,_vue.h)("div",{class:["vxe-resizable",{"is--line":!b||"none"===b}],onMousedown:e=>q(e,m)})])}).concat(o?[(0,_vue.h)("th",{class:"vxe-header--gutter col--gutter"})]:[]))))]),(0,_vue.h)("div",{ref:x,class:"vxe-table--header-border-line"})])}}});
@@ -342,6 +342,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
342
342
  fullDataRowIdData: {},
343
343
  fullColumnIdData: {},
344
344
  fullColumnFieldData: {},
345
+ // 列选取状态
346
+ columnStatusMaps: {},
347
+ // 行选取状态
348
+ rowStatusMaps: {},
345
349
  inited: false,
346
350
  tooltipTimeout: null,
347
351
  initStatus: false,
@@ -5729,6 +5733,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
5729
5733
  const operArrow = isLeftArrow || isUpArrow || isRightArrow || isDwArrow;
5730
5734
  const operCtxMenu = isMenu && ctxMenuStore.visible && (isEnter || isSpacebar || operArrow);
5731
5735
  const isEditStatus = (0, _utils.isEnableConf)(editConfig) && actived.column && actived.row;
5736
+ const beforeEditMethod = editOpts.beforeEditMethod || editOpts.activeMethod;
5732
5737
  let params;
5733
5738
  if (operCtxMenu) {
5734
5739
  // 如果配置了右键菜单; 支持方向键操作、回车
@@ -5855,19 +5860,21 @@ var _default = exports.default = (0, _vue.defineComponent)({
5855
5860
  columnIndex: tableMethods.getColumnIndex(selected.column),
5856
5861
  $table: $xeTable
5857
5862
  };
5858
- if (delMethod) {
5859
- delMethod(delPaqrams);
5860
- } else {
5861
- (0, _util.setCellValue)(selected.row, selected.column, null);
5863
+ // 是否被禁用
5864
+ if (!beforeEditMethod || beforeEditMethod(params)) {
5865
+ if (delMethod) {
5866
+ delMethod(delPaqrams);
5867
+ } else {
5868
+ (0, _util.setCellValue)(selected.row, selected.column, null);
5869
+ }
5870
+ // 如果按下 del 键,更新表尾数据
5871
+ tableMethods.updateFooter();
5872
+ $xeTable.dispatchEvent('cell-delete-value', delPaqrams, evnt);
5862
5873
  }
5863
- // 如果按下 del 键,更新表尾数据
5864
- tableMethods.updateFooter();
5865
- $xeTable.dispatchEvent('cell-delete-value', delPaqrams, evnt);
5866
5874
  }
5867
5875
  } else if (hasBackspaceKey && keyboardConfig && keyboardOpts.isBack && (0, _utils.isEnableConf)(editConfig) && (selected.row || selected.column)) {
5868
5876
  if (!isEditStatus) {
5869
5877
  const {
5870
- delMethod,
5871
5878
  backMethod
5872
5879
  } = keyboardOpts;
5873
5880
  // 如果是删除键
@@ -5879,23 +5886,22 @@ var _default = exports.default = (0, _vue.defineComponent)({
5879
5886
  columnIndex: tableMethods.getColumnIndex(selected.column),
5880
5887
  $table: $xeTable
5881
5888
  };
5882
- if (delMethod) {
5883
- delMethod(delPaqrams);
5884
- } else {
5885
- (0, _util.setCellValue)(selected.row, selected.column, null);
5886
- }
5887
- if (backMethod) {
5888
- backMethod({
5889
- row: selected.row,
5890
- rowIndex: tableMethods.getRowIndex(selected.row),
5891
- column: selected.column,
5892
- columnIndex: tableMethods.getColumnIndex(selected.column),
5893
- $table: $xeTable
5894
- });
5895
- } else {
5896
- $xeTable.handleActived(selected.args, evnt);
5889
+ // 是否被禁用
5890
+ if (!beforeEditMethod || beforeEditMethod(params)) {
5891
+ if (backMethod) {
5892
+ backMethod({
5893
+ row: selected.row,
5894
+ rowIndex: tableMethods.getRowIndex(selected.row),
5895
+ column: selected.column,
5896
+ columnIndex: tableMethods.getColumnIndex(selected.column),
5897
+ $table: $xeTable
5898
+ });
5899
+ } else {
5900
+ (0, _util.setCellValue)(selected.row, selected.column, null);
5901
+ $xeTable.handleActived(selected.args, evnt);
5902
+ }
5903
+ $xeTable.dispatchEvent('cell-backspace-value', delPaqrams, evnt);
5897
5904
  }
5898
- $xeTable.dispatchEvent('cell-backspace-value', delPaqrams, evnt);
5899
5905
  }
5900
5906
  }
5901
5907
  } else if (hasBackspaceKey && keyboardConfig && treeConfig && keyboardOpts.isBack && (rowOpts.isCurrent || highlightCurrentRow) && currentRow) {