Merge branch 'dev' into release

This commit is contained in:
Xu Chang 2024-12-26 17:35:25 +08:00
commit 8d8798a7df
6 changed files with 41 additions and 22 deletions

View File

@ -179,7 +179,7 @@ declare class ListNode<ED extends EntityDict & BaseEntityDict, T extends keyof E
*
*/
saveRefreshResult(sr: Awaited<ReturnType<CommonAspectDict<ED>['select']>>, append?: boolean, currentPage?: number): void;
refresh(pageNumber?: number, append?: boolean): Promise<void>;
refresh(pageNumber?: number, append?: boolean, resetTotal?: number): Promise<void>;
loadMore(): Promise<void>;
setCurrentPage(currentPage: number): void;
clean(lsn?: number, dontPublish?: true): void;

View File

@ -312,7 +312,7 @@ const DEFAULT_PAGINATION = {
currentPage: 0,
pageSize: 20,
more: true,
total: 0,
total: undefined,
count: 0,
};
class ListNode extends EntityNode {
@ -556,7 +556,7 @@ class ListNode extends EntityNode {
...pagination,
currentPage: pagination.currentPage - 1,
more: true,
total: 0,
total: undefined,
count: 0,
} : { ...DEFAULT_PAGINATION };
this.stale = stale;
@ -929,11 +929,13 @@ class ListNode extends EntityNode {
const filters2 = filters?.filter((ele) => !!ele);
const filter = filters2 ? combineFilters(this.entity, this.schema, filters2) : undefined;
const { currentPage, pageSize } = this.pagination;
// 只有当没有计算过total或者有新的filter才需要显示的查找total
const needGetTotal = this.pagination.total === undefined || !!this.filters.find(ele => !ele.applied);
return {
data,
filter,
sorter: sorterArr,
total: getTotal,
total: needGetTotal ? getTotal : undefined,
indexFrom: currentPage * pageSize,
count: pageSize,
};
@ -971,8 +973,12 @@ class ListNode extends EntityNode {
}
// this.publish();
}
async refresh(pageNumber, append) {
const { entity, pagination, getTotal } = this;
async refresh(pageNumber, append, resetTotal) {
if (resetTotal) {
// 清空之前查询计算的total值目前只有父结点id改变会这样调用
this.pagination.total = undefined;
}
const { entity, pagination } = this;
const { currentPage, pageSize, randomRange } = pagination;
const currentPage3 = typeof pageNumber === 'number' ? pageNumber : currentPage;
assert(!randomRange || !currentPage3, 'list在访问数据时如果设置了randomRange则不应再有pageNumber');
@ -992,7 +998,7 @@ class ListNode extends EntityNode {
indexFrom: currentPage3 * pageSize,
count: pageSize,
randomRange,
total: currentPage3 === 0 ? total : undefined,
total,
}, undefined, (selectResult) => {
this.endLoading();
this.setFiltersAndSortedApplied();

View File

@ -179,7 +179,7 @@ declare class ListNode<ED extends EntityDict & BaseEntityDict, T extends keyof E
*
*/
saveRefreshResult(sr: Awaited<ReturnType<CommonAspectDict<ED>['select']>>, append?: boolean, currentPage?: number): void;
refresh(pageNumber?: number, append?: boolean): Promise<void>;
refresh(pageNumber?: number, append?: boolean, resetTotal?: number): Promise<void>;
loadMore(): Promise<void>;
setCurrentPage(currentPage: number): void;
clean(lsn?: number, dontPublish?: true): void;

View File

@ -315,7 +315,7 @@ const DEFAULT_PAGINATION = {
currentPage: 0,
pageSize: 20,
more: true,
total: 0,
total: undefined,
count: 0,
};
class ListNode extends EntityNode {
@ -559,7 +559,7 @@ class ListNode extends EntityNode {
...pagination,
currentPage: pagination.currentPage - 1,
more: true,
total: 0,
total: undefined,
count: 0,
} : { ...DEFAULT_PAGINATION };
this.stale = stale;
@ -932,11 +932,13 @@ class ListNode extends EntityNode {
const filters2 = filters?.filter((ele) => !!ele);
const filter = filters2 ? (0, filter_1.combineFilters)(this.entity, this.schema, filters2) : undefined;
const { currentPage, pageSize } = this.pagination;
// 只有当没有计算过total或者有新的filter才需要显示的查找total
const needGetTotal = this.pagination.total === undefined || !!this.filters.find(ele => !ele.applied);
return {
data,
filter,
sorter: sorterArr,
total: getTotal,
total: needGetTotal ? getTotal : undefined,
indexFrom: currentPage * pageSize,
count: pageSize,
};
@ -974,8 +976,12 @@ class ListNode extends EntityNode {
}
// this.publish();
}
async refresh(pageNumber, append) {
const { entity, pagination, getTotal } = this;
async refresh(pageNumber, append, resetTotal) {
if (resetTotal) {
// 清空之前查询计算的total值目前只有父结点id改变会这样调用
this.pagination.total = undefined;
}
const { entity, pagination } = this;
const { currentPage, pageSize, randomRange } = pagination;
const currentPage3 = typeof pageNumber === 'number' ? pageNumber : currentPage;
(0, assert_1.assert)(!randomRange || !currentPage3, 'list在访问数据时如果设置了randomRange则不应再有pageNumber');
@ -995,7 +1001,7 @@ class ListNode extends EntityNode {
indexFrom: currentPage3 * pageSize,
count: pageSize,
randomRange,
total: currentPage3 === 0 ? total : undefined,
total,
}, undefined, (selectResult) => {
this.endLoading();
this.setFiltersAndSortedApplied();

View File

@ -1,6 +1,6 @@
{
"name": "oak-frontend-base",
"version": "5.3.22",
"version": "5.3.23",
"description": "oak框架中前端与业务逻辑无关的平台部分",
"author": {
"name": "XuChang"
@ -23,7 +23,7 @@
"node-schedule": "^2.1.1",
"nprogress": "^0.2.0",
"oak-common-aspect": "^3.0.5",
"oak-domain": "^5.1.14",
"oak-domain": "^5.1.15",
"oak-memory-tree-store": "^3.3.8",
"ol": "^7.3.0",
"rc-pagination": "^4.3.0",

View File

@ -405,7 +405,7 @@ const DEFAULT_PAGINATION: Pagination = {
currentPage: 0,
pageSize: 20,
more: true,
total: 0,
total: undefined,
count: 0,
}
@ -695,7 +695,7 @@ class ListNode<
...pagination,
currentPage: pagination.currentPage - 1,
more: true,
total: 0,
total: undefined,
count: 0,
} : { ...DEFAULT_PAGINATION };
this.stale = stale;
@ -1160,11 +1160,14 @@ class ListNode<
const filter = filters2 ? combineFilters<ED, T>(this.entity, this.schema, filters2) : undefined;
const { currentPage, pageSize } = this.pagination;
// 只有当没有计算过total或者有新的filter才需要显示的查找total
const needGetTotal = this.pagination.total === undefined || !!this.filters.find(ele => !ele.applied);
return {
data,
filter,
sorter: sorterArr,
total: getTotal,
total: needGetTotal ? getTotal : undefined,
indexFrom: currentPage * pageSize,
count: pageSize,
};
@ -1205,8 +1208,12 @@ class ListNode<
// this.publish();
}
async refresh(pageNumber?: number, append?: boolean) {
const { entity, pagination, getTotal } = this;
async refresh(pageNumber?: number, append?: boolean, resetTotal?: number) {
if (resetTotal) {
// 清空之前查询计算的total值目前只有父结点id改变会这样调用
this.pagination.total = undefined;
}
const { entity, pagination } = this;
const { currentPage, pageSize, randomRange } = pagination;
const currentPage3 =
typeof pageNumber === 'number' ? pageNumber : currentPage;
@ -1234,7 +1241,7 @@ class ListNode<
indexFrom: currentPage3 * pageSize,
count: pageSize,
randomRange,
total: currentPage3 === 0 ? total : undefined,
total,
},
undefined,
(selectResult) => {