联调
This commit is contained in:
@@ -1,7 +1,12 @@
|
||||
<script>
|
||||
import useUserStore from '@/jtools/store/user'
|
||||
export default {
|
||||
onLaunch: function () {
|
||||
console.log('App Launch')
|
||||
useUserStore().queryVipList()
|
||||
if(useUserStore().isLogin) {
|
||||
useUserStore().getUserInfo()
|
||||
useUserStore().searchUserVip()
|
||||
}
|
||||
},
|
||||
onShow: function () {
|
||||
console.log('App Show')
|
||||
|
||||
@@ -24,3 +24,10 @@ export function logout() {
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
|
||||
export function getInfo() {
|
||||
return request({
|
||||
url: 'driver-api/tdSysUser/info',
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
@@ -7,3 +7,11 @@ export function queryVip(data) {
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
export function getVipList(data) {
|
||||
return request({
|
||||
url: 'driver-api/tdMember/queryMember',
|
||||
method: 'POST',
|
||||
data,
|
||||
});
|
||||
}
|
||||
@@ -16,7 +16,7 @@ function service(options = {}) {
|
||||
});
|
||||
} else {
|
||||
options.header = {
|
||||
Authorization: `Bearer ${token}`
|
||||
Authorization: `${token}`
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -34,7 +34,7 @@ function service(options = {}) {
|
||||
resolved(res.data);
|
||||
} else if(res.data.code != '0000') {
|
||||
uni.showToast({
|
||||
title: resp.message,
|
||||
title: res.data.message,
|
||||
icon: 'none'
|
||||
})
|
||||
resolved(res.data)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { defineStore } from 'pinia';
|
||||
import { login,logout } from '@/jtools/api/login';
|
||||
import { login,logout,getInfo } from '@/jtools/api/login';
|
||||
import { queryVip,getVipList } from '@/jtools/api/vip'
|
||||
import constants from '@/jtools/constants';
|
||||
import storage from '@/jtools/storage';
|
||||
|
||||
@@ -9,11 +10,13 @@ const useUserStore = defineStore({
|
||||
token: storage.get('token'),
|
||||
isLogin: storage.get('isLogin'), // 是否登陆
|
||||
userInfo: storage.get('userInfo'), // 用户信息
|
||||
currentCartype: storage.get('carType') || '1001',
|
||||
vipOnList: [],
|
||||
vipAllList: []
|
||||
}),
|
||||
|
||||
actions: {
|
||||
login(params) {
|
||||
// commit('isLogin', true);
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const resp = await login(params);
|
||||
if (resp.code === '0000') {
|
||||
@@ -40,13 +43,39 @@ const useUserStore = defineStore({
|
||||
resolve();
|
||||
})
|
||||
},
|
||||
// 获取用户信息
|
||||
getUserInfo() {
|
||||
getInfo().then(resp => {
|
||||
if(resp.code == '0000') {
|
||||
this.userInfo = resp.data
|
||||
storage.set('userInfo', resp.data)
|
||||
}
|
||||
})
|
||||
},
|
||||
resetUserData() {
|
||||
this.isLogin = false;
|
||||
this.token = '';
|
||||
this.userInfo = {}
|
||||
this.vipOnList = []
|
||||
storage.remove('isLogin')
|
||||
storage.remove('token')
|
||||
storage.remove('userInfo')
|
||||
},
|
||||
// 查询当前用户的vip开通情况
|
||||
searchUserVip() {
|
||||
queryVip({ carTypeId: this.currentCartype,memberId: null, subject:'' }).then(resp => {
|
||||
if(resp.code == '0000') {
|
||||
this.vipOnList = resp.data
|
||||
}
|
||||
})
|
||||
},
|
||||
// 查询所有的vip
|
||||
queryVipList() {
|
||||
getVipList({ carTypeId: this.currentCartype,memberId: null, subject:'' }).then(resp => {
|
||||
if(resp.code == '0000') {
|
||||
this.vipAllList = resp.data
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
@@ -57,19 +57,19 @@
|
||||
getCode({
|
||||
phone: this.login.phone
|
||||
}).then(resp => {
|
||||
if (resp.code == '0000') {
|
||||
// if (resp.code == '0000') {
|
||||
uni.showToast({
|
||||
title: '发送成功!',
|
||||
icon: 'none'
|
||||
})
|
||||
this.countDown = 60
|
||||
this.js = setInterval(() => {
|
||||
this.countDown;
|
||||
this.countDown--;
|
||||
if (this.countDown == 0) {
|
||||
this.clear()
|
||||
}
|
||||
}, 1000)
|
||||
}
|
||||
// }
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<view class="ml12">
|
||||
<view class="flex ai-c fs18 cor-333 fwb">
|
||||
<text class="mr10">{{ user.userName }}{{user.userId}}</text>
|
||||
<image src="/static/image/mine/vip.png" mode="widthFix" style="width: 18px;"></image>
|
||||
<image v-if="vipOn.length" src="/static/image/mine/vip.png" mode="widthFix" style="width: 18px;"></image>
|
||||
</view>
|
||||
<view class="mt5 fs14 cor-666">陪您学车 第{{ user.count }}天</view>
|
||||
</view>
|
||||
@@ -33,21 +33,22 @@
|
||||
</view>
|
||||
<text class="ml5 fs16 fwb" style="color: #7E4012FF;">VIP会员</text>
|
||||
</view>
|
||||
<text class="fs12" style="color: #7E4012FF;">2024-12-12到期</text>
|
||||
<text v-if="vipOn.length" class="fs12" style="color: #7E4012FF;">{{expireTime}}到期</text>
|
||||
</view>
|
||||
<view class="absolute flex ai-c jc-c" style="left: 0;top: 40px;right: 0;bottom: 0;">
|
||||
<view class="text-center">
|
||||
<view class="fs18 fwb" style="color: #7E4012FF;">尊享科目一二三四全部付费权益</view>
|
||||
<view v-if="vipOn.length" class="fs18 fwb" style="color: #7E4012FF;">{{vipText}}</view>
|
||||
<view class="study fs16 text-center" style="margin: 25px auto 0;color: #F6E99FFF;">
|
||||
马上学习
|
||||
{{ vipOn.length?'马上学习':'开通会员'}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="br8 bc-fff p15 z-index2">
|
||||
<text class="fs16 cor-333">我的驾校</text>
|
||||
<view v-if="user.schoolId">
|
||||
<div class="mt12 flex ai-c jc-sb">
|
||||
<text class="fs18 cor-000 fwb">合肥八一驾校</text>
|
||||
<text class="fs18 cor-000 fwb">{{user.schoolName}}</text>
|
||||
<u-button text="切换驾校" shape="circle" @click="handleChangeSchool"></u-button>
|
||||
</div>
|
||||
<u-line margin="14px 0 18px 0"></u-line>
|
||||
@@ -56,17 +57,21 @@
|
||||
<img src="/static/image/mine/phone.png" style="width: 12px;height: 12px;">
|
||||
<text class="ml2 fs12 cor-fff">客服热线</text>
|
||||
</view>
|
||||
<text class="ml5 fs26 cor-333 fwb" style="line-height: 26px;">0551-12345678</text>
|
||||
<text class="ml5 fs26 cor-333 fwb" style="line-height: 26px;">{{user.schoolPhone}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view v-else class="pt30 pb15">
|
||||
<u-button text="绑定驾校" shape="circle" @click="handleChangeSchool"></u-button>
|
||||
</view>
|
||||
</view>
|
||||
<view class="mt12 bc-fff br8">
|
||||
<u-cell-group>
|
||||
<u-cell size="large" title="我的资料" value="修改" isLink @tap="handleInfo">
|
||||
<u-cell size="large" title="我的资料" isLink @tap="handleInfo">
|
||||
<template #icon>
|
||||
<img src="/static/image/mine/wdzl.png" style="width: 24px;height: 24px;">
|
||||
</template>
|
||||
</u-cell>
|
||||
<u-cell size="large" title="我的体检" value="查看报告" isLink @tap="handleTJ">
|
||||
<u-cell size="large" title="我的体检" isLink @tap="handleTJ">
|
||||
<template #icon>
|
||||
<img src="/static/image/mine/wdtj.png" style="width: 24px;height: 24px;">
|
||||
</template>
|
||||
@@ -78,7 +83,7 @@
|
||||
</u-cell>
|
||||
</u-cell-group>
|
||||
</view>
|
||||
<view class="flex ai-c jc-c mt12 br8 bc-fff" style="height: 50px;" @tap="handleLogout">
|
||||
<view v-if="isLogin" class="flex ai-c jc-c mt12 br8 bc-fff" style="height: 50px;" @tap="handleLogout">
|
||||
<text class="fs16" style="color: #A09F9F;">退出登录</text>
|
||||
</view>
|
||||
</view>
|
||||
@@ -86,7 +91,6 @@
|
||||
</template>
|
||||
<script>
|
||||
import useUserStore from '@/jtools/store/user'
|
||||
import { queryVip } from '@/jtools/api/vip'
|
||||
export default {
|
||||
components: {},
|
||||
computed: {
|
||||
@@ -94,7 +98,36 @@ export default {
|
||||
return useUserStore().isLogin
|
||||
},
|
||||
user() {
|
||||
return useUserStore().userInfo
|
||||
let userInfo = useUserStore().userInfo
|
||||
return { ...userInfo, count: this.dateDiff(userInfo.createTime) }
|
||||
},
|
||||
vipOn() {
|
||||
return useUserStore().vipOnList
|
||||
},
|
||||
expireTime() {
|
||||
if(this.vipOn.length) {
|
||||
const t = this.vipOn.reduce((pre, cur) => {
|
||||
if(Date.parse(pre) > Date.parse(cur.endDate)) {
|
||||
return cur.endDate
|
||||
}
|
||||
return pre
|
||||
}, '2099-12-31')
|
||||
return t.split(' ')[0]
|
||||
}else {
|
||||
return ''
|
||||
}
|
||||
},
|
||||
vipText() {
|
||||
if(this.vipOn.length) {
|
||||
const t = this.vipOn.reduce((pre, cur) => {
|
||||
return [...pre, ...cur.subjects.split(',').map(it =>['','一','二','三','四'][it])]
|
||||
}, [])
|
||||
let val = Array.from(new Set(t))
|
||||
val = val.length == 4 ? val.join('')+'全部':val.join('')
|
||||
return `尊享科目${val}付费权益`
|
||||
}else {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -102,30 +135,36 @@ export default {
|
||||
};
|
||||
},
|
||||
onShow() {
|
||||
this.searchVip()
|
||||
},
|
||||
methods: {
|
||||
searchVip() {
|
||||
queryVip().then(resp => {
|
||||
if(resp.code == '0000') {
|
||||
debugger
|
||||
}
|
||||
})
|
||||
},
|
||||
handleVip() {
|
||||
if(this.isLogin) {
|
||||
if(this.vipOn.length) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/me/vip'
|
||||
})
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/pages/index/videoVip'
|
||||
})
|
||||
}
|
||||
} else {
|
||||
this.toLogin()
|
||||
}
|
||||
},
|
||||
handleCallPhone() {
|
||||
uni.makePhoneCall({
|
||||
phoneNumber: '17318531354'
|
||||
phoneNumber: this.user.schoolPhone
|
||||
})
|
||||
},
|
||||
handleChangeSchool() {
|
||||
if(this.isLogin) {
|
||||
uni.navigateTo({
|
||||
url: '/pages/me/school'
|
||||
})
|
||||
} else {
|
||||
this.toLogin()
|
||||
}
|
||||
},
|
||||
handleInfo() {
|
||||
if(this.isLogin) {
|
||||
@@ -152,7 +191,20 @@ export default {
|
||||
},
|
||||
handleLogout() {
|
||||
useUserStore().logout()
|
||||
},
|
||||
dateDiff(end){
|
||||
if(!end) {
|
||||
return 1
|
||||
}
|
||||
today = new Date();
|
||||
end = new Date(end);
|
||||
if(end > today){
|
||||
days = parseInt(Math.abs(end - today) / 1000 / 60 / 60 / 24);
|
||||
}else{
|
||||
days = parseInt(Math.abs(end - today) / 1000 / 60 / 60 / 24); // 如果不限制对比时间和当前时间大小可以不用if
|
||||
}
|
||||
return days + 1;
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user