Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
bdc
/
bdcsjsb-web
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
4279e5fc
authored
2023-05-11 16:38:52 +0800
by
renchao@pashanhoo.com
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
style:数据上报
1 parent
8a640b55
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
244 additions
and
256 deletions
src/layout1/components/Sidebar/index.vue
src/utils/theme.js
src/views/loginsb/index.vue
src/layout1/components/Sidebar/index.vue
View file @
4279e5f
<!--
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-0
3-27 14:09:57
* @LastEditTime: 2023-0
5-11 16:38:29
-->
<
template
>
<div>
...
...
@@ -9,7 +9,7 @@
<el-menu
router
:default-active=
"activeMenu"
:background-color=
"variables.menuBg"
:text-color=
"variables.menuText"
:unique-opened=
"true"
:active-text-color=
"variables.menuActiveText"
:collapse-transition=
"false"
mode=
"vertical"
>
<!-- 权限菜单 -->
<sidebar-item
v-for=
"route in permission_routes.slice(
5
)"
:key=
"route.path"
:item=
"route"
<sidebar-item
v-for=
"route in permission_routes.slice(
4
)"
:key=
"route.path"
:item=
"route"
:base-path=
"route.path"
/>
<!-- 菜单全部展示 -->
<!--
<sidebar-item
v-for=
"route in asyncRoutes"
:key=
"route.path"
:item=
"route"
:base-path=
"route.path"
/>
-->
...
...
src/utils/theme.js
View file @
4279e5f
/*
* @Description:
* @Autor: renchao
* @LastEditTime: 2023-05-11 16:
25:43
* @LastEditTime: 2023-05-11 16:
33:18
*/
import
Vue
from
'vue'
export
default
function
getTheme
(
theme
=
Vue
.
prototype
.
BASE_API
.
THEME
)
{
const
resultMap
=
{
'sb'
:
function
()
{
return
import
(
"@/styles/sbPublic.scss"
);
},
'default'
:
function
()
{
throw
new
Error
(
`Unsupported theme:
${
theme
}
`
);
},
};
const
result
=
resultMap
[
theme
]();
if
(
result
instanceof
Promise
)
{
return
result
;
}
else
{
return
resultMap
.
default
();
}
export
default
function
getTheme
()
{
import
(
"@/styles/sbPublic.scss"
);
}
\ No newline at end of file
...
...
src/views/loginsb/index.vue
View file @
4279e5f
...
...
@@ -37,283 +37,285 @@
</
template
>
<
script
>
import
{
getMenuInfo
}
from
"@/api/user"
;
import
{
loginIn
}
from
"@/api/login.js"
;
export
default
{
name
:
"sbLogin"
,
data
()
{
return
{
user
:
{
account
:
""
,
password
:
""
,
yz
:
""
,
checkStatus
:
false
,
import
{
getMenuInfo
}
from
"@/api/user"
;
import
{
loginIn
}
from
"@/api/login.js"
;
export
default
{
name
:
"sbLogin"
,
data
()
{
return
{
user
:
{
account
:
""
,
password
:
""
,
yz
:
""
,
checkStatus
:
false
,
},
productName
:
""
,
rules
:
{
account
:
[{
required
:
true
,
message
:
"请填写帐号"
,
trigger
:
"blur"
}],
password
:
[{
required
:
true
,
message
:
"请填写密码"
,
trigger
:
"blur"
}],
},
};
},
methods
:
{
verification
()
{
let
str
=
'1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ'
,
code
=
''
,
i
=
0
;
for
(;
i
++
<
4
;)
code
+=
str
[
Math
.
floor
(
Math
.
random
()
*
(
str
.
length
-
0
)
+
0
)];
setTimeout
(()
=>
{
let
canvas
=
document
.
getElementById
(
"s-canvas"
),
ctx
=
canvas
.
getContext
(
"2d"
);
canvas
.
width
=
80
;
canvas
.
height
=
28
;
ctx
.
fillStyle
=
'#ffffff'
;
ctx
.
fillRect
(
0
,
0
,
80
,
28
);
for
(
i
=
0
;
i
<
code
.
length
;
i
++
)
{
this
.
drawText
(
ctx
,
code
[
i
],
i
);
}
},
0
);
},
productName
:
""
,
rules
:
{
account
:
[{
required
:
true
,
message
:
"请填写帐号"
,
trigger
:
"blur"
}],
password
:
[{
required
:
true
,
message
:
"请填写密码"
,
trigger
:
"blur"
}],
drawText
(
ctx
,
txt
,
i
)
{
ctx
.
fillStyle
=
this
.
randomColor
(
50
,
160
);
ctx
.
font
=
"18px SimHei"
;
let
x
=
(
i
+
1
)
*
(
80
/
(
4
+
1
)),
y
=
this
.
randomNum
(
18
,
28
-
5
);
ctx
.
translate
(
x
,
y
);
ctx
.
fillText
(
txt
,
0
,
0
);
ctx
.
rotate
((
-
0
*
Math
.
PI
)
/
180
);
ctx
.
translate
(
-
x
,
-
y
);
},
};
},
methods
:
{
verification
()
{
let
str
=
'1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ'
,
code
=
''
,
i
=
0
;
for
(;
i
++
<
4
;)
code
+=
str
[
Math
.
floor
(
Math
.
random
()
*
(
str
.
length
-
0
)
+
0
)];
setTimeout
(()
=>
{
let
canvas
=
document
.
getElementById
(
"s-canvas"
),
ctx
=
canvas
.
getContext
(
"2d"
);
canvas
.
width
=
80
;
canvas
.
height
=
28
;
ctx
.
fillStyle
=
'#ffffff'
;
ctx
.
fillRect
(
0
,
0
,
80
,
28
);
for
(
i
=
0
;
i
<
code
.
length
;
i
++
)
{
this
.
drawText
(
ctx
,
code
[
i
],
i
);
}
},
0
);
},
drawText
(
ctx
,
txt
,
i
)
{
ctx
.
fillStyle
=
this
.
randomColor
(
50
,
160
);
ctx
.
font
=
"18px SimHei"
;
let
x
=
(
i
+
1
)
*
(
80
/
(
4
+
1
)),
y
=
this
.
randomNum
(
18
,
28
-
5
);
ctx
.
translate
(
x
,
y
);
ctx
.
fillText
(
txt
,
0
,
0
);
ctx
.
rotate
((
-
0
*
Math
.
PI
)
/
180
);
ctx
.
translate
(
-
x
,
-
y
);
},
randomColor
(
min
,
max
)
{
let
r
=
this
.
randomNum
(
min
,
max
);
let
g
=
this
.
randomNum
(
min
,
max
);
let
b
=
this
.
randomNum
(
min
,
max
);
return
"rgb("
+
r
+
","
+
g
+
","
+
b
+
")"
;
},
randomNum
(
min
,
max
)
{
return
Math
.
floor
(
Math
.
random
()
*
(
max
-
min
)
+
min
);
},
//记住用户名
checkUserName
:
function
(
flag
)
{
this
.
user
.
checkStatus
=
flag
;
if
(
this
.
user
.
checkStatus
)
{
localStorage
.
setItem
(
"accountId"
,
this
.
user
.
account
);
let
name
=
localStorage
.
getItem
(
"accountId"
);
if
(
name
===
""
)
{
return
;
}
else
{
this
.
user
.
account
=
name
;
}
}
else
{
this
.
user
.
account
=
localStorage
.
getItem
(
"accountId"
);
}
},
login
(
user
)
{
var
self
=
this
this
.
$refs
[
user
].
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
let
res
=
await
loginIn
(
self
.
user
.
account
,
self
.
user
.
password
)
if
(
res
.
status
==
1
)
{
let
code
=
this
.
BASE_API
.
CODE
;
localStorage
.
setItem
(
"token"
,
`Bearer
${
res
.
content
}
`
);
const
{
result
:
getMenuData
}
=
(
await
getMenuInfo
(
code
))
||
[];
let
path1
=
JSON
.
parse
(
getMenuData
[
0
].
metadata
)?.
path
+
'/'
+
JSON
.
parse
(
getMenuData
[
0
].
children
[
0
].
metadata
)?.
path
//登录成功后需判断有无重定向,没有重定向则跳转首页
const
accessRoutes
=
await
this
.
$store
.
dispatch
(
"permission/generateRoutes"
,
getMenuData
);
this
.
$router
.
addRoutes
([
...
accessRoutes
,
{
path
:
"*"
,
redirect
:
"/404"
,
hidden
:
true
},
]);
this
.
$router
.
replace
(
this
.
$route
.
query
.
redirect
||
path1
);
randomColor
(
min
,
max
)
{
let
r
=
this
.
randomNum
(
min
,
max
);
let
g
=
this
.
randomNum
(
min
,
max
);
let
b
=
this
.
randomNum
(
min
,
max
);
return
"rgb("
+
r
+
","
+
g
+
","
+
b
+
")"
;
},
randomNum
(
min
,
max
)
{
return
Math
.
floor
(
Math
.
random
()
*
(
max
-
min
)
+
min
);
},
//记住用户名
checkUserName
:
function
(
flag
)
{
this
.
user
.
checkStatus
=
flag
;
if
(
this
.
user
.
checkStatus
)
{
localStorage
.
setItem
(
"accountId"
,
this
.
user
.
account
);
let
name
=
localStorage
.
getItem
(
"accountId"
);
if
(
name
===
""
)
{
return
;
}
else
{
this
.
$message
.
error
(
res
.
message
)
;
this
.
user
.
account
=
name
;
}
}
else
{
this
.
user
.
account
=
localStorage
.
getItem
(
"accountId"
);
}
})
},
login
(
user
)
{
var
self
=
this
this
.
$refs
[
user
].
validate
(
async
(
valid
)
=>
{
if
(
valid
)
{
let
res
=
await
loginIn
(
self
.
user
.
account
,
self
.
user
.
password
)
if
(
res
.
status
==
1
)
{
let
code
=
this
.
BASE_API
.
CODE
;
localStorage
.
setItem
(
"token"
,
`Bearer
${
res
.
content
}
`
);
const
{
result
:
getMenuData
}
=
(
await
getMenuInfo
(
code
))
||
[];
let
path1
=
JSON
.
parse
(
getMenuData
[
0
].
metadata
)?.
path
+
'/'
+
JSON
.
parse
(
getMenuData
[
0
].
children
[
0
].
metadata
)?.
path
console
.
log
(
getMenuData
,
path1
,
'path1path1path1path1path1'
);
//登录成功后需判断有无重定向,没有重定向则跳转首页
const
accessRoutes
=
await
this
.
$store
.
dispatch
(
"permission/generateRoutes"
,
getMenuData
);
this
.
$router
.
addRoutes
([
...
accessRoutes
,
{
path
:
"*"
,
redirect
:
"/404"
,
hidden
:
true
},
]);
this
.
$router
.
replace
(
this
.
$route
.
query
.
redirect
||
path1
);
}
else
{
this
.
$message
.
error
(
res
.
message
);
}
}
})
}
}
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
.username
,
.password
,
.yz
{
position
:
relative
;
.username
,
.password
,
.yz
{
position
:
relative
;
&:before
{
content
:
""
;
display
:
block
;
width
:
16px
;
height
:
16px
;
position
:
absolute
;
left
:
10px
;
top
:
7px
;
background-size
:
100%
100%
;
&:before
{
content
:
""
;
display
:
block
;
width
:
16px
;
height
:
16px
;
position
:
absolute
;
left
:
10px
;
top
:
7px
;
background-size
:
100%
100%
;
}
/
deep
/
.el-input__inner
{
color
:
#000
!important
;
text-indent
:
24px
;
}
}
/
deep
/
.el-input__inner
{
color
:
#000
!important
;
text-indent
:
24px
;
.flex-container
{
position
:
relative
;
display
:
-webkit-flex
;
display
:
flex
;
}
}
.flex-container
{
position
:
relative
;
display
:
-webkit-flex
;
display
:
flex
;
}
.flex-input
{
width
:
100%
;
}
.flex-input
{
width
:
100%
;
}
.flex-line
{
position
:
absolute
;
width
:
1px
;
height
:
64%
;
margin
:
5px
;
right
:
36%
;
background-color
:
#cccccc
;
}
.flex-line
{
position
:
absolute
;
width
:
1px
;
height
:
64%
;
margin
:
5px
;
right
:
36%
;
background-color
:
#CCCCCC
;
}
.flex-img
{
position
:
absolute
;
margin
:
2px
;
right
:
16%
;
}
.flex-img
{
position
:
absolute
;
margin
:
2
px
;
right
:
16
%
;
}
.flex-renovate
{
position
:
absolute
;
margin
:
1
px
;
right
:
3
%
;
}
.flex-renovate
{
position
:
absolute
;
margin
:
1px
;
right
:
3%
;
}
#renovate
{
color
:
#3f8fea
;
font-size
:
16px
;
font-weight
:
700
;
cursor
:
pointer
;
}
#renovate
{
color
:
#3F8FEA
;
font-size
:
16px
;
font-weight
:
700
;
cursor
:
pointer
;
}
.username
::before
{
background-image
:
url(../../image/userlogo.png)
;
}
.username
::before
{
background-image
:
url(../../image/user
logo.png)
;
}
.password
::before
{
background-image
:
url(../../image/pass
logo.png)
;
}
.password
::before
{
background-image
:
url(../../image/pass
logo.png)
;
}
.yz
::before
{
background-image
:
url(../../image/yz
logo.png)
;
}
.yz
::before
{
background-image
:
url(../../image/yzlogo.png)
;
}
.bg
{
width
:
100%
;
height
:
100%
;
min-width
:
1440px
;
min-height
:
560px
;
background
:
url(../../image/loginBoxsb.png)
no-repeat
;
background-size
:
100%
100%
;
overflow
:
hidden
;
position
:
relative
;
}
.bg
{
width
:
100%
;
height
:
100%
;
min-width
:
1440px
;
min-height
:
560px
;
background
:
url(../../image/loginBoxsb.png)
no-repeat
;
background-size
:
100%
100%
;
overflow
:
hidden
;
position
:
relative
;
}
.title
{
width
:
24%
;
height
:
6%
;
top
:
20%
;
right
:
38%
;
position
:
absolute
;
.title
{
width
:
24%
;
height
:
6%
;
top
:
20%
;
right
:
38%
;
position
:
absolute
;
img
{
width
:
60px
;
height
:
60px
;
top
:
0%
;
left
:
2%
;
position
:
absolute
;
}
img
{
width
:
60px
;
height
:
60px
;
top
:
0%
;
left
:
2%
;
position
:
absolute
;
h2
{
top
:
25%
;
left
:
22%
;
position
:
absolute
;
width
:
383px
;
height
:
42px
;
font-size
:
28px
;
font-weight
:
600
;
color
:
#ffffff
;
text-shadow
:
0px
4px
4px
#002c95
;
}
}
h2
{
top
:
25%
;
left
:
22%
;
.login-inner-bg
{
background
:
white
;
width
:
24.6%
;
min-width
:
360px
;
top
:
30%
;
right
:
38%
;
position
:
absolute
;
width
:
383px
;
height
:
42px
;
font-size
:
28px
;
font-weight
:
600
;
color
:
#ffffff
;
text-shadow
:
0px
4px
4px
#002c95
;
background-size
:
100%
100%
;
box-sizing
:
border-box
;
padding
:
56px
;
}
}
.login-inner-bg
{
background
:
white
;
width
:
24.6%
;
min-width
:
360px
;
top
:
30%
;
right
:
38%
;
position
:
absolute
;
background-size
:
100%
100%
;
box-sizing
:
border-box
;
padding
:
56px
;
}
.login
{
.user_style
{
h3
{
font-weight
:
normal
;
text-align
:
center
;
margin
:
-10px
auto
28px
;
font-weight
:
400
;
width
:
125px
;
height
:
29px
;
font-size
:
20px
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
color
:
#333333
;
}
}
.login
{
.user_style
{
h3
{
font-weight
:
normal
;
text-align
:
center
;
margin
:
-10px
auto
28px
;
font-weight
:
400
;
width
:
125px
;
height
:
29px
;
font-size
:
20px
;
font-family
:
Source
Han
Sans
CN
;
font-weight
:
400
;
color
:
#333333
;
.btn
{
width
:
100%
;
height
:
6vh
;
background-color
:
#00c2de
;
border-radius
:
5px
;
font-size
:
1.4vw
;
color
:
#000
;
}
}
.btn
{
width
:
100%
;
height
:
6vh
;
background-color
:
#00c2de
;
border-radius
:
5px
;
font-size
:
1.4vw
;
color
:
#000
;
.btn
:hover
{
cursor
:
pointer
;
background-color
:
#2d8cf0
;
}
}
.btn
:hover
{
cursor
:
pointer
;
background-color
:
#2d8cf0
;
}
}
.login
#loginform
{
.el-form-item
{
margin-bottom
:
24px
!important
;
}
.login
#loginform
{
.el-form-item
{
margin-bottom
:
24px
!important
;
}
.login-btn
{
margin-top
:
30px
!important
;
}
.login-btn
{
margin-top
:
30px
!important
;
}
.el-button
{
font-size
:
18px
;
border-radius
:
0
;
background
:
#4162d8
!important
;
color
:
#ffffff
!important
;
cursor
:
pointer
!important
;
}
.el-button
{
font-size
:
18px
;
border-radius
:
0
;
background
:
#4162d8
!important
;
color
:
#ffffff
!important
;
cursor
:
pointer
!important
;
}
.el-input__inner
{
width
:
100%
!important
;
}
.el-input__inner
{
width
:
100%
!important
;
.el-checkbox__label
{
color
:
#fff
;
}
}
.el-checkbox__label
{
color
:
#fff
;
.inputUser
.ivu-input
{
padding
:
6px
24px
!important
;
border
:
1px
solid
#9f9f9f
!important
;
}
}
.inputUser
.ivu-input
{
padding
:
6px
24px
!important
;
border
:
1px
solid
#9f9f9f
!important
;
}
</
style
>
...
...
Please
register
or
sign in
to post a comment