vxe-table 4.9.34 → 4.9.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/style.css +1 -1
- package/es/table/render/index.js +44 -11
- package/es/table/src/body.js +17 -29
- package/es/table/src/footer.js +20 -21
- package/es/table/src/header.js +15 -8
- package/es/table/src/table.js +26 -24
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +125 -95
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/render/index.js +44 -11
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/body.js +17 -28
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +21 -22
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +15 -7
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/table.js +26 -25
- package/lib/table/src/table.min.js +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/package.json +2 -2
- package/packages/table/render/index.ts +45 -11
- package/packages/table/src/body.ts +20 -28
- package/packages/table/src/footer.ts +21 -20
- package/packages/table/src/header.ts +14 -8
- package/packages/table/src/table.ts +28 -22
- /package/es/{iconfont.1735003904604.ttf → iconfont.1735027807086.ttf} +0 -0
- /package/es/{iconfont.1735003904604.woff → iconfont.1735027807086.woff} +0 -0
- /package/es/{iconfont.1735003904604.woff2 → iconfont.1735027807086.woff2} +0 -0
- /package/lib/{iconfont.1735003904604.ttf → iconfont.1735027807086.ttf} +0 -0
- /package/lib/{iconfont.1735003904604.woff → iconfont.1735027807086.woff} +0 -0
- /package/lib/{iconfont.1735003904604.woff2 → iconfont.1735027807086.woff2} +0 -0
package/lib/ui/index.js
CHANGED
|
@@ -13,7 +13,7 @@ Object.defineProperty(exports, "VxeUI", {
|
|
|
13
13
|
exports.version = exports.validators = exports.use = exports.t = exports.setup = exports.setTheme = exports.setLanguage = exports.setIcon = exports.setI18n = exports.setConfig = exports.saveFile = exports.renderer = exports.readFile = exports.print = exports.modal = exports.menus = exports.log = exports.interceptor = exports.hooks = exports.globalResize = exports.globalEvents = exports.getTheme = exports.getIcon = exports.getI18n = exports.getConfig = exports.formats = exports.default = exports.config = exports.commands = exports.clipboard = exports._t = void 0;
|
|
14
14
|
var _core = require("@vxe-ui/core");
|
|
15
15
|
var _utils = require("./src/utils");
|
|
16
|
-
const version = exports.version = "4.9.
|
|
16
|
+
const version = exports.version = "4.9.35";
|
|
17
17
|
_core.VxeUI.version = version;
|
|
18
18
|
_core.VxeUI.tableVersion = version;
|
|
19
19
|
_core.VxeUI.setConfig({
|
package/lib/ui/index.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.hooks=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");const version=exports.version="4.9.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.VXETable=void 0,Object.defineProperty(exports,"VxeUI",{enumerable:!0,get:function(){return _core.VxeUI}}),exports.version=exports.validators=exports.use=exports.t=exports.setup=exports.setTheme=exports.setLanguage=exports.setIcon=exports.setI18n=exports.setConfig=exports.saveFile=exports.renderer=exports.readFile=exports.print=exports.modal=exports.menus=exports.log=exports.interceptor=exports.hooks=exports.globalResize=exports.globalEvents=exports.getTheme=exports.getIcon=exports.getI18n=exports.getConfig=exports.formats=exports.default=exports.config=exports.commands=exports.clipboard=exports._t=void 0;var _core=require("@vxe-ui/core"),_utils=require("./src/utils");const version=exports.version="4.9.35",iconPrefix=(_core.VxeUI.version=version,_core.VxeUI.tableVersion=version,_core.VxeUI.setConfig({emptyCell:" ",table:{fit:!0,showHeader:!0,animat:!0,delayHover:250,autoResize:!0,padding:!0,minHeight:144,resizeConfig:{},resizableConfig:{dragMode:"auto",showDragTip:!0},radioConfig:{strict:!0},rowDragConfig:{showIcon:!0,animation:!0},columnDragConfig:{showIcon:!0,animation:!0},checkboxConfig:{strict:!0},tooltipConfig:{enterable:!0},validConfig:{showMessage:!0,autoClear:!0,autoPos:!0,message:"inline",msgMode:"single",theme:"beautify"},columnConfig:{maxFixedSize:4},customConfig:{allowVisible:!0,allowResizable:!0,allowFixed:!0,allowSort:!0,showFooter:!0,placement:"top-right",modalOptions:{showMaximize:!0,mask:!0,lockView:!0,resize:!0,escClosable:!0},drawerOptions:{mask:!0,lockView:!0,escClosable:!0,resize:!0}},sortConfig:{showIcon:!0,iconLayout:"vertical"},filterConfig:{showIcon:!0},treeConfig:{rowField:"id",parentField:"parentId",childrenField:"children",hasChildField:"hasChild",mapChildrenField:"_X_ROW_CHILD",indent:20,showIcon:!0},expandConfig:{showIcon:!0},editConfig:{showIcon:!0,showAsterisk:!0,autoFocus:!0},importConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},exportConfig:{_typeMaps:{csv:1,html:1,xml:1,txt:1}},printConfig:{},mouseConfig:{extension:!0},keyboardConfig:{isEsc:!0},areaConfig:{autoClear:!0,selectCellByHeader:!0,selectCellByBody:!0},clipConfig:{isCopy:!0,isCut:!0,isPaste:!0},fnrConfig:{isFind:!0,isReplace:!0},scrollX:{gt:60},scrollY:{gt:100}},grid:{formConfig:{enabled:!0},pagerConfig:{enabled:!0},toolbarConfig:{enabled:!0},proxyConfig:{enabled:!0,autoLoad:!0,showResponseMsg:!0,showActiveMsg:!0,props:{list:null,result:"result",total:"page.total",message:"message"}}},toolbar:{}}),"vxe-table-icon-"),setTheme=(_core.VxeUI.setIcon({TABLE_SORT_ASC:iconPrefix+"caret-up",TABLE_SORT_DESC:iconPrefix+"caret-down",TABLE_FILTER_NONE:iconPrefix+"funnel",TABLE_FILTER_MATCH:iconPrefix+"funnel",TABLE_EDIT:iconPrefix+"edit",TABLE_TITLE_PREFIX:iconPrefix+"question-circle-fill",TABLE_TITLE_SUFFIX:iconPrefix+"question-circle-fill",TABLE_TREE_LOADED:iconPrefix+"spinner roll",TABLE_TREE_OPEN:iconPrefix+"caret-right rotate90",TABLE_TREE_CLOSE:iconPrefix+"caret-right",TABLE_EXPAND_LOADED:iconPrefix+"spinner roll",TABLE_EXPAND_OPEN:iconPrefix+"arrow-right rotate90",TABLE_EXPAND_CLOSE:iconPrefix+"arrow-right",TABLE_CHECKBOX_CHECKED:iconPrefix+"checkbox-checked-fill",TABLE_CHECKBOX_UNCHECKED:iconPrefix+"checkbox-unchecked",TABLE_CHECKBOX_INDETERMINATE:iconPrefix+"checkbox-indeterminate-fill",TABLE_RADIO_CHECKED:iconPrefix+"radio-checked-fill",TABLE_RADIO_UNCHECKED:iconPrefix+"radio-unchecked",TABLE_CUSTOM_SORT:iconPrefix+"drag-handle",TABLE_MENU_OPTIONS:iconPrefix+"arrow-right",TABLE_DRAG_ROW:iconPrefix+"drag-handle",TABLE_DRAG_COLUMN:iconPrefix+"drag-handle",TABLE_DRAG_STATUS_ROW:iconPrefix+"sort",TABLE_DRAG_STATUS_SUB_ROW:iconPrefix+"add-sub",TABLE_DRAG_STATUS_COLUMN:iconPrefix+"swap",TABLE_DRAG_DISABLED:iconPrefix+"no-drop",TOOLBAR_TOOLS_REFRESH:iconPrefix+"repeat",TOOLBAR_TOOLS_REFRESH_LOADING:iconPrefix+"repeat roll",TOOLBAR_TOOLS_IMPORT:iconPrefix+"upload",TOOLBAR_TOOLS_EXPORT:iconPrefix+"download",TOOLBAR_TOOLS_PRINT:iconPrefix+"print",TOOLBAR_TOOLS_FULLSCREEN:iconPrefix+"fullscreen",TOOLBAR_TOOLS_MINIMIZE:iconPrefix+"minimize",TOOLBAR_TOOLS_CUSTOM:iconPrefix+"custom-column",TOOLBAR_TOOLS_FIXED_LEFT:iconPrefix+"fixed-left",TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE:iconPrefix+"fixed-left-fill",TOOLBAR_TOOLS_FIXED_RIGHT:iconPrefix+"fixed-right",TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE:iconPrefix+"fixed-right-fill"}),exports.setTheme=_core.VxeUI.setTheme),getTheme=exports.getTheme=_core.VxeUI.getTheme,setConfig=exports.setConfig=_core.VxeUI.setConfig,getConfig=exports.getConfig=_core.VxeUI.getConfig,setIcon=exports.setIcon=_core.VxeUI.setIcon,getIcon=exports.getIcon=_core.VxeUI.getIcon,setLanguage=exports.setLanguage=_core.VxeUI.setLanguage,setI18n=exports.setI18n=_core.VxeUI.setI18n,getI18n=exports.getI18n=_core.VxeUI.getI18n,globalEvents=exports.globalEvents=_core.VxeUI.globalEvents,globalResize=exports.globalResize=_core.VxeUI.globalResize,renderer=exports.renderer=_core.VxeUI.renderer,validators=exports.validators=_core.VxeUI.validators,menus=exports.menus=_core.VxeUI.menus,formats=exports.formats=_core.VxeUI.formats,commands=exports.commands=_core.VxeUI.commands,interceptor=exports.interceptor=_core.VxeUI.interceptor,clipboard=exports.clipboard=_core.VxeUI.clipboard,log=exports.log=_core.VxeUI.log,hooks=exports.hooks=_core.VxeUI.hooks,use=exports.use=_core.VxeUI.use,setup=e=>_core.VxeUI.setConfig(e),config=(exports.setup=setup,_core.VxeUI.setup=setup,e=>_core.VxeUI.setConfig(e)),t=(exports.config=config,_core.VxeUI.config=config,(e,o)=>_core.VxeUI.getI18n(e,o)),_t=(exports.t=t,_core.VxeUI.t=t,(e,o)=>(0,_utils.getFuncText)(e,o)),VXETable=(exports._t=_t,_core.VxeUI._t=_t,exports.VXETable=_core.VxeUI),saveFile=e=>_core.VxeUI.saveFile(e),readFile=(exports.saveFile=saveFile,e=>_core.VxeUI.readFile(e)),print=(exports.readFile=readFile,e=>_core.VxeUI.print(e)),modal=(exports.print=print,exports.modal={get(e){return _core.VxeUI.modal.get(e)},close(e){return _core.VxeUI.modal.close(e)},open(e){return _core.VxeUI.modal.open(e)},alert(e,o,r){return _core.VxeUI.modal.alert(e,o,r)},confirm(e,o,r){return _core.VxeUI.modal.confirm(e,o,r)},message(e,o){return _core.VxeUI.modal.message(e,o)},notification(e,o,r){return _core.VxeUI.modal.notification(e,o,r)}});var _default=exports.default=_core.VxeUI;
|
package/lib/ui/src/log.js
CHANGED
|
@@ -8,6 +8,6 @@ var _core = require("@vxe-ui/core");
|
|
|
8
8
|
const {
|
|
9
9
|
log
|
|
10
10
|
} = _core.VxeUI;
|
|
11
|
-
const version = `table v${"4.9.
|
|
11
|
+
const version = `table v${"4.9.35"}`;
|
|
12
12
|
const warnLog = exports.warnLog = log.create('warn', version);
|
|
13
13
|
const errLog = exports.errLog = log.create('error', version);
|
package/lib/ui/src/log.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");const log=_core.VxeUI["log"],version="table v4.9.
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.warnLog=exports.errLog=void 0;var _core=require("@vxe-ui/core");const log=_core.VxeUI["log"],version="table v4.9.35",warnLog=exports.warnLog=log.create("warn",version),errLog=exports.errLog=log.create("error",version);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vxe-table",
|
|
3
|
-
"version": "4.9.
|
|
3
|
+
"version": "4.9.35",
|
|
4
4
|
"description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、拖拽排序,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"update": "npm install --legacy-peer-deps",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"style": "lib/style.css",
|
|
29
29
|
"typings": "types/index.d.ts",
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"vxe-pc-ui": "^4.3.
|
|
31
|
+
"vxe-pc-ui": "^4.3.43"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/resize-observer-browser": "^0.1.11",
|
|
@@ -15,6 +15,10 @@ const componentDefaultModelProp = 'modelValue'
|
|
|
15
15
|
|
|
16
16
|
const defaultCompProps = {}
|
|
17
17
|
|
|
18
|
+
function handleDefaultValue (value: any, defaultVal: any, initVal: any) {
|
|
19
|
+
return XEUtils.eqNull(value) ? (XEUtils.eqNull(defaultVal) ? initVal : defaultVal) : value
|
|
20
|
+
}
|
|
21
|
+
|
|
18
22
|
function parseDate (value: any, props: any) {
|
|
19
23
|
return value && props.valueFormat ? XEUtils.toStringDate(value, props.valueFormat) : value
|
|
20
24
|
}
|
|
@@ -612,13 +616,25 @@ renderer.mixin({
|
|
|
612
616
|
if (cellValue) {
|
|
613
617
|
const numberInputConfig = getConfig().numberInput || {}
|
|
614
618
|
if (type === 'float') {
|
|
615
|
-
const
|
|
619
|
+
const autoFill = handleDefaultValue(props.autoFill, numberInputConfig.autoFill, true)
|
|
620
|
+
const digits = handleDefaultValue(props.digits, numberInputConfig.digits, 1)
|
|
616
621
|
cellValue = XEUtils.toFixed(XEUtils.floor(cellValue, digits), digits)
|
|
622
|
+
if (!autoFill) {
|
|
623
|
+
cellValue = XEUtils.toNumber(cellValue)
|
|
624
|
+
}
|
|
617
625
|
} else if (type === 'amount') {
|
|
618
|
-
const
|
|
626
|
+
const autoFill = handleDefaultValue(props.autoFill, numberInputConfig.autoFill, true)
|
|
627
|
+
const digits = handleDefaultValue(props.digits, numberInputConfig.digits, 2)
|
|
628
|
+
const showCurrency = handleDefaultValue(props.showCurrency, numberInputConfig.showCurrency, false)
|
|
619
629
|
cellValue = XEUtils.commafy(XEUtils.toNumber(cellValue), { digits })
|
|
620
|
-
|
|
621
|
-
|
|
630
|
+
if (!autoFill) {
|
|
631
|
+
const [iStr, dStr] = cellValue.split('.')
|
|
632
|
+
if (dStr) {
|
|
633
|
+
const dRest = dStr.replace(/0+$/, '')
|
|
634
|
+
cellValue = dRest ? [iStr, '.', dRest].join('') : iStr
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
if (showCurrency) {
|
|
622
638
|
cellValue = `${props.currencySymbol || numberInputConfig.currencySymbol || getI18n('vxe.numberInput.currencySymbol') || ''}${cellValue}`
|
|
623
639
|
}
|
|
624
640
|
}
|
|
@@ -630,18 +646,36 @@ renderer.mixin({
|
|
|
630
646
|
const { row, column, _columnIndex } = params
|
|
631
647
|
const { type } = props
|
|
632
648
|
// 兼容老模式
|
|
633
|
-
const
|
|
634
|
-
if (XEUtils.isNumber(
|
|
649
|
+
const itemValue = XEUtils.isArray(row) ? row[_columnIndex] : XEUtils.get(row, column.field)
|
|
650
|
+
if (XEUtils.isNumber(itemValue)) {
|
|
635
651
|
const numberInputConfig = getConfig().numberInput || {}
|
|
636
652
|
if (type === 'float') {
|
|
637
|
-
const
|
|
638
|
-
|
|
653
|
+
const autoFill = handleDefaultValue(props.autoFill, numberInputConfig.autoFill, true)
|
|
654
|
+
const digits = handleDefaultValue(props.digits, numberInputConfig.digits, 1)
|
|
655
|
+
let amountLabel = XEUtils.toFixed(XEUtils.floor(itemValue, digits), digits)
|
|
656
|
+
if (!autoFill) {
|
|
657
|
+
amountLabel = XEUtils.toNumber(amountLabel)
|
|
658
|
+
}
|
|
659
|
+
return amountLabel
|
|
639
660
|
} else if (type === 'amount') {
|
|
640
|
-
const
|
|
641
|
-
|
|
661
|
+
const autoFill = handleDefaultValue(props.autoFill, numberInputConfig.autoFill, true)
|
|
662
|
+
const digits = handleDefaultValue(props.digits, numberInputConfig.digits, 2)
|
|
663
|
+
const showCurrency = handleDefaultValue(props.showCurrency, numberInputConfig.showCurrency, false)
|
|
664
|
+
let amountLabel = XEUtils.commafy(XEUtils.toNumber(itemValue), { digits })
|
|
665
|
+
if (!autoFill) {
|
|
666
|
+
const [iStr, dStr] = amountLabel.split('.')
|
|
667
|
+
if (dStr) {
|
|
668
|
+
const dRest = dStr.replace(/0+$/, '')
|
|
669
|
+
amountLabel = dRest ? [iStr, '.', dRest].join('') : iStr
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
if (showCurrency) {
|
|
673
|
+
amountLabel = `${props.currencySymbol || numberInputConfig.currencySymbol || getI18n('vxe.numberInput.currencySymbol') || ''}${amountLabel}`
|
|
674
|
+
}
|
|
675
|
+
return amountLabel
|
|
642
676
|
}
|
|
643
677
|
}
|
|
644
|
-
return getFuncText(
|
|
678
|
+
return getFuncText(itemValue, 1)
|
|
645
679
|
},
|
|
646
680
|
renderTableDefault: defaultEditRender,
|
|
647
681
|
renderTableFilter: defaultFilterRender,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defineComponent, TransitionGroup, h, ref, Ref, PropType, inject, nextTick, ComputedRef, onBeforeUnmount, onMounted, onUnmounted } from 'vue'
|
|
2
2
|
import XEUtils from 'xe-utils'
|
|
3
3
|
import { VxeUI } from '../../ui'
|
|
4
4
|
import { mergeBodyMethod, getRowid, getRefElem } from './util'
|
|
@@ -36,7 +36,7 @@ export default defineComponent({
|
|
|
36
36
|
|
|
37
37
|
const { xID, props: tableProps, context: tableContext, reactData: tableReactData, internalData: tableInternalData } = $xeTable
|
|
38
38
|
const { refTableBody, refTableHeader, refTableFooter, refTableLeftBody, refTableRightBody, refScrollXHandleElem, refScrollYHandleElem } = $xeTable.getRefMaps()
|
|
39
|
-
const { computeEditOpts, computeMouseOpts, computeAreaOpts, computeSYOpts, computeEmptyOpts,
|
|
39
|
+
const { computeEditOpts, computeMouseOpts, computeAreaOpts, computeSYOpts, computeEmptyOpts, computeTooltipOpts, computeRadioOpts, computeExpandOpts, computeTreeOpts, computeCheckboxOpts, computeCellOpts, computeValidOpts, computeRowOpts, computeColumnOpts, computeRowDragOpts, computeColumnDragOpts } = $xeTable.getComputeMaps()
|
|
40
40
|
|
|
41
41
|
const refElem = ref() as Ref<HTMLDivElement>
|
|
42
42
|
const refBodyTable = ref() as Ref<HTMLTableElement>
|
|
@@ -762,40 +762,32 @@ export default defineComponent({
|
|
|
762
762
|
})
|
|
763
763
|
|
|
764
764
|
const renderVN = () => {
|
|
765
|
-
|
|
766
|
-
const {
|
|
767
|
-
const { tableData,
|
|
765
|
+
const { fixedColumn, fixedType, tableColumn } = props
|
|
766
|
+
const { showOverflow: allColumnOverflow, spanMethod, footerSpanMethod, mouseConfig } = tableProps
|
|
767
|
+
const { tableData, scrollXLoad, scrollYLoad, isAllOverflow, isDragRowMove, expandColumn } = tableReactData
|
|
768
768
|
const { visibleColumn } = tableInternalData
|
|
769
769
|
const { slots } = tableContext
|
|
770
770
|
const rowOpts = computeRowOpts.value
|
|
771
771
|
const sYOpts = computeSYOpts.value
|
|
772
772
|
const emptyOpts = computeEmptyOpts.value
|
|
773
|
-
const keyboardOpts = computeKeyboardOpts.value
|
|
774
773
|
const mouseOpts = computeMouseOpts.value
|
|
775
774
|
const rowDragOpts = computeRowDragOpts.value
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
775
|
+
|
|
776
|
+
let renderColumnList = tableColumn
|
|
777
|
+
|
|
779
778
|
if (fixedType) {
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
779
|
+
renderColumnList = visibleColumn
|
|
780
|
+
// 如果是使用优化模式
|
|
781
|
+
if (scrollXLoad || scrollYLoad || (allColumnOverflow && isAllOverflow)) {
|
|
782
|
+
// 如果不支持优化模式
|
|
783
|
+
if (expandColumn || spanMethod || footerSpanMethod) {
|
|
784
|
+
renderColumnList = visibleColumn
|
|
784
785
|
} else {
|
|
785
|
-
|
|
786
|
-
// 检查固定列是否被合并,合并范围是否超出固定列
|
|
787
|
-
// if (mergeList.length && !isMergeLeftFixedExceeded && fixedType === 'left') {
|
|
788
|
-
// tableColumn = fixedColumn
|
|
789
|
-
// } else if (mergeList.length && !isMergeRightFixedExceeded && fixedType === 'right') {
|
|
790
|
-
// tableColumn = fixedColumn
|
|
791
|
-
// } else {
|
|
792
|
-
// tableColumn = visibleColumn
|
|
793
|
-
// }
|
|
786
|
+
renderColumnList = fixedColumn || []
|
|
794
787
|
}
|
|
795
|
-
} else {
|
|
796
|
-
tableColumn = visibleColumn
|
|
797
788
|
}
|
|
798
789
|
}
|
|
790
|
+
|
|
799
791
|
let emptyContent: string | VxeComponentSlotType | VxeComponentSlotType[]
|
|
800
792
|
const emptySlot = slots ? slots.empty : null
|
|
801
793
|
if (emptySlot) {
|
|
@@ -824,7 +816,7 @@ export default defineComponent({
|
|
|
824
816
|
...ons
|
|
825
817
|
}, [
|
|
826
818
|
fixedType
|
|
827
|
-
?
|
|
819
|
+
? renderEmptyElement($xeTable)
|
|
828
820
|
: h('div', {
|
|
829
821
|
ref: refBodyXSpace,
|
|
830
822
|
class: 'vxe-body--x-space'
|
|
@@ -846,7 +838,7 @@ export default defineComponent({
|
|
|
846
838
|
*/
|
|
847
839
|
h('colgroup', {
|
|
848
840
|
ref: refBodyColgroup
|
|
849
|
-
}, (
|
|
841
|
+
}, (renderColumnList as any[]).map((column, $columnIndex) => {
|
|
850
842
|
return h('col', {
|
|
851
843
|
name: column.id,
|
|
852
844
|
key: $columnIndex
|
|
@@ -861,11 +853,11 @@ export default defineComponent({
|
|
|
861
853
|
name: `vxe-body--row-list${isDragRowMove ? '' : '-disabled'}`,
|
|
862
854
|
tag: 'tbody'
|
|
863
855
|
}, {
|
|
864
|
-
default: () => renderRows(fixedType, tableData,
|
|
856
|
+
default: () => renderRows(fixedType, tableData, renderColumnList)
|
|
865
857
|
})
|
|
866
858
|
: h('tbody', {
|
|
867
859
|
ref: refBodyTBody
|
|
868
|
-
}, renderRows(fixedType, tableData,
|
|
860
|
+
}, renderRows(fixedType, tableData, renderColumnList))
|
|
869
861
|
]),
|
|
870
862
|
h('div', {
|
|
871
863
|
class: 'vxe-table--checkbox-range'
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defineComponent, TransitionGroup, h, ref, Ref, PropType, inject, nextTick, onMounted, onUnmounted } from 'vue'
|
|
2
2
|
import XEUtils from 'xe-utils'
|
|
3
3
|
import { VxeUI } from '../../ui'
|
|
4
4
|
import { updateCellTitle, getPropClass, setScrollLeft } from '../../ui/src/dom'
|
|
5
5
|
|
|
6
6
|
import type { VxeTablePrivateMethods, VxeTableConstructor, VxeTableMethods, VxeColumnPropTypes, VxeTableDefines } from '../../../types'
|
|
7
7
|
|
|
8
|
-
const { renderer } = VxeUI
|
|
8
|
+
const { renderer, renderEmptyElement } = VxeUI
|
|
9
9
|
|
|
10
10
|
const renderType = 'footer'
|
|
11
11
|
|
|
@@ -228,8 +228,8 @@ export default defineComponent({
|
|
|
228
228
|
: [])
|
|
229
229
|
}
|
|
230
230
|
|
|
231
|
-
const renderHeads = (
|
|
232
|
-
const { fixedType,
|
|
231
|
+
const renderHeads = (renderColumnList: VxeTableDefines.ColumnInfo[]) => {
|
|
232
|
+
const { fixedType, footerTableData } = props
|
|
233
233
|
const { footerRowClassName, footerRowStyle } = tableProps
|
|
234
234
|
const { isDragColMove } = tableReactData
|
|
235
235
|
const columnOpts = computeColumnOpts.value
|
|
@@ -250,7 +250,7 @@ export default defineComponent({
|
|
|
250
250
|
],
|
|
251
251
|
style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : null
|
|
252
252
|
}, {
|
|
253
|
-
default: () => renderRows(
|
|
253
|
+
default: () => renderRows(renderColumnList, footerTableData, row, $rowIndex, _rowIndex)
|
|
254
254
|
})
|
|
255
255
|
}
|
|
256
256
|
return h('tr', {
|
|
@@ -260,27 +260,28 @@ export default defineComponent({
|
|
|
260
260
|
footerRowClassName ? XEUtils.isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''
|
|
261
261
|
],
|
|
262
262
|
style: footerRowStyle ? (XEUtils.isFunction(footerRowStyle) ? footerRowStyle(rowParams) : footerRowStyle) : null
|
|
263
|
-
}, renderRows(
|
|
263
|
+
}, renderRows(renderColumnList, footerTableData, row, $rowIndex, _rowIndex))
|
|
264
264
|
})
|
|
265
265
|
}
|
|
266
266
|
|
|
267
267
|
const renderVN = () => {
|
|
268
|
-
|
|
269
|
-
const { footerSpanMethod, showFooterOverflow: allColumnFooterOverflow } = tableProps
|
|
268
|
+
const { fixedType, fixedColumn, tableColumn } = props
|
|
269
|
+
const { spanMethod, footerSpanMethod, showFooterOverflow: allColumnFooterOverflow } = tableProps
|
|
270
270
|
const { visibleColumn } = tableInternalData
|
|
271
|
-
const {
|
|
271
|
+
const { scrollbarWidth } = tableReactData
|
|
272
|
+
|
|
273
|
+
let renderColumnList = tableColumn
|
|
272
274
|
|
|
273
|
-
// 如果是使用优化模式
|
|
274
275
|
if (fixedType) {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
276
|
+
renderColumnList = visibleColumn
|
|
277
|
+
// 如果是使用优化模式
|
|
278
|
+
if (allColumnFooterOverflow) {
|
|
279
|
+
// 如果不支持优化模式
|
|
280
|
+
if (spanMethod || footerSpanMethod) {
|
|
281
|
+
renderColumnList = visibleColumn
|
|
279
282
|
} else {
|
|
280
|
-
|
|
283
|
+
renderColumnList = fixedColumn || []
|
|
281
284
|
}
|
|
282
|
-
} else {
|
|
283
|
-
tableColumn = visibleColumn
|
|
284
285
|
}
|
|
285
286
|
}
|
|
286
287
|
|
|
@@ -296,7 +297,7 @@ export default defineComponent({
|
|
|
296
297
|
...ons
|
|
297
298
|
}, [
|
|
298
299
|
fixedType
|
|
299
|
-
?
|
|
300
|
+
? renderEmptyElement($xeTable)
|
|
300
301
|
: h('div', {
|
|
301
302
|
ref: refFooterXSpace,
|
|
302
303
|
class: 'vxe-body--x-space'
|
|
@@ -314,7 +315,7 @@ export default defineComponent({
|
|
|
314
315
|
*/
|
|
315
316
|
h('colgroup', {
|
|
316
317
|
ref: refFooterColgroup
|
|
317
|
-
},
|
|
318
|
+
}, renderColumnList.map((column, $columnIndex) => {
|
|
318
319
|
return h('col', {
|
|
319
320
|
name: column.id,
|
|
320
321
|
key: $columnIndex
|
|
@@ -331,7 +332,7 @@ export default defineComponent({
|
|
|
331
332
|
*/
|
|
332
333
|
h('tfoot', {
|
|
333
334
|
ref: refFooterTFoot
|
|
334
|
-
}, renderHeads(
|
|
335
|
+
}, renderHeads(renderColumnList))
|
|
335
336
|
])
|
|
336
337
|
])
|
|
337
338
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { defineComponent, TransitionGroup, h, ref, Ref, PropType, inject, nextTick, watch, onMounted, onUnmounted } from 'vue'
|
|
2
2
|
import XEUtils from 'xe-utils'
|
|
3
3
|
import { VxeUI } from '../../ui'
|
|
4
4
|
import { convertHeaderColumnToRows, getColReMinWidth } from './util'
|
|
@@ -6,7 +6,7 @@ import { hasClass, getOffsetPos, addClass, removeClass } from '../../ui/src/dom'
|
|
|
6
6
|
|
|
7
7
|
import type { VxeTablePrivateMethods, VxeTableConstructor, VxeTableMethods, VxeTableDefines, VxeColumnPropTypes } from '../../../types'
|
|
8
8
|
|
|
9
|
-
const { renderer } = VxeUI
|
|
9
|
+
const { renderer, renderEmptyElement } = VxeUI
|
|
10
10
|
|
|
11
11
|
const renderType = 'header'
|
|
12
12
|
|
|
@@ -311,18 +311,24 @@ export default defineComponent({
|
|
|
311
311
|
|
|
312
312
|
const renderVN = () => {
|
|
313
313
|
const { fixedType, fixedColumn, tableColumn } = props
|
|
314
|
-
const { showHeaderOverflow: allColumnHeaderOverflow } = tableProps
|
|
315
|
-
const { isGroup,
|
|
314
|
+
const { showHeaderOverflow: allColumnHeaderOverflow, spanMethod, footerSpanMethod } = tableProps
|
|
315
|
+
const { isGroup, scrollbarWidth } = tableReactData
|
|
316
316
|
const { visibleColumn } = tableInternalData
|
|
317
317
|
let headerGroups: VxeTableDefines.ColumnInfo[][] = headerColumn.value
|
|
318
318
|
let renderColumnList = tableColumn as VxeTableDefines.ColumnInfo[]
|
|
319
319
|
if (isGroup) {
|
|
320
320
|
renderColumnList = visibleColumn
|
|
321
321
|
} else {
|
|
322
|
-
// 如果是使用优化模式
|
|
323
322
|
if (fixedType) {
|
|
324
|
-
|
|
325
|
-
|
|
323
|
+
renderColumnList = visibleColumn
|
|
324
|
+
// 如果是使用优化模式
|
|
325
|
+
if (allColumnHeaderOverflow) {
|
|
326
|
+
// 如果不支持优化模式
|
|
327
|
+
if (spanMethod || footerSpanMethod) {
|
|
328
|
+
renderColumnList = visibleColumn
|
|
329
|
+
} else {
|
|
330
|
+
renderColumnList = fixedColumn || []
|
|
331
|
+
}
|
|
326
332
|
}
|
|
327
333
|
}
|
|
328
334
|
headerGroups = [renderColumnList]
|
|
@@ -333,7 +339,7 @@ export default defineComponent({
|
|
|
333
339
|
xid: xID
|
|
334
340
|
}, [
|
|
335
341
|
fixedType
|
|
336
|
-
?
|
|
342
|
+
? renderEmptyElement($xeTable)
|
|
337
343
|
: h('div', {
|
|
338
344
|
ref: refHeaderXSpace,
|
|
339
345
|
class: 'vxe-body--x-space'
|
|
@@ -1730,14 +1730,13 @@ export default defineComponent({
|
|
|
1730
1730
|
}
|
|
1731
1731
|
|
|
1732
1732
|
const updateStyle = () => {
|
|
1733
|
-
const { border, showFooter, showOverflow: allColumnOverflow, showHeaderOverflow: allColumnHeaderOverflow, showFooterOverflow: allColumnFooterOverflow, mouseConfig, spanMethod, footerSpanMethod
|
|
1734
|
-
const { isGroup, currentRow, tableColumn, scrollXLoad, scrollYLoad, overflowX, scrollbarWidth, scrollbarHeight, columnStore, editStore,
|
|
1733
|
+
const { border, showFooter, showOverflow: allColumnOverflow, showHeaderOverflow: allColumnHeaderOverflow, showFooterOverflow: allColumnFooterOverflow, mouseConfig, spanMethod, footerSpanMethod } = props
|
|
1734
|
+
const { isGroup, currentRow, tableColumn, scrollXLoad, scrollYLoad, overflowX, scrollbarWidth, scrollbarHeight, columnStore, editStore, isAllOverflow, expandColumn } = reactData
|
|
1735
1735
|
let { visibleColumn, fullColumnIdData, tableHeight, tableWidth, headerHeight, footerHeight, elemStore, customHeight, customMinHeight, customMaxHeight } = internalData
|
|
1736
1736
|
const containerList = ['main', 'left', 'right']
|
|
1737
1737
|
const emptyPlaceholderElem = refEmptyPlaceholder.value
|
|
1738
1738
|
const cellOffsetWidth = computeCellOffsetWidth.value
|
|
1739
1739
|
const mouseOpts = computeMouseOpts.value
|
|
1740
|
-
const keyboardOpts = computeKeyboardOpts.value
|
|
1741
1740
|
const bodyWrapperElem = getRefElem(elemStore['main-body-wrapper'])
|
|
1742
1741
|
if (emptyPlaceholderElem) {
|
|
1743
1742
|
emptyPlaceholderElem.style.top = `${headerHeight}px`
|
|
@@ -1797,10 +1796,16 @@ export default defineComponent({
|
|
|
1797
1796
|
if (isGroup) {
|
|
1798
1797
|
renderColumnList = visibleColumn
|
|
1799
1798
|
} else {
|
|
1800
|
-
// 如果是使用优化模式
|
|
1801
1799
|
if (fixedType) {
|
|
1802
|
-
|
|
1803
|
-
|
|
1800
|
+
renderColumnList = visibleColumn
|
|
1801
|
+
// 如果是使用优化模式
|
|
1802
|
+
if (allColumnHeaderOverflow) {
|
|
1803
|
+
// 如果不支持优化模式
|
|
1804
|
+
if (spanMethod || footerSpanMethod) {
|
|
1805
|
+
renderColumnList = visibleColumn
|
|
1806
|
+
} else {
|
|
1807
|
+
renderColumnList = fixedColumn || []
|
|
1808
|
+
}
|
|
1804
1809
|
}
|
|
1805
1810
|
}
|
|
1806
1811
|
}
|
|
@@ -1884,19 +1889,19 @@ export default defineComponent({
|
|
|
1884
1889
|
let tWidth = tableWidth
|
|
1885
1890
|
let renderColumnList = tableColumn
|
|
1886
1891
|
|
|
1887
|
-
// 如果是使用优化模式
|
|
1888
1892
|
if (fixedType) {
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1893
|
+
renderColumnList = visibleColumn
|
|
1894
|
+
// 如果是使用优化模式
|
|
1895
|
+
if (scrollXLoad || scrollYLoad || (allColumnOverflow && isAllOverflow)) {
|
|
1896
|
+
// 如果不支持优化模式
|
|
1897
|
+
if (expandColumn || spanMethod || footerSpanMethod) {
|
|
1894
1898
|
renderColumnList = visibleColumn
|
|
1899
|
+
} else {
|
|
1900
|
+
renderColumnList = fixedColumn || []
|
|
1895
1901
|
}
|
|
1896
|
-
} else {
|
|
1897
|
-
renderColumnList = visibleColumn
|
|
1898
1902
|
}
|
|
1899
1903
|
}
|
|
1904
|
+
|
|
1900
1905
|
tWidth = renderColumnList.reduce((previous, column) => previous + column.renderWidth, 0)
|
|
1901
1906
|
|
|
1902
1907
|
if (tableElem) {
|
|
@@ -1911,19 +1916,20 @@ export default defineComponent({
|
|
|
1911
1916
|
let tWidth = tableWidth
|
|
1912
1917
|
|
|
1913
1918
|
let renderColumnList = tableColumn
|
|
1914
|
-
|
|
1919
|
+
|
|
1915
1920
|
if (fixedType) {
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
+
renderColumnList = visibleColumn
|
|
1922
|
+
// 如果是使用优化模式
|
|
1923
|
+
if (allColumnFooterOverflow) {
|
|
1924
|
+
// 如果不支持优化模式
|
|
1925
|
+
if (spanMethod || footerSpanMethod) {
|
|
1921
1926
|
renderColumnList = visibleColumn
|
|
1927
|
+
} else {
|
|
1928
|
+
renderColumnList = fixedColumn || []
|
|
1922
1929
|
}
|
|
1923
|
-
} else {
|
|
1924
|
-
renderColumnList = visibleColumn
|
|
1925
1930
|
}
|
|
1926
1931
|
}
|
|
1932
|
+
|
|
1927
1933
|
tWidth = renderColumnList.reduce((previous, column) => previous + column.renderWidth, 0)
|
|
1928
1934
|
|
|
1929
1935
|
if (isNodeElement(wrapperElem)) {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|