Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 41e6fe0

Browse files
增加跳转登陆逻辑
1 parent 00ed17e commit 41e6fe0

File tree

12 files changed

+399
-314
lines changed

12 files changed

+399
-314
lines changed

‎src/App.vue‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,7 @@ export default {
8383
console.log("appvue");
8484
console.log(this.$route.meta);
8585
},
86-
created() {
87-
console.log("🔥App");
88-
}
86+
created() {}
8987
};
9088
</script>
9189

‎src/assets/js/account/account.js‎

Lines changed: 62 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,78 @@
11
// 处理账号相关的逻辑
2+
// 1、处理登陆账号
3+
// 2、登陆登出
4+
// 3、重置根路由
5+
6+
// 这里就不做多账号处理了,这里只针对单账号登陆
27
/// 登录账号的key
3-
const MH_RAW_LOGIN = 'MHRawLogin'
8+
const MH_RAW_LOGIN_KEY = 'MHRawLoginKey'
9+
10+
import router from '@/router';
11+
import store from '@/store/store'
12+
// 配置偏好设置
13+
import Storage from '@/assets/js/MHPreferenceSettingHelper'
414
export default {
515
// 获取账号
616
rawLogin() {
7-
return localStorage.getItem(MH_RAW_LOGIN)
17+
return Storage.getItem(MH_RAW_LOGIN_KEY)||''
818
},
919
// 设置账号
1020
setRawLogin(rawLogin) {
1121
// 必须的有值,否则不存储
1222
if (rawLogin && rawLogin.length !== 0) {
13-
localStorage.setItem(MH_RAW_LOGIN, rawLogin)
23+
Storage.setItem(MH_RAW_LOGIN_KEY, rawLogin)
1424
}
1525
},
1626
// 删除账号
1727
deleteRawLogin() {
18-
localStorage.removeItem(MH_RAW_LOGIN)
28+
Storage.removeItem(MH_RAW_LOGIN_KEY)
29+
},
30+
31+
// 登陆
32+
login(user, rawLogin) {
33+
// 归档登陆账号
34+
this.setRawLogin(rawLogin)
35+
// 归档用户信息
36+
store.commit('loginUser', user)
37+
// 跳转登陆
38+
router.push('/homepage')
39+
},
40+
41+
// 登出
42+
logout() {
43+
// 删除登陆账号
44+
this.deleteRawLogin()
45+
46+
// 归档用户信息
47+
store.commit('logoutUser')
48+
// 清除
49+
router.push("/current-login");
50+
},
51+
52+
// 更新
53+
update() { },
54+
55+
// delete
56+
delete() { },
57+
58+
// 重置根路由
59+
resetRootRouterView() {
60+
// 获取用户信息
61+
let user = store.state.user
62+
// 获取账号信息
63+
let account = this.rawLogin()
64+
console.log('------------- 🔥跳转逻辑🔥 -------------',user);
65+
console.log('------------- 🔥跳转逻辑🔥 -------------',account);
66+
// 跳转逻辑判断处理
67+
if (Object.keys(user).length !== 0 && account.length !== 0) {
68+
/// 有账号+有用户数据 已经登录,跳转到主页
69+
router.push('/homepage')
70+
} else if (Object.keys(user).length !== 0 && account.length === 0) {
71+
/// 没有账号+有用户数据 退出登录,跳转到账号登陆页面
72+
router.push('/current-login')
73+
} else {
74+
/// 没有账号+没有用户数据 用户初次登陆,跳转到登陆/注册界面
75+
router.push('/login')
76+
}
1977
}
2078
}

‎src/assets/js/constant/constant.js‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export default {
2+
// ************* 登录相关 *************
3+
// 用户存储的
4+
MH_USER_INFO_KEY : "MHUserInfoKey"
5+
}

‎src/assets/utils/utils.js‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// 导航栏返回按钮
44
import { blackBackItem } from '../js/MHBarButtonItem'
55

