Browse Source

refactor(api): 更新 API调用以使用 request-legacy- 将多个 API 文件中的 request 引用更新为 request-legacy

- 修改了部分 API调用的错误处理方式
- 更新了部分函数参数名称
dev
科技小王子 7 days ago
parent
commit
ef134316b0
  1. 2
      config/env.ts
  2. 2
      src/admin/article/add.tsx
  3. 2
      src/api/bszx/bszxClass/index.ts
  4. 2
      src/api/bszx/bszxEra/index.ts
  5. 2
      src/api/bszx/bszxGrade/index.ts
  6. 4
      src/api/bszx/bszxPay/index.ts
  7. 2
      src/api/cms/cmsArticleCategory/index.ts
  8. 2
      src/api/cms/cmsArticleComment/index.ts
  9. 2
      src/api/cms/cmsArticleContent/index.ts
  10. 2
      src/api/cms/cmsArticleCount/index.ts
  11. 2
      src/api/cms/cmsArticleLike/index.ts
  12. 2
      src/api/cms/cmsComponents/index.ts
  13. 2
      src/api/cms/cmsDesign/index.ts
  14. 2
      src/api/cms/cmsDesignRecord/index.ts
  15. 2
      src/api/cms/cmsDocs/index.ts
  16. 2
      src/api/cms/cmsDocsContent/index.ts
  17. 2
      src/api/cms/cmsDomain/index.ts
  18. 2
      src/api/cms/cmsForm/index.ts
  19. 2
      src/api/cms/cmsFormRecord/index.ts
  20. 2
      src/api/cms/cmsLang/index.ts
  21. 2
      src/api/cms/cmsLangLog/index.ts
  22. 2
      src/api/cms/cmsLink/index.ts
  23. 2
      src/api/cms/cmsMp/index.ts
  24. 2
      src/api/cms/cmsMpField/index.ts
  25. 2
      src/api/cms/cmsMpMenu/index.ts
  26. 2
      src/api/cms/cmsMpPages/index.ts
  27. 2
      src/api/cms/cmsWebsite/index.ts
  28. 2
      src/api/cms/cmsWebsiteField/index.ts
  29. 2
      src/api/cms/link/index.ts
  30. 2
      src/api/cms/mpOfficialMenu/index.ts
  31. 2
      src/api/shop/shopCommissionRole/index.ts
  32. 2
      src/api/shop/shopCoupon/index.ts
  33. 86
      src/api/shop/shopDealerApply/index.ts
  34. 2
      src/api/shop/shopDealerCapital/index.ts
  35. 2
      src/api/shop/shopDealerReferee/index.ts
  36. 2
      src/api/shop/shopDealerSetting/index.ts
  37. 8
      src/api/shop/shopDealerUser/index.ts
  38. 2
      src/api/shop/shopDealerWithdraw/index.ts
  39. 2
      src/api/shop/shopExpress/index.ts
  40. 2
      src/api/shop/shopExpressTemplate/index.ts
  41. 2
      src/api/shop/shopExpressTemplateDetail/index.ts
  42. 2
      src/api/shop/shopGoodsRoleCommission/index.ts
  43. 2
      src/api/shop/shopMerchantAccount/index.ts
  44. 2
      src/api/shop/shopMerchantApply/index.ts
  45. 2
      src/api/shop/shopMerchantCount/index.ts
  46. 2
      src/api/shop/shopMerchantType/index.ts
  47. 2
      src/api/shop/shopOrderGoods/index.ts
  48. 2
      src/api/system/access-key/index.ts
  49. 2
      src/api/system/cache/index.ts
  50. 2
      src/api/system/chat/index.ts
  51. 2
      src/api/system/chatConversation/index.ts
  52. 2
      src/api/system/chatMessage/index.ts
  53. 2
      src/api/system/companyComment/index.ts
  54. 2
      src/api/system/companyUrl/index.ts
  55. 2
      src/api/system/order/index.ts
  56. 2
      src/api/system/orderGoods/index.ts
  57. 2
      src/api/system/setting/index.ts
  58. 2
      src/api/system/user-collection/index.ts
  59. 2
      src/api/system/userRole/index.ts
  60. 2
      src/api/system/version/index.ts
  61. 2
      src/api/user/balance-log/index.ts
  62. 2
      src/api/user/points/index.ts
  63. 3
      src/app.config.ts
  64. 2
      src/dealer/apply/add.config.ts
  65. 10
      src/dealer/apply/add.tsx
  66. 157
      src/dealer/info.tsx
  67. 81
      src/hooks/useDealerApply.ts
  68. 81
      src/hooks/useDealerUser.ts
  69. 32
      src/hooks/useUserData.ts
  70. 45
      src/pages/user/components/IsDealer.tsx
  71. 2
      src/user/address/add.tsx
  72. 2
      src/user/gift/add.tsx
  73. 6
      tsconfig.json

