vxe-table 3.18.1 → 3.18.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/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/column.js +2 -0
- package/es/table/src/columnInfo.js +1 -0
- package/es/table/src/footer.js +7 -5
- package/es/table/src/header.js +67 -28
- package/es/table/src/methods.js +233 -39
- package/es/table/src/props.js +23 -6
- package/es/table/src/table.js +43 -19
- package/es/table/src/util.js +70 -2
- package/es/table/style.css +11 -17
- 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 +11 -17
- 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 +482 -94
- 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/column.js +2 -0
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/columnInfo.js +1 -0
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/footer.js +7 -5
- package/lib/table/src/header.js +82 -25
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +259 -42
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/props.js +11 -3
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +46 -16
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +74 -2
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +11 -17
- 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 +11 -17
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/table/src/column.ts +4 -2
- package/packages/table/src/columnInfo.ts +1 -0
- package/packages/table/src/footer.ts +11 -9
- package/packages/table/src/header.ts +76 -34
- package/packages/table/src/methods.ts +245 -40
- package/packages/table/src/props.ts +29 -12
- package/packages/table/src/table.ts +53 -16
- package/packages/table/src/util.ts +76 -2
- package/styles/components/table.scss +33 -55
- /package/es/{iconfont.1756272539382.ttf → iconfont.1756452257212.ttf} +0 -0
- /package/es/{iconfont.1756272539382.woff → iconfont.1756452257212.woff} +0 -0
- /package/es/{iconfont.1756272539382.woff2 → iconfont.1756452257212.woff2} +0 -0
- /package/lib/{iconfont.1756272539382.ttf → iconfont.1756452257212.ttf} +0 -0
- /package/lib/{iconfont.1756272539382.woff → iconfont.1756452257212.woff} +0 -0
- /package/lib/{iconfont.1756272539382.woff2 → iconfont.1756452257212.woff2} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.columnWatch=exports.columnProps=void 0;var _cell=_interopRequireDefault(require("./cell")),_comp=require("../../ui/src/comp"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let columnProps=exports.columnProps={colId:[String,Number],type:String,field:String,title:String,width:[Number,String],minWidth:[Number,String],maxWidth:[Number,String],resizable:{type:Boolean,default:null},fixed:String,align:String,headerAlign:String,footerAlign:String,showOverflow:{type:[Boolean,String],default:null},showHeaderOverflow:{type:[Boolean,String],default:null},showFooterOverflow:{type:[Boolean,String],default:null},className:[String,Function],headerClassName:[String,Function],footerClassName:[String,Function],formatter:[Function,Array,String],footerFormatter:[Function,Array,String],padding:{type:Boolean,default:null},verticalAlign:{type:String,default:null},sortable:Boolean,remoteSort:{type:Boolean,default:null},sortBy:[String,Function],sortType:String,sortMethod:Function,filters:{type:Array,default:null},filterMultiple:{type:Boolean,default:!0},filterMethod:Function,filterResetMethod:Function,filterRecoverMethod:Function,filterRender:Object,rowGroupNode:Boolean,treeNode:Boolean,dragSort:Boolean,rowResize:Boolean,visible:{type:Boolean,default:null},headerExportMethod:Function,exportMethod:Function,footerExportMethod:Function,titleHelp:Object,titlePrefix:Object,titleSuffix:Object,cellType:String,cellRender:Object,editRender:Object,contentRender:Object,aggFunc:[String,Boolean],params:Object},columnWatch=exports.columnWatch={};Object.keys(columnProps).forEach(o=>{columnWatch[o]=function(e){var t=this.$xeTable;this.columnConfig.update(o,e),t&&("filters"===o?(t.setFilter(this.columnConfig,e),t.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(o)&&t.handleRefreshColumnQueue())}});var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeColumn",props:columnProps,provide(){return{$xeColumn:this,$xeGrid:null,$xeGantt:null}},inject:{$xeTable:{default:null},$xeColumn:{default:null}},watch:columnWatch,created(){var e=this.$xeTable;this.columnConfig=this.createColumn(e,this)},mounted(){this.columnConfig.slots=this.$scopedSlots,(0,_util.assembleColumn)(this)},destroyed(){(0,_util.destroyColumn)(this)},render(e){return e("div",this.$slots.default)},methods:_cell.default});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=exports.columnWatch=exports.columnProps=void 0;var _cell=_interopRequireDefault(require("./cell")),_comp=require("../../ui/src/comp"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let columnProps=exports.columnProps={colId:[String,Number],type:String,field:String,title:String,width:[Number,String],minWidth:[Number,String],maxWidth:[Number,String],resizable:{type:Boolean,default:null},fixed:String,align:String,headerAlign:String,footerAlign:String,showOverflow:{type:[Boolean,String],default:null},showHeaderOverflow:{type:[Boolean,String],default:null},showFooterOverflow:{type:[Boolean,String],default:null},className:[String,Function],headerClassName:[String,Function],footerClassName:[String,Function],formatter:[Function,Array,String],headerFormatter:[Function,Array,String],footerFormatter:[Function,Array,String],padding:{type:Boolean,default:null},verticalAlign:{type:String,default:null},sortable:Boolean,remoteSort:{type:Boolean,default:null},sortBy:[String,Function],sortType:String,sortMethod:Function,filters:{type:Array,default:null},filterMultiple:{type:Boolean,default:!0},filterMethod:Function,filterResetMethod:Function,filterRecoverMethod:Function,filterRender:Object,rowGroupNode:Boolean,treeNode:Boolean,dragSort:Boolean,rowResize:Boolean,visible:{type:Boolean,default:null},headerExportMethod:Function,exportMethod:Function,footerExportMethod:Function,titleHelp:Object,titlePrefix:Object,titleSuffix:Object,cellType:String,cellRender:Object,editRender:Object,contentRender:Object,aggFunc:[String,Boolean],params:Object},columnWatch=exports.columnWatch={};Object.keys(columnProps).forEach(o=>{columnWatch[o]=function(e){var t=this.$xeTable;this.columnConfig.update(o,e),t&&("filters"===o?(t.setFilter(this.columnConfig,e),t.handleUpdateDataQueue()):["visible","fixed","width","minWidth","maxWidth"].includes(o)&&t.handleRefreshColumnQueue())}});var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeColumn",props:columnProps,provide(){return{$xeColumn:this,$xeGrid:null,$xeGantt:null}},inject:{$xeTable:{default:null},$xeColumn:{default:null}},watch:columnWatch,created(){var e=this.$xeTable;this.columnConfig=this.createColumn(e,this)},mounted(){this.columnConfig.slots=this.$scopedSlots,(0,_util.assembleColumn)(this)},destroyed(){(0,_util.destroyColumn)(this)},render(e){return e("div",this.$slots.default)},methods:_cell.default});
|
|
@@ -104,6 +104,7 @@ class ColumnInfo {
|
|
|
104
104
|
headerClassName: _vm.headerClassName,
|
|
105
105
|
footerClassName: _vm.footerClassName,
|
|
106
106
|
formatter,
|
|
107
|
+
headerFormatter: _vm.headerFormatter,
|
|
107
108
|
footerFormatter: _vm.footerFormatter,
|
|
108
109
|
padding: _vm.padding,
|
|
109
110
|
verticalAlign: _vm.verticalAlign,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.ColumnInfo=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,formats}=_ui.VxeUI;class ColumnInfo{constructor(e,r,{renderHeader:t,renderCell:o,renderFooter:l,renderData:i}={}){var d=e,n=e.$xeGrid,a=e.$xeGantt,s=n||a,{field:u,editRender:f}=r,g=n?n.computeProxyOpts:null,c=r.formatter,
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.ColumnInfo=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_utils=require("../../ui/src/utils"),_log=require("../../ui/src/log");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,formats}=_ui.VxeUI;class ColumnInfo{constructor(e,r,{renderHeader:t,renderCell:o,renderFooter:l,renderData:i}={}){var d=e,n=e.$xeGrid,a=e.$xeGantt,s=n||a,{field:u,editRender:f}=r,g=n?n.computeProxyOpts:null,c=r.formatter,h=!_xeUtils.default.isBoolean(r.visible)||r.visible,p=["seq","checkbox","radio","expand","html"];r.type&&-1===p.indexOf(r.type)&&(0,_log.warnLog)("vxe.error.errProp",["type="+r.type,p.join(", ")]),(_xeUtils.default.isBoolean(r.cellRender)||r.cellRender&&!_xeUtils.default.isObject(r.cellRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.cell-render="+r.cellRender,"column.cell-render={}"]),(_xeUtils.default.isBoolean(r.editRender)||r.editRender&&!_xeUtils.default.isObject(r.editRender))&&(0,_log.warnLog)("vxe.error.errProp",["column.edit-render="+r.editRender,"column.edit-render={}"]),"expand"===r.type&&(p=d.treeConfig,p)&&(e.treeOpts.showLine||e.treeOpts.line)&&(0,_log.errLog)("vxe.error.errConflicts",["tree-config.line","column.type=expand"]),r.remoteSort&&(0,_log.warnLog)("vxe.error.delProp",["column.remote-sort","sort-config.remote"]),r.sortMethod&&(0,_log.warnLog)("vxe.error.delProp",["column.sort-method","sort-config.sortMethod"]),c&&(_xeUtils.default.isString(c)?(d=formats.get(c)||_xeUtils.default[c])&&_xeUtils.default.isFunction(d.tableCellFormatMethod||d.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[c]):!_xeUtils.default.isArray(c)||(p=formats.get(c[0])||_xeUtils.default[c[0]])&&_xeUtils.default.isFunction(p.tableCellFormatMethod||p.cellFormatMethod)||(0,_log.errLog)("vxe.error.notFormats",[c[0]])),r.aggFunc&&!e.handlePivotTableAggregateData&&!0!==r.aggFunc&&(0,_log.errLog)("vxe.error.errProp",["column.agg-func="+r.aggFunc,"column.agg-func=true"]),u&&f&&(f.startField&&0<=(""+f.startField).indexOf(u)&&(0,_log.errLog)("vxe.error.modelConflicts",["field="+u,"edit-render.startField="+f.startField]),f.endField)&&0<=(""+f.endField).indexOf(u)&&(0,_log.errLog)("vxe.error.modelConflicts",["field="+u,"edit-render.endField="+f.endField]),Object.assign(this,{type:r.type,property:r.field,field:u,title:r.title,width:r.width,minWidth:r.minWidth,maxWidth:r.maxWidth,resizable:r.resizable,fixed:r.fixed,align:r.align,headerAlign:r.headerAlign,footerAlign:r.footerAlign,showOverflow:r.showOverflow,showHeaderOverflow:r.showHeaderOverflow,showFooterOverflow:r.showFooterOverflow,className:r.className,headerClassName:r.headerClassName,footerClassName:r.footerClassName,formatter:c,headerFormatter:r.headerFormatter,footerFormatter:r.footerFormatter,padding:r.padding,verticalAlign:r.verticalAlign,sortable:r.sortable,sortBy:r.sortBy,sortType:r.sortType,sortMethod:r.sortMethod,remoteSort:r.remoteSort,filters:(0,_util.toFilters)(r.filters),filterMultiple:!_xeUtils.default.isBoolean(r.filterMultiple)||r.filterMultiple,filterMethod:r.filterMethod,filterResetMethod:r.filterResetMethod,filterRecoverMethod:r.filterRecoverMethod,filterRender:r.filterRender,rowGroupNode:r.rowGroupNode,treeNode:r.treeNode,dragSort:r.dragSort,rowResize:r.rowResize,cellType:r.cellType,cellRender:r.cellRender,editRender:f,contentRender:r.contentRender,headerExportMethod:r.headerExportMethod,exportMethod:r.exportMethod,footerExportMethod:r.footerExportMethod,titleHelp:r.titleHelp,titlePrefix:r.titlePrefix,titleSuffix:r.titleSuffix,aggFunc:r.aggFunc,params:r.params,id:r.colId||_xeUtils.default.uniqueId("col_"),parentId:null,visible:h,defaultParentId:null,halfVisible:!1,defaultVisible:h,defaultFixed:r.fixed,defaultAggGroup:r.aggGroup,defaultAggFunc:r.aggFunc,checked:!1,halfChecked:!1,disabled:!1,level:1,rowSpan:1,colSpan:1,order:null,sortTime:0,sortNumber:0,renderSortNumber:0,renderAggFn:"",renderFixed:"",renderVisible:!1,renderWidth:0,renderHeight:0,renderResizeWidth:0,renderAutoWidth:0,resizeWidth:0,renderLeft:0,renderArgs:[],model:{},renderHeader:t||r.renderHeader,renderCell:o||r.renderCell,renderFooter:l||r.renderFooter,renderData:i,slots:r.slots}),s&&g&&g.beforeColumn&&g.beforeColumn({$table:e,$grid:n,$gantt:a,column:this})}getTitle(){return(0,_utils.getFuncText)(this.title||("seq"===this.type?getI18n("vxe.table.seqTitle"):""))}getKey(){var e=this.type;return this.field||(e?"type="+e:null)}update(e,r){"filters"!==e&&("field"===e&&(this.property=r),this[e]=r)}}exports.ColumnInfo=ColumnInfo;
|
package/lib/table/src/footer.js
CHANGED
|
@@ -298,8 +298,9 @@ var _default = exports.default = {
|
|
|
298
298
|
elemStore[`${prefix}xSpace`] = _vm.$refs.refFooterXSpace;
|
|
299
299
|
},
|
|
300
300
|
destroyed() {
|
|
301
|
-
const
|
|
302
|
-
const
|
|
301
|
+
const _vm = this;
|
|
302
|
+
const props = _vm;
|
|
303
|
+
const $xeTable = _vm.$parent;
|
|
303
304
|
const tableInternalData = $xeTable;
|
|
304
305
|
const {
|
|
305
306
|
fixedType
|
|
@@ -316,8 +317,9 @@ var _default = exports.default = {
|
|
|
316
317
|
elemStore[`${prefix}xSpace`] = null;
|
|
317
318
|
},
|
|
318
319
|
render(h) {
|
|
319
|
-
const
|
|
320
|
-
const
|
|
320
|
+
const _vm = this;
|
|
321
|
+
const props = _vm;
|
|
322
|
+
const $xeTable = _vm.$parent;
|
|
321
323
|
const tableProps = $xeTable;
|
|
322
324
|
const tableReactData = $xeTable;
|
|
323
325
|
const tableInternalData = $xeTable;
|
|
@@ -436,6 +438,6 @@ var _default = exports.default = {
|
|
|
436
438
|
*/
|
|
437
439
|
h('tfoot', {
|
|
438
440
|
ref: 'refFooterTFoot'
|
|
439
|
-
}, renderHeads(h,
|
|
441
|
+
}, renderHeads(h, _vm, isOptimizeMode, renderColumnList))])])]);
|
|
440
442
|
}
|
|
441
443
|
};
|
package/lib/table/src/header.js
CHANGED
|
@@ -14,7 +14,7 @@ const {
|
|
|
14
14
|
renderEmptyElement
|
|
15
15
|
} = _ui.VxeUI;
|
|
16
16
|
const cellType = 'header';
|
|
17
|
-
|
|
17
|
+
function renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIndex, cols) {
|
|
18
18
|
const props = _vm;
|
|
19
19
|
const $xeTable = _vm.$parent;
|
|
20
20
|
const $xeGrid = $xeTable.$xeGrid;
|
|
@@ -28,6 +28,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
28
28
|
const {
|
|
29
29
|
resizable: allResizable,
|
|
30
30
|
columnKey,
|
|
31
|
+
showCustomHeader,
|
|
31
32
|
headerCellClassName,
|
|
32
33
|
headerCellStyle,
|
|
33
34
|
showHeaderOverflow: allColumnHeaderOverflow,
|
|
@@ -41,11 +42,14 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
41
42
|
scrollXLoad,
|
|
42
43
|
scrollYLoad,
|
|
43
44
|
overflowX,
|
|
45
|
+
mergeHeadFlag,
|
|
44
46
|
tableColumn
|
|
45
47
|
} = tableReactData;
|
|
46
48
|
const {
|
|
47
49
|
fullColumnIdData,
|
|
48
|
-
scrollXStore
|
|
50
|
+
scrollXStore,
|
|
51
|
+
mergeHeaderList,
|
|
52
|
+
mergeHeaderCellMaps
|
|
49
53
|
} = tableInternalData;
|
|
50
54
|
const virtualXOpts = $xeTable.computeVirtualXOpts;
|
|
51
55
|
const columnOpts = $xeTable.computeColumnOpts;
|
|
@@ -59,6 +63,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
59
63
|
isCrossDrag,
|
|
60
64
|
isPeerDrag
|
|
61
65
|
} = columnDragOpts;
|
|
66
|
+
const isLastRow = $rowIndex === headerGroups.length - 1;
|
|
62
67
|
return cols.map((column, $columnIndex) => {
|
|
63
68
|
const {
|
|
64
69
|
type,
|
|
@@ -91,7 +96,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
91
96
|
hasFilter = filters.some(item => item.checked);
|
|
92
97
|
}
|
|
93
98
|
const columnIndex = colRest.index;
|
|
94
|
-
const _columnIndex = colRest._index;
|
|
99
|
+
const _columnIndex = showCustomHeader ? $columnIndex : colRest._index;
|
|
95
100
|
const cellParams = {
|
|
96
101
|
$table: $xeTable,
|
|
97
102
|
$grid: $xeGrid,
|
|
@@ -108,10 +113,34 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
108
113
|
hasFilter
|
|
109
114
|
};
|
|
110
115
|
const thAttrs = {
|
|
111
|
-
colid
|
|
112
|
-
colspan: column.colSpan > 1 ? column.colSpan : null,
|
|
113
|
-
rowspan: column.rowSpan > 1 ? column.rowSpan : null
|
|
116
|
+
colid
|
|
114
117
|
};
|
|
118
|
+
let isMergeCell = false;
|
|
119
|
+
// 合并行或列
|
|
120
|
+
if (!showCustomHeader) {
|
|
121
|
+
thAttrs.colspan = column.colSpan > 1 ? column.colSpan : null;
|
|
122
|
+
thAttrs.rowspan = column.rowSpan > 1 ? column.rowSpan : null;
|
|
123
|
+
}
|
|
124
|
+
if (mergeHeadFlag && mergeHeaderList.length && (showCustomHeader || isLastRow)) {
|
|
125
|
+
const spanRest = mergeHeaderCellMaps[`${$rowIndex}:${showCustomHeader ? $columnIndex : _columnIndex}`];
|
|
126
|
+
if (spanRest) {
|
|
127
|
+
const {
|
|
128
|
+
rowspan,
|
|
129
|
+
colspan
|
|
130
|
+
} = spanRest;
|
|
131
|
+
if (!rowspan || !colspan) {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
if (rowspan > 1) {
|
|
135
|
+
isMergeCell = true;
|
|
136
|
+
thAttrs.rowspan = rowspan;
|
|
137
|
+
}
|
|
138
|
+
if (colspan > 1) {
|
|
139
|
+
isMergeCell = true;
|
|
140
|
+
thAttrs.colspan = colspan;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
115
144
|
const thOns = {
|
|
116
145
|
click: evnt => $xeTable.triggerHeaderCellClickEvent(evnt, cellParams),
|
|
117
146
|
dblclick: evnt => $xeTable.triggerHeaderCellDblclickEvent(evnt, cellParams)
|
|
@@ -138,7 +167,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
138
167
|
const showResizable = _xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable;
|
|
139
168
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
|
|
140
169
|
let isVNPreEmptyStatus = false;
|
|
141
|
-
if (isOptimizeMode && overflowX && !isGroup) {
|
|
170
|
+
if (isOptimizeMode && overflowX && !isGroup && !isMergeCell) {
|
|
142
171
|
if (!dragCol || dragCol.id !== colid) {
|
|
143
172
|
if (scrollXLoad && tableColumn.length > 10 && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
|
|
144
173
|
isVNPreEmptyStatus = true;
|
|
@@ -152,7 +181,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
152
181
|
tcStyle.minHeight = `${currCellHeight}px`;
|
|
153
182
|
}
|
|
154
183
|
return h('th', {
|
|
155
|
-
class: ['vxe-table--column vxe-header--column', colid, {
|
|
184
|
+
class: ['vxe-table--column vxe-header--column', colid, fixedHiddenColumn ? 'fixed--hidden' : 'fixed--visible', {
|
|
156
185
|
[`col--${headAlign}`]: headAlign,
|
|
157
186
|
[`col--${type}`]: type,
|
|
158
187
|
'col--last': isLastColumn,
|
|
@@ -160,7 +189,6 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
160
189
|
'col--group': isColGroup,
|
|
161
190
|
'col--ellipsis': hasEllipsis,
|
|
162
191
|
'fixed--width': !isAutoCellWidth,
|
|
163
|
-
'fixed--hidden': fixedHiddenColumn,
|
|
164
192
|
'is--padding': isPadding,
|
|
165
193
|
'is--sortable': column.sortable,
|
|
166
194
|
'col--filter': !!filters,
|
|
@@ -172,7 +200,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
172
200
|
attrs: thAttrs,
|
|
173
201
|
style: headerCellStyle ? _xeUtils.default.isFunction(headerCellStyle) ? headerCellStyle(cellParams) : headerCellStyle : undefined,
|
|
174
202
|
on: thOns,
|
|
175
|
-
key: columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
|
|
203
|
+
key: showCustomHeader ? `${colid}${$columnIndex}` : columnKey || scrollXLoad || scrollYLoad || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
|
|
176
204
|
}, [h('div', {
|
|
177
205
|
class: ['vxe-cell', {
|
|
178
206
|
'c--title': showTitle,
|
|
@@ -187,9 +215,9 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
187
215
|
class: 'vxe-cell--wrapper vxe-header-cell--wrapper'
|
|
188
216
|
}, column.renderHeader(h, cellParams))]),
|
|
189
217
|
/**
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
!fixedHiddenColumn && showResizable ? h('div', {
|
|
218
|
+
* 列宽拖动
|
|
219
|
+
*/
|
|
220
|
+
!fixedHiddenColumn && showResizable && (!showCustomHeader || isLastRow) ? h('div', {
|
|
193
221
|
class: 'vxe-cell--col-resizable',
|
|
194
222
|
on: {
|
|
195
223
|
mousedown: evnt => $xeTable.handleColResizeMousedownEvent(evnt, fixedType, cellParams),
|
|
@@ -197,7 +225,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
197
225
|
}
|
|
198
226
|
}) : renderEmptyElement($xeTable)]);
|
|
199
227
|
});
|
|
200
|
-
}
|
|
228
|
+
}
|
|
201
229
|
function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
|
|
202
230
|
const props = _vm;
|
|
203
231
|
const $xeTable = _vm.$parent;
|
|
@@ -220,7 +248,7 @@ function renderHeads(h, _vm, isGroup, isOptimizeMode, headerGroups) {
|
|
|
220
248
|
key: $rowIndex,
|
|
221
249
|
class: ['vxe-header--row', headerRowClassName ? _xeUtils.default.isFunction(headerRowClassName) ? headerRowClassName(params) : headerRowClassName : ''],
|
|
222
250
|
style: headerRowStyle ? _xeUtils.default.isFunction(headerRowStyle) ? headerRowStyle(params) : headerRowStyle : undefined
|
|
223
|
-
}, renderRows(h, _vm, isGroup, isOptimizeMode,
|
|
251
|
+
}, renderRows(h, _vm, isGroup, isOptimizeMode, headerGroups, $rowIndex, cols));
|
|
224
252
|
});
|
|
225
253
|
}
|
|
226
254
|
var _default = exports.default = {
|
|
@@ -242,11 +270,13 @@ var _default = exports.default = {
|
|
|
242
270
|
},
|
|
243
271
|
watch: {
|
|
244
272
|
tableColumn() {
|
|
245
|
-
this
|
|
273
|
+
const _vm = this;
|
|
274
|
+
_vm.uploadColumn();
|
|
246
275
|
}
|
|
247
276
|
},
|
|
248
277
|
created() {
|
|
249
|
-
this
|
|
278
|
+
const _vm = this;
|
|
279
|
+
_vm.uploadColumn();
|
|
250
280
|
},
|
|
251
281
|
mounted() {
|
|
252
282
|
const _vm = this;
|
|
@@ -269,8 +299,9 @@ var _default = exports.default = {
|
|
|
269
299
|
elemStore[`${prefix}repair`] = _vm.$refs.refHeaderBorderRepair;
|
|
270
300
|
},
|
|
271
301
|
destroyed() {
|
|
272
|
-
const
|
|
273
|
-
const
|
|
302
|
+
const _vm = this;
|
|
303
|
+
const props = _vm;
|
|
304
|
+
const $xeTable = _vm.$parent;
|
|
274
305
|
const internalData = $xeTable;
|
|
275
306
|
const {
|
|
276
307
|
fixedType
|
|
@@ -288,8 +319,9 @@ var _default = exports.default = {
|
|
|
288
319
|
elemStore[`${prefix}repair`] = null;
|
|
289
320
|
},
|
|
290
321
|
render(h) {
|
|
291
|
-
const
|
|
292
|
-
const
|
|
322
|
+
const _vm = this;
|
|
323
|
+
const props = _vm;
|
|
324
|
+
const $xeTable = _vm.$parent;
|
|
293
325
|
const tableProps = $xeTable;
|
|
294
326
|
const tableReactData = $xeTable;
|
|
295
327
|
const tableInternalData = $xeTable;
|
|
@@ -303,7 +335,7 @@ var _default = exports.default = {
|
|
|
303
335
|
} = props;
|
|
304
336
|
const {
|
|
305
337
|
headerColumn
|
|
306
|
-
} =
|
|
338
|
+
} = _vm;
|
|
307
339
|
const {
|
|
308
340
|
mouseConfig,
|
|
309
341
|
showHeaderOverflow: allColumnHeaderOverflow,
|
|
@@ -422,7 +454,7 @@ var _default = exports.default = {
|
|
|
422
454
|
*/
|
|
423
455
|
h('thead', {
|
|
424
456
|
ref: 'refHeaderTHead'
|
|
425
|
-
}, renderHeads(h,
|
|
457
|
+
}, renderHeads(h, _vm, isGroup, isOptimizeMode, renderHeaderList))]), mouseConfig && mouseOpts.area ? h('div', {
|
|
426
458
|
class: 'vxe-table--cell-area'
|
|
427
459
|
}, [h('span', {
|
|
428
460
|
class: 'vxe-table--cell-main-area'
|
|
@@ -440,12 +472,37 @@ var _default = exports.default = {
|
|
|
440
472
|
},
|
|
441
473
|
methods: {
|
|
442
474
|
uploadColumn() {
|
|
443
|
-
const
|
|
475
|
+
const _vm = this;
|
|
476
|
+
const $xeTable = _vm.$parent;
|
|
477
|
+
const tableProps = $xeTable;
|
|
444
478
|
const tableReactData = $xeTable;
|
|
479
|
+
const tableInternalData = $xeTable;
|
|
480
|
+
const props = _vm;
|
|
481
|
+
const {
|
|
482
|
+
showCustomHeader
|
|
483
|
+
} = tableProps;
|
|
484
|
+
const {
|
|
485
|
+
collectColumn,
|
|
486
|
+
visibleColumn
|
|
487
|
+
} = tableInternalData;
|
|
488
|
+
const {
|
|
489
|
+
tableGroupColumn
|
|
490
|
+
} = props;
|
|
445
491
|
const {
|
|
446
492
|
isGroup
|
|
447
493
|
} = tableReactData;
|
|
448
|
-
|
|
494
|
+
let spanColumns = isGroup ? (0, _util.convertHeaderColumnToRows)(tableGroupColumn) : [];
|
|
495
|
+
let visibleColgroups = [];
|
|
496
|
+
if (showCustomHeader && spanColumns.length > 1) {
|
|
497
|
+
visibleColgroups = (0, _util.convertHeaderToGridRows)(spanColumns);
|
|
498
|
+
spanColumns = visibleColgroups;
|
|
499
|
+
}
|
|
500
|
+
_vm.headerColumn = spanColumns;
|
|
501
|
+
$xeTable.dispatchEvent('columns-change', {
|
|
502
|
+
visibleColgroups,
|
|
503
|
+
collectColumn,
|
|
504
|
+
visibleColumn
|
|
505
|
+
}, null);
|
|
449
506
|
}
|
|
450
507
|
}
|
|
451
508
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header"
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header";function renderRows(E,e,S,D,l,T,R){let I=e.$parent,O=I.$xeGrid,k=I.$xeGantt;var r=I,a=I,t=I;let z=e.fixedType,{resizable:M,columnKey:U,showCustomHeader:A,headerCellClassName:X,headerCellStyle:G,showHeaderOverflow:q,headerAlign:F,align:L,mouseConfig:N}=r,{currentColumn:B,dragCol:V,scrollXLoad:W,scrollYLoad:K,overflowX:P,mergeHeadFlag:j,tableColumn:ae}=a,{fullColumnIdData:te,scrollXStore:Y,mergeHeaderList:ie,mergeHeaderCellMaps:de}=t,ne=I.computeVirtualXOpts,J=I.computeColumnOpts,Q=I.computeColumnDragOpts,oe=I.computeCellOpts;e=I.computeDefaultRowHeight;let Z=I.computeHeaderCellOpts,ee=(0,_util.getCalcHeight)(Z.height)||e,{disabledMethod:le,isCrossDrag:se,isPeerDrag:ue}=Q,re=T===l.length-1;return R.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:i,filters:d,headerClassName:n,editRender:o,cellRender:s}=e,u=e.id,c=te[u]||{},o=o||s,s=o?renderer.get(o.name):null,o=e.children&&e.children.length,p=P&&!o&&(z?e.fixed!==z:!!e.fixed),f=(_xeUtils.default.isBoolean(Z.padding)?Z:oe).padding,a=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?q:a,t=t||(s?s.tableHeaderCellAlign:"")||F||i||(s?s.tableCellAlign:"")||L,i="ellipsis"===a,s="title"===a,a=!0===a||"tooltip"===a,m=s||a||i;let g=!1,h=null;d&&(h=d[0],g=d.some(e=>e.checked));var x=c.index,c=A?l:c._index;let v={$table:I,$grid:O,$gantt:k,$rowIndex:T,column:e,columnIndex:x,$columnIndex:l,_columnIndex:c,firstFilterOption:h,fixed:z,type:cellType,isHidden:p,hasFilter:g};x={colid:u};let C=!1;if(A||(x.colspan=1<e.colSpan?e.colSpan:null,x.rowspan=1<e.rowSpan?e.rowSpan:null),j&&ie.length&&(A||re)){var b=de[T+":"+(A?l:c)];if(b){var{rowspan:b,colspan:w}=b;if(!b||!w)return null;1<b&&(C=!0,x.rowspan=b),1<w&&(C=!0,x.colspan=w)}}b={click:e=>I.triggerHeaderCellClickEvent(e,v),dblclick:e=>I.triggerHeaderCellDblclickEvent(e,v)},w=J.drag&&"cell"===Q.trigger;let H=!1;w&&(H=!(!le||!le(v))),(N||w)&&(b.mousedown=e=>I.triggerHeaderCellMousedownEvent(e,v)),J.drag&&(b.dragstart=I.handleHeaderCellDragDragstartEvent,b.dragend=I.handleHeaderCellDragDragendEvent,b.dragover=I.handleHeaderCellDragDragoverEvent,w)&&(b.mouseup=I.handleHeaderCellDragMouseupEvent);var w=l===R.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:J.resizable||M,_=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let $=!1;!D||!P||S||C||V&&V.id===u||W&&10<ae.length&&!e.fixed&&!ne.immediate&&(c<Y.visibleStartIndex-Y.preloadSize||c>Y.visibleEndIndex+Y.preloadSize)&&($=!0);c={};return m?c.height=ee+"px":c.minHeight=ee+"px",E("th",{class:["vxe-table--column vxe-header--column",u,p?"fixed--hidden":"fixed--visible",{["col--"+t]:t,["col--"+r]:r,"col--last":w,"col--fixed":e.fixed,"col--group":o,"col--ellipsis":m,"fixed--width":!_,"is--padding":f,"is--sortable":e.sortable,"col--filter":!!d,"is--filter-active":g,"is--drag-active":J.drag&&!e.fixed&&!H&&(se||ue||!e.parentId),"is--drag-disabled":J.drag&&H,"col--current":B===e},(0,_utils.getClass)(n,v),(0,_utils.getClass)(X,v)],attrs:x,style:G?_xeUtils.default.isFunction(G)?G(v):G:void 0,on:b,key:A?""+u+l:U||W||K||J.useKey||J.drag||o?u:l},[E("div",{class:["vxe-cell",{"c--title":s,"c--tooltip":a,"c--ellipsis":i}],style:c},$||D&&p?[]:[E("div",{attrs:{colid:u},class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(E,v))]),p||!y||A&&!re?renderEmptyElement(I):E("div",{class:"vxe-cell--col-resizable",on:{mousedown:e=>I.handleColResizeMousedownEvent(e,z,v),dblclick:e=>I.handleColResizeDblclickEvent(e,v)}})])})}function renderHeads(a,t,i,d,n){let o=t.$parent;var e=o;let s=t.fixedType,{headerRowClassName:u,headerRowStyle:c}=e;return n.map((e,l)=>{var r={$table:o,$rowIndex:l,fixed:s,type:cellType};return a("tr",{key:l,class:["vxe-header--row",u?_xeUtils.default.isFunction(u)?u(r):u:""],style:c?_xeUtils.default.isFunction(c)?c(r):c:void 0},renderRows(a,t,i,d,n,l,e))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,a=l,t=l,i=l.xID;let{fixedType:d,fixedColumn:n,tableColumn:o}=this;var s=this.headerColumn,{mouseConfig:e,showHeaderOverflow:u,spanMethod:c,footerSpanMethod:p}=e,{isGroup:a,isColLoading:f,overflowX:m,scrollXLoad:g,dragCol:h}=a,{visibleColumn:t,fullColumnIdData:x}=t,v=l.computeMouseOpts;let C=s,b=o,w=!1;return a?b=t:(g&&u&&(c||p||(w=!0)),w&&(f||!d&&m)||(b=t),d&&w&&(b=n||[]),C=[b]),d||a||g&&h&&2<b.length&&(s=x[h.id])&&(u=s._index,c=b[0],p=b[b.length-1],f=x[c.id],m=x[p.id],f)&&m&&(t=f._index,g=m._index,u<t?(b=[h].concat(b),C=[[h].concat(C[0])].concat(C.slice(1))):g<u&&(b=b.concat([h]),C=[C[0].concat([h])].concat(C.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",d?`fixed-${d}--wrapper`:"body--wrapper"],attrs:{xid:i}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,d)}}},[d?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0,xvm:w?"1":null}},[r("colgroup",{ref:"refHeaderColgroup"},b.map((e,l)=>r("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,a,w,C))]),e&&v.area?r("div",{class:"vxe-table--cell-area"},[r("span",{class:"vxe-table--cell-main-area"}),r("span",{class:"vxe-table--cell-clip-area"}),r("span",{class:"vxe-table--cell-extend-area"}),r("span",{class:"vxe-table--cell-multi-area"}),r("span",{class:"vxe-table--cell-active-area"}),r("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(l)])])},methods:{uploadColumn(){var e=this.$parent,l=e.showCustomHeader,{collectColumn:r,visibleColumn:a}=e,t=this.tableGroupColumn,i=e.isGroup;let d=i?(0,_util.convertHeaderColumnToRows)(t):[],n=[];l&&1<d.length&&(n=(0,_util.convertHeaderToGridRows)(d),d=n),this.headerColumn=d,e.dispatchEvent("columns-change",{visibleColgroups:n,collectColumn:r,visibleColumn:a},null)}}};
|