diff --git a/CHANGELOG.md b/CHANGELOG.md index a667f324201e8d2fe65541b555af399638c122c1..0d2f3402dc1dafcd5f27c273042565bfb43e47c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ - 添加搜索栏过滤器组件 - 过滤组件添加默认新建过滤功能 - 多数据部件排序配置适配图标按钮移入显示title +- 分页搜索视图中快捷搜索提示根据当前激活的关系视图显示 ### Fixed diff --git a/src/control/search-bar/search-bar.tsx b/src/control/search-bar/search-bar.tsx index 8a2f9f79d0cc6d9e8f9cb16dcd9f7935af27456a..82b3ee1ab1facde0adb795f1024fdaa6e50daa72 100644 --- a/src/control/search-bar/search-bar.tsx +++ b/src/control/search-bar/search-bar.tsx @@ -124,7 +124,7 @@ export const SearchBarControl = defineComponent({ )} diff --git a/src/view-engine/mob-tab-search-view.engine.ts b/src/view-engine/mob-tab-search-view.engine.ts index bbcb065518f6adb88e94468d163443b82b1cf2cb..a76058f86704c60e9d20096dffd9b455fb79ef51 100644 --- a/src/view-engine/mob-tab-search-view.engine.ts +++ b/src/view-engine/mob-tab-search-view.engine.ts @@ -7,7 +7,7 @@ import { SysUIActionTag, ViewController, } from '@ibiz-template/runtime'; -import { IAppDETabSearchView } from '@ibiz/model-core'; +import { IAppDETabSearchView, IDETabViewPanel } from '@ibiz/model-core'; import { MobTabExpViewEngine } from './mob-tab-exp-view.engine'; /** @@ -112,10 +112,68 @@ export class MobTabSearchViewEngine extends MobTabExpViewEngine { } // 分页导航面板切换 if (this.tabExpPanel) { - this.tabExpPanel.evt.on('onTabChange', () => { - this.calcViewParams(); + this.tabExpPanel.evt.on( + 'onTabChange', + ({ tab }: { tab: IDETabViewPanel }) => { + this.calcViewParams(); + // 动态切换输入提示 + this.onQuickSearchPlaceHolder(tab); + }, + ); + // 适配onTabChange第一次抛值时onMouted没有执行完毕 + const { activeTabViewPanelModel } = this.tabExpPanel as IParams; + if (activeTabViewPanelModel) { + this.onQuickSearchPlaceHolder(activeTabViewPanelModel); + } + } + } + + /** + * 给快捷搜索赋默认提示值 + * @author ljx + * @date 2024-11-12 10:56:25 + * @readonly + */ + async onQuickSearchPlaceHolder(tab: IDETabViewPanel): Promise { + let { caption } = tab; + const viewConfig = await ibiz.hub.config.view.get( + tab.embeddedAppDEViewId || '', + ); + const appDataEntity = await ibiz.hub.getAppDataEntity( + viewConfig.appDataEntityId!, + viewConfig.appId, + ); + + if (appDataEntity) { + const searchFields = appDataEntity.appDEFields!.filter(field => { + return field.enableQuickSearch; }); + if (searchFields.length) { + const placeHolders: string[] = []; + searchFields.forEach(searchField => { + if ( + searchField.lnlanguageRes && + searchField.lnlanguageRes.lanResTag + ) { + placeHolders.push( + ibiz.i18n.t( + searchField.lnlanguageRes.lanResTag, + searchField.logicName, + ), + ); + } else if (searchField.logicName) { + placeHolders.push(searchField.logicName); + } + }); + if (placeHolders.length > 0) { + caption = placeHolders.join('、'); + } + } } + + // 直接赋值 caption + (this.searchBar as IParams).placeHolder = caption || ''; + this.searchBar.state.quickSearchPlaceHolder = caption || ''; } // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types