Browse Source

Signed-off-by: 1004749546@qq.com <1004749546@qq.com>
微信登录

1004749546@qq.com 4 years ago
parent
commit
697262a371
5 changed files with 144 additions and 30 deletions
  1. 42 0
      api/login.js
  2. 6 0
      pages.json
  3. 13 2
      pages/index/index.vue
  4. 65 0
      pages/login/login.vue
  5. 18 28
      store/index.js

+ 42 - 0
api/login.js

@@ -0,0 +1,42 @@
+import request from '@/libs/axios.js';
+
+export const code2Session = params => {
+  return request({
+    url: 'code2Session',
+    data: params,
+    method: 'get'
+  }).then(res => res.data);
+};
+export const login = params => {
+  return request({
+    url: `loginVerify`,
+    data: params,
+    method: 'post',
+  }).then(res => res.data);
+};
+export const logout = params => {
+  return request({
+    url: `logout`,
+    data: params,
+    method: 'get'
+  }).then(res => res.data);
+};
+
+// 验证是否登录过
+export const checkLogin = () => {
+  let token = uni.getStorageSync('token')
+  if (token&&token!='') {
+    return request({
+      url: `checkLogin`,
+      method: 'get'
+    }).then(res => res.data);
+  } else {
+    return new Promise(resolve => {
+      resolve({
+        status: '9001',
+        message: '系统未登录'
+      });
+    });
+  }
+};
+

+ 6 - 0
pages.json

@@ -11,6 +11,12 @@
 				"enablePullDownRefresh": false
 				"enablePullDownRefresh": false
 			}
 			}
 		},
 		},
