vue2-client 1.5.21 → 1.5.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 (101) 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/AppData.js +76 -75
  19. package/src/base-client/plugins/GetLoginInfoService.js +179 -179
  20. package/src/base-client/plugins/PagedList.js +177 -177
  21. package/src/base-client/plugins/compatible/LoginServiceOA.js +20 -20
  22. package/src/base-client/plugins/i18n-extend.js +32 -32
  23. package/src/components/Ellipsis/Ellipsis.vue +65 -65
  24. package/src/components/Ellipsis/index.md +38 -38
  25. package/src/components/NumberInfo/index.md +43 -43
  26. package/src/components/STable/README.md +341 -341
  27. package/src/components/STable/index.js +318 -318
  28. package/src/components/Trend/index.md +45 -45
  29. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  30. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  31. package/src/components/exception/ExceptionPage.vue +70 -70
  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/page/header/index.less +40 -40
  37. package/src/components/setting/Setting.vue +235 -235
  38. package/src/components/table/StandardTable.vue +141 -141
  39. package/src/components/table/advance/ActionColumns.vue +158 -158
  40. package/src/components/table/advance/SearchArea.vue +355 -355
  41. package/src/components/tool/AStepItem.vue +60 -60
  42. package/src/components/tool/AvatarList.vue +68 -68
  43. package/src/components/tool/Drawer.vue +142 -142
  44. package/src/components/tool/TagSelect.vue +83 -83
  45. package/src/components/transition/PageToggleTransition.vue +97 -97
  46. package/src/config/default/admin.config.js +18 -18
  47. package/src/config/default/setting.config.js +44 -44
  48. package/src/config/replacer/resolve.config.js +67 -67
  49. package/src/layouts/AdminLayout.vue +174 -174
  50. package/src/layouts/CommonLayout.vue +42 -42
  51. package/src/layouts/ComponentLayoutOne.vue +47 -47
  52. package/src/layouts/PageLayout.vue +151 -151
  53. package/src/layouts/SinglePageView.vue +111 -111
  54. package/src/layouts/footer/PageFooter.vue +49 -49
  55. package/src/layouts/header/AdminHeader.vue +104 -104
  56. package/src/layouts/header/HeaderAvatar.vue +64 -61
  57. package/src/layouts/header/HeaderNotice.vue +176 -176
  58. package/src/layouts/header/HeaderSearch.vue +67 -67
  59. package/src/layouts/header/InstitutionDetail.vue +181 -181
  60. package/src/layouts/header/index.less +92 -92
  61. package/src/layouts/tabs/TabsHead.vue +190 -190
  62. package/src/layouts/tabs/TabsView.vue +379 -379
  63. package/src/mock/goods/index.js +108 -108
  64. package/src/pages/exception/404.vue +25 -25
  65. package/src/pages/login/Login.vue +363 -363
  66. package/src/pages/report/ReportTable.js +124 -124
  67. package/src/pages/report/ReportTableHome.vue +28 -28
  68. package/src/pages/resourceManage/orgListManage.vue +98 -98
  69. package/src/pages/system/dictionary/index.vue +43 -43
  70. package/src/pages/system/file/index.vue +317 -317
  71. package/src/pages/system/monitor/loginInfor/index.vue +36 -36
  72. package/src/pages/system/monitor/operLog/index.vue +36 -36
  73. package/src/pages/system/queryParams/index.vue +43 -43
  74. package/src/pages/system/settings/index.vue +126 -0
  75. package/src/pages/system/settings/modifyPassword.vue +109 -0
  76. package/src/router/async/config.async.js +28 -27
  77. package/src/router/async/router.map.js +68 -68
  78. package/src/router/index.js +27 -27
  79. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  80. package/src/services/api/LogDetailsViewApi.js +10 -10
  81. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  82. package/src/services/api/TicketDetailsViewApi.js +34 -34
  83. package/src/services/api/cas.js +79 -79
  84. package/src/services/api/commonTempTable.js +10 -10
  85. package/src/services/api/index.js +17 -17
  86. package/src/services/api/logininfor/index.js +6 -6
  87. package/src/services/api/manage.js +8 -8
  88. package/src/services/apiService.js +14 -13
  89. package/src/services/user.js +64 -53
  90. package/src/store/modules/index.js +4 -4
  91. package/src/theme/default/nprogress.less +76 -76
  92. package/src/theme/default/style.less +47 -47
  93. package/src/utils/colors.js +107 -107
  94. package/src/utils/excel/Blob.js +180 -180
  95. package/src/utils/excel/Export2Excel.js +141 -141
  96. package/src/utils/formatter.js +68 -68
  97. package/src/utils/i18n.js +80 -80
  98. package/src/utils/theme-color-replacer-extend.js +91 -91
  99. package/src/utils/themeUtil.js +100 -100
  100. package/src/utils/util.js +230 -230
  101. 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
+ }