2
config/env.ts

@ -2,7 +2,7 @@
export const ENV_CONFIG = {
// 开发环境
development: {
API_BASE_URL: 'https://cms-api.websoft.top/api',
API_BASE_URL: 'http://127.0.0.1:9200/api',
APP_NAME: '开发环境',
DEBUG: 'true',
},

2
src/admin/article/add.tsx

@ -314,7 +314,7 @@ const AddShopArticle = () => {
</CellGroup>
{/* 提交按钮 */}
<FixedButton text={isEditMode ? '更新文章' : '发布文章'} onClick={submitSucceed} icon={<Edit />} />
<FixedButton text={isEditMode ? '更新文章' : '发布文章'} onClick={() => submitSucceed} icon={<Edit />} />
</Form>
</>
);

2
src/api/bszx/bszxClass/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { BszxClass, BszxClassParam } from './model';

2
src/api/bszx/bszxEra/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { BszxEra, BszxEraParam } from './model';

2
src/api/bszx/bszxGrade/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { BszxGrade, BszxGradeParam } from './model';

4
src/api/bszx/bszxPay/index.ts

@ -1,5 +1,5 @@
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api/index';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api';
import type {BszxPay, BszxPayParam} from "@/api/bszx/bszxPay/model";
import type {BszxBm,BszxBmParam} from "@/api/bszx/bszxBm/model";

2
src/api/cms/cmsArticleCategory/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsArticleCategory, CmsArticleCategoryParam } from './model';

2
src/api/cms/cmsArticleComment/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsArticleComment, CmsArticleCommentParam } from './model';

2
src/api/cms/cmsArticleContent/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsArticleContent, CmsArticleContentParam } from './model';

2
src/api/cms/cmsArticleCount/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsArticleCount, CmsArticleCountParam } from './model';

2
src/api/cms/cmsArticleLike/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsArticleLike, CmsArticleLikeParam } from './model';

2
src/api/cms/cmsComponents/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsComponents, CmsComponentsParam } from './model';

2
src/api/cms/cmsDesign/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsDesign, CmsDesignParam } from './model';

2
src/api/cms/cmsDesignRecord/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsDesignRecord, CmsDesignRecordParam } from './model';

2
src/api/cms/cmsDocs/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsDocs, CmsDocsParam } from './model';

2
src/api/cms/cmsDocsContent/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsDocsContent, CmsDocsContentParam } from './model';

2
src/api/cms/cmsDomain/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsDomain, CmsDomainParam } from './model';
import {SERVER_API_URL} from "@/utils/server";

2
src/api/cms/cmsForm/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsForm, CmsFormParam } from './model';

2
src/api/cms/cmsFormRecord/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsFormRecord, CmsFormRecordParam } from './model';

2
src/api/cms/cmsLang/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsLang, CmsLangParam } from './model';

2
src/api/cms/cmsLangLog/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsLangLog, CmsLangLogParam } from './model';

2
src/api/cms/cmsLink/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsLink, CmsLinkParam } from './model';

2
src/api/cms/cmsMp/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsMp, CmsMpParam } from './model';

2
src/api/cms/cmsMpField/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsMpField, CmsMpFieldParam } from './model';

