feat(打卡): 新增打卡首页功能
- 添加打卡首页路由和页面组件 - 实现日历打卡展示、目标进度和团队动态功能 - 扩展AppLayout组件支持无标题模式 - 新增Vant组件类型声明 ``` 这个提交消息遵循了以下原则: 1. 使用`feat`类型表示新增功能 2. 添加了`(打卡)`范围明确修改领域 3. 简要描述主要变更内容 4. 在消息体中列出关键修改点,保持简洁 5. 使用中文简体符合要求 6. 每个条目使用动词开头保持一致性
Showing
4 changed files
with
20 additions
and
3 deletions
| ... | @@ -30,8 +30,11 @@ declare module 'vue' { | ... | @@ -30,8 +30,11 @@ declare module 'vue' { |
| 30 | UploadVideoPopup: typeof import('./components/ui/UploadVideoPopup.vue')['default'] | 30 | UploadVideoPopup: typeof import('./components/ui/UploadVideoPopup.vue')['default'] |
| 31 | VanActionSheet: typeof import('vant/es')['ActionSheet'] | 31 | VanActionSheet: typeof import('vant/es')['ActionSheet'] |
| 32 | VanButton: typeof import('vant/es')['Button'] | 32 | VanButton: typeof import('vant/es')['Button'] |
| 33 | + VanCalendar: typeof import('vant/es')['Calendar'] | ||
| 33 | VanCellGroup: typeof import('vant/es')['CellGroup'] | 34 | VanCellGroup: typeof import('vant/es')['CellGroup'] |
| 34 | VanCheckbox: typeof import('vant/es')['Checkbox'] | 35 | VanCheckbox: typeof import('vant/es')['Checkbox'] |
| 36 | + VanCol: typeof import('vant/es')['Col'] | ||
| 37 | + VanConfigProvider: typeof import('vant/es')['ConfigProvider'] | ||
| 35 | VanDatePicker: typeof import('vant/es')['DatePicker'] | 38 | VanDatePicker: typeof import('vant/es')['DatePicker'] |
| 36 | VanDialog: typeof import('vant/es')['Dialog'] | 39 | VanDialog: typeof import('vant/es')['Dialog'] |
| 37 | VanEmpty: typeof import('vant/es')['Empty'] | 40 | VanEmpty: typeof import('vant/es')['Empty'] |
| ... | @@ -47,6 +50,7 @@ declare module 'vue' { | ... | @@ -47,6 +50,7 @@ declare module 'vue' { |
| 47 | VanPopup: typeof import('vant/es')['Popup'] | 50 | VanPopup: typeof import('vant/es')['Popup'] |
| 48 | VanProgress: typeof import('vant/es')['Progress'] | 51 | VanProgress: typeof import('vant/es')['Progress'] |
| 49 | VanRate: typeof import('vant/es')['Rate'] | 52 | VanRate: typeof import('vant/es')['Rate'] |
| 53 | + VanRow: typeof import('vant/es')['Row'] | ||
| 50 | VanSwipe: typeof import('vant/es')['Swipe'] | 54 | VanSwipe: typeof import('vant/es')['Swipe'] |
| 51 | VanSwipeItem: typeof import('vant/es')['SwipeItem'] | 55 | VanSwipeItem: typeof import('vant/es')['SwipeItem'] |
| 52 | VanTab: typeof import('vant/es')['Tab'] | 56 | VanTab: typeof import('vant/es')['Tab'] | ... | ... |
| 1 | <!-- | 1 | <!-- |
| 2 | * @Date: 2025-03-20 20:36:36 | 2 | * @Date: 2025-03-20 20:36:36 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2025-03-24 14:05:01 | 4 | + * @LastEditTime: 2025-05-29 15:46:57 |
| 5 | * @FilePath: /mlaj/src/components/layout/AppLayout.vue | 5 | * @FilePath: /mlaj/src/components/layout/AppLayout.vue |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | --> | 7 | --> |
| ... | @@ -14,7 +14,7 @@ | ... | @@ -14,7 +14,7 @@ |
| 14 | :onBack="handleBack" | 14 | :onBack="handleBack" |
| 15 | :rightContent="rightContent" | 15 | :rightContent="rightContent" |
| 16 | /> | 16 | /> |
| 17 | - <main :class="{ 'pb-16': title, 'py-4': !title && route.path !== '/profile' }"> | 17 | + <main :class="{ 'pb-16': title, 'py-4': (!title && route.path !== '/profile') && hasTitle }"> |
| 18 | <slot></slot> | 18 | <slot></slot> |
| 19 | </main> | 19 | </main> |
| 20 | <BottomNav v-if="!hideBottomNav" /> | 20 | <BottomNav v-if="!hideBottomNav" /> |
| ... | @@ -48,6 +48,10 @@ const props = defineProps({ | ... | @@ -48,6 +48,10 @@ const props = defineProps({ |
| 48 | hideBottomNav: { | 48 | hideBottomNav: { |
| 49 | type: Boolean, | 49 | type: Boolean, |
| 50 | default: false | 50 | default: false |
| 51 | + }, | ||
| 52 | + hasTitle: { | ||
| 53 | + type: Boolean, | ||
| 54 | + default: true | ||
| 51 | } | 55 | } |
| 52 | }) | 56 | }) |
| 53 | 57 | ... | ... |
| 1 | /* | 1 | /* |
| 2 | * @Date: 2025-03-21 13:28:30 | 2 | * @Date: 2025-03-21 13:28:30 |
| 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com | 3 | * @LastEditors: hookehuyr hookehuyr@gmail.com |
| 4 | - * @LastEditTime: 2025-03-21 13:33:06 | 4 | + * @LastEditTime: 2025-05-29 15:36:20 |
| 5 | * @FilePath: /mlaj/src/router/checkin.js | 5 | * @FilePath: /mlaj/src/router/checkin.js |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | */ | 7 | */ |
| ... | @@ -41,5 +41,14 @@ export default [ | ... | @@ -41,5 +41,14 @@ export default [ |
| 41 | title: '反思打卡', | 41 | title: '反思打卡', |
| 42 | requiresAuth: true | 42 | requiresAuth: true |
| 43 | } | 43 | } |
| 44 | + }, | ||
| 45 | + { | ||
| 46 | + path: '/checkin/index', | ||
| 47 | + name: 'IndexCheckIn', | ||
| 48 | + component: () => import('@/views/checkin/IndexCheckInPage.vue'), | ||
| 49 | + meta: { | ||
| 50 | + title: '打卡首页', | ||
| 51 | + requiresAuth: true | ||
| 52 | + } | ||
| 44 | } | 53 | } |
| 45 | ] | 54 | ] | ... | ... |
src/views/checkin/IndexCheckInPage.vue
0 → 100644
This diff is collapsed. Click to expand it.
-
Please register or login to post a comment