|
@@ -33,6 +33,29 @@
|
|
|
<i class="icon icon-password" slot="prefix"></i>
|
|
|
</el-input>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item v-if="accountSmsVerify" prop="code">
|
|
|
+ <div class="vlcode">
|
|
|
+ <div class="vlcode-right">
|
|
|
+ <el-button
|
|
|
+ style="width:100%;"
|
|
|
+ type="text"
|
|
|
+ @click="fetchAccountSmsCode"
|
|
|
+ :disabled="isFetchingCode"
|
|
|
+ >+{{ codeContent }}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <div class="vlcode-left">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="loginModel.code"
|
|
|
+ placeholder="请输入手机验证码"
|
|
|
+ name="code"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <i class="icon icon-checkcode" slot="prefix"></i>
|
|
|
+ </el-input>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
<el-form-item prop="schoolCode"></el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button
|
|
@@ -94,7 +117,7 @@
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
- <div class="login-action box-justify">
|
|
|
+ <div v-if="!accountSmsVerify" class="login-action box-justify">
|
|
|
<div></div>
|
|
|
<el-button type="text" @click="switchLoginType">
|
|
|
<i>{{ switchBtnName }}</i>
|
|
@@ -115,7 +138,7 @@
|
|
|
|
|
|
<script>
|
|
|
import { password, phone, smscode } from "@/plugins/formRules";
|
|
|
-import { login, getSmsCode, getSchoolInfo } from "../api";
|
|
|
+import { login, getSmsCode, getSchoolInfo, getAccountSmsCode } from "../api";
|
|
|
import { Base64 } from "@/plugins/crypto";
|
|
|
import ResetPwd from "@/modules/base/components/ResetPwd";
|
|
|
import { ORG_CODE } from "@/constants/app";
|
|
@@ -159,7 +182,8 @@ export default {
|
|
|
roles: [],
|
|
|
isSubmit: false,
|
|
|
schoolLogo: "",
|
|
|
- loginType: "ACCOUNT"
|
|
|
+ loginType: "ACCOUNT",
|
|
|
+ accountSmsVerify: false
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
@@ -181,6 +205,7 @@ export default {
|
|
|
this.$ls.set("schoolLogo", data.logo);
|
|
|
this.$ls.set("schoolName", data.name);
|
|
|
this.schoolLogo = data.logo;
|
|
|
+ this.accountSmsVerify = data.accountSmsVerify;
|
|
|
},
|
|
|
switchLoginType() {
|
|
|
this.loginType = this.loginType === "ACCOUNT" ? "PHONE" : "ACCOUNT";
|
|
@@ -201,6 +226,7 @@ export default {
|
|
|
loginName: this.loginModel.loginName,
|
|
|
password: Base64(this.loginModel.password)
|
|
|
};
|
|
|
+ if (this.accountSmsVerify) datas.code = this.loginModel.code;
|
|
|
} else {
|
|
|
datas = {
|
|
|
...datas,
|
|
@@ -318,6 +344,40 @@ export default {
|
|
|
// };
|
|
|
// this.$refs.ResetPwd.open();
|
|
|
}
|
|
|
+ },
|
|
|
+ async fetchAccountSmsCode() {
|
|
|
+ const validAll = [
|
|
|
+ this.checkField("loginName"),
|
|
|
+ this.checkField("schoolCode"),
|
|
|
+ this.checkField("password")
|
|
|
+ ];
|
|
|
+
|
|
|
+ let result = true;
|
|
|
+ await Promise.all(validAll).catch(() => {
|
|
|
+ result = false;
|
|
|
+ });
|
|
|
+
|
|
|
+ if (!result) return;
|
|
|
+
|
|
|
+ this.isFetchingCode = true;
|
|
|
+ const data = await getAccountSmsCode({
|
|
|
+ schoolCode: this.loginModel.schoolCode,
|
|
|
+ loginName: this.loginModel.loginName,
|
|
|
+ password: Base64(this.loginModel.password)
|
|
|
+ }).catch(() => {
|
|
|
+ this.isFetchingCode = false;
|
|
|
+ });
|
|
|
+ if (!data) return;
|
|
|
+
|
|
|
+ if (data) {
|
|
|
+ this.$message.success(
|
|
|
+ `已向手机尾号【${data.slice(-4)}】成功发送短信,请在2分钟内进行验证!`
|
|
|
+ );
|
|
|
+ this.changeContent();
|
|
|
+ } else {
|
|
|
+ this.isFetchingCode = false;
|
|
|
+ this.$message.error("未绑定手机号!");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
};
|