Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
client
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
0860c6c6
authored
Apr 29, 2024
by
赵月辉
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改登录注册页面样式
parent
48b9bec6
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
229 additions
and
181 deletions
+229
-181
src/assets/images/login-background.jpg
+0
-0
src/assets/images/login-background.png
+0
-0
src/views/index.vue
+0
-4
src/views/login.vue
+116
-90
src/views/register.vue
+113
-87
No files found.
src/assets/images/login-background.jpg
deleted
100644 → 0
View file @
48b9bec6
509 KB
src/assets/images/login-background.png
0 → 100644
View file @
0860c6c6
This diff is collapsed.
Click to expand it.
src/views/index.vue
View file @
0860c6c6
...
...
@@ -167,7 +167,6 @@ const bannerImgList = ref([])
function
getBanner
()
{
banner
().
then
(
res
=>
{
bannerImgList
.
value
=
res
.
data
console
.
log
(
res
)
})
}
...
...
@@ -205,9 +204,6 @@ getInformation()
function
openAssembly
(
data
)
{
window
.
open
(
data
.
url
)
}
function
openPartnership
()
{
}
</
script
>
<
style
scoped
lang=
"scss"
>
...
...
src/views/login.vue
View file @
0860c6c6
...
...
@@ -4,163 +4,170 @@
<h3
class=
"title"
>
先进计算公共服务平台
</h3>
<el-form-item
prop=
"username"
>
<el-input
v-model=
"loginForm.username"
type=
"text"
size=
"large"
auto-complete=
"off"
placeholder=
"账号"
>
<template
#
prefix
><svg-icon
icon-class=
"user"
class=
"el-input__icon input-icon"
/></
template
>
v-model=
"loginForm.username"
type=
"text"
size=
"large"
auto-complete=
"off"
placeholder=
"账号"
>
<template
#
prefix
>
<svg-icon
icon-class=
"user"
class=
"el-input__icon input-icon"
/>
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"password"
>
<el-input
v-model=
"loginForm.password"
type=
"password"
size=
"large"
auto-complete=
"off"
placeholder=
"密码"
@
keyup
.
enter=
"handleLogin"
>
<
template
#
prefix
><svg-icon
icon-class=
"password"
class=
"el-input__icon input-icon"
/></
template
>
v-model=
"loginForm.password"
type=
"password"
size=
"large"
auto-complete=
"off"
placeholder=
"密码"
@
keyup
.
enter=
"handleLogin"
>
<
template
#
prefix
>
<svg-icon
icon-class=
"password"
class=
"el-input__icon input-icon"
/>
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"code"
v-if=
"captchaEnabled"
>
<el-input
v-model=
"loginForm.code"
size=
"large"
auto-complete=
"off"
placeholder=
"验证码"
style=
"width: 63%"
@
keyup
.
enter=
"handleLogin"
>
<
template
#
prefix
><svg-icon
icon-class=
"validCode"
class=
"el-input__icon input-icon"
/></
template
>
v-model=
"loginForm.code"
size=
"large"
auto-complete=
"off"
placeholder=
"验证码"
style=
"width: 64%"
@
keyup
.
enter=
"handleLogin"
>
<
template
#
prefix
>
<svg-icon
icon-class=
"validCode"
class=
"el-input__icon input-icon"
/>
</
template
>
</el-input>
<div
class=
"login-code"
>
<img
:src=
"codeUrl"
@
click=
"getCode"
class=
"login-code-img"
/>
</div>
</el-form-item>
<el-checkbox
v-model=
"loginForm.rememberMe"
style=
"margin:0px 0px 25px 0px;"
>
记住密码
</el-checkbox>
<div
class=
"flex-align-center flex-space-between mb20"
>
<el-checkbox
v-model=
"loginForm.rememberMe"
>
记住密码
</el-checkbox>
<div
v-if=
"register"
>
<router-link
class=
"link-type"
:to=
"'/register'"
>
立即注册
</router-link>
</div>
</div>
<el-form-item
style=
"width:100%;"
>
<el-button
:loading=
"loading"
size=
"large"
type=
"primary"
style=
"width:100%;"
@
click
.
prevent=
"handleLogin"
>
:loading=
"loading"
size=
"large"
type=
"primary"
style=
"width:100%;"
@
click
.
prevent=
"handleLogin"
>
<span
v-if=
"!loading"
>
登 录
</span>
<span
v-else
>
登 录 中...
</span>
</el-button>
<div
style=
"float: right;"
v-if=
"register"
>
<router-link
class=
"link-type"
:to=
"'/register'"
>
立即注册
</router-link>
</div>
</el-form-item>
</el-form>
<!-- 底部 -->
<div
class=
"el-login-footer"
>
<
span>
Copyright © 2018-2024 ruoyi.vip All Rights Reserved.
</span
>
<
!-- <span>Copyright © 2018-2024 ruoyi.vip All Rights Reserved.</span>--
>
</div>
</div>
</template>
<
script
setup
>
import
{
getCodeImg
}
from
"@/api/login"
;
import
Cookies
from
"js-cookie"
;
import
{
encrypt
,
decrypt
}
from
"@/utils/jsencrypt"
;
import
{
getCodeImg
}
from
'@/api/login'
import
Cookies
from
'js-cookie'
import
{
encrypt
,
decrypt
}
from
'@/utils/jsencrypt'
import
useUserStore
from
'@/store/modules/user'
import
{
useRoute
,
useRouter
}
from
'vue-router'
const
userStore
=
useUserStore
()
const
route
=
useRoute
()
;
const
router
=
useRouter
()
;
const
{
proxy
}
=
getCurrentInstance
();
const
route
=
useRoute
()
const
router
=
useRouter
()
const
{
proxy
}
=
getCurrentInstance
()
const
loginForm
=
ref
({
username
:
"admin"
,
password
:
"admin123"
,
username
:
'admin'
,
password
:
'admin123'
,
rememberMe
:
false
,
code
:
""
,
uuid
:
""
})
;
code
:
''
,
uuid
:
''
})
const
loginRules
=
{
username
:
[{
required
:
true
,
trigger
:
"blur"
,
message
:
"请输入您的账号"
}],
password
:
[{
required
:
true
,
trigger
:
"blur"
,
message
:
"请输入您的密码"
}],
code
:
[{
required
:
true
,
trigger
:
"change"
,
message
:
"请输入验证码"
}]
}
;
username
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
'请输入您的账号'
}],
password
:
[{
required
:
true
,
trigger
:
'blur'
,
message
:
'请输入您的密码'
}],
code
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
'请输入验证码'
}]
}
const
codeUrl
=
ref
(
""
);
const
loading
=
ref
(
false
)
;
const
codeUrl
=
ref
(
''
)
const
loading
=
ref
(
false
)
// 验证码开关
const
captchaEnabled
=
ref
(
true
)
;
const
captchaEnabled
=
ref
(
true
)
// 注册开关
const
register
=
ref
(
false
);
const
redirect
=
ref
(
undefined
)
;
const
register
=
ref
(
true
)
const
redirect
=
ref
(
undefined
)
watch
(
route
,
(
newRoute
)
=>
{
redirect
.
value
=
newRoute
.
query
&&
newRoute
.
query
.
redirect
;
},
{
immediate
:
true
});
redirect
.
value
=
newRoute
.
query
&&
newRoute
.
query
.
redirect
},
{
immediate
:
true
})
function
handleLogin
()
{
function
handleLogin
()
{
proxy
.
$refs
.
loginRef
.
validate
(
valid
=>
{
if
(
valid
)
{
loading
.
value
=
true
;
loading
.
value
=
true
// 勾选了需要记住密码设置在 cookie 中设置记住用户名和密码
if
(
loginForm
.
value
.
rememberMe
)
{
Cookies
.
set
(
"username"
,
loginForm
.
value
.
username
,
{
expires
:
30
});
Cookies
.
set
(
"password"
,
encrypt
(
loginForm
.
value
.
password
),
{
expires
:
30
});
Cookies
.
set
(
"rememberMe"
,
loginForm
.
value
.
rememberMe
,
{
expires
:
30
});
Cookies
.
set
(
'username'
,
loginForm
.
value
.
username
,
{
expires
:
30
})
Cookies
.
set
(
'password'
,
encrypt
(
loginForm
.
value
.
password
),
{
expires
:
30
})
Cookies
.
set
(
'rememberMe'
,
loginForm
.
value
.
rememberMe
,
{
expires
:
30
})
}
else
{
// 否则移除
Cookies
.
remove
(
"username"
);
Cookies
.
remove
(
"password"
);
Cookies
.
remove
(
"rememberMe"
);
Cookies
.
remove
(
'username'
)
Cookies
.
remove
(
'password'
)
Cookies
.
remove
(
'rememberMe'
)
}
// 调用action的登录方法
userStore
.
login
(
loginForm
.
value
).
then
(()
=>
{
const
query
=
route
.
query
;
const
query
=
route
.
query
const
otherQueryParams
=
Object
.
keys
(
query
).
reduce
((
acc
,
cur
)
=>
{
if
(
cur
!==
"redirect"
)
{
acc
[
cur
]
=
query
[
cur
]
;
if
(
cur
!==
'redirect'
)
{
acc
[
cur
]
=
query
[
cur
]
}
return
acc
;
},
{})
;
router
.
push
({
path
:
redirect
.
value
||
"/"
,
query
:
otherQueryParams
});
return
acc
},
{})
router
.
push
({
path
:
redirect
.
value
||
'/'
,
query
:
otherQueryParams
})
}).
catch
(()
=>
{
loading
.
value
=
false
;
loading
.
value
=
false
// 重新获取验证码
if
(
captchaEnabled
.
value
)
{
getCode
()
;
getCode
()
}
})
;
})
}
})
;
})
}
function
getCode
()
{
function
getCode
()
{
getCodeImg
().
then
(
res
=>
{
captchaEnabled
.
value
=
res
.
captchaEnabled
===
undefined
?
true
:
res
.
captchaEnabled
;
captchaEnabled
.
value
=
res
.
captchaEnabled
===
undefined
?
true
:
res
.
captchaEnabled
if
(
captchaEnabled
.
value
)
{
codeUrl
.
value
=
"data:image/gif;base64,"
+
res
.
img
;
loginForm
.
value
.
uuid
=
res
.
uuid
;
codeUrl
.
value
=
'data:image/gif;base64,'
+
res
.
img
loginForm
.
value
.
uuid
=
res
.
uuid
}
})
;
})
}
function
getCookie
()
{
const
username
=
Cookies
.
get
(
"username"
);
const
password
=
Cookies
.
get
(
"password"
);
const
rememberMe
=
Cookies
.
get
(
"rememberMe"
);
function
getCookie
()
{
const
username
=
Cookies
.
get
(
'username'
)
const
password
=
Cookies
.
get
(
'password'
)
const
rememberMe
=
Cookies
.
get
(
'rememberMe'
)
loginForm
.
value
=
{
username
:
username
===
undefined
?
loginForm
.
value
.
username
:
username
,
password
:
password
===
undefined
?
loginForm
.
value
.
password
:
decrypt
(
password
),
rememberMe
:
rememberMe
===
undefined
?
false
:
Boolean
(
rememberMe
)
}
;
}
}
getCode
()
;
getCookie
()
;
getCode
()
getCookie
()
</
script
>
<
style
lang=
'scss'
scoped
>
...
...
@@ -169,46 +176,58 @@ getCookie();
justify-content
:
center
;
align-items
:
center
;
height
:
100%
;
background-image
:
url("../assets/images/login-background.
jp
g")
;
background-image
:
url("../assets/images/login-background.
pn
g")
;
background-size
:
cover
;
}
.title
{
margin
:
0px
auto
30px
auto
;
text-align
:
center
;
color
:
#707070
;
color
:
#2E77E3
;
font-size
:
30px
;
font-family
:
YouSheBiaoTiHei
,
system-ui
;
}
.login-form
{
border-radius
:
6
px
;
border-radius
:
2
px
;
background
:
#ffffff
;
width
:
400px
;
padding
:
25px
25px
5px
25px
;
margin-left
:
18%
;
padding
:
35px
35px
15px
35px
;
box-shadow
:
0
0
10px
0
rgba
(
209
,
224
,
251
,
0.79
);
.el-input
{
height
:
40px
;
input
{
height
:
40px
;
}
}
.input-icon
{
height
:
39px
;
width
:
14px
;
margin-left
:
0px
;
}
}
.login-tip
{
font-size
:
13px
;
text-align
:
center
;
color
:
#bfbfbf
;
}
.login-code
{
width
:
33%
;
height
:
40px
;
float
:
right
;
img
{
cursor
:
pointer
;
vertical-align
:
middle
;
}
}
.el-login-footer
{
height
:
40px
;
line-height
:
40px
;
...
...
@@ -221,8 +240,15 @@ getCookie();
font-size
:
12px
;
letter-spacing
:
1px
;
}
.login-code-img
{
height
:
40px
;
padding-left
:
12px
;
}
.link-type
{
font-size
:
14px
;
font-weight
:
500
;
color
:
var
(
--el-color-primary
);
}
</
style
>
src/views/register.vue
View file @
0860c6c6
...
...
@@ -4,154 +4,160 @@
<h3
class=
"title"
>
先进计算公共服务平台
</h3>
<el-form-item
prop=
"username"
>
<el-input
v-model=
"registerForm.username"
type=
"text"
size=
"large"
auto-complete=
"off"
placeholder=
"账号"
>
<template
#
prefix
><svg-icon
icon-class=
"user"
class=
"el-input__icon input-icon"
/></
template
>
v-model=
"registerForm.username"
type=
"text"
size=
"large"
auto-complete=
"off"
placeholder=
"账号"
>
<template
#
prefix
>
<svg-icon
icon-class=
"user"
class=
"el-input__icon input-icon"
/>
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"password"
>
<el-input
v-model=
"registerForm.password"
type=
"password"
size=
"large"
auto-complete=
"off"
placeholder=
"密码"
@
keyup
.
enter=
"handleRegister"
>
<
template
#
prefix
><svg-icon
icon-class=
"password"
class=
"el-input__icon input-icon"
/></
template
>
v-model=
"registerForm.password"
type=
"password"
size=
"large"
auto-complete=
"off"
placeholder=
"密码"
@
keyup
.
enter=
"handleRegister"
>
<
template
#
prefix
>
<svg-icon
icon-class=
"password"
class=
"el-input__icon input-icon"
/>
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"confirmPassword"
>
<el-input
v-model=
"registerForm.confirmPassword"
type=
"password"
size=
"large"
auto-complete=
"off"
placeholder=
"确认密码"
@
keyup
.
enter=
"handleRegister"
>
<
template
#
prefix
><svg-icon
icon-class=
"password"
class=
"el-input__icon input-icon"
/></
template
>
v-model=
"registerForm.confirmPassword"
type=
"password"
size=
"large"
auto-complete=
"off"
placeholder=
"确认密码"
@
keyup
.
enter=
"handleRegister"
>
<
template
#
prefix
>
<svg-icon
icon-class=
"password"
class=
"el-input__icon input-icon"
/>
</
template
>
</el-input>
</el-form-item>
<el-form-item
prop=
"code"
v-if=
"captchaEnabled"
>
<el-input
size=
"large"
v-model=
"registerForm.code"
auto-complete=
"off"
placeholder=
"验证码"
style=
"width: 63%"
@
keyup
.
enter=
"handleRegister"
>
<
template
#
prefix
><svg-icon
icon-class=
"validCode"
class=
"el-input__icon input-icon"
/></
template
>
size=
"large"
v-model=
"registerForm.code"
auto-complete=
"off"
placeholder=
"验证码"
style=
"width: 64%"
@
keyup
.
enter=
"handleRegister"
>
<
template
#
prefix
>
<svg-icon
icon-class=
"validCode"
class=
"el-input__icon input-icon"
/>
</
template
>
</el-input>
<div
class=
"register-code"
>
<img
:src=
"codeUrl"
@
click=
"getCode"
class=
"register-code-img"
/>
</div>
</el-form-item>
<div
class=
"flex-justify-end mb20"
>
<router-link
class=
"link-type"
:to=
"'/login'"
>
使用已有账户登录
</router-link>
</div>
<el-form-item
style=
"width:100%;"
>
<el-button
:loading=
"loading"
size=
"large"
type=
"primary"
style=
"width:100%;"
@
click
.
prevent=
"handleRegister"
>
:loading=
"loading"
size=
"large"
type=
"primary"
style=
"width:100%;"
@
click
.
prevent=
"handleRegister"
>
<span
v-if=
"!loading"
>
注 册
</span>
<span
v-else
>
注 册 中...
</span>
</el-button>
<div
style=
"float: right;"
>
<router-link
class=
"link-type"
:to=
"'/login'"
>
使用已有账户登录
</router-link>
</div>
</el-form-item>
</el-form>
<!-- 底部 -->
<div
class=
"el-register-footer"
>
<
span>
Copyright © 2018-2024 ruoyi.vip All Rights Reserved.
</span
>
<
!-- <span>Copyright © 2018-2024 ruoyi.vip All Rights Reserved.</span>--
>
</div>
</div>
</template>
<
script
setup
>
import
{
ElMessageBox
}
from
"element-plus"
;
import
{
getCodeImg
,
register
}
from
"@/api/login"
;
import
{
ElMessageBox
}
from
'element-plus'
import
{
getCodeImg
,
register
}
from
'@/api/login'
const
router
=
useRouter
()
;
const
{
proxy
}
=
getCurrentInstance
();
const
router
=
useRouter
()
const
{
proxy
}
=
getCurrentInstance
()
const
registerForm
=
ref
({
username
:
""
,
password
:
""
,
confirmPassword
:
""
,
code
:
""
,
uuid
:
""
})
;
username
:
''
,
password
:
''
,
confirmPassword
:
''
,
code
:
''
,
uuid
:
''
})
const
equalToPassword
=
(
rule
,
value
,
callback
)
=>
{
if
(
registerForm
.
value
.
password
!==
value
)
{
callback
(
new
Error
(
"两次输入的密码不一致"
));
callback
(
new
Error
(
'两次输入的密码不一致'
))
}
else
{
callback
()
;
callback
()
}
}
;
}
const
registerRules
=
{
username
:
[
{
required
:
true
,
trigger
:
"blur"
,
message
:
"请输入您的账号"
},
{
min
:
2
,
max
:
20
,
message
:
"用户账号长度必须介于 2 和 20 之间"
,
trigger
:
"blur"
}
{
required
:
true
,
trigger
:
'blur'
,
message
:
'请输入您的账号'
},
{
min
:
2
,
max
:
20
,
message
:
'用户账号长度必须介于 2 和 20 之间'
,
trigger
:
'blur'
}
],
password
:
[
{
required
:
true
,
trigger
:
"blur"
,
message
:
"请输入您的密码"
},
{
min
:
5
,
max
:
20
,
message
:
"用户密码长度必须介于 5 和 20 之间"
,
trigger
:
"blur"
},
{
pattern
:
/^
[^
<>"'|
\\]
+$/
,
message
:
"不能包含非法字符:
<
>
\
" ' \\\ |"
,
trigger
:
"blur"
}
{
required
:
true
,
trigger
:
'blur'
,
message
:
'请输入您的密码'
},
{
min
:
5
,
max
:
20
,
message
:
'用户密码长度必须介于 5 和 20 之间'
,
trigger
:
'blur'
},
{
pattern
:
/^
[^
<>"'|
\\]
+$/
,
message
:
'不能包含非法字符:
<
>
"
\
' \\\ |'
,
trigger
:
'blur'
}
],
confirmPassword
:
[
{
required
:
true
,
trigger
:
"blur"
,
message
:
"请再次输入您的密码"
},
{
required
:
true
,
validator
:
equalToPassword
,
trigger
:
"blur"
}
{
required
:
true
,
trigger
:
'blur'
,
message
:
'请再次输入您的密码'
},
{
required
:
true
,
validator
:
equalToPassword
,
trigger
:
'blur'
}
],
code
:
[{
required
:
true
,
trigger
:
"change"
,
message
:
"请输入验证码"
}]
}
;
code
:
[{
required
:
true
,
trigger
:
'change'
,
message
:
'请输入验证码'
}]
}
const
codeUrl
=
ref
(
""
);
const
loading
=
ref
(
false
)
;
const
captchaEnabled
=
ref
(
true
)
;
const
codeUrl
=
ref
(
''
)
const
loading
=
ref
(
false
)
const
captchaEnabled
=
ref
(
true
)
function
handleRegister
()
{
function
handleRegister
()
{
proxy
.
$refs
.
registerRef
.
validate
(
valid
=>
{
if
(
valid
)
{
loading
.
value
=
true
;
loading
.
value
=
true
register
(
registerForm
.
value
).
then
(
res
=>
{
const
username
=
registerForm
.
value
.
username
;
ElMessageBox
.
alert
(
"
<
font
color
=
'red'
>
恭喜你,您的账号
" + username + "
注册成功!
<
/font>", "系统提示"
,
{
const
username
=
registerForm
.
value
.
username
ElMessageBox
.
alert
(
'
<
font
color
=
\
'red\'>恭喜你,您的账号 '
+
username
+
'
注册成功!
<
/font>', '系统提示'
,
{
dangerouslyUseHTMLString
:
true
,
type
:
"success"
,
type
:
'success'
}).
then
(()
=>
{
router
.
push
(
"/login"
);
}).
catch
(()
=>
{});
router
.
push
(
'/login'
)
}).
catch
(()
=>
{
})
}).
catch
(()
=>
{
loading
.
value
=
false
;
loading
.
value
=
false
if
(
captchaEnabled
)
{
getCode
()
;
getCode
()
}
})
;
})
}
})
;
})
}
function
getCode
()
{
function
getCode
()
{
getCodeImg
().
then
(
res
=>
{
captchaEnabled
.
value
=
res
.
captchaEnabled
===
undefined
?
true
:
res
.
captchaEnabled
;
captchaEnabled
.
value
=
res
.
captchaEnabled
===
undefined
?
true
:
res
.
captchaEnabled
if
(
captchaEnabled
.
value
)
{
codeUrl
.
value
=
"data:image/gif;base64,"
+
res
.
img
;
registerForm
.
value
.
uuid
=
res
.
uuid
;
codeUrl
.
value
=
'data:image/gif;base64,'
+
res
.
img
registerForm
.
value
.
uuid
=
res
.
uuid
}
})
;
})
}
getCode
()
;
getCode
()
</
script
>
<
style
lang=
'scss'
scoped
>
...
...
@@ -160,46 +166,58 @@ getCode();
justify-content
:
center
;
align-items
:
center
;
height
:
100%
;
background-image
:
url("../assets/images/login-background.
jp
g")
;
background-image
:
url("../assets/images/login-background.
pn
g")
;
background-size
:
cover
;
}
.title
{
margin
:
0px
auto
30px
auto
;
text-align
:
center
;
color
:
#707070
;
color
:
#2E77E3
;
font-size
:
30px
;
font-family
:
YouSheBiaoTiHei
,
system-ui
;
}
.register-form
{
border-radius
:
6
px
;
border-radius
:
2
px
;
background
:
#ffffff
;
width
:
400px
;
padding
:
25px
25px
5px
25px
;
margin-left
:
18%
;
padding
:
35px
35px
15px
35px
;
box-shadow
:
0
0
10px
0
rgba
(
209
,
224
,
251
,
0.79
);
.el-input
{
height
:
40px
;
input
{
height
:
40px
;
}
}
.input-icon
{
height
:
39px
;
width
:
14px
;
margin-left
:
0px
;
}
}
.register-tip
{
font-size
:
13px
;
text-align
:
center
;
color
:
#bfbfbf
;
}
.register-code
{
width
:
33%
;
height
:
40px
;
float
:
right
;
img
{
cursor
:
pointer
;
vertical-align
:
middle
;
}
}
.el-register-footer
{
height
:
40px
;
line-height
:
40px
;
...
...
@@ -212,8 +230,16 @@ getCode();
font-size
:
12px
;
letter-spacing
:
1px
;
}
.register-code-img
{
height
:
40px
;
padding-left
:
12px
;
}
.link-type
{
font-size
:
14px
;
font-weight
:
500
;
color
:
var
(
--el-color-primary
);
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment