@ibiz-template/vue3-components 0.5.4 → 0.5.7-alpha.0

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 (98) hide show
  1. package/dist/{index-JryyIvVw.js → index-13Oh42A8.js} +1 -1
  2. package/dist/{index-_-rmev8_.js → index-ZIuDbCjc.js} +1 -1
  3. package/dist/index-dfn6FnHv.js +2 -0
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/{xlsx-util-x5tP6Fdl.js → xlsx-util-ohTMZYHr.js} +1 -1
  7. package/es/common/action-toolbar/action-toolbar.mjs +2 -1
  8. package/es/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.mjs +18 -14
  9. package/es/editor/code/monaco-editor/monaco-editor.mjs +3 -3
  10. package/es/editor/data-picker/ibiz-picker-link/ibiz-picker-link.css +1 -1
  11. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.d.ts +2 -0
  12. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +50 -5
  13. package/es/locale/en/index.d.ts +3 -0
  14. package/es/locale/en/index.mjs +4 -1
  15. package/es/locale/zh-CN/index.d.ts +3 -0
  16. package/es/locale/zh-CN/index.mjs +4 -1
  17. package/es/panel-component/user-message/async-action/{async-action.mjs → async-action/async-action.mjs} +2 -3
  18. package/es/panel-component/user-message/async-action/async-action-tab/async-action-tab.css +1 -0
  19. package/es/panel-component/user-message/async-action/async-action-tab/async-action-tab.d.ts +92 -0
  20. package/es/panel-component/user-message/async-action/async-action-tab/async-action-tab.mjs +91 -0
  21. package/es/panel-component/user-message/async-action/index.d.ts +3 -0
  22. package/es/panel-component/user-message/async-action/index.mjs +5 -0
  23. package/es/panel-component/user-message/index.d.ts +1 -73
  24. package/es/panel-component/user-message/index.mjs +12 -3
  25. package/es/panel-component/user-message/internal-message/index.d.ts +3 -0
  26. package/es/panel-component/user-message/internal-message/index.mjs +5 -0
  27. package/es/panel-component/user-message/internal-message/internal-message-default/internal-message-default.css +1 -0
  28. package/es/panel-component/user-message/internal-message/internal-message-default/internal-message-default.d.ts +17 -0
  29. package/es/panel-component/user-message/internal-message/internal-message-default/internal-message-default.mjs +82 -0
  30. package/es/panel-component/user-message/internal-message/internal-message-default/internal-message-default.provider.d.ts +6 -0
  31. package/es/panel-component/user-message/internal-message/internal-message-default/internal-message-default.provider.mjs +17 -0
  32. package/es/panel-component/user-message/internal-message/internal-message-tab/internal-message-tab.css +1 -0
  33. package/es/panel-component/user-message/internal-message/internal-message-tab/internal-message-tab.d.ts +42 -0
  34. package/es/panel-component/user-message/internal-message/internal-message-tab/internal-message-tab.mjs +101 -0
  35. package/es/panel-component/user-message/user-message.css +1 -1
  36. package/es/panel-component/user-message/user-message.d.ts +1 -73
  37. package/es/panel-component/user-message/user-message.mjs +33 -61
  38. package/es/util/open-view-util/open-view-util.d.ts +2 -1
  39. package/es/util/open-view-util/open-view-util.mjs +11 -1
  40. package/es/view/404-view/404-view.mjs +1 -1
  41. package/lib/common/action-toolbar/action-toolbar.cjs +2 -1
  42. package/lib/editor/autocomplete/ibiz-autocomplete/ibiz-autocomplete.cjs +18 -14
  43. package/lib/editor/code/monaco-editor/monaco-editor.cjs +3 -3
  44. package/lib/editor/data-picker/ibiz-picker-link/ibiz-picker-link.css +1 -1
  45. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +48 -3
  46. package/lib/locale/en/index.cjs +4 -1
  47. package/lib/locale/zh-CN/index.cjs +4 -1
  48. package/lib/panel-component/user-message/async-action/{async-action.cjs → async-action/async-action.cjs} +2 -3
  49. package/lib/panel-component/user-message/async-action/async-action-tab/async-action-tab.cjs +93 -0
  50. package/lib/panel-component/user-message/async-action/async-action-tab/async-action-tab.css +1 -0
  51. package/lib/panel-component/user-message/async-action/index.cjs +11 -0
  52. package/lib/panel-component/user-message/index.cjs +11 -2
  53. package/lib/panel-component/user-message/internal-message/index.cjs +11 -0
  54. package/lib/panel-component/user-message/internal-message/internal-message-default/internal-message-default.cjs +84 -0
  55. package/lib/panel-component/user-message/internal-message/internal-message-default/internal-message-default.css +1 -0
  56. package/lib/panel-component/user-message/internal-message/internal-message-default/internal-message-default.provider.cjs +19 -0
  57. package/lib/panel-component/user-message/internal-message/internal-message-tab/internal-message-tab.cjs +103 -0
  58. package/lib/panel-component/user-message/internal-message/internal-message-tab/internal-message-tab.css +1 -0
  59. package/lib/panel-component/user-message/user-message.cjs +30 -58
  60. package/lib/panel-component/user-message/user-message.css +1 -1
  61. package/lib/util/open-view-util/open-view-util.cjs +10 -0
  62. package/lib/view/404-view/404-view.cjs +1 -1
  63. package/package.json +16 -15
  64. package/dist/index-0_g5Hsac.js +0 -2
  65. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.mjs +0 -0
  66. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/config/index.mjs +0 -0
  67. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/index.mjs +0 -0
  68. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/loader/index.mjs +0 -0
  69. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/utils/compose.mjs +0 -0
  70. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/utils/curry.mjs +0 -0
  71. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.mjs +0 -0
  72. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/utils/isObject.mjs +0 -0
  73. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.mjs +0 -0
  74. /package/es/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/validators/index.mjs +0 -0
  75. /package/es/panel-component/user-message/async-action/{async-action.css → async-action/async-action.css} +0 -0
  76. /package/es/panel-component/user-message/async-action/{async-action.d.ts → async-action/async-action.d.ts} +0 -0
  77. /package/es/panel-component/user-message/async-action/{async-action.provider.d.ts → async-action/async-action.provider.d.ts} +0 -0
  78. /package/es/panel-component/user-message/async-action/{async-action.provider.mjs → async-action/async-action.provider.mjs} +0 -0
  79. /package/es/panel-component/user-message/{async-action-preview → async-action/async-action-preview}/async-action-preview.css +0 -0
  80. /package/es/panel-component/user-message/{async-action-preview → async-action/async-action-preview}/async-action-preview.d.ts +0 -0
  81. /package/es/panel-component/user-message/{async-action-preview → async-action/async-action-preview}/async-action-preview.mjs +0 -0
  82. /package/es/panel-component/user-message/{async-action-result → async-action/async-action-result}/async-action-result.d.ts +0 -0
  83. /package/es/panel-component/user-message/{async-action-result → async-action/async-action-result}/async-action-result.mjs +0 -0
  84. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.cjs +0 -0
  85. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/config/index.cjs +0 -0
  86. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/index.cjs +0 -0
  87. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/loader/index.cjs +0 -0
  88. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/utils/compose.cjs +0 -0
  89. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/utils/curry.cjs +0 -0
  90. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.cjs +0 -0
  91. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/utils/isObject.cjs +0 -0
  92. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.cjs +0 -0
  93. /package/lib/node_modules/.pnpm/{@monaco-editor_loader@1.4.0_monaco-editor@0.44.0 → @monaco-editor_loader@1.4.0_monaco-editor@0.45.0}/node_modules/@monaco-editor/loader/lib/es/validators/index.cjs +0 -0
  94. /package/lib/panel-component/user-message/async-action/{async-action.css → async-action/async-action.css} +0 -0
  95. /package/lib/panel-component/user-message/async-action/{async-action.provider.cjs → async-action/async-action.provider.cjs} +0 -0
  96. /package/lib/panel-component/user-message/{async-action-preview → async-action/async-action-preview}/async-action-preview.cjs +0 -0
  97. /package/lib/panel-component/user-message/{async-action-preview → async-action/async-action-preview}/async-action-preview.css +0 -0
  98. /package/lib/panel-component/user-message/{async-action-result → async-action/async-action-result}/async-action-result.cjs +0 -0
