7.3 KiB
7.3 KiB
养老管理系统开发Prompt - Sonnet 4 Agent
项目概述
开发一套基于uni-app-x的多租户养老管理系统,严格遵循UTS Android开发规范,支持大屏和小屏响应式设计。 强烈要求参考sport/student/下面的页面来处理
技术栈要求
- 前端框架: uni-app-x (注意:不是uni-app)
- 语言: UTS (TypeScript的子集)
- 数据库: PostgreSQL + Supabase
- 状态管理: 自定义store模式
- UI组件: 原生组件 + 自定义组件
- 数据交互: aksupainstance (自定义Supabase实例)
UTS Android严格开发规范
1. 变量和类型声明
// ✅ 正确:使用let/const,明确类型
const items = ref<UTSJSONObject[]>([])
const itemCount = ref<number>(0)
let currentIndex: number = 0
// ❌ 错误:不要使用var,不要使用简写数组
var data = []
const list: Item[] = []
2. 数据结构处理
// ✅ 正确:使用UTSJSONObject,for循环
const processData = (data: UTSJSONObject[]) => {
for (let i: number = 0; i < data.length; i++) {
const item = data[i] as UTSJSONObject
const name = item.getString('name') ?? ''
const age = item.getNumber('age') ?? 0
}
}
// ❌ 错误:不要使用map、forEach、safeGet
data.map(item => safeGet(item, 'name', ''))
3. 条件判断和空值处理
// ✅ 正确:严格的boolean判断
if (userName !== null && userName !== '') {
// 处理逻辑
}
// 使用??进行空值合并
const title = item.getString('title') ?? '默认标题'
// ❌ 错误:不要使用隐式转换
if (userName) { } // 错误
if (!data) { } // 错误
4. 类型定义
// ✅ 正确:使用type,不要使用interface
export type ElderInfo = {
id: string
name: string
age: number
roomNumber: string
healthStatus: string
createdAt: string
}
export type TenantInfo = {
tenantId: string
tenantName: string
adminUserId: string
settings: UTSJSONObject
}
// ❌ 错误:不要使用interface
interface UserData { } // 不支持
5. CSS样式规范
/* ✅ 正确:支持的样式 */
.container {
display: flex;
flex-direction: column;
padding: 20rpx;
margin: 10rpx;
background-color: #ffffff;
border-radius: 10rpx;
}
/* ❌ 错误:不支持的样式 */
.grid-container {
display: grid; /* 不支持 */
gap: 10px; /* 不支持 */
min-height: 100%; /* 不支持百分比 */
}
/* 不支持伪类选择器 */
.button:hover { } /* 错误 */
.input[disabled] { } /* 错误 */
系统功能模块设计
1. 多租户架构
- 租户管理(tenant_management)
- 用户权限管理(user_roles)
- 数据隔离(tenant_data_isolation)
- 计费管理(billing_management)
2. 核心业务模块
- 老人信息管理(elder_management)
- 护理人员管理(caregiver_management)
- 健康监测(health_monitoring)
- 服务记录(service_records)
- 家属沟通(family_communication)
- 费用管理(fee_management)
- 设备管理(device_management)
- 安全监控(security_monitoring)
3. 数据交互模式
// Supabase组件使用模式
const eldersRef = ref<SupadbComponentPublicInstance | null>(null)
const loadElderData = () => {
if (eldersRef.value !== null) {
const loadData = eldersRef.value!!.loadData
loadData({ clear: false })
}
}
// 监听数据变化
const handleElderData = (result: UTSJSONObject) => {
const data = result.get('data')
if (data !== null && Array.isArray(data)) {
eldersList.value = data as UTSJSONObject[]
}
}
4. 响应式设计模式
// 屏幕尺寸适配
const screenWidth = ref<number>(0)
const isLargeScreen = computed(() => screenWidth.value > 768)
const handleResize = () => {
const systemInfo = uni.getSystemInfoSync()
screenWidth.value = systemInfo.screenWidth
}
onMounted(() => {
handleResize()
uni.onWindowResize(handleResize)
})
页面结构要求
1. 目录结构
pages/
├── eldercare/ # 养老管理主目录
│ ├── admin/ # 管理员端
│ │ ├── dashboard.uvue # 管理仪表板
│ │ ├── tenant-management.uvue # 租户管理
│ │ ├── elder-management.uvue # 老人管理
│ │ ├── caregiver-management.uvue # 护理员管理
│ │ └── billing.uvue # 计费管理
│ ├── caregiver/ # 护理员端
│ │ ├── dashboard.uvue # 护理仪表板
│ │ ├── elder-care.uvue # 护理记录
│ │ ├── health-check.uvue # 健康检查
│ │ └── schedule.uvue # 工作排班
│ ├── family/ # 家属端
│ │ ├── elder-status.uvue # 老人状态
│ │ ├── communication.uvue # 沟通交流
│ │ └── payment.uvue # 费用查看
│ └── types.uts # 类型定义
2. 类型定义文件 (types.uts)
// 租户相关类型
export type TenantInfo = {
tenantId: string
tenantName: string
contactPerson: string
contactPhone: string
address: string
status: string
createdAt: string
settings: UTSJSONObject
}
// 老人信息类型
export type ElderProfile = {
elderId: string
tenantId: string
name: string
age: number
gender: string
idNumber: string
roomNumber: string
emergencyContact: string
healthStatus: string
careLevel: string
admissionDate: string
profilePicture: string
medicalHistory: UTSJSONObject
}
// 护理员类型
export type CaregiverProfile = {
caregiverId: string
tenantId: string
name: string
phone: string
position: string
certification: string
workShift: string
assignedElders: Array<string>
status: string
}
// 护理记录类型
export type CareRecord = {
recordId: string
elderId: string
caregiverId: string
recordType: string
description: string
timestamp: string
images: Array<string>
vitalSigns: UTSJSONObject
}
开发指导原则
1. 组件开发
- 每个页面独立成组件,避免深层嵌套
- 使用计算属性处理复杂逻辑
- 模板中的变量保持一维结构
2. 数据处理
- 所有数据使用UTSJSONObject格式
- 避免使用map、forEach等高阶函数
- 使用for循环处理数组数据
3. 错误处理
- 所有异步操作必须有try-catch
- 用户友好的错误提示
- 网络异常的重试机制
4. 性能优化
- 大屏小屏不同的渲染策略
- 数据懒加载
- 图片压缩和缓存
具体开发任务
请基于以上规范和要求,开发一套完整的多租户养老管理系统,包括:
- 管理员端功能:租户管理、老人管理、护理员管理、数据统计、计费管理
- 护理员端功能:护理记录、健康监测、工作排班、消息通知
- 家属端功能:老人状态查看、护理记录查看、费用查询、在线沟通
每个功能模块都要:
- 严格遵循UTS Android开发规范
- 支持多租户数据隔离
- 实现响应式设计(大屏/小屏适配)
- 使用aksupainstance进行数据交互
- 包含完整的错误处理和用户反馈
开始开发时,请先确认技术方案,然后逐个模块实现。