vue2-client 1.1.0 → 1.2.0

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 (132) hide show
  1. package/.eslintrc.js +81 -81
  2. package/README.md +4 -2
  3. package/babel.config.js +14 -14
  4. package/docs/index.md +29 -29
  5. package/{src/index.js → index.js} +8 -8
  6. package/jest.config.js +3 -3
  7. package/package.json +1 -1
  8. package/public/index.html +27 -27
  9. package/src/App.vue +93 -93
  10. package/src/base-client/all.js +26 -26
  11. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +4 -4
  12. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  13. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +3 -3
  14. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  15. package/src/base-client/components/common/CustomColumnsDrawer/index.md +46 -46
  16. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +3 -3
  17. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  18. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  19. package/src/base-client/components/common/XAddForm/XAddForm.vue +3 -3
  20. package/src/base-client/components/common/XAddForm/index.md +60 -60
  21. package/src/base-client/components/common/XBadge/index.md +39 -39
  22. package/src/base-client/components/common/XCard/index.md +43 -43
  23. package/src/base-client/components/common/XForm/XForm.vue +2 -2
  24. package/src/base-client/components/common/XForm/XFormItem.vue +1 -1
  25. package/src/base-client/components/common/XForm/index.md +3 -3
  26. package/src/base-client/components/common/XFormCol/index.md +35 -35
  27. package/src/base-client/components/common/XFormTable/XFormTable.vue +6 -6
  28. package/src/base-client/components/common/XFormTable/index.md +89 -89
  29. package/src/base-client/components/common/XTable/XTable.vue +3 -3
  30. package/src/base-client/components/common/XTable/index.md +3 -3
  31. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +105 -105
  32. package/src/base-client/components/iot/CustomerDetailsView/CustomerDetailsView.vue +3 -3
  33. package/src/base-client/components/iot/CustomerDetailsView/index.md +41 -41
  34. package/src/base-client/components/iot/DataAnalysisUser/DataAnalysisUser.vue +127 -127
  35. package/src/base-client/components/iot/DataAnalysisViewGD/DataAnalysisViewGD.vue +5 -5
  36. package/src/base-client/components/iot/DeviceBrandDetailsView/DeviceBrandDetailsView.vue +3 -3
  37. package/src/base-client/components/iot/DeviceDetailsView/DeviceDetailsView.vue +3 -3
  38. package/src/base-client/components/iot/DeviceDetailsView/index.md +43 -43
  39. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsCount.vue +1 -1
  40. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsException.vue +57 -57
  41. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsInstruct.vue +122 -122
  42. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsInstructOperate.vue +4 -4
  43. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsMain.vue +225 -225
  44. package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsRead.vue +135 -135
  45. package/src/base-client/components/iot/DeviceTypeDetailsView/DeviceTypeDetailsView.vue +3 -3
  46. package/src/base-client/components/iot/InstructDetailsView/InstructDetailsView.vue +5 -5
  47. package/src/base-client/components/iot/InstructDetailsView/index.md +45 -45
  48. package/src/base-client/components/iot/LogDetailsView/LogDetailsView.vue +3 -3
  49. package/src/base-client/components/iot/LogDetailsView/index.md +43 -43
  50. package/src/base-client/components/iot/MeterDetailsView/MeterDetailsView.vue +3 -3
  51. package/src/base-client/components/iot/MeterDetailsView/index.md +43 -43
  52. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsCount.vue +1 -1
  53. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsException.vue +3 -3
  54. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsHandPlan.vue +3 -3
  55. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsInstruct.vue +4 -4
  56. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsMain.vue +3 -3
  57. package/src/base-client/components/iot/MeterDetailsView/part/MeterDetailsSellGas.vue +3 -3
  58. package/src/base-client/components/iot/WebmeterAnalysisView/WebmeterAnalysisView.vue +4 -4
  59. package/src/base-client/components/iot/WebmeterAnalysisView/index.md +48 -48
  60. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +4 -4
  61. package/src/base-client/components/system/DictionaryDetailsView/index.md +41 -41
  62. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +3 -3
  63. package/src/base-client/components/ticket/EmployeeDetailsView/EmployeeDetailsView.vue +5 -5
  64. package/src/base-client/components/ticket/TicketDetailsView/TicketDetailsView.vue +5 -5
  65. package/src/base-client/components/ticket/TicketDetailsView/part/TicketDetailsFlow.vue +3 -3
  66. package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +6 -6
  67. package/src/base-client/plugins/AppData.js +3 -3
  68. package/src/base-client/plugins/GetLoginInfoService.js +2 -2
  69. package/src/base-client/plugins/index.js +4 -4
  70. package/src/bootstrap.js +4 -4
  71. package/src/components/Ellipsis/Ellipsis.vue +64 -64
  72. package/src/components/Ellipsis/index.md +38 -38
  73. package/src/components/NumberInfo/index.md +43 -43
  74. package/src/components/STable/README.md +341 -341
  75. package/src/components/Trend/index.md +45 -45
  76. package/src/components/cache/AKeepAlive.js +172 -172
  77. package/src/components/checkbox/index.js +7 -7
  78. package/src/components/index.js +36 -36
  79. package/src/components/menu/menu.js +273 -273
  80. package/src/components/setting/Setting.vue +237 -237
  81. package/src/components/table/advance/AdvanceTable.vue +275 -275
  82. package/src/components/transition/PageToggleTransition.vue +97 -97
  83. package/src/config/default/setting.config.js +33 -33
  84. package/src/layouts/CommonLayout.vue +42 -42
  85. package/src/layouts/ComponentLayoutOne.vue +47 -47
  86. package/src/layouts/PageLayout.vue +151 -151
  87. package/src/layouts/SinglePageView.vue +74 -74
  88. package/src/layouts/header/AdminHeader.vue +109 -109
  89. package/src/layouts/header/HeaderAvatar.vue +60 -60
  90. package/src/layouts/header/HeaderNotice.vue +1 -1
  91. package/src/layouts/tabs/TabsHead.vue +190 -190
  92. package/src/layouts/tabs/TabsView.vue +355 -355
  93. package/src/main.js +2 -2
  94. package/src/mock/common/reportData.js +20 -20
  95. package/src/mock/goods/index.js +108 -108
  96. package/src/mock/index.js +12 -12
  97. package/src/mock/project/index.js +17 -17
  98. package/src/mock/user/current.js +13 -13
  99. package/src/mock/user/login.js +39 -39
  100. package/src/mock/user/routes.js +61 -61
  101. package/src/mock/workplace/index.js +15 -15
  102. package/src/pages/exception/403.vue +2 -2
  103. package/src/pages/exception/404.vue +2 -2
  104. package/src/pages/exception/500.vue +2 -2
  105. package/src/pages/login/Login.vue +8 -8
  106. package/src/pages/report/ReportTable.js +125 -125
  107. package/src/pages/report/ReportTableHome.vue +2 -2
  108. package/src/pages/resourceManage/resourceManageMain.vue +1 -1
  109. package/src/pages/system/applyInstallView/Core.vue +570 -570
  110. package/src/pages/system/applyInstallView/index.vue +34 -34
  111. package/src/pages/system/dictionary/index.vue +41 -41
  112. package/src/pages/system/queryParams/index.vue +41 -41
  113. package/src/router/async/config.async.js +25 -25
  114. package/src/router/async/router.map.js +13 -13
  115. package/src/router/guards.js +104 -104
  116. package/src/router/index.js +2 -2
  117. package/src/services/api/common.js +1 -1
  118. package/src/services/api/restTools.js +1 -1
  119. package/src/services/dataSource.js +12 -12
  120. package/src/services/user.js +34 -34
  121. package/src/store/index.js +5 -5
  122. package/src/store/modules/setting.js +114 -114
  123. package/src/theme/index.less +5 -5
  124. package/src/theme/reportTable.less +58 -58
  125. package/src/utils/i18n.js +80 -80
  126. package/src/utils/indexedDB.js +1 -1
  127. package/src/utils/request.js +1 -1
  128. package/src/utils/routerUtil.js +3 -3
  129. package/tests/unit/ReportTable.spec.js +2 -2
  130. package/vue.config.js +1 -0
  131. package/webpack.config.js +1 -1
  132. package/src/router/config.js +0 -23
