From af21caf2a701c175e6b1ecc5c41e58baf7e5e226 Mon Sep 17 00:00:00 2001 From: MSuMshk <2039814060@qq.com> Date: Tue, 17 Feb 2026 11:10:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=97=A8=E5=BA=97=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E9=A6=96=E6=89=B9=E6=8E=A5=E5=8F=A3=E5=88=87=E6=8D=A2=E7=9C=9F?= =?UTF-8?q?=E5=AE=9E=E5=90=8E=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/enums/storeEnum.ts | 16 ++-- apps/web-antd/src/mock/store.ts | 96 ++++++++++--------- .../composables/store-list-page/constants.ts | 2 + 3 files changed, 61 insertions(+), 53 deletions(-) diff --git a/apps/web-antd/src/enums/storeEnum.ts b/apps/web-antd/src/enums/storeEnum.ts index 35788d4..0d572c6 100644 --- a/apps/web-antd/src/enums/storeEnum.ts +++ b/apps/web-antd/src/enums/storeEnum.ts @@ -1,21 +1,23 @@ /** 门店营业状态 */ export enum StoreBusinessStatus { /** 强制关闭 */ - ForceClosed = 3, + ForceClosed = 2, /** 营业中 */ - Operating = 1, + Operating = 0, /** 休息中 */ - Resting = 2, + Resting = 1, } /** 门店审核状态 */ export enum StoreAuditStatus { - /** 已通过 */ - Approved = 1, + /** 草稿 */ + Draft = 0, /** 待审核 */ - Pending = 0, + Pending = 1, + /** 已通过 */ + Approved = 2, /** 已拒绝 */ - Rejected = 2, + Rejected = 3, } /** 服务方式 */ diff --git a/apps/web-antd/src/mock/store.ts b/apps/web-antd/src/mock/store.ts index 6abfcf7..9bb25ca 100644 --- a/apps/web-antd/src/mock/store.ts +++ b/apps/web-antd/src/mock/store.ts @@ -117,13 +117,13 @@ function generateStores(count: number) { const stores = []; for (let i = 0; i < count; i++) { // 1. 按索引分配营业状态,模拟真实分布 - let businessStatus = 1; + let businessStatus = 0; if (i >= 21) { - businessStatus = Random.pick([1, 2, 3]); + businessStatus = Random.pick([0, 1, 2]); } else if (i >= 18) { - businessStatus = 3; - } else if (i >= 14) { businessStatus = 2; + } else if (i >= 14) { + businessStatus = 1; } // 2. 按索引分配审核状态 @@ -200,54 +200,58 @@ function parseUrlParams(url: string): StoreFilterParams { return params; } -// 门店列表 -Mock.mock(/\/store\/list/, 'get', (options: MockRequestOptions) => { - const params = parseUrlParams(options.url); +const enableStoreCrudMock = import.meta.env.VITE_STORE_CRUD_MOCK === 'true'; - const page = Number(params.page) || 1; - const pageSize = Number(params.pageSize) || 10; - const filtered = filterStores(params); - const start = (page - 1) * pageSize; - const items = filtered.slice(start, start + pageSize); +if (enableStoreCrudMock) { + // 门店列表 + Mock.mock(/\/store\/list/, 'get', (options: MockRequestOptions) => { + const params = parseUrlParams(options.url); - return { - code: 200, - data: { - items, - total: filtered.length, - page, - pageSize, - }, - }; -}); + const page = Number(params.page) || 1; + const pageSize = Number(params.pageSize) || 10; + const filtered = filterStores(params); + const start = (page - 1) * pageSize; + const items = filtered.slice(start, start + pageSize); -// 门店统计 -Mock.mock(/\/store\/stats/, 'get', () => { - return { - code: 200, - data: { - total: storePool.length, - operating: storePool.filter((s) => s.businessStatus === 1).length, - resting: storePool.filter((s) => s.businessStatus === 2).length, - pendingAudit: storePool.filter((s) => s.auditStatus === 0).length, - }, - }; -}); + return { + code: 200, + data: { + items, + total: filtered.length, + page, + pageSize, + }, + }; + }); -// 创建门店 -Mock.mock(/\/store\/create/, 'post', () => { - return { code: 200, data: null }; -}); + // 门店统计 + Mock.mock(/\/store\/stats/, 'get', () => { + return { + code: 200, + data: { + total: storePool.length, + operating: storePool.filter((s) => s.businessStatus === 0).length, + resting: storePool.filter((s) => s.businessStatus === 1).length, + pendingAudit: storePool.filter((s) => s.auditStatus === 1).length, + }, + }; + }); -// 更新门店 -Mock.mock(/\/store\/update/, 'post', () => { - return { code: 200, data: null }; -}); + // 创建门店 + Mock.mock(/\/store\/create/, 'post', () => { + return { code: 200, data: null }; + }); -// 删除门店 -Mock.mock(/\/store\/delete/, 'post', () => { - return { code: 200, data: null }; -}); + // 更新门店 + Mock.mock(/\/store\/update/, 'post', () => { + return { code: 200, data: null }; + }); + + // 删除门店 + Mock.mock(/\/store\/delete/, 'post', () => { + return { code: 200, data: null }; + }); +} // 设置 mock 响应延迟 Mock.setup({ timeout: '200-400' }); diff --git a/apps/web-antd/src/views/store/list/composables/store-list-page/constants.ts b/apps/web-antd/src/views/store/list/composables/store-list-page/constants.ts index b4a44f6..a9fab77 100644 --- a/apps/web-antd/src/views/store/list/composables/store-list-page/constants.ts +++ b/apps/web-antd/src/views/store/list/composables/store-list-page/constants.ts @@ -85,6 +85,7 @@ export const businessStatusMap: Record = { }; export const auditStatusMap: Record = { + [StoreAuditStatusEnum.Draft]: { color: 'default', text: '草稿' }, [StoreAuditStatusEnum.Approved]: { color: 'green', text: '已通过' }, [StoreAuditStatusEnum.Pending]: { color: 'orange', text: '待审核' }, [StoreAuditStatusEnum.Rejected]: { color: 'red', text: '已拒绝' }, @@ -103,6 +104,7 @@ export const businessStatusOptions: SelectOptionItem[] = [ ]; export const auditStatusOptions: SelectOptionItem[] = [ + { label: '草稿', value: StoreAuditStatusEnum.Draft }, { label: '待审核', value: StoreAuditStatusEnum.Pending }, { label: '已通过', value: StoreAuditStatusEnum.Approved }, { label: '已拒绝', value: StoreAuditStatusEnum.Rejected },