@ibiz-template/runtime 0.5.7-alpha.3 → 0.5.7-alpha.4

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 (103) hide show
  1. package/dist/index.esm.js +551 -207
  2. package/dist/index.system.min.js +1 -1
  3. package/out/app-hub.d.ts +2 -0
  4. package/out/app-hub.d.ts.map +1 -1
  5. package/out/app-hub.js +2 -0
  6. package/out/application.js +1 -1
  7. package/out/controller/control/exp-bar/exp-bar.controller.d.ts.map +1 -1
  8. package/out/controller/control/exp-bar/exp-bar.controller.js +7 -0
  9. package/out/controller/control/exp-bar/tree-exp-bar.controller.d.ts +5 -0
  10. package/out/controller/control/exp-bar/tree-exp-bar.controller.d.ts.map +1 -1
  11. package/out/controller/control/exp-bar/tree-exp-bar.controller.js +16 -0
  12. package/out/controller/notification/async-action.controller.d.ts +64 -0
  13. package/out/controller/notification/async-action.controller.d.ts.map +1 -0
  14. package/out/controller/notification/async-action.controller.js +141 -0
  15. package/out/controller/notification/index.d.ts +2 -0
  16. package/out/controller/notification/index.d.ts.map +1 -0
  17. package/out/controller/notification/index.js +1 -0
  18. package/out/controller/notification/internal-message.controller.d.ts +23 -0
  19. package/out/controller/notification/internal-message.controller.d.ts.map +1 -0
  20. package/out/controller/notification/internal-message.controller.js +50 -0
  21. package/out/controller/notification/notice.controller.d.ts +10 -0
  22. package/out/controller/notification/notice.controller.d.ts.map +1 -0
  23. package/out/controller/notification/notice.controller.js +13 -0
  24. package/out/global/global-util/global-util.d.ts +9 -1
  25. package/out/global/global-util/global-util.d.ts.map +1 -1
  26. package/out/global/global-util/global-util.js +9 -1
  27. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts +8 -1
  28. package/out/interface/common/i-app-hub-service/i-app-hub-service.d.ts.map +1 -1
  29. package/out/interface/common/i-popover-options/i-popover-options.d.ts +9 -1
  30. package/out/interface/common/i-popover-options/i-popover-options.d.ts.map +1 -1
  31. package/out/interface/controller/controller/index.d.ts +1 -0
  32. package/out/interface/controller/controller/index.d.ts.map +1 -1
  33. package/out/interface/controller/controller/index.js +1 -0
  34. package/out/interface/controller/controller/notice/i-async-action.controller.d.ts +49 -0
  35. package/out/interface/controller/controller/notice/i-async-action.controller.d.ts.map +1 -0
  36. package/out/interface/controller/controller/notice/i-async-action.controller.js +1 -0
  37. package/out/interface/controller/controller/notice/i-internal-message.controller.d.ts +68 -0
  38. package/out/interface/controller/controller/notice/i-internal-message.controller.d.ts.map +1 -0
  39. package/out/interface/controller/controller/notice/i-internal-message.controller.js +1 -0
  40. package/out/interface/controller/controller/notice/i-notice.controller.d.ts +33 -0
  41. package/out/interface/controller/controller/notice/i-notice.controller.d.ts.map +1 -0
  42. package/out/interface/controller/controller/notice/i-notice.controller.js +1 -0
  43. package/out/interface/controller/controller/notice/index.d.ts +4 -0
  44. package/out/interface/controller/controller/notice/index.d.ts.map +1 -0
  45. package/out/interface/controller/controller/notice/index.js +1 -0
  46. package/out/interface/provider/i-async-action.provider.d.ts +11 -3
  47. package/out/interface/provider/i-async-action.provider.d.ts.map +1 -1
  48. package/out/interface/provider/i-internal-message.provider.d.ts +10 -2
  49. package/out/interface/provider/i-internal-message.provider.d.ts.map +1 -1
  50. package/out/interface/util/i-notice-util/i-notice-util.d.ts +34 -0
  51. package/out/interface/util/i-notice-util/i-notice-util.d.ts.map +1 -0
  52. package/out/interface/util/i-notice-util/i-notice-util.js +1 -0
  53. package/out/interface/util/i-open-view-util/i-open-view-util.d.ts +2 -2
  54. package/out/interface/util/i-open-view-util/i-open-view-util.d.ts.map +1 -1
  55. package/out/interface/util/index.d.ts +1 -0
  56. package/out/interface/util/index.d.ts.map +1 -1
  57. package/out/register/helper/async-action-register.d.ts +2 -1
  58. package/out/register/helper/async-action-register.d.ts.map +1 -1
  59. package/out/register/helper/async-action-register.js +3 -3
  60. package/out/register/helper/internal-message-register.js +2 -2
  61. package/out/service/service/internal-message/internal-message.service.d.ts +1 -1
  62. package/out/service/service/internal-message/internal-message.service.d.ts.map +1 -1
  63. package/out/service/service/internal-message/internal-message.service.js +7 -16
  64. package/out/types.d.ts +8 -1
  65. package/out/types.d.ts.map +1 -1
  66. package/out/utils/file-util/file-util.d.ts +57 -0
  67. package/out/utils/file-util/file-util.d.ts.map +1 -0
  68. package/out/utils/file-util/file-util.js +113 -0
  69. package/out/utils/file-util/index.d.ts +2 -0
  70. package/out/utils/file-util/index.d.ts.map +1 -0
  71. package/out/utils/file-util/index.js +1 -0
  72. package/out/utils/index.d.ts +1 -0
  73. package/out/utils/index.d.ts.map +1 -1
  74. package/out/utils/index.js +1 -0
  75. package/package.json +3 -3
  76. package/src/app-hub.ts +3 -0
  77. package/src/application.ts +1 -1
  78. package/src/controller/control/exp-bar/exp-bar.controller.ts +6 -0
  79. package/src/controller/control/exp-bar/tree-exp-bar.controller.ts +17 -0
  80. package/src/controller/notification/async-action.controller.ts +163 -0
  81. package/src/controller/notification/index.ts +1 -0
  82. package/src/controller/notification/internal-message.controller.ts +64 -0
  83. package/src/controller/notification/notice.controller.ts +16 -0
  84. package/src/global/global-util/global-util.ts +10 -0
  85. package/src/interface/common/i-app-hub-service/i-app-hub-service.ts +9 -1
  86. package/src/interface/common/i-popover-options/i-popover-options.ts +10 -1
  87. package/src/interface/controller/controller/index.ts +1 -0
  88. package/src/interface/controller/controller/notice/i-async-action.controller.ts +52 -0
  89. package/src/interface/controller/controller/notice/i-internal-message.controller.ts +74 -0
  90. package/src/interface/controller/controller/notice/i-notice.controller.ts +36 -0
  91. package/src/interface/controller/controller/notice/index.ts +9 -0
  92. package/src/interface/provider/i-async-action.provider.ts +14 -3
  93. package/src/interface/provider/i-internal-message.provider.ts +10 -2
  94. package/src/interface/util/i-notice-util/i-notice-util.ts +34 -0
  95. package/src/interface/util/i-open-view-util/i-open-view-util.ts +2 -1
  96. package/src/interface/util/index.ts +1 -0
  97. package/src/register/helper/async-action-register.ts +4 -4
  98. package/src/register/helper/internal-message-register.ts +2 -2
  99. package/src/service/service/internal-message/internal-message.service.ts +12 -18
  100. package/src/types.ts +9 -0
  101. package/src/utils/file-util/file-util.ts +141 -0
  102. package/src/utils/file-util/index.ts +1 -0
  103. package/src/utils/index.ts +1 -0
