Commit 68c38246 by kyonback

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	yarn-error.log
parents c54bf43c 0e34f897
...@@ -6,3 +6,4 @@ node_modules/ ...@@ -6,3 +6,4 @@ node_modules/
.git/ .git/
package-lock.json package-lock.json
dist/ dist/
deploy/winsun-docker-application-list/gdtel-gztel-school-center/ui/nginx/html/
FROM nginx
LABEL maintainer="Liph <liph@gzwinsun.com>" app="gdtel-gztel-jyyy-ui"
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \
&& apk update && apk add ca-certificates tzdata \
&& cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone \
&& apk del tzdata
COPY dist/ /usr/share/nginx/html/
EXPOSE 80
FROM nginx
LABEL maintainer="Liph <liph@gzwinsun.com>" app="com.gdtel.gztel.schoolcenter.ui"
COPY nginx/html /etc/nginx/html
COPY nginx/config/ui.conf /etc/nginx/conf.d/default.conf
EXPOSE 11090
CMD ["nginx", "-g", "daemon off;"]
server_tokens off;
server {
listen 11090;
server_name 172.18.101.171;
client_max_body_size 100M;
proxy_connect_timeout 180;
proxy_read_timeout 180;
proxy_send_timeout 180;
location / {
root /etc/nginx/html;
}
location /auth {
proxy_pass http://gateway:10001/auth;
}
location /jyyy {
proxy_pass http://gateway:10001/jyyy;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
#!/bin/bash
cp -r ../dist/* prod/winsun-docker-application-list/gdtel-gztel-school-center/ui/nginx/html
scp -r prod/winsun-docker-application-list/gdtel-gztel-school-center/* liph@172.18.101.171:/datas/apps/web/jars/winsun-docker-application-list/gdtel-gztel-school-center

163 KB | W: | H:

172 KB | W: | H:

src/assets/bg_content.png
src/assets/bg_content.png
src/assets/bg_content.png
src/assets/bg_content.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -20,23 +20,6 @@ ...@@ -20,23 +20,6 @@
<a-form-item <a-form-item
:labelCol="labelCol" :labelCol="labelCol"
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
label="验证码">
<a-input
v-decorator="['inputCode',validatorRules.inputCode]"
type="text"
placeholder="请输入验证码">
</a-input>
<a-button
type="primary"
htmlType="submit"
@click.stop.prevent="getCode"
>{{codeMsg}}
</a-button>
</a-form-item>
<a-form-item
:labelCol="labelCol"
:wrapperCol="wrapperCol"
label="新密码"> label="新密码">
<a-input type="password" placeholder="请输入新密码" v-decorator="[ 'newPwd', validatorRules.newPwd]"/> <a-input type="password" placeholder="请输入新密码" v-decorator="[ 'newPwd', validatorRules.newPwd]"/>
</a-form-item> </a-form-item>
...@@ -107,35 +90,6 @@ ...@@ -107,35 +90,6 @@
} }
}, },
methods: { methods: {
getCode() {
// 验证码60秒倒计时
if (!this.timer) {
postAction(this.codeurl).then((res)=>{
if (res.code==200){
this.$notification.success({
message: res.data,
});
return null;
}
this.$notification.error({
message: res.data,
});
})
this.timer = setInterval(() => {
if (this.countdown > 0 && this.countdown <= 60) {
this.countdown--;
if (this.countdown !== 0) {
this.codeMsg = "重新发送(" + this.countdown + ")";
} else {
clearInterval(this.timer);
this.codeMsg = "获取验证码";
this.countdown = 60;
this.timer = null;
}
}
}, 1000)
}
},
//密码加密 //密码加密
getPass(text){ getPass(text){
/*let keyss = setMaxDigits(130); /*let keyss = setMaxDigits(130);
...@@ -180,11 +134,11 @@ ...@@ -180,11 +134,11 @@
that.confirmLoading = true; that.confirmLoading = true;
values.oldPwd=encodeURIComponent(this.getPass(values.oldPwd)) values.oldPwd=encodeURIComponent(this.getPass(values.oldPwd))
values.newPwd=encodeURIComponent(this.getPass(values.newPwd)) values.newPwd=encodeURIComponent(this.getPass(values.newPwd))
values.inputCode=encodeURIComponent(this.getPass(values.inputCode)) values.inputCode=encodeURIComponent(this.getPass("XXXXXX"))
values.rePwd=values.newPwd values.rePwd=values.newPwd
let params = Object.assign(values) let params = Object.assign(values)
postAction(this.url,params).then((res)=>{ postAction(this.url,params).then((res)=>{
if(res.code){ if(res.code!=200){
that.$message.error(res.message); that.$message.error(res.message);
that.close(); that.close();
}else{ }else{
......
...@@ -16,11 +16,6 @@ export const asyncRouterMap = [{ ...@@ -16,11 +16,6 @@ export const asyncRouterMap = [{
component: () => import(/* webpackChunkName: "user" */ '@/views/user/Login') component: () => import(/* webpackChunkName: "user" */ '@/views/user/Login')
}, },
{ {
path: 'register',
name: 'register',
component: () => import(/* webpackChunkName: "user" */ '@/views/user/register')
},
{
path: 'ueditor2', path: 'ueditor2',
name: 'ueditor2', name: 'ueditor2',
component: () => import(/* webpackChunkName: "user" */ '@/views/user/ueditor2') component: () => import(/* webpackChunkName: "user" */ '@/views/user/ueditor2')
...@@ -74,6 +69,11 @@ export const asyncRouterMap = [{ ...@@ -74,6 +69,11 @@ export const asyncRouterMap = [{
path: 'readAgree', path: 'readAgree',
name: 'readAgree', name: 'readAgree',
component: () => import('@views/hhr-view/newpackage/readAgree.vue') component: () => import('@views/hhr-view/newpackage/readAgree.vue')
},
{
path: 'welfareScheme',
name: 'welfareScheme',
component: () => import('@views/hhr-view/packageUpgrade/welfareScheme.vue')
} }
] ]
} }
......
...@@ -2,8 +2,10 @@ ...@@ -2,8 +2,10 @@
<div style="position:relative "> <div style="position:relative ">
<img src="/picture/hhr/yrym-ruanyan-adv-bg.jpg" style="width: 100%; float: right"> <img src="/picture/hhr/yrym-ruanyan-adv-bg.jpg" style="width: 100%; float: right">
<img src="/picture/hhr/kefu.png" style="width: 10%;position:fixed ;right: 15px;top: 15px" @click="showPopup"> <img src="/picture/hhr/kefu.png" style="width: 10%;position:fixed ;right: 15px;top: 15px" @click="showPopup">
<div style="height: 700px;"></div>
<div style="font-size: 28px;text-align: center;background: white;position:fixed ;bottom: 0px;width: 100%" class="van-hairline--surround"> <div style="font-size: 28px;text-align: center;background: white;position:fixed ;bottom: 0px;width: 100%" class="van-hairline--surround">
<div v-show="inQuery">
<van-button loading type="info" loading-text="查询中..." />
</div>
<div style="width: 90%;margin-left: 5%"> <div style="width: 90%;margin-left: 5%">
<van-cell-group > <van-cell-group >
<van-field v-model="value" placeholder="身份证/手机号/宽带账号"/> <van-field v-model="value" placeholder="身份证/手机号/宽带账号"/>
...@@ -25,7 +27,7 @@ ...@@ -25,7 +27,7 @@
</van-popup> </van-popup>
</div> </div>
<div v-show="show"> <div v-show="show">
<van-popup v-model="show" style="width: 70%;height: 13%; display: flex; align-items: center;justify-content: center;"> <van-popup v-model="show" style="width: 70%;height: 16%; display: flex; align-items: center;justify-content: center;">
<div style=" background-image: url('./picture/hhr/div-tips-dialog.png'); <div style=" background-image: url('./picture/hhr/div-tips-dialog.png');
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100%; background-size: 100%;
...@@ -39,23 +41,26 @@ ...@@ -39,23 +41,26 @@
<van-popup v-model="duanxing" <van-popup v-model="duanxing"
style="width: 80%;height: 30%; display: flex; align-items: center;justify-content: center;"> style="width: 80%;height: 30%; display: flex; align-items: center;justify-content: center;">
<div> <div>
<div style="font-size: 20px; color: black;text-align: center;position: fixed;top: 3px;margin: 0px 0px 20px 0px;">{{yanzhengma}}</div> <div style="font-size: 20px; color: black;text-align: center;position: fixed;top: 3px;margin: 0px 0px 20px 0px;">{{phone}}</div>
<div style="margin: 50px 0px 0px 0px;"> <div style="margin: 50px 0px 0px 0px;width: 90%;margin-left: 5%">
<van-field <van-field
center center
clearable clearable
placeholder="请输入短信验证码" placeholder="请输入短信验证码"
style="width: 100%;height: 30%;" style="width: 100%;height: 30%;"
v-model="yanzhengma"
> >
<van-button slot="button" size="small" type="info" <van-button slot="button" size="small" type="info"
@click.stop.prevent="getCode" @click.stop.prevent="getCode"
>{{codeMsg}} >{{codeMsg}}
</van-button> </van-button>
</van-field> </van-field>
<div v-show="prompt" style="color:red;font-size: 20px; color: red;text-align: center;">
验证码有误
</div>
<van-button round block type="info" native-type="submit" @click="welfareScheme">
<van-button round block type="info" native-type="submit">
确认 确认
</van-button> </van-button>
</div> </div>
...@@ -78,6 +83,8 @@ ...@@ -78,6 +83,8 @@
name: "packageUpgrade", name: "packageUpgrade",
data() { data() {
return { return {
inQuery:false,
prompt:false,
value: '', value: '',
countdown: 0,// 倒计时秒数 countdown: 0,// 倒计时秒数
codeMsg: '获取验证码', // 按钮上的文字 codeMsg: '获取验证码', // 按钮上的文字
...@@ -91,6 +98,7 @@ ...@@ -91,6 +98,7 @@
sm: { span: 10 }, sm: { span: 10 },
}, },
yanzhengma: '', yanzhengma: '',
phone: '',
kefushow: false, kefushow: false,
show: false, show: false,
duanxing: false duanxing: false
...@@ -130,13 +138,19 @@ ...@@ -130,13 +138,19 @@
if (this.value == "") { if (this.value == "") {
return; return;
} else { } else {
this.inQuery=true
let selectOrder = this.value; let selectOrder = this.value;
if(this.countdown!=0){
this.inQuery=false
this.duanxing = true;
}else {
sendVerificationCode({selectOrder}).then(res => { sendVerificationCode({selectOrder}).then(res => {
this.inQuery=false
if (res.state == 'error'){ if (res.state == 'error'){
this.show=true; this.show=true;
}else { }else {
this.duanxing = true; this.duanxing = true;
this.yanzhengma=res.data this.phone=res.data
//初始化倒计时 //初始化倒计时
this.countdown=60; this.countdown=60;
this.timer = setInterval(() => { this.timer = setInterval(() => {
...@@ -153,7 +167,7 @@ ...@@ -153,7 +167,7 @@
} }
}, 1000) }, 1000)
} }
}) })}
} }
}, },
...@@ -164,9 +178,23 @@ ...@@ -164,9 +178,23 @@
this.kefushow = true this.kefushow = true
} }
}, },
duanxings(){ welfareScheme(){
if(this.yanzhengma==''){
return;
}
let selectOrder = this.value;
let verificationCode = this.yanzhengma
selectPackage({selectOrder,verificationCode}).then(res => {
if (res.state == 'error'){
this.prompt=true;
}else {
this.$router.push({
path: 'welfareScheme',
})
}
})
}, }
} }
} }
</script> </script>
......
<template>
<div style="background-image: url('./picture/hhr/01.jpg');
background-repeat: no-repeat;
background-size: 100%;
width: 100%;
height: 150%; position:relative">
<div style="height:70px"></div>
<img src="/picture/hhr/kefu.png" style="width: 10%;position:fixed ;right: 15px;top: 15px" @click="showPopup">
<div style="background: white;" >
<div style="padding-top:20px">
<van-divider :style="{ borderColor: '#1989fa', padding: '0 16px' }">
<div style="font-size: 22px"> 福利方案</div>
</van-divider>
</div>
<div style="text-align: center;height:100%;margin: 10px 10px 10px 10px;background-color: rgba(128, 128, 128, 0.09);background:#adadad">
<div style=" border-bottom:2px solid green;font-size: 22px">
<van-row>
<van-col span="8"></van-col>
<van-col span="8">原套餐<br>(daiding)</van-col>
<van-col span="8">新套餐<br>(daiding)</van-col>
</van-row>
</div>
<div style=" border-bottom:2px solid green;font-size: 22px">
<van-row>
<van-col span="8">月租</van-col>
<van-col span="8">{{package}}</van-col>
<van-col span="8">(daiding)</van-col>
</van-row>
</div>
<div style=" border-bottom:2px solid green;font-size: 22px">
<van-row>
<van-col span="8">套餐</van-col>
<van-col span="8">(daiding)</van-col>
<van-col span="8">(daiding)</van-col>
</van-row>
</div>
<div style=" border-bottom:2px solid green;font-size: 22px">
<van-row>
<van-col span="8">语音</van-col>
<van-col span="8">(daiding)</van-col>
<van-col span="8">(daiding)</van-col>
</van-row>
</div>
<div style=" border-bottom:2px solid green;font-size: 22px">
<div style="margin: 10px 10px 10px 10px;">
<van-checkbox v-model="checked" shape="square">复选框</van-checkbox>
</div>
</div>
</div>
</div>
<div style="font-size: 28px;text-align: center;background: white;position:fixed ;bottom: 0px;width: 100%" class="van-hairline--surround">
<div style="width: 90%;margin-left: 5%;margin: 20px 5% 20px 5%;">
<van-button round block type="info" native-type="submit" @click="selectPackage">马上办理</van-button>
</div>
</div>
<div v-show="kefushow">
<van-popup v-model="kefushow"
style="width: 90%;height: 45%; display: flex; align-items: center;justify-content: center;">
<div style="border: 1px solid #e2e2e2;width: 92%;height: 90%;position: fixed;display: flex; align-items: center;justify-content: center;">
<div style="font-size: 20px; color: black;text-align: center;position: fixed;top: 3px">您的专属客服</div>
<img src="/picture/hhr/service-qrcode.jpg" style="width:55%;">
</div>
</van-popup>
</div>
</div>
</template>
<script>
import {selectPackage,sendVerificationCode} from "@/api/app/package"
import Vue from 'vue';
import {Field} from 'vant';
export default {
name: "packageUpgrade",
package:'',
data() {
return {
phone: '',
kefushow: false,
};
},
methods: {
selectPackage() {
},
showPopup() {
if(this.kefushow == true){
this.kefushow = false
}else {
this.kefushow = true
}
},
}
}
</script>
<style scoped>
</style>
...@@ -39,31 +39,6 @@ ...@@ -39,31 +39,6 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row :gutter="0">
<a-col :span="14">
<a-form-item>
<a-input
:disabled="!loginBtn"
v-decorator="['phonecode',validatorRules.phoneCode]"
size="large"
type="text"
placeholder="请输入手机验证码">
<a-icon slot="prefix" type="message" :style="{ color: 'rgba(0,0,0,.25)' }"/>
</a-input>
</a-form-item>
</a-col>
<a-col :span="10">
<a-button
size="small"
type="primary"
htmlType="submit"
class="code-button"
@click.stop.prevent="getCode"
:disabled="!loginBtn">{{codeMsg}}
</a-button>
<!-- <j-graphic-code @success="generateCode" style="float: right"></j-graphic-code>-->
</a-col>
</a-row>
<a-form-item> <a-form-item>
<a-input <a-input
:disabled="!loginBtn" :disabled="!loginBtn"
...@@ -75,7 +50,7 @@ ...@@ -75,7 +50,7 @@
<a-icon slot="prefix" type="lock" :style="{ color: 'rgba(0,0,0,.25)' }"/> <a-icon slot="prefix" type="lock" :style="{ color: 'rgba(0,0,0,.25)' }"/>
</a-input> </a-input>
</a-form-item> </a-form-item>
<div class="register">忘记密码?<router-link :to="{path: '/user/register'}">找回密码</router-link></div> <!-- <div class="register">忘记密码?<router-link :to="{path: '/user/register'}">找回密码</router-link></div>-->
<a-form-item style="margin-top:24vw/@vw"> <a-form-item style="margin-top:24vw/@vw">
<a-button <a-button
...@@ -174,17 +149,6 @@ export default { ...@@ -174,17 +149,6 @@ export default {
let data = { let data = {
username: username, username: username,
} }
getPhoneCode(data).then(res => {
if (res.code == 200) {
this.$notification.success({
message: res.message ? res.message :"发送成功",
});
return null;
}
this.$notification.error({
message: res.message ? res.message :"发送错误",
});
})
//初始化倒计时 //初始化倒计时
this.countdown=60; this.countdown=60;
this.timer = setInterval(() => { this.timer = setInterval(() => {
...@@ -209,12 +173,12 @@ export default { ...@@ -209,12 +173,12 @@ export default {
smsCode: "xxxx" smsCode: "xxxx"
}; };
// 使用账户密码登陆 // 使用账户密码登陆
that.form.validateFields(['username', 'password', 'inputCode',"phonecode"], {force: true}, (err, values) => { that.form.validateFields(['username', 'password', 'inputCode'], {force: true}, (err, values) => {
if (!err) { if (!err) {
loginParams.username = values.username; loginParams.username = values.username;
loginParams.password = encodeURIComponent(this.getPass(values.password)); loginParams.password = encodeURIComponent(this.getPass(values.password));
loginParams.remember = that.formLogin.remember; loginParams.remember = that.formLogin.remember;
loginParams.phonecode=encodeURIComponent(this.getPass(values.phonecode)); loginParams.phonecode=encodeURIComponent(this.getPass("XXXXXX"));
//console.log(loginParams); //console.log(loginParams);
that.Login(loginParams).then(() => { that.Login(loginParams).then(() => {
this.departConfirm({}); this.departConfirm({});
......
<template>
<div class="main clearfix">
<div class="caption">
</div>
<div class="form">
<span class="form_title">密码重置</span>
<a-form :form="form" class="user-layout-login" ref="formLogin" id="formLogin">
<a-form-item>
<a-input
size="large"
v-decorator="['username',validatorRules.username,{ validator: this.handleUsernameOrEmail }]"
type="text"
placeholder="请输入账号">
<a-icon slot="prefix" type="user" :style="{ color: 'rgba(0,0,0,.25)' }"/>
</a-input>
</a-form-item>
<a-row :gutter="0">
<a-col :span="14">
<a-form-item>
<a-input
v-decorator="['inputCode',validatorRules.inputCode]"
size="large"
type="text"
@change="inputCodeChange"
placeholder="请输入验证码">
<a-icon
slot="prefix"
v-if=" inputCodeContent==verifiedCode "
type="smile"
:style="{ color: 'rgba(0,0,0,.25)' }"/>
<a-icon slot="prefix" v-else type="frown" :style="{ color: 'rgba(0,0,0,.25)' }"/>
</a-input>
</a-form-item>
</a-col>
<a-col :span="10">
<a-button
size="small"
type="primary"
htmlType="submit"
class="code-button"
:loading="loginBtn"
@click.stop.prevent="getCode"
:disabled="loginBtn">{{codeMsg}}
</a-button>
<!-- <j-graphic-code @success="generateCode" style="float: right"></j-graphic-code>-->
</a-col>
</a-row>
<a-form-item>
<a-input
v-decorator="['password',validatorRules.password]"
size="large"
type="password"
autocomplete="false"
placeholder="新密码(6-12位数字和字母组合)">
<a-icon slot="prefix" type="lock" :style="{ color: 'rgba(0,0,0,.25)' }"/>
</a-input>
</a-form-item>
<a-form-item>
<a-input
v-decorator="['password2',validatorRules.password2]"
size="large"
type="password"
autocomplete="false"
placeholder="再次输入密码">
<a-icon slot="prefix" type="lock" :style="{ color: 'rgba(0,0,0,.25)' }"/>
</a-input>
</a-form-item>
<router-link :to="{name: '/user/Login'}" class="back_login">返回登录</router-link>
<a-button
size="small"
type="primary"
htmlType="submit"
class="login-button"
:loading="loginBtn"
@click.stop.prevent="handleSubmit"
:disabled="loginBtn">确定
</a-button>
</a-form>
<!-- <two-step-captcha-->
<!-- v-if="requiredTwoStepCaptcha"-->
<!-- :visible="stepCaptchaVisible"-->
<!-- @success="stepCaptchaSuccess"-->
<!-- @cancel="stepCaptchaCancel">-->
<!-- </two-step-captcha>-->
</div>
</div>
</template>
<script>
import TwoStepCaptcha from '@/components/tools/TwoStepCaptcha'
import {mapActions} from "vuex"
import {timeFix} from "@/utils/util"
import Vue from 'vue'
import {ACCESS_TOKEN} from "@/store/mutation-types"
import JGraphicCode from '@/components/jeecg/JGraphicCode'
import {setMaxDigits , RSAKeyPair , encryptedString} from '@/utils/RSA'
import {
register,registercode
} from '@/api/system'
export default {
components: {
TwoStepCaptcha,
JGraphicCode
},
data() {
return {
customActiveKey: "tab1",
loginBtn: false,
// login type: 0 email, 1 username, 2 telephone
loginType: 0,
requiredTwoStepCaptcha: false,
stepCaptchaVisible: false,
form: this.$form.createForm(this),
formLogin: {
username: "",
password: "",
captcha: "",
mobile: ""
},
validatorRules: {
username: {rules: [{required: true, message: '请输入手机号码!', validator: 'click'}]},
password: {rules: [{required: true, message: '请输入密码!', validator: 'click'}]},
password2: {rules: [{required: true, message: '请再次输入密码!'},{validator: this.validateToNextPassword}]},
mobile: {rules: [{validator: this.validateMobile}]},
captcha: {rule: [{required: true, message: '请输入验证码!'}]},
inputCode: {rules: [{required: true, message: '请输入验证码!'}, {validator: this.validateInputCode}]}
},
codeDisabled: false,// 是否禁用按钮
countdown: 60,// 倒计时秒数
codeMsg: '获取验证码', // 按钮上的文字
timer: null,// 定时器
verifiedCode: "",
inputCodeContent: "",
inputCodeNull: true,
}
},
created() {
Vue.ls.remove(ACCESS_TOKEN)
this.getRouterData();
},
methods: {
// handler
handleUsernameOrEmail(rule, value, callback) {
const regex = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
if (regex.test(value)) {
this.loginType = 0
} else {
this.loginType = 1
}
callback()
},
handleTabClick(key) {
this.customActiveKey = key
// this.form.resetFields()
},
getCode(){
// 验证码60秒倒计时
if (!this.timer) {
let data={
account:this.form.getFieldValue("username")
}
registercode(data).then(res=>{
if (res.code==200){
this.$notification.success({
message: res.data,
});
return null;
}
this.$notification.error({
message: res.data,
});
})
this.timer = setInterval(() => {
if (this.countdown > 0 && this.countdown <= 60) {
this.countdown--;
if (this.countdown !== 0) {
this.codeMsg = "重新发送(" + this.countdown + ")";
} else {
clearInterval(this.timer);
this.codeMsg = "获取验证码";
this.countdown = 60;
this.timer = null;
this.codeDisabled = false;
}
}
}, 1000)
}
},
handleSubmit() {
let that = this
let loginParams = {
smsCode: "xxxx"
};
let data={
account:"",
verificationCode:"",
newPwd:"",
rePwd:''
}
// 确定修改密码
that.form.validateFields(['username', 'password', 'password2', 'inputCode'], {force: true}, (err, values) => {
if (!err) {
values.password = encodeURIComponent(this.getPass(values.password));
values.password2 = encodeURIComponent(this.getPass(values.password2));
let data = {
account: values.username,
verificationCode: values.inputCode,
newPwd: values.password,
rePwd: values.password
}
register(data).then(res => {
if (res.code==200) {
this.registerSuccess(res.data);
return null;
}
this.registerRrror(res.data)
})
}
})
},
requestFailed(err) {
this.$notification['error']({
message: '登录失败',
description: ((err.response || {}).data || {}).message || err.message || "请求出现错误,请稍后再试",
duration: 4,
});
this.loginBtn = false;
},
registerSuccess(data) {
this.$notification.success({
message: data,
description: `${timeFix()},请再次登录`,
});
},
registerRrror(data) {
this.$notification.warn({
message: data,
});
},
validateMobile(rule, value, callback) {
if (!value || new RegExp(/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/).test(value)) {
callback();
} else {
callback("您的手机号码格式不正确!");
}
},
validateInputCode(rule, value, callback) {
if (!value || this.verifiedCode == this.inputCodeContent) {
callback();
} else {
callback("您输入的验证码不正确!");
}
},
inputCodeChange(e) {
},
getRouterData() {
this.$nextTick(() => {
this.form.setFieldsValue({
'username': this.$route.params.username
});
})
},
validateToNextPassword (rule, value, callback) {
const form = this.form;
if (value!= form.getFieldValue("password")) {
callback("两次输入的密码不一样!");
}
callback();
},
//密码加密
getPass(text){
/*let keyss = setMaxDigits(130);
keyss = new RSAKeyPair("10001","","a5d210338760bdbe2baabef73c410582e812dad8d9669d8c6ebfe026450e5cc10005290f17a0474c7351031edbff81bd8217a518bdf1a02855f53105ead0370e8a9e30b8560feab1d333a0b055b29419476b0eea1ea54315662ddfc46ec066f076e9490ec34c825afad9e44cf38e5ab600f3136acfe3a0ac0e672e2cb8e50371");
let password = encryptedString(keyss,text);*/
let publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCAcsbUyeRD2lQGPEnu5LbXOL2lycUJwK/8BsoZD3b932l4JehAvOKR/YNzs6EG4gnZ7gaXLCnWbE5kB1wuUooo6bv8fSAg0W5QmM1TH8zaIImdAaN6c8mw5dUS/2VJ/2GHI54R1NJziX9VHecpf2DrHnWngETsNytmXaVl3JiXywIDAQAB";
let encrypt = new window.JSEncrypt();
encrypt.setPublicKey(publicKey);
var encryptPwd = encrypt.encryptLong(text);
return encryptPwd;
//return text;
}
}
}
</script>
<style lang="less" scoped>
@import '~@/assets/less/style';
.main{
.caption{
width: 666vw/@vw;
height: 792vw/@vw;
background: url("~@/assets/bg_content.png") no-repeat center;
background-size: cover;
float: left;
}
.form{
width: calc(100% - 666vw/@vw);
height: 792vw/@vw;
box-sizing: border-box;
padding:80vw/@vw 80vw/@vw 0 60vw/@vw;
float:left;
.form_title{
font-size:40vw/@vw;
font-family:PingFang SC;
font-weight:500;
color:rgba(51,51,51,1);
display: inline-block;
height: 55vw/@vw;
margin: 25vw/@vw 0vw/@vw 50vw/@vw 0;
border-bottom: 6vw/@vw solid #57bbff;
}
/deep/ .ant-form-item{
margin-bottom: 24vw/@vw;
}
@media (min-width: 1920px) {
/deep/.ant-input-affix-wrapper .ant-input-prefix{
font-size: 22vw/@vw;
top: 38% !important;
}
}
@media (min-width: 1400px) {
/deep/.ant-input-affix-wrapper .ant-input-prefix{
font-size: 22vw/@vw;
top: 40.5% !important;
}
}
/deep/.ant-input-affix-wrapper .ant-input-prefix{
font-size: 22vw/@vw;
top: 39%;
}
/deep/ .user-layout-login div .ant-input{
width:100%;
height:68vw/@vw;
margin-bottom: 15vw/@vw;
padding-left: 44vw/@vw;
background:rgba(245,245,245,1);
border:1vw/@vw solid rgba(221,221,221,1);
opacity:0.5;
border-radius:4vw/@vw;
&::-webkit-input-placeholder {
font-size:24vw/@vw;
font-family:PingFang SC;
font-weight:500;
color:#333;
line-height:88vw/@vw;
}
&::-moz-placeholder {
font-size:24vw/@vw;
font-family:PingFang SC;
font-weight:500;
color:#333;
line-height:88vw/@vw;
}
&:-ms-input-placeholder {
font-size:24vw/@vw;
font-family:PingFang SC;
font-weight:500;
color:#333;
line-height:88vw/@vw;
}
}
/deep/ #gc-canvas{
height: 67vw/@vw;
}
.code-button{
width:calc(100% - 10vw/@vw);
height:68vw/@vw;
margin-left: 10vw/@vw;
background:#e6e6e6;
/*border-radius:40vw/@vw;*/
font-size:24vw/@vw;
font-family:PingFang SC;
font-weight:bold;
color:#adadad;
}
.back_login{
width:290vw/@vw;
height:80vw/@vw;
margin-right: 10vw/@vw;
background:rgba(87,148,255,1);
border-radius:40vw/@vw;
font-size:36vw/@vw;
font-family:PingFang SC;
font-weight:bold;
color:rgba(255,255,255,1);
text-decoration: none;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.12);
box-shadow: 0 2px 0 rgba(0, 0, 0, 0.045);
line-height: 80vw/@vw;
display: inline-block;
white-space: nowrap;
text-align: center;
border: 1px solid transparent;
cursor: pointer;
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-ms-touch-action: manipulation;
touch-action: manipulation;
}
/deep/ .user-layout-login button.login-button{
width:290vw/@vw;
height:80vw/@vw;
background:rgba(87,148,255,1);
border-radius:40vw/@vw;
font-size:36vw/@vw;
font-family:PingFang SC;
font-weight:bold;
color:rgba(255,255,255,1);
}
}
}
/*.user-layout-login {
margin-top: 20px;
label {
font-size: 14px;
}
.getCaptcha {
display: block;
width: 100%;
height: 40px;
}
.forge-password {
font-size: 14px;
}
button.login-button {
padding: 0 15px;
font-size: 16px;
height: 40px;
width: 100%;
}
.user-login-other {
text-align: left;
margin-top: 24px;
line-height: 22px;
.item-icon {
font-size: 24px;
color: rgba(0, 0, 0, .2);
margin-left: 16px;
vertical-align: middle;
cursor: pointer;
transition: color .3s;
&:hover {
color: #1890ff;
}
}
.register {
float: right;
}
}
}*/
</style>
<style>
.valid-error .ant-select-selection__placeholder {
color: #f5222d;
}
</style>
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment