@ibiz-template/vue3-components 0.7.10 → 0.7.11

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 (121) hide show
  1. package/dist/{chart-jfPZ04eU.js → chart-Wh3LMgZ1.js} +1 -1
  2. package/dist/index-0Z8KS6t6.js +1 -0
  3. package/dist/index-GZW20-jI.js +4 -0
  4. package/dist/index-OkS9bkdl.js +1 -0
  5. package/dist/index.min.css +1 -1
  6. package/dist/index.system.min.js +1 -1
  7. package/dist/map-chart-A4-TpWet.js +1 -0
  8. package/dist/wang-editor-HlmvPsb1.js +1 -0
  9. package/dist/{xlsx-util-my1qbty8.js → xlsx-util-lBpTaCO_.js} +1 -1
  10. package/es/common/data-import2/data-import2.mjs +1 -1
  11. package/es/common/doing-notice/doing-notice.mjs +7 -5
  12. package/es/common/map-chart/map-chart.util.mjs +4 -1
  13. package/es/common/view-message/view-message.css +1 -1
  14. package/es/common/view-message/view-message.d.ts +848 -1
  15. package/es/common/view-message/view-message.mjs +52 -22
  16. package/es/control/app-menu/app-menu.mjs +6 -2
  17. package/es/control/calendar/calendar.mjs +1 -1
  18. package/es/control/chart/chart.mjs +1 -1
  19. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.d.ts +19000 -27
  20. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.mjs +1 -1
  21. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.mjs +1 -1
  22. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater.mjs +4 -2
  23. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.d.ts +64 -0
  24. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.mjs +14 -11
  25. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.mjs +1 -1
  26. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.mjs +2 -2
  27. package/es/control/form/form-detail/form-mdctrl/form-mdctrl.provider.mjs +3 -1
  28. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.mjs +17 -11
  29. package/es/control/gantt/gantt.d.ts +1 -0
  30. package/es/control/gantt/gantt.mjs +15 -4
  31. package/es/control/gantt/index.d.ts +1 -0
  32. package/es/control/grid/grid/grid.mjs +3 -1
  33. package/es/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.mjs +3 -1
  34. package/es/control/grid/row-edit-popover/row-edit-popover.mjs +9 -5
  35. package/es/control/grid/row-edit-popover/use-row-edit-popover.mjs +3 -3
  36. package/es/control/kanban/kanban.mjs +17 -9
  37. package/es/control/report-panel/report-detail/user2-report-panel/user2-report-panel.mjs +2 -2
  38. package/es/control/report-panel/report-panel.mjs +2 -2
  39. package/es/control/search-bar/filter-tree/filter-tree.mjs +7 -5
  40. package/es/control/search-bar/search-bar.mjs +2 -2
  41. package/es/control/search-bar/search-groups/edit-group-util.mjs +10 -2
  42. package/es/control/search-bar/search-groups/new-group-util.mjs +13 -3
  43. package/es/control/search-bar/search-groups/search-groups.d.ts +1 -1
  44. package/es/control/search-bar/search-groups/search-groups.mjs +47 -38
  45. package/es/control/toolbar/export-excel/export-excel.mjs +23 -21
  46. package/es/control/tree/el-tree-util.mjs +4 -2
  47. package/es/control/tree/tree.mjs +3 -1
  48. package/es/control/tree-grid/tree-grid.mjs +3 -1
  49. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/tree-grid-ex-edit-column.mjs +3 -1
  50. package/es/control/tree-grid-ex/tree-grid-ex.mjs +6 -2
  51. package/es/control/tree-grid-ex/use-row-edit-popover.mjs +3 -3
  52. package/es/control/wizard-panel/wizard-panel.mjs +3 -3
  53. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.mjs +2 -1
  54. package/es/editor/html/wang-editor/ai/ai-modules.mjs +1 -1
  55. package/es/editor/html/wang-editor/wang-editor.mjs +11 -5
  56. package/es/index.mjs +1 -0
  57. package/es/locale/en/index.d.ts +109 -1
  58. package/es/locale/en/index.mjs +123 -15
  59. package/es/locale/zh-CN/index.d.ts +109 -1
  60. package/es/locale/zh-CN/index.mjs +113 -5
  61. package/es/panel-component/view-msg-pos/view-msg-pos.mjs +4 -1
  62. package/es/util/index.d.ts +1 -0
  63. package/es/util/index.mjs +1 -0
  64. package/es/util/render-util/render-util.d.ts +48 -0
  65. package/es/util/render-util/render-util.mjs +60 -0
  66. package/es/web-app/guard/auth-guard/auth-guard.mjs +6 -4
  67. package/es/web-app/main.mjs +2 -0
  68. package/lib/common/data-import2/data-import2.cjs +1 -1
  69. package/lib/common/doing-notice/doing-notice.cjs +6 -4
  70. package/lib/common/map-chart/map-chart.util.cjs +4 -1
  71. package/lib/common/view-message/view-message.cjs +52 -22
  72. package/lib/common/view-message/view-message.css +1 -1
  73. package/lib/control/app-menu/app-menu.cjs +6 -2
  74. package/lib/control/calendar/calendar.cjs +1 -1
  75. package/lib/control/chart/chart.cjs +1 -1
  76. package/lib/control/dashboard/custom-dashboard-container/custom-dashboard-container.cjs +1 -1
  77. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.cjs +1 -1
  78. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/form-mdctrl-repeater.cjs +3 -1
  79. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.cjs +13 -10
  80. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-single-form/repeater-single-form.cjs +1 -1
  81. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.cjs +1 -1
  82. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl.provider.cjs +3 -1
  83. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.cjs +16 -10
  84. package/lib/control/gantt/gantt.cjs +14 -3
  85. package/lib/control/grid/grid/grid.cjs +3 -1
  86. package/lib/control/grid/grid-column/grid-field-edit-column/grid-field-edit-column.cjs +3 -1
  87. package/lib/control/grid/row-edit-popover/row-edit-popover.cjs +8 -4
  88. package/lib/control/grid/row-edit-popover/use-row-edit-popover.cjs +3 -3
  89. package/lib/control/kanban/kanban.cjs +16 -8
  90. package/lib/control/report-panel/report-detail/user2-report-panel/user2-report-panel.cjs +1 -1
  91. package/lib/control/report-panel/report-panel.cjs +1 -1
  92. package/lib/control/search-bar/filter-tree/filter-tree.cjs +7 -5
  93. package/lib/control/search-bar/search-bar.cjs +2 -2
  94. package/lib/control/search-bar/search-groups/edit-group-util.cjs +10 -2
  95. package/lib/control/search-bar/search-groups/new-group-util.cjs +13 -3
  96. package/lib/control/search-bar/search-groups/search-groups.cjs +46 -37
  97. package/lib/control/toolbar/export-excel/export-excel.cjs +23 -21
  98. package/lib/control/tree/el-tree-util.cjs +4 -2
  99. package/lib/control/tree/tree.cjs +3 -1
  100. package/lib/control/tree-grid/tree-grid.cjs +3 -1
  101. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/tree-grid-ex-edit-column.cjs +3 -1
  102. package/lib/control/tree-grid-ex/tree-grid-ex.cjs +6 -2
  103. package/lib/control/tree-grid-ex/use-row-edit-popover.cjs +3 -3
  104. package/lib/control/wizard-panel/wizard-panel.cjs +3 -3
  105. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.cjs +2 -1
  106. package/lib/editor/html/wang-editor/ai/ai-modules.cjs +1 -1
  107. package/lib/editor/html/wang-editor/wang-editor.cjs +11 -5
  108. package/lib/index.cjs +2 -0
  109. package/lib/locale/en/index.cjs +123 -15
  110. package/lib/locale/zh-CN/index.cjs +113 -5
  111. package/lib/panel-component/view-msg-pos/view-msg-pos.cjs +4 -1
  112. package/lib/util/index.cjs +2 -0
  113. package/lib/util/render-util/render-util.cjs +62 -0
  114. package/lib/web-app/guard/auth-guard/auth-guard.cjs +6 -4
  115. package/lib/web-app/main.cjs +2 -0
  116. package/package.json +6 -6
  117. package/dist/index-GoU343c8.js +0 -4
  118. package/dist/index-dsmTOMa5.js +0 -1
  119. package/dist/index-sGpuIVYT.js +0 -1
  120. package/dist/map-chart-cmVrWpPw.js +0 -1
  121. package/dist/wang-editor-Vch7U079.js +0 -1
