@ibiz-template/vue3-components 0.7.41-alpha.52 → 0.7.41-alpha.53

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 (39) hide show
  1. package/dist/{index-B0XiEslO.js → index-B65kCxFK.js} +1 -1
  2. package/dist/index-BF8huIAU.js +11 -0
  3. package/dist/{index-B6kaPJDO.js → index-CIEKzp7k.js} +1 -1
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/{wang-editor-BbR16ZTX.js → wang-editor-uEldtkHX.js} +1 -1
  7. package/dist/{xlsx-util-BkJoKKKt.js → xlsx-util-DmPcr7YV.js} +1 -1
  8. package/es/common/action-toolbar/action-toolbar.css +1 -1
  9. package/es/locale/en/index.mjs +4 -0
  10. package/es/locale/zh-CN/index.mjs +4 -0
  11. package/es/panel-component/user-message/internal-message/common/internal-message-container/internal-message-container.mjs +7 -6
  12. package/es/panel-component/user-message/internal-message/common/internal-message-default/internal-message-default.mjs +3 -1
  13. package/es/panel-component/user-message/internal-message/common/internal-message-default/internal-message-default.provider.mjs +0 -1
  14. package/es/panel-component/user-message/internal-message/index.mjs +2 -0
  15. package/es/panel-component/user-message/internal-message/internal-message-group/internal-message-group.css +1 -0
  16. package/es/panel-component/user-message/internal-message/internal-message-group/internal-message-group.mjs +122 -0
  17. package/es/panel-component/user-message/internal-message/internal-message-html/internal-message-html.mjs +4 -2
  18. package/es/panel-component/user-message/internal-message/internal-message-json/internal-message-json.mjs +5 -3
  19. package/es/panel-component/user-message/internal-message/internal-message-tab/internal-message-tab.mjs +75 -12
  20. package/es/panel-component/user-message/internal-message/internal-message-text/internal-message-text.mjs +3 -1
  21. package/es/util/ai-chat-util/ai-chat-util.mjs +58 -6
  22. package/es/view-engine/wf-dyna-edit-view.engine.mjs +2 -2
  23. package/lib/common/action-toolbar/action-toolbar.css +1 -1
  24. package/lib/locale/en/index.cjs +4 -0
  25. package/lib/locale/zh-CN/index.cjs +4 -0
  26. package/lib/panel-component/user-message/internal-message/common/internal-message-container/internal-message-container.cjs +7 -6
  27. package/lib/panel-component/user-message/internal-message/common/internal-message-default/internal-message-default.cjs +3 -1
  28. package/lib/panel-component/user-message/internal-message/common/internal-message-default/internal-message-default.provider.cjs +0 -1
  29. package/lib/panel-component/user-message/internal-message/index.cjs +2 -0
  30. package/lib/panel-component/user-message/internal-message/internal-message-group/internal-message-group.cjs +124 -0
  31. package/lib/panel-component/user-message/internal-message/internal-message-group/internal-message-group.css +1 -0
  32. package/lib/panel-component/user-message/internal-message/internal-message-html/internal-message-html.cjs +4 -2
  33. package/lib/panel-component/user-message/internal-message/internal-message-json/internal-message-json.cjs +5 -3
  34. package/lib/panel-component/user-message/internal-message/internal-message-tab/internal-message-tab.cjs +75 -12
  35. package/lib/panel-component/user-message/internal-message/internal-message-text/internal-message-text.cjs +3 -1
  36. package/lib/util/ai-chat-util/ai-chat-util.cjs +58 -6
  37. package/lib/view-engine/wf-dyna-edit-view.engine.cjs +2 -2
  38. package/package.json +8 -8
  39. package/dist/index-DFvp2f5r.js +0 -11
@@ -802,6 +802,10 @@ var index = {
802
802
  notificationYet: "\u6682\u65E0\u901A\u77E5",
803
803
  loadMore: "\u52A0\u8F7D\u66F4\u591A({length})",
804
804
  onlyShowUnread: "\u53EA\u663E\u793A\u672A\u8BFB"
805
+ },
806
+ internalMessageGroup: {
807
+ expand: "\u5C55\u5F00",
808
+ collapse: "\u6536\u8D77"
805
809
  }
