383 lines
13 KiB
HTML
383 lines
13 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
|
||
<meta name="baidu-site-verification" content="codeva-bhaFvYlfgd" />
|
||
<meta
|
||
name="keywords"
|
||
content="deepl、deepl翻译、百度翻译、谷歌翻译、腾讯翻译君"
|
||
/>
|
||
<meta
|
||
name="description"
|
||
content="聚合翻译提供即时免费的中文、英语、日语、韩语、法语、德语、俄语、西班牙语、葡萄牙语、越南语、印尼语、意大利语、荷兰语、泰语全文翻译等服务。"
|
||
/>
|
||
<meta name="baidu-site-verification" content="codeva-mXz3BqI9VN" />
|
||
<link rel="stylesheet" href="static/css/public.css" />
|
||
<link rel="stylesheet" href="static/css/layui.css" />
|
||
<script src="static/js/jquery-1.11.0.min.js"></script>
|
||
<script src="static/js/axios.min.js"></script>
|
||
<script src="static/js/countUp.min.js"></script>
|
||
<script src="static/js/vue.js"></script>
|
||
<script src="static/js/lodash.min.js"></script>
|
||
<script src="static/js/layui.all.js"></script>
|
||
<script src="static/js/common.js"></script>
|
||
<title>聚合翻译</title>
|
||
<script>
|
||
var _hmt = _hmt || [];
|
||
(function () {
|
||
var hm = document.createElement("script");
|
||
hm.src = "https://hm.baidu.com/hm.js?c4e0dd6add63dd71fa52870120ca22cf";
|
||
var s = document.getElementsByTagName("script")[0];
|
||
s.parentNode.insertBefore(hm, s);
|
||
})();
|
||
</script>
|
||
</head>
|
||
<body >
|
||
<div class="public-header normal" id="main">
|
||
<div class="container clearfix">
|
||
<div class="left">
|
||
<img class="logo default" src="static/picture/logo.png" alt="" /><img
|
||
class="logo1 default"
|
||
src="static/picture/logo1.png"
|
||
alt=""
|
||
/><img class="logo light" src="static/picture/logow.png" alt="" /><img
|
||
class="logo1 light"
|
||
src="static/picture/logo1w.png"
|
||
alt=""
|
||
/>
|
||
<div class="nav">
|
||
<a class="" href="index.html"><span>首页</span></a
|
||
><a class="" href="onlineTranslation.html"><span>文本翻译</span></a
|
||
><a class="" href="voice.html"><span>语音翻译</span></a
|
||
><a class="" href="api.html"><span>API文档</span></a
|
||
><a class="" href="commonProblems.html"><span>常见问题</span></a>
|
||
</div>
|
||
</div>
|
||
<div v-if="userInfo&&userInfo.id" class="right">
|
||
<a href="userinfo.html" class="console">控制台</a>
|
||
<div class="user-info">
|
||
<div class="phone">13809073722</div>
|
||
<i></i>
|
||
<div class="log-out">退出</div>
|
||
</div>
|
||
</div>
|
||
<div v-else class="right"><a class="unlogin" href="login.html">登录</a></div>
|
||
</div>
|
||
<div class="bg"></div>
|
||
</div>
|
||
<script type="text/javascript">
|
||
var vm = new Vue({
|
||
el: "#main",
|
||
data() {
|
||
return {};
|
||
},
|
||
mounted() {},
|
||
methods: {
|
||
logOut() {
|
||
axios.get("/api/translate/logOut").then((response) => {
|
||
location.reload();
|
||
});
|
||
},
|
||
},
|
||
});
|
||
</script>
|
||
<div id="app">
|
||
<div class="page-login" v-if="type == 0">
|
||
<div class="w1200">
|
||
<div class="left"></div>
|
||
<div class="right">
|
||
<img src="static/picture/logo3x.png" alt="" />
|
||
<h3>登录</h3>
|
||
<div class="form-group">
|
||
<div class="form-item">
|
||
<div class="label">账号</div>
|
||
<!-- <span class="pre">+86</span> -->
|
||
<input class="form-input" placeholder="请输入" v-model="tel"/>
|
||
</div>
|
||
<div class="form-item">
|
||
<div class="label">密码</div>
|
||
<input
|
||
class="form-input"
|
||
type="password"
|
||
placeholder="请输入"
|
||
v-model="password"
|
||
/>
|
||
</div>
|
||
<div class="form-item">
|
||
<div class="label">验证码</div>
|
||
<input
|
||
class="form-input captcha-input" v-model="code" placeholder="请输入验证码"></input>
|
||
<div class="code-col captcha-container" @click="getCode" style="height: 100%;">
|
||
<img :src="captcha" class="captcha-img" />
|
||
</div>
|
||
</div>
|
||
<div class="login" @click="login()">登录</div>
|
||
<!-- <div class="more">
|
||
<a href="javascript:;" @click="type=1">注册</a>
|
||
<a href="javascript:;" @click="type=2 ">找回密码</a>
|
||
</div> -->
|
||
<div
|
||
class="rule"
|
||
style="
|
||
font-size: 15px;
|
||
text-align: center;
|
||
padding-top: 13px;
|
||
color: #666;
|
||
"
|
||
>
|
||
登录即代表您同意并遵守<a
|
||
target="_blank"
|
||
href="static/file/rule.pdf"
|
||
>《隐私协议》</a
|
||
>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="page-login find-password" v-if="type == 1">
|
||
<div class="w1200">
|
||
<div class="left"></div>
|
||
<div class="right">
|
||
<img src="static/picture/p20.png" alt="" />
|
||
<h3>注册</h3>
|
||
<div class="form-group">
|
||
<div class="form-item">
|
||
<div class="label">手机号</div>
|
||
<span class="pre">+86</span
|
||
><input class="form-input" type="number" v-model="tel" />
|
||
</div>
|
||
<div class="form-item form-code">
|
||
<div class="label">验证码</div>
|
||
<input
|
||
class="form-input"
|
||
type="number"
|
||
placeholder="4位数验证码"
|
||
v-model="code"
|
||
/>
|
||
<div class="code-col" @click="getCode">{{ codeText }}</div>
|
||
</div>
|
||
<div class="form-item">
|
||
<div class="label">密码</div>
|
||
<input
|
||
class="form-input"
|
||
type="password"
|
||
placeholder="至少8位,字母或数字的组合"
|
||
v-model="password"
|
||
/>
|
||
</div>
|
||
<div class="form-item">
|
||
<div class="label">确认密码</div>
|
||
<input
|
||
class="form-input"
|
||
type="password"
|
||
placeholder="至少8位,字母或数字的组合"
|
||
v-model="surepassword"
|
||
/>
|
||
</div>
|
||
<div class="login" @click="register()">确定</div>
|
||
<div class="login-now">
|
||
<a href="javascript:;" @click="type=0">登录</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="page-login find-password" v-if="type == 2">
|
||
<div class="w1200">
|
||
<div class="left"></div>
|
||
<div class="right">
|
||
<img src="static/picture/p20.png" alt="" />
|
||
<h3>登录</h3>
|
||
<div class="form-group">
|
||
<div class="form-item">
|
||
<div class="label">手机号</div>
|
||
<span class="pre">+86</span
|
||
><input class="form-input" type="number" v-model="tel" />
|
||
</div>
|
||
<div class="form-item form-code">
|
||
<div class="label">验证码</div>
|
||
<input
|
||
class="form-input"
|
||
type="number"
|
||
placeholder="4位数验证码"
|
||
v-model="code"
|
||
/>
|
||
<div class="code-col" @click="getCode">{{ codeText}}</div>
|
||
</div>
|
||
<div class="form-item">
|
||
<div class="label">密码</div>
|
||
<input
|
||
class="form-input"
|
||
type="password"
|
||
placeholder="至少8位,字母或数字的组合"
|
||
v-model="password"
|
||
/>
|
||
</div>
|
||
<div class="form-item">
|
||
<div class="label">确认密码</div>
|
||
<input
|
||
class="form-input"
|
||
type="password"
|
||
placeholder="至少8位,字母或数字的组合"
|
||
v-model="surepassword"
|
||
/>
|
||
</div>
|
||
<div class="login" @click="register()">确定</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<script type="text/javascript">
|
||
var vm = new Vue({
|
||
el: "#app",
|
||
data() {
|
||
return {
|
||
tel: "",
|
||
password: "",
|
||
code:"",
|
||
uuid:"",
|
||
type: 0,
|
||
isCanClick: true,
|
||
count: 60,
|
||
timer: undefined,
|
||
codeText: "发送验证码",
|
||
code: "",
|
||
surepassword: "",
|
||
captcha:"",
|
||
};
|
||
},
|
||
beforeCreate(){
|
||
let token = localStorage.getItem("token");
|
||
if(token){
|
||
location.href="userinfo.html"
|
||
}
|
||
},
|
||
mounted() {
|
||
this.getCode();
|
||
},
|
||
methods: {
|
||
login() {
|
||
var pattern = /^1[0-9]{10}$/;
|
||
if (this.password) {
|
||
axios
|
||
.post("/login", {
|
||
username: this.tel,
|
||
password: this.password,
|
||
code:this.code,
|
||
uuid:this.uuid,
|
||
rememberMe: false,
|
||
})
|
||
.then((response) => {
|
||
if (response.data.code == 200) {
|
||
localStorage.setItem("token", response.data.token);
|
||
location.href="userinfo.html"
|
||
} else {
|
||
layer.msg(response.data.msg);
|
||
}
|
||
});
|
||
} else {
|
||
layer.msg("密码不能为空");
|
||
}
|
||
},
|
||
getCode() {
|
||
const that = this;
|
||
|
||
axios
|
||
.get("/captcha")
|
||
.then((response) => {
|
||
if (response.data.code == 200) {
|
||
that.isCanClick = false;
|
||
that.captcha=response.data.data;
|
||
this.uuid=response.data.id;
|
||
} else {
|
||
that.isCanClick = 1;
|
||
layer.msg(response.data.msg);
|
||
}
|
||
});
|
||
},
|
||
register() {
|
||
var pattern = /^1[0-9]{10}$/;
|
||
if (!pattern.test(this.tel)) {
|
||
layer.msg("手机号码有误!");
|
||
return;
|
||
}
|
||
if (!$.trim(this.password)) {
|
||
layer.msg("密码不能为空");
|
||
return;
|
||
}
|
||
if (this.password != this.surepassword) {
|
||
layer.msg("两次密码不一致,请重新输入");
|
||
return;
|
||
}
|
||
if (!this.code) {
|
||
layer.msg("验证码不能为空");
|
||
return;
|
||
}
|
||
axios
|
||
.post("/api/translate/register", {
|
||
tel: this.tel,
|
||
password: this.password,
|
||
code: this.code,
|
||
type: this.type,
|
||
})
|
||
.then((response) => {
|
||
if (response.data.code == 200) {
|
||
|
||
} else {
|
||
layer.msg(response.data.msg);
|
||
}
|
||
});
|
||
},
|
||
},
|
||
});
|
||
</script>
|
||
<div class="public-footer">
|
||
<div class="w1200">
|
||
<div class="left"><img src="static/picture/logo.png" alt="" /></div>
|
||
<div
|
||
style="
|
||
flex-direction: column;
|
||
line-height: 23px;
|
||
padding-left: 100px;
|
||
color: #fff;
|
||
font-size: 12px;
|
||
"
|
||
>
|
||
<p style="color: #fff; font-size: 12px"><span>官方频道:@apiapl_news</span></p>
|
||
<p style="color: #fff; font-size: 12px"><span>咨询客服:@apiapl</span></p>
|
||
<span></span>
|
||
</p>
|
||
</div>
|
||
<div class="right" style="white-space: nowrap">
|
||
<p></p>
|
||
|
||
<p><span>技术服务:@apiapl_sdk</span></p>
|
||
<p><span>联系邮箱:info@apiapl.com</span></p>
|
||
<p class=""><span>联系电话:+18435173355 </span></p>
|
||
</div>
|
||
</div>
|
||
<div class="copyright">
|
||
<a href="https://beian.miit.gov.cn/" target="blank"></a>
|
||
</div>
|
||
</div>
|
||
<style>
|
||
.captcha-input{
|
||
width: 260px !important;
|
||
}
|
||
|
||
.captcha-container{
|
||
cursor: pointer;
|
||
|
||
}
|
||
.captcha-img{
|
||
max-width: 100%;
|
||
max-height: 100%;
|
||
}
|
||
</style>
|
||
</body>
|
||
</html>
|