From aac4dec3fd2f8e9cf6b3e4045d7c0b631f2cab9d Mon Sep 17 00:00:00 2001 From: wangqiao Date: Mon, 18 Aug 2025 22:15:55 +0800 Subject: [PATCH] Refactor API requests and update imports --- api/pay/index.ts | 47 ++++--------- api/personal-center/index.ts | 96 ++++++--------------------- api/toolbox/index.ts | 15 ++--- api/upnew/index.ts | 43 +++--------- components/kl-register/index.vue | 2 +- composables/useDollarFetchRequest.ts | 10 +-- composables/useFetchRequest.ts | 10 +-- nuxt.config.ts | 7 +- package.json | 3 +- pages/home/components/Leaderboard.vue | 13 ++-- pages/home/components/LoginForm.vue | 2 +- pages/home/components/MainContent.vue | 1 + pages/home/index.vue | 14 ++-- store/user.ts | 22 +++--- types/mqtt.d.ts | 6 ++ utils/mqttClient.ts | 8 +-- yarn.lock | 7 +- 17 files changed, 113 insertions(+), 193 deletions(-) create mode 100644 types/mqtt.d.ts diff --git a/api/pay/index.ts b/api/pay/index.ts index 54e3b1a..b3c8bfd 100644 --- a/api/pay/index.ts +++ b/api/pay/index.ts @@ -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>({ - url: '/prod-api/app-api/pay/wallet-recharge-package/list-vip', - }) + return useFetchRequest.get>('/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>({ - url: '/prod-api/app-api/pay/demo-order/create', - params, - }) + return useDollarFetchRequest.post>('/prod-api/app-api/pay/demo-order/create', params) } /** * 获得钱包充值套餐列表 */ export const listWalletRechargePackage = () => { - return get>({ - url: '/prod-api/app-api/pay/wallet-recharge-package/list', - }) + return useFetchRequest.get>('/prod-api/app-api/pay/wallet-recharge-package/list', {}) } /** * 获取支付状态 */ export const getPayStatus = (params: { id: number }) => { - return get>({ - url: '/prod-api/app-api/pay/order/get', - params, - }) + return useDollarFetchRequest.get>('/prod-api/app-api/pay/order/get', params) } /** * 通过code获取token */ export const getTokenByCode = (params: { type: number; code: string; state: string }) => { - return post>({ - url: '/prod-api/app-api/member/social-user/bind', - data: params, - }) + return useDollarFetchRequest.post>('/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>({ - url: '/prod-api/app-api/pay/wallet-transaction/page', - params, - }) + return useFetchRequest.get>('/prod-api/app-api/pay/wallet-transaction/page', params) } diff --git a/api/personal-center/index.ts b/api/personal-center/index.ts index 2da94cf..2f42c8b 100644 --- a/api/personal-center/index.ts +++ b/api/personal-center/index.ts @@ -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>({ - url: '/prod-api/app-api/member/user-extend/get', - }) + return useFetchRequest.get>('/prod-api/app-api/member/user-extend/get', {}) } /** @@ -27,10 +26,7 @@ export const getUserInfo = () => { * @returns */ export const userExtend = (params: UserExtendSaveReqVO) => { - return post>({ - url: '/prod-api/app-api/member/user-extend/create', - data: params, - }) + return useDollarFetchRequest.post>('/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>({ - url: '/prod-api/app-api/member/user-extend/update', - data: params, - }) + return useDollarFetchRequest.put>('/prod-api/app-api/member/user-extend/update', params) } /** * 获取用户信息 @@ -50,9 +43,7 @@ export const updateUserExtend = (params: UserExtendSaveReqVO) => { * @returns */ export const getUserAuthInfo = () => { - return get>({ - url: '/prod-api/app-api/member/user-auth-info/get', - }) + return useFetchRequest.get>('/prod-api/app-api/member/user-auth-info/get', {}) } /** * 创建用户信息 @@ -60,10 +51,7 @@ export const getUserAuthInfo = () => { * @returns */ export const createUserAuthInfo = (params: UserAuthInfoRespVO) => { - return post>({ - url: '/prod-api/app-api/member/user-auth-info/create', - data: params, - }) + return useDollarFetchRequest.post>('/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>({ - url: '/prod-api/app-api/member/user-auth-info/update', - data: params, - }) + return useDollarFetchRequest.put>('/prod-api/app-api/member/user-auth-info/update', params) } /** * 获得内容信息分页 */ export const getContentPage = (params: { type: number }) => { - return get>({ - url: '/prod-api/app-api/business/project-history/page', - params, - }) + return useFetchRequest.get>('/prod-api/app-api/business/project-history/page', params) } /** * 获得用户项目工具箱下载分页 */ export const getUserToolBoxPage = (params: { pageNum: number; pageSize: number; type?: number }) => { - return get>({ - url: '/prod-api/app-api/business/project-member-file/page', - params, - }) + return useFetchRequest.get>('/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>({ - url: '/prod-api/app-api/member/point/record/page', - params, - }) + return useFetchRequest.get>('/prod-api/app-api/member/point/record/page', params) } /** * 近期收益和近期活跃 */ export const getRecentIncomeAndActive = (params: { type: number; limit: number }) => { - return get>({ - url: '/prod-api/app-api/member/statistics/line', - params, - }) + return useFetchRequest.get>('/prod-api/app-api/member/statistics/line', params) } /** * 资源下载分布 */ export const getResourceDistribution = (params: { type: number; limit: number }) => { - return get>({ - url: '/prod-api/app-api/member/statistics/bar', - params, - }) + return useFetchRequest.get>('/prod-api/app-api/member/statistics/bar', params) } /** * 我的数据统计 包括我的金币 我的关注 我的发布等等 */ export const getUserStatistics = () => { - return get>({ - url: '/prod-api/app-api/member/statistics/count', - params: {}, - headers: { - 'Content-Type': 'application/x-www-form-urlencoded ', - }, - }) + return useFetchRequest.get>('/prod-api/app-api/member/statistics/count', {}) } /** * 获得项目订单用户收藏信息分页 */ export const getUserFavoritePage = (params: { pageNo: number; pageSize: number; userId: any; type: number }) => { - return get>({ - url: '/prod-api/app-api/business/project-member-favorites/page', - params, - }) + return useFetchRequest.get>('/prod-api/app-api/business/project-member-favorites/page', params) } /*** * 自己发布的-内容信息分页 */ export const getOwnContentPage = (params: { pageNo: number; pageSize: number; type: number }) => { - return get>({ - url: '/prod-api/app-api/business/app/project-draw/my-page', - params, - }) + return useFetchRequest.get>('/prod-api/app-api/business/app/project-draw/my-page', params) } /** * 下架 */ export const offShelf = (params: { id: number }) => { - return put>({ - url: '/prod-api/app-api/business/app/project-draw/down', - data: params, - }) + return useDollarFetchRequest.put>('/prod-api/app-api/business/app/project-draw/down', params) } /** * 删除资源 */ export const deleteResource = (params: { id: number }) => { - return Delete>({ - url: '/prod-api/app-api/business/app/project-draw/delete', - params, - }) + return useDollarFetchRequest.del>('/prod-api/app-api/business/app/project-draw/delete', params) } /** * 获得信息拓展 */ export const getUserExtend = () => { - return get>({ - url: '/prod-api/app-api/member/user-extend/get', - }) + return useFetchRequest.get>('/prod-api/app-api/member/user-extend/get', {}) } diff --git a/api/toolbox/index.ts b/api/toolbox/index.ts index 7ada1b8..1237e85 100644 --- a/api/toolbox/index.ts +++ b/api/toolbox/index.ts @@ -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>({ - url: '/prod-api/app-api/business/app/project-resource/create', - data: params, - }) + return useDollarFetchRequest.post>('/prod-api/app-api/business/app/project-resource/create', params) } /*** * 获得内容信息分页 */ export const page = (params: TpageReq) => { - return get>({ - url: '/prod-api/app-api/business/app/project-resource/page', - params, - }) + return useFetchRequest.get>('/prod-api/app-api/business/app/project-resource/page', params) } diff --git a/api/upnew/index.ts b/api/upnew/index.ts index ca065c9..820fabb 100644 --- a/api/upnew/index.ts +++ b/api/upnew/index.ts @@ -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>({ - url: '/prod-api/app-api/business/app/project/create', - data: params, - }) + return useDollarFetchRequest.post>('/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>({ - url: '/prod-api/app-api/business/app/dict/parent', - params, - }) + return useFetchRequest.get>('/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>({ - url: '/prod-api/app-api/business/project/index/index-tab3', - }) + return useFetchRequest.get>('/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>({ - url: '/prod-api/app-api/business/app/dict/label-keywords', - params, - }) + return useFetchRequest.get>('/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>({ - url: '/prod-api/app-api/business/app/dict/labels', - params, - }) + return useFetchRequest.get>('/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>({ - url: '/prod-api/app-api/business/app/project-draw/page', - params, - }) + return useFetchRequest.get>('/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>({ - url: '/prod-api/app-api/business/app/project-draw/recommend-top', - params, - }) + return useFetchRequest.get>('/prod-api/app-api/business/app/project-draw/recommend-top', params) } /** * 首页-标签 */ export const homeLabel = () => { - return get>({ - url: '/prod-api/app-api/business/app/dict/index-tab', - }) + return useFetchRequest.get>('/prod-api/app-api/business/app/dict/index-tab') } diff --git a/components/kl-register/index.vue b/components/kl-register/index.vue index 7759d63..591ba6d 100644 --- a/components/kl-register/index.vue +++ b/components/kl-register/index.vue @@ -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() diff --git a/composables/useDollarFetchRequest.ts b/composables/useDollarFetchRequest.ts index 904b6c0..119d784 100644 --- a/composables/useDollarFetchRequest.ts +++ b/composables/useDollarFetchRequest.ts @@ -35,14 +35,14 @@ const useClientRequest = async ( // 明确转换返回类型 const response = await $fetch(url, { ...defaultOptions, ...opts }); - return response as unknown as IResponse; + return response as unknown as T; }; // GET请求 export const get = ( endpoint: string, config?: Omit - ): Promise> => { + ): Promise => { return useClientRequest(endpoint, { ...config, method: 'GET' }) } @@ -51,7 +51,7 @@ const useClientRequest = async ( endpoint: string, body?: any, config?: Omit - ): Promise> => { + ): Promise => { return useClientRequest(endpoint, { ...config, method: 'POST', body }) } @@ -60,7 +60,7 @@ const useClientRequest = async ( export const del = ( endpoint: string, config?: Omit - ): Promise> => { + ): Promise => { return useClientRequest(endpoint, { ...config, method: 'DELETE' }) } @@ -69,6 +69,6 @@ const useClientRequest = async ( endpoint: string, body?: any, config?: Omit - ): Promise> => { + ): Promise => { return useClientRequest(endpoint, { ...config, method: 'PUT', body }) } \ No newline at end of file diff --git a/composables/useFetchRequest.ts b/composables/useFetchRequest.ts index 7a0220a..b8d5e61 100644 --- a/composables/useFetchRequest.ts +++ b/composables/useFetchRequest.ts @@ -35,14 +35,14 @@ const useServerRequest = async ( // return useFetch(url, { ...defaultOptions, ...opts } as any); // 明确转换返回类型 const response = await useFetch(url, { ...defaultOptions, ...opts } as any); - return response as unknown as IResponse; + return response as unknown as T; }; // GET请求 export const get = ( endpoint: string, config?: Omit - ): Promise> => { + ): Promise => { return useServerRequest(endpoint, { ...config, method: 'GET' }) } @@ -51,7 +51,7 @@ const useServerRequest = async ( endpoint: string, body?: any, config?: Omit - ): Promise> => { + ): Promise => { return useServerRequest(endpoint, { ...config, method: 'POST', body }) } @@ -60,7 +60,7 @@ const useServerRequest = async ( export const del = ( endpoint: string, config?: Omit - ): Promise> => { + ): Promise => { return useServerRequest(endpoint, { ...config, method: 'DELETE' }) } @@ -69,6 +69,6 @@ const useServerRequest = async ( endpoint: string, body?: any, config?: Omit - ): Promise> => { + ): Promise => { return useServerRequest(endpoint, { ...config, method: 'PUT', body }) } diff --git a/nuxt.config.ts b/nuxt.config.ts index 1744899..b13d720 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -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"], diff --git a/package.json b/package.json index f4b59bb..f71bc97 100644 --- a/package.json +++ b/package.json @@ -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": { diff --git a/pages/home/components/Leaderboard.vue b/pages/home/components/Leaderboard.vue index cec920e..7270c19 100644 --- a/pages/home/components/Leaderboard.vue +++ b/pages/home/components/Leaderboard.vue @@ -17,7 +17,7 @@ {{ index }}
- + {{ item.nickname }}
@@ -48,7 +48,7 @@ {{ index }}
- + {{ item.nickname }}
@@ -110,7 +110,7 @@ type: 1, limit: 11, }) - newDrawList.value = res.data + // newDrawList.value = res.data } handlenewDraw() @@ -118,8 +118,11 @@ const userTopList = ref([]) // 最新动态 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() diff --git a/pages/home/components/LoginForm.vue b/pages/home/components/LoginForm.vue index d982568..631d36d 100644 --- a/pages/home/components/LoginForm.vue +++ b/pages/home/components/LoginForm.vue @@ -76,7 +76,7 @@