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