|
@@ -1,6 +1,7 @@
|
|
|
<script>
|
|
<script>
|
|
|
import config from '@/config.js'
|
|
import config from '@/config.js'
|
|
|
import Vue from 'vue'
|
|
import Vue from 'vue'
|
|
|
|
|
+import { checkUserFamily } from './utils/api.js'
|
|
|
Vue.prototype.$config = config
|
|
Vue.prototype.$config = config
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
@@ -15,6 +16,14 @@ export default {
|
|
|
const token = uni.getStorageSync('token')
|
|
const token = uni.getStorageSync('token')
|
|
|
if (token) {
|
|
if (token) {
|
|
|
this.$store.commit('setToken', token)
|
|
this.$store.commit('setToken', token)
|
|
|
|
|
+ // 冷启动恢复 familyId(登录时已持久化,hasFamily getter 依赖)
|
|
|
|
|
+ var storedFamilyId = uni.getStorageSync('familyId')
|
|
|
|
|
+ if (storedFamilyId) {
|
|
|
|
|
+ this.$store.commit('setFamilyId', storedFamilyId)
|
|
|
|
|
+ } else {
|
|
|
|
|
+ // 历史用户(8ddc5b55 后未重新登录):本地无 familyId,从接口恢复
|
|
|
|
|
+ this.restoreFamilyIdFromApi()
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
// 无token时尝试自动登录
|
|
// 无token时尝试自动登录
|
|
|
this.tryAutoLogin()
|
|
this.tryAutoLogin()
|
|
@@ -29,12 +38,25 @@ export default {
|
|
|
var token = uni.getStorageSync('token')
|
|
var token = uni.getStorageSync('token')
|
|
|
if (token && token !== this.$store.state.token) {
|
|
if (token && token !== this.$store.state.token) {
|
|
|
this.$store.commit('setToken', token)
|
|
this.$store.commit('setToken', token)
|
|
|
|
|
+ this.$store.commit('setFamilyId', uni.getStorageSync('familyId'))
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
onHide: function() {
|
|
onHide: function() {
|
|
|
console.log('App Hide')
|
|
console.log('App Hide')
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ // 从接口恢复 familyId(历史用户冷启动,本地无 familyId 缓存)
|
|
|
|
|
+ restoreFamilyIdFromApi() {
|
|
|
|
|
+ var self = this
|
|
|
|
|
+ checkUserFamily().then(function(res) {
|
|
|
|
|
+ if (res && res.data && res.data.inFamily && res.data.familyId) {
|
|
|
|
|
+ self.$store.commit('setFamilyId', res.data.familyId)
|
|
|
|
|
+ console.log('[App] familyId 已从接口恢复:', res.data.familyId)
|
|
|
|
|
+ }
|
|
|
|
|
+ }).catch(function(e) {
|
|
|
|
|
+ console.log('[App] familyId 接口恢复失败(页面按无家庭态渲染)', e)
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
async tryAutoLogin() {
|
|
async tryAutoLogin() {
|
|
|
// 开发环境下跳过自动登录,避免无后端时 10s 超时阻塞
|
|
// 开发环境下跳过自动登录,避免无后端时 10s 超时阻塞
|
|
|
try {
|
|
try {
|
|
@@ -79,6 +101,8 @@ export default {
|
|
|
userId: data.userId
|
|
userId: data.userId
|
|
|
})
|
|
})
|
|
|
this.$store.commit('setToken', data.token)
|
|
this.$store.commit('setToken', data.token)
|
|
|
|
|
+ // 同步 familyId 到 store(hasFamily getter 依赖;auto-login 路径)
|
|
|
|
|
+ this.$store.commit('setFamilyId', data.familyId)
|
|
|
},
|
|
},
|
|
|
request(url, method, data) {
|
|
request(url, method, data) {
|
|
|
return new Promise((resolve, reject) => {
|
|
return new Promise((resolve, reject) => {
|