2
src/api/cms/cmsMpMenu/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsMpMenu, CmsMpMenuParam } from './model';

2
src/api/cms/cmsMpPages/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsMpPages, CmsMpPagesParam } from './model';

2
src/api/cms/cmsWebsite/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CmsWebsite, CmsWebsiteParam } from './model';

2
src/api/cms/cmsWebsiteField/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type {CmsWebsiteField, CmsWebsiteFieldParam, Config} from './model';

2
src/api/cms/link/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { Link, LinkParam } from './model';

2
src/api/cms/mpOfficialMenu/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { MpOfficialMenu, MpOfficialMenuParam } from './model';

2
src/api/shop/shopCommissionRole/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopCommissionRole, ShopCommissionRoleParam } from './model';

2
src/api/shop/shopCoupon/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopCoupon, ShopCouponParam } from './model';

86
src/api/shop/shopDealerApply/index.ts

@ -1,5 +1,5 @@
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import request from '@/utils/request';
import type { ApiResult, PageResult } from '@/api';
import type { ShopDealerApply, ShopDealerApplyParam } from './model';
/**
@ -34,28 +34,82 @@ export async function listShopDealerApply(params?: ShopDealerApplyParam) {
*
*/
export async function addShopDealerApply(data: ShopDealerApply) {
const res = await request.post<ApiResult<unknown>>(
'/shop/shop-dealer-apply',
data
);
if (res.code === 0) {
return res.message;
try {
const res = await request.post<ApiResult<unknown>>(
'/shop/shop-dealer-apply',
data
);
if (res.code === 0) {
return res.message || '提交成功';
}
// 直接抛出包含服务器错误信息的错误
const error = new Error(res.message || '提交失败');
(error as any).code = res.code;
(error as any).data = res.data;
throw error;
} catch (error: any) {
// 如果已经是我们处理过的错误,直接抛出
if (error.message && error.code !== undefined) {
throw error;
}
// 处理网络错误或其他异常
console.error('添加分销商申请失败:', error);
// 尝试从响应中提取错误信息
if (error.response?.data) {
const responseData = error.response.data;
if (responseData.message) {
const newError = new Error(responseData.message);
(newError as any).code = responseData.code;
throw newError;
}
}
// 默认错误处理
throw new Error(error.message || '网络错误,请重试');
}
return Promise.reject(new Error(res.message));
}
/**
*
*/
export async function updateShopDealerApply(data: ShopDealerApply) {
const res = await request.put<ApiResult<unknown>>(
'/shop/shop-dealer-apply',
data
);
if (res.code === 0) {
return res.message;
try {
const res = await request.put<ApiResult<unknown>>(
'/shop/shop-dealer-apply',
data
);
if (res.code === 0) {
return res.message || '修改成功';
}
// 直接抛出包含服务器错误信息的错误
const error = new Error(res.message || '修改失败');
(error as any).code = res.code;
(error as any).data = res.data;
throw error;
} catch (error: any) {
// 如果已经是我们处理过的错误,直接抛出
if (error.message && error.code !== undefined) {
throw error;
}
// 处理网络错误或其他异常
console.error('修改分销商申请失败:', error);
// 尝试从响应中提取错误信息
if (error.response?.data) {
const responseData = error.response.data;
if (responseData.message) {
const newError = new Error(responseData.message);
(newError as any).code = responseData.code;
throw newError;
}
}
// 默认错误处理
throw new Error(error.message || '网络错误,请重试');
}
return Promise.reject(new Error(res.message));
}
/**

2
src/api/shop/shopDealerCapital/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopDealerCapital, ShopDealerCapitalParam } from './model';

2
src/api/shop/shopDealerReferee/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopDealerReferee, ShopDealerRefereeParam } from './model';

2
src/api/shop/shopDealerSetting/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopDealerSetting, ShopDealerSettingParam } from './model';

8
src/api/shop/shopDealerUser/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopDealerUser, ShopDealerUserParam } from './model';
@ -88,11 +88,11 @@ export async function removeBatchShopDealerUser(data: (number | undefined)[]) {
}
/**
* id查询分销商用户记录表
* userId查询分销商用户记录表
*/
export async function getShopDealerUser(id: number) {
export async function getShopDealerUser(userId: number) {
const res = await request.get<ApiResult<ShopDealerUser>>(
'/shop/shop-dealer-user/' + id
'/shop/shop-dealer-user/' + userId
);
if (res.code === 0 && res.data) {
return res.data;

2
src/api/shop/shopDealerWithdraw/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopDealerWithdraw, ShopDealerWithdrawParam } from './model';

2
src/api/shop/shopExpress/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopExpress, ShopExpressParam } from './model';

2
src/api/shop/shopExpressTemplate/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopExpressTemplate, ShopExpressTemplateParam } from './model';

2
src/api/shop/shopExpressTemplateDetail/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopExpressTemplateDetail, ShopExpressTemplateDetailParam } from './model';

2
src/api/shop/shopGoodsRoleCommission/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import { ShopGoodsRoleCommission, ShopGoodsRoleCommissionParam } from '@/api/shop/shopGoodsRoleCommission/model';

2
src/api/shop/shopMerchantAccount/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopMerchantAccount, ShopMerchantAccountParam } from './model';

