@arkxos/arkos-app-gateway-manage 0.1.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.
- package/README.md +36 -0
- package/ark_dist/ark-meta.json +75 -0
- package/ark_dist/ark_userChunk_1.js +5 -0
- package/ark_dist/ark_userChunk_2.js +49 -0
- package/ark_dist/css/views/views-CreateGateway.41b2bde6.css +297 -0
- package/ark_dist/favicon.ico +0 -0
- package/ark_dist/img/404.png +0 -0
- package/ark_dist/img/auth_banner.jpg +0 -0
- package/ark_dist/img/avatar.jpg +0 -0
- package/ark_dist/img/avatar2.gif +0 -0
- package/ark_dist/img/avatar3.gif +0 -0
- package/ark_dist/img/loginbg.svg +1 -0
- package/ark_dist/img/logo-r.png +0 -0
- package/ark_dist/img/logo.png +0 -0
- package/ark_dist/img/no-widgets.svg +57 -0
- package/ark_dist/img/tasks-example.png +0 -0
- package/ark_dist/img/ver.svg +236 -0
- package/ark_dist/index.html +132 -0
- package/ark_dist/js/app.e014b7a5.js +1 -0
- package/ark_dist/js/views/views-CreateGateway.7db295a9.js +3 -0
- package/ark_dist/js/views/views-CreateGateway.7db295a9.js.LICENSE.txt +1 -0
- package/ark_dist/js/views/views-CreateGateway.7db295a9.js.map +1 -0
- package/ark_proxy/entry.js +30 -0
- package/ark_proxy_es/entry.js +18 -0
- package/package.json +156 -0
- package/scripts/check.js +13 -0
- package/scripts/meta.js +21 -0
- package/scripts/prepublishOnly.js +28 -0
- package/src/api/apidoc_api.js +35 -0
- package/src/api/authority.js +161 -0
- package/src/api/balanced_api.js +101 -0
- package/src/api/client_api.js +68 -0
- package/src/api/count_api.js +62 -0
- package/src/api/gateway-manage/client_api.js +68 -0
- package/src/api/gateway-manage/open_client.js +188 -0
- package/src/api/gateway_api.js +81 -0
- package/src/api/global_function.js +278 -0
- package/src/api/global_variable.js +35 -0
- package/src/api/groovyscript_api.js +130 -0
- package/src/api/ip_api.js +47 -0
- package/src/api/monitor_api.js +24 -0
- package/src/api/regserver_api.js +224 -0
- package/src/api/request.js +107 -0
- package/src/assets/font_1930435_u2cpsigmd9d.js +38 -0
- package/src/assets/font_ma6wg7gw3td/demo.css +539 -0
- package/src/assets/font_ma6wg7gw3td/demo_index.html +674 -0
- package/src/assets/font_ma6wg7gw3td/iconfont.css +105 -0
- package/src/assets/font_ma6wg7gw3td/iconfont.eot +0 -0
- package/src/assets/font_ma6wg7gw3td/iconfont.js +1 -0
- package/src/assets/font_ma6wg7gw3td/iconfont.json +163 -0
- package/src/assets/font_ma6wg7gw3td/iconfont.svg +92 -0
- package/src/assets/font_ma6wg7gw3td/iconfont.ttf +0 -0
- package/src/assets/font_ma6wg7gw3td/iconfont.woff +0 -0
- package/src/assets/font_ma6wg7gw3td/iconfont.woff2 +0 -0
- package/src/assets/logo.png +0 -0
- package/src/assets/particles.json +110 -0
- package/src/auto-imports.d.ts +307 -0
- package/src/component/BoxCard.vue +156 -0
- package/src/component/ClientInfo.vue +82 -0
- package/src/component/GroovyScriptTable.vue +74 -0
- package/src/component/PanThumb/index.vue +149 -0
- package/src/component/RouteAccessChart.vue +85 -0
- package/src/component/RouteInfo.vue +146 -0
- package/src/component/RouteRequestCount.vue +126 -0
- package/src/component/TextHoverEffect/Mallki.vue +120 -0
- package/src/configs/subApp.ts +9 -0
- package/src/entrance/libProperties.ts +30 -0
- package/src/entrance/libTypes.ts +27 -0
- package/src/main.ts +13 -0
- package/src/plugins/index.ts +11 -0
- package/src/router/constantRoutes.js +155 -0
- package/src/router/loadComponent.js +29 -0
- package/src/views/AddClientGateway.vue +253 -0
- package/src/views/AddGatewayClient.vue +360 -0
- package/src/views/AddGroovyScript.vue +337 -0
- package/src/views/ApiCount.vue +291 -0
- package/src/views/ApiDoc.vue +293 -0
- package/src/views/ApiMonitor.vue +292 -0
- package/src/views/ClientList.vue +217 -0
- package/src/views/CreateBalanced.vue +341 -0
- package/src/views/CreateClient.vue +171 -0
- package/src/views/CreateGateway.vue +836 -0
- package/src/views/GatewayList.vue +322 -0
- package/src/views/GatewayTopology.vue +245 -0
- package/src/views/IpList.vue +218 -0
- package/src/views/LoadBalanced.vue +389 -0
- package/src/views/Main.vue +98 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
//client_api.js
|
|
2
|
+
import { request } from '@arkxos/arkos-core';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 添加客户端
|
|
6
|
+
*/
|
|
7
|
+
export const addClient = data => {
|
|
8
|
+
return request({
|
|
9
|
+
url: '/base/app/add',
|
|
10
|
+
method: 'post',
|
|
11
|
+
data
|
|
12
|
+
})
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 更新客户端
|
|
17
|
+
*/
|
|
18
|
+
export const updateClient = data => {
|
|
19
|
+
return request({
|
|
20
|
+
url: '/base/app/update',
|
|
21
|
+
method: 'post',
|
|
22
|
+
data
|
|
23
|
+
})
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 分页查询客户端列表
|
|
28
|
+
*/
|
|
29
|
+
export const clientPageList = data => {
|
|
30
|
+
return request({
|
|
31
|
+
url: '/base/app',
|
|
32
|
+
method: 'get',
|
|
33
|
+
data
|
|
34
|
+
})
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* 启用客户端
|
|
39
|
+
*/
|
|
40
|
+
export const startClient = data => {
|
|
41
|
+
return request({
|
|
42
|
+
url: '/base/app/start',
|
|
43
|
+
method: 'post',
|
|
44
|
+
data
|
|
45
|
+
})
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* 停止客户端
|
|
50
|
+
*/
|
|
51
|
+
export const stopClient = data => {
|
|
52
|
+
return request({
|
|
53
|
+
url: '/base/app/stop',
|
|
54
|
+
method: 'post',
|
|
55
|
+
data
|
|
56
|
+
})
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* 删除客户端
|
|
61
|
+
*/
|
|
62
|
+
export const deleteClient = data => {
|
|
63
|
+
return request({
|
|
64
|
+
url: '/base/app/delete',
|
|
65
|
+
method: 'post',
|
|
66
|
+
data
|
|
67
|
+
})
|
|
68
|
+
};
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { request } from '@arkxos/arkos-core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 获取应用列表
|
|
5
|
+
* @param page
|
|
6
|
+
* @param limit
|
|
7
|
+
* @param appId
|
|
8
|
+
* @param appName
|
|
9
|
+
* @param appNameEn
|
|
10
|
+
*/
|
|
11
|
+
export const getApps = ({ page, limit, appId, appName, appNameEn }) => {
|
|
12
|
+
const params = { page: page, limit: limit, appId: appId, appName: appName, appNameEn: appNameEn }
|
|
13
|
+
return request({
|
|
14
|
+
url: 'base/app',
|
|
15
|
+
params,
|
|
16
|
+
method: 'get'
|
|
17
|
+
})
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* 添加应用信息
|
|
22
|
+
* @param appName
|
|
23
|
+
* @param appNameEn
|
|
24
|
+
* @param appType
|
|
25
|
+
* @param appIcon
|
|
26
|
+
* @param appOs
|
|
27
|
+
* @param appDesc
|
|
28
|
+
* @param status
|
|
29
|
+
* @param website
|
|
30
|
+
* @param developerId
|
|
31
|
+
* @param isSign
|
|
32
|
+
* @param isEncrypt
|
|
33
|
+
* @param encryptType
|
|
34
|
+
* @param publicKey
|
|
35
|
+
*/
|
|
36
|
+
export const addApp = ({
|
|
37
|
+
appName, appNameEn, appType, appIcon, appOs,
|
|
38
|
+
appDesc, status, website, developerId, isSign,
|
|
39
|
+
isEncrypt, encryptType, publicKey, groupCode, ip }) => {
|
|
40
|
+
const data = {
|
|
41
|
+
appName: appName,
|
|
42
|
+
appNameEn: appNameEn,
|
|
43
|
+
appType: appType,
|
|
44
|
+
groupCode: groupCode,
|
|
45
|
+
ip: ip,
|
|
46
|
+
appIcon: appIcon,
|
|
47
|
+
appOs: appOs,
|
|
48
|
+
appDesc: appDesc,
|
|
49
|
+
status: status,
|
|
50
|
+
website: website,
|
|
51
|
+
developerId: developerId,
|
|
52
|
+
isSign: isSign,
|
|
53
|
+
isEncrypt: isEncrypt,
|
|
54
|
+
encryptType: encryptType,
|
|
55
|
+
publicKey: publicKey
|
|
56
|
+
}
|
|
57
|
+
return request({
|
|
58
|
+
url: 'base/app/add',
|
|
59
|
+
data,
|
|
60
|
+
method: 'post'
|
|
61
|
+
})
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* 更新应用信息
|
|
66
|
+
* @param appId
|
|
67
|
+
* @param appName
|
|
68
|
+
* @param appNameEn
|
|
69
|
+
* @param appType
|
|
70
|
+
* @param appIcon
|
|
71
|
+
* @param appOs
|
|
72
|
+
* @param appDesc
|
|
73
|
+
* @param status
|
|
74
|
+
* @param website
|
|
75
|
+
* @param developerId
|
|
76
|
+
* @param isSign
|
|
77
|
+
* @param isEncrypt
|
|
78
|
+
* @param encryptType
|
|
79
|
+
* @param publicKey
|
|
80
|
+
*/
|
|
81
|
+
export const updateApp = ({
|
|
82
|
+
appId, appName, appNameEn, appType, appIcon,
|
|
83
|
+
groupCode, ip,
|
|
84
|
+
appOs, appDesc, status, website, developerId,
|
|
85
|
+
isSign, isEncrypt, encryptType, publicKey }) => {
|
|
86
|
+
const data = {
|
|
87
|
+
appId: appId,
|
|
88
|
+
appName: appName,
|
|
89
|
+
appNameEn: appNameEn,
|
|
90
|
+
appType: appType,
|
|
91
|
+
appIcon: appIcon,
|
|
92
|
+
groupCode: groupCode,
|
|
93
|
+
ip: ip,
|
|
94
|
+
appOs: appOs,
|
|
95
|
+
appDesc: appDesc,
|
|
96
|
+
status: status,
|
|
97
|
+
website: website,
|
|
98
|
+
developerId: developerId,
|
|
99
|
+
isSign: isSign,
|
|
100
|
+
isEncrypt: isEncrypt,
|
|
101
|
+
encryptType: encryptType,
|
|
102
|
+
publicKey: publicKey
|
|
103
|
+
}
|
|
104
|
+
return request({
|
|
105
|
+
url: 'base/app/update',
|
|
106
|
+
data,
|
|
107
|
+
method: 'post'
|
|
108
|
+
})
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* 完善应用开发信息
|
|
113
|
+
* @param appId
|
|
114
|
+
* @param grantTypes
|
|
115
|
+
* @param redirectUrls
|
|
116
|
+
* @param scopes
|
|
117
|
+
* @param accessTokenValidity
|
|
118
|
+
* @param refreshTokenValidity
|
|
119
|
+
* @param autoApproveScopes
|
|
120
|
+
*/
|
|
121
|
+
export const updateAppClientInfo = ({ appId, grantTypes, redirectUrls, scopes, accessTokenValidity, refreshTokenValidity, autoApproveScopes }) => {
|
|
122
|
+
const data = {
|
|
123
|
+
appId: appId,
|
|
124
|
+
grantTypes: grantTypes.join(','),
|
|
125
|
+
redirectUrls: redirectUrls,
|
|
126
|
+
scopes: scopes.join(','),
|
|
127
|
+
accessTokenValidity: accessTokenValidity,
|
|
128
|
+
refreshTokenValidity: refreshTokenValidity,
|
|
129
|
+
autoApproveScopes: autoApproveScopes.join(',')
|
|
130
|
+
}
|
|
131
|
+
return request({
|
|
132
|
+
url: 'base/app/client/update',
|
|
133
|
+
data,
|
|
134
|
+
method: 'post'
|
|
135
|
+
})
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* 删除应用
|
|
140
|
+
* @param appId
|
|
141
|
+
*/
|
|
142
|
+
export const removeApp = ({ appId }) => {
|
|
143
|
+
const data = {
|
|
144
|
+
appId: appId
|
|
145
|
+
}
|
|
146
|
+
return request({
|
|
147
|
+
url: 'base/app/remove',
|
|
148
|
+
data,
|
|
149
|
+
method: 'post'
|
|
150
|
+
})
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* 重置秘钥
|
|
155
|
+
* @param appId
|
|
156
|
+
*/
|
|
157
|
+
export const restApp = ({ appId }) => {
|
|
158
|
+
const data = {
|
|
159
|
+
appId: appId
|
|
160
|
+
}
|
|
161
|
+
return request({
|
|
162
|
+
url: 'base/app/reset',
|
|
163
|
+
data,
|
|
164
|
+
method: 'post'
|
|
165
|
+
})
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* 获取应用信息
|
|
170
|
+
* @param appId
|
|
171
|
+
*/
|
|
172
|
+
export const getAppInfo = ({ appId }) => {
|
|
173
|
+
return request({
|
|
174
|
+
url: `base/app/${appId}/info`,
|
|
175
|
+
method: 'get'
|
|
176
|
+
})
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* 获取应用开发信息
|
|
181
|
+
* @param clientId
|
|
182
|
+
*/
|
|
183
|
+
export const getAppClientInfo = ({ clientId }) => {
|
|
184
|
+
return request({
|
|
185
|
+
url: `base/app/client/${clientId}/info`,
|
|
186
|
+
method: 'get'
|
|
187
|
+
})
|
|
188
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
//sys_api.js
|
|
2
|
+
import { request } from '@arkxos/arkos-core';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 添加字典组
|
|
6
|
+
*/
|
|
7
|
+
export const getGateWayInfo = data => {
|
|
8
|
+
return request({
|
|
9
|
+
url: '/gateway-manage',
|
|
10
|
+
method: 'post',
|
|
11
|
+
headers: {'Content-type': 'multipart/form-data'},
|
|
12
|
+
data
|
|
13
|
+
})
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* 添加网关路由服务
|
|
19
|
+
*/
|
|
20
|
+
export const addRoute = data => {
|
|
21
|
+
return request({
|
|
22
|
+
url: '/gateway-manage/route/add',
|
|
23
|
+
method: 'post',
|
|
24
|
+
data
|
|
25
|
+
})
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* 添加网关路由服务
|
|
30
|
+
*/
|
|
31
|
+
export const updateRoute = data => {
|
|
32
|
+
return request({
|
|
33
|
+
url: '/gateway-manage/route/update',
|
|
34
|
+
method: 'post',
|
|
35
|
+
data
|
|
36
|
+
})
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* 查询网关路由分页列表
|
|
41
|
+
*/
|
|
42
|
+
export const routePageList = data => {
|
|
43
|
+
return request({
|
|
44
|
+
url: '/gateway-manage/route/pageList',
|
|
45
|
+
method: 'post',
|
|
46
|
+
data
|
|
47
|
+
})
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* 启用网关路由
|
|
52
|
+
*/
|
|
53
|
+
export const startRoute = data => {
|
|
54
|
+
return request({
|
|
55
|
+
url: '/gateway-manage/route/start',
|
|
56
|
+
method: 'post',
|
|
57
|
+
data
|
|
58
|
+
})
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* 停止网关路由
|
|
63
|
+
*/
|
|
64
|
+
export const stopRoute = data => {
|
|
65
|
+
return request({
|
|
66
|
+
url: '/gateway-manage/route/stop',
|
|
67
|
+
method: 'post',
|
|
68
|
+
data
|
|
69
|
+
})
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* 删除网关路由
|
|
74
|
+
*/
|
|
75
|
+
export const deleteRoute = data => {
|
|
76
|
+
return request({
|
|
77
|
+
url: '/gateway-manage/route/delete',
|
|
78
|
+
method: 'post',
|
|
79
|
+
data
|
|
80
|
+
})
|
|
81
|
+
};
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
//global_function.js
|
|
2
|
+
// 专门放置 全局函数
|
|
3
|
+
import { Loading, Message } from 'element-plus'
|
|
4
|
+
import { useMessage } from '@arkxos/arkos-core';
|
|
5
|
+
|
|
6
|
+
//let 声明变量
|
|
7
|
+
const err_msg = "操作失败"
|
|
8
|
+
const success_msg = "操作成功"
|
|
9
|
+
let loading;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* 加载中的样式
|
|
13
|
+
*/
|
|
14
|
+
function startLoading() {
|
|
15
|
+
// loading = Loading.service({
|
|
16
|
+
// lock: true,
|
|
17
|
+
// text: '加载中....',
|
|
18
|
+
// background: 'rgba(0, 0, 0, 0.7)'
|
|
19
|
+
// })
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* 关闭加载中的样式
|
|
24
|
+
*/
|
|
25
|
+
function endLoading() {
|
|
26
|
+
loading?.close()
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* 成功消息
|
|
31
|
+
* @param {Object} msg 内容
|
|
32
|
+
* @param {Object} duration 时长
|
|
33
|
+
*/
|
|
34
|
+
function successMsg(msg, duration) {
|
|
35
|
+
msg = (msg) ? msg : success_msg
|
|
36
|
+
useMessage().success(msg)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* 失败消息
|
|
41
|
+
* @param {Object} msg 内容
|
|
42
|
+
* @param {Object} duration 时长
|
|
43
|
+
*/
|
|
44
|
+
function errorMsg(msg, duration) {
|
|
45
|
+
msg = (msg) ? msg : err_msg
|
|
46
|
+
useMessage().error(msg)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* 打开新的窗口
|
|
51
|
+
* @param {Object} _this
|
|
52
|
+
* @param {Object} path
|
|
53
|
+
* @param {Object} tabTitle
|
|
54
|
+
* @param {Object} query
|
|
55
|
+
*/
|
|
56
|
+
function openNewTab(_this,path,tabTitle,query){
|
|
57
|
+
//调用父类的方法,打开新的窗口
|
|
58
|
+
_this.$root.$children[0].$children[0].addTab(path,tabTitle,query);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* 获取Tab的对象与传参
|
|
63
|
+
* @param {Object} _this
|
|
64
|
+
* @param {Object} tabTitle
|
|
65
|
+
*/
|
|
66
|
+
function getOpenTab(_this,tabTitle){
|
|
67
|
+
//调用父类的方法,获取指定打开的窗口
|
|
68
|
+
return _this.$root.$children[0].$children[0].getTab(tabTitle);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* 将信息存储到本地sessionStorage中,sessionStorage仅在当前会话下有效,关闭页面或浏览器后被清除
|
|
73
|
+
* @param {Object} key
|
|
74
|
+
* @param {Object} value
|
|
75
|
+
*/
|
|
76
|
+
function setSessionStorage(key,value){
|
|
77
|
+
if(!window.sessionStorage){
|
|
78
|
+
alert("浏览器不支持localstorage");
|
|
79
|
+
return false;
|
|
80
|
+
}else{
|
|
81
|
+
removeSessionStorage(key);
|
|
82
|
+
window.sessionStorage.setItem(key, value);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* 获取存储到本地sessionStorage中key对应的值
|
|
88
|
+
* @param {Object} key
|
|
89
|
+
*/
|
|
90
|
+
function getSessionStorage(key){
|
|
91
|
+
return window.sessionStorage.getItem(key);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* 删除存储到本地sessionStorage中key对应的值
|
|
96
|
+
* @param {Object} key
|
|
97
|
+
*/
|
|
98
|
+
function removeSessionStorage(key){
|
|
99
|
+
return window.sessionStorage.removeItem(key);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* 将信息存储到本地localStorage中
|
|
104
|
+
* @param {Object} key
|
|
105
|
+
* @param {Object} value
|
|
106
|
+
*/
|
|
107
|
+
function setLocalStorage(key,value){
|
|
108
|
+
if(!window.localStorage){
|
|
109
|
+
alert("浏览器不支持localstorage");
|
|
110
|
+
return false;
|
|
111
|
+
}else{
|
|
112
|
+
removeLocalStorage(key);
|
|
113
|
+
window.localStorage.setItem(key, value);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* 获取存储到本地localStorage中key对应的值
|
|
119
|
+
* @param {Object} key
|
|
120
|
+
*/
|
|
121
|
+
function getLocalStorage(key){
|
|
122
|
+
return window.localStorage.getItem(key);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* 删除存储到本地localStorage中key对应的值
|
|
127
|
+
* @param {Object} key
|
|
128
|
+
*/
|
|
129
|
+
function removeLocalStorage(key){
|
|
130
|
+
return window.localStorage.removeItem(key);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* 存储登录token
|
|
135
|
+
* @param {Object} token
|
|
136
|
+
*/
|
|
137
|
+
function setToken(token){
|
|
138
|
+
setLocalStorage('token', token);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* 获取token
|
|
143
|
+
*/
|
|
144
|
+
function getToken(){
|
|
145
|
+
return getLocalStorage('token');
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* 删除token
|
|
150
|
+
*/
|
|
151
|
+
function removeToken(){
|
|
152
|
+
return removeLocalStorage('token');
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* 遍历生成菜单树
|
|
157
|
+
* @param {Object} pcode
|
|
158
|
+
* @param {Object} data
|
|
159
|
+
*/
|
|
160
|
+
function appendTree(pcode, data){
|
|
161
|
+
let treeData = [];
|
|
162
|
+
let _data = data;
|
|
163
|
+
data.forEach((row, index) => {
|
|
164
|
+
if (pcode == row.pcode){
|
|
165
|
+
let newChild = {
|
|
166
|
+
id: row.id,
|
|
167
|
+
code: row.code,
|
|
168
|
+
pcode: row.pcode,
|
|
169
|
+
label: row.name,
|
|
170
|
+
children: appendTree(row.code, _data)
|
|
171
|
+
}
|
|
172
|
+
treeData.push(newChild);
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
return treeData;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
* 获取原始数据,加工生成树结构
|
|
180
|
+
* @param {Object} data
|
|
181
|
+
*/
|
|
182
|
+
function initTree(data) {
|
|
183
|
+
let treeData = [];
|
|
184
|
+
data.forEach((row, index) => {
|
|
185
|
+
let newChild = {
|
|
186
|
+
id: row.id,
|
|
187
|
+
code: row.code,
|
|
188
|
+
pcode: row.pcode,
|
|
189
|
+
label: row.name,
|
|
190
|
+
children: [],
|
|
191
|
+
}
|
|
192
|
+
//将当前数据对象与树中的所有节点进行比较,data 是否为父节点或子节点
|
|
193
|
+
let t;
|
|
194
|
+
for (let i = 0; i < treeData.length; i++) {
|
|
195
|
+
t = append(treeData[i], newChild);
|
|
196
|
+
if (t == 1) { //表示当前treeData[i] 是newChild的父节点,找到父节点后,不在遍历
|
|
197
|
+
break;
|
|
198
|
+
} else if (t == 2) { //表示当前treeData[i] 是newChild的子节点,则继续遍历treeData,查找是否还有其它子节点
|
|
199
|
+
treeData[i] = {};
|
|
200
|
+
t = undefined;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
if (t == undefined) {
|
|
204
|
+
treeData.push(newChild);
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
let dataArray = [];
|
|
208
|
+
treeData.forEach(d => {
|
|
209
|
+
if (d != undefined && d.id) {
|
|
210
|
+
dataArray.push(d);
|
|
211
|
+
}
|
|
212
|
+
})
|
|
213
|
+
console.log(dataArray);
|
|
214
|
+
return dataArray;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* 判断树节点关系
|
|
219
|
+
* @param {Object} data
|
|
220
|
+
* @param {Object} newChild
|
|
221
|
+
*/
|
|
222
|
+
function append(data, newChild) {
|
|
223
|
+
if (data.code == newChild.pcode) {
|
|
224
|
+
if (data.children) {
|
|
225
|
+
data.children[data.children.length] = newChild;
|
|
226
|
+
return 1; //表示child是data子节点
|
|
227
|
+
}
|
|
228
|
+
} else if (data.pcode == newChild.code) {
|
|
229
|
+
newChild.children[newChild.children.length] = data;
|
|
230
|
+
return 2; //表示child是data父节点
|
|
231
|
+
} else if (data.children && data.children.length > 0) {
|
|
232
|
+
let t;
|
|
233
|
+
for (let i = 0; i < data.children.length; i++) {
|
|
234
|
+
t = append(data.children[i], newChild);
|
|
235
|
+
if (t == 1) {
|
|
236
|
+
break;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return t;
|
|
240
|
+
}
|
|
241
|
+
return undefined; //表示child与data无父子关系
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* 复制内容
|
|
246
|
+
* @param {Object} data
|
|
247
|
+
*/
|
|
248
|
+
function copy(data){
|
|
249
|
+
let inputObj = document.createElement('input');
|
|
250
|
+
inputObj.value = data;
|
|
251
|
+
document.body.appendChild(inputObj);
|
|
252
|
+
inputObj.select();
|
|
253
|
+
document.execCommand('Copy');
|
|
254
|
+
successMsg('复制成功');
|
|
255
|
+
inputObj.remove();
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
//导出全局变量
|
|
259
|
+
export default {
|
|
260
|
+
errorMsg,
|
|
261
|
+
successMsg,
|
|
262
|
+
startLoading,
|
|
263
|
+
endLoading,
|
|
264
|
+
openNewTab,
|
|
265
|
+
getOpenTab,
|
|
266
|
+
getToken,
|
|
267
|
+
setToken,
|
|
268
|
+
removeToken,
|
|
269
|
+
initTree,
|
|
270
|
+
appendTree,
|
|
271
|
+
getLocalStorage,
|
|
272
|
+
setLocalStorage,
|
|
273
|
+
removeLocalStorage,
|
|
274
|
+
getSessionStorage,
|
|
275
|
+
setSessionStorage,
|
|
276
|
+
removeSessionStorage,
|
|
277
|
+
copy
|
|
278
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
// global_variable.js
|
|
2
|
+
// 专门放置 全局变量
|
|
3
|
+
|
|
4
|
+
//const 声明常量,注意此处在webpack.config.js中做了代理转发
|
|
5
|
+
//注意:npm run build 时,此baseURL在webpack.config.js/devServer的代理已经失效,请将此api设置为'/'
|
|
6
|
+
//const baseURL = "/api"
|
|
7
|
+
//const gatewayRoutesURL = "http://127.0.0.1:8771"
|
|
8
|
+
|
|
9
|
+
const baseURL = "/"
|
|
10
|
+
const gatewayRoutesURL = ""
|
|
11
|
+
const errMsg = "操作失败"
|
|
12
|
+
const successMsg = "操作成功"
|
|
13
|
+
const contentType = "application/json;charset=UTF-8"
|
|
14
|
+
const systemVersion = "snapshot-nacos.v.3.4"
|
|
15
|
+
|
|
16
|
+
// 分组类型,暂不放到数据字典,直接由前端添加
|
|
17
|
+
const groups = [
|
|
18
|
+
{ value: 'public_api', label: '公共API' },
|
|
19
|
+
{ value: 'external_api', label: '第三方API' },
|
|
20
|
+
{ value: 'interior_api', label: '内网API' },
|
|
21
|
+
{ value: 'pay_api', label: '支付API' },
|
|
22
|
+
{ value: 'other_api', label: '其它API' }
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
//导出全局变量
|
|
27
|
+
export default{
|
|
28
|
+
baseURL,
|
|
29
|
+
gatewayRoutesURL,
|
|
30
|
+
contentType,
|
|
31
|
+
systemVersion,
|
|
32
|
+
errMsg,
|
|
33
|
+
successMsg,
|
|
34
|
+
groups
|
|
35
|
+
}
|