diff --git a/App.vue b/App.vue index c7e8059..a1419a9 100644 --- a/App.vue +++ b/App.vue @@ -2,9 +2,11 @@ import { mapState, mapMutations, mapActions } from 'vuex'; import { GET_USER_INFO, HEALTH_TYPE_STATUS } from 'api/api'; import { showLoading, hideLoading, showToast, showModal } from 'utils/ui'; +import { formatQuery } from 'utils/util'; export default { - async onLaunch() { + async onLaunch(options) { + console.log('options: ', options); uni.getSetting({ success(res) { if (!res.authSetting['scope.userLocation']) { @@ -17,8 +19,30 @@ export default { }); try { - await this.login(); + if (options.query.scene) { + const query = formatQuery(decodeURIComponent(options.query.scene)); + if (query && query.d) { + await this.getTokenByUserId({ params: { userId: query.d } }); + this.initCommon(); + } else { + await this.login(); + this.initCommon(); + return; + } + } else { + await this.login(); + this.initCommon(); + } + } catch (error) { + console.log('onLaunch error: ', error); + } + }, + computed: mapState('user', ['token']), + + methods: { + ...mapActions('user', ['login', 'getUserInfo', 'getHealthTypeStatus', 'getTokenByUserId']), + async initCommon() { const startTime = +this.$moment() .startOf('year') .format('x'); @@ -34,15 +58,7 @@ export default { }; await this.getUserInfo(params); await this.getHealthTypeStatus(); - } catch (error) { - console.log('error: ', error); - } - }, - - computed: mapState('user', ['token']), - - methods: { - ...mapActions('user', ['login', 'getUserInfo', 'getHealthTypeStatus']), + }, }, }; diff --git a/components/auth/auth.vue b/components/auth/auth.vue index 9e239d5..bfa0b3c 100644 --- a/components/auth/auth.vue +++ b/components/auth/auth.vue @@ -34,7 +34,11 @@ export default { if (value) { if (!value.wxInfo || !value.wxInfo.nickname) { this.show = true; + } else { + this.show = false; } + } else { + this.show = false; } }, }, diff --git a/config/api/user.js b/config/api/user.js index 6b3eec6..dd9cff9 100644 --- a/config/api/user.js +++ b/config/api/user.js @@ -5,3 +5,6 @@ export const SIGN_IN = `${proxyUrl}/users/signin`; // 上传用户微信信息 export const UPDATE_USER = `${proxyUrl}/users/userInfo`; + +// 通过userId 获取token +export const USER_ID_EXCHANGE_TOKEN = `${proxyUrl}/users/userId`; diff --git a/main.js b/main.js index c057d11..f6b4950 100644 --- a/main.js +++ b/main.js @@ -39,7 +39,7 @@ Vue.prototype.openPage = function(path, query = '') { let url = query ? `${path}?${query}` : path; store.commit('user/setPagePath', url); const isWhite = checkWhitePath(url); - if (!store.state.user.userInfo.id && !isWhite) { + if ((!store.state.user.userInfo || !store.state.user.userInfo.id) && !isWhite) { url = '/pages/basic-info/basic-info'; } diff --git a/pages/statistics/components/date-selector.vue b/pages/statistics/components/date-selector.vue index dc386a0..f9976dc 100644 --- a/pages/statistics/components/date-selector.vue +++ b/pages/statistics/components/date-selector.vue @@ -93,19 +93,15 @@ export default { break; case '近7天': start = this.$moment() - .subtract(7, 'days') - .format('YYYY-MM-DD'); - end = this.$moment() - .subtract(1, 'days') + .subtract(6, 'days') .format('YYYY-MM-DD'); + end = this.$moment().format('YYYY-MM-DD'); break; case '近30天': start = this.$moment() - .subtract(30, 'days') - .format('YYYY-MM-DD'); - end = this.$moment() - .subtract(1, 'days') + .subtract(29, 'days') .format('YYYY-MM-DD'); + end = this.$moment().format('YYYY-MM-DD'); break; default: break; diff --git a/pages/user-code/user-code.vue b/pages/user-code/user-code.vue index 6c533d1..063a515 100644 --- a/pages/user-code/user-code.vue +++ b/pages/user-code/user-code.vue @@ -108,9 +108,9 @@ export default { // 健康状态 登记 level() { - if (!this.userInfo || !this.userInfo.healthLevel) return '正常'; + if (!this.userInfo || !this.userInfo.healthCodeList) return '正常'; let str = '正常'; - switch (this.userInfo.healthLevel[0].healthLevel) { + switch (this.userInfo.healthCodeList[0].healthLevel) { case 0: str = '正常'; break; @@ -127,8 +127,8 @@ export default { }, time() { - if (!this.userInfo || !this.userInfo.healthLevel) return; - return this.$moment(this.userInfo.healthLevel[0].time - 0).format('YYYY-MM-DD HH:mm'); + if (!this.userInfo || !this.userInfo.healthCodeList) return; + return this.$moment(this.userInfo.healthCodeList[0].time - 0).format('YYYY-MM-DD HH:mm'); }, }, diff --git a/store/modules/user/actions.js b/store/modules/user/actions.js index 3ae698e..dfb2a50 100644 --- a/store/modules/user/actions.js +++ b/store/modules/user/actions.js @@ -1,6 +1,6 @@ import { showLoading, hideLoading, showModal, showToast } from 'utils/ui'; import { mpLogin, signIn } from 'utils/user'; -import { UPDATE_USER } from 'api/user'; +import { UPDATE_USER, USER_ID_EXCHANGE_TOKEN } from 'api/user'; import { GET_USER_INFO, HEALTH_TYPE_STATUS } from 'api/api'; import { http } from 'plugins/request/index'; @@ -52,7 +52,7 @@ const actions = { .post(UPDATE_USER, params) .then(res => { const { data } = res.data; - commit('updateUser', { type: 'wxInfo', params }); + commit('updateUser', { type: 'wxInfo', value: params }); resolve(data); }) .catch(data => { @@ -75,6 +75,7 @@ const actions = { .then(res => { hideLoading(); const { data } = res.data; + console.log('getUserInfo data: ', data); resolve(data); // 获取自己的信息采取设置 // 扫别人健康码的时候不用设置 @@ -114,6 +115,28 @@ const actions = { }); }); }, + + /** + * 通过userId换取token + * @param {*} commit + * @param {object} params 提交的完整参数 + */ + getTokenByUserId({ commit }, params) { + return new Promise((resolve, reject) => { + http + .get(USER_ID_EXCHANGE_TOKEN, params) + .then(res => { + const { data } = res.data; + commit('setToken', data.token); + commit('setUser', data); + resolve(data); + }) + .catch(data => { + showToast(data.msg || '获取token失败'); + reject(data); + }); + }); + }, }; export default actions; diff --git a/store/modules/user/mutations.js b/store/modules/user/mutations.js index 3da99aa..562cf76 100644 --- a/store/modules/user/mutations.js +++ b/store/modules/user/mutations.js @@ -34,7 +34,7 @@ const mutations = { state.user = { ...user }; uni.setStorageSync('user', JSON.stringify(user)); }, - + /** * 设置健康码 * @param {object} state @@ -43,7 +43,7 @@ const mutations = { setHealthCode(state, data) { state.healthCode = data; }, - + /** * 设置个人信息 userInfo * @param {*} state @@ -52,7 +52,7 @@ const mutations = { setUserInfo(state, data) { state.userInfo = data; }, - + /** * 设置页面跳转参数 pagePath * @param {*} state @@ -61,7 +61,7 @@ const mutations = { setPagePath(state, data) { state.pagePath = data; }, - + /** * 设置健康状态类型 status * @param {*} state @@ -69,7 +69,7 @@ const mutations = { */ setStatus(state, data) { state.status = data || []; - } + }, }; export default mutations;