@gct-paas/core 0.1.4-dev.10 → 0.1.4-dev.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/index.esm.min.mjs +13345 -3124
  2. package/dist/index.min.cjs +22 -15
  3. package/dist/index.system.min.js +22 -15
  4. package/es/constants/default-date-type/default-date-type.d.ts +70 -0
  5. package/es/constants/default-date-type/default-date-type.mjs +22 -0
  6. package/es/constants/expression-type/BuiltOperators.mjs +2 -0
  7. package/es/constants/index.d.ts +2 -1
  8. package/es/constants/page-designer/model.d.ts +4 -0
  9. package/es/constants/page-designer/model.mjs +7 -0
  10. package/es/enums/globalEnum.d.ts +15 -0
  11. package/es/enums/globalEnum.mjs +13 -1
  12. package/es/enums/page-designer/widget.d.ts +5 -0
  13. package/es/enums/page-designer/widget.mjs +6 -1
  14. package/es/global/gct/gct.d.ts +9 -3
  15. package/es/global/gct/gct.mjs +11 -6
  16. package/es/hooks/index.d.ts +0 -2
  17. package/es/index.d.ts +1 -3
  18. package/es/index.mjs +15 -35
  19. package/es/interface/i-dictionary/i-dictionary-item.d.ts +6 -0
  20. package/es/interface/i-global-register/i-global-register.d.ts +8 -0
  21. package/es/interface/i-pinia-action/i-global-actions.d.ts +4 -0
  22. package/es/interface/i-pinia-getter/i-global-getters.d.ts +2 -0
  23. package/es/interface/i-pinia-state/i-global-state.d.ts +12 -1
  24. package/es/interface/index.d.ts +3 -6
  25. package/es/interface/model-desginer/entity.d.ts +110 -0
  26. package/es/interface/provider/index.d.ts +0 -2
  27. package/es/modules/mqtt/constants/mqtt.const.d.ts +33 -0
  28. package/es/modules/mqtt/constants/mqtt.const.mjs +27 -0
  29. package/es/modules/mqtt/enums/mqtt-status.enum.d.ts +20 -0
  30. package/es/modules/mqtt/enums/mqtt-status.enum.mjs +10 -0
  31. package/es/modules/mqtt/index.d.ts +5 -0
  32. package/es/modules/mqtt/interfaces/i-mqtt.d.ts +139 -0
  33. package/es/modules/mqtt/mqtt-client.d.ts +117 -0
  34. package/es/modules/mqtt/mqtt-client.mjs +262 -0
  35. package/es/modules/mqtt/mqtt-manager.d.ts +87 -0
  36. package/es/modules/mqtt/mqtt-manager.mjs +78 -0
  37. package/es/modules/platform-config/enums/platform.enum.d.ts +0 -15
  38. package/es/modules/platform-config/enums/platform.enum.mjs +1 -13
  39. package/es/modules/platform-config/interfaces/index.d.ts +0 -1
  40. package/es/modules/platform-config/store.mjs +4 -1
  41. package/es/modules/user-stores/store/user.store.d.ts +74 -0
  42. package/es/modules/user-stores/store/user.store.mjs +16 -1
  43. package/es/modules/user-stores/types/user.d.ts +1 -0
  44. package/es/setup-app.mjs +11 -0
  45. package/es/state/global-pinia-state/global-pinia-state.d.ts +15 -1
  46. package/es/state/global-pinia-state/global-pinia-state.mjs +14 -0
  47. package/es/state/index.d.ts +0 -9
  48. package/es/store/global-store.mjs +14 -0
  49. package/es/utils/design/design.d.ts +11 -0
  50. package/es/utils/design/design.mjs +15 -0
  51. package/es/utils/file/base64Conver.d.ts +9 -0
  52. package/es/utils/file/base64Conver.mjs +35 -0
  53. package/es/utils/file/download.d.ts +44 -0
  54. package/es/utils/file/download.mjs +107 -0
  55. package/es/utils/index.d.ts +6 -2
  56. package/es/utils/permission.d.ts +19 -0
  57. package/es/utils/permission.mjs +38 -0
  58. package/es/utils/uploader/uploader.d.ts +20 -0
  59. package/es/utils/uploader/uploader.mjs +120 -0
  60. package/es/utils/validate.d.ts +5 -0
  61. package/es/utils/validate.mjs +25 -0
  62. package/package.json +5 -4
  63. package/es/constants/editor-type/editor-type.d.ts +0 -244
  64. package/es/constants/editor-type/editor-type.mjs +0 -63
  65. package/es/controller/edit-form/edit-form.controller.d.ts +0 -28
  66. package/es/controller/edit-form/edit-form.controller.mjs +0 -47
  67. package/es/controller/editor/color-editor.controller.d.ts +0 -13
  68. package/es/controller/editor/color-editor.controller.mjs +0 -6
  69. package/es/controller/editor/length-unit-editor.controller.d.ts +0 -13
  70. package/es/controller/editor/length-unit-editor.controller.mjs +0 -6
  71. package/es/controller/editor-item/editor-item.controller.d.ts +0 -14
  72. package/es/controller/editor-item/editor-item.controller.mjs +0 -8
  73. package/es/controller/form/form.controller.d.ts +0 -76
  74. package/es/controller/form/form.controller.mjs +0 -147
  75. package/es/controller/form-collapse/form-collapse.controller.d.ts +0 -18
  76. package/es/controller/form-collapse/form-collapse.controller.mjs +0 -14
  77. package/es/controller/form-collapse-pane/form-collapse-pane.controller.d.ts +0 -18
  78. package/es/controller/form-collapse-pane/form-collapse-pane.controller.mjs +0 -14
  79. package/es/controller/form-edit-item/form-edit-item.controller.d.ts +0 -27
  80. package/es/controller/form-edit-item/form-edit-item.controller.mjs +0 -74
  81. package/es/controller/form-group/form-group.controller.d.ts +0 -18
  82. package/es/controller/form-group/form-group.controller.mjs +0 -14
  83. package/es/controller/form-item/form-item.controller.d.ts +0 -21
  84. package/es/controller/form-item/form-item.controller.mjs +0 -43
  85. package/es/controller/form-item-basic/form-item-basic.controller.d.ts +0 -57
  86. package/es/controller/form-item-basic/form-item-basic.controller.mjs +0 -49
  87. package/es/controller/form-item-hidden/form-item-hidden.controller.d.ts +0 -17
  88. package/es/controller/form-item-hidden/form-item-hidden.controller.mjs +0 -7
  89. package/es/controller/form-tab/form-tab.controller.d.ts +0 -18
  90. package/es/controller/form-tab/form-tab.controller.mjs +0 -14
  91. package/es/controller/form-tab-pane/form-tab-pane.controller.d.ts +0 -18
  92. package/es/controller/form-tab-pane/form-tab-pane.controller.mjs +0 -14
  93. package/es/controller/gct-form/gct-form.controller.d.ts +0 -101
  94. package/es/controller/gct-form/gct-form.controller.mjs +0 -214
  95. package/es/controller/index.d.ts +0 -15
  96. package/es/hooks/use-form/use-form.d.ts +0 -10
  97. package/es/hooks/use-form/use-form.mjs +0 -8
  98. package/es/hooks/use-gct-form-value/use-gct-form-value.d.ts +0 -22
  99. package/es/hooks/use-gct-form-value/use-gct-form-value.mjs +0 -89
  100. package/es/hooks/use-overlay-scrollbars/use-overlay-scrollbars.d.ts +0 -11
  101. package/es/interface/controller/edit-form/edit-form.controller.d.ts +0 -26
  102. package/es/interface/controller/editor/i-color-editor.controller.d.ts +0 -11
  103. package/es/interface/controller/editor/i-length-unit-editor.controller.d.ts +0 -11
  104. package/es/interface/controller/editor-item/editor-item.controller.d.ts +0 -19
  105. package/es/interface/controller/form/form.controller.d.ts +0 -121
  106. package/es/interface/controller/form-collapse/form-collapse.controller.d.ts +0 -23
  107. package/es/interface/controller/form-collapse-pane/form-collapse-pane.controller.d.ts +0 -23
  108. package/es/interface/controller/form-edit-item/form-edit-item.controller.d.ts +0 -59
  109. package/es/interface/controller/form-group/form-group.controller.d.ts +0 -24
  110. package/es/interface/controller/form-hidden-item/form-hidden-item.controller.d.ts +0 -24
  111. package/es/interface/controller/form-item/form-item.controller.d.ts +0 -40
  112. package/es/interface/controller/form-item-basic/form-item-basic.controller.d.ts +0 -51
  113. package/es/interface/controller/form-tab/form-tab.controller.d.ts +0 -23
  114. package/es/interface/controller/form-tab-pane/form-tab-pane.controller.d.ts +0 -23
  115. package/es/interface/controller/index.d.ts +0 -14
  116. package/es/interface/events/form/i-form.event.d.ts +0 -11
  117. package/es/interface/events/index.d.ts +0 -1
  118. package/es/interface/form/i-editor/i-check-switch.d.ts +0 -29
  119. package/es/interface/form/i-editor/i-checkbox-editor.d.ts +0 -9
  120. package/es/interface/form/i-editor/i-color-editor.d.ts +0 -13
  121. package/es/interface/form/i-editor/i-editor-basic.d.ts +0 -87
  122. package/es/interface/form/i-editor/i-icon-select-editor.d.ts +0 -21
  123. package/es/interface/form/i-editor/i-info-editor.d.ts +0 -21
  124. package/es/interface/form/i-editor/i-length-unit-editor.d.ts +0 -13
  125. package/es/interface/form/i-editor/i-model-field-select-editor.d.ts +0 -18
  126. package/es/interface/form/i-editor/i-number-editor.d.ts +0 -21
  127. package/es/interface/form/i-editor/i-picker-editor.d.ts +0 -30
  128. package/es/interface/form/i-editor/i-radio-editor.d.ts +0 -21
  129. package/es/interface/form/i-editor/i-select-editor.d.ts +0 -14
  130. package/es/interface/form/i-editor/i-span-editor.d.ts +0 -30
  131. package/es/interface/form/i-editor/i-switch-editor.d.ts +0 -14
  132. package/es/interface/form/i-editor/i-text-editor.d.ts +0 -46
  133. package/es/interface/form/i-editor/i-textarea-editor.d.ts +0 -25
  134. package/es/interface/form/i-form/i-edit-form.d.ts +0 -48
  135. package/es/interface/form/i-form/i-form-collapse-pane.d.ts +0 -30
  136. package/es/interface/form/i-form/i-form-collapse.d.ts +0 -35
  137. package/es/interface/form/i-form/i-form-container.d.ts +0 -53
  138. package/es/interface/form/i-form/i-form-edit-item.d.ts +0 -140
  139. package/es/interface/form/i-form/i-form-group-container.d.ts +0 -24
  140. package/es/interface/form/i-form/i-form-group.d.ts +0 -35
  141. package/es/interface/form/i-form/i-form-hidden-item.d.ts +0 -11
  142. package/es/interface/form/i-form/i-form-item-basic.d.ts +0 -126
  143. package/es/interface/form/i-form/i-form-item.d.ts +0 -11
  144. package/es/interface/form/i-form/i-form-tab-pane.d.ts +0 -23
  145. package/es/interface/form/i-form/i-form-tab.d.ts +0 -21
  146. package/es/interface/form/i-form/i-form.d.ts +0 -79
  147. package/es/interface/form/index.d.ts +0 -29
  148. package/es/interface/layout/i-flex-layout/i-flex-container.d.ts +0 -75
  149. package/es/interface/layout/i-flex-layout/i-flex-item.d.ts +0 -51
  150. package/es/interface/layout/i-grid-layout/i-grid-container.d.ts +0 -29
  151. package/es/interface/layout/i-grid-layout/i-grid-item-span.d.ts +0 -54
  152. package/es/interface/layout/i-grid-layout/i-grid-item.d.ts +0 -37
  153. package/es/interface/layout/i-layout-basis/i-layout-container-basis.d.ts +0 -11
  154. package/es/interface/layout/index.d.ts +0 -6
  155. package/es/interface/provider/i-editor-provider/i-editor-provider.d.ts +0 -24
  156. package/es/interface/provider/i-form-item-provider/i-form-item-provider.d.ts +0 -44
  157. package/es/interface/state/form/form.state.d.ts +0 -53
  158. package/es/interface/state/form-collapse/form-collapse.state.d.ts +0 -11
  159. package/es/interface/state/form-collapse-pane/form-collapse-pane.state.d.ts +0 -11
  160. package/es/interface/state/form-edit-item/form-edit-item.state.d.ts +0 -38
  161. package/es/interface/state/form-group/form-group.state.d.ts +0 -21
  162. package/es/interface/state/form-hidden-item/form-hidden-item.state.d.ts +0 -5
  163. package/es/interface/state/form-item/form-item.state.d.ts +0 -20
  164. package/es/interface/state/form-item-basic/form-item-basic.state.d.ts +0 -63
  165. package/es/interface/state/form-tab/form-tab.state.d.ts +0 -19
  166. package/es/interface/state/form-tab-pane/form-tab-pane.state.d.ts +0 -11
  167. package/es/interface/state/index.d.ts +0 -10
  168. package/es/modules/platform-config/interfaces/global-setting.interface.d.ts +0 -7
  169. package/es/register/editor-register/editor-register.d.ts +0 -49
  170. package/es/register/editor-register/editor-register.mjs +0 -57
  171. package/es/register/form-item-register/form-item-register.d.ts +0 -36
  172. package/es/register/form-item-register/form-item-register.mjs +0 -42
  173. package/es/register/index.d.ts +0 -14
  174. package/es/state/form/form.state.d.ts +0 -24
  175. package/es/state/form/form.state.mjs +0 -16
  176. package/es/state/form-collapse/form-collapse.state.d.ts +0 -14
  177. package/es/state/form-collapse/form-collapse.state.mjs +0 -6
  178. package/es/state/form-collapse-pane/form-collapse-pane.state.d.ts +0 -14
  179. package/es/state/form-collapse-pane/form-collapse-pane.state.mjs +0 -6
  180. package/es/state/form-edit-item/form-edit-item.state.d.ts +0 -17
  181. package/es/state/form-edit-item/form-edit-item.state.mjs +0 -10
  182. package/es/state/form-group/form-group.state.d.ts +0 -21
  183. package/es/state/form-group/form-group.state.mjs +0 -14
  184. package/es/state/form-item/form-item.state.d.ts +0 -14
  185. package/es/state/form-item/form-item.state.mjs +0 -6
  186. package/es/state/form-item-basic/form-item-basic.state.d.ts +0 -17
  187. package/es/state/form-item-basic/form-item-basic.state.mjs +0 -9
  188. package/es/state/form-tab/form-tab.state.d.ts +0 -15
  189. package/es/state/form-tab/form-tab.state.mjs +0 -7
  190. package/es/state/form-tab-pane/form-tab-pane.state.d.ts +0 -14
  191. package/es/state/form-tab-pane/form-tab-pane.state.mjs +0 -6
  192. package/es/utils/props/gct-form-item/gct-form-item.props.d.ts +0 -63
  193. package/es/utils/props/gct-form-item/gct-form-item.props.mjs +0 -66
  194. package/es/utils/props/index.d.ts +0 -1
  195. package/es/utils/width-install/width-install.d.ts +0 -17
  196. package/es/utils/width-install/width-install.mjs +0 -23
