commit 1c7243410229448b652dfdf5e2b42eb55b5a90da Author: taiyi Date: Sat Apr 18 17:16:49 2026 +0800 初始化前端页面 diff --git a/achievements/achievements.js b/achievements/achievements.js new file mode 100644 index 0000000..ba76804 --- /dev/null +++ b/achievements/achievements.js @@ -0,0 +1 @@ +Page({}) diff --git a/achievements/achievements.json b/achievements/achievements.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/achievements/achievements.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/achievements/achievements.wxml b/achievements/achievements.wxml new file mode 100644 index 0000000..cf0af3e --- /dev/null +++ b/achievements/achievements.wxml @@ -0,0 +1,50 @@ + + + + + VocabMaster + + 🔔 + + + + + 成就墙 + 把你的每一次坚持都挂在墙上 + + + + + + + 14 + 已点亮勋章 + + 🏆 + + + + + + 🎖 + 坚持不懈 + 连续复习 7 天 + + + 🔥 + 连续打卡 + 持续 12 天 + + + + 速记达人 + 单次正确率 95% + + + + 全勤玩家 + 周目标全完成 + + + + diff --git a/achievements/achievements.wxss b/achievements/achievements.wxss new file mode 100644 index 0000000..6bb2344 --- /dev/null +++ b/achievements/achievements.wxss @@ -0,0 +1 @@ +page{background:#0c0e12;color:#f6f6fc}.page{min-height:100vh;background:#0c0e12;box-sizing:border-box}.topbar{display:flex;justify-content:space-between;align-items:center;padding:24rpx 32rpx;background:rgba(12,14,18,.8);backdrop-filter:blur(24px);border-bottom:1rpx solid rgba(255,255,255,.08);box-shadow:0 1rpx 20rpx rgba(0,0,0,.08)}.brand{display:flex;align-items:center;gap:18rpx}.avatar-wrap{width:64rpx;height:64rpx;border-radius:9999rpx;overflow:hidden;border:1rpx solid rgba(255,255,255,.1);flex-shrink:0}.avatar{width:100%;height:100%}.brand-text{font-size:38rpx;font-weight:800;color:#c19cff}.icon-btn{width:72rpx;height:72rpx;border-radius:9999rpx;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center}.content{height:calc(100vh - 120rpx);padding:48rpx 40rpx 32rpx;box-sizing:border-box}.heading{margin-bottom:28rpx}.title{display:block;font-size:52rpx;font-weight:800;line-height:1.1}.subtitle{display:block;margin-top:10rpx;color:#aaabb0;font-size:26rpx}.hero-card{position:relative;overflow:hidden;padding:32rpx;border-radius:32rpx;background:rgba(29,32,37,.6);backdrop-filter:blur(24rpx);border:1rpx solid rgba(255,255,255,.08);box-shadow:0 20rpx 40rpx rgba(0,0,0,.08);margin-bottom:24rpx}.hero-glow{position:absolute;right:-40rpx;top:-40rpx;width:160rpx;height:160rpx;border-radius:9999rpx;background:rgba(255,64,129,.12);filter:blur(30rpx)}.hero-row{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:1}.hero-num{display:block;font-size:72rpx;font-weight:800;color:#fff}.hero-label{display:block;margin-top:8rpx;font-size:24rpx;color:#aaabb0}.hero-badge{width:112rpx;height:112rpx;border-radius:9999rpx;background:linear-gradient(135deg,#ff4081,#00e5ff);display:flex;align-items:center;justify-content:center;font-size:44rpx;box-shadow:0 0 20rpx rgba(255,64,129,.2)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18rpx}.item{position:relative;overflow:hidden;padding:28rpx;border-radius:28rpx;background:rgba(29,32,37,.56);backdrop-filter:blur(24rpx);border:1rpx solid rgba(255,255,255,.06);box-shadow:0 20rpx 40rpx rgba(0,0,0,.06);min-height:220rpx}.accent-tertiary{box-shadow:0 20rpx 40rpx rgba(255,64,129,.06)}.accent-secondary{box-shadow:0 20rpx 40rpx rgba(0,229,255,.06)}.accent-primary{box-shadow:0 20rpx 40rpx rgba(127,0,255,.06)}.item-icon{width:76rpx;height:76rpx;border-radius:9999rpx;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;margin-bottom:24rpx;font-size:32rpx}.item-title{display:block;font-size:30rpx;font-weight:700;margin-bottom:8rpx}.item-sub{display:block;font-size:22rpx;color:#aaabb0} diff --git a/batch-upload/batch-upload.js b/batch-upload/batch-upload.js new file mode 100644 index 0000000..ba76804 --- /dev/null +++ b/batch-upload/batch-upload.js @@ -0,0 +1 @@ +Page({}) diff --git a/batch-upload/batch-upload.json b/batch-upload/batch-upload.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/batch-upload/batch-upload.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/batch-upload/batch-upload.wxml b/batch-upload/batch-upload.wxml new file mode 100644 index 0000000..9926fb2 --- /dev/null +++ b/batch-upload/batch-upload.wxml @@ -0,0 +1,64 @@ + + + + + VocabMaster + + 🔔 + + + + + 批量上传词汇 + 通过 Excel 文件快速导入您的词库。 + + + + + 上传指南 + + + 1 + + 下载模板 + 获取标准 Excel 格式文件 + ⬇ 下载模板.xlsx + + + + 2 + 填写数据按照列名填入单词与释义 + + + 3 + 拖拽上传将文件拖入右侧区域 + + + + + + + + 点击上传Excel + 或将文件拖拽至此处。
支持 .xlsx, .xls 格式,最大 10MB。
+ +
+ + +
+
+
+
diff --git a/batch-upload/batch-upload.wxss b/batch-upload/batch-upload.wxss new file mode 100644 index 0000000..88904dd --- /dev/null +++ b/batch-upload/batch-upload.wxss @@ -0,0 +1 @@ +page{background:#0c0e12;color:#f6f6fc}.page{min-height:100vh;background:#0c0e12;box-sizing:border-box}.topbar{display:flex;justify-content:space-between;align-items:center;padding:24rpx 32rpx;background:rgba(12,14,18,.8);backdrop-filter:blur(24px);border-bottom:1rpx solid rgba(255,255,255,.08);box-shadow:0 1rpx 20rpx rgba(0,0,0,.08)}.brand{display:flex;align-items:center;gap:18rpx}.avatar-wrap{width:64rpx;height:64rpx;border-radius:9999rpx;overflow:hidden;border:1rpx solid rgba(255,255,255,.1);flex-shrink:0}.avatar{width:100%;height:100%}.brand-text{font-size:38rpx;font-weight:800;color:#c19cff}.icon-btn{width:72rpx;height:72rpx;border-radius:9999rpx;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center}.content{height:calc(100vh - 120rpx);padding:40rpx 32rpx 32rpx;box-sizing:border-box}.header{margin-bottom:28rpx}.title{display:block;font-size:52rpx;font-weight:800}.subtitle{display:block;margin-top:10rpx;color:#aaabb0;font-size:24rpx}.layout{display:grid;grid-template-columns:1fr;gap:24rpx}.instruction-card,.upload-card,.feedback-card,.step-card,.dropzone{background:rgba(29,32,37,.56);border:1rpx solid rgba(255,255,255,.08);border-radius:28rpx;box-sizing:border-box}.instruction-card{padding:24rpx}.section-title{display:block;font-size:28rpx;font-weight:700;margin-bottom:18rpx}.steps{display:flex;flex-direction:column;gap:18rpx}.step{display:flex;align-items:stretch;gap:16rpx}.step-dot{width:44rpx;height:44rpx;border-radius:9999rpx;background:#23262c;color:#aaabb0;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:20rpx;font-weight:700;margin-top:10rpx}.active-dot{background:#c19cff;color:#000}.step-card{flex:1;padding:18rpx;background:#171a1f}.low{background:#111318}.step-title{display:block;font-size:24rpx;font-weight:700;margin-bottom:6rpx}.step-desc{display:block;font-size:20rpx;color:#aaabb0}.download{display:block;margin-top:12rpx;font-size:20rpx;color:#00e5ff}.upload-card{display:flex;flex-direction:column;gap:18rpx}.dropzone{padding:40rpx 28rpx;min-height:360rpx;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:rgba(29,32,37,.4)}.upload-icon{width:112rpx;height:112rpx;border-radius:9999rpx;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;font-size:48rpx;color:#c19cff;margin-bottom:18rpx}.drop-title{display:block;font-size:34rpx;font-weight:800;margin-bottom:10rpx}.drop-desc{display:block;font-size:22rpx;color:#aaabb0;line-height:1.6;margin-bottom:24rpx}.choose-btn{border-radius:9999rpx;padding:20rpx 30rpx;background:linear-gradient(90deg,#c19cff,#9146ff);color:#fff;font-weight:700}.feedback-card{padding:24rpx;display:flex;flex-direction:column;gap:16rpx}.feedback-left{display:flex;align-items:center;gap:16rpx}.status-icon{width:56rpx;height:56rpx;border-radius:9999rpx;background:#111318;display:flex;align-items:center;justify-content:center;color:#00e5ff}.feedback-title{display:block;font-size:24rpx;font-weight:700}.feedback-file{display:block;font-size:20rpx;color:#aaabb0}.feedback-stats{display:flex;align-items:center;gap:24rpx;justify-content:flex-end}.stat{text-align:center}.stat-num{display:block;font-size:34rpx;font-weight:800}.good{color:#00e5ff}.bad{color:#aaabb0}.stat-label{display:block;font-size:18rpx;color:#aaabb0}.divider{width:1rpx;height:34rpx;background:rgba(255,255,255,.08)} diff --git a/checkin-detail/checkin-detail.js b/checkin-detail/checkin-detail.js new file mode 100644 index 0000000..ba76804 --- /dev/null +++ b/checkin-detail/checkin-detail.js @@ -0,0 +1 @@ +Page({}) diff --git a/checkin-detail/checkin-detail.json b/checkin-detail/checkin-detail.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/checkin-detail/checkin-detail.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/checkin-detail/checkin-detail.wxml b/checkin-detail/checkin-detail.wxml new file mode 100644 index 0000000..a7678fb --- /dev/null +++ b/checkin-detail/checkin-detail.wxml @@ -0,0 +1,45 @@ + + + + + VocabMaster + + 🔔 + + + + + 打卡详情 + 查看近期的学习与坚持记录。 + + + + + + 12 + 连续打卡天数 + + 🔥 + + + + + + + + + + + 今日已完成复习 45 词,正确率 92% + + + + 昨日打卡完成 30 词复习 + + + + 本周目标累计打卡 5 / 7 天 + + + + diff --git a/checkin-detail/checkin-detail.wxss b/checkin-detail/checkin-detail.wxss new file mode 100644 index 0000000..2dcb788 --- /dev/null +++ b/checkin-detail/checkin-detail.wxss @@ -0,0 +1 @@ +page{background:#0c0e12;color:#f6f6fc}.page{min-height:100vh;background:#0c0e12;box-sizing:border-box}.topbar{display:flex;justify-content:space-between;align-items:center;padding:24rpx 32rpx;background:rgba(12,14,18,.8);backdrop-filter:blur(24px);border-bottom:1rpx solid rgba(255,255,255,.08);box-shadow:0 1rpx 20rpx rgba(0,0,0,.08)}.brand{display:flex;align-items:center;gap:18rpx}.avatar-wrap{width:64rpx;height:64rpx;border-radius:9999rpx;overflow:hidden;border:1rpx solid rgba(255,255,255,.1);flex-shrink:0}.avatar{width:100%;height:100%}.brand-text{font-size:38rpx;font-weight:800;color:#c19cff}.icon-btn{width:72rpx;height:72rpx;border-radius:9999rpx;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center}.content{height:calc(100vh - 120rpx);padding:40rpx 32rpx;box-sizing:border-box}.header{margin-bottom:24rpx}.title{display:block;font-size:52rpx;font-weight:800}.subtitle{display:block;margin-top:10rpx;color:#aaabb0;font-size:24rpx}.card{background:rgba(29,32,37,.56);border:1rpx solid rgba(255,255,255,.08);border-radius:28rpx}.hero{padding:28rpx}.hero-row{display:flex;justify-content:space-between;align-items:center}.hero-num{display:block;font-size:72rpx;font-weight:800}.hero-label{display:block;margin-top:6rpx;color:#aaabb0;font-size:22rpx}.fire{width:76rpx;height:76rpx;border-radius:9999rpx;background:rgba(255,255,255,.06);display:flex;align-items:center;justify-content:center;font-size:34rpx}.progress-bar{height:10rpx;margin-top:20rpx;border-radius:9999rpx;background:#23262c;overflow:hidden}.fill{width:71%;height:100%;background:linear-gradient(90deg,#c19cff,#00e5ff)}.week-row{display:flex;justify-content:space-between;margin-top:16rpx;color:#aaabb0;font-size:22rpx}.day.active{color:#00e5ff;font-weight:700}.timeline{margin-top:18rpx;display:flex;flex-direction:column;gap:14rpx}.entry{display:flex;gap:14rpx;align-items:stretch}.dot{width:18rpx;height:18rpx;margin-top:20rpx;border-radius:9999rpx;background:#23262c;flex-shrink:0}.dot.done{background:#00e5ff;box-shadow:0 0 12rpx rgba(0,229,255,.6)}.entry-card{flex:1;padding:20rpx;border-radius:22rpx;background:#171a1f;border:1rpx solid rgba(255,255,255,.06)}.low{background:#111318}.entry-title{display:block;font-size:26rpx;font-weight:700}.entry-desc{display:block;margin-top:6rpx;color:#aaabb0;font-size:22rpx} diff --git a/entry-edit/entry-edit.js b/entry-edit/entry-edit.js new file mode 100644 index 0000000..ba76804 --- /dev/null +++ b/entry-edit/entry-edit.js @@ -0,0 +1 @@ +Page({}) diff --git a/entry-edit/entry-edit.json b/entry-edit/entry-edit.json new file mode 100644 index 0000000..8835af0 --- /dev/null +++ b/entry-edit/entry-edit.json @@ -0,0 +1,3 @@ +{ + "usingComponents": {} +} \ No newline at end of file diff --git a/entry-edit/entry-edit.wxml b/entry-edit/entry-edit.wxml new file mode 100644 index 0000000..3722e93 --- /dev/null +++ b/entry-edit/entry-edit.wxml @@ -0,0 +1,39 @@ + + + + + + + + + + 添加新内容 + 构建你的专属知识库 + + + + 单词 + 句子 + + + + + 英文内容 + + + + 中文释义 + + + + 例句 (可选) +