|
@@ -66,6 +66,16 @@
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 微信扫码弹框 -->
|
|
|
|
|
+ <WechatLoginDialog
|
|
|
|
|
+ ref="wechatDialog"
|
|
|
|
|
+ :ticket="loginForm.username"
|
|
|
|
|
+ :visible.sync="wechatDialogVisible"
|
|
|
|
|
+ @loginSuccess="handleWechatLoginSuccess"
|
|
|
|
|
+ :redirect="redirect"
|
|
|
|
|
+ />
|
|
|
|
|
+
|
|
|
<!-- 底部 -->
|
|
<!-- 底部 -->
|
|
|
<div class="el-login-footer">
|
|
<div class="el-login-footer">
|
|
|
<span>{{companyName}}</span>
|
|
<span>{{companyName}}</span>
|
|
@@ -79,9 +89,11 @@ import { getCodeImg } from "@/api/login";
|
|
|
import Cookies from "js-cookie";
|
|
import Cookies from "js-cookie";
|
|
|
import { encrypt, decrypt } from '@/utils/jsencrypt'
|
|
import { encrypt, decrypt } from '@/utils/jsencrypt'
|
|
|
import { getFirstLogin } from "@/api/login";
|
|
import { getFirstLogin } from "@/api/login";
|
|
|
-
|
|
|
|
|
|
|
+import WechatLoginDialog from "@/views/WechatLoginDialog";
|
|
|
|
|
+import { setToken } from "@/utils/auth";
|
|
|
export default {
|
|
export default {
|
|
|
name: "Login",
|
|
name: "Login",
|
|
|
|
|
+ components: { WechatLoginDialog },
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
codeUrl: "",
|
|
codeUrl: "",
|
|
@@ -90,6 +102,7 @@ export default {
|
|
|
icpRecord: process.env.VUE_APP_ICP_RECORD,
|
|
icpRecord: process.env.VUE_APP_ICP_RECORD,
|
|
|
icpUrl: process.env.VUE_APP_ICP_URL,
|
|
icpUrl: process.env.VUE_APP_ICP_URL,
|
|
|
cookiePassword: "",
|
|
cookiePassword: "",
|
|
|
|
|
+ wechatDialogVisible: false,
|
|
|
loginForm: {
|
|
loginForm: {
|
|
|
username: "",
|
|
username: "",
|
|
|
password: "",
|
|
password: "",
|
|
@@ -166,7 +179,18 @@ export default {
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
|
|
+ // 微信扫码成功回调
|
|
|
|
|
+ handleWechatLoginSuccess(token) {
|
|
|
|
|
+ this.loading = false
|
|
|
|
|
+ console.log("父组件收到 loginSuccess:", token);
|
|
|
|
|
+ this.$store.commit("SET_TOKEN", token);
|
|
|
|
|
+ setToken(token);
|
|
|
|
|
+ // 登录成功后检查是否是首次登录
|
|
|
|
|
+ this.checkFirstLogin();
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
handleLogin() {
|
|
handleLogin() {
|
|
|
|
|
+ console.log("handleLogin")
|
|
|
this.$refs.loginForm.validate(valid => {
|
|
this.$refs.loginForm.validate(valid => {
|
|
|
if (valid) {
|
|
if (valid) {
|
|
|
this.loading = true;
|
|
this.loading = true;
|
|
@@ -181,12 +205,24 @@ export default {
|
|
|
}
|
|
}
|
|
|
this.$store
|
|
this.$store
|
|
|
.dispatch("Login", this.loginForm)
|
|
.dispatch("Login", this.loginForm)
|
|
|
- .then(() => {
|
|
|
|
|
- // 登录成功后检查是否是首次登录
|
|
|
|
|
- this.checkFirstLogin();
|
|
|
|
|
- //this.$router.push({ path: this.redirect || "/" });
|
|
|
|
|
|
|
+ .then(res => {
|
|
|
|
|
+ if (res.needSms) {
|
|
|
|
|
+ console.log("打开弹窗")
|
|
|
|
|
+ this.wechatDialogVisible = true;
|
|
|
|
|
+ // 等 visible 更新后,直接调用弹窗 open()
|
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
|
+ if (this.$refs.wechatDialog) {
|
|
|
|
|
+ this.$refs.wechatDialog.open(this.loginForm.username);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 登录成功后检查是否是首次登录
|
|
|
|
|
+ this.checkFirstLogin();
|
|
|
|
|
+ }
|
|
|
})
|
|
})
|
|
|
- .catch(() => {
|
|
|
|
|
|
|
+ .catch(res => {
|
|
|
|
|
+ console.log("登录失败")
|
|
|
|
|
+ console.log(res)
|
|
|
this.loading = false;
|
|
this.loading = false;
|
|
|
this.getCode();
|
|
this.getCode();
|
|
|
});
|
|
});
|