@@ -0,0 +1,78 @@
1
+ import { MqttClient } from './mqtt-client.mjs';
2
+ import { createUUID } from 'qx-util';
3
+
4
+ class MqttManager {
5
+ /**
6
+ * 管理器唯一标识
7
+ *
8
+ * @private
9
+ */
10
+ uuid = createUUID();
11
+ /** 已注册的 MQTT 客户端实例注册表,key 为 instanceId */
12
+ _clients = /* @__PURE__ */ new Map();
13
+ /**
14
+ * 创建并注册一个新的 MQTT 客户端实例
15
+ *
16
+ * @param instanceId 实例唯一标识,全局唯一
17
+ * @param options MQTT 连接选项
18
+ * @returns 创建的 MqttClient 实例
19
+ * @throws 若 instanceId 已存在则抛出错误
20
+ */
21
+ create(instanceId, options) {
22
+ if (this._clients.has(instanceId)) {
23
+ console.warn(`MqttManager: 实例 ${instanceId} 已存在,返回已注册的实例`);
24
+ return this._clients.get(instanceId);
25
+ }
26
+ const client = new MqttClient(instanceId, `ws://${location.host}/mqtt`, {
27
+ clientId: `gct_mqtt_${_gct.store.userInfo.userId}_${instanceId}_${this.uuid}`,
28
+ ...options
29
+ });
30
+ client.connect();
31
+ this._clients.set(instanceId, client);
32
+ return client;
33
+ }
34
+ /**
35
+ * 获取已注册的 MQTT 客户端实例
36
+ *
37
+ * @param instanceId 实例唯一标识
38
+ * @returns 客户端实例,若不存在则返回 undefined
39
+ */
40
+ get(instanceId) {
41
+ return this._clients.get(instanceId);
42
+ }
43
+ /**
44
+ * 判断指定实例是否已存在
45
+ *
46
+ * @param instanceId 实例唯一标识
47
+ * @returns 是否存在
48
+ */
49
+ has(instanceId) {
50
+ return this._clients.has(instanceId);
51
+ }
52
+ /**
53
+ * 销毁指定的 MQTT 客户端实例
54
+ *
55
+ * @description 会先断开连接,再从管理器中移除
56
+ * @param instanceId 实例唯一标识
57
+ */
58
+ destroy(instanceId) {
59
+ const client = this._clients.get(instanceId);
60
+ if (client) {
61
+ client.disconnect();
62
+ this._clients.delete(instanceId);
63
+ }
64
+ }
65
+ /**
66
+ * 销毁全部 MQTT 客户端实例
67
+ *
68
+ * @description 依次断开所有连接并清空注册表
69
+ */
70
+ destroyAll() {
71
+ this._clients.forEach((client) => {
72
+ client.disconnect();
73
+ });
74
+ this._clients.clear();
75
+ }
76
+ }
77
+
78
+ export { MqttManager };
@@ -1,18 +1,3 @@
1
- /**
2
- * 平台设置相关枚举定义
3
- */
4
- /** 平台设置配置类型枚举 */
5
- export declare enum PlatformSettingEnum {
6
- BASIC = "BASE_CFG",
7
- WATERMARK = "MARK_CFG",
8
- SECURITY = "SECURITY_CFG",
9
- LOGIN = "LOGIN_CFG",
10
- THEME = "THEME_CFG",
11
- ORGANIZATION = "ORG_CFG",
12
- APK = "APK_CFG",
13
- DEPLOY = "DEPLOY_CFG",
14
- GLOBAL = "GLOBAL_CFG"
15
- }
16
1
  /** 密码规则枚举 */
