@fmdevui/fm-dev 1.0.4 → 1.0.5

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 (168) hide show
  1. package/README.md +1 -0
  2. package/es/core/api/base/index.d.ts +19 -0
  3. package/es/core/api/index.d.ts +4 -0
  4. package/es/core/api/login/index.d.ts +7 -0
  5. package/es/core/api/sys/index.d.ts +39 -0
  6. package/es/core/api/utils/request.d.ts +36 -0
  7. package/es/core/auth/index.d.ts +40 -0
  8. package/es/core/directive/authDirective.d.ts +8 -0
  9. package/es/core/directive/customDirective.d.ts +21 -0
  10. package/es/core/directive/index.d.ts +9 -0
  11. package/es/core/index.d.ts +5 -2
  12. package/es/core/stores/index.d.ts +6 -0
  13. package/es/core/stores/inpinia.d.ts +3 -0
  14. package/es/core/stores/keepAliveNames.d.ts +17 -0
  15. package/es/core/stores/requestOldRoutes.d.ts +9 -0
  16. package/es/core/stores/routesList.d.ts +14 -0
  17. package/es/core/stores/tagsViewRoutes.d.ts +11 -0
  18. package/es/core/stores/themeConfig.d.ts +5 -0
  19. package/es/core/stores/userInfo.d.ts +21 -0
  20. package/es/core/utils/array/index.d.ts +23 -0
  21. package/es/core/utils/base64/index.d.ts +30 -0
  22. package/es/core/utils/comm/commonFunction.d.ts +17 -0
  23. package/es/core/utils/comm/data-signature.d.ts +17 -0
  24. package/es/core/utils/comm/download.d.ts +46 -0
  25. package/es/core/utils/comm/formatTime.d.ts +37 -0
  26. package/es/core/utils/comm/idleTimeout.d.ts +45 -0
  27. package/es/core/utils/comm/index.d.ts +7 -0
  28. package/es/core/utils/comm/setIconfont.d.ts +12 -0
  29. package/es/core/utils/comm/signalR.d.ts +3 -0
  30. package/es/core/utils/comm/sysInfo.d.ts +2 -0
  31. package/es/core/utils/comm/theme.d.ts +13 -0
  32. package/es/core/utils/comm/toolsValidate.d.ts +148 -0
  33. package/es/core/utils/comm/uploadfileurl.d.ts +2 -0
  34. package/es/core/utils/const/index.d.ts +11 -0
  35. package/es/core/utils/emit/index.d.ts +4 -0
  36. package/es/core/utils/index.d.ts +7 -0
  37. package/es/core/utils/other/index.d.ts +69 -0
  38. package/es/core/utils/storage/index.d.ts +27 -0
  39. package/es/core/utils/watermark/index.d.ts +10 -0
  40. package/es/index.mjs +23 -0
  41. package/es/packages/core/api/base/index.mjs +179 -0
  42. package/es/packages/core/api/index.mjs +4 -0
  43. package/es/packages/core/api/login/index.mjs +35 -0
  44. package/es/packages/core/api/sys/index.mjs +201 -0
  45. package/es/packages/core/api/types/global.d.mjs +1 -0
  46. package/es/packages/core/api/utils/request.mjs +173 -0
  47. package/es/packages/core/auth/index.mjs +34 -0
  48. package/es/packages/core/directive/authDirective.mjs +38 -0
  49. package/es/packages/core/directive/customDirective.mjs +147 -0
  50. package/es/packages/core/directive/index.mjs +10 -0
  51. package/es/packages/core/index.mjs +26 -0
  52. package/es/packages/core/stores/index.mjs +6 -0
  53. package/es/packages/core/stores/inpinia.mjs +5 -0
  54. package/es/packages/core/stores/keepAliveNames.mjs +29 -0
  55. package/es/packages/core/stores/requestOldRoutes.mjs +14 -0
  56. package/es/packages/core/stores/routesList.mjs +26 -0
  57. package/es/packages/core/stores/tagsViewRoutes.mjs +22 -0
  58. package/es/packages/core/stores/themeConfig.mjs +161 -0
  59. package/es/packages/core/stores/userInfo.mjs +156 -0
  60. package/es/packages/core/utils/array/index.mjs +59 -0
  61. package/es/packages/core/utils/base64/index.mjs +57 -0
  62. package/es/packages/core/utils/comm/calendar.mjs +785 -0
  63. package/es/packages/core/utils/comm/commonFunction.mjs +83 -0
  64. package/es/packages/core/utils/comm/data-signature.mjs +39 -0
  65. package/es/packages/core/utils/comm/download.mjs +78 -0
  66. package/es/packages/core/utils/comm/formatTime.mjs +110 -0
  67. package/es/packages/core/utils/comm/idleTimeout.mjs +124 -0
  68. package/es/packages/core/utils/comm/index.mjs +7 -0
  69. package/es/packages/core/utils/comm/setIconfont.mjs +36 -0
  70. package/es/packages/core/utils/comm/signalR.mjs +45 -0
  71. package/es/packages/core/utils/comm/sysInfo.mjs +54 -0
  72. package/es/packages/core/utils/comm/theme.mjs +54 -0
  73. package/es/packages/core/utils/comm/toolsValidate.mjs +140 -0
  74. package/es/packages/core/utils/comm/uploadfileurl.mjs +12 -0
  75. package/es/packages/core/utils/const/index.mjs +13 -0
  76. package/es/packages/core/utils/emit/index.mjs +5 -0
  77. package/es/packages/core/utils/index.mjs +13 -0
  78. package/es/packages/core/utils/other/index.mjs +137 -0
  79. package/es/packages/core/utils/storage/index.mjs +55 -0
  80. package/es/packages/core/utils/watermark/index.mjs +39 -0
  81. package/index.js +22990 -5106
  82. package/index.min.js +42 -10
  83. package/index.min.mjs +42 -10
  84. package/index.mjs +22916 -5104
  85. package/lib/core/api/base/index.d.ts +19 -0
  86. package/lib/core/api/index.d.ts +4 -0
  87. package/lib/core/api/login/index.d.ts +7 -0
  88. package/lib/core/api/sys/index.d.ts +39 -0
  89. package/lib/core/api/utils/request.d.ts +36 -0
  90. package/lib/core/auth/index.d.ts +40 -0
  91. package/lib/core/directive/authDirective.d.ts +8 -0
  92. package/lib/core/directive/customDirective.d.ts +21 -0
  93. package/lib/core/directive/index.d.ts +9 -0
  94. package/lib/core/index.d.ts +5 -2
  95. package/lib/core/stores/index.d.ts +6 -0
  96. package/lib/core/stores/inpinia.d.ts +3 -0
  97. package/lib/core/stores/keepAliveNames.d.ts +17 -0
  98. package/lib/core/stores/requestOldRoutes.d.ts +9 -0
  99. package/lib/core/stores/routesList.d.ts +14 -0
  100. package/lib/core/stores/tagsViewRoutes.d.ts +11 -0
  101. package/lib/core/stores/themeConfig.d.ts +5 -0
  102. package/lib/core/stores/userInfo.d.ts +21 -0
  103. package/lib/core/utils/array/index.d.ts +23 -0
  104. package/lib/core/utils/base64/index.d.ts +30 -0
  105. package/lib/core/utils/comm/commonFunction.d.ts +17 -0
  106. package/lib/core/utils/comm/data-signature.d.ts +17 -0
  107. package/lib/core/utils/comm/download.d.ts +46 -0
  108. package/lib/core/utils/comm/formatTime.d.ts +37 -0
  109. package/lib/core/utils/comm/idleTimeout.d.ts +45 -0
  110. package/lib/core/utils/comm/index.d.ts +7 -0
  111. package/lib/core/utils/comm/setIconfont.d.ts +12 -0
  112. package/lib/core/utils/comm/signalR.d.ts +3 -0
  113. package/lib/core/utils/comm/sysInfo.d.ts +2 -0
  114. package/lib/core/utils/comm/theme.d.ts +13 -0
  115. package/lib/core/utils/comm/toolsValidate.d.ts +148 -0
  116. package/lib/core/utils/comm/uploadfileurl.d.ts +2 -0
  117. package/lib/core/utils/const/index.d.ts +11 -0
  118. package/lib/core/utils/emit/index.d.ts +4 -0
  119. package/lib/core/utils/index.d.ts +7 -0
  120. package/lib/core/utils/other/index.d.ts +69 -0
  121. package/lib/core/utils/storage/index.d.ts +27 -0
  122. package/lib/core/utils/watermark/index.d.ts +10 -0
  123. package/lib/index.js +111 -7
  124. package/lib/packages/core/api/base/index.js +181 -0
  125. package/lib/packages/core/api/index.js +26 -0
  126. package/lib/packages/core/api/login/index.js +37 -0
  127. package/lib/packages/core/api/sys/index.js +204 -0
  128. package/lib/packages/core/api/types/global.d.js +2 -0
  129. package/lib/packages/core/api/utils/request.js +190 -0
  130. package/lib/packages/core/auth/index.js +41 -0
  131. package/lib/packages/core/directive/authDirective.js +40 -0
  132. package/lib/packages/core/directive/customDirective.js +151 -0
  133. package/lib/packages/core/directive/index.js +12 -0
  134. package/lib/packages/core/index.js +114 -7
  135. package/lib/packages/core/stores/index.js +17 -0
  136. package/lib/packages/core/stores/inpinia.js +7 -0
  137. package/lib/packages/core/stores/keepAliveNames.js +31 -0
  138. package/lib/packages/core/stores/requestOldRoutes.js +16 -0
  139. package/lib/packages/core/stores/routesList.js +28 -0
  140. package/lib/packages/core/stores/tagsViewRoutes.js +24 -0
  141. package/lib/packages/core/stores/themeConfig.js +163 -0
  142. package/lib/packages/core/stores/userInfo.js +158 -0
  143. package/lib/packages/core/utils/array/index.js +64 -0
  144. package/lib/packages/core/utils/base64/index.js +63 -0
  145. package/lib/packages/core/utils/comm/calendar.js +789 -0
  146. package/lib/packages/core/utils/comm/commonFunction.js +87 -0
  147. package/lib/packages/core/utils/comm/data-signature.js +41 -0
  148. package/lib/packages/core/utils/comm/download.js +86 -0
  149. package/lib/packages/core/utils/comm/formatTime.js +115 -0
  150. package/lib/packages/core/utils/comm/idleTimeout.js +128 -0
  151. package/lib/packages/core/utils/comm/index.js +50 -0
  152. package/lib/packages/core/utils/comm/setIconfont.js +42 -0
  153. package/lib/packages/core/utils/comm/signalR.js +66 -0
  154. package/lib/packages/core/utils/comm/sysInfo.js +57 -0
  155. package/lib/packages/core/utils/comm/theme.js +56 -0
  156. package/lib/packages/core/utils/comm/toolsValidate.js +165 -0
  157. package/lib/packages/core/utils/comm/uploadfileurl.js +14 -0
  158. package/lib/packages/core/utils/const/index.js +15 -0
  159. package/lib/packages/core/utils/emit/index.js +9 -0
  160. package/lib/packages/core/utils/index.js +69 -0
  161. package/lib/packages/core/utils/other/index.js +149 -0
  162. package/lib/packages/core/utils/storage/index.js +58 -0
  163. package/lib/packages/core/utils/watermark/index.js +41 -0
  164. package/package.json +2 -2
  165. package/es/core/types/axios/index.d.ts +0 -11
  166. package/es/packages/core/types/axios/index.mjs +0 -2
  167. package/lib/core/types/axios/index.d.ts +0 -11
  168. package/lib/packages/core/types/axios/index.js +0 -28