@@ -1,34 +1,34 @@
1
- import { LOGIN, ROUTES } from '@/services/api'
2
- import { request, METHOD, removeAuthorization } from '@/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 getRoutesConfig (value) {
18
- return request(ROUTES, METHOD.POST, value)
19
- }
20
-
21
- /**
22
- * 退出登录
23
- */
24
- export function logout () {
25
- localStorage.removeItem(process.env.VUE_APP_ROUTES_KEY)
26
- localStorage.removeItem(process.env.VUE_APP_PERMISSIONS_KEY)
27
- localStorage.removeItem(process.env.VUE_APP_ROLES_KEY)
28
- removeAuthorization()
29
- }
30
- export default {
31
- login,
32
- logout,
33
- getRoutesConfig
34
- }
1
+ import { LOGIN, ROUTES } from '@vue2-client/services/api'
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 getRoutesConfig (value) {
18
+ return request(ROUTES, METHOD.POST, value)
19
+ }
20
+
21
+ /**
22
+ * 退出登录
23
+ */
24
+ export function logout () {
25
+ localStorage.removeItem(process.env.VUE_APP_ROUTES_KEY)
26
+ localStorage.removeItem(process.env.VUE_APP_PERMISSIONS_KEY)
27
+ localStorage.removeItem(process.env.VUE_APP_ROLES_KEY)
28
+ removeAuthorization()
29
+ }
30
+ export default {
31
+ login,
32
+ logout,
33
+ getRoutesConfig
34
+ }
@@ -1,5 +1,5 @@
1
- import modules from './modules'
2
-
3
- export {
4
- modules
5
- }
1
+ import modules from './modules'
2
+
3
+ export {
4
+ modules
5
+ }
@@ -1,114 +1,114 @@
1
- import config from '@/config'
2
- import { ADMIN } from '@/config/default'
3
- import { formatFullPath } from '@/utils/i18n'
4
- import { filterMenu } from '@/utils/authority-utils'
5
- import { getLocalSetting } from '@/utils/themeUtil'
6
- import deepClone from 'lodash.clonedeep'
7
-
8
- const localSetting = getLocalSetting(true)
9
- const customTitlesStr = sessionStorage.getItem(process.env.VUE_APP_TBAS_TITLES_KEY)
10
- const customTitles = (customTitlesStr && JSON.parse(customTitlesStr)) || []
11
-
12
- export default {
13
- namespaced: true,
14
- state: {
15
- isMobile: false,
16
- animates: ADMIN.animates,
17
- palettes: ADMIN.palettes,
18
- pageMinHeight: 0,
19
- menuData: [],
20
- activatedFirst: undefined,
21
- customTitles,
22
- ...config,
23
- ...localSetting
24
- },
25
- getters: {
26
- menuData (state, getters, rootState) {
27
- if (state.filterMenu) {
28
- const { permissions, roles } = rootState.account
29
- return filterMenu(deepClone(state.menuData), permissions, roles)
30
- }
31
- return state.menuData
32
- },
33
- firstMenu (state, getters) {
34
- const { menuData } = getters
35
- if (menuData.length > 0 && !menuData[0].fullPath) {
36
- formatFullPath(menuData)
37
- }
38
- return menuData.map(item => {
39
- const menuItem = { ...item }
40
- delete menuItem.children
41
- return menuItem
42
- })
43
- },
44
- subMenu (state) {
45
- const { menuData, activatedFirst } = state
46
- if (menuData.length > 0 && !menuData[0].fullPath) {
47
- formatFullPath(menuData)
48
- }
49
- const current = menuData.find(menu => menu.fullPath === activatedFirst)
50
- return current && current.children || []
51
- }
52
- },
53
- mutations: {
54
- setDevice (state, isMobile) {
55
- state.isMobile = isMobile
56
- },
57
- setTheme (state, theme) {
58
- state.theme = theme
59
- },
60
- setLayout (state, layout) {
61
- state.layout = layout
62
- },
63
- setMultiPage (state, multiPage) {
64
- state.multiPage = multiPage
65
- },
66
- setAnimate (state, animate) {
67
- state.animate = animate
68
- },
69
- setWeekMode (state, weekMode) {
70
- state.weekMode = weekMode
71
- },
72
- setFixedHeader (state, fixedHeader) {
73
- state.fixedHeader = fixedHeader
74
- },
75
- setFixedSideBar (state, fixedSideBar) {
76
- state.fixedSideBar = fixedSideBar
77
- },
78
- setLang (state, lang) {
79
- state.lang = lang
80
- },
81
- setHideSetting (state, hideSetting) {
82
- state.hideSetting = hideSetting
83
- },
84
- correctPageMinHeight (state, minHeight) {
85
- state.pageMinHeight += minHeight
86
- },
87
- setMenuData (state, menuData) {
88
- state.menuData = menuData
89
- },
90
- setAsyncRoutes (state, asyncRoutes) {
91
- state.asyncRoutes = asyncRoutes
92
- },
93
- setPageWidth (state, pageWidth) {
94
- state.pageWidth = pageWidth
95
- },
96
- setActivatedFirst (state, activatedFirst) {
97
- state.activatedFirst = activatedFirst
98
- },
99
- setFixedTabs (state, fixedTabs) {
100
- state.fixedTabs = fixedTabs
101
- },
102
- setCustomTitle (state, { path, title }) {
103
- if (title) {
104
- const obj = state.customTitles.find(item => item.path === path)
105
- if (obj) {
106
- obj.title = title
107
- } else {
108
- state.customTitles.push({ path, title })
109
- }
110
- sessionStorage.setItem(process.env.VUE_APP_TBAS_TITLES_KEY, JSON.stringify(state.customTitles))
111
- }
112
- }
113
- }
114
- }
1
+ import config from '@vue2-client/config'
2
+ import { ADMIN } from '@vue2-client/config/default'
3
+ import { formatFullPath } from '@vue2-client/utils/i18n'
4
+ import { filterMenu } from '@vue2-client/utils/authority-utils'
5
+ import { getLocalSetting } from '@vue2-client/utils/themeUtil'
6
+ import deepClone from 'lodash.clonedeep'
7
+
8
+ const localSetting = getLocalSetting(true)
9
+ const customTitlesStr = sessionStorage.getItem(process.env.VUE_APP_TBAS_TITLES_KEY)
10
+ const customTitles = (customTitlesStr && JSON.parse(customTitlesStr)) || []
11
+
12
+ export default {
13
+ namespaced: true,
14
+ state: {
15
+ isMobile: false,
16
+ animates: ADMIN.animates,
17
+ palettes: ADMIN.palettes,
18
+ pageMinHeight: 0,
19
+ menuData: [],
20
+ activatedFirst: undefined,
21
+ customTitles,
22
+ ...config,
23
+ ...localSetting
24
+ },
25
+ getters: {
26
+ menuData (state, getters, rootState) {
27
+ if (state.filterMenu) {
28
+ const { permissions, roles } = rootState.account
29
+ return filterMenu(deepClone(state.menuData), permissions, roles)
30
+ }
31
+ return state.menuData
32
+ },
33
+ firstMenu (state, getters) {
34
+ const { menuData } = getters
35
+ if (menuData.length > 0 && !menuData[0].fullPath) {
36
+ formatFullPath(menuData)
37
+ }
38
+ return menuData.map(item => {
39
+ const menuItem = { ...item }
40
+ delete menuItem.children
41
+ return menuItem
42
+ })
43
+ },
44
+ subMenu (state) {
45
+ const { menuData, activatedFirst } = state
46
+ if (menuData.length > 0 && !menuData[0].fullPath) {
47
+ formatFullPath(menuData)
48
+ }
49
+ const current = menuData.find(menu => menu.fullPath === activatedFirst)
50
+ return current && current.children || []
51
+ }
52
+ },
53
+ mutations: {
54
+ setDevice (state, isMobile) {
55
+ state.isMobile = isMobile
56
+ },
57
+ setTheme (state, theme) {
58
+ state.theme = theme
59
+ },
60
+ setLayout (state, layout) {
61
+ state.layout = layout
62
+ },
63
+ setMultiPage (state, multiPage) {
64
+ state.multiPage = multiPage
65
+ },
66
+ setAnimate (state, animate) {
67
+ state.animate = animate
68
+ },
69
+ setWeekMode (state, weekMode) {
70
+ state.weekMode = weekMode
71
+ },
72
+ setFixedHeader (state, fixedHeader) {
73
+ state.fixedHeader = fixedHeader
74
+ },
75
+ setFixedSideBar (state, fixedSideBar) {
76
+ state.fixedSideBar = fixedSideBar
77
+ },
78
+ setLang (state, lang) {
79
+ state.lang = lang
80
+ },
81
+ setHideSetting (state, hideSetting) {
82
+ state.hideSetting = hideSetting
83
+ },
84
+ correctPageMinHeight (state, minHeight) {
85
+ state.pageMinHeight += minHeight
86
+ },
87
+ setMenuData (state, menuData) {
88
+ state.menuData = menuData
89
+ },
90
+ setAsyncRoutes (state, asyncRoutes) {
91
+ state.asyncRoutes = asyncRoutes
92
+ },
93
+ setPageWidth (state, pageWidth) {
94
+ state.pageWidth = pageWidth
95
+ },
96
+ setActivatedFirst (state, activatedFirst) {
97
+ state.activatedFirst = activatedFirst
98
+ },
99
+ setFixedTabs (state, fixedTabs) {
100
+ state.fixedTabs = fixedTabs
101
+ },
102
+ setCustomTitle (state, { path, title }) {
103
+ if (title) {
104
+ const obj = state.customTitles.find(item => item.path === path)
105
+ if (obj) {
106
+ obj.title = title
107
+ } else {
108
+ state.customTitles.push({ path, title })
109
+ }
110
+ sessionStorage.setItem(process.env.VUE_APP_TBAS_TITLES_KEY, JSON.stringify(state.customTitles))
111
+ }
112
+ }
113
+ }
114
+ }
@@ -1,5 +1,5 @@
1
- @import '~ant-design-vue/dist/antd.less';
2
- @import "default/index";
3
- @import "antd/index";
4
- @import "global.less";
5
- @import "reportTable.less";
1
+ @import '~ant-design-vue/dist/antd.less';
2
+ @import "default/index";
3
+ @import "antd/index";
4
+ @import "global.less";
5
+ @import "reportTable.less";
@@ -1,58 +1,58 @@
1
- #ReportTableHome {
2
- // 一个div宽高
3
- @height: 30px;
4
- @width: 100px;
5
- // 边框颜色
6
- @boder-color: #000;
7
-
8
- position: relative;
9
- display: flex;
10
- justify-items: center;
11
- #reportTable {
12
- border-left: 1px solid @boder-color;
13
- border-top: 1px solid @boder-color;
14
- div {
15
- display: flex;
16
- align-items: center;
17
- justify-content: center;
18
- position: absolute;
19
- border-bottom: 1px solid @boder-color;
20
- border-right: 1px solid @boder-color;
21
- }
22
- }
23
- // 循环编写
24
- .generBase(@i) when (@i <= 20) {
25
- .hs(@i);
26
- .ws(@i);
27
- .ts(@i);
28
- .ls(@i);
29
- .generBase(@i+1);
30
- }
31
- .hs(@size) {
32
- .h-@{size} {
33
- height: @height * @size
34
- }
35
- }
36
- .ws(@size) {
37
- .w-@{size} {
38
- width: @width * @size
39
- }
40
- }
41
- .ts(@size) {
42
- .t-@{size} {
43
- top: @height * @size
44
- }
45
- }
46
- .ls(@size) {
47
- .l-@{size} {
48
- left: @width * @size
49
- }
50
- }
51
- .generBase(0);
52
- .title {
53
- background: #80add9;
54
- }
55
- .bold {
56
- font-weight: bold;
57
- }
58
- }
1
+ #ReportTableHome {
2
+ // 一个div宽高
3
+ @height: 30px;
4
+ @width: 100px;
5
+ // 边框颜色
6
+ @boder-color: #000;
7
+
8
+ position: relative;
9
+ display: flex;
10
+ justify-items: center;
11
+ #reportTable {
12
+ border-left: 1px solid @boder-color;
13
+ border-top: 1px solid @boder-color;
14
+ div {
15
+ display: flex;
16
+ align-items: center;
17
+ justify-content: center;
18
+ position: absolute;
19
+ border-bottom: 1px solid @boder-color;
20
+ border-right: 1px solid @boder-color;
21
+ }
22
+ }
23
+ // 循环编写
24
+ .generBase(@i) when (@i <= 20) {
25
+ .hs(@i);
26
+ .ws(@i);
27
+ .ts(@i);
28
+ .ls(@i);
29
+ .generBase(@i+1);
30
+ }
31
+ .hs(@size) {
32
+ .h-@{size} {
33
+ height: @height * @size
34
+ }
35
+ }
36
+ .ws(@size) {
37
+ .w-@{size} {
38
+ width: @width * @size
39
+ }
40
+ }
41
+ .ts(@size) {
42
+ .t-@{size} {
43
+ top: @height * @size
44
+ }
45
+ }
46
+ .ls(@size) {
47
+ .l-@{size} {
48
+ left: @width * @size
49
+ }
50
+ }
51
+ .generBase(0);
52
+ .title {
53
+ background: #80add9;
54
+ }
55
+ .bold {
56
+ font-weight: bold;
57
+ }
58
+ }
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 '@/router/i18n'
4
- import './Objects'
5
- import { getI18nKey } from '@/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(new Object(), routes, 'name')
66
- // eslint-disable-next-line no-new-object
67
- const US = generateI18n(new Object(), 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(new Object(), routes, 'name')
66
+ // eslint-disable-next-line no-new-object
67
+ const US = generateI18n(new Object(), 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,5 +1,5 @@
1
1
  // indexDB 存储
2
- import { post } from '@/services/api/restTools'
2
+ import { post } from '@vue2-client/services/api/restTools'
3
3
 
4
4
  export const indexedDB = {
5
5
  db: undefined,
@@ -1,7 +1,7 @@
1
1
  import axios from 'axios'
2
2
  import Cookie from 'js-cookie'
3
3
  import Vue from 'vue'
4
- import { ACCESS_TOKEN } from '@/store/mutation-types'
4
+ import { ACCESS_TOKEN } from '@vue2-client/store/mutation-types'
5
5
  import notification from 'ant-design-vue/es/notification'
6
6
 
7
7
  // 跨域认证信息 header 名
@@ -1,8 +1,8 @@
1
- import routerMap from '@/router/async/router.map'
2
- import { mergeI18nFromRoutes } from '@/utils/i18n'
1
+ import routerMap from '@vue2-client/router/async/router.map'
2
+ import { mergeI18nFromRoutes } from '@vue2-client/utils/i18n'
3
3
  import Router from 'vue-router'
4
4
  import deepMerge from 'deepmerge'
5
- import basicOptions from '@/router/async/config.async'
5
+ import basicOptions from '@vue2-client/router/async/config.async'
6
6
 
7
7
  // 应用配置
8
8
  const appOptions = {
@@ -1,6 +1,6 @@
1
1
  import { mount } from '@vue/test-utils'
2
- import ReportTable from '@/pages/report/ReportTable'
3
- import { reportData } from '@/mock/common/reportData'
2
+ import ReportTable from '@vue2-client/pages/report/ReportTable'
3
+ import { reportData } from '@vue2-client/mock/common/reportData'
4
4
 
5
5
  // 报表组件测试域
6
6
  describe('ReportTable', () => {
package/vue.config.js CHANGED
@@ -134,6 +134,7 @@ module.exports = {
134
134
  return args
135
135
  })
136
136
  }
137
+ config.resolve.alias.set('@vue2-client', path.resolve(__dirname, 'src'))
137
138
  },
138
139
  css: {
139
140
  loaderOptions: {
package/webpack.config.js CHANGED
@@ -6,7 +6,7 @@ module.exports = {
6
6
  resolve: {
7
7
  extensions: ['.js', '.vue', '.json'],
8
8
  alias: {
9
- '@': path.resolve('src')
9
+ '@vue2-client': path.resolve('src')
10
10
  }
11
11
  }
12
12
  }