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

281 lines
7.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 养老管理系统开发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. 变量和类型声明
```typescript
// ✅ 正确使用let/const明确类型
const items = ref<UTSJSONObject[]>([])
const itemCount = ref<number>(0)
let currentIndex: number = 0
// ❌ 错误不要使用var不要使用简写数组
var data = []
const list: Item[] = []
```
### 2. 数据结构处理
```typescript
// ✅ 正确使用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. 条件判断和空值处理
```typescript
// ✅ 正确严格的boolean判断
if (userName !== null && userName !== '') {
// 处理逻辑
}
// 使用??进行空值合并
const title = item.getString('title') ?? '默认标题'
// ❌ 错误:不要使用隐式转换
if (userName) { } // 错误
if (!data) { } // 错误
```
### 4. 类型定义
```typescript
// ✅ 正确使用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样式规范
```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. 数据交互模式
```typescript
// 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. 响应式设计模式
```typescript
// 屏幕尺寸适配
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)
```typescript
// 租户相关类型
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进行数据交互
- 包含完整的错误处理和用户反馈
开始开发时,请先确认技术方案,然后逐个模块实现。