2
src/api/shop/shopMerchantApply/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopMerchantApply, ShopMerchantApplyParam } from './model';

2
src/api/shop/shopMerchantCount/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopMerchantCount, ShopMerchantCountParam } from './model';

2
src/api/shop/shopMerchantType/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopMerchantType, ShopMerchantTypeParam } from './model';

2
src/api/shop/shopOrderGoods/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ShopOrderGoods, ShopOrderGoodsParam } from './model';

2
src/api/system/access-key/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult } from '@/api/index';
import type { AccessKey, AccessKeyParam } from './model';
import { PageResult } from '@/api/index';

2
src/api/system/cache/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult } from '@/api/index';
import type { Cache, CacheParam } from './model';
import {SERVER_API_URL} from "@/utils/server";

2
src/api/system/chat/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type {
ChatConversation,

2
src/api/system/chatConversation/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ChatConversation, ChatConversationParam } from './model';

2
src/api/system/chatMessage/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { ChatMessage, ChatMessageParam } from './model';
import {SERVER_API_URL} from "@/utils/server";

2
src/api/system/companyComment/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type {ApiResult, PageResult} from '@/api';
import type {CompanyComment, CompanyCommentParam} from './model';
import {SERVER_API_URL} from "@/utils/server";

2
src/api/system/companyUrl/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { CompanyUrl, CompanyUrlParam } from './model';
import {SERVER_API_URL} from '@/config/index';

2
src/api/system/order/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { Order, OrderParam } from './model';

2
src/api/system/orderGoods/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { OrderGoods, OrderGoodsParam } from './model';

2
src/api/system/setting/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { Setting, SettingParam } from './model';
import {SERVER_API_URL} from "@/utils/server";

2
src/api/system/user-collection/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { UserCollection, UserCollectionParam } from './model';
import {SERVER_API_URL} from "@/utils/server";

2
src/api/system/userRole/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult } from '@/api/index';
import type { UserRole, UserRoleParam } from './model';
import {SERVER_API_URL} from "@/utils/server";

2
src/api/system/version/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { Version, VersionParam } from './model';
import type { Menu } from '../menu/model';

2
src/api/user/balance-log/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { UserBalanceLog, UserBalanceLogParam } from './model';
import {SERVER_API_URL} from "@/utils/server";

2
src/api/user/points/index.ts

@ -1,4 +1,4 @@
import request from '@/utils/request';
import request from '@/utils/request-legacy';
import type { ApiResult, PageResult } from '@/api/index';
import type { UserPointsLog, UserPointsLogParam, UserPointsStats } from './model';
import {SERVER_API_URL} from "@/utils/server";

3
src/app.config.ts

