@ibiz-template/vue3-components 0.7.41-alpha.18 → 0.7.41-alpha.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/index-BoV5htv9.js +11 -0
  2. package/dist/{index-swminiXb.js → index-Bt6TkADL.js} +1 -1
  3. package/dist/{index-AOFxMmyX.js → index-K6B-Odyq.js} +1 -1
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/{wang-editor-4OlaBV3P.js → wang-editor-exnzt_I1.js} +1 -1
  7. package/dist/{xlsx-util-Rg-AbK_G.js → xlsx-util-fuTLwrKA.js} +1 -1
  8. package/es/control/dashboard/portlet/menu-portlet/app-menu-portlet/app-menu-portlet.css +1 -1
  9. package/es/control/drtab/flow-drtab.css +1 -1
  10. package/es/control/drtab/flow-drtab.mjs +13 -5
  11. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.d.ts +3 -0
  12. package/es/index.mjs +1 -0
  13. package/es/locale/en/index.d.ts +4 -0
  14. package/es/locale/en/index.mjs +4 -0
  15. package/es/locale/zh-CN/index.d.ts +4 -0
  16. package/es/locale/zh-CN/index.mjs +4 -0
  17. package/es/panel-component/app-switch/app-switch.controller.mjs +4 -1
  18. package/es/panel-component/app-switch/app-switch.d.ts +1 -1
  19. package/es/panel-component/auth-userinfo/auth-userinfo.controller.d.ts +31 -0
  20. package/es/panel-component/auth-userinfo/auth-userinfo.controller.mjs +51 -0
  21. package/es/panel-component/auth-userinfo/auth-userinfo.css +1 -1
  22. package/es/panel-component/auth-userinfo/auth-userinfo.d.ts +7 -4
  23. package/es/panel-component/auth-userinfo/auth-userinfo.mjs +20 -5
  24. package/es/panel-component/auth-userinfo/auth-userinfo.provider.d.ts +2 -1
  25. package/es/panel-component/auth-userinfo/auth-userinfo.provider.mjs +2 -2
  26. package/es/panel-component/auth-userinfo/index.d.ts +4 -3
  27. package/es/panel-component/global-search/global-search.controller.d.ts +10 -3
  28. package/es/panel-component/global-search/global-search.controller.mjs +39 -18
  29. package/es/panel-component/global-search/global-search.d.ts +3 -1
  30. package/es/panel-component/global-search/global-search.mjs +8 -1
  31. package/es/panel-component/global-search/index.d.ts +1 -0
  32. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.controller.mjs +0 -2
  33. package/es/panel-component/panel-app-title/panel-app-title.controller.mjs +5 -2
  34. package/es/panel-component/panel-app-title/panel-app-title.d.ts +1 -0
  35. package/es/panel-component/panel-app-title/panel-app-title.mjs +6 -0
  36. package/es/panel-component/panel-index-view-search/index.d.ts +4 -3
  37. package/es/panel-component/panel-index-view-search/panel-index-view-search.controller.d.ts +31 -0
  38. package/es/panel-component/panel-index-view-search/panel-index-view-search.controller.mjs +51 -0
  39. package/es/panel-component/panel-index-view-search/panel-index-view-search.d.ts +8 -5
  40. package/es/panel-component/panel-index-view-search/panel-index-view-search.mjs +17 -3
  41. package/es/panel-component/panel-index-view-search/panel-index-view-search.provider.d.ts +2 -1
  42. package/es/panel-component/panel-index-view-search/panel-index-view-search.provider.mjs +2 -2
  43. package/es/panel-component/panel-tab-panel/panel-tab-panel.mjs +2 -2
  44. package/es/panel-component/user-action/user-action.d.ts +1 -1
  45. package/es/panel-component/view-msg-pos/view-msg-pos.d.ts +2 -1
  46. package/es/util/app-modal/app-modal-component.css +1 -1
  47. package/es/util/app-modal/app-modal-component.d.ts +6 -1
  48. package/es/util/app-modal/app-modal-component.mjs +45 -4
  49. package/es/util/icon/icon.d.ts +3 -0
  50. package/es/util/icon/icon.mjs +25 -0
  51. package/es/util/index.d.ts +1 -0
  52. package/es/util/index.mjs +1 -0
  53. package/lib/control/dashboard/portlet/menu-portlet/app-menu-portlet/app-menu-portlet.css +1 -1
  54. package/lib/control/drtab/flow-drtab.cjs +13 -5
  55. package/lib/control/drtab/flow-drtab.css +1 -1
  56. package/lib/index.cjs +3 -0
  57. package/lib/locale/en/index.cjs +4 -0
  58. package/lib/locale/zh-CN/index.cjs +4 -0
  59. package/lib/panel-component/app-switch/app-switch.controller.cjs +4 -1
  60. package/lib/panel-component/auth-userinfo/auth-userinfo.cjs +20 -5
  61. package/lib/panel-component/auth-userinfo/auth-userinfo.controller.cjs +53 -0
  62. package/lib/panel-component/auth-userinfo/auth-userinfo.css +1 -1
  63. package/lib/panel-component/auth-userinfo/auth-userinfo.provider.cjs +2 -2
  64. package/lib/panel-component/global-search/global-search.cjs +8 -1
  65. package/lib/panel-component/global-search/global-search.controller.cjs +39 -18
  66. package/lib/panel-component/index-blank-placeholder/index-blank-placeholder.controller.cjs +0 -2
  67. package/lib/panel-component/panel-app-title/panel-app-title.cjs +6 -0
  68. package/lib/panel-component/panel-app-title/panel-app-title.controller.cjs +5 -2
  69. package/lib/panel-component/panel-index-view-search/panel-index-view-search.cjs +16 -2
  70. package/lib/panel-component/panel-index-view-search/panel-index-view-search.controller.cjs +53 -0
  71. package/lib/panel-component/panel-index-view-search/panel-index-view-search.provider.cjs +2 -2
  72. package/lib/panel-component/panel-tab-panel/panel-tab-panel.cjs +2 -2
  73. package/lib/util/app-modal/app-modal-component.cjs +43 -2
  74. package/lib/util/app-modal/app-modal-component.css +1 -1
  75. package/lib/util/icon/icon.cjs +28 -0
  76. package/lib/util/index.cjs +3 -0
  77. package/package.json +4 -4
  78. package/dist/index-dXwgWAM8.js +0 -11
