diff --git a/CHANGELOG.md b/CHANGELOG.md index 9676ba3f3d470b92c58ce9adb1d5278b5901e220..91a622630dafe98fd129da649f0eb1b31536e289 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ ## [Unreleased] +### Added + +- 列表导航视图支持searchbar搜索栏 + ## [0.6.9] - 2024-03-17 ### Added diff --git a/src/control/exp-bar/render-util.tsx b/src/control/exp-bar/render-util.tsx index e1e6830532926a0b54c962c498c2621d2a9069f6..16d162ee4cb6fb90a713691a530e95dcd12dc116 100644 --- a/src/control/exp-bar/render-util.tsx +++ b/src/control/exp-bar/render-util.tsx @@ -1,7 +1,7 @@ import { Namespace } from '@ibiz-template/core'; import { IExpBarControlController } from '@ibiz-template/runtime'; import { debounce } from 'lodash-es'; -import { VNode } from 'vue'; +import { VNode, h, resolveComponent } from 'vue'; import { useRoute } from 'vue-router'; import { onRouteChange, @@ -61,6 +61,22 @@ export function useExpBarRender( if (!model.enableSearch) { return null; } + + const modelData = c.view.model.viewLayoutPanel?.controls?.find( + item => item.id === 'searchbar', + ); + if (modelData) { + const ctrlProps = { + context: c.context, + params: c.params, + }; + const comp = resolveComponent('IBizControlShell'); + return h(comp, { + modelData: modelData, + ...ctrlProps, + }); + } + return ( item.id === 'searchbar', + ); + if (modelData && !modelData.name) { + modelData.name = 'searchbar'; + } + super(view); + } + /** * 组件创建 *