refactor(activity): 移除活动品类与合规商圈的本地兜底数据,完全由后台配置驱动

- 发起组局页 games 初始改为空,仅从 nav_categories(status=1) 加载;加载失败/为空显示重试提示,禁止提交空品类

- 合规商圈初始改为空,仅从 safety_places(status=正常营业) 加载;无数据时提示手动填写地点

- 活动列表品类导航移除默认 3 个兜底品类

- 117 套件/764 用例全绿
这个提交包含在:
xcbyy
2026-10-22 16:40:06 +08:00
父节点 fba6c5ac22
当前提交 0a2470bddd
共有 3 个文件被更改,包括 72 次插入 和 26 次删除

查看文件

@@ -302,6 +302,21 @@ describe('ContentSecurityService & Compliance Architecture (TDD 微信内容安
expect(content).toContain('uni.chooseLocation');
});
it('活动品类与合规商圈不得保留本地兜底数据,必须完全由后台配置驱动', () => {
const actCreatePath = path.join(rootDir, 'pwuniapp', 'pages', 'activity', 'create.vue');
const content = fs.readFileSync(actCreatePath, 'utf-8');
expect(content).toContain('const games = ref([]);');
expect(content).toContain('const recommendPublicZones = ref([]);');
expect(content).toContain('game: \'\'');
expect(content).not.toContain('北京市朝阳区三里屯太古里');
expect(content).not.toContain('北京市海淀区五道口购物中心');
expect(content).not.toContain("['美食陪吃', '同城陪唱'");
const actListPath = path.join(rootDir, 'pwuniapp', 'pages', 'activity', 'list.vue');
const listContent = fs.readFileSync(actListPath, 'utf-8');
expect(listContent).not.toContain('默认兜底品类');
});
it('所有新增代码与测试套件严禁包含任何 Emoji 字符', () => {
const pathsToCheck = [
path.join(rootDir, 'server', 'src', 'db', 'mysql.ts'),