@@ -1,4 +1,4 @@
1
- import { IModalData } from '../../common';
1
+ import { IModalData, IPopoverOptions } from '../../common';
2
2
 
3
3
  /**
4
4
  * 打开视图工具类
@@ -83,6 +83,7 @@ export interface IOpenViewUtil {
83
83
  event: MouseEvent,
84
84
  context: IContext,
85
85
  params?: IParams,
86
+ options?: IPopoverOptions,
86
87
  ): Promise<IModalData>;
87
88
 
88
89
  /**
@@ -17,3 +17,4 @@ export type { IScriptFunctionOpts } from './script/i-script-function';
17
17
  export type { IExcelUtil } from './i-excel-util/i-excel-util';
18
18
  export type { IViewStack, IViewStackEvent } from './i-view-stack/i-view-stack';
19
19
  export type { IAnimationOptions } from './i-animation-util/i-animation-options';
20
+ export type { INoticeUtil } from './i-notice-util/i-notice-util';
@@ -1,4 +1,4 @@
1
- import { RuntimeError } from '@ibiz-template/core';
1
+ import { IPortalAsyncAction, RuntimeError } from '@ibiz-template/core';
2
2
  import { IAsyncActionProvider } from '../../interface';
3
3
 
4
4
  /** 界面行为适配器前缀 */