+		{
+			"path": "pages/login/login",
+			"style": {
+				"navigationBarTitleText": "授权登录"
+			}
+		},
 		{
 		{
 			"path": "pages/store/storeList",
 			"path": "pages/store/storeList",
 			"style": {
 			"style": {

+ 13 - 2
pages/index/index.vue

@@ -218,8 +218,19 @@
 			},
 			},
 			// 扫码洗车
 			// 扫码洗车
 			scanCode () {
 			scanCode () {
-				uni.navigateTo({
-					url: "/pages/getOrder/getOrder"
+				uni.checkSession({
+					success: (res) => {
+						console.log("已经登陆")
+						uni.navigateTo({
+							url: "/pages/getOrder/getOrder"
+						})
+					},
+					fail: (err) => {
+						console.log("需要重新登录")
+						uni.navigateTo({
+							url: "/pages/login/login"
+						})
+					}
 				})
 				})
 				// uni.scanCode({
 				// uni.scanCode({
 				//     success: function (res) {
 				//     success: function (res) {

+ 65 - 0
pages/login/login.vue

@@ -0,0 +1,65 @@
+<template>
+	<view class="content">
+		<u-button type="success" open-type="getUserInfo" @click="loginIn">微信一键登录</u-button>
+	</view>
+</template>
+
+<script>
+	import {code2Session} from "@/api/login.js"
+	export default {
+		components: {
+		},
+		data() {
+			return {
+				
+			}
+		},
+		onShow () {
+		 
+		},
+		onLoad(option) {
+			
+		},
+		methods: {
+			loginIn () {
+				let _this = this
+				// uni.login({
+				//   provider: provider,
+				//   success(result) {
+				// 	console.log(result)
+				// 	if (result.code) {
+				// 	  code2Session({
+				// 		code: result.code
+				// 	  }).then(res => {
+				// 		if (res.status === '200') {
+				// 			_this.$u.vuex('vuex_openid',res.data)
+				// 			uni.navigateTo({
+				// 				url: '/pages/index/index'
+				// 			})
+				// 		};
+				// 	  });
+				// 	}
+				//   }
+				// });
+				uni.login({
+				  provider: 'weixin',
+				  success: function (loginRes) {
+				    console.log(loginRes);  // 返回code
+					uni.navigateTo({
+						url: '/pages/index/index'
+					})
+				  }
+				})
+			},
+		}
+	}
+</script>
+
+<style>
+	.content{
+		padding: 0;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+	}
+</style>

+ 18 - 28
store/index.js

@@ -12,7 +12,7 @@ try{
 }
 }
 
 
 // 需要永久存储,且下次APP启动需要取出的,在state中的变量名
 // 需要永久存储,且下次APP启动需要取出的,在state中的变量名
-let saveStateKeys = ['vuex_isRemember','vuex_isUsrAuthYs','vuex_user', 'vuex_token', 'vuex_userData', 'vuex_versionInfo', 'vuex_carBrandList'];
+let saveStateKeys = ['vuex_user', 'vuex_token', 'vuex_userData','vuex_hasLogin','vuex_openid'];
 
 
 // 保存变量到本地存储中
 // 保存变量到本地存储中
 const saveLifeData = function(key, value){
 const saveLifeData = function(key, value){
@@ -35,34 +35,10 @@ const store = new Vuex.Store({
 		vuex_user: lifeData.vuex_user ? lifeData.vuex_user : {account:'',password:''},
 		vuex_user: lifeData.vuex_user ? lifeData.vuex_user : {account:'',password:''},
 		vuex_token: lifeData.vuex_token ? lifeData.vuex_token : '',
 		vuex_token: lifeData.vuex_token ? lifeData.vuex_token : '',
 		vuex_userData: lifeData.vuex_userData ? lifeData.vuex_userData : '',
 		vuex_userData: lifeData.vuex_userData ? lifeData.vuex_userData : '',
-		vuex_isRemember: lifeData.vuex_isRemember ? lifeData.vuex_isRemember : true,
-		vuex_isUsrAuthYs: lifeData.vuex_isUsrAuthYs ? lifeData.vuex_isUsrAuthYs : false,
+		vuex_hasLogin: lifeData.vuex_hasLogin ? lifeData.vuex_hasLogin : false,
+		vuex_openid: lifeData.vuex_openid ? lifeData.vuex_openid : '',
 		// 如果无需保存到本地永久存储,无需lifeData.xx方式
 		// 如果无需保存到本地永久存储,无需lifeData.xx方式
-		vuex_curOrderType: {orderType:'',orderTypeText:''}, // 当前开单的类型
-		vuex_carType: {modelId:'',carModelIds:[],modelLabel:[]},// 选择的车型数据
-		vuex_curCarInfo:{customer:null,vehicle:null}, // 开单时选择的用户信息
-		vuex_chooseServerList: [], // 开单时选择的服务
-		vuex_choosePartList: [], // 开单时选择的配件
-		vuex_customBundleList: [], // 客户已购套餐
-		vuex_chooseBundelServerList: [], // 从套餐选择的服务
-		vuex_chooseBundelPartList: [], // 从套餐选择的配件
-		vuex_allLookUp: [],  //  数据字典
-		vuex_paymentTypeList: [], // 支付方式
-		vuex_activityTemplateData: {},  //  发布活动 - 活动模板数据
-		vuex_activityThemeList: [],  //  发布活动 - 主题列表
-		vuex_activityReleaseData: {parentItemList: []},  //  发布活动 - 需提交的数据
-		vuex_releaseActivityData: [],  //  发布活动 - 需提交的活动数据(临时数据)
-		vuex_versionInfo: lifeData.vuex_versionInfo ? lifeData.vuex_versionInfo : {}, // 版本信息
-		vuex_carBrandList: lifeData.vuex_carBrandList ? lifeData.vuex_carBrandList : [] ,// 车型品牌数据
-		vuex_nowStaffData: {},  //  我的 - 员工信息 - 当前员工信息
-		vuex_nowRoleInfo:{},	//我的 - 员工角色 - 当前角色信息
-		vuex_knowledgeCount: 0, // 生意经总数
-		vuex_knowledgePageNo: 1, // 当前生意经的页码
-		vuex_socket: null, // 消息通知ws对象
-		vuex_wsMessageData: null, // 消息对象
-		vuex_heartInterId: null, // 心跳id
-		vuex_reConnectId: null, // 重连id
-		vuex_messagUnReadCount: 0, // 消息未读数
+		
 	},
 	},
 	mutations: {
 	mutations: {
 		$uStore(state, payload) {
 		$uStore(state, payload) {
@@ -165,6 +141,20 @@ const store = new Vuex.Store({
 				}
 				}
 			})
 			})
 		},
 		},
+	},
+	actions: {
+		// 检测是否登录
+		checkLogin(context,data){
+			checkLogin().then(res => {
+				if(res.status == '200'){
+					context.commit('$uStore',{name:'vuex_hasLogin',value:true})
+					context.commit('$uStore',{name:'vuex_token',value: res.data.token})
+				}else{
+					context.commit('$uStore',{name:'vuex_hasLogin',value:false})
+					context.commit('$uStore',{name:'vuex_token',value: ''})
+				}
+			})
+		}
 	}
 	}
 })
 })