vue2-client 1.4.22 → 1.4.23

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 (89) hide show
  1. package/CHANGELOG.md +396 -392
  2. package/index.js +30 -30
  3. package/package.json +78 -78
  4. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +225 -225
  5. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +595 -595
  6. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +777 -777
  7. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +165 -165
  8. package/src/base-client/components/common/JSONToTree/jsontotree.vue +275 -275
  9. package/src/base-client/components/common/XAddForm/XAddForm.vue +354 -354
  10. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +327 -327
  11. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  12. package/src/base-client/components/common/XForm/XForm.vue +274 -274
  13. package/src/base-client/components/common/XFormTable/index.md +96 -96
  14. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  15. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
  16. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
  17. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  18. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  19. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
  20. package/src/base-client/plugins/AppData.js +73 -73
  21. package/src/base-client/plugins/GetLoginInfoService.js +179 -179
  22. package/src/base-client/plugins/PagedList.js +177 -177
  23. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  24. package/src/base-client/plugins/i18n-extend.js +32 -32
  25. package/src/components/Ellipsis/index.md +38 -38
  26. package/src/components/NumberInfo/index.md +43 -43
  27. package/src/components/STable/README.md +341 -341
  28. package/src/components/STable/index.js +318 -318
  29. package/src/components/Trend/index.md +45 -45
  30. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  31. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  32. package/src/components/form/FormRow.vue +52 -52
  33. package/src/components/index.js +36 -36
  34. package/src/components/menu/SideMenu.vue +62 -62
  35. package/src/components/menu/menu.js +273 -273
  36. package/src/components/setting/Setting.vue +235 -235
  37. package/src/components/table/StandardTable.vue +141 -141
  38. package/src/components/table/advance/ActionColumns.vue +158 -158
  39. package/src/components/table/advance/SearchArea.vue +355 -355
  40. package/src/components/tool/AStepItem.vue +60 -60
  41. package/src/components/tool/AvatarList.vue +68 -68
  42. package/src/components/tool/Drawer.vue +142 -142
  43. package/src/components/tool/TagSelect.vue +83 -83
  44. package/src/components/transition/PageToggleTransition.vue +97 -97
  45. package/src/config/replacer/resolve.config.js +67 -67
  46. package/src/layouts/AdminLayout.vue +174 -174
  47. package/src/layouts/SinglePageView.vue +93 -88
  48. package/src/layouts/header/AdminHeader.vue +104 -104
  49. package/src/layouts/header/HeaderNotice.vue +167 -167
  50. package/src/layouts/header/HeaderSearch.vue +67 -67
  51. package/src/layouts/header/InstitutionDetail.vue +181 -181
  52. package/src/layouts/tabs/TabsHead.vue +190 -190
  53. package/src/layouts/tabs/TabsView.vue +379 -379
  54. package/src/mock/goods/index.js +108 -108
  55. package/src/pages/CreateQueryPage.vue +65 -65
  56. package/src/pages/login/Login.vue +351 -351
  57. package/src/pages/report/ReportTable.js +124 -124
  58. package/src/pages/report/ReportTableHome.vue +28 -28
  59. package/src/pages/resourceManage/orgListManage.vue +98 -98
  60. package/src/pages/system/dictionary/index.vue +43 -43
  61. package/src/pages/system/file/index.vue +317 -317
  62. package/src/pages/system/monitor/loginInfor/index.vue +36 -36
  63. package/src/pages/system/monitor/operLog/index.vue +36 -36
  64. package/src/pages/system/queryParams/index.vue +43 -43
  65. package/src/router/async/config.async.js +27 -27
  66. package/src/router/async/router.map.js +65 -65
  67. package/src/router/index.js +27 -27
  68. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  69. package/src/services/api/LogDetailsViewApi.js +10 -10
  70. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  71. package/src/services/api/TicketDetailsViewApi.js +34 -34
  72. package/src/services/api/cas.js +64 -0
  73. package/src/services/api/commonTempTable.js +10 -10
  74. package/src/services/api/index.js +17 -17
  75. package/src/services/api/manage.js +8 -8
  76. package/src/services/apiService.js +14 -14
  77. package/src/services/user.js +53 -53
  78. package/src/store/modules/index.js +4 -4
  79. package/src/theme/default/nprogress.less +76 -76
  80. package/src/theme/default/style.less +47 -47
  81. package/src/utils/colors.js +103 -103
  82. package/src/utils/excel/Blob.js +180 -180
  83. package/src/utils/excel/Export2Excel.js +141 -141
  84. package/src/utils/formatter.js +68 -68
  85. package/src/utils/i18n.js +80 -80
  86. package/src/utils/routerUtil.js +364 -364
  87. package/src/utils/theme-color-replacer-extend.js +91 -91
  88. package/src/utils/themeUtil.js +100 -100
  89. package/src/utils/util.js +230 -230
