Files
sunct 3c3bf53ae4 docs(website): 添加简记memo产品原型和UI设计规范文档
- 新增「简记memo」一体化小程序产品原型设计文档
- 新增简记memo完整版UI视觉设计规范和界面细节
- 添加IDEA项目配置文件.gitignore
- 创建404页面HTML文件,包含响应式布局和错误提示
- 添加关于页面HTML文件,展示品牌介绍和团队信息
- 实现AES加解密工具函数,支持请求体加密
- 添加用户协议页面基础框架
2026-07-31 14:12:32 +08:00

150 lines
8.2 KiB
Go

package app
import (
"github.com/gin-gonic/gin"
"simple-memo/utils"
)
type ConstantsHandler interface {
GetBillCategories(c *gin.Context)
GetTodoCategories(c *gin.Context)
GetMoodList(c *gin.Context)
GetPayChannels(c *gin.Context)
GetAllConstants(c *gin.Context)
}
type constantsHandler struct{}
func NewConstantsHandler() ConstantsHandler {
return &constantsHandler{}
}
var DEFAULT_CATE_LIST = []map[string]interface{}{
{"value": "food", "label": "餐饮", "icon": "🍚", "color": "#ff6b6b", "type": 1},
{"value": "transport", "label": "交通", "icon": "🚇", "color": "#4ecdc4", "type": 1},
{"value": "shopping", "label": "购物", "icon": "🛍️", "color": "#ffe66d", "type": 1},
{"value": "entertainment", "label": "娱乐", "icon": "🎮", "color": "#a855f7", "type": 1},
{"value": "home", "label": "居家", "icon": "🏠", "color": "#84b3d9", "type": 1},
{"value": "medical", "label": "医疗", "icon": "🏥", "color": "#ef4444", "type": 1},
{"value": "education", "label": "教育", "icon": "📚", "color": "#22c55e", "type": 1},
{"value": "social", "label": "社交", "icon": "👥", "color": "#f97316", "type": 1},
{"value": "digital", "label": "数码", "icon": "📱", "color": "#3b82f6", "type": 1},
{"value": "clothing", "label": "服饰", "icon": "👔", "color": "#ec4899", "type": 1},
{"value": "beauty", "label": "美容", "icon": "💄", "color": "#d946ef", "type": 1},
{"value": "sports", "label": "运动", "icon": "⚽", "color": "#10b981", "type": 1},
{"value": "pet", "label": "宠物", "icon": "🐶", "color": "#fbbf24", "type": 1},
{"value": "baby", "label": "育儿", "icon": "🍼", "color": "#fb7185", "type": 1},
{"value": "travel", "label": "旅游", "icon": "✈️", "color": "#06b6d4", "type": 1},
{"value": "other_expense", "label": "其他", "icon": "📦", "color": "#9ca3af", "type": 1},
{"value": "salary", "label": "工资", "icon": "💼", "color": "#22c55e", "type": 2},
{"value": "bonus", "label": "奖金", "icon": "🎁", "color": "#fbbf24", "type": 2},
{"value": "side_hustle", "label": "副业", "icon": "💻", "color": "#3b82f6", "type": 2},
{"value": "investment", "label": "理财", "icon": "📈", "color": "#a855f7", "type": 2},
{"value": "transfer", "label": "转账", "icon": "💳", "color": "#84b3d9", "type": 2},
{"value": "red_packet", "label": "红包", "icon": "🧧", "color": "#ef4444", "type": 2},
{"value": "other_income", "label": "其他", "icon": "🎯", "color": "#6b7280", "type": 2},
}
var TODO_BASE_CATE = []map[string]interface{}{
{"value": "work", "label": "工作", "color": "#84b3d9"},
{"value": "life", "label": "生活", "color": "#a0d0e0"},
{"value": "study", "label": "学习", "color": "#b8d8e6"},
}
var TODO_PRIORITY_LIST = []map[string]interface{}{
{"label": "高", "value": 1, "icon": "🔴"},
{"label": "中", "value": 2, "icon": "🟡"},
{"label": "低", "value": 3, "icon": "🟢"},
}
var MOOD_LIST = []map[string]interface{}{
{"emoji": "😊", "label": "开心", "phrases": []string{"今天心情真好", "阳光灿烂的一天", "嘴角不自觉上扬", "满心欢喜"}},
{"emoji": "😌", "label": "平静", "phrases": []string{"岁月静好", "内心一片安宁", "享受这份宁静", "平和自在"}},
{"emoji": "😔", "label": "低落", "phrases": []string{"有点小忧伤", "心情沉沉的", "需要一点温暖", "静待花开"}},
{"emoji": "😤", "label": "生气", "phrases": []string{"有点烦躁呢", "深呼吸冷静一下", "需要冷静片刻", "平复一下心情"}},
{"emoji": "😴", "label": "疲惫", "phrases": []string{"有点累了", "好好休息一下", "给自己放个假", "累并快乐着"}},
{"emoji": "😰", "label": "焦虑", "phrases": []string{"有点担心", "相信一切会好", "慢慢来不着急", "放宽心"}},
{"emoji": "😄", "label": "兴奋", "phrases": []string{"超级开心!", "激动人心的时刻", "迫不及待了", "满心期待"}},
{"emoji": "🤔", "label": "思考", "phrases": []string{"正在思考中", "让我想想", "深思熟虑", "思绪万千"}},
{"emoji": "😢", "label": "难过", "phrases": []string{"有点难过", "需要一个拥抱", "一切都会过去", "明天会更好"}},
{"emoji": "😎", "label": "酷", "phrases": []string{"今天超酷的", "自信满满", "做自己就好", "洒脱自在"}},
{"emoji": "🥰", "label": "幸福", "phrases": []string{"被幸福包围", "甜蜜的感觉", "幸福感爆棚", "满心欢喜"}},
{"emoji": "😠", "label": "愤怒", "phrases": []string{"真的生气了", "需要冷静一下", "平复一下情绪", "深呼吸"}},
{"emoji": "🥳", "label": "庆祝", "phrases": []string{"值得庆祝!", "太棒了!", "举杯庆祝", "喜笑颜开"}},
{"emoji": "😱", "label": "惊讶", "phrases": []string{"哇!好惊喜", "太意外了", "不可思议", "令人震惊"}},
{"emoji": "😇", "label": "感恩", "phrases": []string{"心怀感恩", "感谢生活", "感恩遇见", "心存感激"}},
{"emoji": "💪", "label": "加油", "phrases": []string{"加油加油!", "相信自己", "勇往直前", "全力以赴"}},
{"emoji": "😘", "label": "害羞", "phrases": []string{"有点害羞", "不好意思啦", "脸红心跳", "羞涩一笑"}},
{"emoji": "🤩", "label": "崇拜", "phrases": []string{"超级崇拜!", "偶像光芒", "闪闪发光", "心生敬意"}},
{"emoji": "😪", "label": "困倦", "phrases": []string{"好困呀", "眼皮打架了", "需要小憩", "睡个好觉"}},
{"emoji": "😋", "label": "满足", "phrases": []string{"心满意足", "幸福感满满", "知足常乐", "十分满足"}},
}
var PAY_CHANNELS = []map[string]interface{}{
{"value": "wechat", "label": "微信", "types": []int{1, 2}},
{"value": "alipay", "label": "支付宝", "types": []int{1, 2}},
{"value": "unionpay", "label": "云闪付", "types": []int{1, 2}},
{"value": "bank", "label": "银行卡", "types": []int{1, 2}},
{"value": "cash", "label": "现金", "types": []int{1, 2}},
{"value": "online_banking", "label": "网银", "types": []int{1, 2}},
{"value": "pos", "label": "POS机", "types": []int{1, 2}},
{"value": "other", "label": "其他", "types": []int{1, 2}},
{"value": "salary", "label": "工资", "types": []int{2}},
{"value": "red_packet", "label": "红包", "types": []int{2}},
{"value": "transfer_in", "label": "转账", "types": []int{2}},
{"value": "corporate", "label": "对公转账", "types": []int{2}},
{"value": "credit", "label": "信用卡", "types": []int{1}},
{"value": "huawei", "label": "花呗", "types": []int{1}},
{"value": "white", "label": "白条", "types": []int{1}},
{"value": "jd_pay", "label": "京东支付", "types": []int{1}},
{"value": "meituan_pay", "label": "美团支付", "types": []int{1}},
{"value": "gift_card", "label": "储值卡", "types": []int{1}},
}
// AVATAR_BASE_URL 头像基础URL
const AVATAR_BASE_URL = "/static/avatar/"
// DEFAULT_AVATARS 默认头像列表
var DEFAULT_AVATARS = []map[string]interface{}{
{"url": AVATAR_BASE_URL + "ginger_cat.jpg", "name": "ginger_cat", "label": "橘猫"},
{"url": AVATAR_BASE_URL + "ragdoll.jpg", "name": "ragdoll", "label": "布偶猫"},
{"url": AVATAR_BASE_URL + "hamster.jpg", "name": "hamster", "label": "小仓鼠"},
{"url": AVATAR_BASE_URL + "dragon.jpg", "name": "dragon", "label": "龙"},
{"url": AVATAR_BASE_URL + "pony.jpg", "name": "pony", "label": "小马"},
{"url": AVATAR_BASE_URL + "lamb.jpg", "name": "lamb", "label": "小羊"},
{"url": AVATAR_BASE_URL + "corgi.jpg", "name": "corgi", "label": "柯基"},
{"url": AVATAR_BASE_URL + "piglet.jpg", "name": "piglet", "label": "小猪"},
}
func (h *constantsHandler) GetBillCategories(c *gin.Context) {
utils.Ok(c, DEFAULT_CATE_LIST)
}
func (h *constantsHandler) GetTodoCategories(c *gin.Context) {
data := map[string]interface{}{
"categories": TODO_BASE_CATE,
"priorities": TODO_PRIORITY_LIST,
}
utils.Ok(c, data)
}
func (h *constantsHandler) GetMoodList(c *gin.Context) {
utils.Ok(c, MOOD_LIST)
}
func (h *constantsHandler) GetPayChannels(c *gin.Context) {
utils.Ok(c, PAY_CHANNELS)
}
func (h *constantsHandler) GetAllConstants(c *gin.Context) {
data := map[string]interface{}{
"billCategories": DEFAULT_CATE_LIST,
"todoCategories": TODO_BASE_CATE,
"todoPriorities": TODO_PRIORITY_LIST,
"moodList": MOOD_LIST,
"payChannels": PAY_CHANNELS,
"avatars": DEFAULT_AVATARS,
}
utils.Ok(c, data)
}