Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
杨炀
/
dance-pc
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
f5167a3e
authored
2025-08-04 14:10:15 +0800
by
zhangmeng
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
首页
1 parent
be9dc910
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
126 additions
and
101 deletions
src/layoutPc/components/AppHeader.vue
src/viewsPc/login.vue
src/viewsPc/match/components/affix-invitation.vue
src/viewsPc/register/components/utype3.vue
vite.config.js
src/layoutPc/components/AppHeader.vue
View file @
f5167a3
...
...
@@ -487,6 +487,13 @@ function getCode() {
}
}
@media
(
max-width
:
750px
)
{
.topNav
.logo
{
margin-left
:
0
;
height
:
40px
;
}
}
.active
{
color
:
#fff
;
border-bottom
:
2px
solid
#fff
;
...
...
src/viewsPc/login.vue
View file @
f5167a3
<
template
>
<el-dialog
close-icon=
"CircleClose"
center
v-model=
"show"
class=
"pcloginpop"
width=
"450px"
:append-to-body=
"true"
:title=
"title"
destroy-on-close
:show-close=
"showClose"
:close-on-click-modal=
"false"
@
close=
"close"
<el-dialog
v-model=
"show"
:append-to-body=
"true"
:close-on-click-modal=
"false"
:show-close=
"showClose"
:title=
"title"
center
class=
"pcloginpop"
close-icon=
"CircleClose"
destroy-on-close
style=
"min-width: 350px;max-width: 450px;"
@
close=
"close"
>
<div
class=
"pd10"
></div>
<el-form
v-if=
"loginStatus==0"
ref=
"loginRef"
:model=
"loginForm"
:rules=
"language==0?loginRules:loginRules_en"
class=
"login-form"
>
<el-form-item
prop=
"username"
>
<el-input
v-model
.
trim=
"loginForm.username"
size=
"large
"
auto-complete=
"off"
:placeholder=
"language==0?'账号(注册时使用的邮箱)':'Account (e-mail)'
"
v-model
.
trim=
"loginForm.username"
:placeholder=
"language==0?'账号(注册时使用的邮箱)':'Account (e-mail)'
"
auto-complete=
"off"
size=
"large
"
>
</el-input>
</el-form-item>
<el-form-item
prop=
"password"
>
<el-input
v-model
.
trim=
"loginForm.password"
type=
"password
"
size=
"large
"
show-password
auto-complete=
"off
"
:placeholder=
"language==0?'密码':'Password'
"
@
keyup
.
enter=
"handleLogin"
v-model
.
trim=
"loginForm.password"
:placeholder=
"language==0?'密码':'Password'
"
auto-complete=
"off
"
show-password
size=
"large
"
type=
"password
"
@
keyup
.
enter=
"handleLogin"
>
</el-input>
</el-form-item>
<el-form-item
v-if=
"captchaEnabled"
prop=
"code"
>
<el-input
v-model
.
trim=
"loginForm.code"
size=
"large
"
auto-complete=
"off"
:placeholder=
"language==0?'验证码':'Code'
"
@
keyup
.
enter=
"handleLogin"
v-model
.
trim=
"loginForm.code"
:placeholder=
"language==0?'验证码':'Code'
"
auto-complete=
"off"
size=
"large
"
@
keyup
.
enter=
"handleLogin"
>
<template
#
append
>
<div
class=
"login-code"
>
...
...
@@ -42,17 +43,17 @@
</div>
</
template
>
</el-input>
</el-form-item>
<el-form-item
style=
"width:100%;"
>
<el-button
class=
"loginBtn
"
:loading=
"loading
"
size=
"large"
type=
"primary
"
style=
"width:100%;
"
@
click
.
prevent=
"handleLogin"
:loading=
"loading
"
class=
"loginBtn
"
size=
"large"
style=
"width:100%;
"
type=
"primary
"
@
click
.
prevent=
"handleLogin"
>
<span
v-if=
"!loading"
>
{{ language == 0 ? '登 录' : 'Login' }}
</span>
<span
v-else
>
{{ language == 0 ? '登 录 中...' : 'Logging in' }}
</span>
...
...
@@ -63,25 +64,29 @@
<div
style=
"display: flex;justify-content: space-between;width: 100%;"
>
<a
class=
"text-primary"
@
click=
"showChangePassword"
>
{{ language == 0 ? '忘记密码' : 'Forgot password' }}?
</a>
<a
@
click=
"showRegister"
class=
"text-primary
"
>
{{ language == 0 ? '账号注册' : 'Register' }}>
</a>
<a
class=
"text-primary"
@
click=
"showRegister
"
>
{{ language == 0 ? '账号注册' : 'Register' }}>
</a>
</div>
</el-form-item>
<el-form-item>
<div
class=
"agreeLine"
v-if=
"language==0
"
>
<div
v-if=
"language==0"
class=
"agreeLine
"
>
登录或注册即代表同意
<a
@
click=
"goAgreement"
target=
"_blank
"
>
《用户协议》
</a>
和
<a
@
click=
"goPolicy"
target=
"_blank
"
>
《隐私政策》
</a>
<a
target=
"_blank"
@
click=
"goAgreement
"
>
《用户协议》
</a>
和
<a
target=
"_blank"
@
click=
"goPolicy
"
>
《隐私政策》
</a>
</div>
<div
class=
"agreeLine"
v-else
>
<div
v-else
class=
"agreeLine"
>
Registering and logging in means agreeing to the User
<a
@
click=
"goAgreement"
target=
"_blank
"
>
Agreement
</a>
and
<a
target=
"_blank"
@
click=
"goAgreement
"
>
Agreement
</a>
and
<a
@
click=
"goPolicy"
>
Privacy Policy
</a>
</div>
</el-form-item>
</el-form>
<div
v-if=
"loginStatus==1"
>
<a
class=
"poLeft"
@
click=
"close()"
><el-icon><ArrowLeftBold
/></el-icon></a>
<a
class=
"poLeft"
@
click=
"close()"
>
<el-icon>
<ArrowLeftBold/>
</el-icon>
</a>
<div
class=
"rItem r1"
@
click=
"goRegister(1)"
>
<h3>
{{ language == 0 ? '机构用户' : 'Organization' }}
</h3>
</div>
...
...
@@ -90,38 +95,42 @@
</div>
</div>
<div
v-if=
"loginStatus==2"
>
<a
class=
"poLeft"
@
click=
"close()"
><el-icon><ArrowLeftBold
/></el-icon></a>
<a
class=
"poLeft"
@
click=
"close()"
>
<el-icon>
<ArrowLeftBold/>
</el-icon>
</a>
<el-form
ref=
"changePasswordRef"
:model=
"changePasswordForm"
:rules=
"language==0?changePasswordRules:changePasswordRules_en"
class=
"login-form"
>
<el-form-item
prop=
"username"
>
<el-input
v-model
.
trim=
"changePasswordForm.username"
size=
"large
"
auto-complete=
"off"
@
change=
"changePasswordFormUsernam
e"
:placeholder=
"language==0?'注册时使用的邮箱':'E-mail'
"
v-model
.
trim=
"changePasswordForm.username"
:placeholder=
"language==0?'注册时使用的邮箱':'E-mail'
"
auto-complete=
"off"
size=
"larg
e"
@
change=
"changePasswordFormUsername
"
>
</el-input>
</el-form-item>
<el-form-item>
<el-input
v-model
.
trim=
"changePasswordForm.code"
size=
"large
"
auto-complete=
"off"
:placeholder=
"language==0?'验证码':'Code'
"
@
keyup
.
enter=
"handleLogin"
v-model
.
trim=
"changePasswordForm.code"
:placeholder=
"language==0?'验证码':'Code'
"
auto-complete=
"off"
size=
"large
"
@
keyup
.
enter=
"handleLogin"
>
<
template
#
append
>
<el-button
type=
"primary"
plain
style=
"width: 110px;
"
@
click=
"sendsmsMsg"
>
<van-count-down
v-if=
"counting"
:time=
"60000"
format=
"ss"
@
finish=
"counting=false"
>
<el-button
plain
style=
"width: 110px;"
type=
"primary
"
@
click=
"sendsmsMsg"
>
<van-count-down
v-if=
"counting"
:time=
"60000"
format=
"ss"
@
finish=
"counting=false"
>
<template
#
default=
"timeData"
>
<span
class=
"text-primary"
>
{{
timeData
.
seconds
}}{{
language
==
0
?
'秒'
:
's'
}}
</span>
</
template
>
</van-count-down>
<!-- <count-down v-slot="{ totalSeconds }" :time="60000" @end="counting=false">-->
<!-- {{ totalSeconds }} {{ language == 0 ? '秒' : 's' }}-->
<!-- </count-down>-->
<!-- <count-down v-slot="{ totalSeconds }" :time="60000" @end="counting=false">-->
<!-- {{ totalSeconds }} {{ language == 0 ? '秒' : 's' }}-->
<!-- </count-down>-->
<span
v-else
>
{{ language == 0 ? '发送验证码' : 'Send' }}
</span>
...
...
@@ -129,39 +138,40 @@
</template>
</el-input>
<!-- <div class="vcodeBox" :style="isShow?'height:240px':'height:0'">-->
<Vcode
:successText=
"successVcode"
:failText=
"failVcode"
:slider-text=
"sliderText"
:zIndex=
"9999"
:show=
"isShow"
@
success=
"codeSuccess"
></Vcode>
<Vcode
:failText=
"failVcode"
:show=
"isShow"
:slider-text=
"sliderText"
:successText=
"successVcode"
:zIndex=
"9999"
@
success=
"codeSuccess"
></Vcode>
<!-- </div>-->
</el-form-item>
<el-form-item
prop=
"password"
>
<el-input
v-model
.
trim=
"changePasswordForm.password"
type=
"password
"
size=
"large
"
show-password
auto-complete=
"off
"
:placeholder=
"language==0?'新密码':'New password'
"
@
keyup
.
enter=
"handleLogin"
v-model
.
trim=
"changePasswordForm.password"
:placeholder=
"language==0?'新密码':'New password'
"
auto-complete=
"off
"
show-password
size=
"large
"
type=
"password
"
@
keyup
.
enter=
"handleLogin"
>
</el-input>
</el-form-item>
<el-form-item
prop=
"confirmPassword"
>
<el-input
v-model
.
trim=
"changePasswordForm.confirmPassword"
type=
"password
"
size=
"large
"
show-password
auto-complete=
"off
"
:placeholder=
"language==0?'确认密码':'Confirm password'
"
v-model
.
trim=
"changePasswordForm.confirmPassword"
:placeholder=
"language==0?'确认密码':'Confirm password'
"
auto-complete=
"off
"
show-password
size=
"large
"
type=
"password
"
>
</el-input>
</el-form-item>
<el-form-item
style=
"width:100%;"
>
<el-button
class=
"loginBtn
"
:loading=
"loading
"
size=
"large"
type=
"primary
"
style=
"width:100%;
"
@
click
.
prevent=
"handleChangePassword"
:loading=
"loading
"
class=
"loginBtn
"
size=
"large"
style=
"width:100%;
"
type=
"primary
"
@
click
.
prevent=
"handleChangePassword"
>
<span
v-if=
"language==0"
>
确定
</span>
<span
v-else
>
Submit
</span>
...
...
@@ -169,8 +179,8 @@
</el-form-item>
</el-form>
</div>
</el-dialog>
</template>
...
...
@@ -189,6 +199,7 @@ import {ElMessage, ElMessageBox} from 'element-plus'
import
cache
from
"@/plugins/cache"
;
import
{
useStorage
}
from
"@vueuse/core/index"
;
import
{
getCaptchaSms
,
getCaptchaSms2
}
from
"@/apiPc/match"
;
const
user
=
useUserStore
().
user
const
useStore
=
useUserStore
const
emit
=
defineEmits
([
'submitForm'
])
...
...
@@ -300,19 +311,19 @@ function handleLogin() {
function
close
()
{
loginStatus
.
value
=
0
title
.
value
=
language
.
value
==
0
?
'用户登录'
:
'LOGIN'
title
.
value
=
language
.
value
==
0
?
'用户登录'
:
'LOGIN'
}
function
showChangePassword
()
{
loginStatus
.
value
=
2
title
.
value
=
language
.
value
==
0
?
'忘记密码/密码重置'
:
'FORGET PASSWORD'
title
.
value
=
language
.
value
==
0
?
'忘记密码/密码重置'
:
'FORGET PASSWORD'
}
function
showRegister
()
{
if
(
!
user
)
{
if
(
!
user
)
{
useStore
().
setVisitor
()
return
}
}
...
...
@@ -360,7 +371,7 @@ function sendsmsMsg() {
return
}
if
(
counting
.
value
)
{
}
else
{
isShow
.
value
=
true
}
...
...
@@ -385,15 +396,15 @@ function handleChangePassword() {
if
(
isCodeTrue
.
value
)
{
delete
changePasswordForm
.
value
.
confirmPassword
forgetPassword
(
changePasswordForm
.
value
).
then
(
res
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'操作成功,请登录'
:
'Operation successful, please log in'
)
ElMessage
.
success
(
language
.
value
==
0
?
'操作成功,请登录'
:
'Operation successful, please log in'
)
close
()
})
}
else
{
ElMessage
.
warning
(
language
.
value
==
0
?
'请发送验证码'
:
'Please send the verification code'
)
ElMessage
.
warning
(
language
.
value
==
0
?
'请发送验证码'
:
'Please send the verification code'
)
}
}
})
}
const
goAgreement
=
()
=>
{
...
...
@@ -441,7 +452,7 @@ const goPolicy = () => {
background
:
#000
;
border-radius
:
20px
;
font-size
:
18px
;
&:hover
{
//
background
:
#000
;
box-shadow
:
0
0
10px
#000
;
...
...
@@ -467,20 +478,20 @@ const goPolicy = () => {
position
:
relative
;
background
:
#ffffff
;
padding
:
0
25px
5px
;
.el-input
{
height
:
40px
;
:deep(.el-input__wrapper)
{
box-shadow
:
none
;
border-bottom
:
1px
solid
#E5E5E5
;
}
input
{
height
:
40px
;
}
}
.input-icon
{
height
:
39px
;
width
:
14px
;
...
...
@@ -496,7 +507,7 @@ const goPolicy = () => {
.login-code
{
height
:
40px
;
img
{
cursor
:
pointer
;
vertical-align
:
middle
;
...
...
@@ -526,7 +537,7 @@ const goPolicy = () => {
padding
:
0
;
color
:
#fff
;
box-shadow
:
none
;
div
{
color
:
#fff
;
}
...
...
@@ -536,7 +547,7 @@ const goPolicy = () => {
a
{
font-weight
:
600
;
color
:
#000
;
&:hover
{
text-decoration
:
underline
;
}
...
...
@@ -549,28 +560,28 @@ const goPolicy = () => {
width
:
350px
;
padding
:
1px
;
margin
:
20px
auto
;
h3
{
font-size
:
30px
;
margin
:
50px
;
}
&
.r1
{
background
:
url("@/assets/dance/r1b.png")
no-repeat
left
;
&:hover
{
background
:
url("@/assets/dance/r1.png")
no-repeat
left
;
}
}
&
.r2
{
background
:
url("@/assets/dance/r2b.png")
no-repeat
left
;
&:hover
{
background
:
url("@/assets/dance/r2.png")
no-repeat
left
;
}
}
&
:hover
{
color
:
#fff
;
}
...
...
@@ -586,5 +597,11 @@ const goPolicy = () => {
border
:
var
(
--el-color-primary
)
solid
1px
;
border-radius
:
0
;
}
.poLeft
{
position
:
absolute
;
top
:
24px
;
font-size
:
20px
;
left
:
20px
}
.poLeft
{
position
:
absolute
;
top
:
24px
;
font-size
:
20px
;
left
:
20px
}
</
style
>
...
...
src/viewsPc/match/components/affix-invitation.vue
View file @
f5167a3
...
...
@@ -3,6 +3,7 @@
v-model=
"show"
:close-on-click-modal=
"false"
:title=
"title"
append-to-body
center
class=
"pcloginpop"
close-icon=
"CircleClose"
destroy-on-close
style=
"min-width: 350px;"
>
<div
class=
"boxInvitation"
>
...
...
src/viewsPc/register/components/utype3.vue
View file @
f5167a3
<
template
>
<el-dialog
v-model=
"show"
:append-to-body=
"true"
:title=
"language==0?'注册':'Login'"
center
close-icon=
"CircleClose"
destroy-on-close
width=
"480
"
@
close=
"close"
>
center
close-icon=
"CircleClose"
destroy-on-close
style=
"min-width: 350px;max-width: 480px
"
@
close=
"close"
>
<div>
<el-form
:label-position=
"language==0?'right':'top'"
:label-width=
"language==0?80:150"
class=
"d-form"
size=
"large"
style=
"max-width: 500px;margin: auto"
>
...
...
vite.config.js
View file @
f5167a3
...
...
@@ -83,9 +83,9 @@ export default defineConfig(({mode, command}) => {
rewrite
:
(
p
)
=>
p
.
replace
(
/^
\/
dev-api
\/
ztx-webSite/
,
''
)
},
'/dev-api'
:
{
//
target: 'http://192.168.1.118:8082/',
target
:
'http://192.168.1.118:8082/'
,
// target: 'http://192.168.1.131:8081/',
target
:
'https://tk005.wxjylt.com/stage-api'
,
//
target: 'https://tk005.wxjylt.com/stage-api',
// target: 'http://124.70.181.90:1880/stage-api',
// target: 'https://sys.2025wtcwuxi.com/stage-api/',
changeOrigin
:
true
,
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
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 post a comment