@@ -34,15 +34,15 @@ function getProvider(key: string): IAsyncActionProvider | undefined {
34
34
  * @return {*} {Promise<IAsyncActionProvider>}
35
35
  */
36
36
  export function getAsyncActionProvider(
37
- actiontype: string,
37
+ action: IPortalAsyncAction,
38
38
  ): IAsyncActionProvider {
39
39
  const provider: IAsyncActionProvider | undefined = getProvider(
40
- actiontype || 'DEFAULT',
40
+ action.actiontype || 'DEFAULT',
41
41
  );
42
42
 
43
43
  // 找异步操作类型
44
44
  if (!provider) {
45
- throw new RuntimeError(`找不异步操作类型${actiontype}对应的适配器`);
45
+ throw new RuntimeError(`找不异步操作类型${action.actiontype}对应的适配器`);
46
46
  } else {
47
47
  return provider;
48
48
  }
@@ -40,12 +40,12 @@ export function getInternalMessageProvider(
40
40
  msg: IInternalMessage,
41
41
  ): IInternalMessageProvider {
42
42
  const provider: IInternalMessageProvider | undefined = getProvider(
43
- msg.message_type || 'DEFAULT',
43
+ msg.content_type || 'DEFAULT',
44
44
  );
45
45
 
46
46
  // 找异步操作类型
47
47
  if (!provider) {
48
- throw new RuntimeError(`找不站内信类型${msg.message_type}对应的适配器`);
48
+ throw new RuntimeError(`找不站内信类型${msg.content_type}对应的适配器`);
49
49
  } else {
50
50
  return provider;
51
51
  }
@@ -8,7 +8,7 @@ export class InternalMessageService implements IInternalMessageService {
8
8
  * @author lxm
9
9
  * @date 2024-01-23 02:06:47
10
10
  */
11
- baseUrl = '/extension/internal_messages';
11
+ protected baseUrl = '/extension/internal_messages';
12
12
 
13
13
  /**
14
14
  * 获取站内信的集合
@@ -20,13 +20,18 @@ export class InternalMessageService implements IInternalMessageService {
20
20
  async fetch(
21
21
  params: IParams = {},
22
22
  ): Promise<IHttpResponse<IInternalMessage[]>> {
23
- // const res = await ibiz.net.post(
24
- // `${this.baseUrl}/fetch_cur_receiver`,
25
- // params,
26
- // );
27
- const res: IData = {
28
- ok: true,
23
+ // 默认的查询参数
24
+ const fetchParams = {
25
+ page: 0,
26
+ size: 20,
27
+ sort: 'update_time,desc',
29
28
  };
29
+ Object.assign(fetchParams, params);
30
+
31
+ const res = await ibiz.net.post(
32
+ `${this.baseUrl}/fetch_cur_receiver`,
33
+ fetchParams,
34
+ );
30
35
  if (res.headers) {
31
36
  if (res.headers['x-page']) {
32
37
  res.page = Number(res.headers['x-page']);
@@ -41,17 +46,6 @@ export class InternalMessageService implements IInternalMessageService {
41
46
  if (isNil(res.data)) {
42
47
  res.data = [];
43
48
  }
44
-
45
- res.page = params.page;
46
- res.total = 34;
47
- res.data = Array.from({ length: params.size }, (_, i) => ({
48
- id: i + 1,
49
- status: 'RECEIVED',
50
- title: `标题${i + 1}`,
51
- content: `内容${i + 1}长内容`,
52
- short_content: `内容${i + 1}短内容`,
53
- create_time: new Date().toISOString(),
54
- }));
55
49
  return res as IHttpResponse<IInternalMessage[]>;
56
50
  }
57
51
 
package/src/types.ts CHANGED
@@ -16,6 +16,7 @@ import {
16
16
  IAsyncActionService,
17
17
  IPlatformProvider,
18
18
  IInternalMessageService,
19
+ INoticeUtil,
19
20
  } from './interface';
20
21
  import { LogicSchedulerCenter } from './logic-scheduler';
21
22
  import { RegisterCenter } from './register/register-center';
@@ -81,6 +82,14 @@ declare module '@ibiz-template/core' {
81
82
  */
82
83
  notification: INotificationUtil;
83
84
 
85
+ /**
86
+ * 全局的消息通知类
87
+ * @author lxm
88
+ * @date 2024-01-26 05:10:37
89
+ * @type {INoticeUtil}
90
+ */
91
+ notice: INoticeUtil;
92
+
84
93
  /**
85
94
  * 多模式打开视图工具类
86
95
  *
@@ -0,0 +1,141 @@
1
+ import { RuntimeError, downloadFileFromBlob } from '@ibiz-template/core';
2
+ import qs from 'qs';
3
+ import { convertNavData } from '../nav-params/nav-params';
4
+
5
+ export class FileUtil {
6
+ /**
7
+ * 计算OSSCat参数
8
+ *
9
+ * @author zk
10
+ * @date 2024-01-26 02:01:52
11
+ * @param {string} url
12
+ * @param {IContext} context
13
+ * @return {*} {string}
14
+ * @memberof FileUtil
15
+ */
16
+ protected calcOSSCatUrl(
17
+ url: string,
18
+ context: IContext,
19
+ OSSCatName?: string,
20
+ ): string {
21
+ let uploadUrl = `${ibiz.env.baseUrl}/${ibiz.env.appId}${url}`;
22
+ const app = ibiz.hub.getApp(context.srfappid);
23
+ const OSSCat =
24
+ OSSCatName ||
25
+ app.model.defaultOSSCat ||
26
+ app.model.userParam?.DefaultOSSCat;
27
+ uploadUrl = uploadUrl.replace('/{cat}', OSSCat ? `/${OSSCat}` : '');
28
+ return uploadUrl;
29
+ }
30
+
31
+ /**
32
+ * 计算文件的上传路径和下载路径
33
+ * 下载路径文件id用%fileId%占位,替换即可
34
+ * 配置编辑器参数uploadParams和exportParams时,会像导航参数一样动态添加对应的参数到url上
35
+ *
36
+ * @author zk
37
+ * @date 2024-01-26 02:01:15
38
+ * @param {IData} data
39
+ * @param {IContext} context
40
+ * @param {IParams} params
41
+ * @param {IParams} uploadParams
42
+ * @param {IParams} exportParams
43
+ * @return {*} {{
44
+ * uploadUrl: string;
45
+ * downloadUrl: string;
46
+ * }}
47
+ * @memberof FileUtil
48
+ */
49
+ calcFileUpDownUrl(
50
+ context: IContext,
51
+ params: IParams,
52
+ data: IData = {},
53
+ extraParams: IData = {},
54
+ ): {
55
+ uploadUrl: string;
56
+ downloadUrl: string;
57
+ } {
58
+ const { uploadParams, exportParams, osscat: OSSCatName } = extraParams;
59
+ // 计算文件上传路径
60
+ let uploadUrl = this.calcOSSCatUrl(
61
+ ibiz.env.uploadFileUrl,
62
+ context,
63
+ OSSCatName,
64
+ );
65
+ let downloadUrl = this.calcOSSCatUrl(
66
+ `${ibiz.env.downloadFileUrl}/%fileId%`,
67
+ context,
68
+ OSSCatName,
69
+ );
70
+ let _uploadParams: IParams = {};
71
+ let _exportParams: IParams = {};
72
+ if (uploadParams) {
73
+ _uploadParams = convertNavData(uploadParams, data, params, context);
74
+ }
75
+ if (exportParams) {
76
+ _exportParams = convertNavData(exportParams, data, params, context);
77
+ }
78
+ uploadUrl += qs.stringify(_uploadParams, { addQueryPrefix: true });
79
+ downloadUrl += qs.stringify(_exportParams, { addQueryPrefix: true });
80
+ return { uploadUrl, downloadUrl };
81
+ }
82
+
83
+ /**
84
+ * 请求url获取文件流,并用JS触发文件下载
85
+ *
86
+ * @author zk
87
+ * @date 2024-01-26 02:01:29
88
+ * @param {{ url: string; name: string }} file
89
+ * @memberof FileUtil
90
+ */
91
+ async fileDownload(url: string, name: string): Promise<void> {
92
+ // 发送get请求
93
+ const response = await ibiz.net.request(url, {
94
+ method: 'get',
95
+ responseType: 'blob',
96
+ baseURL: '', // 已经有baseURL了,这里无需再写
97
+ });
98
+
99
+ if (response.status !== 200) {
100
+ throw new RuntimeError('下载文件失败');
101
+ }
102
+ // 请求成功,后台返回的是一个文件流
103
+ if (!response.data) {
104
+ throw new RuntimeError('文件流数据不存在');
105
+ } else {
106
+ // 获取文件名
107
+ const fileName = name;
108
+ downloadFileFromBlob(response.data as Blob, fileName);
109
+ }
110
+ }
111
+
112
+ /**
113
+ * 文件上传
114
+ *
115
+ * @author zk
116
+ * @date 2024-01-26 05:01:35
117
+ * @param {string} uploadUrl
118
+ * @param {Blob} file
119
+ * @param {IData} headers
120
+ * @return {*} {Promise<IData>}
121
+ * @memberof FileUtil
122
+ */
123
+ async fileUpload(
124
+ uploadUrl: string,
125
+ file: Blob,
126
+ headers: IData,
127
+ ): Promise<IData> {
128
+ const formData = new FormData();
129
+ formData.append('file', file);
130
+ const res = await ibiz.net.axios({
131
+ url: uploadUrl,
132
+ method: 'post',
133
+ headers,
134
+ data: formData,
135
+ });
136
+ if (res.status !== 200) {
137
+ throw new RuntimeError('文件上传失败');
138
+ }
139
+ return res.data;
140
+ }
141
+ }
@@ -0,0 +1 @@
1
+ export { FileUtil } from './file-util';
@@ -21,3 +21,4 @@ export { RawValueUtil } from './raw-value-util/raw-value-util';
21
21
  export { ViewStack } from './view-stack/view-stack';
22
22
  export { handleAllSettled } from './promise/promise';
23
23
  export { AnimeUtil } from './anime';
24
+ export { FileUtil } from './file-util';