feat(feedback): implement user feedback collection system with email reporting

Backend:
- Add user_feedback table with RLS policy
- Create feedback submission API (multipart/form-data)
- Implement xlsx report generation with embedded images
- Add scheduled email delivery via Feishu SMTP
- Create HTML email templates (daily_report, no_feedback)

Frontend:
- Add feedback screen with type selection and image picker
- Support anonymous submission via skipAuth flag
- Collect device info and app version

Protocol:
- Document feedback API contract and error codes
- Update http-error-codes.md with FEEDBACK_* codes
This commit is contained in:
qzl
2026-04-20 12:49:54 +08:00
parent 913ed26f8d
commit 6a2a9d2c87
46 changed files with 4768 additions and 9 deletions
+19 -1
View File
@@ -487,5 +487,23 @@
"settingsDoNotSellTitle": "个性化广告推荐",
"settingsDoNotSellDescription": "关闭后,我们不会将您的个人信息用于广告推荐",
"settingsDoNotSellEnabled": "已关闭",
"settingsDoNotSellDisabled": "已开启"
"settingsDoNotSellDisabled": "已开启",
"settingsFeedbackTitle": "意见反馈",
"feedbackTitle": "意见反馈",
"feedbackTypeLabel": "反馈类型",
"feedbackTypeBug": "问题反馈",
"feedbackTypeSuggestion": "功能建议",
"feedbackTypeOther": "其他",
"feedbackContentLabel": "反馈内容",
"feedbackContentHint": "请详细描述您的问题或建议...",
"feedbackImagesLabel": "添加截图(最多3张)",
"feedbackAnonymousLabel": "不上传我的个人信息",
"feedbackAnonymousHint": "勾选后将不采集您的用户ID,仅采集设备信息用于问题排查",
"feedbackSubmit": "提交反馈",
"feedbackSubmitting": "提交中...",
"feedbackSuccess": "感谢您的反馈,我们会尽快处理",
"feedbackContentRequired": "请输入反馈内容",
"feedbackContentTooLong": "反馈内容不能超过500字",
"feedbackTooManyImages": "最多只能上传3张图片",
"feedbackImageTooLarge": "图片大小不能超过5MB"
}