281 lines
7.3 KiB
Markdown
281 lines
7.3 KiB
Markdown
# 养老管理系统开发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
|
||
// ✅ 正确:使用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. 条件判断和空值处理
|
||
```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进行数据交互
|
||
- 包含完整的错误处理和用户反馈
|
||
|
||
开始开发时,请先确认技术方案,然后逐个模块实现。
|