@ -54,7 +54,8 @@ export default defineAppConfig({
"withdraw/index",
"orders/index",
"team/index",
"qrcode/index"
"qrcode/index",
"info"
]
},
{

2
src/dealer/apply/add.config.ts

@ -1,4 +1,4 @@
export default definePageConfig({
navigationBarTitleText: '注册成为经销商',
navigationBarTitleText: '注册成为VIP',
navigationBarTextStyle: 'black'
})

10
src/dealer/apply/add.tsx

@ -36,7 +36,7 @@ const AddUserAddress = () => {
const reload = async () => {
// 判断用户是否登录
if(!user?.userId){
if (!user?.userId) {
return false;
}
// 查询当前用户ID是否已有申请记录
@ -154,17 +154,17 @@ const AddUserAddress = () => {
extra={
<span style={{
color: FormData.applyStatus === 20 ? '#52c41a' :
FormData.applyStatus === 30 ? '#ff4d4f' : '#faad14'
FormData.applyStatus === 30 ? '#ff4d4f' : '#faad14'
}}>
{getApplyStatusText(FormData.applyStatus)}
</span>
}
/>
{FormData.applyStatus === 20 && (
<Cell title={'审核时间'} extra={FormData.auditTime || '无'} />
<Cell title={'审核时间'} extra={FormData.auditTime || '无'}/>
)}
{FormData.applyStatus === 30 && (
<Cell title={'驳回原因'} extra={FormData.rejectReason || '无'} />
<Cell title={'驳回原因'} extra={FormData.rejectReason || '无'}/>
)}
</CellGroup>
)}
@ -173,7 +173,7 @@ const AddUserAddress = () => {
{/* 底部浮动按钮 */}
{(!isEditMode || FormData.applyStatus === 10 || FormData.applyStatus === 30) && (
<FixedButton
icon={<Edit />}
icon={<Edit/>}
text={isEditMode ? '保存修改' : '提交申请'}
disabled={FormData.applyStatus === 10}
onClick={handleFixedButtonClick}

157
src/dealer/info.tsx

@ -0,0 +1,157 @@
import React from 'react'
import { View, Text } from '@tarojs/components'
import { Button, Cell, CellGroup, Tag } from '@nutui/nutui-react-taro'
import { useDealerUser } from '@/hooks/useDealerUser'
import Taro from '@tarojs/taro'
const DealerInfo: React.FC = () => {
const {
dealerUser,
loading,
error,
refresh,
} = useDealerUser()
// 跳转到申请页面
const navigateToApply = () => {
Taro.navigateTo({
url: '/pages/dealer/apply/add'
})
}
if (error) {
return (
<View className="p-4">
<View className="bg-red-50 border border-red-200 rounded-lg p-4 mb-4">
<Text className="text-red-600">{error}</Text>
</View>
<Button type="primary" onClick={refresh}>
</Button>
</View>
)
}
return (
<View className="bg-gray-50 min-h-screen">
{/* 页面标题 */}
<View className="bg-white px-4 py-3 border-b border-gray-100">
<Text className="text-lg font-bold text-center">
</Text>
</View>
{!dealerUser ? (
// 非经销商状态
<View className="bg-white mx-4 mt-4 rounded-lg p-6">
<View className="text-center py-8">
<Text className="text-gray-500 mb-4"></Text>
<Text className="text-sm text-gray-400 mb-6">
</Text>
<Button
type="primary"
size="large"
onClick={navigateToApply}
>
</Button>
</View>
</View>
) : (
// 经销商信息展示
<View>
{/* 状态卡片 */}
<View className="bg-white mx-4 mt-4 rounded-lg p-4">
<View className="flex items-center justify-between mb-4">
<Text className="text-lg font-semibold"></Text>
<Tag>
{dealerUser.realName}
</Tag>
</View>
{/* 基本信息 */}
<CellGroup>
<Cell
title="经销商ID"
extra={dealerUser.userId || '-'}
/>
<Cell
title="refereeId"
extra={dealerUser.refereeId || '-'}
/>
<Cell
title="成为经销商时间"
extra={
dealerUser.money
}
/>
</CellGroup>
{/* 操作按钮 */}
<View className="mt-6 space-y-3">
<Button
type="primary"
size="large"
loading={loading}
>
</Button>
</View>
</View>
{/* 经销商权益 */}
<View className="bg-white mx-4 mt-4 rounded-lg p-4">
<Text className="font-semibold mb-3"></Text>
<View className="space-y-2">
<Text className="text-sm text-gray-600">
</Text>
<Text className="text-sm text-gray-600">
广
</Text>
<Text className="text-sm text-gray-600">
</Text>
<Text className="text-sm text-gray-600">
</Text>
</View>
</View>
{/* 佣金统计 */}
<View className="bg-white mx-4 mt-4 rounded-lg p-4">
<Text className="font-semibold mb-3"></Text>
<View className="grid grid-cols-3 gap-4">
<View className="text-center">
<Text className="text-lg font-bold text-blue-600">0</Text>
<Text className="text-sm text-gray-500"></Text>
</View>
<View className="text-center">
<Text className="text-lg font-bold text-green-600">0</Text>
<Text className="text-sm text-gray-500"></Text>
</View>
<View className="text-center">
<Text className="text-lg font-bold text-orange-600">0</Text>
<Text className="text-sm text-gray-500"></Text>
</View>
</View>
</View>
</View>
)}
{/* 刷新按钮 */}
<View className="text-center py-4">
<Text
className="text-blue-500 text-sm"
onClick={refresh}
>
</Text>
</View>
</View>
)
}
export default DealerInfo

81
src/hooks/useDealerApply.ts

@ -0,0 +1,81 @@
import {useState, useEffect, useCallback} from 'react'
import Taro from '@tarojs/taro'
import {getShopDealerApply} from '@/api/shop/shopDealerApply'
import type {ShopDealerApply} from '@/api/shop/shopDealerApply/model'
// Hook 返回值接口
export interface UseDealerApplyReturn {
// 经销商用户信息
dealerApply: ShopDealerApply | null
// 加载状态
loading: boolean
// 错误信息
error: string | null
// 刷新数据
refresh: () => Promise<void>
}
/**
* Hook -
*
*/
export const useDealerApply = (): UseDealerApplyReturn => {
const [dealerApply, setDealerApply] = useState<ShopDealerApply | null>(null)
const [loading, setLoading] = useState(false)
const [error, setError] = useState<string | null>(null)
const userId = Taro.getStorageSync('UserId');
// 获取经销商用户数据
const fetchDealerData = useCallback(async () => {
if (!userId) {
console.log('🔍 用户未登录,提前返回')
setDealerApply(null)
return
}
try {
setLoading(true)
setError(null)
// 查询当前用户的经销商信息
const dealer = await getShopDealerApply(userId)
if (dealer) {
setDealerApply(dealer)
} else {
setDealerApply(null)
}
} catch (err) {
const errorMessage = err instanceof Error ? err.message : '获取经销商信息失败'
setError(errorMessage)
setDealerApply(null)
} finally {
setLoading(false)
}
}, [userId])
// 刷新数据
const refresh = useCallback(async () => {
await fetchDealerData()
}, [fetchDealerData])
// 初始化加载数据
useEffect(() => {
if (userId) {
console.log('🔍 调用 fetchDealerData')
fetchDealerData()
} else {
console.log('🔍 用户ID不存在,不调用 fetchDealerData')
}
}, [fetchDealerData, userId])
return {
dealerApply,
loading,
error,
refresh
}
}

81
src/hooks/useDealerUser.ts

@ -0,0 +1,81 @@
import {useState, useEffect, useCallback} from 'react'
import Taro from '@tarojs/taro'
import {getShopDealerUser} from '@/api/shop/shopDealerUser'
import type {ShopDealerUser} from '@/api/shop/shopDealerUser/model'
// Hook 返回值接口
export interface UseDealerUserReturn {
// 经销商用户信息
dealerUser: ShopDealerUser | null
// 加载状态
loading: boolean
// 错误信息
error: string | null
// 刷新数据
refresh: () => Promise<void>
}
/**
* Hook -
*
*/
export const useDealerUser = (): UseDealerUserReturn => {
const [dealerUser, setDealerUser] = useState<ShopDealerUser | null>(null)
const [loading, setLoading] = useState(false)
const [error, setError] = useState<string | null>(null)
const userId = Taro.getStorageSync('UserId');
// 获取经销商用户数据
const fetchDealerData = useCallback(async () => {
if (!userId) {
console.log('🔍 用户未登录,提前返回')
setDealerUser(null)
return
}
try {
setLoading(true)
setError(null)
// 查询当前用户的经销商信息
const dealer = await getShopDealerUser(userId)
if (dealer) {
setDealerUser(dealer)
} else {
setDealerUser(null)
}
} catch (err) {
const errorMessage = err instanceof Error ? err.message : '获取经销商信息失败'
setError(errorMessage)
setDealerUser(null)
} finally {
setLoading(false)
}
}, [userId])
// 刷新数据
const refresh = useCallback(async () => {
await fetchDealerData()
}, [fetchDealerData])
// 初始化加载数据
useEffect(() => {
if (userId) {
console.log('🔍 调用 fetchDealerData')
fetchDealerData()
} else {
console.log('🔍 用户ID不存在,不调用 fetchDealerData')
}
}, [fetchDealerData, userId])
return {
dealerUser,
loading,
error,
refresh
}
}

32
src/hooks/useUserData.ts

@ -2,6 +2,8 @@ import { useState, useEffect, useCallback } from 'react'
import {pageShopUserCoupon} from "@/api/shop/shopUserCoupon";
import {pageShopGift} from "@/api/shop/shopGift";
import {useUser} from "@/hooks/useUser";
import Taro from '@tarojs/taro'
import {getUserInfo} from "@/api/layout";
interface UserData {
balance: number
@ -22,12 +24,11 @@ interface UseUserDataReturn {
loading: boolean
error: string | null
refresh: () => Promise<void>
updateBalance: (newBalance: string) => void
updateBalance: (newBalance: number) => void
updatePoints: (newPoints: number) => void
}
export const useUserData = (): UseUserDataReturn => {
const {user} = useUser()
const [data, setData] = useState<UserData | null>(null)
const [loading, setLoading] = useState(true)
const [error, setError] = useState<string | null>(null)
@ -39,14 +40,15 @@ export const useUserData = (): UseUserDataReturn => {
setError(null)
// 并发请求所有数据
const [couponsRes, giftCardsRes] = await Promise.all([
pageShopUserCoupon({ page: 1, limit: 1, userId: user?.userId}),
pageShopGift({ page: 1, limit: 1, userId: user?.userId, status: 0})
const [userDataRes, couponsRes, giftCardsRes] = await Promise.all([
getUserInfo(),
pageShopUserCoupon({ page: 1, limit: 1, userId: Taro.getStorageSync('UserId'), status: 0}),
pageShopGift({ page: 1, limit: 1, userId: Taro.getStorageSync('UserId'), status: 0})
])
const newData: UserData = {
balance: user?.balance || 0.00,
points: user?.points || 0,
balance: userDataRes?.balance || 0.00,
points: userDataRes?.points || 0,
coupons: couponsRes?.count || 0,
giftCards: giftCardsRes?.count || 0,
orders: {
@ -71,6 +73,16 @@ export const useUserData = (): UseUserDataReturn => {
await fetchUserData()
}, [fetchUserData])
// 更新余额(本地更新,避免频繁请求)
const updateBalance = useCallback((newBalance: number) => {
setData(prev => prev ? { ...prev, balance: newBalance } : null)
}, [])
// 更新积分
const updatePoints = useCallback((newPoints: number) => {
setData(prev => prev ? { ...prev, points: newPoints } : null)
}, [])
// 初始化加载
useEffect(() => {
fetchUserData().then()
@ -80,7 +92,9 @@ export const useUserData = (): UseUserDataReturn => {
data,
loading,
error,
refresh: fetchUserData
refresh,
updateBalance,
updatePoints
}
}
@ -104,7 +118,7 @@ export const useUserBasicData = () => {
}, [])
useEffect(() => {
fetchBasicData()
fetchBasicData().then()
}, [fetchBasicData])
return {

45
src/pages/user/components/IsDealer.tsx

@ -1,45 +1,17 @@
import {Cell} from '@nutui/nutui-react-taro'
import navTo from "@/utils/common";
import Taro from '@tarojs/taro'
import {View, Text} from '@tarojs/components'
import {ArrowRight, Reward, Setting} from '@nutui/icons-react-taro'
import {useUser} from '@/hooks/useUser'
import {useEffect, useState} from "react";
import {pageShopDealerUser} from "@/api/shop/shopDealerUser";
import {useEffect} from "react";
import {useDealerUser} from "@/hooks/useDealerUser";
const UserCell = () => {
const {isSuperAdmin} = useUser();
const [isDealer, setIsDealer] = useState<boolean>(false)
const reload = async () => {
const userId = Taro.getStorageSync('UserId')
console.log('当前用户ID:', userId)
const params = {
userId: Number(userId),
page: 1,
limit: 1
}
console.log('查询分销商参数:', params)
try {
const res = await pageShopDealerUser(params)
console.log('分销商查询结果:', res)
if (res?.count && res?.count > 0) {
setIsDealer(true)
} else {
setIsDealer(false)
}
} catch (error) {
console.error('查询分销商信息失败:', error)
setIsDealer(false)
}
}
const {dealerUser} = useDealerUser()
useEffect(() => {
reload().then()
}, [])
/**
@ -70,7 +42,7 @@ const UserCell = () => {
/**
*
*/
if (isDealer) {
if (dealerUser) {
return (
<>
<View className={'px-4'}>
@ -82,8 +54,9 @@ const UserCell = () => {
title={
<View style={{display: 'inline-flex', alignItems: 'center'}} onClick={() => navTo('/dealer/index', true)}>
<Reward className={'text-orange-100 '} size={16}/>
<Text style={{fontSize: '16px'}} className={'pl-3 text-orange-100 font-medium'}></Text>
<Text className={'text-white opacity-80 pl-3'}></Text>
<Text style={{fontSize: '16px'}}
className={'pl-3 text-orange-100 font-medium'}></Text>
{/*<Text className={'text-white opacity-80 pl-3'}>门店核销</Text>*/}
</View>
}
extra={<ArrowRight color="#cccccc" size={18}/>}
@ -94,7 +67,7 @@ const UserCell = () => {
}
/**
*
*
*/
return (
<>

2
src/user/address/add.tsx

@ -365,7 +365,7 @@ const AddUserAddress = () => {
/>
{/* 底部浮动按钮 */}
<FixedButton text={isEditMode ? '更新地址' : '保存并使用'} onClick={submitSucceed} />
<FixedButton text={isEditMode ? '更新地址' : '保存并使用'} onClick={() => submitSucceed} />
</>
);
};

2
src/user/gift/add.tsx

@ -314,7 +314,7 @@ const AddShopArticle = () => {
</CellGroup>
{/* 提交按钮 */}
<FixedButton text={isEditMode ? '更新文章' : '发布文章'} onClick={submitSucceed} icon={<Edit />} />
<FixedButton text={isEditMode ? '更新文章' : '发布文章'} onClick={() => submitSucceed} icon={<Edit />} />
</Form>
</>
);

6
tsconfig.json

@ -1,7 +1,8 @@
{
"compilerOptions": {
"target": "es2017",
"module": "commonjs",
"target": "es2018",
"module": "esnext",
"lib": ["es2018", "dom", "dom.iterable"],
"removeComments": false,
"preserveConstEnums": true,
"moduleResolution": "node",
@ -9,6 +10,7 @@
"strict": true,
"noImplicitAny": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"outDir": "lib",
"noUnusedLocals": true,
"noUnusedParameters": true,

Loading…
Cancel
Save