重构 monorepo 并完善网页端订阅与首页体验

- 迁移为 frontend-web、frontend-electron、backend-web 与 docker 部署结构
- 网页端:订阅门禁二次弹窗、套餐/支付组件化、顶栏分组对齐
- 首页:最近文件与模板库布局优化,缩略图对齐,下载与删除操作
- 新增管理后台、支付与云端文件 API,更新 README 与项目规范

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
24kycj
2026-06-08 18:17:39 +08:00
parent 5814b7bc0e
commit 88c6ce8ccc
511 changed files with 189528 additions and 22804 deletions
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></svg>

After

Width:  |  Height:  |  Size: 167 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/></svg>

After

Width:  |  Height:  |  Size: 277 B

@@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80" fill="none" aria-hidden="true">
<rect x="14" y="24" width="52" height="42" rx="6" stroke="#8a939c" stroke-width="2"/>
<path d="M14 34h52" stroke="#8a939c" stroke-width="2"/>
<path d="M32 24V18a8 8 0 0116 0v6" stroke="#8a939c" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M26 46h28" stroke="#5c656e" stroke-width="2" stroke-linecap="round" stroke-dasharray="5 5"/>
<path d="M26 54h20" stroke="#5c656e" stroke-width="2" stroke-linecap="round" stroke-dasharray="5 5"/>
</svg>

After

Width:  |  Height:  |  Size: 573 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2"><path d="M6 4h12v16H6z"/><path d="M9 8h6M9 12h6M9 16h4"/></svg>

After

Width:  |  Height:  |  Size: 170 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2"><rect x="5" y="11" width="14" height="10" rx="1"/><path d="M8 11V8a4 4 0 118 0v3"/></svg>

After

Width:  |  Height:  |  Size: 196 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2"><rect x="4" y="4" width="16" height="16" rx="2"/><path d="M8 10h8M8 14h5"/></svg>

After

Width:  |  Height:  |  Size: 188 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2"><circle cx="12" cy="12" r="3"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"/></svg>

After

Width:  |  Height:  |  Size: 270 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2"><circle cx="12" cy="8" r="4"/><path d="M4 20c0-4 4-6 8-6s8 2 8 6"/></svg>

After

Width:  |  Height:  |  Size: 180 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

@@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 800" fill="none">
<rect width="1200" height="800" fill="#1E252D"/>
<circle cx="400" cy="400" r="180" stroke="#009688" stroke-width="2" opacity="0.4"/>
<circle cx="400" cy="400" r="120" fill="#009688" opacity="0.08"/>
<rect x="680" y="220" width="320" height="360" rx="16" stroke="#009688" stroke-width="2" opacity="0.35"/>
<rect x="720" y="260" width="240" height="280" rx="8" fill="#009688" opacity="0.06"/>
<path d="M200 600 Q400 500 600 600 T1000 600" stroke="#009688" stroke-width="1.5" opacity="0.25"/>
</svg>

After

Width:  |  Height:  |  Size: 585 B

@@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" fill="none">
<circle cx="128" cy="128" r="120" fill="#009688" opacity="0.15"/>
<circle cx="128" cy="128" r="80" stroke="#009688" stroke-width="3"/>
<path d="M128 88 L128 128 L160 144" stroke="#009688" stroke-width="4" stroke-linecap="round"/>
<text x="128" y="200" text-anchor="middle" fill="#009688" font-family="sans-serif" font-size="20" font-weight="bold">PRO</text>
</svg>

After

Width:  |  Height:  |  Size: 448 B