@ibiz-template/vue3-components 0.6.2-dev.0 → 0.6.3

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 (113) hide show
  1. package/dist/chart-IsmrW_d0.js +1 -0
  2. package/dist/index-9YFoUwI0.js +4 -0
  3. package/dist/index.min.css +1 -1
  4. package/dist/index.system.min.js +1 -1
  5. package/dist/{xlsx-util-HHwgsM7j.js → xlsx-util-c9vmypX3.js} +1 -1
  6. package/es/common/action-toolbar/action-toolbar.css +1 -1
  7. package/es/common/action-toolbar/action-toolbar.mjs +6 -2
  8. package/es/common/carousel/carousel.css +1 -0
  9. package/es/common/carousel/carousel.d.ts +133 -0
  10. package/es/common/carousel/carousel.mjs +78 -0
  11. package/es/common/index.mjs +2 -0
  12. package/es/control/calendar/calendar.css +1 -1
  13. package/es/control/calendar/calendar.mjs +22 -19
  14. package/es/control/caption-bar/caption-bar.d.ts +1 -1
  15. package/es/control/caption-bar/caption-bar.mjs +3 -8
  16. package/es/control/chart/chart.css +1 -1
  17. package/es/control/chart/chart.mjs +5 -2
  18. package/es/control/dashboard/dashboard.mjs +3 -1
  19. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.d.ts +7 -0
  20. package/es/control/form/form-detail/form-tab-panel/form-tab-panel.css +1 -1
  21. package/es/control/form/form-detail/form-tab-panel/form-tab-panel.d.ts +1 -0
  22. package/es/control/form/form-detail/form-tab-panel/form-tab-panel.mjs +51 -12
  23. package/es/control/form/form-detail/form-tab-panel/index.d.ts +1 -0
  24. package/es/control/gantt/gantt.css +1 -1
  25. package/es/control/gantt/gantt.mjs +2 -1
  26. package/es/control/search-bar/index.d.ts +1 -0
  27. package/es/control/search-bar/search-bar.d.ts +1 -0
  28. package/es/control/search-bar/search-bar.mjs +10 -0
  29. package/es/control/tab-exp-panel/tab-exp-panel.mjs +16 -9
  30. package/es/editor/carousel/carousel-editor.controller.d.ts +10 -0
  31. package/es/editor/carousel/carousel-editor.controller.mjs +7 -0
  32. package/es/editor/carousel/carousel-editor.provider.d.ts +17 -0
  33. package/es/editor/carousel/carousel-editor.provider.mjs +22 -0
  34. package/es/editor/carousel/ibiz-carousel/ibiz-carousel.css +0 -0
  35. package/es/editor/carousel/ibiz-carousel/ibiz-carousel.d.ts +76 -0
  36. package/es/editor/carousel/ibiz-carousel/ibiz-carousel.mjs +64 -0
  37. package/es/editor/carousel/index.d.ts +3 -0
  38. package/es/editor/carousel/index.mjs +5 -0
  39. package/es/editor/data-picker/ibiz-picker/ibiz-picker.mjs +20 -6
  40. package/es/editor/data-picker/ibiz-picker-embed-view/ibiz-picker-embed-view.d.ts +1 -0
  41. package/es/editor/index.mjs +8 -0
  42. package/es/panel-component/index.mjs +2 -0
  43. package/es/panel-component/panel-static-carousel/index.d.ts +31 -0
  44. package/es/panel-component/panel-static-carousel/index.mjs +18 -0
  45. package/es/panel-component/panel-static-carousel/panel-static-carousel.css +0 -0
  46. package/es/panel-component/panel-static-carousel/panel-static-carousel.d.ts +34 -0
  47. package/es/panel-component/panel-static-carousel/panel-static-carousel.mjs +80 -0
  48. package/es/panel-component/panel-static-carousel/panel-static-carousel.provider.d.ts +15 -0
  49. package/es/panel-component/panel-static-carousel/panel-static-carousel.provider.mjs +21 -0
  50. package/es/panel-component/user-message/index.d.ts +2 -2
  51. package/es/panel-component/user-message/internal-message/common/internal-message-container/internal-message-container.css +1 -1
  52. package/es/panel-component/user-message/internal-message/common/internal-message-container/internal-message-container.mjs +9 -3
  53. package/es/panel-component/user-message/internal-message/common/internal-message-default/internal-message-default.provider.d.ts +1 -0
  54. package/es/panel-component/user-message/internal-message/common/internal-message-default/internal-message-default.provider.mjs +8 -1
  55. package/es/panel-component/user-message/internal-message/internal-message-tab/internal-message-tab.mjs +20 -1
  56. package/es/panel-component/user-message/user-message.d.ts +2 -2
  57. package/es/panel-component/user-message/user-message.mjs +32 -5
  58. package/es/util/app-modal/app-modal-component.d.ts +1 -0
  59. package/es/util/app-modal/app-modal-component.mjs +1 -1
  60. package/es/util/notification-util/notification-util.d.ts +1 -0
  61. package/es/util/notification-util/notification-util.mjs +4 -0
  62. package/es/view-engine/calendar-view.engine.d.ts +3 -1
  63. package/es/view-engine/calendar-view.engine.mjs +11 -0
  64. package/es/view-engine/gantt-view.engine.d.ts +2 -1
  65. package/es/view-engine/gantt-view.engine.mjs +3 -0
  66. package/es/view-engine/opt-view.engine.mjs +1 -1
  67. package/es/view-engine/tree-grid-view.engine.d.ts +1 -0
  68. package/es/view-engine/tree-grid-view.engine.mjs +8 -0
  69. package/es/web-app/components/modal-router-shell/modal-router-shell.mjs +2 -1
  70. package/lib/common/action-toolbar/action-toolbar.cjs +6 -2
  71. package/lib/common/action-toolbar/action-toolbar.css +1 -1
  72. package/lib/common/carousel/carousel.cjs +80 -0
  73. package/lib/common/carousel/carousel.css +1 -0
  74. package/lib/common/index.cjs +2 -0
  75. package/lib/control/calendar/calendar.cjs +22 -19
  76. package/lib/control/calendar/calendar.css +1 -1
  77. package/lib/control/caption-bar/caption-bar.cjs +3 -8
  78. package/lib/control/chart/chart.cjs +5 -2
  79. package/lib/control/chart/chart.css +1 -1
  80. package/lib/control/dashboard/dashboard.cjs +2 -0
  81. package/lib/control/form/form-detail/form-tab-panel/form-tab-panel.cjs +50 -11
  82. package/lib/control/form/form-detail/form-tab-panel/form-tab-panel.css +1 -1
  83. package/lib/control/gantt/gantt.cjs +2 -1
  84. package/lib/control/gantt/gantt.css +1 -1
  85. package/lib/control/search-bar/search-bar.cjs +10 -0
  86. package/lib/control/tab-exp-panel/tab-exp-panel.cjs +15 -8
  87. package/lib/editor/carousel/carousel-editor.controller.cjs +9 -0
  88. package/lib/editor/carousel/carousel-editor.provider.cjs +24 -0
  89. package/lib/editor/carousel/ibiz-carousel/ibiz-carousel.cjs +66 -0
  90. package/lib/editor/carousel/ibiz-carousel/ibiz-carousel.css +0 -0
  91. package/lib/editor/carousel/index.cjs +11 -0
  92. package/lib/editor/data-picker/ibiz-picker/ibiz-picker.cjs +20 -6
  93. package/lib/editor/index.cjs +8 -0
  94. package/lib/panel-component/index.cjs +2 -0
  95. package/lib/panel-component/panel-static-carousel/index.cjs +23 -0
  96. package/lib/panel-component/panel-static-carousel/panel-static-carousel.cjs +82 -0
  97. package/lib/panel-component/panel-static-carousel/panel-static-carousel.css +0 -0
  98. package/lib/panel-component/panel-static-carousel/panel-static-carousel.provider.cjs +23 -0
  99. package/lib/panel-component/user-message/internal-message/common/internal-message-container/internal-message-container.cjs +8 -2
  100. package/lib/panel-component/user-message/internal-message/common/internal-message-container/internal-message-container.css +1 -1
  101. package/lib/panel-component/user-message/internal-message/common/internal-message-default/internal-message-default.provider.cjs +8 -1
  102. package/lib/panel-component/user-message/internal-message/internal-message-tab/internal-message-tab.cjs +19 -0
  103. package/lib/panel-component/user-message/user-message.cjs +30 -3
  104. package/lib/util/app-modal/app-modal-component.cjs +1 -1
  105. package/lib/util/notification-util/notification-util.cjs +4 -0
  106. package/lib/view-engine/calendar-view.engine.cjs +11 -0
  107. package/lib/view-engine/gantt-view.engine.cjs +3 -0
  108. package/lib/view-engine/opt-view.engine.cjs +1 -1
  109. package/lib/view-engine/tree-grid-view.engine.cjs +8 -0
  110. package/lib/web-app/components/modal-router-shell/modal-router-shell.cjs +2 -1
  111. package/package.json +8 -8
  112. package/dist/chart-fWcrZRts.js +0 -1
  113. package/dist/index-NdPkOMvL.js +0 -4
