|
@@ -36,20 +36,41 @@
|
|
|
/>
|
|
|
<i class="el-icon-view" @click="showPwd"></i>
|
|
|
</el-form-item>
|
|
|
- <el-button
|
|
|
- type="primary"
|
|
|
- style="width:100%;margin-bottom:30px;"
|
|
|
- :loading="loading"
|
|
|
- @click.native.prevent="handleLogin"
|
|
|
- >登录</el-button>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="3">
|
|
|
+ <a style="cursor:pointer;">
|
|
|
+ <img src="../assets/wx.png" width="32" @click="wxLogin"/>
|
|
|
+ </a>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="21">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ style="width:100%;margin-bottom:30px;"
|
|
|
+ :loading="loading"
|
|
|
+ @click.native.prevent="handleLogin"
|
|
|
+ >登录</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
</el-form>
|
|
|
</el-card>
|
|
|
</div>
|
|
|
+
|
|
|
+ <el-dialog
|
|
|
+ title="微信扫码登录"
|
|
|
+ :modal-append-to-body="false"
|
|
|
+ width="30%"
|
|
|
+ :visible.sync="wxDialogVisible">
|
|
|
+ <div v-loading="wxLoading">
|
|
|
+ <img :src="wxLoginQrcode" width="100%" height="auto"/>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
<script>
|
|
|
import Constant from "@/constant";
|
|
|
import { Message } from "element-ui";
|
|
|
+import userApi from '@/api/sys/user';
|
|
|
+import {setToken} from '@/utils/auth'
|
|
|
|
|
|
export default {
|
|
|
name: "login",
|
|
@@ -57,7 +78,8 @@ export default {
|
|
|
return {
|
|
|
loginForm: {
|
|
|
userName: "",
|
|
|
- password: ""
|
|
|
+ password: "",
|
|
|
+ openId: ""
|
|
|
},
|
|
|
loginRules: {
|
|
|
userName: [
|
|
@@ -75,7 +97,12 @@ export default {
|
|
|
},
|
|
|
pwdType: "password",
|
|
|
loading: false,
|
|
|
- redirect: undefined
|
|
|
+ redirect: undefined,
|
|
|
+ wxDialogVisible: false,
|
|
|
+ wxLoading: false,
|
|
|
+ wxLoginQrcode: '',
|
|
|
+ wxQueryHandler: 0,
|
|
|
+ loginCode: Math.random().toFixed(6)*1000000
|
|
|
};
|
|
|
},
|
|
|
watch: {
|
|
@@ -107,25 +134,90 @@ export default {
|
|
|
self.$store
|
|
|
.dispatch("user/login", self.loginForm)
|
|
|
.then(() => {
|
|
|
- self.$router.push({ path: this.redirect || "/home" });
|
|
|
self.loading = false;
|
|
|
+ self.$message.success("登录成功!");
|
|
|
+
|
|
|
+ self.$router.push({ path: this.redirect || "/home" });
|
|
|
})
|
|
|
.catch(error => {
|
|
|
self.loading = false;
|
|
|
- // self.$message.error(error || 'Has Error')
|
|
|
-
|
|
|
self.$message.error(error);
|
|
|
-
|
|
|
- // self.$notify({
|
|
|
- // title: "系统提示",
|
|
|
- // message: error || "Has Error",
|
|
|
- // type: "warning"
|
|
|
- // });
|
|
|
});
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
- afterQRScan() {}
|
|
|
+ wxLogin() {
|
|
|
+ var self = this;
|
|
|
+
|
|
|
+ self.wxDialogVisible = true;
|
|
|
+
|
|
|
+ self.wxLoading = true;
|
|
|
+
|
|
|
+ userApi.getLoginQrcode(self.loginCode).then((resp)=>{
|
|
|
+ var jsonData = resp.data;
|
|
|
+
|
|
|
+ self.wxLoading = false;
|
|
|
+
|
|
|
+ if(jsonData!=null){
|
|
|
+ if(jsonData.result) {
|
|
|
+ self.wxLoginQrcode = jsonData.data;
|
|
|
+ clearTimeout(self.wxQueryHandler);
|
|
|
+
|
|
|
+ self.queryWXLoginStatus();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ self.$message.error("获取二维码失败!");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ queryWXLoginStatus() {
|
|
|
+ var self = this;
|
|
|
+
|
|
|
+ userApi.queryWXLoginStatus(self.loginCode).then((resp)=>{
|
|
|
+ var jsonData = resp.data;
|
|
|
+ console.log(jsonData);
|
|
|
+
|
|
|
+ if(jsonData.data!=null && jsonData.data.length>0) {
|
|
|
+ var openId = jsonData.data;
|
|
|
+
|
|
|
+ self.loginForm.openId = openId;
|
|
|
+
|
|
|
+ self.loading = true;
|
|
|
+
|
|
|
+ self.scanQrcodeLogin();
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ self.wxQueryHandler = setTimeout(self.queryWXLoginStatus,3000);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ scanQrcodeLogin() {
|
|
|
+ var self = this;
|
|
|
+
|
|
|
+ self.loading = true;
|
|
|
+
|
|
|
+ console.log(self.loginForm.openId);
|
|
|
+
|
|
|
+ userApi.scanQrcodeLogin({
|
|
|
+ openId : self.loginForm.openId
|
|
|
+ }).then(resp => {
|
|
|
+ self.loading = false;
|
|
|
+
|
|
|
+ var jsonData = resp.data;
|
|
|
+
|
|
|
+ if(jsonData.result){
|
|
|
+ self.$message.success("登录成功!");
|
|
|
+
|
|
|
+ self.$store.commit('SET_TOKEN', jsonData.data);
|
|
|
+ setToken(jsonData.data);
|
|
|
+ self.$router.push({ path: self.redirect || "/home" });
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ Message.error(jsonData.message || 'Has Error')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
},
|
|
|
created() {
|
|
|
// window.addEventListener('hashchange', this.afterQRScan)
|