@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
@@ -4,7 +4,7 @@ var vue = require('vue');
4
4
  var vueRouter = require('vue-router');
5
5
  var vue3Util = require('@ibiz-template/vue3-util');
6
6
  require('./auth-userinfo.css');
7
- var runtime = require('@ibiz-template/runtime');
7
+ var authUserinfo_controller = require('./auth-userinfo.controller.cjs');
8
8
 
9
9
  "use strict";
10
10
  const AuthUserinfo = /* @__PURE__ */ vue.defineComponent({
@@ -21,7 +21,7 @@ const AuthUserinfo = /* @__PURE__ */ vue.defineComponent({
21
21
  * @description 用户信息控件控制器
22
22
  */
23
23
  controller: {
24
- type: runtime.PanelItemController,
24
+ type: authUserinfo_controller.AuthUserinfoController,
25
25
  required: true
26
26
  }
27
27
  },
@@ -45,8 +45,20 @@ const AuthUserinfo = /* @__PURE__ */ vue.defineComponent({
45
45
  ibiz.hub.controller.logout();
46
46
  };
47
47
  const isCollapse = vue.computed(() => {
48
+ const {
49
+ strictly
50
+ } = c.rawItemParams;
51
+ if (strictly && strictly === "true") {
52
+ return false;
53
+ }
48
54
  return c.panel.view.state.isCollapse;
49
55
  });
56
+ const isReadonly = vue.computed(() => {
57
+ const {
58
+ readonly
59
+ } = c.rawItemParams;
60
+ return readonly === "true";
61
+ });
50
62
  return {
51
63
  ns,
52
64
  c,
@@ -55,13 +67,16 @@ const AuthUserinfo = /* @__PURE__ */ vue.defineComponent({
55
67
  loginname,
56
68
  router,
57
69
  menuAlign,
58
- isCollapse
70
+ isCollapse,
71
+ isReadonly
59
72
  };
60
73
  },
61
74
  render() {
62
75
  return vue.createVNode("div", {
63
- "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)]
64
- }, [vue.createVNode(vue.resolveComponent("el-dropdown"), null, {
76
+ "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)]
77
+ }, [vue.createVNode(vue.resolveComponent("el-dropdown"), {
78
+ "disabled": this.isReadonly
79
+ }, {
65
80
  default: () => vue.createVNode("div", {
66
81
  "class": [this.ns.b("info"), this.ns.is("collapse", this.isCollapse)]
67
82
  }, [vue.createVNode("div", {
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var runtime = require('@ibiz-template/runtime');
4
+
5
+ "use strict";
6
+ var __defProp = Object.defineProperty;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __publicField = (obj, key, value) => {
9
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
+ return value;
11
+ };
12
+ class AuthUserinfoController extends runtime.PanelItemController {
13
+ constructor() {
14
+ super(...arguments);
15
+ /**
16
+ * @description 自定义补充参数
17
+ * @exposedoc
18
+ * @type {IData}
19
+ * @memberof AuthUserinfoController
20
+ */
21
+ __publicField(this, "rawItemParams", {});
22
+ }
23
+ /**
24
+ * 初始化
25
+ *
26
+ * @return {*} {Promise<void>}
27
+ * @memberof AuthUserinfoController
28
+ */
29
+ async onInit() {
30
+ await super.onInit();
31
+ this.handleRawItemParams();
32
+ }
33
+ /**
34
+ * @description 处理自定义补充参数 [{key:'name',value:'data'}] => {name:'data'}
35
+ * @protected
36
+ * @memberof AuthUserinfoController
37
+ */
38
+ handleRawItemParams() {
39
+ var _a;
40
+ const rawItemParams = (_a = this.model.rawItem) == null ? void 0 : _a.rawItemParams;
41
+ if (Array.isArray(rawItemParams)) {
42
+ rawItemParams.forEach((item) => {
43
+ const key = item.key;
44
+ const value = item.value;
45
+ if (key && value) {
46
+ this.rawItemParams[key.toLowerCase()] = value;
47
+ }
48
+ });
49
+ }
50
+ }
51
+ }
52
+
53
+ exports.AuthUserinfoController = 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,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var runtime = require('@ibiz-template/runtime');
3
+ var authUserinfo_controller = require('./auth-userinfo.controller.cjs');
4
4
 
5
5
  "use strict";
6
6
  var __defProp = Object.defineProperty;
@@ -14,7 +14,7 @@ class AuthUserinfoProvider {
14
14
  __publicField(this, "component", "IBizAuthUserinfo");
15
15
  }
16
16
  async createController(panelItem, panel, parent) {
17
- const c = new runtime.PanelItemController(panelItem, panel, parent);
17
+ const c = new authUserinfo_controller.AuthUserinfoController(panelItem, panel, parent);
18
18
  await c.init();
19
19
  return c;
20
20
  }
@@ -48,6 +48,12 @@ const GlobalSearch = /* @__PURE__ */ vue.defineComponent({
48
48
  const showEmpty = histories.includes(query) && list.length === 0;
49
49
  return (showSearch || showEmpty || showHistory || loading) && activated.value;
50
50
  });
51
+ const curPlaceholder = vue.computed(() => {
52
+ const {
53
+ placeholder
54
+ } = c.rawItemParams;
55
+ return placeholder || ibiz.i18n.t("panelComponent.globalSearch.placeholder");
56
+ });
51
57
  const handleEnter = (event) => {
52
58
  if (event.key === "Enter") {
53
59
  activated.value = true;
@@ -190,6 +196,7 @@ const GlobalSearch = /* @__PURE__ */ vue.defineComponent({
190
196
  visible,
191
197
  editorRef,
192
198
  searchValue,
199
+ curPlaceholder,
193
200
  handleFocus,
194
201
  handleEnter,
195
202
  renderAction,
@@ -214,7 +221,7 @@ const GlobalSearch = /* @__PURE__ */ vue.defineComponent({
214
221
  "ref": "editorRef",
215
222
  "modelValue": this.searchValue,
216
223
  "onUpdate:modelValue": ($event) => this.searchValue = $event,
217
- "placeholder": ibiz.i18n.t("panelComponent.globalSearch.placeholder"),
224
+ "placeholder": this.curPlaceholder,
218
225
  "class": [this.ns.e("search"), this.ns.is("search", this.visible)],
219
226
  "onFocus": this.handleFocus,
220
227
  "onKeyup": this.handleEnter,
@@ -2,7 +2,6 @@
2
2
 
3
3
  var runtime = require('@ibiz-template/runtime');
4
4
  var qxUtil = require('qx-util');
5
- var core = require('@ibiz-template/core');
6
5
  var globalSearch_state = require('./global-search.state.cjs');
7
6
 
8
7
  "use strict";
@@ -32,7 +31,7 @@ class GlobalSearchController extends runtime.PanelItemController {
32
31
  /**
33
32
  * @description 自定义参数
34
33
  * @exposedoc
35
- * @protected
34
+ * @public
36
35
  * @type {IData}
37
36
  * @memberof GlobalSearchController
38
37
  */
@@ -127,6 +126,38 @@ class GlobalSearchController extends runtime.PanelItemController {
127
126
  if (cache)
128
127
  this.state.histories = JSON.parse(cache);
129
128
  }
129
+ /**
130
+ * @description 获取全局搜索应用功能
131
+ * @param {IAppMenuItem[]} appMenuItems
132
+ * @returns {*} {Promise<IAppFunc[]>}
133
+ * @memberof GlobalSearchController
134
+ */
135
+ async getSearchFunc(appMenuItems) {
136
+ const result = [];
137
+ const promises = appMenuItems.map(async (menuItem) => {
138
+ try {
139
+ if (menuItem.appMenuItems) {
140
+ const subFuncs = await this.getSearchFunc(menuItem.appMenuItems);
141
+ result.push(...subFuncs);
142
+ return;
143
+ }
144
+ if (menuItem.appFuncId) {
145
+ let app = ibiz.hub.getApp(menuItem.appId);
146
+ if (!app) {
147
+ app = await ibiz.hub.getAppAsync(menuItem.appId);
148
+ }
149
+ const appFunc = app.getAppFunc(menuItem.appFuncId);
150
+ if (appFunc && appFunc.appFuncType === "SEARCH" && appFunc.appDEACModeId && appFunc.appDataEntityId) {
151
+ result.push(appFunc);
152
+ }
153
+ }
154
+ } catch (err) {
155
+ console.error("\u8BA1\u7B97\u83DC\u5355\u5E94\u7528\u529F\u80FD\u5F02\u5E38: ".concat(menuItem.appFuncId), err);
156
+ }
157
+ });
158
+ await Promise.all(promises);
159
+ return result;
160
+ }
130
161
  /**
131
162
  * 初始化全局搜索项
132
163
  *
@@ -134,24 +165,14 @@ class GlobalSearchController extends runtime.PanelItemController {
134
165
  * @memberof GlobalSearchController
135
166
  */
136
167
  async initGlobalSearchItem() {
137
- const appMenu = runtime.getControl(this.panel.view.model, "appmenu");
168
+ const appMenu = runtime.getControl(
169
+ this.panel.view.model,
170
+ "appmenu"
171
+ );
138
172
  if (!appMenu)
139
173
  return;
140
- const appFuncs = [];
141
- core.recursiveIterate(
142
- appMenu,
143
- (menuItem) => {
144
- if (menuItem.appFuncId) {
145
- const app = ibiz.hub.getApp(menuItem.appId);
146
- const appFunc = app.getAppFunc(menuItem.appFuncId);
147
- if (appFunc && appFunc.appFuncType === "SEARCH" && appFunc.appDEACModeId && appFunc.appDataEntityId)
148
- appFuncs.push(appFunc);
149
- }
150
- },
151
- {
152
- childrenFields: ["appMenuItems"]
153
- }
154
- );
174
+ const appMenuItems = appMenu.appMenuItems || [];
175
+ const appFuncs = await this.getSearchFunc(appMenuItems);
155
176
  await Promise.all(
156
177
  appFuncs.map(async (func) => {
157
178
  const deACMode = await runtime.getDeACMode(
@@ -59,8 +59,6 @@ class IndexBlankPlaceholderController extends runtime.PanelItemController {
59
59
  const appView = await ibiz.hub.config.view.get(appViewId);
60
60
  const { openMode = "INDEXVIEWTAB" } = appView;
61
61
  this.state.visible = !openMode.startsWith("INDEXVIEWTAB");
62
- } else {
63
- this.state.visible = true;
64
62
  }
65
63
  });
66
64
  }
@@ -62,6 +62,12 @@ const PanelAppTitle = /* @__PURE__ */ vue.defineComponent({
62
62
  return false;
63
63
  });
64
64
  const isCollapse = vue.computed(() => {
65
+ const {
66
+ strictly
67
+ } = c.rawItemParams;
68
+ if (strictly && strictly === "true") {
69
+ return false;
70
+ }
65
71
  return c.panel.view.state.isCollapse;
66
72
  });
67
73
  const showIcon = vue.computed(() => {
@@ -74,8 +74,11 @@ class PanelAppTitleController extends runtime.PanelItemController {
74
74
  if (this.state.icon.endsWith(".svg") || this.state.icon2.endsWith(".svg")) {
75
75
  this.state.isSvg = true;
76
76
  }
77
- if (ibiz.env.AppTitle)
78
- this.state.caption = ibiz.env.AppTitle;
77
+ const defaultApp = ibiz.hub.getApp();
78
+ if (defaultApp.model.appId === indexViewModel.appId) {
79
+ if (ibiz.env.AppTitle)
80
+ this.state.caption = ibiz.env.AppTitle;
81
+ }
79
82
  }
80
83
  /**
81
84
  * 处理自定义补充参数 [{key:'name',value:'data'}] => {name:'data'}
@@ -4,6 +4,7 @@ var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
5
  var runtime = require('@ibiz-template/runtime');
6
6
  var lodashEs = require('lodash-es');
7
+ var panelIndexViewSearch_controller = require('./panel-index-view-search.controller.cjs');
7
8
  require('./panel-index-view-search.css');
8
9
 
9
10
  "use strict";
@@ -21,7 +22,7 @@ const PanelIndexViewSearch = /* @__PURE__ */ vue.defineComponent({
21
22
  * @description 首页搜索控件控制器
22
23
  */
23
24
  controller: {
24
- type: runtime.PanelItemController,
25
+ type: panelIndexViewSearch_controller.PanelIndexViewSearchController,
25
26
  required: true
26
27
  }
27
28
  },
@@ -43,8 +44,20 @@ const PanelIndexViewSearch = /* @__PURE__ */ vue.defineComponent({
43
44
  return "LEFT";
44
45
  });
45
46
  const isCollapse = vue.computed(() => {
47
+ const {
48
+ strictly
49
+ } = c.rawItemParams;
50
+ if (strictly && strictly === "true") {
51
+ return false;
52
+ }
46
53
  return c.panel.view.state.isCollapse;
47
54
  });
55
+ const curPlaceholder = vue.computed(() => {
56
+ const {
57
+ placeholder
58
+ } = c.rawItemParams;
59
+ return placeholder || ibiz.i18n.t("component.indexSearch.placeholder");
60
+ });
48
61
  const classArr = vue.computed(() => {
49
62
  const {
50
63
  id
@@ -80,6 +93,7 @@ const PanelIndexViewSearch = /* @__PURE__ */ vue.defineComponent({
80
93
  ns,
81
94
  classArr,
82
95
  isCollapse,
96
+ curPlaceholder,
83
97
  onInput,
84
98
  onSearch,
85
99
  c,
@@ -97,7 +111,7 @@ const PanelIndexViewSearch = /* @__PURE__ */ vue.defineComponent({
97
111
  }, [this.menuAlign === "LEFT" && !this.isCollapse && vue.createVNode(vue.resolveComponent("el-input"), {
98
112
  "model-value": this.query,
99
113
  "class": this.ns.b("search"),
100
- "placeholder": ibiz.i18n.t("component.indexSearch.placeholder"),
114
+ "placeholder": this.curPlaceholder,
101
115
  "onInput": this.onInput,
102
116
  "onKeyup": this.onEnter
103
117
  }, {
@@ -0,0 +1,53 @@
1
+ 'use strict';
2
+
3
+ var runtime = require('@ibiz-template/runtime');
4
+
5
+ "use strict";
6
+ var __defProp = Object.defineProperty;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __publicField = (obj, key, value) => {
9
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
+ return value;
11
+ };
12
+ class PanelIndexViewSearchController extends runtime.PanelItemController {
13
+ constructor() {
14
+ super(...arguments);
15
+ /**
16
+ * @description 自定义补充参数
17
+ * @exposedoc
18
+ * @type {IData}
19
+ * @memberof PanelIndexViewSearchController
20
+ */
21
+ __publicField(this, "rawItemParams", {});
22
+ }
23
+ /**
24
+ * 初始化
25
+ *
26
+ * @return {*} {Promise<void>}
27
+ * @memberof PanelIndexViewSearchController
28
+ */
29
+ async onInit() {
30
+ await super.onInit();
31
+ this.handleRawItemParams();
32
+ }
33
+ /**
34
+ * @description 处理自定义补充参数 [{key:'name',value:'data'}] => {name:'data'}
35
+ * @protected
36
+ * @memberof PanelIndexViewSearchController
37
+ */
38
+ handleRawItemParams() {
39
+ var _a;
40
+ const rawItemParams = (_a = this.model.rawItem) == null ? void 0 : _a.rawItemParams;
41
+ if (Array.isArray(rawItemParams)) {
42
+ rawItemParams.forEach((item) => {
43
+ const key = item.key;
44
+ const value = item.value;
45
+ if (key && value) {
46
+ this.rawItemParams[key.toLowerCase()] = value;
47
+ }
48
+ });
49
+ }
50
+ }
51
+ }
52
+
53
+ exports.PanelIndexViewSearchController = PanelIndexViewSearchController;
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var runtime = require('@ibiz-template/runtime');
3
+ var panelIndexViewSearch_controller = require('./panel-index-view-search.controller.cjs');
4
4
 
5
5
  "use strict";
6
6
  var __defProp = Object.defineProperty;
@@ -14,7 +14,7 @@ class PanelIndexViewSearchProvider {
14
14
  __publicField(this, "component", "IBizPanelIndexViewSearch");
15
15
  }
16
16
  async createController(panelItem, panel, parent) {
17
- const c = new runtime.PanelItemController(panelItem, panel, parent);
17
+ const c = new panelIndexViewSearch_controller.PanelIndexViewSearchController(panelItem, panel, parent);
18
18
  await c.init();
19
19
  return c;
20
20
  }
@@ -75,8 +75,8 @@ const PanelTabPanel = /* @__PURE__ */ vue.defineComponent({
75
75
  "label": c.model.caption,
76
76
  "name": c.model.id,
77
77
  "lazy": true
78
- }, _isSlot(slot) ? slot : {
79
- default: () => [slot]
78
+ }, {
79
+ default: () => [this.state.activeTab === c.model.id && slot]
80
80
  });
81
81
  })) ? _slot : {
82
82
  default: () => [_slot]
@@ -6,8 +6,12 @@ var lodashEs = require('lodash-es');
6
6
  var runtime = require('@ibiz-template/runtime');
7
7
  require('./app-modal-component.css');
8
8
  var core = require('@ibiz-template/core');
9
+ var icon = require('../icon/icon.cjs');
9
10
 
10
11
  "use strict";
12
+ function _isSlot(s) {
13
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
14
+ }
11
15
  const AppModalComponent = /* @__PURE__ */ vue.defineComponent({
12
16
  props: {
13
17
  opts: {
@@ -22,6 +26,7 @@ const AppModalComponent = /* @__PURE__ */ vue.defineComponent({
22
26
  zIndex
23
27
  } = vue3Util.useUIStore();
24
28
  const modalZIndex = zIndex.increment();
29
+ let modalView;
25
30
  const customStyle = vue.reactive({});
26
31
  const {
27
32
  width,
@@ -57,6 +62,13 @@ const AppModalComponent = /* @__PURE__ */ vue.defineComponent({
57
62
  ctx.emit("dismiss", data);
58
63
  }
59
64
  });
65
+ const viewShellHooks = new runtime.ViewShellHooks();
66
+ viewShellHooks.hooks.viewCreated.tapPromise(async (_event) => {
67
+ modalView = _event.view;
68
+ });
69
+ const handleViewCreated = (event) => {
70
+ modalView = event.view;
71
+ };
60
72
  const onBeforeClose = async (done) => {
61
73
  const isClose = await modal.dismiss();
62
74
  if (isClose) {
@@ -69,6 +81,12 @@ const AppModalComponent = /* @__PURE__ */ vue.defineComponent({
69
81
  const present = () => {
70
82
  isShow.value = true;
71
83
  };
84
+ const prevRecord = () => {
85
+ modalView == null ? void 0 : modalView.call(runtime.SysUIActionTag.PREV_RECORD);
86
+ };
87
+ const nextRecord = () => {
88
+ modalView == null ? void 0 : modalView.call(runtime.SysUIActionTag.NEXT_RECORD);
89
+ };
72
90
  return {
73
91
  ns,
74
92
  isShow,
@@ -76,13 +94,18 @@ const AppModalComponent = /* @__PURE__ */ vue.defineComponent({
76
94
  modalZIndex,
77
95
  customStyle,
78
96
  modal,
97
+ viewShellHooks,
79
98
  present,
80
99
  dismiss,
81
- onBeforeClose
100
+ onBeforeClose,
101
+ prevRecord,
102
+ nextRecord,
103
+ handleViewCreated
82
104
  };
83
105
  },
84
106
  render() {
85
107
  var _a, _b;
108
+ let _slot, _slot2;
86
109
  return vue.h(vue.resolveComponent("el-dialog"), {
87
110
  modelValue: this.isShow,
88
111
  alignCenter: true,
@@ -91,7 +114,25 @@ const AppModalComponent = /* @__PURE__ */ vue.defineComponent({
91
114
  zIndex: this.modalZIndex,
92
115
  beforeClose: this.onBeforeClose,
93
116
  ...this.options
94
- }, (_b = (_a = this.$slots).default) == null ? void 0 : _b.call(_a, this.modal));
117
+ }, [
118
+ // eslint-disable-next-line vue/no-multiple-slot-args
119
+ (_b = (_a = this.$slots).default) == null ? void 0 : _b.call(_a, this.modal, this.viewShellHooks),
120
+ this.options.openIndicator && vue.createVNode("div", {
121
+ "class": this.ns.e("record")
122
+ }, [vue.createVNode(vue.resolveComponent("el-button"), {
123
+ "class": this.ns.em("record", "prev"),
124
+ "title": ibiz.i18n.t("util.appModal.prev"),
125
+ "onClick": this.prevRecord
126
+ }, _isSlot(_slot = icon.ArrowLeftBold()) ? _slot : {
127
+ default: () => [_slot]
128
+ }), vue.createVNode(vue.resolveComponent("el-button"), {
129
+ "class": this.ns.em("record", "next"),
130
+ "title": ibiz.i18n.t("util.appModal.next"),
131
+ "onClick": this.nextRecord
132
+ }, _isSlot(_slot2 = icon.ArrowRightBold()) ? _slot2 : {
133
+ default: () => [_slot2]
134
+ })])
135
+ ]);
95
136
  }
96
137
  });
97
138
  function createModal(render, opts) {
@@ -1 +1 @@
1
- @charset "UTF-8";.ibiz-modal{--ibiz-modal-z-index:var(--ibiz-z-index-modal);--ibiz-modal-background-color:var(--ibiz-color-bg-1)}.ibiz-modal.el-dialog{overflow:visible}.ibiz-modal .el-dialog__header{position:relative;padding:0}.ibiz-modal .el-dialog__body{height:100%;padding:0;background-color:var(--ibiz-modal-background-color)}.ibiz-modal .el-dialog__headerbtn{top:-40px;right:-60px;border:var(--ibiz-spacing-super-tight) solid var(--ibiz-color-primary-text);border-radius:var(--ibiz-border-radius-circle);display:flex;align-items:center;justify-content:center}.ibiz-modal .el-dialog__headerbtn .el-dialog__close{font-size:var(--ibiz-font-size-header-4);color:var(--ibiz-color-primary-text)}
1
+ @charset "UTF-8";.ibiz-modal{--ibiz-modal-z-index:var(--ibiz-z-index-modal);--ibiz-modal-background-color:var(--ibiz-color-bg-1)}.ibiz-modal__record--prev{position:absolute;top:50%;left:-6px;transform:translate(-100%,-50%)}.ibiz-modal__record--next{position:absolute;top:50%;right:-6px;font-size:var(--ibiz-font-size-regular);transform:translate(100%,-50%)}.ibiz-modal__record .el-button{height:auto;padding:var(--ibiz-spacing-loose) var(--ibiz-spacing-tight);margin:0;--el-button-bg-color:var(--ibiz-color-bg-0);--el-button-text-color:var(--ibiz-color-text-2);--el-button-hover-bg-color:var(--ibiz-color-bg-1);--el-button-hover-text-color:var(--ibiz-color-text-3);--el-button-active-bg-color:var(--ibiz-color-bg-0);--el-button-active-text-color:var(--ibiz-color-text-2)}.ibiz-modal.el-dialog{overflow:visible}.ibiz-modal .el-dialog__header{position:relative;padding:0}.ibiz-modal .el-dialog__body{height:100%;padding:0;background-color:var(--ibiz-modal-background-color)}.ibiz-modal .el-dialog__headerbtn{top:-40px;right:-60px;border:var(--ibiz-spacing-super-tight) solid var(--ibiz-color-primary-text);border-radius:var(--ibiz-border-radius-circle);display:flex;align-items:center;justify-content:center}.ibiz-modal .el-dialog__headerbtn .el-dialog__close{font-size:var(--ibiz-font-size-header-4);color:var(--ibiz-color-primary-text)}
@@ -0,0 +1,28 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+
5
+ "use strict";
6
+ const ArrowLeftBold = () => vue.createVNode("svg", {
7
+ "data-v-9a20e128": "",
8
+ "xmlns": "http://www.w3.org/2000/svg",
9
+ "viewBox": "0 0 1024 1024",
10
+ "width": "1em",
11
+ "height": "1em"
12
+ }, [vue.createVNode("path", {
13
+ "fill": "currentColor",
14
+ "d": "M685.248 104.704a64 64 0 0 1 0 90.496L368.448 512l316.8 316.8a64 64 0 0 1-90.496 90.496L232.704 557.248a64 64 0 0 1 0-90.496l362.048-362.048a64 64 0 0 1 90.496 0z"
15
+ }, null)]);
16
+ const ArrowRightBold = () => vue.createVNode("svg", {
17
+ "data-v-9a20e128": "",
18
+ "xmlns": "http://www.w3.org/2000/svg",
19
+ "viewBox": "0 0 1024 1024",
20
+ "width": "1em",
21
+ "height": "1em"
22
+ }, [vue.createVNode("path", {
23
+ "fill": "currentColor",
24
+ "d": "M338.752 104.704a64 64 0 0 0 0 90.496l316.8 316.8-316.8 316.8a64 64 0 0 0 90.496 90.496l362.048-362.048a64 64 0 0 0 0-90.496L429.248 104.704a64 64 0 0 0-90.496 0z"
25
+ }, null)]);
26
+
27
+ exports.ArrowLeftBold = ArrowLeftBold;
28
+ exports.ArrowRightBold = ArrowRightBold;
@@ -16,6 +16,7 @@ var wangEditorUtil = require('./wang-editor-util/wang-editor-util.cjs');
16
16
  var keydownUtil = require('./keydown-util/keydown-util.cjs');
17
17
  var aiUtil = require('./ai-util/ai-util.cjs');
18
18
  var buttonUtil = require('./button-util/button-util.cjs');
19
+ var icon = require('./icon/icon.cjs');
19
20
 
20
21
  "use strict";
21
22
 
@@ -35,3 +36,5 @@ exports.parseHtml = wangEditorUtil.parseHtml;
35
36
  exports.useFocusByEnter = keydownUtil.useFocusByEnter;
36
37
  exports.calcAiToolbarItemsByAc = aiUtil.calcAiToolbarItemsByAc;
37
38
  exports.convertBtnType = buttonUtil.convertBtnType;
39
+ exports.ArrowLeftBold = icon.ArrowLeftBold;
40
+ exports.ArrowRightBold = icon.ArrowRightBold;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/vue3-components",
3
- "version": "0.7.41-alpha.18",
3
+ "version": "0.7.41-alpha.19",
4
4
  "description": "web端组件库(vue3)",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.mjs",
@@ -36,10 +36,10 @@
36
36
  "@ibiz-template-plugin/data-view": "0.0.4",
37
37
  "@ibiz-template/core": "0.7.41-alpha.18",
38
38
  "@ibiz-template/devtool": "0.0.11",
39
- "@ibiz-template/model-helper": "0.7.41-alpha.18",
40
- "@ibiz-template/runtime": "0.7.41-alpha.18",
39
+ "@ibiz-template/model-helper": "0.7.41-alpha.19",
40
+ "@ibiz-template/runtime": "0.7.41-alpha.19",
41
41
  "@ibiz-template/theme": "0.7.39",
42
- "@ibiz-template/vue3-util": "0.7.41-alpha.18",
42
+ "@ibiz-template/vue3-util": "0.7.41-alpha.19",
43
43
  "@ibiz-template/web-theme": "3.8.0",
44
44
  "@ibiz/model-core": "^0.1.79",
45
45
  "@imengyu/vue3-context-menu": "^1.3.5",