vue2-client 1.5.21 → 1.5.22

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 (100) hide show
  1. package/CHANGELOG.md +522 -519
  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 +667 -667
  6. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +508 -508
  7. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +140 -140
  8. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +165 -165
  9. package/src/base-client/components/common/JSONToTree/jsontotree.vue +275 -275
  10. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  11. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +109 -109
  12. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  13. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +807 -807
  14. package/src/base-client/components/ticket/TicketDetailsView/index.md +29 -29
  15. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +260 -260
  16. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
  17. package/src/base-client/components/ticket/TicketSubmitSuccessView/index.md +29 -29
  18. package/src/base-client/plugins/GetLoginInfoService.js +179 -179
  19. package/src/base-client/plugins/PagedList.js +177 -177
  20. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  21. package/src/base-client/plugins/i18n-extend.js +32 -32
  22. package/src/components/Ellipsis/Ellipsis.vue +65 -65
  23. package/src/components/Ellipsis/index.md +38 -38
  24. package/src/components/NumberInfo/index.md +43 -43
  25. package/src/components/STable/README.md +341 -341
  26. package/src/components/STable/index.js +318 -318
  27. package/src/components/Trend/index.md +45 -45
  28. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  29. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  30. package/src/components/exception/ExceptionPage.vue +70 -70
  31. package/src/components/form/FormRow.vue +52 -52
  32. package/src/components/index.js +36 -36
  33. package/src/components/menu/SideMenu.vue +62 -62
  34. package/src/components/menu/menu.js +273 -273
  35. package/src/components/page/header/index.less +40 -40
  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/default/admin.config.js +18 -18
  46. package/src/config/default/setting.config.js +44 -44
  47. package/src/config/replacer/resolve.config.js +67 -67
  48. package/src/layouts/AdminLayout.vue +174 -174
  49. package/src/layouts/CommonLayout.vue +42 -42
  50. package/src/layouts/ComponentLayoutOne.vue +47 -47
  51. package/src/layouts/PageLayout.vue +151 -151
  52. package/src/layouts/SinglePageView.vue +111 -111
  53. package/src/layouts/footer/PageFooter.vue +49 -49
  54. package/src/layouts/header/AdminHeader.vue +104 -104
  55. package/src/layouts/header/HeaderAvatar.vue +64 -61
  56. package/src/layouts/header/HeaderNotice.vue +176 -176
  57. package/src/layouts/header/HeaderSearch.vue +67 -67
  58. package/src/layouts/header/InstitutionDetail.vue +181 -181
  59. package/src/layouts/header/index.less +92 -92
  60. package/src/layouts/tabs/TabsHead.vue +190 -190
  61. package/src/layouts/tabs/TabsView.vue +379 -379
  62. package/src/mock/goods/index.js +108 -108
  63. package/src/pages/exception/404.vue +25 -25
  64. package/src/pages/login/Login.vue +363 -363
  65. package/src/pages/report/ReportTable.js +124 -124
  66. package/src/pages/report/ReportTableHome.vue +28 -28
  67. package/src/pages/resourceManage/orgListManage.vue +98 -98
  68. package/src/pages/system/dictionary/index.vue +43 -43
  69. package/src/pages/system/file/index.vue +317 -317
  70. package/src/pages/system/monitor/loginInfor/index.vue +36 -36
  71. package/src/pages/system/monitor/operLog/index.vue +36 -36
  72. package/src/pages/system/queryParams/index.vue +43 -43
  73. package/src/pages/system/settings/index.vue +126 -0
  74. package/src/pages/system/settings/modifyPassword.vue +109 -0
  75. package/src/router/async/config.async.js +28 -27
  76. package/src/router/async/router.map.js +68 -68
  77. package/src/router/index.js +27 -27
  78. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  79. package/src/services/api/LogDetailsViewApi.js +10 -10
  80. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  81. package/src/services/api/TicketDetailsViewApi.js +34 -34
  82. package/src/services/api/cas.js +79 -79
  83. package/src/services/api/commonTempTable.js +10 -10
  84. package/src/services/api/index.js +17 -17
  85. package/src/services/api/logininfor/index.js +6 -6
  86. package/src/services/api/manage.js +8 -8
  87. package/src/services/apiService.js +14 -13
  88. package/src/services/user.js +64 -53
  89. package/src/store/modules/index.js +4 -4
  90. package/src/theme/default/nprogress.less +76 -76
  91. package/src/theme/default/style.less +47 -47
  92. package/src/utils/colors.js +107 -107
  93. package/src/utils/excel/Blob.js +180 -180
  94. package/src/utils/excel/Export2Excel.js +141 -141
  95. package/src/utils/formatter.js +68 -68
  96. package/src/utils/i18n.js +80 -80
  97. package/src/utils/theme-color-replacer-extend.js +91 -91
  98. package/src/utils/themeUtil.js +100 -100
  99. package/src/utils/util.js +230 -230
  100. package/vue.config.js +106 -106