@@ -1,4 +1,4 @@
1
- import { computed, createVNode, defineComponent } from 'vue';
1
+ import { computed, resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import './internal-message-container.css';
4
4
 
@@ -84,14 +84,20 @@ const InternalMessageContainer = /* @__PURE__ */ defineComponent({
84
84
  }, [(_b = (_a = this.$slots).default) == null ? void 0 : _b.call(_a), createVNode("div", {
85
85
  "class": this.ns.b("toolbar")
86
86
  }, [this.finalToolbarItems.map((item) => {
87
- return createVNode("ion-icon", {
87
+ return createVNode(resolveComponent("iBizIcon"), {
88
88
  "class": this.ns.be("toolbar", "button"),
89
- "name": item.icon,
89
+ "icon": {
90
+ imagePath: "svg/read.svg"
91
+ },
92
+ "baseDir": "iconfont",
90
93
  "title": item.tooltip,
91
94
  "onClick": (e) => this.onToolbarClick(e, item.key)
92
95
  }, null);
93
96
  })]), createVNode("div", {
94
97
  "class": this.ns.e("unread-tag")
98
+ }, null), this.isClickable && createVNode("ion-icon", {
99
+ "class": this.ns.e("click-tag"),
100
+ "name": "chevron-forward-outline"
95
101
  }, null)]);
96
102
  }
97
103
  });
@@ -3,6 +3,7 @@ import { IInternalMessageProvider } from '@ibiz-template/runtime';
3
3
  import { VNode } from 'vue';