@@ -1 +1 @@
1
- .ibiz-control-appmenu-portlet{--ibiz-control-appmenu-portlet-margin:var(--ibiz-spacing-base-tight);--ibiz-control-appmenu-portlet-border-color:var(--ibiz-color-primary);--ibiz-control-appmenu-portlet-bg-color:var(--ibiz-color-bg-0);--ibiz-control-appmenu-portlet-padding:var(--ibiz-spacing-base-tight)}.ibiz-control-appmenu-portlet__content{display:flex;flex-wrap:wrap;width:100%}.ibiz-control-appmenu-portlet-item{position:relative;display:flex;flex-direction:column;flex-shrink:0;align-items:flex-start;justify-content:center;width:calc(25% - var(--ibiz-control-appmenu-portlet-margin) * 2);padding:var(--ibiz-control-appmenu-portlet-padding);margin:var(--ibiz-control-appmenu-portlet-margin);cursor:pointer;background-color:var(--ibiz-control-appmenu-portlet-bg-color)}.ibiz-control-appmenu-portlet-item::before{position:absolute;left:0;width:4px;height:100%;content:"";background-color:var(--ibiz-control-appmenu-portlet-border-color)}.ibiz-control-appmenu-portlet-group{width:100%}.ibiz-control-appmenu-portlet-group .el-collapse-item__content{display:flex;flex-wrap:wrap}
1
+ .ibiz-control-appmenu-portlet{--ibiz-control-appmenu-portlet-margin:var(--ibiz-spacing-base-tight);--ibiz-control-appmenu-portlet-border-color:var(--ibiz-color-primary);--ibiz-control-appmenu-portlet-bg-color:var(--ibiz-color-bg-0);--ibiz-control-appmenu-portlet-padding:var(--ibiz-spacing-base-tight);--ibiz-control-appmenu-portlet-content-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);padding:var(--ibiz-control-appmenu-portlet-content-padding)}.ibiz-control-appmenu-portlet__content{display:flex;flex-wrap:wrap;width:100%}.ibiz-control-appmenu-portlet-item{position:relative;display:flex;flex-direction:column;flex-shrink:0;align-items:flex-start;justify-content:center;width:calc(25% - var(--ibiz-control-appmenu-portlet-margin) * 2);padding:var(--ibiz-control-appmenu-portlet-padding);margin:var(--ibiz-control-appmenu-portlet-margin);cursor:pointer;background-color:var(--ibiz-control-appmenu-portlet-bg-color)}.ibiz-control-appmenu-portlet-item::before{position:absolute;left:0;width:4px;height:100%;content:"";background-color:var(--ibiz-control-appmenu-portlet-border-color)}.ibiz-control-appmenu-portlet-group{width:100%}.ibiz-control-appmenu-portlet-group .el-collapse-item__content{display:flex;flex-wrap:wrap}
@@ -1 +1 @@
1
- .ibiz-flow-drtab{width:100%;height:100%;overflow:hidden;background-color:var(--ibiz-color-bg-0)}.ibiz-flow-drtab__container{height:100%;overflow:auto}.ibiz-flow-drtab__tab-item{background-color:var(--ibiz-color-bg-1);border-radius:var(--ibiz-border-radius-medium)}.ibiz-flow-drtab__tab-item--label{padding:var(--ibiz-spacing-base);font-size:var(--ibiz-font-size-header-5);border-bottom:1px solid var(--ibiz-color-fill-1)}.ibiz-flow-drtab__tab-item--tab-view{padding:var(--ibiz-spacing-tight) 0}.ibiz-flow-drtab__tab-item+.ibiz-flow-drtab__tab-item{margin-top:var(--ibiz-spacing-base)}.ibiz-flow-drtab__counter{font-size:var(--ibiz-font-size-regular);text-align:center}.ibiz-flow-drtab .ibiz-flow-drtab{background-color:inherit}.ibiz-flow-drtab.is-enable-anchor{display:flex;gap:var(--ibiz-spacing-base)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__container{flex:1}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar{display:flex;min-width:200px;padding:var(--ibiz-spacing-base) 0;font-size:var(--ibiz-font-size-regular);background-color:var(--ibiz-color-bg-1);border-radius:var(--ibiz-border-radius-medium)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-topleft{align-items:start}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-bottomleft{align-items:end}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-topright{flex-direction:row-reverse;align-items:start}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-bottomright{flex-direction:row-reverse;align-items:end}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-middleleft{align-items:center}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-middleright{flex-direction:row-reverse;align-items:center}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-items{width:100%;max-height:100%;overflow:auto}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item{width:100%;height:32px;padding:0 var(--ibiz-spacing-base);overflow:hidden;line-height:32px;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item:hover{color:var(--ibiz-color-primary)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item.is-active{position:relative;color:var(--ibiz-color-primary)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item.is-active::before{position:absolute;top:0;left:0;width:4px;height:100%;content:"";background-color:var(--ibiz-color-primary);border-radius:2px}.ibiz-flow-drtab.is-enable-anchor.is-left{flex-direction:row;overflow:auto}.ibiz-flow-drtab.is-enable-anchor.is-left .ibiz-flow-drtab__container{--navbarwidth:200;flex:1 0;width:calc(100% - var(--navbarwidth) - 2 * var(--ibiz-spacing-base));overflow:unset}.ibiz-flow-drtab.is-enable-anchor.is-left .ibiz-flow-drtab__anchor-bar{position:sticky;top:0}.ibiz-flow-drtab.is-enable-anchor.is-left .ibiz-flow-drtab__anchor-items::-webkit-scrollbar{display:none}.ibiz-flow-drtab.is-enable-anchor.is-right{flex-direction:row-reverse;overflow:auto}.ibiz-flow-drtab.is-enable-anchor.is-right .ibiz-flow-drtab__container{--navbarwidth:200;flex:1 0;width:calc(100% - var(--navbarwidth) - 2 * var(--ibiz-spacing-base));overflow:unset}.ibiz-flow-drtab.is-enable-anchor.is-right .ibiz-flow-drtab__anchor-bar{position:sticky;top:0}.ibiz-flow-drtab.is-enable-anchor.is-right .ibiz-flow-drtab__anchor-items::-webkit-scrollbar{display:none}
1
+ .ibiz-flow-drtab{width:100%;height:100%;overflow:hidden;background-color:var(--ibiz-color-bg-0)}.ibiz-flow-drtab__container{height:100%;overflow:auto}.ibiz-flow-drtab__tab-item{background-color:var(--ibiz-color-bg-1);border-radius:var(--ibiz-border-radius-medium)}.ibiz-flow-drtab__tab-item--label{padding:var(--ibiz-spacing-base);font-size:var(--ibiz-font-size-header-5);border-bottom:1px solid var(--ibiz-color-fill-1)}.ibiz-flow-drtab__tab-item--tab-view{padding:var(--ibiz-spacing-tight) 0}.ibiz-flow-drtab__tab-item+.ibiz-flow-drtab__tab-item{margin-top:var(--ibiz-spacing-base)}.ibiz-flow-drtab__counter{font-size:var(--ibiz-font-size-regular);text-align:center}.ibiz-flow-drtab .ibiz-flow-drtab{background-color:inherit}.ibiz-flow-drtab.is-enable-anchor{display:flex;gap:var(--ibiz-spacing-base)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__container{flex:1}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar{display:flex;min-width:200px;padding:var(--ibiz-spacing-base) 0;font-size:var(--ibiz-font-size-regular);background-color:var(--ibiz-color-bg-1);border-radius:var(--ibiz-border-radius-medium)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-topleft{align-items:start}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-bottomleft{align-items:end}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-topright{flex-direction:row-reverse;align-items:start}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-bottomright{flex-direction:row-reverse;align-items:end}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-middleleft{align-items:center}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-middleright{flex-direction:row-reverse;align-items:center}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-items{width:100%;max-height:100%;overflow:auto}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item{width:100%;height:32px;padding:0 var(--ibiz-spacing-base);overflow:hidden;line-height:32px;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item:hover{color:var(--ibiz-color-primary)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item.is-active{position:relative;color:var(--ibiz-color-primary)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item.is-active::before{position:absolute;top:0;left:0;width:4px;height:100%;content:"";background-color:var(--ibiz-color-primary);border-radius:2px}.ibiz-flow-drtab.is-enable-anchor.is-left{flex-direction:row;overflow:auto}.ibiz-flow-drtab.is-enable-anchor.is-left>.ibiz-flow-drtab__container{--navbarwidth:200px;flex:1 0;width:calc(100% - var(--navbarwidth) - 2 * var(--ibiz-spacing-base));overflow:unset}.ibiz-flow-drtab.is-enable-anchor.is-left .ibiz-flow-drtab__anchor-bar{position:sticky;top:0}.ibiz-flow-drtab.is-enable-anchor.is-left .ibiz-flow-drtab__anchor-items::-webkit-scrollbar{display:none}.ibiz-flow-drtab.is-enable-anchor.is-right{flex-direction:row-reverse;overflow:auto}.ibiz-flow-drtab.is-enable-anchor.is-right>.ibiz-flow-drtab__container{--navbarwidth:200px;flex:1 0;width:calc(100% - var(--navbarwidth) - 2 * var(--ibiz-spacing-base));overflow:unset}.ibiz-flow-drtab.is-enable-anchor.is-right .ibiz-flow-drtab__anchor-bar{position:sticky;top:0}.ibiz-flow-drtab.is-enable-anchor.is-right .ibiz-flow-drtab__anchor-items::-webkit-scrollbar{display:none}
@@ -124,9 +124,6 @@ const FlowDrtab = /* @__PURE__ */ defineComponent({
124
124
  }
125
125
  };
126
126
  const observer = new IntersectionObserver((entries) => {
127
- if (allVisibleViews.value !== completedViews.value) {
128
- return;
129
- }
130
127
  entries.forEach((entry) => {
131
128
  var _a, _b;
132
129
  if (entry.isIntersecting) {
@@ -150,6 +147,15 @@ const FlowDrtab = /* @__PURE__ */ defineComponent({
150
147
  }
151
148
  }
152
149
  });
150
+ visibleViews.sort((a, b) => {
151
+ var _a, _b;
152
+ const aIndex = (_a = allNavTags.value) == null ? void 0 : _a.findIndex((tag) => tag === a);
153
+ const bIndex = (_b = allNavTags.value) == null ? void 0 : _b.findIndex((tag) => tag === b);
154
+ return aIndex - bIndex;
155
+ });
156
+ if (allVisibleViews.value !== completedViews.value || !c.enableAnchor) {
157
+ return;
158
+ }
153
159
  computeSelectItem();
154
160
  });
155
161
  const onViewMounted = (item) => {
@@ -164,7 +170,7 @@ const FlowDrtab = /* @__PURE__ */ defineComponent({
164
170
  if (el) {
165
171
  observer.observe(el);
166
172
  }
167
- if (completedViews.value === allVisibleViews.value && props.activeTab) {
173
+ if (completedViews.value === allVisibleViews.value && props.activeTab && props.activeTab.tag !== props.drtabpages[0].id) {
168
174
  nextTick(() => {
169
175
  scrollToTarget();
170
176
  });
@@ -176,7 +182,9 @@ const FlowDrtab = /* @__PURE__ */ defineComponent({
176
182
  return page.id === newVal.tag;
177
183
  });
178
184
  navtag.value = "".concat(target == null ? void 0 : target.appViewId, "_").concat(newVal.tag);
179
- scrollToTarget();
185
+ if (newVal.tag !== props.drtabpages[0].id) {
186
+ scrollToTarget();
187
+ }
180
188
  }
181
189
  }, {
182
190
  deep: true,
@@ -6,6 +6,9 @@ import './ibiz-markdown-editor.scss';
6
6
  * @primary
7
7
  * @editorparams {"name":"customtheme","parameterType":"'light' | 'dark'","description":"设置Markdown主题,未配置时跟随应用主题"}
8
8
  * @editorparams {"name":"readonly","parameterType":"boolean","defaultvalue":false,"description":"设置编辑器是否为只读态"}
9
+ * @editorparams {"name":"uploadparams","parameterType":"string","description":"上传参数,图片或文件上传时,用于计算上传路径"}
10
+ * @editorparams {"name":"exportparams","parameterType":"string","description":"下载参数,图片或文件下载时,用于计算下载路径"}
11
+ * @editorparams {"name":"osscat","parameterType":"string","description":"用于计算上传和下载路径的OSS参数"}
9
12
  * @ignoreprops autoFocus | overflowMode
10
13
  * @ignoreemits blur | focus | enter | infoTextChange
11
14
  */
package/es/index.mjs CHANGED
@@ -181,6 +181,7 @@ export { useFocusByEnter } from './util/keydown-util/keydown-util.mjs';
181
181
  export { calcAiToolbarItemsByAc } from './util/ai-util/ai-util.mjs';
182
182
  export { convertBtnType } from './util/button-util/button-util.mjs';
183
183
  export { parseHtml } from './util/wang-editor-util/wang-editor-util.mjs';
184
+ export { ArrowLeftBold, ArrowRightBold } from './util/icon/icon.mjs';
184
185
  export { AuthGuard } from './web-app/guard/auth-guard/auth-guard.mjs';
185
186
  export { runApp } from './web-app/main.mjs';
186
187
  export { AppRouter } from './web-app/router/index.mjs';
@@ -1545,6 +1545,10 @@ declare const _default: {
1545
1545
  clearTopic: string;
1546
1546
  clearTopicDesc: string;
1547
1547
  };
1548
+ appModal: {
1549
+ prev: string;
1550
+ next: string;
1551
+ };
1548
1552
  };
1549
1553
  };
1550
1554
  export default _default;
@@ -804,6 +804,10 @@ var index = {
804
804
  aiDesc: "After deletion, the conversation will not be recoverable. Are you sure to delete?",
805
805
  clearTopic: "Clear conversation",
806
806
  clearTopicDesc: "Are you sure to clear all conversation data except for the current activation item?"
807
+ },
808
+ appModal: {
809
+ prev: "Previous record",
810
+ next: "Next record"
807
811
  }
808
812
  },
809
813
  // runTime
@@ -1540,6 +1540,10 @@ declare const _default: {
1540
1540
  clearTopic: string;
1541
1541
  clearTopicDesc: string;
1542
1542
  };
1543
+ appModal: {
1544
+ prev: string;
1545
+ next: string;
1546
+ };
1543
1547
  };
1544
1548
  };
1545
1549
  export default _default;
@@ -800,6 +800,10 @@ var index = {
800
800
  aiDesc: "\u5220\u9664\u540E\uFF0C\u8BE5\u5BF9\u8BDD\u5C06\u4E0D\u53EF\u6062\u590D\u3002\u786E\u8BA4\u5220\u9664\u5417\uFF1F",
801
801
  clearTopic: "\u6E05\u7A7A\u4F1A\u8BDD",
802
802
  clearTopicDesc: "\u786E\u8BA4\u6E05\u7A7A\u9664\u5F53\u524D\u6FC0\u6D3B\u9879\u5916\u7684\u6240\u6709\u4F1A\u8BDD\u6570\u636E\uFF1F"
803
+ },
804
+ appModal: {
805
+ prev: "\u4E0A\u4E00\u4E2A\u8BB0\u5F55",
806
+ next: "\u4E0B\u4E00\u4E2A\u8BB0\u5F55"
803
807
  }
804
808
  },
805
809
  // runTime
@@ -259,7 +259,10 @@ class AppSwitchController extends PanelItemController {
259
259
  await ibiz.hub.getAppAsync(tempKey);
260
260
  }
261
261
  const targetAppModel = ibiz.hub.getAppSourceModel(tempKey);
262
- if (targetAppModel.getDefaultPSAppIndexView) {
262
+ const defaultApp = ibiz.hub.getApp();
263
+ if (defaultApp.model.appId === tempKey && window.Environment.AppTitle) {
264
+ ibiz.env.AppTitle = window.Environment.AppTitle;
265
+ } else if (targetAppModel.getDefaultPSAppIndexView) {
263
266
  const view = targetAppModel.getDefaultPSAppIndexView;
264
267
  if (targetAppModel.caption) {
265
268
  ibiz.env.AppTitle = targetAppModel.caption;
@@ -5,7 +5,7 @@ import './app-switch.scss';
5
5
  /**
6
6
  * 应用切换器
7
7
  * @primary
8
- * @description 应用切换器是前端导航核心组件,通过可视化列表实现多应用快速跳转,使用该能力需在首页视图配置应用选择模式为`默认`。
8
+ * @description 应用切换器是前端导航核心组件,通过可视化列表实现多应用快速跳转,当应用存在子应用时,使用该能力需在首页视图配置应用选择模式为`默认`。
9
9
  * @panelitemparams {name:sourcetype,parameterType:'UTIL' | 'REFAPP',defaultvalue:REFAPP,description:应用源类型,其中UTIL表示微应用数据来源于功能组件服务、REFAPP表示微应用数据来源于引用子应用集(主应用和引用子应用的所有首页)}
10
10
  * @primary
11
11
  */
@@ -0,0 +1,31 @@
1
+ import { PanelItemController } from '@ibiz-template/runtime';
2
+ import { IPanelRawItem } from '@ibiz/model-core';
3
+ /**
4
+ * 面板用户信息控制器
5
+ *
6
+ * @export
7
+ * @class AuthUserinfoController
8
+ * @extends {PanelItemController<IPanelRawItem>}
9
+ */
10
+ export declare class AuthUserinfoController extends PanelItemController<IPanelRawItem> {
11
+ /**
12
+ * @description 自定义补充参数
13
+ * @exposedoc
14
+ * @type {IData}
15
+ * @memberof AuthUserinfoController
16
+ */
17
+ rawItemParams: IData;
18
+ /**
19
+ * 初始化
20
+ *
21
+ * @return {*} {Promise<void>}
22
+ * @memberof AuthUserinfoController
23
+ */
24
+ onInit(): Promise<void>;
25
+ /**
26
+ * @description 处理自定义补充参数 [{key:'name',value:'data'}] => {name:'data'}
27
+ * @protected
28
+ * @memberof AuthUserinfoController
29
+ */
30
+ protected handleRawItemParams(): void;
31
+ }
@@ -0,0 +1,51 @@
1
+ import { PanelItemController } from '@ibiz-template/runtime';
2
+
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+ class AuthUserinfoController extends PanelItemController {
11
+ constructor() {
12
+ super(...arguments);
13
+ /**
14
+ * @description 自定义补充参数
15
+ * @exposedoc
16
+ * @type {IData}
17
+ * @memberof AuthUserinfoController
18
+ */
19
+ __publicField(this, "rawItemParams", {});
20
+ }
21
+ /**
22
+ * 初始化
23
+ *
24
+ * @return {*} {Promise<void>}
25
+ * @memberof AuthUserinfoController
26
+ */
27
+ async onInit() {
28
+ await super.onInit();
29
+ this.handleRawItemParams();
30
+ }
31
+ /**
32
+ * @description 处理自定义补充参数 [{key:'name',value:'data'}] => {name:'data'}
33
+ * @protected
34
+ * @memberof AuthUserinfoController
35
+ */
36
+ handleRawItemParams() {
37
+ var _a;
38
+ const rawItemParams = (_a = this.model.rawItem) == null ? void 0 : _a.rawItemParams;
39
+ if (Array.isArray(rawItemParams)) {
40
+ rawItemParams.forEach((item) => {
41
+ const key = item.key;
42
+ const value = item.value;
43
+ if (key && value) {
44
+ this.rawItemParams[key.toLowerCase()] = value;
45
+ }
46
+ });
47
+ }
48
+ }
49
+ }
50
+
51
+ export { AuthUserinfoController };
@@ -1 +1 @@
1
- .ibiz-user-info{--ibiz-user-info-padding:0 var(--ibiz-spacing-loose);--ibiz-user-info-color:var(--ibiz-color-text-0);--ibiz-user-info-font-size:var(--ibiz-font-size-header-5);--ibiz-user-info-height:44px;display:flex;align-items:center;justify-content:flex-start;width:100%;height:100%}.ibiz-user-info .el-dropdown{width:100%;height:var(--ibiz-user-info-height);padding:var(--ibiz-user-info-padding);cursor:pointer}.ibiz-user-info.is-left .ibiz-user-info__down{display:none}.ibiz-user-info.is-top .ibiz-user-info__down{margin-left:12px;font-size:var(--ibiz-user-info-font-size)}.ibiz-user-info.is-top .ibiz-user-info-avatar{max-width:32px;max-height:32px;margin-right:var(--ibiz-spacing-base)}.ibiz-user-info.is-collapse .el-dropdown{padding:0 var(--ibiz-spacing-base-tight)}.ibiz-user-info.is-collapse .ibiz-user-info-avatar{max-width:32px;max-height:32px;margin:0}.ibiz-user-info-avatar{width:var(--ibiz-user-info-height);height:var(--ibiz-user-info-height);margin-right:10px}.ibiz-user-info-info{width:100%;display:flex;align-items:center;justify-content:space-between;color:var(--ibiz-user-info-color)}.ibiz-user-info-info.is-collapse{justify-content:center}.ibiz-user-info-name__user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-size:var(--ibiz-user-info-font-size);line-height:1.3}.ibiz-user-info-name__person-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px;margin-top:4px;font-size:var(--ibiz-font-size-small);line-height:1.2}.ibiz-user-info-name.is-collapse{display:none}.ibiz-user-info-label{display:flex;align-items:center;justify-content:flex-start;font-size:var(--ibiz-user-info-font-size);color:var(--ibiz-user-info-color);outline:0}
1
+ .ibiz-user-info{--ibiz-user-info-padding:0 var(--ibiz-spacing-loose);--ibiz-user-info-color:var(--ibiz-color-text-0);--ibiz-user-info-font-size:var(--ibiz-font-size-header-5);--ibiz-user-info-height:44px;display:flex;align-items:center;justify-content:flex-start;width:100%;height:100%}.ibiz-user-info .el-dropdown{width:100%;height:var(--ibiz-user-info-height);padding:var(--ibiz-user-info-padding);cursor:pointer}.ibiz-user-info.is-left .ibiz-user-info__down{display:none}.ibiz-user-info.is-top .ibiz-user-info__down{margin-left:12px;font-size:var(--ibiz-user-info-font-size)}.ibiz-user-info.is-top .ibiz-user-info-avatar{max-width:32px;max-height:32px;margin-right:var(--ibiz-spacing-base)}.ibiz-user-info.is-collapse .el-dropdown{padding:0 var(--ibiz-spacing-base-tight)}.ibiz-user-info.is-collapse .ibiz-user-info-avatar{max-width:32px;max-height:32px;margin:0}.ibiz-user-info.is-readonly .el-dropdown{cursor:default}.ibiz-user-info-avatar{width:var(--ibiz-user-info-height);height:var(--ibiz-user-info-height);margin-right:10px}.ibiz-user-info-info{width:100%;display:flex;align-items:center;justify-content:space-between;color:var(--ibiz-user-info-color)}.ibiz-user-info-info.is-collapse{justify-content:center}.ibiz-user-info-name__user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-size:var(--ibiz-user-info-font-size);line-height:1.3}.ibiz-user-info-name__person-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:130px;margin-top:4px;font-size:var(--ibiz-font-size-small);line-height:1.2}.ibiz-user-info-name.is-collapse{display:none}.ibiz-user-info-label{display:flex;align-items:center;justify-content:flex-start;font-size:var(--ibiz-user-info-font-size);color:var(--ibiz-user-info-color);outline:0}
@@ -1,10 +1,12 @@
1
1
  import { PropType } from 'vue';
2
2
  import './auth-userinfo.scss';
3
3
  import { IPanelRawItem } from '@ibiz/model-core';
4
- import { PanelItemController } from '@ibiz-template/runtime';
4
+ import { AuthUserinfoController } from './auth-userinfo.controller';
5
5
  /**
6
6
  * 用户信息
7
7
  * @description 展示用户的基本信息,提供登出功能。
8
+ * @panelitemparams {name:strictly,parameterType:boolean,defaultvalue:false,description:是否取消与首页菜单的关联,即菜单收缩时不会跟随改变,当用户信息未配置在首页左侧时应启用}
9
+ * @panelitemparams {name:readonly,parameterType:boolean,defaultvalue:false,description:是否只读}
8
10
  * @primary
9
11
  */
10
12
  export declare const AuthUserinfo: import("vue").DefineComponent<{
@@ -19,18 +21,19 @@ export declare const AuthUserinfo: import("vue").DefineComponent<{
19
21
  * @description 用户信息控件控制器
20
22
  */
21
23
  controller: {
22
- type: typeof PanelItemController;
24
+ type: typeof AuthUserinfoController;
23
25
  required: true;
24
26
  };
25
27
  }, {
26
28
  ns: import("@ibiz-template/core").Namespace;
27
- c: PanelItemController<import("@ibiz/model-core").IPanelItem>;
29
+ c: AuthUserinfoController;
28
30
  onClick: () => void;
29
31
  srfusername: any;
30
32
  loginname: any;
31
33
  router: import("vue-router").Router;
32
34
  menuAlign: import("vue").ComputedRef<string>;
33
35
  isCollapse: import("vue").ComputedRef<any>;
36
+ isReadonly: import("vue").ComputedRef<boolean>;
34
37
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
35
38
  /**
36
39
  * @description 用户信息控件模型数据
@@ -43,7 +46,7 @@ export declare const AuthUserinfo: import("vue").DefineComponent<{
43
46
  * @description 用户信息控件控制器
44
47
  */
45
48
  controller: {
46
- type: typeof PanelItemController;
49
+ type: typeof AuthUserinfoController;
47
50
  required: true;
48
51
  };
49
52
  }>>, {}, {}>;
@@ -2,7 +2,7 @@ import { inject, computed, resolveComponent, createVNode, defineComponent } from
2
2
  import { useRouter } from 'vue-router';
3
3
  import { useNamespace } from '@ibiz-template/vue3-util';
4
4
  import './auth-userinfo.css';
5
- import { PanelItemController } from '@ibiz-template/runtime';
5
+ import { AuthUserinfoController } from './auth-userinfo.controller.mjs';
6
6
 
7
7
  "use strict";
8
8
  const AuthUserinfo = /* @__PURE__ */ defineComponent({
@@ -19,7 +19,7 @@ const AuthUserinfo = /* @__PURE__ */ defineComponent({
19
19
  * @description 用户信息控件控制器
20
20
  */
21
21
  controller: {
22
- type: PanelItemController,
22
+ type: AuthUserinfoController,
23
23
  required: true
24
24
  }
25
25
  },
@@ -43,8 +43,20 @@ const AuthUserinfo = /* @__PURE__ */ defineComponent({
43
43
  ibiz.hub.controller.logout();
44
44
  };
45
45
  const isCollapse = computed(() => {
46
+ const {
47
+ strictly
48
+ } = c.rawItemParams;
49
+ if (strictly && strictly === "true") {
50
+ return false;
51
+ }
46
52
  return c.panel.view.state.isCollapse;
47
53
  });
54
+ const isReadonly = computed(() => {
55
+ const {
56
+ readonly
57
+ } = c.rawItemParams;
58
+ return readonly === "true";
59
+ });
48
60
  return {
49
61
  ns,
50
62
  c,
@@ -53,13 +65,16 @@ const AuthUserinfo = /* @__PURE__ */ defineComponent({
53
65
  loginname,
54
66
  router,
55
67
  menuAlign,
56
- isCollapse
68
+ isCollapse,
69
+ isReadonly
57
70
  };
58
71
  },
59
72
  render() {
60
73
  return createVNode("div", {
61
- "class": [this.ns.b(), this.ns.m(this.modelData.id), ...this.controller.containerClass, this.ns.is("left", this.menuAlign === "LEFT"), this.ns.is("top", this.menuAlign === "TOP"), this.ns.is("collapse", this.isCollapse)]
62
- }, [createVNode(resolveComponent("el-dropdown"), null, {
74
+ "class": [this.ns.b(), this.ns.m(this.modelData.id), ...this.controller.containerClass, this.ns.is("left", this.menuAlign === "LEFT"), this.ns.is("top", this.menuAlign === "TOP"), this.ns.is("collapse", this.isCollapse), this.ns.is("readonly", this.isReadonly)]
75
+ }, [createVNode(resolveComponent("el-dropdown"), {
76
+ "disabled": this.isReadonly
77
+ }, {
63
78
  default: () => createVNode("div", {
64
79
  "class": [this.ns.b("info"), this.ns.is("collapse", this.isCollapse)]
65
80
  }, [createVNode("div", {
@@ -1,5 +1,6 @@
1
1
  import { IPanelItemProvider, PanelController, PanelItemController } from '@ibiz-template/runtime';
2
2
  import { IPanelItem } from '@ibiz/model-core';
3
+ import { AuthUserinfoController } from './auth-userinfo.controller';
3
4
  /**
4
5
  * 用户信息适配器
5
6
  *
@@ -11,5 +12,5 @@ import { IPanelItem } from '@ibiz/model-core';
11
12
  */
12
13
  export declare class AuthUserinfoProvider implements IPanelItemProvider {
13
14
  component: string;
14
- createController(panelItem: IPanelItem, panel: PanelController, parent: PanelItemController | undefined): Promise<PanelItemController>;
15
+ createController(panelItem: IPanelItem, panel: PanelController, parent: PanelItemController | undefined): Promise<AuthUserinfoController>;
15
16
  }
@@ -1,4 +1,4 @@
1
- import { PanelItemController } from '@ibiz-template/runtime';
1
+ import { AuthUserinfoController } from './auth-userinfo.controller.mjs';
2
2
 
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -12,7 +12,7 @@ class AuthUserinfoProvider {
12
12
  __publicField(this, "component", "IBizAuthUserinfo");
13
13
  }
14
14
  async createController(panelItem, panel, parent) {
15
- const c = new PanelItemController(panelItem, panel, parent);
15
+ const c = new AuthUserinfoController(panelItem, panel, parent);
16
16
  await c.init();
17
17
  return c;
18
18
  }
@@ -4,25 +4,26 @@ export declare const IBizAuthUserinfo: import("@ibiz-template/vue3-util").TypeWi
4
4
  required: true;
5
5
  };
6
6
  controller: {
7
- type: typeof import("@ibiz-template/runtime").PanelItemController;
7
+ type: typeof import("./auth-userinfo.controller").AuthUserinfoController;
8
8
  required: true;
9
9
  };
10
10
  }, {
11
11
  ns: import("@ibiz-template/core").Namespace;
12
- c: import("@ibiz-template/runtime").PanelItemController<import("@ibiz/model-core").IPanelItem>;
12
+ c: import("./auth-userinfo.controller").AuthUserinfoController;
13
13
  onClick: () => void;
14
14
  srfusername: any;
15
15
  loginname: any;
16
16
  router: import("vue-router").Router;
17
17
  menuAlign: import("vue").ComputedRef<string>;
18
18
  isCollapse: import("vue").ComputedRef<any>;
19
+ isReadonly: import("vue").ComputedRef<boolean>;
19
20
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
20
21
  modelData: {
21
22
  type: import("vue").PropType<import("@ibiz/model-core").IPanelRawItem>;
22
23
  required: true;
23
24
  };
24
25
  controller: {
25
- type: typeof import("@ibiz-template/runtime").PanelItemController;
26
+ type: typeof import("./auth-userinfo.controller").AuthUserinfoController;
26
27
  required: true;
27
28
  };
28
29
  }>>, {}, {}>>;
@@ -1,5 +1,5 @@
1
1
  import { PanelItemController } from '@ibiz-template/runtime';
2
- import { IPanelRawItem } from '@ibiz/model-core';
2
+ import { IPanelRawItem, IAppFunc, IAppMenuItem } from '@ibiz/model-core';
3
3
  import { IHttpResponse } from '@ibiz-template/core';
4
4
  import { GlobalSearchState, ISearchItem } from './global-search.state';
5
5
  /**
@@ -28,11 +28,11 @@ export declare class GlobalSearchController extends PanelItemController<IPanelRa
28
28
  /**
29
29
  * @description 自定义参数
30
30
  * @exposedoc
31
- * @protected
31
+ * @public
32
32
  * @type {IData}
33
33
  * @memberof GlobalSearchController
34
34
  */
35
- protected rawItemParams: IData;
35
+ rawItemParams: IData;
36
36
  /**
37
37
  * @description 搜索历史缓存标识
38
38
  * @protected
@@ -91,6 +91,13 @@ export declare class GlobalSearchController extends PanelItemController<IPanelRa
91
91
  * @memberof GlobalSearchController
92
92
  */
93
93
  protected initHistory(): void;
94
+ /**
95
+ * @description 获取全局搜索应用功能
96
+ * @param {IAppMenuItem[]} appMenuItems
97
+ * @returns {*} {Promise<IAppFunc[]>}
98
+ * @memberof GlobalSearchController
99
+ */
100
+ getSearchFunc(appMenuItems: IAppMenuItem[]): Promise<IAppFunc[]>;
94
101
  /**
95
102
  * 初始化全局搜索项
96
103
  *
@@ -1,6 +1,5 @@
1
1
  import { PanelItemController, getControl, getDeACMode, getAcItemProvider, calcDeCodeNameById, OpenAppViewCommand } from '@ibiz-template/runtime';
2
2
  import { notNilEmpty, createUUID } from 'qx-util';
3
- import { recursiveIterate } from '@ibiz-template/core';
4
3
  import { GlobalSearchState } from './global-search.state.mjs';
5
4
 
6
5
  "use strict";
@@ -30,7 +29,7 @@ class GlobalSearchController extends PanelItemController {
30
29
  /**
31
30
  * @description 自定义参数
32
31
  * @exposedoc
33
- * @protected
32
+ * @public
34
33
  * @type {IData}
35
34
  * @memberof GlobalSearchController
36
35
  */
@@ -125,6 +124,38 @@ class GlobalSearchController extends PanelItemController {
125
124
  if (cache)
126
125
  this.state.histories = JSON.parse(cache);
127
126
  }
127
+ /**
128
+ * @description 获取全局搜索应用功能
129
+ * @param {IAppMenuItem[]} appMenuItems
130
+ * @returns {*} {Promise<IAppFunc[]>}
131
+ * @memberof GlobalSearchController
132
+ */
133
+ async getSearchFunc(appMenuItems) {
134
+ const result = [];
135
+ const promises = appMenuItems.map(async (menuItem) => {
136
+ try {
137
+ if (menuItem.appMenuItems) {
138
+ const subFuncs = await this.getSearchFunc(menuItem.appMenuItems);
139
+ result.push(...subFuncs);
140
+ return;
141
+ }
142
+ if (menuItem.appFuncId) {
143
+ let app = ibiz.hub.getApp(menuItem.appId);
144
+ if (!app) {
145
+ app = await ibiz.hub.getAppAsync(menuItem.appId);
146
+ }
147
+ const appFunc = app.getAppFunc(menuItem.appFuncId);
148
+ if (appFunc && appFunc.appFuncType === "SEARCH" && appFunc.appDEACModeId && appFunc.appDataEntityId) {
149
+ result.push(appFunc);
150
+ }
151
+ }
152
+ } catch (err) {
153
+ console.error("\u8BA1\u7B97\u83DC\u5355\u5E94\u7528\u529F\u80FD\u5F02\u5E38: ".concat(menuItem.appFuncId), err);
154
+ }
155
+ });
156
+ await Promise.all(promises);
157
+ return result;
158
+ }
128
159
  /**
129
160
  * 初始化全局搜索项
130
161
  *
@@ -132,24 +163,14 @@ class GlobalSearchController extends PanelItemController {
132
163
  * @memberof GlobalSearchController
133
164
  */
134
165
  async initGlobalSearchItem() {
135
- const appMenu = getControl(this.panel.view.model, "appmenu");
166
+ const appMenu = getControl(
167
+ this.panel.view.model,
168
+ "appmenu"
169
+ );
136
170
  if (!appMenu)
137
171
  return;
138
- const appFuncs = [];
139
- recursiveIterate(
140
- appMenu,
141
- (menuItem) => {
142
- if (menuItem.appFuncId) {
143
- const app = ibiz.hub.getApp(menuItem.appId);
144
- const appFunc = app.getAppFunc(menuItem.appFuncId);
145
- if (appFunc && appFunc.appFuncType === "SEARCH" && appFunc.appDEACModeId && appFunc.appDataEntityId)
146
- appFuncs.push(appFunc);
147
- }
148
- },
149
- {
150
- childrenFields: ["appMenuItems"]
151
- }
152
- );
172
+ const appMenuItems = appMenu.appMenuItems || [];
173
+ const appFuncs = await this.getSearchFunc(appMenuItems);
153
174
  await Promise.all(
154
175
  appFuncs.map(async (func) => {
155
176
  const deACMode = await getDeACMode(
@@ -5,10 +5,11 @@ import './global-search.scss';
5
5
  /**
6
6
  * 全局搜索
7
7
  * @primary
8
- * @description 全局搜索组件,监听快捷键Ctrl+K弹出搜索框,点击搜索时可查询应用信息。
8
+ * @description 全局搜索组件,监听快捷键Ctrl+K弹出搜索框,需在菜单上绑定应用功能预定义类型为GLOBAL_SEARCH的隐藏菜单项,应用功能类型为全局搜索,同时绑定应用实体与自填模式。输入值时会查询实体自填模式数据,同时点击下拉数据后会打开自填模式中的链接视图。每次查询后还会缓存为搜索历史记录。
9
9
  * @panelitemparams {name:historyCacheKey,parameterType:string,defaultvalue:global-search-history,description:搜索历史缓存标识}
10
10
  * @panelitemparams {name:maxhistory,parameterType:number,defaultvalue:7,description:最大历史记录,默认7条}
11
11
  * @panelitemparams {name:size,parameterType:number,defaultvalue:100,description:单次查询最大数量,默认100条}
12
+ * @panelitemparams {name:placeholder,parameterType:string,description:搜索框提示信息}
12
13
  * @export
13
14
  * @class GlobalSearch
14
15
  */
@@ -33,6 +34,7 @@ export declare const GlobalSearch: import("vue").DefineComponent<{
33
34
  visible: import("vue").ComputedRef<boolean>;
34
35
  editorRef: import("vue").Ref<any>;
35
36
  searchValue: import("vue").Ref<string>;
37
+ curPlaceholder: import("vue").ComputedRef<any>;
36
38
  handleFocus: (_evt: FocusEvent) => void;
37
39
  handleEnter: (event: KeyboardEvent) => void;
38
40
  renderAction: () => JSX.Element | undefined;
@@ -46,6 +46,12 @@ const GlobalSearch = /* @__PURE__ */ defineComponent({
46
46
  const showEmpty = histories.includes(query) && list.length === 0;
47
47
  return (showSearch || showEmpty || showHistory || loading) && activated.value;
48
48
  });
49
+ const curPlaceholder = computed(() => {
50
+ const {
51
+ placeholder
52
+ } = c.rawItemParams;
53
+ return placeholder || ibiz.i18n.t("panelComponent.globalSearch.placeholder");
54
+ });
49
55
  const handleEnter = (event) => {
50
56
  if (event.key === "Enter") {
51
57
  activated.value = true;
@@ -188,6 +194,7 @@ const GlobalSearch = /* @__PURE__ */ defineComponent({
188
194
  visible,
189
195
  editorRef,
190
196
  searchValue,
197
+ curPlaceholder,
191
198
  handleFocus,
192
199
  handleEnter,
193
200
  renderAction,
@@ -212,7 +219,7 @@ const GlobalSearch = /* @__PURE__ */ defineComponent({
212
219
  "ref": "editorRef",
213
220
  "modelValue": this.searchValue,
214
221
  "onUpdate:modelValue": ($event) => this.searchValue = $event,
215
- "placeholder": ibiz.i18n.t("panelComponent.globalSearch.placeholder"),
222
+ "placeholder": this.curPlaceholder,
216
223
  "class": [this.ns.e("search"), this.ns.is("search", this.visible)],
217
224
  "onFocus": this.handleFocus,
218
225
  "onKeyup": this.handleEnter,
@@ -13,6 +13,7 @@ export declare const IBizGlobalSearch: import("@ibiz-template/vue3-util").TypeWi
13
13
  visible: import("vue").ComputedRef<boolean>;
14
14
  editorRef: import("vue").Ref<any>;
15
15
  searchValue: import("vue").Ref<string>;
16
+ curPlaceholder: import("vue").ComputedRef<any>;
16
17
  handleFocus: (_evt: FocusEvent) => void;
17
18
  handleEnter: (event: KeyboardEvent) => void;
18
19
  renderAction: () => JSX.Element | undefined;
@@ -57,8 +57,6 @@ class IndexBlankPlaceholderController extends PanelItemController {
57
57
  const appView = await ibiz.hub.config.view.get(appViewId);
58
58
  const { openMode = "INDEXVIEWTAB" } = appView;
59
59
  this.state.visible = !openMode.startsWith("INDEXVIEWTAB");
60
- } else {
61
- this.state.visible = true;
62
60
  }
63
61
  });
64
62
  }
@@ -72,8 +72,11 @@ class PanelAppTitleController extends PanelItemController {
72
72
  if (this.state.icon.endsWith(".svg") || this.state.icon2.endsWith(".svg")) {
73
73
  this.state.isSvg = true;
74
74
  }
75
- if (ibiz.env.AppTitle)
76
- this.state.caption = ibiz.env.AppTitle;
75
+ const defaultApp = ibiz.hub.getApp();
76
+ if (defaultApp.model.appId === indexViewModel.appId) {
77
+ if (ibiz.env.AppTitle)
78
+ this.state.caption = ibiz.env.AppTitle;
79
+ }
77
80
  }
78
81
  /**
79
82
  * 处理自定义补充参数 [{key:'name',value:'data'}] => {name:'data'}
@@ -5,6 +5,7 @@ import './panel-app-title.scss';
5
5
  /**
6
6
  * 应用标题
7
7
  * @description 用于绘制应用logo和应用标题,提供点击标题跳转首页的能力。
8
+ * @panelitemparams {name:strictly,parameterType:boolean,defaultvalue:false,description:是否取消与首页菜单的关联,即菜单收缩时不会跟随改变,当应用标题未配置在首页左侧时应启用}
8
9
  * @primary
9
10
  */
10
11
  export declare const PanelAppTitle: import("vue").DefineComponent<{