6+
67
const utils = {
78
install(Vue) {
89
// 导航栏返回按钮
@@ -25,6 +26,24 @@ const utils = {
2526
// - [JavaScript数组去重(12种方法,史上最全)](https://segmentfault.com/a/1190000016418021)
2627
uniqueArray(arr) {
2728
return Array.from(new Set(arr))
29+
},
30+
31+
// 🔥是否为有效电话号码
32+
// - [一组匹配中国大陆手机号码的正则表达式](https://github.com/VincentSit/ChinaMobilePhoneNumberRegex)
33+
validMobile(mobile) {
34+
let regex = /((?:\+?86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7(?:[35678]\d{2}|4(?:0\d|1[0-2]|9\d))|9[189]\d{2}|66\d{2})\d{6})+?/g
35+
return regex.test(mobile)
36+
},
37+
38+
// 🔥格式化手机号为344
39+
// - [手机格式化](https://blog.csdn.net/Wangdanting123/article/details/86938915)
40+
// - [格式化手机号](https://segmentfault.com/q/1010000004508861)
41+
formatMobile344(mobile) {
42+
let regex = /((?:\+?86)?1(?:3\d{3}|5[^4\D]\d{2}|8\d{3}|7(?:[35678]\d{2}|4(?:0\d|1[0-2]|9\d))|9[189]\d{2}|66\d{2})\d{6})+?/g
43+
if (!regex.test(mobile)) {
44+
return mobile
45+
}
46+
return (mobile + '').replace(/(^\d{3}|\d{4}\B)/g, "1ドル ")
2847
}
2948
}
3049

‎src/main.js‎

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,30 +38,24 @@ Vue.use(RouteTransition)
3838
import utils from 'assets/utils/utils'
3939
Vue.use(utils)
4040

41-
// import VuePreview from 'vue-preview'
42-
// Vue.use(VuePreview);
43-
// console.log(VuePreview);
44-
45-
4641
// 配置偏好设置
47-
import MHPreferenceSettingHelper from './assets/js/MHPreferenceSettingHelper'
48-
MHPreferenceSettingHelper.initialize()
49-
50-
// 获取用户信息
51-
// let user = MHPreferenceSettingHelper.getItem('491273090') || {}
52-
// if (Object.keys(user).length === 0) {
53-
// router.replace('/current-login')
54-
// } else {
55-
// router.replace('/mainframe')
56-
// }
57-
58-
42+
import Storage from '@/assets/js/MHPreferenceSettingHelper'
43+
// 初始化
44+
Storage.initialize()
45+
// 账号存储
46+
import AccountHelper from '@/assets/js/account/account'
47+
// 挂在实例
5948
new Vue({
6049
router,
6150
store,
6251
render: h => h(App)
6352
}).$mount('#app')
6453

54+
55+
// 重置根路由
56+
AccountHelper.resetRootRouterView()
57+
58+
6559
// {
6660
// "workbench.iconTheme": "vscode-icons",
6761
// "editor.fontSize": 18,

‎src/router.js‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ export default new Router({
6363
routes: [
6464
{
6565
path: '/',
66+
name: 'Root',
6667
redirect: '/login'
6768
},
6869
{
@@ -134,8 +135,11 @@ export default new Router({
134135
},
135136
{
136137
path: '/current-login',
137-
name: 'current-login',
138-
component: CurrentLogin
138+
name: 'CurrentLogin',
139+
component: CurrentLogin => require(['./views/login/CurrentLogin.vue'], CurrentLogin),
140+
meta: {
141+
keepAlive: true
142+
}
139143
},
140144
{
141145
path: '/login',
@@ -158,7 +162,7 @@ export default new Router({
158162
component: Register => require(['./views/login/Register.vue'], Register)
159163
},
160164
{
161-
path: '/current-login/other-login',
165+
path: '/other-login',
162166
name: 'other-login',
163167
component: OtherLogin => require(['./views/login/OtherLogin.vue'], OtherLogin),
164168
meta: {
@@ -235,7 +239,7 @@ export default new Router({
235239
},
236240
{
237241
path: '/profile/setting',
238-
name: 'setting', // 设置
242+
name: 'Setting', // 设置
239243
component: Setting,
240244
meta: {
241245
keepAlive: true // 此组件需要缓存

‎src/store/store.js‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
import Vue from "vue";
22
import Vuex from "vuex";
33
import modules from "../modules"
4-
5-
6-
import MHPreferenceSettingHelper from '../assets/js/MHPreferenceSettingHelper'
4+
// 存储类
5+
import Storage from '../assets/js/MHPreferenceSettingHelper'
6+
// 常量类
7+
import Constant from '../assets/js/constant/constant';
78

89
// 类似单利
10+
// PS: root store 只处理用户信息,其他的请放在 modules 中,例如:badge.js
911
Vue.use(Vuex);
1012

1113
// 获取本地缓存的用户信息
12-
let user = JSON.parse(MHPreferenceSettingHelper.getItem('491273090') || '{}');
13-
console.log('user---'+ user);
14+
let user = JSON.parse(Storage.getItem(Constant.MH_USER_INFO_KEY) || '{}');
15+
console.log('🔥😴😿 ** USER ** 😴😿🔥', user);
1416

1517
export default new Vuex.Store({
1618
state: {
@@ -26,13 +28,11 @@ export default new Vuex.Store({
2628
// 0. 对象转json字符串
2729
let jsonStr = JSON.stringify(user);
2830
// 1. 归档数据
29-
MHPreferenceSettingHelper.setItem(user.qq, jsonStr);
31+
Storage.setItem(Constant.MH_USER_INFO_KEY, jsonStr);
3032
},
3133
// 登出用户
3234
logoutUser(state) {
33-
// 0 清除掉用户数据
34-
MHPreferenceSettingHelper.removeItem(state.user.qq);
35-
// 1 记录
35+
// 只需要将 vuex 的user置位空对象即可,无需删除本地数据
3636
state.user = {};
3737
}
3838
},

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /