vxe-table 4.9.26 → 4.9.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/grid/src/grid.js +7 -1
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/edit/hook.js +10 -3
- package/es/table/module/keyboard/hook.js +2 -31
- package/es/table/src/body.js +16 -4
- package/es/table/src/cell.js +21 -21
- package/es/table/src/header.js +21 -5
- package/es/table/src/table.js +106 -39
- package/es/table/style.css +36 -0
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +36 -0
- package/es/vxe-table/style.min.css +1 -1
- package/lib/grid/src/grid.js +7 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +207 -110
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/edit/hook.js +10 -4
- package/lib/table/module/edit/hook.min.js +1 -1
- package/lib/table/module/keyboard/hook.js +1 -36
- package/lib/table/module/keyboard/hook.min.js +1 -1
- package/lib/table/src/body.js +18 -4
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +27 -19
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/header.js +23 -7
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/table.js +122 -39
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +36 -0
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +36 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/grid/src/grid.ts +8 -1
- package/packages/table/module/edit/hook.ts +10 -3
- package/packages/table/module/keyboard/hook.ts +2 -31
- package/packages/table/src/body.ts +16 -4
- package/packages/table/src/cell.ts +23 -15
- package/packages/table/src/header.ts +20 -6
- package/packages/table/src/table.ts +107 -42
- package/styles/components/table.scss +36 -0
- /package/es/{iconfont.1734150615727.ttf → iconfont.1734331313492.ttf} +0 -0
- /package/es/{iconfont.1734150615727.woff → iconfont.1734331313492.woff} +0 -0
- /package/es/{iconfont.1734150615727.woff2 → iconfont.1734331313492.woff2} +0 -0
- /package/lib/{iconfont.1734150615727.ttf → iconfont.1734331313492.ttf} +0 -0
- /package/lib/{iconfont.1734150615727.woff → iconfont.1734331313492.woff} +0 -0
- /package/lib/{iconfont.1734150615727.woff2 → iconfont.1734331313492.woff2} +0 -0
|
@@ -427,42 +427,7 @@ hooks.add('tableKeyboardModule', {
|
|
|
427
427
|
$xeTable.handleSelected(params, evnt);
|
|
428
428
|
});
|
|
429
429
|
},
|
|
430
|
-
|
|
431
|
-
* 表头单元格按下事件
|
|
432
|
-
*/
|
|
433
|
-
triggerHeaderCellMousedownEvent(evnt, params) {
|
|
434
|
-
const {
|
|
435
|
-
mouseConfig
|
|
436
|
-
} = props;
|
|
437
|
-
const mouseOpts = computeMouseOpts.value;
|
|
438
|
-
if (mouseConfig && mouseOpts.area && $xeTable.handleHeaderCellAreaEvent) {
|
|
439
|
-
const cell = evnt.currentTarget;
|
|
440
|
-
const triggerSort = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--sort').flag;
|
|
441
|
-
const triggerFilter = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--filter').flag;
|
|
442
|
-
$xeTable.handleHeaderCellAreaEvent(evnt, Object.assign({
|
|
443
|
-
cell,
|
|
444
|
-
triggerSort,
|
|
445
|
-
triggerFilter
|
|
446
|
-
}, params));
|
|
447
|
-
}
|
|
448
|
-
$xeTable.focus();
|
|
449
|
-
if ($xeTable.closeMenu) {
|
|
450
|
-
$xeTable.closeMenu();
|
|
451
|
-
}
|
|
452
|
-
},
|
|
453
|
-
/**
|
|
454
|
-
* 单元格按下事件
|
|
455
|
-
*/
|
|
456
|
-
triggerCellMousedownEvent(evnt, params) {
|
|
457
|
-
const cell = evnt.currentTarget;
|
|
458
|
-
params.cell = cell;
|
|
459
|
-
handleCellMousedownEvent(evnt, params);
|
|
460
|
-
$xeTable.focus();
|
|
461
|
-
$xeTable.closeFilter();
|
|
462
|
-
if ($xeTable.closeMenu) {
|
|
463
|
-
$xeTable.closeMenu();
|
|
464
|
-
}
|
|
465
|
-
}
|
|
430
|
+
handleCellMousedownEvent
|
|
466
431
|
};
|
|
467
432
|
return keyboardMethods;
|
|
468
433
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const hooks=_ui.VxeUI["hooks"];function getTargetOffset(e,t){let o=0,l=0;var n,r,
|
|
1
|
+
"use strict";var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_util=require("../../src/util"),_dom=require("../../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const hooks=_ui.VxeUI["hooks"];function getTargetOffset(e,t){let o=0,l=0;var n,r,c=!_dom.browse.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(c&&(n=getComputedStyle(e),o-=_xeUtils.default.toNumber(n.paddingTop),l-=_xeUtils.default.toNumber(n.paddingLeft));e&&e!==t;)o+=e.offsetTop,l+=e.offsetLeft,e=e.offsetParent,c&&(r=getComputedStyle(e),o-=_xeUtils.default.toNumber(r.paddingTop),l-=_xeUtils.default.toNumber(r.paddingLeft));return{offsetTop:o,offsetLeft:l}}hooks.add("tableKeyboardModule",{setupTable(E){const{props:g,reactData:S,internalData:D}=E,c=E.getRefMaps()["refElem"],{computeEditOpts:m,computeCheckboxOpts:s,computeMouseOpts:u,computeTreeOpts:i}=E.getComputeMaps();const d=(e,i)=>{var{column:t,cell:o}=i;if("checkbox"===t.type){const n=c.value;var l=D["elemStore"];const d=e.clientX,g=e.clientY,m=(0,_util.getRefElem)(l[`${t.fixed||"main"}-body-wrapper`]||l["main-body-wrapper"]);if(m){const f=m.querySelector(".vxe-table--checkbox-range"),r=document.onmousemove,h=document.onmouseup,p=o.parentElement,x=E.getCheckboxRecords();let a=[];const v=1;t=getTargetOffset(e.target,m);const w=t.offsetTop+e.offsetY,b=t.offsetLeft+e.offsetX,C=m.scrollTop,T=p.offsetHeight,R=p.getBoundingClientRect(),I=g-R.y;let c=null,s=!1,u=1;const _=(e,t)=>{E.dispatchEvent("checkbox-range-"+e,{records:E.getCheckboxRecords(),reserves:E.getCheckboxReserveRecords()},t)},k=e=>{var{clientX:t,clientY:o}=e,t=t-d,o=o-g+(m.scrollTop-C);let l=Math.abs(o),n=Math.abs(t),r=w,c=b;o<v?(r+=o)<v&&(r=v,l=w):l=Math.min(l,m.scrollHeight-w-v),t<v?(c+=t,n>b&&(c=v,n=b)):n=Math.min(n,m.clientWidth-b-v),f.style.height=l+"px",f.style.width=n+"px",f.style.left=c+"px",f.style.top=r+"px",f.style.display="block";t=function(e,t,o,l,n,r){let c=0,a=[],s=0;var u=0<r,i=S["scrollYLoad"],{afterFullData:d,scrollYStore:g}=D;if(i){s=u?n+r:l.height-n+Math.abs(r);i=E.getVTRowIndex(t.row);a=u?d.slice(i,i+Math.ceil(s/g.rowHeight)):d.slice(i-Math.floor(s/g.rowHeight),i+1)}else{s=u?e.clientY-l.y:l.y-e.clientY+l.height;for(var m=u?"next":"previous";o&&c<s;){var f=E.getRowNode(o);f&&(a.push(f.item),c+=o.offsetHeight,o=o[m+"ElementSibling"])}}return a}(e,i,p,R,I,o<v?-l:l);10<l&&t.length!==a.length&&(a=t,e.ctrlKey?t.forEach(e=>{E.handleBatchSelectRows([e],-1===x.indexOf(e))}):(E.setAllCheckboxRow(!1),E.handleCheckedCheckboxRow(t,!0,!1)),_("change",e))},y=()=>{clearTimeout(c),c=null},M=r=>{y(),c=setTimeout(()=>{var e,t,o,l,n;c&&({scrollLeft:e,scrollTop:t,clientHeight:o,scrollHeight:l}=m,n=Math.ceil(50*u/T),s?t+o<l?(E.scrollTo(e,t+n),M(r),k(r)):y():t?(E.scrollTo(e,t-n),M(r),k(r)):y())},50)};(0,_dom.addClass)(n,"drag--range"),document.onmousemove=e=>{e.preventDefault(),e.stopPropagation();var t=e["clientY"],o=(0,_dom.getAbsolutePos)(m)["boundingTop"];t<o?(s=!1,u=o-t,c||M(e)):t>o+m.clientHeight?(s=!0,u=t-o-m.clientHeight,c||M(e)):c&&y(),k(e)},document.onmouseup=e=>{y(),(0,_dom.removeClass)(n,"drag--range"),f.removeAttribute("style"),document.onmousemove=r,document.onmouseup=h,_("end",e)},_("start",e)}}};return{moveTabSelected(e,t,o){var l=g["editConfig"],{afterFullData:n,visibleColumn:r}=D,c=m.value;let a,s,u;const i=Object.assign({},e);var e=E.getVTRowIndex(i.row),d=E.getVTColumnIndex(i.column),t=(o.preventDefault(),t?d<=0?0<e&&(s=e-1,a=n[s],u=r.length-1):u=d-1:d>=r.length-1?e<n.length-1&&(s=e+1,a=n[s],u=0):u=d+1,r[u]);t&&(a?(i.rowIndex=s,i.row=a):i.rowIndex=e,i.columnIndex=u,i.column=t,i.cell=E.getCellElement(i.row,i.column),l?"click"!==c.trigger&&"dblclick"!==c.trigger||("row"===c.mode?E.handleEdit(i,o):E.scrollToRow(i.row,i.column).then(()=>E.handleSelected(i,o))):E.scrollToRow(i.row,i.column).then(()=>E.handleSelected(i,o)))},moveCurrentRow(e,t,o){var l=g["treeConfig"];const n=S["currentRow"];var r=D["afterFullData"],c=i.value,c=c.children||c.childrenField;let a;if(o.preventDefault(),n?l?({index:l,items:c}=_xeUtils.default.findTree(r,e=>e===n,{children:c}),e&&0<l?a=c[l-1]:t&&l<c.length-1&&(a=c[l+1])):(c=E.getVTRowIndex(n),e&&0<c?a=r[c-1]:t&&c<r.length-1&&(a=r[c+1])):a=r[0],a){const s={$table:E,row:a,rowIndex:E.getRowIndex(a),$rowIndex:E.getVMRowIndex(a)};E.scrollToRow(a).then(()=>E.triggerCurrentRowEvent(o,s))}},moveSelected(e,t,o,l,n,r){var{afterFullData:c,visibleColumn:a}=D;const s=Object.assign({},e);var e=E.getVTRowIndex(s.row),u=E.getVTColumnIndex(s.column);r.preventDefault(),o&&0<e?(s.rowIndex=e-1,s.row=c[s.rowIndex]):n&&e<c.length-1?(s.rowIndex=e+1,s.row=c[s.rowIndex]):t&&u?(s.columnIndex=u-1,s.column=a[s.columnIndex]):l&&u<a.length-1&&(s.columnIndex=u+1,s.column=a[s.columnIndex]),E.scrollToRow(s.row,s.column).then(()=>{s.cell=E.getCellElement(s.row,s.column),E.handleSelected(s,r)})},handleCellMousedownEvent:(e,t)=>{var{editConfig:o,checkboxConfig:l,mouseConfig:n}=g,r=s.value,c=u.value,a=m.value;if(n&&c.area&&E.handleMousedownCellAreaEvent)return E.handleMousedownCellAreaEvent(e,t);l&&r.range&&d(e,t),n&&c.selected&&(o&&"cell"!==a.mode||E.handleSelected(t,e))}}}});
|
package/lib/table/src/body.js
CHANGED
|
@@ -68,7 +68,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
68
68
|
computeCellOpts,
|
|
69
69
|
computeValidOpts,
|
|
70
70
|
computeRowOpts,
|
|
71
|
-
computeColumnOpts
|
|
71
|
+
computeColumnOpts,
|
|
72
|
+
computeRowDragOpts
|
|
72
73
|
} = $xeTable.getComputeMaps();
|
|
73
74
|
const refElem = (0, _vue.ref)();
|
|
74
75
|
const refBodyTable = (0, _vue.ref)();
|
|
@@ -205,6 +206,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
205
206
|
const editOpts = computeEditOpts.value;
|
|
206
207
|
const tooltipOpts = computeTooltipOpts.value;
|
|
207
208
|
const rowOpts = computeRowOpts.value;
|
|
209
|
+
const rowDragOpts = computeRowDragOpts.value;
|
|
210
|
+
const {
|
|
211
|
+
disabledMethod: dragDisabledMethod
|
|
212
|
+
} = rowDragOpts;
|
|
208
213
|
const sYOpts = computeSYOpts.value;
|
|
209
214
|
const columnOpts = computeColumnOpts.value;
|
|
210
215
|
const mouseOpts = computeMouseOpts.value;
|
|
@@ -281,6 +286,14 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
281
286
|
data: tableData,
|
|
282
287
|
items
|
|
283
288
|
};
|
|
289
|
+
let isColDragCell = false;
|
|
290
|
+
let isDisabledDrag = false;
|
|
291
|
+
if (rowOpts.drag) {
|
|
292
|
+
isColDragCell = rowDragOpts.trigger === 'row' || column.dragSort && rowDragOpts.trigger === 'cell';
|
|
293
|
+
}
|
|
294
|
+
if (isColDragCell) {
|
|
295
|
+
isDisabledDrag = !!(dragDisabledMethod && dragDisabledMethod(params));
|
|
296
|
+
}
|
|
284
297
|
// hover 进入事件
|
|
285
298
|
if (showTitle || showTooltip || showAllTip || tooltipConfig) {
|
|
286
299
|
tdOns.onMouseenter = evnt => {
|
|
@@ -313,7 +326,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
313
326
|
};
|
|
314
327
|
}
|
|
315
328
|
// 按下事件处理
|
|
316
|
-
if (checkboxOpts.range || mouseConfig) {
|
|
329
|
+
if (isColDragCell || checkboxOpts.range || mouseConfig) {
|
|
317
330
|
tdOns.onMousedown = evnt => {
|
|
318
331
|
$xeTable.triggerCellMousedownEvent(evnt, params);
|
|
319
332
|
};
|
|
@@ -438,6 +451,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
438
451
|
'col--edit': isEdit,
|
|
439
452
|
'col--ellipsis': hasEllipsis,
|
|
440
453
|
'fixed--hidden': fixedHiddenColumn,
|
|
454
|
+
'is--drag-cell': isColDragCell,
|
|
455
|
+
'is--drag-disabled': isDisabledDrag,
|
|
441
456
|
'col--dirty': isDirty,
|
|
442
457
|
'col--active': editConfig && isEdit && actived.row === row && (actived.column === column || editOpts.mode === 'row'),
|
|
443
458
|
'col--valid-error': !!errorValidItem,
|
|
@@ -469,7 +484,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
469
484
|
expandColumn,
|
|
470
485
|
selectRadioRow,
|
|
471
486
|
pendingRowMaps,
|
|
472
|
-
pendingRowList,
|
|
473
487
|
isDragColMove
|
|
474
488
|
} = tableReactData;
|
|
475
489
|
const {
|
|
@@ -563,7 +577,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
563
577
|
'row--new': isNewRow && (editOpts.showStatus || editOpts.showInsertStatus),
|
|
564
578
|
'row--radio': radioOpts.highlight && $xeTable.eqRow(selectRadioRow, row),
|
|
565
579
|
'row--checked': checkboxOpts.highlight && $xeTable.isCheckedByCheckboxRow(row),
|
|
566
|
-
'row--pending':
|
|
580
|
+
'row--pending': !!pendingRowMaps[rowid]
|
|
567
581
|
}, (0, _dom.getPropClass)(rowClassName, params)];
|
|
568
582
|
const tdVNs = tableColumn.map((column, $columnIndex) => {
|
|
569
583
|
return renderColumn(seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, tableColumn, tableData);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="body",lineOffsetSizes={mini:3,small:2,medium:1};var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},setup(_){const pe=(0,_vue.inject)("$xeTable",{}),l=(0,_vue.inject)("xesize",null),{xID:b,props:ge,context:T,reactData:me,internalData:he}=pe,{refTableBody:x,refTableHeader:p,refTableFooter:g,refTableLeftBody:f,refTableRightBody:y,refScrollXHandleElem:h,refScrollYHandleElem:k}=pe.getRefMaps(),{computeEditOpts:xe,computeMouseOpts:fe,computeAreaOpts:Se,computeSYOpts:ye,computeEmptyOpts:U,computeKeyboardOpts:j,computeTooltipOpts:Ce,computeRadioOpts:e,computeExpandOpts:z,computeTreeOpts:c,computeCheckboxOpts:we,computeCellOpts:Ee,computeValidOpts:Oe,computeRowOpts:_e,computeColumnOpts:be}=pe.getComputeMaps(),S=(0,_vue.ref)(),C=(0,_vue.ref)(),E=(0,_vue.ref)(),O=(0,_vue.ref)(),R=(0,_vue.ref)(),D=(0,_vue.ref)(),M=(0,_vue.ref)(),v=()=>{if(l){var e=l.value;if(e)return lineOffsetSizes[e]||0}return 0},Te=()=>{var e=ge["delayHover"],{lastScrollTime:l,_isResize:t}=me;return!!(t||l&&Date.now()<l+e)},m=(e,l)=>{let t=1;if(e){var o=c.value,r=e[o.children||o.childrenField];if(r&&pe.isTreeExpandByRow(e))for(let e=0;e<r.length;e++)t+=m(r[e],l)}return t},Re=e=>{var{row:l,column:t}=e,o=he["afterFullData"],r=ge["treeConfig"],a=c.value,{slots:t,treeNode:s}=t,n=he["fullAllDataRowIdData"],n=n[(0,_util.getRowid)(pe,l)];let i=0,d=0,u=[];return n&&(i=n.level,d=n._index,u=n.items),t&&t.line?pe.callSlot(t.line,e):(n=pe.eqRow(o[0],l),r&&s&&(a.showLine||a.line)?[(0,_vue.h)("div",{class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:`${n?1:((e,l,t)=>{let o=1;return t&&(o=m(l[t-1],e)),me.rowHeight*o-(t?1:12-v())})(e,u,d)}px`,left:i*a.indent+(i?2-v():0)+16+"px"}})])]:[])},G=(e,l,t,o,r,a,s,U,n,i,j,q)=>{var B=he["fullAllDataRowIdData"],{columnKey:A,height:d,showOverflow:u,cellClassName:F,cellStyle:c,align:N,spanMethod:Y,mouseConfig:V,editConfig:K,editRules:v,tooltipConfig:W}=ge,{tableData:X,overflowX:p,currentColumn:P,scrollXLoad:z,scrollYLoad:G,mergeList:g,editStore:m,isAllOverflow:J,validErrorMaps:h}=me,Q=he["afterFullData"],x=Ee.value,f=Oe.value,Z=we.value,y=xe.value,w=Ce.value,ee=_e.value,_=ye.value,le=be.value,te=fe.value,b=Se.value["selectCellToRow"],{type:oe,cellRender:re,editRender:T,align:S,showOverflow:C,className:ae,treeNode:se,slots:ne}=n,x=x["verticalAlign"],m=m["actived"],_=_["rHeight"],E=ee["height"],O=n.id,R=T||re,R=R?renderer.get(R.name):null,ie=R?R.tableCellClassName||R.cellClassName:null,D=R?R.tableCellStyle||R.cellStyle:"";const M=w.showAll;var w=pe.getColumnIndex(n),de=pe.getVTColumnIndex(n),ue=(0,_utils.isEnableConf)(T);let $=t?n.fixed!==t:n.fixed&&p;p=_xeUtils.default.isUndefined(C)||_xeUtils.default.isNull(C)?u:C,C="ellipsis"===p;const I="title"===p,L=!0===p||"tooltip"===p;p=u||I||L||C;let ce;var H={},B=B[l],S=S||(R?R.tableCellAlign:"")||N,R=h[l+":"+O],N=v&&f.showMessage&&("default"===f.message?d||1<X.length:"inline"===f.message),h={colid:O};const k={$table:pe,$grid:pe.xegrid,isEdit:!1,seq:e,rowid:l,row:r,rowIndex:a,$rowIndex:s,_rowIndex:U,column:n,columnIndex:w,$columnIndex:i,_columnIndex:de,fixed:t,type:renderType,isHidden:$,level:o,visibleData:Q,data:X,items:q};if((I||L||M||W)&&(H.onMouseenter=e=>{Te()||(I?(0,_dom.updateCellTitle)(e.currentTarget,n):(L||M)&&pe.triggerBodyTooltipEvent(e,k),pe.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},k),e))}),(L||M||W)&&(H.onMouseleave=e=>{Te()||((L||M)&&pe.handleTargetLeaveEvent(e),pe.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},k),e))}),(Z.range||V)&&(H.onMousedown=e=>{pe.triggerCellMousedownEvent(e,k)}),H.onClick=e=>{pe.triggerCellClickEvent(e,k)},H.onDblclick=e=>{pe.triggerCellDblclickEvent(e,k)},g.length){v=(0,_util.mergeBodyMethod)(g,U,de);if(v){var{rowspan:d,colspan:e}=v;if(!d||!e)return null;1<d&&(h.rowspan=d),1<e&&(h.colspan=e)}}else if(Y){var{rowspan:l=1,colspan:a=1}=Y(k)||{};if(!l||!a)return null;1<l&&(h.rowspan=l),1<a&&(h.colspan=a)}!($=$&&g&&(1<h.colspan||1<h.rowspan)?!1:$)&&K&&(T||re)&&(y.showStatus||y.showUpdateStatus)&&(ce=pe.isUpdateByRow(r,n.field));s=[];$&&u&&J?s.push((0,_vue.h)("div",{class:["vxe-cell",{"c--title":I,"c--tooltip":L,"c--ellipsis":C}],style:{maxHeight:p&&(_||E)?`${_||E}px`:""}})):(s.push(...Re(k),(0,_vue.h)("div",{class:["vxe-cell",{"c--title":I,"c--tooltip":L,"c--ellipsis":C}],style:{maxHeight:p&&(_||E)?`${_||E}px`:""},title:I?pe.getCellLabel(r,n):null},n.renderCell(k))),N&&R&&(w=R.rule,t=ne?ne.valid:null,o=Object.assign(Object.assign(Object.assign({},k),R),{rule:R}),s.push((0,_vue.h)("div",{class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(f.className,o)],style:w&&w.maxWidth?{width:w.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(f.theme||"normal")},[t?pe.callSlot(t,o):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},R.content)]])]))));let ve="";return p&&(_||E)?ve=`${_||E}px`:!z&&!G||p||(ve=`${B.height||24}px`),V&&te.area&&b&&((i||!0!==b)&&b!==n.field||s.push((0,_vue.h)("div",{class:"vxe-cell--area-status"}))),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-body--column",O,{["col--"+S]:S,["col--vertical-"+x]:x,["col--"+oe]:oe,"col--last":i===j.length-1,"col--tree-node":se,"col--edit":ue,"col--ellipsis":p,"fixed--hidden":$,"col--dirty":ce,"col--active":K&&ue&&m.row===r&&(m.column===n||"row"===y.mode),"col--valid-error":!!R,"col--current":P===n},(0,_dom.getPropClass)(ie,k),(0,_dom.getPropClass)(ae,k),(0,_dom.getPropClass)(F,k)],key:A||le.useKey||ee.useKey||le.drag?O:i},h),{style:Object.assign({height:ve},_xeUtils.default.isFunction(D)?D(k):D,_xeUtils.default.isFunction(c)?c(k):c)}),H),s)},P=(x,f,y)=>{const{stripe:w,rowKey:_,highlightHoverRow:b,rowClassName:T,rowStyle:S,showOverflow:C,editConfig:E,treeConfig:O}=ge,{hasFixedColumn:R,treeExpandedMaps:D,scrollYLoad:M,rowExpandedMaps:$,expandColumn:I,selectRadioRow:L,pendingRowMaps:H,pendingRowList:k,isDragColMove:U}=me,j=he["fullAllDataRowIdData"],q=we.value,B=e.value,A=c.value,F=xe.value,N=_e.value,Y=be.value,{transform:V,seqMode:K}=A,W=A.children||A.childrenField,X=[];return f.forEach((t,o)=>{var e={};let r;r=pe.getRowIndex(t),(N.isHover||b)&&(e.onMouseenter=e=>{Te()||pe.triggerHoverEvent(e,{row:t,rowIndex:r})},e.onMouseleave=()=>{Te()||pe.clearHoverRow()});const a=(0,_util.getRowid)(pe,t);var l=j[a];let s=0,n=-1,i=0;l&&(s=l.level,n=O&&V&&"increasing"===K?l._index+1:l.seq,i=l._index);var l={$table:pe,seq:n,rowid:a,fixed:x,type:renderType,level:s,row:t,rowIndex:r,$rowIndex:o,_rowIndex:i},d=I&&!!$[a];let u=!1,c=[],v=!1;E&&(v=pe.isInsertByRow(t)),!O||M||V||(c=t[W],u=c&&0<c.length&&!!D[a]),!N.drag||O&&!V||(e.onDragstart=pe.handleRowDragDragstartEvent,e.onDragend=pe.handleRowDragDragendEvent,e.onDragover=pe.handleRowDragDragoverEvent);var p,g,m=["vxe-body--row",O?"row--level-"+s:"",{"row--stripe":w&&(i+1)%2==0,"is--new":v,"is--expand-row":d,"is--expand-tree":u,"row--new":v&&(F.showStatus||F.showInsertStatus),"row--radio":B.highlight&&pe.eqRow(L,t),"row--checked":q.highlight&&pe.isCheckedByCheckboxRow(t),"row--pending":k.length&&!!H[a]},(0,_dom.getPropClass)(T,l)];const h=y.map((e,l)=>G(n,a,x,s,t,r,o,i,e,l,y,f));X.push(Y.drag?(0,_vue.h)(_vue.TransitionGroup,Object.assign({name:"vxe-header--col-list"+(U?"":"-disabled"),tag:"tr",class:m,rowid:a,style:S?_xeUtils.default.isFunction(S)?S(l):S:null,key:_||N.useKey||N.drag||Y.drag||O?a:o},e),{default:()=>h}):(0,_vue.h)("tr",Object.assign({class:m,rowid:a,style:S?_xeUtils.default.isFunction(S)?S(l):S:null,key:_||N.useKey||N.drag||Y.drag||O?a:o},e),h)),d&&({height:m,padding:l}=z.value,d={},p=(m&&(d.height=m+"px"),O&&(d.paddingLeft=s*A.indent+30+"px"),I)["showOverflow"],p=_xeUtils.default.isUndefined(p)||_xeUtils.default.isNull(p)?C:p,g={$table:pe,seq:n,column:I,fixed:x,type:renderType,level:s,row:t,rowIndex:r,$rowIndex:o,_rowIndex:i},X.push((0,_vue.h)("tr",Object.assign({class:["vxe-body--expanded-row",{"is--padding":l}],key:"expand_"+a,style:S?_xeUtils.default.isFunction(S)?S(g):S:null},e),[(0,_vue.h)("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":x&&!R,"col--ellipsis":p},colspan:y.length},[(0,_vue.h)("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":m},style:d},[I.renderData(g)])])]))),u&&X.push(...P(x,c,y))}),X},q=e=>{var l,t,o,r,a,s=_["fixedType"],{lastScrollTop:n,lastScrollLeft:i,inVirtualScroll:d,inBodyScroll:u,bodyScrollType:c,inFooterScroll:v}=he;d||v||u&&c!==s||(d=p.value,v=x.value,u=g.value,c=f.value,l=y.value,r=S.value,d=d?d.$el:null,u=u?u.$el:null,(v=v.$el)&&(c=c?c.$el:null,l=l?l.$el:null,t=h.value,o=k.value,r=r.scrollTop,i=(a=v.scrollLeft)!==i,n=r!==n,he.inBodyScroll=!0,he.bodyScrollType=s,n&&(c&&"left"===s?((0,_dom.setScrollTop)(v,r),(0,_dom.setScrollTop)(l,r)):l&&"right"===s?((0,_dom.setScrollTop)(v,r),(0,_dom.setScrollTop)(c,r)):((0,_dom.setScrollTop)(c,r),(0,_dom.setScrollTop)(l,r)),(0,_dom.setScrollTop)(o,r),pe.triggerScrollYEvent(e)),i&&((0,_dom.setScrollLeft)(t,a),(0,_dom.setScrollLeft)(d,a),(0,_dom.setScrollLeft)(u,a),pe.triggerScrollXEvent(e)),pe.handleScrollEvent(e,n,i,r,a,{type:renderType,fixed:s})))};let w,$=0,I=0,L=0,H=!1;const B=(r,a,e,s,n)=>{var l=he["elemStore"],{scrollXLoad:t,scrollYLoad:o}=me,i=x.value,d=f.value,u=y.value;const c=d?d.$el:null,v=u?u.$el:null,p=i.$el;d=(0,_util.getRefElem)(l["main-body-ySpace"]),u=(0,_util.getRefElem)(l["main-body-xSpace"]);const g=(o&&d?d:p).clientHeight,m=(t&&u?u:p).clientWidth;i=H===a?Math.max(0,$-L):0;H=a,$=Math.abs(a?e-i:e+i),I=0,L=0,clearTimeout(w);const h=()=>{var e,l,t,o;L<$&&(e=_["fixedType"],{scrollTop:o,clientHeight:l,scrollHeight:t}=(I=Math.max(5,Math.floor(1.5*I)),(L+=I)>$&&(I-=L-$),p),o=o+I*(a?-1:1),p.scrollTop=o,c&&(c.scrollTop=o),v&&(v.scrollTop=o),(a?o<t-l:0<=o)&&(w=setTimeout(h,10)),pe.dispatchEvent("scroll",{type:renderType,fixed:e,scrollTop:p.scrollTop,scrollLeft:p.scrollLeft,scrollHeight:p.scrollHeight,scrollWidth:p.scrollWidth,bodyHeight:g,bodyWidth:m,isX:s,isY:n},r))};h()},A=e=>{var{deltaY:l,deltaX:t}=e,o=ge["highlightHoverRow"],r=me["scrollYLoad"],{lastScrollTop:a,lastScrollLeft:s}=he,n=_e.value,i=x.value,d=S.value,i=i.$el,u=l<0;(u?d.scrollTop<=0:d.scrollTop>=d.scrollHeight-d.clientHeight)||(d=d.scrollTop+l,t=(i=i.scrollLeft+t)!==s,(s=d!==a)&&(e.preventDefault(),he.lastScrollTop=d,he.lastScrollLeft=i,me.lastScrollTime=Date.now(),(n.isHover||o)&&pe.clearHoverRow(),B(e,u,l,t,s),r)&&pe.triggerScrollYEvent(e))};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=_["fixedType"],l=he["elemStore"],e=`${e||"main"}-body-`;l[e+"wrapper"]=S,l[e+"table"]=C,l[e+"colgroup"]=E,l[e+"list"]=O,l[e+"xSpace"]=R,l[e+"ySpace"]=D,l[e+"emptyBlock"]=M})}),(0,_vue.onBeforeUnmount)(()=>{clearTimeout(w)}),(0,_vue.onUnmounted)(()=>{var e=_["fixedType"],l=he["elemStore"],e=`${e||"main"}-body-`;l[e+"wrapper"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"ySpace"]=null,l[e+"emptyBlock"]=null});return()=>{let{fixedColumn:e,fixedType:l,tableColumn:t}=_;var{keyboardConfig:o,showOverflow:r,spanMethod:a,mouseConfig:s}=ge;const{tableData:n,mergeList:i,scrollYLoad:d,isAllOverflow:u,isDragRowMove:c}=me;var v=he["visibleColumn"],p=T["slots"],g=_e.value,m=ye.value,h=U.value,x=j.value,f=fe.value,y=be.value;l&&(t=me.expandColumn||!(d||r&&u)||i.length||a||o&&x.isMerge?v:e);let w;r=p?p.empty:null,w=r?pe.callSlot(r,{$table:pe,$grid:pe.xegrid}):(o=(a=h.name?renderer.get(h.name):null)?a.renderTableEmpty||a.renderTableEmptyView||a.renderEmpty:null)?(0,_vn.getSlotVNs)(o(h,{$table:pe})):ge.emptyText||getI18n("vxe.table.emptyText"),x={onScroll:q};return"wheel"===m.mode&&(x.onWheel=A),(0,_vue.h)("div",Object.assign({ref:S,class:["vxe-table--body-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:b},x),[l?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:R,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:D,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:C,class:"vxe-table--body",xid:b,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:E},t.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l}))),g.drag||y.drag?(0,_vue.h)(_vue.TransitionGroup,{ref:O,name:"vxe-body--row-list"+(c?"":"-disabled"),tag:"tbody"},{default:()=>P(l,n,t)}):(0,_vue.h)("tbody",{ref:O},P(l,n,t))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),s&&f.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},f.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){pe.triggerCellAreaExtendMousedownEvent&&pe.triggerCellAreaExtendMousedownEvent(e,{$table:pe,fixed:l,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-copy-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"})]):renderEmptyElement(pe),l?renderEmptyElement(pe):(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:M},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},w)])])}}});
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="body",lineOffsetSizes={mini:3,small:2,medium:1};var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},setup(_){const xe=(0,_vue.inject)("$xeTable",{}),l=(0,_vue.inject)("xesize",null),{xID:b,props:fe,context:T,reactData:ye,internalData:we}=xe,{refTableBody:x,refTableHeader:p,refTableFooter:g,refTableLeftBody:f,refTableRightBody:y,refScrollXHandleElem:h,refScrollYHandleElem:k}=xe.getRefMaps(),{computeEditOpts:_e,computeMouseOpts:be,computeAreaOpts:Re,computeSYOpts:Te,computeEmptyOpts:U,computeKeyboardOpts:j,computeTooltipOpts:De,computeRadioOpts:e,computeExpandOpts:P,computeTreeOpts:c,computeCheckboxOpts:Se,computeCellOpts:Me,computeValidOpts:$e,computeRowOpts:Ce,computeColumnOpts:Ee,computeRowDragOpts:Ie}=xe.getComputeMaps(),S=(0,_vue.ref)(),C=(0,_vue.ref)(),E=(0,_vue.ref)(),O=(0,_vue.ref)(),R=(0,_vue.ref)(),D=(0,_vue.ref)(),M=(0,_vue.ref)(),v=()=>{if(l){var e=l.value;if(e)return lineOffsetSizes[e]||0}return 0},Oe=()=>{var e=fe["delayHover"],{lastScrollTime:l,_isResize:t}=ye;return!!(t||l&&Date.now()<l+e)},m=(e,l)=>{let t=1;if(e){var o=c.value,r=e[o.children||o.childrenField];if(r&&xe.isTreeExpandByRow(e))for(let e=0;e<r.length;e++)t+=m(r[e],l)}return t},He=e=>{var{row:l,column:t}=e,o=we["afterFullData"],r=fe["treeConfig"],a=c.value,{slots:t,treeNode:s}=t,i=we["fullAllDataRowIdData"],i=i[(0,_util.getRowid)(xe,l)];let n=0,d=0,u=[];return i&&(n=i.level,d=i._index,u=i.items),t&&t.line?xe.callSlot(t.line,e):(i=xe.eqRow(o[0],l),r&&s&&(a.showLine||a.line)?[(0,_vue.h)("div",{class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:`${i?1:((e,l,t)=>{let o=1;return t&&(o=m(l[t-1],e)),ye.rowHeight*o-(t?1:12-v())})(e,u,d)}px`,left:n*a.indent+(n?2-v():0)+16+"px"}})])]:[])},z=(e,l,t,o,r,a,s,U,i,n,j,q)=>{var B=we["fullAllDataRowIdData"],{columnKey:A,height:d,showOverflow:u,cellClassName:F,cellStyle:c,align:N,spanMethod:Y,mouseConfig:V,editConfig:K,editRules:v,tooltipConfig:W}=fe,{tableData:X,overflowX:p,currentColumn:P,scrollXLoad:z,scrollYLoad:G,mergeList:g,editStore:m,isAllOverflow:J,validErrorMaps:h}=ye,Q=we["afterFullData"],x=Me.value,f=$e.value,Z=Se.value,y=_e.value,w=De.value,_=Ce.value,b=Ie.value,ee=b["disabledMethod"],T=Te.value,le=Ee.value,te=be.value,S=Re.value["selectCellToRow"],{type:oe,cellRender:re,editRender:ae,align:se,showOverflow:C,className:ie,treeNode:ne,slots:de}=i,x=x["verticalAlign"],m=m["actived"],T=T["rHeight"],E=_["height"],O=i.id,R=ae||re,R=R?renderer.get(R.name):null,ue=R?R.tableCellClassName||R.cellClassName:null,ce=R?R.tableCellStyle||R.cellStyle:"";const D=w.showAll;var w=xe.getColumnIndex(i),ve=xe.getVTColumnIndex(i),pe=(0,_utils.isEnableConf)(ae);let M=t?i.fixed!==t:i.fixed&&p;p=_xeUtils.default.isUndefined(C)||_xeUtils.default.isNull(C)?u:C,C="ellipsis"===p;const $="title"===p,I=!0===p||"tooltip"===p;p=u||$||I||C;let ge;var H={},B=B[l],se=se||(R?R.tableCellAlign:"")||N,R=h[l+":"+O],N=v&&f.showMessage&&("default"===f.message?d||1<X.length:"inline"===f.message),h={colid:O};const L={$table:xe,$grid:xe.xegrid,isEdit:!1,seq:e,rowid:l,row:r,rowIndex:a,$rowIndex:s,_rowIndex:U,column:i,columnIndex:w,$columnIndex:n,_columnIndex:ve,fixed:t,type:renderType,isHidden:M,level:o,visibleData:Q,data:X,items:q};let k=!1,me=!1;if((k=_.drag?"row"===b.trigger||i.dragSort&&"cell"===b.trigger:k)&&(me=!(!ee||!ee(L))),($||I||D||W)&&(H.onMouseenter=e=>{Oe()||($?(0,_dom.updateCellTitle)(e.currentTarget,i):(I||D)&&xe.triggerBodyTooltipEvent(e,L),xe.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},L),e))}),(I||D||W)&&(H.onMouseleave=e=>{Oe()||((I||D)&&xe.handleTargetLeaveEvent(e),xe.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},L),e))}),(k||Z.range||V)&&(H.onMousedown=e=>{xe.triggerCellMousedownEvent(e,L)}),H.onClick=e=>{xe.triggerCellClickEvent(e,L)},H.onDblclick=e=>{xe.triggerCellDblclickEvent(e,L)},g.length){v=(0,_util.mergeBodyMethod)(g,U,ve);if(v){var{rowspan:d,colspan:e}=v;if(!d||!e)return null;1<d&&(h.rowspan=d),1<e&&(h.colspan=e)}}else if(Y){var{rowspan:l=1,colspan:a=1}=Y(L)||{};if(!l||!a)return null;1<l&&(h.rowspan=l),1<a&&(h.colspan=a)}!(M=M&&g&&(1<h.colspan||1<h.rowspan)?!1:M)&&K&&(ae||re)&&(y.showStatus||y.showUpdateStatus)&&(ge=xe.isUpdateByRow(r,i.field));s=[];M&&u&&J?s.push((0,_vue.h)("div",{class:["vxe-cell",{"c--title":$,"c--tooltip":I,"c--ellipsis":C}],style:{maxHeight:p&&(T||E)?`${T||E}px`:""}})):(s.push(...He(L),(0,_vue.h)("div",{class:["vxe-cell",{"c--title":$,"c--tooltip":I,"c--ellipsis":C}],style:{maxHeight:p&&(T||E)?`${T||E}px`:""},title:$?xe.getCellLabel(r,i):null},i.renderCell(L))),N&&R&&(w=R.rule,t=de?de.valid:null,o=Object.assign(Object.assign(Object.assign({},L),R),{rule:R}),s.push((0,_vue.h)("div",{class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(f.className,o)],style:w&&w.maxWidth?{width:w.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(f.theme||"normal")},[t?xe.callSlot(t,o):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},R.content)]])]))));let he="";return p&&(T||E)?he=`${T||E}px`:!z&&!G||p||(he=`${B.height||24}px`),V&&te.area&&S&&((n||!0!==S)&&S!==i.field||s.push((0,_vue.h)("div",{class:"vxe-cell--area-status"}))),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-body--column",O,{["col--"+se]:se,["col--vertical-"+x]:x,["col--"+oe]:oe,"col--last":n===j.length-1,"col--tree-node":ne,"col--edit":pe,"col--ellipsis":p,"fixed--hidden":M,"is--drag-cell":k,"is--drag-disabled":me,"col--dirty":ge,"col--active":K&&pe&&m.row===r&&(m.column===i||"row"===y.mode),"col--valid-error":!!R,"col--current":P===i},(0,_dom.getPropClass)(ue,L),(0,_dom.getPropClass)(ie,L),(0,_dom.getPropClass)(F,L)],key:A||le.useKey||_.useKey||le.drag?O:n},h),{style:Object.assign({height:he},_xeUtils.default.isFunction(ce)?ce(L):ce,_xeUtils.default.isFunction(c)?c(L):c)}),H),s)},X=(x,f,y)=>{const{stripe:w,rowKey:_,highlightHoverRow:b,rowClassName:T,rowStyle:S,showOverflow:C,editConfig:E,treeConfig:O}=fe,{hasFixedColumn:R,treeExpandedMaps:D,scrollYLoad:M,rowExpandedMaps:$,expandColumn:I,selectRadioRow:H,pendingRowMaps:L,isDragColMove:k}=ye,U=we["fullAllDataRowIdData"],j=Se.value,q=e.value,B=c.value,A=_e.value,F=Ce.value,N=Ee.value,{transform:Y,seqMode:V}=B,K=B.children||B.childrenField,W=[];return f.forEach((t,o)=>{var e={};let r;r=xe.getRowIndex(t),(F.isHover||b)&&(e.onMouseenter=e=>{Oe()||xe.triggerHoverEvent(e,{row:t,rowIndex:r})},e.onMouseleave=()=>{Oe()||xe.clearHoverRow()});const a=(0,_util.getRowid)(xe,t);var l=U[a];let s=0,i=-1,n=0;l&&(s=l.level,i=O&&Y&&"increasing"===V?l._index+1:l.seq,n=l._index);var l={$table:xe,seq:i,rowid:a,fixed:x,type:renderType,level:s,row:t,rowIndex:r,$rowIndex:o,_rowIndex:n},d=I&&!!$[a];let u=!1,c=[],v=!1;E&&(v=xe.isInsertByRow(t)),!O||M||Y||(c=t[K],u=c&&0<c.length&&!!D[a]),!F.drag||O&&!Y||(e.onDragstart=xe.handleRowDragDragstartEvent,e.onDragend=xe.handleRowDragDragendEvent,e.onDragover=xe.handleRowDragDragoverEvent);var p,g,m=["vxe-body--row",O?"row--level-"+s:"",{"row--stripe":w&&(n+1)%2==0,"is--new":v,"is--expand-row":d,"is--expand-tree":u,"row--new":v&&(A.showStatus||A.showInsertStatus),"row--radio":q.highlight&&xe.eqRow(H,t),"row--checked":j.highlight&&xe.isCheckedByCheckboxRow(t),"row--pending":!!L[a]},(0,_dom.getPropClass)(T,l)];const h=y.map((e,l)=>z(i,a,x,s,t,r,o,n,e,l,y,f));W.push(N.drag?(0,_vue.h)(_vue.TransitionGroup,Object.assign({name:"vxe-header--col-list"+(k?"":"-disabled"),tag:"tr",class:m,rowid:a,style:S?_xeUtils.default.isFunction(S)?S(l):S:null,key:_||F.useKey||F.drag||N.drag||O?a:o},e),{default:()=>h}):(0,_vue.h)("tr",Object.assign({class:m,rowid:a,style:S?_xeUtils.default.isFunction(S)?S(l):S:null,key:_||F.useKey||F.drag||N.drag||O?a:o},e),h)),d&&({height:m,padding:l}=P.value,d={},p=(m&&(d.height=m+"px"),O&&(d.paddingLeft=s*B.indent+30+"px"),I)["showOverflow"],p=_xeUtils.default.isUndefined(p)||_xeUtils.default.isNull(p)?C:p,g={$table:xe,seq:i,column:I,fixed:x,type:renderType,level:s,row:t,rowIndex:r,$rowIndex:o,_rowIndex:n},W.push((0,_vue.h)("tr",Object.assign({class:["vxe-body--expanded-row",{"is--padding":l}],key:"expand_"+a,style:S?_xeUtils.default.isFunction(S)?S(g):S:null},e),[(0,_vue.h)("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":x&&!R,"col--ellipsis":p},colspan:y.length},[(0,_vue.h)("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":m},style:d},[I.renderData(g)])])]))),u&&W.push(...X(x,c,y))}),W},q=e=>{var l,t,o,r,a,s=_["fixedType"],{lastScrollTop:i,lastScrollLeft:n,inVirtualScroll:d,inBodyScroll:u,bodyScrollType:c,inFooterScroll:v}=we;d||v||u&&c!==s||(d=p.value,v=x.value,u=g.value,c=f.value,l=y.value,r=S.value,d=d?d.$el:null,u=u?u.$el:null,(v=v.$el)&&(c=c?c.$el:null,l=l?l.$el:null,t=h.value,o=k.value,r=r.scrollTop,n=(a=v.scrollLeft)!==n,i=r!==i,we.inBodyScroll=!0,we.bodyScrollType=s,i&&(c&&"left"===s?((0,_dom.setScrollTop)(v,r),(0,_dom.setScrollTop)(l,r)):l&&"right"===s?((0,_dom.setScrollTop)(v,r),(0,_dom.setScrollTop)(c,r)):((0,_dom.setScrollTop)(c,r),(0,_dom.setScrollTop)(l,r)),(0,_dom.setScrollTop)(o,r),xe.triggerScrollYEvent(e)),n&&((0,_dom.setScrollLeft)(t,a),(0,_dom.setScrollLeft)(d,a),(0,_dom.setScrollLeft)(u,a),xe.triggerScrollXEvent(e)),xe.handleScrollEvent(e,i,n,r,a,{type:renderType,fixed:s})))};let w,$=0,I=0,H=0,L=!1;const B=(r,a,e,s,i)=>{var l=we["elemStore"],{scrollXLoad:t,scrollYLoad:o}=ye,n=x.value,d=f.value,u=y.value;const c=d?d.$el:null,v=u?u.$el:null,p=n.$el;d=(0,_util.getRefElem)(l["main-body-ySpace"]),u=(0,_util.getRefElem)(l["main-body-xSpace"]);const g=(o&&d?d:p).clientHeight,m=(t&&u?u:p).clientWidth;n=L===a?Math.max(0,$-H):0;L=a,$=Math.abs(a?e-n:e+n),I=0,H=0,clearTimeout(w);const h=()=>{var e,l,t,o;H<$&&(e=_["fixedType"],{scrollTop:o,clientHeight:l,scrollHeight:t}=(I=Math.max(5,Math.floor(1.5*I)),(H+=I)>$&&(I-=H-$),p),o=o+I*(a?-1:1),p.scrollTop=o,c&&(c.scrollTop=o),v&&(v.scrollTop=o),(a?o<t-l:0<=o)&&(w=setTimeout(h,10)),xe.dispatchEvent("scroll",{type:renderType,fixed:e,scrollTop:p.scrollTop,scrollLeft:p.scrollLeft,scrollHeight:p.scrollHeight,scrollWidth:p.scrollWidth,bodyHeight:g,bodyWidth:m,isX:s,isY:i},r))};h()},A=e=>{var{deltaY:l,deltaX:t}=e,o=fe["highlightHoverRow"],r=ye["scrollYLoad"],{lastScrollTop:a,lastScrollLeft:s}=we,i=Ce.value,n=x.value,d=S.value,n=n.$el,u=l<0;(u?d.scrollTop<=0:d.scrollTop>=d.scrollHeight-d.clientHeight)||(d=d.scrollTop+l,t=(n=n.scrollLeft+t)!==s,(s=d!==a)&&(e.preventDefault(),we.lastScrollTop=d,we.lastScrollLeft=n,ye.lastScrollTime=Date.now(),(i.isHover||o)&&xe.clearHoverRow(),B(e,u,l,t,s),r)&&xe.triggerScrollYEvent(e))};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=_["fixedType"],l=we["elemStore"],e=`${e||"main"}-body-`;l[e+"wrapper"]=S,l[e+"table"]=C,l[e+"colgroup"]=E,l[e+"list"]=O,l[e+"xSpace"]=R,l[e+"ySpace"]=D,l[e+"emptyBlock"]=M})}),(0,_vue.onBeforeUnmount)(()=>{clearTimeout(w)}),(0,_vue.onUnmounted)(()=>{var e=_["fixedType"],l=we["elemStore"],e=`${e||"main"}-body-`;l[e+"wrapper"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"ySpace"]=null,l[e+"emptyBlock"]=null});return()=>{let{fixedColumn:e,fixedType:l,tableColumn:t}=_;var{keyboardConfig:o,showOverflow:r,spanMethod:a,mouseConfig:s}=fe;const{tableData:i,mergeList:n,scrollYLoad:d,isAllOverflow:u,isDragRowMove:c}=ye;var v=we["visibleColumn"],p=T["slots"],g=Ce.value,m=Te.value,h=U.value,x=j.value,f=be.value,y=Ee.value;l&&(t=ye.expandColumn||!(d||r&&u)||n.length||a||o&&x.isMerge?v:e);let w;r=p?p.empty:null,w=r?xe.callSlot(r,{$table:xe,$grid:xe.xegrid}):(o=(a=h.name?renderer.get(h.name):null)?a.renderTableEmpty||a.renderTableEmptyView||a.renderEmpty:null)?(0,_vn.getSlotVNs)(o(h,{$table:xe})):fe.emptyText||getI18n("vxe.table.emptyText"),x={onScroll:q};return"wheel"===m.mode&&(x.onWheel=A),(0,_vue.h)("div",Object.assign({ref:S,class:["vxe-table--body-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:b},x),[l?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:R,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:D,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:C,class:"vxe-table--body",xid:b,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:E},t.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l}))),g.drag||y.drag?(0,_vue.h)(_vue.TransitionGroup,{ref:O,name:"vxe-body--row-list"+(c?"":"-disabled"),tag:"tbody"},{default:()=>X(l,i,t)}):(0,_vue.h)("tbody",{ref:O},X(l,i,t))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),s&&f.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},f.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){xe.triggerCellAreaExtendMousedownEvent&&xe.triggerCellAreaExtendMousedownEvent(e,{$table:xe,fixed:l,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-copy-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"})]):renderEmptyElement(xe),l?renderEmptyElement(xe):(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:M},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},w)])])}}});
|
package/lib/table/src/cell.js
CHANGED
|
@@ -71,22 +71,26 @@ function renderCellDragIcon(params) {
|
|
|
71
71
|
const rowDragOpts = computeRowDragOpts.value;
|
|
72
72
|
const {
|
|
73
73
|
icon,
|
|
74
|
+
trigger,
|
|
74
75
|
disabledMethod
|
|
75
76
|
} = rowDragOpts;
|
|
76
77
|
const rDisabledMethod = disabledMethod || (dragConfig ? dragConfig.rowDisabledMethod : null);
|
|
77
78
|
const isDisabled = rDisabledMethod && rDisabledMethod(params);
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
'is--disabled': isDisabled
|
|
82
|
-
}],
|
|
83
|
-
onMousedown(evnt) {
|
|
79
|
+
const ons = {};
|
|
80
|
+
if (trigger !== 'cell') {
|
|
81
|
+
ons.onMousedown = evnt => {
|
|
84
82
|
if (!isDisabled) {
|
|
85
83
|
$table.handleCellDragMousedownEvent(evnt, params);
|
|
86
84
|
}
|
|
87
|
-
}
|
|
88
|
-
onMouseup
|
|
89
|
-
}
|
|
85
|
+
};
|
|
86
|
+
ons.onMouseup = $table.handleCellDragMouseupEvent;
|
|
87
|
+
}
|
|
88
|
+
return (0, _vue.h)('span', Object.assign({
|
|
89
|
+
key: 'dg',
|
|
90
|
+
class: ['vxe-cell--drag-handle', {
|
|
91
|
+
'is--disabled': isDisabled
|
|
92
|
+
}]
|
|
93
|
+
}, ons), [(0, _vue.h)('i', {
|
|
90
94
|
class: icon || (dragConfig ? dragConfig.rowIcon : '') || getIcon().TABLE_DRAG_ROW
|
|
91
95
|
})]);
|
|
92
96
|
}
|
|
@@ -142,25 +146,29 @@ function renderHeaderCellDragIcon(params) {
|
|
|
142
146
|
const {
|
|
143
147
|
showIcon,
|
|
144
148
|
icon,
|
|
149
|
+
trigger,
|
|
145
150
|
isCrossDrag,
|
|
146
151
|
visibleMethod,
|
|
147
152
|
disabledMethod
|
|
148
153
|
} = columnDragOpts;
|
|
149
|
-
const isDisabled = disabledMethod && disabledMethod(params);
|
|
150
154
|
if (columnOpts.drag && showIcon && (!visibleMethod || visibleMethod(params))) {
|
|
151
155
|
if (!column.fixed && (isCrossDrag || !column.parentId)) {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}],
|
|
157
|
-
onMousedown(evnt) {
|
|
156
|
+
const isDisabled = disabledMethod && disabledMethod(params);
|
|
157
|
+
const ons = {};
|
|
158
|
+
if (trigger !== 'cell') {
|
|
159
|
+
ons.onMousedown = evnt => {
|
|
158
160
|
if (!isDisabled) {
|
|
159
161
|
$table.handleHeaderCellDragMousedownEvent(evnt, params);
|
|
160
162
|
}
|
|
161
|
-
}
|
|
162
|
-
onMouseup
|
|
163
|
-
}
|
|
163
|
+
};
|
|
164
|
+
ons.onMouseup = $table.handleHeaderCellDragMouseupEvent;
|
|
165
|
+
}
|
|
166
|
+
return (0, _vue.h)('span', Object.assign({
|
|
167
|
+
key: 'dg',
|
|
168
|
+
class: ['vxe-cell--drag-handle', {
|
|
169
|
+
'is--disabled': isDisabled
|
|
170
|
+
}]
|
|
171
|
+
}, ons), [(0, _vue.h)('i', {
|
|
164
172
|
class: icon || getIcon().TABLE_DRAG_COLUMN
|
|
165
173
|
})]);
|
|
166
174
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Cell=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getI18n,getIcon,renderer,formats,renderEmptyElement}=_ui.VxeUI;function renderTitlePrefixIcon(l){const{$table:r,column:e}=l,t=e.titlePrefix||e.titleHelp;return t?(0,_vue.h)("i",{class:["vxe-cell-title-prefix-icon",t.icon||getIcon().TABLE_TITLE_PREFIX],onMouseenter(e){r.triggerHeaderTitleEvent(e,t,l)},onMouseleave(e){r.handleTargetLeaveEvent(e)}}):renderEmptyElement(r)}function renderTitleSuffixIcon(l){const{$table:r,column:e}=l,t=e.titleSuffix;return t?(0,_vue.h)("i",{class:["vxe-cell-title-suffix-icon",t.icon||getIcon().TABLE_TITLE_SUFFIX],onMouseenter(e){r.triggerHeaderTitleEvent(e,t,l)},onMouseleave(e){r.handleTargetLeaveEvent(e)}}):renderEmptyElement(r)}function renderCellDragIcon(l){const r=l["$table"];var e=r.props["dragConfig"],t=r.getComputeMaps()["computeRowDragOpts"],{icon:t,disabledMethod:n}=t.value,n=n||(e?e.rowDisabledMethod:null);const a=n&&n(l);return(0,_vue.h)("span",{key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":a}],onMousedown(e){a||r.handleCellDragMousedownEvent(e,l)},onMouseup:r.handleCellDragMouseupEvent},[(0,_vue.h)("i",{class:t||(e?e.rowIcon:"")||getIcon().TABLE_DRAG_ROW})])}function renderCellBaseVNs(e,l){var{$table:r,column:t,level:n}=e,t=t["dragSort"],{treeConfig:a,dragConfig:o}=r.props,{computeRowOpts:r,computeRowDragOpts:d}=r.getComputeMaps(),r=r.value,{showIcon:d,isCrossDrag:s,visibleMethod:i}=d.value,i=i||(o?o.rowVisibleMethod:null),l=_xeUtils.default.isArray(l)?l:[l];return!(t&&r.drag&&(d||o&&o.showRowIcon))||i&&!i(e)||a&&!s&&n||l.unshift(renderCellDragIcon(e)),l}function renderHeaderCellDragIcon(l){const{$table:r,column:e}=l;var{computeColumnOpts:t,computeColumnDragOpts:n}=r.getComputeMaps(),t=t.value,{showIcon:n,icon:a,isCrossDrag:o,visibleMethod:d,disabledMethod:s}=n.value;const i=s&&s(l);return!t.drag||!n||d&&!d(l)||e.fixed||!o&&e.parentId?renderEmptyElement(r):(0,_vue.h)("span",{key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":i}],onMousedown(e){i||r.handleHeaderCellDragMousedownEvent(e,l)},onMouseup:r.handleHeaderCellDragMouseupEvent},[(0,_vue.h)("i",{class:a||getIcon().TABLE_DRAG_COLUMN})])}function renderHeaderCellBaseVNs(e,l){return[renderTitlePrefixIcon(e),renderHeaderCellDragIcon(e),..._xeUtils.default.isArray(l)?l:[l],renderTitleSuffixIcon(e)]}function renderTitleContent(l,e){const{$table:r,column:t}=l,{props:n,reactData:a}=r;var o=r.getComputeMaps()["computeTooltipOpts"],d=n["showHeaderOverflow"],{type:s,showHeaderOverflow:i}=t;const c=o.value.showAll;o=_xeUtils.default.isUndefined(i)||_xeUtils.default.isNull(i)?d:i;const u="title"===o,C=!0===o||"tooltip"===o;d={};return(u||C||c)&&(d.onMouseenter=e=>{a._isResize||(u?(0,_dom.updateCellTitle)(e.currentTarget,t):(C||c)&&r.triggerHeaderTooltipEvent(e,l))}),(C||c)&&(d.onMouseleave=e=>{a._isResize||(C||c)&&r.handleTargetLeaveEvent(e)}),["html"===s&&_xeUtils.default.isString(e)?(0,_vue.h)("span",Object.assign({class:"vxe-cell--title",innerHTML:e},d)):(0,_vue.h)("span",Object.assign({class:"vxe-cell--title"},d),(0,_vn.getSlotVNs)(e))]}function formatFooterLabel(e,l){var r,t;return _xeUtils.default.isFunction(e)?e(l):(t=(t=(r=_xeUtils.default.isArray(e))?formats.get(e[0]):formats.get(e))?t.tableFooterCellFormatMethod:null)?r?t(l,...e.slice(1)):t(l):""}function getFooterContent(e){var{$table:l,column:r,_columnIndex:t,items:n,row:a}=e,{slots:o,editRender:d,cellRender:s,footerFormatter:i}=r,d=d||s,s=o?o.footer:null;if(s)return l.callSlot(s,e);if(d){o=renderer.get(d.name);if(o){l=o.renderTableFooter||o.renderFooter;if(l)return(0,_vn.getSlotVNs)(l(d,e))}}let c="";return _xeUtils.default.isArray(n)?c=n[t]:c=_xeUtils.default.get(a,r.field),[i?formatFooterLabel(i,{itemValue:c,column:r,row:a,items:n,_columnIndex:t}):(0,_utils.formatText)(c,1)]}function getDefaultCellLabel(e){var{$table:e,row:l,column:r}=e;return(0,_utils.formatText)(e.getCellLabel(l,r),1)}const Cell=exports.Cell={createColumn(e,l){var{type:r,sortable:t,filters:n,editRender:a,treeNode:o}=l,d=e["props"],s=d["editConfig"],{computeEditOpts:d,computeCheckboxOpts:i}=e.getComputeMaps(),c=i.value,u=d.value,C={renderHeader:Cell.renderDefaultHeader,renderCell:o?Cell.renderTreeCell:Cell.renderDefaultCell,renderFooter:Cell.renderDefaultFooter};switch(r){case"seq":C.renderHeader=Cell.renderSeqHeader,C.renderCell=o?Cell.renderTreeIndexCell:Cell.renderSeqCell;break;case"radio":C.renderHeader=Cell.renderRadioHeader,C.renderCell=o?Cell.renderTreeRadioCell:Cell.renderRadioCell;break;case"checkbox":C.renderHeader=Cell.renderCheckboxHeader,C.renderCell=c.checkField?o?Cell.renderTreeSelectionCellByProp:Cell.renderCheckboxCellByProp:o?Cell.renderTreeSelectionCell:Cell.renderCheckboxCell;break;case"expand":C.renderCell=Cell.renderExpandCell,C.renderData=Cell.renderExpandData;break;case"html":C.renderCell=o?Cell.renderTreeHTMLCell:Cell.renderHTMLCell,n&&t?C.renderHeader=Cell.renderSortAndFilterHeader:t?C.renderHeader=Cell.renderSortHeader:n&&(C.renderHeader=Cell.renderFilterHeader);break;default:s&&a?(C.renderHeader=Cell.renderEditHeader,C.renderCell="cell"===u.mode?o?Cell.renderTreeCellEdit:Cell.renderCellEdit:o?Cell.renderTreeRowEdit:Cell.renderRowEdit):n&&t?C.renderHeader=Cell.renderSortAndFilterHeader:t?C.renderHeader=Cell.renderSortHeader:n&&(C.renderHeader=Cell.renderFilterHeader)}return(0,_util.createColumn)(e,l,C)},renderHeaderTitle(e){var{$table:l,column:r}=e,{slots:t,editRender:n,cellRender:a}=r,n=n||a,a=t?t.header:null;if(a)return renderTitleContent(e,l.callSlot(a,e));if(n){t=renderer.get(n.name);if(t){l=t.renderTableHeader||t.renderHeader;if(l)return renderTitleContent(e,(0,_vn.getSlotVNs)(l(n,e)))}}return renderTitleContent(e,(0,_utils.formatText)(r.getTitle(),1))},renderDefaultHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e))},renderDefaultCell(e){var{$table:l,row:r,column:t}=e,{slots:n,editRender:a,cellRender:o}=t,o=a||o,n=n?n.default:null;if(n)return renderCellBaseVNs(e,l.callSlot(n,e));if(o){n=renderer.get(o.name);if(n){var d=n.renderTableCell||n.renderCell,n=n.renderTableDefault||n.renderDefault,d=a?d:n;if(d)return renderCellBaseVNs(e,(0,_vn.getSlotVNs)(d(o,Object.assign({$type:a?"edit":"cell"},e))))}}n=l.getCellLabel(r,t),d=a?a.placeholder:"";return renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},[a&&(0,_utils.eqEmptyValue)(n)?(0,_vue.h)("span",{class:"vxe-cell--placeholder"},(0,_utils.formatText)((0,_utils.getFuncText)(d),1)):(0,_vue.h)("span",(0,_utils.formatText)(n,1))])])},renderTreeCell(e){return Cell.renderTreeIcon(e,Cell.renderDefaultCell(e))},renderDefaultFooter(e){return[(0,_vue.h)("span",{class:"vxe-cell--item"},getFooterContent(e))]},renderTreeIcon(l,e){const{$table:r,isHidden:t}=l;var{reactData:n,internalData:a}=r,o=r.getComputeMaps()["computeTreeOpts"],{treeExpandedMaps:n,treeExpandLazyLoadedMaps:d}=n,a=a["fullAllDataRowIdData"],o=o.value,{row:s,column:i,level:c}=l,i=i["slots"],{indent:u,lazy:C,trigger:v,iconLoaded:p,showIcon:g,iconOpen:h,iconClose:E}=o,_=o.children||o.childrenField,o=o.hasChild||o.hasChildField,_=s[_],_=_&&_.length,i=i?i.icon:null;let b=!1,x=!1,m=!1,f=!1;var T={};return i?r.callSlot(i,l):(t||(i=(0,_util.getRowid)(r,s),x=!!n[i],C&&(n=a[i],m=!!d[i],b=s[o],f=!!n.treeLoaded)),v&&"default"!==v||(T.onClick=e=>{r.triggerTreeExpandEvent(e,l)}),[(0,_vue.h)("div",{class:["vxe-cell--tree-node",{"is--active":x}],style:{paddingLeft:c*u+"px"}},[g&&(!C||f?_:b)?[(0,_vue.h)("div",Object.assign({class:"vxe-tree--btn-wrapper"},T),[(0,_vue.h)("i",{class:["vxe-tree--node-btn",m?p||getIcon().TABLE_TREE_LOADED:x?h||getIcon().TABLE_TREE_OPEN:E||getIcon().TABLE_TREE_CLOSE]})])]:null,(0,_vue.h)("div",{class:"vxe-tree-cell"},e)])])},renderSeqHeader(e){var{$table:l,column:r}=e,t=r["slots"],t=t?t.header:null;return renderHeaderCellBaseVNs(e,renderTitleContent(e,t?l.callSlot(t,e):(0,_utils.formatText)(r.getTitle(),1)))},renderSeqCell(e){var{$table:l,column:r}=e,t=l["props"],t=t["treeConfig"],n=l.getComputeMaps()["computeSeqOpts"],n=n.value,r=r["slots"],r=r?r.default:null;return r?renderCellBaseVNs(e,l.callSlot(r,e)):(l=e["seq"],r=n.seqMethod,renderCellBaseVNs(e,[(0,_vue.h)("span",""+(0,_utils.formatText)(r?r(e):t?l:(n.startIndex||0)+l,1))]))},renderTreeIndexCell(e){return Cell.renderTreeIcon(e,Cell.renderSeqCell(e))},renderRadioHeader(e){var{$table:l,column:r}=e,t=r["slots"],n=t?t.header:null,t=t?t.title:null;return renderHeaderCellBaseVNs(e,renderTitleContent(e,n?l.callSlot(n,e):[(0,_vue.h)("span",{class:"vxe-radio--label"},t?l.callSlot(t,e):(0,_utils.formatText)(r.getTitle(),1))]))},renderRadioCell(l){const{$table:r,column:e,isHidden:t}=l;var n=r["reactData"],a=r.getComputeMaps()["computeRadioOpts"],n=n["selectRadioRow"],o=e["slots"],{labelField:a,checkMethod:d,visibleMethod:s}=a.value,i=l["row"],c=o?o.default:null,o=o?o.radio:null,n=r.eqRow(i,n);const u=!s||s({row:i});let C=!!d,v;t||(v={onClick(e){!C&&u&&r.triggerRadioRowEvent(e,l)}},d&&(C=!d({row:i})));s=Object.assign(Object.assign({},l),{checked:n,disabled:C,visible:u});return o?renderCellBaseVNs(l,r.callSlot(o,s)):(d=[],u&&d.push((0,_vue.h)("span",{class:["vxe-radio--icon",n?getIcon().TABLE_RADIO_CHECKED:getIcon().TABLE_RADIO_UNCHECKED]})),(c||a)&&d.push((0,_vue.h)("span",{class:"vxe-radio--label"},c?r.callSlot(c,s):_xeUtils.default.get(i,a))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--radio",{"is--checked":n,"is--disabled":C}]},v),d)]))},renderTreeRadioCell(e){return Cell.renderTreeIcon(e,Cell.renderRadioCell(e))},renderCheckboxHeader(e){const{$table:l,column:r,isHidden:t}=e;var n=l["reactData"],{computeIsAllCheckboxDisabled:a,computeCheckboxOpts:o}=l.getComputeMaps();const{isAllSelected:d,isIndeterminate:s}=n,i=a.value;var n=r["slots"],a=n?n.header:null,n=n?n.title:null,o=o.value,c=r.getTitle();let u;t||(u={onClick(e){i||l.triggerCheckAllEvent(e,!d)}});var C=Object.assign(Object.assign({},e),{checked:d,disabled:i,indeterminate:s});return a?renderHeaderCellBaseVNs(e,renderTitleContent(C,l.callSlot(a,C))):(o.checkStrictly?o.showHeader:!1!==o.showHeader)?renderHeaderCellBaseVNs(e,renderTitleContent(C,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":d,"is--disabled":i,"is--indeterminate":s}],title:getI18n("vxe.table.allTitle")},u),[(0,_vue.h)("span",{class:["vxe-checkbox--icon",s?getIcon().TABLE_CHECKBOX_INDETERMINATE:d?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})].concat(n||c?[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,C):c)]:[]))])):renderHeaderCellBaseVNs(e,renderTitleContent(C,[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,C):c)]))},renderCheckboxCell(l){const{$table:r,row:e,column:t,isHidden:n}=l;var{props:a,reactData:o}=r,a=a["treeConfig"],{selectCheckboxMaps:o,treeIndeterminateMaps:d}=o,s=r.getComputeMaps()["computeCheckboxOpts"],{labelField:s,checkMethod:i,visibleMethod:c}=s.value,u=t["slots"],C=u?u.default:null,u=u?u.checkbox:null;let v=!1,p=!1;const g=!c||c({row:e});let h=!!i,E;n||(c=(0,_util.getRowid)(r,e),p=!!o[c],E={onClick(e){!h&&g&&r.triggerCheckRowEvent(e,l,!p)}},i&&(h=!i({row:e})),a&&(v=!!d[c]));o=Object.assign(Object.assign({},l),{checked:p,disabled:h,visible:g,indeterminate:v});return u?renderCellBaseVNs(l,r.callSlot(u,o)):(i=[],g&&i.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",v?getIcon().TABLE_CHECKBOX_INDETERMINATE:p?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),(C||s)&&i.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},C?r.callSlot(C,o):_xeUtils.default.get(e,s))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":p,"is--disabled":h,"is--indeterminate":v,"is--hidden":!g}]},E),i)]))},renderTreeSelectionCell(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCell(e))},renderCheckboxCellByProp(l){const{$table:r,row:e,column:t,isHidden:n}=l;var{props:a,reactData:o}=r,a=a["treeConfig"],o=o["treeIndeterminateMaps"],d=r.getComputeMaps()["computeCheckboxOpts"],d=d.value,{labelField:s,checkField:i,checkMethod:c,visibleMethod:u}=d,d=d.indeterminateField||d.halfField,C=t["slots"],v=C?C.default:null,C=C?C.checkbox:null;let p=!1,g=!1;const h=!u||u({row:e});let E=!!c,_;n||(u=(0,_util.getRowid)(r,e),g=_xeUtils.default.get(e,i),_={onClick(e){!E&&h&&r.triggerCheckRowEvent(e,l,!g)}},c&&(E=!c({row:e})),a&&(p=!!o[u]));i=Object.assign(Object.assign({},l),{checked:g,disabled:E,visible:h,indeterminate:p});return C?renderCellBaseVNs(l,r.callSlot(C,i)):(c=[],h&&(c.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",p?getIcon().TABLE_CHECKBOX_INDETERMINATE:g?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),v||s)&&c.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},v?r.callSlot(v,i):_xeUtils.default.get(e,s))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":g,"is--disabled":E,"is--indeterminate":d&&!g?e[d]:p,"is--hidden":!h}]},_),c)]))},renderTreeSelectionCellByProp(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCellByProp(e))},renderExpandCell(l){const{$table:r,isHidden:e,row:t,column:n}=l;var a=r["reactData"],{rowExpandedMaps:a,rowExpandLazyLoadedMaps:o}=a,d=r.getComputeMaps()["computeExpandOpts"],{lazy:d,labelField:s,iconLoaded:i,showIcon:c,iconOpen:u,iconClose:C,visibleMethod:v}=d.value,p=n["slots"],g=p?p.default:null,p=p?p.icon:null;let h=!1,E=!1;return p?renderCellBaseVNs(l,r.callSlot(p,l)):(e||(p=(0,_util.getRowid)(r,t),h=!!a[p],d&&(E=!!o[p])),renderCellBaseVNs(l,[!c||v&&!v(l)?renderEmptyElement(r):(0,_vue.h)("span",{class:["vxe-table--expanded",{"is--active":h}],onClick(e){r.triggerRowExpandEvent(e,l)}},[(0,_vue.h)("i",{class:["vxe-table--expand-btn",E?i||getIcon().TABLE_EXPAND_LOADED:h?u||getIcon().TABLE_EXPAND_OPEN:C||getIcon().TABLE_EXPAND_CLOSE]})]),g||s?(0,_vue.h)("span",{class:"vxe-table--expand-label"},g?r.callSlot(g,l):_xeUtils.default.get(t,s)):renderEmptyElement(r)]))},renderExpandData(e){var{$table:l,column:r}=e,{slots:r,contentRender:t}=r,r=r?r.content:null;if(r)return l.callSlot(r,e);if(t){l=renderer.get(t.name);if(l){r=l.renderTableExpand||l.renderExpand;if(r)return(0,_vn.getSlotVNs)(r(t,e))}}return[]},renderHTMLCell(e){var{$table:l,column:r}=e,r=r["slots"],r=r?r.default:null;return renderCellBaseVNs(e,r?l.callSlot(r,e):[(0,_vue.h)("span",{class:"vxe-cell--html",innerHTML:getDefaultCellLabel(e)})])},renderTreeHTMLCell(e){return Cell.renderTreeIcon(e,Cell.renderHTMLCell(e))},renderSortAndFilterHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e).concat(Cell.renderFilterIcon(e))))},renderSortHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e)))},renderSortIcon(e){const{$table:l,column:r}=e;var e=l.getComputeMaps()["computeSortOpts"],{showIcon:e,iconLayout:t,iconAsc:n,iconDesc:a}=e.value,o=r["order"];return e?[(0,_vue.h)("span",{class:["vxe-cell--sort",`vxe-cell--sort-${t}-layout`]},[(0,_vue.h)("i",{class:["vxe-sort--asc-btn",n||getIcon().TABLE_SORT_ASC,{"sort--active":"asc"===o}],title:getI18n("vxe.table.sortAsc"),onClick(e){e.stopPropagation(),l.triggerSortEvent(e,r,"asc")}}),(0,_vue.h)("i",{class:["vxe-sort--desc-btn",a||getIcon().TABLE_SORT_DESC,{"sort--active":"desc"===o}],title:getI18n("vxe.table.sortDesc"),onClick(e){e.stopPropagation(),l.triggerSortEvent(e,r,"desc")}})])]:[]},renderFilterHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderFilterIcon(e)))},renderFilterIcon(l){const{$table:r,column:e,hasFilter:t}=l;var n=r["reactData"],n=n["filterStore"],a=r.getComputeMaps()["computeFilterOpts"],{showIcon:a,iconNone:o,iconMatch:d}=a.value;return a?[(0,_vue.h)("span",{class:["vxe-cell--filter",{"is--active":n.visible&&n.column===e}]},[(0,_vue.h)("i",{class:["vxe-filter--btn",t?d||getIcon().TABLE_FILTER_MATCH:o||getIcon().TABLE_FILTER_NONE],title:getI18n("vxe.table.filter"),onClick(e){r.triggerFilterEvent&&r.triggerFilterEvent(e,l.column,l)}})])]:[]},renderEditHeader(e){var{$table:l,column:r}=e,t=l["props"],n=l.getComputeMaps()["computeEditOpts"],{editConfig:t,editRules:a}=t,n=n.value,{sortable:o,filters:d,editRender:s}=r;let i=!1,c=(a&&(a=_xeUtils.default.get(a,r.field))&&(i=a.some(e=>e.required)),[]);return renderHeaderCellBaseVNs(e,(c=(0,_utils.isEnableConf)(t)?[i&&n.showAsterisk?(0,_vue.h)("i",{class:"vxe-cell--required-icon"}):renderEmptyElement(l),(0,_utils.isEnableConf)(s)&&n.showIcon?(0,_vue.h)("i",{class:["vxe-cell--edit-icon",n.icon||getIcon().TABLE_EDIT]}):renderEmptyElement(l)]:c).concat(Cell.renderHeaderTitle(e)).concat(o?Cell.renderSortIcon(e):[]).concat(d?Cell.renderFilterIcon(e):[]))},renderRowEdit(e){var{$table:l,column:r}=e,l=l["reactData"],l=l["editStore"],l=l["actived"],r=r["editRender"];return Cell.runRenderer(e,(0,_utils.isEnableConf)(r)&&l&&l.row===e.row)},renderTreeRowEdit(e){return Cell.renderTreeIcon(e,Cell.renderRowEdit(e))},renderCellEdit(e){var{$table:l,column:r}=e,l=l["reactData"],l=l["editStore"],l=l["actived"],r=r["editRender"];return Cell.runRenderer(e,(0,_utils.isEnableConf)(r)&&l&&l.row===e.row&&l.column===e.column)},renderTreeCellEdit(e){return Cell.renderTreeIcon(e,Cell.renderCellEdit(e))},runRenderer(e,l){var{$table:r,column:t}=e,{slots:t,editRender:n,formatter:a}=t,o=t?t.default:null,t=t?t.edit:null,d=renderer.get(n.name),d=d?d.renderTableEdit||d.renderEdit:null,s=Object.assign({$type:"",isEdit:l},e);return l?(s.$type="edit",t?r.callSlot(t,s):d?(0,_vn.getSlotVNs)(d(n,s)):[]):o?renderCellBaseVNs(e,r.callSlot(o,s)):a?renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},getDefaultCellLabel(s))]):Cell.renderDefaultCell(s)}};var _default=exports.default=Cell;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.Cell=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const{getI18n,getIcon,renderer,formats,renderEmptyElement}=_ui.VxeUI;function renderTitlePrefixIcon(l){const{$table:r,column:e}=l,t=e.titlePrefix||e.titleHelp;return t?(0,_vue.h)("i",{class:["vxe-cell-title-prefix-icon",t.icon||getIcon().TABLE_TITLE_PREFIX],onMouseenter(e){r.triggerHeaderTitleEvent(e,t,l)},onMouseleave(e){r.handleTargetLeaveEvent(e)}}):renderEmptyElement(r)}function renderTitleSuffixIcon(l){const{$table:r,column:e}=l,t=e.titleSuffix;return t?(0,_vue.h)("i",{class:["vxe-cell-title-suffix-icon",t.icon||getIcon().TABLE_TITLE_SUFFIX],onMouseenter(e){r.triggerHeaderTitleEvent(e,t,l)},onMouseleave(e){r.handleTargetLeaveEvent(e)}}):renderEmptyElement(r)}function renderCellDragIcon(l){const r=l["$table"];var e=r.props["dragConfig"],t=r.getComputeMaps()["computeRowDragOpts"],{icon:t,trigger:n,disabledMethod:a}=t.value,a=a||(e?e.rowDisabledMethod:null);const o=a&&a(l);a={};return"cell"!==n&&(a.onMousedown=e=>{o||r.handleCellDragMousedownEvent(e,l)},a.onMouseup=r.handleCellDragMouseupEvent),(0,_vue.h)("span",Object.assign({key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":o}]},a),[(0,_vue.h)("i",{class:t||(e?e.rowIcon:"")||getIcon().TABLE_DRAG_ROW})])}function renderCellBaseVNs(e,l){var{$table:r,column:t,level:n}=e,t=t["dragSort"],{treeConfig:a,dragConfig:o}=r.props,{computeRowOpts:r,computeRowDragOpts:d}=r.getComputeMaps(),r=r.value,{showIcon:d,isCrossDrag:s,visibleMethod:i}=d.value,i=i||(o?o.rowVisibleMethod:null),l=_xeUtils.default.isArray(l)?l:[l];return!(t&&r.drag&&(d||o&&o.showRowIcon))||i&&!i(e)||a&&!s&&n||l.unshift(renderCellDragIcon(e)),l}function renderHeaderCellDragIcon(l){const{$table:r,column:e}=l;var{computeColumnOpts:t,computeColumnDragOpts:n}=r.getComputeMaps(),t=t.value,{showIcon:n,icon:a,trigger:o,isCrossDrag:d,visibleMethod:s,disabledMethod:i}=n.value;if(!t.drag||!n||s&&!s(l)||e.fixed||!d&&e.parentId)return renderEmptyElement(r);{const c=i&&i(l);t={};return"cell"!==o&&(t.onMousedown=e=>{c||r.handleHeaderCellDragMousedownEvent(e,l)},t.onMouseup=r.handleHeaderCellDragMouseupEvent),(0,_vue.h)("span",Object.assign({key:"dg",class:["vxe-cell--drag-handle",{"is--disabled":c}]},t),[(0,_vue.h)("i",{class:a||getIcon().TABLE_DRAG_COLUMN})])}}function renderHeaderCellBaseVNs(e,l){return[renderTitlePrefixIcon(e),renderHeaderCellDragIcon(e),..._xeUtils.default.isArray(l)?l:[l],renderTitleSuffixIcon(e)]}function renderTitleContent(l,e){const{$table:r,column:t}=l,{props:n,reactData:a}=r;var o=r.getComputeMaps()["computeTooltipOpts"],d=n["showHeaderOverflow"],{type:s,showHeaderOverflow:i}=t;const c=o.value.showAll;o=_xeUtils.default.isUndefined(i)||_xeUtils.default.isNull(i)?d:i;const u="title"===o,C=!0===o||"tooltip"===o;d={};return(u||C||c)&&(d.onMouseenter=e=>{a._isResize||(u?(0,_dom.updateCellTitle)(e.currentTarget,t):(C||c)&&r.triggerHeaderTooltipEvent(e,l))}),(C||c)&&(d.onMouseleave=e=>{a._isResize||(C||c)&&r.handleTargetLeaveEvent(e)}),["html"===s&&_xeUtils.default.isString(e)?(0,_vue.h)("span",Object.assign({class:"vxe-cell--title",innerHTML:e},d)):(0,_vue.h)("span",Object.assign({class:"vxe-cell--title"},d),(0,_vn.getSlotVNs)(e))]}function formatFooterLabel(e,l){var r,t;return _xeUtils.default.isFunction(e)?e(l):(t=(t=(r=_xeUtils.default.isArray(e))?formats.get(e[0]):formats.get(e))?t.tableFooterCellFormatMethod:null)?r?t(l,...e.slice(1)):t(l):""}function getFooterContent(e){var{$table:l,column:r,_columnIndex:t,items:n,row:a}=e,{slots:o,editRender:d,cellRender:s,footerFormatter:i}=r,d=d||s,s=o?o.footer:null;if(s)return l.callSlot(s,e);if(d){o=renderer.get(d.name);if(o){l=o.renderTableFooter||o.renderFooter;if(l)return(0,_vn.getSlotVNs)(l(d,e))}}let c="";return _xeUtils.default.isArray(n)?c=n[t]:c=_xeUtils.default.get(a,r.field),[i?formatFooterLabel(i,{itemValue:c,column:r,row:a,items:n,_columnIndex:t}):(0,_utils.formatText)(c,1)]}function getDefaultCellLabel(e){var{$table:e,row:l,column:r}=e;return(0,_utils.formatText)(e.getCellLabel(l,r),1)}const Cell=exports.Cell={createColumn(e,l){var{type:r,sortable:t,filters:n,editRender:a,treeNode:o}=l,d=e["props"],s=d["editConfig"],{computeEditOpts:d,computeCheckboxOpts:i}=e.getComputeMaps(),c=i.value,u=d.value,C={renderHeader:Cell.renderDefaultHeader,renderCell:o?Cell.renderTreeCell:Cell.renderDefaultCell,renderFooter:Cell.renderDefaultFooter};switch(r){case"seq":C.renderHeader=Cell.renderSeqHeader,C.renderCell=o?Cell.renderTreeIndexCell:Cell.renderSeqCell;break;case"radio":C.renderHeader=Cell.renderRadioHeader,C.renderCell=o?Cell.renderTreeRadioCell:Cell.renderRadioCell;break;case"checkbox":C.renderHeader=Cell.renderCheckboxHeader,C.renderCell=c.checkField?o?Cell.renderTreeSelectionCellByProp:Cell.renderCheckboxCellByProp:o?Cell.renderTreeSelectionCell:Cell.renderCheckboxCell;break;case"expand":C.renderCell=Cell.renderExpandCell,C.renderData=Cell.renderExpandData;break;case"html":C.renderCell=o?Cell.renderTreeHTMLCell:Cell.renderHTMLCell,n&&t?C.renderHeader=Cell.renderSortAndFilterHeader:t?C.renderHeader=Cell.renderSortHeader:n&&(C.renderHeader=Cell.renderFilterHeader);break;default:s&&a?(C.renderHeader=Cell.renderEditHeader,C.renderCell="cell"===u.mode?o?Cell.renderTreeCellEdit:Cell.renderCellEdit:o?Cell.renderTreeRowEdit:Cell.renderRowEdit):n&&t?C.renderHeader=Cell.renderSortAndFilterHeader:t?C.renderHeader=Cell.renderSortHeader:n&&(C.renderHeader=Cell.renderFilterHeader)}return(0,_util.createColumn)(e,l,C)},renderHeaderTitle(e){var{$table:l,column:r}=e,{slots:t,editRender:n,cellRender:a}=r,n=n||a,a=t?t.header:null;if(a)return renderTitleContent(e,l.callSlot(a,e));if(n){t=renderer.get(n.name);if(t){l=t.renderTableHeader||t.renderHeader;if(l)return renderTitleContent(e,(0,_vn.getSlotVNs)(l(n,e)))}}return renderTitleContent(e,(0,_utils.formatText)(r.getTitle(),1))},renderDefaultHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e))},renderDefaultCell(e){var{$table:l,row:r,column:t}=e,{slots:n,editRender:a,cellRender:o}=t,o=a||o,n=n?n.default:null;if(n)return renderCellBaseVNs(e,l.callSlot(n,e));if(o){n=renderer.get(o.name);if(n){var d=n.renderTableCell||n.renderCell,n=n.renderTableDefault||n.renderDefault,d=a?d:n;if(d)return renderCellBaseVNs(e,(0,_vn.getSlotVNs)(d(o,Object.assign({$type:a?"edit":"cell"},e))))}}n=l.getCellLabel(r,t),d=a?a.placeholder:"";return renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},[a&&(0,_utils.eqEmptyValue)(n)?(0,_vue.h)("span",{class:"vxe-cell--placeholder"},(0,_utils.formatText)((0,_utils.getFuncText)(d),1)):(0,_vue.h)("span",(0,_utils.formatText)(n,1))])])},renderTreeCell(e){return Cell.renderTreeIcon(e,Cell.renderDefaultCell(e))},renderDefaultFooter(e){return[(0,_vue.h)("span",{class:"vxe-cell--item"},getFooterContent(e))]},renderTreeIcon(l,e){const{$table:r,isHidden:t}=l;var{reactData:n,internalData:a}=r,o=r.getComputeMaps()["computeTreeOpts"],{treeExpandedMaps:n,treeExpandLazyLoadedMaps:d}=n,a=a["fullAllDataRowIdData"],o=o.value,{row:s,column:i,level:c}=l,i=i["slots"],{indent:u,lazy:C,trigger:v,iconLoaded:p,showIcon:g,iconOpen:h,iconClose:E}=o,_=o.children||o.childrenField,o=o.hasChild||o.hasChildField,_=s[_],_=_&&_.length,i=i?i.icon:null;let b=!1,x=!1,m=!1,f=!1;var T={};return i?r.callSlot(i,l):(t||(i=(0,_util.getRowid)(r,s),x=!!n[i],C&&(n=a[i],m=!!d[i],b=s[o],f=!!n.treeLoaded)),v&&"default"!==v||(T.onClick=e=>{r.triggerTreeExpandEvent(e,l)}),[(0,_vue.h)("div",{class:["vxe-cell--tree-node",{"is--active":x}],style:{paddingLeft:c*u+"px"}},[g&&(!C||f?_:b)?[(0,_vue.h)("div",Object.assign({class:"vxe-tree--btn-wrapper"},T),[(0,_vue.h)("i",{class:["vxe-tree--node-btn",m?p||getIcon().TABLE_TREE_LOADED:x?h||getIcon().TABLE_TREE_OPEN:E||getIcon().TABLE_TREE_CLOSE]})])]:null,(0,_vue.h)("div",{class:"vxe-tree-cell"},e)])])},renderSeqHeader(e){var{$table:l,column:r}=e,t=r["slots"],t=t?t.header:null;return renderHeaderCellBaseVNs(e,renderTitleContent(e,t?l.callSlot(t,e):(0,_utils.formatText)(r.getTitle(),1)))},renderSeqCell(e){var{$table:l,column:r}=e,t=l["props"],t=t["treeConfig"],n=l.getComputeMaps()["computeSeqOpts"],n=n.value,r=r["slots"],r=r?r.default:null;return r?renderCellBaseVNs(e,l.callSlot(r,e)):(l=e["seq"],r=n.seqMethod,renderCellBaseVNs(e,[(0,_vue.h)("span",""+(0,_utils.formatText)(r?r(e):t?l:(n.startIndex||0)+l,1))]))},renderTreeIndexCell(e){return Cell.renderTreeIcon(e,Cell.renderSeqCell(e))},renderRadioHeader(e){var{$table:l,column:r}=e,t=r["slots"],n=t?t.header:null,t=t?t.title:null;return renderHeaderCellBaseVNs(e,renderTitleContent(e,n?l.callSlot(n,e):[(0,_vue.h)("span",{class:"vxe-radio--label"},t?l.callSlot(t,e):(0,_utils.formatText)(r.getTitle(),1))]))},renderRadioCell(l){const{$table:r,column:e,isHidden:t}=l;var n=r["reactData"],a=r.getComputeMaps()["computeRadioOpts"],n=n["selectRadioRow"],o=e["slots"],{labelField:a,checkMethod:d,visibleMethod:s}=a.value,i=l["row"],c=o?o.default:null,o=o?o.radio:null,n=r.eqRow(i,n);const u=!s||s({row:i});let C=!!d,v;t||(v={onClick(e){!C&&u&&r.triggerRadioRowEvent(e,l)}},d&&(C=!d({row:i})));s=Object.assign(Object.assign({},l),{checked:n,disabled:C,visible:u});return o?renderCellBaseVNs(l,r.callSlot(o,s)):(d=[],u&&d.push((0,_vue.h)("span",{class:["vxe-radio--icon",n?getIcon().TABLE_RADIO_CHECKED:getIcon().TABLE_RADIO_UNCHECKED]})),(c||a)&&d.push((0,_vue.h)("span",{class:"vxe-radio--label"},c?r.callSlot(c,s):_xeUtils.default.get(i,a))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--radio",{"is--checked":n,"is--disabled":C}]},v),d)]))},renderTreeRadioCell(e){return Cell.renderTreeIcon(e,Cell.renderRadioCell(e))},renderCheckboxHeader(e){const{$table:l,column:r,isHidden:t}=e;var n=l["reactData"],{computeIsAllCheckboxDisabled:a,computeCheckboxOpts:o}=l.getComputeMaps();const{isAllSelected:d,isIndeterminate:s}=n,i=a.value;var n=r["slots"],a=n?n.header:null,n=n?n.title:null,o=o.value,c=r.getTitle();let u;t||(u={onClick(e){i||l.triggerCheckAllEvent(e,!d)}});var C=Object.assign(Object.assign({},e),{checked:d,disabled:i,indeterminate:s});return a?renderHeaderCellBaseVNs(e,renderTitleContent(C,l.callSlot(a,C))):(o.checkStrictly?o.showHeader:!1!==o.showHeader)?renderHeaderCellBaseVNs(e,renderTitleContent(C,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":d,"is--disabled":i,"is--indeterminate":s}],title:getI18n("vxe.table.allTitle")},u),[(0,_vue.h)("span",{class:["vxe-checkbox--icon",s?getIcon().TABLE_CHECKBOX_INDETERMINATE:d?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})].concat(n||c?[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,C):c)]:[]))])):renderHeaderCellBaseVNs(e,renderTitleContent(C,[(0,_vue.h)("span",{class:"vxe-checkbox--label"},n?l.callSlot(n,C):c)]))},renderCheckboxCell(l){const{$table:r,row:e,column:t,isHidden:n}=l;var{props:a,reactData:o}=r,a=a["treeConfig"],{selectCheckboxMaps:o,treeIndeterminateMaps:d}=o,s=r.getComputeMaps()["computeCheckboxOpts"],{labelField:s,checkMethod:i,visibleMethod:c}=s.value,u=t["slots"],C=u?u.default:null,u=u?u.checkbox:null;let v=!1,p=!1;const g=!c||c({row:e});let h=!!i,E;n||(c=(0,_util.getRowid)(r,e),p=!!o[c],E={onClick(e){!h&&g&&r.triggerCheckRowEvent(e,l,!p)}},i&&(h=!i({row:e})),a&&(v=!!d[c]));o=Object.assign(Object.assign({},l),{checked:p,disabled:h,visible:g,indeterminate:v});return u?renderCellBaseVNs(l,r.callSlot(u,o)):(i=[],g&&i.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",v?getIcon().TABLE_CHECKBOX_INDETERMINATE:p?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),(C||s)&&i.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},C?r.callSlot(C,o):_xeUtils.default.get(e,s))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":p,"is--disabled":h,"is--indeterminate":v,"is--hidden":!g}]},E),i)]))},renderTreeSelectionCell(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCell(e))},renderCheckboxCellByProp(l){const{$table:r,row:e,column:t,isHidden:n}=l;var{props:a,reactData:o}=r,a=a["treeConfig"],o=o["treeIndeterminateMaps"],d=r.getComputeMaps()["computeCheckboxOpts"],d=d.value,{labelField:s,checkField:i,checkMethod:c,visibleMethod:u}=d,d=d.indeterminateField||d.halfField,C=t["slots"],v=C?C.default:null,C=C?C.checkbox:null;let p=!1,g=!1;const h=!u||u({row:e});let E=!!c,_;n||(u=(0,_util.getRowid)(r,e),g=_xeUtils.default.get(e,i),_={onClick(e){!E&&h&&r.triggerCheckRowEvent(e,l,!g)}},c&&(E=!c({row:e})),a&&(p=!!o[u]));i=Object.assign(Object.assign({},l),{checked:g,disabled:E,visible:h,indeterminate:p});return C?renderCellBaseVNs(l,r.callSlot(C,i)):(c=[],h&&(c.push((0,_vue.h)("span",{class:["vxe-checkbox--icon",p?getIcon().TABLE_CHECKBOX_INDETERMINATE:g?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})),v||s)&&c.push((0,_vue.h)("span",{class:"vxe-checkbox--label"},v?r.callSlot(v,i):_xeUtils.default.get(e,s))),renderCellBaseVNs(l,[(0,_vue.h)("span",Object.assign({class:["vxe-cell--checkbox",{"is--checked":g,"is--disabled":E,"is--indeterminate":d&&!g?e[d]:p,"is--hidden":!h}]},_),c)]))},renderTreeSelectionCellByProp(e){return Cell.renderTreeIcon(e,Cell.renderCheckboxCellByProp(e))},renderExpandCell(l){const{$table:r,isHidden:e,row:t,column:n}=l;var a=r["reactData"],{rowExpandedMaps:a,rowExpandLazyLoadedMaps:o}=a,d=r.getComputeMaps()["computeExpandOpts"],{lazy:d,labelField:s,iconLoaded:i,showIcon:c,iconOpen:u,iconClose:C,visibleMethod:v}=d.value,p=n["slots"],g=p?p.default:null,p=p?p.icon:null;let h=!1,E=!1;return p?renderCellBaseVNs(l,r.callSlot(p,l)):(e||(p=(0,_util.getRowid)(r,t),h=!!a[p],d&&(E=!!o[p])),renderCellBaseVNs(l,[!c||v&&!v(l)?renderEmptyElement(r):(0,_vue.h)("span",{class:["vxe-table--expanded",{"is--active":h}],onClick(e){r.triggerRowExpandEvent(e,l)}},[(0,_vue.h)("i",{class:["vxe-table--expand-btn",E?i||getIcon().TABLE_EXPAND_LOADED:h?u||getIcon().TABLE_EXPAND_OPEN:C||getIcon().TABLE_EXPAND_CLOSE]})]),g||s?(0,_vue.h)("span",{class:"vxe-table--expand-label"},g?r.callSlot(g,l):_xeUtils.default.get(t,s)):renderEmptyElement(r)]))},renderExpandData(e){var{$table:l,column:r}=e,{slots:r,contentRender:t}=r,r=r?r.content:null;if(r)return l.callSlot(r,e);if(t){l=renderer.get(t.name);if(l){r=l.renderTableExpand||l.renderExpand;if(r)return(0,_vn.getSlotVNs)(r(t,e))}}return[]},renderHTMLCell(e){var{$table:l,column:r}=e,r=r["slots"],r=r?r.default:null;return renderCellBaseVNs(e,r?l.callSlot(r,e):[(0,_vue.h)("span",{class:"vxe-cell--html",innerHTML:getDefaultCellLabel(e)})])},renderTreeHTMLCell(e){return Cell.renderTreeIcon(e,Cell.renderHTMLCell(e))},renderSortAndFilterHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e).concat(Cell.renderFilterIcon(e))))},renderSortHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderSortIcon(e)))},renderSortIcon(e){const{$table:l,column:r}=e;var e=l.getComputeMaps()["computeSortOpts"],{showIcon:e,iconLayout:t,iconAsc:n,iconDesc:a}=e.value,o=r["order"];return e?[(0,_vue.h)("span",{class:["vxe-cell--sort",`vxe-cell--sort-${t}-layout`]},[(0,_vue.h)("i",{class:["vxe-sort--asc-btn",n||getIcon().TABLE_SORT_ASC,{"sort--active":"asc"===o}],title:getI18n("vxe.table.sortAsc"),onClick(e){e.stopPropagation(),l.triggerSortEvent(e,r,"asc")}}),(0,_vue.h)("i",{class:["vxe-sort--desc-btn",a||getIcon().TABLE_SORT_DESC,{"sort--active":"desc"===o}],title:getI18n("vxe.table.sortDesc"),onClick(e){e.stopPropagation(),l.triggerSortEvent(e,r,"desc")}})])]:[]},renderFilterHeader(e){return renderHeaderCellBaseVNs(e,Cell.renderHeaderTitle(e).concat(Cell.renderFilterIcon(e)))},renderFilterIcon(l){const{$table:r,column:e,hasFilter:t}=l;var n=r["reactData"],n=n["filterStore"],a=r.getComputeMaps()["computeFilterOpts"],{showIcon:a,iconNone:o,iconMatch:d}=a.value;return a?[(0,_vue.h)("span",{class:["vxe-cell--filter",{"is--active":n.visible&&n.column===e}]},[(0,_vue.h)("i",{class:["vxe-filter--btn",t?d||getIcon().TABLE_FILTER_MATCH:o||getIcon().TABLE_FILTER_NONE],title:getI18n("vxe.table.filter"),onClick(e){r.triggerFilterEvent&&r.triggerFilterEvent(e,l.column,l)}})])]:[]},renderEditHeader(e){var{$table:l,column:r}=e,t=l["props"],n=l.getComputeMaps()["computeEditOpts"],{editConfig:t,editRules:a}=t,n=n.value,{sortable:o,filters:d,editRender:s}=r;let i=!1,c=(a&&(a=_xeUtils.default.get(a,r.field))&&(i=a.some(e=>e.required)),[]);return renderHeaderCellBaseVNs(e,(c=(0,_utils.isEnableConf)(t)?[i&&n.showAsterisk?(0,_vue.h)("i",{class:"vxe-cell--required-icon"}):renderEmptyElement(l),(0,_utils.isEnableConf)(s)&&n.showIcon?(0,_vue.h)("i",{class:["vxe-cell--edit-icon",n.icon||getIcon().TABLE_EDIT]}):renderEmptyElement(l)]:c).concat(Cell.renderHeaderTitle(e)).concat(o?Cell.renderSortIcon(e):[]).concat(d?Cell.renderFilterIcon(e):[]))},renderRowEdit(e){var{$table:l,column:r}=e,l=l["reactData"],l=l["editStore"],l=l["actived"],r=r["editRender"];return Cell.runRenderer(e,(0,_utils.isEnableConf)(r)&&l&&l.row===e.row)},renderTreeRowEdit(e){return Cell.renderTreeIcon(e,Cell.renderRowEdit(e))},renderCellEdit(e){var{$table:l,column:r}=e,l=l["reactData"],l=l["editStore"],l=l["actived"],r=r["editRender"];return Cell.runRenderer(e,(0,_utils.isEnableConf)(r)&&l&&l.row===e.row&&l.column===e.column)},renderTreeCellEdit(e){return Cell.renderTreeIcon(e,Cell.renderCellEdit(e))},runRenderer(e,l){var{$table:r,column:t}=e,{slots:t,editRender:n,formatter:a}=t,o=t?t.default:null,t=t?t.edit:null,d=renderer.get(n.name),d=d?d.renderTableEdit||d.renderEdit:null,s=Object.assign({$type:"",isEdit:l},e);return l?(s.$type="edit",t?r.callSlot(t,s):d?(0,_vn.getSlotVNs)(d(n,s)):[]):o?renderCellBaseVNs(e,r.callSlot(o,s)):a?renderCellBaseVNs(e,[(0,_vue.h)("span",{class:"vxe-cell--label"},getDefaultCellLabel(s))]):Cell.renderDefaultCell(s)}};var _default=exports.default=Cell;
|
package/lib/table/src/header.js
CHANGED
|
@@ -44,6 +44,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
44
44
|
} = $xeTable.getRefMaps();
|
|
45
45
|
const {
|
|
46
46
|
computeColumnOpts,
|
|
47
|
+
computeColumnDragOpts,
|
|
47
48
|
computeResizableOpts
|
|
48
49
|
} = $xeTable.getComputeMaps();
|
|
49
50
|
const headerColumn = (0, _vue.ref)([]);
|
|
@@ -208,6 +209,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
208
209
|
scrollbarWidth
|
|
209
210
|
} = tableReactData;
|
|
210
211
|
const columnOpts = computeColumnOpts.value;
|
|
212
|
+
const columnDragOpts = computeColumnDragOpts.value;
|
|
213
|
+
const {
|
|
214
|
+
disabledMethod: dragDisabledMethod
|
|
215
|
+
} = columnDragOpts;
|
|
211
216
|
return cols.map((column, $columnIndex) => {
|
|
212
217
|
const {
|
|
213
218
|
type,
|
|
@@ -245,6 +250,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
245
250
|
isHidden: fixedHiddenColumn,
|
|
246
251
|
hasFilter
|
|
247
252
|
};
|
|
253
|
+
const thAttrs = {
|
|
254
|
+
colid,
|
|
255
|
+
colspan: column.colSpan > 1 ? column.colSpan : null,
|
|
256
|
+
rowspan: column.rowSpan > 1 ? column.rowSpan : null
|
|
257
|
+
};
|
|
248
258
|
const thOns = {
|
|
249
259
|
onClick: evnt => $xeTable.triggerHeaderCellClickEvent(evnt, params),
|
|
250
260
|
onDblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt, params)
|
|
@@ -253,17 +263,25 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
253
263
|
if (scrollXLoad && !hasEllipsis) {
|
|
254
264
|
showEllipsis = hasEllipsis = true;
|
|
255
265
|
}
|
|
266
|
+
const isColDragCell = columnOpts.drag && columnDragOpts.trigger === 'cell';
|
|
267
|
+
let isDisabledDrag = false;
|
|
268
|
+
if (isColDragCell) {
|
|
269
|
+
isDisabledDrag = !!(dragDisabledMethod && dragDisabledMethod(params));
|
|
270
|
+
}
|
|
256
271
|
// 按下事件处理
|
|
257
|
-
if (mouseConfig) {
|
|
272
|
+
if (mouseConfig || isColDragCell) {
|
|
258
273
|
thOns.onMousedown = evnt => $xeTable.triggerHeaderCellMousedownEvent(evnt, params);
|
|
259
274
|
}
|
|
260
|
-
//
|
|
275
|
+
// 拖拽列事件
|
|
261
276
|
if (columnOpts.drag) {
|
|
262
277
|
thOns.onDragstart = $xeTable.handleHeaderCellDragDragstartEvent;
|
|
263
278
|
thOns.onDragend = $xeTable.handleHeaderCellDragDragendEvent;
|
|
264
279
|
thOns.onDragover = $xeTable.handleHeaderCellDragDragoverEvent;
|
|
280
|
+
if (isColDragCell) {
|
|
281
|
+
thOns.onMouseup = $xeTable.handleHeaderCellDragMouseupEvent;
|
|
282
|
+
}
|
|
265
283
|
}
|
|
266
|
-
return (0, _vue.h)('th', Object.assign(Object.assign({
|
|
284
|
+
return (0, _vue.h)('th', Object.assign(Object.assign(Object.assign({
|
|
267
285
|
class: ['vxe-header--column', colid, {
|
|
268
286
|
[`col--${headAlign}`]: headAlign,
|
|
269
287
|
[`col--${type}`]: type,
|
|
@@ -275,13 +293,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
275
293
|
'is--sortable': column.sortable,
|
|
276
294
|
'col--filter': !!column.filters,
|
|
277
295
|
'is--filter-active': hasFilter,
|
|
296
|
+
'is--drag-disabled': isDisabledDrag,
|
|
278
297
|
'col--current': currentColumn === column
|
|
279
298
|
}, headerClassName ? _xeUtils.default.isFunction(headerClassName) ? headerClassName(params) : headerClassName : '', headerCellClassName ? _xeUtils.default.isFunction(headerCellClassName) ? headerCellClassName(params) : headerCellClassName : ''],
|
|
280
|
-
colid,
|
|
281
|
-
colspan: column.colSpan > 1 ? column.colSpan : null,
|
|
282
|
-
rowspan: column.rowSpan > 1 ? column.rowSpan : null,
|
|
283
299
|
style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(params) : headerCellStyle : null
|
|
284
|
-
}, thOns), {
|
|
300
|
+
}, thAttrs), thOns), {
|
|
285
301
|
key: columnKey || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
|
|
286
302
|
}), [(0, _vue.h)('div', {
|
|
287
303
|
class: ['vxe-cell', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const renderer=_ui.VxeUI["renderer"],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(
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const renderer=_ui.VxeUI["renderer"],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 A=(0,_vue.inject)("$xeTable",{}),{xID:u,props:c,reactData:I,internalData:H}=A,{refElem:R,refTableBody:S,refLeftContainer:O,refRightContainer:E,refCellResizeBar:U,refCellResizeTip:$}=A.getRefMaps(),{computeColumnOpts:v,computeColumnDragOpts:l,computeResizableOpts:q}=A.getComputeMaps(),p=(0,_vue.ref)([]),F=(0,_vue.ref)(),f=(0,_vue.ref)(),h=(0,_vue.ref)(),m=(0,_vue.ref)(),g=(0,_vue.ref)(),x=(0,_vue.ref)(),t=()=>{var e=I["isGroup"];p.value=e?(0,_util.convertHeaderColumnToRows)(k.tableGroupColumn):[]},j=(e,t)=>{const s=t["column"],d=k["fixedType"],r=H["visibleColumn"],u=q.value;var l=S.value;const c=R.value,v=O.value,p=E.value,f=U.value,h=$.value,m=e["clientX"],g=F.value;var a=e.target;const x=t.cell=a.parentNode;let _=0;const b=l.$el;var l=(0,_dom.getOffsetPos)(a,g),a=a.clientWidth,i=Math.floor(a/2);const C=(0,_util.getColReMinWidth)(t)-i;let y=l.left-x.clientWidth+a+C,w=l.left+i;const n=document.onmousemove,o=document.onmouseup,D="left"===d,M="right"===d;let T=0;if(D||M){var W=D?"nextElementSibling":"previousElementSibling";let e=x[W];for(;e&&!(0,_dom.hasClass)(e,"fixed--hidden");)(0,_dom.hasClass)(e,"col--group")||(T+=e.offsetWidth),e=e[W];M&&p&&(w=p.offsetLeft+T)}function z(l){l.stopPropagation(),l.preventDefault();var t=l.clientX-m;let e=w+t;if(t=d?0:b.scrollLeft,D?e=Math.min(e,(p?p.offsetLeft:b.clientWidth)-T-C):M?(y=(v?v.clientWidth:0)+T+C,e=Math.min(e,w+x.clientWidth-C)):y=Math.max(b.scrollLeft,y),t=(_=Math.max(e,y))-t,f.style.left=t+"px",u.showDragTip&&h){var r=c.clientWidth,a=g.getBoundingClientRect(),i=f.clientWidth,n=h.clientWidth,o=h.clientHeight;let e=-n;t<n+i?e=n+i-t:r<t&&(e+=r-t),h.style.left=e+"px",h.style.top=Math.min(c.clientHeight-o,Math.max(0,l.clientY-a.y-o/2))+"px",h.textContent=s.renderWidth+(M?w-_:_-w)+"px"}}I._isResize=!0,(0,_dom.addClass)(c,"drag--resize"),f.style.display="block",document.onmousemove=z,document.onmouseup=function(e){document.onmousemove=n,document.onmouseup=o;const l=s.renderWidth+(M?w-_:_-w);s.resizeWidth=l,"fixed"===u.dragMode&&r.forEach(e=>{e.id===s.id||e.resizeWidth||(e.resizeWidth=e.renderWidth)}),f.style.display="none",I._isResize=!1,H._lastResizeTime=Date.now(),A.analyColumnWidth(),A.recalculate(!0).then(()=>{A.saveCustomStore("update:visible"),A.updateCellAreas(),A.dispatchEvent("resizable-change",Object.assign(Object.assign({},t),{resizeWidth:l}),e),setTimeout(()=>A.recalculate(!0),300)}),(0,_dom.removeClass)(c,"drag--resize")},z(e),A.closeMenu&&A.closeMenu()},_=(x,_)=>{const b=k["fixedType"],{resizable:C,border:y,columnKey:w,headerCellClassName:D,headerCellStyle:M,showHeaderOverflow:T,headerAlign:W,align:z,mouseConfig:H}=c,{currentColumn:R,scrollXLoad:S,overflowX:O,scrollbarWidth:e}=I,E=v.value,U=l.value,$=U["disabledMethod"];return x.map((e,l)=>{var{type:t,showHeaderOverflow:r,headerAlign:a,align:i,headerClassName:n,editRender:o,cellRender:s}=e,d=e.id,o=o||s,s=o?renderer.get(o.name):null,o=e.children&&e.children.length,u=b?e.fixed!==b&&!o:!!e.fixed&&O,r=_xeUtils.default.eqNull(r)?T:r,a=a||(s?s.tableHeaderCellAlign:"")||W||i||(s?s.tableCellAlign:"")||z;let c="ellipsis"===r;i="title"===r,s=!0===r||"tooltip"===r;let v=i||s||c;var r=e.filters&&e.filters.some(e=>e.checked),p=A.getColumnIndex(e),f=A.getVTColumnIndex(e);const h={$table:A,$grid:A.xegrid,$rowIndex:_,column:e,columnIndex:p,$columnIndex:l,_columnIndex:f,fixed:b,type:renderType,isHidden:u,hasFilter:r};var p={colid:d,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},f={onClick:e=>A.triggerHeaderCellClickEvent(e,h),onDblclick:e=>A.triggerHeaderCellDblclickEvent(e,h)},m=(S&&!v&&(c=v=!0),E.drag&&"cell"===U.trigger);let g=!1;return m&&(g=!(!$||!$(h))),(H||m)&&(f.onMousedown=e=>A.triggerHeaderCellMousedownEvent(e,h)),E.drag&&(f.onDragstart=A.handleHeaderCellDragDragstartEvent,f.onDragend=A.handleHeaderCellDragDragendEvent,f.onDragover=A.handleHeaderCellDragDragoverEvent,m)&&(f.onMouseup=A.handleHeaderCellDragMouseupEvent),(0,_vue.h)("th",Object.assign(Object.assign(Object.assign({class:["vxe-header--column",d,{["col--"+a]:a,["col--"+t]:t,"col--last":l===x.length-1,"col--fixed":e.fixed,"col--group":o,"col--ellipsis":v,"fixed--hidden":u,"is--sortable":e.sortable,"col--filter":!!e.filters,"is--filter-active":r,"is--drag-disabled":g,"col--current":R===e},n?_xeUtils.default.isFunction(n)?n(h):n:"",D?_xeUtils.default.isFunction(D)?D(h):D:""],style:M?_xeUtils.default.isFunction(M)?M(h):M:null},p),f),{key:w||E.useKey||E.drag||o?d:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":i,"c--tooltip":s,"c--ellipsis":c}]},e.renderHeader(h)),u||o||!(_xeUtils.default.isBoolean(e.resizable)?e.resizable:E.resizable||C)?null:(0,_vue.h)("div",{class:["vxe-resizable",{"is--line":!y||"none"===y}],onMousedown:e=>j(e,h)})])}).concat(e?[(0,_vue.h)("th",{key:"gr"+_,class:"vxe-header--gutter col--gutter"})]:[])};return(0,_vue.watch)(()=>k.tableColumn,t),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=k["fixedType"],l=A["internalData"],l=l["elemStore"],e=`${e||"main"}-header-`;l[e+"wrapper"]=F,l[e+"table"]=f,l[e+"colgroup"]=h,l[e+"list"]=m,l[e+"xSpace"]=g,l[e+"repair"]=x,t()})}),(0,_vue.onUnmounted)(()=>{var e=k["fixedType"],l=A["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}),()=>{var{fixedType:e,fixedColumn:l,tableColumn:t}=k,r=c["showHeaderOverflow"],{isGroup:a,scrollXLoad:i,scrollbarWidth:n}=I,o=H["visibleColumn"];let s=p.value,d=t;return a?d=o:(e&&(i||r)&&(d=l),s=[d]),(0,_vue.h)("div",{ref:F,class:["vxe-table--header-wrapper",e?`fixed-${e}--wrapper`:"body--wrapper"],xid:u},[e?(0,_vue.createCommentVNode)():(0,_vue.h)("div",{ref:g,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:f,class:"vxe-table--header",xid:u,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:h},d.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l})).concat(n?[(0,_vue.h)("col",{name:"col_gutter"})]:[])),(0,_vue.h)("thead",{ref:m},(e=>{const r=k["fixedType"],{headerRowClassName:a,headerRowStyle:i}=c,n=I["isDragColMove"],o=v.value;return e.map((e,l)=>{var t={$table:A,$rowIndex:l,fixed:r,type:renderType};return o.drag?(0,_vue.h)(_vue.TransitionGroup,{name:"vxe-header--col-list"+(n?"":"-disabled"),tag:"tr",class:["vxe-header--row",a?_xeUtils.default.isFunction(a)?a(t):a:""],style:i?_xeUtils.default.isFunction(i)?i(t):i:null},{default:()=>_(e,l)}):(0,_vue.h)("tr",{class:["vxe-header--row",a?_xeUtils.default.isFunction(a)?a(t):a:""],style:i?_xeUtils.default.isFunction(i)?i(t):i:null},_(e,l))})})(s))]),(0,_vue.h)("div",{ref:x,class:"vxe-table--header-border-line"})])}}});
|