复树形结构懒加载状态无法清除问题

This commit is contained in:
xuliangzhan
2021-08-10 23:15:04 +08:00
parent 55aa10c19a
commit 8f9c752b9f
7 changed files with 58 additions and 51 deletions

View File

@@ -36,8 +36,8 @@
<vxe-option value="1" :label="$t('app.body.other.v1')" class-name="end-of-life"></vxe-option>
</vxe-select>
<router-link class="link donation" :title="$t('app.footer.donationDesc')" :to="{name: 'Donation'}">{{ $t('app.header.label.donation') }}</router-link>
<template v-if="appData.apiLoading">
<a v-if="appData.showPlugin" class="link support" href="/vxe-table/plugins" target="_blank">💡插件</a>
<template v-if="appData.apiLoading && appData.showPlugin">
<a v-if="appData.disabledPlugin" class="link support" href="/vxe-table/plugins" target="_blank">💡插件</a>
<a v-else title="维护中" class="link support" style="cursor: no-drop;color: #BFBFBF;background-color:#fff;" @click="$XModal.alert('维护中...', '维护中')">插件</a>
</template>
</div>
@@ -137,6 +137,7 @@ export default defineComponent({
sponsorList: [],
apiLoading: false,
showPlugin: false,
disabledPlugin: false,
tableList: [
{
label: 'app.aside.nav.start',
@@ -2262,12 +2263,13 @@ export default defineComponent({
})
const getVersion = () => {
XEAjax.get('https://api.xuliangzhan.com:10443/demo/api/npm/versions/vxe-table').then(({ plugin, support, time, tags, versions }) => {
XEAjax.get('https://api.xuliangzhan.com:10443/demo/api/npm/versions/vxe-table').then(({ sp, dp, ss, time, tags, versions }) => {
appData.apiLoading = true
appData.showPlugin = plugin
appData.disabledPlugin = dp
appData.showPlugin = sp
const stableVersionList: any = []
const betaVersionList: any = []
store.commit('setSupportQQ', support)
store.commit('setSupportQQ', ss)
if (versions) {
versions.forEach((version: any) => {
if (new RegExp(`^${appData.version}.\\d{1,3}.\\d{1,3}$`).test(version)) {

View File

@@ -741,42 +741,42 @@ const apis = [
// defVal: '',
// list: []
// },
{
name: 'options',
desc: '只对 name=select 有效,下拉选项列表',
version: '',
type: 'any[]',
enum: '',
defVal: '',
list: []
},
{
name: 'optionProps',
desc: '只对 name=select 有效,下拉选项属性参数配置',
version: '',
type: 'any',
enum: '',
defVal: '{ value, label }',
list: []
},
{
name: 'optionGroups',
desc: '只对 name=select 有效,下拉分组选项列表',
version: '',
type: 'any[]',
enum: '',
defVal: '',
list: []
},
{
name: 'optionGroupProps',
desc: '只对 name=select 有效,下拉分组选项属性参数配置',
version: '',
type: 'any',
enum: '',
defVal: '{ options, label }',
list: []
},
// {
// name: 'options',
// desc: '只对 name=select 有效,下拉选项列表',
// version: '',
// type: 'any[]',
// enum: '',
// defVal: '',
// list: []
// },
// {
// name: 'optionProps',
// desc: '只对 name=select 有效,下拉选项属性参数配置',
// version: '',
// type: 'any',
// enum: '',
// defVal: '{ value, label }',
// list: []
// },
// {
// name: 'optionGroups',
// desc: '只对 name=select 有效,下拉分组选项列表',
// version: '',
// type: 'any[]',
// enum: '',
// defVal: '',
// list: []
// },
// {
// name: 'optionGroupProps',
// desc: '只对 name=select 有效,下拉分组选项属性参数配置',
// version: '',
// type: 'any',
// enum: '',
// defVal: '{ options, label }',
// list: []
// },
{
name: 'events',
desc: '渲染组件的事件(请查看目标渲染的 Events',

View File

@@ -42,6 +42,7 @@ export default defineComponent({
showOverflow: true,
showHeaderOverflow: true,
height: 500,
resizable: true,
loading: false,
toolbarConfig: {
slots: {
@@ -215,6 +216,7 @@ export default defineComponent({
showOverflow: true,
showHeaderOverflow: true,
height: 500,
resizable: true,
loading: false,
toolbarConfig: {
slots: {

View File

@@ -65,6 +65,7 @@ export default defineComponent({
highlightHoverRow: true,
highlightCurrentRow: true,
height: 600,
resizable: true,
loading: false,
toolbarConfig: {
slots: {
@@ -239,6 +240,7 @@ export default defineComponent({
highlightHoverRow: true,
highlightCurrentRow: true,
height: 600,
resizable: true,
loading: false,
toolbarConfig: {
slots: {

View File

@@ -50,7 +50,6 @@ export default defineComponent({
scrollYStore: {
startIndex: 0,
endIndex: 0,
visibleIndex: 0,
visibleSize: 0,
offsetSize: 0,
rowHeight: 0
@@ -242,8 +241,11 @@ export default defineComponent({
const { scrollYStore } = internalData
const sYOpts = computeSYOpts.value
const fullData = datas || []
scrollYStore.startIndex = 0
scrollYStore.visibleIndex = 0
Object.assign(scrollYStore, {
startIndex: 0,
endIndex: 1,
visibleSize: 0
})
internalData.fullData = fullData
reactData.scrollYLoad = !!sYOpts.enabled && sYOpts.gt > -1 && sYOpts.gt <= fullData.length
handleData()

View File

@@ -1674,7 +1674,7 @@ export default defineComponent({
treeLazyLoadeds.push(row)
loadMethod({ $table: $xetable, row }).catch(() => []).then((childRecords: any) => {
rest.treeLoaded = true
XEUtils.remove(treeLazyLoadeds, item => item === row)
XEUtils.remove(treeLazyLoadeds, item => $xetable.eqRow(item, row))
if (!XEUtils.isArray(childRecords)) {
childRecords = []
}
@@ -1721,7 +1721,7 @@ export default defineComponent({
expandLazyLoadeds.push(row)
loadMethod({ $table: $xetable, row, rowIndex: tableMethods.getRowIndex(row), $rowIndex: tableMethods.getVMRowIndex(row) }).catch((e: any) => e).then(() => {
rest.expandLoaded = true
XEUtils.remove(expandLazyLoadeds, item => item === row)
XEUtils.remove(expandLazyLoadeds, item => $xetable.eqRow(item, row))
rowExpandeds.push(row)
resolve(nextTick().then(() => tableMethods.recalculate()))
})
@@ -3245,7 +3245,7 @@ export default defineComponent({
const rest = fullAllDataRowIdData[getRowid($xetable, row)]
if (lazy && rest) {
rest.expandLoaded = false
XEUtils.remove(expandLazyLoadeds, item => row === item)
XEUtils.remove(expandLazyLoadeds, item => $xetable.eqRow(item, row))
}
return nextTick()
},
@@ -3378,7 +3378,7 @@ export default defineComponent({
const rest = fullAllDataRowIdData[getRowid($xetable, row)]
if (lazy && rest) {
rest.treeLoaded = false
XEUtils.remove(treeExpandeds, item => row === item)
XEUtils.remove(treeExpandeds, item => $xetable.eqRow(item, row))
}
return nextTick()
},
@@ -4523,7 +4523,7 @@ export default defineComponent({
} else {
// 更新子节点状态
XEUtils.eachTree([row], (item) => {
if (row === item || (!checkMethod || checkMethod({ row: item }))) {
if ($xetable.eqRow(item, row) || (!checkMethod || checkMethod({ row: item }))) {
XEUtils.set(item, property, value)
XEUtils.remove(treeIndeterminates, half => half === item)
handleCheckboxReserveRow(row, value)
@@ -4560,7 +4560,7 @@ export default defineComponent({
} else {
// 更新子节点状态
XEUtils.eachTree([row], (item) => {
if (row === item || (!checkMethod || checkMethod({ row: item }))) {
if ($xetable.eqRow(item, row) || (!checkMethod || checkMethod({ row: item }))) {
if (value) {
selection.push(item)
} else {

1
types/list.d.ts vendored
View File

@@ -38,7 +38,6 @@ export interface ListInternalData {
scrollYStore: {
startIndex: number;
endIndex: number;
visibleIndex: number;
visibleSize: number;
offsetSize: number;
rowHeight: number;