@@ -0,0 +1,48 @@
1
+ import { IRenderUtil } from '@ibiz-template/runtime';
2
+ import { IAppView, IControl } from '@ibiz/model-core';
3
+ /**
4
+ * 绘制工具类(包含逻辑中绘制视图、绘制部件等功能)
5
+ *
6
+ * @description 此实现类挂载在 ibiz.render
7
+ * @author tony001
8
+ * @date 2024-05-08 16:05:07
9
+ * @export
10
+ * @class RenderUtil
11
+ * @implements {IRenderUtil}
12
+ */
13
+ export declare class RenderUtil implements IRenderUtil {
14
+ /**
15
+ * 绘制视图
16
+ *
17
+ * @author tony001
18
+ * @date 2024-05-08 16:05:56
19
+ * @param {string} viewId
20
+ * @param {IAppView} model
21
+ * @param {IContext} context
22
+ * @param {IParams} params
23
+ * @param {IData} [options]
24
+ * @return {*} {IObject}
25
+ */
26
+ renderViewShell(viewId: string, model: IAppView, context: IContext, params: IParams, options?: IData): IObject;
27
+ /**
28
+ * 绘制部件
29
+ *
30
+ * @author tony001
31
+ * @date 2024-05-08 16:05:02
32
+ * @param {IControl} model
33
+ * @param {IContext} context
34
+ * @param {IParams} params
35
+ * @param {IData} [options]
36
+ */
37
+ renderCtrlShell(model: IControl, context: IContext, params: IParams, options?: IData): IObject;
38
+ /**
39
+ * 绘制组件
40
+ *
41
+ * @author tony001
42
+ * @date 2024-05-08 16:05:08
43
+ * @param {string} name
44
+ * @param {IData} options
45
+ * @return {*} {IObject}
46
+ */
47
+ renderComponent(name: string, options: IData): IObject;
48
+ }
@@ -0,0 +1,60 @@
1
+ import { resolveComponent, h } from 'vue';
2
+
3
+ "use strict";
4
+ class RenderUtil {
5
+ /**
6
+ * 绘制视图
7
+ *
8
+ * @author tony001
9
+ * @date 2024-05-08 16:05:56
10
+ * @param {string} viewId
11
+ * @param {IAppView} model
12
+ * @param {IContext} context
13
+ * @param {IParams} params
14
+ * @param {IData} [options]
15
+ * @return {*} {IObject}
16
+ */
17
+ renderViewShell(viewId, model, context, params, options = {}) {
18
+ const props = {
19
+ viewId,
20
+ modelData: model,
21
+ context,
22
+ params,
23
+ ...options
24
+ };
25
+ return h(resolveComponent("IBizViewShell"), props);
26
+ }
27
+ /**
28
+ * 绘制部件
29
+ *
30
+ * @author tony001
31
+ * @date 2024-05-08 16:05:02
32
+ * @param {IControl} model
33
+ * @param {IContext} context
34
+ * @param {IParams} params
35
+ * @param {IData} [options]
36
+ */
37
+ renderCtrlShell(model, context, params, options = {}) {
38
+ const props = {
39
+ modelData: model,
40
+ context,
41
+ params,
42
+ ...options
43
+ };
44
+ return h(resolveComponent("IBizControlShell"), props);
45
+ }
46
+ /**
47
+ * 绘制组件
48
+ *
49
+ * @author tony001
50
+ * @date 2024-05-08 16:05:08
51
+ * @param {string} name
52
+ * @param {IData} options
53
+ * @return {*} {IObject}
54
+ */
55
+ renderComponent(name, options) {
56
+ return h(resolveComponent(name), options);
57
+ }
58
+ }
59
+
60
+ export { RenderUtil };
@@ -71,12 +71,14 @@ class AuthGuard {
71
71
  const urlPaths = window.location.hash.split("/");
72
72
  const viewName = urlPaths[urlPaths.length - 2];
73
73
  let viewModel;
74
- if (viewName !== "#") {
75
- try {
74
+ try {
75
+ if (viewName === "#" && ibiz.hub.defaultPage) {
76
+ viewModel = await ibiz.hub.getAppView(ibiz.hub.defaultPage.id);
77
+ } else {
76
78
  viewModel = await ibiz.hub.getAppView(viewName);
77
- } catch (error) {
78
- ibiz.log.error(error);
79
79
  }
80
+ } catch (error) {
81
+ ibiz.log.error(error);
80
82
  }
81
83
  if (!viewModel) {
82
84
  ibiz.log.error(
@@ -11,6 +11,7 @@ import './guard/index.mjs';
11
11
  import { UnauthorizedHandler } from './util/unauthorized-handler/unauthorized-handler.mjs';
12
12
  import { DynaAuthGuard } from './guard/auth-guard/dyna-auth-guard.mjs';
13
13
  import { OpenViewUtil } from '../util/open-view-util/open-view-util.mjs';
14
+ import { RenderUtil } from '../util/render-util/render-util.mjs';
14
15
  import { MessageUtil } from '../util/message-util/message-util.mjs';
15
16
  import { ModalUtil } from '../util/modal-util/modal-util.mjs';
16
17
  import { ConfirmUtil } from '../util/confirm-util/confirm-util.mjs';
@@ -62,6 +63,7 @@ async function runApp(plugins, opts) {
62
63
  AppRouter.setAuthGuard((notLogin) => authGuard.verify(notLogin));
63
64
  app.use(AppRouter.getRouter());
64
65
  ibiz.openView = new OpenViewUtil(AppRouter.getRouter());
66
+ ibiz.render = new RenderUtil();
65
67
  ibiz.message = new MessageUtil();
66
68
  ibiz.modal = new ModalUtil();
67
69
  ibiz.confirm = new ConfirmUtil();
@@ -415,7 +415,7 @@ const DataImport2 = /* @__PURE__ */ vue.defineComponent({
415
415
  }, [vue.createVNode(vue.resolveComponent("el-button"), {
416
416
  "onClick": this.onButtonImportClick,
417
417
  "disabled": !this.selectValues.join(""),
418
- "title": !this.selectValues.join("") ? "\u8BF7\u9009\u62E9\u5217\u5BFC\u5165\u5C5E\u6027!" : ""
418
+ "title": !this.selectValues.join("") ? ibiz.i18n.t("component.dataImport2.selectProperties") : ""
419
419
  }, _isSlot(_slot2 = ibiz.i18n.t("component.dataImport2.import")) ? _slot2 : {
420
420
  default: () => [_slot2]
421
421
  })]) : ""])])])]), vue.createVNode(vue.resolveComponent("data-import2-table"), {
@@ -23,10 +23,12 @@ const DoingNotice = /* @__PURE__ */ vue.defineComponent({
23
23
  return vue.createVNode("div", {
24
24
  "class": [this.ns.b()]
25
25
  }, [vue.createVNode("span", {
26
- "class": this.ns.e("text")
27
- }, [vue.createTextVNode("\u6709"), vue.createVNode("span", {
28
- "class": this.ns.e("num")
29
- }, [this.info.num]), vue.createTextVNode("\u4E2A\u540E\u53F0\u4F5C\u4E1A\u6B63\u5728\u6267\u884C\uFF0C\u8BF7\u7A0D\u540E")]), vue.createVNode("svg", {
26
+ "class": this.ns.e("text"),
27
+ "innerHTML": ibiz.i18n.t("component.doingNotice.jobInProgress", {
28
+ class: this.ns.e("num"),
29
+ num: this.info.num
30
+ })
31
+ }, null), vue.createVNode("svg", {
30
32
  "class": this.ns.e("loading-icon"),
31
33
  "viewBox": "-10, -10, 50, 50"
32
34
  }, [vue.createVNode("path", {
@@ -8,7 +8,10 @@ const defaultOpts = {
8
8
  /** 热力图配置 */
9
9
  visualMap: {
10
10
  /** 两端的文本,如 ['高', '低'] */
11
- text: ["\u9AD8", "\u4F4E"],
11
+ text: [
12
+ ibiz.i18n.t("component.mapChart.high"),
13
+ ibiz.i18n.t("component.mapChart.low")
14
+ ],
12
15
  /** 底部代表的值 */
13
16
  min: 0,
14
17
  /** 顶部代表的值 */
@@ -18,6 +18,17 @@ const ViewMessage = /* @__PURE__ */ vue.defineComponent({
18
18
  scroll: {
19
19
  type: Boolean,
20
20
  default: false
21
+ },
22
+ context: {
23
+ type: Object,
24
+ required: false
25
+ },
26
+ params: {
27
+ type: Object,
28
+ required: false
29
+ },
30
+ controller: {
31
+ type: Object
21
32
  }
22
33
  },
23
34
  setup(props) {
@@ -40,7 +51,7 @@ const ViewMessage = /* @__PURE__ */ vue.defineComponent({
40
51
  initialIndex.value = 0;
41
52
  uuid.value = qxUtil.createUUID();
42
53
  if (Array.isArray(props.messages)) {
43
- items.value = props.messages.filter((item) => item.title || item.message).map((item) => {
54
+ items.value = props.messages.filter((item) => item.title || item.message || item.layoutPanel && item.data).map((item) => {
44
55
  return {
45
56
  ...item
46
57
  };
@@ -68,6 +79,7 @@ const ViewMessage = /* @__PURE__ */ vue.defineComponent({
68
79
  });
69
80
  });
70
81
  const handleAlertClose = (index) => {
82
+ var _a;
71
83
  items.value[index].hidden = true;
72
84
  const isHiddenCarouse = items.value.every((item2) => item2.hidden);
73
85
  if (isHiddenCarouse) {
@@ -75,9 +87,7 @@ const ViewMessage = /* @__PURE__ */ vue.defineComponent({
75
87
  }
76
88
  uuid.value = qxUtil.createUUID();
77
89
  const item = items.value[index];
78
- if (item.removeMode === 1) {
79
- localStorage.setItem(item.key, "1");
80
- }
90
+ (_a = props.controller) == null ? void 0 : _a.setMsgRemoveModeStorage(item);
81
91
  };
82
92
  const handleChange = (index) => {
83
93
  initialIndex.value = index;
@@ -96,6 +106,14 @@ const ViewMessage = /* @__PURE__ */ vue.defineComponent({
96
106
  };
97
107
  },
98
108
  render() {
109
+ const renderLayoutPanel = (item) => {
110
+ return vue.createVNode(vue.resolveComponent("iBizControlShell"), {
111
+ "data": item.data,
112
+ "modelData": item.layoutPanel,
113
+ "context": this.context,
114
+ "params": this.params
115
+ }, null);
116
+ };
99
117
  const renderScrollMessages = () => {
100
118
  let _slot;
101
119
  return vue.createVNode("div", {
@@ -112,24 +130,31 @@ const ViewMessage = /* @__PURE__ */ vue.defineComponent({
112
130
  if (item.hidden) {
113
131
  return;
114
132
  }
133
+ const isRenderDefault = item.message || item.layoutPanel && item.data;
115
134
  return vue.createVNode(vue.resolveComponent("el-carousel-item"), null, {
116
- default: () => [vue.createVNode(vue.resolveComponent("el-alert"), {
117
- "type": this.getType(item.messageType),
118
- "class": this.ns.b("carousel-alert"),
119
- "closable": item.removeMode !== 0,
120
- "onClose": () => this.handleAlertClose(i)
121
- }, {
122
- title: () => {
123
- return vue.createVNode("div", {
124
- "class": this.ns.be("carousel-alert", "title")
125
- }, [item.title || ""]);
126
- },
127
- default: () => {
128
- return vue.createVNode("div", {
129
- "class": this.ns.be("carousel-alert", "message")
130
- }, [item.message || ""]);
131
- }
132
- })]
135
+ default: () => {
136
+ var _a;
137
+ return [vue.createVNode(vue.resolveComponent("el-alert"), {
138
+ "type": this.getType(item.messageType),
139
+ "class": [this.ns.b("carousel-alert"), this.ns.bm("carousel-alert", item.title && isRenderDefault ? "" : "single"), (_a = item.sysCss) == null ? void 0 : _a.cssName],
140
+ "closable": item.removeMode !== 0,
141
+ "onClose": () => this.handleAlertClose(i)
142
+ }, {
143
+ title: () => {
144
+ return vue.createVNode("div", {
145
+ "class": this.ns.be("carousel-alert", "title")
146
+ }, [item.title || ""]);
147
+ },
148
+ default: () => {
149
+ if (item.layoutPanel && item.data) {
150
+ return renderLayoutPanel(item);
151
+ }
152
+ return vue.createVNode("div", {
153
+ "class": this.ns.be("carousel-alert", "message")
154
+ }, [item.message || ""]);
155
+ }
156
+ })];
157
+ }
133
158
  });
134
159
  })) ? _slot : {
135
160
  default: () => [_slot]
@@ -139,9 +164,11 @@ const ViewMessage = /* @__PURE__ */ vue.defineComponent({
139
164
  return vue.createVNode("div", {
140
165
  "class": [this.ns.b(), this.isHiddenContainer && this.ns.m("hidden")]
141
166
  }, [this.items.map((item, i) => {
167
+ var _a;
168
+ const isRenderDefault = item.message || item.layoutPanel && item.data;
142
169
  return vue.createVNode(vue.resolveComponent("el-alert"), {
143
170
  "type": this.getType(item.messageType),
144
- "class": [this.ns.b("alert"), this.ns.bm("alert", item.title && item.message ? "" : "single"), this.ns.bm("alert", !item.title && item.message ? "single-message" : "")],
171
+ "class": [this.ns.b("alert"), this.ns.bm("alert", item.title && isRenderDefault ? "" : "single"), this.ns.bm("alert", !item.title && isRenderDefault ? "single-message" : ""), (_a = item.sysCss) == null ? void 0 : _a.cssName],
145
172
  "closable": item.removeMode !== 0,
146
173
  "onClose": () => this.handleAlertClose(i)
147
174
  }, {
@@ -151,6 +178,9 @@ const ViewMessage = /* @__PURE__ */ vue.defineComponent({
151
178
  }, [item.title || ""]);
152
179
  },
153
180
  default: () => {
181
+ if (item.layoutPanel && item.data) {
182
+ return renderLayoutPanel(item);
183
+ }
154
184
  return vue.createVNode("div", {
155
185
  "class": this.ns.be("alert", "message")
156
186
  }, [item.message || ""]);
@@ -1 +1 @@
1
- .ibiz-view-message{--ibiz-view-message-border--warning:1px solid var(--ibiz-color-warning-active);--ibiz-view-message-border--error:1px solid var(--ibiz-color-danger-active);--ibiz-view-message-border--info:1px solid var(--ibiz-color-info-active);padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-none)}.ibiz-view-message--hidden{display:none}.ibiz-view-message .el-alert--warning.is-light{border:var(--ibiz-view-message-border--warning)}.ibiz-view-message .el-alert--error.is-light{border:var(--ibiz-view-message-border--error)}.ibiz-view-message .el-alert--info.is-light{border:var(--ibiz-view-message-border--info)}.ibiz-view-message-alert{margin-bottom:var(--ibiz-spacing-tight)}.ibiz-view-message-alert:last-child{margin-bottom:var(--ibiz-spacing-none)}.ibiz-view-message-alert--single .el-alert__description{margin:0}.ibiz-view-message-alert--single-message .el-alert__close-btn{top:calc(var(--ibiz-spacing-tight) + var(--ibiz-spacing-super-tight))}.ibiz-view-message-alert__title{line-height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight))}.ibiz-view-message-alert__message{line-height:var(--ibiz-spacing-base)}.ibiz-view-message-carousel-alert .el-alert__content{overflow:hidden}.ibiz-view-message-carousel-alert__title{height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight));overflow:hidden;line-height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight));text-overflow:ellipsis;white-space:nowrap}.ibiz-view-message-carousel-alert__message{height:var(--ibiz-spacing-base);overflow:hidden;line-height:var(--ibiz-spacing-base);text-overflow:ellipsis;white-space:nowrap}
1
+ .ibiz-view-message{--ibiz-view-message-border--warning:1px solid var(--ibiz-color-warning-active);--ibiz-view-message-border--error:1px solid var(--ibiz-color-danger-active);--ibiz-view-message-border--info:1px solid var(--ibiz-color-info-active);--ibiz-view-message-carousel-alert-height:64px;padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-none)}.ibiz-view-message--hidden{display:none}.ibiz-view-message--alert .el-message-box__status.el-icon{display:none}.ibiz-view-message--alert .el-message-box__status+.el-message-box__message{padding-left:var(--ibiz-spacing-none)}.ibiz-view-message .el-alert--warning.is-light{border:var(--ibiz-view-message-border--warning)}.ibiz-view-message .el-alert--error.is-light{border:var(--ibiz-view-message-border--error)}.ibiz-view-message .el-alert--info.is-light{border:var(--ibiz-view-message-border--info)}.ibiz-view-message-alert{margin-bottom:var(--ibiz-spacing-tight)}.ibiz-view-message-alert:last-child{margin-bottom:var(--ibiz-spacing-none)}.ibiz-view-message-alert--single .el-alert__description{margin:0}.ibiz-view-message-alert--single-message .el-alert__close-btn{top:calc(var(--ibiz-spacing-tight) + var(--ibiz-spacing-super-tight))}.ibiz-view-message-alert__title{line-height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight))}.ibiz-view-message-alert__message{line-height:var(--ibiz-spacing-base)}.ibiz-view-message-carousel-alert{height:var(--ibiz-view-message-carousel-alert-height)}.ibiz-view-message-carousel-alert .el-alert__content{overflow:hidden}.ibiz-view-message-carousel-alert--single .el-alert__description{margin:0}.ibiz-view-message-carousel-alert__title{overflow:hidden;line-height:calc(var(--ibiz-spacing-base-loose) - var(--ibiz-spacing-super-tight));text-overflow:ellipsis;white-space:nowrap}.ibiz-view-message-carousel-alert__message{overflow:hidden;line-height:var(--ibiz-spacing-base);text-overflow:ellipsis;white-space:nowrap}
@@ -33,11 +33,15 @@ function getMenus(items) {
33
33
  function renderByProvider(itemId, c) {
34
34
  const itemModel = c.allAppMenuItems.find((item) => item.id === itemId);
35
35
  if (!itemModel) {
36
- throw new core.RuntimeError("\u6CA1\u627E\u5230\u83DC\u5355\u9879\u6A21\u578B".concat(itemId));
36
+ throw new core.RuntimeError(ibiz.i18n.t("control.menu.noFoundModel", {
37
+ menuKey: itemId
38
+ }));
37
39
  }
38
40
  const provider = c.itemProviders[itemId];
39
41
  if (!provider.renderText) {
40
- throw new core.RuntimeError("".concat(itemId, "\u7684\u9002\u914D\u5668\u6CA1\u6709renderText\u65B9\u6CD5"));
42
+ throw new core.RuntimeError(ibiz.i18n.t("control.menu.noFoundFunction", {
43
+ menuKey: itemId
44
+ }));
41
45
  }
42
46
  return provider.renderText(itemModel, c);
43
47
  }
@@ -135,7 +135,7 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
135
135
  reference: () => {
136
136
  return vue.createVNode("span", {
137
137
  "class": this.ns.b("more")
138
- }, ["+".concat(items.length - 1, " \u66F4\u591A...")]);
138
+ }, ["+".concat(items.length - 1, " ").concat(ibiz.i18n.t("app.more"), "...")]);
139
139
  },
140
140
  default: () => {
141
141
  return items.map((item) => {
@@ -112,7 +112,7 @@ const ChartControl = /* @__PURE__ */ vue.defineComponent({
112
112
  "class": this.ns.b("chart-container")
113
113
  }, [vue.createVNode(vue.resolveComponent("el-empty"), {
114
114
  "class": [this.ns.e("empty"), this.ns.is("no-data", this.c.state.items.length === 0)],
115
- "description": "\u6682\u65E0\u6570\u636E"
115
+ "description": ibiz.i18n.t("control.common.currentNoData")
116
116
  }, null), vue.createVNode("div", {
117
117
  "class": [this.ns.e("chart-grid"), this.ns.is("no-data", this.c.state.items.length === 0), this.ns.is("show-grid", this.c.state.showGrid), {
118
118
  [this.ns.em("chart-grid", this.c.state.gridPosition)]: this.c.state.showGrid
@@ -124,7 +124,7 @@ const CustomDashboardContainer = /* @__PURE__ */ vue.defineComponent({
124
124
  "class": this.ns.b("build-btn")
125
125
  }, [this.showTypeDir ? vue.createVNode("div", null, [vue.createVNode(vue.resolveComponent("el-button"), {
126
126
  "class": this.ns.b("deisgn-btn"),
127
- "title": "\u95E8\u6237\u5B9A\u5236",
127
+ "title": ibiz.i18n.t("control.dashboard.customDashboardContainer.portalCustomPrompt"),
128
128
  "onClick": this.openDesign
129
129
  }, {
130
130
  default: () => [vue.createVNode("ion-icon", {
@@ -59,7 +59,7 @@ const FormMDCtrlForm = /* @__PURE__ */ vue.defineComponent({
59
59
  data
60
60
  }) => {
61
61
  if (!formProvider) {
62
- return vue.createVNode("div", null, [ibiz.i18n.t("control.form.formMDctrlForm.notFindProvider")]);
62
+ return vue.createVNode("div", null, [ibiz.i18n.t("control.form.formMDctrlForm.noFindProvider")]);
63
63
  }
64
64
  const formComponent = vue.h(vue.resolveComponent(formProvider.component), {
65
65
  class: this.ns.be("item", "form"),
@@ -51,7 +51,9 @@ const FormMDCtrlRepeater = /* @__PURE__ */ vue.defineComponent({
51
51
  default:
52
52
  return vue.createVNode("div", {
53
53
  "class": classNames
54
- }, [vue.createTextVNode("\u6682\u672A\u652F\u6301\u91CD\u590D\u5668\u6837\u5F0F"), this.controller.repeaterStyle]);
54
+ }, [ibiz.i18n.t("control.form.formMDctrlRepeater.noSupportStyle", {
55
+ repeaterStyle: this.controller.repeaterStyle
56
+ })]);
55
57
  }
56
58
  }
57
59
  });
@@ -83,23 +83,25 @@ const RepeaterGrid = /* @__PURE__ */ vue.defineComponent({
83
83
  deep: true
84
84
  });
85
85
  const renderRemoveBtn = (index) => {
86
+ let _slot2;
86
87
  if (!props.controller.enableDelete) {
87
88
  return null;
88
89
  }
89
90
  if (ibiz.config.form.mdCtrlConfirmBeforeRemove) {
90
91
  return vue.createVNode(vue.resolveComponent("el-popconfirm"), {
91
- "title": "\u662F\u5426\u5220\u9664\u9009\u4E2D\u9879",
92
- "confirm-button-text": "\u786E\u8BA4",
93
- "cancel-button-text": "\u53D6\u6D88",
92
+ "title": ibiz.i18n.t("control.form.repeaterGrid.promptInformation"),
93
+ "confirm-button-text": ibiz.i18n.t("app.confirm"),
94
+ "cancel-button-text": ibiz.i18n.t("app.cancel"),
94
95
  "onConfirm": () => props.controller.remove(index)
95
96
  }, {
96
97
  reference: () => {
98
+ let _slot;
97
99
  return vue.createVNode(vue.resolveComponent("el-button"), {
98
100
  "text": true,
99
101
  "type": "danger",
100
102
  "class": [ns.be("index", "remove")]
101
- }, {
102
- default: () => [vue.createTextVNode("\u5220\u9664")]
103
+ }, _isSlot(_slot = ibiz.i18n.t("app.delete")) ? _slot : {
104
+ default: () => [_slot]
103
105
  });
104
106
  }
105
107
  });
@@ -109,8 +111,8 @@ const RepeaterGrid = /* @__PURE__ */ vue.defineComponent({
109
111
  "type": "danger",
110
112
  "class": [ns.be("index", "remove")],
111
113
  "onClick": () => props.controller.remove(index)
112
- }, {
113
- default: () => [vue.createTextVNode("\u5220\u9664")]
114
+ }, _isSlot(_slot2 = ibiz.i18n.t("app.delete")) ? _slot2 : {
115
+ default: () => [_slot2]
114
116
  });
115
117
  };
116
118
  return {
@@ -121,6 +123,7 @@ const RepeaterGrid = /* @__PURE__ */ vue.defineComponent({
121
123
  };
122
124
  },
123
125
  render() {
126
+ let _slot3;
124
127
  return vue.createVNode("div", {
125
128
  "class": this.ns.b()
126
129
  }, [this.controller.enableCreate && vue.createVNode(vue.resolveComponent("el-button"), {
@@ -128,8 +131,8 @@ const RepeaterGrid = /* @__PURE__ */ vue.defineComponent({
128
131
  "onClick": () => {
129
132
  this.controller.create();
130
133
  }
131
- }, {
132
- default: () => [vue.createTextVNode("\u6DFB\u52A0")]
134
+ }, _isSlot(_slot3 = ibiz.i18n.t("app.add")) ? _slot3 : {
135
+ default: () => [_slot3]
133
136
  }), vue.createVNode(vue.resolveComponent("el-table"), {
134
137
  "class": this.ns.e("table"),
135
138
  "show-header": true,
@@ -174,7 +177,7 @@ const RepeaterGrid = /* @__PURE__ */ vue.defineComponent({
174
177
  } = opts;
175
178
  const formC = vue.toRaw(this.formControllers[$index]);
176
179
  if (!formC || !formC.state.isLoaded) {
177
- return vue.createVNode("div", null, [vue.createTextVNode("\u4E0D\u5B58\u5728\u6216\u52A0\u8F7D\u4E2D")]);
180
+ return vue.createVNode("div", null, [ibiz.i18n.t("control.form.repeaterGrid.absentOrLoad")]);
178
181
  }
179
182
  const formItemC = formC.formItems.find((x) => x.name === item.id);
180
183
  let editor = null;
@@ -46,7 +46,7 @@ const RepeaterSingleForm = /* @__PURE__ */ vue.defineComponent({
46
46
  },
47
47
  render() {
48
48
  if (!this.controller.repeatedForm) {
49
- throw new core.RuntimeError("\u6CA1\u6709repeatedForm");
49
+ throw new core.RuntimeError(ibiz.i18n.t("control.form.repeaterSingleForm.errorMessage"));
50
50
  }
51
51
  return vue.createVNode(vue.resolveComponent("iBizControlShell"), {
52
52
  "class": this.ns.b(),
@@ -61,7 +61,7 @@ const FormMDCtrl = /* @__PURE__ */ vue.defineComponent({
61
61
  }, null);
62
62
  break;
63
63
  default:
64
- vue.createVNode("div", null, [model.contentType, vue.createTextVNode("\u6682\u672A\u652F\u6301")]);
64
+ vue.createVNode("div", null, [ibiz.i18n.t("app.noSupport")]);
65
65
  break;
66
66
  }
67
67
  return vue.createVNode("div", {
@@ -31,7 +31,9 @@ class FormMDCtrlProvider {
31
31
  default:
32
32
  throw new core.ModelError(
33
33
  detailModel,
34
- "\u6682\u672A\u652F\u6301\u5185\u5BB9\u7C7B\u578B\u4E3A".concat(detailModel.contentType)
34
+ "".concat(ibiz.i18n.t("control.form.formMDctrl.errorMessage", {
35
+ contentType: detailModel.contentType
36
+ }))
35
37
  );
36
38
  }
37
39
  await c.init();
@@ -5,6 +5,9 @@ var vue3Util = require('@ibiz-template/vue3-util');
5
5
  require('./mdctrl-container.css');
6
6
 
7
7
  "use strict";
8
+ function _isSlot(s) {
9
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
10
+ }
8
11
  const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
9
12
  name: "IBizMDCtrlContainer",
10
13
  props: {
@@ -33,30 +36,33 @@ const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
33
36
  return props.enableCreate || props.enableDelete;
34
37
  });
35
38
  const renderAddBtn = () => {
39
+ let _slot;
36
40
  return vue.createVNode(vue.resolveComponent("el-button"), {
37
41
  "class": [ns.be("item-actions", "create"), ns.be("item-actions", "btn")],
38
42
  "onClick": () => emit("addClick")
39
- }, {
40
- default: () => [vue.createTextVNode("\u6DFB\u52A0")]
43
+ }, _isSlot(_slot = ibiz.i18n.t("app.add")) ? _slot : {
44
+ default: () => [_slot]
41
45
  });
42
46
  };
43
47
  const renderRemoveBtn = (item, index) => {
48
+ let _slot3;
44
49
  if (!props.enableDelete) {
45
50
  return null;
46
51
  }
47
52
  if (ibiz.config.form.mdCtrlConfirmBeforeRemove) {
48
53
  return vue.createVNode(vue.resolveComponent("el-popconfirm"), {
49
- "title": "\u662F\u5426\u5220\u9664\u9009\u4E2D\u9879",
50
- "confirm-button-text": "\u786E\u8BA4",
51
- "cancel-button-text": "\u53D6\u6D88",
54
+ "title": ibiz.i18n.t("control.form.mdCtrlContainer.promptInformation"),
55
+ "confirm-button-text": ibiz.i18n.t("app.confirm"),
56
+ "cancel-button-text": ibiz.i18n.t("app.cancel"),
52
57
  "onConfirm": () => emit("removeClick", item, index)
53
58
  }, {
54
59
  reference: () => {
60
+ let _slot2;
55
61
  return vue.createVNode(vue.resolveComponent("el-button"), {
56
62
  "type": "danger",
57
63
  "class": [ns.be("item-actions", "remove"), ns.be("item-actions", "btn")]
58
- }, {
59
- default: () => [vue.createTextVNode("\u5220\u9664")]
64
+ }, _isSlot(_slot2 = ibiz.i18n.t("app.delete")) ? _slot2 : {
65
+ default: () => [_slot2]
60
66
  });
61
67
  }
62
68
  });
@@ -65,8 +71,8 @@ const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
65
71
  "type": "danger",
66
72
  "class": [ns.be("item-actions", "remove"), ns.be("item-actions", "btn")],
67
73
  "onClick": () => emit("removeClick", item, index)
68
- }, {
69
- default: () => [vue.createTextVNode("\u5220\u9664")]
74
+ }, _isSlot(_slot3 = ibiz.i18n.t("app.delete")) ? _slot3 : {
75
+ default: () => [_slot3]
70
76
  });
71
77
  };
72
78
  return {
@@ -84,7 +90,7 @@ const MDCtrlContainer = /* @__PURE__ */ vue.defineComponent({
84
90
  const formComponent = this.$slots.item ? this.$slots.item({
85
91
  data: item,
86
92
  index
87
- }) : vue.createVNode("div", null, [vue.createTextVNode("\u672A\u63D0\u4F9Bitem\u63D2\u69FD")]);
93
+ }) : vue.createVNode("div", null, [ibiz.i18n.t("control.form.mdCtrlContainer.noSlot")]);
88
94
  return vue.createVNode("div", {
89
95
  "class": this.ns.b("item")
90
96
  }, [formComponent, this.showActions && vue.createVNode("div", {
@@ -139,10 +139,19 @@ const GanttControl = /* @__PURE__ */ vue.defineComponent({
139
139
  c.onDbTreeNodeClick(nodeData);
140
140
  };
141
141
  const onNodeExpand = (nodeData) => {
142
+ c.onExpandChange(nodeData, true);
142
143
  if (nodeData && !nodeData._children) {
143
144
  c.refreshNodeChildren(nodeData);
144
145
  }
145
146
  };
147
+ c.evt.on("onDefaultExpand", (event) => {
148
+ if (ganttRef.value) {
149
+ ganttRef.value.refresh();
150
+ }
151
+ });
152
+ const onNodeCollapse = (nodeData) => {
153
+ c.onExpandChange(nodeData, false);
154
+ };
146
155
  c.evt.on("onNewRow", (event) => {
147
156
  if (ganttRef.value) {
148
157
  const nodeData = event.row.data;
@@ -319,19 +328,19 @@ const GanttControl = /* @__PURE__ */ vue.defineComponent({
319
328
  "class": "detail"
320
329
  }, [vue.createVNode("div", {
321
330
  "class": "caption"
322
- }, [vue.createTextVNode("\u5B8C\u6210\u91CF")]), vue.createVNode("div", {
331
+ }, [ibiz.i18n.t("control.gantt.complete")]), vue.createVNode("div", {
323
332
  "class": "description"
324
333
  }, [item._finishDataItemValue])]), vue.createVNode("div", {
325
334
  "class": "detail"
326
335
  }, [vue.createVNode("div", {
327
336
  "class": "caption"
328
- }, [vue.createTextVNode("\u603B\u91CF")]), vue.createVNode("div", {
337
+ }, [ibiz.i18n.t("control.gantt.total")]), vue.createVNode("div", {
329
338
  "class": "description"
330
339
  }, [item._totalDataItemValue])]), vue.createVNode("div", {
331
340
  "class": "detail"
332
341
  }, [vue.createVNode("div", {
333
342
  "class": "caption"
334
- }, [vue.createTextVNode("\u622A\u6B62\u65F6\u95F4")]), vue.createVNode("div", {
343
+ }, [ibiz.i18n.t("control.gantt.deadline")]), vue.createVNode("div", {
335
344
  "class": "description"
336
345
  }, [dayjs(item._endDataItemValue).format("YYYY-MM-DD HH:mm:ss")])])])]);
337
346
  };
@@ -392,6 +401,7 @@ const GanttControl = /* @__PURE__ */ vue.defineComponent({
392
401
  onNodeClick,
393
402
  onNodeDbClick,
394
403
  onNodeExpand,
404
+ onNodeCollapse,
395
405
  renderContent,
396
406
  onSliderMove,
397
407
  renderNoData
@@ -419,6 +429,7 @@ const GanttControl = /* @__PURE__ */ vue.defineComponent({
419
429
  "locale": this.locale,
420
430
  "showCheckbox": !this.c.state.singleSelect,
421
431
  "onNodeExpand": this.onNodeExpand,
432
+ "onNodeCollapse": this.onNodeCollapse,
422
433
  "onRowClick": this.onNodeClick,
423
434
  "onRowDblClick": this.onNodeDbClick,
424
435
  "onRowChecked": this.onCheck,
@@ -215,7 +215,9 @@ const GridControl = /* @__PURE__ */ vue.defineComponent({
215
215
  "class": ns.b("batch-toolbar-content")
216
216
  }, [vue.createVNode("div", {
217
217
  "class": ns.b("batch-toolbar-text")
218
- }, [vue.createTextVNode("\u5DF2\u9009\u4E2D"), c.state.selectedData.length, vue.createTextVNode("\u9879")]), vue.createVNode("div", {
218
+ }, [ibiz.i18n.t("control.common.itemsSelected", {
219
+ length: c.state.selectedData.length
220
+ })]), vue.createVNode("div", {
219
221
  "class": ns.b("batch-toolbar-separator")
220
222
  }, [vue.createTextVNode("|")]), vue.createVNode(vue.resolveComponent("iBizToolbarControl"), {
221
223
  "modelData": batchToolbar,