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

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 (182) hide show
  1. package/dist/chart-q7pMKjYo.js +1 -0
  2. package/dist/ibiz-markdown-editor-e33m6ees.js +1 -0
  3. package/dist/index-dXwgWAM8.js +11 -0
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/map-chart-user-NYROZ-6g.js +1 -0
  7. package/dist/wang-editor-4OlaBV3P.js +1 -0
  8. package/dist/{xlsx-util-jYyM8alm.js → xlsx-util-Rg-AbK_G.js} +1 -1
  9. package/es/common/control-navigation/provider/calendar-navigation.provider.mjs +3 -1
  10. package/es/common/control-navigation/provider/index.mjs +1 -1
  11. package/es/common/control-navigation/provider/map-navigation.provider.d.ts +8 -2
  12. package/es/common/control-navigation/provider/map-navigation.provider.mjs +20 -1
  13. package/es/common/map-chart-user/map-chart-user.css +1 -1
  14. package/es/common/map-chart-user/map-chart-user.d.ts +11 -1
  15. package/es/common/map-chart-user/map-chart-user.mjs +82 -6
  16. package/es/common/map-chart-user/map-chart-user.util.d.ts +2 -0
  17. package/es/common/map-chart-user/map-chart-user.util.mjs +54 -3
  18. package/es/common/map-chart-user/map-user-manager.d.ts +2 -0
  19. package/es/common/map-chart-user/map-user-manager.mjs +46 -10
  20. package/es/control/calendar/components/calendar-daily/calendar-daily.css +1 -1
  21. package/es/control/calendar/components/calendar-daily/calendar-daily.mjs +30 -43
  22. package/es/control/calendar/components/calendar-daily/use-calendar-daily.d.ts +6 -2
  23. package/es/control/calendar/components/calendar-daily/use-calendar-daily.mjs +37 -4
  24. package/es/control/calendar/components/calendar-user/calendar-user.css +1 -1
  25. package/es/control/calendar/components/calendar-user/calendar-user.mjs +1 -0
  26. package/es/control/calendar/components/calendar-week/calendar-week.css +1 -1
  27. package/es/control/calendar/components/calendar-week/calendar-week.mjs +30 -45
  28. package/es/control/calendar/components/calendar-week/use-calendar-week.d.ts +6 -2
  29. package/es/control/calendar/components/calendar-week/use-calendar-week.mjs +37 -4
  30. package/es/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
  31. package/es/control/calendar/components/util/index.mjs +1 -1
  32. package/es/control/calendar/components/util/util.d.ts +30 -2
  33. package/es/control/calendar/components/util/util.mjs +32 -2
  34. package/es/control/chart/chart.mjs +1 -0
  35. package/es/control/data-view/data-view.d.ts +1 -1
  36. package/es/control/data-view/index.d.ts +1 -1
  37. package/es/control/drtab/drtab-control.util.mjs +1 -1
  38. package/es/control/drtab/drtab.controller.d.ts +5 -0
  39. package/es/control/drtab/drtab.controller.mjs +19 -0
  40. package/es/control/drtab/flow-drtab.css +1 -1
  41. package/es/control/drtab/flow-drtab.mjs +6 -1
  42. package/es/control/exp-bar/render-util.mjs +1 -12
  43. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.mjs +8 -4
  44. package/es/control/form/form-detail/form-tab-panel/form-tab-panel.css +1 -1
  45. package/es/control/form/form-detail/form-tab-panel/form-tab-panel.mjs +2 -1
  46. package/es/control/gantt/gantt.css +1 -1
  47. package/es/control/gantt/gantt.d.ts +4 -2
  48. package/es/control/gantt/gantt.mjs +130 -5
  49. package/es/control/gantt/index.d.ts +4 -2
  50. package/es/control/grid/grid/grid.d.ts +1 -1
  51. package/es/control/grid/grid/index.d.ts +1 -1
  52. package/es/control/grid/grid-column/grid-field-column/attachment-column/attachment-column.mjs +11 -2
  53. package/es/control/grid/grid-column/grid-field-column/attachment-column/file-util.d.ts +1 -1
  54. package/es/control/grid/grid-column/grid-field-column/attachment-column/file-util.mjs +39 -24
  55. package/es/control/grid/grid-column/grid-field-column/grid-field-column.css +1 -1
  56. package/es/control/grid/virtualized-table/index.d.ts +1 -1
  57. package/es/control/grid/virtualized-table/virtualized-table.d.ts +1 -1
  58. package/es/control/kanban/index.d.ts +1 -1
  59. package/es/control/kanban/kanban.d.ts +1 -1
  60. package/es/control/list/index.d.ts +1 -1
  61. package/es/control/list/list.d.ts +1 -1
  62. package/es/control/list/list.mjs +1 -1
  63. package/es/control/map/map.mjs +1 -1
  64. package/es/control/tree/index.d.ts +1 -1
  65. package/es/control/tree/tree.d.ts +5 -5
  66. package/es/control/tree/tree.mjs +5 -13
  67. package/es/control/tree-grid/index.d.ts +7 -1
  68. package/es/control/tree-grid/tree-grid.d.ts +7 -1
  69. package/es/control/tree-grid/tree-grid.mjs +62 -55
  70. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/all-edit.mjs +3 -1
  71. package/es/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.css +1 -1
  72. package/es/control/tree-grid-ex/tree-grid-ex.css +1 -1
  73. package/es/control/tree-grid-ex/tree-grid-ex.mjs +32 -28
  74. package/es/editor/carousel/ibiz-carousel/ibiz-carousel.d.ts +2 -75
  75. package/es/editor/carousel/ibiz-carousel/ibiz-carousel.mjs +24 -12
  76. package/es/editor/data-picker/ibiz-picker/ibiz-picker.mjs +17 -1
  77. package/es/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.mjs +4 -2
  78. package/es/editor/html/wang-editor/wang-editor.mjs +29 -7
  79. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.mjs +36 -5
  80. package/es/editor/upload/use/use-iview-upload.d.ts +0 -1
  81. package/es/editor/upload/use/use-iview-upload.mjs +50 -25
  82. package/es/locale/en/index.d.ts +5 -0
  83. package/es/locale/zh-CN/index.d.ts +5 -0
  84. package/es/panel-component/app-extend-menu/bottom-side-menu/bottom-side-menu.d.ts +1 -1
  85. package/es/panel-component/app-extend-menu/left-side-menu/left-side-menu.d.ts +1 -1
  86. package/es/panel-component/app-extend-menu/right-side-menu/right-side-menu.d.ts +1 -1
  87. package/es/panel-component/app-extend-menu/top-side-menu/top-side-menu.d.ts +1 -1
  88. package/es/panel-component/nav-breadcrumb/index.d.ts +1 -0
  89. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.controller.d.ts +8 -1
  90. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.controller.mjs +64 -18
  91. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.css +1 -1
  92. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.d.ts +3 -1
  93. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.mjs +14 -3
  94. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.service.d.ts +1 -1
  95. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.service.mjs +5 -6
  96. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.state.d.ts +8 -0
  97. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.state.mjs +6 -0
  98. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.util.d.ts +26 -1
  99. package/es/panel-component/nav-breadcrumb/nav-breadcrumb.util.mjs +50 -6
  100. package/es/panel-component/user-message/async-action/async-data-export/async-data-export.d.ts +1 -0
  101. package/es/panel-component/user-message/async-action/async-data-export/async-data-export.mjs +3 -1
  102. package/es/util/fullscreen/fullscreen-util.mjs +1 -1
  103. package/es/view-engine/calendar-exp-view.engine.d.ts +6 -7
  104. package/es/view-engine/calendar-exp-view.engine.mjs +6 -24
  105. package/es/view-engine/edit-view.engine.d.ts +11 -0
  106. package/es/view-engine/edit-view.engine.mjs +12 -0
  107. package/es/view-engine/login-view.engine.d.ts +11 -1
  108. package/es/view-engine/login-view.engine.mjs +9 -5
  109. package/es/view-engine/mpickup-view-engine.d.ts +8 -1
  110. package/es/view-engine/mpickup-view-engine.mjs +14 -8
  111. package/es/view-engine/pickup-view.engine.d.ts +8 -1
  112. package/es/view-engine/pickup-view.engine.mjs +15 -0
  113. package/lib/common/control-navigation/provider/calendar-navigation.provider.cjs +3 -1
  114. package/lib/common/control-navigation/provider/index.cjs +1 -1
  115. package/lib/common/control-navigation/provider/map-navigation.provider.cjs +20 -1
  116. package/lib/common/map-chart-user/map-chart-user.cjs +81 -5
  117. package/lib/common/map-chart-user/map-chart-user.css +1 -1
  118. package/lib/common/map-chart-user/map-chart-user.util.cjs +54 -3
  119. package/lib/common/map-chart-user/map-user-manager.cjs +46 -10
  120. package/lib/control/calendar/components/calendar-daily/calendar-daily.cjs +29 -42
  121. package/lib/control/calendar/components/calendar-daily/calendar-daily.css +1 -1
  122. package/lib/control/calendar/components/calendar-daily/use-calendar-daily.cjs +35 -2
  123. package/lib/control/calendar/components/calendar-user/calendar-user.cjs +1 -0
  124. package/lib/control/calendar/components/calendar-user/calendar-user.css +1 -1
  125. package/lib/control/calendar/components/calendar-week/calendar-week.cjs +29 -44
  126. package/lib/control/calendar/components/calendar-week/calendar-week.css +1 -1
  127. package/lib/control/calendar/components/calendar-week/use-calendar-week.cjs +35 -2
  128. package/lib/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
  129. package/lib/control/calendar/components/util/index.cjs +4 -0
  130. package/lib/control/calendar/components/util/util.cjs +34 -0
  131. package/lib/control/chart/chart.cjs +1 -0
  132. package/lib/control/drtab/drtab-control.util.cjs +1 -1
  133. package/lib/control/drtab/drtab.controller.cjs +19 -0
  134. package/lib/control/drtab/flow-drtab.cjs +5 -0
  135. package/lib/control/drtab/flow-drtab.css +1 -1
  136. package/lib/control/exp-bar/render-util.cjs +1 -12
  137. package/lib/control/form/form-detail/form-mdctrl/form-mdctrl-repeater/repeater-grid/repeater-grid.cjs +7 -3
  138. package/lib/control/form/form-detail/form-tab-panel/form-tab-panel.cjs +2 -1
  139. package/lib/control/form/form-detail/form-tab-panel/form-tab-panel.css +1 -1
  140. package/lib/control/gantt/gantt.cjs +129 -4
  141. package/lib/control/gantt/gantt.css +1 -1
  142. package/lib/control/grid/grid-column/grid-field-column/attachment-column/attachment-column.cjs +11 -2
  143. package/lib/control/grid/grid-column/grid-field-column/attachment-column/file-util.cjs +39 -24
  144. package/lib/control/grid/grid-column/grid-field-column/grid-field-column.css +1 -1
  145. package/lib/control/list/list.cjs +1 -1
  146. package/lib/control/map/map.cjs +1 -1
  147. package/lib/control/tree/tree.cjs +5 -13
  148. package/lib/control/tree-grid/tree-grid.cjs +62 -55
  149. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-edit-column/all-edit.cjs +3 -1
  150. package/lib/control/tree-grid-ex/tree-grid-ex-column/tree-grid-ex-ua-column/tree-grid-ex-ua-column.css +1 -1
  151. package/lib/control/tree-grid-ex/tree-grid-ex.cjs +32 -28
  152. package/lib/control/tree-grid-ex/tree-grid-ex.css +1 -1
  153. package/lib/editor/carousel/ibiz-carousel/ibiz-carousel.cjs +24 -12
  154. package/lib/editor/data-picker/ibiz-picker/ibiz-picker.cjs +17 -1
  155. package/lib/editor/dropdown-list/ibiz-virtualized-list/ibiz-virtualized-list.cjs +4 -2
  156. package/lib/editor/html/wang-editor/wang-editor.cjs +29 -7
  157. package/lib/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.cjs +36 -5
  158. package/lib/editor/upload/use/use-iview-upload.cjs +50 -25
  159. package/lib/panel-component/nav-breadcrumb/nav-breadcrumb.cjs +14 -3
  160. package/lib/panel-component/nav-breadcrumb/nav-breadcrumb.controller.cjs +63 -17
  161. package/lib/panel-component/nav-breadcrumb/nav-breadcrumb.css +1 -1
  162. package/lib/panel-component/nav-breadcrumb/nav-breadcrumb.service.cjs +4 -5
  163. package/lib/panel-component/nav-breadcrumb/nav-breadcrumb.state.cjs +6 -0
  164. package/lib/panel-component/nav-breadcrumb/nav-breadcrumb.util.cjs +52 -5
  165. package/lib/panel-component/user-message/async-action/async-data-export/async-data-export.cjs +3 -1
  166. package/lib/util/fullscreen/fullscreen-util.cjs +1 -1
  167. package/lib/view-engine/calendar-exp-view.engine.cjs +6 -24
  168. package/lib/view-engine/edit-view.engine.cjs +12 -0
  169. package/lib/view-engine/login-view.engine.cjs +9 -5
  170. package/lib/view-engine/mpickup-view-engine.cjs +14 -8
  171. package/lib/view-engine/pickup-view.engine.cjs +15 -0
  172. package/package.json +6 -6
  173. package/dist/chart-8QfxarWf.js +0 -1
  174. package/dist/ibiz-markdown-editor-0VHzFa2l.js +0 -1
  175. package/dist/index-t1aZ8OJE.js +0 -11
  176. package/dist/map-chart-user-xOSZGbF2.js +0 -1
  177. package/dist/wang-editor-Y8puaTx2.js +0 -1
  178. package/es/editor/upload/use/use-ibiz-upload.d.ts +0 -95
  179. package/es/editor/upload/use/use-ibiz-upload.mjs +0 -170
  180. package/lib/editor/upload/use/use-ibiz-upload.cjs +0 -175
  181. /package/es/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.17_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.41-alpha.18_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs +0 -0
  182. /package/lib/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.17_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.41-alpha.18_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.cjs +0 -0