4
4
  export declare class InternalMessageDefaultProvider implements IInternalMessageProvider {
5
5
  component: unknown;
6
+ router: IData;
6
7
  render(props: IData & {
7
8
  message: IInternalMessage;
8
9
  }): VNode;
@@ -1,6 +1,7 @@
1
1
  import { IBizContext } from '@ibiz-template/core';
2
2
  import { parseViewProtocol, OpenAppViewCommand } from '@ibiz-template/runtime';
3
3
  import { h } from 'vue';
4
+ import { useRouter } from 'vue-router';
4
5
  import { InternalMessageDefault } from './internal-message-default.mjs';
5
6
 
6
7
  "use strict";
@@ -13,6 +14,7 @@ var __publicField = (obj, key, value) => {
13
14
  class InternalMessageDefaultProvider {
14
15
  constructor() {
15
16
  __publicField(this, "component", InternalMessageDefault);
17
+ __publicField(this, "router", useRouter());
16
18
  }
17
19
  render(props) {
18
20
  return h(this.component, {
@@ -24,7 +26,12 @@ class InternalMessageDefaultProvider {
24
26
  await ibiz.hub.notice.internalMessage.markRead(message);
25
27
  const redirectUrl = ibiz.env.isMob ? message.mobile_url : message.url;
26
28
  if (redirectUrl) {
27
- this.openRedirectView(message, redirectUrl);
29
+ if (redirectUrl.startsWith("view://")) {
30
+ this.openRedirectView(message, redirectUrl);
31
+ } else if (redirectUrl.startsWith("route://")) {
32
+ const routeUrl = "/".concat(redirectUrl.split("route://")[1]);
33
+ this.router.push(routeUrl);
34
+ }
28
35
  return true;
29
36
  }
30
37
  return false;
@@ -1,4 +1,4 @@
1
- import { ref, watch, reactive, onUnmounted, createVNode, createTextVNode, resolveComponent, defineComponent } from 'vue';
1
+ import { ref, watch, reactive, onUnmounted, onMounted, createVNode, createTextVNode, resolveComponent, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
3
  import { getInternalMessageProvider } from '@ibiz-template/runtime';
4
4
  import './internal-message-tab.css';
@@ -23,11 +23,13 @@ const InternalMessageTab = /* @__PURE__ */ defineComponent({
23
23
  setup(props, {
24
24
  emit
25
25
  }) {
26
+ var _a;
26
27
  const ns = useNamespace("internal-message-tab");
27
28
  const hiddenPopover = () => {
28
29
  emit("hiddenPopover");
29
30
  };
30
31
  const c = props.controller;
32
+ const unreadOnlyTag = "".concat((_a = ibiz.appData) == null ? void 0 : _a.context.srfsystemid, "-unreadOnly");
31
33
  const hasNotice = ref(false);
32
34
  ibiz.mc.command.internalMessage.on(async (msg) => {
33
35
  ibiz.log.debug("mqtt internalMessage: ", msg);
@@ -68,7 +70,24 @@ const InternalMessageTab = /* @__PURE__ */ defineComponent({
68
70
  };
69
71
  const switchChange = () => {
70
72
  c.toggleUnReadOnly();
73
+ localStorage.setItem(unreadOnlyTag, c.unreadOnly.toString());
71
74
  };
75
+ const initUnreadOnly = () => {
76
+ const unreadOnlyStr = localStorage.getItem(unreadOnlyTag);
77
+ if (unreadOnlyStr) {
78
+ if (unreadOnlyStr === "true") {
79
+ state.unreadOnly = true;
80
+ c.unreadOnly = true;
81
+ } else {
82
+ state.unreadOnly = false;
83
+ c.unreadOnly = false;
84
+ }
85
+ }
86
+ };
87
+ onMounted(() => {
88
+ initUnreadOnly();
89
+ c.load();
90
+ });
72
91
  return {
73
92
  ns,
74
93
  allItems,
@@ -8,7 +8,7 @@ export declare const UserMessage: import("vue").DefineComponent<{
8
8
  required: true;
9
9
  };
10
10
  controller: {
11
- type: typeof PanelItemController;
11
+ type: PropType<PanelItemController<import("@ibiz/model-core").IPanelItem>>;
12
12
  required: true;
13
13
  };
14
14
  }, {
@@ -30,7 +30,7 @@ export declare const UserMessage: import("vue").DefineComponent<{
30
30
  required: true;
31
31
  };
32
32
  controller: {
33
- type: typeof PanelItemController;
33
+ type: PropType<PanelItemController<import("@ibiz/model-core").IPanelItem>>;
34
34
  required: true;
35
35
  };
36
36
  }>>, {}, {}>;
@@ -1,6 +1,6 @@
1
- import { ref, onUnmounted, resolveComponent, createVNode, defineComponent } from 'vue';
1
+ import { ref, onUnmounted, onMounted, resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
- import { PanelItemController, PresetIdentifier } from '@ibiz-template/runtime';
3
+ import { PresetIdentifier } from '@ibiz-template/runtime';
4
4
  import './user-message.css';
5
5
  import { AsyncActionTab } from './async-action/async-action-tab/async-action-tab.mjs';
6
6
  import './internal-message/index.mjs';
@@ -15,7 +15,7 @@ const UserMessage = /* @__PURE__ */ defineComponent({
15
15
  required: true
16
16
  },
17
17
  controller: {
18
- type: PanelItemController,
18
+ type: Object,
19
19
  required: true
20
20
  }
21
21
  },
@@ -24,6 +24,7 @@ const UserMessage = /* @__PURE__ */ defineComponent({
24
24
  const c = props.controller;
25
25
  const noticeController = ibiz.hub.notice;
26
26
  const showPopover = ref(false);
27
+ let hiddenTime = 0;
27
28
  const currentTab = ref("notification");
28
29
  const sysImage = props.modelData.sysImage || {
29
30
  imagePath: "svg/message.svg"
@@ -43,6 +44,29 @@ const UserMessage = /* @__PURE__ */ defineComponent({
43
44
  const onBatchReadClick = () => {
44
45
  noticeController.internalMessage.batchMarkRead();
45
46
  };
47
+ const verifyAuthentication = async () => {
48
+ const res = await ibiz.net.get("/appdata");
49
+ if (res.ok) {
50
+ ibiz.appData = res.data;
51
+ }
52
+ };
53
+ const handleVisibleChange = () => {
54
+ if (document.visibilityState === "hidden") {
55
+ hiddenTime = (/* @__PURE__ */ new Date()).getTime();
56
+ } else {
57
+ const currentTime = (/* @__PURE__ */ new Date()).getTime();
58
+ const elapsedTime = (currentTime - hiddenTime) / 1e3;
59
+ if (elapsedTime > 5 * 60) {
60
+ verifyAuthentication();
61
+ }
62
+ }
63
+ };
64
+ onMounted(() => {
65
+ document.addEventListener("visibilitychange", handleVisibleChange);
66
+ });
67
+ onUnmounted(() => {
68
+ document.removeEventListener("visibilitychange", handleVisibleChange);
69
+ });
46
70
  return {
47
71
  ns,
48
72
  c,
@@ -110,9 +134,12 @@ const UserMessage = /* @__PURE__ */ defineComponent({
110
134
  })]
111
135
  }), createVNode("div", {
112
136
  "class": this.ns.b("popover-icons")
113
- }, [createVNode("ion-icon", {
137
+ }, [createVNode(resolveComponent("iBizIcon"), {
114
138
  "class": this.ns.b("popover-icons-read"),
115
- "name": "checkmark-done-outline",
139
+ "icon": {
140
+ imagePath: "svg/read.svg"
141
+ },
142
+ "baseDir": "iconfont",
116
143
  "title": "\u5168\u90E8\u5DF2\u8BFB",
117
144
  "onClick": this.onBatchReadClick
118
145
  }, null)])]);
@@ -15,6 +15,7 @@ export declare const AppModalComponent: import("vue").DefineComponent<{
15
15
  footerHide?: boolean | undefined;
16
16
  placement?: "center" | undefined;
17
17
  modalClass?: string | undefined;
18
+ isRouteModal?: boolean | undefined;
18
19
  }>;
19
20
  modalZIndex: number;
20
21
  customStyle: IData;
@@ -47,7 +47,7 @@ const AppModalComponent = /* @__PURE__ */ defineComponent({
47
47
  Object.assign(options.value, props.opts);
48
48
  }
49
49
  const modal = new Modal({
50
- mode: ViewMode.MODAL,
50
+ mode: options.value.isRouteModal ? ViewMode.ROUTE_MODAL : ViewMode.MODAL,
51
51
  viewUsage: 2,
52
52
  dismiss: (data) => {
53
53
  zIndex.decrement();
@@ -47,6 +47,7 @@ export declare class NotificationUtil implements INotificationUtil {
47
47
  * @Date: 2023-11-17 16:08:40
48
48
  */
49
49
  private setTimer;
50
+ default(params: NotificationParams): void;
50
51
  info(params: NotificationParams): void;
51
52
  success(params: NotificationParams): void;
52
53
  warning(params: NotificationParams): void;
@@ -71,6 +71,10 @@ class NotificationUtil {
71
71
  }, 50);
72
72
  }
73
73
  }
74
+ default(params) {
75
+ this.callStack.push(() => this.handleNotice(params, ""));
76
+ this.setTimer();
77
+ }
74
78
  info(params) {
75
79
  this.callStack.push(() => this.handleNotice(params, "info"));
76
80
  this.setTimer();
@@ -1,5 +1,7 @@
1
- import { ViewController, ICalendarViewEvent, ICalendarViewState, MDViewEngine } from '@ibiz-template/runtime';
1
+ import { ViewController, ICalendarViewEvent, ICalendarViewState, MDViewEngine, EventBase } from '@ibiz-template/runtime';
2
2
  import { IAppDECalendarView } from '@ibiz/model-core';
3
3
  export declare class CalendarViewEngine extends MDViewEngine {
4
4
  protected view: ViewController<IAppDECalendarView, ICalendarViewState, ICalendarViewEvent>;
5
+ protected onXDataActive(event: EventBase): Promise<void>;
6
+ onCreated(): Promise<void>;
5
7
  }
@@ -2,6 +2,17 @@ import { MDViewEngine } from '@ibiz-template/runtime';
2
2
 
3
3
  "use strict";
4
4
  class CalendarViewEngine extends MDViewEngine {
5
+ // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
6
+ async onXDataActive(event) {
7
+ }
8
+ async onCreated() {
9
+ super.onCreated();
10
+ const { model } = this.view;
11
+ if (!this.view.slotProps.calendar) {
12
+ this.view.slotProps.calendar = {};
13
+ }
14
+ this.view.slotProps.calendar.mdctrlActiveMode = model.mdctrlActiveMode;
15
+ }
5
16
  }
6
17
 
7
18
  export { CalendarViewEngine };
@@ -1,8 +1,9 @@
1
- import { MDViewEngine, ViewController, IGanttViewState, IGanttViewEvent, IGanttController } from '@ibiz-template/runtime';
1
+ import { MDViewEngine, ViewController, IGanttViewState, IGanttViewEvent, IGanttController, EventBase } from '@ibiz-template/runtime';
2
2
  import { IAppDEGanttView } from '@ibiz/model-core';
3
3
  export declare class GanttViewEngine extends MDViewEngine {
4
4
  protected view: ViewController<IAppDEGanttView, IGanttViewState, IGanttViewEvent>;
5
5
  get gantt(): IGanttController;
6
6
  call(key: string, args: any): Promise<IData | null | undefined>;
7
+ protected onXDataActive(event: EventBase): Promise<void>;
7
8
  onCreated(): Promise<void>;
8
9
  }
@@ -25,6 +25,9 @@ class GanttViewEngine extends MDViewEngine {
25
25
  }
26
26
  return super.call(key, args);
27
27
  }
28
+ // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
29
+ async onXDataActive(event) {
30
+ }
28
31
  async onCreated() {
29
32
  super.onCreated();
30
33
  const { model } = this.view;
@@ -30,7 +30,7 @@ class OptViewEngine extends ViewEngineBase {
30
30
  }
31
31
  this.view.slotProps.toolbar.manualCalcButtonState = true;
32
32
  modal.hooks.shouldDismiss.tapPromise(async (context) => {
33
- if (this.form.state.modified) {
33
+ if (this.form.state.modified && this.view.model.enableDirtyChecking === true) {
34
34
  const isAllow = await ibiz.confirm.error({
35
35
  title: "\u5173\u95ED\u63D0\u9192",
36
36
  desc: "\u8868\u5355\u6570\u636E\u5DF2\u7ECF\u4FEE\u6539\uFF0C\u786E\u5B9A\u8981\u5173\u95ED\uFF1F"
@@ -13,4 +13,5 @@ export declare class TreeGridViewEngine extends GridViewEngine {
13
13
  * @memberof TreeGridViewEngine
14
14
  */
15
15
  get xdataControlName(): string;
16
+ onCreated(): Promise<void>;
16
17
  }
@@ -14,6 +14,14 @@ class TreeGridViewEngine extends GridViewEngine {
14
14
  get xdataControlName() {
15
15
  return "treegrid";
16
16
  }
17
+ async onCreated() {
18
+ await super.onCreated();
19
+ if (!this.view.slotProps.treegrid) {
20
+ this.view.slotProps.treegrid = this.view.slotProps.grid;
21
+ } else {
22
+ Object.assign(this.view.slotProps.treegrid, this.view.slotProps.grid);
23
+ }
24
+ }
17
25
  }
18
26
 
19
27
  export { TreeGridViewEngine };
@@ -92,7 +92,8 @@ const ModalRouterShell = /* @__PURE__ */ defineComponent({
92
92
  const opts = {
93
93
  width: (appView == null ? void 0 : appView.width) || "80%",
94
94
  height: (appView == null ? void 0 : appView.height) || "80%",
95
- footerHide: true
95
+ footerHide: true,
96
+ isRouteModal: true
96
97
  };
97
98
  overlay = ibiz.overlay.createModal(component, void 0, opts);
98
99
  overlay.present();
@@ -102,9 +102,13 @@ const IBizActionToolbar = /* @__PURE__ */ vue.defineComponent({
102
102
  "disabled": this.actionsState[detail.id].disabled,
103
103
  "class": this.calcActionItemClass(detail)
104
104
  }, {
105
- default: () => [detail.showIcon && detail.sysImage && vue.createVNode(vue.resolveComponent("iBizIcon"), {
105
+ default: () => [vue.createVNode("div", {
106
+ "class": this.ns.em("item", "icon")
107
+ }, [detail.showIcon && detail.sysImage && vue.createVNode(vue.resolveComponent("iBizIcon"), {
106
108
  "icon": detail.sysImage
107
- }, null), detail.showCaption ? detail.caption : ""]
109
+ }, null)]), vue.createVNode("div", {
110
+ "class": this.ns.em("item", "label")
111
+ }, [detail.showCaption ? detail.caption : ""])]
108
112
  })];
109
113
  }
110
114
  return null;
@@ -1 +1 @@
1
- @charset "UTF-8";.ibiz-action-toolbar{--ibiz-action-toolbar-item-margin:0 0 0 4px;--ibiz-action-toolbar-separator-height:20px;--ibiz-action-toolbar-separator-width:2px;--ibiz-action-toolbar-separator-color:var(--ibiz-color-border);--ibiz-action-toolbar-popover-padding:8px 0;--ibiz-action-toolbar-popover-button-padding:8px 20px;--ibiz-action-toolbar-popover-button-color:var(--ibiz-color-text-2);--ibiz-action-toolbar-popover-button-hover-bg:var(--ibiz-color-bg-0)}.ibiz-action-toolbar__item{padding:var(--ibiz-spacing-extra-tight) 0}.ibiz-action-toolbar__item+.ibiz-action-toolbar__item{margin:var(--ibiz-action-toolbar-item-margin)}.ibiz-action-toolbar__item .ibiz-icon{margin-right:3px}.ibiz-action-toolbar__popover{--ibiz-action-toolbar-item-margin:0 0 0 4px;--ibiz-action-toolbar-separator-height:20px;--ibiz-action-toolbar-separator-width:2px;--ibiz-action-toolbar-separator-color:var(--ibiz-color-border);--ibiz-action-toolbar-popover-padding:8px 0;--ibiz-action-toolbar-popover-button-padding:8px 20px;--ibiz-action-toolbar-popover-button-color:var(--ibiz-color-text-2);--ibiz-action-toolbar-popover-button-hover-bg:var(--ibiz-color-bg-0);width:auto!important;min-width:150px;--el-popover-padding:var(--ibiz-action-toolbar-popover-padding)}.ibiz-action-toolbar__popover .el-button{--el-button-size:40px;display:block;width:100%;padding:var(--ibiz-action-toolbar-popover-button-padding);margin:0;font-size:14px;color:var(--ibiz-action-toolbar-popover-button-color);text-align:left;border-radius:0}.ibiz-action-toolbar__popover .el-button:hover{background-color:var(--ibiz-action-toolbar-popover-button-hover-bg)}.ibiz-action-toolbar__popover .el-button .ibiz-icon{margin-right:6px}.ibiz-action-toolbar__separator{margin:0}.ibiz-action-toolbar--dropdown .ibiz-action-toolbar__caption{cursor:pointer}.ibiz-action-toolbar--dropdown .ibiz-action-toolbar__caption-icon{vertical-align:bottom}
1
+ @charset "UTF-8";.ibiz-action-toolbar{--ibiz-action-toolbar-item-margin:0 4px 0 0;--ibiz-action-toolbar-separator-height:20px;--ibiz-action-toolbar-separator-width:2px;--ibiz-action-toolbar-separator-color:var(--ibiz-color-border);--ibiz-action-toolbar-popover-padding:8px 0;--ibiz-action-toolbar-popover-button-padding:8px 20px;--ibiz-action-toolbar-popover-button-color:var(--ibiz-color-text-2);--ibiz-action-toolbar-popover-button-hover-bg:var(--ibiz-color-bg-0);display:flex;flex-wrap:wrap}.ibiz-action-toolbar__item{padding:var(--ibiz-spacing-extra-tight) 0;margin:var(--ibiz-action-toolbar-item-margin)}.ibiz-action-toolbar__item--icon{display:flex;align-items:center;justify-content:center;width:14px;height:14px;margin-right:3px;font-size:14px}.ibiz-action-toolbar__item+.ibiz-action-toolbar__item{margin:var(--ibiz-action-toolbar-item-margin)}.ibiz-action-toolbar__popover{--ibiz-action-toolbar-item-margin:0 4px 0 0;--ibiz-action-toolbar-separator-height:20px;--ibiz-action-toolbar-separator-width:2px;--ibiz-action-toolbar-separator-color:var(--ibiz-color-border);--ibiz-action-toolbar-popover-padding:8px 0;--ibiz-action-toolbar-popover-button-padding:8px 20px;--ibiz-action-toolbar-popover-button-color:var(--ibiz-color-text-2);--ibiz-action-toolbar-popover-button-hover-bg:var(--ibiz-color-bg-0);width:auto!important;min-width:150px;--el-popover-padding:var(--ibiz-action-toolbar-popover-padding)}.ibiz-action-toolbar__popover .el-button{--el-button-size:40px;display:block;width:100%;padding:var(--ibiz-action-toolbar-popover-button-padding);margin:0;font-size:14px;color:var(--ibiz-action-toolbar-popover-button-color);text-align:left;border-radius:0}.ibiz-action-toolbar__popover .el-button:hover{background-color:var(--ibiz-action-toolbar-popover-button-hover-bg)}.ibiz-action-toolbar__popover .el-button .ibiz-icon{margin-right:6px}.ibiz-action-toolbar__separator{margin:0}.ibiz-action-toolbar--dropdown .ibiz-action-toolbar__caption{cursor:pointer}.ibiz-action-toolbar--dropdown .ibiz-action-toolbar__caption-icon{vertical-align:bottom}
@@ -0,0 +1,80 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ require('./carousel.css');
6
+
7
+ "use strict";
8
+ function _isSlot(s) {
9
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
10
+ }
11
+ const IBizCarouselComponent = /* @__PURE__ */ vue.defineComponent({
12
+ name: "IBizCarouselComponent",
13
+ props: {
14
+ carouselData: {
15
+ type: Array,
16
+ required: true
17
+ },
18
+ isAuto: {
19
+ type: Boolean,
20
+ default: true
21
+ },
22
+ timeSpan: {
23
+ type: Number,
24
+ default: 3e3
25
+ }
26
+ },
27
+ setup(props) {
28
+ const ns = vue3Util.useNamespace("carousel-component");
29
+ const swipeData = vue.ref([]);
30
+ vue.watch(() => props.carouselData, (newVal, oldVal) => {
31
+ if (newVal !== oldVal) {
32
+ swipeData.value = newVal;
33
+ }
34
+ }, {
35
+ immediate: true
36
+ });
37
+ return {
38
+ ns,
39
+ swipeData
40
+ };
41
+ },
42
+ render() {
43
+ let _slot;
44
+ const renderPic = (item) => {
45
+ if (item.cssClass) {
46
+ if (item.cssClass.indexOf("fa-") !== -1) {
47
+ return vue.createVNode("i", {
48
+ "class": [item.cssClass]
49
+ }, null);
50
+ }
51
+ return vue.createVNode("ion-icon", {
52
+ "name": item.cssClass
53
+ }, null);
54
+ }
55
+ if (item.imgUrl) {
56
+ return vue.createVNode("img", {
57
+ "src": item.imgUrl,
58
+ "alt": item.name
59
+ }, null);
60
+ }
61
+ };
62
+ return vue.createVNode("div", null, [vue.createVNode(vue.resolveComponent("el-carousel"), {
63
+ "class": this.ns.b(),
64
+ "autoplay": this.isAuto,
65
+ "interval": this.timeSpan
66
+ }, _isSlot(_slot = this.swipeData.map((item) => {
67
+ return vue.createVNode(vue.resolveComponent("el-carousel-item"), {
68
+ "key": item.id
69
+ }, {
70
+ default: () => [item.linkPath ? vue.createVNode("a", {
71
+ "href": item.linkPath
72
+ }, [renderPic(item)]) : renderPic(item)]
73
+ });
74
+ })) ? _slot : {
75
+ default: () => [_slot]
76
+ })]);
77
+ }
78
+ });
79
+
80
+ exports.IBizCarouselComponent = IBizCarouselComponent;
@@ -0,0 +1 @@
1
+ .ibiz-carousel-component .el-carousel__container .el-carousel__item{display:flex;align-items:center;justify-content:center}.ibiz-carousel-component .el-carousel__container .el-carousel__item img{display:inline-block;width:100%;height:100%}
@@ -21,6 +21,7 @@ var dataImport2Table = require('./data-import2-table/data-import2-table.cjs');
21
21
  var dataImport2Select = require('./data-import2-select/data-import2-select.cjs');
22
22
  var gridSetting = require('./grid-setting/grid-setting.cjs');
23
23
  var doingNotice = require('./doing-notice/doing-notice.cjs');
24
+ var carousel = require('./carousel/carousel.cjs');
24
25
 
25
26
  "use strict";
26
27
  const IBizCommonComponents = {
@@ -55,6 +56,7 @@ const IBizCommonComponents = {
55
56
  })
56
57
  );
57
58
  v.component(vue3Util.IBizBadge.name, vue3Util.IBizBadge);
59
+ v.component(carousel.IBizCarouselComponent.name, carousel.IBizCarouselComponent);
58
60
  }
59
61
  };
60
62
 
@@ -107,6 +107,7 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
107
107
  "class": itemClass,
108
108
  "key": item.deData.srfkey,
109
109
  "style": style,
110
+ "title": item.tips || item.text,
110
111
  "onClick": () => this.c.onRowClick(item),
111
112
  "onDblclick": () => this.c.onDbRowClick(item)
112
113
  }, [item.text]);
@@ -130,7 +131,6 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
130
131
  return renderCalendarList(items);
131
132
  };
132
133
  const renderElCalender = () => {
133
- var _a;
134
134
  return vue.createVNode("div", {
135
135
  "class": this.ns.b("content")
136
136
  }, [vue.createVNode(vue.resolveComponent("el-calendar"), {
@@ -141,8 +141,11 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
141
141
  header: ({
142
142
  date
143
143
  }) => {
144
+ var _a;
144
145
  let _slot, _slot2, _slot3, _slot4, _slot5;
145
- return [vue.createVNode("span", null, [date]), vue.createVNode("div", {
146
+ return [vue.createVNode("span", {
147
+ "class": this.ns.b("content-title")
148
+ }, [date]), vue.createVNode("div", {
146
149
  "class": this.ns.b("content-header")
147
150
  }, [vue.createVNode(vue.resolveComponent("el-date-picker"), {
148
151
  "modelValue": this.c.state.selectedDate,
@@ -185,6 +188,22 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
185
188
  }, _isSlot(_slot5 = ibiz.i18n.t("control.calendar.nextYear")) ? _slot5 : {
186
189
  default: () => [_slot5]
187
190
  })]
191
+ })]), vue.createVNode("div", {
192
+ "class": this.ns.b("legend")
193
+ }, [(_a = this.c.model.sysCalendarItems) == null ? void 0 : _a.map((calendarItem) => {
194
+ let label = calendarItem.name;
195
+ if (calendarItem.nameLanguageRes) {
196
+ label = ibiz.i18n.t(calendarItem.nameLanguageRes.lanResTag, calendarItem.name);
197
+ }
198
+ return vue.createVNode("div", {
199
+ "class": this.ns.e("calendar-item")
200
+ }, [vue.createVNode("div", {
201
+ "class": this.ns.e("icon"),
202
+ "style": {
203
+ background: calendarItem.bkcolor,
204
+ color: calendarItem.color
205
+ }
206
+ }, null), label]);
188
207
  })])];
189
208
  },
190
209
  "date-cell": ({
@@ -201,23 +220,7 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
201
220
  "class": this.ns.b("items")
202
221
  }, [renderCalendarItems(date)])]);
203
222
  }
204
- }), vue.createVNode("div", {
205
- "class": this.ns.b("footer")
206
- }, [(_a = this.c.model.sysCalendarItems) == null ? void 0 : _a.map((calendarItem) => {
207
- let label = calendarItem.name;
208
- if (calendarItem.nameLanguageRes) {
209
- label = ibiz.i18n.t(calendarItem.nameLanguageRes.lanResTag, calendarItem.name);
210
- }
211
- return vue.createVNode("div", {
212
- "class": this.ns.e("calendar-item")
213
- }, [vue.createVNode("div", {
214
- "class": this.ns.e("icon"),
215
- "style": {
216
- background: calendarItem.bkcolor,
217
- color: calendarItem.color
218
- }
219
- }, null), label]);
220
- })])]);
223
+ })]);
221
224
  };
222
225
  const renderNoData = () => {
223
226
  const {
@@ -1 +1 @@
1
- .ibiz-control-calendar{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);width:100%;height:100%}.ibiz-control-calendar__calendar-item{display:flex;align-items:center;padding:var(--ibiz-control-calendar-item-padding)}.ibiz-control-calendar__icon{width:10px;height:10px;margin-right:var(--ibiz-spacing-base-tight);border-radius:50%}.ibiz-control-calendar-content{display:flex;flex-direction:column;width:100%;height:100%}.ibiz-control-calendar-content .el-calendar{display:flex;flex-direction:column}.ibiz-control-calendar-content .el-calendar-table,.ibiz-control-calendar-content .el-calendar-table .el-calendar-day{width:100%;height:100%;cursor:pointer}.ibiz-control-calendar-content .el-calendar-table{flex:1;width:-moz-fit-content;width:fit-content}.ibiz-control-calendar-content .el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.ibiz-control-calendar-content .el-calendar__body{display:flex;flex:1;padding:0}.ibiz-control-calendar-item{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);height:100%;padding:var(--ibiz-control-calendar-item-padding);margin-bottom:var(--ibiz-control-calendar-margin);overflow:hidden;font-size:var(--ibiz-control-calendar-font-size);color:var(--ibiz-control-calendar-text-color);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border:solid .5px transparent;border-radius:var(--ibiz-control-calendar-border-radius)}.ibiz-control-calendar-item:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-control-calendar-item.is-active{background-color:var(--ibiz-control-calendar-active-bg-color);border:solid .5px var(--ibiz-control-calendar-border-color)}.ibiz-control-calendar-date-text{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);padding:var(--ibiz-control-calendar-item-padding);margin-top:0}.ibiz-control-calendar-day{height:-moz-fit-content;height:fit-content}.ibiz-control-calendar-content-header{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);display:flex;align-items:center}.ibiz-control-calendar-content-header>*+*{margin-left:var(--ibiz-control-calendar-item-padding)}.ibiz-control-calendar-footer{display:flex;justify-content:flex-end}.ibiz-control-calendar-footer>*+*{margin-left:var(--ibiz-spacing-base-loose)}.ibiz-control-calendar-timeline-content .el-timeline{padding-left:0}
1
+ .ibiz-control-calendar{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);width:100%;height:100%}.ibiz-control-calendar__calendar-item{display:flex;align-items:center;padding:var(--ibiz-control-calendar-item-padding)}.ibiz-control-calendar__icon{width:10px;height:10px;margin-right:var(--ibiz-spacing-base-tight);border-radius:50%}.ibiz-control-calendar-content{display:flex;flex-direction:column;width:100%;height:100%}.ibiz-control-calendar-content .el-calendar{display:flex;flex-direction:column}.ibiz-control-calendar-content .el-calendar__header{flex-wrap:wrap}.ibiz-control-calendar-content .el-calendar-table,.ibiz-control-calendar-content .el-calendar-table .el-calendar-day{width:100%;height:100%;cursor:pointer}.ibiz-control-calendar-content .el-calendar-table{flex:1;width:-moz-fit-content;width:fit-content}.ibiz-control-calendar-content .el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.ibiz-control-calendar-content .el-calendar__body{display:flex;flex:1;padding:0}.ibiz-control-calendar-item{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);height:100%;padding:var(--ibiz-control-calendar-item-padding);margin-bottom:var(--ibiz-control-calendar-margin);overflow:hidden;font-size:var(--ibiz-control-calendar-font-size);color:var(--ibiz-control-calendar-text-color);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border:solid .5px transparent;border-radius:var(--ibiz-control-calendar-border-radius)}.ibiz-control-calendar-item:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-control-calendar-item.is-active{background-color:var(--ibiz-control-calendar-active-bg-color);border:solid .5px var(--ibiz-control-calendar-border-color)}.ibiz-control-calendar-date-text{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);padding:var(--ibiz-control-calendar-item-padding);margin-top:0}.ibiz-control-calendar-day{height:-moz-fit-content;height:fit-content}.ibiz-control-calendar-content-title{line-height:var(--ibiz-editor-default-line-height)}.ibiz-control-calendar-content-header{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);display:flex;align-items:center}.ibiz-control-calendar-content-header>*+*{margin-left:var(--ibiz-control-calendar-item-padding)}.ibiz-control-calendar-legend{display:flex;justify-content:flex-end;width:100%}.ibiz-control-calendar-legend>*+*{margin-left:var(--ibiz-spacing-base-loose)}.ibiz-control-calendar-timeline-content .el-timeline{padding-left:0}
@@ -2,8 +2,8 @@
2
2
 
3
3
  var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
- require('./caption-bar.css');
6
5
  var runtime = require('@ibiz-template/runtime');
6
+ require('./caption-bar.css');
7
7
 
8
8
  "use strict";
9
9
  const CaptionBarControl = /* @__PURE__ */ vue.defineComponent({
@@ -28,14 +28,9 @@ const CaptionBarControl = /* @__PURE__ */ vue.defineComponent({
28
28
  setup() {
29
29
  const c = vue3Util.useControlController((...args) => new runtime.CaptionBarController(...args));
30
30
  const ns = vue3Util.useNamespace("control-".concat(c.model.controlType.toLowerCase()));
31
- const modalMode = c.view.modal.mode;
32
- if (modalMode === "ROUTE") {
33
- ibiz.util.setBrowserTitle(c.state.caption);
34
- }
31
+ c.setBrowserTabTitle();
35
32
  vue.onActivated(() => {
36
- if (modalMode === "ROUTE") {
37
- ibiz.util.setBrowserTitle(c.state.caption);
38
- }
33
+ c.setBrowserTabTitle();
39
34
  });
40
35
  return {
41
36
  c,
@@ -54,9 +54,12 @@ const ChartControl = /* @__PURE__ */ vue.defineComponent({
54
54
  return vue.createVNode(vue.resolveComponent("iBizControlBase"), {
55
55
  "controller": this.c
56
56
  }, {
57
- default: () => [vue.createVNode("div", {
57
+ default: () => [vue.createVNode(vue.resolveComponent("el-empty"), {
58
+ "class": [this.ns.e("empty"), this.ns.is("no-data", this.c.state.items.length === 0)],
59
+ "description": "\u6682\u65E0\u6570\u636E"
60
+ }, null), vue.createVNode("div", {
58
61
  "ref": "chartRef",
59
- "class": this.ns.e("chart")
62
+ "class": [this.ns.e("chart"), this.ns.is("no-data", this.c.state.items.length === 0)]
60
63
  }, [ibiz.i18n.t("control.chart.chartPlaceholder")])]
61
64
  });
62
65
  }
@@ -1 +1 @@
1
- .ibiz-control-chart{width:100%;height:100%}.ibiz-control-chart__chart{width:100%;height:100%}
1
+ .ibiz-control-chart{width:100%;height:100%}.ibiz-control-chart__chart{width:100%;height:100%}.ibiz-control-chart__chart.is-no-data{display:none}.ibiz-control-chart__empty{display:none;height:100%}.ibiz-control-chart__empty.is-no-data{display:flex}
@@ -58,6 +58,7 @@ const DashboardControl = /* @__PURE__ */ vue.defineComponent({
58
58
  },
59
59
  setup() {
60
60
  const c = vue3Util.useControlController((...args) => new runtime.DashboardController(...args));
61
+ const vue$1 = vue.getCurrentInstance().proxy;
61
62
  const customModelDatas = vue.ref([]);
62
63
  const ns = vue3Util.useNamespace("control-".concat(c.model.controlType.toLowerCase()));
63
64
  c.evt.on("onCreated", () => {
@@ -68,6 +69,7 @@ const DashboardControl = /* @__PURE__ */ vue.defineComponent({
68
69
  const handleCustomModelChange = async (args) => {
69
70
  customModelDatas.value = args.model;
70
71
  await c.initPortlets(customModelDatas.value);
72
+ vue$1.$forceUpdate();
71
73
  };
72
74
  return {
73
75
  c,