vibe-web-sdk 1.0.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/api/application/index.js +38 -0
- package/api/login.js +75 -0
- package/assets/css/css-vars.css +19 -0
- package/assets/css/frame.css +129 -0
- package/assets/futura.ttf +0 -0
- package/assets/images/flags/cn.svg +2 -0
- package/assets/images/flags/de.svg +5 -0
- package/assets/images/flags/gb.svg +15 -0
- package/assets/images/location.png +0 -0
- package/assets/images/logo.png +0 -0
- package/assets/images/moon.png +0 -0
- package/assets/images/sun.png +0 -0
- package/components/selfFooter/index.vue +264 -0
- package/components/selfHeader/index.vue +310 -0
- package/components/siderBar/index.vue +419 -0
- package/components/siderMenu/index.vue +385 -0
- package/index.js +20 -0
- package/lang/en.js +21 -0
- package/lang/zh.js +21 -0
- package/package.json +15 -0
- package/permission/hasPermi.js +23 -0
- package/permission/index.js +12 -0
- package/plugins/auth.js +60 -0
- package/plugins/index.js +14 -0
- package/plugins/modal.js +210 -0
- package/store/getters.js +10 -0
- package/store/index.js +14 -0
- package/store/modules/custom.js +25 -0
- package/store/modules/user.js +89 -0
- package/utils/auth.js +16 -0
- package/utils/cache.js +77 -0
- package/utils/common.js +239 -0
- package/utils/errorCode.js +6 -0
- package/utils/jsencrypt.js +30 -0
- package/utils/request.js +222 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import request from '../../utils/request';
|
|
3
|
+
|
|
4
|
+
export function getCategoryWithApps() {
|
|
5
|
+
return request({
|
|
6
|
+
url: '/bdp/home/getCategoryWithApps',
|
|
7
|
+
headers: {
|
|
8
|
+
isToken: true
|
|
9
|
+
},
|
|
10
|
+
method: 'post'
|
|
11
|
+
})
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function getLanguages(){
|
|
15
|
+
return request({
|
|
16
|
+
url: '/bdp/language/access/page',
|
|
17
|
+
data:{},
|
|
18
|
+
method: 'post'
|
|
19
|
+
})
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function getPlatFormLogo(){
|
|
23
|
+
return axios({
|
|
24
|
+
url: '/bdp/images/access/getPlatFormLogo',
|
|
25
|
+
method: 'post'
|
|
26
|
+
}).then((res)=>{
|
|
27
|
+
return res.data;
|
|
28
|
+
})
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function accessAppStat(appId){
|
|
32
|
+
return request({
|
|
33
|
+
url: '/bdp/visitor/app/stat/' + appId,
|
|
34
|
+
method: 'get'
|
|
35
|
+
})
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
package/api/login.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { encrypt } from '../utils/jsencrypt';
|
|
2
|
+
import request from '../utils/request';
|
|
3
|
+
|
|
4
|
+
// 测试方法
|
|
5
|
+
export function getUserInfoList() {
|
|
6
|
+
return request({
|
|
7
|
+
url: '/bdp/menu/getUserInfoList',
|
|
8
|
+
headers: {
|
|
9
|
+
isToken: true
|
|
10
|
+
},
|
|
11
|
+
method: 'get'
|
|
12
|
+
})
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// 登录方法
|
|
16
|
+
export function login(username, password,supportNoPwd,roleType) {
|
|
17
|
+
password = encrypt(password)
|
|
18
|
+
const data = {
|
|
19
|
+
username,
|
|
20
|
+
password,
|
|
21
|
+
supportNoPwd,
|
|
22
|
+
roleType
|
|
23
|
+
}
|
|
24
|
+
return request({
|
|
25
|
+
url: '/bdp/userLogin/login',
|
|
26
|
+
headers: {
|
|
27
|
+
isToken: false
|
|
28
|
+
},
|
|
29
|
+
method: 'post',
|
|
30
|
+
data: data
|
|
31
|
+
})
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// 退出方法
|
|
35
|
+
export function logout() {
|
|
36
|
+
return request({
|
|
37
|
+
url: '/bdp/userLogin/out',
|
|
38
|
+
method: 'post'
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// 获取当前用户详细信息
|
|
43
|
+
export function getCurrentLoginUser() {
|
|
44
|
+
return request({
|
|
45
|
+
url: '/bdp/userLogin/currentLoginUser',
|
|
46
|
+
headers: {
|
|
47
|
+
isToken: true
|
|
48
|
+
},
|
|
49
|
+
method: 'get'
|
|
50
|
+
})
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// 注册方法
|
|
54
|
+
export function register(data) {
|
|
55
|
+
return request({
|
|
56
|
+
url: '/register',
|
|
57
|
+
headers: {
|
|
58
|
+
isToken: false
|
|
59
|
+
},
|
|
60
|
+
method: 'post',
|
|
61
|
+
data: data
|
|
62
|
+
})
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// 获取验证码
|
|
66
|
+
export function getCodeImg() {
|
|
67
|
+
return request({
|
|
68
|
+
url: '/captchaImage',
|
|
69
|
+
headers: {
|
|
70
|
+
isToken: false
|
|
71
|
+
},
|
|
72
|
+
method: 'get',
|
|
73
|
+
timeout: 20000
|
|
74
|
+
})
|
|
75
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
html.dark{
|
|
2
|
+
background-color:#121a22;
|
|
3
|
+
--el-bg-color: #121a22;
|
|
4
|
+
color-scheme:dark;--el-color-primary:#409eff;
|
|
5
|
+
--el-color-primary-light-3:#3375b9;--el-color-primary-light-5:#2a598a;--el-color-primary-light-7:#213d5b;--el-color-primary-light-8:#1d3043;--el-color-primary-light-9:#18222c;
|
|
6
|
+
--el-color-primary-dark-2:#66b1ff;--el-color-success:#67c23a;--el-color-success-light-3:#4e8e2f;--el-color-success-light-5:#3e6b27;--el-color-success-light-7:#2d481f;
|
|
7
|
+
--el-color-success-light-8:#25371c;--el-color-success-light-9:#1c2518;--el-color-success-dark-2:#85ce61;--el-color-warning:#e6a23c;--el-color-warning-light-3:#a77730;
|
|
8
|
+
--el-color-warning-light-5:#7d5b28;--el-color-warning-light-7:#533f20;--el-color-warning-light-8:#3e301c;--el-color-warning-light-9:#292218;--el-color-warning-dark-2:#ebb563;
|
|
9
|
+
--el-color-danger:#f56c6c;--el-color-danger-light-3:#b25252;--el-color-danger-light-5:#854040;--el-color-danger-light-7:#582e2e;--el-color-danger-light-8:#412626;--el-color-danger-light-9:#2b1d1d;
|
|
10
|
+
--el-color-danger-dark-2:#f78989;--el-color-error:#f56c6c;--el-color-error-light-3:#b25252;--el-color-error-light-5:#854040;--el-color-error-light-7:#582e2e;
|
|
11
|
+
--el-color-error-light-8:#412626;--el-color-error-light-9:#2b1d1d;--el-color-error-dark-2:#f78989;--el-color-info:#909399;--el-color-info-light-3:#6b6d71;
|
|
12
|
+
--el-color-info-light-5:#525457;--el-color-info-light-7:#393a3c;--el-color-info-light-8:#2d2d2f;--el-color-info-light-9:#202121;--el-color-info-dark-2:#a6a9ad;
|
|
13
|
+
--el-box-shadow:0px 12px 32px 4px rgba(0, 0, 0, 0.36),0px 8px 20px rgba(0, 0, 0, 0.72);--el-box-shadow-light:0px 0px 12px rgba(0, 0, 0, 0.72);--el-box-shadow-lighter:0px 0px 6px rgba(0, 0, 0, 0.72);
|
|
14
|
+
--el-box-shadow-dark:0px 16px 48px 16px rgba(0, 0, 0, 0.72),0px 12px 32px #000000,0px 8px 16px -8px #000000;--el-bg-color-page:#0a0a0a;
|
|
15
|
+
--el-bg-color-overlay:#1d1e1f;--el-text-color-primary:#E5EAF3;--el-text-color-regular:#CFD3DC;--el-text-color-secondary:#A3A6AD;--el-text-color-placeholder:#8D9095;--el-text-color-disabled:#6C6E72;
|
|
16
|
+
--el-border-color-darker:#636466;--el-border-color-dark:#58585B;--el-border-color:#4C4D4F;--el-border-color-light:#414243;--el-border-color-lighter:#363637;--el-border-color-extra-light:#2B2B2C;
|
|
17
|
+
--el-fill-color-darker:#424243;--el-fill-color-dark:#39393A;--el-fill-color:#303030;--el-fill-color-light:#262727;--el-fill-color-lighter:#1D1D1D;--el-fill-color-extra-light:#191919;--el-fill-color-blank:transparent;
|
|
18
|
+
--el-mask-color:rgba(0, 0, 0, 0.8);--el-mask-color-extra-light:rgba(0, 0, 0, 0.3)}html.dark .el-button{--el-button-disabled-text-color:rgba(255, 255, 255, 0.5)}
|
|
19
|
+
html.dark .el-card{--el-card-bg-color:#121a22}html.dark .el-empty{--el-empty-fill-color-0:var(--el-color-black);--el-empty-fill-color-1:#4b4b52;--el-empty-fill-color-2:#36383d;--el-empty-fill-color-3:#1e1e20;--el-empty-fill-color-4:#262629;--el-empty-fill-color-5:#202124;--el-empty-fill-color-6:#212224;--el-empty-fill-color-7:#1b1c1f;--el-empty-fill-color-8:#1c1d1f;--el-empty-fill-color-9:#18181a}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
html {
|
|
2
|
+
height: 100%;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
body {
|
|
6
|
+
font-size:medium;
|
|
7
|
+
height: 100%;
|
|
8
|
+
margin: 0px !important;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@font-face {
|
|
12
|
+
font-family: "futura";
|
|
13
|
+
src: url("../../assets/futura.ttf");
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
#app {
|
|
17
|
+
height: 100%;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.container {
|
|
21
|
+
padding-top: 10px;
|
|
22
|
+
padding-left: 10px;
|
|
23
|
+
padding-right: 10px;
|
|
24
|
+
flex-grow: 1;
|
|
25
|
+
width: calc(100% - 20px);
|
|
26
|
+
max-width: 1650px !important;
|
|
27
|
+
margin-top: 0px !important;
|
|
28
|
+
margin: 0 auto;
|
|
29
|
+
height: auto;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.dark .container {
|
|
33
|
+
padding-top: 10px;
|
|
34
|
+
padding-left: 10px;
|
|
35
|
+
padding-right: 10px;
|
|
36
|
+
flex-grow: 1;
|
|
37
|
+
width: calc(100% - 20px);
|
|
38
|
+
max-width: 1650px !important;
|
|
39
|
+
margin-top: 0px !important;
|
|
40
|
+
margin: 0 auto;
|
|
41
|
+
height: auto;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.dark .main-container {
|
|
45
|
+
margin-top: 10px !important;
|
|
46
|
+
display: flex;
|
|
47
|
+
margin: 0 auto;
|
|
48
|
+
max-width: 1650px;
|
|
49
|
+
height: auto;
|
|
50
|
+
border: 1px solid #242633;
|
|
51
|
+
border-radius: 15px !important;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.main-container {
|
|
55
|
+
margin-top: 10px !important;
|
|
56
|
+
margin-left: auto;
|
|
57
|
+
margin-right: auto;
|
|
58
|
+
border: 1px solid #d5daee;
|
|
59
|
+
box-shadow: 0 0 50px 0 hsla(0, 0%, 5%, .1);
|
|
60
|
+
border-radius: 15px;
|
|
61
|
+
display: flex;
|
|
62
|
+
max-width: 1650px;
|
|
63
|
+
height: auto;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
/* 暗黑模式 - 增加body选择器提高特异性 */
|
|
68
|
+
html.dark ::-webkit-scrollbar-track {
|
|
69
|
+
background: rgba(0, 0, 0, 0.1) !important;
|
|
70
|
+
border-radius: 4px !important;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
html.dark ::-webkit-scrollbar-thumb {
|
|
74
|
+
background: #2e3842 !important;
|
|
75
|
+
border-radius: 4px !important;
|
|
76
|
+
height: 30px !important;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* 关键:这里必须是直接选择器,不能有空格 */
|
|
80
|
+
html.dark ::-webkit-scrollbar-thumb:hover {
|
|
81
|
+
background: #252f3b !important;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
html.dark ::-webkit-scrollbar-button {
|
|
85
|
+
display: none !important;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
html.dark ::-webkit-scrollbar-corner {
|
|
89
|
+
background: transparent !important;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* 非暗黑模式 - 增加body:not()选择器 */
|
|
93
|
+
html:not(.dark) ::-webkit-scrollbar-track {
|
|
94
|
+
background: #f9f9f9 !important;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
html:not(.dark) ::-webkit-scrollbar-thumb {
|
|
98
|
+
background: #f1f0f0 !important;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
html:not(.dark) ::-webkit-scrollbar-thumb:hover {
|
|
102
|
+
background: #f1f0f0 !important;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* 共同样式 */
|
|
106
|
+
::-webkit-scrollbar {
|
|
107
|
+
width: 0px;
|
|
108
|
+
height: 5px;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
::-webkit-scrollbar-button {
|
|
112
|
+
display: none;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
::-webkit-scrollbar-corner {
|
|
116
|
+
background: transparent;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
.dark .el-overlay {
|
|
122
|
+
background-color: rgb(27, 36, 46, 0.7) !important;
|
|
123
|
+
/* 你可以调整颜色和透明度 */
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.el-overlay {
|
|
127
|
+
background-color: rgb(249, 249, 250, 0.7) !important;
|
|
128
|
+
/* 你可以调整颜色和透明度 */
|
|
129
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
|
|
2
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="640" height="480"><defs><path id="a" fill="#ffde00" d="M-.6.8L0-1 .6.8-1-.3h2z"/></defs><path fill="#de2910" d="M0 0h640v480H0z"/><use width="30" height="20" transform="matrix(71.9991 0 0 72 120 120)" xlink:href="#a"/><use width="30" height="20" transform="matrix(-12.33562 -20.5871 20.58684 -12.33577 240.3 48)" xlink:href="#a"/><use width="30" height="20" transform="matrix(-3.38573 -23.75998 23.75968 -3.38578 288 95.8)" xlink:href="#a"/><use width="30" height="20" transform="matrix(6.5991 -23.0749 23.0746 6.59919 288 168)" xlink:href="#a"/><use width="30" height="20" transform="matrix(14.9991 -18.73557 18.73533 14.99929 240 216)" xlink:href="#a"/></svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 30">
|
|
2
|
+
<clipPath id="a">
|
|
3
|
+
<path d="M0 0v30h60V0z"/>
|
|
4
|
+
</clipPath>
|
|
5
|
+
<clipPath id="b">
|
|
6
|
+
<path d="M30 15h30v15zv15H0zH0V0zV0h30z"/>
|
|
7
|
+
</clipPath>
|
|
8
|
+
<g clip-path="url(#a)">
|
|
9
|
+
<path d="M0 0v30h60V0z" fill="#012169"/>
|
|
10
|
+
<path d="M0 0l60 30m0-30L0 30" stroke="#fff" stroke-width="6"/>
|
|
11
|
+
<path d="M0 0l60 30m0-30L0 30" clip-path="url(#b)" stroke="#C8102E" stroke-width="4"/>
|
|
12
|
+
<path d="M30 0v30M0 15h60" stroke="#fff" stroke-width="10"/>
|
|
13
|
+
<path d="M30 0v30M0 15h60" stroke="#C8102E" stroke-width="6"/>
|
|
14
|
+
</g>
|
|
15
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div v-show="flag" class="foot-btn">
|
|
3
|
+
<el-button type="info" size="large" @click="toggleDrawer">
|
|
4
|
+
<el-icon>
|
|
5
|
+
<Grid />
|
|
6
|
+
</el-icon>
|
|
7
|
+
{{ appsLabel }}
|
|
8
|
+
</el-button>
|
|
9
|
+
<el-button type="info" size="large" @click="toHomePage">
|
|
10
|
+
<el-icon>
|
|
11
|
+
<HomeFilled />
|
|
12
|
+
</el-icon>
|
|
13
|
+
{{ homeLabel }}
|
|
14
|
+
</el-button>
|
|
15
|
+
<el-button type="info" size="large" @click="toSetting" >
|
|
16
|
+
<el-icon>
|
|
17
|
+
<Tools />
|
|
18
|
+
</el-icon>
|
|
19
|
+
{{ settingLabel }}
|
|
20
|
+
</el-button>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<el-drawer v-model="drawer" direction="btt" size="100%" title="Apps">
|
|
24
|
+
<div class="container">
|
|
25
|
+
<el-row :gutter="20">
|
|
26
|
+
<el-col
|
|
27
|
+
:xs="24"
|
|
28
|
+
:sm="24"
|
|
29
|
+
:md="12"
|
|
30
|
+
:lg="12"
|
|
31
|
+
:xl="12"
|
|
32
|
+
v-for="category in categoryWithApps"
|
|
33
|
+
:key="category.id"
|
|
34
|
+
>
|
|
35
|
+
<div class="bg-purple">
|
|
36
|
+
<div style="padding: 4px 12px">
|
|
37
|
+
<div style="margin-bottom: 30px">
|
|
38
|
+
<h2 class="h4">{{ category.name }}</h2>
|
|
39
|
+
</div>
|
|
40
|
+
<el-row>
|
|
41
|
+
<el-col
|
|
42
|
+
class="app-container"
|
|
43
|
+
v-for="app in category.apps"
|
|
44
|
+
:key="app.id"
|
|
45
|
+
:xs="12"
|
|
46
|
+
:sm="12"
|
|
47
|
+
:md="4"
|
|
48
|
+
:lg="4"
|
|
49
|
+
:xl="4"
|
|
50
|
+
>
|
|
51
|
+
<div class="app-box">
|
|
52
|
+
<a class="app" v-if="app.icontype==='ELEMENT-ICON'" :href="app.applink" target="_self" :style="{backgroundColor:category.color}">
|
|
53
|
+
<el-icon class="app-icon" >
|
|
54
|
+
<component :is="app.icon" />
|
|
55
|
+
</el-icon>
|
|
56
|
+
</a>
|
|
57
|
+
<a class="app" v-if="app.icontype==='PIC'" :href="app.applink" target="_self" :style="{backgroundColor:category.color}">
|
|
58
|
+
<el-image :src="app.pic" class="pic-icon"></el-image>
|
|
59
|
+
</a>
|
|
60
|
+
</div>
|
|
61
|
+
<div class="text-center" style="margin-top: 10px">
|
|
62
|
+
{{ app.appidalias }}
|
|
63
|
+
</div>
|
|
64
|
+
</el-col>
|
|
65
|
+
</el-row>
|
|
66
|
+
</div>
|
|
67
|
+
</div>
|
|
68
|
+
</el-col>
|
|
69
|
+
</el-row>
|
|
70
|
+
</div>
|
|
71
|
+
</el-drawer>
|
|
72
|
+
</template>
|
|
73
|
+
|
|
74
|
+
<script>
|
|
75
|
+
import { mapGetters } from "vuex";
|
|
76
|
+
import { getCategoryWithApps } from "../../api/application/index";
|
|
77
|
+
import en from "../../lang/en";
|
|
78
|
+
import zh from "../../lang/zh";
|
|
79
|
+
export default {
|
|
80
|
+
name: "self-footer",
|
|
81
|
+
data() {
|
|
82
|
+
return {
|
|
83
|
+
icon: "Shop",
|
|
84
|
+
drawer: false,
|
|
85
|
+
flag: true,
|
|
86
|
+
categoryWithApps: {},
|
|
87
|
+
homeLabel: "",
|
|
88
|
+
appsLabel: "",
|
|
89
|
+
settingLabel: "",
|
|
90
|
+
};
|
|
91
|
+
},
|
|
92
|
+
computed: {
|
|
93
|
+
...mapGetters(["language"]),
|
|
94
|
+
language() {
|
|
95
|
+
return this.$store.state.user.language;
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
methods: {
|
|
99
|
+
toSetting(){
|
|
100
|
+
window.location.href = "/apps/communication/";
|
|
101
|
+
},
|
|
102
|
+
toHomePage(){
|
|
103
|
+
window.location.href = "/home";
|
|
104
|
+
},
|
|
105
|
+
toggleDrawer() {
|
|
106
|
+
this.$data.drawer = !this.$data.drawer;
|
|
107
|
+
if (this.drawer) {
|
|
108
|
+
this.getCategoryWithApps(localStorage.getItem("locale"));
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
getCategoryWithApps(language) {
|
|
112
|
+
getCategoryWithApps().then((response) => {
|
|
113
|
+
this.categoryWithApps = response.data;
|
|
114
|
+
this.categoryWithApps.forEach((category)=>{
|
|
115
|
+
try{
|
|
116
|
+
category.name = JSON.parse(category.name)[language];
|
|
117
|
+
}catch(error){
|
|
118
|
+
// do noting
|
|
119
|
+
}
|
|
120
|
+
category.apps.forEach(app=>{
|
|
121
|
+
try{
|
|
122
|
+
app.appidalias = JSON.parse(app.appidalias)[language];
|
|
123
|
+
}catch(error){
|
|
124
|
+
// do nothing
|
|
125
|
+
}
|
|
126
|
+
})
|
|
127
|
+
});
|
|
128
|
+
if (this.categoryWithApps && this.categoryWithApps.length !== 0) {
|
|
129
|
+
this.categoryWithApps.forEach((category) => {
|
|
130
|
+
if (category.name === "non-group") {
|
|
131
|
+
category.name = "Non-Group";
|
|
132
|
+
}
|
|
133
|
+
category.apps.forEach((app) => {
|
|
134
|
+
app.applink = "/apps/" + app.applink + "/";
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
created() {
|
|
142
|
+
if (this.language == "en-US") {
|
|
143
|
+
this.appsLabel = en.footerApps;
|
|
144
|
+
this.homeLabel = en.footerHome;
|
|
145
|
+
this.settingLabel = en.footerSetting;
|
|
146
|
+
} else if (this.language == "zh-CN") {
|
|
147
|
+
this.appsLabel = zh.footerApps;
|
|
148
|
+
this.homeLabel = zh.footerHome;
|
|
149
|
+
this.settingLabel = zh.footerSetting;
|
|
150
|
+
} else {
|
|
151
|
+
this.appsLabel = zh.footerApps;
|
|
152
|
+
this.homeLabel = zh.footerHome;
|
|
153
|
+
this.settingLabel = zh.footerSetting;
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
watch: {
|
|
157
|
+
$route(to) {
|
|
158
|
+
if (to.path == "/login") {
|
|
159
|
+
this.flag = false;
|
|
160
|
+
} else {
|
|
161
|
+
this.flag = true;
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
language() {
|
|
165
|
+
if (this.language == "en-US") {
|
|
166
|
+
this.appsLabel = en.footerApps;
|
|
167
|
+
this.homeLabel = en.footerHome;
|
|
168
|
+
this.settingLabel = en.footerSetting;
|
|
169
|
+
} else if (this.language == "zh-CN") {
|
|
170
|
+
this.appsLabel = zh.footerApps;
|
|
171
|
+
this.homeLabel = zh.footerHome;
|
|
172
|
+
this.settingLabel = zh.footerSetting;
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
</script>
|
|
178
|
+
|
|
179
|
+
<style scoped>
|
|
180
|
+
.foot-btn {
|
|
181
|
+
justify-content: center !important;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.el-icon {
|
|
185
|
+
margin-right: 10px;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.container {
|
|
189
|
+
max-width: 100%;
|
|
190
|
+
margin-right: auto;
|
|
191
|
+
margin-left: auto;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.el-col {
|
|
195
|
+
margin-bottom: 10px;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.text-center {
|
|
199
|
+
text-align: center !important;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.app-box {
|
|
203
|
+
cursor: pointer;
|
|
204
|
+
transition: transform 0.2s;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.app-box:hover {
|
|
208
|
+
transform: scale(1.2);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.app {
|
|
212
|
+
width: 80px;
|
|
213
|
+
height: 80px;
|
|
214
|
+
background-color: #227bfd;
|
|
215
|
+
border-radius: 10px;
|
|
216
|
+
margin: auto;
|
|
217
|
+
display: block;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.app-icon {
|
|
221
|
+
color: white;
|
|
222
|
+
font-size: 40px;
|
|
223
|
+
margin-top: 25%;
|
|
224
|
+
margin-left: 25%;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.foot-btn {
|
|
228
|
+
position: fixed;
|
|
229
|
+
bottom: 0;
|
|
230
|
+
left: 50%;
|
|
231
|
+
transform: translateX(-50%);
|
|
232
|
+
display: flex;
|
|
233
|
+
z-index: 999;
|
|
234
|
+
height: 40px;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.pic-icon {
|
|
238
|
+
color: white;
|
|
239
|
+
width: 80px;
|
|
240
|
+
height: 80px;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.el-button {
|
|
244
|
+
border-bottom-right-radius: 0 !important;
|
|
245
|
+
border-bottom-left-radius: 0 !important;
|
|
246
|
+
width: 125px;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.dark .bg-purple {
|
|
250
|
+
background: #343a40;
|
|
251
|
+
border-radius: 0.375rem;
|
|
252
|
+
height: 100%;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.bg-purple {
|
|
256
|
+
background: #dcdfe6;
|
|
257
|
+
border-radius: 0.375rem;
|
|
258
|
+
height: 100%;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.app-container {
|
|
262
|
+
padding: 4px 12px;
|
|
263
|
+
}
|
|
264
|
+
</style>
|