hookehuyr

feat: 统一 Mock 数据开关配置

创建统一的配置文件 src/config/app.js 管理 Mock 开关

变更内容:
- 新增 src/config/app.js 统一配置文件
- 更新 8 个页面使用统一的 USE_MOCK_DATA 配置:
  - src/pages/material-list/index.vue
  - src/pages/feedback-list/index.vue
  - src/pages/message/index.vue
  - src/pages/week-hot-material/index.vue
  - src/pages/favorites/index.vue
  - src/pages/plan/index.vue
  - src/pages/search/index.vue
  - src/pages/product-center/index.vue

收益:
- 便于开发和测试环境的 Mock 数据切换
- 统一代码风格,提升可维护性
- 符合 DRY 原则

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 +/**
2 + * 应用配置
3 + *
4 + * @description 应用的全局配置,包括 Mock 数据开关等
5 + * @module config/app
6 + */
7 +
8 +/**
9 + * Mock 数据开关
10 + *
11 + * @description 统一控制是否使用 Mock 数据
12 + * - 开发环境可设置为 true 进行前端开发测试
13 + * - 生产环境必须设置为 false 使用真实 API
14 + *
15 + * @type {boolean}
16 + * @default false
17 + *
18 + * @example
19 + * // 开启 Mock 数据(开发环境)
20 + * USE_MOCK_DATA = true
21 + *
22 + * // 关闭 Mock 数据(生产环境)
23 + * USE_MOCK_DATA = false
24 + */
25 +export const USE_MOCK_DATA = false
26 +
27 +/**
28 + * 根据 NODE_ENV 自动判断是否使用 Mock
29 + *
30 + * @description 如果希望在开发环境自动开启 Mock,
31 + * 可以使用以下方式:
32 + *
33 + * @example
34 + * import { USE_MOCK_DATA_DEV } from '@/config/app'
35 + * const USE_MOCK_DATA = USE_MOCK_DATA_DEV
36 + */
37 +export const USE_MOCK_DATA_DEV = process.env.NODE_ENV === 'development'
38 +
39 +/**
40 + * API 请求基础配置
41 + */
42 +export const API_CONFIG = {
43 + /** 请求超时时间(毫秒) */
44 + timeout: 10000,
45 +
46 + /** 是否显示请求日志 */
47 + showRequestLog: process.env.NODE_ENV === 'development',
48 +
49 + /** 是否显示错误提示 */
50 + showErrorToast: true,
51 +}
52 +
53 +/**
54 + * 应用功能开关
55 + */
56 +export const FEATURE_FLAGS = {
57 + /** 是否启用计划书功能 */
58 + ENABLE_PLAN: true,
59 +
60 + /** 是否启用收藏功能 */
61 + ENABLE_FAVORITE: true,
62 +
63 + /** 是否启用消息功能 */
64 + ENABLE_MESSAGE: true,
65 +
66 + /** 是否启用反馈功能 */
67 + ENABLE_FEEDBACK: true,
68 +}
...@@ -71,9 +71,10 @@ import ListItemActions from '@/components/list/ListItemActions/index.vue' ...@@ -71,9 +71,10 @@ import ListItemActions from '@/components/list/ListItemActions/index.vue'
71 import { listAPI, delAPI } from '@/api/favorite' 71 import { listAPI, delAPI } from '@/api/favorite'
72 import { mockFavoriteListAPI } from '@/utils/mockData' 72 import { mockFavoriteListAPI } from '@/utils/mockData'
73 import eventBus, { Events } from '@/utils/eventBus' 73 import eventBus, { Events } from '@/utils/eventBus'
74 +import { USE_MOCK_DATA } from '@/config/app'
74 75
75 -// ⚠️ MOCK 数据开关 - 开发环境使用 mock 数据,生产环境使用真实 API 76 +// ⚠️ MOCK 数据开关 - 统一从 @/config/app 导入
76 -const USE_MOCK_DATA = process.env.NODE_ENV === 'development' 77 +// const USE_MOCK_DATA = process.env.NODE_ENV === 'development'
77 78
78 const { viewFile } = useFileOperation() 79 const { viewFile } = useFileOperation()
79 80
......
...@@ -96,10 +96,10 @@ import { listAPI } from '@/api/feedback' ...@@ -96,10 +96,10 @@ import { listAPI } from '@/api/feedback'
96 import { mockFeedbackListAPI } from '@/utils/mockData' 96 import { mockFeedbackListAPI } from '@/utils/mockData'
97 import eventBus, { Events } from '@/utils/eventBus' 97 import eventBus, { Events } from '@/utils/eventBus'
98 import { optimizeImageUrl } from '@/utils/tools' 98 import { optimizeImageUrl } from '@/utils/tools'
99 +import { USE_MOCK_DATA } from '@/config/app'
99 100
100 -// ⚠️ MOCK 数据开关 - 开发环境使用 mock 数据,生产环境使用真实 API 101 +// ⚠️ MOCK 数据开关 - 统一从 @/config/app 导入
101 // const USE_MOCK_DATA = process.env.NODE_ENV === 'development' 102 // const USE_MOCK_DATA = process.env.NODE_ENV === 'development'
102 -const USE_MOCK_DATA = false
103 103
104 const go = useGo() 104 const go = useGo()
105 105
......
...@@ -123,10 +123,10 @@ import { fileListAPI } from '@/api/file' ...@@ -123,10 +123,10 @@ import { fileListAPI } from '@/api/file'
123 import { mockFileListAPI } from '@/utils/mockData' 123 import { mockFileListAPI } from '@/utils/mockData'
124 import { useCollectOperation } from '@/composables/useCollectOperation' 124 import { useCollectOperation } from '@/composables/useCollectOperation'
125 import Taro from '@tarojs/taro' 125 import Taro from '@tarojs/taro'
126 +import { USE_MOCK_DATA } from '@/config/app'
126 127
127 -// ⚠️ MOCK 数据开关 - 开发环境使用 mock 数据,生产环境使用真实 API 128 +// ⚠️ MOCK 数据开关 - 统一从 @/config/app 导入
128 // const USE_MOCK_DATA = process.env.NODE_ENV === 'development' 129 // const USE_MOCK_DATA = process.env.NODE_ENV === 'development'
129 -const USE_MOCK_DATA = false
130 130
131 const searchValue = ref('') 131 const searchValue = ref('')
132 const activeTabId = ref('all') // 默认选中"全部" 132 const activeTabId = ref('all') // 默认选中"全部"
......
...@@ -79,10 +79,10 @@ import NavHeader from '@/components/navigation/NavHeader.vue' ...@@ -79,10 +79,10 @@ import NavHeader from '@/components/navigation/NavHeader.vue'
79 import IconFont from '@/components/icons/IconFont.vue' 79 import IconFont from '@/components/icons/IconFont.vue'
80 import { myListAPI } from '@/api/news' 80 import { myListAPI } from '@/api/news'
81 import { mockMessageListAPI } from '@/utils/mockData' 81 import { mockMessageListAPI } from '@/utils/mockData'
82 +import { USE_MOCK_DATA } from '@/config/app'
82 83
83 -// ⚠️ MOCK 数据开关 - 开发环境使用 mock 数据,生产环境使用真实 API 84 +// ⚠️ MOCK 数据开关 - 统一从 @/config/app 导入
84 // const USE_MOCK_DATA = process.env.NODE_ENV === 'development' 85 // const USE_MOCK_DATA = process.env.NODE_ENV === 'development'
85 -const USE_MOCK_DATA = false
86 86
87 const go = useGo() 87 const go = useGo()
88 88
......
...@@ -142,10 +142,8 @@ import { mockPlanListAPI } from '@/utils/mockData' ...@@ -142,10 +142,8 @@ import { mockPlanListAPI } from '@/utils/mockData'
142 import NavHeader from '@/components/navigation/NavHeader.vue' 142 import NavHeader from '@/components/navigation/NavHeader.vue'
143 import ListItemActions from '@/components/list/ListItemActions/index.vue' 143 import ListItemActions from '@/components/list/ListItemActions/index.vue'
144 import SearchBar from '@/components/forms/SearchBar.vue' 144 import SearchBar from '@/components/forms/SearchBar.vue'
145 - 145 +import { USE_MOCK_DATA } from '@/config/app'
146 -// Mock 数据开关(开发环境使用 Mock,生产环境使用真实 API) 146 +// ⚠️ MOCK 数据开关 - 统一从 @/config/app 导入
147 -// const USE_MOCK_DATA = process.env.NODE_ENV === 'development'
148 -const USE_MOCK_DATA = false
149 147
150 const { viewFile } = useFileOperation() 148 const { viewFile } = useFileOperation()
151 149
......
...@@ -152,10 +152,8 @@ import { listAPI } from '@/api/get_product' ...@@ -152,10 +152,8 @@ import { listAPI } from '@/api/get_product'
152 import { mockProductListAPI } from '@/utils/mockData' 152 import { mockProductListAPI } from '@/utils/mockData'
153 import { usePlanSubmit } from '@/composables/usePlanSubmit' 153 import { usePlanSubmit } from '@/composables/usePlanSubmit'
154 import { usePlanPermission } from '@/composables/usePlanPermission' 154 import { usePlanPermission } from '@/composables/usePlanPermission'
155 - 155 +import { USE_MOCK_DATA } from '@/config/app'
156 -// ⚠️ MOCK 数据开关 - 开发环境使用 mock 数据,生产环境使用真实 API 156 +// ⚠️ MOCK 数据开关 - 统一从 @/config/app 导入
157 -// const USE_MOCK_DATA = process.env.NODE_ENV === 'development'
158 -const USE_MOCK_DATA = false
159 157
160 const go = useGo() 158 const go = useGo()
161 159
......
...@@ -137,11 +137,11 @@ import MaterialCard from '@/components/cards/MaterialCard.vue' ...@@ -137,11 +137,11 @@ import MaterialCard from '@/components/cards/MaterialCard.vue'
137 import PlanFormContainer from '@/components/plan/PlanFormContainer.vue' 137 import PlanFormContainer from '@/components/plan/PlanFormContainer.vue'
138 import { searchAPI } from '@/api/search' 138 import { searchAPI } from '@/api/search'
139 import { mockSearchAPI } from '@/utils/mockData' 139 import { mockSearchAPI } from '@/utils/mockData'
140 +import { USE_MOCK_DATA } from '@/config/app'
140 import { usePlanSubmit } from '@/composables/usePlanSubmit' 141 import { usePlanSubmit } from '@/composables/usePlanSubmit'
141 import { usePlanPermission } from '@/composables/usePlanPermission' 142 import { usePlanPermission } from '@/composables/usePlanPermission'
142 143
143 -// ⚠️ MOCK 数据开关 - 开发环境使用 mock 数据,生产环境使用真实 API 144 +// ⚠️ MOCK 数据开关 - 统一从 @/config/app 导入
144 -const USE_MOCK_DATA = process.env.NODE_ENV === 'development'
145 145
146 const go = useGo() 146 const go = useGo()
147 147
......
...@@ -45,9 +45,10 @@ import NavHeader from '@/components/navigation/NavHeader.vue' ...@@ -45,9 +45,10 @@ import NavHeader from '@/components/navigation/NavHeader.vue'
45 import MaterialCard from '@/components/cards/MaterialCard.vue' 45 import MaterialCard from '@/components/cards/MaterialCard.vue'
46 import { weekHotAPI } from '@/api/file' 46 import { weekHotAPI } from '@/api/file'
47 import { mockWeekHotAPI } from '@/utils/mockData' 47 import { mockWeekHotAPI } from '@/utils/mockData'
48 +import { USE_MOCK_DATA } from '@/config/app'
48 49
49 -// ⚠️ MOCK 数据开关 - 开发环境使用 mock 数据,生产环境使用真实 API 50 +// ⚠️ MOCK 数据开关 - 统一从 @/config/app 导入
50 -const USE_MOCK_DATA = process.env.NODE_ENV === 'development' 51 +// const USE_MOCK_DATA = process.env.NODE_ENV === 'development'
51 52
52 /** 53 /**
53 * 当前列表数据 54 * 当前列表数据
......