From e8e79a81bf0a49fe4d5f34ab012f13f6f14efd69 Mon Sep 17 00:00:00 2001
From: unknown <331404948@qq.com>
Date: Tue, 19 Sep 2023 19:31:57 +0800
Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E6=9C=9F=E5=A4=84=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
common/js/mixins.js | 3 +-
config/api.js | 8 +--
config/request.js | 35 ++++++++++++-
config/utils.js | 13 +++++
pages/carEntry/simulateAppointment/comp/step1.vue | 60 ++++++++++++++++++----
pages/mineEntry/personaInfo/personaInfo.vue | 23 +++++++--
pages/tabbar/index/index.vue | 38 ++++++++++++--
pages/tabbar/mine/index.vue | 2 +-
pages/userCenter/login/loginByPhone.vue | 5 +-
static/images/index/ic_jsg.png | Bin 0 -> 5228 bytes
store/modules/user.js | 18 ++++++-
11 files changed, 176 insertions(+), 29 deletions(-)
create mode 100644 config/utils.js
create mode 100644 static/images/index/ic_jsg.png
diff --git a/common/js/mixins.js b/common/js/mixins.js
index bdfe885..07e9e85 100644
--- a/common/js/mixins.js
+++ b/common/js/mixins.js
@@ -5,7 +5,8 @@ export default {
computed: {
...mapState({
city: state=> state.user.vuex_cityInfo.city,
- vuex_cityInfo: state=> state.user.vuex_cityInfo
+ vuex_cityInfo: state=> state.user.vuex_cityInfo,
+ vuex_userInfo: state=> state.user.vuex_userInfo
}),
},
data() {
diff --git a/config/api.js b/config/api.js
index f7da277..5d72ef9 100644
--- a/config/api.js
+++ b/config/api.js
@@ -5,13 +5,13 @@ var http = uni.$u.http
// 隐私政策
export const getAgreement = (params, config = {}) => http.post('/util/manage/getAgreement.do', params, config)
// 验证码登录
-export const loginSMS = (data) => http.post('member/auth/sms-login', data)
+export const loginSMS = (data) => http.post('member/auth/sms-login', data, { custom: { noToken: true }})
// 登录发验证码
-export const getLoginCode = (data) => http.post('member/auth/send-sms-code', data)
+export const getLoginCode = (data) => http.post('member/auth/send-sms-code', data, { custom: { noToken: true }})
// 获取个人信息
export const getUserInfo = (data) => http.post('member/user/get', {header: {'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'}})
-// 刷新token
-export const refreshToken = (data) => http.post('member/auth/refresh-token', data)
+// 退出登录
+export const logOut = (data={}) => http.post('member/auth/logout', data, { custom: { noToken: true }})
diff --git a/config/request.js b/config/request.js
index 6054ae0..567f460 100644
--- a/config/request.js
+++ b/config/request.js
@@ -1,5 +1,12 @@
import { H5_API, WX_API } from './site.config.js'
+import { refreshToken } from '@/config/api.js'
+
+import { checkToken } from './utils'
+
+
+
+
// 此vm参数为页面的实例,可以通过它引用vuex中的变量
module.exports = (vm) => {
@@ -20,8 +27,20 @@ module.exports = (vm) => {
// 初始化请求拦截器时,会执行此方法,此时data为undefined,赋予默认{}
config.data = config.data || {}
// 根据custom参数中配置的是否需要token,添加对应的请求头
- // config.header.Authorization = 'Bearer ' + vm.$store.state.user.vuex_loginInfo.accessToken
-
+ console.log('--------------')
+ console.log(config)
+ let token = vm.$store.state.user.vuex_loginInfo.accessToken
+ if(token) {
+ config.header.Authorization = 'Bearer ' + token
+ }
+ // 如果不需要token就把header里的token删除,并且不需要去刷新token
+ let noToken = config.custom?.noToken
+ if(noToken&&config.header.Authorization) {
+ delete config.header.Authorization
+ }
+ if(!noToken) {
+ checkToken(vm)
+ }
return config
}, config => { // 可使用async await 做异步操作
return Promise.reject(config)
@@ -32,6 +51,18 @@ module.exports = (vm) => {
const data = response.data
console.log('请求结果')
console.log(data)
+ if(data.code==406) {
+ // vm.$store.dispatch('refreshToken')
+ uni.$u.toast('登录过期,请重新登录')
+ setTimeout(()=>{
+ vm.$store.commit('goLogin')
+ },1500)
+ return false
+ }
+ if(data.code==401) {
+ vm.$store.commit('goLogin')
+ }
+
// 自定义参数
const custom = response.config?.custom
if (data.code !== 0) {
diff --git a/config/utils.js b/config/utils.js
new file mode 100644
index 0000000..ee71161
--- /dev/null
+++ b/config/utils.js
@@ -0,0 +1,13 @@
+
+export function checkToken (vm) {
+ let expiresTime = vm.$store.state.user.vuex_loginInfo.expiresTime
+ let nowTime = new Date() * 1
+ console.log('超时了')
+ console.log(expiresTime)
+ if(nowTime>expiresTime*1) {
+ vm.$store.commit('goLogin')
+ // 如果小于20分钟就刷新一下token &&
+ }else if((expiresTime*1 - nowTime) / 60000 < 10 ) {
+ vm.$store.dispatch('refreshToken')
+ }
+}
\ No newline at end of file
diff --git a/pages/carEntry/simulateAppointment/comp/step1.vue b/pages/carEntry/simulateAppointment/comp/step1.vue
index f46141d..9257271 100644
--- a/pages/carEntry/simulateAppointment/comp/step1.vue
+++ b/pages/carEntry/simulateAppointment/comp/step1.vue
@@ -9,16 +9,16 @@
-
+
-
+
{{ item.week }}
{{ item.num }}
-
+
@@ -68,18 +68,58 @@
export default {
data() {
return {
- dateArr: [
- {week: '一', num: '08'},
- {week: '二', num: '09'},
- {week: '三', num: '10'},
- {week: '四', num: '11'},
- {week: '五', num: '12'},
- ]
+ dateArr: [],
+ currentDay: 0
}
},
+ mounted() {
+ const startDate = new Date('2023-09-06');
+ const endDate = new Date('2023-09-19');
+ const dateRange = this.getDates(startDate, endDate);
+ console.log(dateRange)
+ let tmp = []
+ dateRange.forEach((date) => {
+ let dateStr = date.toISOString().split('T')[0]
+ let dd = dateStr.split('-')[2]
+ const daysOfWeek = ['日', '一', '二', '三', '四', '五', '六'];
+ const dayOfWeek = date.getDay();
+ const weekName = daysOfWeek[dayOfWeek];
+ console.log(dateStr)
+ console.log(weekName)
+ if(tmp.length==0) {
+ this.dateArr.push(tmp)
+ }
+ let obj = {
+ week: weekName,
+ num: dd
+ }
+ tmp.push(obj)
+ if(tmp.length==5) {
+ tmp = []
+ }
+ });
+ console.log(this.dateArr)
+ },
methods: {
+ changeDateIndex(num) {
+ if(this.currentDay==0&&num==-1) return
+ if(this.currentDay==this.dateArr.length-1&&num==1) return
+ this.currentDay = this.currentDay + num
+ console.log(this.currentDay)
+ },
changeStep(val) {
this.$emit('changeStep', val)
+ },
+ getDates(startDate, endDate) {
+ const dates = [];
+ let currentDate = new Date(startDate);
+
+ while (currentDate <= endDate) {
+ dates.push(new Date(currentDate));
+ currentDate.setDate(currentDate.getDate() + 1);
+ }
+
+ return dates;
}
}
}
diff --git a/pages/mineEntry/personaInfo/personaInfo.vue b/pages/mineEntry/personaInfo/personaInfo.vue
index 4a699a7..b0fe35e 100644
--- a/pages/mineEntry/personaInfo/personaInfo.vue
+++ b/pages/mineEntry/personaInfo/personaInfo.vue
@@ -5,7 +5,7 @@
手机号
- 18267103167
+ {{ vuex_userInfo.mobile }}
@@ -42,15 +42,32 @@
- 退出登录
+ 退出登录
diff --git a/pages/tabbar/index/index.vue b/pages/tabbar/index/index.vue
index 847bb84..f7813dc 100644
--- a/pages/tabbar/index/index.vue
+++ b/pages/tabbar/index/index.vue
@@ -16,6 +16,7 @@
-->
+
@@ -39,7 +40,7 @@
-
+
@@ -123,26 +124,49 @@
entrySection: [{
text: '我要报名',
icon: require('../../../static/images/index/ic_baoming.png'),
- url: '/pages/indexEntry/enroll/enroll'
+ url: '/pages/indexEntry/enroll/enroll',
+ click: (item)=>{
+ this.$goPage(item.url)
+ }
},
{
text: '找驾校',
icon: require('../../../static/images/index/ic_jiaxiao.png'),
- url: '/pages/indexEntry/findShcool/findShcool'
+ url: '/pages/indexEntry/findShcool/findShcool',
+ click: (item)=>{
+ this.$goPage(item.url)
+ }
},
{
text: '找考场',
icon: require('../../../static/images/index/ic_kaochang.png'),
- url: '/pages/indexEntry/examines/examines'
+ url: '/pages/indexEntry/examines/examines',
+ click: (item)=>{
+ this.$goPage(item.url)
+ }
+ },
+ {
+ text: '找驾驶馆',
+ icon: require('../../../static/images/index/ic_peilian.png'),
+ url: '/pages/carEntry/simulateAppointment/simulateAppointment',
+ click: (item)=>{
+ this.$goPage(item.url)
+ }
},
{
text: '找陪练',
icon: require('../../../static/images/index/ic_peilian.png'),
+ click: (item)=>{
+ this.$u.toast('正在开发中,敬请期待...')
+ }
},
{
text: '理论学习',
icon: require('../../../static/images/index/ic_lilun.png'),
- url: '/pages/indexEntry/theory/theory'
+ url: '/pages/indexEntry/theory/theory',
+ click: (item)=>{
+ this.$goPage(item.url)
+ }
},
],
moreSection: [{
@@ -263,6 +287,10 @@
// }
},
methods: {
+ refereshFn() {
+ // this.$store.dispatch('refreshToken')
+ this.$store.dispatch('getUserInfo')
+ },
close() {
},
diff --git a/pages/tabbar/mine/index.vue b/pages/tabbar/mine/index.vue
index ecdb05a..cf5f09e 100644
--- a/pages/tabbar/mine/index.vue
+++ b/pages/tabbar/mine/index.vue
@@ -3,7 +3,7 @@
- Hi,大乔
+ Hi,{{ vuex_userInfo.nickname?vuex_userInfo.nickname:vuex_userInfo.mobile}}
diff --git a/pages/userCenter/login/loginByPhone.vue b/pages/userCenter/login/loginByPhone.vue
index a114074..d6d2129 100644
--- a/pages/userCenter/login/loginByPhone.vue
+++ b/pages/userCenter/login/loginByPhone.vue
@@ -24,7 +24,7 @@
- {{codeText}}
+ {{codeText}}
登 录
@@ -47,7 +47,8 @@
}
},
onLoad() {
- this.$store.dispatch('getUserInfo')
+ // this.$store.dispatch('getUserInfo')
+
},
computed: {
isPhone() {
diff --git a/static/images/index/ic_jsg.png b/static/images/index/ic_jsg.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5e71ccbac9ade7cc15ee17ce48c778e501e977f
GIT binary patch
literal 5228
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
m4xT{YV!XfPD%P@V0{?$zgJr7&Jy(AK0000 {
+ config.header.Authorization = 'Bearer ' + res.data.accessToken
+ return config
+ })
}
}
}