refactor: 大规模代码整理与功能优化

1. 重构后端API路由、CRUD与模块结构,整合日志管理,移除废弃demo代码
2. 优化前端组件类型定义、样式与路由配置,修复权限判断逻辑
3. 调整默认排序规则、滚动条样式与工具类函数,更新依赖与配置文件
4. 修复多处类型不匹配与默认值问题,完善表单与菜单验证逻辑
This commit is contained in:
zhangtao
2026-06-17 01:56:31 +08:00
parent 17b3cd0a4c
commit 73f2823692
500 changed files with 40763 additions and 26616 deletions
@@ -0,0 +1,56 @@
[
{
"name": "注册验证码",
"template_code": "register_code",
"subject": "【FastapiAdmin】注册验证码",
"body_html": "<div style='max-width:600px;margin:0 auto;padding:20px;font-family:Arial,sans-serif;background:#f5f7fa;border-radius:8px;'><div style='background:#fff;padding:30px;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,0.08);'><h2 style='color:#1a1a2e;margin-top:0;'>欢迎注册 FastapiAdmin</h2><p style='color:#666;font-size:15px;line-height:1.8;'>{username} 您好:</p><p style='color:#666;font-size:15px;line-height:1.8;'>您的验证码是:</p><div style='background:linear-gradient(135deg,#667eea,#764ba2);padding:16px 24px;border-radius:6px;text-align:center;margin:20px 0;'><span style='color:#fff;font-size:28px;font-weight:bold;letter-spacing:6px;'>{{ code }}</span></div><p style='color:#999;font-size:13px;line-height:1.6;'>验证码 5 分钟内有效,请勿泄露给他人。</p><hr style='border:none;border-top:1px solid #eee;margin:24px 0;'><p style='color:#bbb;font-size:12px;text-align:center;'>此邮件由系统自动发送,请勿回复。</p></div></div>",
"body_text": "欢迎注册 FastapiAdmin\n\n{username} 您好:\n\n您的验证码是:{{ code }}\n\n验证码 5 分钟内有效,请勿泄露给他人。\n\n此邮件由系统自动发送,请勿回复。",
"variables": "{\"username\":\"用户名\",\"code\":\"验证码\"}",
"description": "用户注册发送邮箱验证码"
},
{
"name": "密码重置",
"template_code": "reset_password",
"subject": "【FastapiAdmin】密码重置",
"body_html": "<div style='max-width:600px;margin:0 auto;padding:20px;font-family:Arial,sans-serif;background:#f5f7fa;border-radius:8px;'><div style='background:#fff;padding:30px;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,0.08);'><h2 style='color:#1a1a2e;margin-top:0;'>密码重置</h2><p style='color:#666;font-size:15px;line-height:1.8;'>{username} 您好:</p><p style='color:#666;font-size:15px;line-height:1.8;'>您正在申请重置密码,点击下方链接设置新密码(30 分钟内有效):</p><div style='text-align:center;margin:24px 0;'><a href='{{ reset_link }}' style='display:inline-block;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:12px 32px;border-radius:6px;text-decoration:none;font-size:16px;font-weight:bold;'>重置密码</a></div><p style='color:#999;font-size:13px;'>如非本人操作,请忽略此邮件。</p><hr style='border:none;border-top:1px solid #eee;margin:24px 0;'><p style='color:#bbb;font-size:12px;text-align:center;'>此邮件由系统自动发送,请勿回复。</p></div></div>",
"body_text": "密码重置\n\n{username} 您好:\n\n您正在申请重置密码,请点击以下链接设置新密码(30 分钟内有效):\n{{ reset_link }}\n\n如非本人操作,请忽略此邮件。\n\n此邮件由系统自动发送,请勿回复。",
"variables": "{\"username\":\"用户名\",\"reset_link\":\"密码重置链接\"}",
"description": "忘记密码发送重置链接"
},
{
"name": "工单回复通知",
"template_code": "ticket_reply",
"subject": "【FastapiAdmin】工单回复通知 - {{ ticket_title }}",
"body_html": "<div style='max-width:600px;margin:0 auto;padding:20px;font-family:Arial,sans-serif;background:#f5f7fa;border-radius:8px;'><div style='background:#fff;padding:30px;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,0.08);'><h2 style='color:#1a1a2e;margin-top:0;'>工单回复通知</h2><p style='color:#666;font-size:15px;line-height:1.8;'>您的工单 <strong>{{ ticket_title }}</strong> 收到新回复:</p><div style='background:#f8f9fb;border-left:4px solid #667eea;padding:16px 20px;margin:16px 0;border-radius:4px;'><p style='color:#444;font-size:14px;line-height:1.8;margin:0;'>{{ reply_content }}</p></div><p style='color:#999;font-size:13px;'>回复时间:{{ reply_time }}</p></div></div>",
"body_text": "工单回复通知\n\n您的工单「{{ ticket_title }}」收到新回复:\n\n{{ reply_content }}\n\n回复时间:{{ reply_time }}",
"variables": "{\"ticket_title\":\"工单标题\",\"reply_content\":\"回复内容\",\"reply_time\":\"回复时间\"}",
"description": "工单被回复时通知提交人"
},
{
"name": "套餐到期提醒",
"template_code": "expiry_warning",
"subject": "【FastapiAdmin】套餐即将到期提醒",
"body_html": "<div style='max-width:600px;margin:0 auto;padding:20px;font-family:Arial,sans-serif;background:#f5f7fa;border-radius:8px;'><div style='background:#fff;padding:30px;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,0.08);'><h2 style='color:#e74c3c;margin-top:0;'>套餐即将到期</h2><p style='color:#666;font-size:15px;line-height:1.8;'>尊敬的 {{ tenant_name }}</p><p style='color:#666;font-size:15px;line-height:1.8;'>您的 <strong>{{ package_name }}</strong> 套餐将于 <strong style='color:#e74c3c;'>{{ expire_date }}</strong> 到期,剩余 <strong style='color:#e74c3c;'>{{ remaining_days }}</strong> 天。</p><p style='color:#666;font-size:15px;line-height:1.8;'>到期后部分功能将受限,请及时续费以保证服务正常使用。</p><div style='text-align:center;margin:24px 0;'><a href='{{ renew_link }}' style='display:inline-block;background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;padding:12px 32px;border-radius:6px;text-decoration:none;font-size:16px;font-weight:bold;'>立即续费</a></div></div></div>",
"body_text": "套餐即将到期\n\n尊敬的 {{ tenant_name }}:您的「{{ package_name }}」套餐将于 {{ expire_date }} 到期,剩余 {{ remaining_days }} 天。请及时续费。\n续费链接:{{ renew_link }}",
"variables": "{\"tenant_name\":\"租户名称\",\"package_name\":\"套餐名称\",\"expire_date\":\"到期日期\",\"remaining_days\":\"剩余天数\",\"renew_link\":\"续费链接\"}",
"description": "套餐到期前7/3/1天发送提醒"
},
{
"name": "团队邀请",
"template_code": "team_invite",
"subject": "【FastapiAdmin】{{ tenant_name }} 邀请您加入团队",
"body_html": "<div style='max-width:600px;margin:0 auto;padding:20px;font-family:Arial,sans-serif;background:#f5f7fa;border-radius:8px;'><div style='background:#fff;padding:30px;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,0.08);'><h2 style='color:#1a1a2e;margin-top:0;'>团队邀请</h2><p style='color:#666;font-size:15px;line-height:1.8;'>您好:</p><p style='color:#666;font-size:15px;line-height:1.8;'><strong>{{ inviter_name }}</strong> 邀请您加入 <strong>{{ tenant_name }}</strong> 团队。</p><div style='text-align:center;margin:24px 0;'><a href='{{ invite_link }}' style='display:inline-block;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:12px 32px;border-radius:6px;text-decoration:none;font-size:16px;font-weight:bold;'>接受邀请</a></div><p style='color:#999;font-size:13px;'>链接 24 小时内有效。</p></div></div>",
"body_text": "团队邀请\n\n您好:{{ inviter_name }} 邀请您加入 {{ tenant_name }} 团队。\n点击链接接受邀请:{{ invite_link }}\n链接 24 小时内有效。",
"variables": "{\"tenant_name\":\"团队名称\",\"inviter_name\":\"邀请人姓名\",\"invite_link\":\"邀请链接\"}",
"description": "邀请新成员加入团队"
},
{
"name": "发票开具通知",
"template_code": "invoice_issued",
"subject": "【FastapiAdmin】发票已开具 - {{ invoice_no }}",
"body_html": "<div style='max-width:600px;margin:0 auto;padding:20px;font-family:Arial,sans-serif;background:#f5f7fa;border-radius:8px;'><div style='background:#fff;padding:30px;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,0.08);'><h2 style='color:#1a1a2e;margin-top:0;'>发票已开具</h2><p style='color:#666;font-size:15px;line-height:1.8;'>尊敬的客户:</p><p style='color:#666;font-size:15px;line-height:1.8;'>您的发票已开具完成:</p><table style='width:100%;border-collapse:collapse;margin:16px 0;'><tr><td style='padding:8px 12px;color:#888;'>发票号码</td><td style='padding:8px 12px;color:#333;'>{{ invoice_no }}</td></tr><tr style='background:#f8f9fb;'><td style='padding:8px 12px;color:#888;'>发票抬头</td><td style='padding:8px 12px;color:#333;'>{{ invoice_title }}</td></tr><tr><td style='padding:8px 12px;color:#888;'>开票金额</td><td style='padding:8px 12px;color:#333;font-weight:bold;'>¥{{ invoice_amount }}</td></tr></table><div style='text-align:center;margin:20px 0;'><a href='{{ pdf_link }}' style='display:inline-block;background:linear-gradient(135deg,#27ae60,#2ecc71);color:#fff;padding:12px 24px;border-radius:6px;text-decoration:none;font-size:15px;'>下载 PDF 电子发票</a></div></div></div>",
"body_text": "发票已开具\n\n尊敬的客户:您的发票已开具完成。\n发票号码:{{ invoice_no }}\n发票抬头:{{ invoice_title }}\n开票金额:¥{{ invoice_amount }}\n下载 PDF{{ pdf_link }}",
"variables": "{\"invoice_no\":\"发票号\",\"invoice_title\":\"发票抬头\",\"invoice_amount\":\"开票金额\",\"pdf_link\":\"PDF下载链接\"}",
"description": "发票开具完成通知客户"
}
]