Refactor API requests and update imports
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
import { get, post } from '~/utils/axios'
|
||||
import { AppPayWalletPackageRespVO, PayOrderSubmitReqVO, PayOrderRespVO, PageResultAppPayWalletRechargeRespVO } from './types'
|
||||
import * as useDollarFetchRequest from '~/composables/useDollarFetchRequest'
|
||||
import * as useFetchRequest from '~/composables/useFetchRequest'
|
||||
import type { AppPayWalletPackageRespVO, PayOrderSubmitReqVO, PayOrderRespVO, PageResultAppPayWalletRechargeRespVO } from './types'
|
||||
|
||||
/**
|
||||
* 获得VIP列表
|
||||
@ -7,71 +8,55 @@ import { AppPayWalletPackageRespVO, PayOrderSubmitReqVO, PayOrderRespVO, PageRes
|
||||
* @returns
|
||||
*/
|
||||
export const listVip = () => {
|
||||
return get<IResponse<AppPayWalletPackageRespVO[]>>({
|
||||
url: '/prod-api/app-api/pay/wallet-recharge-package/list-vip',
|
||||
})
|
||||
return useFetchRequest.get<IResponse<AppPayWalletPackageRespVO[]>>('/prod-api/app-api/pay/wallet-recharge-package/list-vip', {})
|
||||
}
|
||||
|
||||
/**
|
||||
* 提交支付订单
|
||||
*/
|
||||
export const submitPayOrder = (data: PayOrderSubmitReqVO) => {
|
||||
return post<
|
||||
return useDollarFetchRequest.post<
|
||||
IResponse<{
|
||||
displayContent: string
|
||||
displayMode: string
|
||||
orderId: number
|
||||
status: number
|
||||
}>
|
||||
>({
|
||||
url: '/prod-api/app-api/pay/order/submit',
|
||||
data,
|
||||
})
|
||||
>('/prod-api/app-api/pay/order/submit', data)
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建示例订单
|
||||
*/
|
||||
export const createOrder = (params: { spuId: number }) => {
|
||||
return post<IResponse<string>>({
|
||||
url: '/prod-api/app-api/pay/demo-order/create',
|
||||
params,
|
||||
})
|
||||
return useDollarFetchRequest.post<IResponse<string>>('/prod-api/app-api/pay/demo-order/create', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得钱包充值套餐列表
|
||||
*/
|
||||
export const listWalletRechargePackage = () => {
|
||||
return get<IResponse<AppPayWalletPackageRespVO[]>>({
|
||||
url: '/prod-api/app-api/pay/wallet-recharge-package/list',
|
||||
})
|
||||
return useFetchRequest.get<IResponse<AppPayWalletPackageRespVO[]>>('/prod-api/app-api/pay/wallet-recharge-package/list', {})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取支付状态
|
||||
*/
|
||||
export const getPayStatus = (params: { id: number }) => {
|
||||
return get<IResponse<PayOrderRespVO>>({
|
||||
url: '/prod-api/app-api/pay/order/get',
|
||||
params,
|
||||
})
|
||||
return useDollarFetchRequest.get<IResponse<PayOrderRespVO>>('/prod-api/app-api/pay/order/get', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过code获取token
|
||||
*/
|
||||
export const getTokenByCode = (params: { type: number; code: string; state: string }) => {
|
||||
return post<IResponse<string>>({
|
||||
url: '/prod-api/app-api/member/social-user/bind',
|
||||
data: params,
|
||||
})
|
||||
return useDollarFetchRequest.post<IResponse<string>>('/prod-api/app-api/member/auth/token-by-code', params)
|
||||
}
|
||||
/**
|
||||
* 社交快捷登录,使用 code 授权码
|
||||
*/
|
||||
export const socialLoginByCode = (params: { type: number; code: string; state: string }) => {
|
||||
return post<
|
||||
return useDollarFetchRequest.post<
|
||||
IResponse<{
|
||||
accessToken: string
|
||||
refreshToken: string
|
||||
@ -79,18 +64,12 @@ export const socialLoginByCode = (params: { type: number; code: string; state: s
|
||||
expiresTime: number
|
||||
openid: string
|
||||
}>
|
||||
>({
|
||||
url: '/prod-api/app-api/member/auth/social-login',
|
||||
data: params,
|
||||
})
|
||||
>('/prod-api/app-api/member/auth/social-login', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得钱包充值记录分页
|
||||
*/
|
||||
export const getWalletRechargeRecordPage = (params: { pageNo: number; pageSize: number }) => {
|
||||
return get<IResponse<PageResultAppPayWalletRechargeRespVO>>({
|
||||
url: '/prod-api/app-api/pay/wallet-transaction/page',
|
||||
params,
|
||||
})
|
||||
return useFetchRequest.get<IResponse<PageResultAppPayWalletRechargeRespVO>>('/prod-api/app-api/pay/wallet-transaction/page', params)
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { get, post, put, Delete } from '~/utils/axios'
|
||||
import {
|
||||
import * as useDollarFetchRequest from '~/composables/useDollarFetchRequest'
|
||||
import * as useFetchRequest from '~/composables/useFetchRequest'
|
||||
import type {
|
||||
UserExtendSaveReqVO,
|
||||
UserExtendRespVO,
|
||||
UserAuthInfoRespVO,
|
||||
@ -16,9 +17,7 @@ import {
|
||||
* @returns
|
||||
*/
|
||||
export const getUserInfo = () => {
|
||||
return get<IResponse<UserExtendRespVO>>({
|
||||
url: '/prod-api/app-api/member/user-extend/get',
|
||||
})
|
||||
return useFetchRequest.get<IResponse<UserExtendRespVO>>('/prod-api/app-api/member/user-extend/get', {})
|
||||
}
|
||||
|
||||
/**
|
||||
@ -27,10 +26,7 @@ export const getUserInfo = () => {
|
||||
* @returns
|
||||
*/
|
||||
export const userExtend = (params: UserExtendSaveReqVO) => {
|
||||
return post<IResponse<number>>({
|
||||
url: '/prod-api/app-api/member/user-extend/create',
|
||||
data: params,
|
||||
})
|
||||
return useDollarFetchRequest.post<IResponse<number>>('/prod-api/app-api/member/user-extend/create', params)
|
||||
}
|
||||
|
||||
/**
|
||||
@ -39,10 +35,7 @@ export const userExtend = (params: UserExtendSaveReqVO) => {
|
||||
* @returns
|
||||
*/
|
||||
export const updateUserExtend = (params: UserExtendSaveReqVO) => {
|
||||
return put<IResponse<number>>({
|
||||
url: '/prod-api/app-api/member/user-extend/update',
|
||||
data: params,
|
||||
})
|
||||
return useDollarFetchRequest.put<IResponse<number>>('/prod-api/app-api/member/user-extend/update', params)
|
||||
}
|
||||
/**
|
||||
* 获取用户信息
|
||||
@ -50,9 +43,7 @@ export const updateUserExtend = (params: UserExtendSaveReqVO) => {
|
||||
* @returns
|
||||
*/
|
||||
export const getUserAuthInfo = () => {
|
||||
return get<IResponse<UserAuthInfoRespVO>>({
|
||||
url: '/prod-api/app-api/member/user-auth-info/get',
|
||||
})
|
||||
return useFetchRequest.get<IResponse<UserAuthInfoRespVO>>('/prod-api/app-api/member/user-auth-info/get', {})
|
||||
}
|
||||
/**
|
||||
* 创建用户信息
|
||||
@ -60,10 +51,7 @@ export const getUserAuthInfo = () => {
|
||||
* @returns
|
||||
*/
|
||||
export const createUserAuthInfo = (params: UserAuthInfoRespVO) => {
|
||||
return post<IResponse<number>>({
|
||||
url: '/prod-api/app-api/member/user-auth-info/create',
|
||||
data: params,
|
||||
})
|
||||
return useDollarFetchRequest.post<IResponse<number>>('/prod-api/app-api/member/user-auth-info/create', params)
|
||||
}
|
||||
/**
|
||||
* 更新用户信息
|
||||
@ -71,132 +59,92 @@ export const createUserAuthInfo = (params: UserAuthInfoRespVO) => {
|
||||
* @returns
|
||||
*/
|
||||
export const updateUserAuthInfo = (params: UserAuthInfoRespVO) => {
|
||||
return put<IResponse<number>>({
|
||||
url: '/prod-api/app-api/member/user-auth-info/update',
|
||||
data: params,
|
||||
})
|
||||
return useDollarFetchRequest.put<IResponse<number>>('/prod-api/app-api/member/user-auth-info/update', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得内容信息分页
|
||||
*/
|
||||
export const getContentPage = (params: { type: number }) => {
|
||||
return get<IResponse<PageResultProjectHistoryResVO>>({
|
||||
url: '/prod-api/app-api/business/project-history/page',
|
||||
params,
|
||||
})
|
||||
return useFetchRequest.get<IResponse<PageResultProjectHistoryResVO>>('/prod-api/app-api/business/project-history/page', params)
|
||||
}
|
||||
/**
|
||||
* 获得用户项目工具箱下载分页
|
||||
*/
|
||||
export const getUserToolBoxPage = (params: { pageNum: number; pageSize: number; type?: number }) => {
|
||||
return get<IResponse<PageResultProjectHistoryResVO>>({
|
||||
url: '/prod-api/app-api/business/project-member-file/page',
|
||||
params,
|
||||
})
|
||||
return useFetchRequest.get<IResponse<PageResultProjectHistoryResVO>>('/prod-api/app-api/business/project-member-file/page', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 签到
|
||||
*/
|
||||
export const signIn = () => {
|
||||
return post<
|
||||
return useDollarFetchRequest.post<
|
||||
IResponse<{
|
||||
day: number
|
||||
point: number
|
||||
experience: number
|
||||
createTime: string
|
||||
}>
|
||||
>({
|
||||
url: '/prod-api/app-api/member/sign-in/record/create',
|
||||
})
|
||||
>('/prod-api/app-api/member/sign-in/record/create', {})
|
||||
}
|
||||
/**
|
||||
* 获得用户积分记录分页
|
||||
*/
|
||||
export const getUserPointPage = (params: { pageNo: number; pageSize: number }) => {
|
||||
return get<IResponse<PageResultMemberPointRecordRespVO>>({
|
||||
url: '/prod-api/app-api/member/point/record/page',
|
||||
params,
|
||||
})
|
||||
return useFetchRequest.get<IResponse<PageResultMemberPointRecordRespVO>>('/prod-api/app-api/member/point/record/page', params)
|
||||
}
|
||||
/**
|
||||
* 近期收益和近期活跃
|
||||
*/
|
||||
export const getRecentIncomeAndActive = (params: { type: number; limit: number }) => {
|
||||
return get<IResponse<UserStatisticsLineRespVO>>({
|
||||
url: '/prod-api/app-api/member/statistics/line',
|
||||
params,
|
||||
})
|
||||
return useFetchRequest.get<IResponse<UserStatisticsLineRespVO>>('/prod-api/app-api/member/statistics/line', params)
|
||||
}
|
||||
/**
|
||||
*
|
||||
资源下载分布
|
||||
*/
|
||||
export const getResourceDistribution = (params: { type: number; limit: number }) => {
|
||||
return get<IResponse<UserStatisticsBarRespVO>>({
|
||||
url: '/prod-api/app-api/member/statistics/bar',
|
||||
params,
|
||||
})
|
||||
return useFetchRequest.get<IResponse<UserStatisticsBarRespVO>>('/prod-api/app-api/member/statistics/bar', params)
|
||||
}
|
||||
/**
|
||||
* 我的数据统计 包括我的金币 我的关注 我的发布等等
|
||||
*/
|
||||
export const getUserStatistics = () => {
|
||||
return get<IResponse<UserStatisticsCountRespVO>>({
|
||||
url: '/prod-api/app-api/member/statistics/count',
|
||||
params: {},
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded ',
|
||||
},
|
||||
})
|
||||
return useFetchRequest.get<IResponse<UserStatisticsCountRespVO>>('/prod-api/app-api/member/statistics/count', {})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得项目订单用户收藏信息分页
|
||||
*/
|
||||
export const getUserFavoritePage = (params: { pageNo: number; pageSize: number; userId: any; type: number }) => {
|
||||
return get<IResponse<PageResultProjectMemberFavoritesRespVO>>({
|
||||
url: '/prod-api/app-api/business/project-member-favorites/page',
|
||||
params,
|
||||
})
|
||||
return useFetchRequest.get<IResponse<PageResultProjectMemberFavoritesRespVO>>('/prod-api/app-api/business/project-member-favorites/page', params)
|
||||
}
|
||||
|
||||
/***
|
||||
* 自己发布的-内容信息分页
|
||||
*/
|
||||
export const getOwnContentPage = (params: { pageNo: number; pageSize: number; type: number }) => {
|
||||
return get<IResponse<PageResultProjectMemberFavoritesRespVO>>({
|
||||
url: '/prod-api/app-api/business/app/project-draw/my-page',
|
||||
params,
|
||||
})
|
||||
return useFetchRequest.get<IResponse<PageResultProjectHistoryResVO>>('/prod-api/app-api/business/app/project-draw/my-page', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 下架
|
||||
*/
|
||||
export const offShelf = (params: { id: number }) => {
|
||||
return put<IResponse<boolean>>({
|
||||
url: '/prod-api/app-api/business/app/project-draw/down',
|
||||
data: params,
|
||||
})
|
||||
return useDollarFetchRequest.put<IResponse<boolean>>('/prod-api/app-api/business/app/project-draw/down', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除资源
|
||||
*/
|
||||
export const deleteResource = (params: { id: number }) => {
|
||||
return Delete<IResponse<boolean>>({
|
||||
url: '/prod-api/app-api/business/app/project-draw/delete',
|
||||
params,
|
||||
})
|
||||
return useDollarFetchRequest.del<IResponse<boolean>>('/prod-api/app-api/business/app/project-draw/delete', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得信息拓展
|
||||
*/
|
||||
export const getUserExtend = () => {
|
||||
return get<IResponse<UserExtendRespVO>>({
|
||||
url: '/prod-api/app-api/member/user-extend/get',
|
||||
})
|
||||
return useFetchRequest.get<IResponse<UserExtendRespVO>>('/prod-api/app-api/member/user-extend/get', {})
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { post, get } from '~/utils/axios'
|
||||
import { TcreateReq, TpageReq, TpageRes } from './types'
|
||||
import * as useDollarFetchRequest from '~/composables/useDollarFetchRequest'
|
||||
import * as useFetchRequest from '~/composables/useFetchRequest'
|
||||
import type { TcreateReq, TpageReq, TpageRes } from './types'
|
||||
|
||||
/**
|
||||
* 新建工具箱
|
||||
@ -7,18 +8,12 @@ import { TcreateReq, TpageReq, TpageRes } from './types'
|
||||
* @returns
|
||||
*/
|
||||
export const create = (params: TcreateReq) => {
|
||||
return post<IResponse<number>>({
|
||||
url: '/prod-api/app-api/business/app/project-resource/create',
|
||||
data: params,
|
||||
})
|
||||
return useDollarFetchRequest.post<IResponse<number>>('/prod-api/app-api/business/app/project-resource/create', params)
|
||||
}
|
||||
|
||||
/***
|
||||
* 获得内容信息分页
|
||||
*/
|
||||
export const page = (params: TpageReq) => {
|
||||
return get<IResponse<TpageRes>>({
|
||||
url: '/prod-api/app-api/business/app/project-resource/page',
|
||||
params,
|
||||
})
|
||||
return useFetchRequest.get<IResponse<TpageRes>>('/prod-api/app-api/business/app/project-resource/page', params)
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import { post, get } from '~/utils/axios'
|
||||
import { TcreateReq, pageReq, pageRes, recommendTopReq, recommendTopRes, parentRes, ProjectDictNodeVO } from './types'
|
||||
import * as useDollarFetchRequest from '~/composables/useDollarFetchRequest'
|
||||
import * as useFetchRequest from '~/composables/useFetchRequest'
|
||||
import type { TcreateReq, pageReq, pageRes, recommendTopReq, recommendTopRes, parentRes, ProjectDictNodeVO } from './types'
|
||||
|
||||
/**
|
||||
* 新建图纸
|
||||
@ -7,10 +8,7 @@ import { TcreateReq, pageReq, pageRes, recommendTopReq, recommendTopRes, parentR
|
||||
* @returns
|
||||
*/
|
||||
export const create = (params: TcreateReq) => {
|
||||
return post<IResponse<boolean>>({
|
||||
url: '/prod-api/app-api/business/app/project/create',
|
||||
data: params,
|
||||
})
|
||||
return useDollarFetchRequest.post<IResponse<boolean>>('/prod-api/app-api/business/app/project/create', params)
|
||||
}
|
||||
/**
|
||||
* 获取具有上下级的字典信息
|
||||
@ -18,10 +16,7 @@ export const create = (params: TcreateReq) => {
|
||||
* @returns
|
||||
*/
|
||||
export const parent = (params: { type: string | number; parentId: number }) => {
|
||||
return get<IResponse<parentRes[]>>({
|
||||
url: '/prod-api/app-api/business/app/dict/parent',
|
||||
params,
|
||||
})
|
||||
return useFetchRequest.get<IResponse<parentRes[]>>('/prod-api/app-api/business/app/dict/parent', params)
|
||||
}
|
||||
/**
|
||||
* 获取具有上下级的字典信息
|
||||
@ -29,9 +24,7 @@ export const parent = (params: { type: string | number; parentId: number }) => {
|
||||
* @returns
|
||||
*/
|
||||
export const indexTabs = () => {
|
||||
return get<IResponse<parentRes[]>>({
|
||||
url: '/prod-api/app-api/business/project/index/index-tab3',
|
||||
})
|
||||
return useFetchRequest.get<IResponse<parentRes[]>>('/prod-api/app-api/business/project/index/index-tab3')
|
||||
}
|
||||
/**
|
||||
* 模糊查询获取标签内容
|
||||
@ -39,10 +32,7 @@ export const indexTabs = () => {
|
||||
* @returns
|
||||
*/
|
||||
export const keywords = (params: { type: string | number; keywords: string }) => {
|
||||
return get<IResponse<boolean>>({
|
||||
url: '/prod-api/app-api/business/app/dict/label-keywords',
|
||||
params,
|
||||
})
|
||||
return useFetchRequest.get<IResponse<boolean>>('/prod-api/app-api/business/app/dict/label-keywords', params)
|
||||
}
|
||||
/**
|
||||
* 获取格式类型字典信息
|
||||
@ -50,10 +40,7 @@ export const keywords = (params: { type: string | number; keywords: string }) =>
|
||||
* @returns
|
||||
*/
|
||||
export const labels = (params: { type: string | number }) => {
|
||||
return get<IResponse<boolean>>({
|
||||
url: '/prod-api/app-api/business/app/dict/labels',
|
||||
params,
|
||||
})
|
||||
return useFetchRequest.get<IResponse<boolean>>('/prod-api/app-api/business/app/dict/labels', params)
|
||||
}
|
||||
/**
|
||||
* 获得项目表内容信息分页
|
||||
@ -61,10 +48,7 @@ export const labels = (params: { type: string | number }) => {
|
||||
* @returns
|
||||
*/
|
||||
export const page = (params: pageReq) => {
|
||||
return get<IResponse<pageRes>>({
|
||||
url: '/prod-api/app-api/business/app/project-draw/page',
|
||||
params,
|
||||
})
|
||||
return useFetchRequest.get<IResponse<pageRes>>('/prod-api/app-api/business/app/project-draw/page', params)
|
||||
}
|
||||
/**
|
||||
* 获得项目表内容信息分页
|
||||
@ -72,17 +56,12 @@ export const page = (params: pageReq) => {
|
||||
* @returns
|
||||
*/
|
||||
export const recommendTop = (params: recommendTopReq) => {
|
||||
return get<IResponse<recommendTopRes[]>>({
|
||||
url: '/prod-api/app-api/business/app/project-draw/recommend-top',
|
||||
params,
|
||||
})
|
||||
return useFetchRequest.get<IResponse<recommendTopRes[]>>('/prod-api/app-api/business/app/project-draw/recommend-top', params)
|
||||
}
|
||||
|
||||
/**
|
||||
* 首页-标签
|
||||
*/
|
||||
export const homeLabel = () => {
|
||||
return get<IResponse<ProjectDictNodeVO[]>>({
|
||||
url: '/prod-api/app-api/business/app/dict/index-tab',
|
||||
})
|
||||
return useFetchRequest.get<IResponse<ProjectDictNodeVO[]>>('/prod-api/app-api/business/app/dict/index-tab')
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@
|
||||
import { loginByMobile } from '~/api/login/index'
|
||||
const { $openLogin } = useNuxtApp()
|
||||
|
||||
import { refreshToken as REFRESHTOKEN } from '~/utils/axios'
|
||||
import REFRESHTOKEN from '~/utils/RefreshToken'
|
||||
import useUserStore from '~/store/user'
|
||||
const userStore = useUserStore()
|
||||
|
||||
|
||||
@ -35,14 +35,14 @@ const useClientRequest = async <T = unknown>(
|
||||
|
||||
// 明确转换返回类型
|
||||
const response = await $fetch(url, { ...defaultOptions, ...opts });
|
||||
return response as unknown as IResponse<T>;
|
||||
return response as unknown as T;
|
||||
};
|
||||
|
||||
// GET请求
|
||||
export const get = <T = unknown>(
|
||||
endpoint: string,
|
||||
config?: Omit<FetchOptions, 'method'>
|
||||
): Promise<IResponse<T>> => {
|
||||
): Promise<T> => {
|
||||
return useClientRequest<T>(endpoint, { ...config, method: 'GET' })
|
||||
}
|
||||
|
||||
@ -51,7 +51,7 @@ const useClientRequest = async <T = unknown>(
|
||||
endpoint: string,
|
||||
body?: any,
|
||||
config?: Omit<FetchOptions, 'method' | 'body'>
|
||||
): Promise<IResponse<T>> => {
|
||||
): Promise<T> => {
|
||||
return useClientRequest<T>(endpoint, { ...config, method: 'POST', body })
|
||||
}
|
||||
|
||||
@ -60,7 +60,7 @@ const useClientRequest = async <T = unknown>(
|
||||
export const del = <T = unknown>(
|
||||
endpoint: string,
|
||||
config?: Omit<FetchOptions, 'method'>
|
||||
): Promise<IResponse<T>> => {
|
||||
): Promise<T> => {
|
||||
return useClientRequest<T>(endpoint, { ...config, method: 'DELETE' })
|
||||
}
|
||||
|
||||
@ -69,6 +69,6 @@ const useClientRequest = async <T = unknown>(
|
||||
endpoint: string,
|
||||
body?: any,
|
||||
config?: Omit<FetchOptions, 'method' | 'body'>
|
||||
): Promise<IResponse<T>> => {
|
||||
): Promise<T> => {
|
||||
return useClientRequest<T>(endpoint, { ...config, method: 'PUT', body })
|
||||
}
|
||||
@ -35,14 +35,14 @@ const useServerRequest = async <T>(
|
||||
// return useFetch<T>(url, { ...defaultOptions, ...opts } as any);
|
||||
// 明确转换返回类型
|
||||
const response = await useFetch<T>(url, { ...defaultOptions, ...opts } as any);
|
||||
return response as unknown as IResponse<T>;
|
||||
return response as unknown as T;
|
||||
};
|
||||
|
||||
// GET请求
|
||||
export const get = <T = unknown>(
|
||||
endpoint: string,
|
||||
config?: Omit<FetchOptions, 'method'>
|
||||
): Promise<IResponse<T>> => {
|
||||
): Promise<T> => {
|
||||
return useServerRequest<T>(endpoint, { ...config, method: 'GET' })
|
||||
}
|
||||
|
||||
@ -51,7 +51,7 @@ const useServerRequest = async <T>(
|
||||
endpoint: string,
|
||||
body?: any,
|
||||
config?: Omit<FetchOptions, 'method' | 'body'>
|
||||
): Promise<IResponse<T>> => {
|
||||
): Promise<T> => {
|
||||
return useServerRequest<T>(endpoint, { ...config, method: 'POST', body })
|
||||
}
|
||||
|
||||
@ -60,7 +60,7 @@ const useServerRequest = async <T>(
|
||||
export const del = <T = unknown>(
|
||||
endpoint: string,
|
||||
config?: Omit<FetchOptions, 'method'>
|
||||
): Promise<IResponse<T>> => {
|
||||
): Promise<T> => {
|
||||
return useServerRequest<T>(endpoint, { ...config, method: 'DELETE' })
|
||||
}
|
||||
|
||||
@ -69,6 +69,6 @@ const useServerRequest = async <T>(
|
||||
endpoint: string,
|
||||
body?: any,
|
||||
config?: Omit<FetchOptions, 'method' | 'body'>
|
||||
): Promise<IResponse<T>> => {
|
||||
): Promise<T> => {
|
||||
return useServerRequest<T>(endpoint, { ...config, method: 'PUT', body })
|
||||
}
|
||||
|
||||
@ -1,13 +1,14 @@
|
||||
// import { base_api } from '~/constants/index'
|
||||
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||
export default defineNuxtConfig({
|
||||
devServer: {
|
||||
port: 6188,
|
||||
},
|
||||
// devServer: {
|
||||
// port: 6188,
|
||||
// },
|
||||
|
||||
devtools: {
|
||||
enabled: process.env.NODE_ENV === "development",
|
||||
},
|
||||
debug: process.env.NODE_ENV === "development", // 开启详细调试日志
|
||||
|
||||
ssr: true,
|
||||
modules: ["@unocss/nuxt", "@pinia/nuxt", "@element-plus/nuxt"],
|
||||
|
||||
@ -23,7 +23,8 @@
|
||||
"tinymce": "^8.0.2",
|
||||
"vue": "^3.5.18",
|
||||
"vue-pdf-embed": "^2.1.3",
|
||||
"vue-router": "^4.5.1"
|
||||
"vue-router": "^4.5.1",
|
||||
"vue3-marquee": "^4.2.2"
|
||||
},
|
||||
"packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610",
|
||||
"devDependencies": {
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<span v-else class="LiHei (Noncommercial) font-MF text-16px text-[#999999] font-normal">{{ index }}</span>
|
||||
</div>
|
||||
<div class="ml-20px w-120px flex items-center text-16px text-[#333333] font-normal">
|
||||
<img :src="item.avatar" alt="" srcset="" class="h-36px w-36px rd-50%" />
|
||||
<img :src="item?.avatar" alt="" srcset="" class="h-36px w-36px rd-50%" />
|
||||
<span class="ellipsis1 ml-10px">{{ item.nickname }}</span>
|
||||
</div>
|
||||
<div class="ml-20px flex text-14px text-[#666666] font-normal">
|
||||
@ -48,7 +48,7 @@
|
||||
<span v-else class="font-MF LiHei (Noncommercial) text-16px text-[#999999] font-normal">{{ index }}</span>
|
||||
</div>
|
||||
<div class="ml-20px w-120px flex items-center text-16px text-[#333333] font-normal">
|
||||
<img :src="item.avatar" alt="" srcset="" class="h-36px w-36px rd-50%" />
|
||||
<img :src="item?.avatar" alt="" srcset="" class="h-36px w-36px rd-50%" />
|
||||
<span class="ellipsis1 ml-10px">{{ item.nickname }}</span>
|
||||
</div>
|
||||
<div class="ml-20px flex text-14px text-[#666666] font-normal">
|
||||
@ -110,7 +110,7 @@
|
||||
type: 1,
|
||||
limit: 11,
|
||||
})
|
||||
newDrawList.value = res.data
|
||||
// newDrawList.value = res.data
|
||||
}
|
||||
handlenewDraw()
|
||||
|
||||
@ -118,8 +118,11 @@
|
||||
const userTopList = ref<ProjectTrendingScoreUserInfoVO[]>([]) // 最新动态
|
||||
const handleuserTop = () => {
|
||||
Promise.all([userTop({ type: 1 }), userTop({})]).then((res) => {
|
||||
topList.value = res[0].data
|
||||
userTopList.value = res[1].data
|
||||
// topList.value = res[0].data
|
||||
// userTopList.value = res[1].data
|
||||
|
||||
// console.log('res----',JSON.stringify(res));
|
||||
|
||||
})
|
||||
}
|
||||
handleuserTop()
|
||||
|
||||
@ -76,7 +76,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { refreshToken as REFRESHTOKEN } from '~/utils/axios'
|
||||
import REFRESHTOKEN from '~/utils/RefreshToken'
|
||||
import { getCurrentInstance, computed, watchEffect, ref } from 'vue'
|
||||
import { handleLoginQQ, handleLoginWechat } from '~/utils/login'
|
||||
import type { UserStatisticsCountRespVO } from '~/api/personal-center/types'
|
||||
|
||||
@ -20,6 +20,7 @@
|
||||
<script setup lang="ts">
|
||||
import { reactive, ref } from 'vue'
|
||||
import LoginForm from './LoginForm.vue'
|
||||
import { Vue3Marquee } from 'vue3-marquee'
|
||||
|
||||
import { getSettingPage } from '~/api/home/index'
|
||||
import type { PageResultIndexSettingRespVO } from '~/api/home/type'
|
||||
|
||||
@ -3,20 +3,20 @@
|
||||
<!-- 搜索 -->
|
||||
<KlSearch></KlSearch>
|
||||
<!-- 菜单 -->
|
||||
<KlMenuV2 />
|
||||
<!-- <KlMenuV2 /> -->
|
||||
<!-- banner -->
|
||||
<div class="banner-container">
|
||||
<SideMenu class="side-menu" />
|
||||
<MainContent class="main-content" />
|
||||
<!-- <SideMenu class="side-menu" /> -->
|
||||
<!-- <MainContent class="main-content" /> -->
|
||||
</div>
|
||||
<!-- 学习方法推荐 -->
|
||||
<LearningRecommendations></LearningRecommendations>
|
||||
<!-- <LearningRecommendations></LearningRecommendations> -->
|
||||
<!-- 推荐栏目 -->
|
||||
<RecommendedColumns></RecommendedColumns>
|
||||
<!-- <RecommendedColumns></RecommendedColumns> -->
|
||||
<!-- 热门图纸 -->
|
||||
<PopularDrawings></PopularDrawings>
|
||||
<!-- <PopularDrawings></PopularDrawings> -->
|
||||
<!-- 排行榜 -->
|
||||
<Leaderboard></Leaderboard>
|
||||
<!-- <Leaderboard></Leaderboard> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@ -55,16 +55,18 @@ export default defineStore("useUserStore", {
|
||||
},
|
||||
// 建立连接mqtt
|
||||
async connectMqtt() {
|
||||
this.mqttClient = new MQTTClient("wss://www.tuxixi.net/mqtt", {
|
||||
clientId: this.userInfoRes.id,
|
||||
});
|
||||
await this.mqttClient.connect();
|
||||
await this.mqttClient?.subscribe(
|
||||
`zbjk_message_single/${this.userInfoRes.id}`
|
||||
);
|
||||
await this.mqttClient?.subscribe(
|
||||
`zbjk_message_kefu/${this.userInfoRes.id}`
|
||||
);
|
||||
if (process.client) {
|
||||
// this.mqttClient = new MQTTClient("wss://www.tuxixi.net/mqtt", {
|
||||
// clientId: this.userInfoRes.id,
|
||||
// });
|
||||
// await this.mqttClient.connect();
|
||||
// await this.mqttClient?.subscribe(
|
||||
// `zbjk_message_single/${this.userInfoRes.id}`
|
||||
// );
|
||||
// await this.mqttClient?.subscribe(
|
||||
// `zbjk_message_kefu/${this.userInfoRes.id}`
|
||||
// );
|
||||
}
|
||||
},
|
||||
async getToken(row: any) {
|
||||
try {
|
||||
|
||||
6
types/mqtt.d.ts
vendored
Normal file
6
types/mqtt.d.ts
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
// types/mqtt.d.ts
|
||||
declare module 'mqtt' {
|
||||
import * as mqttTypes from 'mqtt/types/lib/client-options'
|
||||
export * from 'mqtt/types/lib/client'
|
||||
export const connect: mqttTypes.IClientOptions
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
import mqtt, { MqttClient, IClientOptions } from 'mqtt'
|
||||
import mqtt from 'mqtt'
|
||||
|
||||
// MQTT 配置
|
||||
const defaultOptions: IClientOptions = {
|
||||
const defaultOptions: any = {
|
||||
clean: true,
|
||||
connectTimeout: 4000,
|
||||
clientId: 'vue3-client-' + Math.random().toString(16).substr(2, 8),
|
||||
@ -16,9 +16,9 @@ const defaultOptions: IClientOptions = {
|
||||
const brokerUrl = 'wss://www.tuxixi.net/mqtt'
|
||||
|
||||
export default class MQTTClient {
|
||||
private client: MqttClient | null = null
|
||||
private client: any | null = null
|
||||
private url: string
|
||||
private options: IClientOptions
|
||||
private options: any
|
||||
|
||||
constructor(url: string, options = {} as any) {
|
||||
this.client = null
|
||||
|
||||
@ -4769,7 +4769,7 @@ mqtt-packet@^9.0.2:
|
||||
|
||||
mqtt@^5.14.0:
|
||||
version "5.14.0"
|
||||
resolved "https://registry.npmmirror.com/mqtt/-/mqtt-5.14.0.tgz"
|
||||
resolved "https://registry.yarnpkg.com/mqtt/-/mqtt-5.14.0.tgz#eeeb1563884f73cad4fb973449d3973666a4202f"
|
||||
integrity sha512-H7EmeCJhbGblbWjm6APF5sAH3SkdI7lxHw/UkblZp8fjSNl8b2MsLcdAkIaQKxvZYmiORkdAjffvKjqQWPkd6w==
|
||||
dependencies:
|
||||
"@types/readable-stream" "^4.0.21"
|
||||
@ -6932,6 +6932,11 @@ vue-router@^4.5.1:
|
||||
dependencies:
|
||||
"@vue/devtools-api" "^6.6.4"
|
||||
|
||||
vue3-marquee@^4.2.2:
|
||||
version "4.2.2"
|
||||
resolved "https://registry.yarnpkg.com/vue3-marquee/-/vue3-marquee-4.2.2.tgz#e5316591e5412931856d5a7e5aa2b34be4388673"
|
||||
integrity sha512-FeFvGUVInKfFilXFcnl8sDRBJBZCZSNLlQDquJErB9db6W2xICRVqbRV/jtdzsEP0rftarLQhx9MeEAU0+TPuQ==
|
||||
|
||||
vue@^3.5.18:
|
||||
version "3.5.18"
|
||||
resolved "https://registry.npmmirror.com/vue/-/vue-3.5.18.tgz"
|
||||
|
||||
Reference in New Issue
Block a user