|
@@ -71,6 +71,15 @@
|
|
|
<span>{{companyName}}</span>
|
|
<span>{{companyName}}</span>
|
|
|
<a :href="icpUrl" target="_bank">{{icpRecord}}</a>
|
|
<a :href="icpUrl" target="_bank">{{icpRecord}}</a>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 微信扫码弹框 -->
|
|
|
|
|
+ <WechatLoginDialog
|
|
|
|
|
+ ref="wechatDialog"
|
|
|
|
|
+ :ticket="loginForm.username"
|
|
|
|
|
+ :visible.sync="wechatDialogVisible"
|
|
|
|
|
+ @loginSuccess="handleWechatLoginSuccess"
|
|
|
|
|
+ :redirect="redirect"
|
|
|
|
|
+ />
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -79,9 +88,12 @@ 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.vue";
|
|
|
|
|
+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: "",
|
|
@@ -180,10 +193,21 @@ 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();
|
|
|
|
|
+ //this.$router.push({ path: this.redirect || "/" });
|
|
|
|
|
+ }
|
|
|
})
|
|
})
|
|
|
.catch(() => {
|
|
.catch(() => {
|
|
|
this.loading = false;
|
|
this.loading = false;
|
|
@@ -199,7 +223,15 @@ export default {
|
|
|
}else{
|
|
}else{
|
|
|
this.passwordtype="text"
|
|
this.passwordtype="text"
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
+ },
|
|
|
|
|
+ // 微信扫码成功回调
|
|
|
|
|
+ handleWechatLoginSuccess(token) {
|
|
|
|
|
+ this.loading = false
|
|
|
|
|
+ console.log("父组件收到 loginSuccess:", token);
|
|
|
|
|
+ this.$store.commit("SET_TOKEN", token);
|
|
|
|
|
+ setToken(token);
|
|
|
|
|
+ this.$router.push({ path: this.redirect || "/" });
|
|
|
|
|
+ },
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
</script>
|
|
</script>
|