@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.
- package/dist/index.esm.min.mjs +13345 -3124
- package/dist/index.min.cjs +22 -15
- package/dist/index.system.min.js +22 -15
- package/es/constants/default-date-type/default-date-type.d.ts +70 -0
- package/es/constants/default-date-type/default-date-type.mjs +22 -0
- package/es/constants/expression-type/BuiltOperators.mjs +2 -0
- package/es/constants/index.d.ts +2 -1
- package/es/constants/page-designer/model.d.ts +4 -0
- package/es/constants/page-designer/model.mjs +7 -0
- package/es/enums/globalEnum.d.ts +15 -0
- package/es/enums/globalEnum.mjs +13 -1
- package/es/enums/page-designer/widget.d.ts +5 -0
- package/es/enums/page-designer/widget.mjs +6 -1
- package/es/global/gct/gct.d.ts +9 -3
- package/es/global/gct/gct.mjs +11 -6
- package/es/hooks/index.d.ts +0 -2
- package/es/index.d.ts +1 -3
- package/es/index.mjs +15 -35
- package/es/interface/i-dictionary/i-dictionary-item.d.ts +6 -0
- package/es/interface/i-global-register/i-global-register.d.ts +8 -0
- package/es/interface/i-pinia-action/i-global-actions.d.ts +4 -0
- package/es/interface/i-pinia-getter/i-global-getters.d.ts +2 -0
- package/es/interface/i-pinia-state/i-global-state.d.ts +12 -1
- package/es/interface/index.d.ts +3 -6
- package/es/interface/model-desginer/entity.d.ts +110 -0
- package/es/interface/provider/index.d.ts +0 -2
- package/es/modules/mqtt/constants/mqtt.const.d.ts +33 -0
- package/es/modules/mqtt/constants/mqtt.const.mjs +27 -0
- package/es/modules/mqtt/enums/mqtt-status.enum.d.ts +20 -0
- package/es/modules/mqtt/enums/mqtt-status.enum.mjs +10 -0
- package/es/modules/mqtt/index.d.ts +5 -0
- package/es/modules/mqtt/interfaces/i-mqtt.d.ts +139 -0
- package/es/modules/mqtt/mqtt-client.d.ts +117 -0
- package/es/modules/mqtt/mqtt-client.mjs +262 -0
- package/es/modules/mqtt/mqtt-manager.d.ts +87 -0
- package/es/modules/mqtt/mqtt-manager.mjs +78 -0
- package/es/modules/platform-config/enums/platform.enum.d.ts +0 -15
- package/es/modules/platform-config/enums/platform.enum.mjs +1 -13
- package/es/modules/platform-config/interfaces/index.d.ts +0 -1
- package/es/modules/platform-config/store.mjs +4 -1
- package/es/modules/user-stores/store/user.store.d.ts +74 -0
- package/es/modules/user-stores/store/user.store.mjs +16 -1
- package/es/modules/user-stores/types/user.d.ts +1 -0
- package/es/setup-app.mjs +11 -0
- package/es/state/global-pinia-state/global-pinia-state.d.ts +15 -1
- package/es/state/global-pinia-state/global-pinia-state.mjs +14 -0
- package/es/state/index.d.ts +0 -9
- package/es/store/global-store.mjs +14 -0
- package/es/utils/design/design.d.ts +11 -0
- package/es/utils/design/design.mjs +15 -0
- package/es/utils/file/base64Conver.d.ts +9 -0
- package/es/utils/file/base64Conver.mjs +35 -0
- package/es/utils/file/download.d.ts +44 -0
- package/es/utils/file/download.mjs +107 -0
- package/es/utils/index.d.ts +6 -2
- package/es/utils/permission.d.ts +19 -0
- package/es/utils/permission.mjs +38 -0
- package/es/utils/uploader/uploader.d.ts +20 -0
- package/es/utils/uploader/uploader.mjs +120 -0
- package/es/utils/validate.d.ts +5 -0
- package/es/utils/validate.mjs +25 -0
- package/package.json +5 -4
- package/es/constants/editor-type/editor-type.d.ts +0 -244
- package/es/constants/editor-type/editor-type.mjs +0 -63
- package/es/controller/edit-form/edit-form.controller.d.ts +0 -28
- package/es/controller/edit-form/edit-form.controller.mjs +0 -47
- package/es/controller/editor/color-editor.controller.d.ts +0 -13
- package/es/controller/editor/color-editor.controller.mjs +0 -6
- package/es/controller/editor/length-unit-editor.controller.d.ts +0 -13
- package/es/controller/editor/length-unit-editor.controller.mjs +0 -6
- package/es/controller/editor-item/editor-item.controller.d.ts +0 -14
- package/es/controller/editor-item/editor-item.controller.mjs +0 -8
- package/es/controller/form/form.controller.d.ts +0 -76
- package/es/controller/form/form.controller.mjs +0 -147
- package/es/controller/form-collapse/form-collapse.controller.d.ts +0 -18
- package/es/controller/form-collapse/form-collapse.controller.mjs +0 -14
- package/es/controller/form-collapse-pane/form-collapse-pane.controller.d.ts +0 -18
- package/es/controller/form-collapse-pane/form-collapse-pane.controller.mjs +0 -14
- package/es/controller/form-edit-item/form-edit-item.controller.d.ts +0 -27
- package/es/controller/form-edit-item/form-edit-item.controller.mjs +0 -74
- package/es/controller/form-group/form-group.controller.d.ts +0 -18
- package/es/controller/form-group/form-group.controller.mjs +0 -14
- package/es/controller/form-item/form-item.controller.d.ts +0 -21
- package/es/controller/form-item/form-item.controller.mjs +0 -43
- package/es/controller/form-item-basic/form-item-basic.controller.d.ts +0 -57
- package/es/controller/form-item-basic/form-item-basic.controller.mjs +0 -49
- package/es/controller/form-item-hidden/form-item-hidden.controller.d.ts +0 -17
- package/es/controller/form-item-hidden/form-item-hidden.controller.mjs +0 -7
- package/es/controller/form-tab/form-tab.controller.d.ts +0 -18
- package/es/controller/form-tab/form-tab.controller.mjs +0 -14
- package/es/controller/form-tab-pane/form-tab-pane.controller.d.ts +0 -18
- package/es/controller/form-tab-pane/form-tab-pane.controller.mjs +0 -14
- package/es/controller/gct-form/gct-form.controller.d.ts +0 -101
- package/es/controller/gct-form/gct-form.controller.mjs +0 -214
- package/es/controller/index.d.ts +0 -15
- package/es/hooks/use-form/use-form.d.ts +0 -10
- package/es/hooks/use-form/use-form.mjs +0 -8
- package/es/hooks/use-gct-form-value/use-gct-form-value.d.ts +0 -22
- package/es/hooks/use-gct-form-value/use-gct-form-value.mjs +0 -89
- package/es/hooks/use-overlay-scrollbars/use-overlay-scrollbars.d.ts +0 -11
- package/es/interface/controller/edit-form/edit-form.controller.d.ts +0 -26
- package/es/interface/controller/editor/i-color-editor.controller.d.ts +0 -11
- package/es/interface/controller/editor/i-length-unit-editor.controller.d.ts +0 -11
- package/es/interface/controller/editor-item/editor-item.controller.d.ts +0 -19
- package/es/interface/controller/form/form.controller.d.ts +0 -121
- package/es/interface/controller/form-collapse/form-collapse.controller.d.ts +0 -23
- package/es/interface/controller/form-collapse-pane/form-collapse-pane.controller.d.ts +0 -23
- package/es/interface/controller/form-edit-item/form-edit-item.controller.d.ts +0 -59
- package/es/interface/controller/form-group/form-group.controller.d.ts +0 -24
- package/es/interface/controller/form-hidden-item/form-hidden-item.controller.d.ts +0 -24
- package/es/interface/controller/form-item/form-item.controller.d.ts +0 -40
- package/es/interface/controller/form-item-basic/form-item-basic.controller.d.ts +0 -51
- package/es/interface/controller/form-tab/form-tab.controller.d.ts +0 -23
- package/es/interface/controller/form-tab-pane/form-tab-pane.controller.d.ts +0 -23
- package/es/interface/controller/index.d.ts +0 -14
- package/es/interface/events/form/i-form.event.d.ts +0 -11
- package/es/interface/events/index.d.ts +0 -1
- package/es/interface/form/i-editor/i-check-switch.d.ts +0 -29
- package/es/interface/form/i-editor/i-checkbox-editor.d.ts +0 -9
- package/es/interface/form/i-editor/i-color-editor.d.ts +0 -13
- package/es/interface/form/i-editor/i-editor-basic.d.ts +0 -87
- package/es/interface/form/i-editor/i-icon-select-editor.d.ts +0 -21
- package/es/interface/form/i-editor/i-info-editor.d.ts +0 -21
- package/es/interface/form/i-editor/i-length-unit-editor.d.ts +0 -13
- package/es/interface/form/i-editor/i-model-field-select-editor.d.ts +0 -18
- package/es/interface/form/i-editor/i-number-editor.d.ts +0 -21
- package/es/interface/form/i-editor/i-picker-editor.d.ts +0 -30
- package/es/interface/form/i-editor/i-radio-editor.d.ts +0 -21
- package/es/interface/form/i-editor/i-select-editor.d.ts +0 -14
- package/es/interface/form/i-editor/i-span-editor.d.ts +0 -30
- package/es/interface/form/i-editor/i-switch-editor.d.ts +0 -14
- package/es/interface/form/i-editor/i-text-editor.d.ts +0 -46
- package/es/interface/form/i-editor/i-textarea-editor.d.ts +0 -25
- package/es/interface/form/i-form/i-edit-form.d.ts +0 -48
- package/es/interface/form/i-form/i-form-collapse-pane.d.ts +0 -30
- package/es/interface/form/i-form/i-form-collapse.d.ts +0 -35
- package/es/interface/form/i-form/i-form-container.d.ts +0 -53
- package/es/interface/form/i-form/i-form-edit-item.d.ts +0 -140
- package/es/interface/form/i-form/i-form-group-container.d.ts +0 -24
- package/es/interface/form/i-form/i-form-group.d.ts +0 -35
- package/es/interface/form/i-form/i-form-hidden-item.d.ts +0 -11
- package/es/interface/form/i-form/i-form-item-basic.d.ts +0 -126
- package/es/interface/form/i-form/i-form-item.d.ts +0 -11
- package/es/interface/form/i-form/i-form-tab-pane.d.ts +0 -23
- package/es/interface/form/i-form/i-form-tab.d.ts +0 -21
- package/es/interface/form/i-form/i-form.d.ts +0 -79
- package/es/interface/form/index.d.ts +0 -29
- package/es/interface/layout/i-flex-layout/i-flex-container.d.ts +0 -75
- package/es/interface/layout/i-flex-layout/i-flex-item.d.ts +0 -51
- package/es/interface/layout/i-grid-layout/i-grid-container.d.ts +0 -29
- package/es/interface/layout/i-grid-layout/i-grid-item-span.d.ts +0 -54
- package/es/interface/layout/i-grid-layout/i-grid-item.d.ts +0 -37
- package/es/interface/layout/i-layout-basis/i-layout-container-basis.d.ts +0 -11
- package/es/interface/layout/index.d.ts +0 -6
- package/es/interface/provider/i-editor-provider/i-editor-provider.d.ts +0 -24
- package/es/interface/provider/i-form-item-provider/i-form-item-provider.d.ts +0 -44
- package/es/interface/state/form/form.state.d.ts +0 -53
- package/es/interface/state/form-collapse/form-collapse.state.d.ts +0 -11
- package/es/interface/state/form-collapse-pane/form-collapse-pane.state.d.ts +0 -11
- package/es/interface/state/form-edit-item/form-edit-item.state.d.ts +0 -38
- package/es/interface/state/form-group/form-group.state.d.ts +0 -21
- package/es/interface/state/form-hidden-item/form-hidden-item.state.d.ts +0 -5
- package/es/interface/state/form-item/form-item.state.d.ts +0 -20
- package/es/interface/state/form-item-basic/form-item-basic.state.d.ts +0 -63
- package/es/interface/state/form-tab/form-tab.state.d.ts +0 -19
- package/es/interface/state/form-tab-pane/form-tab-pane.state.d.ts +0 -11
- package/es/interface/state/index.d.ts +0 -10
- package/es/modules/platform-config/interfaces/global-setting.interface.d.ts +0 -7
- package/es/register/editor-register/editor-register.d.ts +0 -49
- package/es/register/editor-register/editor-register.mjs +0 -57
- package/es/register/form-item-register/form-item-register.d.ts +0 -36
- package/es/register/form-item-register/form-item-register.mjs +0 -42
- package/es/register/index.d.ts +0 -14
- package/es/state/form/form.state.d.ts +0 -24
- package/es/state/form/form.state.mjs +0 -16
- package/es/state/form-collapse/form-collapse.state.d.ts +0 -14
- package/es/state/form-collapse/form-collapse.state.mjs +0 -6
- package/es/state/form-collapse-pane/form-collapse-pane.state.d.ts +0 -14
- package/es/state/form-collapse-pane/form-collapse-pane.state.mjs +0 -6
- package/es/state/form-edit-item/form-edit-item.state.d.ts +0 -17
- package/es/state/form-edit-item/form-edit-item.state.mjs +0 -10
- package/es/state/form-group/form-group.state.d.ts +0 -21
- package/es/state/form-group/form-group.state.mjs +0 -14
- package/es/state/form-item/form-item.state.d.ts +0 -14
- package/es/state/form-item/form-item.state.mjs +0 -6
- package/es/state/form-item-basic/form-item-basic.state.d.ts +0 -17
- package/es/state/form-item-basic/form-item-basic.state.mjs +0 -9
- package/es/state/form-tab/form-tab.state.d.ts +0 -15
- package/es/state/form-tab/form-tab.state.mjs +0 -7
- package/es/state/form-tab-pane/form-tab-pane.state.d.ts +0 -14
- package/es/state/form-tab-pane/form-tab-pane.state.mjs +0 -6
- package/es/utils/props/gct-form-item/gct-form-item.props.d.ts +0 -63
- package/es/utils/props/gct-form-item/gct-form-item.props.mjs +0 -66
- package/es/utils/props/index.d.ts +0 -1
- package/es/utils/width-install/width-install.d.ts +0 -17
- 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
|
|
14
|
+
export { KickRuleEnum, PassRule };
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import
|
|
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 };
|
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
|
*
|
package/es/state/index.d.ts
CHANGED
|
@@ -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,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,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 };
|
package/es/utils/index.d.ts
CHANGED
|
@@ -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';
|