diff --git a/src/components/smoke-record-dialog/README.md b/src/components/smoke-record-dialog/README.md index 086087e..dc4c493 100644 --- a/src/components/smoke-record-dialog/README.md +++ b/src/components/smoke-record-dialog/README.md @@ -11,6 +11,8 @@ - ✅ 从底部弹出动画效果 - ✅ 半屏展示,优化用户体验 - ✅ 支持两种模式:抽烟记录 / 忍住记录 +- ✅ 快捷标签、多选原因与补充备注 +- ✅ `quickMode` 快速记录模式 - ✅ 完整的表单功能 - ✅ 已配置 easycom 自动导入 @@ -58,6 +60,8 @@ function handleSubmit(data) { |------|------|--------|------| | show | Boolean | false | 控制弹框显示/隐藏(支持 v-model) | | type | String | 'smoke' | 记录类型:'smoke'(抽烟) 或 'resisted'(忍住) | +| initialData | Object | null | 编辑模式下的初始值 | +| quickMode | Boolean | false | 是否启用快速记录模式,默认隐藏高级项 | ## 🎪 Events @@ -72,6 +76,7 @@ function handleSubmit(data) { { smoke_time: "2025-01-25", // 日期 smoke_at: "2025-01-25 14:30:00", // 完整时间 + reason_tags: ["stress"], // 原因标签(可选) remark: "压力大", // 备注(可选) level: 2, // 烟瘾等级 1-5 num: 3 // 数量(忍住时为0) @@ -90,6 +95,7 @@ function handleSubmit(data) { @@ -179,3 +185,4 @@ async function onResistedSubmit(data) { 3. 已配置 easycom,无需手动导入 4. 提交后弹框会自动关闭 5. 表单数据会在打开时自动初始化为当前时间 +6. 当后端尚未消费 `reason_tags` 时,组件会把已选标签合并进 `remark`,避免信息丢失 diff --git a/src/components/smoke-record-dialog/smoke-record-dialog.vue b/src/components/smoke-record-dialog/smoke-record-dialog.vue index 2e242bb..5380f0d 100644 --- a/src/components/smoke-record-dialog/smoke-record-dialog.vue +++ b/src/components/smoke-record-dialog/smoke-record-dialog.vue @@ -3,84 +3,130 @@ - {{ title }} + + {{ title }} + {{ quickModeSummary }} + × - + - - - - 日期 - - - {{ formData.smoke_time || '选择日期' }} - - - - - - 时间 - - - {{ formData.smoke_time_only || '选择时间' }} - - - - - - - - - 抽烟数量 + + + 默认时间 + {{ formData.smoke_time_only }} - - - - {{ formData.num }} - + + + 默认数量 + {{ formData.num }} 支 + 先选原因就能快速保存,需要时再展开高级项。 - + - - {{ type === 'smoke' ? '烟瘾程度' : '忍住强度' }} - Level {{ formData.level }} + + {{ reasonSectionTitle }} + 可多选 - - - 无感 - 强烈 + + + {{ item.label }} + - + - 备注(可选) + + {{ remarkTitle }} + {{ remarkCaption }} + -