diff --git a/src/view-engine/edit-view.engine.ts b/src/view-engine/edit-view.engine.ts index f12f013cabd2d20bcc3b76717894cf34196b04e7..81b4015f6f024dc8767b42bbc5eabd1e41433d4e 100644 --- a/src/view-engine/edit-view.engine.ts +++ b/src/view-engine/edit-view.engine.ts @@ -1,3 +1,4 @@ +/* eslint-disable no-case-declarations */ import { RuntimeError, IMarkOpenData } from '@ibiz-template/core'; import { ViewEngineBase, @@ -563,32 +564,44 @@ export class EditViewEngine extends ViewEngineBase { let targetItem: IData | undefined; switch (type) { case SysUIActionTag.FIRST_RECORD: - if (index === 0) { + const data1 = (await view.call(ViewCallTag.TO_FIRST_PAGE)) as IData[]; + if (data1.length === 0) { ibiz.message.info(ibiz.i18n.t('viewEngine.firstPieceOfData')); return; } - targetItem = items[0]; + targetItem = data1[0]; break; case SysUIActionTag.LAST_RECORD: - if (index === items.length - 1) { + const data2 = (await view.call(ViewCallTag.TO_LAST_PAGE)) as IData[]; + if (data2.length === 0) { ibiz.message.info(ibiz.i18n.t('viewEngine.lastPieceOfData')); return; } - targetItem = items[items.length - 1]; + targetItem = data2[data2.length - 1]; break; case SysUIActionTag.PREV_RECORD: if (index === 0) { - ibiz.message.info(ibiz.i18n.t('viewEngine.firstPieceOfData')); - return; + const data3 = (await view.call(ViewCallTag.PRE_PAGE)) as IData[]; + if (data3.length === 0) { + ibiz.message.info(ibiz.i18n.t('viewEngine.firstPieceOfData')); + return; + } + targetItem = data3[data3.length - 1]; + } else { + targetItem = items[index - 1]; } - targetItem = items[index - 1]; break; case SysUIActionTag.NEXT_RECORD: if (index === items.length - 1) { - ibiz.message.info(ibiz.i18n.t('viewEngine.lastPieceOfData')); - return; + const data4 = (await view.call(ViewCallTag.NEXT_PAGE)) as IData[]; + if (data4.length === 0) { + ibiz.message.info(ibiz.i18n.t('viewEngine.lastPieceOfData')); + return; + } + targetItem = data4[0]; + } else { + targetItem = items[index + 1]; } - targetItem = items[index + 1]; break; default: break;