@@ -0,0 +1,14 @@
1
+ import { defineStore } from 'pinia';
2
+
3
+ const useRequestOldRoutes = defineStore("requestOldRoutes", {
4
+ state: () => ({
5
+ requestOldRoutes: []
6
+ }),
7
+ actions: {
8
+ async setRequestOldRoutes(routes) {
9
+ this.requestOldRoutes = routes;
10
+ }
11
+ }
12
+ });
13
+
14
+ export { useRequestOldRoutes };
@@ -0,0 +1,26 @@
1
+ import { defineStore } from 'pinia';
2
+
3
+ const useRoutesList = defineStore("routesList", {
4
+ state: () => ({
5
+ routesList: [],
6
+ isColumnsMenuHover: false,
7
+ isColumnsNavHover: false,
8
+ currentRoute: null
9
+ }),
10
+ actions: {
11
+ setCurrentRoute(route) {
12
+ this.currentRoute = route;
13
+ },
14
+ async setRoutesList(data) {
15
+ this.routesList = data;
16
+ },
17
+ async setColumnsMenuHover(bool) {
18
+ this.isColumnsMenuHover = bool;
19
+ },
20
+ async setColumnsNavHover(bool) {
21
+ this.isColumnsNavHover = bool;
22
+ }
23
+ }
24
+ });
25
+
26
+ export { useRoutesList };
@@ -0,0 +1,22 @@
1
+ import { defineStore } from 'pinia';
2
+ import '../utils/index.mjs';
3
+ import { Session } from '../utils/storage/index.mjs';
4
+ import { PUB } from '../utils/const/index.mjs';
5
+
6
+ const useTagsViewRoutes = defineStore("tagsViewRoutes", {
7
+ state: () => ({
8
+ tagsViewRoutes: [],
9
+ isTagsViewCurrenFull: false
10
+ }),
11
+ actions: {
12
+ async setTagsViewRoutes(data) {
13
+ this.tagsViewRoutes = data;
14
+ },
15
+ setCurrenFullscreen(bool) {
16
+ Session.set(PUB.isTagsViewCurrenFull, bool);
17
+ this.isTagsViewCurrenFull = bool;
18
+ }
19
+ }
20
+ });
21
+
22
+ export { useTagsViewRoutes };
@@ -0,0 +1,161 @@
1
+ import { defineStore } from 'pinia';
2
+
3
+ const useThemeConfig = defineStore("themeConfig", {
4
+ state: () => ({
5
+ themeConfig: {
6
+ // 是否开启布局配置抽屉
7
+ isDrawer: false,
8
+ /**
9
+ * 全局主题
10
+ */
11
+ // 默认 primary 主题颜色
12
+ primary: "#0f59a4",
13
+ //胭脂红:#f03f24 //飞燕草蓝:#0f59a4 //薄荷绿:#207f4c
14
+ // 是否开启深色模式
15
+ isIsDark: false,
16
+ /**
17
+ * 顶栏设置
18
+ */
19
+ // 默认顶栏导航背景颜色
20
+ topBar: "#FFFFFF",
21
+ // 默认顶栏导航字体颜色
22
+ topBarColor: "#000000",
23
+ // 是否开启顶栏背景颜色渐变
24
+ isTopBarColorGradual: false,
25
+ /**
26
+ * 菜单设置
27
+ */
28
+ // 默认菜单导航背景颜色
29
+ menuBar: "#FFFFFF",
30
+ // 默认菜单导航字体颜色
31
+ menuBarColor: "#000000",
32
+ // 默认菜单高亮背景色
33
+ menuBarActiveColor: "var(--el-color-primary-light-7)",
34
+ // 是否开启菜单背景颜色渐变
35
+ isMenuBarColorGradual: false,
36
+ /**
37
+ * 分栏设置
38
+ */
39
+ // 默认分栏菜单背景颜色
40
+ columnsMenuBar: "#2C3A49",
41
+ // 默认分栏菜单字体颜色
42
+ columnsMenuBarColor: "#F0F0F0",
43
+ // 是否开启分栏菜单背景颜色渐变
44
+ isColumnsMenuBarColorGradual: false,
45
+ // 是否开启分栏菜单鼠标悬停预加载(预览菜单)
46
+ isColumnsMenuHoverPreload: false,
47
+ // 分栏Logo高度(px)
48
+ columnsLogoHeight: 50,
49
+ // 分栏菜单宽度(px)
50
+ columnsMenuWidth: 70,
51
+ // 分栏菜单高度(px)
52
+ columnsMenuHeight: 50,
53
+ /**
54
+ * 界面设置
55
+ */
56
+ // 是否开启菜单水平折叠效果
57
+ isCollapse: false,
58
+ // 是否开启菜单手风琴效果
59
+ isUniqueOpened: true,
60
+ // 是否开启固定 Header
61
+ isFixedHeader: true,
62
+ // 初始化变量,用于更新菜单 el-scrollbar 的高度,请勿删除
63
+ isFixedHeaderChange: false,
64
+ // 是否开启经典布局分割菜单(仅经典布局生效)
65
+ isClassicSplitMenu: false,
66
+ // 是否开启自动锁屏
67
+ isLockScreen: false,
68
+ // 开启自动锁屏倒计时(s/秒)
69
+ lockScreenTime: 300,
70
+ /**
71
+ * 界面显示
72
+ */
73
+ // 是否开启侧边栏 Logo
74
+ isShowLogo: true,
75
+ // 初始化变量,用于 el-scrollbar 的高度更新,请勿删除
76
+ isShowLogoChange: false,
77
+ // 是否开启 Breadcrumb,强制经典、横向布局不显示
78
+ isBreadcrumb: true,
79
+ // 是否开启 Tagsview
80
+ isTagsview: true,
81
+ // 是否开启 Breadcrumb 图标
82
+ isBreadcrumbIcon: true,
83
+ // 是否开启 Tagsview 图标
84
+ isTagsviewIcon: true,
85
+ // 是否开启 TagsView 缓存
86
+ isCacheTagsView: true,
87
+ // 是否开启 TagsView 拖拽
88
+ isSortableTagsView: true,
89
+ // 是否开启 TagsView 共用 -- 共用详情界面:tagsView只会出现一个;非共用详情界面:tagsView会出现多个
90
+ isShareTagsView: true,
91
+ // 是否开启 Footer 底部版权信息
92
+ isFooter: true,
93
+ // 是否开启灰色模式
94
+ isGrayscale: false,
95
+ // 是否开启色弱模式
96
+ isInvert: false,
97
+ // 是否开启水印
98
+ isWatermark: true,
99
+ // 水印文案
100
+ watermarkText: "FM",
101
+ /**
102
+ * 其它设置
103
+ */
104
+ // Tagsview 风格:可选值"<tags-style-one|tags-style-four|tags-style-five>",默认 tags-style-five
105
+ // 定义的值与 `/src/layout/navBars/tagsView/tagsView.vue` 中的 class 同名
106
+ tagsStyle: "tags-style-one",
107
+ // 主页面切换动画: Animate.css
108
+ animation: "fadeDown",
109
+ // 分栏高亮风格:可选值"<columns-round|columns-card>",默认 columns-round
110
+ columnsAsideStyle: "columns-round",
111
+ // 分栏布局风格:可选值"<columns-horizontal|columns-vertical>",默认 columns-horizontal
112
+ columnsAsideLayout: "columns-vertical",
113
+ /**
114
+ * 布局切换
115
+ * 注意:为了演示,切换布局时,颜色会被还原成默认,代码位置:/@/layout/navBars/topBar/settings.vue
116
+ * 中的 `initSetLayoutChange(设置布局切换,重置主题样式)` 方法
117
+ */
118
+ // 布局切换:可选值"<defaults|classic|transverse|columns>",默认 defaults
119
+ layout: "columns",
120
+ /**
121
+ * 后端控制路由
122
+ */
123
+ // 是否开启后端控制路由
124
+ isRequestRoutes: true,
125
+ /**
126
+ * 全局网站标题 / 副标题
127
+ */
128
+ // 网站主标题(菜单导航、浏览器当前网页标题)
129
+ globalTitle: "FM.Pro",
130
+ // 网站副标题(登录页顶部文字)
131
+ globalViceTitle: "FM",
132
+ // 网站副标题(登录页顶部文字)
133
+ globalViceTitleMsg: "\u901A\u7528\u6743\u9650\u5F00\u53D1\u6846\u67B6",
134
+ // 版权和备案文字
135
+ copyright: "Copyright \xA9 2023-Present FM All rights reserved.",
136
+ // 默认初始语言,可选值"<zh-CN|en|zh-TW>",默认 zh-CN
137
+ globalI18n: "zh-CN",
138
+ // 默认全局组件大小,可选值"<large|'default'|small>",默认 'large'
139
+ globalComponentSize: "small",
140
+ // 系统 logo 地址
141
+ logoUrl: "logo.png",
142
+ // Icp备案号
143
+ icp: "\u7701ICP\u590712345678\u53F7",
144
+ // Icp地址
145
+ icpUrl: "https://beian.miit.gov.cn",
146
+ // 是否开启多语言切换
147
+ i18NSwitch: true,
148
+ // 闲置超时时间
149
+ idleTimeout: 0,
150
+ // 上线下线通知
151
+ onlineNotice: true
152
+ }
153
+ }),
154
+ actions: {
155
+ setThemeConfig(data) {
156
+ this.themeConfig = data.themeConfig;
157
+ }
158
+ }
159
+ });
160
+
161
+ export { useThemeConfig };
@@ -0,0 +1,156 @@
1
+ import { defineStore } from 'pinia';
2
+ import '../utils/index.mjs';
3
+ import { useThemeConfig } from './themeConfig.mjs';
4
+ import '../api/index.mjs';
5
+ import { useI18n } from 'vue-i18n';
6
+ import { useSysApi } from '../api/sys/index.mjs';
7
+ import { Watermark } from '../utils/watermark/index.mjs';
8
+ import { Local, Session } from '../utils/storage/index.mjs';
9
+ import { PUB } from '../utils/const/index.mjs';
10
+
11
+ const useUserInfo = defineStore("userInfo", {
12
+ state: () => ({
13
+ userInfos: {},
14
+ // 用户信息
15
+ constList: [],
16
+ // 常量列表
17
+ dictList: {},
18
+ // 字典列表
19
+ userTableList: []
20
+ // 用户表格字段列表
21
+ }),
22
+ getters: {},
23
+ actions: {
24
+ // 存储用户信息到浏览器缓存
25
+ async setUserInfos() {
26
+ this.userInfos = Session.get("userInfo") ?? await this.getApiUserInfo();
27
+ },
28
+ // 存储常量信息到浏览器缓存
29
+ async setConstList() {
30
+ this.constList = Session.get("constList") ?? await this.getSysConstList();
31
+ if (!Session.get("constList")) Session.set("constList", this.constList);
32
+ },
33
+ // 存储字典信息到浏览器缓存
34
+ async setDictList() {
35
+ var dictList = await useSysApi().getAllDictList().then((res) => res.data.result ?? {});
36
+ var dictListTemp = JSON.parse(JSON.stringify(dictList));
37
+ await Promise.all(
38
+ Object.keys(dictList).map(async (key) => {
39
+ dictList[key].forEach((da, index) => {
40
+ setDictLangMessageAsync(dictListTemp[key][index]);
41
+ });
42
+ })
43
+ );
44
+ this.dictList = dictListTemp;
45
+ },
46
+ // 存储用户表格列到浏览器缓存
47
+ async setUserTables() {
48
+ this.userTableList = Session.get(PUB.userTable) ?? await this.getUserTableList();
49
+ if (!Session.get(PUB.userTable)) Session.set(PUB.userTable, this.userTableList);
50
+ },
51
+ // 获取当前用户信息
52
+ getApiUserInfo() {
53
+ return new Promise((resolve) => {
54
+ useSysApi().getUserInfo().then((res) => {
55
+ if (res.data.result == null) return;
56
+ var d = res.data.result;
57
+ const userInfos = {
58
+ id: d.id,
59
+ loginId: d.loginId,
60
+ tenantId: d.tenantId,
61
+ account: d.account,
62
+ realName: d.realName,
63
+ phone: d.phone,
64
+ idCardNum: d.idCardNum,
65
+ email: d.email,
66
+ accountType: d.accountType,
67
+ avatar: d.avatar ?? "/logo.png",
68
+ address: d.address,
69
+ signature: d.signature,
70
+ orgId: d.orgId,
71
+ orgName: d.orgName,
72
+ posName: d.posName,
73
+ roles: d.roleIds,
74
+ authApiList: d.apis,
75
+ lastChangePasswordTime: d.lastChangePasswordTime,
76
+ time: (/* @__PURE__ */ new Date()).getTime()
77
+ };
78
+ const storesThemeConfig = useThemeConfig();
79
+ storesThemeConfig.themeConfig.watermarkText = d.watermarkText ?? "";
80
+ if (storesThemeConfig.themeConfig.isWatermark) Watermark.set(storesThemeConfig.themeConfig.watermarkText);
81
+ else Watermark.del();
82
+ Local.remove(PUB.themeConfig);
83
+ Local.set(PUB.themeConfig, storesThemeConfig.themeConfig);
84
+ resolve(userInfos);
85
+ });
86
+ });
87
+ },
88
+ // 获取当前用户表格列集合
89
+ getUserTableList() {
90
+ return new Promise((resolve) => {
91
+ useSysApi().getUserRoleTableList().then(async (res) => {
92
+ resolve(res.data.result ?? []);
93
+ });
94
+ });
95
+ },
96
+ // 获取常量集合
97
+ getSysConstList() {
98
+ return new Promise((resolve) => {
99
+ useSysApi().getConstList().then(async (res) => {
100
+ resolve(res.data.result ?? []);
101
+ });
102
+ });
103
+ },
104
+ // 根据常量类名获取常量数据
105
+ getConstDataByTypeCode(typeCode) {
106
+ return this.constList.find((item) => item.code === typeCode)?.data?.result || [];
107
+ },
108
+ // 根据常量类名和编码获取常量值
109
+ getConstItemNameByType(typeCode, itemCode) {
110
+ const data = this.getConstDataByTypeCode(typeCode);
111
+ return data.find((item) => item.code === itemCode)?.name;
112
+ },
113
+ // 常量编码和名称转换
114
+ codeToName(code, type) {
115
+ return this.constList.find((x) => x.code === type).data.result.find((x) => x.code === code)?.name;
116
+ },
117
+ // 根据字典类型获取字典数据
118
+ getDictDataByCode(dictTypeCode) {
119
+ return this.dictList[dictTypeCode] || [];
120
+ },
121
+ // 根据字典类型和值获取取字典项
122
+ getDictItemByValue(dictTypeCode, value) {
123
+ if (value != void 0 && value !== "") {
124
+ const _value = value.toString();
125
+ const ds = this.dictList[dictTypeCode] || [];
126
+ for (const element of ds) {
127
+ if (element.value == _value) {
128
+ return element;
129
+ }
130
+ }
131
+ }
132
+ return {};
133
+ },
134
+ // 根据字典类型和名称获取取字典项
135
+ getDictItemByLabel(dictTypeCode, label) {
136
+ if (label != void 0 && label !== "") {
137
+ const _label = label.toString();
138
+ const ds = this.dictList[dictTypeCode] || [];
139
+ for (const element of ds) {
140
+ if (element.label == _label) {
141
+ return element;
142
+ }
143
+ }
144
+ }
145
+ return {};
146
+ }
147
+ }
148
+ });
149
+ const setDictLangMessageAsync = async (dict) => {
150
+ const { t } = useI18n();
151
+ dict.langMessage = `message.dictType.${dict.typeCode}_${dict.value}`;
152
+ const text = t(dict.langMessage);
153
+ dict.label = text !== dict.langMessage && !text.endsWith(`${dict.typeCode}_${dict.value}`) ? text : dict.label;
154
+ };
155
+
156
+ export { useUserInfo };
@@ -0,0 +1,59 @@
1
+ function judgementSameArr(newArr, oldArr) {
2
+ const news = removeDuplicate(newArr);
3
+ const olds = removeDuplicate(oldArr);
4
+ let count = 0;
5
+ const leng = news.length;
6
+ for (let i in olds) {
7
+ for (let j in news) {
8
+ if (olds[i] === news[j]) count++;
9
+ }
10
+ }
11
+ return count === leng ? true : false;
12
+ }
13
+ function isObjectValueEqual(a, b) {
14
+ if (!a || !b) return false;
15
+ let aProps = Object.getOwnPropertyNames(a);
16
+ let bProps = Object.getOwnPropertyNames(b);
17
+ if (aProps.length != bProps.length) return false;
18
+ for (let i = 0; i < aProps.length; i++) {
19
+ let propName = aProps[i];
20
+ let propA = a[propName];
21
+ let propB = b[propName];
22
+ if (!b.hasOwnProperty(propName)) return false;
23
+ if (propA instanceof Object) {
24
+ if (!isObjectValueEqual(propA, propB)) return false;
25
+ } else if (propA !== propB) {
26
+ return false;
27
+ }
28
+ }
29
+ return true;
30
+ }
31
+ function removeDuplicate(arr, attr) {
32
+ if (!Object.keys(arr).length) {
33
+ return arr;
34
+ } else {
35
+ if (attr) {
36
+ const obj = {};
37
+ return arr.reduce((cur, item) => {
38
+ obj[item[attr]] ? "" : obj[item[attr]] = item[attr] && cur.push(item);
39
+ return cur;
40
+ }, []);
41
+ } else {
42
+ return [...new Set(arr)];
43
+ }
44
+ }
45
+ }
46
+ const clone = (value) => {
47
+ if (!value) return value;
48
+ if (Array.isArray(value)) return value.map((item) => clone(item));
49
+ if (typeof value === "object") {
50
+ return Object.fromEntries(
51
+ Object.entries(value).map(([k, v]) => {
52
+ return [k, clone(v)];
53
+ })
54
+ );
55
+ }
56
+ return value;
57
+ };
58
+
59
+ export { clone, isObjectValueEqual, judgementSameArr, removeDuplicate };
@@ -0,0 +1,57 @@
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--) {
9
+ u8arr[n] = bstr.charCodeAt(n);
10
+ }
11
+ return new Blob([u8arr], { type: mime });
12
+ }
13
+ function urlToBase64(url, mineType) {
14
+ return new Promise((resolve, reject) => {
15
+ let canvas = document.createElement("CANVAS");
16
+ const ctx = canvas.getContext("2d");
17
+ const img = new Image();
18
+ img.crossOrigin = "";
19
+ img.onload = function() {
20
+ if (!canvas || !ctx) {
21
+ return reject();
22
+ }
23
+ canvas.height = img.height;
24
+ canvas.width = img.width;
25
+ ctx.drawImage(img, 0, 0);
26
+ const dataURL = canvas.toDataURL(mineType || "image/png");
27
+ canvas = null;
28
+ resolve(dataURL);
29
+ };
30
+ img.src = url;
31
+ });
32
+ }
33
+ function fileToBase64(file) {
34
+ return new Promise((resolve, reject) => {
35
+ const reader = new FileReader();
36
+ reader.readAsDataURL(file);
37
+ reader.onload = () => resolve(reader.result);
38
+ reader.onerror = (error) => reject(error);
39
+ });
40
+ }
41
+ function base64ToFile(dataURL, fileName, mimeType = null) {
42
+ var arr = dataURL.split(",");
43
+ var defaultMimeType = arr[0].match(/:(.*?);/)[1];
44
+ var bStr = atob(arr[1]);
45
+ let n = bStr.length;
46
+ var u8arr = new Uint8Array(n);
47
+ while (n--) {
48
+ u8arr[n] = bStr.charCodeAt(n);
49
+ }
50
+ return new File([u8arr], fileName, { type: mimeType || defaultMimeType });
51
+ }
52
+ function blobToFile(blob, fileName, mimeType) {
53
+ if (mimeType == null) mimeType = blob.type;
54
+ return new File([blob], fileName, { type: mimeType });
55
+ }
56
+
57
+ export { base64ToFile, blobToFile, dataURLtoBlob, fileToBase64, urlToBase64 };