@@ -25,6 +25,9 @@ const IBizDropdown = /* @__PURE__ */ vue.defineComponent({
25
25
  const isEditable = vue.ref(false);
26
26
  const editorRef = vue.ref();
27
27
  const editorItems = c.model.editorItems;
28
+ const isLoading = vue.ref(false);
29
+ let editorState = "";
30
+ let funcs;
28
31
  const showFormDefaultContent = vue.computed(() => {
29
32
  if (props.controlParams && props.controlParams.editmode === "hover") {
30
33
  return true;
@@ -62,7 +65,9 @@ const IBizDropdown = /* @__PURE__ */ vue.defineComponent({
62
65
  });
63
66
  return list;
64
67
  };
65
- c.loadCodeList(props.data).then((codeList) => {
68
+ const loadCodeList = async () => {
69
+ isLoading.value = true;
70
+ const codeList = await c.loadCodeList(props.data);
66
71
  isLoadedCodeList.value = true;
67
72
  items.value = codeList;
68
73
  for (let i = 0; i < items.value.length; i++) {
@@ -73,6 +78,16 @@ const IBizDropdown = /* @__PURE__ */ vue.defineComponent({
73
78
  break;
74
79
  }
75
80
  }
81
+ isLoading.value = false;
82
+ };
83
+ vue.watch(() => props.value, async (newVal, oldVal) => {
84
+ if (newVal || newVal === null) {
85
+ if (!isLoadedCodeList.value && oldVal === void 0) {
86
+ await loadCodeList();
87
+ }
88
+ }
89
+ }, {
90
+ immediate: true
76
91
  });
77
92
  const setEditable = (flag) => {
78
93
  if (flag) {
@@ -146,10 +161,12 @@ const IBizDropdown = /* @__PURE__ */ vue.defineComponent({
146
161
  });
147
162
  }
148
163
  const onFocus = (e) => {
164
+ editorState = "focus";
149
165
  emit("focus", e);
150
166
  setEditable(true);
151
167
  };
152
168
  const onBlur = (e) => {
169
+ editorState = "blur";
153
170
  emit("blur", e);
154
171
  setEditable(false);
155
172
  };
@@ -165,6 +182,28 @@ const IBizDropdown = /* @__PURE__ */ vue.defineComponent({
165
182
  const list = hasChildren.value ? codeListItems.value : items.value;
166
183
  return list.find((item) => item.text === text);
167
184
  };
185
+ const onVisibleChange = async (visible) => {
186
+ if (visible && !isLoadedCodeList.value) {
187
+ await loadCodeList();
188
+ if (hasChildren.value && editorRef.value && editorState !== "outside") {
189
+ vue.nextTick(() => {
190
+ editorRef.value.focus();
191
+ });
192
+ }
193
+ }
194
+ };
195
+ vue.onMounted(() => {
196
+ if (editorRef.value) {
197
+ funcs = vue3Util.useClickOutside(editorRef, async (_evt) => {
198
+ editorState = "outside";
199
+ });
200
+ }
201
+ });
202
+ vue.onUnmounted(() => {
203
+ if (funcs && funcs.stop) {
204
+ funcs.stop();
205
+ }
206
+ });
168
207
  return {
169
208
  ns,
170
209
  c,
@@ -182,7 +221,9 @@ const IBizDropdown = /* @__PURE__ */ vue.defineComponent({
182
221
  getCodeListItem,
183
222
  isEditable,
184
223
  setEditable,
185
- showFormDefaultContent
224
+ showFormDefaultContent,
225
+ onVisibleChange,
226
+ isLoading
186
227
  };
187
228
  },
188
229
  render() {
@@ -201,8 +242,10 @@ const IBizDropdown = /* @__PURE__ */ vue.defineComponent({
201
242
  "multiple": this.c.multiple,
202
243
  "placeholder": this.c.placeHolder ? this.c.placeHolder : " ",
203
244
  "disabled": this.disabled,
245
+ "loading": this.isLoading,
204
246
  "onBlur": this.onBlur,
205
247
  "onFocus": this.onFocus,
248
+ "onVisibleChange": this.onVisibleChange,
206
249
  "props": {
207
250
  class: this.customNodeClass
208
251
  }
@@ -217,9 +260,11 @@ const IBizDropdown = /* @__PURE__ */ vue.defineComponent({
217
260
  "multiple": this.c.multiple,
218
261
  "placeholder": this.c.placeHolder ? this.c.placeHolder : " ",
219
262
  "disabled": this.disabled,
263
+ "loading": this.isLoading,
220
264
  "onBlur": this.onBlur,
221
265
  "onFocus": this.onFocus,
222
- "onKeyup": this.handleKeyUp
266
+ "onKeyup": this.handleKeyUp,
267
+ "onVisibleChange": this.onVisibleChange
223
268
  }, _isSlot(_slot = this.items.map((item) => {
224
269
  return vue.createVNode(vue.resolveComponent("el-option"), {
225
270
  "key": item.value,
@@ -106,7 +106,10 @@ var index = {
106
106
  noSupportVideo: "Your browser does not support video tags"
107
107
  },
108
108
  gridSetting: {
109
- hideControl: "Table Column Hide Control"
109
+ hideControl: "Column selection"
110
+ },
111
+ actionToolbar: {
112
+ more: "More"
110
113
  }
111
114
  },
112
115
  // 编辑器
@@ -106,7 +106,10 @@ var index = {
106
106
  noSupportVideo: "\u4F60\u7684\u6D4F\u89C8\u5668\u4E0D\u652F\u6301video\u6807\u7B7E"
107
107
  },
108
108
  gridSetting: {
109
- hideControl: "\u8868\u683C\u5217\u9690\u85CF\u63A7\u5236"
109
+ hideControl: "\u5217\u9009\u62E9"
110
+ },
111
+ actionToolbar: {
112
+ more: "\u66F4\u591A"
110
113
  }
111
114
  },
112
115
  // 编辑器
@@ -4,7 +4,6 @@ var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
5
  require('./async-action.css');
6
6
  var lodashEs = require('lodash-es');
7
- var ramda = require('ramda');
8
7
 
9
8
  "use strict";
10
9
  const stateTexts = {
@@ -48,7 +47,7 @@ const AsyncAction = /* @__PURE__ */ vue.defineComponent({
48
47
  return props.message.actionstate;
49
48
  });
50
49
  const progressText = vue.computed(() => {
51
- return ramda.isNil(props.message.completionrate) ? "" : "(".concat(props.message.completionrate, "%)");
50
+ return !props.message.completionrate ? "" : "(".concat(props.message.completionrate, "%)");
52
51
  });
53
52
  return {
54
53
  ns,
@@ -87,7 +86,7 @@ const AsyncAction = /* @__PURE__ */ vue.defineComponent({
87
86
  "type": stateType[this.actionstate]
88
87
  }, {
89
88
  default: () => [stateTexts[this.actionstate]]
90
- })]), this.actionstate === 20 && this.message.completionrate && vue.createVNode("div", {
89
+ })]), this.actionstate === 20 && !!this.message.completionrate && vue.createVNode("div", {
91
90
  "class": this.ns.b("loading-warp")
92
91
  }, [vue.createVNode("div", {
93
92
  "class": this.ns.be("loading-warp", "inner"),
@@ -0,0 +1,93 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ var runtime = require('@ibiz-template/runtime');
6
+ require('./async-action-tab.css');
7
+
8
+ "use strict";
9
+ const AsyncActionTab = /* @__PURE__ */ vue.defineComponent({
10
+ name: "IBizAsyncActionTab",
11
+ props: {
12
+ showPopover: {
13
+ type: Boolean,
14
+ required: true
15
+ }
16
+ },
17
+ emits: {
18
+ hiddenPopover: () => true
19
+ },
20
+ setup(props, {
21
+ emit
22
+ }) {
23
+ const ns = vue3Util.useNamespace("async-action-tab");
24
+ const {
25
+ appStore
26
+ } = vue3Util.useAppStore();
27
+ const showHistoryLength = vue.ref(0);
28
+ const actualMsgs = vue.computed(() => {
29
+ const showLength = appStore.recentAsyncActions.length + showHistoryLength.value;
30
+ return appStore.allAsyncActions.filter((_, index) => {
31
+ return index < showLength;
32
+ });
33
+ });
34
+ const hiddenHistory = () => {
35
+ showHistoryLength.value = 0;
36
+ };
37
+ const showMoreHistory = () => {
38
+ showHistoryLength.value += 10;
39
+ };
40
+ const hiddenPopover = () => {
41
+ emit("hiddenPopover");
42
+ };
43
+ vue.watch(() => props.showPopover, (newVal, oldVal) => {
44
+ if (newVal !== oldVal && newVal === false) {
45
+ hiddenHistory();
46
+ }
47
+ });
48
+ return {
49
+ ns,
50
+ appStore,
51
+ actualMsgs,
52
+ hiddenPopover,
53
+ hiddenHistory,
54
+ showMoreHistory
55
+ };
56
+ },
57
+ render() {
58
+ const restLength = this.appStore.allAsyncActions.length - this.actualMsgs.length;
59
+ const loadMoreText = this.actualMsgs.length === 0 ? "\u67E5\u770B\u5386\u53F2\uFF08".concat(restLength, "\uFF09") : "\u52A0\u8F7D\u66F4\u591A\uFF08".concat(restLength, "\uFF09");
60
+ return vue.createVNode("div", {
61
+ "class": [this.ns.b()]
62
+ }, [this.actualMsgs.length > 0 && this.actualMsgs.map((msg) => {
63
+ let provider;
64
+ try {
65
+ provider = runtime.getAsyncActionProvider(msg.actiontype);
66
+ } catch (error) {
67
+ ibiz.log.error(error);
68
+ }
69
+ if (provider) {
70
+ return vue.h(vue.resolveComponent(provider.component), {
71
+ class: this.ns.e("item"),
72
+ onClick: (event) => {
73
+ const isClose = provider.onClick(msg, event);
74
+ if (isClose) {
75
+ this.hiddenPopover();
76
+ }
77
+ },
78
+ message: msg
79
+ });
80
+ }
81
+ return vue.createVNode("div", {
82
+ "class": this.ns.e("item")
83
+ }, ["\u5F02\u6B65\u64CD\u4F5C\u7C7B\u578B".concat(msg.actiontype, "\u6682\u672A\u652F\u6301")]);
84
+ }), this.actualMsgs.length === 0 && vue.createVNode("div", {
85
+ "class": this.ns.e("nodata")
86
+ }, [vue.createTextVNode("\u6682\u65E0\u901A\u77E5")]), restLength > 0 && vue.createVNode("div", {
87
+ "class": this.ns.e("load-more"),
88
+ "onClick": this.showMoreHistory
89
+ }, [loadMoreText])]);
90
+ }
91
+ });
92
+
93
+ exports.AsyncActionTab = AsyncActionTab;
@@ -0,0 +1 @@
1
+ .ibiz-async-action-tab{--ibiz-async-action-tab-load-more-height:30px;width:100%;height:100%}.ibiz-async-action-tab__item{min-height:60px;padding:6px 0}.ibiz-async-action-tab__nodata{display:flex;align-items:center;justify-content:center;height:calc(100% - var(--ibiz-async-action-tab-load-more-height))}.ibiz-async-action-tab__load-more{height:var(--ibiz-async-action-tab-load-more-height);line-height:var(--ibiz-async-action-tab-load-more-height);text-align:center}.ibiz-async-action-tab__load-more:hover{color:var(--ibiz-color-primary-hover);cursor:pointer}
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ var asyncAction = require('./async-action/async-action.cjs');
4
+ var asyncActionTab = require('./async-action-tab/async-action-tab.cjs');
5
+ var asyncAction_provider = require('./async-action/async-action.provider.cjs');
6
+
7
+ "use strict";
8
+
9
+ exports.AsyncAction = asyncAction.AsyncAction;
10
+ exports.AsyncActionTab = asyncActionTab.AsyncActionTab;
11
+ exports.AsyncActionProvider = asyncAction_provider.AsyncActionProvider;
@@ -4,17 +4,26 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var runtime = require('@ibiz-template/runtime');
6
6
  var vue3Util = require('@ibiz-template/vue3-util');
7
- var asyncAction = require('./async-action/async-action.cjs');
8
- var asyncAction_provider = require('./async-action/async-action.provider.cjs');
7
+ require('./async-action/index.cjs');
9
8
  var userMessage = require('./user-message.cjs');
10
9
  var userMessage_provider = require('./user-message.provider.cjs');
10
+ require('./internal-message/index.cjs');
11
+ var asyncAction = require('./async-action/async-action/async-action.cjs');
12
+ var internalMessageDefault = require('./internal-message/internal-message-default/internal-message-default.cjs');
13
+ var asyncAction_provider = require('./async-action/async-action/async-action.provider.cjs');
14
+ var internalMessageDefault_provider = require('./internal-message/internal-message-default/internal-message-default.provider.cjs');
11
15
 
12
16
  "use strict";
13
17
  const IBizUserMessage = vue3Util.withInstall(userMessage.UserMessage, function(v) {
14
18
  v.component(userMessage.UserMessage.name, userMessage.UserMessage);
15
19
  v.component(asyncAction.AsyncAction.name, asyncAction.AsyncAction);
20
+ v.component(internalMessageDefault.InternalMessageDefault.name, internalMessageDefault.InternalMessageDefault);
16
21
  runtime.registerAsyncActionProvider("DEIMPORTDATA2", () => new asyncAction_provider.AsyncActionProvider());
17
22
  runtime.registerAsyncActionProvider("DEFAULT", () => new asyncAction_provider.AsyncActionProvider());
23
+ runtime.registerInternalMessageProvider(
24
+ "DEFAULT",
25
+ () => new internalMessageDefault_provider.InternalMessageDefaultProvider()
26
+ );
18
27
  runtime.registerPanelItemProvider(
19
28
  "RAWITEM_USERMESSAGE",
20
29
  () => new userMessage_provider.UserMessageProvider()
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ var internalMessageTab = require('./internal-message-tab/internal-message-tab.cjs');
4
+ var internalMessageDefault_provider = require('./internal-message-default/internal-message-default.provider.cjs');
5
+ var internalMessageDefault = require('./internal-message-default/internal-message-default.cjs');
6
+
7
+ "use strict";
8
+
9
+ exports.InternalMessageTab = internalMessageTab.InternalMessageTab;
10
+ exports.InternalMessageDefaultProvider = internalMessageDefault_provider.InternalMessageDefaultProvider;
11
+ exports.InternalMessageDefault = internalMessageDefault.InternalMessageDefault;
@@ -0,0 +1,84 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ require('./internal-message-default.css');
6
+
7
+ "use strict";
8
+ const stateTexts = {
9
+ READ: "\u5DF2\u9605\u8BFB",
10
+ SENT: "\u5DF2\u53D1\u9001",
11
+ RECEIVED: "\u5DF2\u63A5\u6536",
12
+ REPLIED: "\u5DF2\u56DE\u590D",
13
+ SEND_FAILED: "\u53D1\u9001\u5931\u8D25",
14
+ NOT_SENT: "\u672A\u53D1\u9001",
15
+ DELETED: "\u5DF2\u5220\u9664"
16
+ };
17
+ const stateType = {
18
+ READ: "",
19
+ SENT: "success",
20
+ RECEIVED: "success",
21
+ REPLIED: "warning",
22
+ SEND_FAILED: "danger",
23
+ NOT_SENT: "info",
24
+ DELETED: "info"
25
+ };
26
+ const InternalMessageDefault = /* @__PURE__ */ vue.defineComponent({
27
+ name: "IBizInternalMessageDefault",
28
+ props: {
29
+ message: {
30
+ type: Object,
31
+ required: true
32
+ }
33
+ },
34
+ setup(props) {
35
+ const ns = vue3Util.useNamespace("internal-message");
36
+ const clickable = vue.computed(() => {
37
+ return props.message.short_content !== props.message.content;
38
+ });
39
+ return {
40
+ ns,
41
+ clickable
42
+ };
43
+ },
44
+ render() {
45
+ const {
46
+ title,
47
+ create_time,
48
+ short_content,
49
+ status
50
+ } = this.message;
51
+ return vue.createVNode("div", {
52
+ "class": [this.ns.b(), this.clickable ? this.ns.m("clickable") : ""]
53
+ }, [vue.createVNode("div", {
54
+ "class": this.ns.b("left")
55
+ }, [vue.createVNode("ion-icon", {
56
+ "name": "list-outline"
57
+ }, null)]), vue.createVNode("div", {
58
+ "class": this.ns.b("center")
59
+ }, [vue.createVNode("div", {
60
+ "class": this.ns.e("caption")
61
+ }, [vue.createVNode(vue.resolveComponent("el-tag"), {
62
+ "class": this.ns.e("status"),
63
+ "type": stateType[status]
64
+ }, {
65
+ default: () => [stateTexts[status]]
66
+ }), title]), vue.createVNode("div", {
67
+ "class": this.ns.e("short-content")
68
+ }, [short_content]), vue.createVNode("div", {
69
+ "class": this.ns.e("create-time")
70
+ }, [create_time])]), vue.createVNode("div", {
71
+ "class": this.ns.b("toolbar")
72
+ }, [vue.createVNode("ion-icon", {
73
+ "class": this.ns.be("toolbar", "button"),
74
+ "name": "timer-outline",
75
+ "title": "\u7A0D\u540E\u5904\u7406"
76
+ }, null), vue.createVNode("ion-icon", {
77
+ "class": this.ns.be("toolbar", "button"),
78
+ "name": "checkmark-done-outline",
79
+ "title": "\u5DF2\u8BFB"
80
+ }, null)])]);
81
+ }
82
+ });
83
+
84
+ exports.InternalMessageDefault = InternalMessageDefault;
@@ -0,0 +1 @@
1
+ .ibiz-internal-message{--ibiz-internal-message-loading-warp-bg-color:linear-gradient(90deg, var(--ibiz-color-primary-light-hover), var(--ibiz-color-primary));display:flex;align-items:center;justify-content:space-between;position:relative}.ibiz-internal-message--clickable{cursor:pointer}.ibiz-internal-message:hover{background-color:var(--ibiz-color-fill-1)}.ibiz-internal-message__caption{margin-bottom:8px;font-weight:var(--ibiz-font-weight-bold)}.ibiz-internal-message__short-content{margin-bottom:8px}.ibiz-internal-message__status{margin-right:8px}.ibiz-internal-message:hover .ibiz-internal-message-toolbar{display:block}.ibiz-internal-message-left{flex-grow:0;flex-shrink:0;align-self:flex-start;width:50px;font-size:var(--ibiz-font-size-header-3);text-align:center}.ibiz-internal-message-center{flex-grow:1;width:342px}.ibiz-internal-message-toolbar{position:absolute;top:0;right:0;display:none;padding:8px}.ibiz-internal-message-toolbar__button{margin-left:10px;font-size:16px;cursor:pointer}.ibiz-internal-message-toolbar__button:hover{color:var(--ibiz-color-primary)}
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+ class InternalMessageDefaultProvider {
11
+ constructor() {
12
+ __publicField(this, "component", "IBizInternalMessageDefault");
13
+ }
14
+ onClick(_msg, _event) {
15
+ return false;
16
+ }
17
+ }
18
+
19
+ exports.InternalMessageDefaultProvider = InternalMessageDefaultProvider;
@@ -0,0 +1,103 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ var runtime = require('@ibiz-template/runtime');
6
+ require('./internal-message-tab.css');
7
+
8
+ "use strict";
9
+ const InternalMessageTab = /* @__PURE__ */ vue.defineComponent({
10
+ name: "IBizInternalMessageTab",
11
+ props: {
12
+ showPopover: {
13
+ type: Boolean,
14
+ required: true
15
+ }
16
+ },
17
+ emits: {
18
+ hiddenPopover: () => true
19
+ },
20
+ setup(props, {
21
+ emit
22
+ }) {
23
+ const ns = vue3Util.useNamespace("internal-message-tab");
24
+ const hiddenPopover = () => {
25
+ emit("hiddenPopover");
26
+ };
27
+ const allItems = vue.ref([]);
28
+ const state = vue.reactive({
29
+ total: 0,
30
+ curPage: 0,
31
+ pageSize: 20
32
+ });
33
+ const load = async (params) => {
34
+ const res = await ibiz.internalMessage.fetch({
35
+ page: 0,
36
+ size: state.pageSize,
37
+ ...params
38
+ });
39
+ console.log(res);
40
+ if (res.ok) {
41
+ if (typeof res.total === "number") {
42
+ state.total = res.total;
43
+ }
44
+ if (typeof res.page === "number") {
45
+ state.curPage = res.page;
46
+ }
47
+ if (state.curPage === 0) {
48
+ allItems.value = res.data;
49
+ } else {
50
+ allItems.value.push(...res.data);
51
+ }
52
+ }
53
+ };
54
+ const showMore = () => {
55
+ load({
56
+ page: state.curPage + 1
57
+ });
58
+ };
59
+ load();
60
+ return {
61
+ ns,
62
+ allItems,
63
+ state,
64
+ hiddenPopover,
65
+ showMore
66
+ };
67
+ },
68
+ render() {
69
+ const restLength = this.state.total - this.allItems.length;
70
+ return vue.createVNode("div", {
71
+ "class": [this.ns.b()]
72
+ }, [this.allItems.length > 0 && this.allItems.map((msg) => {
73
+ let provider;
74
+ try {
75
+ provider = runtime.getInternalMessageProvider(msg);
76
+ } catch (error) {
77
+ ibiz.log.error(error);
78
+ }
79
+ if (provider) {
80
+ return vue.h(vue.resolveComponent(provider.component), {
81
+ class: this.ns.e("item"),
82
+ onClick: (event) => {
83
+ const isClose = provider.onClick(msg, event);
84
+ if (isClose) {
85
+ this.hiddenPopover();
86
+ }
87
+ },
88
+ message: msg
89
+ });
90
+ }
91
+ return vue.createVNode("div", {
92
+ "class": this.ns.e("item")
93
+ }, ["\u7AD9\u5185\u6D88\u606F\u7C7B\u578B".concat(msg.message_type, "\u6682\u672A\u652F\u6301")]);
94
+ }), this.allItems.length === 0 && vue.createVNode("div", {
95
+ "class": this.ns.e("nodata")
96
+ }, [vue.createTextVNode("\u6682\u65E0\u901A\u77E5")]), restLength > 0 && vue.createVNode("div", {
97
+ "class": this.ns.e("load-more"),
98
+ "onClick": this.showMore
99
+ }, [vue.createTextVNode("\u52A0\u8F7D\u66F4\u591A("), restLength, vue.createTextVNode(")")])]);
100
+ }
101
+ });
102
+
103
+ exports.InternalMessageTab = InternalMessageTab;
@@ -0,0 +1 @@
1
+ .ibiz-internal-message-tab{--ibiz-internal-message-tab-load-more-height:30px;width:100%;height:100%}.ibiz-internal-message-tab__item{min-height:60px;padding:6px 0}.ibiz-internal-message-tab__nodata{display:flex;align-items:center;justify-content:center;height:calc(100% - var(--ibiz-internal-message-tab-load-more-height))}.ibiz-internal-message-tab__load-more{height:var(--ibiz-internal-message-tab-load-more-height);line-height:var(--ibiz-internal-message-tab-load-more-height);text-align:center}.ibiz-internal-message-tab__load-more:hover{color:var(--ibiz-color-primary-hover);cursor:pointer}
@@ -4,6 +4,9 @@ var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
5
  var runtime = require('@ibiz-template/runtime');
6
6
  require('./user-message.css');
7
+ var asyncActionTab = require('./async-action/async-action-tab/async-action-tab.cjs');
8
+ require('./internal-message/index.cjs');
9
+ var internalMessageTab = require('./internal-message/internal-message-tab/internal-message-tab.cjs');
7
10
 
8
11
  "use strict";
9
12
  const UserMessage = /* @__PURE__ */ vue.defineComponent({
@@ -26,43 +29,23 @@ const UserMessage = /* @__PURE__ */ vue.defineComponent({
26
29
  const sysImage = props.modelData.sysImage || {
27
30
  imagePath: "svg/message.svg"
28
31
  };
29
- const {
30
- appStore
31
- } = vue3Util.useAppStore();
32
- const showHistoryLength = vue.ref(0);
33
- const actualMsgs = vue.computed(() => {
34
- const showLength = appStore.recentAsyncActions.length + showHistoryLength.value;
35
- return appStore.allAsyncActions.filter((_, index) => {
36
- return index < showLength;
37
- });
38
- });
39
- const hiddenHistory = () => {
40
- showHistoryLength.value = 0;
41
- };
42
- const showMoreHistory = () => {
43
- showHistoryLength.value += 10;
44
- };
45
32
  const popoverRef = vue.ref();
46
33
  const hiddenPopover = () => {
47
34
  popoverRef.value.hide();
48
35
  };
36
+ const noticeNum = vue.ref(12);
49
37
  return {
50
38
  ns,
51
39
  c,
40
+ noticeNum,
52
41
  popoverRef,
53
42
  showPopover,
54
43
  sysImage,
55
44
  currentTab,
56
- appStore,
57
- actualMsgs,
58
- hiddenPopover,
59
- hiddenHistory,
60
- showMoreHistory
45
+ hiddenPopover
61
46
  };
62
47
  },
63
48
  render() {
64
- const restLength = this.appStore.allAsyncActions.length - this.actualMsgs.length;
65
- const loadMoreText = this.actualMsgs.length === 0 ? "\u67E5\u770B\u5386\u53F2\uFF08".concat(restLength, "\uFF09") : "\u52A0\u8F7D\u66F4\u591A\uFF08".concat(restLength, "\uFF09");
66
49
  return vue.createVNode("div", {
67
50
  "class": [this.ns.b(), this.ns.m(this.modelData.id), ...this.controller.containerClass]
68
51
  }, [vue.createVNode(vue.resolveComponent("el-popover"), {
@@ -70,15 +53,20 @@ const UserMessage = /* @__PURE__ */ vue.defineComponent({
70
53
  "popper-class": this.ns.b("popover"),
71
54
  "placement": "bottom",
72
55
  "trigger": "click",
73
- "modelValue": this.showPopover,
74
- "onUpdate:modelValue": ($event) => this.showPopover = $event,
75
- "onHide": this.hiddenHistory
56
+ "visible": this.showPopover,
57
+ "onUpdate:visible": ($event) => this.showPopover = $event
76
58
  }, {
77
59
  reference: () => {
78
- return vue.createVNode(vue.resolveComponent("i-biz-icon"), {
79
- "class": [this.ns.e("image")],
80
- "icon": this.sysImage
81
- }, null);
60
+ return vue.createVNode(vue.resolveComponent("el-badge"), {
61
+ "class": this.ns.e("badge"),
62
+ "value": this.noticeNum,
63
+ "hidden": this.noticeNum === 0
64
+ }, {
65
+ default: () => [vue.createVNode(vue.resolveComponent("i-biz-icon"), {
66
+ "class": [this.ns.e("image")],
67
+ "icon": this.sysImage
68
+ }, null)]
69
+ });
82
70
  },
83
71
  default: () => {
84
72
  return vue.createVNode(vue.resolveComponent("el-tabs"), {
@@ -90,34 +78,18 @@ const UserMessage = /* @__PURE__ */ vue.defineComponent({
90
78
  "label": "\u901A\u77E5",
91
79
  "name": "notification"
92
80
  }, {
93
- default: () => [this.actualMsgs.length > 0 && this.actualMsgs.map((msg) => {
94
- let provider;
95
- try {
96
- provider = runtime.getAsyncActionProvider(msg.actiontype);
97
- } catch (error) {
98
- ibiz.log.error(error);
99
- }
100
- if (provider) {
101
- return vue.h(vue.resolveComponent(provider.component), {
102
- class: this.ns.e("notification-item"),
103
- onClick: (event) => {
104
- const isClose = provider.onClick(msg, event);
105
- if (isClose) {
106
- this.hiddenPopover();
107
- }
108
- },
109
- message: msg
110
- });
111
- }
112
- return vue.createVNode("div", {
113
- "class": this.ns.e("notification-item")
114
- }, ["\u5F02\u6B65\u64CD\u4F5C\u7C7B\u578B".concat(msg.actiontype, "\u6682\u672A\u652F\u6301")]);
115
- }), this.actualMsgs.length === 0 && vue.createVNode("div", {
116
- "class": this.ns.e("nodata")
117
- }, [vue.createTextVNode("\u6682\u65E0\u901A\u77E5")]), restLength > 0 && vue.createVNode("div", {
118
- "class": this.ns.e("load-more"),
119
- "onClick": this.showMoreHistory
120
- }, [loadMoreText])]
81
+ default: () => [vue.createVNode(internalMessageTab.InternalMessageTab, {
82
+ "showPopover": this.showPopover,
83
+ "onHiddenPopover": this.hiddenPopover
84
+ }, null)]
85
+ }), vue.createVNode(vue.resolveComponent("el-tab-pane"), {
86
+ "label": "\u540E\u53F0\u4F5C\u4E1A",
87
+ "name": "async-action"
88
+ }, {
89
+ default: () => [vue.createVNode(asyncActionTab.AsyncActionTab, {
90
+ "showPopover": this.showPopover,
91
+ "onHiddenPopover": this.hiddenPopover
92
+ }, null)]
121
93
  })]
122
94
  });
123
95
  }
@@ -1 +1 @@
1
- .ibiz-user-message{--ibiz-user-message-load-more-height:30px;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.ibiz-user-message__image{width:28px;height:28px;cursor:pointer}.ibiz-user-message__notification-item{min-height:60px;padding:6px 0}.ibiz-user-message__nodata{display:flex;align-items:center;justify-content:center;height:calc(100% - var(--ibiz-user-message-load-more-height))}.ibiz-user-message__load-more{height:var(--ibiz-user-message-load-more-height);line-height:var(--ibiz-user-message-load-more-height);text-align:center}.ibiz-user-message__load-more:hover{color:var(--ibiz-color-primary-hover);cursor:pointer}.ibiz-user-message-popover{width:500px!important;height:500px!important;--ibiz-user-message-load-more-height:30px}.ibiz-user-message-popover-content{height:100%}.ibiz-user-message-popover-content>.el-tabs__content{height:calc(100% - 55px)}.ibiz-user-message-popover-content>.el-tabs__content>.el-tab-pane{height:100%;overflow:auto}
1
+ .ibiz-user-message{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.ibiz-user-message__image{width:28px;height:28px;cursor:pointer}.ibiz-user-message__badge .el-badge__content{top:4px;right:calc(2px + var(--el-badge-size)/ 2);border-width:0}.ibiz-user-message-popover{width:500px!important;height:500px!important}.ibiz-user-message-popover.el-popover{padding-top:2px}.ibiz-user-message-popover-content{height:100%}.ibiz-user-message-popover-content>.el-tabs__content{height:calc(100% - 55px)}.ibiz-user-message-popover-content>.el-tabs__content>.el-tab-pane{height:100%;overflow:auto}