f5167a3e by zhangmeng

首页

1 parent be9dc910
......@@ -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;
......
<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="changePasswordFormUsername"
:placeholder="language==0?'注册时使用的邮箱':'E-mail'"
v-model.trim="changePasswordForm.username"
:placeholder="language==0?'注册时使用的邮箱':'E-mail'"
auto-complete="off" size="large"
@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>
......
......@@ -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">
......
<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">
......
......@@ -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,
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!