diff --git a/packages/dnd-design/src/preview-providers/design-preview-provider.ts b/packages/dnd-design/src/preview-providers/design-preview-provider.ts index e3ce369d0f689ef76809b79aac113ee9f757e66e..6fc8ff6fbb26354540ef3dedfde0b715142c8b8c 100644 --- a/packages/dnd-design/src/preview-providers/design-preview-provider.ts +++ b/packages/dnd-design/src/preview-providers/design-preview-provider.ts @@ -70,6 +70,8 @@ export class DndDesignPreViewProvider implements IPreviewProvider { /** * 查找指定项界面模式 * + * - 有配置界面模式读取配置界面模式 + * - 没有配置界面模式读取默认的界面模式 * @author tony001 * @date 2024-09-06 15:09:39 * @protected @@ -77,16 +79,32 @@ export class DndDesignPreViewProvider implements IPreviewProvider { * @return {*} {(IData | undefined)} */ protected findUIMode(item: IData): IData | undefined { - const psdefuimode = this.uiModes.find((uiModel: IData) => { - if ( - (item.formtype === 'SEARCHFORM' && - item.psdefsfitemid === uiModel.psdefsfitemid) || - (item.formtype === 'EDITFORM' && item.psdefid === uiModel.psdefid) - ) { - return uiModel; + const { formtype, psdefuimodeid, psdefid, psdefsfitemid, mobflag } = item; + + const isDefaultMode = (mode: string) => { + return !mobflag ? mode === 'DEFAULT' : mode === 'MOBILEDEFAULT'; + }; + + return this.uiModes.find((uiModel: IData) => { + const { + psdefuimodeid: modelUIModeId, + psdefid: modelDefId, + ftmode, + psdefsfitemid: modelSfItemId, + } = uiModel; + + if (formtype === 'EDITFORM') { + return psdefuimodeid + ? psdefuimodeid === modelUIModeId + : psdefid === modelDefId && isDefaultMode(ftmode); } + + if (formtype === 'SEARCHFORM') { + return psdefsfitemid === modelSfItemId; + } + + return false; }); - return psdefuimode; } /**