Skip to content

Commit f3b65ae

Browse files
committed
releases 4.7.49
1 parent 3641270 commit f3b65ae

File tree

9 files changed

+169
-37
lines changed

9 files changed

+169
-37
lines changed

examples/App.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ const navList = ref([
2727
{ name: 'TableTest2', routerLink: { name: 'TableTest2' } },
2828
{ name: 'TableTest3', routerLink: { name: 'TableTest3' } },
2929
{ name: 'TableTest4', routerLink: { name: 'TableTest4' } },
30+
{ name: 'TableTest5', routerLink: { name: 'TableTest5' } },
3031
{ name: 'GridTest', routerLink: { name: 'GridTest' } },
3132
{ name: 'TestKeepTest1', routerLink: { name: 'TestKeepTest1' } },
3233
{ name: 'TestKeepTest2', routerLink: { name: 'TestKeepTest2' } },

examples/router/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ const routes: Array<RouteRecordRaw> = [
4545
name: 'TableTest4',
4646
component: () => import('../views/table/TableTest4.vue')
4747
},
48+
{
49+
path: '/component/table5',
50+
name: 'TableTest5',
51+
component: () => import('../views/table/TableTest5.vue')
52+
},
4853
{
4954
path: '/component/grid',
5055
name: 'GridTest',

examples/views/table/TableTest5.vue

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<template>
2+
<div>
3+
<vxe-table
4+
border
5+
stripe
6+
resizable
7+
highlight-hover-row
8+
height="400"
9+
:loading="demo1.loading"
10+
:checkbox-config="{labelField: 'id', highlight: true, range: true}"
11+
:data="demo1.tableData">
12+
<vxe-column type="seq" width="auto"></vxe-column>
13+
<vxe-column type="checkbox" title="ID" width="auto"></vxe-column>
14+
<vxe-column field="role" title="Role" width="auto"></vxe-column>
15+
<vxe-column field="name" title="Name" width="auto"></vxe-column>
16+
<vxe-column field="age" title="Age" width="auto"></vxe-column>
17+
<vxe-column field="sex" title="Sex" width="auto"></vxe-column>
18+
<vxe-column field="address" title="Address" width="auto" show-overflow></vxe-column>
19+
</vxe-table>
20+
</div>
21+
</template>
22+
23+
<script lang="ts" setup>
24+
import { onMounted, reactive } from 'vue'
25+
26+
const demo1 = reactive({
27+
loading: false,
28+
tableData: [] as any[]
29+
})
30+
31+
onMounted(() => {
32+
demo1.loading = true
33+
setTimeout(() => {
34+
demo1.tableData = [
35+
{ id: 10001, name: 'Test1', role: 'Develop', sex: '0', age: 28, address: 'test abc' },
36+
{ id: 10002, name: 'Test2', role: 'Test', sex: '1', age: 22, address: 'Guangzhou' },
37+
{ id: 10003, name: 'Test3', role: 'PM', sex: '0', age: 32, address: 'Shanghai' },
38+
{ id: 10004, name: 'Test4', role: 'Designer', sex: '1', age: 23, address: 'test abc' },
39+
{ id: 10005, name: 'Test5', role: 'Devel543535 sdf sdf sdf sd op', sex: '1', age: 30, address: 'Shanghai' },
40+
{ id: 10006, name: 'Test6', role: 'Designer', sex: '1', age: 21, address: 'test abc' },
41+
{ id: 10007, name: 'Test7', role: 'Test', sex: '0', age: 29, address: 'test abc' },
42+
{ id: 10008, name: 'Test8', role: 'Devdsf sdf elop', sex: '0', age: 35, address: 'test abc' },
43+
{ id: 10009, name: 'Test9', role: 'Test', sex: '1', age: 21, address: 'test abc' },
44+
{ id: 10010, name: 'Test10', role: 'Develop', sex: '0', age: 28, address: 'test abc' },
45+
{ id: 10011, name: 'Test11', role: 'Test', sex: '0', age: 29, address: 'test abc' },
46+
{ id: 10012, name: 'Test12', role: 'Develop', sex: '1', age: 27, address: 'test abc' },
47+
{ id: 10013, name: 'Test13', role: 'Test', sex: '0', age: 24, address: 'test abc' },
48+
{ id: 10014, name: 'Test14', role: 'Develop', sex: '1', age: 34, address: 'test abc' },
49+
{ id: 10015, name: 'Test15', role: 'Tes sdfsd fsd fdss ff sd fds sdf fsdf st', sex: '1', age: 21, address: 'test abc' },
50+
{ id: 10016, name: 'Test16', role: 'Develop', sex: '0', age: 20, address: 'test abc' },
51+
{ id: 10017, name: 'Test17', role: 'Test', sex: '1', age: 31, address: 'test abc' },
52+
{ id: 10018, name: 'Test18', role: 'Develop', sex: '0', age: 32, address: 'test abc' },
53+
{ id: 10019, name: 'Test19', role: 'Test', sex: '1', age: 37, address: 'test abc' },
54+
{ id: 10020, name: 'Test20', role: 'Develop', sex: '1', age: 41, address: 'test abc' }
55+
]
56+
demo1.loading = false
57+
}, 100)
58+
})
59+
</script>

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vxe-table",
3-
"version": "4.7.48",
3+
"version": "4.7.49",
44
"description": "一个基于 vue 的 PC 端表格组件,支持增删改查、虚拟树、列拖拽,懒加载、快捷菜单、数据校验、树形结构、打印、导入导出、自定义模板、渲染器、JSON 配置式...",
55
"scripts": {
66
"update": "npm install --legacy-peer-deps",
@@ -28,7 +28,7 @@
2828
"style": "lib/style.css",
2929
"typings": "types/index.d.ts",
3030
"dependencies": {
31-
"vxe-pc-ui": "^4.0.61"
31+
"vxe-pc-ui": "^4.0.63"
3232
},
3333
"devDependencies": {
3434
"@types/resize-observer-browser": "^0.1.11",

packages/grid/src/grid.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,9 @@ export default defineComponent({
184184
const tableProps = Object.assign({}, tableExtendProps)
185185
if (isZMax) {
186186
if (tableExtendProps.maxHeight) {
187-
tableProps.maxHeight = 'auto'
187+
tableProps.maxHeight = 'fill'
188188
} else {
189-
tableProps.height = 'auto'
189+
tableProps.height = 'fill'
190190
}
191191
}
192192
if (proxyConfig && isEnableConf(proxyOpts)) {
@@ -1125,7 +1125,7 @@ export default defineComponent({
11251125
const topWrapper = refTopWrapper.value
11261126
const bottomWrapper = refBottomWrapper.value
11271127
const pagerWrapper = refPagerWrapper.value
1128-
const parentPaddingSize = isZMax || height !== 'auto' ? 0 : getPaddingTopBottomSize(el.parentNode as HTMLElement)
1128+
const parentPaddingSize = isZMax || !(height === 'auto' || height === 'fill') ? 0 : getPaddingTopBottomSize(el.parentNode as HTMLElement)
11291129
return parentPaddingSize + getPaddingTopBottomSize(el) + getOffsetHeight(formWrapper) + getOffsetHeight(toolbarWrapper) + getOffsetHeight(topWrapper) + getOffsetHeight(bottomWrapper) + getOffsetHeight(pagerWrapper)
11301130
},
11311131
getParentHeight () {

packages/table/src/cell.ts

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -252,19 +252,22 @@ export const Cell = {
252252
*/
253253
renderTreeIcon (params: VxeTableDefines.CellRenderBodyParams, cellVNodes: VxeComponentSlotType[]) {
254254
const { $table, isHidden } = params
255-
const { reactData } = $table
255+
const { reactData, internalData } = $table
256256
const { computeTreeOpts } = $table.getComputeMaps()
257257
const { treeExpandedMaps, treeExpandLazyLoadedMaps } = reactData
258+
const { fullAllDataRowIdData } = internalData
258259
const treeOpts = computeTreeOpts.value
259260
const { row, column, level } = params
260261
const { slots } = column
261262
const { indent, lazy, trigger, iconLoaded, showIcon, iconOpen, iconClose } = treeOpts
262263
const childrenField = treeOpts.children || treeOpts.childrenField
263264
const hasChildField = treeOpts.hasChild || treeOpts.hasChildField
264265
const rowChilds = row[childrenField]
266+
const hasChild = rowChilds && rowChilds.length
265267
const iconSlot = slots ? slots.icon : null
266268
let hasLazyChilds = false
267269
let isAceived = false
270+
let isLazyLoading = false
268271
let isLazyLoaded = false
269272
const ons: any = {}
270273
if (iconSlot) {
@@ -274,8 +277,10 @@ export const Cell = {
274277
const rowid = getRowid($table, row)
275278
isAceived = !!treeExpandedMaps[rowid]
276279
if (lazy) {
277-
isLazyLoaded = !!treeExpandLazyLoadedMaps[rowid]
280+
const rest = fullAllDataRowIdData[rowid]
281+
isLazyLoading = !!treeExpandLazyLoadedMaps[rowid]
278282
hasLazyChilds = row[hasChildField]
283+
isLazyLoaded = !!rest.treeLoaded
279284
}
280285
}
281286
if (!trigger || trigger === 'default') {
@@ -292,14 +297,14 @@ export const Cell = {
292297
paddingLeft: `${level * indent}px`
293298
}
294299
}, [
295-
showIcon && ((rowChilds && rowChilds.length) || hasLazyChilds)
300+
showIcon && (lazy ? (isLazyLoaded ? hasChild : hasLazyChilds) : hasChild)
296301
? [
297302
h('div', {
298303
class: 'vxe-tree--btn-wrapper',
299304
...ons
300305
}, [
301306
h('i', {
302-
class: ['vxe-tree--node-btn', isLazyLoaded ? (iconLoaded || getIcon().TABLE_TREE_LOADED) : (isAceived ? (iconOpen || getIcon().TABLE_TREE_OPEN) : (iconClose || getIcon().TABLE_TREE_CLOSE))]
307+
class: ['vxe-tree--node-btn', isLazyLoading ? (iconLoaded || getIcon().TABLE_TREE_LOADED) : (isAceived ? (iconOpen || getIcon().TABLE_TREE_OPEN) : (iconClose || getIcon().TABLE_TREE_CLOSE))]
303308
})
304309
])
305310
]
@@ -622,15 +627,15 @@ export const Cell = {
622627
const defaultSlot = slots ? slots.default : null
623628
const iconSlot = slots ? slots.icon : null
624629
let isAceived = false
625-
let isLazyLoaded = false
630+
let isLazyLoading = false
626631
if (iconSlot) {
627632
return $table.callSlot(iconSlot, params)
628633
}
629634
if (!isHidden) {
630635
const rowid = getRowid($table, row)
631636
isAceived = !!rowExpandedMaps[rowid]
632637
if (lazy) {
633-
isLazyLoaded = !!rowExpandLazyLoadedMaps[rowid]
638+
isLazyLoading = !!rowExpandLazyLoadedMaps[rowid]
634639
}
635640
}
636641
return [
@@ -644,7 +649,7 @@ export const Cell = {
644649
}
645650
}, [
646651
h('i', {
647-
class: ['vxe-table--expand-btn', isLazyLoaded ? (iconLoaded || getIcon().TABLE_EXPAND_LOADED) : (isAceived ? (iconOpen || getIcon().TABLE_EXPAND_OPEN) : (iconClose || getIcon().TABLE_EXPAND_CLOSE))]
652+
class: ['vxe-table--expand-btn', isLazyLoading ? (iconLoaded || getIcon().TABLE_EXPAND_LOADED) : (isAceived ? (iconOpen || getIcon().TABLE_EXPAND_OPEN) : (iconClose || getIcon().TABLE_EXPAND_CLOSE))]
648653
})
649654
])
650655
: null,

packages/table/src/columnInfo.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ export class ColumnInfo {
128128
renderWidth: 0,
129129
renderHeight: 0,
130130
renderResizeWidth: 0,
131+
renderAutoWidth: 0,
131132
resizeWidth: 0, // 手动调整
132133

133134
renderLeft: 0,

0 commit comments

Comments
 (0)