// 模拟器官获取数据 const mockOrganProcurementData = [ { id: 1, hospitalNo: "D202512001", caseNo: "C202512001", donorName: "张三", gender: "2", age: 45, birthDate: "1978-05-15", diagnosis: "脑外伤", procurementStatus: "procured", procurementTime: "2025-12-01 16:30:00", registrant: "李协调员", registrationTime: "2025-12-01 15:00:00", createTime: "2025-12-01 10:00:00", surgeryName: "多器官获取手术", surgeryStartTime: "2025-12-01 14:00:00", donorDeathTime: "2025-12-01 13:30:00", abdominalAortaCannulationTime: "2025-12-01 14:30:00", inferiorVenaCavaCannulationTime: "2025-12-01 14:35:00", superiorMesentericVeinCannulationTime: "2025-12-01 14:40:00" }, { id: 2, hospitalNo: "D202512002", caseNo: "C202512002", donorName: "李四", gender: "1", age: 38, birthDate: "1985-08-22", diagnosis: "心脏骤停", procurementStatus: "procured", procurementTime: "2025-12-02 11:20:00", registrant: "张协调员", registrationTime: "2025-12-02 10:00:00", createTime: "2025-12-02 08:30:00", surgeryName: "心脏获取手术", surgeryStartTime: "2025-12-02 10:30:00", donorDeathTime: "2025-12-02 10:00:00", abdominalAortaCannulationTime: "2025-12-02 10:45:00", inferiorVenaCavaCannulationTime: "2025-12-02 10:50:00", superiorMesentericVeinCannulationTime: "2025-12-02 10:55:00" }, { id: 3, hospitalNo: "D202512003", caseNo: "C202512003", donorName: "王五", gender: "2", age: 52, birthDate: "1971-03-10", diagnosis: "脑梗死", procurementStatus: "pending", procurementTime: "", registrant: "赵协调员", registrationTime: "2025-12-03 17:20:00", createTime: "2025-12-03 14:00:00", surgeryName: "", surgeryStartTime: "", donorDeathTime: "", abdominalAortaCannulationTime: "", inferiorVenaCavaCannulationTime: "", superiorMesentericVeinCannulationTime: "" } ]; // 模拟器官获取记录数据 const mockProcurementRecordData = [ { id: 1, procurementId: 1, organName: "肝脏", organNo: "L001", organStartTime: "2025-12-01 15:00:00", organGetTime: "2025-12-01 15:45:00", gainHospitalNo: "H1001", gainHospitalName: "北京协和医院", organGetDoctor: "王医生", assistant: "李医生", procurementNurse: "张护士", operatingRoomNurse: "刘护士", anesthesiologist: "陈麻醉师", organState: "1", notGetReason: "" }, { id: 2, procurementId: 1, organName: "肾脏", organNo: "K001", organStartTime: "2025-12-01 15:10:00", organGetTime: "2025-12-01 15:50:00", gainHospitalNo: "H1002", gainHospitalName: "上海瑞金医院", organGetDoctor: "赵医生", assistant: "钱医生", procurementNurse: "孙护士", operatingRoomNurse: "周护士", anesthesiologist: "吴麻醉师", organState: "1", notGetReason: "" }, { id: 3, procurementId: 1, organName: "心脏", organNo: "H001", organStartTime: "2025-12-01 15:20:00", organGetTime: "2025-12-01 16:00:00", gainHospitalNo: "H1003", gainHospitalName: "广州中山医院", organGetDoctor: "郑医生", assistant: "王医生", procurementNurse: "林护士", operatingRoomNurse: "黄护士", anesthesiologist: "杨麻醉师", organState: "1", notGetReason: "" } ]; // 模拟医院数据 const mockHospitalData = [ { id: 1, hospitalNo: "H1001", hospitalName: "北京协和医院", type: "4" }, { id: 2, hospitalNo: "H1002", hospitalName: "上海瑞金医院", type: "4" }, { id: 3, hospitalNo: "H1003", hospitalName: "广州中山医院", type: "4" }, { id: 4, hospitalNo: "H1004", hospitalName: "武汉同济医院", type: "4" }, { id: 5, hospitalNo: "H1005", hospitalName: "成都华西医院", type: "4" } ]; // 模拟协调员数据 const mockCoordinatorData = [ { reportNo: "C001", reportName: "张协调员" }, { reportNo: "C002", reportName: "李协调员" }, { reportNo: "C003", reportName: "王协调员" }, { reportNo: "C004", reportName: "赵协调员" } ]; // 模拟API响应延迟 const delay = (ms = 500) => new Promise(resolve => setTimeout(resolve, ms)); // 查询器官获取列表 export const listOrganProcurement = async (queryParams = {}) => { await delay(); const { pageNum = 1, pageSize = 10, hospitalNo, donorName, procurementStatus } = queryParams; // 过滤数据 let filteredData = mockOrganProcurementData.filter(item => { let match = true; if (hospitalNo && !item.hospitalNo.includes(hospitalNo)) { match = false; } if (donorName && !item.donorName.includes(donorName)) { match = false; } if (procurementStatus && item.procurementStatus !== procurementStatus) { match = false; } return match; }); // 分页 const startIndex = (pageNum - 1) * pageSize; const endIndex = startIndex + parseInt(pageSize); const paginatedData = filteredData.slice(startIndex, endIndex); return { code: 200, message: "success", data: { rows: paginatedData, total: filteredData.length, pageNum: parseInt(pageNum), pageSize: parseInt(pageSize) } }; }; // 获取器官获取详细信息 export const getOrganProcurementDetail = async (id) => { await delay(); const detail = mockOrganProcurementData.find(item => item.id == id); if (detail) { // 获取获取记录 const procurementRecords = mockProcurementRecordData.filter(item => item.procurementId == id); return { code: 200, message: "success", data: { ...detail, procurementRecords } }; } else { return { code: 404, message: "器官获取记录不存在" }; } }; // 新增器官获取 export const addOrganProcurement = async (data) => { await delay(); const newId = Math.max(...mockOrganProcurementData.map(item => item.id), 0) + 1; const hospitalNo = `D${new Date().getFullYear()}${String(new Date().getMonth() + 1).padStart(2, '0')}${String(newId).padStart(3, '0')}`; const caseNo = `C${new Date().getFullYear()}${String(new Date().getMonth() + 1).padStart(2, '0')}${String(newId).padStart(3, '0')}`; const newRecord = { ...data, id: newId, hospitalNo, caseNo, registrationTime: new Date().toISOString().replace('T', ' ').substring(0, 19), createTime: new Date().toISOString().replace('T', ' ').substring(0, 19) }; mockOrganProcurementData.unshift(newRecord); return { code: 200, message: "新增成功", data: newRecord }; }; // 修改器官获取 export const updateOrganProcurement = async (data) => { await delay(); const index = mockOrganProcurementData.findIndex(item => item.id == data.id); if (index !== -1) { mockOrganProcurementData[index] = { ...mockOrganProcurementData[index], ...data, updateTime: new Date().toISOString().replace('T', ' ').substring(0, 19) }; return { code: 200, message: "修改成功", data: mockOrganProcurementData[index] }; } else { return { code: 404, message: "器官获取记录不存在" }; } }; // 删除器官获取 export const delOrganProcurement = async (ids) => { await delay(); const idArray = Array.isArray(ids) ? ids : [ids]; idArray.forEach(id => { const index = mockOrganProcurementData.findIndex(item => item.id == id); if (index !== -1) { mockOrganProcurementData.splice(index, 1); } }); return { code: 200, message: "删除成功" }; }; // 保存器官获取记录 export const saveProcurementRecords = async (procurementId, records) => { await delay(); // 删除该获取ID的所有记录 const existingIndexes = []; mockProcurementRecordData.forEach((item, index) => { if (item.procurementId == procurementId) { existingIndexes.push(index); } }); // 从后往前删除避免索引问题 existingIndexes.reverse().forEach(index => { mockProcurementRecordData.splice(index, 1); }); // 添加新记录 records.forEach(record => { const newId = Math.max(...mockProcurementRecordData.map(item => item.id), 0) + 1; mockProcurementRecordData.push({ ...record, id: newId, procurementId: procurementId }); }); return { code: 200, message: "保存成功", data: records }; }; // 获取医院列表 export const getHospitalList = async () => { await delay(); return { code: 200, message: "success", data: mockHospitalData }; }; // 获取协调员列表 export const getCoordinatorList = async () => { await delay(); return { code: 200, message: "success", data: mockCoordinatorData }; }; export default { listOrganProcurement, getOrganProcurementDetail, addOrganProcurement, updateOrganProcurement, delOrganProcurement, saveProcurementRecords, getHospitalList, getCoordinatorList };