17
2
  export declare enum PassRule {
18
3
  NUMBER = "NUMBER",
@@ -1,15 +1,3 @@
1
- var PlatformSettingEnum = /* @__PURE__ */ ((PlatformSettingEnum2) => {
2
- PlatformSettingEnum2["BASIC"] = "BASE_CFG";
3
- PlatformSettingEnum2["WATERMARK"] = "MARK_CFG";
4
- PlatformSettingEnum2["SECURITY"] = "SECURITY_CFG";
5
- PlatformSettingEnum2["LOGIN"] = "LOGIN_CFG";
6
- PlatformSettingEnum2["THEME"] = "THEME_CFG";
7
- PlatformSettingEnum2["ORGANIZATION"] = "ORG_CFG";
8
- PlatformSettingEnum2["APK"] = "APK_CFG";
9
- PlatformSettingEnum2["DEPLOY"] = "DEPLOY_CFG";
10
- PlatformSettingEnum2["GLOBAL"] = "GLOBAL_CFG";
11
- return PlatformSettingEnum2;
12
- })(PlatformSettingEnum || {});
13
1
  var PassRule = /* @__PURE__ */ ((PassRule2) => {
14
2
  PassRule2["NUMBER"] = "NUMBER";
15
3
  PassRule2["LOWERCASE"] = "LOWERCASE";
@@ -23,4 +11,4 @@ var KickRuleEnum = /* @__PURE__ */ ((KickRuleEnum2) => {
23
11
  return KickRuleEnum2;
24
12
  })(KickRuleEnum || {});
25
13
 
26
- export { KickRuleEnum, PassRule, PlatformSettingEnum };
14
+ export { KickRuleEnum, PassRule };
@@ -4,4 +4,3 @@
4
4
  export * from './platform-map.interface';
5
5
  export * from './login-config.interface';
6
6
  export * from './theme-setting.interface';
7
- export * from './global-setting.interface';
@@ -1,4 +1,7 @@
1
- import { PlatformSettingEnum } from './enums/platform.enum.mjs';
1
+ import '../../enums/app-designer/index.mjs';
2
+ import '../../enums/page-designer/designer.mjs';
3
+ import '../../enums/breakpointEnum.mjs';
4
+ import { PlatformSettingEnum } from '../../enums/globalEnum.mjs';
2
5
  import { useBasicSetting } from './useBasicSetting.mjs';
3
6
  import { useDeploySetting } from './useDeploySetting.mjs';
4
7
  import { useLoginSetting } from './useLoginSetting.mjs';
@@ -72,6 +72,7 @@ export declare const useUserStore: import('pinia').StoreDefinition<"user", UserS
72
72
  roleList: string[];
73
73
  sessionTimeout: boolean;
74
74
  lastUpdateTime: number;
75
+ userPermissions: Record<string, boolean>;
75
76
  } & import('pinia').PiniaCustomStateProperties<UserState>): {
76
77
  avatar?: string | undefined;
77
78
  birthday?: string | undefined;
@@ -139,6 +140,79 @@ export declare const useUserStore: import('pinia').StoreDefinition<"user", UserS
139
140
  userId?: string | undefined;
140
141
  username?: string | undefined;
141
142
  } | null;
143
+ getUserPermissions(state: {
144
+ userInfo: {
145
+ avatar?: string | undefined;
146
+ birthday?: string | undefined;
147
+ country?: string | undefined;
148
+ createTime?: string | undefined;
149
+ email?: string | undefined;
150
+ empNo?: string | undefined;
151
+ ext0?: string | undefined;
152
+ ext1?: string | undefined;
153
+ ext2?: string | undefined;
154
+ ext3?: string | undefined;
155
+ ext4?: string | undefined;
156
+ ext5?: number | undefined;
157
+ ext6?: number | undefined;
158
+ ext7?: number | undefined;
159
+ ext8?: number | undefined;
160
+ ext9?: number | undefined;
161
+ fullname?: string | undefined;
162
+ gender?: number | undefined;
163
+ globalSuperAdmin?: number | undefined;
164
+ ip?: string | undefined;
165
+ match?: boolean | undefined;
166
+ minioDomain?: string | undefined;
167
+ mobile?: string | undefined;
168
+ mqttProperties?: {
169
+ password?: string | undefined;
170
+ username?: string | undefined;
171
+ } | undefined;
172
+ orgIds?: string[] | undefined;
173
+ platTicket?: string | undefined;
174
+ platformManager?: number | undefined;
175
+ platformManagerPermissions?: string[] | undefined;
176
+ signType?: string | undefined;
177
+ signWay?: string | undefined;
178
+ signatureImage?: string | undefined;
179
+ signatureImageWrite?: string | undefined;
180
+ suiteTicket?: string | undefined;
181
+ telephone?: string | undefined;
182
+ tenantList?: {
183
+ duty?: string | undefined;
184
+ enabled?: number | undefined;
185
+ id?: string | undefined;
186
+ managerId?: string | undefined;
187
+ managerName?: string | undefined;
188
+ name?: string | undefined;
189
+ orgNames?: string | undefined;
190
+ userId?: string | undefined;
191
+ userOrgList?: {
192
+ createTime?: string | undefined;
193
+ createUserId?: string | undefined;
194
+ createUserName?: string | undefined;
195
+ id?: string | undefined;
196
+ master?: number | undefined;
197
+ modifyTime?: string | undefined;
198
+ modifyUserId?: string | undefined;
199
+ modifyUserName?: string | undefined;
200
+ orgId?: string | undefined;
201
+ orgName?: string | undefined;
202
+ principal?: number | undefined;
203
+ tenantId?: string | undefined;
204
+ userId?: string | undefined;
205
+ }[] | undefined;
206
+ }[] | undefined;
207
+ token?: string | undefined;
208
+ userId?: string | undefined;
209
+ username?: string | undefined;
210
+ } | null;
211
+ roleList: string[];
212
+ sessionTimeout: boolean;
213
+ lastUpdateTime: number;
214
+ userPermissions: Record<string, boolean>;
215
+ } & import('pinia').PiniaCustomStateProperties<UserState>): Record<string, boolean>;
142
216
  }, {
143
217
  login(config: LoginParams, { hasError }?: {
144
218
  hasError: any;
@@ -17,6 +17,8 @@ import '../../../utils/uuid/uuid.mjs';
17
17
  import 'axios';
18
18
  import { getDeviceFingerprint, getPageIdentification } from '../../../utils/deviceFingerprint.mjs';
19
19
  import '../../../utils/useUUid.mjs';
20
+ import 'dayjs';
21
+ import '../../../utils/permission.mjs';
20
22
 
21
23
  const useUserStore = defineStore("user", {
22
24
  state: () => ({
@@ -26,11 +28,16 @@ const useUserStore = defineStore("user", {
26
28
  // Whether the login expired
27
29
  sessionTimeout: false,
28
30
  // Last fetch time
29
- lastUpdateTime: 0
31
+ lastUpdateTime: 0,
32
+ //平台后台权限 非前台运行时
33
+ userPermissions: {}
30
34
  }),
31
35
  getters: {
32
36
  getUserInfo(state) {
33
37
  return state.userInfo;
38
+ },
39
+ getUserPermissions(state) {
40
+ return state.userPermissions;
34
41
  }
35
42
  },
36
43
  actions: {
@@ -51,6 +58,13 @@ const useUserStore = defineStore("user", {
51
58
  headers: { Token }
52
59
  });
53
60
  this.setUserInfo(info);
61
+ this.userPermissions = (info?.platformManagerPermissions ?? []).reduce(
62
+ (map, item) => {
63
+ map[item] = true;
64
+ return map;
65
+ },
66
+ {}
67
+ );
54
68
  return info;
55
69
  },
56
70
  /**单应用登录 */
@@ -69,6 +83,7 @@ const useUserStore = defineStore("user", {
69
83
  minioDomain: "/minio"
70
84
  };
71
85
  this.lastUpdateTime = (/* @__PURE__ */ new Date()).getTime();
86
+ _gct.store.userInfo = this.userInfo;
72
87
  },
73
88
  async updateUserInfo(data) {
74
89
  const info = { ...this.userInfo, ...data };
@@ -11,4 +11,5 @@ export interface UserState {
11
11
  roleList: string[];
12
12
  sessionTimeout: boolean;
13
13
  lastUpdateTime: number;
14
+ userPermissions: Record<string, boolean>;
14
15
  }
package/es/setup-app.mjs CHANGED
@@ -13,17 +13,28 @@ import './constants/expression-type/variable.mjs';
13
13
  import 'vue';
14
14
  import 'qx-util';
15
15
  import 'path-browserify';
16
+ import { getToken } from './utils/tools/tools.mjs';
16
17
  import './utils/uuid/uuid.mjs';
17
18
  import { interceptors } from './utils/axios/interceptors.mjs';
18
19
  import '@fingerprintjs/fingerprintjs';
19
20
  import './utils/useUUid.mjs';
21
+ import 'dayjs';
22
+ import './utils/permission.mjs';
20
23
  import './modules/platform-config/constants/login.const.mjs';
21
24
  import { usePlatformConfigStore } from './modules/platform-config/store.mjs';
25
+ import { useUserStore } from './modules/user-stores/store/user.store.mjs';
26
+ import './modules/user-stores/store/tenant.store.mjs';
27
+ import './modules/user-stores/store/permission.store.mjs';
22
28
 
23
29
  async function setupApp(app) {
24
30
  await setupErrorHandler(app);
25
31
  HttpUtil.use(interceptors);
26
32
  await _gct.init();
33
+ const token = getToken();
34
+ if (token) {
35
+ const userStore = useUserStore();
36
+ await userStore.getUserInfoAction(token);
37
+ }
27
38
  const platformStore = usePlatformConfigStore();
28
39
  await platformStore.init();
29
40
  }
@@ -1,5 +1,5 @@
1
1
  import { ProjectName } from '../../enums';
2
- import { IAppContext, IGlobalState } from '../../interface';
2
+ import { IAppContext, IGlobalState, emptyDisplayType } from '../../interface';
3
3
  /**
4
4
  * 全局pinia状态
5
5
  *
@@ -9,12 +9,26 @@ import { IAppContext, IGlobalState } from '../../interface';
9
9
  */
10
10
  export declare class GlobalPiniaState implements IGlobalState {
11
11
  context: IAppContext;
12
+ /**
13
+ *运行时全局函数
14
+ * @type {'--'}
15
+ */
16
+ globalSetting: {
17
+ /**运行时空值显示 */
18
+ emptyDisplay: emptyDisplayType;
19
+ };
12
20
  /**
13
21
  * 应用信息
14
22
  *
15
23
  * @type {IObject}
16
24
  */
17
25
  appInfo: IObject;
26
+ /**
27
+ * 用户信息
28
+ *
29
+ * @type {IObject}
30
+ */
31
+ userInfo: IObject;
18
32
  /**
19
33
  * 当前访问项目名称
20
34
  *
@@ -11,12 +11,26 @@ class GlobalPiniaState {
11
11
  pid: "",
12
12
  platform: Platform.WEB
13
13
  };
14
+ /**
15
+ *运行时全局函数
16
+ * @type {'--'}
17
+ */
18
+ globalSetting = {
19
+ /**运行时空值显示 */
20
+ emptyDisplay: "--"
21
+ };
14
22
  /**
15
23
  * 应用信息
16
24
  *
17
25
  * @type {IObject}
18
26
  */
19
27
  appInfo = {};
28
+ /**
29
+ * 用户信息
30
+ *
31
+ * @type {IObject}
32
+ */
33
+ userInfo = {};
20
34
  /**
21
35
  * 当前访问项目名称
22
36
  *
@@ -1,10 +1 @@
1
1
  export { GlobalPiniaState } from './global-pinia-state/global-pinia-state';
2
- export { FormState } from './form/form.state';
3
- export { FormCollapsePaneState } from './form-collapse-pane/form-collapse-pane.state';
4
- export { FormCollapseState } from './form-collapse/form-collapse.state';
5
- export { FormTabState } from './form-tab/form-tab.state';
6
- export { FormTabPaneState } from './form-tab-pane/form-tab-pane.state';
7
- export { FormEditItemState } from './form-edit-item/form-edit-item.state';
8
- export { FormGroupState } from './form-group/form-group.state';
9
- export { FormItemState } from './form-item/form-item.state';
10
- export { FormItemBasicState } from './form-item-basic/form-item-basic.state';
@@ -6,6 +6,7 @@ import '../utils/mitt/mitt.mjs';
6
6
  import '../enums/app-designer/index.mjs';
7
7
  import '../enums/page-designer/designer.mjs';
8
8
  import '../enums/breakpointEnum.mjs';
9
+ import { PlatformSettingEnum, nullDisplayEnum } from '../enums/globalEnum.mjs';
9
10
  import '../constants/expression-type/modeCfg.mjs';
10
11
  import '../constants/expression-type/BuiltOperators.mjs';
11
12
  import '../constants/expression-type/function.mjs';
@@ -18,6 +19,8 @@ import '../utils/uuid/uuid.mjs';
18
19
  import 'axios';
19
20
  import '@fingerprintjs/fingerprintjs';
20
21
  import '../utils/useUUid.mjs';
22
+ import 'dayjs';
23
+ import '../utils/permission.mjs';
21
24
 
22
25
  const useGlobalStore = defineStore("global-store", {
23
26
  state() {
@@ -32,6 +35,9 @@ const useGlobalStore = defineStore("global-store", {
32
35
  },
33
36
  getAppInfo() {
34
37
  return this.appInfo;
38
+ },
39
+ getEmptyDisplay() {
40
+ return nullDisplayEnum[this.globalSetting.emptyDisplay];
35
41
  }
36
42
  },
37
43
  actions: {
@@ -48,6 +54,14 @@ const useGlobalStore = defineStore("global-store", {
48
54
  const res = await _api.apaas.designerCommon.getGetApp();
49
55
  this.appInfo = res;
50
56
  },
57
+ /**加載运行时全局常量显示 */
58
+ async loadEmptySetting() {
59
+ const { value } = await _gct.api.apaas.basicConfig.getDetail({
60
+ configEnum: PlatformSettingEnum.GLOBAL
61
+ });
62
+ if (!value) return;
63
+ Object.assign(this.globalSetting, JSON.parse(value));
64
+ },
51
65
  setProjectName(name) {
52
66
  this.projectName = name;
53
67
  },
@@ -0,0 +1,11 @@
1
+ /**
2
+ * 是否完全为多选算子
3
+ *
4
+ * @description 只有全部是多选算子时,下拉才可以算是多选
5
+ * @author zhanghanrui
6
+ * @date 2024-09-20 11:09:47
7
+ * @export
8
+ * @param {string[]} arr
9
+ * @return {*} {boolean}
10
+ */
11
+ export declare function isMultipleOperator(arr: string[]): boolean;
@@ -0,0 +1,15 @@
1
+ import { intersection } from 'lodash-es';
2
+ import '../../enums/app-designer/index.mjs';
3
+ import '../../enums/page-designer/designer.mjs';
4
+ import '../../enums/breakpointEnum.mjs';
5
+ import { notSingleArr } from '../../enums/designEnum.mjs';
6
+
7
+ function isMultipleOperator(arr) {
8
+ const items = intersection(arr, notSingleArr);
9
+ if (items.length > 0 && items.length === arr.length) {
10
+ return true;
11
+ }
12
+ return false;
13
+ }
14
+
15
+ export { isMultipleOperator };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @description: base64 to blob
3
+ */
4
+ export declare function dataURLtoBlob(base64Buf: string): Blob;
5
+ /**
6
+ * img url to base64
7
+ * @param url
8
+ */
9
+ export declare function urlToBase64(url: string, mineType?: string): Promise<string>;
@@ -0,0 +1,35 @@
1
+ function dataURLtoBlob(base64Buf) {
2
+ const arr = base64Buf.split(",");
3
+ const typeItem = arr[0];
4
+ const mime = typeItem.match(/:(.*?);/)[1];
5
+ const bstr = window.atob(arr[1]);
6
+ let n = bstr.length;
7
+ const u8arr = new Uint8Array(n);
8
+ while (n > 0) {
9
+ n -= 1;
10
+ u8arr[n] = bstr.charCodeAt(n);
11
+ }
12
+ return new Blob([u8arr], { type: mime });
13
+ }
14
+ function urlToBase64(url, mineType) {
15
+ return new Promise((resolve, reject) => {
16
+ let canvas = document.createElement("CANVAS");
17
+ const ctx = canvas.getContext("2d");
18
+ const img = new Image();
19
+ img.crossOrigin = "";
20
+ img.onload = function() {
21
+ if (!canvas || !ctx) {
22
+ return reject();
23
+ }
24
+ canvas.height = img.height;
25
+ canvas.width = img.width;
26
+ ctx.drawImage(img, 0, 0);
27
+ const dataURL = canvas.toDataURL(mineType || "image/png");
28
+ canvas = null;
29
+ resolve(dataURL);
30
+ };
31
+ img.src = url;
32
+ });
33
+ }
34
+
35
+ export { dataURLtoBlob, urlToBase64 };
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Download online pictures
3
+ * @param url
4
+ * @param filename
5
+ * @param mime
6
+ * @param bom
7
+ */
8
+ export declare function downloadByOnlineUrl(url: string, filename: string, mime?: string, bom?: BlobPart): void;
9
+ /**
10
+ * Download pictures based on base64
11
+ * @param buf
12
+ * @param filename
13
+ * @param mime
14
+ * @param bom
15
+ */
16
+ export declare function downloadByBase64(buf: string, filename: string, mime?: string, bom?: BlobPart): void;
17
+ export declare function uploaderFiles({ multiple, accept }?: {
18
+ multiple?: boolean | undefined;
19
+ accept?: string | undefined;
20
+ }): Promise<File[]>;
21
+ /**
22
+ * Download according to the background interface file stream
23
+ * @param {*} data
24
+ * @param {*} opts
25
+ * @param {*} opts.filename 文件名
26
+ * @param {*} opts.timestamp 是否需要在文件名后面自动加上时间戳
27
+ * @param {*} opts.mime
28
+ * @param {*} opts.bom
29
+ */
30
+ export declare function downloadByData(data: BlobPart, { filename, timestamp, mime, bom, }: {
31
+ filename?: string;
32
+ timestamp?: boolean;
33
+ mime?: string;
34
+ bom?: BlobPart;
35
+ }): void;
36
+ /**
37
+ * Download file according to file address
38
+ * @param {*} sUrl
39
+ */
40
+ export declare function downloadByUrl({ url, target, fileName, }: {
41
+ url: string;
42
+ target?: string;
43
+ fileName?: string;
44
+ }): boolean;
@@ -0,0 +1,107 @@
1
+ import 'qs';
2
+ import 'lodash-es';
3
+ import '../mitt/mitt.mjs';
4
+ import '../../enums/app-designer/index.mjs';
5
+ import '../../enums/page-designer/designer.mjs';
6
+ import '../../enums/breakpointEnum.mjs';
7
+ import '../../constants/expression-type/modeCfg.mjs';
8
+ import '../../constants/expression-type/BuiltOperators.mjs';
9
+ import '../../constants/expression-type/function.mjs';
10
+ import '../../constants/expression-type/variable.mjs';
11
+ import 'vue';
12
+ import 'qx-util';
13
+ import 'path-browserify';
14
+ import '../uuid/uuid.mjs';
15
+ import 'axios';
16
+ import '@fingerprintjs/fingerprintjs';
17
+ import { openWindow } from '../util.mjs';
18
+ import '../useUUid.mjs';
19
+ import { dataURLtoBlob, urlToBase64 } from './base64Conver.mjs';
20
+ import dayjs from 'dayjs';
21
+ import '../permission.mjs';
22
+
23
+ function downloadByOnlineUrl(url, filename, mime, bom) {
24
+ urlToBase64(url).then((base64) => {
25
+ downloadByBase64(base64, filename, mime, bom);
26
+ });
27
+ }
28
+ function downloadByBase64(buf, filename, mime, bom) {
29
+ const base64Buf = dataURLtoBlob(buf);
30
+ downloadByData(base64Buf, { filename, mime, bom });
31
+ }
32
+ function uploaderFiles({ multiple = false, accept = "*" } = {}) {
33
+ const input = document.createElement("input");
34
+ input.type = "file";
35
+ input.multiple = !!multiple;
36
+ input.accept = accept;
37
+ input.click();
38
+ return new Promise((resolve, reject) => {
39
+ input.onchange = async () => {
40
+ const filelist = input.files || [];
41
+ resolve(Object.values(filelist));
42
+ };
43
+ input.onerror = async () => {
44
+ reject();
45
+ };
46
+ });
47
+ }
48
+ function downloadByData(data, {
49
+ filename = "file",
50
+ timestamp = false,
51
+ mime,
52
+ bom
53
+ }) {
54
+ if (timestamp) {
55
+ const ext = filename.split(".").pop();
56
+ const realName = filename.replace(/\.[^/.]+$/, "");
57
+ const timestamp2 = dayjs(/* @__PURE__ */ new Date()).format("YYYYMMDDHHmmss");
58
+ filename = `${realName}${timestamp2}.${ext}`;
59
+ }
60
+ const blobData = typeof bom !== "undefined" ? [bom, data] : [data];
61
+ const blob = new Blob(blobData, { type: mime || "application/octet-stream" });
62
+ const blobURL = window.URL.createObjectURL(blob);
63
+ const tempLink = document.createElement("a");
64
+ tempLink.style.display = "none";
65
+ tempLink.href = blobURL;
66
+ tempLink.setAttribute("download", filename);
67
+ if (typeof tempLink.download === "undefined") {
68
+ tempLink.setAttribute("target", "_blank");
69
+ }
70
+ document.body.appendChild(tempLink);
71
+ tempLink.click();
72
+ document.body.removeChild(tempLink);
73
+ window.URL.revokeObjectURL(blobURL);
74
+ }
75
+ function downloadByUrl({
76
+ url,
77
+ target = "_blank",
78
+ fileName
79
+ }) {
80
+ const isChrome = window.navigator.userAgent.toLowerCase().indexOf("chrome") > -1;
81
+ const isSafari = window.navigator.userAgent.toLowerCase().indexOf("safari") > -1;
82
+ if (/(iP)/g.test(window.navigator.userAgent)) {
83
+ console.error("Your browser does not support download!");
84
+ return false;
85
+ }
86
+ if (isChrome || isSafari) {
87
+ const link = document.createElement("a");
88
+ link.href = url;
89
+ link.target = target;
90
+ if (link.download !== void 0) {
91
+ link.download = fileName || url.substring(url.lastIndexOf("/") + 1, url.length);
92
+ }
93
+ if (document.createEvent) {
94
+ const e = document.createEvent("MouseEvents");
95
+ e.initEvent("click", true, true);
96
+ link.dispatchEvent(e);
97
+ return true;
98
+ }
99
+ }
100
+ if (url.indexOf("?") === -1) {
101
+ url += "?download";
102
+ }
103
+ openWindow(url, { target });
104
+ return true;
105
+ }
106
+
107
+ export { downloadByBase64, downloadByData, downloadByOnlineUrl, downloadByUrl, uploaderFiles };
@@ -10,11 +10,9 @@ export { modelLoader } from './model-loader/model-loader';
10
10
  export { Namespace, useNamespace } from './namespace/namespace';
11
11
  export * from './openUtil';
12
12
  export { PluginStaticResource } from './plugin-static-resource/plugin-static-resource';
13
- export { gctFormItemEditorProps } from './props';
14
13
  export { getToken, setToken, getTenant, getTimezone, isMobile, setTenant, deepMerge, stringifyMatrixParams, parseMatrixParams, } from './tools/tools';
15
14
  export * from './uuid/uuid';
16
15
  export * from './value-helper/value-helper';
17
- export { widthEditorInstall } from './width-install/width-install';
18
16
  export { interceptors } from './axios/interceptors';
19
17
  export { getDeviceFingerprint, getPageIdentification, } from './deviceFingerprint';
20
18
  export { TreeHelper } from './treeHelper/treeHelper';
@@ -22,3 +20,9 @@ export * from './style';
22
20
  export * from './util';
23
21
  export { isSortFiled } from './is-sort-filed/is-sort-filed';
24
22
  export { useUUid, randomUUID } from './useUUid';
23
+ export * from './validate';
24
+ export * from './uploader/uploader';
25
+ export * from './file/download';
26
+ export * from './file/base64Conver';
27
+ export * from './design/design';
28
+ export { permission } from './permission';