806
810
  },
807
811
  customSetting: {
@@ -28,7 +28,8 @@ const InternalMessageContainer = /* @__PURE__ */ vue.defineComponent({
28
28
  },
29
29
  emits: {
30
30
  toolbarClick: (_key) => true,
31
- close: () => true
31
+ close: () => true,
32
+ read: () => true
32
33
  },
33
34
  setup(props, {
34
35
  emit
@@ -51,7 +52,7 @@ const InternalMessageContainer = /* @__PURE__ */ vue.defineComponent({
51
52
  const onToolbarClick = (event, key) => {
52
53
  event.stopPropagation();
53
54
  if (key === "read") {
54
- ibiz.hub.notice.internalMessage.markRead(props.message);
55
+ emit("read");
55
56
  } else {
56
57
  emit("toolbarClick", key);
57
58
  }
@@ -65,18 +66,18 @@ const InternalMessageContainer = /* @__PURE__ */ vue.defineComponent({
65
66
  const onClick = async (event) => {
66
67
  if (isClickable.value && props.provider.onClick) {
67
68
  const isClose = await props.provider.onClick(props.message, event);
68
- if (isClose) {
69
+ if (isClose)
69
70
  emit("close");
70
- }
71
71
  }
72
+ emit("read");
72
73
  };
73
74
  return {
74
75
  ns,
75
76
  isUnread,
76
77
  isClickable,
77
78
  finalToolbarItems,
78
- onToolbarClick,
79
- onClick
79
+ onClick,
80
+ onToolbarClick
80
81
  };
81
82
  },
82
83
  render() {
@@ -36,7 +36,8 @@ const InternalMessageDefault = /* @__PURE__ */ vue.defineComponent({
36
36
  }
37
37
  },
38
38
  emits: {
39
- close: () => true
39
+ close: () => true,
40
+ read: () => true
40
41
  },
41
42
  setup() {
42
43
  const ns = vue3Util.useNamespace("internal-message");
@@ -58,6 +59,7 @@ const InternalMessageDefault = /* @__PURE__ */ vue.defineComponent({
58
59
  "class": [this.ns.b()],
59
60
  "message": this.message,
60
61
  "provider": this.provider,
62
+ "onRead": () => this.$emit("read"),
61
63
  "onClose": () => this.$emit("close")
62
64
  }, {
63
65
  default: () => [vue.createVNode("div", {
@@ -25,7 +25,6 @@ class InternalMessageDefaultProvider {
25
25
  });
26
26
  }
27
27
  async onClick(message, _event) {
28
- await ibiz.hub.notice.internalMessage.markRead(message);
29
28
  const redirectUrl = ibiz.env.isMob ? message.mobile_url : message.url;
30
29
  return this.openViewByUrl(redirectUrl);
31
30
  }
@@ -10,10 +10,12 @@ var internalMessageHtml = require('./internal-message-html/internal-message-html
10
10
  var internalMessageHtml_provider = require('./internal-message-html/internal-message-html.provider.cjs');
11
11
  var internalMessageText_provider = require('./internal-message-text/internal-message-text.provider.cjs');
12
12
  var internalMessageText = require('./internal-message-text/internal-message-text.cjs');
13
+ var internalMessageGroup = require('./internal-message-group/internal-message-group.cjs');
13
14
  var internalMessageTab = require('./internal-message-tab/internal-message-tab.cjs');
14
15
 
15
16
  "use strict";
16
17
  function installInternalMessage(v) {
18
+ v.component(internalMessageGroup.InternalMessagGroup.name, internalMessageGroup.InternalMessagGroup);
17
19
  v.component(internalMessageContainer.InternalMessageContainer.name, internalMessageContainer.InternalMessageContainer);
18
20
  v.component(internalMessageDefault.InternalMessageDefault.name, internalMessageDefault.InternalMessageDefault);
19
21
  v.component(internalMessageJson.InternalMessageJSON.name, internalMessageJson.InternalMessageJSON);
@@ -0,0 +1,124 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ var core = require('@ibiz-template/core');
6
+ var runtime = require('@ibiz-template/runtime');
7
+ require('../../../../util/index.cjs');
8
+ require('./internal-message-group.css');
9
+ var wangEditorUtil = require('../../../../util/wang-editor-util/wang-editor-util.cjs');
10
+
11
+ "use strict";
12
+ const InternalMessagGroup = /* @__PURE__ */ vue.defineComponent({
13
+ name: "IBizInternalMessageGroup",
14
+ props: {
15
+ message: {
16
+ type: Object,
17
+ required: true
18
+ },
19
+ provider: {
20
+ type: Object,
21
+ required: true
22
+ }
23
+ },
24
+ emits: {
25
+ close: (_msg) => true,
26
+ read: (_msg) => true
27
+ },
28
+ setup(props, {
29
+ emit
30
+ }) {
31
+ const ns = vue3Util.useNamespace("internal-message-group");
32
+ const isExpand = vue.ref(false);
33
+ const onExpandChange = () => {
34
+ isExpand.value = !isExpand.value;
35
+ };
36
+ const html = vue.computed(() => {
37
+ const {
38
+ content_type,
39
+ content
40
+ } = props.message;
41
+ if (content_type === "JSON")
42
+ return content ? JSON.parse(content).html : content;
43
+ if (content === "HTML")
44
+ return wangEditorUtil.parseHtml(content);
45
+ return content;
46
+ });
47
+ const onClose = (msg) => {
48
+ emit("close", msg);
49
+ };
50
+ const onRead = (msg) => {
51
+ emit("read", msg);
52
+ };
53
+ const onClick = async (event) => {
54
+ if (props.provider.onClick) {
55
+ const isClose = await props.provider.onClick(props.message, event);
56
+ if (isClose)
57
+ onClose();
58
+ }
59
+ onRead(props.message);
60
+ };
61
+ return {
62
+ ns,
63
+ html,
64
+ isExpand,
65
+ onRead,
66
+ onClose,
67
+ onClick,
68
+ onExpandChange
69
+ };
70
+ },
71
+ render() {
72
+ var _a, _b;
73
+ return vue.createVNode("div", {
74
+ "class": this.ns.b()
75
+ }, [vue.createVNode("div", {
76
+ "class": this.ns.e("content")
77
+ }, [vue.createVNode("div", {
78
+ "innerHTML": this.html,
79
+ "onClick": this.onClick,
80
+ "class": this.ns.em("content", "html")
81
+ }, null), vue.createVNode("div", {
82
+ "class": this.ns.e("action")
83
+ }, [vue.createVNode("ion-icon", {
84
+ "class": this.ns.em("action", "item"),
85
+ "title": core.showTitle(this.isExpand ? ibiz.i18n.t("panelComponent.userMessage.internalMessageGroup.collapse") : ibiz.i18n.t("panelComponent.userMessage.internalMessageGroup.expand")),
86
+ "name": this.isExpand ? "chevron-down-outline" : "chevron-forward-outline",
87
+ "onClick": this.onExpandChange
88
+ }, null), vue.createVNode(vue.resolveComponent("iBizBadge"), {
89
+ "class": this.ns.e("badge"),
90
+ "value": (_a = this.message.children) == null ? void 0 : _a.length
91
+ }, null), vue.createVNode(vue.resolveComponent("iBizIcon"), {
92
+ "baseDir": "iconfont",
93
+ "icon": {
94
+ imagePath: "svg/read.svg"
95
+ },
96
+ "class": [this.ns.em("action", "item"), this.ns.em("action", "read")],
97
+ "title": core.showTitle(ibiz.i18n.t("panelComponent.userMessage.internalMessageContainer.markAsRead")),
98
+ "onClick": () => this.onRead(this.message)
99
+ }, null)])]), this.isExpand && vue.createVNode("div", {
100
+ "class": this.ns.e("children")
101
+ }, [(_b = this.message.children) == null ? void 0 : _b.map((msg) => {
102
+ let provider;
103
+ try {
104
+ provider = runtime.getInternalMessageProvider(msg);
105
+ } catch (error) {
106
+ ibiz.log.error(error);
107
+ }
108
+ if (provider)
109
+ return provider.render({
110
+ message: msg,
111
+ class: this.ns.em("children", "item"),
112
+ onClose: () => this.onClose(msg),
113
+ onRead: () => this.onRead(msg)
114
+ });
115
+ return vue.createVNode("div", {
116
+ "class": this.ns.em("children", "item")
117
+ }, [ibiz.i18n.t("panelComponent.userMessage.internalMessageTab.noSupportType", {
118
+ type: msg.content_type
119
+ })]);
120
+ })])]);
121
+ }
122
+ });
123
+
124
+ exports.InternalMessagGroup = InternalMessagGroup;
@@ -0,0 +1 @@
1
+ .ibiz-internal-message-group{display:flex;flex-flow:column nowrap;height:auto}.ibiz-internal-message-group__content{position:relative;flex-shrink:0;min-height:60px;padding:var(--ibiz-spacing-tight);cursor:pointer}.ibiz-internal-message-group__content:hover{background-color:var(--ibiz-color-fill-1)}.ibiz-internal-message-group__content:hover .ibiz-internal-message-group__badge{display:none}.ibiz-internal-message-group__content:hover .ibiz-internal-message-group__action--read{display:block}.ibiz-internal-message-group__badge{color:var(--ibiz-color-white)!important;background-color:var(--ibiz-color-danger)!important}.ibiz-internal-message-group__action{position:absolute;top:var(--ibiz-spacing-tight);right:var(--ibiz-spacing-tight);display:flex;gap:var(--ibiz-spacing-tight);align-items:center;width:40px;height:18px}.ibiz-internal-message-group__action--item{cursor:pointer}.ibiz-internal-message-group__action--item:hover{color:var(--ibiz-color-primary)}.ibiz-internal-message-group__action--read{display:none}.ibiz-internal-message-group__children{flex-grow:1;padding-left:var(--ibiz-spacing-loose)}.ibiz-internal-message-group__children--item{min-height:60px;padding:var(--ibiz-spacing-tight)}.ibiz-internal-message-group__children--item:hover{background-color:var(--ibiz-color-fill-1)}
@@ -2,8 +2,8 @@
2
2
 
3
3
  var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
- require('./internal-message-html.css');
6
5
  require('../../../../util/index.cjs');
6
+ require('./internal-message-html.css');
7
7
  var wangEditorUtil = require('../../../../util/wang-editor-util/wang-editor-util.cjs');
8
8
 
9
9
  "use strict";
@@ -20,7 +20,8 @@ const InternalMessageHTML = /* @__PURE__ */ vue.defineComponent({
20
20
  }
21
21
  },
22
22
  emits: {
23
- close: () => true
23
+ close: () => true,
24
+ read: () => true
24
25
  },
25
26
  setup(props) {
26
27
  const ns = vue3Util.useNamespace("internal-message-html");
@@ -37,6 +38,7 @@ const InternalMessageHTML = /* @__PURE__ */ vue.defineComponent({
37
38
  "class": [this.ns.b()],
38
39
  "message": this.message,
39
40
  "provider": this.provider,
41
+ "onRead": () => this.$emit("read"),
40
42
  "onClose": () => this.$emit("close")
41
43
  }, {
42
44
  default: () => [vue.createVNode("div", {
@@ -21,7 +21,8 @@ const InternalMessageJSON = /* @__PURE__ */ vue.defineComponent({
21
21
  }
22
22
  },
23
23
  emits: {
24
- close: () => true
24
+ close: () => true,
25
+ read: () => true
25
26
  },
26
27
  setup(props, {
27
28
  emit
@@ -60,10 +61,10 @@ const InternalMessageJSON = /* @__PURE__ */ vue.defineComponent({
60
61
  };
61
62
  return {
62
63
  ns,
63
- jsonContent,
64
- toolbarItems,
65
64
  redirectUrl,
66
65
  isWFMessage,
66
+ jsonContent,
67
+ toolbarItems,
67
68
  onToolbarClick
68
69
  };
69
70
  },
@@ -106,6 +107,7 @@ const InternalMessageJSON = /* @__PURE__ */ vue.defineComponent({
106
107
  "clickable": !!this.redirectUrl || !!this.isWFMessage,
107
108
  "toolbarItems": this.toolbarItems,
108
109
  "onToolbarClick": this.onToolbarClick,
110
+ "onRead": () => this.$emit("read"),
109
111
  "onClose": () => this.$emit("close")
110
112
  }, _isSlot(content) ? content : {
111
113
  default: () => [content]
@@ -1,10 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var vue = require('vue');
4
+ var dayjs = require('dayjs');
5
+ var ramda = require('ramda');
4
6
  var vue3Util = require('@ibiz-template/vue3-util');
5
7
  var runtime = require('@ibiz-template/runtime');
6
8
  require('./internal-message-tab.css');
7
- var ramda = require('ramda');
8
9
 
9
10
  "use strict";
10
11
  const InternalMessageTab = /* @__PURE__ */ vue.defineComponent({
@@ -30,6 +31,18 @@ const InternalMessageTab = /* @__PURE__ */ vue.defineComponent({
30
31
  const hiddenPopover = () => {
31
32
  emit("hiddenPopover");
32
33
  };
34
+ const onMarkRead = async (message, filter) => {
35
+ var _a2;
36
+ if ((_a2 = message.children) == null ? void 0 : _a2.length) {
37
+ await Promise.all(message.children.filter((child) => child.id !== (filter == null ? void 0 : filter.id)).map((child) => ibiz.hub.notice.internalMessage.markRead(child)));
38
+ } else {
39
+ await ibiz.hub.notice.internalMessage.markRead(message);
40
+ }
41
+ };
42
+ const onGroupClose = async (message, filter) => {
43
+ hiddenPopover();
44
+ await onMarkRead(message, filter);
45
+ };
33
46
  const c = props.controller;
34
47
  const unreadOnlyTag = "".concat((_a = ibiz.appData) == null ? void 0 : _a.context.srfsystemid, "-unreadOnly");
35
48
  const hasNotice = vue.ref(false);
@@ -47,15 +60,55 @@ const InternalMessageTab = /* @__PURE__ */ vue.defineComponent({
47
60
  }
48
61
  });
49
62
  const allItems = vue.ref([]);
63
+ const messages = vue.ref([]);
50
64
  const state = vue.reactive({
51
65
  total: 0,
52
66
  pageSize: 0,
53
67
  unreadOnly: c.unreadOnly
54
68
  });
69
+ const handleMessageGroup = () => {
70
+ const grouped = {};
71
+ const ungrouped = [];
72
+ allItems.value.forEach((item) => {
73
+ const key = ibiz.env.isMob ? "".concat(item.message_type).concat(item.mobile_url) : "".concat(item.message_type).concat(item.url);
74
+ const shouldGroup = key && item.status === "RECEIVED";
75
+ if (shouldGroup) {
76
+ if (!grouped[key])
77
+ grouped[key] = [];
78
+ grouped[key].push({
79
+ ...item
80
+ });
81
+ } else {
82
+ ungrouped.push({
83
+ ...item
84
+ });
85
+ }
86
+ });
87
+ const finalResult = [...ungrouped];
88
+ Object.values(grouped).forEach((group) => {
89
+ if (group.length === 1) {
90
+ finalResult.push({
91
+ ...group[0]
92
+ });
93
+ } else {
94
+ const parent = {
95
+ ...group[0]
96
+ };
97
+ parent.children = group.map((item) => ({
98
+ ...item
99
+ }));
100
+ finalResult.push(parent);
101
+ }
102
+ });
103
+ messages.value = finalResult.sort((a, b) => {
104
+ return dayjs(a.update_time).isAfter(b.update_time) ? -1 : 1;
105
+ });
106
+ };
55
107
  const updateData = () => {
56
- allItems.value = ramda.clone(c.messages);
57
108
  state.total = c.total;
58
109
  state.pageSize = c.size;
110
+ allItems.value = ramda.clone(c.messages);
111
+ handleMessageGroup();
59
112
  };
60
113
  updateData();
61
114
  const updateUnreadOnlyChange = (val) => {
@@ -92,11 +145,14 @@ const InternalMessageTab = /* @__PURE__ */ vue.defineComponent({
92
145
  });
93
146
  return {
94
147
  ns,
95
- allItems,
96
148
  state,
97
- hiddenPopover,
149
+ allItems,
150
+ messages,
98
151
  showMore,
99
- switchChange
152
+ onMarkRead,
153
+ onGroupClose,
154
+ switchChange,
155
+ hiddenPopover
100
156
  };
101
157
  },
102
158
  render() {
@@ -105,20 +161,27 @@ const InternalMessageTab = /* @__PURE__ */ vue.defineComponent({
105
161
  "class": [this.ns.b()]
106
162
  }, [vue.createVNode("div", {
107
163
  "class": this.ns.b("content")
108
- }, [this.allItems.length > 0 && this.allItems.map((msg) => {
164
+ }, [this.allItems.length > 0 && this.messages.map((msg) => {
165
+ var _a;
109
166
  let provider;
110
167
  try {
111
168
  provider = runtime.getInternalMessageProvider(msg);
112
169
  } catch (error) {
113
170
  ibiz.log.error(error);
114
171
  }
115
- if (provider) {
116
- return provider.render({
117
- class: [this.ns.e("item")],
172
+ if (provider)
173
+ return ((_a = msg.children) == null ? void 0 : _a.length) ? vue.createVNode(vue.resolveComponent("iBizInternalMessageGroup"), {
174
+ "message": msg,
175
+ "provider": provider,
176
+ "class": this.ns.e("group"),
177
+ "onRead": this.onMarkRead,
178
+ "onClose": (filter) => this.onGroupClose(msg, filter)
179
+ }, null) : provider.render({
118
180
  message: msg,
119
- onClose: this.hiddenPopover
181
+ class: this.ns.e("item"),
182
+ onClose: this.hiddenPopover,
183
+ onRead: () => this.onMarkRead(msg)
120
184
  });
121
- }
122
185
  return vue.createVNode("div", {
123
186
  "class": this.ns.e("item")
124
187
  }, [ibiz.i18n.t("panelComponent.userMessage.internalMessageTab.noSupportType", {
@@ -137,7 +200,7 @@ const InternalMessageTab = /* @__PURE__ */ vue.defineComponent({
137
200
  "value": this.state.unreadOnly,
138
201
  "onChange": this.switchChange,
139
202
  "class": this.ns.be("footer", "switch")
140
- }, null), " ", ibiz.i18n.t("panelComponent.userMessage.internalMessageTab.onlyShowUnread")])]);
203
+ }, null), ibiz.i18n.t("panelComponent.userMessage.internalMessageTab.onlyShowUnread")])]);
141
204
  }
142
205
  });
143
206
 
@@ -18,7 +18,8 @@ const InternalMessageText = /* @__PURE__ */ vue.defineComponent({
18
18
  }
19
19
  },
20
20
  emits: {
21
- close: () => true
21
+ close: () => true,
22
+ read: () => true
22
23
  },
23
24
  setup() {
24
25
  const ns = vue3Util.useNamespace("internal-message-text");
@@ -36,6 +37,7 @@ const InternalMessageText = /* @__PURE__ */ vue.defineComponent({
36
37
  "class": [this.ns.b()],
37
38
  "message": this.message,
38
39
  "provider": this.provider,
40
+ "onRead": () => this.$emit("read"),
39
41
  "onClose": () => this.$emit("close")
40
42
  }, {
41
43
  default: () => [vue.createVNode("div", {
@@ -36,6 +36,7 @@ class AIChatUtil {
36
36
  * @param data
37
37
  */
38
38
  async getEditorExAIChatParams(editorParams, context, params, data, deACMode, args) {
39
+ var _a;
39
40
  const containerOptions = {};
40
41
  if (editorParams.enableaiminimize) {
41
42
  containerOptions.enableAIMinimize = editorParams.enableaiminimize === "true";
@@ -275,13 +276,16 @@ class AIChatUtil {
275
276
  }
276
277
  return null;
277
278
  };
279
+ const app = ibiz.hub.getApp(context.srfappid);
280
+ const folder = app.model.defaultOSSCat || ((_a = app.model.userParam) == null ? void 0 : _a.DefaultOSSCat);
278
281
  chatOptions.uploader = {
282
+ folder: "".concat(folder, "$"),
279
283
  onUpload: async (file, reportProgress, options) => {
280
284
  const fileMeata = ibiz.util.file.calcFileUpDownUrl(
281
285
  (options == null ? void 0 : options.context) || context,
282
286
  (options == null ? void 0 : options.params) || params,
283
287
  {},
284
- { enableNoAccess: true }
288
+ { enableNoAccess: true, osscat: folder }
285
289
  );
286
290
  const fielUploadHeaders = ibiz.util.file.getUploadHeaders();
287
291
  const formData = new FormData();
@@ -297,16 +301,38 @@ class AIChatUtil {
297
301
  }
298
302
  });
299
303
  return res.data;
304
+ },
305
+ onDownLoad: async (file, options) => {
306
+ const { downloadUrl } = ibiz.util.file.calcFileUpDownUrl(
307
+ (options == null ? void 0 : options.context) || context,
308
+ (options == null ? void 0 : options.params) || params,
309
+ {},
310
+ { enableNoAccess: true, osscat: folder }
311
+ );
312
+ const url = downloadUrl.replace("%fileId%", file.fileid);
313
+ await ibiz.util.file.fileDownload(
314
+ url,
315
+ file.filename,
316
+ {
317
+ context: (options == null ? void 0 : options.context) || context,
318
+ params: (options == null ? void 0 : options.params) || params,
319
+ data: {},
320
+ file: { fileId: file.id, ...file },
321
+ extraParams: { enableNoAccess: true, osscat: folder }
322
+ },
323
+ void 0,
324
+ true
325
+ );
300
326
  }
301
327
  };
302
328
  chatOptions.extendToolbarClick = async (event, source, context2, params2, data2) => {
303
- var _a, _b, _c;
329
+ var _a2, _b, _c;
304
330
  const { id: id2, isPluginApp } = source;
305
331
  let appId = source.appId;
306
332
  const tempContext = core.IBizContext.create(context2);
307
333
  if (isPluginApp) {
308
334
  const mainApp = ibiz.hub.getApp();
309
- const targetApp = (_a = mainApp.model.subAppRefs) == null ? void 0 : _a.find(
335
+ const targetApp = (_a2 = mainApp.model.subAppRefs) == null ? void 0 : _a2.find(
310
336
  (subAppRef) => subAppRef.appId.endsWith("__".concat(appId))
311
337
  );
312
338
  if (targetApp) {
@@ -357,6 +383,7 @@ class AIChatUtil {
357
383
  * @returns
358
384
  */
359
385
  async getUIActionExAIChatParams(context, params, data, deACMode, args) {
386
+ var _a;
360
387
  const containerOptions = {};
361
388
  if (params.hasOwnProperty("enableaiminimize")) {
362
389
  containerOptions.enableAIMinimize = params.enableaiminimize === "true";
@@ -653,13 +680,16 @@ class AIChatUtil {
653
680
  }
654
681
  return null;
655
682
  };
683
+ const app = ibiz.hub.getApp(context.srfappid);
684
+ const folder = app.model.defaultOSSCat || ((_a = app.model.userParam) == null ? void 0 : _a.DefaultOSSCat);
656
685
  chatOptions.uploader = {
686
+ folder: "".concat(folder, "$"),
657
687
  onUpload: async (file, reportProgress, options) => {
658
688
  const { uploadUrl } = ibiz.util.file.calcFileUpDownUrl(
659
689
  (options == null ? void 0 : options.context) || context,
660
690
  (options == null ? void 0 : options.params) || params,
661
691
  {},
662
- { enableNoAccess: true }
692
+ { enableNoAccess: true, osscat: folder }
663
693
  );
664
694
  const headers = ibiz.util.file.getUploadHeaders();
665
695
  const formData = new FormData();
@@ -675,16 +705,38 @@ class AIChatUtil {
675
705
  }
676
706
  });
677
707
  return res.data;
708
+ },
709
+ onDownLoad: async (file, options) => {
710
+ const { downloadUrl } = ibiz.util.file.calcFileUpDownUrl(
711
+ (options == null ? void 0 : options.context) || context,
712
+ (options == null ? void 0 : options.params) || params,
713
+ {},
714
+ { enableNoAccess: true, osscat: folder }
715
+ );
716
+ const url = downloadUrl.replace("%fileId%", file.fileid);
717
+ await ibiz.util.file.fileDownload(
718
+ url,
719
+ file.filename,
720
+ {
721
+ context: (options == null ? void 0 : options.context) || context,
722
+ params: (options == null ? void 0 : options.params) || params,
723
+ data: {},
724
+ file: { fileId: file.id, ...file },
725
+ extraParams: { enableNoAccess: true, osscat: folder }
726
+ },
727
+ void 0,
728
+ true
729
+ );
678
730
  }
679
731
  };
680
732
  chatOptions.extendToolbarClick = async (event, source, context2, params2, data2) => {
681
- var _a, _b, _c;
733
+ var _a2, _b, _c;
682
734
  const { id: id2, isPluginApp } = source;
683
735
  let appId = source.appId;
684
736
  const tempContext = core.IBizContext.create(context2);
685
737
  if (isPluginApp) {
686
738
  const mainApp = ibiz.hub.getApp();
687
- const targetApp = (_a = mainApp.model.subAppRefs) == null ? void 0 : _a.find(
739
+ const targetApp = (_a2 = mainApp.model.subAppRefs) == null ? void 0 : _a2.find(
688
740
  (subAppRef) => subAppRef.appId.endsWith("__".concat(appId))
689
741
  );
690
742
  if (targetApp) {
@@ -224,7 +224,7 @@ class WFDynaEditViewEngine extends editView_engine.EditViewEngine {
224
224
  const submitView = runtime.getWFSubmitViewId(this.view.model, link);
225
225
  if (!submitView) {
226
226
  await this.form.wfSubmit({ viewParam: newParams });
227
- await this.view.closeView();
227
+ await this.view.closeView({ ok: true, data: this.form.getData() });
228
228
  return;
229
229
  }
230
230
  const result = await ibiz.commands.execute(
@@ -234,7 +234,7 @@ class WFDynaEditViewEngine extends editView_engine.EditViewEngine {
234
234
  newParams
235
235
  );
236
236
  if (result.ok) {
237
- await this.view.closeView();
237
+ await this.view.closeView({ ok: true, data: this.form.getData() });
238
238
  }
239
239
  }
240
240
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/vue3-components",
3
- "version": "0.7.41-alpha.52",
3
+ "version": "0.7.41-alpha.53",
4
4
  "description": "web端组件库(vue3)",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.mjs",
@@ -30,16 +30,16 @@
30
30
  "dependencies": {
31
31
  "@amap/amap-jsapi-loader": "^1.0.1",
32
32
  "@floating-ui/dom": "^1.5.3",
33
- "@ibiz-template-plugin/ai-chat": "^0.0.43",
33
+ "@ibiz-template-plugin/ai-chat": "^0.0.44",
34
34
  "@ibiz-template-plugin/gantt": "0.1.8-alpha.378",
35
- "@ibiz-template-plugin/bi-report": "0.0.30",
35
+ "@ibiz-template-plugin/bi-report": "0.0.31",
36
36
  "@ibiz-template-plugin/data-view": "0.0.6",
37
37
  "@ibiz-template/core": "0.7.41-alpha.53",
38
- "@ibiz-template/devtool": "0.0.13",
39
- "@ibiz-template/model-helper": "0.7.41-alpha.54",
40
- "@ibiz-template/runtime": "0.7.41-alpha.54",
38
+ "@ibiz-template/devtool": "0.0.14",
39
+ "@ibiz-template/model-helper": "0.7.41-alpha.55",
40
+ "@ibiz-template/runtime": "0.7.41-alpha.55",
41
41
  "@ibiz-template/theme": "0.7.39",
42
- "@ibiz-template/vue3-util": "0.7.41-alpha.54",
42
+ "@ibiz-template/vue3-util": "0.7.41-alpha.55",
43
43
  "@ibiz-template/web-theme": "3.10.0",
44
44
  "@ibiz/model-core": "^0.1.84",
45
45
  "@imengyu/vue3-context-menu": "^1.3.5",
@@ -74,7 +74,7 @@
74
74
  "devDependencies": {
75
75
  "@commitlint/cli": "^18.5.0",
76
76
  "@commitlint/config-conventional": "^18.5.0",
77
- "@ibiz-template/cli": "^0.3.23",
77
+ "@ibiz-template/cli": "^0.3.31",
78
78
  "@types/lodash-es": "^4.17.12",
79
79
  "@types/sortablejs": "^1.15.8",
80
80
  "@types/node": "^20.11.5",