@@ -9,7 +9,6 @@ function useIViewUpload(props, valueChange, c) {
9
9
  const uploadHeaders = ibiz.util.file.getUploadHeaders();
10
10
  const headers = vue.ref({ ...uploadHeaders });
11
11
  const uploadUrl = vue.ref("");
12
- const downloadUrl = vue.ref("");
13
12
  const uploadCache = {
14
13
  count: 0,
15
14
  cacheFiles: []
@@ -23,6 +22,22 @@ function useIViewUpload(props, valueChange, c) {
23
22
  },
24
23
  { immediate: true }
25
24
  );
25
+ const getDownloadUrl = (data, file) => {
26
+ const editorParams = { ...c.editorParams };
27
+ if (editorParams.exportparams) {
28
+ editorParams.exportParams = JSON.parse(editorParams.exportparams);
29
+ }
30
+ if (file && file.folder) {
31
+ editorParams.osscat = file.folder;
32
+ }
33
+ const urls = ibiz.util.file.calcFileUpDownUrl(
34
+ c.context,
35
+ c.params,
36
+ data,
37
+ editorParams
38
+ );
39
+ return urls.downloadUrl;
40
+ };
26
41
  vue.watch(
27
42
  () => props.data,
28
43
  (newVal) => {
@@ -31,9 +46,6 @@ function useIViewUpload(props, valueChange, c) {
31
46
  if (editorParams.uploadparams) {
32
47
  editorParams.uploadParams = JSON.parse(editorParams.uploadparams);
33
48
  }
34
- if (editorParams.exportparams) {
35
- editorParams.exportParams = JSON.parse(editorParams.exportparams);
36
- }
37
49
  const urls = ibiz.util.file.calcFileUpDownUrl(
38
50
  c.context,
39
51
  c.params,
@@ -41,7 +53,6 @@ function useIViewUpload(props, valueChange, c) {
41
53
  editorParams
42
54
  );
43
55
  uploadUrl.value = urls.uploadUrl;
44
- downloadUrl.value = urls.downloadUrl;
45
56
  }
46
57
  },
47
58
  { immediate: true, deep: true }
@@ -86,24 +97,23 @@ function useIViewUpload(props, valueChange, c) {
86
97
  vue.watch(
87
98
  files,
88
99
  (newVal) => {
89
- if ((newVal == null ? void 0 : newVal.length) && downloadUrl.value) {
100
+ if (newVal == null ? void 0 : newVal.length) {
90
101
  newVal.forEach((file) => {
91
- file.url = file.url || downloadUrl.value.replace("%fileId%", file.id);
92
- if (file.name.split(".").pop() === "svg") {
93
- calcSvgPreview(file);
94
- }
95
- });
96
- }
97
- },
98
- { immediate: true }
99
- );
100
- vue.watch(
101
- downloadUrl,
102
- (newVal) => {
103
- if (newVal && files.value.length) {
104
- files.value.forEach((file) => {
105
- file.url = downloadUrl.value.replace("%fileId%", file.id);
106
- if (file.name.split(".").pop() === "svg") {
102
+ const downloadUrl = getDownloadUrl(props.data, file);
103
+ file.url = file.url || downloadUrl.replace("%fileId%", file.id);
104
+ if (ibiz.config.common.enableDownloadTicket) {
105
+ ibiz.util.file.getDownloadTicket(c.context, { fileId: file.id }).then((downloadTicket) => {
106
+ if (downloadTicket && downloadTicket.ticket) {
107
+ file.url = downloadUrl.replace(
108
+ "%fileId%",
109
+ downloadTicket.ticket
110
+ );
111
+ if (file.name.split(".").pop() === "svg") {
112
+ calcSvgPreview(file);
113
+ }
114
+ }
115
+ });
116
+ } else if (file.name.split(".").pop() === "svg") {
107
117
  calcSvgPreview(file);
108
118
  }
109
119
  });
@@ -117,6 +127,7 @@ function useIViewUpload(props, valueChange, c) {
117
127
  _files.map((file) => ({
118
128
  name: file.name,
119
129
  id: file.id,
130
+ folder: file.folder,
120
131
  ...c.transformInfoMap(file, c.infoMap, true)
121
132
  }))
122
133
  ) : null;
@@ -142,9 +153,13 @@ function useIViewUpload(props, valueChange, c) {
142
153
  if (!response) {
143
154
  return;
144
155
  }
156
+ if (ibiz.config.common.enableDownloadTicket) {
157
+ ibiz.util.file.setDownloadTicket(response.id, response.ticket);
158
+ }
145
159
  uploadCache.cacheFiles.push({
146
160
  name: response.filename,
147
161
  id: response.fileid,
162
+ folder: response.folder,
148
163
  ...c.transformInfoMap(response, c.infoMap)
149
164
  });
150
165
  if (response.name.split(".").pop() === "svg") {
@@ -177,15 +192,25 @@ function useIViewUpload(props, valueChange, c) {
177
192
  emitValue();
178
193
  };
179
194
  const onDownload = (file) => {
180
- const url = file.url || downloadUrl.value.replace("%fileId%", file.id);
181
- ibiz.util.file.fileDownload(url, file.name);
195
+ const downloadUrl = getDownloadUrl(props.data, file);
196
+ const url = file.url || downloadUrl.replace("%fileId%", file.id);
197
+ const editorParams = { ...c.editorParams };
198
+ if (editorParams.exportparams) {
199
+ editorParams.exportParams = JSON.parse(editorParams.exportparams);
200
+ }
201
+ ibiz.util.file.fileDownload(url, file.name, {
202
+ context: c.context,
203
+ params: c.params,
204
+ data: props.data,
205
+ file: { fileId: file.id, ...file },
206
+ extraParams: editorParams
207
+ });
182
208
  };
183
209
  const limit = vue.computed(() => {
184
210
  return c.multiple ? 9999 : 1;
185
211
  });
186
212
  return {
187
213
  uploadUrl,
188
- downloadUrl,
189
214
  headers,
190
215
  files,
191
216
  limit,
@@ -4,6 +4,7 @@ var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
5
  var vueRouter = require('vue-router');
6
6
  var navBreadcrumb_controller = require('./nav-breadcrumb.controller.cjs');
7
+ var navBreadcrumb_util = require('./nav-breadcrumb.util.cjs');
7
8
  require('./nav-breadcrumb.css');
8
9
 
9
10
  "use strict";
@@ -44,15 +45,23 @@ const NavBreadcrumb = /* @__PURE__ */ vue.defineComponent({
44
45
  breadcrumbItems
45
46
  } = c.state;
46
47
  let result = breadcrumbItems.filter((x) => x.caption);
48
+ const indexViewName = navBreadcrumb_util.getAppIndexViewName(c.panel.context);
47
49
  if (!c.showHome) {
48
- result = result.filter((x) => x.viewName !== ibiz.hub.defaultAppIndexViewName);
50
+ result = result.filter((x) => x.viewName !== indexViewName);
49
51
  }
50
52
  return result;
51
53
  });
54
+ const onClick = (event, item) => {
55
+ if (item.type === "menuItem") {
56
+ event.stopPropagation();
57
+ c.openMenuItemView(item, event);
58
+ }
59
+ };
52
60
  return {
53
61
  ns,
54
62
  c,
55
- items
63
+ items,
64
+ onClick
56
65
  };
57
66
  },
58
67
  render() {
@@ -67,7 +76,9 @@ const NavBreadcrumb = /* @__PURE__ */ vue.defineComponent({
67
76
  label += " - ".concat(item.dataInfo);
68
77
  }
69
78
  return vue.createVNode(vue.resolveComponent("el-breadcrumb-item"), {
70
- "to": item.fullPath
79
+ "class": this.ns.is("link", item.type === "menuItem"),
80
+ "to": item.fullPath,
81
+ "onClick": (event) => this.onClick(event, item)
71
82
  }, _isSlot(label) ? label : {
72
83
  default: () => [label]
73
84
  });
@@ -110,24 +110,33 @@ class NavBreadcrumbController extends runtime.PanelItemController {
110
110
  }
111
111
  if (this.navMode === "store") {
112
112
  const { currentRoute } = router;
113
+ const routePath = vue3Util.route2routePath(currentRoute.value);
113
114
  const fullPath = currentRoute.value.fullPath;
114
115
  const viewName = navBreadcrumb_util.getCurViewName(router);
116
+ const menuTag = navBreadcrumb_util.getMenuTag(routePath.pathNodes);
115
117
  const chacheItem = this.service.getItem({ fullPath, viewName });
118
+ const indexViewName = navBreadcrumb_util.getAppIndexViewName(this.panel.context);
116
119
  if (chacheItem) {
117
- if (chacheItem.viewName === ibiz.hub.defaultAppIndexViewName) {
120
+ if (chacheItem.viewName === indexViewName) {
118
121
  this.service.setChache([
119
122
  { ...navBreadcrumb_util.getIndexBreadcrumb(this.panel.context), fullPath }
120
123
  ]);
121
124
  this.resetBreadcrumbs();
122
125
  return;
123
126
  }
127
+ this.service.update({ ...chacheItem, fullPath });
124
128
  const removeItems = this.service.removeAfter(fullPath);
125
129
  removeItems.forEach((item) => {
126
130
  var _a;
127
131
  (_a = this.navPos) == null ? void 0 : _a.removeCache(item.fullPath);
128
132
  });
129
133
  this.resetBreadcrumbs();
134
+ } else if (this.state.menuTag !== menuTag) {
135
+ this.setBreadcrumbByRouter(router);
136
+ } else {
137
+ this.service.add({ viewName, fullPath, type: "default" });
130
138
  }
139
+ this.state.menuTag = menuTag;
131
140
  }
132
141
  }
133
142
  /**
@@ -148,7 +157,7 @@ class NavBreadcrumbController extends runtime.PanelItemController {
148
157
  if (this.navMode === "menu") {
149
158
  return;
150
159
  }
151
- this.service.updateOrAdd({ fullPath, ...info });
160
+ this.service.update({ fullPath, type: "default", ...info });
152
161
  this.resetBreadcrumbs();
153
162
  }
154
163
  /**
@@ -164,19 +173,30 @@ class NavBreadcrumbController extends runtime.PanelItemController {
164
173
  * @param {Router} router
165
174
  * @memberof NavBreadcrumbController
166
175
  */
167
- setBreadcrumbByRouter(router) {
176
+ async setBreadcrumbByRouter(router) {
168
177
  const { currentRoute } = router;
169
178
  const routePath = vue3Util.route2routePath(currentRoute.value);
170
- const items = routePath.pathNodes.map(
171
- (node, index) => {
172
- const { appContext, pathNodes } = routePath;
179
+ const { appContext = {}, pathNodes } = routePath;
180
+ const menuTag = navBreadcrumb_util.getMenuTag(pathNodes);
181
+ let hasMenuItem = false;
182
+ const menuData = await navBreadcrumb_util.getMenuItemByTag(
183
+ menuTag,
184
+ this.appmenu,
185
+ this.panel.context
186
+ );
187
+ const calcPathNodes = routePath.pathNodes.map(
188
+ async (node, index) => {
189
+ if (this.appmenu && menuData && menuData.viewName === node.viewName) {
190
+ hasMenuItem = true;
191
+ }
173
192
  const fullPath = vue3Util.routePath2string({
174
193
  appContext,
175
194
  pathNodes: pathNodes.slice(0, index + 1)
176
195
  });
177
196
  const result = {
178
197
  viewName: node.viewName,
179
- fullPath
198
+ fullPath,
199
+ type: "default"
180
200
  };
181
201
  const chacheItem = this.service.getItem({ viewName: node.viewName });
182
202
  if (chacheItem) {
@@ -185,13 +205,28 @@ class NavBreadcrumbController extends runtime.PanelItemController {
185
205
  }
186
206
  Object.assign(result, chacheItem);
187
207
  }
188
- const viewInfo = navBreadcrumb_util.getViewInfoByViewStack(node.viewName);
208
+ const viewInfo = navBreadcrumb_util.getViewInfoByViewStack(
209
+ node.viewName,
210
+ this.panel.context
211
+ );
189
212
  if (viewInfo) {
190
213
  Object.assign(result, ramda.reject(ramda.isNil, viewInfo));
191
214
  }
192
215
  return result;
193
216
  }
194
217
  );
218
+ const items = await Promise.all(calcPathNodes);
219
+ if (!hasMenuItem && menuData) {
220
+ this.state.menuTag = menuData.tag;
221
+ const item = {
222
+ viewName: menuData.viewName,
223
+ caption: menuData.menuItem.caption,
224
+ fullPath: "",
225
+ type: "menuItem",
226
+ menuTag: menuData.tag
227
+ };
228
+ items.splice(1, 0, item);
229
+ }
195
230
  this.service.setChache(items);
196
231
  this.resetBreadcrumbs();
197
232
  }
@@ -225,6 +260,7 @@ class NavBreadcrumbController extends runtime.PanelItemController {
225
260
  return {
226
261
  caption: item.caption,
227
262
  fullPath: "",
263
+ type: "default",
228
264
  viewName: item.id
229
265
  };
230
266
  });
@@ -267,16 +303,14 @@ class NavBreadcrumbController extends runtime.PanelItemController {
267
303
  }
268
304
  if (this.appmenu) {
269
305
  this.appmenu.evt.on("onClick", async (data) => {
270
- var _a;
271
306
  const { eventArg } = data;
272
- const menuItem = this.appmenu.allAppMenuItems.find(
273
- (x) => x.id === eventArg
307
+ const menuData = await navBreadcrumb_util.getMenuItemByTag(
308
+ eventArg,
309
+ this.appmenu,
310
+ this.panel.context
274
311
  );
275
- if (menuItem) {
276
- const app = ibiz.hub.getApp(this.panel.context.srfappid);
277
- const appFunc = app.getAppFunc(menuItem.appFuncId);
278
- const viewName = ((_a = appFunc.appViewId) == null ? void 0 : _a.split(".").pop()) || "";
279
- const viewConfig = await ibiz.hub.config.view.get(viewName);
312
+ if (menuData) {
313
+ const { viewName, appFunc, viewConfig } = menuData;
280
314
  if (appFunc.openMode !== "INDEXVIEWTAB" || viewConfig && viewConfig.openMode && viewConfig.openMode !== "INDEXVIEWTAB") {
281
315
  return;
282
316
  }
@@ -287,7 +321,8 @@ class NavBreadcrumbController extends runtime.PanelItemController {
287
321
  } else {
288
322
  items.push({
289
323
  viewName,
290
- fullPath: ""
324
+ fullPath: "",
325
+ type: "default"
291
326
  });
292
327
  }
293
328
  items.unshift(navBreadcrumb_util.getIndexBreadcrumb(this.panel.context));
@@ -314,6 +349,17 @@ class NavBreadcrumbController extends runtime.PanelItemController {
314
349
  }
315
350
  Object.assign(this.rawItemParams, params);
316
351
  }
352
+ /**
353
+ * @description 打开菜单项视图
354
+ * @param {IData} item
355
+ * @param {MouseEvent} event
356
+ * @memberof NavBreadcrumbController
357
+ */
358
+ openMenuItemView(item, event) {
359
+ if (this.appmenu) {
360
+ this.appmenu.onClickMenuItem(item.menuTag, event);
361
+ }
362
+ }
317
363
  }
318
364
 
319
365
  exports.NavBreadcrumbController = NavBreadcrumbController;
@@ -1 +1 @@
1
- .ibiz-nav-breadcrumb{--ibiz-nav-breadcrumb-padding:var(--ibiz-spacing-base-loose);--ibiz-nav-breadcrumb-link-color:var(--ibiz-color-link);--ibiz-nav-breadcrumb-disabled-color:var(--ibiz-color-text-0);padding:var(--ibiz-nav-breadcrumb-padding);--el-text-color-primary:var(--ibiz-nav-breadcrumb-link-color)}.ibiz-nav-breadcrumb--menu{color:var(--ibiz-nav-breadcrumb-disabled-color);--el-text-color-primary:var(--ibiz-nav-breadcrumb-disabled-color)}.ibiz-nav-breadcrumb--menu .el-breadcrumb__item{cursor:text}.ibiz-nav-breadcrumb--menu .el-breadcrumb__item:last-child .el-breadcrumb__inner{color:var(--ibiz-color-primary)}.ibiz-nav-breadcrumb--menu .el-breadcrumb__inner.is-link{font-weight:400;pointer-events:none}
1
+ .ibiz-nav-breadcrumb{--ibiz-nav-breadcrumb-padding:var(--ibiz-spacing-base-loose);--ibiz-nav-breadcrumb-link-color:var(--ibiz-color-link);--ibiz-nav-breadcrumb-disabled-color:var(--ibiz-color-text-0);padding:var(--ibiz-nav-breadcrumb-padding);--el-text-color-primary:var(--ibiz-nav-breadcrumb-link-color)}.ibiz-nav-breadcrumb--menu{color:var(--ibiz-nav-breadcrumb-disabled-color);--el-text-color-primary:var(--ibiz-nav-breadcrumb-disabled-color)}.ibiz-nav-breadcrumb--menu .el-breadcrumb__item{cursor:text}.ibiz-nav-breadcrumb--menu .el-breadcrumb__item:last-child .el-breadcrumb__inner{color:var(--ibiz-color-primary)}.ibiz-nav-breadcrumb--menu .el-breadcrumb__inner.is-link{font-weight:400;pointer-events:none}.ibiz-nav-breadcrumb .el-breadcrumb__item.is-link .el-breadcrumb__inner{font-weight:700;color:var(--el-text-color-primary);text-decoration:none;cursor:pointer;transition:var(--el-transition-color)}
@@ -72,7 +72,7 @@ class NavBreadcrumbService {
72
72
  * @param {BreadcrumbMsg} item
73
73
  * @memberof NavBreadcrumbService
74
74
  */
75
- updateOrAdd(item) {
75
+ update(item) {
76
76
  if (!this.chache.length && this.navMode === "store") {
77
77
  const result = localStorage.getItem("breadcrumb");
78
78
  if (result) {
@@ -82,9 +82,7 @@ class NavBreadcrumbService {
82
82
  const index = this.chache.findIndex(
83
83
  (x) => x.fullPath && x.fullPath === item.fullPath || x.viewName.toLowerCase() === item.viewName.toLowerCase()
84
84
  );
85
- if (index === -1) {
86
- this.add(item);
87
- } else {
85
+ if (index !== -1) {
88
86
  Object.assign(this.chache[index], ramda.reject(ramda.isNil, item));
89
87
  this.chache = this.chache.filter((x) => !x.isEmbed && !x.isModal);
90
88
  if (this.navMode === "store") {
@@ -100,7 +98,8 @@ class NavBreadcrumbService {
100
98
  */
101
99
  getItem(data) {
102
100
  const { viewName = "", fullPath = "" } = data;
103
- if (viewName === "index") {
101
+ const indexViewName = navBreadcrumb_util.getAppIndexViewName(this.context);
102
+ if (viewName === indexViewName) {
104
103
  return navBreadcrumb_util.getIndexBreadcrumb(this.context);
105
104
  }
106
105
  const item = this.chache.find(
@@ -19,6 +19,12 @@ class NavBreadcrumbState extends runtime.PanelItemState {
19
19
  * @memberof NavBreadcrumbState
20
20
  */
21
21
  __publicField(this, "breadcrumbItems", []);
22
+ /**
23
+ * @description 菜单标识
24
+ * @type {string}
25
+ * @memberof NavBreadcrumbState
26
+ */
27
+ __publicField(this, "menuTag", "");
22
28
  }
23
29
  }
24
30
 
@@ -4,12 +4,23 @@ var vue3Util = require('@ibiz-template/vue3-util');
4
4
  var runtime = require('@ibiz-template/runtime');
5
5
 
6
6
  "use strict";
7
+ function getAppIndexViewName(context) {
8
+ const targetAppModel = ibiz.hub.getAppSourceModel(context.srfappid);
9
+ if (targetAppModel.getDefaultPSAppIndexView) {
10
+ const view = targetAppModel.getDefaultPSAppIndexView;
11
+ const name = view.path.split("/").pop().replace(".json", "");
12
+ return name;
13
+ }
14
+ return ibiz.hub.defaultAppIndexViewName;
15
+ }
7
16
  function getIndexBreadcrumb(context) {
8
17
  const app = ibiz.hub.getApp(context.srfappid);
9
18
  const caption = app.model.caption;
19
+ const indexViewName = getAppIndexViewName(context);
10
20
  return {
11
- viewName: ibiz.hub.defaultAppIndexViewName,
21
+ viewName: indexViewName,
12
22
  fullPath: "/",
23
+ type: "default",
13
24
  caption
14
25
  };
15
26
  }
@@ -50,7 +61,7 @@ function getCurViewName(router) {
50
61
  const routePath = vue3Util.route2routePath(currentRoute.value);
51
62
  return ((_a = routePath.pathNodes.pop()) == null ? void 0 : _a.viewName) || "";
52
63
  }
53
- function getViewInfoByViewStack(viewName) {
64
+ function getViewInfoByViewStack(viewName, context) {
54
65
  if (viewName === runtime.RouteConst.ROUTE_MODAL_TAG) {
55
66
  return {
56
67
  viewName,
@@ -58,22 +69,58 @@ function getViewInfoByViewStack(viewName) {
58
69
  isModal: true
59
70
  };
60
71
  }
61
- const view = ibiz.util.viewStack.getViewByCodeName(viewName);
72
+ const view = ibiz.appUtil.viewCacheCenter.get(viewName);
73
+ const indexViewName = getAppIndexViewName(context);
62
74
  if (view) {
63
75
  let isEmbed = false;
64
- if (view.parentView && view.parentView.model.codeName !== ibiz.hub.defaultAppIndexViewName) {
76
+ if (view.parentView && view.parentView.model.codeName !== indexViewName) {
65
77
  isEmbed = true;
66
78
  }
67
- return {
79
+ const data = view.state.srfactiveviewdata;
80
+ const result = {
68
81
  viewName: view.model.codeName,
69
82
  caption: view.model.caption,
70
83
  isEmbed
71
84
  };
85
+ if (data && data.srfkey) {
86
+ Object.assign(result, { dataInfo: data.srfmajortext || "" });
87
+ }
88
+ return result;
89
+ }
90
+ }
91
+ function getMenuTag(pathNodes) {
92
+ var _a;
93
+ if (pathNodes.length > 1) {
94
+ return ((_a = pathNodes[1].params) == null ? void 0 : _a.srfmenuitem) || "";
95
+ }
96
+ return "";
97
+ }
98
+ async function getMenuItemByTag(tag, appMenu, context) {
99
+ var _a;
100
+ if (!tag) {
101
+ return;
102
+ }
103
+ const menuItem = appMenu.allAppMenuItems.find((x) => x.id === tag);
104
+ if (menuItem) {
105
+ const app = ibiz.hub.getApp(context.srfappid);
106
+ const appFunc = app.getAppFunc(menuItem.appFuncId);
107
+ const viewName = ((_a = appFunc.appViewId) == null ? void 0 : _a.split(".").pop()) || "";
108
+ const viewConfig = await ibiz.hub.config.view.get(viewName);
109
+ return {
110
+ tag,
111
+ viewName,
112
+ viewConfig,
113
+ appFunc,
114
+ menuItem
115
+ };
72
116
  }
73
117
  }
74
118
 
75
119
  exports.getAppFuncByViewName = getAppFuncByViewName;
120
+ exports.getAppIndexViewName = getAppIndexViewName;
76
121
  exports.getCurViewName = getCurViewName;
77
122
  exports.getIndexBreadcrumb = getIndexBreadcrumb;
123
+ exports.getMenuItemByTag = getMenuItemByTag;
78
124
  exports.getMenuItemsByAppFunc = getMenuItemsByAppFunc;
125
+ exports.getMenuTag = getMenuTag;
79
126
  exports.getViewInfoByViewStack = getViewInfoByViewStack;
@@ -31,6 +31,7 @@ const AsyncDataExport = /* @__PURE__ */ vue.defineComponent({
31
31
  beginTime: "",
32
32
  endTime: "",
33
33
  fileUrl: "",
34
+ fileName: "",
34
35
  isFinish: false
35
36
  });
36
37
  info.title = ibiz.i18n.t("panelComponent.userMessage.asyncDataExport.exportDetailPrompt", {
@@ -41,6 +42,7 @@ const AsyncDataExport = /* @__PURE__ */ vue.defineComponent({
41
42
  if (props.asyncAction.asyncresultdownloadurl) {
42
43
  const asyncResultDownloadObj = JSON.parse(props.asyncAction.asyncresultdownloadurl);
43
44
  info.fileUrl = "".concat(ibiz.env.baseUrl, "/").concat(ibiz.env.appId).concat(ibiz.env.downloadFileUrl, "/").concat(asyncResultDownloadObj.folder, "/").concat(asyncResultDownloadObj.fileid).replace("/{cat}", "");
45
+ info.fileName = asyncResultDownloadObj.filename;
44
46
  }
45
47
  if (!finishedStates.includes(props.asyncAction.actionstate)) {
46
48
  info.isFinish = false;
@@ -48,7 +50,7 @@ const AsyncDataExport = /* @__PURE__ */ vue.defineComponent({
48
50
  info.isFinish = true;
49
51
  }
50
52
  const onDownLoad = () => {
51
- ibiz.util.file.fileDownload(info.fileUrl);
53
+ ibiz.util.file.fileDownload(info.fileUrl, info.fileName);
52
54
  };
53
55
  return {
54
56
  ns,
@@ -2,7 +2,7 @@
2
2
 
3
3
  var vue = require('vue');
4
4
  var ElementPlus = require('element-plus');
5
- var namespace = require('../../node_modules/.pnpm/@ibiz-template_core@0.7.41-alpha.17_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1/node_modules/@ibiz-template/core/out/utils/namespace/namespace.cjs');
5
+ var namespace = require('../../node_modules/.pnpm/@ibiz-template_core@0.7.41-alpha.18_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1/node_modules/@ibiz-template/core/out/utils/namespace/namespace.cjs');
6
6
  var fullscreenToolbar = require('../../common/fullscreen-toolbar/fullscreen-toolbar.cjs');
7
7
 
8
8
  "use strict";
@@ -1,35 +1,17 @@
1
1
  'use strict';
2
2
 
3
- var runtime = require('@ibiz-template/runtime');
3
+ var expView_engine = require('./exp-view.engine.cjs');
4
4
 
5
5
  "use strict";
6
- class CalendarExpViewEngine extends runtime.ViewEngineBase {
6
+ class CalendarExpViewEngine extends expView_engine.ExpViewEngine {
7
7
  /**
8
- * 树导航栏
9
- *
8
+ * @description 导航栏部件名称
10
9
  * @readonly
10
+ * @type {string}
11
11
  * @memberof CalendarExpViewEngine
12
12
  */
13
- get calendarExpBar() {
14
- return this.view.getController(
15
- "calendarexpbar"
16
- );
17
- }
18
- async onCreated() {
19
- await super.onCreated();
20
- const { childNames } = this.view;
21
- childNames.push("calendarexpbar");
22
- if (!this.view.slotProps.calendarexpbar) {
23
- this.view.slotProps.calendarexpbar = {};
24
- }
25
- this.view.slotProps.calendarexpbar.srfnav = this.view.state.srfnav;
26
- }
27
- async onMounted() {
28
- await super.onMounted();
29
- const { model } = this.view;
30
- if (!this.view.state.noLoadDefault && model.loadDefault) {
31
- this.calendarExpBar.load();
32
- }
13
+ get expBarName() {
14
+ return "calendarexpbar";
33
15
  }
34
16
  }
35
17
 
@@ -263,6 +263,18 @@ class EditViewEngine extends runtime.DEMainViewEngine {
263
263
  this.view.context[runtime.calcDeCodeNameById(this.view.model.appDataEntityId)] = void 0;
264
264
  await this.form.load();
265
265
  }
266
+ /**
267
+ * @description 取消变更
268
+ * @param {({
269
+ * targetState: 'INIT' | 'UNDO' | 'REDO';
270
+ * })} [_args={ targetState: 'INIT' }] 目标状态,初始化状态|撤销上一步操作|重做下一步操作
271
+ * @returns {*} {Promise<void>}
272
+ * @memberof EditViewEngine
273
+ */
274
+ async cancelChanges(_args = { targetState: "INIT" }) {
275
+ await super.cancelChanges(_args);
276
+ await this.form.cancelChanges(_args.targetState);
277
+ }
266
278
  /**
267
279
  * 工作流启动
268
280
  *
@@ -68,10 +68,6 @@ class LoginViewEngine extends runtime.ViewEngineBase {
68
68
  await this.login(args);
69
69
  return null;
70
70
  }
71
- if (key === runtime.SysUIActionTag.CANCEL_CHANGES) {
72
- await this.cancelChanges();
73
- return null;
74
- }
75
71
  return super.call(key, args);
76
72
  }
77
73
  async login(args) {
@@ -121,7 +117,15 @@ class LoginViewEngine extends runtime.ViewEngineBase {
121
117
  }
122
118
  }
123
119
  }
124
- async cancelChanges() {
120
+ /**
121
+ * @description 取消变更
122
+ * @param {({
123
+ * targetState: 'INIT' | 'UNDO' | 'REDO';
124
+ * })} [_args={ targetState: 'INIT' }] 目标状态,初始化状态|撤销上一步操作|重做下一步操作
125
+ * @returns {*} {Promise<void>}
126
+ * @memberof LoginViewEngine
127
+ */
128
+ async cancelChanges(_args = { targetState: "INIT" }) {
125
129
  if (this.view.layoutPanel) {
126
130
  Object.keys(this.view.layoutPanel.panelItems).forEach((key) => {
127
131
  const controller = this.view.layoutPanel.panelItems[key];