@@ -1,10 +1,10 @@
1
- const CommonTempTable = {
2
- // 初始化子表
3
- initApplySubTable: '/api/af-system/logic/initApplySubTable',
4
- // 创建临时表,根据配置文件动态生成
5
- createTempTable: '/api/af-system/logic/createTempTable',
6
- // 向临时表中插入数据
7
- insertDataToTempTable: '/api/af-system/logic/insertDataToTempTable'
8
- }
9
-
10
- export { CommonTempTable }
1
+ const CommonTempTable = {
2
+ // 初始化子表
3
+ initApplySubTable: '/api/af-system/logic/initApplySubTable',
4
+ // 创建临时表,根据配置文件动态生成
5
+ createTempTable: '/api/af-system/logic/createTempTable',
6
+ // 向临时表中插入数据
7
+ insertDataToTempTable: '/api/af-system/logic/insertDataToTempTable'
8
+ }
9
+
10
+ export { CommonTempTable }
@@ -1,17 +1,17 @@
1
- import { commonApi, getColumnsJson, query, addOrModify, remove } from '@vue2-client/services/api/common'
2
- import { QueryParamsDetailsViewApi } from '@vue2-client/services/api/QueryParamsDetailsViewApi'
3
- import { DictionaryDetailsViewApi } from '@vue2-client/services/api/DictionaryDetailsViewApi'
4
- import { LogDetailsViewApi } from '@vue2-client/services/api/LogDetailsViewApi'
5
- import { manageApi } from '@vue2-client/services/api/manage'
6
- import { get, post } from '@vue2-client/services/api/restTools'
7
- import { TicketDetailsViewApi } from '@vue2-client/services/api/TicketDetailsViewApi'
8
-
9
- export {
10
- commonApi, getColumnsJson, query, addOrModify, remove,
11
- DictionaryDetailsViewApi,
12
- LogDetailsViewApi,
13
- manageApi,
14
- QueryParamsDetailsViewApi,
15
- get, post,
16
- TicketDetailsViewApi
17
- }
1
+ import { commonApi, getColumnsJson, query, addOrModify, remove } from '@vue2-client/services/api/common'
2
+ import { QueryParamsDetailsViewApi } from '@vue2-client/services/api/QueryParamsDetailsViewApi'
3
+ import { DictionaryDetailsViewApi } from '@vue2-client/services/api/DictionaryDetailsViewApi'
4
+ import { LogDetailsViewApi } from '@vue2-client/services/api/LogDetailsViewApi'
5
+ import { manageApi } from '@vue2-client/services/api/manage'
6
+ import { get, post } from '@vue2-client/services/api/restTools'
7
+ import { TicketDetailsViewApi } from '@vue2-client/services/api/TicketDetailsViewApi'
8
+
9
+ export {
10
+ commonApi, getColumnsJson, query, addOrModify, remove,
11
+ DictionaryDetailsViewApi,
12
+ LogDetailsViewApi,
13
+ manageApi,
14
+ QueryParamsDetailsViewApi,
15
+ get, post,
16
+ TicketDetailsViewApi
17
+ }
@@ -1,8 +1,8 @@
1
- const manageApi = {
2
- // 查询:获取字典键列表
3
- getDictionaryValue: '/api/af-system/logic/getDictionaryValue',
4
- // 查询:获取省市区街道三级分类
5
- getDivisionsOhChina: '/api/af-system/logic/getDivisionsOhChina'
6
- }
7
-
8
- export { manageApi }
1
+ const manageApi = {
2
+ // 查询:获取字典键列表
3
+ getDictionaryValue: '/api/af-system/logic/getDictionaryValue',
4
+ // 查询:获取省市区街道三级分类
5
+ getDivisionsOhChina: '/api/af-system/logic/getDivisionsOhChina'
6
+ }
7
+
8
+ export { manageApi }
@@ -1,14 +1,14 @@
1
- // 跨域代理前缀
2
- // const API_PROXY_PREFIX='/api'
3
- // const BASE_URL = process.env.NODE_ENV === 'production' ? process.env.VUE_APP_API_BASE_URL : API_PROXY_PREFIX
4
-
5
- module.exports = {
6
- LOGIN: `/rs/logic/getLogin`,
7
- V4_LOGIN: '/auth/login',
8
- V4_LOGOUT: '/auth/logout',
9
- V4_GET_INFO: '/api/af-system/logic/getInfo',
10
- ROUTES: `/rs/user/userLogin/智慧燃气`,
11
- SEARCH: `/rs/search`,
12
- GOODS: `/goods`,
13
- GOODS_COLUMNS: `/columns`
14
- }
1
+ // 跨域代理前缀
2
+ // const API_PROXY_PREFIX='/api'
3
+ // const BASE_URL = process.env.NODE_ENV === 'production' ? process.env.VUE_APP_API_BASE_URL : API_PROXY_PREFIX
4
+
5
+ module.exports = {
6
+ LOGIN: `/rs/logic/getLogin`,
7
+ V4_LOGIN: '/auth/login',
8
+ V4_LOGOUT: '/auth/logout',
9
+ V4_GET_INFO: '/api/af-system/logic/getInfo',
10
+ ROUTES: `/rs/user/userLogin/智慧燃气`,
11
+ SEARCH: `/rs/search`,
12
+ GOODS: `/goods`,
13
+ GOODS_COLUMNS: `/columns`
14
+ }
@@ -1,53 +1,53 @@
1
- import { LOGIN, ROUTES, V4_GET_INFO, V4_LOGIN, V4_LOGOUT } from '@vue2-client/services/apiService'
2
- import { request, METHOD, removeAuthorization } from '@vue2-client/utils/request'
3
-
4
- /**
5
- * 登录服务
6
- * @param name 账户名
7
- * @param password 账户密码
8
- * @returns {Promise<AxiosResponse<T>>}
9
- */
10
- export async function login (name, password) {
11
- return request(LOGIN, METHOD.POST, {
12
- name: name,
13
- password: password
14
- })
15
- }
16
-
17
- export async function V4Login (name, password) {
18
- return request(V4_LOGIN, METHOD.POST, {
19
- username: name,
20
- password: password
21
- })
22
- }
23
-
24
- export async function V4GetInfo () {
25
- return request(V4_GET_INFO, METHOD.POST, {})
26
- }
27
-
28
- export async function getRoutesConfig (value) {
29
- return request(ROUTES, METHOD.POST, value)
30
- }
31
-
32
- /**
33
- * 退出登录
34
- */
35
- export function logout () {
36
- return new Promise((resolve, reject) => {
37
- request(V4_LOGOUT, METHOD.DELETE, {}).then(() => {
38
- resolve()
39
- }).catch(error => {
40
- reject(error)
41
- }).finally(() => {
42
- localStorage.removeItem(process.env.VUE_APP_ROUTES_KEY)
43
- localStorage.removeItem(process.env.VUE_APP_PERMISSIONS_KEY)
44
- localStorage.removeItem(process.env.VUE_APP_ROLES_KEY)
45
- removeAuthorization()
46
- })
47
- })
48
- }
49
- export default {
50
- login,
51
- logout,
52
- getRoutesConfig
53
- }
1
+ import { LOGIN, ROUTES, V4_GET_INFO, V4_LOGIN, V4_LOGOUT } from '@vue2-client/services/apiService'
2
+ import { request, METHOD, removeAuthorization } from '@vue2-client/utils/request'
3
+
4
+ /**
5
+ * 登录服务
6
+ * @param name 账户名
7
+ * @param password 账户密码
8
+ * @returns {Promise<AxiosResponse<T>>}
9
+ */
10
+ export async function login (name, password) {
11
+ return request(LOGIN, METHOD.POST, {
12
+ name: name,
13
+ password: password
14
+ })
15
+ }
16
+
17
+ export async function V4Login (name, password) {
18
+ return request(V4_LOGIN, METHOD.POST, {
19
+ username: name,
20
+ password: password
21
+ })
22
+ }
23
+
24
+ export async function V4GetInfo () {
25
+ return request(V4_GET_INFO, METHOD.POST, {})
26
+ }
27
+
28
+ export async function getRoutesConfig (value) {
29
+ return request(ROUTES, METHOD.POST, value)
30
+ }
31
+
32
+ /**
33
+ * 退出登录
34
+ */
35
+ export function logout () {
36
+ return new Promise((resolve, reject) => {
37
+ request(V4_LOGOUT, METHOD.DELETE, {}).then(() => {
38
+ resolve()
39
+ }).catch(error => {
40
+ reject(error)
41
+ }).finally(() => {
42
+ localStorage.removeItem(process.env.VUE_APP_ROUTES_KEY)
43
+ localStorage.removeItem(process.env.VUE_APP_PERMISSIONS_KEY)
44
+ localStorage.removeItem(process.env.VUE_APP_ROLES_KEY)
45
+ removeAuthorization()
46
+ })
47
+ })
48
+ }
49
+ export default {
50
+ login,
51
+ logout,
52
+ getRoutesConfig
53
+ }
@@ -1,4 +1,4 @@
1
- import account from './account'
2
- import setting from './setting'
3
-
4
- export default { account, setting }
1
+ import account from './account'
2
+ import setting from './setting'
3
+
4
+ export default { account, setting }
@@ -1,76 +1,76 @@
1
- @import '~ant-design-vue/lib/style/themes/default';
2
-
3
- /* Make clicks pass-through */
4
- #nprogress {
5
- pointer-events: none;
6
- }
7
-
8
- #nprogress .bar {
9
- background: @primary-color;
10
-
11
- position: fixed;
12
- z-index: 1031;
13
- top: 0;
14
- left: 0;
15
-
16
- width: 100%;
17
- height: 2px;
18
- }
19
-
20
- /* Fancy blur effect */
21
- #nprogress .peg {
22
- display: block;
23
- position: absolute;
24
- right: 0;
25
- width: 100px;
26
- height: 100%;
27
- box-shadow: 0 0 10px @primary-color, 0 0 5px @primary-color;
28
- opacity: 1.0;
29
-
30
- -webkit-transform: rotate(3deg) translate(0px, -4px);
31
- -ms-transform: rotate(3deg) translate(0px, -4px);
32
- transform: rotate(3deg) translate(0px, -4px);
33
- }
34
-
35
- /* Remove these to get rid of the spinner */
36
- #nprogress .spinner {
37
- display: block;
38
- position: fixed;
39
- z-index: 1031;
40
- top: 15px;
41
- right: 15px;
42
- }
43
-
44
- #nprogress .spinner-icon {
45
- width: 18px;
46
- height: 18px;
47
- box-sizing: border-box;
48
-
49
- border: solid 2px transparent;
50
- border-top-color: @primary-color;
51
- border-left-color: @primary-color;
52
- border-radius: 50%;
53
-
54
- -webkit-animation: nprogress-spinner 400ms linear infinite;
55
- animation: nprogress-spinner 400ms linear infinite;
56
- }
57
-
58
- .nprogress-custom-parent {
59
- overflow: hidden;
60
- position: relative;
61
- }
62
-
63
- .nprogress-custom-parent #nprogress .spinner,
64
- .nprogress-custom-parent #nprogress .bar {
65
- position: absolute;
66
- }
67
-
68
- @-webkit-keyframes nprogress-spinner {
69
- 0% { -webkit-transform: rotate(0deg); }
70
- 100% { -webkit-transform: rotate(360deg); }
71
- }
72
- @keyframes nprogress-spinner {
73
- 0% { transform: rotate(0deg); }
74
- 100% { transform: rotate(360deg); }
75
- }
76
-
1
+ @import '~ant-design-vue/lib/style/themes/default';
2
+
3
+ /* Make clicks pass-through */
4
+ #nprogress {
5
+ pointer-events: none;
6
+ }
7
+
8
+ #nprogress .bar {
9
+ background: @primary-color;
10
+
11
+ position: fixed;
12
+ z-index: 1031;
13
+ top: 0;
14
+ left: 0;
15
+
16
+ width: 100%;
17
+ height: 2px;
18
+ }
19
+
20
+ /* Fancy blur effect */
21
+ #nprogress .peg {
22
+ display: block;
23
+ position: absolute;
24
+ right: 0;
25
+ width: 100px;
26
+ height: 100%;
27
+ box-shadow: 0 0 10px @primary-color, 0 0 5px @primary-color;
28
+ opacity: 1.0;
29
+
30
+ -webkit-transform: rotate(3deg) translate(0px, -4px);
31
+ -ms-transform: rotate(3deg) translate(0px, -4px);
32
+ transform: rotate(3deg) translate(0px, -4px);
33
+ }
34
+
35
+ /* Remove these to get rid of the spinner */
36
+ #nprogress .spinner {
37
+ display: block;
38
+ position: fixed;
39
+ z-index: 1031;
40
+ top: 15px;
41
+ right: 15px;
42
+ }
43
+
44
+ #nprogress .spinner-icon {
45
+ width: 18px;
46
+ height: 18px;
47
+ box-sizing: border-box;
48
+
49
+ border: solid 2px transparent;
50
+ border-top-color: @primary-color;
51
+ border-left-color: @primary-color;
52
+ border-radius: 50%;
53
+
54
+ -webkit-animation: nprogress-spinner 400ms linear infinite;
55
+ animation: nprogress-spinner 400ms linear infinite;
56
+ }
57
+
58
+ .nprogress-custom-parent {
59
+ overflow: hidden;
60
+ position: relative;
61
+ }
62
+
63
+ .nprogress-custom-parent #nprogress .spinner,
64
+ .nprogress-custom-parent #nprogress .bar {
65
+ position: absolute;
66
+ }
67
+
68
+ @-webkit-keyframes nprogress-spinner {
69
+ 0% { -webkit-transform: rotate(0deg); }
70
+ 100% { -webkit-transform: rotate(360deg); }
71
+ }
72
+ @keyframes nprogress-spinner {
73
+ 0% { transform: rotate(0deg); }
74
+ 100% { transform: rotate(360deg); }
75
+ }
76
+
@@ -1,47 +1,47 @@
1
- .week-mode{
2
- overflow: hidden;
3
- filter: invert(80%);
4
- }
5
- .beauty-scroll{
6
- scrollbar-color: @primary-color @primary-2;
7
- scrollbar-width: thin;
8
- -ms-overflow-style:none;
9
- position: relative;
10
- &::-webkit-scrollbar{
11
- width: 3px;
12
- height: 1px;
13
- }
14
- &::-webkit-scrollbar-thumb {
15
- border-radius: 3px;
16
- background: @primary-color;
17
- }
18
- &::-webkit-scrollbar-track {
19
- -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,0);
20
- border-radius: 3px;
21
- background: @primary-3;
22
- }
23
- }
24
- .split-right{
25
- &:not(:last-child) {
26
- border-right: 1px solid rgba(98, 98, 98, 0.2);
27
- }
28
- }
29
- .disabled{
30
- cursor: not-allowed;
31
- color: @disabled-color;
32
- pointer-events: none;
33
- }
34
-
35
- ::-webkit-scrollbar{
36
- width: 5px;
37
- height: 5px;
38
- }
39
- ::-webkit-scrollbar-thumb {
40
- border-radius: 3px;
41
- background: @primary-3;
42
- }
43
- ::-webkit-scrollbar-track {
44
- -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,0);
45
- border-radius: 3px;
46
- background: @primary-1;
47
- }
1
+ .week-mode{
2
+ overflow: hidden;
3
+ filter: invert(80%);
4
+ }
5
+ .beauty-scroll{
6
+ scrollbar-color: @primary-color @primary-2;
7
+ scrollbar-width: thin;
8
+ -ms-overflow-style:none;
9
+ position: relative;
10
+ &::-webkit-scrollbar{
11
+ width: 3px;
12
+ height: 1px;
13
+ }
14
+ &::-webkit-scrollbar-thumb {
15
+ border-radius: 3px;
16
+ background: @primary-color;
17
+ }
18
+ &::-webkit-scrollbar-track {
19
+ -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,0);
20
+ border-radius: 3px;
21
+ background: @primary-3;
22
+ }
23
+ }
24
+ .split-right{
25
+ &:not(:last-child) {
26
+ border-right: 1px solid rgba(98, 98, 98, 0.2);
27
+ }
28
+ }
29
+ .disabled{
30
+ cursor: not-allowed;
31
+ color: @disabled-color;
32
+ pointer-events: none;
33
+ }
34
+
35
+ ::-webkit-scrollbar{
36
+ width: 5px;
37
+ height: 5px;
38
+ }
39
+ ::-webkit-scrollbar-thumb {
40
+ border-radius: 3px;
41
+ background: @primary-3;
42
+ }
43
+ ::-webkit-scrollbar-track {
44
+ -webkit-box-shadow: inset 0 0 1px rgba(0,0,0,0);
45
+ border-radius: 3px;
46
+ background: @primary-1;
47
+ }
@@ -1,103 +1,103 @@
1
- const varyColor = require('webpack-theme-color-replacer/client/varyColor')
2
- const { generate } = require('@ant-design/colors')
3
- const { ADMIN, ANTD } = require('../config/default')
4
- const Config = require('../config')
5
-
6
- const themeMode = ADMIN.theme.mode
7
-
8
- // 获取 ant design 色系
9
- function getAntdColors (color, mode) {
10
- const options = mode && (mode === themeMode.NIGHT) ? { theme: 'dark' } : undefined
11
- return generate(color, options)
12
- }
13
-
14
- // 获取功能性颜色
15
- function getFunctionalColors (mode) {
16
- const options = mode && (mode === themeMode.NIGHT) ? { theme: 'dark' } : undefined
17
- let { success, warning, error } = ANTD.primary
18
- const { success: s1, warning: w1, error: e1 } = Config.theme
19
- success = success && s1
20
- warning = success && w1
21
- error = success && e1
22
- const successColors = generate(success, options)
23
- const warningColors = generate(warning, options)
24
- const errorColors = generate(error, options)
25
- return {
26
- success: successColors,
27
- warning: warningColors,
28
- error: errorColors
29
- }
30
- }
31
-
32
- // 获取菜单色系
33
- function getMenuColors (color, mode) {
34
- if (mode === themeMode.NIGHT) {
35
- return ANTD.primary.night.menuColors
36
- } else if (color === ANTD.primary.color) {
37
- return ANTD.primary.dark.menuColors
38
- } else {
39
- return [varyColor.darken(color, 0.93), varyColor.darken(color, 0.83), varyColor.darken(color, 0.73)]
40
- }
41
- }
42
-
43
- // 获取主题模式切换色系
44
- function getThemeToggleColors (color, mode) {
45
- // 主色系
46
- const mainColors = getAntdColors(color, mode)
47
- const primary = mainColors[5]
48
- // 辅助色系,因为 antd 目前没针对夜间模式设计,所以增加辅助色系以保证夜间模式的正常切换
49
- const subColors = getAntdColors(primary, themeMode.LIGHT)
50
- // 菜单色系
51
- const menuColors = getMenuColors(color, mode)
52
- // 内容色系(包含背景色、文字颜色等)
53
- const themeCfg = ANTD.theme[mode]
54
- let contentColors = Object.keys(themeCfg)
55
- .map(key => themeCfg[key])
56
- .map(color => isHex(color) ? color : toNum3(color).join(','))
57
- // 内容色去重
58
- contentColors = [...new Set(contentColors)]
59
- // rgb 格式的主题色
60
- const rgbColors = [toNum3(primary).join(',')]
61
- const functionalColors = getFunctionalColors(mode)
62
- return { primary, mainColors, subColors, menuColors, contentColors, rgbColors, functionalColors }
63
- }
64
-
65
- function toNum3 (color) {
66
- if (isHex(color)) {
67
- return varyColor.toNum3(color)
68
- }
69
- let colorStr = ''
70
- if (isRgb(color)) {
71
- colorStr = color.slice(5, color.length)
72
- } else if (isRgba(color)) {
73
- colorStr = color.slice(6, color.lastIndexOf(','))
74
- }
75
- const rgb = colorStr.split(',')
76
- const r = parseInt(rgb[0])
77
- const g = parseInt(rgb[1])
78
- const b = parseInt(rgb[2])
79
- return [r, g, b]
80
- }
81
-
82
- function isHex (color) {
83
- return color.length >= 4 && color[0] === '#'
84
- }
85
-
86
- function isRgb (color) {
87
- return color.length >= 10 && color.slice(0, 3) === 'rgb'
88
- }
89
-
90
- function isRgba (color) {
91
- return color.length >= 13 && color.slice(0, 4) === 'rgba'
92
- }
93
-
94
- module.exports = {
95
- isHex,
96
- isRgb,
97
- isRgba,
98
- toNum3,
99
- getAntdColors,
100
- getMenuColors,
101
- getThemeToggleColors,
102
- getFunctionalColors
103
- }
1
+ const varyColor = require('webpack-theme-color-replacer/client/varyColor')
2
+ const { generate } = require('@ant-design/colors')
3
+ const { ADMIN, ANTD } = require('../config/default')
4
+ const Config = require('../config')
5
+
6
+ const themeMode = ADMIN.theme.mode
7
+
8
+ // 获取 ant design 色系
9
+ function getAntdColors (color, mode) {
10
+ const options = mode && (mode === themeMode.NIGHT) ? { theme: 'dark' } : undefined
11
+ return generate(color, options)
12
+ }
13
+
14
+ // 获取功能性颜色
15
+ function getFunctionalColors (mode) {
16
+ const options = mode && (mode === themeMode.NIGHT) ? { theme: 'dark' } : undefined
17
+ let { success, warning, error } = ANTD.primary
18
+ const { success: s1, warning: w1, error: e1 } = Config.theme
19
+ success = success && s1
20
+ warning = success && w1
21
+ error = success && e1
22
+ const successColors = generate(success, options)
23
+ const warningColors = generate(warning, options)
24
+ const errorColors = generate(error, options)
25
+ return {
26
+ success: successColors,
27
+ warning: warningColors,
28
+ error: errorColors
29
+ }
30
+ }
31
+
32
+ // 获取菜单色系
33
+ function getMenuColors (color, mode) {
34
+ if (mode === themeMode.NIGHT) {
35
+ return ANTD.primary.night.menuColors
36
+ } else if (color === ANTD.primary.color) {
37
+ return ANTD.primary.dark.menuColors
38
+ } else {
39
+ return [varyColor.darken(color, 0.93), varyColor.darken(color, 0.83), varyColor.darken(color, 0.73)]
40
+ }
41
+ }
42
+
43
+ // 获取主题模式切换色系
44
+ function getThemeToggleColors (color, mode) {
45
+ // 主色系
46
+ const mainColors = getAntdColors(color, mode)
47
+ const primary = mainColors[5]
48
+ // 辅助色系,因为 antd 目前没针对夜间模式设计,所以增加辅助色系以保证夜间模式的正常切换
49
+ const subColors = getAntdColors(primary, themeMode.LIGHT)
50
+ // 菜单色系
51
+ const menuColors = getMenuColors(color, mode)
52
+ // 内容色系(包含背景色、文字颜色等)
53
+ const themeCfg = ANTD.theme[mode]
54
+ let contentColors = Object.keys(themeCfg)
55
+ .map(key => themeCfg[key])
56
+ .map(color => isHex(color) ? color : toNum3(color).join(','))
57
+ // 内容色去重
58
+ contentColors = [...new Set(contentColors)]
59
+ // rgb 格式的主题色
60
+ const rgbColors = [toNum3(primary).join(',')]
61
+ const functionalColors = getFunctionalColors(mode)
62
+ return { primary, mainColors, subColors, menuColors, contentColors, rgbColors, functionalColors }
63
+ }
64
+
65
+ function toNum3 (color) {
66
+ if (isHex(color)) {
67
+ return varyColor.toNum3(color)
68
+ }
69
+ let colorStr = ''
70
+ if (isRgb(color)) {
71
+ colorStr = color.slice(5, color.length)
72
+ } else if (isRgba(color)) {
73
+ colorStr = color.slice(6, color.lastIndexOf(','))
74
+ }
75
+ const rgb = colorStr.split(',')
76
+ const r = parseInt(rgb[0])
77
+ const g = parseInt(rgb[1])
78
+ const b = parseInt(rgb[2])
79
+ return [r, g, b]
80
+ }
81
+
82
+ function isHex (color) {
83
+ return color.length >= 4 && color[0] === '#'
84
+ }
85
+
86
+ function isRgb (color) {
87
+ return color.length >= 10 && color.slice(0, 3) === 'rgb'
88
+ }
89
+
90
+ function isRgba (color) {
91
+ return color.length >= 13 && color.slice(0, 4) === 'rgba'
92
+ }
93
+
94
+ module.exports = {
95
+ isHex,
96
+ isRgb,
97
+ isRgba,
98
+ toNum3,
99
+ getAntdColors,
100
+ getMenuColors,
101
+ getThemeToggleColors,
102
+ getFunctionalColors
103
+ }