12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import { reactive } from 'vue'
- import * as api from '@/service/user'
- import { getOrderInfo, getDiscountInfo } from '@/service/order'
- export const state = reactive({
- ready: false,
- bgWhite: false,
- userInfo: null as ApiUser.Info.Response | null,
- // 拉新优惠券信息
- coupon: {} as any,
- currentOrder: null as any,
- rebuyDiscount: 0, // 二次购买折扣
- })
- export async function getUserInfo(reportError?: boolean) {
- const { results } = await api.getUserInfo(reportError)
- state.userInfo = results
- return results
- }
- export async function updateUserInfo(data: ApiUser.Update.Request) {
- await api.updateUserInfo(data)
- Object.assign(state.userInfo as ApiUser.Info.Response, data)
- }
- export async function logout() {
- await api.logout()
- state.userInfo = null
- }
- export function bootstrap() {
- api.getInviteCoupon().then(({ results }) => (state.coupon = results))
- getDiscountInfo('3').then(
- ({ results }) => (state.rebuyDiscount = +results.amount)
- )
- return getUserInfo(false)
- }
- export async function getCurrentOrder(id: string | number) {
- if (!state.currentOrder || +state.currentOrder.id !== +id) {
- state.currentOrder = (await getOrderInfo(+id)).results
- }
- }
|