vxe-table 4.23.0-beta.1 → 4.23.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/all.esm.js +499 -87
- package/dist/style.css +1 -1
- package/dist/style.min.css +1 -1
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/src/props.js +6 -2
- package/es/table/src/scrollbar.js +54 -0
- package/es/table/src/table.js +427 -81
- package/es/table/src/util.js +11 -2
- package/es/table/style.css +30 -0
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +30 -0
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +106 -28
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/src/props.js +6 -2
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/scrollbar.js +63 -0
- package/lib/table/src/scrollbar.min.js +1 -0
- package/lib/table/src/table.js +32 -22
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +11 -2
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +30 -0
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +30 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/table/src/props.ts +6 -2
- package/packages/table/src/scrollbar.ts +57 -0
- package/packages/table/src/table.ts +459 -83
- package/packages/table/src/util.ts +15 -2
- package/styles/components/table.scss +65 -0
- /package/es/{iconfont.1791954193706.ttf → iconfont.1792035024476.ttf} +0 -0
- /package/es/{iconfont.1791954193706.woff → iconfont.1792035024476.woff} +0 -0
- /package/es/{iconfont.1791954193706.woff2 → iconfont.1792035024476.woff2} +0 -0
- /package/lib/{iconfont.1791954193706.ttf → iconfont.1792035024476.ttf} +0 -0
- /package/lib/{iconfont.1791954193706.woff → iconfont.1792035024476.woff} +0 -0
- /package/lib/{iconfont.1791954193706.woff2 → iconfont.1792035024476.woff2} +0 -0
package/lib/table/src/table.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _vue=require("vue");var _comp=require("../../ui/src/comp");var _xeUtils=_interopRequireDefault(require("xe-utils"));var _dom=require("../../ui/src/dom");var _utils=require("../../ui/src/utils");var _ui=require("../../ui");var _util=require("./util");var _vn=require("../../ui/src/vn");var _anime=require("../../ui/src/anime");var _log=require("../../ui/src/log");var _store=require("./store");var _cell=_interopRequireDefault(require("./cell"));var _body=_interopRequireDefault(require("./body"));var _header=_interopRequireDefault(require("./header"));var _footer=_interopRequireDefault(require("./footer"));var _props=require("./props");var _emits=require("./emits");var _panel=_interopRequireDefault(require("../module/custom/panel"));var _panel2=_interopRequireDefault(require("../module/filter/panel"));var _importPanel=_interopRequireDefault(require("../module/export/import-panel"));var _exportPanel=_interopRequireDefault(require("../module/export/export-panel"));var _panel3=_interopRequireDefault(require("../module/menu/panel"));require("../module/filter/hook");require("../module/menu/hook");require("../module/edit/hook");require("../module/export/hook");require("../module/keyboard/hook");require("../module/validator/hook");require("../module/custom/hook");require("../render");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e};}const{warnLog,errLog}=(0,_log.createComponentLog)('table');const{getConfig,getIcon,getI18n,renderer,formats,createEvent,globalResize,interceptor,hooks,globalEvents,GLOBAL_EVENT_KEYS,useFns,renderEmptyElement}=_ui.VxeUI;const supportMaxRow=5e6;const customStorageKey='VXE_CUSTOM_STORE';const maxYHeight=5e6;const maxXWidth=5e6;const sourceType='table';let crossTableDragRowObj=null;var _default=exports.default=(0,_comp.defineVxeComponent)({name:'VxeTable',props:_props.tableProps,emits:_emits.tableEmits,setup(props,context){const{slots,emit}=context;const xID=_xeUtils.default.uniqueId();const browseObj=_xeUtils.default.browse();const scrollDefaultConf=Object.assign({},getConfig().scrollbar);// 使用已安装的组件,如果未安装则不渲染
|
|
2
|
-
const VxeUILoadingComponent=_ui.VxeUI.getComponent('VxeLoading');const VxeUITooltipComponent=_ui.VxeUI.getComponent('VxeTooltip');const $xeModal=(0,_vue.inject)('$xeModal',null);const $xeTabs=(0,_vue.inject)('$xeTabs',null);const $xeParentTable=(0,_vue.inject)('$xeTable',null);const $xeSplitter=(0,_vue.inject)('$xeSplitter',null);const $xeGrid=(0,_vue.inject)('$xeGrid',null);const $xeGantt=(0,_vue.inject)('$xeGantt',null);const $xeGGWrapper=$xeGrid||$xeGantt;const{computeSize}=useFns.useSize(props);const crossTableDragRowInfo=(0,_store.getCrossTableDragRowInfo)();const reactData=(0,_vue.reactive)((0,_util.createReactData)());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 refCustomContainerElem=(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)(()=>{const opts=Object.assign({},getConfig().table.validConfig,props.validConfig);// 兼容老版本
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _vue=require("vue");var _comp=require("../../ui/src/comp");var _xeUtils=_interopRequireDefault(require("xe-utils"));var _dom=require("../../ui/src/dom");var _utils=require("../../ui/src/utils");var _ui=require("../../ui");var _util=require("./util");var _vn=require("../../ui/src/vn");var _anime=require("../../ui/src/anime");var _scrollbar=require("./scrollbar");var _log=require("../../ui/src/log");var _store=require("./store");var _cell=_interopRequireDefault(require("./cell"));var _body=_interopRequireDefault(require("./body"));var _header=_interopRequireDefault(require("./header"));var _footer=_interopRequireDefault(require("./footer"));var _props=require("./props");var _emits=require("./emits");var _panel=_interopRequireDefault(require("../module/custom/panel"));var _panel2=_interopRequireDefault(require("../module/filter/panel"));var _importPanel=_interopRequireDefault(require("../module/export/import-panel"));var _exportPanel=_interopRequireDefault(require("../module/export/export-panel"));var _panel3=_interopRequireDefault(require("../module/menu/panel"));require("../module/filter/hook");require("../module/menu/hook");require("../module/edit/hook");require("../module/export/hook");require("../module/keyboard/hook");require("../module/validator/hook");require("../module/custom/hook");require("../render");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e};}const{warnLog,errLog}=(0,_log.createComponentLog)('table');const{getConfig,getIcon,getI18n,renderer,formats,createEvent,globalResize,interceptor,hooks,domUtils,globalEvents,GLOBAL_EVENT_KEYS,useFns,renderEmptyElement}=_ui.VxeUI;const supportMaxRow=5e6;const customStorageKey='VXE_CUSTOM_STORE';const maxYHeight=5e6;const maxXWidth=5e6;const sourceType='table';let crossTableDragRowObj=null;var _default=exports.default=(0,_comp.defineVxeComponent)({name:'VxeTable',props:_props.tableProps,emits:_emits.tableEmits,setup(props,context){const{slots,emit}=context;const xID=_xeUtils.default.uniqueId();const browseObj=_xeUtils.default.browse();const scrollDefaultConf=Object.assign({},getConfig().scrollbar);// 使用已安装的组件,如果未安装则不渲染
|
|
2
|
+
const VxeUILoadingComponent=_ui.VxeUI.getComponent('VxeLoading');const VxeUITooltipComponent=_ui.VxeUI.getComponent('VxeTooltip');const $xeModal=(0,_vue.inject)('$xeModal',null);const $xeTabs=(0,_vue.inject)('$xeTabs',null);const $xeParentTable=(0,_vue.inject)('$xeTable',null);const $xeSplitter=(0,_vue.inject)('$xeSplitter',null);const $xeGrid=(0,_vue.inject)('$xeGrid',null);const $xeGantt=(0,_vue.inject)('$xeGantt',null);const $xeGGWrapper=$xeGrid||$xeGantt;const{computeSize}=useFns.useSize(props);const crossTableDragRowInfo=(0,_store.getCrossTableDragRowInfo)();const reactData=(0,_vue.reactive)((0,_util.createReactData)());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 refCustomContainerElem=(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)();const refTrackXElem=(0,_vue.ref)();const refTrackYElem=(0,_vue.ref)();const refThumbXElem=(0,_vue.ref)();const refThumbYElem=(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)(()=>{const opts=Object.assign({},getConfig().table.validConfig,props.validConfig);// 兼容老版本
|
|
3
3
|
if(_xeUtils.default.isBoolean(opts.showMessage)){opts.showErrorMessage=opts.showMessage;}return opts;});/**
|
|
4
4
|
* @deprecated
|
|
5
5
|
*/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;});/**
|
|
@@ -8,7 +8,7 @@ if(_xeUtils.default.isBoolean(opts.showMessage)){opts.showErrorMessage=opts.show
|
|
|
8
8
|
return Object.assign({},globalScrollX,scrollX);}if(globalVirtualXConfig){return Object.assign({},globalVirtualXConfig,virtualXConfig);}// 已废弃,保留兼容
|
|
9
9
|
return Object.assign({},globalScrollX,scrollX);});const computeVirtualYOpts=(0,_vue.computed)(()=>{const{virtualYConfig,scrollY}=props;const globalVirtualYConfig=getConfig().table.virtualYConfig;const globalScrollY=getConfig().table.scrollY;if(virtualYConfig){return Object.assign({},globalVirtualYConfig,virtualYConfig);}if(scrollY){// 已废弃,保留兼容
|
|
10
10
|
return Object.assign({},globalScrollY,scrollY);}if(globalVirtualYConfig){return Object.assign({},globalVirtualYConfig,virtualYConfig);}// 已废弃,保留兼容
|
|
11
|
-
return Object.assign({},globalScrollY,scrollY);});const computeScrollbarOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.scrollbarConfig,props.scrollbarConfig);});const computeScrollbarXOpts=(0,_vue.computed)(()=>{const scrollbarOpts=computeScrollbarOpts.value;return scrollbarOpts.x?Object.assign({},scrollbarOpts.x,scrollbarOpts.xConfig):scrollbarOpts.xConfig||{};});const computeScrollbarYOpts=(0,_vue.computed)(()=>{const scrollbarOpts=computeScrollbarOpts.value;return scrollbarOpts.y?Object.assign({},scrollbarOpts.y,scrollbarOpts.yConfig):scrollbarOpts.yConfig||{};});const computeScrollbarXToTop=(0,_vue.computed)(()=>{const scrollbarXOpts=computeScrollbarXOpts.value;return scrollbarXOpts.position==='top';});const computeScrollbarYToLeft=(0,_vue.computed)(()=>{const scrollbarYOpts=computeScrollbarYOpts.value;return scrollbarYOpts.position==='left';});const computeScrollYThreshold=(0,_vue.computed)(()=>{const virtualYOpts=computeVirtualYOpts.value;const{threshold}=virtualYOpts;if(threshold){return _xeUtils.default.toNumber(threshold);}return 0;});const computeRowHeightMaps=(0,_vue.computed)(()=>{return reactData.rowHeightStore;});const computeDefaultRowHeight=(0,_vue.computed)(()=>{const vSize=computeSize.value;const rowHeightMaps=computeRowHeightMaps.value;return rowHeightMaps[vSize||'default']||18;});const computeColumnOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.columnConfig,props.columnConfig);});const computeCurrentColumnOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.currentColumnConfig,props.currentColumnConfig);});const computeCellOpts=(0,_vue.computed)(()=>{const cellOpts=Object.assign({},getConfig().table.cellConfig,props.cellConfig);if(cellOpts.height){cellOpts.height=_xeUtils.default.toNumber(cellOpts.height);}return cellOpts;});const computeHeaderCellOpts=(0,_vue.computed)(()=>{const headerCellOpts=Object.assign({},getConfig().table.headerCellConfig,props.headerCellConfig);const defaultRowHeight=computeDefaultRowHeight.value;const cellOpts=computeCellOpts.value;let headCellHeight=_xeUtils.default.toNumber((0,_util.getCalcHeight)(headerCellOpts.height||cellOpts.height));if($xeGantt){const{computeTaskViewScales}=$xeGantt.getComputeMaps();const taskViewScales=computeTaskViewScales.value;if(taskViewScales&&taskViewScales.length>2){const ganttMinHeadCellHeight=defaultRowHeight/2*taskViewScales.length;headCellHeight=Math.max(ganttMinHeadCellHeight,headCellHeight);}}headerCellOpts.height=headCellHeight;return headerCellOpts;});const computeFooterCellOpts=(0,_vue.computed)(()=>{const footerCellOpts=Object.assign({},getConfig().table.footerCellConfig,props.footerCellConfig);const cellOpts=computeCellOpts.value;footerCellOpts.height=_xeUtils.default.toNumber((0,_util.getCalcHeight)(footerCellOpts.height||cellOpts.height));return footerCellOpts;});const computeRowOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.rowConfig,props.rowConfig);});const computeAggregateOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.aggregateConfig||getConfig().table.rowGroupConfig,props.aggregateConfig||props.rowGroupConfig);});const computeRowGroupOpts=(0,_vue.computed)(()=>{return computeAggregateOpts.value;});const computeAggregateMode=(0,_vue.computed)(()=>{const aggregateOpts=computeAggregateOpts.value;return aggregateOpts.mode;});const computeAggregateAccuracyOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.aggregateAccuracyConfig,props.aggregateAccuracyConfig);});const computeCurrentRowOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.currentRowConfig,props.currentRowConfig);});const computeRowDragOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.rowDragConfig,props.rowDragConfig);});const computeColumnDragOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.columnDragConfig,props.columnDragConfig);});const computeResizeOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.resizeConfig,props.resizeConfig);});const computeResizableOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.resizableConfig,props.resizableConfig);});const computeSeqOpts=(0,_vue.computed)(()=>{return Object.assign({startIndex:0},getConfig().table.seqConfig,props.seqConfig);});const computeRadioOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.radioConfig,props.radioConfig);});const computeCheckboxOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.checkboxConfig,props.checkboxConfig);});const computeTooltipOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().tooltip,getConfig().table.tooltipConfig,props.tooltipConfig);});const computeHeaderTooltipOpts=(0,_vue.computed)(()=>{const tooltipOpts=computeTooltipOpts.value;return Object.assign({},getConfig().tooltip,{enterable:tooltipOpts.enterable,defaultPlacement:tooltipOpts.defaultPlacement},getConfig().table.headerTooltipConfig,props.headerTooltipConfig);});const computeFooterTooltipOpts=(0,_vue.computed)(()=>{const tooltipOpts=computeTooltipOpts.value;return Object.assign({},getConfig().tooltip,{enterable:tooltipOpts.enterable,defaultPlacement:tooltipOpts.defaultPlacement},getConfig().table.footerTooltipConfig,props.footerTooltipConfig);});const computeTableTipConfig=(0,_vue.computed)(()=>{const{tooltipStore}=reactData;const tooltipOpts=computeTooltipOpts.value;return Object.assign({},tooltipOpts,tooltipStore.currOpts);});const computeValidTipConfig=(0,_vue.computed)(()=>{const tooltipOpts=computeTooltipOpts.value;return Object.assign({},tooltipOpts);});const computeEditOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.editConfig,props.editConfig);});const computeEditDirtyOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.editDirtyConfig,props.editDirtyConfig);});const computeSortOpts=(0,_vue.computed)(()=>{return Object.assign({orders:['asc','desc',null]},getConfig().table.sortConfig,props.sortConfig);});const computeFilterOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.filterConfig,props.filterConfig);});const computeFloatingFilterOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.floatingFilterConfig,props.floatingFilterConfig);});const computeMouseOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.mouseConfig,props.mouseConfig);});const computeAreaOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.areaConfig,props.areaConfig);});const computeKeyboardOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.keyboardConfig,props.keyboardConfig);});const computeClipOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.clipConfig,props.clipConfig);});const computeUndoRedoHistoryOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.undoRedoHistoryConfig,props.undoRedoHistoryConfig);});const computeFNROpts=(0,_vue.computed)(()=>{const fnrOpts=computeFnrOpts.value;return fnrOpts;});const computeFnrOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.fnrConfig,props.fnrConfig);});const computeMenuOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.menuConfig,props.menuConfig);});const computeLeftFixedWidth=(0,_vue.computed)(()=>{const{columnStore}=reactData;const{leftList}=columnStore;let leftWidth=0;for(let i=0;i<leftList.length;i++){const column=leftList[i];leftWidth+=column.renderWidth;}return leftWidth;});const computeRightFixedWidth=(0,_vue.computed)(()=>{const{columnStore}=reactData;const{rightList}=columnStore;let leftWidth=0;for(let i=0;i<rightList.length;i++){const column=rightList[i];leftWidth+=column.renderWidth;}return leftWidth;});// 合并列是否超越冻结列
|
|
11
|
+
return Object.assign({},globalScrollY,scrollY);});const computeScrollbarOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.scrollbarConfig,props.scrollbarConfig);});const computeScrollbarXOpts=(0,_vue.computed)(()=>{const scrollbarOpts=computeScrollbarOpts.value;return scrollbarOpts.x?Object.assign({},scrollbarOpts.x,scrollbarOpts.xConfig):scrollbarOpts.xConfig||{};});const computeScrollbarYOpts=(0,_vue.computed)(()=>{const scrollbarOpts=computeScrollbarOpts.value;return scrollbarOpts.y?Object.assign({},scrollbarOpts.y,scrollbarOpts.yConfig):scrollbarOpts.yConfig||{};});const computeScrollXHeight=(0,_vue.computed)(()=>{const scrollbarOpts=computeScrollbarOpts.value;const scrollbarXOpts=computeScrollbarXOpts.value;return _xeUtils.default.toNumber((0,_utils.getDefaultConfig)((0,_utils.getDefaultConfig)(scrollbarXOpts.height,scrollbarOpts.height),scrollDefaultConf.height));});const computeScrollYWidth=(0,_vue.computed)(()=>{const scrollbarOpts=computeScrollbarOpts.value;const scrollbarYOpts=computeScrollbarYOpts.value;return _xeUtils.default.toNumber((0,_utils.getDefaultConfig)((0,_utils.getDefaultConfig)(scrollbarYOpts.width,scrollbarOpts.width),scrollDefaultConf.width));});const computeScrollXVisible=(0,_vue.computed)(()=>{const scrollbarOpts=computeScrollbarOpts.value;const scrollbarXOpts=computeScrollbarXOpts.value;return(0,_utils.getDefaultConfig)(scrollbarXOpts.visible,scrollbarOpts.visible);});const computeScrollYVisible=(0,_vue.computed)(()=>{const scrollbarOpts=computeScrollbarOpts.value;const scrollbarYOpts=computeScrollbarYOpts.value;return(0,_utils.getDefaultConfig)(scrollbarYOpts.visible,scrollbarOpts.visible);});const computeScrollXAutoHide=(0,_vue.computed)(()=>{const scrollbarOpts=computeScrollbarOpts.value;const scrollbarXOpts=computeScrollbarXOpts.value;return(0,_utils.getDefaultConfig)((0,_utils.getDefaultConfig)(scrollbarXOpts.autoHide,scrollbarOpts.autoHide),scrollDefaultConf.autoHide);});const computeScrollYAutoHide=(0,_vue.computed)(()=>{const scrollbarOpts=computeScrollbarOpts.value;const scrollbarYOpts=computeScrollbarYOpts.value;return(0,_utils.getDefaultConfig)((0,_utils.getDefaultConfig)(scrollbarYOpts.autoHide,scrollbarOpts.autoHide),scrollDefaultConf.autoHide);});const computeScrollbarXToTop=(0,_vue.computed)(()=>{const scrollbarXOpts=computeScrollbarXOpts.value;return scrollbarXOpts.position==='top';});const computeScrollbarYToLeft=(0,_vue.computed)(()=>{const scrollbarYOpts=computeScrollbarYOpts.value;return scrollbarYOpts.position==='left';});const computeScrollbarWrapperClss=(0,_vue.computed)(()=>{const{yThumbHeight,xThumbWidth}=reactData;const scrollbarXToTop=computeScrollbarXToTop.value;const scrollbarYToLeft=computeScrollbarYToLeft.value;const scrollXVisible=computeScrollXVisible.value;const scrollYVisible=computeScrollYVisible.value;return domUtils.buildClass(['vxe-scrollbar is--virtual',`ov-x--${scrollXVisible===false?'hidden':'visible'}`,`ov-y--${scrollYVisible===false?'hidden':'visible'}`,`sx-pos--${scrollbarXToTop?'top':'bottom'}`,`sy-pos--${scrollbarYToLeft?'left':'right'}`],{'overflow-y':yThumbHeight,'overflow-x':xThumbWidth});});const computeScrollYThreshold=(0,_vue.computed)(()=>{const virtualYOpts=computeVirtualYOpts.value;const{threshold}=virtualYOpts;if(threshold){return _xeUtils.default.toNumber(threshold);}return 0;});const computeRowHeightMaps=(0,_vue.computed)(()=>{return reactData.rowHeightStore;});const computeDefaultRowHeight=(0,_vue.computed)(()=>{const vSize=computeSize.value;const rowHeightMaps=computeRowHeightMaps.value;return rowHeightMaps[vSize||'default']||18;});const computeColumnOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.columnConfig,props.columnConfig);});const computeCurrentColumnOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.currentColumnConfig,props.currentColumnConfig);});const computeCellOpts=(0,_vue.computed)(()=>{const cellOpts=Object.assign({},getConfig().table.cellConfig,props.cellConfig);if(cellOpts.height){cellOpts.height=_xeUtils.default.toNumber(cellOpts.height);}return cellOpts;});const computeCellHeitht=(0,_vue.computed)(()=>{const cellOpts=computeCellOpts.value;return cellOpts.height;});const computeHeaderCellOpts=(0,_vue.computed)(()=>{const headerCellOpts=Object.assign({},getConfig().table.headerCellConfig,props.headerCellConfig);const defaultRowHeight=computeDefaultRowHeight.value;const cellOpts=computeCellOpts.value;let headCellHeight=_xeUtils.default.toNumber((0,_util.getCalcHeight)(headerCellOpts.height||cellOpts.height));if($xeGantt){const{computeTaskViewScales}=$xeGantt.getComputeMaps();const taskViewScales=computeTaskViewScales.value;if(taskViewScales&&taskViewScales.length>2){const ganttMinHeadCellHeight=defaultRowHeight/2*taskViewScales.length;headCellHeight=Math.max(ganttMinHeadCellHeight,headCellHeight);}}headerCellOpts.height=headCellHeight;return headerCellOpts;});const computeFooterCellOpts=(0,_vue.computed)(()=>{const footerCellOpts=Object.assign({},getConfig().table.footerCellConfig,props.footerCellConfig);const cellOpts=computeCellOpts.value;footerCellOpts.height=_xeUtils.default.toNumber((0,_util.getCalcHeight)(footerCellOpts.height||cellOpts.height));return footerCellOpts;});const computeRowOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.rowConfig,props.rowConfig);});const computeAggregateOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.aggregateConfig||getConfig().table.rowGroupConfig,props.aggregateConfig||props.rowGroupConfig);});const computeRowGroupOpts=(0,_vue.computed)(()=>{return computeAggregateOpts.value;});const computeAggregateMode=(0,_vue.computed)(()=>{const aggregateOpts=computeAggregateOpts.value;return aggregateOpts.mode;});const computeAggregateAccuracyOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.aggregateAccuracyConfig,props.aggregateAccuracyConfig);});const computeCurrentRowOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.currentRowConfig,props.currentRowConfig);});const computeRowDragOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.rowDragConfig,props.rowDragConfig);});const computeColumnDragOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.columnDragConfig,props.columnDragConfig);});const computeResizeOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.resizeConfig,props.resizeConfig);});const computeResizableOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.resizableConfig,props.resizableConfig);});const computeSeqOpts=(0,_vue.computed)(()=>{return Object.assign({startIndex:0},getConfig().table.seqConfig,props.seqConfig);});const computeRadioOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.radioConfig,props.radioConfig);});const computeCheckboxOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.checkboxConfig,props.checkboxConfig);});const computeTooltipOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().tooltip,getConfig().table.tooltipConfig,props.tooltipConfig);});const computeHeaderTooltipOpts=(0,_vue.computed)(()=>{const tooltipOpts=computeTooltipOpts.value;return Object.assign({},getConfig().tooltip,{enterable:tooltipOpts.enterable,defaultPlacement:tooltipOpts.defaultPlacement},getConfig().table.headerTooltipConfig,props.headerTooltipConfig);});const computeFooterTooltipOpts=(0,_vue.computed)(()=>{const tooltipOpts=computeTooltipOpts.value;return Object.assign({},getConfig().tooltip,{enterable:tooltipOpts.enterable,defaultPlacement:tooltipOpts.defaultPlacement},getConfig().table.footerTooltipConfig,props.footerTooltipConfig);});const computeTableTipConfig=(0,_vue.computed)(()=>{const{tooltipStore}=reactData;const tooltipOpts=computeTooltipOpts.value;return Object.assign({},tooltipOpts,tooltipStore.currOpts);});const computeValidTipConfig=(0,_vue.computed)(()=>{const tooltipOpts=computeTooltipOpts.value;return Object.assign({},tooltipOpts);});const computeEditOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.editConfig,props.editConfig);});const computeEditDirtyOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.editDirtyConfig,props.editDirtyConfig);});const computeSortOpts=(0,_vue.computed)(()=>{return Object.assign({orders:['asc','desc',null]},getConfig().table.sortConfig,props.sortConfig);});const computeFilterOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.filterConfig,props.filterConfig);});const computeFloatingFilterOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.floatingFilterConfig,props.floatingFilterConfig);});const computeMouseOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.mouseConfig,props.mouseConfig);});const computeAreaOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.areaConfig,props.areaConfig);});const computeKeyboardOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.keyboardConfig,props.keyboardConfig);});const computeClipOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.clipConfig,props.clipConfig);});const computeUndoRedoHistoryOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.undoRedoHistoryConfig,props.undoRedoHistoryConfig);});const computeFNROpts=(0,_vue.computed)(()=>{const fnrOpts=computeFnrOpts.value;return fnrOpts;});const computeFnrOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.fnrConfig,props.fnrConfig);});const computeMenuOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.menuConfig,props.menuConfig);});const computeLeftFixedWidth=(0,_vue.computed)(()=>{const{columnStore}=reactData;const{leftList}=columnStore;let leftWidth=0;for(let i=0;i<leftList.length;i++){const column=leftList[i];leftWidth+=column.renderWidth;}return leftWidth;});const computeRightFixedWidth=(0,_vue.computed)(()=>{const{columnStore}=reactData;const{rightList}=columnStore;let leftWidth=0;for(let i=0;i<rightList.length;i++){const column=rightList[i];leftWidth+=column.renderWidth;}return leftWidth;});// 合并列是否超越冻结列
|
|
12
12
|
const computeBodyMergeCoverFixed=(0,_vue.computed)(()=>{const{columnStore,mergeBodyFlag}=reactData;const{mergeBodyList,visibleColumn}=internalData;const{leftList,rightList}=columnStore;const rscIndex=visibleColumn.length-rightList.length;if(mergeBodyFlag&&(leftList.length||rightList.length)){const lecIndex=leftList.length;for(let i=0;i<mergeBodyList.length;i++){const{col,colspan}=mergeBodyList[i];if(col<lecIndex&&col+colspan>lecIndex){return true;}else if(col<rscIndex&&col+colspan>rscIndex){return true;}}}return false;});const computeIsHeaderRenderOptimize=(0,_vue.computed)(()=>{const{spanMethod,footerSpanMethod,showHeaderOverflow:allColumnHeaderOverflow}=props;const{isGroup,scrollXLoad}=reactData;let isOptimizeMode=false;if(isGroup){// 分组表头
|
|
13
13
|
}else{// 如果是使用优化模式
|
|
14
14
|
if(scrollXLoad&&allColumnHeaderOverflow){if(spanMethod||footerSpanMethod){// 如果不支持优化模式
|
|
@@ -19,11 +19,11 @@ if(scrollXLoad||scrollYLoad||isAllOverflow){// 如果是展开行,内联模式
|
|
|
19
19
|
if(expandColumn&&expandOpts.mode!=='fixed'||bodyMergeCoverFixed||spanMethod||footerSpanMethod){// 如果不支持优化模式
|
|
20
20
|
}else{isOptimizeMode=true;}}return isOptimizeMode;});const computeIsFooterRenderOptimize=(0,_vue.computed)(()=>{const{spanMethod,footerSpanMethod,showFooterOverflow:allColumnFooterOverflow}=props;const{scrollXLoad}=reactData;let isOptimizeMode=false;// 如果是使用优化模式
|
|
21
21
|
if(scrollXLoad&&allColumnFooterOverflow){if(spanMethod||footerSpanMethod){// 如果不支持优化模式
|
|
22
|
-
}else{isOptimizeMode=true;}}return isOptimizeMode;});const computeHeaderMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const headerOpts=menuOpts.header;return headerOpts&&headerOpts.options?headerOpts.options:[];});const computeBodyMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const bodyOpts=menuOpts.body;return bodyOpts&&bodyOpts.options?bodyOpts.options:[];});const computeFooterMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const footerOpts=menuOpts.footer;return footerOpts&&footerOpts.options?footerOpts.options:[];});const computeIsMenu=(0,_vue.computed)(()=>{const isContentMenu=computeIsContentMenu.value;return isContentMenu;});const computeIsContentMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const headerMenu=computeHeaderMenu.value;const bodyMenu=computeBodyMenu.value;const footerMenu=computeFooterMenu.value;return!!(props.menuConfig&&(0,_utils.isEnableConf)(menuOpts)&&(headerMenu.length||bodyMenu.length||footerMenu.length));});const computeMenuList=(0,_vue.computed)(()=>{const{ctxMenuStore}=reactData;const rest=[];ctxMenuStore.list.forEach(list=>{list.forEach(item=>{rest.push(item);});});return rest;});const computeExportOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.exportConfig,props.exportConfig);});const computeImportOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.importConfig,props.importConfig);});const computePrintOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.printConfig,props.printConfig);});const computeExpandOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.expandConfig,props.expandConfig);});const computeTreeOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.treeConfig,props.treeConfig);});const computeEmptyOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.emptyRender,props.emptyRender);});const computeLoadingOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.loadingConfig,props.loadingConfig);});const computeCellOffsetWidth=(0,_vue.computed)(()=>{return props.border?Math.max(2,Math.ceil(reactData.scrollbarWidth/reactData.tableColumn.length)):1;});const computeCustomOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.customConfig,props.customConfig);});const computeCustomSimpleMode=(0,_vue.computed)(()=>{const{minHeight,height}=props;const customOpts=computeCustomOpts.value;const{mode,popupOptions,placement}=customOpts;if(!placement||placement==='top-left'||placement==='top-right'){if(!(mode==='modal'||mode==='drawer')){const{mode}=popupOptions||{};if(!mode||mode==='auto'){if(height||minHeight){return'inside';}return'outside';}if(mode){return mode;}}}return'';});const computeTableStyle=(0,_vue.computed)(()=>{const
|
|
22
|
+
}else{isOptimizeMode=true;}}return isOptimizeMode;});const computeHeaderMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const headerOpts=menuOpts.header;return headerOpts&&headerOpts.options?headerOpts.options:[];});const computeBodyMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const bodyOpts=menuOpts.body;return bodyOpts&&bodyOpts.options?bodyOpts.options:[];});const computeFooterMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const footerOpts=menuOpts.footer;return footerOpts&&footerOpts.options?footerOpts.options:[];});const computeIsMenu=(0,_vue.computed)(()=>{const isContentMenu=computeIsContentMenu.value;return isContentMenu;});const computeIsContentMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const headerMenu=computeHeaderMenu.value;const bodyMenu=computeBodyMenu.value;const footerMenu=computeFooterMenu.value;return!!(props.menuConfig&&(0,_utils.isEnableConf)(menuOpts)&&(headerMenu.length||bodyMenu.length||footerMenu.length));});const computeMenuList=(0,_vue.computed)(()=>{const{ctxMenuStore}=reactData;const rest=[];ctxMenuStore.list.forEach(list=>{list.forEach(item=>{rest.push(item);});});return rest;});const computeExportOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.exportConfig,props.exportConfig);});const computeImportOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.importConfig,props.importConfig);});const computePrintOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.printConfig,props.printConfig);});const computeExpandOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.expandConfig,props.expandConfig);});const computeTreeOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.treeConfig,props.treeConfig);});const computeEmptyOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.emptyRender,props.emptyRender);});const computeLoadingOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.loadingConfig,props.loadingConfig);});const computeCellOffsetWidth=(0,_vue.computed)(()=>{return props.border?Math.max(2,Math.ceil(reactData.scrollbarWidth/reactData.tableColumn.length)):1;});const computeCustomOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.customConfig,props.customConfig);});const computeCustomSimpleMode=(0,_vue.computed)(()=>{const{minHeight,height}=props;const customOpts=computeCustomOpts.value;const{mode,popupOptions,placement}=customOpts;if(!placement||placement==='top-left'||placement==='top-right'){if(!(mode==='modal'||mode==='drawer')){const{mode}=popupOptions||{};if(!mode||mode==='auto'){if(height||minHeight){return'inside';}return'outside';}if(mode){return mode;}}}return'';});const computeTableStyle=(0,_vue.computed)(()=>{const barWidth=computeScrollYWidth.value;const barHeight=computeScrollXHeight.value;const stys={};if(barWidth||barHeight){stys['--vxe-ui-table-view-scrollbar-width']=(0,_dom.toCssUnit)(barWidth||barHeight);stys['--vxe-ui-scrollbar-y-width']=(0,_dom.toCssUnit)(barWidth||barHeight);stys['--vxe-ui-table-view-scrollbar-height']=(0,_dom.toCssUnit)(barHeight||barWidth);stys['--vxe-ui-scrollbar-x-height']=(0,_dom.toCssUnit)(barHeight||barWidth);}return stys;});const computeTableRowExpandedList=(0,_vue.computed)(()=>{const{tableData,rowExpandedFlag,expandColumn,rowGroupExpandedFlag,treeExpandedFlag}=reactData;const{visibleDataRowIdData,rowExpandedMaps}=internalData;const expandList=[];if(tableData.length&&expandColumn&&rowExpandedFlag&&rowGroupExpandedFlag&&treeExpandedFlag){_xeUtils.default.each(rowExpandedMaps,(row,rowid)=>{if(visibleDataRowIdData[rowid]){expandList.push(row);}});}return expandList;});const computeAutoWidthColumnList=(0,_vue.computed)(()=>{const{visibleColumn}=internalData;const{tableColumn}=reactData;return tableColumn.length||visibleColumn.length?visibleColumn.filter(column=>column.width==='auto'||column.minWidth==='auto'):[];});const computeFixedColumnSize=(0,_vue.computed)(()=>{const{tableColumn}=reactData;const{collectColumn}=internalData;let fixedSize=0;// 只判断第一层
|
|
23
23
|
if(tableColumn.length&&collectColumn.length){collectColumn.forEach(column=>{if(column.renderFixed){fixedSize++;}});}return fixedSize;});const computeIsMaxFixedColumn=(0,_vue.computed)(()=>{const fixedColumnSize=computeFixedColumnSize.value;const columnOpts=computeColumnOpts.value;const{maxFixedSize}=columnOpts;if(maxFixedSize){return fixedColumnSize>=maxFixedSize;}return false;});const computeKeepFields=(0,_vue.computed)(()=>{const{tableFullColumn}=internalData;const{updateColFlag}=reactData;const editDirtyOpts=computeEditDirtyOpts.value;const{extraFields,includeFields,excludeFields}=editDirtyOpts;const kpFields=[];if(updateColFlag){// 优先级 excludeFields > (includeFields || extraFields)
|
|
24
24
|
const excludeFdMaps={};if(excludeFields&&excludeFields.length){excludeFields.forEach(field=>{excludeFdMaps[field]=1;});}if(includeFields&&includeFields.length){return excludeFields&&excludeFields.length?includeFields.filter(field=>!excludeFdMaps[field]):includeFields;}const addFdMaps={};if(extraFields&&extraFields.length){extraFields.forEach(field=>{if(!addFdMaps[field]){addFdMaps[field]=1;kpFields.push(field);}});}for(let i=0;i<tableFullColumn.length;i++){const column=tableFullColumn[i];const{field,type,editRender,cellRender}=column;if(field&&!type&&(editRender||cellRender)&&!addFdMaps[field]&&!excludeFdMaps[field]){addFdMaps[field]=1;kpFields.push(field);}}}return kpFields;});const computeTableBorder=(0,_vue.computed)(()=>{const{border}=props;if(border===true){return'full';}if(border){return border;}return'default';});const computeIsAllCheckboxDisabled=(0,_vue.computed)(()=>{const{treeConfig}=props;const{tableData}=reactData;const{tableFullData}=internalData;const checkboxOpts=computeCheckboxOpts.value;const{strict,checkMethod}=checkboxOpts;if(strict){if(tableData.length||tableFullData.length){if(checkMethod){if(treeConfig){// 暂时不支持树形结构
|
|
25
25
|
}// 如果所有行都被禁用
|
|
26
|
-
return tableFullData.every(row=>!checkMethod({$table:$xeTable,row}));}return false;}return true;}return false;});const computeVirtualScrollBars=(0,_vue.computed)(()=>{const{overflowX,scrollXLoad,overflowY,scrollYLoad}=reactData;return{x:overflowX&&scrollXLoad,y:overflowY&&scrollYLoad};});const computeRowGroupFields=(0,_vue.computed)(()=>{const rowGroupOpts=computeRowGroupOpts.value;return rowGroupOpts.groupFields;});const computeRowGroupColumns=(0,_vue.computed)(()=>{const{rowGroupList}=reactData;const{fullColumnFieldData}=internalData;const rgColumns=[];rowGroupList.forEach(aggConf=>{const colRest=fullColumnFieldData[aggConf.field];if(colRest){rgColumns.push(colRest.column);}});return rgColumns;});const computeAggFuncColumns=(0,_vue.computed)(()=>{const{rowGroupList,tableColumn}=reactData;if(rowGroupList.length){return tableColumn.filter(column=>column.aggFunc);}return[];});const combineTabsResizeFlag=(0,_vue.computed)(()=>{return $xeTabs?$xeTabs.reactData.resizeFlag:null;});const combineModalResizeFlag=(0,_vue.computed)(()=>{return $xeModal?$xeModal.reactData.resizeFlag:null;});const combineSplitterResizeFlag=(0,_vue.computed)(()=>{return $xeSplitter?$xeSplitter.reactData.resizeFlag:null;});const computeRendererOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.rendererConfig,props.rendererConfig);});const refMaps={refElem,refTooltip,refValidTooltip,refTableFilter,refTableCustom,refTableMenu,refTableHeader,refTableBody,refTableFooter,refTableLeftHeader,refTableLeftBody,refTableLeftFooter,refTableRightHeader,refTableRightBody,refTableRightFooter,refLeftContainer,refRightContainer,refColResizeBar,refRowResizeBar,refCustomContainerElem,refScrollXVirtualElem,refScrollYVirtualElem,refScrollXHandleElem,refScrollYHandleElem,refScrollXSpaceElem,refScrollYSpaceElem};const computeMaps={computeSize,computeTableId,computeValidOpts,computeRowField,computeVirtualXOpts,computeVirtualYOpts,computeScrollbarOpts,computeScrollbarXOpts,computeScrollbarYOpts,computeScrollbarXToTop,computeScrollbarYToLeft,computeColumnOpts,computeCurrentColumnOpts,computeScrollXThreshold,computeScrollYThreshold,computeRowHeightMaps,computeDefaultRowHeight,computeCellOpts,computeHeaderCellOpts,computeFooterCellOpts,computeRowOpts,computeAggregateOpts,computeAggregateAccuracyOpts,computeRowGroupOpts,computeCurrentRowOpts,computeRowDragOpts,computeColumnDragOpts,computeResizeOpts,computeResizableOpts,computeSeqOpts,computeRadioOpts,computeCheckboxOpts,computeTooltipOpts,computeHeaderTooltipOpts,computeFooterTooltipOpts,computeEditOpts,computeEditDirtyOpts,computeSortOpts,computeFilterOpts,computeFloatingFilterOpts,computeMouseOpts,computeAreaOpts,computeKeyboardOpts,computeClipOpts,computeFnrOpts,computeHeaderMenu,computeBodyMenu,computeFooterMenu,computeIsMenu,computeIsContentMenu,computeMenuList,computeMenuOpts,computeExportOpts,computeImportOpts,computePrintOpts,computeExpandOpts,computeTreeOpts,computeEmptyOpts,computeLoadingOpts,computeCellOffsetWidth,computeCustomOpts,computeCustomSimpleMode,computeLeftFixedWidth,computeRightFixedWidth,computeBodyMergeCoverFixed,computeFixedColumnSize,computeIsMaxFixedColumn,computeKeepFields,computeIsAllCheckboxDisabled,computeIsHeaderRenderOptimize,computeIsBodyRenderOptimize,computeIsFooterRenderOptimize,computeVirtualScrollBars,computeRowGroupFields,computeRowGroupColumns,computeAggFuncColumns,computeUndoRedoHistoryOpts,computeRendererOpts,computeFNROpts,computeSXOpts,computeSYOpts};const $xeTable={xID,props:props,context,reactData,internalData,getRefMaps:()=>refMaps,getComputeMaps:()=>computeMaps,xeGrid:$xeGrid,xeGantt:$xeGantt,// 已废弃
|
|
26
|
+
return tableFullData.every(row=>!checkMethod({$table:$xeTable,row}));}return false;}return true;}return false;});const computeVirtualScrollBars=(0,_vue.computed)(()=>{const{overflowX,scrollXLoad,overflowY,scrollYLoad}=reactData;return{x:overflowX&&scrollXLoad,y:overflowY&&scrollYLoad};});const computeRowGroupFields=(0,_vue.computed)(()=>{const rowGroupOpts=computeRowGroupOpts.value;return rowGroupOpts.groupFields;});const computeRowGroupColumns=(0,_vue.computed)(()=>{const{rowGroupList}=reactData;const{fullColumnFieldData}=internalData;const rgColumns=[];rowGroupList.forEach(aggConf=>{const colRest=fullColumnFieldData[aggConf.field];if(colRest){rgColumns.push(colRest.column);}});return rgColumns;});const computeAggFuncColumns=(0,_vue.computed)(()=>{const{rowGroupList,tableColumn}=reactData;if(rowGroupList.length){return tableColumn.filter(column=>column.aggFunc);}return[];});const combineTabsResizeFlag=(0,_vue.computed)(()=>{return $xeTabs?$xeTabs.reactData.resizeFlag:null;});const combineModalResizeFlag=(0,_vue.computed)(()=>{return $xeModal?$xeModal.reactData.resizeFlag:null;});const combineSplitterResizeFlag=(0,_vue.computed)(()=>{return $xeSplitter?$xeSplitter.reactData.resizeFlag:null;});const computeRendererOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.rendererConfig,props.rendererConfig);});const refMaps={refElem,refTooltip,refValidTooltip,refTableFilter,refTableCustom,refTableMenu,refTableHeader,refTableBody,refTableFooter,refTableLeftHeader,refTableLeftBody,refTableLeftFooter,refTableRightHeader,refTableRightBody,refTableRightFooter,refLeftContainer,refRightContainer,refColResizeBar,refRowResizeBar,refCustomContainerElem,refScrollXVirtualElem,refScrollYVirtualElem,refScrollXHandleElem,refScrollYHandleElem,refScrollXSpaceElem,refScrollYSpaceElem};const computeMaps={computeSize,computeTableId,computeValidOpts,computeRowField,computeVirtualXOpts,computeVirtualYOpts,computeScrollbarOpts,computeScrollbarXOpts,computeScrollbarYOpts,computeScrollXHeight,computeScrollYWidth,computeScrollXVisible,computeScrollYVisible,computeScrollXAutoHide,computeScrollYAutoHide,computeScrollbarXToTop,computeScrollbarYToLeft,computeScrollbarWrapperClss,computeColumnOpts,computeCurrentColumnOpts,computeScrollXThreshold,computeScrollYThreshold,computeRowHeightMaps,computeDefaultRowHeight,computeCellOpts,computeHeaderCellOpts,computeFooterCellOpts,computeRowOpts,computeAggregateOpts,computeAggregateAccuracyOpts,computeRowGroupOpts,computeCurrentRowOpts,computeRowDragOpts,computeColumnDragOpts,computeResizeOpts,computeResizableOpts,computeSeqOpts,computeRadioOpts,computeCheckboxOpts,computeTooltipOpts,computeHeaderTooltipOpts,computeFooterTooltipOpts,computeEditOpts,computeEditDirtyOpts,computeSortOpts,computeFilterOpts,computeFloatingFilterOpts,computeMouseOpts,computeAreaOpts,computeKeyboardOpts,computeClipOpts,computeFnrOpts,computeHeaderMenu,computeBodyMenu,computeFooterMenu,computeIsMenu,computeIsContentMenu,computeMenuList,computeMenuOpts,computeExportOpts,computeImportOpts,computePrintOpts,computeExpandOpts,computeTreeOpts,computeEmptyOpts,computeLoadingOpts,computeCellOffsetWidth,computeCustomOpts,computeCustomSimpleMode,computeLeftFixedWidth,computeRightFixedWidth,computeBodyMergeCoverFixed,computeFixedColumnSize,computeIsMaxFixedColumn,computeKeepFields,computeIsAllCheckboxDisabled,computeIsHeaderRenderOptimize,computeIsBodyRenderOptimize,computeIsFooterRenderOptimize,computeVirtualScrollBars,computeRowGroupFields,computeRowGroupColumns,computeAggFuncColumns,computeUndoRedoHistoryOpts,computeRendererOpts,computeFNROpts,computeSXOpts,computeSYOpts};const $xeTable={xID,props:props,context,reactData,internalData,getRefMaps:()=>refMaps,getComputeMaps:()=>computeMaps,xeGrid:$xeGrid,xeGantt:$xeGantt,// 已废弃
|
|
27
27
|
xegrid:$xeGrid};const eqCellValue=(newRow,oldRow,field)=>{const val1=_xeUtils.default.get(newRow,field);const val2=_xeUtils.default.get(oldRow,field);let result=false;if((0,_utils.eqEmptyValue)(val1)&&(0,_utils.eqEmptyValue)(val2)){result=true;}else if(_xeUtils.default.isString(val1)||_xeUtils.default.isNumber(val1)){result=''+val1===''+val2;}else{result=_xeUtils.default.isEqual(val1,val2);}return{newValue:val1,oldValue:val2,result};};const handleKeyField=()=>{const keyField=computeRowField.value;internalData.currKeyField=keyField;internalData.isCurrDeepKey=(0,_util.hasDeepKey)(keyField);};const getNextSortOrder=column=>{const sortOpts=computeSortOpts.value;const{orders=[]}=sortOpts;const currOrder=column.order||null;const oIndex=orders.indexOf(currOrder)+1;return orders[oIndex<orders.length?oIndex:0];};const getCustomStorageMap=id=>{const version=getConfig().version;const rest=_xeUtils.default.toStringJSON(localStorage.getItem(customStorageKey)||'');const maps=rest&&rest._v===version?rest:{_v:version};return(id?maps[id]:maps)||{};};const setCustomStorageMap=(id,data)=>{const version=getConfig().version;const maps=getCustomStorageMap();maps[id]=data||undefined;maps._v=version;localStorage.setItem(customStorageKey,_xeUtils.default.toJSONString(maps));};const getRecoverRowMaps=keyMaps=>{const{fullAllDataRowIdData}=internalData;const restKeys={};_xeUtils.default.each(keyMaps,(row,rowid)=>{if(fullAllDataRowIdData[rowid]){restKeys[rowid]=row;}});return restKeys;};const handleReserveRow=reserveRowMap=>{const{fullDataRowIdData}=internalData;const reserveList=[];_xeUtils.default.each(reserveRowMap,(item,rowid)=>{if(fullDataRowIdData[rowid]&&$xeTable.findRowIndexOf(reserveList,fullDataRowIdData[rowid].row)===-1){reserveList.push(fullDataRowIdData[rowid].row);}});return reserveList;};const handleVirtualXVisible=()=>{const{isScrollXBig,scrollXWidth}=reactData;const{elemStore,visibleColumn,fullColumnIdData}=internalData;const leftFixedWidth=computeLeftFixedWidth.value;const rightFixedWidth=computeRightFixedWidth.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(bodyScrollElem){const clientWidth=bodyScrollElem.clientWidth;let scrollLeft=bodyScrollElem.scrollLeft;if(isScrollXBig){scrollLeft=Math.ceil((scrollXWidth-clientWidth)*Math.min(1,scrollLeft/(maxXWidth-clientWidth)));}const startLeft=scrollLeft+leftFixedWidth;const endLeft=scrollLeft+clientWidth-rightFixedWidth;let leftIndex=0;let rightIndex=visibleColumn.length;while(leftIndex<rightIndex){const cIndex=Math.floor((leftIndex+rightIndex)/2);const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};if(colRest.oLeft<=startLeft){leftIndex=cIndex+1;}else{rightIndex=cIndex;}}let visibleSize=0;const toVisibleIndex=leftIndex===visibleColumn.length?leftIndex:Math.max(0,leftIndex<visibleColumn.length?leftIndex-2:0);for(let cIndex=toVisibleIndex,cLen=visibleColumn.length;cIndex<cLen;cIndex++){const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};visibleSize++;if(colRest.oLeft>endLeft||visibleSize>=60){break;}}return{toVisibleIndex:Math.max(0,toVisibleIndex),visibleSize:Math.max(1,visibleSize)};}return{toVisibleIndex:0,visibleSize:6};};const calcVarRowHeightConfig=(sizeKey,sizeEl)=>{const{rowHeightStore}=reactData;if(sizeEl&&sizeEl.clientHeight){rowHeightStore[sizeKey]=sizeEl.clientHeight;}};const computeRowHeight=()=>{const{isAllOverflow}=reactData;const tableHeader=refTableHeader.value;const tableBody=refTableBody.value;const tableBodyElem=tableBody?tableBody.$el:null;const defaultRowHeight=computeDefaultRowHeight.value;let rowHeight=0;if(isAllOverflow){if(tableBodyElem){const tableHeaderElem=tableHeader?tableHeader.$el:null;let firstTrElem;firstTrElem=tableBodyElem.querySelector('tr');if(!firstTrElem&&tableHeaderElem){firstTrElem=tableHeaderElem.querySelector('tr');}if(firstTrElem){rowHeight=firstTrElem.clientHeight;}}if(!rowHeight){rowHeight=defaultRowHeight;}}else{rowHeight=defaultRowHeight;}// 最低支持 18px 行高
|
|
28
28
|
return Math.max(18,rowHeight);};const handleVirtualYVisible=()=>{const{isAllOverflow,expandColumn,isScrollYBig,scrollYHeight}=reactData;const{elemStore,isResizeCellHeight,afterFullData,fullAllDataRowIdData}=internalData;const rowOpts=computeRowOpts.value;const cellOpts=computeCellOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(bodyScrollElem){const clientHeight=bodyScrollElem.clientHeight;let scrollTop=bodyScrollElem.scrollTop;if(isScrollYBig){scrollTop=Math.ceil((scrollYHeight-clientHeight)*Math.min(1,scrollTop/(maxYHeight-clientHeight)));}const startTop=scrollTop;const endTop=scrollTop+clientHeight;let toVisibleIndex=-1;let visibleSize=0;const isCustomCellHeight=isResizeCellHeight||cellOpts.height||rowOpts.height;if(!isCustomCellHeight&&!expandColumn&&isAllOverflow){toVisibleIndex=Math.floor(startTop/defaultRowHeight)-1;visibleSize=Math.ceil(clientHeight/defaultRowHeight)+1;}else{const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);let leftIndex=0;let rightIndex=afterFullData.length;while(leftIndex<rightIndex){const rIndex=Math.floor((leftIndex+rightIndex)/2);const row=afterFullData[rIndex];const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};if(rowRest.oTop<=startTop){leftIndex=rIndex+1;}else{rightIndex=rIndex;}}toVisibleIndex=leftIndex===afterFullData.length?leftIndex:Math.max(0,leftIndex<afterFullData.length?leftIndex-2:0);for(let rIndex=toVisibleIndex,rLen=afterFullData.length;rIndex<rLen;rIndex++){const row=afterFullData[rIndex];const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};visibleSize++;if(rowRest.oTop>endTop||visibleSize>=100){break;}}}return{toVisibleIndex:Math.max(0,toVisibleIndex),visibleSize:Math.max(6,visibleSize)};}return{toVisibleIndex:0,visibleSize:6};};const calculateMergerOffsetIndex=(list,mergeMaps,offsetItem,type)=>{const mKey=`${offsetItem.startIndex}:${offsetItem.endIndex}`;const mObj=mergeMaps[mKey];// 缓存
|
|
29
29
|
if(mObj){offsetItem.startIndex=mObj.startIndex;offsetItem.endIndex=mObj.endIndex;}else{for(let mcIndex=0,len=list.length;mcIndex<len;mcIndex++){const mergeItem=list[mcIndex];const{startIndex,endIndex}=offsetItem;const mergeStartIndex=mergeItem[type];const mergeSpanNumber=mergeItem[type+'span'];const mergeEndIndex=mergeStartIndex+mergeSpanNumber;if(mergeStartIndex<startIndex&&startIndex<mergeEndIndex){offsetItem.startIndex=mergeStartIndex;}if(mergeStartIndex<endIndex&&endIndex<mergeEndIndex){offsetItem.endIndex=mergeEndIndex;}if(offsetItem.startIndex!==startIndex||offsetItem.endIndex!==endIndex){mcIndex=-1;}}mergeMaps[mKey]=offsetItem;}};function buildMergeData(mergeConfigs){const mergeMaps={};const mergeRowMaps={};const mergeColMaps={};if(mergeConfigs&&mergeConfigs.length){for(let mIndex=0;mIndex<mergeConfigs.length;mIndex++){const{row:_rowIndex,col:_columnIndex,rowspan:mergeRowspan,colspan:mergeColspan}=mergeConfigs[mIndex];for(let i=0;i<mergeRowspan;i++){const currRIndex=_rowIndex+i;for(let j=0;j<mergeColspan;j++){const currCIndex=_columnIndex+j;mergeMaps[`${currRIndex}:${currCIndex}`]=!i&&!j?{rowspan:mergeRowspan,colspan:mergeColspan}:{rowspan:0,colspan:0};}}}}return{mergeMaps,mergeRowMaps,mergeColMaps};}const handleUpdateMergeBodyCells=merges=>{internalData.mergeBodyList=[];internalData.mergeBodyMaps={};internalData.mergeBodyCellMaps={};internalData.mergeBodyRowMaps={};internalData.mergeBodyColMaps={};$xeTable.setMergeCells(merges);};const handleBodyMerge=merges=>{const{fullAllDataRowIdData,fullColumnIdData,visibleColumn,afterFullData,mergeBodyList,mergeBodyMaps}=internalData;if(merges){const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{let{row:margeRow,col:margeCol,rowspan,colspan}=item;let mergeRowIndex=-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeRow)){mergeRowIndex=margeRow;}else{const rowid=margeRow?handleGetRowId(margeRow):null;const rowRest=rowid?fullAllDataRowIdData[rowid]:null;if(rowRest){mergeRowIndex=rowRest._index;}}if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}if(mergeRowIndex>-1&&mergeColumnIndex>-1&&(rowspan||colspan)){rowspan=_xeUtils.default.toNumber(rowspan)||1;colspan=_xeUtils.default.toNumber(colspan)||1;if(rowspan>1||colspan>1){const row=afterFullData[mergeRowIndex];const column=visibleColumn[mergeColumnIndex];let mergeItem=mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`];if(mergeItem){mergeItem.rowspan=rowspan;mergeItem.colspan=colspan;mergeItem._rowspan=rowspan;mergeItem._colspan=colspan;}else{mergeItem={row:mergeRowIndex,col:mergeColumnIndex,rowspan,colspan,_row:row,_col:column,_rowspan:rowspan,_colspan:colspan};mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`]=mergeItem;mergeBodyList.push(mergeItem);}}}});}};const removeBodyMerges=merges=>{const{mergeBodyList,fullColumnIdData,fullAllDataRowIdData,mergeBodyMaps}=internalData;const rest=[];if(merges){const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{const{row:margeRow,col:margeCol}=item;let mergeRowIndex=-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeRow)){mergeRowIndex=margeRow;}else{const rowid=margeRow?handleGetRowId(margeRow):null;const rowRest=rowid?fullAllDataRowIdData[rowid]:null;if(rowRest){mergeRowIndex=rowRest._index;}}if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}const mcIndex=_xeUtils.default.findIndexOf(mergeBodyList,item=>item.row===mergeRowIndex&&item.col===mergeColumnIndex);if(mcIndex>-1){const rItems=mergeBodyList.splice(mcIndex,1);const item=rItems[0];if(item){rest.push(rItems[0]);if(mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`]){delete mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`];}}}});}return rest;};const handleUpdateMergeHeaderCells=merges=>{internalData.mergeHeaderList=[];internalData.mergeHeaderMaps={};internalData.mergeHeaderCellMaps={};internalData.mergeHeaderRowMaps={};internalData.mergeBodyColMaps={};$xeTable.setMergeHeaderCells(merges);};const handleHeaderMerge=merges=>{const{showCustomHeader}=props;const{footerTableData}=reactData;const{mergeHeaderList,mergeHeaderMaps,fullColumnIdData}=internalData;if(merges){const{visibleColumn}=internalData;if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{let{row:margeRow,col:margeCol,rowspan,colspan}=item;const mergeRowIndex=_xeUtils.default.isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}if(mergeRowIndex>-1&&mergeColumnIndex>-1&&(rowspan||colspan)){rowspan=_xeUtils.default.toNumber(rowspan)||1;colspan=_xeUtils.default.toNumber(colspan)||1;if(!showCustomHeader&&rowspan>1){errLog('vxe.error.notSupportProp',['[table] show-custom-header=false',`rowspan=${rowspan}`,'rowspan=1']);return;}if(rowspan>1||colspan>1){const row=footerTableData[mergeRowIndex];const column=visibleColumn[mergeColumnIndex];let mergeItem=mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`];if(mergeItem){mergeItem.rowspan=rowspan;mergeItem.colspan=colspan;mergeItem._rowspan=rowspan;mergeItem._colspan=colspan;}else{mergeItem={row:mergeRowIndex,col:mergeColumnIndex,rowspan,colspan,_row:row,_col:column,_rowspan:rowspan,_colspan:colspan};mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`]=mergeItem;mergeHeaderList.push(mergeItem);}}}});}};const removeHeaderMerges=merges=>{const{mergeHeaderList,fullColumnIdData,mergeHeaderMaps}=internalData;const rest=[];if(merges){if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{const{row:margeRow,col:margeCol}=item;const mergeRowIndex=_xeUtils.default.isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}const mcIndex=_xeUtils.default.findIndexOf(mergeHeaderList,item=>item.row===mergeRowIndex&&item.col===mergeColumnIndex);if(mcIndex>-1){const rItems=mergeHeaderList.splice(mcIndex,1);const item=rItems[0];if(item){rest.push(item);if(mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`]){delete mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`];}}}});}return rest;};const handleUpdateMergeFooterCells=merges=>{internalData.mergeFooterList=[];internalData.mergeFooterMaps={};internalData.mergeFooterCellMaps={};internalData.mergeFooterRowMaps={};internalData.mergeFooterColMaps={};$xeTable.setMergeFooterCells(merges);};const handleFooterMerge=merges=>{const{footerTableData}=reactData;const{mergeFooterList,mergeFooterMaps,fullColumnIdData}=internalData;if(merges){const{visibleColumn}=internalData;if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{let{row:margeRow,col:margeCol,rowspan,colspan}=item;const mergeRowIndex=_xeUtils.default.isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}if(mergeRowIndex>-1&&mergeColumnIndex>-1&&(rowspan||colspan)){rowspan=_xeUtils.default.toNumber(rowspan)||1;colspan=_xeUtils.default.toNumber(colspan)||1;if(rowspan>1||colspan>1){const row=footerTableData[mergeRowIndex];const column=visibleColumn[mergeColumnIndex];let mergeItem=mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`];if(mergeItem){mergeItem.rowspan=rowspan;mergeItem.colspan=colspan;mergeItem._rowspan=rowspan;mergeItem._colspan=colspan;}else{mergeItem={row:mergeRowIndex,col:mergeColumnIndex,rowspan,colspan,_row:row,_col:column,_rowspan:rowspan,_colspan:colspan};mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`]=mergeItem;mergeFooterList.push(mergeItem);}}}});}};const removeFooterMerges=merges=>{const{mergeFooterList,fullColumnIdData,mergeFooterMaps}=internalData;const rest=[];if(merges){if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{const{row:margeRow,col:margeCol}=item;const mergeRowIndex=_xeUtils.default.isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}const mcIndex=_xeUtils.default.findIndexOf(mergeFooterList,item=>item.row===mergeRowIndex&&item.col===mergeColumnIndex);if(mcIndex>-1){const rItems=mergeFooterList.splice(mcIndex,1);const item=rItems[0];if(item){rest.push(item);if(mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`]){delete mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`];}}}});}return rest;};const handleSortEvent=(evnt,sortConfs,isUpdate)=>{const{tableFullColumn}=internalData;const sortOpts=computeSortOpts.value;const{multiple,remote,orders}=sortOpts;if(!_xeUtils.default.isArray(sortConfs)){sortConfs=[sortConfs];}if(sortConfs&&sortConfs.length){const orderActiveMaps={};if(!multiple){sortConfs=[sortConfs[0]];tableFullColumn.forEach(column=>{if(column.order){orderActiveMaps[column.id]=column;}});}const sortColMpps={};let firstColumn=null;sortConfs.forEach((confs,index)=>{let{field,order}=confs;let column=field;if(_xeUtils.default.isString(field)){column=$xeTable.getColumnByField(field);}if(!firstColumn){firstColumn=column;}if(column&&column.sortable){if(orders&&orders.indexOf(order)===-1){order=getNextSortOrder(column);}if(column.order!==order){column.order=order;}column.sortTime=Date.now()+index;sortColMpps[column.id]=column;}});if(!multiple){_xeUtils.default.each(orderActiveMaps,(oaCol,oaId)=>{if(!sortColMpps[oaId]){oaCol.order=null;}});}if(isUpdate){if(!remote){$xeTable.handleTableData(true);}}if(evnt){$xeTable.handleColumnSortEvent(evnt,firstColumn);}return(0,_vue.nextTick)().then(()=>{updateRowOffsetTop();$xeTable.updateCellAreas();return updateStyle();});}return(0,_vue.nextTick)();};const clearAllSort=()=>{const{tableFullColumn}=internalData;tableFullColumn.forEach(column=>{column.order=null;});};const calcTableHeight=key=>{const{editConfig,editRules}=props;const{parentHeight,tableColumn}=reactData;let val=props[key];if(key==='minHeight'){const defMinHeight=getConfig().table.minHeight;if(_xeUtils.default.eqNull(val)){if((0,_utils.eqEmptyValue)(defMinHeight)){if(!tableColumn.length){// 如果全部列被隐藏
|
|
@@ -51,7 +51,7 @@ if(reactData.scrollYLoad&&!(internalData.customHeight||internalData.customMinHei
|
|
|
51
51
|
* 支持动态列表调整分配
|
|
52
52
|
* 支持自动分配偏移量
|
|
53
53
|
* 支持 width=60 width=60px width=10% min-width=60 min-width=60px min-width=10%
|
|
54
|
-
*/const autoCellWidth=()=>{const{elemStore}=internalData;const bodyWrapperElem=(0,_util.getRefElem)(elemStore['main-body-wrapper']);if(!bodyWrapperElem){return;}const
|
|
54
|
+
*/const autoCellWidth=()=>{const{elemStore}=internalData;const bodyWrapperElem=(0,_util.getRefElem)(elemStore['main-body-wrapper']);if(!bodyWrapperElem){return;}const columnOpts=computeColumnOpts.value;let tWidth=0;const minCellWidth=40;// 列宽最少限制 40px
|
|
55
55
|
const bodyWidth=bodyWrapperElem.clientWidth;let remainWidth=bodyWidth;let meanWidth=remainWidth/100;const{fit}=props;const{columnStore}=reactData;const{resizeList,pxMinList,autoMinList,pxList,scaleList,scaleMinList,autoList,remainList}=columnStore;const parseColumnMaxWidth=column=>{const maxWidth=column.maxWidth||columnOpts.maxWidth;if(maxWidth&&maxWidth!=='auto'){if((0,_dom.isScale)(maxWidth)){return Math.floor(_xeUtils.default.toInteger(maxWidth)*meanWidth);}return _xeUtils.default.toInteger(maxWidth);}return 0;};// 最小宽
|
|
56
56
|
pxMinList.forEach(column=>{let miWidth=_xeUtils.default.toInteger(column.minWidth);const mxWidth=parseColumnMaxWidth(column);if(mxWidth){miWidth=Math.min(miWidth,mxWidth);}tWidth+=miWidth;column.renderWidth=miWidth;});// 最小自适应
|
|
57
57
|
autoMinList.forEach(column=>{let caWidth=Math.max(60,_xeUtils.default.toInteger(column.renderAutoWidth));const mxWidth=parseColumnMaxWidth(column);if(mxWidth){caWidth=Math.min(caWidth,mxWidth);}tWidth+=caWidth;column.renderWidth=caWidth;});// 最小百分比
|
|
@@ -91,7 +91,7 @@ if(allSortMethod){const sortRests=allSortMethod({data:tableTree,sortList:orderCo
|
|
|
91
91
|
if(allSortMethod){const sortRests=allSortMethod({data:tableTree,sortList:orderColumns,$table:$xeTable});tableTree=_xeUtils.default.isArray(sortRests)?sortRests:tableTree;}else{const treeList=_xeUtils.default.toTreeArray(tableTree,{children:mapChildrenField});tableTree=_xeUtils.default.toArrayTree(_xeUtils.default.orderBy(treeList,orderColumns.map(({column,order})=>[getOrderField(column),order])),{key:rowField,parentKey:parentField,children:childrenField,mapChildren:mapChildrenField});}tableData=tableTree;}else{if(allSortMethod){const sortRests=allSortMethod({data:tableData,sortList:orderColumns,$table:$xeTable});tableData=_xeUtils.default.isArray(sortRests)?sortRests:tableData;}else{tableData=_xeUtils.default.orderBy(tableData,orderColumns.map(({column,order})=>[getOrderField(column),order]));}tableTree=tableData;}}}else{if(isRowGroupStatus){// 还原行分组
|
|
92
92
|
// 还原虚拟树
|
|
93
93
|
tableTree=_xeUtils.default.searchTree(tableFullGroupData,()=>true,{original:true,isEvery:true,children:aggregateOpts.mapChildrenField,mapChildren:aggregateOpts.childrenField});tableData=tableTree;}else if(treeConfig&&transform&&isSortDeep!==false){// 还原虚拟树
|
|
94
|
-
tableTree=_xeUtils.default.searchTree(tableFullTreeData,()=>true,{original:true,isEvery,children:mapChildrenField,mapChildren:childrenField});tableData=tableTree;}else{tableData=treeConfig?tableFullTreeData.slice(0):tableFullData.slice(0);tableTree=tableData;}}internalData.afterFullData=tableData;internalData.afterTreeFullData=tableTree;internalData.afterGroupFullData=tableTree;updateAfterDataIndex();};const updateStyle=()=>{const{mouseConfig}=props;const{isGroup,tableColumn,overflowX,scrollbarWidth,overflowY,scrollbarHeight,scrollXWidth,columnStore,editStore,isColLoading}=reactData;const{visibleColumn,tableHeight,elemStore,currentRow,customHeight,customMinHeight,customMaxHeight,tHeaderHeight,tFooterHeight}=internalData;const $xeGanttView=internalData.xeGanttView;const el=refElem.value;if(!el||internalData.tBodyHeight&&!el.clientHeight){return;}const containerList=['main','left','right'];const{leftList,rightList}=columnStore;let osbWidth=overflowY?scrollbarWidth:0;let osbHeight=overflowX?scrollbarHeight:0;const emptyPlaceholderElem=refEmptyPlaceholder.value;const isHeaderRenderOptimize=computeIsHeaderRenderOptimize.value;const isBodyRenderOptimize=computeIsBodyRenderOptimize.value;const isFooterRenderOptimize=computeIsFooterRenderOptimize.value;const mouseOpts=computeMouseOpts.value;const bodyWrapperElem=(0,_util.getRefElem)(elemStore['main-body-wrapper']);const bodyTableElem=(0,_util.getRefElem)(elemStore['main-body-table']);if(emptyPlaceholderElem){emptyPlaceholderElem.style.top=`${tHeaderHeight}px`;emptyPlaceholderElem.style.height=bodyWrapperElem?`${bodyWrapperElem.offsetHeight-osbHeight}px`:'';}const
|
|
94
|
+
tableTree=_xeUtils.default.searchTree(tableFullTreeData,()=>true,{original:true,isEvery,children:mapChildrenField,mapChildren:childrenField});tableData=tableTree;}else{tableData=treeConfig?tableFullTreeData.slice(0):tableFullData.slice(0);tableTree=tableData;}}internalData.afterFullData=tableData;internalData.afterTreeFullData=tableTree;internalData.afterGroupFullData=tableTree;updateAfterDataIndex();};const updateStyle=()=>{const{mouseConfig}=props;const{isGroup,tableColumn,overflowX,scrollbarWidth,overflowY,scrollbarHeight,scrollXWidth,columnStore,editStore,isColLoading}=reactData;const{visibleColumn,tableHeight,elemStore,currentRow,customHeight,customMinHeight,customMaxHeight,tHeaderHeight,tFooterHeight}=internalData;const $xeGanttView=internalData.xeGanttView;const el=refElem.value;if(!el||internalData.tBodyHeight&&!el.clientHeight){return;}const containerList=['main','left','right'];const{leftList,rightList}=columnStore;let osbWidth=overflowY?scrollbarWidth:0;let osbHeight=overflowX?scrollbarHeight:0;const emptyPlaceholderElem=refEmptyPlaceholder.value;const isHeaderRenderOptimize=computeIsHeaderRenderOptimize.value;const isBodyRenderOptimize=computeIsBodyRenderOptimize.value;const isFooterRenderOptimize=computeIsFooterRenderOptimize.value;const mouseOpts=computeMouseOpts.value;const bodyWrapperElem=(0,_util.getRefElem)(elemStore['main-body-wrapper']);const bodyTableElem=(0,_util.getRefElem)(elemStore['main-body-table']);if(emptyPlaceholderElem){emptyPlaceholderElem.style.top=`${tHeaderHeight}px`;emptyPlaceholderElem.style.height=bodyWrapperElem?`${bodyWrapperElem.offsetHeight-osbHeight}px`:'';}const scrollXVisible=computeScrollXVisible.value;const scrollYVisible=computeScrollYVisible.value;const scrollbarYToLeft=computeScrollbarYToLeft.value;let xScrollbarVisible=overflowX?'visible':'hidden';const hideXScroll=scrollXVisible===false||scrollXVisible==='hidden';if(scrollXVisible==='visible'||$xeGanttView){osbHeight=scrollbarHeight;xScrollbarVisible='visible';}else if(hideXScroll){osbHeight=0;xScrollbarVisible='hidden';}let yScrollbarVisible=overflowY?'visible':'hidden';const hideYScroll=scrollYVisible===false||scrollYVisible==='hidden';if(hideYScroll||$xeGantt&&$xeGanttView&&$xeGantt.reactData.showRightView&&!scrollbarYToLeft){osbWidth=0;yScrollbarVisible='hidden';}else if(scrollYVisible==='visible'){osbWidth=scrollbarWidth;yScrollbarVisible='visible';}let tbHeight=0;let bodyMaxHeight=0;const bodyMinHeight=customMinHeight-tHeaderHeight-tFooterHeight-osbHeight;if(customMaxHeight){bodyMaxHeight=Math.max(bodyMinHeight,customMaxHeight-tHeaderHeight-tFooterHeight-osbHeight);}if(customHeight){tbHeight=customHeight-tHeaderHeight-tFooterHeight-osbHeight;}if(!tbHeight){if(bodyTableElem){tbHeight=bodyTableElem.clientHeight;}}if(tbHeight){if(bodyMaxHeight){tbHeight=Math.min(bodyMaxHeight,tbHeight);}tbHeight=Math.max(bodyMinHeight,tbHeight);}const xLeftCornerEl=refScrollXLeftCornerElem.value;const xRightCornerEl=refScrollXRightCornerElem.value;const scrollXVirtualEl=refScrollXVirtualElem.value;if(scrollXVirtualEl){scrollXVirtualEl.style.height=`${osbHeight}px`;scrollXVirtualEl.style.visibility=xScrollbarVisible;}const xWrapperEl=refScrollXWrapperElem.value;if(xWrapperEl){xWrapperEl.style.width=`${el.clientWidth-osbWidth}px`;if(scrollbarYToLeft){xWrapperEl.style.left=`${osbWidth}px`;}else{xWrapperEl.style.left='';}}if(xLeftCornerEl){if(scrollbarYToLeft){xLeftCornerEl.style.width=`${osbWidth}px`;xLeftCornerEl.style.display=overflowY&&osbWidth?'block':'';}else{xLeftCornerEl.style.display='';}}if(xRightCornerEl){if(scrollbarYToLeft){xRightCornerEl.style.display='';}else{xRightCornerEl.style.width=`${osbWidth}px`;xRightCornerEl.style.display=xScrollbarVisible==='visible'?'block':'';}}const scrollYVirtualEl=refScrollYVirtualElem.value;if(scrollYVirtualEl){scrollYVirtualEl.style.width=`${osbWidth}px`;scrollYVirtualEl.style.height=`${tbHeight+tHeaderHeight+tFooterHeight}px`;scrollYVirtualEl.style.visibility=yScrollbarVisible;}const yTopCornerEl=refScrollYTopCornerElem.value;if(yTopCornerEl){yTopCornerEl.style.height=`${tHeaderHeight}px`;yTopCornerEl.style.display=tHeaderHeight&&yScrollbarVisible==='visible'?'block':'';}const yWrapperEl=refScrollYWrapperElem.value;if(yWrapperEl){yWrapperEl.style.height=`${tbHeight}px`;yWrapperEl.style.top=`${tHeaderHeight}px`;}const yBottomCornerEl=refScrollYBottomCornerElem.value;if(yBottomCornerEl){yBottomCornerEl.style.height=`${tFooterHeight}px`;yBottomCornerEl.style.top=`${tHeaderHeight+tbHeight}px`;yBottomCornerEl.style.display=tFooterHeight&&yScrollbarVisible==='visible'?'block':'';}const rowExpandEl=refRowExpandElem.value;if(rowExpandEl){rowExpandEl.style.height=`${tbHeight}px`;rowExpandEl.style.top=`${tHeaderHeight}px`;}internalData.tBodyHeight=tbHeight;containerList.forEach((name,index)=>{const fixedType=index>0?name:'';const layoutList=['header','body','footer'];const isFixedLeft=fixedType==='left';let fixedColumn=[];let fixedWrapperElem;if(fixedType){fixedColumn=isFixedLeft?leftList:rightList;fixedWrapperElem=isFixedLeft?refLeftContainer.value:refRightContainer.value;}layoutList.forEach(layout=>{const wrapperElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-wrapper`]);const currScrollElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-scroll`]);const tableElem=(0,_util.getRefElem)(elemStore[`${name}-${layout}-table`]);if(layout==='header'){// 表头体样式处理
|
|
95
95
|
// 横向滚动渲染
|
|
96
96
|
let renderColumnList=tableColumn;const isOptimizeMode=isHeaderRenderOptimize;if(isGroup){renderColumnList=visibleColumn;}else{if(!isOptimizeMode||!isColLoading&&(fixedType||!overflowX)){renderColumnList=visibleColumn;}if(fixedType){// 如果是使用优化模式
|
|
97
97
|
if(isOptimizeMode){renderColumnList=fixedColumn||[];}}}const tWidth=renderColumnList.reduce((previous,column)=>previous+column.renderWidth,0);if(fixedType){if(isGroup){if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}else{if(isOptimizeMode){if(wrapperElem){wrapperElem.style.width=tWidth?`${tWidth}px`:'';}}else{if(wrapperElem){wrapperElem.style.width=scrollXWidth?`${scrollXWidth}px`:'';}}}}if(currScrollElem){currScrollElem.style.height=`${tHeaderHeight}px`;}if(tableElem){tableElem.style.width=tWidth?`${tWidth}px`:'';}}else if(layout==='body'){if(currScrollElem){currScrollElem.style.maxHeight=customMaxHeight?`${bodyMaxHeight}px`:'';currScrollElem.style.height=customHeight?`${tbHeight}px`:'';currScrollElem.style.minHeight=`${bodyMinHeight}px`;}// 如果是固定列
|
|
@@ -155,9 +155,11 @@ if(!checkStrictly&&$xeTable.isCheckedByCheckboxRow(row)){handleCheckedCheckboxRo
|
|
|
155
155
|
const computeScrollLoad=()=>{return(0,_vue.nextTick)().then(()=>{const{scrollXLoad,scrollYLoad}=reactData;const{scrollXStore,scrollYStore}=internalData;const virtualYOpts=computeVirtualYOpts.value;const virtualXOpts=computeVirtualXOpts.value;// 计算 X 逻辑
|
|
156
156
|
if(scrollXLoad){const{toVisibleIndex:toXVisibleIndex,visibleSize:visibleXSize}=handleVirtualXVisible();const offsetXSize=Math.max(0,virtualXOpts.oSize?_xeUtils.default.toNumber(virtualXOpts.oSize):0);scrollXStore.preloadSize=_xeUtils.default.toNumber(virtualXOpts.preSize);scrollXStore.offsetSize=offsetXSize;scrollXStore.visibleSize=visibleXSize;scrollXStore.endIndex=Math.max(scrollXStore.startIndex+scrollXStore.visibleSize+offsetXSize,scrollXStore.endIndex);scrollXStore.visibleStartIndex=Math.max(scrollXStore.startIndex,toXVisibleIndex);scrollXStore.visibleEndIndex=Math.min(scrollXStore.endIndex,toXVisibleIndex+visibleXSize);$xeTable.updateScrollXData().then(()=>{loadScrollXData();});}else{$xeTable.updateScrollXSpace();}// 计算 Y 逻辑
|
|
157
157
|
const rowHeight=computeRowHeight();scrollYStore.rowHeight=rowHeight;// 已废弃
|
|
158
|
-
reactData.rowHeight=rowHeight;const{toVisibleIndex:toYVisibleIndex,visibleSize:visibleYSize}=handleVirtualYVisible();if(scrollYLoad){const offsetYSize=Math.max(0,virtualYOpts.oSize?_xeUtils.default.toNumber(virtualYOpts.oSize):0);scrollYStore.preloadSize=_xeUtils.default.toNumber(virtualYOpts.preSize);scrollYStore.offsetSize=offsetYSize;scrollYStore.visibleSize=visibleYSize;scrollYStore.endIndex=Math.max(scrollYStore.startIndex+visibleYSize+offsetYSize,scrollYStore.endIndex);scrollYStore.visibleStartIndex=Math.max(scrollYStore.startIndex,toYVisibleIndex);scrollYStore.visibleEndIndex=Math.min(scrollYStore.endIndex,toYVisibleIndex+visibleYSize);$xeTable.updateScrollYData().then(()=>{loadScrollYData();});}else{$xeTable.updateScrollYSpace();}});};const calcScrollbar=()=>{const{scrollXWidth,scrollYHeight}=reactData;const{elemStore}=internalData;const
|
|
159
|
-
if(
|
|
160
|
-
if(
|
|
158
|
+
reactData.rowHeight=rowHeight;const{toVisibleIndex:toYVisibleIndex,visibleSize:visibleYSize}=handleVirtualYVisible();if(scrollYLoad){const offsetYSize=Math.max(0,virtualYOpts.oSize?_xeUtils.default.toNumber(virtualYOpts.oSize):0);scrollYStore.preloadSize=_xeUtils.default.toNumber(virtualYOpts.preSize);scrollYStore.offsetSize=offsetYSize;scrollYStore.visibleSize=visibleYSize;scrollYStore.endIndex=Math.max(scrollYStore.startIndex+visibleYSize+offsetYSize,scrollYStore.endIndex);scrollYStore.visibleStartIndex=Math.max(scrollYStore.startIndex,toYVisibleIndex);scrollYStore.visibleEndIndex=Math.min(scrollYStore.endIndex,toYVisibleIndex+visibleYSize);$xeTable.updateScrollYData().then(()=>{loadScrollYData();});}else{$xeTable.updateScrollYSpace();}});};const calcScrollbar=()=>{const{scrollXWidth,scrollYHeight}=reactData;const{elemStore}=internalData;const el=refElem.value;if(!el||!el.clientWidth){return;}const bodyWrapperElem=(0,_util.getRefElem)(elemStore['main-body-wrapper']);const headerTableElem=(0,_util.getRefElem)(elemStore['main-header-table']);const footerTableElem=(0,_util.getRefElem)(elemStore['main-footer-table']);const xHandleEl=refScrollXHandleElem.value;const yHandleEl=refScrollYHandleElem.value;const thumbXElem=refThumbXElem.value;const thumbYElem=refThumbYElem.value;let overflowY=false;let overflowX=false;if(bodyWrapperElem){const scrollbarOpts=computeScrollbarOpts.value;const barWidth=computeScrollYWidth.value;const barHeight=computeScrollXHeight.value;overflowY=scrollYHeight>bodyWrapperElem.clientHeight;// 如果是虚拟滚动条
|
|
159
|
+
if(thumbYElem){reactData.scrollbarHeight=scrollbarOpts.padding?thumbYElem.offsetWidth:0;}else if(yHandleEl){reactData.scrollbarWidth=barWidth||barHeight||yHandleEl.offsetWidth-yHandleEl.clientWidth||14;}reactData.overflowY=overflowY;overflowX=scrollXWidth>bodyWrapperElem.clientWidth;// 如果是虚拟滚动条
|
|
160
|
+
if(thumbXElem){reactData.scrollbarHeight=scrollbarOpts.padding?thumbXElem.offsetHeight:0;}else if(xHandleEl){reactData.scrollbarHeight=barHeight||barWidth||xHandleEl.offsetHeight-xHandleEl.clientHeight||14;}const hHeight=headerTableElem?headerTableElem.clientHeight:0;const fHeight=footerTableElem?footerTableElem.clientHeight:0;internalData.tableHeight=bodyWrapperElem.offsetHeight;internalData.tHeaderHeight=hHeight;internalData.tFooterHeight=fHeight;reactData.overflowX=overflowX;reactData.parentHeight=Math.max(hHeight+fHeight+20,$xeTable.getParentHeight());}if(overflowX){$xeTable.checkScrolling();}};const handleRecalculateStyle=(reFull,reWidth,reHeight)=>{const el=refElem.value;if(!el||!el.clientWidth){return(0,_vue.nextTick)();}const varEl=refVarElem.value;if(varEl){const[defEl,mediumEl,smallEl,miniEl]=varEl.children;calcVarRowHeightConfig('default',defEl);calcVarRowHeightConfig('medium',mediumEl);calcVarRowHeightConfig('small',smallEl);calcVarRowHeightConfig('mini',miniEl);}if(reWidth){calcCellWidth();}if(reWidth||reFull){autoCellWidth();}calcScrollbar();updateStyle();updateRowExpandStyle();if(reFull){updateTreeLineStyle();}internalData.rceRunTime=Date.now();return computeScrollLoad().then(()=>{// 初始化时需要在列计算之后再执行优化运算,达到最优显示效果
|
|
161
|
+
if(reWidth){calcCellWidth();}if(reWidth||reFull){autoCellWidth();}if(reHeight){calcCellHeight();}updateStyle();calcScrollbar();if(reFull){updateRowOffsetTop();}updateRowExpandStyle();if(reFull){updateTreeLineStyle();}internalData.rceRunTime=Date.now();if(reFull){return computeScrollLoad();}});};const updateScrollbar=()=>{updateThumbSize();updateThumbOffset();};const defaultMinRunDelay=50;const handleLazyRecalculate=(reFull,reWidth,reHeight,options)=>{const minRunDelay=(options?options.minRunDelay:defaultMinRunDelay)||defaultMinRunDelay;return new Promise(resolve=>{const $xeGanttView=internalData.xeGanttView;const{customStore,tableData,tableColumn}=reactData;const{rceTimeout,rceRunTime}=internalData;const resizeOpts=computeResizeOpts.value;let rceDelay=internalData.rceDelay;// 如果在500毫秒内频繁执行,则执行次数减缓
|
|
162
|
+
if(rceRunTime&&rceRunTime>Date.now()-500){rceDelay=Math.min(Math.max(60,Math.min(800,tableData.length/8)),rceDelay+50);}else{rceDelay=0;}internalData.rceDelay=rceDelay;const refreshDelay=resizeOpts.refreshDelay||30;const reDelay=rceDelay+refreshDelay;const el=refElem.value;updateScrollbar();if(el&&el.clientWidth){autoCellWidth();updateRowExpandStyle();}if(customStore.visible&&$xeTable.handleCustomStyle){$xeTable.handleCustomStyle();}const renderCellSize=tableData.length*tableColumn.length;// 渲染量低的场景
|
|
161
163
|
if(renderCellSize<400){rceDelay=20;}else if(renderCellSize<600){rceDelay=40;}else if(renderCellSize<800){rceDelay=80;}if(rceTimeout){clearTimeout(rceTimeout);// 多少毫秒内至少执行一次
|
|
162
164
|
if(rceRunTime&&rceRunTime+minRunDelay<Date.now()){resolve(handleRecalculateStyle(reFull,reWidth,reHeight));}else{(0,_vue.nextTick)(()=>{resolve();});}}else{resolve(handleRecalculateStyle(reFull,reWidth,reHeight));}if($xeGanttView&&$xeGanttView.handleLazyRecalculate){$xeGanttView.handleLazyRecalculate();}internalData.rceTimeout=setTimeout(()=>{internalData.rceDelay=0;internalData.rceTimeout=undefined;handleRecalculateStyle(reFull,reWidth,reHeight);if($xeGanttView&&$xeGanttView.handleLazyRecalculate){$xeGanttView.handleLazyRecalculate();}},reDelay);});};const handleResizeEvent=()=>{if(internalData.rsePending){return;}internalData.rsePending=true;handleLazyRecalculate(true,true,true,{minRunDelay:200}).then(()=>{internalData.rsePending=false;}).catch(()=>{internalData.rsePending=false;});};const handleUpdateAggValues=()=>{const{visibleColumn}=internalData;const aggCols=[];visibleColumn.forEach(column=>{if(column.aggFunc){aggCols.push(column);}});reactData.aggHandleAggColumns=aggCols;};const handleUpdateRowGroup=groupFields=>{const aggGroupFields=[];const aggGroupConfs=[];if(groupFields){(_xeUtils.default.isArray(groupFields)?groupFields:[groupFields]).forEach(field=>{aggGroupFields.push(field);aggGroupConfs.push({field});});}reactData.rowGroupList=aggGroupConfs;reactData.aggHandleFields=aggGroupFields;handleUpdateAggValues();};const handleeGroupSummary=aggList=>{const{fullColumnFieldData}=internalData;const aggregateOpts=computeAggregateOpts.value;const aggFuncColumns=computeAggFuncColumns.value;const{mapChildrenField}=aggregateOpts;const aggCalcMethod=aggregateOpts.calcValuesMethod||aggregateOpts.countMethod||aggregateOpts.aggregateMethod;if(mapChildrenField){_xeUtils.default.lastEach(aggList,aggRow=>{let count=0;_xeUtils.default.each(aggRow[mapChildrenField],row=>{if(row.isAggregate){count+=row.childCount||0;}else{count++;}});aggRow.childCount=count;});if($xeTable.handlePivotTableAggData){$xeTable.handlePivotTableAggData(aggList);}else{if(aggFuncColumns.length){_xeUtils.default.lastEach(aggList,aggRow=>{const aggDtObj={};const aggData=aggRow.aggData;const groupField=aggRow.groupField;const groupContent=aggRow.groupContent;const childList=mapChildrenField?aggRow[mapChildrenField]||[]:[];const childCount=aggRow.childCount;const colRest=fullColumnFieldData[groupField]||{};aggFuncColumns.forEach(column=>{const{field}=column;const currAggData=aggData?aggData[field]:null;const ctParams={$table:$xeTable,groupField,groupColumn:colRest?colRest.column:null,column,groupValue:groupContent,childList,childCount,aggValue:currAggData?currAggData.value:0,/**
|
|
163
165
|
* 已废弃
|
|
@@ -813,6 +815,10 @@ dispatchEvent('current-change',Object.assign({oldValue,newValue},params),evnt);}
|
|
|
813
815
|
*/triggerTreeExpandEvent(evnt,params){const{treeExpandLazyLoadedMaps,treeEATime}=internalData;const treeOpts=computeTreeOpts.value;const{row,column}=params;const{lazy,trigger,accordion}=treeOpts;if(trigger==='manual'){return;}evnt.stopPropagation();const rowid=(0,_util.getRowid)($xeTable,row);if(!lazy||!treeExpandLazyLoadedMaps[rowid]){const expanded=!$xeTable.isTreeExpandByRow(row);const columnIndex=$xeTable.getColumnIndex(column);const $columnIndex=$xeTable.getVMColumnIndex(column);if(treeEATime){clearTimeout(treeEATime);}$xeTable.setTreeExpand(row,expanded).then(()=>{if(accordion){internalData.treeEATime=setTimeout(()=>{internalData.treeEATime=undefined;$xeTable.scrollToRow(row);},30);}});dispatchEvent('toggle-tree-expand',{expanded,column,columnIndex,$columnIndex,row},evnt);}},handleColumnSortEvent(evnt,column){const{mouseConfig}=props;const mouseOpts=computeMouseOpts.value;const{field,sortable,order}=column;if(sortable){const params={$table:$xeTable,$event:evnt,column,field,property:field,order,sortList:$xeTable.getSortColumns(),sortTime:column.sortTime};if((0,_utils.hasEnableConf)(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleSortEvent){$xeTable.handleSortEvent(evnt,params);}if(!order){dispatchEvent('clear-sort',params,evnt);}dispatchEvent('sort-change',params,evnt);}},/**
|
|
814
816
|
* 点击排序事件
|
|
815
817
|
*/triggerSortEvent(evnt,column,order){const sortOpts=computeSortOpts.value;const{multiple,allowClear}=sortOpts;const{field,sortable}=column;if(sortable){if(!order||column.order===order){if(allowClear){$xeTable.clearSort(multiple?column:null);}}else{$xeTable.sort({field,order});}$xeTable.handleColumnSortEvent(evnt,column);}},handleCellRuleUpdateStatus(type,cellParams,cellValue){const{validStore}=reactData;const{row,column}=cellParams;if($xeTable.hasCellRules){if($xeTable.hasCellRules(type,row,column)){const cell=$xeTable.getCellElement(row,column);if(cell){const customVal=!_xeUtils.default.isUndefined(cellValue);return $xeTable.validCellRules(type,row,column,cellValue).then(()=>{if(customVal&&validStore.visible){(0,_util.setCellValue)(row,column,cellValue);}$xeTable.clearValidate(row,column);}).catch(({rule})=>{if(customVal){(0,_util.setCellValue)(row,column,cellValue);}$xeTable.showValidTooltip({rule,row,column,cell});});}}}return(0,_vue.nextTick)();},/**
|
|
818
|
+
* @private
|
|
819
|
+
*/updateScrollbar(){return updateScrollbar();},/**
|
|
820
|
+
* @private
|
|
821
|
+
*/updateThumbOffset(){return updateThumbOffset();},/**
|
|
816
822
|
* 表头单元格按下事件
|
|
817
823
|
*/triggerHeaderCellMousedownEvent(evnt,params){const{mouseConfig}=props;const mouseOpts=computeMouseOpts.value;const columnOpts=computeColumnOpts.value;const columnDragOpts=computeColumnDragOpts.value;const{trigger,isCrossDrag,isPeerDrag,disabledMethod}=columnDragOpts;const cell=evnt.currentTarget;const triggerInput=cell&&cell.tagName&&cell.tagName.toLowerCase()==='input';const triggerCheckbox=(0,_dom.getEventTargetNode)(evnt,cell,'vxe-cell--checkbox').flag;const triggerSort=(0,_dom.getEventTargetNode)(evnt,cell,'vxe-cell--sort').flag;const triggerFilter=(0,_dom.getEventTargetNode)(evnt,cell,'vxe-cell--filter').flag;let triggerDrag=false;const isColDragCell=columnOpts.drag&&trigger==='cell';if(!(triggerInput||triggerCheckbox||triggerSort||triggerFilter)){const{column}=params;if(isColDragCell&&!column.fixed&&(isCrossDrag||isPeerDrag||!column.parentId)&&!(disabledMethod&&disabledMethod(params))){triggerDrag=true;$xeTable.handleHeaderCellDragMousedownEvent(evnt,params);}}if(!triggerDrag&&(0,_utils.hasEnableConf)(mouseConfig,mouseOpts)&&mouseOpts.area&&$xeTable.handleHeaderCellAreaMouseDnEvent){$xeTable.handleHeaderCellAreaMouseDnEvent(evnt,Object.assign({cell,triggerSort,triggerFilter},params));}$xeTable.focus();if($xeTable.closeMenu){$xeTable.closeMenu();}},/**
|
|
818
824
|
* 单元格按下事件
|
|
@@ -861,14 +867,14 @@ csIndex=0;ceIndex=_newColIndex-_firstColIndex;}else if(_dragColIndex>_lastColInd
|
|
|
861
867
|
const $newRowIndex=dragColRest.$index;csIndex=$newRowIndex+1;ceIndex=tableColumn.length;offsetRate=-1;}else{if(_newColIndex>_dragColIndex){// 从左往右拖拽
|
|
862
868
|
csIndex=_dragColIndex-_firstColIndex;ceIndex=csIndex+_newColIndex-_dragColIndex;}else{// 从右往左拖拽
|
|
863
869
|
csIndex=_newColIndex-_firstColIndex+1;ceIndex=csIndex+_dragColIndex-_newColIndex;offsetRate=-1;}}const dragRangeList=[];const dragRangeMaps={};for(let i=csIndex;i<ceIndex;i++){const column=tableColumn[i];if(!dragRangeMaps[column.id]&&!dragNewColMaps[column.id]){dragRangeMaps[column.id]=column;dragRangeList.push(column);}}_xeUtils.default.eachTree([newColumn],column=>{if(!dragRangeMaps[column.id]){dragRangeMaps[column.id]=column;dragRangeList.push(column);}});if(dragRangeList.length){const dtTrList=el.querySelectorAll(dragRangeList.map(column=>`.vxe-table--column[colid="${column.id}"]`).join(','));(0,_anime.moveColAnimateToLr)(dtTrList,offsetRate*dragColWidth);}}const newTrList=el.querySelectorAll(dragAllTargetCols.map(column=>`.vxe-table--column[colid="${column.id}"]`).join(','));const newTdEl=newTrList[0];if(dragOffsetLeft>-1&&newTdEl){(0,_anime.moveColAnimateToLr)(newTrList,dragOffsetLeft-newTdEl.offsetLeft);}}}updateColumnOffsetLeft();loadScrollXData();$xeTable.updateCellAreas();return{status:true};});}).catch(()=>{return errRest;}).then(rest=>{handleColDragEndClearStatus();return rest;});}handleColDragEndClearStatus();return Promise.resolve(errRest);},handleHeaderCellDragDragendEvent(evnt){const{dragCol}=reactData;const{prevDragCol,prevDragPos,prevDragToChild}=internalData;$xeTable.handleColDragSwapEvent(evnt,true,dragCol,prevDragCol,prevDragPos,prevDragToChild);},handleHeaderCellDragDragoverEvent(evnt){const{dragCol}=reactData;const columnDragOpts=computeColumnDragOpts.value;const{isToChildDrag,isPeerDrag,isCrossDrag}=columnDragOpts;if(!dragCol){evnt.preventDefault();return;}const isControlKey=(0,_dom.hasControlKey)(evnt);const thEl=evnt.currentTarget;const colid=thEl.getAttribute('colid');const column=$xeTable.getColumnById(colid);if(column){evnt.preventDefault();const{clientX}=evnt;const offsetX=clientX-thEl.getBoundingClientRect().x;const dragPos=offsetX<thEl.clientWidth/2?'left':'right';internalData.prevDragToChild=!!(isCrossDrag&&isToChildDrag&&isControlKey);internalData.prevDragCol=column;internalData.prevDragPos=dragPos;if(column.fixed||dragCol&&dragCol.id===column.id||!isCrossDrag&&(isPeerDrag?dragCol.parentId!==column.parentId:column.parentId)){showDropTip(evnt,null,thEl,false,dragPos);return;}showDropTip(evnt,null,thEl,true,dragPos);dispatchEvent('column-dragover',{oldColumn:dragCol,targetColumn:column,dragPos},evnt);// 边缘滚动
|
|
864
|
-
const el=refElem.value;if(!el){return;}const xHandleEl=refScrollXHandleElem.value;const tableBody=refTableBody.value;const tableBodyElem=tableBody?tableBody.$el:null;const scrollTargetEl=xHandleEl||tableBodyElem;if(scrollTargetEl){const wrapperRect=el.getBoundingClientRect();const tableWrapperWidth=el.clientWidth;const leftContainerElem=refLeftContainer.value;const leftContainerWidth=leftContainerElem?leftContainerElem.clientWidth:0;const rightContainerElem=refRightContainer.value;const rightContainerWidth=rightContainerElem?rightContainerElem.clientWidth:0;const srartX=wrapperRect.x+leftContainerWidth;const endX=wrapperRect.x+tableWrapperWidth-rightContainerWidth;const distSize=28;const startDistSize=clientX-srartX;const endDistSize=endX-clientX;if(startDistSize>0&&startDistSize<=distSize){const scrollRatio=Math.floor(tableWrapperWidth/(startDistSize>distSize/2?240:120));scrollTargetEl.scrollLeft-=scrollRatio*(distSize-startDistSize);}else if(endDistSize>0&&endDistSize<=distSize){const scrollRatio=Math.floor(tableWrapperWidth/(endDistSize>distSize/2?240:120));scrollTargetEl.scrollLeft+=scrollRatio*(distSize-endDistSize);}}}},handleHeaderCellDragMousedownEvent(evnt,params){var _a;evnt.stopPropagation();const columnDragOpts=computeColumnDragOpts.value;const{trigger,dragStartMethod}=columnDragOpts;const{column}=params;const dragEl=evnt.currentTarget;const thEl=trigger==='cell'?dragEl:(_a=dragEl.parentElement)===null||_a===void 0?void 0:_a.parentElement;clearColDropOrigin();if(dragStartMethod&&!dragStartMethod(params)){thEl.draggable=false;reactData.dragRow=null;reactData.dragCol=null;clearCrossTableDragStatus();hideDropTip();return;}reactData.dragCol=column;reactData.dragRow=null;thEl.draggable=true;clearCrossTableDragStatus();updateColDropOrigin(column);updateColDropTipContent(thEl);dispatchEvent('column-dragstart',params,evnt);},handleHeaderCellDragMouseupEvent(){clearColDropOrigin();hideDropTip();clearCrossTableDragStatus();reactData.dragRow=null;reactData.dragCol=null;},handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,params){const{highlightHoverRow}=props;const{lastScrollLeft,lastScrollTop}=internalData;const
|
|
870
|
+
const el=refElem.value;if(!el){return;}const xHandleEl=refScrollXHandleElem.value;const tableBody=refTableBody.value;const tableBodyElem=tableBody?tableBody.$el:null;const scrollTargetEl=xHandleEl||tableBodyElem;if(scrollTargetEl){const wrapperRect=el.getBoundingClientRect();const tableWrapperWidth=el.clientWidth;const leftContainerElem=refLeftContainer.value;const leftContainerWidth=leftContainerElem?leftContainerElem.clientWidth:0;const rightContainerElem=refRightContainer.value;const rightContainerWidth=rightContainerElem?rightContainerElem.clientWidth:0;const srartX=wrapperRect.x+leftContainerWidth;const endX=wrapperRect.x+tableWrapperWidth-rightContainerWidth;const distSize=28;const startDistSize=clientX-srartX;const endDistSize=endX-clientX;if(startDistSize>0&&startDistSize<=distSize){const scrollRatio=Math.floor(tableWrapperWidth/(startDistSize>distSize/2?240:120));scrollTargetEl.scrollLeft-=scrollRatio*(distSize-startDistSize);}else if(endDistSize>0&&endDistSize<=distSize){const scrollRatio=Math.floor(tableWrapperWidth/(endDistSize>distSize/2?240:120));scrollTargetEl.scrollLeft+=scrollRatio*(distSize-endDistSize);}}}},handleHeaderCellDragMousedownEvent(evnt,params){var _a;evnt.stopPropagation();const columnDragOpts=computeColumnDragOpts.value;const{trigger,dragStartMethod}=columnDragOpts;const{column}=params;const dragEl=evnt.currentTarget;const thEl=trigger==='cell'?dragEl:(_a=dragEl.parentElement)===null||_a===void 0?void 0:_a.parentElement;clearColDropOrigin();if(dragStartMethod&&!dragStartMethod(params)){thEl.draggable=false;reactData.dragRow=null;reactData.dragCol=null;clearCrossTableDragStatus();hideDropTip();return;}reactData.dragCol=column;reactData.dragRow=null;thEl.draggable=true;clearCrossTableDragStatus();updateColDropOrigin(column);updateColDropTipContent(thEl);dispatchEvent('column-dragstart',params,evnt);},handleHeaderCellDragMouseupEvent(){clearColDropOrigin();hideDropTip();clearCrossTableDragStatus();reactData.dragRow=null;reactData.dragCol=null;},handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,params){const{highlightHoverRow}=props;const{elemStore,lastScrollLeft,lastScrollTop}=internalData;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(!bodyScrollElem){return;}const rowOpts=computeRowOpts.value;const validTip=refValidTooltip.value;const tooltip=refTooltip.value;const bodyHeight=bodyScrollElem.clientHeight;const bodyWidth=bodyScrollElem.clientWidth;const scrollHeight=bodyScrollElem.scrollHeight;const scrollWidth=bodyScrollElem.scrollWidth;let isTop=false;let isBottom=false;let isLeft=false;let isRight=false;let direction='';let isTopBoundary=false;let isBottomBoundary=false;let isLeftBoundary=false;let isRightBoundary=false;if(isRollX){const xThreshold=computeScrollXThreshold.value;isLeft=scrollLeft<=0;if(!isLeft){isRight=scrollLeft+bodyWidth>=scrollWidth;}if(scrollLeft>lastScrollLeft){direction='right';if(scrollLeft+bodyWidth>=scrollWidth-xThreshold){isRightBoundary=true;}}else{direction='left';if(scrollLeft<=xThreshold){isLeftBoundary=true;}}$xeTable.checkScrolling();internalData.lastScrollLeft=scrollLeft;}if(isRollY){const yThreshold=computeScrollYThreshold.value;isTop=scrollTop<=1;if(!isTop){isBottom=scrollTop+bodyHeight>=scrollHeight-1;}if(scrollTop>lastScrollTop){direction='bottom';if(scrollTop+bodyHeight>=scrollHeight-yThreshold){isBottomBoundary=true;}}else{direction='top';if(scrollTop<=yThreshold){isTopBoundary=true;}}internalData.lastScrollTop=scrollTop;}internalData.lastSTime=Date.now();const evntParams=Object.assign({source:sourceType,scrollTop,scrollLeft,bodyHeight,bodyWidth,scrollHeight,scrollWidth,isX:isRollX,isY:isRollY,isTop,isBottom,isLeft,isRight,direction},params);updateThumbOffset();updateRowExpandStyle();checkLastSyncScroll(isRollX,isRollY);if(isRollX){$xeTable.closeFilter();}if(rowOpts.isHover||highlightHoverRow){$xeTable.clearHoverRow();}if(validTip&&validTip.reactData.visible){validTip.close();}if(tooltip&&tooltip.reactData.visible){tooltip.close();}if(isBottomBoundary||isTopBoundary||isRightBoundary||isLeftBoundary){dispatchEvent('scroll-boundary',evntParams,evnt);}dispatchEvent('scroll',evntParams,evnt);},/**
|
|
865
871
|
* 横向 X 可视渲染事件处理
|
|
866
872
|
*/triggerScrollXEvent(){const virtualXOpts=computeVirtualXOpts.value;if(virtualXOpts.immediate){loadScrollXData();}else{lazyScrollXData();}},/**
|
|
867
873
|
* 纵向 Y 可视渲染事件处理
|
|
868
|
-
*/triggerScrollYEvent(){const virtualYOpts=computeVirtualYOpts.value;if(virtualYOpts.immediate){loadScrollYData();}else{lazyScrollYData();}},triggerBodyScrollEvent(evnt,fixedType){const{scrollYLoad,scrollXLoad}=reactData;const{elemStore,intoRunScroll,lastScrollTop,lastScrollLeft,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll,scrollRenderType,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inFooterScroll){return;}const xHandleEl=refScrollXHandleElem.value;const yHandleEl=refScrollYHandleElem.value;const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);const rowExpandEl=refRowExpandElem.value;if(intoRunScroll){return;}if(!bodyScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}if(inBodyScroll){if(scrollRenderType!==fixedType){return;}}let scrollTop=
|
|
869
|
-
if(!deltaY&&!deltaX){return;}const{highlightHoverRow}=_props.tableProps;const{scrollXLoad,scrollYLoad,overflowX,overflowY,expandColumn}=reactData;const leftFixedWidth=computeLeftFixedWidth.value;const rightFixedWidth=computeRightFixedWidth.value;const{elemStore,lastScrollTop,lastScrollLeft}=internalData;const rowOpts=computeRowOpts.value;const
|
|
870
|
-
if(
|
|
871
|
-
if(
|
|
874
|
+
*/triggerScrollYEvent(){const virtualYOpts=computeVirtualYOpts.value;if(virtualYOpts.immediate){loadScrollYData();}else{lazyScrollYData();}},triggerBodyScrollEvent(evnt,fixedType){const{useScrollbar}=props;const{scrollYLoad,scrollXLoad}=reactData;const{elemStore,intoRunScroll,lastScrollTop,lastScrollLeft,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll,scrollRenderType,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inFooterScroll){return;}const xHandleEl=refScrollXHandleElem.value;const yHandleEl=refScrollYHandleElem.value;const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);const rowExpandEl=refRowExpandElem.value;if(intoRunScroll){return;}if(!bodyScrollElem){return;}if(!useScrollbar){if(!xHandleEl){return;}if(!yHandleEl){return;}}if(inBodyScroll){if(scrollRenderType!==fixedType){return;}}let scrollTop=0;let scrollLeft=0;if(leftScrollElem&&fixedType==='left'){scrollTop=leftScrollElem.scrollTop;}else if(rightScrollElem&&fixedType==='right'){scrollTop=rightScrollElem.scrollTop;}else{scrollTop=bodyScrollElem.scrollTop;scrollLeft=bodyScrollElem.scrollLeft;}const isRollX=scrollLeft!==lastScrollLeft;const isRollY=scrollTop!==lastScrollTop;internalData.inBodyScroll=true;internalData.scrollRenderType=fixedType;if(isRollY){if(fixedType==='left'){(0,_dom.setScrollTop)(bodyScrollElem,scrollTop);(0,_dom.setScrollTop)(rightScrollElem,scrollTop);}else if(fixedType==='right'){(0,_dom.setScrollTop)(bodyScrollElem,scrollTop);(0,_dom.setScrollTop)(leftScrollElem,scrollTop);}else{(0,_dom.setScrollTop)(leftScrollElem,scrollTop);(0,_dom.setScrollTop)(rightScrollElem,scrollTop);}(0,_dom.setScrollTop)(yHandleEl,scrollTop);(0,_dom.setScrollTop)(rowExpandEl,scrollTop);syncGanttScrollTop(scrollTop);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}}if(isRollX){(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'body',fixed:fixedType});},triggerHeaderScrollEvent(evnt,fixedType){const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inBodyScroll,inFooterScroll}=internalData;if(inWheelScroll||inVirtualScroll||inBodyScroll||inFooterScroll){return;}const yHandleEl=refScrollYHandleElem.value;const xHandleEl=refScrollXHandleElem.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);if(intoRunScroll){return;}if(!headerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=headerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inHeaderScroll=true;(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'header',fixed:fixedType});},triggerFooterScrollEvent(evnt,fixedType){const{scrollXLoad}=reactData;const{elemStore,intoRunScroll,inWheelScroll,inVirtualScroll,inHeaderScroll,inBodyScroll}=internalData;if(inWheelScroll||inVirtualScroll||inHeaderScroll||inBodyScroll){return;}const yHandleEl=refScrollYHandleElem.value;const xHandleEl=refScrollXHandleElem.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);if(intoRunScroll){return;}if(!footerScrollElem){return;}if(!xHandleEl){return;}if(!yHandleEl){return;}const scrollTop=yHandleEl.scrollTop;const scrollLeft=footerScrollElem.scrollLeft;const isRollX=true;const isRollY=false;internalData.inFooterScroll=true;(0,_dom.setScrollLeft)(xHandleEl,scrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(bodyScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'footer',fixed:fixedType});},triggerBodyWheelEvent(evnt){const{target,deltaY,deltaX,shiftKey}=evnt;if(target&&/^textarea$/i.test(target.tagName)){return;}// 如果滚轮未移动或者触摸板未变化位置
|
|
875
|
+
if(!deltaY&&!deltaX){return;}const{highlightHoverRow}=_props.tableProps;const{scrollXLoad,scrollYLoad,overflowX,overflowY,expandColumn}=reactData;const leftFixedWidth=computeLeftFixedWidth.value;const rightFixedWidth=computeRightFixedWidth.value;const{elemStore,lastScrollTop,lastScrollLeft}=internalData;const rowOpts=computeRowOpts.value;const scrollXVisible=computeScrollXVisible.value;const scrollYVisible=computeScrollYVisible.value;const xHandleEl=refScrollXHandleElem.value;const yHandleEl=refScrollYHandleElem.value;const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const rowExpandEl=refRowExpandElem.value;if(!bodyScrollElem){return;}const wheelSpeed=getWheelSpeed(internalData.lastSTime);const deltaTop=shiftKey?0:deltaY*wheelSpeed;const deltaLeft=(shiftKey?deltaX||deltaY:deltaX)*wheelSpeed;const currScrollTop=bodyScrollElem.scrollTop;const currScrollLeft=bodyScrollElem.scrollLeft;const scrollTop=Math.max(0,currScrollTop+deltaTop);const scrollLeft=Math.max(0,currScrollLeft+deltaLeft);const isRollX=overflowX&&scrollLeft!==lastScrollLeft;const isRollY=overflowY&&scrollTop!==lastScrollTop;if(isRollX){// 如果禁用滚动
|
|
876
|
+
if(scrollXVisible===false||scrollXVisible==='hidden'){evnt.preventDefault();return;}}if(isRollY){// 如果禁用滚动
|
|
877
|
+
if(scrollYVisible===false||scrollYVisible==='hidden'){evnt.preventDefault();return;}const isTopWheel=deltaTop<0;// 如果滚动位置已经是顶部或底部,则不需要触发
|
|
872
878
|
if(isTopWheel?currScrollTop<=0:currScrollTop>=bodyScrollElem.scrollHeight-bodyScrollElem.clientHeight){return;}}// 展开行处理,如果展开行嵌入表格中
|
|
873
879
|
if($xeParentTable){if(isRollY){if((0,_dom.checkTargetElement)(evnt.target,[leftScrollElem,bodyScrollElem,rightScrollElem],evnt.currentTarget)){evnt.stopPropagation();return;}}if(isRollX){if((0,_dom.checkTargetElement)(evnt.target,[headerScrollElem,bodyScrollElem,footerScrollElem],evnt.currentTarget)){evnt.stopPropagation();return;}}}if(!(isRollX||leftFixedWidth||rightFixedWidth||expandColumn)){return;}if(rowOpts.isHover||highlightHoverRow){$xeTable.clearHoverRow();}// 用于鼠标纵向滚轮处理
|
|
874
880
|
if(isRollX){evnt.preventDefault();internalData.inWheelScroll=true;(0,_dom.wheelScrollLeftTo)(scrollLeft,offsetLeft=>{internalData.inWheelScroll=true;const currLeftNum=offsetLeft;(0,_dom.setScrollLeft)(xHandleEl,currLeftNum);(0,_dom.setScrollLeft)(bodyScrollElem,currLeftNum);(0,_dom.setScrollLeft)(headerScrollElem,currLeftNum);(0,_dom.setScrollLeft)(footerScrollElem,currLeftNum);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,bodyScrollElem.scrollTop,currLeftNum,{type:'table',fixed:''});});}if(isRollY){evnt.preventDefault();internalData.inWheelScroll=true;(0,_dom.wheelScrollTopTo)(scrollTop,offsetTop=>{internalData.inWheelScroll=true;const currTopNum=offsetTop;(0,_dom.setScrollTop)(yHandleEl,currTopNum);(0,_dom.setScrollTop)(bodyScrollElem,currTopNum);(0,_dom.setScrollTop)(leftScrollElem,currTopNum);(0,_dom.setScrollTop)(rightScrollElem,currTopNum);(0,_dom.setScrollTop)(rowExpandEl,currTopNum);syncGanttScrollTop(currTopNum);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,offsetTop,bodyScrollElem.scrollLeft,{type:'table',fixed:''});});}},triggerVirtualScrollXEvent(evnt){const{scrollXLoad}=reactData;const{elemStore,inWheelScroll,lastScrollTop,inHeaderScroll,inBodyScroll,inFooterScroll}=internalData;if(inHeaderScroll||inBodyScroll||inFooterScroll){return;}if(inWheelScroll){return;}const headerScrollElem=(0,_util.getRefElem)(elemStore['main-header-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const footerScrollElem=(0,_util.getRefElem)(elemStore['main-footer-scroll']);const yHandleEl=refScrollYHandleElem.value;const wrapperEl=evnt.currentTarget;const{scrollLeft}=wrapperEl;const yBodyEl=yHandleEl||bodyScrollElem;let scrollTop=0;if(yBodyEl){scrollTop=yBodyEl.scrollTop;}const isRollX=true;const isRollY=scrollTop!==lastScrollTop;internalData.inVirtualScroll=true;(0,_dom.setScrollLeft)(bodyScrollElem,scrollLeft);(0,_dom.setScrollLeft)(headerScrollElem,scrollLeft);(0,_dom.setScrollLeft)(footerScrollElem,scrollLeft);if(scrollXLoad){$xeTable.triggerScrollXEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'table',fixed:''});},triggerVirtualScrollYEvent(evnt){const{scrollYLoad}=reactData;const{elemStore,inWheelScroll,lastScrollLeft,inHeaderScroll,inBodyScroll,inFooterScroll}=internalData;if(inHeaderScroll||inBodyScroll||inFooterScroll){return;}if(inWheelScroll){return;}const leftScrollElem=(0,_util.getRefElem)(elemStore['left-body-scroll']);const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);const rightScrollElem=(0,_util.getRefElem)(elemStore['right-body-scroll']);const rowExpandEl=refRowExpandElem.value;const xHandleEl=refScrollXHandleElem.value;const wrapperEl=evnt.currentTarget;const{scrollTop}=wrapperEl;const xBodyEl=xHandleEl||bodyScrollElem;let scrollLeft=0;if(xBodyEl){scrollLeft=xBodyEl.scrollLeft;}const isRollX=scrollLeft!==lastScrollLeft;const isRollY=true;internalData.inVirtualScroll=true;(0,_dom.setScrollTop)(bodyScrollElem,scrollTop);(0,_dom.setScrollTop)(leftScrollElem,scrollTop);(0,_dom.setScrollTop)(rightScrollElem,scrollTop);(0,_dom.setScrollTop)(rowExpandEl,scrollTop);syncGanttScrollTop(scrollTop);if(scrollYLoad){$xeTable.triggerScrollYEvent(evnt);}$xeTable.handleScrollEvent(evnt,isRollY,isRollX,scrollTop,scrollLeft,{type:'table',fixed:''});},/**
|
|
@@ -891,7 +897,11 @@ if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHei
|
|
|
891
897
|
*/triggerHoverEvent(evnt,{row}){$xeTable.setHoverRow(row);},setHoverRow(row){const $xeGanttView=internalData.xeGanttView;$xeTable.clearHoverRow();const rowid=(0,_util.getRowid)($xeTable,row);const el=refElem.value;if(el){_xeUtils.default.arrayEach(el.querySelectorAll(`.vxe-body--row[rowid="${rowid}"]`),elem=>(0,_dom.addClass)(elem,'row--hover'));}internalData.hoverRow=row;if($xeGanttView&&$xeGanttView.handleUpdateHoverRow){$xeGanttView.handleUpdateHoverRow(row);}},clearHoverRow(){const $xeGanttView=internalData.xeGanttView;const el=refElem.value;if(el){_xeUtils.default.arrayEach(el.querySelectorAll('.vxe-body--row.row--hover'),elem=>(0,_dom.removeClass)(elem,'row--hover'));}internalData.hoverRow=null;if($xeGanttView&&$xeGanttView.handleUpdateHoverRow){$xeGanttView.handleUpdateHoverRow();}},/**
|
|
892
898
|
* 已废弃,被 getCellElement 替换
|
|
893
899
|
* @deprecated
|
|
894
|
-
*/getCell(row,column){return $xeTable.getCellElement(row,column);},findRowIndexOf(list,row){return row?_xeUtils.default.findIndexOf(list,item=>$xeTable.eqRow(item,row)):-1;},eqRow(row1,row2){if(row1&&row2){if(row1===row2){return true;}return(0,_util.getRowid)($xeTable,row1)===(0,_util.getRowid)($xeTable,row2);}return false;},handleConnectGanttView($ganttView){if($ganttView&&$ganttView.connectUpdate){$ganttView.connectUpdate({$table:$xeTable});internalData.xeGanttView=$ganttView;}return(0,_vue.nextTick)();}};//
|
|
900
|
+
*/getCell(row,column){return $xeTable.getCellElement(row,column);},findRowIndexOf(list,row){return row?_xeUtils.default.findIndexOf(list,item=>$xeTable.eqRow(item,row)):-1;},eqRow(row1,row2){if(row1&&row2){if(row1===row2){return true;}return(0,_util.getRowid)($xeTable,row1)===(0,_util.getRowid)($xeTable,row2);}return false;},handleConnectGanttView($ganttView){if($ganttView&&$ganttView.connectUpdate){$ganttView.connectUpdate({$table:$xeTable});internalData.xeGanttView=$ganttView;}return(0,_vue.nextTick)();}};const updateThumbSize=()=>{const{elemStore}=internalData;const viewEl=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(!viewEl){return;}if(!viewEl.clientHeight||!viewEl.clientHeight){return;}const trackXEl=refTrackXElem.value;const xThumbWidth=trackXEl?(0,_scrollbar.getThumbSize)(viewEl.clientWidth,viewEl.scrollWidth,trackXEl.clientWidth):0;const thumbXElem=refThumbXElem.value;if(thumbXElem){thumbXElem.style.width=xThumbWidth+'px';}reactData.xThumbWidth=xThumbWidth;const trackYEl=refTrackYElem.value;const yThumbHeight=trackYEl?(0,_scrollbar.getThumbSize)(viewEl.clientHeight,viewEl.scrollHeight,trackYEl.clientHeight):0;const thumbYElem=refThumbYElem.value;if(thumbYElem){thumbYElem.style.height=yThumbHeight+'px';}reactData.yThumbHeight=yThumbHeight;};const updateThumbOffset=()=>{const{elemStore}=internalData;const viewEl=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(!viewEl){return;}if(!viewEl.clientHeight||!viewEl.clientHeight){return;}const{xThumbWidth,yThumbHeight}=reactData;const trackXEl=refTrackXElem.value;const thumbXElem=refThumbXElem.value;const xThumbLeft=trackXEl&&xThumbWidth?(0,_scrollbar.getThumbOffsetSize)(viewEl.scrollLeft,viewEl.clientWidth,viewEl.scrollWidth,trackXEl.clientWidth,xThumbWidth):0;internalData.xThumbLeft=xThumbLeft;if(thumbXElem&&xThumbWidth){thumbXElem.style.width=xThumbWidth+'px';thumbXElem.style.transform=`translateX(${xThumbLeft}px)`;}const trackYEl=refTrackYElem.value;const thumbYElem=refThumbYElem.value;const yThumbTop=trackYEl&&yThumbHeight?(0,_scrollbar.getThumbOffsetSize)(viewEl.scrollTop,viewEl.clientHeight,viewEl.scrollHeight,trackYEl.clientHeight,yThumbHeight):0;internalData.yThumbTop=yThumbTop;if(thumbYElem&&yThumbHeight){thumbYElem.style.height=yThumbHeight+'px';thumbYElem.style.transform=`translateY(${yThumbTop}px)`;}};const clickTrackXEvent=evnt=>{const{elemStore}=internalData;const trackEl=evnt.currentTarget;if(trackEl!==evnt.target){return;}const viewEl=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const trackRect=trackEl.getBoundingClientRect();viewEl.scrollTo({left:(0,_scrollbar.getScrollFromClick)(evnt.clientX-trackRect.left,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth),behavior:'auto'});};const clickTrackYEvent=evnt=>{const{elemStore}=internalData;const trackEl=evnt.currentTarget;if(trackEl!==evnt.target){return;}const viewEl=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const trackRect=trackEl.getBoundingClientRect();viewEl.scrollTo({top:(0,_scrollbar.getScrollFromClick)(evnt.clientY-trackRect.top,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight),behavior:'auto'});};const pointerdownThumbXEvent=evnt=>{const{elemStore}=internalData;const thumbEl=evnt.currentTarget;internalData.isThumbDrag=true;thumbEl.setPointerCapture(evnt.pointerId);const viewEl=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();const pointerPosition=evnt.clientX-trackRect.left;// 记录 thumb 的偏移
|
|
901
|
+
const thumbOffset=(0,_scrollbar.getThumbOffsetSize)(viewEl.scrollLeft,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth);internalData.thumbDragOffset=pointerPosition-thumbOffset;};const pointermoveThumbXEvent=evnt=>{const thumbEl=evnt.currentTarget;if(!thumbEl.hasPointerCapture(evnt.pointerId)){return;}const{elemStore,isThumbDrag,thumbDragOffset}=internalData;if(isThumbDrag){const viewEl=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(!viewEl){return;}const{xThumbWidth}=reactData;const thumbEl=evnt.currentTarget;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();// 更新偏移
|
|
902
|
+
viewEl.scrollLeft=(0,_scrollbar.getScrollFromDrag)(evnt.clientX-trackRect.left,thumbDragOffset,viewEl.clientWidth,viewEl.scrollWidth,trackEl.clientWidth,xThumbWidth);}};const cleatPointerThumbEvent=evnt=>{const thumbEl=evnt.currentTarget;thumbEl.releasePointerCapture(evnt.pointerId);internalData.isThumbDrag=false;};const pointerdownThumbYEvent=evnt=>{const{elemStore}=internalData;const thumbEl=evnt.currentTarget;internalData.isThumbDrag=true;thumbEl.setPointerCapture(evnt.pointerId);const viewEl=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();const pointerPosition=evnt.clientY-trackRect.top;// 记录 thumb 的偏移
|
|
903
|
+
const thumbOffset=(0,_scrollbar.getThumbOffsetSize)(viewEl.scrollTop,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight);internalData.thumbDragOffset=pointerPosition-thumbOffset;};const pointermoveThumbYEvent=evnt=>{const thumbEl=evnt.currentTarget;if(!thumbEl.hasPointerCapture(evnt.pointerId)){return;}const{elemStore,isThumbDrag,thumbDragOffset}=internalData;if(isThumbDrag){const viewEl=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(!viewEl){return;}const{yThumbHeight}=reactData;const thumbEl=evnt.currentTarget;const trackEl=thumbEl.parentElement;const trackRect=trackEl.getBoundingClientRect();// 更新偏移
|
|
904
|
+
viewEl.scrollTop=(0,_scrollbar.getScrollFromDrag)(evnt.clientY-trackRect.top,thumbDragOffset,viewEl.clientHeight,viewEl.scrollHeight,trackEl.clientHeight,yThumbHeight);}};// 检测对应模块是否安装
|
|
895
905
|
// 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name => {
|
|
896
906
|
// ($xeTable as any)[name] = function () {
|
|
897
907
|
// errLog('vxe.error.reqModule', ['Export'])
|
|
@@ -907,15 +917,15 @@ Object.assign($xeTable,tableMethods,tablePrivateMethods);/**
|
|
|
907
917
|
* 分别渲染左边固定列和右边固定列
|
|
908
918
|
* 如果宽度足够情况下,则不需要渲染固定列
|
|
909
919
|
* @param {String} fixedType 固定列类型
|
|
910
|
-
*/const renderViewFixed=fixedType=>{const{showHeader,showFooter}=props;const{tableData,tableColumn,tableGroupColumn,columnStore,footerTableData}=reactData;const scrollbarOpts=computeScrollbarOpts.value;const scrollbarXOpts=computeScrollbarXOpts.value;const scrollbarYOpts=computeScrollbarYOpts.value;const{overscrollBehavior:overscrollXBehavior}=scrollbarXOpts;const{overscrollBehavior:overscrollYBehavior}=scrollbarYOpts;const isFixedLeft=fixedType==='left';const fixedColumn=isFixedLeft?columnStore.leftList:columnStore.rightList;const osXBehavior=_xeUtils.default.eqNull(overscrollXBehavior)?scrollbarOpts.overscrollBehavior:overscrollXBehavior;const osYBehavior=_xeUtils.default.eqNull(overscrollYBehavior)?scrollbarOpts.overscrollBehavior:overscrollYBehavior;return(0,_vue.h)('div',{ref:isFixedLeft?refLeftContainer:refRightContainer,class:[`vxe-table--fixed-${fixedType}-wrapper`,`sx--${
|
|
920
|
+
*/const renderViewFixed=fixedType=>{const{showHeader,showFooter}=props;const{tableData,tableColumn,tableGroupColumn,columnStore,footerTableData}=reactData;const scrollbarOpts=computeScrollbarOpts.value;const scrollbarXOpts=computeScrollbarXOpts.value;const scrollbarYOpts=computeScrollbarYOpts.value;const scrollXVisible=computeScrollXVisible.value;const scrollYVisible=computeScrollYVisible.value;const{overscrollBehavior:overscrollXBehavior}=scrollbarXOpts;const{overscrollBehavior:overscrollYBehavior}=scrollbarYOpts;const isFixedLeft=fixedType==='left';const fixedColumn=isFixedLeft?columnStore.leftList:columnStore.rightList;const osXBehavior=_xeUtils.default.eqNull(overscrollXBehavior)?scrollbarOpts.overscrollBehavior:overscrollXBehavior;const osYBehavior=_xeUtils.default.eqNull(overscrollYBehavior)?scrollbarOpts.overscrollBehavior:overscrollYBehavior;return(0,_vue.h)('div',{ref:isFixedLeft?refLeftContainer:refRightContainer,class:[`vxe-table--fixed-${fixedType}-wrapper`,`sx--${scrollXVisible===false||scrollXVisible==='hidden'?'hidden':'visible'}`,`sy--${scrollYVisible===false||scrollYVisible==='hidden'?'hidden':'visible'}`,{[`x-ob--${osXBehavior}`]:osXBehavior,[`y-ob--${osYBehavior}`]:osYBehavior}]},[showHeader?(0,_vue.h)(_header.default,{ref:isFixedLeft?refTableLeftHeader:refTableRightHeader,fixedType,tableData,tableColumn,tableGroupColumn,fixedColumn}):renderEmptyElement($xeTable),(0,_vue.h)(_body.default,{ref:isFixedLeft?refTableLeftBody:refTableRightBody,fixedType,tableData,tableColumn,fixedColumn}),showFooter?(0,_vue.h)(_footer.default,{ref:isFixedLeft?refTableLeftFooter:refTableRightFooter,footerTableData,tableColumn,fixedColumn,fixedType}):renderEmptyElement($xeTable)]);};const renderEmptyBody=()=>{const emptyOpts=computeEmptyOpts.value;const emptySlot=slots.empty;const emptyParams={$table:$xeTable,$grid:$xeGrid,gantt:$xeGantt};if(emptySlot){return emptySlot(emptyParams);}else{const rendererOpts=computeRendererOpts.value;const compConf=emptyOpts.name?rendererOpts[emptyOpts.name]||renderer.get(emptyOpts.name):null;const rtEmptyView=compConf?compConf.renderTableEmpty||compConf.renderTableEmptyView||compConf.renderEmpty:null;if(rtEmptyView){return(0,_vn.getSlotVNs)(rtEmptyView(emptyOpts,emptyParams));}}return(0,_utils.getFuncText)(props.emptyText)||getI18n('vxe.table.emptyText');};const renderDragTipContents=()=>{const{dragConfig}=props;const{dragRow,dragCol,dragTipText}=reactData;const columnDragOpts=computeColumnDragOpts.value;const rowDragOpts=computeRowDragOpts.value;const rowDragSlots=rowDragOpts.slots||{};const rTipSlot=rowDragSlots.tip||(dragConfig&&dragConfig.slots?dragConfig.slots.rowTip:null);const columnDragSlots=columnDragOpts.slots||{};const cTipSlot=columnDragSlots.tip;const dRow=dragRow||(rowDragOpts.isCrossTableDrag?crossTableDragRowInfo.row:null);if(dRow&&rTipSlot){return callSlot(rTipSlot,{row:dRow});}if(dragCol&&cTipSlot){return callSlot(cTipSlot,{column:dragCol});}return[(0,_vue.h)('span',dragTipText)];};const renderDragTip=()=>{const{dragRow,dragCol}=reactData;const rowOpts=computeRowOpts.value;const columnOpts=computeColumnOpts.value;const rowDragOpts=computeRowDragOpts.value;const columnDragOpts=computeColumnDragOpts.value;const dRow=dragRow||(rowDragOpts.isCrossTableDrag?crossTableDragRowInfo.row:null);if(rowOpts.drag||columnOpts.drag){return(0,_vue.h)('div',{class:'vxe-table--drag-wrapper'},[(0,_vue.h)('div',{ref:refDragRowLineElem,class:['vxe-table--drag-row-line',{'is--guides':rowDragOpts.showGuidesStatus}]}),(0,_vue.h)('div',{ref:refDragColLineElem,class:['vxe-table--drag-col-line',{'is--guides':columnDragOpts.showGuidesStatus}]}),dRow&&rowDragOpts.showDragTip||dragCol&&columnDragOpts.showDragTip?(0,_vue.h)('div',{ref:refDragTipElem,class:'vxe-table--drag-sort-tip'},[(0,_vue.h)('div',{class:'vxe-table--drag-sort-tip-wrapper'},[(0,_vue.h)('div',{class:'vxe-table--drag-sort-tip-status'},[(0,_vue.h)('span',{class:['vxe-table--drag-sort-tip-normal-status',dRow?getIcon().TABLE_DRAG_STATUS_ROW:getIcon().TABLE_DRAG_STATUS_COLUMN]}),(0,_vue.h)('span',{class:['vxe-table--drag-sort-tip-sub-status',getIcon().TABLE_DRAG_STATUS_SUB_ROW]}),(0,_vue.h)('span',{class:['vxe-table--drag-sort-tip-disabled-status',getIcon().TABLE_DRAG_DISABLED]})]),(0,_vue.h)('div',{class:'vxe-table--drag-sort-tip-content'},renderDragTipContents())])]):renderEmptyElement($xeTable)]);}return renderEmptyElement($xeTable);};const renderRowExpandedVNs=()=>{const{treeConfig}=props;const{expandColumn,isRowGroupStatus}=reactData;const tableRowExpandedList=computeTableRowExpandedList.value;const expandOpts=computeExpandOpts.value;const{mode}=expandOpts;if(mode!=='fixed'){return renderEmptyElement($xeTable);}const expandVNs=[(0,_vue.h)('div',{key:'repY',ref:refRowExpandYSpaceElem})];if(expandColumn){const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);tableRowExpandedList.forEach(row=>{const expandOpts=computeExpandOpts.value;const{height:expandHeight,padding,indent}=expandOpts;const{fullAllDataRowIdData,fullColumnIdData}=internalData;const treeOpts=computeTreeOpts.value;const{transform,seqMode}=treeOpts;const cellStyle={};const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid];const colid=expandColumn.id;const colRest=fullColumnIdData[colid]||{};let rowLevel=0;let seq=-1;let _rowIndex=-1;let rowIndex=-1;let $rowIndex=-1;if(rowRest){rowIndex=rowRest.index;$rowIndex=rowRest.$index;_rowIndex=rowRest._index;rowLevel=rowRest.level;seq=rowRest.seq;if(isRowGroupStatus||treeConfig&&transform&&seqMode==='increasing'){seq=rowRest._index+1;}else if(treeConfig&&seqMode==='fixed'){seq=rowRest._tIndex+1;}}if(expandHeight){cellStyle.height=`${expandHeight}px`;}if(isRowGroupStatus||treeConfig){cellStyle.paddingLeft=`${rowLevel*(_xeUtils.default.isNumber(indent)?indent:treeOpts.indent)+30}px`;}let columnIndex=-1;let $columnIndex=-1;let _columnIndex=-1;if(colRest){columnIndex=colRest.index;$columnIndex=colRest.$index;_columnIndex=colRest._index;}const expandParams={$table:$xeTable,$grid:$xeGrid,$gantt:$xeGantt,seq,column:expandColumn,columnIndex,$columnIndex,_columnIndex,fixed:'',source:'table',type:'body',level:rowLevel,rowid,row,rowIndex,$rowIndex,_rowIndex,isHidden:false,isEdit:false,visibleData:[],data:[],items:[]};expandVNs.push((0,_vue.h)('div',{key:rowid,class:['vxe-body--row-expanded-cell',{'is--padding':padding,'is--ellipsis':expandHeight}],rowid,style:cellStyle},[(0,_vue.h)('div',{class:'vxe-body--row-expanded-content'},expandColumn.renderData(expandParams))]));});}return(0,_vue.h)('div',{ref:refRowExpandElem,class:'vxe-table--row-expanded-wrapper'},expandVNs);};const renderScrollX=()=>{return(0,_vue.h)('div',{key:'vsx',ref:refScrollXVirtualElem,class:'vxe-table--scroll-x-virtual'},[(0,_vue.h)('div',{ref:refScrollXLeftCornerElem,class:'vxe-table--scroll-x-left-corner'}),(0,_vue.h)('div',{ref:refScrollXWrapperElem,class:'vxe-table--scroll-x-wrapper'},[(0,_vue.h)('div',{ref:refScrollXHandleElem,class:'vxe-table--scroll-x-handle',onScroll:$xeTable.triggerVirtualScrollXEvent},[(0,_vue.h)('div',{ref:refScrollXSpaceElem,class:'vxe-table--scroll-x-space'})]),(0,_vue.h)('div',{class:'vxe-table--scroll-x-handle-appearance'})]),(0,_vue.h)('div',{ref:refScrollXRightCornerElem,class:'vxe-table--scroll-x-right-corner'})]);};const renderScrollY=()=>{return(0,_vue.h)('div',{key:'vsy',ref:refScrollYVirtualElem,class:'vxe-table--scroll-y-virtual'},[(0,_vue.h)('div',{ref:refScrollYTopCornerElem,class:'vxe-table--scroll-y-top-corner'}),(0,_vue.h)('div',{ref:refScrollYWrapperElem,class:'vxe-table--scroll-y-wrapper'},[(0,_vue.h)('div',{ref:refScrollYHandleElem,class:'vxe-table--scroll-y-handle',onScroll:$xeTable.triggerVirtualScrollYEvent},[(0,_vue.h)('div',{ref:refScrollYSpaceElem,class:'vxe-table--scroll-y-space'})]),(0,_vue.h)('div',{class:'vxe-table--scroll-y-handle-appearance'})]),(0,_vue.h)('div',{ref:refScrollYBottomCornerElem,class:'vxe-table--scroll-y-bottom-corner'})]);};const renderViewport=()=>{const{showHeader,showFooter}=props;const{overflowX,tableData,tableColumn,tableGroupColumn,footerTableData,columnStore}=reactData;const scrollbarOpts=computeScrollbarOpts.value;const scrollbarXOpts=computeScrollbarXOpts.value;const scrollbarYOpts=computeScrollbarYOpts.value;const scrollXVisible=computeScrollXVisible.value;const scrollYVisible=computeScrollYVisible.value;const{overscrollBehavior:overscrollXBehavior}=scrollbarXOpts;const{overscrollBehavior:overscrollYBehavior}=scrollbarYOpts;const{leftList,rightList}=columnStore;const osXBehavior=_xeUtils.default.eqNull(overscrollXBehavior)?scrollbarOpts.overscrollBehavior:overscrollXBehavior;const osYBehavior=_xeUtils.default.eqNull(overscrollYBehavior)?scrollbarOpts.overscrollBehavior:overscrollYBehavior;return(0,_vue.h)('div',{key:'tvw',ref:refTableViewportElem,class:['vxe-table--viewport-wrapper',{[`x-ob--${osXBehavior}`]:osXBehavior,[`y-ob--${osYBehavior}`]:osYBehavior}]},[(0,_vue.h)('div',{class:['vxe-table--main-wrapper',`sx--${scrollXVisible===false||scrollXVisible==='hidden'?'hidden':'visible'}`,`sy--${scrollYVisible===false||scrollYVisible==='hidden'?'hidden':'visible'}`]},[/**
|
|
911
921
|
* 表头
|
|
912
922
|
*/showHeader?(0,_vue.h)(_header.default,{ref:refTableHeader,tableData,tableColumn,tableGroupColumn}):renderEmptyElement($xeTable),/**
|
|
913
923
|
* 表体
|
|
914
924
|
*/(0,_vue.h)(_body.default,{ref:refTableBody,tableData,tableColumn}),/**
|
|
915
925
|
* 表尾
|
|
916
|
-
*/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?renderViewFixed('left'):renderEmptyElement($xeTable),rightList&&rightList.length&&overflowX?renderViewFixed('right'):renderEmptyElement($xeTable)]),renderRowExpandedVNs()]);};const
|
|
926
|
+
*/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?renderViewFixed('left'):renderEmptyElement($xeTable),rightList&&rightList.length&&overflowX?renderViewFixed('right'):renderEmptyElement($xeTable)]),renderRowExpandedVNs()]);};const renderNativeBody=()=>{const scrollbarYToLeft=computeScrollbarYToLeft.value;return(0,_vue.h)('div',{key:'lnb',class:'vxe-table--layout-wrapper'},scrollbarYToLeft?[renderScrollY(),renderViewport()]:[renderViewport(),renderScrollY()]);};const renderVirtualBody=()=>{const $xeGanttView=internalData.xeGanttView;const{useScrollbar}=props;const{xThumbWidth,yThumbHeight}=reactData;const scrollbarOpts=computeScrollbarOpts.value;const scrollXAutoHide=computeScrollXAutoHide.value;const scrollYAutoHide=computeScrollYAutoHide.value;const scrollXVisible=computeScrollXVisible.value;const scrollYVisible=computeScrollYVisible.value;const scrollbarXToTop=computeScrollbarXToTop.value;const scrollbarYToLeft=computeScrollbarYToLeft.value;const scrollbarWrapperClss=computeScrollbarWrapperClss.value;const hideXScroll=scrollXVisible===false||scrollXVisible==='hidden';const hideYScroll=scrollYVisible===false||scrollYVisible==='hidden';return(0,_vue.h)('div',{key:'lvb',class:['vxe-table--layout-wrapper',`sx-pos--${scrollbarXToTop?'top':'bottom'}`,`sy-pos--${scrollbarYToLeft?'left':'right'}`,{'is--virtual-scrollbar':useScrollbar,'ov-padding':useScrollbar&&scrollbarOpts.padding,'ov-x--auto-hide':useScrollbar&&scrollXAutoHide,'ov-y--auto-hide':useScrollbar&&scrollYAutoHide,'overflow-y':yThumbHeight,'overflow-x':xThumbWidth}]},[renderViewport(),(0,_vue.h)('div',{class:scrollbarWrapperClss},[hideXScroll?renderEmptyElement($xeTable):(0,_vue.h)('div',{ref:refTrackXElem,class:'vxe-scrollbar--track-x',onClick:clickTrackXEvent},[(0,_vue.h)('div',{ref:refThumbXElem,class:'vxe-scrollbar--thumb-x',onPointerdown:pointerdownThumbXEvent,onPointermove:pointermoveThumbXEvent,onPointerup:cleatPointerThumbEvent,onPointercancel:cleatPointerThumbEvent,onLostpointercapture:cleatPointerThumbEvent})]),hideYScroll||$xeGantt&&$xeGanttView&&$xeGantt.reactData.showRightView&&!scrollbarYToLeft?renderEmptyElement($xeTable):(0,_vue.h)('div',{ref:refTrackYElem,class:'vxe-scrollbar--track-y',onClick:clickTrackYEvent},[(0,_vue.h)('div',{ref:refThumbYElem,class:'vxe-scrollbar--thumb-y',onPointerdown:pointerdownThumbYEvent,onPointermove:pointermoveThumbYEvent,onPointerup:cleatPointerThumbEvent,onPointercancel:cleatPointerThumbEvent,onLostpointercapture:cleatPointerThumbEvent})])])]);};const renderVN=()=>{const{loading,stripe,useScrollbar,showHeader,height,treeConfig,mouseConfig,showFooter,highlightCell,highlightHoverRow,highlightHoverColumn,editConfig,editRules,importConfig,exportConfig,printConfig}=props;const{isGroup,overflowX,overflowY,scrollXLoad,scrollYLoad,tableData,initStore,isRowGroupStatus,columnStore,filterStore,customStore,tooltipStore}=reactData;const{teleportToWrapperElem,popupToWrapperElem,customPopupToElem}=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 tableStyle=computeTableStyle.value;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=(0,_utils.hasEnableConf)(mouseConfig,mouseOpts)&&mouseOpts.area;const columnDragOpts=computeColumnDragOpts.value;const scrollbarXToTop=computeScrollbarXToTop.value;const scrollbarYToLeft=computeScrollbarYToLeft.value;const exportOpts=computeExportOpts.value;const importOpts=computeImportOpts.value;const printOpts=computePrintOpts.value;const{isCrossTableDrag}=rowDragOpts;const tbOns={onKeydown:keydownEvent,onContextmenu:contextMenuEvent};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}`,useScrollbar?'is--virtual-scrollbar':'is--native-scrollbar',`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':(0,_utils.hasEnableConf)(mouseConfig,mouseOpts)&&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,'not--header':!showHeader,'is--footer':showFooter,'not--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,'not--scroll-y':!overflowY,'is--scroll-x':overflowX,'not--scroll-x':!overflowX,'is--virtual-x':scrollXLoad,'is--virtual-y':scrollYLoad}],style:tableStyle,spellcheck:false},tbOns),[/**
|
|
917
927
|
* 隐藏列
|
|
918
|
-
*/(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(),
|
|
928
|
+
*/(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'},useScrollbar?[renderVirtualBody()]:scrollbarXToTop?[renderScrollX(),renderNativeBody()]:[renderNativeBody(),renderScrollX()]),/**
|
|
919
929
|
* 空数据
|
|
920
930
|
*/(0,_vue.h)('div',{key:'tn',ref:refEmptyPlaceholder,class:'vxe-table--empty-place-wrapper',xid:xID},[(0,_vue.h)('div',{class:'vxe-table--empty-placeholder'},[(0,_vue.h)('div',{class:'vxe-table--empty-content'},renderEmptyBody())])]),/**
|
|
921
931
|
* 边框线
|
|
@@ -951,8 +961,8 @@ useHTML:_xeUtils.default.isBoolean(tableTipConfig.useHTML)?tableTipConfig.useHTM
|
|
|
951
961
|
// if (checkboxColumn && internalData.tableFullData.length > 300 && !checkboxOpts.checkField) {
|
|
952
962
|
// warnLog('vxe.error.checkProp', ['checkbox-config.checkField'])
|
|
953
963
|
// }
|
|
954
|
-
if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){warnLog('vxe.error.scrollErrProp',['column.type=expand']);}return $xeTable.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,()=>{$xeTable.analyColumnWidth();});(0,_vue.watch)(()=>reactData.upDataFlag,()=>{(0,_vue.nextTick)(()=>{$xeTable.updateData();});});(0,_vue.watch)(()=>reactData.reColumnFlag,()=>{(0,_vue.nextTick)(()=>{$xeTable.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)(()=>props.showHeaderOverflow,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>props.showOverflow,()=>{updateColumnAllOverflow();reLayoutFlag.value++;});(0,_vue.watch)(()=>props.showFooterOverflow,()=>{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)(
|
|
955
|
-
if(inited){handleKeyField();reactData.tableData=[];(0,_vue.nextTick)(()=>{$xeTable.reloadData(tableFullData);});}});const kfFlag=(0,_vue.ref)(0);(0,_vue.watch)(()=>reactData.updateColFlag,()=>{kfFlag.value++;});(0,_vue.watch)(computeKeepFields,()=>{kfFlag.value++;});(0,_vue.watch)(kfFlag,()=>{const keepFields=computeKeepFields.value;const kpfMaps={};keepFields.forEach(field=>{kpfMaps[field]=1;});internalData.keepUpdateFieldMaps=kpfMaps;});(0,_vue.watch)(computeAggregateMode,()=>{if(reactData.isRowGroupStatus){loadTableData(internalData.tableSynchData,false,true);}});const layoutReFlag=(0,_vue.ref)(0);(0,_vue.watch)(combineTabsResizeFlag,()=>{layoutReFlag.value++;});(0,_vue.watch)(combineModalResizeFlag,()=>{layoutReFlag.value++;});(0,_vue.watch)(combineSplitterResizeFlag,()=>{layoutReFlag.value++;});(0,_vue.watch)(layoutReFlag,()=>{handleGlobalResizeEvent();});handleKeyField();hooks.forEach(options=>{const{setupTable}=options;if(setupTable){const hookRest=setupTable($xeTable);if(hookRest&&_xeUtils.default.isObject(hookRest)){Object.assign($xeTable,hookRest);}}});$xeTable.preventEvent(null,'created',{$table:$xeTable});
|
|
964
|
+
if((scrollXLoad||scrollYLoad)&&expandColumn&&expandOpts.mode!=='fixed'){warnLog('vxe.error.scrollErrProp',['column.type=expand']);}return $xeTable.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,()=>{$xeTable.analyColumnWidth();});(0,_vue.watch)(()=>reactData.upDataFlag,()=>{(0,_vue.nextTick)(()=>{$xeTable.updateData();});});(0,_vue.watch)(()=>reactData.reColumnFlag,()=>{(0,_vue.nextTick)(()=>{$xeTable.refreshColumn();});});const reScrollFlag=(0,_vue.ref)(0);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)(()=>props.showHeaderOverflow,()=>{reLayoutFlag.value++;});(0,_vue.watch)(()=>props.showOverflow,()=>{updateColumnAllOverflow();reLayoutFlag.value++;});(0,_vue.watch)(()=>props.showFooterOverflow,()=>{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)(()=>_ui.VxeUI.getLanguage(),()=>{reLayoutFlag.value++;});(0,_vue.watch)(computeScrollbarXToTop,()=>{reScrollFlag.value++;reLayoutFlag.value++;});(0,_vue.watch)(computeScrollbarYToLeft,()=>{reScrollFlag.value++;reLayoutFlag.value++;});(0,_vue.watch)(computeScrollXVisible,()=>{reScrollFlag.value++;reLayoutFlag.value++;});(0,_vue.watch)(computeScrollYVisible,()=>{reScrollFlag.value++;reLayoutFlag.value++;});(0,_vue.watch)(computeScrollXHeight,()=>{reScrollFlag.value++;reLayoutFlag.value++;});(0,_vue.watch)(computeScrollYWidth,()=>{reScrollFlag.value++;reLayoutFlag.value++;});(0,_vue.watch)(computeCellHeitht,()=>{reLayoutFlag.value++;});(0,_vue.watch)(reLayoutFlag,()=>{$xeTable.recalculate(true);});(0,_vue.watch)(reScrollFlag,()=>{(0,_vue.nextTick)(()=>{$xeTable.updateScrollbar();(0,_vue.nextTick)(()=>{$xeTable.updateScrollbar();});});});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,()=>{internalData.footerFullDataRowData={};$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;// 行主键被改变,重载表格
|
|
965
|
+
if(inited){handleKeyField();reactData.tableData=[];(0,_vue.nextTick)(()=>{$xeTable.reloadData(tableFullData);});}});const kfFlag=(0,_vue.ref)(0);(0,_vue.watch)(()=>reactData.updateColFlag,()=>{kfFlag.value++;});(0,_vue.watch)(computeKeepFields,()=>{kfFlag.value++;});(0,_vue.watch)(kfFlag,()=>{const keepFields=computeKeepFields.value;const kpfMaps={};keepFields.forEach(field=>{kpfMaps[field]=1;});internalData.keepUpdateFieldMaps=kpfMaps;});(0,_vue.watch)(computeAggregateMode,()=>{if(reactData.isRowGroupStatus){loadTableData(internalData.tableSynchData,false,true);}});const layoutReFlag=(0,_vue.ref)(0);(0,_vue.watch)(combineTabsResizeFlag,()=>{layoutReFlag.value++;});(0,_vue.watch)(combineModalResizeFlag,()=>{layoutReFlag.value++;});(0,_vue.watch)(combineSplitterResizeFlag,()=>{layoutReFlag.value++;});(0,_vue.watch)(layoutReFlag,()=>{handleGlobalResizeEvent();});handleKeyField();hooks.forEach(options=>{const{setupTable}=options;if(setupTable){const hookRest=setupTable($xeTable);if(hookRest&&_xeUtils.default.isObject(hookRest)){Object.assign($xeTable,hookRest);}}});$xeTable.preventEvent(null,'created',{$table:$xeTable});(0,_vue.onActivated)(()=>{$xeTable.recalculate().then(()=>$xeTable.refreshScroll());$xeTable.preventEvent(null,'activated',{$table:$xeTable});});(0,_vue.onDeactivated)(()=>{const{filterStore}=reactData;if(filterStore.visible){$xeTable.clearFilter();}$xeTable.closeTooltip();internalData.isActivated=false;$xeTable.preventEvent(null,'deactivated',{$table:$xeTable});});(0,_vue.onMounted)(()=>{const{editConfig,exportConfig,importConfig,treeConfig,minHeight,keepSource,areaConfig}=props;const{elemStore,scrollXStore,scrollYStore}=internalData;const columnOpts=computeColumnOpts.value;const columnDragOpts=computeColumnDragOpts.value;const aggregateOpts=computeAggregateOpts.value;const virtualYOpts=computeVirtualYOpts.value;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
|
|
956
966
|
// const currentColumnOpts = computeCurrentColumnOpts.value
|
|
957
967
|
// const keyboardOpts = computeKeyboardOpts.value
|
|
958
968
|
const rowDragOpts=computeRowDragOpts.value;const areaOpts=computeAreaOpts.value;const sortOpts=computeSortOpts.value;const filterOpts=computeFilterOpts.value;const scrollbarOpts=computeScrollbarOpts.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)();}if(props.rowId){warnLog('vxe.error.delProp',['row-id','row-config.keyField']);}if(props.rowKey){warnLog('vxe.error.delProp',['row-key','row-config.useKey']);}if(props.columnKey){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)){warnLog('vxe.error.reqProp',['row-config.keyField']);}if(editConfig){if(!keepSource){if(editOpts.showStatus||editOpts.showUpdateStatus||editOpts.showInsertStatus){warnLog('vxe.error.reqSupportProp',['edit-config.showStatus | showUpdateStatus | showInsertStatus','keep-source']);}// if (keyboardOpts.isUndoRedo) {
|
|
@@ -1010,4 +1020,4 @@ if((0,_utils.hasEnableConf)(importConfig,importOpts)&&importOpts.types&&!importO
|
|
|
1010
1020
|
// if (hasEnableConf(printConfig, printOpts) || hasEnableConf(importConfig, importOpts) || hasEnableConf(exportConfig, exportOpts)) && !$xeTable.exportData) {
|
|
1011
1021
|
// errLog('vxe.error.reqModule', ['Export'])
|
|
1012
1022
|
// }
|
|
1013
|
-
if(scrollbarOpts.x){warnLog('vxe.error.delProp',['scrollbar-config.x','scrollbar-config.xConfig']);}if(scrollbarOpts.y){warnLog('vxe.error.delProp',['scrollbar-config.y','scrollbar-config.yConfig']);}Object.assign(scrollYStore,{startIndex:0,endIndex:0,visibleSize:0});Object.assign(scrollXStore,{startIndex:0,endIndex:0,visibleSize:0});handleUpdateRowGroup(groupFields);initData();(0,_vue.nextTick)(()=>{if(
|
|
1023
|
+
if(scrollbarOpts.x){warnLog('vxe.error.delProp',['scrollbar-config.x','scrollbar-config.xConfig']);}if(scrollbarOpts.y){warnLog('vxe.error.delProp',['scrollbar-config.y','scrollbar-config.yConfig']);}Object.assign(scrollYStore,{startIndex:0,endIndex:0,visibleSize:0});Object.assign(scrollXStore,{startIndex:0,endIndex:0,visibleSize:0});handleUpdateRowGroup(groupFields);initData();(0,_vue.nextTick)(()=>{const{useScrollbar,autoResize}=props;const el=refElem.value;if(useScrollbar){const viewInnerEl=(0,_util.getRefElem)(elemStore['main-body-table']);const scrollObserver=globalResize.create(()=>{reScrollFlag.value++;});if(el){scrollObserver.observe(el);}if(viewInnerEl){scrollObserver.observe(viewInnerEl);}internalData.scrollObserver=scrollObserver;}if(autoResize){const parentEl=$xeTable.getParentElem();const resizeObserver=globalResize.create(()=>{if(props.autoResize){handleResizeEvent();}});if(el){resizeObserver.observe(el);}if(parentEl){resizeObserver.observe(parentEl);}internalData.resizeObserver=resizeObserver;}});if(virtualYOpts.mode!=='scroll'){const tableViewportEl=refTableViewportElem.value;if(tableViewportEl){tableViewportEl.addEventListener('wheel',$xeTable.triggerBodyWheelEvent,{passive:false});}}globalEvents.on($xeTable,'paste',handleGlobalPasteEvent);globalEvents.on($xeTable,'copy',handleGlobalCopyEvent);globalEvents.on($xeTable,'cut',handleGlobalCutEvent);globalEvents.on($xeTable,'mousedown',handleGlobalMousedownEvent);globalEvents.on($xeTable,'blur',handleGlobalBlurEvent);globalEvents.on($xeTable,'mousewheel',handleGlobalMousewheelEvent);globalEvents.on($xeTable,'keydown',handleGlobalKeydownEvent);globalEvents.on($xeTable,'resize',handleGlobalResizeEvent);globalEvents.on($xeTable,'scroll',handleGlobalScrollEvent);globalEvents.on($xeTable,'contextmenu',$xeTable.handleGlobalContextmenuEvent);$xeTable.preventEvent(null,'mounted',{$table:$xeTable});});(0,_vue.onBeforeUnmount)(()=>{const{resizeObserver,scrollObserver,_sToTime}=internalData;if(_sToTime){clearTimeout(_sToTime);}const tableViewportEl=refTableViewportElem.value;if(tableViewportEl){tableViewportEl.removeEventListener('wheel',$xeTable.triggerBodyWheelEvent);}internalData.cvCacheMaps={};internalData.prevDragRow=null;internalData.prevDragCol=null;if(scrollObserver){scrollObserver.disconnect();}if(resizeObserver){resizeObserver.disconnect();}$xeTable.closeTooltip();$xeTable.closeFilter();if($xeTable.closeMenu){$xeTable.closeMenu();}globalEvents.off($xeTable,'paste');globalEvents.off($xeTable,'copy');globalEvents.off($xeTable,'cut');globalEvents.off($xeTable,'mousedown');globalEvents.off($xeTable,'blur');globalEvents.off($xeTable,'mousewheel');globalEvents.off($xeTable,'keydown');globalEvents.off($xeTable,'resize');globalEvents.off($xeTable,'scroll');globalEvents.off($xeTable,'contextmenu');$xeTable.preventEvent(null,'beforeUnmount',{$table:$xeTable});_xeUtils.default.assign(reactData,(0,_util.createReactData)());_xeUtils.default.assign(internalData,(0,_util.createInternalData)());});(0,_vue.onUnmounted)(()=>{$xeTable.preventEvent(null,'unmounted',{$table:$xeTable});});(0,_vue.nextTick)(()=>{const{showOverflow,showHeaderOverflow,showFooterOverflow}=props;const tooltipOpts=computeTooltipOpts.value;const headerTooltipOpts=computeHeaderTooltipOpts.value;const footerTooltipOpts=computeFooterTooltipOpts.value;if(props.loading){if(!VxeUILoadingComponent&&!slots.loading){errLog('vxe.error.reqComp',['vxe-loading']);errLog('vxe.error.errProp',['loading=true','loading=false | <template #loading>...</template>']);}}if(!VxeUITooltipComponent){let useOvTip=false;if(showOverflow==='tooltip'){useOvTip=true;errLog('vxe.error.errProp',['show-overflow='+showOverflow,'show-overflow=false,title,ellipsis']);}if(showOverflow===true&&tooltipOpts.mode==='tooltip'){useOvTip=true;errLog('vxe.error.notSupportProp',['show-overflow='+showOverflow,'tooltip-config.mode=tooltip','tooltip-config.mode=title,ellipsis']);}if(showHeaderOverflow==='tooltip'){useOvTip=true;errLog('vxe.error.errProp',['show-header-overflow='+showHeaderOverflow,'show-header-overflow=false,title,ellipsis']);}if(showHeaderOverflow===true&&headerTooltipOpts.mode==='tooltip'){useOvTip=true;errLog('vxe.error.notSupportProp',['show-header-overflow='+showHeaderOverflow,'header-tooltip-config.mode=tooltip','header-tooltip-config.mode=title,ellipsis']);}if(showFooterOverflow==='tooltip'){useOvTip=true;errLog('vxe.error.errProp',['show-footer-overflow='+showFooterOverflow,'show-footer-overflow=false,title,ellipsis']);}if(showFooterOverflow===true&&footerTooltipOpts.mode==='tooltip'){useOvTip=true;errLog('vxe.error.notSupportProp',['show-footer-overflow='+showFooterOverflow,'footer-tooltip-config.mode=tooltip','footer-tooltip-config.mode=title,ellipsis']);}if(useOvTip){errLog('vxe.error.reqComp',['vxe-tooltip']);}}});(0,_vue.provide)('$xeColgroup',null);(0,_vue.provide)('$xeTable',$xeTable);$xeTable.renderVN=renderVN;return $xeTable;},render(){return this.renderVN();}});
|