# 组件使用说明 ## smoke-record-dialog - 抽烟记录弹框组件 这是一个可复用的底部弹框组件,用于记录抽烟或抵抗记录。 ### 特性 - ✨ 从底部弹出,半屏展示 - 🎨 明亮主题设计 - 📱 支持日期时间选择 - 🔢 支持数量调整和烟瘾等级选择 - 📝 支持备注输入 - 🔄 全局可复用(已配置 easycom 自动导入) ### 使用方法 #### 方式一:easycom 自动导入(推荐) 无需手动导入,直接在模板中使用即可: ```vue ``` #### 方式二:手动导入(可选) ```vue ``` ### Props | 参数 | 类型 | 默认值 | 说明 | |------|------|--------|------| | show | Boolean | false | 控制弹框显示/隐藏 | | type | String | 'smoke' | 记录类型:'smoke'(抽烟) 或 'resisted'(忍住) | ### Events | 事件名 | 参数 | 说明 | |--------|------|------| | update:show | Boolean | 弹框显示状态变化时触发 | | submit | Object | 提交表单时触发,返回表单数据 | ### 提交数据格式 ```javascript { smoke_time: "2025-12-31", // 日期 smoke_at: "2025-12-31 08:30:00", // 完整时间 remark: "压力大", // 备注 level: 2, // 烟瘾等级(1-5) num: 3 // 数量(忍住时为0) } ``` ### 示例场景 #### 场景1:记录抽烟 ```vue ``` #### 场景2:记录忍住 ```vue ``` ### 样式定制 组件内部样式已设置为 `scoped`,如需自定义样式,可以通过以下方式: 1. 修改组件内部样式文件 2. 使用深度选择器覆盖样式(不推荐) ### 注意事项 1. 组件使用 v-model:show 双向绑定显示状态 2. type 为 'resisted' 时,num 自动设置为 0 3. 表单数据会在打开弹框时自动初始化为当前时间 4. 提交后弹框会自动关闭