feat: 二级页的请求放开
This commit is contained in:
1 parent
e364a4b74f
commit
601de78ac9
2 files changed
+16
-42
No files matched your search
+11
-37
@@ -1,63 +1,37 @@
|
||||
/**
|
||||
* 内容数据访问层(唯一数据入口)
|
||||
* ---------------------------------------------------------------------------
|
||||
* 接口口径分两块:
|
||||
* 1)内容页链路,4 个端点 —— 数据源见 USE_MOCK_CONTENT(接口未就绪时读 src/mock/v1/*)
|
||||
* 接口口径分两块,均为真实 /v1 请求:
|
||||
* 1)内容页链路,4 个端点
|
||||
* GET /v1/homepage → GET /v1/categories?section_key= → GET /v1/merchants → GET /v1/merchants/:id/detail
|
||||
* 商家归属靠 category_id(分类接口 items[].id),不再有 collection 这一层。
|
||||
* 2)公共内容(协议 / 隐私 / 关于 / 客服)—— 走真实接口
|
||||
* 2)公共内容(协议 / 隐私 / 关于 / 客服)
|
||||
* GET /v1/content(列表,登录同意版本号取这里) + GET /v1/content/:key(单条详情)
|
||||
*/
|
||||
import { AGREEMENT_DATE, CUSTOMER_SERVICE_PHONE, CUSTOMER_SERVICE_TIME } from "@/constant";
|
||||
import { USE_MOCK_CONTENT } from "@/config/env";
|
||||
import { clone, cnDate, unique } from "@/utils";
|
||||
import { applyLocalState, toPublicCard } from "@/api/benefit";
|
||||
// 首页已切真实接口,mock 保留注释便于回退
|
||||
// import homepageMock from "@/mock/v1/homepage.json";
|
||||
import categoriesMock from "@/mock/v1/categories.json";
|
||||
import merchantsMock from "@/mock/v1/merchants.json";
|
||||
import detailsMock from "@/mock/v1/merchant-details.json";
|
||||
import * as contentApi from "@/request/api/content";
|
||||
|
||||
/** 首页聚合(品牌 / hero / 板块卡 / 精选推荐 / 导览 / 页脚)—— 走真实接口 */
|
||||
export const getHomepage = async () => {
|
||||
// if (USE_MOCK_CONTENT) return clone(homepageMock);
|
||||
return contentApi.fetchHomepage();
|
||||
};
|
||||
/** 首页聚合(品牌 / hero / 板块卡 / 精选推荐 / 导览 / 页脚) */
|
||||
export const getHomepage = async () => contentApi.fetchHomepage();
|
||||
|
||||
/**
|
||||
* 板块分类导航。
|
||||
* ⚠️ mock 阶段固定返回「龙里票根经济」(scenic)的数据,与传入 section_key 无关;
|
||||
* 后端接口就绪后把 USE_MOCK_CONTENT 置 false 即按参数真实取数。
|
||||
*/
|
||||
export const getCategories = async (sectionKey) => {
|
||||
if (!USE_MOCK_CONTENT) return contentApi.fetchCategories(sectionKey);
|
||||
return clone(categoriesMock);
|
||||
};
|
||||
/** 板块分类导航 */
|
||||
export const getCategories = async (sectionKey) => contentApi.fetchCategories(sectionKey);
|
||||
|
||||
/** 商家列表:section_key 一次取全,前端按 category_id 归组到分类下 */
|
||||
export const getMerchants = async (params = {}) => {
|
||||
if (!USE_MOCK_CONTENT) return contentApi.fetchMerchants(params);
|
||||
return clone(merchantsMock);
|
||||
};
|
||||
export const getMerchants = async (params = {}) => contentApi.fetchMerchants(params);
|
||||
|
||||
/**
|
||||
* 商家详情:一次返回商家 + 权益 + 同类推荐。
|
||||
* 内嵌权益是接口的 PublicBenefitView(status 恒为 published),
|
||||
* 出参前统一转成卡片模型(四态 + 剩余名额),判定口径与权益中心同一套。
|
||||
* 出参前先叠本地领取状态,再统一转成卡片模型(四态 + 剩余名额),判定口径与权益中心同一套。
|
||||
*/
|
||||
export const getMerchantDetail = async (id) => {
|
||||
let data;
|
||||
if (USE_MOCK_CONTENT) {
|
||||
const hit = (detailsMock.items || []).find((d) => d.id === id);
|
||||
data = hit ? clone(hit) : null;
|
||||
} else {
|
||||
data = await contentApi.fetchMerchantDetail(id);
|
||||
}
|
||||
const data = await contentApi.fetchMerchantDetail(id);
|
||||
if (!data) return null;
|
||||
if (data.benefits) {
|
||||
// mock 阶段先叠本地领取状态,再统一转卡片模型
|
||||
const items = USE_MOCK_CONTENT ? applyLocalState(data.benefits.items || []) : data.benefits.items || [];
|
||||
const items = applyLocalState(data.benefits.items || []);
|
||||
data.benefits.items = items.map(toPublicCard);
|
||||
data.benefits.total = data.benefits.items.length;
|
||||
}
|
||||
|
||||
+5
-5
@@ -6,13 +6,13 @@
|
||||
* 页面禁止硬编码 OSS 域名或拼接路径;本文件只保留兜底占位图与合法域名说明。
|
||||
* - 接口 baseURL 集中在此,多环境切换只改这一个文件。
|
||||
*
|
||||
* 数据源开关只剩内容页链路与权益(同一后端 BASE_URL_V1 的 /v1/*):
|
||||
* - USE_MOCK_CONTENT:首页 / 分类 / 商家 / 商家详情 / 权益。true 时读 src/mock/v1/*。
|
||||
* 公共内容(协议·隐私·关于·客服)与用户域(登录 / 资料 / 头像 / 退出 / 注销)
|
||||
* 已切真实接口,不再有 mock 分支。
|
||||
* 数据源开关只剩权益(同一后端 BASE_URL_V1 的 /v1/*):
|
||||
* - USE_MOCK_CONTENT:权益(公开权益列表 / 我的权益 / 领取 / 使用)。true 时读 src/mock/v1/*。
|
||||
* 首页 / 分类 / 商家列表 / 商家详情、公共内容(协议·隐私·关于·客服)
|
||||
* 与用户域(登录 / 资料 / 头像 / 退出 / 注销)已切真实接口,不再有 mock 分支。
|
||||
*/
|
||||
|
||||
/** 内容页链路 + 权益:仍读本地数据 */
|
||||
/** 权益:仍读本地数据 */
|
||||
export const USE_MOCK_CONTENT = true;
|
||||
|
||||
/** 后端接口地址(商家权益平台),全部端点都挂在它的 /v1/* 下 */
|
||||
|
||||
Reference in new issue
Block a user