From aa4a6bd014994365df3d1c1558b02c4295b47938 Mon Sep 17 00:00:00 2001 From: Codex Date: Mon, 10 Aug 2026 13:17:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(M08-D):=20=E8=A1=A5=E5=8A=A0=E7=9B=9F?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E4=B8=8E=E8=B7=9F=E8=BF=9B=E8=BF=90=E8=90=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/src/App.vue | 11 +- admin/src/api.ts | 33 +++ admin/src/components/FranchisePanel.vue | 57 +++++ admin/src/styles.css | 105 ++++++++ admin/src/types.ts | 21 ++ backend/package.json | 2 +- backend/src/app.ts | 5 + backend/src/db/migration-runner.ts | 10 +- backend/src/franchise/franchise-repository.ts | 232 ++++++++++++++++++ backend/src/routes/franchise.ts | 148 +++++++++++ backend/src/server.ts | 11 +- backend/tests/franchise.test.mjs | 45 ++++ backend/tests/migration-contract.test.mjs | 10 + backend/tests/migration-runner.test.mjs | 5 +- .../tests/mysql-migration-roundtrip.test.mjs | 58 ++++- .../2026081003_m08d_franchise_leads.down.sql | 3 + .../2026081003_m08d_franchise_leads.up.sql | 46 ++++ ...2026081003_m08d_franchise_leads.verify.sql | 19 ++ miniapp/app.json | 1 + miniapp/pages/franchise/apply.js | 27 ++ miniapp/pages/franchise/apply.json | 3 + miniapp/pages/franchise/apply.wxml | 15 ++ miniapp/pages/franchise/apply.wxss | 13 + miniapp/pages/index/index.js | 4 + miniapp/pages/index/index.wxml | 1 + miniapp/pages/index/index.wxss | 3 +- scripts/check-admin-m08-d.mjs | 12 + scripts/check-miniapp-m08-a.mjs | 7 + 28 files changed, 894 insertions(+), 13 deletions(-) create mode 100644 admin/src/components/FranchisePanel.vue create mode 100644 backend/src/franchise/franchise-repository.ts create mode 100644 backend/src/routes/franchise.ts create mode 100644 backend/tests/franchise.test.mjs create mode 100644 database/migrations/2026081003_m08d_franchise_leads.down.sql create mode 100644 database/migrations/2026081003_m08d_franchise_leads.up.sql create mode 100644 database/migrations/2026081003_m08d_franchise_leads.verify.sql create mode 100644 miniapp/pages/franchise/apply.js create mode 100644 miniapp/pages/franchise/apply.json create mode 100644 miniapp/pages/franchise/apply.wxml create mode 100644 miniapp/pages/franchise/apply.wxss diff --git a/admin/src/App.vue b/admin/src/App.vue index 4461d71..c2f465d 100644 --- a/admin/src/App.vue +++ b/admin/src/App.vue @@ -12,6 +12,7 @@