110 lines
2.4 KiB
JavaScript
110 lines
2.4 KiB
JavaScript
import request from '@/utils/request'
|
|
|
|
function today() {
|
|
return new Date().toISOString().substring(0, 10)
|
|
}
|
|
|
|
function normalizeQuery(query = {}) {
|
|
const params = { ...query }
|
|
if (params.keys && !params.keyword) {
|
|
params.keyword = params.keys
|
|
}
|
|
if (params.status) {
|
|
params.status = {
|
|
1: 0,
|
|
2: 1,
|
|
3: 3,
|
|
4: 2
|
|
}[params.status] ?? params.status
|
|
}
|
|
delete params.keys
|
|
return params
|
|
}
|
|
|
|
function normalizeStatus(status) {
|
|
return {
|
|
0: '1',
|
|
1: '2',
|
|
2: '4',
|
|
3: '3'
|
|
}[status] || String(status || '')
|
|
}
|
|
|
|
function normalizeRecord(record = {}) {
|
|
const plannedTime = record.plannedTime || ''
|
|
const plannedDate = record.plannedDate || ''
|
|
return {
|
|
...record,
|
|
status: normalizeStatus(record.status),
|
|
shortName: record.shortName || record.medicineName || '',
|
|
brand: record.brand || '',
|
|
dosage: record.dosage || record.plannedDosage || '',
|
|
dosageUnit: record.dosageUnit || '',
|
|
scheduledTime: record.scheduledTime || `${plannedDate} ${plannedTime}`.trim()
|
|
}
|
|
}
|
|
|
|
function normalizeListResponse(res) {
|
|
const rows = (res.rows || []).map(normalizeRecord)
|
|
return {
|
|
...res,
|
|
rows,
|
|
data: Array.isArray(res.data) ? res.data.map(normalizeRecord) : res.data
|
|
}
|
|
}
|
|
|
|
// 查询服药任务列表,兼容页面中的 medicationRecord 命名
|
|
export function listMedicationRecord(query) {
|
|
return request({
|
|
url: '/health/medicationTask/list',
|
|
method: 'get',
|
|
params: normalizeQuery(query)
|
|
}).then(normalizeListResponse)
|
|
}
|
|
|
|
// 查询今日服药任务
|
|
export function getTodayRecords() {
|
|
return listMedicationRecord({
|
|
pageNum: 1,
|
|
pageSize: 100,
|
|
queryDate: today()
|
|
}).then(res => ({
|
|
...res,
|
|
data: res.data || res.rows || []
|
|
}))
|
|
}
|
|
|
|
// 查询某计划某天的服药任务
|
|
export function getRecordsByPlanAndDate(planId, queryDate) {
|
|
return listMedicationRecord({
|
|
pageNum: 1,
|
|
pageSize: 100,
|
|
planId,
|
|
queryDate
|
|
}).then(res => ({
|
|
...res,
|
|
data: res.data || res.rows || []
|
|
}))
|
|
}
|
|
|
|
// 确认服药
|
|
export function takeMedication(id, dosage, confirmTime) {
|
|
return request({
|
|
url: '/health/medicationTask/confirm/' + id,
|
|
method: 'put',
|
|
params: {
|
|
confirmType: 1,
|
|
confirmTime
|
|
}
|
|
})
|
|
}
|
|
|
|
// 跳过服药
|
|
export function skipMedication(id, notes) {
|
|
return request({
|
|
url: '/health/medicationTask/skip/' + id,
|
|
method: 'put',
|
|
params: { notes }
|
|
})
|
|
}
|