vue2-client 1.4.53 → 1.4.55

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 (98) hide show
  1. package/CHANGELOG.md +472 -463
  2. package/index.js +30 -30
  3. package/package.json +1 -1
  4. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +225 -225
  5. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +777 -777
  6. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +165 -165
  7. package/src/base-client/components/common/JSONToTree/jsontotree.vue +275 -275
  8. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +327 -327
  9. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  10. package/src/base-client/components/common/XForm/XForm.vue +274 -274
  11. package/src/base-client/components/common/XForm/XFormItem.vue +471 -471
  12. package/src/base-client/components/common/XFormTable/XFormTable.vue +560 -560
  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/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/PageLayout.vue +151 -151
  52. package/src/layouts/SinglePageView.vue +1 -0
  53. package/src/layouts/footer/PageFooter.vue +49 -49
  54. package/src/layouts/header/AdminHeader.vue +104 -104
  55. package/src/layouts/header/HeaderNotice.vue +167 -167
  56. package/src/layouts/header/HeaderSearch.vue +67 -67
  57. package/src/layouts/header/InstitutionDetail.vue +181 -181
  58. package/src/layouts/header/index.less +92 -92
  59. package/src/layouts/tabs/TabsHead.vue +190 -190
  60. package/src/layouts/tabs/TabsView.vue +379 -379
  61. package/src/mock/goods/index.js +108 -108
  62. package/src/pages/CreateQueryPage.vue +21 -2
  63. package/src/pages/ReportView.vue +50 -0
  64. package/src/pages/login/Login.vue +348 -345
  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/router/async/config.async.js +27 -27
  74. package/src/router/async/router.map.js +2 -0
  75. package/src/router/index.js +27 -27
  76. package/src/services/api/DictionaryDetailsViewApi.js +6 -6
  77. package/src/services/api/LogDetailsViewApi.js +10 -10
  78. package/src/services/api/QueryParamsDetailsViewApi.js +6 -6
  79. package/src/services/api/TicketDetailsViewApi.js +34 -34
  80. package/src/services/api/cas.js +79 -79
  81. package/src/services/api/commonTempTable.js +10 -10
  82. package/src/services/api/index.js +17 -17
  83. package/src/services/api/logininfor/index.js +6 -0
  84. package/src/services/api/manage.js +8 -8
  85. package/src/services/apiService.js +13 -13
  86. package/src/services/user.js +53 -53
  87. package/src/store/modules/index.js +4 -4
  88. package/src/theme/default/nprogress.less +76 -76
  89. package/src/theme/default/style.less +47 -47
  90. package/src/utils/colors.js +107 -107
  91. package/src/utils/excel/Blob.js +180 -180
  92. package/src/utils/excel/Export2Excel.js +141 -141
  93. package/src/utils/formatter.js +68 -68
  94. package/src/utils/i18n.js +80 -80
  95. package/src/utils/theme-color-replacer-extend.js +91 -91
  96. package/src/utils/themeUtil.js +100 -100
  97. package/src/utils/util.js +230 -230
  98. package/vue.config.js +7 -2
@@ -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
+ }