fix(modal): resolve premature modal closing caused by unsupported click.self in wechat miniprogram

这个提交包含在:
xcbyy
2026-10-13 16:54:55 +08:00
父节点 d08acc052a
当前提交 56e672219e
共有 8 个文件被更改,包括 86 次插入 和 22 次删除

查看文件

@@ -1074,6 +1074,34 @@ describe('ContentSecurityService & Compliance Architecture (TDD 微信内容安
expect(content).toContain('ICONS.chevronRight');
});
it('全端弹窗遮罩层严禁使用微信小程序不兼容的 @click.self 且内部卡片必须使用 stopPropagation 阻断冒泡', () => {
const orderListPath = path.join(rootDir, 'pwuniapp', 'pages', 'order', 'list.vue');
const orderCreatePath = path.join(rootDir, 'pwuniapp', 'pages', 'order', 'create.vue');
const expertDetailPath = path.join(rootDir, 'pwuniapp', 'pages', 'expert', 'detail.vue');
const expertWorkspacePath = path.join(rootDir, 'pwuniapp', 'pages', 'expert', 'workspace.vue');
const communityPath = path.join(rootDir, 'pwuniapp', 'pages', 'community', 'index.vue');
const orderListContent = fs.readFileSync(orderListPath, 'utf-8');
expect(orderListContent).not.toContain('@click.self');
expect(orderListContent).toContain('@click.stop="stopPropagation"');
const orderCreateContent = fs.readFileSync(orderCreatePath, 'utf-8');
expect(orderCreateContent).not.toContain('@click.self');
expect(orderCreateContent).toContain('@click.stop="stopPropagation"');
const expertDetailContent = fs.readFileSync(expertDetailPath, 'utf-8');
expect(expertDetailContent).not.toContain('@click.self');
expect(expertDetailContent).toContain('@click.stop="stopPropagation"');
const expertWorkspaceContent = fs.readFileSync(expertWorkspacePath, 'utf-8');
expect(expertWorkspaceContent).not.toContain('@click.self');
expect(expertWorkspaceContent).toContain('@click.stop="stopPropagation"');
const communityContent = fs.readFileSync(communityPath, 'utf-8');
expect(communityContent).not.toContain('@click.self');
expect(communityContent).toContain('@click.stop="stopPropagation"');
});
it('所有状态持久化修复代码与测试严禁包含任何系统 Emoji 违规字符', () => {
const actDetailPath = path.join(rootDir, 'pwuniapp', 'pages', 'activity', 'detail.vue');
const ticketPath = path.join(rootDir, 'pwuniapp', 'pages', 'activity', 'my-ticket.vue');