vxe-table 4.16.15 → 4.16.16
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/README.md +1 -1
- package/README.zh-TW.md +1 -1
- package/es/grid/src/grid.js +7 -2
- package/es/grid/style.css +0 -1
- package/es/grid/style.min.css +1 -1
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/locale/lang/en-US.js +2 -2
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/filter/panel.js +2 -1
- package/es/table/module/menu/hook.js +9 -3
- package/es/table/module/menu/panel.js +113 -109
- package/es/table/src/header.js +4 -1
- package/es/table/src/table.js +53 -30
- package/es/table/src/util.js +19 -4
- package/es/ui/index.js +8 -5
- package/es/ui/src/log.js +1 -1
- package/es/vxe-grid/style.css +0 -1
- package/es/vxe-grid/style.min.css +1 -1
- package/lib/grid/src/grid.js +6 -2
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/grid/style/style.css +0 -1
- package/lib/grid/style/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +88 -40
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/en-US.js +2 -2
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +2 -2
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/filter/panel.js +3 -2
- package/lib/table/module/filter/panel.min.js +1 -1
- package/lib/table/module/menu/hook.js +12 -3
- package/lib/table/module/menu/hook.min.js +1 -1
- package/lib/table/module/menu/panel.js +22 -12
- package/lib/table/module/menu/panel.min.js +1 -1
- package/lib/table/src/header.js +3 -1
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/table.js +10 -10
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +26 -6
- package/lib/table/src/util.min.js +1 -1
- package/lib/ui/index.js +8 -5
- 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-grid/style/style.css +0 -1
- package/lib/vxe-grid/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/grid/src/grid.ts +8 -2
- package/packages/locale/lang/en-US.ts +2 -2
- package/packages/table/module/filter/panel.ts +2 -1
- package/packages/table/module/menu/hook.ts +11 -3
- package/packages/table/module/menu/panel.ts +112 -108
- package/packages/table/src/header.ts +3 -1
- package/packages/table/src/table.ts +53 -30
- package/packages/table/src/util.ts +19 -2
- package/packages/ui/index.ts +7 -4
- package/styles/components/grid.scss +0 -1
- /package/es/{iconfont.1758246364726.ttf → iconfont.1758344508103.ttf} +0 -0
- /package/es/{iconfont.1758246364726.woff → iconfont.1758344508103.woff} +0 -0
- /package/es/{iconfont.1758246364726.woff2 → iconfont.1758344508103.woff2} +0 -0
- /package/lib/{iconfont.1758246364726.ttf → iconfont.1758344508103.ttf} +0 -0
- /package/lib/{iconfont.1758246364726.woff → iconfont.1758344508103.woff} +0 -0
- /package/lib/{iconfont.1758246364726.woff2 → iconfont.1758344508103.woff2} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../../ui/src/comp"),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_vn=require("../../../ui/src/vn"),_log=require("../../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,getIcon,renderer}=_ui.VxeUI;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableFilterPanel",props:{filterStore:Object},setup(
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../../ui/src/comp"),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_dom=require("../../../ui/src/dom"),_vn=require("../../../ui/src/vn"),_log=require("../../../ui/src/log"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,getIcon,renderer}=_ui.VxeUI;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableFilterPanel",props:{filterStore:Object},setup(_,e){var t=_xeUtils.default.uniqueId();let m=(0,_vue.inject)("$xeTable",{}),{reactData:h,internalData:f,getComputeMaps:l}=m,x=l().computeFilterOpts,b=(0,_vue.ref)(),r={refElem:b},g={xID:t,props:_,context:e,getRefMaps:()=>r},C=(0,_vue.computed)(()=>{var e=_.filterStore;return e&&e.options.some(e=>e.checked)}),i=(e,t)=>{var l=_.filterStore;l.options.forEach(e=>{e._checked=t,e.checked=t}),l.isAllSelected=t,l.isIndeterminate=!1},F=e=>{e||(0,_log.warnLog)("vxe.error.delFunc",["confirmFilter","saveFilterPanelByEvent"]),m.handleFilterConfirmFilter(e||new Event("click"))};let E=e=>{m.handleFilterResetFilter(e)};let I=(e,t,l)=>{m.handleFilterChangeOption(e,t,l)},O=(e,t)=>{var l=_.filterStore;l.multiple?i(0,t):E(e)};t={changeRadioOption:(e,t,l)=>{m.handleFilterChangeRadioOption(e,t,l)},changeMultipleOption:(e,t,l)=>{m.handleFilterChangeMultipleOption(e,t,l)},changeAllOption:O,changeOption:I,confirmFilter:F,resetFilter:E};Object.assign(g,t);return g.renderVN=()=>{var e=_.filterStore,t=h.initStore,{visible:l,multiple:r,column:i}=e,a=i?i.filterRender:null,n=(0,_utils.isEnableConf)(a)?renderer.get(a.name):null,s=n?n.tableFilterClassName||n.filterClassName:"",o=Object.assign({},f._currFilterParams,{$panel:g,$table:m}),u=m.props,c=m.getComputeMaps().computeSize,c=c.value,{transfer:v,destroyOnClose:d,className:p}=x.value;return(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!v},[(0,_vue.h)("div",{ref:b,class:["vxe-table--filter-wrapper","filter--prevent-default",p,(0,_dom.getPropClass)(s,o),{["size--"+c]:c,"is--animat":u.animat,"is--multiple":r,"is--active":l}],style:e.style},t.filter&&(!d||l)&&i?((e,t)=>{let l=_.filterStore,{column:r,multiple:i,maxHeight:a}=l;var n=r?r.slots:null,n=n?n.filter:null,s=Object.assign({},f._currFilterParams,{$panel:g,$table:m}),t=t?t.renderTableFilter||t.renderFilter:null;return n?[(0,_vue.h)("div",{class:"vxe-table--filter-template",style:a?{maxHeight:a+"px"}:{}},m.callSlot(n,s))]:t?[(0,_vue.h)("div",{class:"vxe-table--filter-template",style:a?{maxHeight:a+"px"}:{}},(0,_vn.getSlotVNs)(t(e,s)))]:(n=i?l.isAllSelected:!l.options.some(e=>e._checked),t=i&&l.isIndeterminate,[(0,_vue.h)("ul",{class:"vxe-table--filter-header"},[(0,_vue.h)("li",{class:["vxe-table--filter-option",{"is--checked":n,"is--indeterminate":t}],title:getI18n(i?"vxe.table.allTitle":"vxe.table.allFilter"),onClick:e=>{O(e,!l.isAllSelected)}},(i?[(0,_vue.h)("span",{class:["vxe-checkbox--icon",t?getIcon().TABLE_CHECKBOX_INDETERMINATE:n?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([(0,_vue.h)("span",{class:"vxe-checkbox--label"},getI18n("vxe.table.allFilter"))]))]),(0,_vue.h)("ul",{class:"vxe-table--filter-body",style:a?{maxHeight:a+"px"}:{}},l.options.map(t=>{var e=t._checked;return(0,_vue.h)("li",{class:["vxe-table--filter-option",{"is--checked":t._checked}],title:t.label,onClick:e=>{I(e,!t._checked,t)}},(i?[(0,_vue.h)("span",{class:["vxe-checkbox--icon",e?getIcon().TABLE_CHECKBOX_CHECKED:getIcon().TABLE_CHECKBOX_UNCHECKED]})]:[]).concat([(0,_vue.h)("span",{class:"vxe-checkbox--label"},(0,_utils.formatText)(t.label,1))]))}))])})(a,n).concat((()=>{var e=_.filterStore,{column:t,multiple:l}=e,r=x.value,i=C.value,t=t.filterRender,t=(0,_utils.isEnableConf)(t)?renderer.get(t.name):null,i=!i&&!e.isAllSelected&&!e.isIndeterminate;return l&&(!t||!1!==t.showTableFilterFooter&&!1!==t.showFilterFooter&&!1!==t.isFooter)?[(0,_vue.h)("div",{class:"vxe-table--filter-footer"},[(0,_vue.h)("button",{class:{"is--disabled":i},disabled:i,onClick:F},r.confirmButtonText||getI18n("vxe.table.confirmFilter")),(0,_vue.h)("button",{onClick:E},r.resetButtonText||getI18n("vxe.table.resetFilter"))])]:[]})()):[])])},g},render(){return this.renderVN()}});
|
|
@@ -43,7 +43,10 @@ hooks.add('tableMenuModule', {
|
|
|
43
43
|
const isContentMenu = computeIsContentMenu.value;
|
|
44
44
|
const menuOpts = computeMenuOpts.value;
|
|
45
45
|
const config = menuOpts[type];
|
|
46
|
-
const
|
|
46
|
+
const {
|
|
47
|
+
transfer,
|
|
48
|
+
visibleMethod
|
|
49
|
+
} = menuOpts;
|
|
47
50
|
if (config) {
|
|
48
51
|
const {
|
|
49
52
|
options,
|
|
@@ -57,14 +60,20 @@ hooks.add('tableMenuModule', {
|
|
|
57
60
|
if (!visibleMethod || visibleMethod(params)) {
|
|
58
61
|
evnt.preventDefault();
|
|
59
62
|
$xeTable.updateZindex();
|
|
63
|
+
const el = refElem.value;
|
|
64
|
+
const tableRect = el.getBoundingClientRect();
|
|
60
65
|
const {
|
|
61
66
|
scrollTop,
|
|
62
67
|
scrollLeft,
|
|
63
68
|
visibleHeight,
|
|
64
69
|
visibleWidth
|
|
65
70
|
} = (0, _dom.getDomNode)();
|
|
66
|
-
let top = evnt.clientY
|
|
67
|
-
let left = evnt.clientX
|
|
71
|
+
let top = evnt.clientY - tableRect.y;
|
|
72
|
+
let left = evnt.clientX - tableRect.x;
|
|
73
|
+
if (transfer) {
|
|
74
|
+
top = evnt.clientY + scrollTop;
|
|
75
|
+
left = evnt.clientX + scrollLeft;
|
|
76
|
+
}
|
|
68
77
|
const handleVisible = () => {
|
|
69
78
|
internalData._currMenuParams = params;
|
|
70
79
|
Object.assign(ctxMenuStore, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_dom=require("../../../ui/src/dom"),_utils=require("../../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{menus,hooks,globalEvents,GLOBAL_EVENT_KEYS}=_ui.VxeUI,tableMenuMethodKeys=["closeMenu"];hooks.add("tableMenuModule",{setupTable(p){let{xID:M,props:x,reactData:E,internalData:_}=p,{refElem:C,refTableFilter:T,refTableMenu:y}=p.getRefMaps(),{computeMouseOpts:w,computeIsContentMenu:
|
|
1
|
+
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_dom=require("../../../ui/src/dom"),_utils=require("../../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{menus,hooks,globalEvents,GLOBAL_EVENT_KEYS}=_ui.VxeUI,tableMenuMethodKeys=["closeMenu"];hooks.add("tableMenuModule",{setupTable(p){let{xID:M,props:x,reactData:E,internalData:_}=p,{refElem:C,refTableFilter:T,refTableMenu:y}=p.getRefMaps(),{computeMouseOpts:w,computeIsContentMenu:l,computeMenuOpts:L}=p.getComputeMaps(),N;var e;let O=(v,t,g)=>{let f=E.ctxMenuStore;var n=l.value,e=L.value,t=e[t];let{transfer:h,visibleMethod:o}=e;if(t){let{options:l,disabled:e}=t;e?v.preventDefault():n&&l&&l.length&&(g.options=l,p.preventEvent(v,"event.showMenu",g,()=>{if(!o||o(g)){v.preventDefault(),p.updateZindex();var t=C.value.getBoundingClientRect();let{scrollTop:o,scrollLeft:i,visibleHeight:u,visibleWidth:s}=(0,_dom.getDomNode)(),r=v.clientY-t.y,a=v.clientX-t.x,n=(h&&(r=v.clientY+o,a=v.clientX+i),()=>{_._currMenuParams=g,Object.assign(f,{visible:!0,list:l,selected:null,selectChild:null,showChild:!1,style:{zIndex:_.tZindex,top:r+"px",left:a+"px"}}),(0,_vue.nextTick)(()=>{var e=y.value.getRefMaps().refElem.value,t=e.clientHeight,l=e.clientWidth,{boundingTop:e,boundingLeft:n}=(0,_dom.getAbsolutePos)(e),e=e+t-u,n=n+l-s;-10<e&&(f.style.top=Math.max(o+2,r-t-2)+"px"),-10<n&&(f.style.left=Math.max(i+2,a-l-2)+"px")})}),{keyboard:e,row:d,column:c}=g;e&&d&&c?p.scrollToRow(d,c).then(()=>{var e,t,l=p.getCellElement(d,c);l&&({boundingTop:e,boundingLeft:t}=(0,_dom.getAbsolutePos)(l),r=e+o+Math.floor(l.offsetHeight/2),a=t+i+Math.floor(l.offsetWidth/2)),n()}):n()}else N.closeMenu()}))}p.closeFilter()};return N={closeMenu(){return Object.assign(E.ctxMenuStore,{visible:!1,selected:null,selectChild:null,showChild:!1}),(0,_vue.nextTick)()}},e={moveCtxMenu(e,t,l,n,o,i){let u;var s=_xeUtils.default.findIndexOf(i,e=>t[l]===e);if(n)o&&(0,_utils.hasChildrenList)(t.selected)?t.showChild=!0:(t.showChild=!1,t.selectChild=null);else if(globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ARROW_UP)){for(let e=s-1;0<=e;e--)if(!1!==i[e].visible){u=i[e];break}t[l]=u||i[i.length-1]}else if(globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ARROW_DOWN)){for(let e=s+1;e<i.length;e++)if(!1!==i[e].visible){u=i[e];break}t[l]=u||i[0]}else t[l]&&(globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ENTER)||globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.SPACEBAR))&&p.ctxMenuLinkEvent(e,t[l])},handleOpenMenuEvent:O,handleGlobalContextmenuEvent(t){var l=p.xeGrid,n=p.xeGantt,{mouseConfig:e,menuConfig:o}=x,{editStore:i,ctxMenuStore:u}=E,s=_.visibleColumn,r=T.value,a=y.value,d=w.value,c=L.value,v=C.value,i=i.selected,g=["header","body","footer"];if((0,_utils.isEnableConf)(o)){if(u.visible&&a&&(0,_dom.getEventTargetNode)(t,a.getRefMaps().refElem.value).flag)return void t.preventDefault();if(_._keyCtx){o="body",u={type:o,$table:p,$grid:l,$gantt:n,keyboard:!0,columns:s.slice(0),$event:t};if(e&&d.area){a=p.getActiveCellArea();if(a&&a.row&&a.column)return u.row=a.row,u.column=a.column,void O(t,o,u)}else if(e&&d.selected&&i.row&&i.column)return u.row=i.row,u.column=i.column,void O(t,o,u)}for(let e=0;e<g.length;e++){var f=g[e],h=(0,_dom.getEventTargetNode)(t,v,`vxe-${f}--column`,e=>e.parentNode.parentNode.parentNode.getAttribute("xid")===M),b={type:f,$table:p,$grid:l,$gantt:n,columns:s.slice(0),$event:t};if(h.flag){var h=h.targetElem,m=p.getColumnNode(h),m=m?m.item:null;let e=f+"-";m&&Object.assign(b,{column:m,columnIndex:p.getColumnIndex(m),cell:h}),"body"===f&&(h=(m=p.getRowNode(h.parentNode))?m.item:null,e="",h)&&(b.row=h,b.rowIndex=p.getRowIndex(h));m=e+"cell-menu";return O(t,f,b),void p.dispatchEvent(m,b,t)}if((0,_dom.getEventTargetNode)(t,v,`vxe-table--${f}-wrapper`,e=>e.getAttribute("xid")===M).flag)return void("cell"===c.trigger?t.preventDefault():O(t,f,b))}}r&&!(0,_dom.getEventTargetNode)(t,r.getRefMaps().refElem.value).flag&&p.closeFilter(),N.closeMenu()},ctxMenuMouseoverEvent(e,t,l){let a=e.currentTarget;var n=E.ctxMenuStore;e.preventDefault(),e.stopPropagation(),n.selected=t,(n.selectChild=l)||(n.showChild=(0,_utils.hasChildrenList)(t),n.showChild&&(0,_vue.nextTick)(()=>{var o=a.nextElementSibling;if(o){var{boundingTop:i,boundingLeft:u,visibleHeight:s,visibleWidth:r}=(0,_dom.getAbsolutePos)(a),i=i+a.offsetHeight;let e="",t="",l=(u+a.offsetWidth+o.offsetWidth>r-10&&(e="auto",t=a.offsetWidth+"px"),""),n="";i+o.offsetHeight>s-10&&(l="auto",n="0"),o.style.left=e,o.style.right=t,o.style.top=l,o.style.bottom=n}}))},ctxMenuMouseoutEvent(e,t){var l=E.ctxMenuStore;t.children||(l.selected=null),l.selectChild=null},ctxMenuLinkEvent(e,t){var l,n=p.xeGrid,o=p.xeGantt;t.disabled||!t.code&&t.children&&t.children.length||(l=menus.get(t.code),t=Object.assign({},_._currMenuParams,{menu:t,$table:p,$grid:n,$gantt:o,$event:e}),(n=l?l.tableMenuMethod||l.menuMethod:null)&&n(t,e),p.dispatchEvent("menu-click",t,e),N.closeMenu())}},Object.assign(Object.assign({},N),e)},setupGrid(e){return e.extendTableMethods(tableMenuMethodKeys)},setupGantt(e){return e.extendTableMethods(tableMenuMethodKeys)}});
|
|
@@ -11,7 +11,8 @@ var _utils = require("../../../ui/src/utils");
|
|
|
11
11
|
var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
12
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
const {
|
|
14
|
-
getIcon
|
|
14
|
+
getIcon,
|
|
15
|
+
renderEmptyElement
|
|
15
16
|
} = _ui.VxeUI;
|
|
16
17
|
var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
17
18
|
name: 'VxeTableMenuPanel',
|
|
@@ -39,17 +40,26 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
39
40
|
computeMenuOpts
|
|
40
41
|
} = $xeTable.getComputeMaps();
|
|
41
42
|
const menuOpts = computeMenuOpts.value;
|
|
43
|
+
const {
|
|
44
|
+
transfer,
|
|
45
|
+
destroyOnClose
|
|
46
|
+
} = menuOpts;
|
|
47
|
+
const {
|
|
48
|
+
visible,
|
|
49
|
+
list,
|
|
50
|
+
className
|
|
51
|
+
} = ctxMenuStore;
|
|
42
52
|
return (0, _vue.h)(_vue.Teleport, {
|
|
43
53
|
to: 'body',
|
|
44
|
-
disabled:
|
|
54
|
+
disabled: !transfer
|
|
45
55
|
}, [(0, _vue.h)('div', {
|
|
46
56
|
ref: refElem,
|
|
47
|
-
class: ['vxe-table--context-menu-wrapper',
|
|
48
|
-
'is--visible':
|
|
57
|
+
class: ['vxe-table--context-menu-wrapper', className, {
|
|
58
|
+
'is--visible': visible
|
|
49
59
|
}],
|
|
50
60
|
style: ctxMenuStore.style
|
|
51
|
-
},
|
|
52
|
-
return options.every(item => item.visible === false) ? (
|
|
61
|
+
}, (destroyOnClose ? visible : true) ? list.map((options, gIndex) => {
|
|
62
|
+
return options.every(item => item.visible === false) ? renderEmptyElement($xeTable) : (0, _vue.h)('ul', {
|
|
53
63
|
class: 'vxe-context-menu--option-wrapper',
|
|
54
64
|
key: gIndex
|
|
55
65
|
}, options.map((item, index) => {
|
|
@@ -57,7 +67,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
57
67
|
const prefixOpts = Object.assign({}, item.prefixConfig);
|
|
58
68
|
const suffixOpts = Object.assign({}, item.suffixConfig);
|
|
59
69
|
const menuContent = (0, _utils.getFuncText)(item.name);
|
|
60
|
-
return item.visible === false ?
|
|
70
|
+
return item.visible === false ? renderEmptyElement($xeTable) : (0, _vue.h)('li', {
|
|
61
71
|
class: [item.className, {
|
|
62
72
|
'link--disabled': item.disabled,
|
|
63
73
|
'link--active': item === ctxMenuStore.selected
|
|
@@ -78,14 +88,14 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
78
88
|
class: ['vxe-context-menu--link-prefix', prefixOpts.className || '']
|
|
79
89
|
}, [(0, _vue.h)('i', {
|
|
80
90
|
class: prefixOpts.icon || item.prefixIcon
|
|
81
|
-
}), prefixOpts.content ? (0, _vue.h)('span', {}, `${prefixOpts.content}`) : (
|
|
91
|
+
}), prefixOpts.content ? (0, _vue.h)('span', {}, `${prefixOpts.content}`) : renderEmptyElement($xeTable)]), (0, _vue.h)('div', {
|
|
82
92
|
class: 'vxe-context-menu--link-content',
|
|
83
93
|
title: menuContent
|
|
84
94
|
}, menuContent), (0, _vue.h)('div', {
|
|
85
95
|
class: ['vxe-context-menu--link-suffix', suffixOpts.className || '']
|
|
86
96
|
}, [(0, _vue.h)('i', {
|
|
87
97
|
class: suffixOpts.icon || item.suffixIcon || (hasChildMenus ? getIcon().TABLE_MENU_OPTIONS : '')
|
|
88
|
-
}), suffixOpts.content ? (0, _vue.h)('span', `${suffixOpts.content}`) : (
|
|
98
|
+
}), suffixOpts.content ? (0, _vue.h)('span', `${suffixOpts.content}`) : renderEmptyElement($xeTable)])]), hasChildMenus ? (0, _vue.h)('ul', {
|
|
89
99
|
class: ['vxe-table--context-menu-clild-wrapper', {
|
|
90
100
|
'is--show': item === ctxMenuStore.selected && ctxMenuStore.showChild
|
|
91
101
|
}]
|
|
@@ -114,17 +124,17 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
114
124
|
class: ['vxe-context-menu--link-prefix', childPrefixOpts.className || '']
|
|
115
125
|
}, [(0, _vue.h)('i', {
|
|
116
126
|
class: childPrefixOpts.icon || child.prefixIcon
|
|
117
|
-
}), childPrefixOpts.content ? (0, _vue.h)('span', `${childPrefixOpts.content}`) : (
|
|
127
|
+
}), childPrefixOpts.content ? (0, _vue.h)('span', `${childPrefixOpts.content}`) : renderEmptyElement($xeTable)]), (0, _vue.h)('div', {
|
|
118
128
|
class: 'vxe-context-menu--link-content',
|
|
119
129
|
title: childMenuContent
|
|
120
130
|
}, childMenuContent), (0, _vue.h)('div', {
|
|
121
131
|
class: ['vxe-context-menu--link-suffix', childSuffixOpts.className || '']
|
|
122
132
|
}, [(0, _vue.h)('i', {
|
|
123
133
|
class: childSuffixOpts.icon
|
|
124
|
-
}), childSuffixOpts.content ? (0, _vue.h)('span', `${childSuffixOpts.content}`) : (
|
|
134
|
+
}), childSuffixOpts.content ? (0, _vue.h)('span', `${childSuffixOpts.content}`) : renderEmptyElement($xeTable)])])]);
|
|
125
135
|
})) : null]);
|
|
126
136
|
}));
|
|
127
|
-
}))]);
|
|
137
|
+
}) : [])]);
|
|
128
138
|
};
|
|
129
139
|
$xeMenuPanel.renderVN = renderVN;
|
|
130
140
|
return $xeMenuPanel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../../ui/src/comp"),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../../ui/src/comp"),_ui=require("../../../ui"),_utils=require("../../../ui/src/utils"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getIcon,renderEmptyElement}=_ui.VxeUI;var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableMenuPanel",setup(e,t){var n=_xeUtils.default.uniqueId();let o=(0,_vue.inject)("$xeTable",{}),u=o.reactData,l=(0,_vue.ref)(),s={refElem:l};n={xID:n,props:e,context:t,getRefMaps:()=>s};return n.renderVN=()=>{let r=u.ctxMenuStore;var e=o.getComputeMaps().computeMenuOpts,{transfer:e,destroyOnClose:t}=e.value,{visible:n,list:s,className:i}=r;return(0,_vue.h)(_vue.Teleport,{to:"body",disabled:!e},[(0,_vue.h)("div",{ref:l,class:["vxe-table--context-menu-wrapper",i,{"is--visible":n}],style:r.style},!t||n?s.map((e,c)=>e.every(e=>!1===e.visible)?renderEmptyElement(o):(0,_vue.h)("ul",{class:"vxe-context-menu--option-wrapper",key:c},e.map((u,l)=>{var e=u.children&&u.children.some(e=>!1!==e.visible),t=Object.assign({},u.prefixConfig),n=Object.assign({},u.suffixConfig),s=(0,_utils.getFuncText)(u.name);return!1===u.visible?renderEmptyElement(o):(0,_vue.h)("li",{class:[u.className,{"link--disabled":u.disabled,"link--active":u===r.selected}],key:c+"_"+l},[(0,_vue.h)("a",{class:"vxe-context-menu--link",onClick(e){o.ctxMenuLinkEvent(e,u)},onMouseover(e){o.ctxMenuMouseoverEvent(e,u)},onMouseout(e){o.ctxMenuMouseoutEvent(e,u)}},[(0,_vue.h)("div",{class:["vxe-context-menu--link-prefix",t.className||""]},[(0,_vue.h)("i",{class:t.icon||u.prefixIcon}),t.content?(0,_vue.h)("span",{},""+t.content):renderEmptyElement(o)]),(0,_vue.h)("div",{class:"vxe-context-menu--link-content",title:s},s),(0,_vue.h)("div",{class:["vxe-context-menu--link-suffix",n.className||""]},[(0,_vue.h)("i",{class:n.icon||u.suffixIcon||(e?getIcon().TABLE_MENU_OPTIONS:"")}),n.content?(0,_vue.h)("span",""+n.content):renderEmptyElement(o)])]),e?(0,_vue.h)("ul",{class:["vxe-table--context-menu-clild-wrapper",{"is--show":u===r.selected&&r.showChild}]},u.children.map((t,e)=>{var n=Object.assign({},t.prefixConfig),s=Object.assign({},t.suffixConfig),i=(0,_utils.getFuncText)(t.name);return!1===t.visible?null:(0,_vue.h)("li",{class:[t.className,{"link--disabled":t.disabled,"link--active":t===r.selectChild}],key:c+`_${l}_`+e},[(0,_vue.h)("a",{class:"vxe-context-menu--link",onClick(e){o.ctxMenuLinkEvent(e,t)},onMouseover(e){o.ctxMenuMouseoverEvent(e,u,t)},onMouseout(e){o.ctxMenuMouseoutEvent(e,u)}},[(0,_vue.h)("div",{class:["vxe-context-menu--link-prefix",n.className||""]},[(0,_vue.h)("i",{class:n.icon||t.prefixIcon}),n.content?(0,_vue.h)("span",""+n.content):renderEmptyElement(o)]),(0,_vue.h)("div",{class:"vxe-context-menu--link-content",title:i},i),(0,_vue.h)("div",{class:["vxe-context-menu--link-suffix",s.className||""]},[(0,_vue.h)("i",{class:s.icon}),s.content?(0,_vue.h)("span",""+s.content):renderEmptyElement(o)])])])})):null])}))):[])])},n},render(){return this.renderVN()}});
|
package/lib/table/src/header.js
CHANGED
|
@@ -257,7 +257,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
257
257
|
} else {
|
|
258
258
|
tcStyle.minHeight = `${currCellHeight}px`;
|
|
259
259
|
}
|
|
260
|
-
if (
|
|
260
|
+
if (showCustomHeader) {
|
|
261
|
+
// custom
|
|
262
|
+
} else if (isColGroup && !isLastRow) {
|
|
261
263
|
const firstCol = getColumnFirstChild(column);
|
|
262
264
|
const lastCol = getColumnLastChild(column);
|
|
263
265
|
if (firstCol && lastCol && firstCol.id !== lastCol.id) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,renderType="header";function getColumnFirstChild(e){var l=e.children;return l&&l.length?getColumnFirstChild(l[0]):e}function getColumnLastChild(e){var l=e.children;return l&&l.length?getColumnLastChild(l[l.length-1]):e}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(f){let pe=(0,_vue.inject)("$xeTable",{}),{xID:C,props:_,reactData:b,internalData:w}=pe,{computeColumnOpts:a,computeColumnDragOpts:r,computeCellOpts:t,computeMouseOpts:y,computeHeaderCellOpts:n,computeDefaultRowHeight:i,computeVirtualXOpts:o}=pe.getComputeMaps(),D=(0,_vue.ref)([]),H=(0,_vue.ref)(),E=(0,_vue.ref)(),S=(0,_vue.ref)(),M=(0,_vue.ref)(),O=(0,_vue.ref)(),T=(0,_vue.ref)(),d=(0,_vue.ref)(),u=()=>{var e=_.showCustomHeader,{collectColumn:l,visibleColumn:a}=w,r=f.tableGroupColumn,t=b.isGroup;let n=t?(0,_util.convertHeaderColumnToRows)(r):[],i=[];e&&1<n.length&&(i=(0,_util.convertHeaderToGridRows)(n),n=i),D.value=n,pe.dispatchEvent("columns-change",{visibleColgroups:i,collectColumn:l,visibleColumn:a},null)},I=(O,T,e,I,k)=>{let F=pe.xeGrid,R=pe.xeGantt,U=f.fixedType,{resizable:$,columnKey:z,showCustomHeader:L,headerCellClassName:q,headerCellStyle:A,showHeaderOverflow:G,headerAlign:X,align:j,mouseConfig:N}=_,{currentColumn:V,dragCol:W,scrollXLoad:B,scrollYLoad:K,overflowX:P,mergeHeadFlag:Y,tableColumn:J}=b,{fullColumnIdData:Q,scrollXStore:Z,mergeHeaderList:ee,mergeHeaderCellMaps:le}=w,ae=o.value,re=a.value,te=r.value,ne=t.value;var l=i.value;let ie=n.value,oe=(0,_util.getCalcHeight)(ie.height)||l,{disabledMethod:de,isCrossDrag:se,isPeerDrag:ce}=te,ue=I===e.length-1;return k.map((e,l)=>{var{type:a,showHeaderOverflow:r,headerAlign:t,align:n,filters:i,headerClassName:o,editRender:d,cellRender:u}=e,s=e.id,c=Q[s]||{},d=d||u,u=d?renderer.get(d.name):null,d=e.children&&e.children.length,p=P&&!d&&(U?e.fixed!==U:!!e.fixed),v=(_xeUtils.default.isBoolean(ie.padding)?ie:ne).padding,r=_xeUtils.default.eqNull(r)?G:r,t=t||(u?u.tableHeaderCellAlign:"")||X||n||(u?u.tableCellAlign:"")||j,n="ellipsis"===r,u="title"===r,r=!0===r||"tooltip"===r,h=u||r||n;let g=!1,x=null;i&&(x=i[0],g=i.some(e=>e.checked));var m=c.index,c=c._index;let f={$table:pe,$grid:F,$gantt:R,$rowIndex:I,column:e,columnIndex:m,$columnIndex:l,_columnIndex:c,firstFilterOption:x,fixed:U,type:renderType,isHidden:p,hasFilter:g};m={colid:s};let C=!1;if(L||(m.colspan=1<e.colSpan?e.colSpan:null,m.rowspan=1<e.rowSpan?e.rowSpan:null),Y&&ee.length&&(L||ue)){var _=le[I+":"+(L?l:c)];if(_){var{rowspan:_,colspan:b}=_;if(!_||!b)return null;1<_&&(C=!0,m.rowspan=_),1<b&&(C=!0,m.colspan=b)}}_={onClick:e=>pe.triggerHeaderCellClickEvent(e,f),onDblclick:e=>pe.triggerHeaderCellDblclickEvent(e,f)},b=re.drag&&"cell"===te.trigger;let w=!1;b&&(w=!(!de||!de(f))),(N||b)&&(_.onMousedown=e=>pe.triggerHeaderCellMousedownEvent(e,f)),re.drag&&(_.onDragstart=pe.handleHeaderCellDragDragstartEvent,_.onDragend=pe.handleHeaderCellDragDragendEvent,_.onDragover=pe.handleHeaderCellDragDragoverEvent,b)&&(_.onMouseup=pe.handleHeaderCellDragMouseupEvent);var b=l===k.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:re.resizable||$,D=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let H=!1;!T||!P||O||C||W&&W.id===s||B&&10<J.length&&!e.fixed&&!ae.immediate&&(c<Z.visibleStartIndex-Z.preloadSize||c>Z.visibleEndIndex+Z.preloadSize)&&(H=!0);var E,S,M,c={};return h?c.height=oe+"px":c.minHeight=oe+"px",d&&!ue&&(S=getColumnFirstChild(e),E=getColumnLastChild(e),S)&&E&&S.id!==E.id&&(S=Q[S.id],M=Q[E.id],S)&&M&&(c.width=M.oLeft-S.oLeft+E.renderWidth+"px"),(0,_vue.h)("th",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-header--column",s,p?"fixed--hidden":"fixed--visible",{["col--"+t]:t,["col--"+a]:a,"col--last":b,"col--fixed":e.fixed,"col--group":d,"col--ellipsis":h,"fixed--width":!D,"is--padding":v,"is--sortable":e.sortable,"col--filter":!!i,"is--filter-active":g,"is--drag-active":re.drag&&!e.fixed&&!w&&(se||ce||!e.parentId),"is--drag-disabled":re.drag&&w,"col--current":V===e},o?_xeUtils.default.isFunction(o)?o(f):o:"",q?_xeUtils.default.isFunction(q)?q(f):q:""],style:A?_xeUtils.default.isFunction(A)?A(f):A:null},m),_),{key:L?""+s+l:z||B||K||re.useKey||re.drag||d?s:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":r,"c--ellipsis":n}],style:c},H||T&&p?[]:[(0,_vue.h)("div",{colid:s,class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(f))]),p||!y||L&&!ue?renderEmptyElement(pe):(0,_vue.h)("div",{class:"vxe-cell--col-resizable",onMousedown:e=>pe.handleColResizeMousedownEvent(e,U,f),onDblclick:e=>pe.handleColResizeDblclickEvent(e,f)})])})};return(0,_vue.watch)(()=>f.tableColumn,u),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=f.fixedType,l=pe.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=H,l[e+"scroll"]=E,l[e+"table"]=S,l[e+"colgroup"]=M,l[e+"list"]=O,l[e+"xSpace"]=T,l[e+"repair"]=d,u()})}),(0,_vue.onUnmounted)(()=>{var e=f.fixedType,l=pe.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:a}=f;var{mouseConfig:r,showHeaderOverflow:t,spanMethod:n,footerSpanMethod:i}=_,{isGroup:o,isColLoading:d,overflowX:u,scrollXLoad:s,dragCol:c}=b,{visibleColumn:p,fullColumnIdData:v}=w,h=y.value;let g=D.value||[],x=a,m=!1;return o?x=p:(s&&t&&(n||i||(m=!0)),m&&(d||!l&&u)||(x=p),l&&m&&(x=e||[]),g=[x]),l||o||s&&c&&2<x.length&&(t=v[c.id])&&(n=t._index,i=x[0],d=x[x.length-1],u=v[i.id],p=v[d.id],u)&&p&&(s=u._index,t=p._index,n<s?(x=[c].concat(x),g=[[c].concat(g[0])].concat(g.slice(1))):t<n&&(x=x.concat([c]),g=[g[0].concat([c])].concat(g.slice(1)))),(0,_vue.h)("div",{ref:H,class:["vxe-table--header-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:C},[(0,_vue.h)("div",{ref:E,class:"vxe-table--header-inner-wrapper",onScroll(e){pe.triggerHeaderScrollEvent(e,l)}},[l?renderEmptyElement(pe):(0,_vue.h)("div",{ref:T,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:S,class:"vxe-table--header",xid:C,cellspacing:0,cellpadding:0,border:0,xvm:m?"1":null},[(0,_vue.h)("colgroup",{ref:M},x.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("thead",{ref:O},((r,t,n)=>{let i=f.fixedType,{headerRowClassName:o,headerRowStyle:d}=_;return n.map((e,l)=>{var a={$table:pe,$rowIndex:l,fixed:i,type:renderType};return(0,_vue.h)("tr",{key:l,class:["vxe-header--row",o?_xeUtils.default.isFunction(o)?o(a):o:""],style:d?_xeUtils.default.isFunction(d)?d(a):d:null},I(r,t,n,l,e))})})(o,m,g))]),r&&h.area?(0,_vue.h)("div",{class:"vxe-table--cell-area",xid:C},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(pe)])])}}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,renderType="header";function getColumnFirstChild(e){var l=e.children;return l&&l.length?getColumnFirstChild(l[0]):e}function getColumnLastChild(e){var l=e.children;return l&&l.length?getColumnLastChild(l[l.length-1]):e}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(f){let pe=(0,_vue.inject)("$xeTable",{}),{xID:C,props:_,reactData:b,internalData:w}=pe,{computeColumnOpts:a,computeColumnDragOpts:r,computeCellOpts:t,computeMouseOpts:y,computeHeaderCellOpts:n,computeDefaultRowHeight:i,computeVirtualXOpts:o}=pe.getComputeMaps(),D=(0,_vue.ref)([]),H=(0,_vue.ref)(),E=(0,_vue.ref)(),S=(0,_vue.ref)(),M=(0,_vue.ref)(),O=(0,_vue.ref)(),T=(0,_vue.ref)(),d=(0,_vue.ref)(),u=()=>{var e=_.showCustomHeader,{collectColumn:l,visibleColumn:a}=w,r=f.tableGroupColumn,t=b.isGroup;let n=t?(0,_util.convertHeaderColumnToRows)(r):[],i=[];e&&1<n.length&&(i=(0,_util.convertHeaderToGridRows)(n),n=i),D.value=n,pe.dispatchEvent("columns-change",{visibleColgroups:i,collectColumn:l,visibleColumn:a},null)},I=(O,T,e,I,k)=>{let F=pe.xeGrid,R=pe.xeGantt,U=f.fixedType,{resizable:$,columnKey:z,showCustomHeader:L,headerCellClassName:q,headerCellStyle:A,showHeaderOverflow:G,headerAlign:X,align:j,mouseConfig:N}=_,{currentColumn:V,dragCol:W,scrollXLoad:B,scrollYLoad:K,overflowX:P,mergeHeadFlag:Y,tableColumn:J}=b,{fullColumnIdData:Q,scrollXStore:Z,mergeHeaderList:ee,mergeHeaderCellMaps:le}=w,ae=o.value,re=a.value,te=r.value,ne=t.value;var l=i.value;let ie=n.value,oe=(0,_util.getCalcHeight)(ie.height)||l,{disabledMethod:de,isCrossDrag:se,isPeerDrag:ce}=te,ue=I===e.length-1;return k.map((e,l)=>{var{type:a,showHeaderOverflow:r,headerAlign:t,align:n,filters:i,headerClassName:o,editRender:d,cellRender:u}=e,s=e.id,c=Q[s]||{},d=d||u,u=d?renderer.get(d.name):null,d=e.children&&e.children.length,p=P&&!d&&(U?e.fixed!==U:!!e.fixed),v=(_xeUtils.default.isBoolean(ie.padding)?ie:ne).padding,r=_xeUtils.default.eqNull(r)?G:r,t=t||(u?u.tableHeaderCellAlign:"")||X||n||(u?u.tableCellAlign:"")||j,n="ellipsis"===r,u="title"===r,r=!0===r||"tooltip"===r,h=u||r||n;let g=!1,x=null;i&&(x=i[0],g=i.some(e=>e.checked));var m=c.index,c=c._index;let f={$table:pe,$grid:F,$gantt:R,$rowIndex:I,column:e,columnIndex:m,$columnIndex:l,_columnIndex:c,firstFilterOption:x,fixed:U,type:renderType,isHidden:p,hasFilter:g};m={colid:s};let C=!1;if(L||(m.colspan=1<e.colSpan?e.colSpan:null,m.rowspan=1<e.rowSpan?e.rowSpan:null),Y&&ee.length&&(L||ue)){var _=le[I+":"+(L?l:c)];if(_){var{rowspan:_,colspan:b}=_;if(!_||!b)return null;1<_&&(C=!0,m.rowspan=_),1<b&&(C=!0,m.colspan=b)}}_={onClick:e=>pe.triggerHeaderCellClickEvent(e,f),onDblclick:e=>pe.triggerHeaderCellDblclickEvent(e,f)},b=re.drag&&"cell"===te.trigger;let w=!1;b&&(w=!(!de||!de(f))),(N||b)&&(_.onMousedown=e=>pe.triggerHeaderCellMousedownEvent(e,f)),re.drag&&(_.onDragstart=pe.handleHeaderCellDragDragstartEvent,_.onDragend=pe.handleHeaderCellDragDragendEvent,_.onDragover=pe.handleHeaderCellDragDragoverEvent,b)&&(_.onMouseup=pe.handleHeaderCellDragMouseupEvent);var b=l===k.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:re.resizable||$,D=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let H=!1;!T||!P||O||C||W&&W.id===s||B&&10<J.length&&!e.fixed&&!ae.immediate&&(c<Z.visibleStartIndex-Z.preloadSize||c>Z.visibleEndIndex+Z.preloadSize)&&(H=!0);var E,S,M,c={};return h?c.height=oe+"px":c.minHeight=oe+"px",L||d&&!ue&&(S=getColumnFirstChild(e),E=getColumnLastChild(e),S)&&E&&S.id!==E.id&&(S=Q[S.id],M=Q[E.id],S)&&M&&(c.width=M.oLeft-S.oLeft+E.renderWidth+"px"),(0,_vue.h)("th",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-header--column",s,p?"fixed--hidden":"fixed--visible",{["col--"+t]:t,["col--"+a]:a,"col--last":b,"col--fixed":e.fixed,"col--group":d,"col--ellipsis":h,"fixed--width":!D,"is--padding":v,"is--sortable":e.sortable,"col--filter":!!i,"is--filter-active":g,"is--drag-active":re.drag&&!e.fixed&&!w&&(se||ce||!e.parentId),"is--drag-disabled":re.drag&&w,"col--current":V===e},o?_xeUtils.default.isFunction(o)?o(f):o:"",q?_xeUtils.default.isFunction(q)?q(f):q:""],style:A?_xeUtils.default.isFunction(A)?A(f):A:null},m),_),{key:L?""+s+l:z||B||K||re.useKey||re.drag||d?s:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":r,"c--ellipsis":n}],style:c},H||T&&p?[]:[(0,_vue.h)("div",{colid:s,class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(f))]),p||!y||L&&!ue?renderEmptyElement(pe):(0,_vue.h)("div",{class:"vxe-cell--col-resizable",onMousedown:e=>pe.handleColResizeMousedownEvent(e,U,f),onDblclick:e=>pe.handleColResizeDblclickEvent(e,f)})])})};return(0,_vue.watch)(()=>f.tableColumn,u),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=f.fixedType,l=pe.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=H,l[e+"scroll"]=E,l[e+"table"]=S,l[e+"colgroup"]=M,l[e+"list"]=O,l[e+"xSpace"]=T,l[e+"repair"]=d,u()})}),(0,_vue.onUnmounted)(()=>{var e=f.fixedType,l=pe.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:a}=f;var{mouseConfig:r,showHeaderOverflow:t,spanMethod:n,footerSpanMethod:i}=_,{isGroup:o,isColLoading:d,overflowX:u,scrollXLoad:s,dragCol:c}=b,{visibleColumn:p,fullColumnIdData:v}=w,h=y.value;let g=D.value||[],x=a,m=!1;return o?x=p:(s&&t&&(n||i||(m=!0)),m&&(d||!l&&u)||(x=p),l&&m&&(x=e||[]),g=[x]),l||o||s&&c&&2<x.length&&(t=v[c.id])&&(n=t._index,i=x[0],d=x[x.length-1],u=v[i.id],p=v[d.id],u)&&p&&(s=u._index,t=p._index,n<s?(x=[c].concat(x),g=[[c].concat(g[0])].concat(g.slice(1))):t<n&&(x=x.concat([c]),g=[g[0].concat([c])].concat(g.slice(1)))),(0,_vue.h)("div",{ref:H,class:["vxe-table--header-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:C},[(0,_vue.h)("div",{ref:E,class:"vxe-table--header-inner-wrapper",onScroll(e){pe.triggerHeaderScrollEvent(e,l)}},[l?renderEmptyElement(pe):(0,_vue.h)("div",{ref:T,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:S,class:"vxe-table--header",xid:C,cellspacing:0,cellpadding:0,border:0,xvm:m?"1":null},[(0,_vue.h)("colgroup",{ref:M},x.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("thead",{ref:O},((r,t,n)=>{let i=f.fixedType,{headerRowClassName:o,headerRowStyle:d}=_;return n.map((e,l)=>{var a={$table:pe,$rowIndex:l,fixed:i,type:renderType};return(0,_vue.h)("tr",{key:l,class:["vxe-header--row",o?_xeUtils.default.isFunction(o)?o(a):o:""],style:d?_xeUtils.default.isFunction(d)?d(a):d:null},I(r,t,n,l,e))})})(o,m,g))]),r&&h.area?(0,_vue.h)("div",{class:"vxe-table--cell-area",xid:C},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(pe)])])}}});
|
package/lib/table/src/table.js
CHANGED
|
@@ -38,7 +38,7 @@ focused:{row:null,column:null}},// 存放 tooltip 相关信息
|
|
|
38
38
|
tooltipStore:{row:null,column:null,content:null,visible:false,type:null,currOpts:{}},// 存放数据校验相关信息
|
|
39
39
|
validStore:{visible:false},validErrorMaps:{},// 导入相关信息
|
|
40
40
|
importStore:{inited:false,file:null,type:'',modeList:[],typeList:[],filename:'',visible:false},importParams:{mode:'',types:null,message:true},// 导出相关信息
|
|
41
|
-
exportStore:{inited:false,name:'',modeList:[],typeList:[],columns:[],isPrint:false,hasFooter:false,hasMerge:false,hasTree:false,hasColgroup:false,visible:false},exportParams:{filename:'',sheetName:'',mode:'',type:'',isColgroup:false,isMerge:false,isAllExpand:false,useStyle:false,original:false,message:true,isHeader:false,isTitle:false,isFooter:false},visiblwRowsFlag:1,isRowGroupStatus:false,rowGroupList:[],aggHandleFields:[],aggHandleAggColumns:[],rowGroupExpandedFlag:1,rowExpandedFlag:1,treeExpandedFlag:1,updateCheckboxFlag:1,pendingRowFlag:1,insertRowFlag:1,removeRowFlag:1,mergeHeadFlag:1,mergeBodyFlag:1,mergeFootFlag:1,rowHeightStore:{large:52,default:48,medium:44,small:40,mini:36},scrollVMLoading:false,scrollYHeight:0,scrollYTop:0,isScrollYBig:false,scrollXLeft:0,scrollXWidth:0,isScrollXBig:false,lazScrollLoading:false,rowExpandHeightFlag:1,calcCellHeightFlag:1,resizeHeightFlag:1,resizeWidthFlag:1,isCustomStatus:false,isCrossDragRow:false,dragRow:null,isCrossDragCol:false,dragCol:null,dragTipText:'',isDragResize:false,isRowLoading:false,isColLoading:false});const internalData=(0,_util.createInternalData)();let tableMethods={};let tablePrivateMethods={};const refElem=(0,_vue.ref)();const refVarElem=(0,_vue.ref)();const refTooltip=(0,_vue.ref)();const refCommTooltip=(0,_vue.ref)();const refValidTooltip=(0,_vue.ref)();const refTableMenu=(0,_vue.ref)();const refTableFilter=(0,_vue.ref)();const refTableCustom=(0,_vue.ref)();const refTableViewportElem=(0,_vue.ref)();const refTableHeader=(0,_vue.ref)();const refTableBody=(0,_vue.ref)();const refTableFooter=(0,_vue.ref)();const refTableLeftHeader=(0,_vue.ref)();const refTableLeftBody=(0,_vue.ref)();const refTableLeftFooter=(0,_vue.ref)();const refTableRightHeader=(0,_vue.ref)();const refTableRightBody=(0,_vue.ref)();const refTableRightFooter=(0,_vue.ref)();const refTeleportWrapper=(0,_vue.ref)();const refLeftContainer=(0,_vue.ref)();const refRightContainer=(0,_vue.ref)();const refColResizeBar=(0,_vue.ref)();const refRowResizeBar=(0,_vue.ref)();const refEmptyPlaceholder=(0,_vue.ref)();const refDragTipElem=(0,_vue.ref)();const refDragRowLineElem=(0,_vue.ref)();const refDragColLineElem=(0,_vue.ref)();const refRowExpandElem=(0,_vue.ref)();const refRowExpandYSpaceElem=(0,_vue.ref)();const refScrollXVirtualElem=(0,_vue.ref)();const refScrollYVirtualElem=(0,_vue.ref)();const refScrollXHandleElem=(0,_vue.ref)();const refScrollXLeftCornerElem=(0,_vue.ref)();const refScrollXRightCornerElem=(0,_vue.ref)();const refScrollYHandleElem=(0,_vue.ref)();const refScrollYTopCornerElem=(0,_vue.ref)();const refScrollXWrapperElem=(0,_vue.ref)();const refScrollYWrapperElem=(0,_vue.ref)();const refScrollYBottomCornerElem=(0,_vue.ref)();const refScrollXSpaceElem=(0,_vue.ref)();const refScrollYSpaceElem=(0,_vue.ref)();let $xeToolbar;const computeTableId=(0,_vue.computed)(()=>{const{id}=props;if(id){if(_xeUtils.default.isFunction(id)){return`${id({$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt})||''}`;}return`${id}`;}return'';});const computeRowField=(0,_vue.computed)(()=>{const rowOpts=computeRowOpts.value;return`${props.rowId||rowOpts.keyField||'_X_ROW_KEY'}`;});const computeValidOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.validConfig,props.validConfig);});/**
|
|
41
|
+
exportStore:{inited:false,name:'',modeList:[],typeList:[],columns:[],isPrint:false,hasFooter:false,hasMerge:false,hasTree:false,hasColgroup:false,visible:false},exportParams:{filename:'',sheetName:'',mode:'',type:'',isColgroup:false,isMerge:false,isAllExpand:false,useStyle:false,original:false,message:true,isHeader:false,isTitle:false,isFooter:false},visiblwRowsFlag:1,isRowGroupStatus:false,rowGroupList:[],aggHandleFields:[],aggHandleAggColumns:[],rowGroupExpandedFlag:1,rowExpandedFlag:1,treeExpandedFlag:1,updateCheckboxFlag:1,pendingRowFlag:1,insertRowFlag:1,removeRowFlag:1,mergeHeadFlag:1,mergeBodyFlag:1,mergeFootFlag:1,rowHeightStore:{large:52,default:48,medium:44,small:40,mini:36},scrollVMLoading:false,scrollYHeight:0,scrollYTop:0,isScrollYBig:false,scrollXLeft:0,scrollXWidth:0,isScrollXBig:false,lazScrollLoading:false,rowExpandHeightFlag:1,calcCellHeightFlag:1,resizeHeightFlag:1,resizeWidthFlag:1,isCustomStatus:false,isCrossDragRow:false,dragRow:null,isCrossDragCol:false,dragCol:null,dragTipText:'',isDragResize:false,isRowLoading:false,isColLoading:false});const internalData=(0,_util.createInternalData)();let tableMethods={};let tablePrivateMethods={};const refElem=(0,_vue.ref)();const refVarElem=(0,_vue.ref)();const refTooltip=(0,_vue.ref)();const refCommTooltip=(0,_vue.ref)();const refValidTooltip=(0,_vue.ref)();const refTableMenu=(0,_vue.ref)();const refTableFilter=(0,_vue.ref)();const refTableCustom=(0,_vue.ref)();const refTableViewportElem=(0,_vue.ref)();const refTableHeader=(0,_vue.ref)();const refTableBody=(0,_vue.ref)();const refTableFooter=(0,_vue.ref)();const refTableLeftHeader=(0,_vue.ref)();const refTableLeftBody=(0,_vue.ref)();const refTableLeftFooter=(0,_vue.ref)();const refTableRightHeader=(0,_vue.ref)();const refTableRightBody=(0,_vue.ref)();const refTableRightFooter=(0,_vue.ref)();const refTeleportWrapper=(0,_vue.ref)();const refPopupWrapperElem=(0,_vue.ref)();const refLeftContainer=(0,_vue.ref)();const refRightContainer=(0,_vue.ref)();const refColResizeBar=(0,_vue.ref)();const refRowResizeBar=(0,_vue.ref)();const refEmptyPlaceholder=(0,_vue.ref)();const refDragTipElem=(0,_vue.ref)();const refDragRowLineElem=(0,_vue.ref)();const refDragColLineElem=(0,_vue.ref)();const refRowExpandElem=(0,_vue.ref)();const refRowExpandYSpaceElem=(0,_vue.ref)();const refScrollXVirtualElem=(0,_vue.ref)();const refScrollYVirtualElem=(0,_vue.ref)();const refScrollXHandleElem=(0,_vue.ref)();const refScrollXLeftCornerElem=(0,_vue.ref)();const refScrollXRightCornerElem=(0,_vue.ref)();const refScrollYHandleElem=(0,_vue.ref)();const refScrollYTopCornerElem=(0,_vue.ref)();const refScrollXWrapperElem=(0,_vue.ref)();const refScrollYWrapperElem=(0,_vue.ref)();const refScrollYBottomCornerElem=(0,_vue.ref)();const refScrollXSpaceElem=(0,_vue.ref)();const refScrollYSpaceElem=(0,_vue.ref)();let $xeToolbar;const computeTableId=(0,_vue.computed)(()=>{const{id}=props;if(id){if(_xeUtils.default.isFunction(id)){return`${id({$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt})||''}`;}return`${id}`;}return'';});const computeRowField=(0,_vue.computed)(()=>{const rowOpts=computeRowOpts.value;return`${props.rowId||rowOpts.keyField||'_X_ROW_KEY'}`;});const computeValidOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.validConfig,props.validConfig);});/**
|
|
42
42
|
* @deprecated
|
|
43
43
|
*/const computeSXOpts=(0,_vue.computed)(()=>{const virtualXOpts=computeVirtualXOpts.value;return virtualXOpts;});const computeScrollXThreshold=(0,_vue.computed)(()=>{const virtualXOpts=computeVirtualXOpts.value;const{threshold}=virtualXOpts;if(threshold){return _xeUtils.default.toNumber(threshold);}return 0;});/**
|
|
44
44
|
* @deprecated
|
|
@@ -230,7 +230,7 @@ tableFullColumn.forEach(column=>{if(column.visible){if(column.fixed==='left'){le
|
|
|
230
230
|
// }
|
|
231
231
|
if(props.spanMethod){(0,_log.warnLog)('vxe.error.scrollErrProp',['span-method']);}if(props.footerSpanMethod){(0,_log.warnLog)('vxe.error.scrollErrProp',['footer-span-method']);}if(isReset){const{visibleSize}=handleVirtualXVisible();scrollXStore.startIndex=0;scrollXStore.endIndex=visibleSize;scrollXStore.visibleSize=visibleSize;scrollXStore.visibleStartIndex=0;scrollXStore.visibleEndIndex=visibleSize;}}// 如果列被显示/隐藏,则清除合并状态
|
|
232
232
|
// 如果列被设置为固定,则清除合并状态
|
|
233
|
-
if(visibleColumn.length!==internalData.visibleColumn.length||!internalData.visibleColumn.every((column,index)=>column===visibleColumn[index])){$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();}visibleColumn.forEach((column,index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest._index=index;}});handleTableColumn();handleUpdateAggValues();if(isReset){updateColumnOffsetLeft();return $xeTable.updateFooter().then(()=>{return $xeTable.recalculate();}).then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.updateFooter();};const initColumnHierarchy=()=>{const{collectColumn}=internalData;const fullColIdData={};const fullColFieldData={};let sortIndex=1;_xeUtils.default.eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const{id:colid,field}=column;const parentId=parentColumn?parentColumn.id:null;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};column.parentId=parentId;column.defaultParentId=parentId;column.sortNumber=sortIndex;column.renderSortNumber=sortIndex;sortIndex++;if(field){if(fullColFieldData[field]){(0,_log.errLog)('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}fullColIdData[colid]=rest;});internalData.fullColumnIdData=fullColIdData;internalData.fullColumnFieldData=fullColFieldData;};const handleInitColumn=collectColumn=>{const expandOpts=computeExpandOpts.value;internalData.collectColumn=collectColumn;const tableFullColumn=(0,_util.getColumnList)(collectColumn);internalData.tableFullColumn=tableFullColumn;reactData.isColLoading=true;initColumnHierarchy();return Promise.resolve(restoreCustomStorage()).then(()=>{const{scrollXLoad,scrollYLoad,expandColumn}=reactData;cacheColumnMap();parseColumns(true).then(()=>{if(reactData.scrollXLoad){loadScrollXData();}});$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);$xeTable.handleAggregateSummaryData();if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){(0,_log.warnLog)('vxe.error.scrollErrProp',['column.type=expand']);}return(0,_vue.nextTick)().then(()=>{if($xeToolbar){$xeToolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});}if($xeTable.handleUpdateCustomColumn){$xeTable.handleUpdateCustomColumn();}reactData.isColLoading=false;return handleLazyRecalculate(false,true,true);});});};const updateScrollXStatus=fullColumn=>{const virtualXOpts=computeVirtualXOpts.value;const allCols=fullColumn||internalData.tableFullColumn;// 如果gt为0,则总是启用
|
|
233
|
+
if(visibleColumn.length!==internalData.visibleColumn.length||!internalData.visibleColumn.every((column,index)=>column===visibleColumn[index])){$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();}visibleColumn.forEach((column,index)=>{const colid=column.id;const colRest=fullColumnIdData[colid];if(colRest){colRest._index=index;}});handleTableColumn();handleUpdateAggValues();if(isReset){updateColumnOffsetLeft();return $xeTable.updateFooter().then(()=>{return $xeTable.recalculate();}).then(()=>{$xeTable.updateCellAreas();return $xeTable.recalculate();});}return $xeTable.updateFooter();};const initColumnHierarchy=()=>{const{collectColumn}=internalData;const fullColIdData={};const fullColFieldData={};let sortIndex=1;_xeUtils.default.eachTree(collectColumn,(column,index,items,path,parentColumn)=>{const{id:colid,field}=column;const parentId=parentColumn?parentColumn.id:null;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};column.parentId=parentId;column.defaultParentId=parentId;column.sortNumber=sortIndex;column.renderSortNumber=sortIndex;sortIndex++;if(field){if(fullColFieldData[field]){(0,_log.errLog)('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}fullColIdData[colid]=rest;});internalData.fullColumnIdData=fullColIdData;internalData.fullColumnFieldData=fullColFieldData;};const handleInitColumn=collectColumn=>{const expandOpts=computeExpandOpts.value;internalData.collectColumn=collectColumn;const tableFullColumn=(0,_util.getColumnList)(collectColumn);internalData.tableFullColumn=tableFullColumn;reactData.isColLoading=true;initColumnHierarchy();return Promise.resolve(restoreCustomStorage()).then(()=>{const{scrollXLoad,scrollYLoad,expandColumn}=reactData;cacheColumnMap();parseColumns(true).then(()=>{if(reactData.scrollXLoad){loadScrollXData();}});$xeTable.clearMergeCells();$xeTable.clearMergeFooterItems();$xeTable.handleTableData(true);$xeTable.handleAggregateSummaryData();if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){(0,_log.warnLog)('vxe.error.scrollErrProp',['column.type=expand']);}return(0,_vue.nextTick)().then(()=>{if($xeToolbar){$xeToolbar.syncUpdate({collectColumn:internalData.collectColumn,$table:$xeTable});}if($xeTable.handleUpdateCustomColumn){$xeTable.handleUpdateCustomColumn();}const columnOpts=computeColumnOpts.value;if(props.showCustomHeader&&reactData.isGroup&&(columnOpts.resizable||props.resizable)){(0,_log.warnLog)('vxe.error.notConflictProp',['show-custom-header & colgroup','column-config.resizable=false']);}reactData.isColLoading=false;return handleLazyRecalculate(false,true,true);});});};const updateScrollXStatus=fullColumn=>{const virtualXOpts=computeVirtualXOpts.value;const allCols=fullColumn||internalData.tableFullColumn;// 如果gt为0,则总是启用
|
|
234
234
|
const scrollXLoad=!!virtualXOpts.enabled&&virtualXOpts.gt>-1&&(virtualXOpts.gt===0||virtualXOpts.gt<allCols.length);reactData.scrollXLoad=scrollXLoad;return scrollXLoad;};const updateScrollYStatus=fullData=>{const{treeConfig}=props;const $xeGanttView=internalData.xeGanttView;const virtualYOpts=computeVirtualYOpts.value;const treeOpts=computeTreeOpts.value;const{transform}=treeOpts;const allList=fullData||internalData.tableFullData;// 如果gt为0,则总是启用
|
|
235
235
|
const scrollYLoad=(transform||!treeConfig)&&!!virtualYOpts.enabled&&virtualYOpts.gt>-1&&(virtualYOpts.gt===0||virtualYOpts.gt<allList.length);reactData.scrollYLoad=scrollYLoad;if($xeGanttView&&$xeGanttView.handleUpdateSYStatus){$xeGanttView.handleUpdateSYStatus(scrollYLoad);}return scrollYLoad;};/**
|
|
236
236
|
* 展开与收起树节点
|
|
@@ -678,7 +678,7 @@ fullList=handleVirtualTreeToList();}const tableData=scrollYLoad?fullList.slice(s
|
|
|
678
678
|
const fullDataRowIdMaps={};const idMaps={};const{handleUpdateRowId}=(0,_util.createHandleUpdateRowId)($xeTable);const handleRowCache=(row,index,items,currIndex,parentRow,rowid,level,seq)=>{let rowRest=fullAllDataRowIdMaps[rowid];if(idMaps[rowid]){(0,_log.errLog)('vxe.error.repeatKey',[currKeyField,rowid]);}if(!rowRest){rowRest={row,rowid,seq,index:-1,_index:-1,$index:-1,treeIndex:index,_tIndex:-1,items,parent:parentRow,level,height:0,resizeHeight:0,oTop:0,expandHeight:0};fullDataRowIdMaps[rowid]=rowRest;fullAllDataRowIdMaps[rowid]=rowRest;}rowRest.treeLoaded=false;rowRest.expandLoaded=false;rowRest.row=row;rowRest.items=items;rowRest.parent=parentRow;rowRest.level=level;rowRest.index=currIndex;rowRest.treeIndex=index;idMaps[rowid]=true;fullDataRowIdMaps[rowid]=rowRest;fullAllDataRowIdMaps[rowid]=rowRest;};if(treeConfig){const treeOpts=computeTreeOpts.value;const{lazy}=treeOpts;const childrenField=treeOpts.children||treeOpts.childrenField;const hasChildField=treeOpts.hasChild||treeOpts.hasChildField;_xeUtils.default.eachTree(tableFullTreeData,(row,index,items,path,parentRow,nodes)=>{const rowid=handleUpdateRowId(row);if(treeConfig&&lazy){if(row[hasChildField]&&row[childrenField]===undefined){row[childrenField]=null;}if(treeExpandedMaps[rowid]){if(!row[childrenField]||!row[childrenField].length){delete treeExpandedMaps[rowid];}}}handleRowCache(row,index,items,parentRow?-1:index,parentRow,rowid,nodes.length-1,(0,_util.toTreePathSeq)(path));},{children:childrenField});}else if(isRowGroupStatus){const aggregateOpts=computeAggregateOpts.value;const{mapChildrenField}=aggregateOpts;_xeUtils.default.eachTree(tableFullGroupData,(row,index,items,path,parentRow,nodes)=>{const rowid=handleUpdateRowId(row);handleRowCache(row,index,items,parentRow?-1:index,parentRow,rowid,nodes.length-1,(0,_util.toTreePathSeq)(path));},{children:mapChildrenField});}else{tableFullData.forEach((row,index,items)=>{handleRowCache(row,index,items,index,null,handleUpdateRowId(row),0,index+1);});}internalData.fullDataRowIdData=fullDataRowIdMaps;internalData.fullAllDataRowIdData=fullAllDataRowIdMaps;reactData.treeExpandedFlag++;},cacheSourceMap(fullData){const{treeConfig}=props;const treeOpts=computeTreeOpts.value;const sourceData=_xeUtils.default.clone(fullData,true);const{handleUpdateRowId}=(0,_util.createHandleUpdateRowId)($xeTable);const sourceRowIdData={};const handleSourceRow=row=>{const rowid=handleUpdateRowId(row);sourceRowIdData[rowid]=row;};// 源数据缓存
|
|
679
679
|
if(treeConfig){const childrenField=treeOpts.children||treeOpts.childrenField;_xeUtils.default.eachTree(sourceData,handleSourceRow,{children:treeOpts.transform?treeOpts.mapChildrenField:childrenField});}else{sourceData.forEach(handleSourceRow);}internalData.sourceDataRowIdData=sourceRowIdData;internalData.tableSourceData=sourceData;},/**
|
|
680
680
|
* 指定列宽的列进行拆分
|
|
681
|
-
*/analyColumnWidth(){const{tableFullColumn}=internalData;const columnOpts=computeColumnOpts.value;const{width:defaultWidth,minWidth:defaultMinWidth}=columnOpts;const resizeList=[];const pxList=[];const pxMinList=[];const autoMinList=[];const scaleList=[];const scaleMinList=[];const autoList=[];const remainList=[];tableFullColumn.forEach(column=>{if(defaultWidth&&!column.width){column.width=defaultWidth;}if(defaultMinWidth&&!column.minWidth){column.minWidth=defaultMinWidth;}if(column.visible){if(column.resizeWidth){resizeList.push(column);}else if(column.width==='auto'){autoList.push(column);}else if((0,_dom.isPx)(column.width)){pxList.push(column);}else if((0,_dom.isScale)(column.width)){scaleList.push(column);}else if((0,_dom.isPx)(column.minWidth)){pxMinList.push(column);}else if(column.minWidth==='auto'){autoMinList.push(column);}else if((0,_dom.isScale)(column.minWidth)){scaleMinList.push(column);}else{remainList.push(column);}}});Object.assign(reactData.columnStore,{resizeList,pxList,pxMinList,autoMinList,scaleList,scaleMinList,autoList,remainList});},handleColResizeMousedownEvent(evnt,fixedType,params){evnt.stopPropagation();evnt.preventDefault();const{column}=params;const{columnStore,overflowX,scrollbarHeight}=reactData;const{visibleColumn}=internalData;const{leftList,rightList}=columnStore;const resizableOpts=computeResizableOpts.value;const osbHeight=overflowX?scrollbarHeight:0;const tableEl=refElem.value;const leftContainerElem=refLeftContainer.value;const rightContainerElem=refRightContainer.value;const resizeBarElem=refColResizeBar.value;if(!resizeBarElem){return;}const isLeftFixed=fixedType==='left';const isRightFixed=fixedType==='right';const resizeTipElem=resizeBarElem.firstElementChild;const scrollbarXToTop=computeScrollbarXToTop.value;const{clientX:dragClientX}=evnt;const dragBtnElem=evnt.target;let resizeColumn=column;const isDragGroupCol=column.children&&column.children.length;if(isDragGroupCol){
|
|
681
|
+
*/analyColumnWidth(){const{tableFullColumn}=internalData;const columnOpts=computeColumnOpts.value;const{width:defaultWidth,minWidth:defaultMinWidth}=columnOpts;const resizeList=[];const pxList=[];const pxMinList=[];const autoMinList=[];const scaleList=[];const scaleMinList=[];const autoList=[];const remainList=[];tableFullColumn.forEach(column=>{if(defaultWidth&&!column.width){column.width=defaultWidth;}if(defaultMinWidth&&!column.minWidth){column.minWidth=defaultMinWidth;}if(column.visible){if(column.resizeWidth){resizeList.push(column);}else if(column.width==='auto'){autoList.push(column);}else if((0,_dom.isPx)(column.width)){pxList.push(column);}else if((0,_dom.isScale)(column.width)){scaleList.push(column);}else if((0,_dom.isPx)(column.minWidth)){pxMinList.push(column);}else if(column.minWidth==='auto'){autoMinList.push(column);}else if((0,_dom.isScale)(column.minWidth)){scaleMinList.push(column);}else{remainList.push(column);}}});Object.assign(reactData.columnStore,{resizeList,pxList,pxMinList,autoMinList,scaleList,scaleMinList,autoList,remainList});},handleColResizeMousedownEvent(evnt,fixedType,params){evnt.stopPropagation();evnt.preventDefault();const{column}=params;const{columnStore,overflowX,scrollbarHeight}=reactData;const{visibleColumn}=internalData;const{leftList,rightList}=columnStore;const resizableOpts=computeResizableOpts.value;const osbHeight=overflowX?scrollbarHeight:0;const tableEl=refElem.value;const leftContainerElem=refLeftContainer.value;const rightContainerElem=refRightContainer.value;const resizeBarElem=refColResizeBar.value;if(!resizeBarElem){return;}const isLeftFixed=fixedType==='left';const isRightFixed=fixedType==='right';const resizeTipElem=resizeBarElem.firstElementChild;const scrollbarXToTop=computeScrollbarXToTop.value;const{clientX:dragClientX}=evnt;const dragBtnElem=evnt.target;let cell=dragBtnElem.parentElement;let resizeColumn=column;const isDragGroupCol=column.children&&column.children.length;if(isDragGroupCol){resizeColumn=(0,_util.getLastChildColumn)(column);if(isDragGroupCol){const trEl=cell?cell.parentElement:null;const theadEl=trEl?trEl.parentElement:null;cell=theadEl?theadEl.querySelector(`.vxe-header--column[colid="${resizeColumn.id}"]`):null;}}if(!cell){return;}const cellParams=_xeUtils.default.assign(params,{cell,$table:$xeTable});let dragLeft=0;const tableRect=tableEl.getBoundingClientRect();const rightContainerRect=rightContainerElem?rightContainerElem.getBoundingClientRect():null;const cellRect=cell.getBoundingClientRect();const dragBtnRect=dragBtnElem.getBoundingClientRect();const dragBtnWidth=dragBtnElem.clientWidth;const dragBtnOffsetWidth=_xeUtils.default.floor(dragBtnWidth/2);const dragPosLeft=dragBtnRect.x-tableRect.x+dragBtnOffsetWidth;const minInterval=(0,_util.getColReMinWidth)(cellParams)-dragBtnOffsetWidth;// 列之间的最小间距
|
|
682
682
|
const dragMinLeft=isRightFixed?0:cellRect.x-tableRect.x+dragBtnWidth+minInterval;const dragMaxLeft=cellRect.x-tableRect.x+cell.clientWidth-minInterval;let fixedLeftRemainWidth=0;let fixedRightRemainWidth=0;if(isLeftFixed||isRightFixed){let isMach=false;const fixedColumn=isLeftFixed?leftList:rightList;for(let i=0;i<fixedColumn.length;i++){const item=fixedColumn[i];if(isMach){fixedLeftRemainWidth+=item.renderWidth;}else{isMach=item.id===resizeColumn.id;if(!isMach){fixedRightRemainWidth+=item.renderWidth;}}}}// 处理拖动事件
|
|
683
683
|
const updateEvent=evnt=>{evnt.stopPropagation();evnt.preventDefault();const tableHeight=tableEl.clientHeight;const offsetX=evnt.clientX-dragClientX;let left=dragPosLeft+offsetX;if(isLeftFixed){if(rightContainerRect){left=Math.min(left,rightContainerRect.x-tableRect.x-fixedLeftRemainWidth-minInterval);}}else if(isRightFixed){if(leftContainerElem){left=Math.max(left,leftContainerElem.clientWidth+fixedRightRemainWidth+minInterval);}left=Math.min(left,dragMaxLeft);}dragLeft=Math.max(left,dragMinLeft);const resizeBarLeft=Math.max(1,dragLeft);resizeBarElem.style.left=`${resizeBarLeft}px`;resizeBarElem.style.top=`${scrollbarXToTop?osbHeight:0}px`;resizeBarElem.style.height=`${scrollbarXToTop?tableHeight-osbHeight:tableHeight}px`;if(resizableOpts.showDragTip&&resizeTipElem){resizeTipElem.textContent=getI18n('vxe.table.resizeColTip',[Math.floor(resizeColumn.renderWidth+(isRightFixed?dragPosLeft-dragLeft:dragLeft-dragPosLeft))]);const tableWrapperWidth=tableEl.clientWidth;const resizeBarWidth=resizeBarElem.clientWidth;const resizeTipWidth=resizeTipElem.clientWidth;const resizeTipHeight=resizeTipElem.clientHeight;let resizeTipLeft=-resizeTipWidth;if(resizeBarLeft<resizeTipWidth+resizeBarWidth){resizeTipLeft=0;}else if(resizeBarLeft>tableWrapperWidth){resizeTipLeft+=tableWrapperWidth-resizeBarLeft;}resizeTipElem.style.left=`${resizeTipLeft}px`;resizeTipElem.style.top=`${Math.min(tableHeight-resizeTipHeight,Math.max(0,evnt.clientY-tableRect.y-resizeTipHeight/2))}px`;}reactData.isDragResize=true;};reactData.isDragResize=true;(0,_dom.addClass)(tableEl,'col-drag--resize');resizeBarElem.style.display='block';document.onmousemove=updateEvent;document.onmouseup=function(evnt){document.onmousemove=null;document.onmouseup=null;resizeBarElem.style.display='none';internalData._lastResizeTime=Date.now();setTimeout(()=>{reactData.isDragResize=false;},50);const resizeWidth=resizeColumn.renderWidth+(isRightFixed?dragPosLeft-dragLeft:dragLeft-dragPosLeft);const resizeParams=Object.assign(Object.assign({},params),{resizeWidth,resizeColumn});if(resizableOpts.dragMode==='fixed'){visibleColumn.forEach(item=>{if(item.id!==resizeColumn.id){if(!item.resizeWidth){item.resizeWidth=item.renderWidth;}}});}if($xeTable.handleColResizeCellAreaEvent){$xeTable.handleColResizeCellAreaEvent(evnt,resizeParams);}else{resizeColumn.resizeWidth=resizeWidth;handleUpdateColResize(evnt,resizeParams);}(0,_dom.removeClass)(tableEl,'col-drag--resize');};updateEvent(evnt);if($xeTable.closeMenu){$xeTable.closeMenu();}},handleColResizeDblclickEvent(evnt,params){const resizableOpts=computeResizableOpts.value;const{isDblclickAutoWidth}=resizableOpts;const el=refElem.value;if(isDblclickAutoWidth&&el){evnt.stopPropagation();evnt.preventDefault();const{fullColumnIdData}=internalData;const{column}=params;let resizeColumn=column;if(column.children&&column.children.length){_xeUtils.default.eachTree(column.children,childColumn=>{resizeColumn=childColumn;});}const colid=resizeColumn.id;const colRest=fullColumnIdData[colid];const dragBtnElem=evnt.target;const cell=dragBtnElem.parentNode;const cellParams=Object.assign(params,{cell,$table:$xeTable});const colMinWidth=(0,_util.getColReMinWidth)(cellParams);el.setAttribute('data-calc-col','Y');let resizeWidth=calcColumnAutoWidth(resizeColumn,el);el.removeAttribute('data-calc-col');if(colRest){resizeWidth=Math.max(resizeWidth,colRest.width);}resizeWidth=Math.max(colMinWidth,resizeWidth);const resizeParams=Object.assign(Object.assign({},params),{resizeWidth,resizeColumn});reactData.isDragResize=false;internalData._lastResizeTime=Date.now();if($xeTable.handleColResizeDblclickCellAreaEvent){$xeTable.handleColResizeDblclickCellAreaEvent(evnt,resizeParams);}else{resizeColumn.resizeWidth=resizeWidth;handleUpdateColResize(evnt,resizeParams);}}},handleRowResizeMousedownEvent(evnt,params){evnt.stopPropagation();evnt.preventDefault();const{row}=params;const{showOverflow}=props;const{overflowX,scrollbarWidth,overflowY,scrollbarHeight}=reactData;const{elemStore,fullAllDataRowIdData}=internalData;const osbWidth=overflowY?scrollbarWidth:0;const osbHeight=overflowX?scrollbarHeight:0;const scrollbarYToLeft=computeScrollbarYToLeft.value;const resizableOpts=computeResizableOpts.value;const rowOpts=computeRowOpts.value;const cellOpts=computeCellOpts.value;let tableEl=refElem.value;if($xeGantt){const{refGanttContainerElem}=$xeGantt.getRefMaps();const ganttContainerElem=refGanttContainerElem.value;if(ganttContainerElem){tableEl=ganttContainerElem;}}const resizeBarElem=refRowResizeBar.value;if(!resizeBarElem){return;}const{clientY:dragClientY}=evnt;const resizeTipElem=resizeBarElem.firstElementChild;const dragBtnElem=evnt.currentTarget;const tdEl=dragBtnElem.parentNode;const trEl=tdEl.parentNode;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(!bodyScrollElem){return;}const rowid=(0,_util.getRowid)($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(!rowRest){return;}const defaultRowHeight=computeDefaultRowHeight.value;let currCellHeight=rowRest.resizeHeight||cellOpts.height||rowOpts.height||rowRest.height||defaultRowHeight;if(!showOverflow){currCellHeight=tdEl.clientHeight;}const tableRect=tableEl.getBoundingClientRect();const trRect=trEl.getBoundingClientRect();const targetOffsetY=dragClientY-trRect.y-trEl.clientHeight;let resizeHeight=currCellHeight;const cellEl=tdEl.querySelector('.vxe-cell');let cellMinHeight=0;if(cellEl){const cellStyle=getComputedStyle(cellEl);cellMinHeight=Math.max(1,Math.ceil(_xeUtils.default.toNumber(cellStyle.paddingTop)+_xeUtils.default.toNumber(cellStyle.paddingBottom)));}const minTop=trRect.y-tableRect.y+cellMinHeight;// 处理拖动事件
|
|
684
684
|
const updateEvent=evnt=>{evnt.stopPropagation();evnt.preventDefault();const rtWidth=tableEl.clientWidth-osbWidth;const tableHeight=tableEl.clientHeight-osbHeight;let dragTop=evnt.clientY-tableRect.y-targetOffsetY;if(dragTop<minTop){dragTop=minTop;}else{resizeHeight=Math.max(cellMinHeight,currCellHeight+evnt.clientY-dragClientY);}resizeBarElem.style.left=`${scrollbarYToLeft?osbWidth:0}px`;resizeBarElem.style.top=`${dragTop}px`;resizeBarElem.style.width=`${rtWidth}px`;if(resizableOpts.showDragTip&&resizeTipElem){resizeTipElem.textContent=getI18n('vxe.table.resizeRowTip',[resizeHeight]);const resizeTipWidth=resizeTipElem.clientWidth;const resizeTipHeight=resizeTipElem.clientHeight;let resizeBarLeft=Math.max(2,evnt.clientX-tableRect.x);let resizeBarTop=0;if(resizeBarLeft+resizeTipWidth>=rtWidth-2){resizeBarLeft=rtWidth-resizeTipWidth-2;}if(dragTop+resizeTipHeight>=tableHeight){resizeBarTop=tableHeight-(dragTop+resizeTipHeight);}resizeTipElem.style.left=`${resizeBarLeft}px`;resizeTipElem.style.top=`${resizeBarTop}px`;}reactData.isDragResize=true;};reactData.isDragResize=true;(0,_dom.addClass)(tableEl,'row-drag--resize');resizeBarElem.style.display='block';document.onmousemove=updateEvent;document.onmouseup=function(evnt){document.onmousemove=null;document.onmouseup=null;resizeBarElem.style.display='none';internalData._lastResizeTime=Date.now();setTimeout(()=>{reactData.isDragResize=false;},50);if(resizeHeight!==currCellHeight){const resizeParams=Object.assign(Object.assign({},params),{resizeHeight,resizeRow:row});internalData.isResizeCellHeight=true;if($xeTable.handleRowResizeCellAreaEvent){$xeTable.handleRowResizeCellAreaEvent(evnt,resizeParams);}else{rowRest.resizeHeight=resizeHeight;handleUpdateRowResize(evnt,resizeParams);updateRowOffsetTop();}}(0,_dom.removeClass)(tableEl,'row-drag--resize');};updateEvent(evnt);},handleRowResizeDblclickEvent(evnt,params){const resizableOpts=computeResizableOpts.value;const{isDblclickAutoHeight}=resizableOpts;const el=refElem.value;if(isDblclickAutoHeight&&el){evnt.stopPropagation();evnt.preventDefault();const{editStore}=reactData;const{fullAllDataRowIdData}=internalData;const{actived}=editStore;const{row}=params;const rowid=(0,_util.getRowid)($xeTable,row);const rowRest=fullAllDataRowIdData[rowid];if(!rowRest){return;}const handleRsHeight=()=>{el.setAttribute('data-calc-row','Y');const resizeHeight=calcCellAutoHeight(rowRest,el);el.removeAttribute('data-calc-row');const resizeParams=Object.assign(Object.assign({},params),{resizeHeight,resizeRow:row});reactData.isDragResize=false;internalData._lastResizeTime=Date.now();if($xeTable.handleRowResizeDblclickCellAreaEvent){$xeTable.handleRowResizeDblclickCellAreaEvent(evnt,resizeParams);}else{rowRest.resizeHeight=resizeHeight;handleUpdateRowResize(evnt,resizeParams);}};if(actived.row||actived.column){$xeTable.clearEdit().then(handleRsHeight);}else{handleRsHeight();}}},saveCustomStore(type){const{customConfig}=props;const tableId=computeTableId.value;const customOpts=computeCustomOpts.value;const{updateStore,storage,storeOptions}=customOpts;const isAllCustom=storage===true;const storageOpts=isAllCustom?{}:Object.assign({},storage||{},storeOptions);const isCustomResizable=hangleStorageDefaultValue(storageOpts.resizable,isAllCustom);const isCustomVisible=hangleStorageDefaultValue(storageOpts.visible,isAllCustom);const isCustomFixed=hangleStorageDefaultValue(storageOpts.fixed,isAllCustom);const isCustomSort=hangleStorageDefaultValue(storageOpts.sort,isAllCustom);const isCustomAggGroup=hangleStorageDefaultValue(storageOpts.aggGroup,isAllCustom);const isCustomAggFunc=hangleStorageDefaultValue(storageOpts.aggFunc,isAllCustom);if(type!=='reset'){// fix:修复拖动列宽,重置按钮无法点击的问题
|
|
@@ -839,7 +839,7 @@ if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHei
|
|
|
839
839
|
* 表体
|
|
840
840
|
*/(0,_vue.h)(_body.default,{ref:refTableBody,tableData,tableColumn}),/**
|
|
841
841
|
* 表尾
|
|
842
|
-
*/showFooter?(0,_vue.h)(_footer.default,{ref:refTableFooter,footerTableData,tableColumn}):renderEmptyElement($xeTable)]),(0,_vue.h)('div',{class:'vxe-table--fixed-wrapper'},[leftList&&leftList.length&&overflowX?renderFixed('left'):renderEmptyElement($xeTable),rightList&&rightList.length&&overflowX?renderFixed('right'):renderEmptyElement($xeTable)]),renderRowExpandedVNs()]);};const renderBody=()=>{const scrollbarYToLeft=computeScrollbarYToLeft.value;return(0,_vue.h)('div',{class:'vxe-table--layout-wrapper'},scrollbarYToLeft?[renderScrollY(),renderViewport()]:[renderViewport(),renderScrollY()]);};const renderVN=()=>{const{loading,stripe,showHeader,height,treeConfig,mouseConfig,showFooter,highlightCell,highlightHoverRow,highlightHoverColumn,editConfig,editRules}=props;const{isGroup,overflowX,overflowY,scrollXLoad,scrollYLoad,tableData,initStore,isRowGroupStatus,columnStore,filterStore,customStore,tooltipStore}=reactData;const{teleportToWrapperElem}=internalData;const{leftList,rightList}=columnStore;const loadingSlot=slots.loading;const tipSlots={header:slots.headerTooltip||slots['header-tooltip'],body:slots.tooltip,footer:slots.footerTooltip||slots['footer-tooltip']};const currTooltipSlot=tooltipStore.visible&&tooltipStore.type?tipSlots[tooltipStore.type]:null;const rowDragOpts=computeRowDragOpts.value;const tableTipConfig=computeTableTipConfig.value;const validTipConfig=computeValidTipConfig.value;const validOpts=computeValidOpts.value;const checkboxOpts=computeCheckboxOpts.value;const treeOpts=computeTreeOpts.value;const rowOpts=computeRowOpts.value;const columnOpts=computeColumnOpts.value;const vSize=computeSize.value;const tableBorder=computeTableBorder.value;const mouseOpts=computeMouseOpts.value;const areaOpts=computeAreaOpts.value;const loadingOpts=computeLoadingOpts.value;const isContentMenu=computeIsContentMenu.value;const currLoading=reactData.isColLoading||reactData.isRowLoading||loading;const resizableOpts=computeResizableOpts.value;const isArea=mouseConfig&&mouseOpts.area;const columnDragOpts=computeColumnDragOpts.value;const scrollbarXToTop=computeScrollbarXToTop.value;const scrollbarYToLeft=computeScrollbarYToLeft.value;const{isCrossTableDrag}=rowDragOpts;const tbOns={onKeydown:keydownEvent};if(isCrossTableDrag&&!tableData.length){tbOns.onDragover=$xeTable.handleCrossTableRowDragoverEmptyEvent;}return(0,_vue.h)('div',Object.assign({ref:refElem,class:['vxe-table','vxe-table--render-default',`tid_${xID}`,`border--${tableBorder}`,`sx-pos--${scrollbarXToTop?'top':'bottom'}`,`sy-pos--${scrollbarYToLeft?'left':'right'}`,{[`size--${vSize}`]:vSize,[`valid-msg--${validOpts.msgMode}`]:!!editRules,'vxe-editable':!!editConfig,'old-cell-valid':editRules&&getConfig().cellVaildMode==='obsolete','cell--highlight':highlightCell,'cell--selected':mouseConfig&&mouseOpts.selected,'cell--area':isArea,'header-cell--area':isArea&&areaOpts.selectCellByHeader,'body-cell--area':isArea&&areaOpts.selectCellByBody,'row--highlight':rowOpts.isHover||highlightHoverRow,'column--highlight':columnOpts.isHover||highlightHoverColumn,'checkbox--range':checkboxOpts.range,'col--drag-cell':columnOpts.drag&&columnDragOpts.trigger==='cell','is--header':showHeader,'is--footer':showFooter,'is--group':isGroup,'is-row-group':isRowGroupStatus,'is--tree-line':treeConfig&&(treeOpts.showLine||treeOpts.line),'is--fixed-left':leftList.length,'is--fixed-right':rightList.length,'is--animat':!!props.animat,'is--round':props.round,'is--stripe':!treeConfig&&stripe,'is--loading':currLoading,'is--empty':!currLoading&&!tableData.length,'is--scroll-y':overflowY,'is--scroll-x':overflowX,'is--virtual-x':scrollXLoad,'is--virtual-y':scrollYLoad}],spellcheck:false},tbOns),[/**
|
|
842
|
+
*/showFooter?(0,_vue.h)(_footer.default,{ref:refTableFooter,footerTableData,tableColumn}):renderEmptyElement($xeTable)]),(0,_vue.h)('div',{class:'vxe-table--fixed-wrapper'},[leftList&&leftList.length&&overflowX?renderFixed('left'):renderEmptyElement($xeTable),rightList&&rightList.length&&overflowX?renderFixed('right'):renderEmptyElement($xeTable)]),renderRowExpandedVNs()]);};const renderBody=()=>{const scrollbarYToLeft=computeScrollbarYToLeft.value;return(0,_vue.h)('div',{class:'vxe-table--layout-wrapper'},scrollbarYToLeft?[renderScrollY(),renderViewport()]:[renderViewport(),renderScrollY()]);};const renderVN=()=>{const{loading,stripe,showHeader,height,treeConfig,mouseConfig,showFooter,highlightCell,highlightHoverRow,highlightHoverColumn,editConfig,editRules}=props;const{isGroup,overflowX,overflowY,scrollXLoad,scrollYLoad,tableData,initStore,isRowGroupStatus,columnStore,filterStore,customStore,tooltipStore}=reactData;const{teleportToWrapperElem,popupToWrapperElem}=internalData;const{leftList,rightList}=columnStore;const loadingSlot=slots.loading;const tipSlots={header:slots.headerTooltip||slots['header-tooltip'],body:slots.tooltip,footer:slots.footerTooltip||slots['footer-tooltip']};const currTooltipSlot=tooltipStore.visible&&tooltipStore.type?tipSlots[tooltipStore.type]:null;const rowDragOpts=computeRowDragOpts.value;const tableTipConfig=computeTableTipConfig.value;const validTipConfig=computeValidTipConfig.value;const validOpts=computeValidOpts.value;const checkboxOpts=computeCheckboxOpts.value;const treeOpts=computeTreeOpts.value;const rowOpts=computeRowOpts.value;const columnOpts=computeColumnOpts.value;const vSize=computeSize.value;const tableBorder=computeTableBorder.value;const mouseOpts=computeMouseOpts.value;const areaOpts=computeAreaOpts.value;const loadingOpts=computeLoadingOpts.value;const isContentMenu=computeIsContentMenu.value;const currLoading=reactData.isColLoading||reactData.isRowLoading||loading;const resizableOpts=computeResizableOpts.value;const isArea=mouseConfig&&mouseOpts.area;const columnDragOpts=computeColumnDragOpts.value;const scrollbarXToTop=computeScrollbarXToTop.value;const scrollbarYToLeft=computeScrollbarYToLeft.value;const{isCrossTableDrag}=rowDragOpts;const tbOns={onKeydown:keydownEvent};if(isCrossTableDrag&&!tableData.length){tbOns.onDragover=$xeTable.handleCrossTableRowDragoverEmptyEvent;}return(0,_vue.h)('div',Object.assign({ref:refElem,class:['vxe-table','vxe-table--render-default',`tid_${xID}`,`border--${tableBorder}`,`sx-pos--${scrollbarXToTop?'top':'bottom'}`,`sy-pos--${scrollbarYToLeft?'left':'right'}`,{[`size--${vSize}`]:vSize,[`valid-msg--${validOpts.msgMode}`]:!!editRules,'vxe-editable':!!editConfig,'old-cell-valid':editRules&&getConfig().cellVaildMode==='obsolete','cell--highlight':highlightCell,'cell--selected':mouseConfig&&mouseOpts.selected,'cell--area':isArea,'header-cell--area':isArea&&areaOpts.selectCellByHeader,'body-cell--area':isArea&&areaOpts.selectCellByBody,'row--highlight':rowOpts.isHover||highlightHoverRow,'column--highlight':columnOpts.isHover||highlightHoverColumn,'checkbox--range':checkboxOpts.range,'col--drag-cell':columnOpts.drag&&columnDragOpts.trigger==='cell','is--header':showHeader,'is--footer':showFooter,'is--group':isGroup,'is-row-group':isRowGroupStatus,'is--tree-line':treeConfig&&(treeOpts.showLine||treeOpts.line),'is--fixed-left':leftList.length,'is--fixed-right':rightList.length,'is--animat':!!props.animat,'is--round':props.round,'is--stripe':!treeConfig&&stripe,'is--loading':currLoading,'is--empty':!currLoading&&!tableData.length,'is--scroll-y':overflowY,'is--scroll-x':overflowX,'is--virtual-x':scrollXLoad,'is--virtual-y':scrollYLoad}],spellcheck:false},tbOns),[/**
|
|
843
843
|
* 隐藏列
|
|
844
844
|
*/(0,_vue.h)('div',{class:'vxe-table-slots'},slots.default?slots.default({}):[]),(0,_vue.h)('div',{ref:refVarElem,class:'vxe-table-vars'},[(0,_vue.h)('div',{class:'vxe-table-var-default'}),(0,_vue.h)('div',{class:'vxe-table-var-medium'}),(0,_vue.h)('div',{class:'vxe-table-var-small'}),(0,_vue.h)('div',{class:'vxe-table-var-mini'})]),(0,_vue.h)('div',{key:'tw',class:'vxe-table--render-wrapper'},scrollbarXToTop?[renderScrollX(),renderBody()]:[renderBody(),renderScrollX()]),/**
|
|
845
845
|
* 空数据
|
|
@@ -855,15 +855,15 @@ if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHei
|
|
|
855
855
|
* 加载中
|
|
856
856
|
*/VxeUILoadingComponent?(0,_vue.h)(VxeUILoadingComponent,{key:'lg',class:'vxe-table--loading',modelValue:currLoading,icon:loadingOpts.icon,text:loadingOpts.text},loadingSlot?{default:()=>callSlot(loadingSlot,{$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt,loading:currLoading})}:{}):loadingSlot?(0,_vue.h)('div',{class:['vxe-loading--custom-wrapper',{'is--visible':currLoading}]},callSlot(loadingSlot,{$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt,loading:currLoading})):renderEmptyElement($xeTable),/**
|
|
857
857
|
* 拖拽排序提示
|
|
858
|
-
*/renderDragTip()])])])
|
|
859
|
-
|
|
860
|
-
|
|
858
|
+
*/renderDragTip()])])]),(0,_vue.h)('div',{key:'tpw'},[(0,_vue.h)(_vue.Teleport,{to:popupToWrapperElem,disabled:!($xeGGWrapper&&popupToWrapperElem)},[(0,_vue.h)('div',{ref:refPopupWrapperElem},[/**
|
|
859
|
+
* 筛选
|
|
860
|
+
*/initStore.filter?(0,_vue.h)(_panel2.default,{key:'tf',ref:refTableFilter,filterStore}):renderEmptyElement($xeTable),/**
|
|
861
|
+
* 快捷菜单
|
|
862
|
+
*/isContentMenu?(0,_vue.h)(_panel3.default,{key:'tm',ref:refTableMenu}):renderEmptyElement($xeTable)])])]),/**
|
|
861
863
|
* 导入
|
|
862
864
|
*/initStore.import&&props.importConfig?(0,_vue.h)(_importPanel.default,{key:'it',defaultOptions:reactData.importParams,storeData:reactData.importStore}):renderEmptyElement($xeTable),/**
|
|
863
865
|
* 导出
|
|
864
866
|
*/initStore.export&&(props.exportConfig||props.printConfig)?(0,_vue.h)(_exportPanel.default,{key:'et',defaultOptions:reactData.exportParams,storeData:reactData.exportStore}):renderEmptyElement($xeTable),/**
|
|
865
|
-
* 快捷菜单
|
|
866
|
-
*/isContentMenu?(0,_vue.h)(_panel3.default,{key:'tm',ref:refTableMenu}):renderEmptyElement($xeTable),/**
|
|
867
867
|
* 提示相关
|
|
868
868
|
*/VxeUITooltipComponent?(0,_vue.h)('div',{},[/**
|
|
869
869
|
* 通用提示
|
|
@@ -877,7 +877,7 @@ if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHei
|
|
|
877
877
|
// warnLog('vxe.error.checkProp', ['checkbox-config.checkField'])
|
|
878
878
|
// }
|
|
879
879
|
if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){(0,_log.warnLog)('vxe.error.scrollErrProp',['column.type=expand']);}return tableMethods.recalculate();});});const staticColumnFlag=(0,_vue.ref)(0);(0,_vue.watch)(()=>reactData.staticColumns.length,()=>{staticColumnFlag.value++;});(0,_vue.watch)(()=>reactData.staticColumns,()=>{staticColumnFlag.value++;});(0,_vue.watch)(staticColumnFlag,()=>{(0,_vue.nextTick)(()=>handleInitColumn(_xeUtils.default.clone(reactData.staticColumns)));});const tableColumnFlag=(0,_vue.ref)(0);(0,_vue.watch)(()=>reactData.tableColumn.length,()=>{tableColumnFlag.value++;});(0,_vue.watch)(()=>reactData.tableColumn,()=>{tableColumnFlag.value++;});(0,_vue.watch)(tableColumnFlag,()=>{tablePrivateMethods.analyColumnWidth();});(0,_vue.watch)(()=>reactData.upDataFlag,()=>{(0,_vue.nextTick)(()=>{tableMethods.updateData();});});(0,_vue.watch)(()=>reactData.reColumnFlag,()=>{(0,_vue.nextTick)(()=>{tableMethods.refreshColumn();});});const reLayoutFlag=(0,_vue.ref)(0);(0,_vue.watch)(computeSize,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>props.showHeader,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>props.showFooter,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>reactData.overflowX,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>reactData.overflowY,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>props.height,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>props.maxHeight,()=>{reLayoutFlag.value++;});(0,_vue.watch)(computeScrollbarXToTop,()=>{reLayoutFlag.value++;});(0,_vue.watch)(computeScrollbarYToLeft,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>_ui.VxeUI.getLanguage(),()=>{reLayoutFlag.value++;});(0,_vue.watch)(reLayoutFlag,()=>{$xeTable.recalculate(true);});const footFlag=(0,_vue.ref)(0);(0,_vue.watch)(()=>props.footerData?props.footerData.length:-1,()=>{footFlag.value++;});(0,_vue.watch)(()=>props.footerData,()=>{footFlag.value++;});(0,_vue.watch)(footFlag,()=>{$xeTable.updateFooter();});(0,_vue.watch)(()=>props.syncResize,value=>{if(value){handleUpdateResize();(0,_vue.nextTick)(()=>{handleUpdateResize();setTimeout(()=>handleUpdateResize());});}});const mergeCellFlag=(0,_vue.ref)(0);(0,_vue.watch)(()=>props.mergeCells?props.mergeCells.length:-1,()=>{mergeCellFlag.value++;});(0,_vue.watch)(()=>props.mergeCells,()=>{mergeCellFlag.value++;});(0,_vue.watch)(mergeCellFlag,()=>{handleUpdateMergeBodyCells(props.mergeCells||[]);});const mergeHeaderItemFlag=(0,_vue.ref)(0);(0,_vue.watch)(()=>props.mergeHeaderCells?props.mergeHeaderCells.length:-1,()=>{mergeHeaderItemFlag.value++;});(0,_vue.watch)(()=>props.mergeHeaderCells,()=>{mergeHeaderItemFlag.value++;});(0,_vue.watch)(mergeHeaderItemFlag,()=>{handleUpdateMergeHeaderCells(props.mergeHeaderCells||[]);});const mergeFooteCellFlag=(0,_vue.ref)(0);(0,_vue.watch)(()=>props.mergeFooterCells?props.mergeFooterCells.length:-1,()=>{mergeFooteCellFlag.value++;});(0,_vue.watch)(()=>props.mergeFooterCells,()=>{mergeFooteCellFlag.value++;});(0,_vue.watch)(()=>props.mergeFooterItems?props.mergeFooterItems.length:-1,()=>{mergeFooteCellFlag.value++;});(0,_vue.watch)(()=>props.mergeFooterItems,()=>{mergeFooteCellFlag.value++;});(0,_vue.watch)(mergeFooteCellFlag,()=>{const mFooterCells=props.mergeFooterCells||props.mergeFooterItems;handleUpdateMergeFooterCells(mFooterCells||[]);});(0,_vue.watch)(computeRowGroupFields,val=>{handleUpdateRowGroup(val);});(0,_vue.watch)(computeRowField,()=>{const{inited,tableFullData}=internalData;// 行主键被改变,重载表格
|
|
880
|
-
if(inited){handleKeyField();reactData.tableData=[];(0,_vue.nextTick)(()=>{$xeTable.reloadData(tableFullData);});}});if($xeTabs){(0,_vue.watch)(()=>$xeTabs?$xeTabs.reactData.resizeFlag:null,()=>{handleGlobalResizeEvent();});}handleKeyField();hooks.forEach(options=>{const{setupTable}=options;if(setupTable){const hookRest=setupTable($xeTable);if(hookRest&&_xeUtils.default.isObject(hookRest)){Object.assign($xeTable,hookRest);}}});tablePrivateMethods.preventEvent(null,'created',{$table:$xeTable});let resizeObserver;(0,_vue.onActivated)(()=>{tableMethods.recalculate().then(()=>tableMethods.refreshScroll());tablePrivateMethods.preventEvent(null,'activated',{$table:$xeTable});});(0,_vue.onDeactivated)(()=>{const{filterStore}=reactData;if(filterStore.visible){$xeTable.clearFilter();}$xeTable.closeTooltip();internalData.isActivated=false;tablePrivateMethods.preventEvent(null,'deactivated',{$table:$xeTable});});(0,_vue.onMounted)(()=>{const columnOpts=computeColumnOpts.value;const rowOpts=computeRowOpts.value;const customOpts=computeCustomOpts.value;const aggregateOpts=computeAggregateOpts.value;const virtualYOpts=computeVirtualYOpts.value;const{groupFields}=aggregateOpts;if($xeGantt){const{refClassifyWrapperElem}=$xeGantt.getRefMaps();const classifyWrapperEl=refClassifyWrapperElem.value;if(classifyWrapperEl){internalData.teleportToWrapperElem=classifyWrapperEl;}}if(columnOpts.drag||rowOpts.drag||customOpts.allowSort){(0,_dom.initTpImg)();}handleUpdateRowGroup(groupFields);(0,_vue.nextTick)(()=>{const{data,exportConfig,importConfig,treeConfig,showOverflow,highlightCurrentRow,highlightCurrentColumn}=props;const{scrollXStore,scrollYStore}=internalData;const editOpts=computeEditOpts.value;const treeOpts=computeTreeOpts.value;const radioOpts=computeRadioOpts.value;const checkboxOpts=computeCheckboxOpts.value;const expandOpts=computeExpandOpts.value;const rowOpts=computeRowOpts.value;const customOpts=computeCustomOpts.value;const mouseOpts=computeMouseOpts.value;const exportOpts=computeExportOpts.value;const importOpts=computeImportOpts.value;const currentRowOpts=computeCurrentRowOpts.value;const currentColumnOpts=computeCurrentColumnOpts.value;const keyboardOpts=computeKeyboardOpts.value;const aggregateOpts=computeAggregateOpts.value;const rowDragOpts=computeRowDragOpts.value;if(props.rowId){(0,_log.warnLog)('vxe.error.delProp',['row-id','row-config.keyField']);}if(props.rowKey){(0,_log.warnLog)('vxe.error.delProp',['row-key','row-config.useKey']);}if(props.columnKey){(0,_log.warnLog)('vxe.error.delProp',['column-id','column-config.useKey']);}if(!(props.rowId||rowOpts.keyField)&&(checkboxOpts.reserve||checkboxOpts.checkRowKeys||radioOpts.reserve||radioOpts.checkRowKey||expandOpts.expandRowKeys||treeOpts.expandRowKeys)){(0,_log.warnLog)('vxe.error.reqProp',['row-config.keyField']);}if(props.editConfig&&(editOpts.showStatus||editOpts.showUpdateStatus||editOpts.showInsertStatus)&&!props.keepSource){(0,_log.warnLog)('vxe.error.reqProp',['keep-source']);}if(treeConfig&&(treeOpts.showLine||treeOpts.line)&&!showOverflow){(0,_log.warnLog)('vxe.error.reqProp',['show-overflow']);}if(treeConfig&&!treeOpts.transform&&props.stripe){(0,_log.warnLog)('vxe.error.noTree',['stripe']);}if(props.showFooter&&!(props.footerMethod||props.footerData)){(0,_log.warnLog)('vxe.error.reqProp',['footer-data | footer-method']);}if(rowOpts.height){(0,_log.warnLog)('vxe.error.delProp',['row-config.height','cell-config.height']);}if(props.highlightCurrentRow){(0,_log.warnLog)('vxe.error.delProp',['highlight-current-row','row-config.isCurrent']);}if(props.highlightHoverRow){(0,_log.warnLog)('vxe.error.delProp',['highlight-hover-row','row-config.isHover']);}if(props.highlightCurrentColumn){(0,_log.warnLog)('vxe.error.delProp',['highlight-current-column','column-config.isCurrent']);}if(props.highlightHoverColumn){(0,_log.warnLog)('vxe.error.delProp',['highlight-hover-column','column-config.isHover']);}if(props.resizable){(0,_log.warnLog)('vxe.error.delProp',['resizable','column-config.resizable']);}if(props.virtualXConfig&&props.scrollX){(0,_log.warnLog)('vxe.error.notSupportProp',['virtual-x-config','scroll-x','scroll-x=null']);}if(props.virtualYConfig&&props.scrollY){(0,_log.warnLog)('vxe.error.notSupportProp',['virtual-y-config','scroll-y','scroll-y=null']);}if(props.aggregateConfig&&props.rowGroupConfig){(0,_log.warnLog)('vxe.error.notSupportProp',['aggregate-config','row-group-config','row-group-config=null']);}// if (props.scrollY) {
|
|
880
|
+
if(inited){handleKeyField();reactData.tableData=[];(0,_vue.nextTick)(()=>{$xeTable.reloadData(tableFullData);});}});if($xeTabs){(0,_vue.watch)(()=>$xeTabs?$xeTabs.reactData.resizeFlag:null,()=>{handleGlobalResizeEvent();});}handleKeyField();hooks.forEach(options=>{const{setupTable}=options;if(setupTable){const hookRest=setupTable($xeTable);if(hookRest&&_xeUtils.default.isObject(hookRest)){Object.assign($xeTable,hookRest);}}});tablePrivateMethods.preventEvent(null,'created',{$table:$xeTable});let resizeObserver;(0,_vue.onActivated)(()=>{tableMethods.recalculate().then(()=>tableMethods.refreshScroll());tablePrivateMethods.preventEvent(null,'activated',{$table:$xeTable});});(0,_vue.onDeactivated)(()=>{const{filterStore}=reactData;if(filterStore.visible){$xeTable.clearFilter();}$xeTable.closeTooltip();internalData.isActivated=false;tablePrivateMethods.preventEvent(null,'deactivated',{$table:$xeTable});});(0,_vue.onMounted)(()=>{const columnOpts=computeColumnOpts.value;const rowOpts=computeRowOpts.value;const customOpts=computeCustomOpts.value;const aggregateOpts=computeAggregateOpts.value;const virtualYOpts=computeVirtualYOpts.value;const{groupFields}=aggregateOpts;if($xeGantt){const{refClassifyWrapperElem}=$xeGantt.getRefMaps();const classifyWrapperEl=refClassifyWrapperElem.value;if(classifyWrapperEl){internalData.teleportToWrapperElem=classifyWrapperEl;}}if($xeGGWrapper){const{refPopupContainerElem}=$xeGGWrapper.getRefMaps();const popupContainerEl=refPopupContainerElem.value;if(popupContainerEl){internalData.popupToWrapperElem=popupContainerEl;}}if(columnOpts.drag||rowOpts.drag||customOpts.allowSort){(0,_dom.initTpImg)();}handleUpdateRowGroup(groupFields);(0,_vue.nextTick)(()=>{const{data,exportConfig,importConfig,treeConfig,showOverflow,highlightCurrentRow,highlightCurrentColumn}=props;const{scrollXStore,scrollYStore}=internalData;const editOpts=computeEditOpts.value;const treeOpts=computeTreeOpts.value;const radioOpts=computeRadioOpts.value;const checkboxOpts=computeCheckboxOpts.value;const expandOpts=computeExpandOpts.value;const rowOpts=computeRowOpts.value;const customOpts=computeCustomOpts.value;const mouseOpts=computeMouseOpts.value;const exportOpts=computeExportOpts.value;const importOpts=computeImportOpts.value;const currentRowOpts=computeCurrentRowOpts.value;const currentColumnOpts=computeCurrentColumnOpts.value;const keyboardOpts=computeKeyboardOpts.value;const aggregateOpts=computeAggregateOpts.value;const rowDragOpts=computeRowDragOpts.value;if(props.rowId){(0,_log.warnLog)('vxe.error.delProp',['row-id','row-config.keyField']);}if(props.rowKey){(0,_log.warnLog)('vxe.error.delProp',['row-key','row-config.useKey']);}if(props.columnKey){(0,_log.warnLog)('vxe.error.delProp',['column-id','column-config.useKey']);}if(!(props.rowId||rowOpts.keyField)&&(checkboxOpts.reserve||checkboxOpts.checkRowKeys||radioOpts.reserve||radioOpts.checkRowKey||expandOpts.expandRowKeys||treeOpts.expandRowKeys)){(0,_log.warnLog)('vxe.error.reqProp',['row-config.keyField']);}if(props.editConfig&&(editOpts.showStatus||editOpts.showUpdateStatus||editOpts.showInsertStatus)&&!props.keepSource){(0,_log.warnLog)('vxe.error.reqProp',['keep-source']);}if(treeConfig&&(treeOpts.showLine||treeOpts.line)&&!showOverflow){(0,_log.warnLog)('vxe.error.reqProp',['show-overflow']);}if(treeConfig&&!treeOpts.transform&&props.stripe){(0,_log.warnLog)('vxe.error.noTree',['stripe']);}if(props.showFooter&&!(props.footerMethod||props.footerData)){(0,_log.warnLog)('vxe.error.reqProp',['footer-data | footer-method']);}if(rowOpts.height){(0,_log.warnLog)('vxe.error.delProp',['row-config.height','cell-config.height']);}if(props.highlightCurrentRow){(0,_log.warnLog)('vxe.error.delProp',['highlight-current-row','row-config.isCurrent']);}if(props.highlightHoverRow){(0,_log.warnLog)('vxe.error.delProp',['highlight-hover-row','row-config.isHover']);}if(props.highlightCurrentColumn){(0,_log.warnLog)('vxe.error.delProp',['highlight-current-column','column-config.isCurrent']);}if(props.highlightHoverColumn){(0,_log.warnLog)('vxe.error.delProp',['highlight-hover-column','column-config.isHover']);}if(props.resizable){(0,_log.warnLog)('vxe.error.delProp',['resizable','column-config.resizable']);}if(props.virtualXConfig&&props.scrollX){(0,_log.warnLog)('vxe.error.notSupportProp',['virtual-x-config','scroll-x','scroll-x=null']);}if(props.virtualYConfig&&props.scrollY){(0,_log.warnLog)('vxe.error.notSupportProp',['virtual-y-config','scroll-y','scroll-y=null']);}if(props.aggregateConfig&&props.rowGroupConfig){(0,_log.warnLog)('vxe.error.notSupportProp',['aggregate-config','row-group-config','row-group-config=null']);}// if (props.scrollY) {
|
|
881
881
|
// warnLog('vxe.error.delProp', ['scroll-y', 'virtual-y-config'])
|
|
882
882
|
// }
|
|
883
883
|
// if (props.scrollX) {
|