@@ -1,68 +1,68 @@
1
- /**
2
- * 把对象按照 js配置文件的格式进行格式化
3
- * @param obj 格式化的对象
4
- * @param dep 层级,此项无需传值
5
- * @returns {string}
6
- */
7
- function formatConfig (obj, dep) {
8
- dep = dep || 1
9
- const LN = '\n'; const TAB = ' '
10
- let indent = ''
11
- for (let i = 0; i < dep; i++) {
12
- indent += TAB
13
- }
14
- let isArray = false; let arrayLastIsObj = false
15
- let str = ''; let prefix = '{'; let subfix = '}'
16
- if (Array.isArray(obj)) {
17
- isArray = true
18
- prefix = '['
19
- subfix = ']'
20
- str = obj.map((item, index) => {
21
- let format = ''
22
- if (typeof item == 'function') {
23
- //
24
- } else if (typeof item == 'object') {
25
- arrayLastIsObj = true
26
- format = `${LN}${indent}${formatConfig(item, dep + 1)},`
27
- } else if ((typeof item == 'number' && !isNaN(item)) || typeof item == 'boolean') {
28
- format = `${item},`
29
- } else if (typeof item == 'string') {
30
- format = `'${item}',`
31
- }
32
- if (index === obj.length - 1) {
33
- format = format.substring(0, format.length - 1)
34
- } else {
35
- arrayLastIsObj = false
36
- }
37
- return format
38
- }).join('')
39
- } else if (typeof obj != 'function' && typeof obj == 'object') {
40
- str = Object.keys(obj).map((key, index, keys) => {
41
- const val = obj[key]
42
- let format = ''
43
- if (typeof val == 'function') {
44
- //
45
- } else if (typeof val == 'object') {
46
- format = `${LN}${indent}${key}: ${formatConfig(val, dep + 1)},`
47
- } else if ((typeof val == 'number' && !isNaN(val)) || typeof val == 'boolean') {
48
- format = `${LN}${indent}${key}: ${val},`
49
- } else if (typeof val == 'string') {
50
- format = `${LN}${indent}${key}: '${val}',`
51
- }
52
- if (index === keys.length - 1) {
53
- format = format.substring(0, format.length - 1)
54
- }
55
- return format
56
- }).join('')
57
- }
58
- const len = TAB.length
59
- if (indent.length >= len) {
60
- indent = indent.substring(0, indent.length - len)
61
- }
62
- if (!isArray || arrayLastIsObj) {
63
- subfix = LN + indent + subfix
64
- }
65
- return `${prefix}${str}${subfix}`
66
- }
67
-
68
- module.exports = { formatConfig }
1
+ /**
2
+ * 把对象按照 js配置文件的格式进行格式化
3
+ * @param obj 格式化的对象
4
+ * @param dep 层级,此项无需传值
5
+ * @returns {string}
6
+ */
7
+ function formatConfig (obj, dep) {
8
+ dep = dep || 1
9
+ const LN = '\n'; const TAB = ' '
10
+ let indent = ''
11
+ for (let i = 0; i < dep; i++) {
12
+ indent += TAB
13
+ }
14
+ let isArray = false; let arrayLastIsObj = false
15
+ let str = ''; let prefix = '{'; let subfix = '}'
16
+ if (Array.isArray(obj)) {
17
+ isArray = true
18
+ prefix = '['
19
+ subfix = ']'
20
+ str = obj.map((item, index) => {
21
+ let format = ''
22
+ if (typeof item == 'function') {
23
+ //
24
+ } else if (typeof item == 'object') {
25
+ arrayLastIsObj = true
26
+ format = `${LN}${indent}${formatConfig(item, dep + 1)},`
27
+ } else if ((typeof item == 'number' && !isNaN(item)) || typeof item == 'boolean') {
28
+ format = `${item},`
29
+ } else if (typeof item == 'string') {
30
+ format = `'${item}',`
31
+ }
32
+ if (index === obj.length - 1) {
33
+ format = format.substring(0, format.length - 1)
34
+ } else {
35
+ arrayLastIsObj = false
36
+ }
37
+ return format
38
+ }).join('')
39
+ } else if (typeof obj != 'function' && typeof obj == 'object') {
40
+ str = Object.keys(obj).map((key, index, keys) => {
41
+ const val = obj[key]
42
+ let format = ''
43
+ if (typeof val == 'function') {
44
+ //
45
+ } else if (typeof val == 'object') {
46
+ format = `${LN}${indent}${key}: ${formatConfig(val, dep + 1)},`
47
+ } else if ((typeof val == 'number' && !isNaN(val)) || typeof val == 'boolean') {
48
+ format = `${LN}${indent}${key}: ${val},`
49
+ } else if (typeof val == 'string') {
50
+ format = `${LN}${indent}${key}: '${val}',`
51
+ }
52
+ if (index === keys.length - 1) {
53
+ format = format.substring(0, format.length - 1)
54
+ }
55
+ return format
56
+ }).join('')
57
+ }
58
+ const len = TAB.length
59
+ if (indent.length >= len) {
60
+ indent = indent.substring(0, indent.length - len)
61
+ }
62
+ if (!isArray || arrayLastIsObj) {
63
+ subfix = LN + indent + subfix
64
+ }
65
+ return `${prefix}${str}${subfix}`
66
+ }
67
+
68
+ module.exports = { formatConfig }
package/src/utils/i18n.js CHANGED
@@ -1,80 +1,80 @@
1
- import Vue from 'vue'
2
- import VueI18n from 'vue-i18n'
3
- import routesI18n from '@vue2-client/router/i18n'
4
- import './Objects'
5
- import { getI18nKey } from '@vue2-client/utils/routerUtil'
6
-
7
- /**
8
- * 创建 i18n 配置
9
- * @param locale 本地化语言
10
- * @param fallback 回退语言
11
- * @returns {VueI18n}
12
- */
13
- function initI18n (locale, fallback) {
14
- Vue.use(VueI18n)
15
- const i18nOptions = {
16
- locale,
17
- fallbackLocale: fallback,
18
- silentFallbackWarn: true
19
- }
20
- return new VueI18n(i18nOptions)
21
- }
22
-
23
- /**
24
- * 根据 router options 配置生成 国际化语言
25
- * @param lang
26
- * @param routes
27
- * @param valueKey
28
- * @returns {*}
29
- */
30
- function generateI18n (lang, routes, valueKey) {
31
- routes.forEach(route => {
32
- const keys = getI18nKey(route.fullPath).split('.')
33
- const value = valueKey === 'path' ? route[valueKey].split('/').filter(item => !item.startsWith(':') && item !== '').join('.') : route[valueKey]
34
- lang.assignProps(keys, value)
35
- if (route.children) {
36
- generateI18n(lang, route.children, valueKey)
37
- }
38
- })
39
- return lang
40
- }
41
-
42
- /**
43
- * 格式化 router.options.routes,生成 fullPath
44
- * @param routes
45
- * @param parentPath
46
- */
47
- function formatFullPath (routes, parentPath = '') {
48
- routes.forEach(route => {
49
- const isFullPath = route.path.substring(0, 1) === '/'
50
- route.fullPath = isFullPath ? route.path : (parentPath === '/' ? parentPath + route.path : parentPath + '/' + route.path)
51
- if (route.children) {
52
- formatFullPath(route.children, route.fullPath)
53
- }
54
- })
55
- }
56
-
57
- /**
58
- * 从路由提取国际化数据
59
- * @param i18n
60
- * @param routes
61
- */
62
- function mergeI18nFromRoutes (i18n, routes) {
63
- formatFullPath(routes)
64
- // eslint-disable-next-line no-new-object
65
- const CN = generateI18n({}, routes, 'name')
66
- // eslint-disable-next-line no-new-object
67
- const US = generateI18n({}, routes, 'path')
68
- i18n.mergeLocaleMessage('CN', CN)
69
- i18n.mergeLocaleMessage('US', US)
70
- const messages = routesI18n.messages
71
- Object.keys(messages).forEach(lang => {
72
- i18n.mergeLocaleMessage(lang, messages[lang])
73
- })
74
- }
75
-
76
- export {
77
- initI18n,
78
- mergeI18nFromRoutes,
79
- formatFullPath
80
- }
1
+ import Vue from 'vue'
2
+ import VueI18n from 'vue-i18n'
3
+ import routesI18n from '@vue2-client/router/i18n'
4
+ import './Objects'
5
+ import { getI18nKey } from '@vue2-client/utils/routerUtil'
6
+
7
+ /**
8
+ * 创建 i18n 配置
9
+ * @param locale 本地化语言
10
+ * @param fallback 回退语言
11
+ * @returns {VueI18n}
12
+ */
13
+ function initI18n (locale, fallback) {
14
+ Vue.use(VueI18n)
15
+ const i18nOptions = {
16
+ locale,
17
+ fallbackLocale: fallback,
18
+ silentFallbackWarn: true
19
+ }
20
+ return new VueI18n(i18nOptions)
21
+ }
22
+
23
+ /**
24
+ * 根据 router options 配置生成 国际化语言
25
+ * @param lang
26
+ * @param routes
27
+ * @param valueKey
28
+ * @returns {*}
29
+ */
30
+ function generateI18n (lang, routes, valueKey) {
31
+ routes.forEach(route => {
32
+ const keys = getI18nKey(route.fullPath).split('.')
33
+ const value = valueKey === 'path' ? route[valueKey].split('/').filter(item => !item.startsWith(':') && item !== '').join('.') : route[valueKey]
34
+ lang.assignProps(keys, value)
35
+ if (route.children) {
36
+ generateI18n(lang, route.children, valueKey)
37
+ }
38
+ })
39
+ return lang
40
+ }
41
+
42
+ /**
43
+ * 格式化 router.options.routes,生成 fullPath
44
+ * @param routes
45
+ * @param parentPath
46
+ */
47
+ function formatFullPath (routes, parentPath = '') {
48
+ routes.forEach(route => {
49
+ const isFullPath = route.path.substring(0, 1) === '/'
50
+ route.fullPath = isFullPath ? route.path : (parentPath === '/' ? parentPath + route.path : parentPath + '/' + route.path)
51
+ if (route.children) {
52
+ formatFullPath(route.children, route.fullPath)
53
+ }
54
+ })
55
+ }
56
+
57
+ /**
58
+ * 从路由提取国际化数据
59
+ * @param i18n
60
+ * @param routes
61
+ */
62
+ function mergeI18nFromRoutes (i18n, routes) {
63
+ formatFullPath(routes)
64
+ // eslint-disable-next-line no-new-object
65
+ const CN = generateI18n({}, routes, 'name')
66
+ // eslint-disable-next-line no-new-object
67
+ const US = generateI18n({}, routes, 'path')
68
+ i18n.mergeLocaleMessage('CN', CN)
69
+ i18n.mergeLocaleMessage('US', US)
70
+ const messages = routesI18n.messages
71
+ Object.keys(messages).forEach(lang => {
72
+ i18n.mergeLocaleMessage(lang, messages[lang])
73
+ })
74
+ }
75
+
76
+ export {
77
+ initI18n,
78
+ mergeI18nFromRoutes,
79
+ formatFullPath
80
+ }
@@ -1,91 +1,91 @@
1
- const { cssResolve } = require('../config/replacer')
2
- // 修正 webpack-theme-color-replacer 插件提取的 css 结果
3
- function resolveCss (output, srcArr) {
4
- const regExps = []
5
- // 提取 resolve 配置中所有的正则配置
6
- Object.keys(cssResolve).forEach(key => {
7
- let isRegExp
8
- let reg = {}
9
- try {
10
- reg = eval(key)
11
- isRegExp = reg instanceof RegExp
12
- } catch (e) {
13
- isRegExp = false
14
- }
15
- if (isRegExp) {
16
- regExps.push([reg, cssResolve[key]])
17
- }
18
- })
19
-
20
- // 去重
21
- srcArr = dropDuplicate(srcArr)
22
-
23
- // 处理 css
24
- const outArr = []
25
- srcArr.forEach(text => {
26
- // 转换为 css 对象
27
- const cssObj = parseCssObj(text)
28
- // 根据selector匹配配置,匹配成功,则按配置处理 css
29
- if (cssResolve[cssObj.selector] !== undefined) {
30
- const cfg = cssResolve[cssObj.selector]
31
- if (cfg) {
32
- outArr.push(cfg.resolve(text, cssObj))
33
- }
34
- } else {
35
- let cssText = ''
36
- // 匹配不成功,则测试是否有匹配的正则配置,有则按正则对应的配置处理
37
- for (const regExp of regExps) {
38
- if (regExp[0].test(cssObj.selector)) {
39
- const cssCfg = regExp[1]
40
- cssText = cssCfg ? cssCfg.resolve(text, cssObj) : ''
41
- break
42
- }
43
- // 未匹配到正则,则设置 cssText 为默认的 css(即不处理)
44
- cssText = text
45
- }
46
- if (cssText !== '') {
47
- outArr.push(cssText)
48
- }
49
- }
50
- })
51
- output = outArr.join('\n')
52
- return output
53
- }
54
-
55
- // 数组去重
56
- function dropDuplicate (arr) {
57
- const map = {}
58
- const r = []
59
- for (const s of arr) {
60
- if (!map[s]) {
61
- r.push(s)
62
- map[s] = 1
63
- }
64
- }
65
- return r
66
- }
67
-
68
- /**
69
- * 从字符串解析 css 对象
70
- * @param cssText
71
- * @returns {{
72
- * name: String,
73
- * rules: Array[String],
74
- * toText: function
75
- * }}
76
- */
77
- function parseCssObj (cssText) {
78
- const css = {}
79
- const ruleIndex = cssText.indexOf('{')
80
- css.selector = cssText.substring(0, ruleIndex)
81
- const ruleBody = cssText.substring(ruleIndex + 1, cssText.length - 1)
82
- css.rules = ruleBody.split(';')
83
- css.toText = function () {
84
- let body = ''
85
- this.rules.forEach(item => { body += item + ';' })
86
- return `${this.selector}{${body}}`
87
- }
88
- return css
89
- }
90
-
91
- module.exports = { resolveCss }
1
+ const { cssResolve } = require('../config/replacer')
2
+ // 修正 webpack-theme-color-replacer 插件提取的 css 结果
3
+ function resolveCss (output, srcArr) {
4
+ const regExps = []
5
+ // 提取 resolve 配置中所有的正则配置
6
+ Object.keys(cssResolve).forEach(key => {
7
+ let isRegExp
8
+ let reg = {}
9
+ try {
10
+ reg = eval(key)
11
+ isRegExp = reg instanceof RegExp
12
+ } catch (e) {
13
+ isRegExp = false
14
+ }
15
+ if (isRegExp) {
16
+ regExps.push([reg, cssResolve[key]])
17
+ }
18
+ })
19
+
20
+ // 去重
21
+ srcArr = dropDuplicate(srcArr)
22
+
23
+ // 处理 css
24
+ const outArr = []
25
+ srcArr.forEach(text => {
26
+ // 转换为 css 对象
27
+ const cssObj = parseCssObj(text)
28
+ // 根据selector匹配配置,匹配成功,则按配置处理 css
29
+ if (cssResolve[cssObj.selector] !== undefined) {
30
+ const cfg = cssResolve[cssObj.selector]
31
+ if (cfg) {
32
+ outArr.push(cfg.resolve(text, cssObj))
33
+ }
34
+ } else {
35
+ let cssText = ''
36
+ // 匹配不成功,则测试是否有匹配的正则配置,有则按正则对应的配置处理
37
+ for (const regExp of regExps) {
38
+ if (regExp[0].test(cssObj.selector)) {
39
+ const cssCfg = regExp[1]
40
+ cssText = cssCfg ? cssCfg.resolve(text, cssObj) : ''
41
+ break
42
+ }
43
+ // 未匹配到正则,则设置 cssText 为默认的 css(即不处理)
44
+ cssText = text
45
+ }
46
+ if (cssText !== '') {
47
+ outArr.push(cssText)
48
+ }
49
+ }
50
+ })
51
+ output = outArr.join('\n')
52
+ return output
53
+ }
54
+
55
+ // 数组去重
56
+ function dropDuplicate (arr) {
57
+ const map = {}
58
+ const r = []
59
+ for (const s of arr) {
60
+ if (!map[s]) {
61
+ r.push(s)
62
+ map[s] = 1
63
+ }
64
+ }
65
+ return r
66
+ }
67
+
68
+ /**
69
+ * 从字符串解析 css 对象
70
+ * @param cssText
71
+ * @returns {{
72
+ * name: String,
73
+ * rules: Array[String],
74
+ * toText: function
75
+ * }}
76
+ */
77
+ function parseCssObj (cssText) {
78
+ const css = {}
79
+ const ruleIndex = cssText.indexOf('{')
80
+ css.selector = cssText.substring(0, ruleIndex)
81
+ const ruleBody = cssText.substring(ruleIndex + 1, cssText.length - 1)
82
+ css.rules = ruleBody.split(';')
83
+ css.toText = function () {
84
+ let body = ''
85
+ this.rules.forEach(item => { body += item + ';' })
86
+ return `${this.selector}{${body}}`
87
+ }
88
+ return css
89
+ }
90
+
91
+ module.exports = { resolveCss }
@@ -1,100 +1,100 @@
1
- const client = require('webpack-theme-color-replacer/client')
2
- const { theme } = require('../config')
3
- const { getMenuColors, getAntdColors, getThemeToggleColors, getFunctionalColors } = require('../utils/colors')
4
- const { ANTD } = require('../config/default')
5
-
6
- function getThemeColors (color, $theme) {
7
- const _color = color || theme.color
8
- const mode = $theme || theme.mode
9
- const replaceColors = getThemeToggleColors(_color, mode)
10
- return [
11
- ...replaceColors.mainColors,
12
- ...replaceColors.subColors,
13
- ...replaceColors.menuColors,
14
- ...replaceColors.contentColors,
15
- ...replaceColors.rgbColors,
16
- ...replaceColors.functionalColors.success,
17
- ...replaceColors.functionalColors.warning,
18
- ...replaceColors.functionalColors.error
19
- ]
20
- }
21
-
22
- function changeThemeColor (newColor, $theme) {
23
- return client.changer.changeColor({ newColors: getThemeColors(newColor, $theme) })
24
- }
25
-
26
- function modifyVars (color) {
27
- const _color = color || theme.color
28
- const palettes = getAntdColors(_color, theme.mode)
29
- const menuColors = getMenuColors(_color, theme.mode)
30
- const { success, warning, error } = getFunctionalColors(theme.mode)
31
- const primary = palettes[5]
32
- return {
33
- 'primary-color': primary,
34
- 'primary-1': palettes[0],
35
- 'primary-2': palettes[1],
36
- 'primary-3': palettes[2],
37
- 'primary-4': palettes[3],
38
- 'primary-5': palettes[4],
39
- 'primary-6': palettes[5],
40
- 'primary-7': palettes[6],
41
- 'primary-8': palettes[7],
42
- 'primary-9': palettes[8],
43
- 'primary-10': palettes[9],
44
- 'info-color': primary,
45
- 'success-color': success[5],
46
- 'warning-color': warning[5],
47
- 'error-color': error[5],
48
- 'alert-info-bg-color': palettes[0],
49
- 'alert-info-border-color': palettes[2],
50
- 'alert-success-bg-color': success[0],
51
- 'alert-success-border-color': success[2],
52
- 'alert-warning-bg-color': warning[0],
53
- 'alert-warning-border-color': warning[2],
54
- 'alert-error-bg-color': error[0],
55
- 'alert-error-border-color': error[2],
56
- 'processing-color': primary,
57
- 'menu-dark-submenu-bg': menuColors[0],
58
- 'layout-header-background': menuColors[1],
59
- 'layout-trigger-background': menuColors[2],
60
- 'btn-danger-bg': error[4],
61
- 'btn-danger-border': error[4],
62
- ...ANTD.theme[theme.mode]
63
- }
64
- }
65
-
66
- function loadLocalTheme (localSetting) {
67
- if (localSetting && localSetting.theme) {
68
- let { color, mode } = localSetting.theme
69
- color = color || theme.color
70
- mode = mode || theme.mode
71
- changeThemeColor(color, mode)
72
- }
73
- }
74
-
75
- /**
76
- * 获取本地保存的配置
77
- * @returns {Object}
78
- * @param loadTheme
79
- */
80
- function getLocalSetting (loadTheme) {
81
- let localSetting = {}
82
- try {
83
- const localSettingStr = localStorage.getItem(process.env.VUE_APP_SETTING_KEY)
84
- localSetting = JSON.parse(localSettingStr)
85
- } catch (e) {
86
- console.error(e)
87
- }
88
- if (loadTheme) {
89
- loadLocalTheme(localSetting)
90
- }
91
- return localSetting
92
- }
93
-
94
- module.exports = {
95
- getThemeColors,
96
- changeThemeColor,
97
- modifyVars,
98
- loadLocalTheme,
99
- getLocalSetting
100
- }
1
+ const client = require('webpack-theme-color-replacer/client')
2
+ const { theme } = require('../config')
3
+ const { getMenuColors, getAntdColors, getThemeToggleColors, getFunctionalColors } = require('../utils/colors')
4
+ const { ANTD } = require('../config/default')
5
+
6
+ function getThemeColors (color, $theme) {
7
+ const _color = color || theme.color
8
+ const mode = $theme || theme.mode
9
+ const replaceColors = getThemeToggleColors(_color, mode)
10
+ return [
11
+ ...replaceColors.mainColors,
12
+ ...replaceColors.subColors,
13
+ ...replaceColors.menuColors,
14
+ ...replaceColors.contentColors,
15
+ ...replaceColors.rgbColors,
16
+ ...replaceColors.functionalColors.success,
17
+ ...replaceColors.functionalColors.warning,
18
+ ...replaceColors.functionalColors.error
19
+ ]
20
+ }
21
+
22
+ function changeThemeColor (newColor, $theme) {
23
+ return client.changer.changeColor({ newColors: getThemeColors(newColor, $theme) })
24
+ }
25
+
26
+ function modifyVars (color) {
27
+ const _color = color || theme.color
28
+ const palettes = getAntdColors(_color, theme.mode)
29
+ const menuColors = getMenuColors(_color, theme.mode)
30
+ const { success, warning, error } = getFunctionalColors(theme.mode)
31
+ const primary = palettes[5]
32
+ return {
33
+ 'primary-color': primary,
34
+ 'primary-1': palettes[0],
35
+ 'primary-2': palettes[1],
36
+ 'primary-3': palettes[2],
37
+ 'primary-4': palettes[3],
38
+ 'primary-5': palettes[4],
39
+ 'primary-6': palettes[5],
40
+ 'primary-7': palettes[6],
41
+ 'primary-8': palettes[7],
42
+ 'primary-9': palettes[8],
43
+ 'primary-10': palettes[9],
44
+ 'info-color': primary,
45
+ 'success-color': success[5],
46
+ 'warning-color': warning[5],
47
+ 'error-color': error[5],
48
+ 'alert-info-bg-color': palettes[0],
49
+ 'alert-info-border-color': palettes[2],
50
+ 'alert-success-bg-color': success[0],
51
+ 'alert-success-border-color': success[2],
52
+ 'alert-warning-bg-color': warning[0],
53
+ 'alert-warning-border-color': warning[2],
54
+ 'alert-error-bg-color': error[0],
55
+ 'alert-error-border-color': error[2],
56
+ 'processing-color': primary,
57
+ 'menu-dark-submenu-bg': menuColors[0],
58
+ 'layout-header-background': menuColors[1],
59
+ 'layout-trigger-background': menuColors[2],
60
+ 'btn-danger-bg': error[4],
61
+ 'btn-danger-border': error[4],
62
+ ...ANTD.theme[theme.mode]
63
+ }
64
+ }
65
+
66
+ function loadLocalTheme (localSetting) {
67
+ if (localSetting && localSetting.theme) {
68
+ let { color, mode } = localSetting.theme
69
+ color = color || theme.color
70
+ mode = mode || theme.mode
71
+ changeThemeColor(color, mode)
72
+ }
73
+ }
74
+
75
+ /**
76
+ * 获取本地保存的配置
77
+ * @returns {Object}
78
+ * @param loadTheme
79
+ */
80
+ function getLocalSetting (loadTheme) {
81
+ let localSetting = {}
82
+ try {
83
+ const localSettingStr = localStorage.getItem(process.env.VUE_APP_SETTING_KEY)
84
+ localSetting = JSON.parse(localSettingStr)
85
+ } catch (e) {
86
+ console.error(e)
87
+ }
88
+ if (loadTheme) {
89
+ loadLocalTheme(localSetting)
90
+ }
91
+ return localSetting
92
+ }
93
+
94
+ module.exports = {
95
+ getThemeColors,
96
+ changeThemeColor,
97
+ modifyVars,
98
+ loadLocalTheme,
99
+ getLocalSetting
100
+ }