diff --git a/REQUEST_USAGE.md b/REQUEST_USAGE.md new file mode 100644 index 0000000..57894a1 --- /dev/null +++ b/REQUEST_USAGE.md @@ -0,0 +1,83 @@ +# Request 工具使用说明 + +## 概述 + +`src/utils/request.ts` 已经适配了后台生成的 API 代码格式,支持两种使用方式: + +## 1. 标准方式(适配后台生成代码) + +后台生成的代码使用 `request.get` 格式,返回完整的 `ApiResult` 响应: + +```typescript +// 后台生成的代码格式 +export async function pageCmsNavigation(params: CmsNavigationParam) { + const res = await request.get>>( + '/cms/cms-navigation/page', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} +``` + +## 2. 便捷方式(自动提取数据) + +如果你想要自动提取 `data` 字段,可以使用 `getData` 系列方法: + +```typescript +import request from '@/utils/request'; + +// 自动提取 data 字段 +const data = await request.getData('/cms/cms-navigation'); + +// 等价于 +const res = await request.get>('/cms/cms-navigation'); +const data = res.data; +``` + +## 可用方法 + +### 标准方法(返回完整 ApiResult) +- `request.get(url, params?, config?)` +- `request.post(url, data?, config?)` +- `request.put(url, data?, config?)` +- `request.del(url, data?, config?)` +- `request.patch(url, data?, config?)` + +### 便捷方法(自动提取 data) +- `request.getData(url, params?, config?)` +- `request.postData(url, data?, config?)` +- `request.putData(url, data?, config?)` +- `request.delData(url, data?, config?)` + +## 配置选项 + +```typescript +interface RequestConfig { + url: string; + method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; + data?: any; + header?: Record; + timeout?: number; + retry?: number; + showLoading?: boolean; + showError?: boolean; + returnRaw?: boolean; // 内部使用,控制返回格式 +} +``` + +## 错误处理 + +所有请求都会自动处理: +- 网络错误 +- 超时错误 +- 认证错误(自动清除登录信息并跳转) +- 业务错误(显示错误提示) + +## 注意事项 + +1. **后台生成的代码无需修改**,直接使用 `request.get` 格式 +2. **新写的代码**可以选择使用 `getData` 系列方法来简化代码 +3. 所有方法都支持自动重试、错误处理、认证等功能 diff --git a/src/api/bszx/bszxBm/index.ts b/src/api/bszx/bszxBm/index.ts index 08fbf66..4f5ff88 100644 --- a/src/api/bszx/bszxBm/index.ts +++ b/src/api/bszx/bszxBm/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { BszxBm, BszxBmParam } from './model'; diff --git a/src/api/bszx/bszxClass/index.ts b/src/api/bszx/bszxClass/index.ts index a637208..92ea520 100644 --- a/src/api/bszx/bszxClass/index.ts +++ b/src/api/bszx/bszxClass/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { BszxClass, BszxClassParam } from './model'; diff --git a/src/api/bszx/bszxEra/index.ts b/src/api/bszx/bszxEra/index.ts index 7c923c0..a1f9375 100644 --- a/src/api/bszx/bszxEra/index.ts +++ b/src/api/bszx/bszxEra/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { BszxEra, BszxEraParam } from './model'; diff --git a/src/api/bszx/bszxGrade/index.ts b/src/api/bszx/bszxGrade/index.ts index edfd8d4..d0cb799 100644 --- a/src/api/bszx/bszxGrade/index.ts +++ b/src/api/bszx/bszxGrade/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { BszxGrade, BszxGradeParam } from './model'; diff --git a/src/api/bszx/bszxPay/index.ts b/src/api/bszx/bszxPay/index.ts index cecfa1b..0f37bd5 100644 --- a/src/api/bszx/bszxPay/index.ts +++ b/src/api/bszx/bszxPay/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; import type {BszxPay, BszxPayParam} from "@/api/bszx/bszxPay/model"; import type {BszxBm,BszxBmParam} from "@/api/bszx/bszxBm/model"; diff --git a/src/api/cms/cmsAd/index.ts b/src/api/cms/cmsAd/index.ts index be3878b..336eef2 100644 --- a/src/api/cms/cmsAd/index.ts +++ b/src/api/cms/cmsAd/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsAd, CmsAdParam } from './model'; diff --git a/src/api/cms/cmsAdRecord/index.ts b/src/api/cms/cmsAdRecord/index.ts index abceff6..4d70333 100644 --- a/src/api/cms/cmsAdRecord/index.ts +++ b/src/api/cms/cmsAdRecord/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsAdRecord, CmsAdRecordParam } from './model'; diff --git a/src/api/cms/cmsArticle/index.ts b/src/api/cms/cmsArticle/index.ts index b98a6f2..7bc2c44 100644 --- a/src/api/cms/cmsArticle/index.ts +++ b/src/api/cms/cmsArticle/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type {ApiResult, PageResult} from '@/api/index'; import type {CmsArticle, CmsArticleParam} from './model'; diff --git a/src/api/cms/cmsArticleCategory/index.ts b/src/api/cms/cmsArticleCategory/index.ts index 77d722b..3a3a2b8 100644 --- a/src/api/cms/cmsArticleCategory/index.ts +++ b/src/api/cms/cmsArticleCategory/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsArticleCategory, CmsArticleCategoryParam } from './model'; diff --git a/src/api/cms/cmsArticleComment/index.ts b/src/api/cms/cmsArticleComment/index.ts index fdb4fa5..c7ef29b 100644 --- a/src/api/cms/cmsArticleComment/index.ts +++ b/src/api/cms/cmsArticleComment/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsArticleComment, CmsArticleCommentParam } from './model'; diff --git a/src/api/cms/cmsArticleContent/index.ts b/src/api/cms/cmsArticleContent/index.ts index fe04fad..2966bb3 100644 --- a/src/api/cms/cmsArticleContent/index.ts +++ b/src/api/cms/cmsArticleContent/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsArticleContent, CmsArticleContentParam } from './model'; diff --git a/src/api/cms/cmsArticleCount/index.ts b/src/api/cms/cmsArticleCount/index.ts index 67abc18..fd09945 100644 --- a/src/api/cms/cmsArticleCount/index.ts +++ b/src/api/cms/cmsArticleCount/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsArticleCount, CmsArticleCountParam } from './model'; diff --git a/src/api/cms/cmsArticleLike/index.ts b/src/api/cms/cmsArticleLike/index.ts index 96035f0..c7aa59a 100644 --- a/src/api/cms/cmsArticleLike/index.ts +++ b/src/api/cms/cmsArticleLike/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsArticleLike, CmsArticleLikeParam } from './model'; diff --git a/src/api/cms/cmsComponents/index.ts b/src/api/cms/cmsComponents/index.ts index 7fdfcad..54f42b5 100644 --- a/src/api/cms/cmsComponents/index.ts +++ b/src/api/cms/cmsComponents/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsComponents, CmsComponentsParam } from './model'; diff --git a/src/api/cms/cmsDesign/index.ts b/src/api/cms/cmsDesign/index.ts index 2343e69..aa71758 100644 --- a/src/api/cms/cmsDesign/index.ts +++ b/src/api/cms/cmsDesign/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsDesign, CmsDesignParam } from './model'; diff --git a/src/api/cms/cmsDesignRecord/index.ts b/src/api/cms/cmsDesignRecord/index.ts index adcdb7d..8a41a2c 100644 --- a/src/api/cms/cmsDesignRecord/index.ts +++ b/src/api/cms/cmsDesignRecord/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsDesignRecord, CmsDesignRecordParam } from './model'; diff --git a/src/api/cms/cmsDocs/index.ts b/src/api/cms/cmsDocs/index.ts index 7c73ad7..b7bb7ef 100644 --- a/src/api/cms/cmsDocs/index.ts +++ b/src/api/cms/cmsDocs/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsDocs, CmsDocsParam } from './model'; diff --git a/src/api/cms/cmsDocsBook/index.ts b/src/api/cms/cmsDocsBook/index.ts index 32f9d99..57c6b5e 100644 --- a/src/api/cms/cmsDocsBook/index.ts +++ b/src/api/cms/cmsDocsBook/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsDocsBook, CmsDocsBookParam } from './model'; diff --git a/src/api/cms/cmsDocsContent/index.ts b/src/api/cms/cmsDocsContent/index.ts index dc1d2ad..d4332b9 100644 --- a/src/api/cms/cmsDocsContent/index.ts +++ b/src/api/cms/cmsDocsContent/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsDocsContent, CmsDocsContentParam } from './model'; diff --git a/src/api/cms/cmsDomain/index.ts b/src/api/cms/cmsDomain/index.ts index b5f19b9..acb8acb 100644 --- a/src/api/cms/cmsDomain/index.ts +++ b/src/api/cms/cmsDomain/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsDomain, CmsDomainParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/cms/cmsForm/index.ts b/src/api/cms/cmsForm/index.ts index 1a18887..6098911 100644 --- a/src/api/cms/cmsForm/index.ts +++ b/src/api/cms/cmsForm/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsForm, CmsFormParam } from './model'; diff --git a/src/api/cms/cmsFormRecord/index.ts b/src/api/cms/cmsFormRecord/index.ts index ddef455..01e432b 100644 --- a/src/api/cms/cmsFormRecord/index.ts +++ b/src/api/cms/cmsFormRecord/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsFormRecord, CmsFormRecordParam } from './model'; diff --git a/src/api/cms/cmsLang/index.ts b/src/api/cms/cmsLang/index.ts index a5fe580..f70aca5 100644 --- a/src/api/cms/cmsLang/index.ts +++ b/src/api/cms/cmsLang/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsLang, CmsLangParam } from './model'; diff --git a/src/api/cms/cmsLangLog/index.ts b/src/api/cms/cmsLangLog/index.ts index bb895cc..2c25a83 100644 --- a/src/api/cms/cmsLangLog/index.ts +++ b/src/api/cms/cmsLangLog/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsLangLog, CmsLangLogParam } from './model'; diff --git a/src/api/cms/cmsLink/index.ts b/src/api/cms/cmsLink/index.ts index 8812545..192ddaa 100644 --- a/src/api/cms/cmsLink/index.ts +++ b/src/api/cms/cmsLink/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsLink, CmsLinkParam } from './model'; diff --git a/src/api/cms/cmsModel/index.ts b/src/api/cms/cmsModel/index.ts index 2104fef..8a4b418 100644 --- a/src/api/cms/cmsModel/index.ts +++ b/src/api/cms/cmsModel/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsModel, CmsModelParam } from './model'; diff --git a/src/api/cms/cmsMp/index.ts b/src/api/cms/cmsMp/index.ts index cce9f5c..c17df7e 100644 --- a/src/api/cms/cmsMp/index.ts +++ b/src/api/cms/cmsMp/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsMp, CmsMpParam } from './model'; diff --git a/src/api/cms/cmsMpAd/index.ts b/src/api/cms/cmsMpAd/index.ts index 500f3b0..4a508b5 100644 --- a/src/api/cms/cmsMpAd/index.ts +++ b/src/api/cms/cmsMpAd/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsMpAd, CmsMpAdParam } from './model'; diff --git a/src/api/cms/cmsMpField/index.ts b/src/api/cms/cmsMpField/index.ts index 80f77b3..ee35909 100644 --- a/src/api/cms/cmsMpField/index.ts +++ b/src/api/cms/cmsMpField/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsMpField, CmsMpFieldParam } from './model'; diff --git a/src/api/cms/cmsMpMenu/index.ts b/src/api/cms/cmsMpMenu/index.ts index cad908f..5b61d0c 100644 --- a/src/api/cms/cmsMpMenu/index.ts +++ b/src/api/cms/cmsMpMenu/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsMpMenu, CmsMpMenuParam } from './model'; diff --git a/src/api/cms/cmsMpPages/index.ts b/src/api/cms/cmsMpPages/index.ts index 32b28dc..0b85908 100644 --- a/src/api/cms/cmsMpPages/index.ts +++ b/src/api/cms/cmsMpPages/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsMpPages, CmsMpPagesParam } from './model'; diff --git a/src/api/cms/cmsNavigation/index.ts b/src/api/cms/cmsNavigation/index.ts index 599e4a3..c293d18 100644 --- a/src/api/cms/cmsNavigation/index.ts +++ b/src/api/cms/cmsNavigation/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 { CmsNavigation, CmsNavigationParam } from './model'; /** @@ -8,9 +8,7 @@ import type { CmsNavigation, CmsNavigationParam } from './model'; export async function pageCmsNavigation(params: CmsNavigationParam) { const res = await request.get>>( '/cms/cms-navigation/page', - { - params - } + params ); if (res.code === 0) { return res.data; @@ -38,9 +36,7 @@ export async function listCmsNavigation(params?: CmsNavigationParam) { export async function treeNavigation(params?: CmsNavigationParam) { const res = await request.get>( '/cms/cms-navigation/tree', - { - params - } + params ); if (res.code === 0 && res.data) { return res.data; @@ -94,9 +90,7 @@ export async function removeCmsNavigation(id?: number) { export async function removeBatchCmsNavigation(data: (number | undefined)[]) { const res = await request.del>( '/cms/cms-navigation/batch', - { - data - } + data ); if (res.code === 0) { return res.message; @@ -120,9 +114,7 @@ export async function getCmsNavigation(id: number) { export async function getNavigationByPath(params: CmsNavigationParam) { const res = await request.get>( '/cms/cms-navigation/getNavigationByPath', - { - params - } + params ); if (res.code === 0 && res.data) { return res.data; diff --git a/src/api/cms/cmsOrder/index.ts b/src/api/cms/cmsOrder/index.ts index c0fab36..28a28dd 100644 --- a/src/api/cms/cmsOrder/index.ts +++ b/src/api/cms/cmsOrder/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsOrder, CmsOrderParam } from './model'; diff --git a/src/api/cms/cmsSpec/index.ts b/src/api/cms/cmsSpec/index.ts index 9a61e0c..5e3918c 100644 --- a/src/api/cms/cmsSpec/index.ts +++ b/src/api/cms/cmsSpec/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsSpec, CmsSpecParam } from './model'; diff --git a/src/api/cms/cmsSpecValue/index.ts b/src/api/cms/cmsSpecValue/index.ts index a5ab512..cb9dbe6 100644 --- a/src/api/cms/cmsSpecValue/index.ts +++ b/src/api/cms/cmsSpecValue/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsSpecValue, CmsSpecValueParam } from './model'; diff --git a/src/api/cms/cmsWebsite/index.ts b/src/api/cms/cmsWebsite/index.ts index 54d4c67..279e957 100644 --- a/src/api/cms/cmsWebsite/index.ts +++ b/src/api/cms/cmsWebsite/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CmsWebsite, CmsWebsiteParam } from './model'; diff --git a/src/api/cms/cmsWebsiteField/index.ts b/src/api/cms/cmsWebsiteField/index.ts index 7168387..a302056 100644 --- a/src/api/cms/cmsWebsiteField/index.ts +++ b/src/api/cms/cmsWebsiteField/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type {CmsWebsiteField, CmsWebsiteFieldParam, Config} from './model'; diff --git a/src/api/cms/link/index.ts b/src/api/cms/link/index.ts index 89097d7..abb0b41 100644 --- a/src/api/cms/link/index.ts +++ b/src/api/cms/link/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { Link, LinkParam } from './model'; diff --git a/src/api/cms/mpOfficialMenu/index.ts b/src/api/cms/mpOfficialMenu/index.ts index 5adeff6..116d5ec 100644 --- a/src/api/cms/mpOfficialMenu/index.ts +++ b/src/api/cms/mpOfficialMenu/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { MpOfficialMenu, MpOfficialMenuParam } from './model'; diff --git a/src/api/layout/index.ts b/src/api/layout/index.ts index 0fa81f4..56538be 100644 --- a/src/api/layout/index.ts +++ b/src/api/layout/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult } from '@/api/index'; import type { User } from '@/api/system/user/model'; import type { UpdatePasswordParam } from './model'; diff --git a/src/api/passport/login/index.ts b/src/api/passport/login/index.ts index bba3c94..761a023 100644 --- a/src/api/passport/login/index.ts +++ b/src/api/passport/login/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult } from '@/api'; import type { LoginParam, diff --git a/src/api/shop/shopArticle/index.ts b/src/api/shop/shopArticle/index.ts index b065b04..4c04e22 100644 --- a/src/api/shop/shopArticle/index.ts +++ b/src/api/shop/shopArticle/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopArticle, ShopArticleParam } from './model'; diff --git a/src/api/shop/shopCommissionRole/index.ts b/src/api/shop/shopCommissionRole/index.ts index 0850438..e019af0 100644 --- a/src/api/shop/shopCommissionRole/index.ts +++ b/src/api/shop/shopCommissionRole/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopCommissionRole, ShopCommissionRoleParam } from './model'; diff --git a/src/api/shop/shopCoupon/index.ts b/src/api/shop/shopCoupon/index.ts index 2fbfcab..afe35be 100644 --- a/src/api/shop/shopCoupon/index.ts +++ b/src/api/shop/shopCoupon/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopCoupon, ShopCouponParam } from './model'; diff --git a/src/api/shop/shopDealerCapital/index.ts b/src/api/shop/shopDealerCapital/index.ts index 1015aaf..4a4d54c 100644 --- a/src/api/shop/shopDealerCapital/index.ts +++ b/src/api/shop/shopDealerCapital/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopDealerCapital, ShopDealerCapitalParam } from './model'; diff --git a/src/api/shop/shopDealerOrder/index.ts b/src/api/shop/shopDealerOrder/index.ts index 4f42f02..d0673bc 100644 --- a/src/api/shop/shopDealerOrder/index.ts +++ b/src/api/shop/shopDealerOrder/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopDealerOrder, ShopDealerOrderParam } from './model'; diff --git a/src/api/shop/shopDealerReferee/index.ts b/src/api/shop/shopDealerReferee/index.ts index d2a93e9..ce69218 100644 --- a/src/api/shop/shopDealerReferee/index.ts +++ b/src/api/shop/shopDealerReferee/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopDealerReferee, ShopDealerRefereeParam } from './model'; diff --git a/src/api/shop/shopDealerSetting/index.ts b/src/api/shop/shopDealerSetting/index.ts index cd98c34..2a7b20a 100644 --- a/src/api/shop/shopDealerSetting/index.ts +++ b/src/api/shop/shopDealerSetting/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopDealerSetting, ShopDealerSettingParam } from './model'; diff --git a/src/api/shop/shopDealerUser/index.ts b/src/api/shop/shopDealerUser/index.ts index 4c18d0c..606c9ce 100644 --- a/src/api/shop/shopDealerUser/index.ts +++ b/src/api/shop/shopDealerUser/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopDealerUser, ShopDealerUserParam } from './model'; diff --git a/src/api/shop/shopDealerWithdraw/index.ts b/src/api/shop/shopDealerWithdraw/index.ts index 1df7545..0429d78 100644 --- a/src/api/shop/shopDealerWithdraw/index.ts +++ b/src/api/shop/shopDealerWithdraw/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopDealerWithdraw, ShopDealerWithdrawParam } from './model'; diff --git a/src/api/shop/shopExpress/index.ts b/src/api/shop/shopExpress/index.ts index b607277..385aeed 100644 --- a/src/api/shop/shopExpress/index.ts +++ b/src/api/shop/shopExpress/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopExpress, ShopExpressParam } from './model'; diff --git a/src/api/shop/shopExpressTemplate/index.ts b/src/api/shop/shopExpressTemplate/index.ts index d52e870..4e00b8f 100644 --- a/src/api/shop/shopExpressTemplate/index.ts +++ b/src/api/shop/shopExpressTemplate/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopExpressTemplate, ShopExpressTemplateParam } from './model'; diff --git a/src/api/shop/shopExpressTemplateDetail/index.ts b/src/api/shop/shopExpressTemplateDetail/index.ts index a34cfab..7afd870 100644 --- a/src/api/shop/shopExpressTemplateDetail/index.ts +++ b/src/api/shop/shopExpressTemplateDetail/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopExpressTemplateDetail, ShopExpressTemplateDetailParam } from './model'; diff --git a/src/api/shop/shopGift/index.ts b/src/api/shop/shopGift/index.ts index c106eeb..8792162 100644 --- a/src/api/shop/shopGift/index.ts +++ b/src/api/shop/shopGift/index.ts @@ -1,6 +1,6 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; -import type { ShopGift, ShopGiftParam, GiftRedeemParam, GiftUseParam } from './model'; +import {ShopGift, ShopGiftParam, GiftRedeemParam, GiftUseParam, QRCodeParam} from './model'; /** * 分页查询礼品卡 @@ -196,12 +196,12 @@ export async function exportShopGift(ids?: number[]) { } /** - * 生成礼品卡核销码 + * 生成礼品卡核销码(可用) */ -export async function generateVerificationCode(giftId: number) { - const res = await request.post>( - '/shop/shop-gift/generate-verification-code', - { giftId } +export async function generateVerificationCode(data: QRCodeParam) { + const res = await request.post>( + '/qr-code/create-encrypted-qr-code', + data ); if (res.code === 0) { return res.data; @@ -243,3 +243,18 @@ export async function completeVerification(params: { } return Promise.reject(new Error(res.message)); } + +/** + * 解密二维码数据 + */ +export async function decryptQrData(params: { token: string; encryptedData: string }) { + const res = await request.post>( + '/qr-code/decrypt-qr-data', + params + ); + if (res.code === 0) { + return res.data; + } + return Promise.reject(new Error(res.message)); +} + diff --git a/src/api/shop/shopGift/model/index.ts b/src/api/shop/shopGift/model/index.ts index 3b2d4e1..93713a6 100644 --- a/src/api/shop/shopGift/model/index.ts +++ b/src/api/shop/shopGift/model/index.ts @@ -30,6 +30,8 @@ export interface ShopGift { validDays?: number; // 操作人 operatorUserId?: number; + // 操作人名称 + operatorUserName?: string; // 是否展示 isShow?: string; // 状态 (0未使用 1已使用 2已过期 3已失效) @@ -84,7 +86,7 @@ export interface ShopGiftParam extends PageParam { // 是否过期筛选 isExpired?: boolean; // 排序字段 - sortBy?: 'createTime' | 'expireTime' | 'faceValue' | 'useTime'; + sortBy?: 'createTime' | 'expireTime' | 'faceValue' | 'takeTime'; // 排序方向 sortOrder?: 'asc' | 'desc'; } @@ -104,9 +106,22 @@ export interface GiftRedeemParam { */ export interface GiftUseParam { // 礼品卡ID - giftId: number; + giftId?: number; // 使用地址/门店 useLocation?: string; // 使用备注 useNote?: string; } + +export interface QRCodeParam { + // 二维码数据 + data?: string; + // 二维码尺寸 + width?: number; + // 二维码高度 + height?: number; + // 二维码过期时间 + expireMinutes?: number; + // 业务类型 + businessType?: string; +} diff --git a/src/api/shop/shopGoods/index.ts b/src/api/shop/shopGoods/index.ts index 0833914..07ec793 100644 --- a/src/api/shop/shopGoods/index.ts +++ b/src/api/shop/shopGoods/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopGoods, ShopGoodsParam } from './model'; diff --git a/src/api/shop/shopGoodsCategory/index.ts b/src/api/shop/shopGoodsCategory/index.ts index 9c58631..2202ed6 100644 --- a/src/api/shop/shopGoodsCategory/index.ts +++ b/src/api/shop/shopGoodsCategory/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopGoodsCategory, ShopGoodsCategoryParam } from './model'; diff --git a/src/api/shop/shopGoodsRoleCommission/index.ts b/src/api/shop/shopGoodsRoleCommission/index.ts index 69a1a84..160cb3a 100644 --- a/src/api/shop/shopGoodsRoleCommission/index.ts +++ b/src/api/shop/shopGoodsRoleCommission/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import { ShopGoodsRoleCommission, ShopGoodsRoleCommissionParam } from '@/api/shop/shopGoodsRoleCommission/model'; diff --git a/src/api/shop/shopGoodsSku/index.ts b/src/api/shop/shopGoodsSku/index.ts index e2acee1..211f3c7 100644 --- a/src/api/shop/shopGoodsSku/index.ts +++ b/src/api/shop/shopGoodsSku/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import { ShopGoodsSpec } from '@/api/shop/shopGoodsSpec/model'; import { ShopGoodsSku, ShopGoodsSkuParam } from '@/api/shop/shopGoodsSku/model'; diff --git a/src/api/shop/shopGoodsSpec/index.ts b/src/api/shop/shopGoodsSpec/index.ts index f8f990a..c325a1f 100644 --- a/src/api/shop/shopGoodsSpec/index.ts +++ b/src/api/shop/shopGoodsSpec/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopGoodsSpec, ShopGoodsSpecParam } from './model'; diff --git a/src/api/shop/shopMerchant/index.ts b/src/api/shop/shopMerchant/index.ts index 9edb4f7..dabed65 100644 --- a/src/api/shop/shopMerchant/index.ts +++ b/src/api/shop/shopMerchant/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopMerchant, ShopMerchantParam } from './model'; diff --git a/src/api/shop/shopMerchantAccount/index.ts b/src/api/shop/shopMerchantAccount/index.ts index fec305c..8c5d6cb 100644 --- a/src/api/shop/shopMerchantAccount/index.ts +++ b/src/api/shop/shopMerchantAccount/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopMerchantAccount, ShopMerchantAccountParam } from './model'; diff --git a/src/api/shop/shopMerchantApply/index.ts b/src/api/shop/shopMerchantApply/index.ts index 464d092..663a5f6 100644 --- a/src/api/shop/shopMerchantApply/index.ts +++ b/src/api/shop/shopMerchantApply/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopMerchantApply, ShopMerchantApplyParam } from './model'; diff --git a/src/api/shop/shopMerchantCount/index.ts b/src/api/shop/shopMerchantCount/index.ts index 869648a..1f5ce2c 100644 --- a/src/api/shop/shopMerchantCount/index.ts +++ b/src/api/shop/shopMerchantCount/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopMerchantCount, ShopMerchantCountParam } from './model'; diff --git a/src/api/shop/shopMerchantType/index.ts b/src/api/shop/shopMerchantType/index.ts index 850f488..f8bec65 100644 --- a/src/api/shop/shopMerchantType/index.ts +++ b/src/api/shop/shopMerchantType/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopMerchantType, ShopMerchantTypeParam } from './model'; diff --git a/src/api/shop/shopOrder/index.ts b/src/api/shop/shopOrder/index.ts index 0867259..7e87f48 100644 --- a/src/api/shop/shopOrder/index.ts +++ b/src/api/shop/shopOrder/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopOrder, ShopOrderParam, OrderCreateRequest } from './model'; diff --git a/src/api/shop/shopOrderGoods/index.ts b/src/api/shop/shopOrderGoods/index.ts index 9c900ce..4c74d18 100644 --- a/src/api/shop/shopOrderGoods/index.ts +++ b/src/api/shop/shopOrderGoods/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopOrderGoods, ShopOrderGoodsParam } from './model'; diff --git a/src/api/shop/shopSpec/index.ts b/src/api/shop/shopSpec/index.ts index a6df68f..9c1f115 100644 --- a/src/api/shop/shopSpec/index.ts +++ b/src/api/shop/shopSpec/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import { ShopSpec, ShopSpecParam } from '@/api/shop/shopSpec/model'; diff --git a/src/api/shop/shopSpecValue/index.ts b/src/api/shop/shopSpecValue/index.ts index c97611e..1152a1f 100644 --- a/src/api/shop/shopSpecValue/index.ts +++ b/src/api/shop/shopSpecValue/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopSpecValue, ShopSpecValueParam } from './model'; diff --git a/src/api/shop/shopUserAddress/index.ts b/src/api/shop/shopUserAddress/index.ts index 6946cfa..c22a173 100644 --- a/src/api/shop/shopUserAddress/index.ts +++ b/src/api/shop/shopUserAddress/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopUserAddress, ShopUserAddressParam } from './model'; diff --git a/src/api/shop/shopUserCoupon/index.ts b/src/api/shop/shopUserCoupon/index.ts index 930d0cf..a68b4c7 100644 --- a/src/api/shop/shopUserCoupon/index.ts +++ b/src/api/shop/shopUserCoupon/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopUserCoupon, ShopUserCouponParam } from './model'; diff --git a/src/api/shop/shopUserCoupon/model/index.ts b/src/api/shop/shopUserCoupon/model/index.ts index 118719e..f0f77e3 100644 --- a/src/api/shop/shopUserCoupon/model/index.ts +++ b/src/api/shop/shopUserCoupon/model/index.ts @@ -43,7 +43,7 @@ export interface ShopUserCoupon { // 剩余小时数(后端计算) hoursRemaining?: number; // 使用时间 - useTime?: string; + takeTime?: string; // 使用订单ID orderId?: string; // 使用订单号 diff --git a/src/api/shop/shopUserReferee/index.ts b/src/api/shop/shopUserReferee/index.ts index 2a31cc2..f034f82 100644 --- a/src/api/shop/shopUserReferee/index.ts +++ b/src/api/shop/shopUserReferee/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ShopUserReferee, ShopUserRefereeParam } from './model'; diff --git a/src/api/system/access-key/index.ts b/src/api/system/access-key/index.ts index f419375..b77baa2 100644 --- a/src/api/system/access-key/index.ts +++ b/src/api/system/access-key/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult } from '@/api/index'; import type { AccessKey, AccessKeyParam } from './model'; import { PageResult } from '@/api/index'; diff --git a/src/api/system/cache/index.ts b/src/api/system/cache/index.ts index bbdc4eb..4fc45bf 100644 --- a/src/api/system/cache/index.ts +++ b/src/api/system/cache/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult } from '@/api/index'; import type { Cache, CacheParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/chat/index.ts b/src/api/system/chat/index.ts index 6037368..e1681c8 100644 --- a/src/api/system/chat/index.ts +++ b/src/api/system/chat/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ChatConversation, diff --git a/src/api/system/chatConversation/index.ts b/src/api/system/chatConversation/index.ts index b40e9cb..f39fcc0 100644 --- a/src/api/system/chatConversation/index.ts +++ b/src/api/system/chatConversation/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ChatConversation, ChatConversationParam } from './model'; diff --git a/src/api/system/chatMessage/index.ts b/src/api/system/chatMessage/index.ts index dec47ca..70a8bee 100644 --- a/src/api/system/chatMessage/index.ts +++ b/src/api/system/chatMessage/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { ChatMessage, ChatMessageParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/company/index.ts b/src/api/system/company/index.ts index 7844c9b..35c0199 100644 --- a/src/api/system/company/index.ts +++ b/src/api/system/company/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult } from '@/api/index'; import type { Company, CompanyParam } from './model'; import { PageResult } from '@/api/index'; diff --git a/src/api/system/companyComment/index.ts b/src/api/system/companyComment/index.ts index 5ae0933..5b2cf41 100644 --- a/src/api/system/companyComment/index.ts +++ b/src/api/system/companyComment/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type {ApiResult, PageResult} from '@/api'; import type {CompanyComment, CompanyCommentParam} from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/companyContent/index.ts b/src/api/system/companyContent/index.ts index 857c05d..adaf3cb 100644 --- a/src/api/system/companyContent/index.ts +++ b/src/api/system/companyContent/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api'; import type { CompanyContent, CompanyContentParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/companyGit/index.ts b/src/api/system/companyGit/index.ts index bf77fa2..81af79d 100644 --- a/src/api/system/companyGit/index.ts +++ b/src/api/system/companyGit/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CompanyGit, CompanyGitParam } from './model'; import { SERVER_API_URL } from '@/config/index'; diff --git a/src/api/system/companyParameter/index.ts b/src/api/system/companyParameter/index.ts index 8c5a09f..198d75e 100644 --- a/src/api/system/companyParameter/index.ts +++ b/src/api/system/companyParameter/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CompanyParameter, CompanyParameterParam } from './model'; import {SERVER_API_URL} from '@/config/index'; diff --git a/src/api/system/companyUrl/index.ts b/src/api/system/companyUrl/index.ts index 7585dbe..054a3f9 100644 --- a/src/api/system/companyUrl/index.ts +++ b/src/api/system/companyUrl/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { CompanyUrl, CompanyUrlParam } from './model'; import {SERVER_API_URL} from '@/config/index'; diff --git a/src/api/system/dict-data/index.ts b/src/api/system/dict-data/index.ts index 2958f93..737946a 100644 --- a/src/api/system/dict-data/index.ts +++ b/src/api/system/dict-data/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { DictData, DictDataParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/dict/index.ts b/src/api/system/dict/index.ts index 2fc3cec..0076c39 100644 --- a/src/api/system/dict/index.ts +++ b/src/api/system/dict/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult } from '@/api/index'; import type { Dict, DictParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/dictionary-data/index.ts b/src/api/system/dictionary-data/index.ts index 45139ba..2b2c5ff 100644 --- a/src/api/system/dictionary-data/index.ts +++ b/src/api/system/dictionary-data/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { DictionaryData, DictionaryDataParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/dictionary/index.ts b/src/api/system/dictionary/index.ts index 452a278..6fb9aa4 100644 --- a/src/api/system/dictionary/index.ts +++ b/src/api/system/dictionary/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult } from '@/api/index'; import type { Dictionary, DictionaryParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/environment/index.ts b/src/api/system/environment/index.ts index 913698a..639697b 100644 --- a/src/api/system/environment/index.ts +++ b/src/api/system/environment/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { Environment, EnvironmentParam } from './model/index'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/file/index.ts b/src/api/system/file/index.ts index 387115c..18a06dd 100644 --- a/src/api/system/file/index.ts +++ b/src/api/system/file/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import Taro from '@tarojs/taro' import dayjs from 'dayjs'; import crypto from 'crypto-js'; diff --git a/src/api/system/login-record/index.ts b/src/api/system/login-record/index.ts index 162e76f..c59f463 100644 --- a/src/api/system/login-record/index.ts +++ b/src/api/system/login-record/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { LoginRecord, LoginRecordParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/menu/index.ts b/src/api/system/menu/index.ts index e41b623..2e1e8bc 100644 --- a/src/api/system/menu/index.ts +++ b/src/api/system/menu/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult } from '@/api/index'; import type { Menu, MenuParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/modules/index.ts b/src/api/system/modules/index.ts index c1eda9c..9d8291b 100644 --- a/src/api/system/modules/index.ts +++ b/src/api/system/modules/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { Modules, ModulesParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/operation-record/index.ts b/src/api/system/operation-record/index.ts index a62872a..8a19779 100644 --- a/src/api/system/operation-record/index.ts +++ b/src/api/system/operation-record/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { OperationRecord, OperationRecordParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/order/index.ts b/src/api/system/order/index.ts index d527655..31f1453 100644 --- a/src/api/system/order/index.ts +++ b/src/api/system/order/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { Order, OrderParam } from './model'; diff --git a/src/api/system/orderGoods/index.ts b/src/api/system/orderGoods/index.ts index aba5cea..578b825 100644 --- a/src/api/system/orderGoods/index.ts +++ b/src/api/system/orderGoods/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { OrderGoods, OrderGoodsParam } from './model'; diff --git a/src/api/system/organization/index.ts b/src/api/system/organization/index.ts index 1dc38d5..fbfede2 100644 --- a/src/api/system/organization/index.ts +++ b/src/api/system/organization/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { Organization, OrganizationParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/parameter/index.ts b/src/api/system/parameter/index.ts index ebed894..0dfba32 100644 --- a/src/api/system/parameter/index.ts +++ b/src/api/system/parameter/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { Parameter, ParameterParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/payment/index.ts b/src/api/system/payment/index.ts index ef71de3..7ec67a7 100644 --- a/src/api/system/payment/index.ts +++ b/src/api/system/payment/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type {ApiResult, PageResult} from '@/api/index'; import type {Payment, PaymentParam} from './model'; import type {ShopOrder} from '@/api/shop/shopOrder/model'; diff --git a/src/api/system/plug/index.ts b/src/api/system/plug/index.ts index 355034e..eb706eb 100644 --- a/src/api/system/plug/index.ts +++ b/src/api/system/plug/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { Plug, PlugParam } from './model/index'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/role/index.ts b/src/api/system/role/index.ts index 9285c06..7621551 100644 --- a/src/api/system/role/index.ts +++ b/src/api/system/role/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { Role, RoleParam } from './model'; import type { Menu } from '../menu/model'; diff --git a/src/api/system/setting/index.ts b/src/api/system/setting/index.ts index e1e371d..aa027b5 100644 --- a/src/api/system/setting/index.ts +++ b/src/api/system/setting/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { Setting, SettingParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/tenant/index.ts b/src/api/system/tenant/index.ts index 4795f52..c4a6978 100644 --- a/src/api/system/tenant/index.ts +++ b/src/api/system/tenant/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { Tenant, TenantParam } from './model'; import { Menu } from '@/api/system/menu/model'; diff --git a/src/api/system/url/index.ts b/src/api/system/url/index.ts index 72e711d..fe29355 100644 --- a/src/api/system/url/index.ts +++ b/src/api/system/url/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { Url, UrlParam } from './model'; import {SERVER_API_URL} from '@/config/index'; diff --git a/src/api/system/user-collection/index.ts b/src/api/system/user-collection/index.ts index 4fdc118..4aee152 100644 --- a/src/api/system/user-collection/index.ts +++ b/src/api/system/user-collection/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { UserCollection, UserCollectionParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/user-file/index.ts b/src/api/system/user-file/index.ts index 3c5efd4..95bc39a 100644 --- a/src/api/system/user-file/index.ts +++ b/src/api/system/user-file/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { UserFile, UserFileParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/user-group/index.ts b/src/api/system/user-group/index.ts index 4fb5b11..53003ff 100644 --- a/src/api/system/user-group/index.ts +++ b/src/api/system/user-group/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { Group, GroupParam } from '@/api/system/user-group/model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/user/index.ts b/src/api/system/user/index.ts index f546f29..c0f144f 100644 --- a/src/api/system/user/index.ts +++ b/src/api/system/user/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type {ApiResult, PageResult} from '@/api/index'; import type {User, UserParam} from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/userRole/index.ts b/src/api/system/userRole/index.ts index 1a3f451..3dfa2e1 100644 --- a/src/api/system/userRole/index.ts +++ b/src/api/system/userRole/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult } from '@/api/index'; import type { UserRole, UserRoleParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/userVerify/index.ts b/src/api/system/userVerify/index.ts index d51136e..21416e7 100644 --- a/src/api/system/userVerify/index.ts +++ b/src/api/system/userVerify/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type {ApiResult, PageResult} from '@/api/index'; import type {UserVerify, UserVerifyParam} from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/system/version/index.ts b/src/api/system/version/index.ts index 9925af0..8b272bd 100644 --- a/src/api/system/version/index.ts +++ b/src/api/system/version/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { Version, VersionParam } from './model'; import type { Menu } from '../menu/model'; diff --git a/src/api/system/white-domain/index.ts b/src/api/system/white-domain/index.ts index 8eee8ea..b0ad627 100644 --- a/src/api/system/white-domain/index.ts +++ b/src/api/system/white-domain/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { WhiteDomain, WhiteDomainParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/user/balance-log/index.ts b/src/api/user/balance-log/index.ts index 319f143..2a9f23f 100644 --- a/src/api/user/balance-log/index.ts +++ b/src/api/user/balance-log/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { UserBalanceLog, UserBalanceLogParam } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/api/user/index.ts b/src/api/user/index.ts index cc59a57..7189f58 100644 --- a/src/api/user/index.ts +++ b/src/api/user/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy' +import request from '@/utils/request' import type { ApiResult } from '@/api/index' // 用户余额信息 diff --git a/src/api/user/points/index.ts b/src/api/user/points/index.ts index abf4961..0c64751 100644 --- a/src/api/user/points/index.ts +++ b/src/api/user/points/index.ts @@ -1,4 +1,4 @@ -import request from '@/utils/request-legacy'; +import request from '@/utils/request'; import type { ApiResult, PageResult } from '@/api/index'; import type { UserPointsLog, UserPointsLogParam, UserPointsStats } from './model'; import {SERVER_API_URL} from "@/utils/server"; diff --git a/src/components/GiftCard.tsx b/src/components/GiftCard.tsx index 5caf542..b6f89e6 100644 --- a/src/components/GiftCard.tsx +++ b/src/components/GiftCard.tsx @@ -31,7 +31,7 @@ export interface GiftCardProps { /** 过期时间 */ expireTime?: string /** 使用时间 */ - useTime?: string + takeTime?: string /** 使用地址 */ useLocation?: string /** 客服联系方式 */ @@ -97,7 +97,7 @@ const GiftCard: React.FC = ({ type = 10, status = 0, expireTime, - useTime, + takeTime, useLocation, goodsInfo, promotionInfo, @@ -308,10 +308,10 @@ const GiftCard: React.FC = ({ {/* 时间信息 */} - {status === 1 && useTime && ( + {status === 1 && takeTime && ( - 使用时间:{dayjs(useTime).format('YYYY-MM-DD HH:mm')} + 使用时间:{dayjs(takeTime).format('YYYY-MM-DD HH:mm')} )} diff --git a/src/components/GiftCardExample.tsx b/src/components/GiftCardExample.tsx index fa61641..e97cdbf 100644 --- a/src/components/GiftCardExample.tsx +++ b/src/components/GiftCardExample.tsx @@ -80,7 +80,7 @@ const GiftCardExample: React.FC = () => { onDetail={handleDetail} onClick={handleClick} /> - + {/* 简化版本示例 */} { faceValue="200" type={30} useStatus={1} - useTime="2024-08-15 19:30:00" + takeTime="2024-08-15 19:30:00" useLocation="海底捞王府井店" goodsInfo={{ brand: '海底捞', diff --git a/src/components/GiftCardQRCode.tsx b/src/components/GiftCardQRCode.tsx deleted file mode 100644 index 3745405..0000000 --- a/src/components/GiftCardQRCode.tsx +++ /dev/null @@ -1,333 +0,0 @@ -import React, { useState, useEffect } from 'react' -import { View, Text } from '@tarojs/components' -import { Button, Popup, Tag } from '@nutui/nutui-react-taro' -import { Close, Copy, Share, Refresh, QrCode } from '@nutui/icons-react-taro' -import Taro from '@tarojs/taro' -import dayjs from 'dayjs' -import { generateVerificationCode } from '@/api/shop/shopGift' - -export interface GiftCardQRCodeProps { - /** 是否显示弹窗 */ - visible: boolean - /** 关闭弹窗回调 */ - onClose: () => void - /** 礼品卡信息 */ - giftCard: { - id: number - name?: string - goodsName?: string - code?: string - faceValue?: string - type?: number - status?: number - expireTime?: string - contactInfo?: string - } -} - -const GiftCardQRCode: React.FC = ({ - visible, - onClose, - giftCard -}) => { - const [loading, setLoading] = useState(false) - const [verificationCode, setVerificationCode] = useState('') - const [qrData, setQrData] = useState('') - - // 生成核销码(6位数字) - const generateVerificationCode = () => { - return Math.random().toString().slice(2, 8) - } - - // 生成二维码数据 - const generateQRData = () => { - const code = generateVerificationCode() - setVerificationCode(code) - - const data = { - type: 'gift_card_verification', - giftId: giftCard.id, - giftCode: giftCard.code, - verificationCode: code, - faceValue: giftCard.faceValue, - timestamp: Date.now(), - expireTime: giftCard.expireTime - } - - const jsonData = JSON.stringify(data) - setQrData(jsonData) - return jsonData - } - - // 生成二维码(调用后端API) - const generateQRCode = async () => { - try { - setLoading(true) - - // 调用后端API生成核销码 - const result = await generateVerificationCode(giftCard.id) - if (result) { - setVerificationCode(result.verificationCode) - - // 生成二维码数据 - const data = { - type: 'gift_card_verification', - giftId: giftCard.id, - giftCode: giftCard.code, - verificationCode: result.verificationCode, - faceValue: giftCard.faceValue, - timestamp: Date.now(), - expireTime: giftCard.expireTime, - codeExpireTime: result.expireTime - } - - setQrData(JSON.stringify(data)) - console.log('二维码数据:', data) - } - } catch (error) { - console.error('生成二维码失败:', error) - Taro.showToast({ - title: '生成核销码失败', - icon: 'error' - }) - } finally { - setLoading(false) - } - } - - // 复制核销码 - const copyVerificationCode = () => { - Taro.setClipboardData({ - data: verificationCode, - success: () => { - Taro.showToast({ - title: '核销码已复制', - icon: 'success' - }) - } - }) - } - - // 复制礼品卡码 - const copyGiftCode = () => { - if (giftCard.code) { - Taro.setClipboardData({ - data: giftCard.code, - success: () => { - Taro.showToast({ - title: '兑换码已复制', - icon: 'success' - }) - } - }) - } - } - - // 分享二维码 - const shareQRCode = () => { - // 这里可以实现分享功能 - Taro.showToast({ - title: '分享功能开发中', - icon: 'none' - }) - } - - // 刷新二维码 - const refreshQRCode = () => { - generateQRCode() - } - - // 获取状态文本 - const getStatusText = (status?: number) => { - switch (status) { - case 0: return { text: '未使用', color: 'success' } - case 1: return { text: '已使用', color: 'warning' } - case 2: return { text: '失效', color: 'danger' } - default: return { text: '未知', color: 'default' } - } - } - - // 获取类型文本 - const getTypeText = (type?: number) => { - switch (type) { - case 10: return '实物礼品卡' - case 20: return '虚拟礼品卡' - case 30: return '服务礼品卡' - default: return '礼品卡' - } - } - - // 弹窗打开时生成二维码 - useEffect(() => { - if (visible && giftCard.id) { - generateQRCode() - } - }, [visible, giftCard.id]) - - const statusInfo = getStatusText(giftCard.status) - - return ( - } - onClose={onClose} - style={{ width: '90%', maxWidth: '400px' }} - > - - {/* 标题 */} - - 礼品卡核销 - - 请向门店工作人员出示此二维码 - - - - {/* 礼品卡信息 */} - - - - {giftCard.goodsName || giftCard.name} - - - {statusInfo.text} - - - - - 面值 - - ¥{giftCard.faceValue} - - - - - 类型 - {getTypeText(giftCard.type)} - - - {giftCard.expireTime && ( - - 有效期至 - - {dayjs(giftCard.expireTime).format('YYYY-MM-DD')} - - - )} - - - {/* 二维码区域 */} - - {loading ? ( - - 生成中... - - ) : verificationCode ? ( - - {/* 模拟二维码显示区域 */} - - - 核销二维码 - - ID: {giftCard.id} - - - - - ) : ( - - 生成失败 - - )} - - - {/* 核销码 */} - {verificationCode && ( - - - - 核销码 - - {verificationCode} - - - - - - )} - - {/* 兑换码 */} - {giftCard.code && ( - - - - 兑换码 - - {giftCard.code} - - - - - - )} - - {/* 操作按钮 */} - - - - - - {/* 使用说明 */} - - 使用说明: - - • 请向门店工作人员出示此二维码或核销码 - • 工作人员扫码后即可完成核销 - • 每次使用会生成新的核销码,确保安全 - • 如有问题请联系客服:{giftCard.contactInfo || '400-800-8888'} - - - - - ) -} - -export default GiftCardQRCode diff --git a/src/components/SimpleQRCodeModal.tsx b/src/components/SimpleQRCodeModal.tsx index b8fc29e..61d5732 100644 --- a/src/components/SimpleQRCodeModal.tsx +++ b/src/components/SimpleQRCodeModal.tsx @@ -1,7 +1,7 @@ -import React from 'react' -import { View, Text } from '@tarojs/components' -import { Popup } from '@nutui/nutui-react-taro' -import { Close, QrCode } from '@nutui/icons-react-taro' +import React, {useEffect} from 'react' +import {View, Text} from '@tarojs/components' +import {Popup} from '@nutui/nutui-react-taro' +import {Close, QrCode} from '@nutui/icons-react-taro' export interface SimpleQRCodeModalProps { /** 是否显示弹窗 */ @@ -17,12 +17,12 @@ export interface SimpleQRCodeModalProps { } const SimpleQRCodeModal: React.FC = ({ - visible, - onClose, - qrContent, - giftName, - faceValue -}) => { + visible, + onClose, + qrContent, + giftName, + faceValue + }) => { // const copyToClipboard = () => { // if (qrContent) { @@ -38,6 +38,9 @@ const SimpleQRCodeModal: React.FC = ({ // } // } + useEffect(() => { + + }, []) return ( = ({ {/* 标题 */} - 礼品卡二维码 - - 请向商家出示此二维码 - + 核销码 {/* 礼品卡信息 */} {(giftName || faceValue) && ( - + {giftName && ( {giftName} @@ -79,12 +79,17 @@ const SimpleQRCodeModal: React.FC = ({ {qrContent ? ( - 二维码 + + 二维码 + + 请向商家出示此二维码 + + ) : ( diff --git a/src/types/giftCard.ts b/src/types/giftCard.ts index b8a672d..9178651 100644 --- a/src/types/giftCard.ts +++ b/src/types/giftCard.ts @@ -105,7 +105,7 @@ export interface GiftCardData { /** 过期时间 */ expireTime?: string /** 使用时间 */ - useTime?: string + takeTime?: string /** 使用地址 */ useLocation?: string /** 客服联系方式 */ diff --git a/src/user/gift/detail.tsx b/src/user/gift/detail.tsx index b7ccd23..e2ab775 100644 --- a/src/user/gift/detail.tsx +++ b/src/user/gift/detail.tsx @@ -169,7 +169,7 @@ const GiftCardDetail = () => { {getGiftValueDisplay()} - {getGiftTypeText(gift.type)} + {getGiftTypeText(gift.type)} { )} - {gift.useTime && ( + {gift.takeTime && ( <> 使用记录 - 使用时间:{dayjs(gift.useTime).format('YYYY-MM-DD HH:mm')} + 使用时间:{dayjs(gift.takeTime).format('YYYY-MM-DD HH:mm')} )} @@ -323,7 +323,7 @@ const GiftCardDetail = () => { setShowQRCode(false)} - qrContent={gift.code || ''} + qrContent={gift.code + ''} giftName={gift.goodsName || gift.name} faceValue={gift.faceValue} /> diff --git a/src/user/gift/index.tsx b/src/user/gift/index.tsx index 097dc58..aaae782 100644 --- a/src/user/gift/index.tsx +++ b/src/user/gift/index.tsx @@ -20,7 +20,7 @@ const GiftCardManage = () => { // const [showRedeemModal, setShowRedeemModal] = useState(false) // const [filters, setFilters] = useState({ // type: [] as number[], - // sortBy: 'createTime' as 'createTime' | 'expireTime' | 'faceValue' | 'useTime', + // sortBy: 'createTime' as 'createTime' | 'expireTime' | 'faceValue' | 'takeTime', // sortOrder: 'desc' as 'asc' | 'desc' // }) @@ -175,7 +175,7 @@ const GiftCardManage = () => { type: gift.type, status: gift.status, expireTime: gift.expireTime, - useTime: gift.useTime, + takeTime: gift.takeTime, useLocation: gift.useLocation, contactInfo: gift.contactInfo, // 添加商品信息 diff --git a/src/user/gift/redeem.tsx b/src/user/gift/redeem.tsx index 36667db..e4dad2d 100644 --- a/src/user/gift/redeem.tsx +++ b/src/user/gift/redeem.tsx @@ -137,7 +137,7 @@ const GiftCardRedeem = () => { faceValue: gift.faceValue, type: gift.type, expireTime: gift.expireTime, - useTime: gift.useTime, + takeTime: gift.takeTime, useLocation: gift.useLocation, contactInfo: gift.contactInfo, showCode: false, // 兑换页面不显示兑换码 diff --git a/src/user/gift/use.tsx b/src/user/gift/use.tsx index ead0f40..6cbc976 100644 --- a/src/user/gift/use.tsx +++ b/src/user/gift/use.tsx @@ -128,7 +128,7 @@ const GiftCardUse = () => { faceValue: gift.faceValue, type: gift.type, expireTime: gift.expireTime, - useTime: gift.useTime, + takeTime: gift.takeTime, useLocation: gift.useLocation, contactInfo: gift.contactInfo, showCode: false, diff --git a/src/user/store/verification.tsx b/src/user/store/verification.tsx index ab5e39f..e26ef74 100644 --- a/src/user/store/verification.tsx +++ b/src/user/store/verification.tsx @@ -1,12 +1,13 @@ -import React, { useState } from 'react' +import React, {useState} from 'react' import {View, Text, Image} from '@tarojs/components' -import {Button, Input, Tag, Divider} from '@nutui/nutui-react-taro' +import {Button, Input} from '@nutui/nutui-react-taro' import {Scan, Search} from '@nutui/icons-react-taro' import Taro from '@tarojs/taro' import dayjs from 'dayjs' -import {getShopGiftByCode, updateShopGift} from "@/api/shop/shopGift"; +import {getShopGiftByCode, updateShopGift, decryptQrData} from "@/api/shop/shopGift"; import {useUser} from "@/hooks/useUser"; -import type { ShopGift } from "@/api/shop/shopGift/model"; +import type {ShopGift} from "@/api/shop/shopGift/model"; +import {isValidJSON} from "@/utils/jsonUtils"; const StoreVerification: React.FC = () => { const { @@ -15,7 +16,6 @@ const StoreVerification: React.FC = () => { const [scanResult, setScanResult] = useState('') const [verificationCode, setVerificationCode] = useState('') const [giftInfo, setGiftInfo] = useState(null) - const [verificationResult, setVerificationResult] = useState<'success' | 'failed' | null>(null) const [loading, setLoading] = useState(false) // 扫码功能 @@ -23,9 +23,17 @@ const StoreVerification: React.FC = () => { Taro.scanCode({ success: (res) => { if (res.result) { - setScanResult(res.result) - setVerificationCode(res.result) - handleManualVerification(res.result) + console.log('扫码结果:', res.result) + + // 判断是否为JSON格式 + if (isValidJSON(res.result)) { + setLoading(true) + const json = JSON.parse(res.result) + console.log(json, 'json') + if (json.businessType === 'gift') { + handleDecryptAndVerify(json.token, json.data).then() + } + } } }, fail: (err) => { @@ -38,7 +46,23 @@ const StoreVerification: React.FC = () => { }) } + // 调用解密接口 + const handleDecryptAndVerify = async (token: string, encryptedData: string) => { + const decryptedData = await decryptQrData({token, encryptedData}) + console.log('解密成功:', decryptedData) + setScanResult(`${decryptedData}`) + setVerificationCode(`${decryptedData}`) + await handleVerification(`${decryptedData}`) + setLoading(false) + } + // 验证商品信息 + const handleVerification = async (code?: string) => { + // 这里应该调用后端API验证核销码 + const gift = await getShopGiftByCode(`${code}`) + // 设置礼品信息用于显示 + setGiftInfo(gift) + } // 手动输入核销码验证 const handleManualVerification = async (code?: string) => { @@ -55,7 +79,6 @@ const StoreVerification: React.FC = () => { setGiftInfo(gift) if (!isAdmin()) { - setVerificationResult('failed') setLoading(false) return Taro.showToast({ title: '您没有核销权限', @@ -63,7 +86,6 @@ const StoreVerification: React.FC = () => { }) } if (gift.status === 1) { - setVerificationResult('failed') setLoading(false) return Taro.showToast({ title: '此礼品码已使用', @@ -71,7 +93,6 @@ const StoreVerification: React.FC = () => { }) } if (gift.status === 2) { - setVerificationResult('failed') setLoading(false) return Taro.showToast({ title: '此礼品码已失效', @@ -79,7 +100,6 @@ const StoreVerification: React.FC = () => { }) } if (gift.userId === 0) { - setVerificationResult('failed') setLoading(false) return Taro.showToast({ title: '此礼品码未认领', @@ -88,7 +108,6 @@ const StoreVerification: React.FC = () => { } // 验证成功,设置状态 - setVerificationResult('success') await updateShopGift({ ...gift, status: 1, @@ -106,7 +125,6 @@ const StoreVerification: React.FC = () => { }, 2000) } catch (error) { console.error('验证失败:', error) - setVerificationResult('failed') Taro.showToast({ title: '验证失败', icon: 'error' @@ -121,7 +139,6 @@ const StoreVerification: React.FC = () => { setScanResult('') setVerificationCode('') setGiftInfo(null) - setVerificationResult(null) } // 获取类型文本 @@ -169,159 +186,124 @@ const StoreVerification: React.FC = () => { 扫描二维码 - {/* 扫码结果显示 */} - {scanResult && !giftInfo && ( - - 扫码结果: - - {scanResult} - - - )} - - {/* 商品信息展示 */} - {giftInfo && ( - - - 商品信息 - - {giftInfo.status === 0 ? '未使用' : - giftInfo.status === 1 ? '已使用' : '已过期'} - - - - {/* 商品图片 */} - {giftInfo.goodsImage && ( - - - - )} + {/* 手动输入区域 */} + + 手动输入核销码 + + + + + - {/* 商品详情 */} - - - {giftInfo.goodsName || giftInfo.name} - - {giftInfo.description && ( - + + {loading ? '正在解密验证...' : '扫码结果:'} + + + {scanResult} + + + )} + + {/* 商品信息展示 */} + {giftInfo && ( + + + 商品信息 + + {giftInfo.status === 0 ? '未使用' : + giftInfo.status === 1 ? '已使用' : '已过期'} + + + + + {/* 商品图片 */} + {giftInfo.goodsImage && ( + + + + )} + + {/* 商品详情 */} + + + {giftInfo.goodsName || giftInfo.name} + + + 使用门店:{giftInfo.useLocation || '123123'} + + {giftInfo.description && ( + <> + {giftInfo.description} - - )} - - - - ¥{giftInfo.faceValue} - - - {giftInfo.type === 10 ? '实物礼品' : - giftInfo.type === 20 ? '虚拟礼品' : '服务礼品'} - - - - - - {/* 附加信息 */} - - {giftInfo.useLocation && ( - - 使用门店: - {giftInfo.useLocation} - + + )} - {giftInfo.expireTime && ( - - 有效期至: - - {dayjs(giftInfo.expireTime).format('YYYY-MM-DD HH:mm')} - - - )} - - {giftInfo.contactInfo && ( - - 客服电话: - {giftInfo.contactInfo} - - )} - - - )} - - - {/* 手动输入区域 */} - { - !giftInfo && ( - - 手动输入核销码 - - - + + + ¥{giftInfo.faceValue} + + + {giftInfo.type === 10 ? '实物礼品' : + giftInfo.type === 20 ? '虚拟礼品' : '服务礼品'} + + - ) - } + {/* 附加信息 */} + - {/* 礼品卡信息 */} - {giftInfo && ( - - - 礼品卡信息 - {verificationResult === 'success' && ( - - 验证成功 - - )} - {verificationResult === 'failed' && ( - - 验证失败 - + {giftInfo.expireTime && ( + + 有效期至: + + {dayjs(giftInfo.expireTime).format('YYYY-MM-DD HH:mm')} + + )} - - - - - 商品名称 - - {giftInfo.goodsName || giftInfo.name} - - - - 面值 - - ¥{giftInfo.faceValue} - - + {giftInfo.contactInfo && ( + + 客服电话: + {giftInfo.contactInfo} + + )} 类型 @@ -333,34 +315,37 @@ const StoreVerification: React.FC = () => { {giftInfo.code} - {giftInfo.expireTime && ( - - 有效期至 - - {dayjs(giftInfo.expireTime).format('YYYY-MM-DD')} - + {giftInfo.operatorUserName && ( + + 核销人员 + {giftInfo.operatorUserName} + + )} + + {giftInfo.takeTime && ( + + 核销时间 + {giftInfo.takeTime} )} - - - - {giftInfo && ( - - )} + {giftInfo && giftInfo.status === 0 && ( + + )} + )} {/* 使用说明 */} - + 操作说明: 1. 用户出示礼品卡二维码 @@ -369,6 +354,7 @@ const StoreVerification: React.FC = () => { 4. 验证成功后点击"确认核销"完成 + ) } diff --git a/src/utils/jsonUtils.ts b/src/utils/jsonUtils.ts new file mode 100644 index 0000000..8983ad0 --- /dev/null +++ b/src/utils/jsonUtils.ts @@ -0,0 +1,31 @@ +/** + * 判断字符串是否为有效的JSON格式 + * @param str 要检测的字符串 + * @returns boolean + */ +export function isValidJSON(str: string): boolean { + if (typeof str !== 'string' || str.trim() === '') { + return false; + } + + try { + JSON.parse(str); + return true; + } catch (error) { + return false; + } +} + +/** + * 安全解析JSON,失败时返回默认值 + * @param str JSON字符串 + * @param defaultValue 默认值 + * @returns 解析结果或默认值 + */ +export function safeJSONParse(str: string, defaultValue: T): T { + try { + return JSON.parse(str); + } catch (error) { + return defaultValue; + } +} \ No newline at end of file diff --git a/src/utils/request.ts b/src/utils/request.ts index 7f08700..fc85dd4 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -307,93 +307,98 @@ const buildQueryString = (params: Record): string => { return queryString ? `?${queryString}` : ''; }; -// GET请求 +// GET请求 - 返回完整的ApiResult响应(适配后台生成的代码) export function get(url: string, params?: any, config?: Partial): Promise { const fullUrl = buildUrl(url) + (params ? buildQueryString(params) : ''); return request({ url: fullUrl, method: 'GET', + returnRaw: true, ...config }); } -// POST请求 +// POST请求 - 返回完整的ApiResult响应(适配后台生成的代码) export function post(url: string, data?: any, config?: Partial): Promise { return request({ url: buildUrl(url), method: 'POST', data, + returnRaw: true, ...config }); } -// PUT请求 +// PUT请求 - 返回完整的ApiResult响应(适配后台生成的代码) export function put(url: string, data?: any, config?: Partial): Promise { return request({ url: buildUrl(url), method: 'PUT', data, + returnRaw: true, ...config }); } -// PATCH请求 +// PATCH请求 - 返回完整的ApiResult响应(适配后台生成的代码) export function patch(url: string, data?: any, config?: Partial): Promise { return request({ url: buildUrl(url), method: 'PATCH', data, + returnRaw: true, ...config }); } -// DELETE请求 +// DELETE请求 - 返回完整的ApiResult响应(适配后台生成的代码) export function del(url: string, data?: any, config?: Partial): Promise { return request({ url: buildUrl(url), method: 'DELETE', data, + returnRaw: true, ...config }); } -// 兼容旧API的请求方法(返回完整的ApiResponse) -export function getRaw(url: string, params?: any, config?: Partial): Promise { +// 便捷方法 - 自动提取data字段(用于不需要处理完整ApiResult的场景) +export function getData(url: string, params?: any, config?: Partial): Promise { const fullUrl = buildUrl(url) + (params ? buildQueryString(params) : ''); return request({ url: fullUrl, method: 'GET', - returnRaw: true, + returnRaw: false, ...config }); } -export function postRaw(url: string, data?: any, config?: Partial): Promise { +export function postData(url: string, data?: any, config?: Partial): Promise { return request({ url: buildUrl(url), method: 'POST', data, - returnRaw: true, + returnRaw: false, ...config }); } -export function putRaw(url: string, data?: any, config?: Partial): Promise { +export function putData(url: string, data?: any, config?: Partial): Promise { return request({ url: buildUrl(url), method: 'PUT', data, - returnRaw: true, + returnRaw: false, ...config }); } -export function delRaw(url: string, data?: any, config?: Partial): Promise { +export function delData(url: string, data?: any, config?: Partial): Promise { return request({ url: buildUrl(url), method: 'DELETE', data, - returnRaw: true, + returnRaw: false, ...config }); } @@ -404,15 +409,17 @@ export { ErrorType, RequestError }; // 默认导出 export default { request, + // 主要方法 - 返回完整ApiResult(适配后台生成代码) get, post, put, patch, del, - getRaw, - postRaw, - putRaw, - delRaw, + // 便捷方法 - 自动提取data字段 + getData, + postData, + putData, + delData, ErrorType, RequestError };