feat: 复刻小程序四大主页面与底部导航(UI 优先,本地 mock)

This commit is contained in:
AndyChen1024
2026-09-09 19:57:47 +08:00
parent f240682281
commit c80fb31eb1
53 changed files with 2778 additions and 68 deletions

View File

@@ -0,0 +1,34 @@
package com.mingyuan.android_client.core.model
enum class CheckinStatus(val label: String) {
NORMAL("正常"),
LATE("迟到"),
LEAVE("请假"),
ABSENT("不参加讨论"),
EARLY_LEAVE("早退"),
}
data class GroupMember(
val id: String,
val name: String,
val checkedIn: Boolean,
val checkinTime: String?,
val status: CheckinStatus?,
)
data class PersonalCheckinRecord(
val date: String,
val status: CheckinStatus,
val time: String,
)
data class CheckinRecord(
val classDate: String,
val weekday: String,
val dayNum: Int,
val checked: Boolean,
val status: CheckinStatus?,
val groupName: String,
val groupMembers: List<GroupMember>,
val personalHistory: List<PersonalCheckinRecord>,
)

View File

@@ -0,0 +1,28 @@
package com.mingyuan.android_client.core.model
enum class ModuleDestination {
CHECKIN,
PLAN,
ABOUT,
}
data class HomeModule(
val id: String,
val emoji: String,
val title: String,
val description: String,
val destination: ModuleDestination,
)
data class IntroCard(
val title: String,
val body: String,
)
data class HomeData(
val greeting: String,
val displayName: String,
val encouragement: String,
val modules: List<HomeModule>,
val intros: List<IntroCard>,
)

View File

@@ -0,0 +1,48 @@
package com.mingyuan.android_client.core.model
enum class PlanType(val label: String) {
WEEKLY("周计划"),
MONTHLY("月计划"),
YEARLY("年计划"),
}
data class MyPlanRecord(
val status: String,
val submittedTime: String,
val content: String,
val attachments: List<String>,
)
data class PlanMember(
val id: String,
val name: String,
val filled: Boolean,
)
data class PlanGroup(
val id: String,
val name: String,
val checkedCount: Int,
val memberCount: Int,
val members: List<PlanMember>,
)
data class PlanRecord(
val type: PlanType,
val periodKey: String,
val canSubmit: Boolean,
val message: String?,
val myChecked: Boolean,
val myRecord: MyPlanRecord?,
val groups: List<PlanGroup>,
val unassignedCount: Int,
)
data class PlanSubmitData(
val content: String,
val attachments: List<String>,
val checked: Boolean,
val canSubmit: Boolean,
val message: String?,
val history: List<MyPlanRecord>,
)

View File

@@ -0,0 +1,19 @@
package com.mingyuan.android_client.core.model
data class ClassGroup(
val period: String,
val group: String,
val role: String,
)
data class UserProfile(
val displayName: String,
val name: String,
val studentId: String,
val phone: String?,
val role: String,
val group: String?,
val loginType: String,
val avatarUrl: String?,
val classGroups: List<ClassGroup>,
)