Files
akmon/doc_eldercare/eldercare_system_prompt.md
2026-01-20 08:04:15 +08:00

7.3 KiB
Raw Blame History

养老管理系统开发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. 数据结构处理

// ✅ 正确使用UTSJSONObjectfor循环
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. 性能优化

  • 大屏小屏不同的渲染策略
  • 数据懒加载
  • 图片压缩和缓存

具体开发任务

请基于以上规范和要求,开发一套完整的多租户养老管理系统,包括:

  1. 管理员端功能:租户管理、老人管理、护理员管理、数据统计、计费管理
  2. 护理员端功能:护理记录、健康监测、工作排班、消息通知
  3. 家属端功能:老人状态查看、护理记录查看、费用查询、在线沟通

每个功能模块都要:

  • 严格遵循UTS Android开发规范
  • 支持多租户数据隔离
  • 实现响应式设计(大屏/小屏适配)
  • 使用aksupainstance进行数据交互
  • 包含完整的错误处理和用户反馈

开始开发时,请先确认技术方案,然后逐个模块实现。