chore: force category management to use real tenant APIs
This commit is contained in:
@@ -12,6 +12,9 @@ VITE_TENANT_ID=806357433394921472
|
||||
# 是否开启 Nitro Mock服务,true 为开启,false 为关闭
|
||||
VITE_NITRO_MOCK=false
|
||||
|
||||
# 是否开启商品分类管理 mock(默认 false,分类管理强制走真实 API)
|
||||
VITE_MOCK_PRODUCT_CATEGORY=false
|
||||
|
||||
# 是否打开 devtools,true 为打开,false 为关闭
|
||||
VITE_DEVTOOLS=false
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// Mock 数据入口,仅在开发环境下使用
|
||||
// 门店模块已切换真实 TenantApi,此处仅保留其他业务的 mock。
|
||||
// 门店模块与商品分类管理已切换真实 TenantApi,此处仅保留其他业务 mock。
|
||||
import './product';
|
||||
import './product-extensions';
|
||||
|
||||
console.warn('[Mock] 非门店模块 Mock 数据已启用');
|
||||
console.warn('[Mock] 已启用非门店/非分类管理 Mock 数据(分类管理强制走真实 API)');
|
||||
|
||||
@@ -150,6 +150,8 @@ const PRODUCT_SEEDS = [
|
||||
|
||||
const storeMap = new Map<string, ProductExtensionStoreState>();
|
||||
let idSeed = 10_000;
|
||||
const ENABLE_PRODUCT_CATEGORY_MOCK =
|
||||
import.meta.env.VITE_MOCK_PRODUCT_CATEGORY === 'true';
|
||||
|
||||
function parseUrlParams(url: string) {
|
||||
const parsed = new URL(url, 'http://localhost');
|
||||
@@ -592,7 +594,9 @@ function ensureStoreState(storeId = '') {
|
||||
return state;
|
||||
}
|
||||
|
||||
Mock.mock(
|
||||
// 分类管理与商品选择器默认走真实 TenantApi,需手动开启才启用 mock。
|
||||
if (ENABLE_PRODUCT_CATEGORY_MOCK) {
|
||||
Mock.mock(
|
||||
/\/product\/category\/manage\/list(?:\?|$)/,
|
||||
'get',
|
||||
(options: MockRequestOptions) => {
|
||||
@@ -616,9 +620,9 @@ Mock.mock(
|
||||
|
||||
return { code: 200, data: list };
|
||||
},
|
||||
);
|
||||
);
|
||||
|
||||
Mock.mock(
|
||||
Mock.mock(
|
||||
/\/product\/category\/manage\/save/,
|
||||
'post',
|
||||
(options: MockRequestOptions) => {
|
||||
@@ -639,7 +643,8 @@ Mock.mock(
|
||||
}
|
||||
|
||||
const currentSortMax =
|
||||
state.categories.reduce((max, item) => Math.max(max, item.sort), 0) + 1;
|
||||
state.categories.reduce((max, item) => Math.max(max, item.sort), 0) +
|
||||
1;
|
||||
const existingIndex = state.categories.findIndex((item) => item.id === id);
|
||||
|
||||
const next =
|
||||
@@ -687,9 +692,9 @@ Mock.mock(
|
||||
|
||||
return { code: 200, data: toCategoryManageItem(state, next) };
|
||||
},
|
||||
);
|
||||
);
|
||||
|
||||
Mock.mock(
|
||||
Mock.mock(
|
||||
/\/product\/category\/manage\/delete/,
|
||||
'post',
|
||||
(options: MockRequestOptions) => {
|
||||
@@ -717,9 +722,9 @@ Mock.mock(
|
||||
);
|
||||
return { code: 200, data: null };
|
||||
},
|
||||
);
|
||||
);
|
||||
|
||||
Mock.mock(
|
||||
Mock.mock(
|
||||
/\/product\/category\/manage\/status/,
|
||||
'post',
|
||||
(options: MockRequestOptions) => {
|
||||
@@ -735,9 +740,9 @@ Mock.mock(
|
||||
target.status = normalizeSwitchStatus(body.status, target.status);
|
||||
return { code: 200, data: toCategoryManageItem(state, target) };
|
||||
},
|
||||
);
|
||||
);
|
||||
|
||||
Mock.mock(
|
||||
Mock.mock(
|
||||
/\/product\/category\/manage\/sort/,
|
||||
'post',
|
||||
(options: MockRequestOptions) => {
|
||||
@@ -770,9 +775,9 @@ Mock.mock(
|
||||
data: state.categories.map((item) => toCategoryManageItem(state, item)),
|
||||
};
|
||||
},
|
||||
);
|
||||
);
|
||||
|
||||
Mock.mock(
|
||||
Mock.mock(
|
||||
/\/product\/category\/manage\/products\/bind/,
|
||||
'post',
|
||||
(options: MockRequestOptions) => {
|
||||
@@ -806,9 +811,9 @@ Mock.mock(
|
||||
},
|
||||
};
|
||||
},
|
||||
);
|
||||
);
|
||||
|
||||
Mock.mock(
|
||||
Mock.mock(
|
||||
/\/product\/category\/manage\/products\/unbind/,
|
||||
'post',
|
||||
(options: MockRequestOptions) => {
|
||||
@@ -834,9 +839,9 @@ Mock.mock(
|
||||
|
||||
return { code: 200, data: target };
|
||||
},
|
||||
);
|
||||
);
|
||||
|
||||
Mock.mock(
|
||||
Mock.mock(
|
||||
/\/product\/picker\/list(?:\?|$)/,
|
||||
'get',
|
||||
(options: MockRequestOptions) => {
|
||||
@@ -872,7 +877,8 @@ Mock.mock(
|
||||
|
||||
return { code: 200, data: list };
|
||||
},
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
Mock.mock(
|
||||
/\/product\/spec\/list(?:\?|$)/,
|
||||
|
||||
@@ -296,6 +296,8 @@ const PRODUCT_SEEDS: ProductSeed[] = [
|
||||
];
|
||||
|
||||
const productStoreMap = new Map<string, ProductStoreState>();
|
||||
const ENABLE_PRODUCT_CATEGORY_MOCK =
|
||||
import.meta.env.VITE_MOCK_PRODUCT_CATEGORY === 'true';
|
||||
|
||||
/** 解析 URL 查询参数。 */
|
||||
function parseUrlParams(url: string) {
|
||||
@@ -540,8 +542,9 @@ function resolveStatusByShelfMode(
|
||||
return fallback;
|
||||
}
|
||||
|
||||
/** 获取商品分类。 */
|
||||
Mock.mock(
|
||||
/** 获取商品分类(默认走真实 TenantApi,需手动开启才启用 mock)。 */
|
||||
if (ENABLE_PRODUCT_CATEGORY_MOCK) {
|
||||
Mock.mock(
|
||||
/\/product\/category\/list(?:\?|$)/,
|
||||
'get',
|
||||
(options: MockRequestOptions) => {
|
||||
@@ -553,7 +556,8 @@ Mock.mock(
|
||||
data: buildCategoryList(state.products),
|
||||
};
|
||||
},
|
||||
);
|
||||
);
|
||||
}
|
||||
|
||||
/** 获取商品列表。 */
|
||||
Mock.mock(/\/product\/list(?:\?|$)/, 'get', (options: MockRequestOptions) => {
|
||||
|
||||
Reference in New Issue
Block a user