# ym-flip-clock **Repository Path**: ymaai/ym-flip-clock ## Basic Information - **Project Name**: ym-flip-clock - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-22 - **Last Updated**: 2025-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ym-flip-clock 一个精美的翻页时钟组件,支持 12/24 小时制,具有流畅的翻页动画效果和可自定义的主题样式。 ## 特性 - ✨ 流畅的 3D 翻页动画效果 - 🎨 支持自定义主题颜色和尺寸 - ⏰ 支持 12/24 小时制切换 - 📱 适配 uni-app 多端(H5、小程序、App) - 🎯 基于 Vue3 + TypeScript + Less 开发 - 🔧 智能尺寸计算,支持响应式布局 ## 安装 将 `uni_modules/ym-flip-clock` 目录复制到你的 uni-app 项目的 `uni_modules` 目录下即可。 ## 使用方法 ### 基础用法 ```vue ``` ### 12 小时制 ```vue ``` ### 自定义尺寸 ```vue ``` ### 自定义主题 ```vue ``` ### 完整配置示例 ```vue ``` ## 配置 easycom(推荐) 在 `pages.json` 中配置 easycom,配置后可以直接使用组件,无需手动导入: ```json { "easycom": { "autoscan": true, "custom": { "^ym-flip-clock$": "@/uni_modules/ym-flip-clock/components/ym-flip-clock/ym-flip-clock.vue" } } } ``` ## Props | 参数名 | 类型 | 默认值 | 说明 | |--------|------|--------|------| | hourFormat | `'12' \| '24'` | `'24'` | 小时制格式,12 小时制或 24 小时制 | | size | `SizeConfig` | `{}` | 尺寸配置对象,详见下方 SizeConfig | | theme | `ThemeConfig` | `{}` | 主题配置对象,详见下方 ThemeConfig | ### SizeConfig | 参数名 | 类型 | 默认值 | 说明 | |--------|------|--------|------| | width | `number \| string` | `'90px'` | 数字卡片宽度 | | height | `number \| string` | `'170px'` | 数字卡片高度(可选,会根据宽度自动计算) | | fontSize | `number \| string` | `'150px'` | 字体大小(可选,会根据高度自动计算) | | lineHeight | `number \| string` | `'170px'` | 行高(可选,默认等于高度) | | radius | `number \| string` | `'10px'` | 圆角大小 | **尺寸计算规则:** - 如果只提供 `width`,会自动根据宽度计算高度(比例约为 1.417:1) - 如果提供了 `height`,会自动根据高度计算行高(行高等于高度) - 如果提供了 `lineHeight`,会自动根据行高计算字体大小(约为行高的 94%) ### ThemeConfig | 参数名 | 类型 | 默认值 | 说明 | |--------|------|--------|------| | backgroundColor | `string` | `'#e38538'` | 数字卡片背景色(支持十六进制颜色) | | textColor | `string` | `'#fedec2'` | 数字文字颜色 | | colonColor | `string` | `'#fedec2'` | 冒号分隔符颜色 | ## 默认值 ### 默认尺寸 - 宽度:`90px` - 高度:`170px` - 字体大小:`150px` - 行高:`170px` - 圆角:`10px` ### 默认主题 - 背景色:`#e38538`(橙棕色) - 文字颜色:`#fedec2`(米白色) - 冒号颜色:`#fedec2`(米白色) ## 组件结构 ``` uni_modules/ym-flip-clock/ ├── components/ │ ├── types/ │ │ └── clock.ts # TypeScript 类型定义 │ ├── utils/ │ │ ├── colorUtils.ts # 颜色和尺寸工具函数 │ │ └── timeUtils.ts # 时间处理工具函数 │ └── ym-flip-clock/ │ ├── ym-flip-clock.vue # 主组件 │ └── ym-flip-item.vue # 数字翻页子组件 ├── package.json # 组件配置 ├── readme.md # 使用文档 └── changelog.md # 更新日志 ```