|  |  | 
 |  |  | // 获取列表数据 | 
 |  |  | const getList = () => { | 
 |  |  |     tableLoading.value = true; | 
 |  |  |     // 取消注释并使用真实API | 
 |  |  |     // expiryAfterSalesListPage({ | 
 |  |  |     //     ...searchForm.value, | 
 |  |  |     //     current: page.value.current, | 
 |  |  |     //     size: page.value.size | 
 |  |  |     // }).then(res => { | 
 |  |  |     //     tableData.value = res.data.records; | 
 |  |  |     //     page.value.total = res.data.total; | 
 |  |  |     //     tableLoading.value = false; | 
 |  |  |     // }); | 
 |  |  |      | 
 |  |  |     // 模拟异步请求 | 
 |  |  |     setTimeout(() => { | 
 |  |  |         // 假数据 | 
 |  |  |         const mockData = [ | 
 |  |  |             { | 
 |  |  |                 id: 1, | 
 |  |  |                 productName: "维生素C片", | 
 |  |  |                 batchNumber: "VC20240801", | 
 |  |  |                 expiryDate: "2024-12-15", | 
 |  |  |                 stockQuantity: 150, | 
 |  |  |                 customerName: "张三药店", | 
 |  |  |                 problemDesc: "临近保质期需要处理", | 
 |  |  |                 status: 1, | 
 |  |  |                 handlerName: "", | 
 |  |  |                 handleDate: "", | 
 |  |  |             }, | 
 |  |  |             { | 
 |  |  |                 id: 2, | 
 |  |  |                 productName: "阿莫西林胶囊", | 
 |  |  |                 batchNumber: "AM20240715", | 
 |  |  |                 expiryDate: "2024-11-20", | 
 |  |  |                 stockQuantity: 80, | 
 |  |  |                 customerName: "李四医院", | 
 |  |  |                 problemDesc: "库存积压,临期处理", | 
 |  |  |                 status: 2, | 
 |  |  |                 handlerName: "王五", | 
 |  |  |                 handleDate: "2024-09-25", | 
 |  |  |             }, | 
 |  |  |             { | 
 |  |  |                 id: 3, | 
 |  |  |                 productName: "感冒灵颗粒", | 
 |  |  |                 batchNumber: "GM20240620", | 
 |  |  |                 expiryDate: "2024-10-30", | 
 |  |  |                 stockQuantity: 200, | 
 |  |  |                 customerName: "赵六诊所", | 
 |  |  |                 problemDesc: "季节性药品,需要清理库存", | 
 |  |  |                 status: 1, | 
 |  |  |                 handlerName: "", | 
 |  |  |                 handleDate: "", | 
 |  |  |             }, | 
 |  |  |             { | 
 |  |  |                 id: 4, | 
 |  |  |                 productName: "复合维生素片", | 
 |  |  |                 batchNumber: "FH20240510", | 
 |  |  |                 expiryDate: "2024-12-01", | 
 |  |  |                 stockQuantity: 300, | 
 |  |  |                 customerName: "钱七连锁", | 
 |  |  |                 problemDesc: "临期产品退换申请", | 
 |  |  |                 status: 2, | 
 |  |  |                 handlerName: "孙八", | 
 |  |  |                 handleDate: "2024-09-20", | 
 |  |  |             }, | 
 |  |  |             { | 
 |  |  |                 id: 5, | 
 |  |  |                 productName: "板蓝根颗粒", | 
 |  |  |                 batchNumber: "BL20240430", | 
 |  |  |                 expiryDate: "2024-11-10", | 
 |  |  |                 stockQuantity: 120, | 
 |  |  |                 customerName: "周九药房", | 
 |  |  |                 problemDesc: "批次问题,需要召回", | 
 |  |  |                 status: 1, | 
 |  |  |                 handlerName: "", | 
 |  |  |                 handleDate: "", | 
 |  |  |             } | 
 |  |  |         ]; | 
 |  |  |  | 
 |  |  |         // 简单的搜索过滤 | 
 |  |  |         let filteredData = mockData; | 
 |  |  | 		 | 
 |  |  |         if (searchForm.value.status !== "" && searchForm.value.status !== null) { | 
 |  |  |             filteredData = filteredData.filter(item => item.status === searchForm.value.status); | 
 |  |  |         } | 
 |  |  | 		 | 
 |  |  |         if (searchForm.value.expiryDate) { | 
 |  |  |             filteredData = filteredData.filter(item => item.expiryDate === searchForm.value.expiryDate); | 
 |  |  |         } | 
 |  |  | 		 | 
 |  |  |         if (searchForm.value.handleDate) { | 
 |  |  |             filteredData = filteredData.filter(item => item.handleDate === searchForm.value.handleDate); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 分页处理 | 
 |  |  |         const start = (page.value.current - 1) * page.value.size; | 
 |  |  |         const end = start + page.value.size; | 
 |  |  |         const paginatedData = filteredData.slice(start, end); | 
 |  |  |  | 
 |  |  |         tableLoading.value = false; | 
 |  |  |         tableData.value = paginatedData; | 
 |  |  |         page.value.total = filteredData.length; | 
 |  |  |     }, 500); // 模拟网络延迟 | 
 |  |  |     // 暂时返回空数据 | 
 |  |  |     tableData.value = []; | 
 |  |  |     page.value.total = 0; | 
 |  |  |     tableLoading.value = false; | 
 |  |  | }; | 
 |  |  |  | 
 |  |  | // 打开弹框 | 
 |  |  | 
 |  |  |     }) | 
 |  |  |         .then(() => { | 
 |  |  |             tableLoading.value = true; | 
 |  |  |             // 取消注释并使用真实API | 
 |  |  |             // expiryAfterSalesDelete(ids).then(() => { | 
 |  |  |             //     proxy.$modal.msgSuccess("删除成功"); | 
 |  |  |             //     getList(); | 
 |  |  |             // }).finally(() => { | 
 |  |  |             //     tableLoading.value = false; | 
 |  |  |             // }); | 
 |  |  |              | 
 |  |  |             // 模拟删除操作 | 
 |  |  |             setTimeout(() => { | 
 |  |  |                 tableLoading.value = false; | 
 |  |  |                 proxy.$modal.msgSuccess("删除成功"); | 
 |  |  |                 console.log("模拟删除的数据ID:", ids); | 
 |  |  |                 getList(); // 重新获取数据 | 
 |  |  |             }, 300); | 
 |  |  |             // 暂时模拟删除成功 | 
 |  |  |             tableLoading.value = false; | 
 |  |  |             proxy.$modal.msgSuccess("删除成功"); | 
 |  |  |             getList(); | 
 |  |  |         }) | 
 |  |  |         .catch(() => { | 
 |  |  |             proxy.$modal.msg("已取消"); | 
 
 |  |  | 
 |  |  | <script setup name="NearExpiryReturn"> | 
 |  |  | import { ref, reactive, onMounted } from "vue"; | 
 |  |  | import { ElMessageBox } from "element-plus"; | 
 |  |  | import { | 
 |  |  |   nearExpiryReturnListPage, | 
 |  |  |   nearExpiryReturnAdd, | 
 |  |  |   nearExpiryReturnUpdate, | 
 |  |  |   nearExpiryReturnDel, | 
 |  |  |   nearExpiryReturnDetail | 
 |  |  | } from "@/api/qualityManagement/nearExpiryReturn"; | 
 |  |  | // API接口已移除,不再调用后端接口 | 
 |  |  |  | 
 |  |  | const { proxy } = getCurrentInstance(); | 
 |  |  | const { parseTime } = proxy; | 
 |  |  | 
 |  |  | /** 查询临期退回台账列表 */ | 
 |  |  | function getList() { | 
 |  |  |   loading.value = true; | 
 |  |  |   // 使用假数据 | 
 |  |  |   const mockData = { | 
 |  |  |     records: [ | 
 |  |  |       { | 
 |  |  |         id: 1, | 
 |  |  |         productName: "维生素C片", | 
 |  |  |         productSpec: "100mg×30片", | 
 |  |  |         batchNumber: "VC20240315001", | 
 |  |  |         productionDate: "2024-03-15", | 
 |  |  |         expiryDate: "2024-09-15", | 
 |  |  |         returnQuantity: 50, | 
 |  |  |         returnReason: "临近保质期", | 
 |  |  |         returnDate: "2024-09-10", | 
 |  |  |         status: "1", | 
 |  |  |         remark: "退回仓库处理" | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         id: 2, | 
 |  |  |         productName: "阿莫西林胶囊", | 
 |  |  |         productSpec: "250mg×24粒", | 
 |  |  |         batchNumber: "AMX20240220002", | 
 |  |  |         productionDate: "2024-02-20", | 
 |  |  |         expiryDate: "2024-08-20", | 
 |  |  |         returnQuantity: 30, | 
 |  |  |         returnReason: "包装破损且临期", | 
 |  |  |         returnDate: "2024-08-18", | 
 |  |  |         status: "2", | 
 |  |  |         remark: "已销毁处理" | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         id: 3, | 
 |  |  |         productName: "感冒灵颗粒", | 
 |  |  |         productSpec: "10g×12袋", | 
 |  |  |         batchNumber: "GML20240110003", | 
 |  |  |         productionDate: "2024-01-10", | 
 |  |  |         expiryDate: "2024-07-10", | 
 |  |  |         returnQuantity: 25, | 
 |  |  |         returnReason: "临近保质期", | 
 |  |  |         returnDate: "2024-07-08", | 
 |  |  |         status: "0", | 
 |  |  |         remark: "待重新包装" | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         id: 4, | 
 |  |  |         productName: "复合维生素片", | 
 |  |  |         productSpec: "60片/瓶", | 
 |  |  |         batchNumber: "VB20240405004", | 
 |  |  |         productionDate: "2024-04-05", | 
 |  |  |         expiryDate: "2025-04-05", | 
 |  |  |         returnQuantity: 80, | 
 |  |  |         returnReason: "临近保质期", | 
 |  |  |         returnDate: "2024-09-25", | 
 |  |  |         status: "1", | 
 |  |  |         remark: "正在联系销售渠道" | 
 |  |  |       }, | 
 |  |  |       { | 
 |  |  |         id: 5, | 
 |  |  |         productName: "钙片", | 
 |  |  |         productSpec: "600mg×100片", | 
 |  |  |         batchNumber: "CA20240301005", | 
 |  |  |         productionDate: "2024-03-01", | 
 |  |  |         expiryDate: "2024-09-01", | 
 |  |  |         returnQuantity: 120, | 
 |  |  |         returnReason: "包装问题且临期", | 
 |  |  |         returnDate: "2024-08-30", | 
 |  |  |         status: "2", | 
 |  |  |         remark: "已完成退货处理" | 
 |  |  |       } | 
 |  |  |     ], | 
 |  |  |     total: 5 | 
 |  |  |   }; | 
 |  |  |  | 
 |  |  |   // 模拟过滤逻辑 | 
 |  |  |   let filteredRecords = mockData.records; | 
 |  |  |    | 
 |  |  |   if (queryParams.value.productName) { | 
 |  |  |     filteredRecords = filteredRecords.filter(item =>  | 
 |  |  |       item.productName.includes(queryParams.value.productName) | 
 |  |  |     ); | 
 |  |  |   } | 
 |  |  |    | 
 |  |  |   if (queryParams.value.batchNumber) { | 
 |  |  |     filteredRecords = filteredRecords.filter(item =>  | 
 |  |  |       item.batchNumber.includes(queryParams.value.batchNumber) | 
 |  |  |     ); | 
 |  |  |   } | 
 |  |  |    | 
 |  |  |   if (queryParams.value.returnDate) { | 
 |  |  |     filteredRecords = filteredRecords.filter(item =>  | 
 |  |  |       item.returnDate === queryParams.value.returnDate | 
 |  |  |     ); | 
 |  |  |   } | 
 |  |  |  | 
 |  |  |   nearExpiryReturnList.value = filteredRecords; | 
 |  |  |   total.value = filteredRecords.length; | 
 |  |  |   // 不调用接口,返回空数据 | 
 |  |  |   nearExpiryReturnList.value = []; | 
 |  |  |   total.value = 0; | 
 |  |  |   loading.value = false; | 
 |  |  | } | 
 |  |  |  | 
 |  |  | 
 |  |  | /** 修改按钮操作 */ | 
 |  |  | function handleUpdate(row) { | 
 |  |  |   reset(); | 
 |  |  |   const id = row.id || ids.value; | 
 |  |  |    | 
 |  |  |   // 使用假数据获取详情 | 
 |  |  |   const mockDetail = nearExpiryReturnList.value.find(item => item.id === (Array.isArray(id) ? id[0] : id)); | 
 |  |  |   if (mockDetail) { | 
 |  |  |     form.value = { ...mockDetail }; | 
 |  |  |   // 不调用接口,直接使用传入的数据 | 
 |  |  |   if (row) { | 
 |  |  |     form.value = { ...row }; | 
 |  |  |     open.value = true; | 
 |  |  |     title.value = "修改临期退回台账"; | 
 |  |  |   } | 
 |  |  | 
 |  |  | function submitForm() { | 
 |  |  |   proxy.$refs["formRef"].validate(valid => { | 
 |  |  |     if (valid) { | 
 |  |  |       // 不调用接口,只显示成功提示 | 
 |  |  |       if (form.value.id != null) { | 
 |  |  |         // 模拟更新 | 
 |  |  |         const index = nearExpiryReturnList.value.findIndex(item => item.id === form.value.id); | 
 |  |  |         if (index !== -1) { | 
 |  |  |           nearExpiryReturnList.value[index] = { ...form.value }; | 
 |  |  |         } | 
 |  |  |         proxy.$modal.msgSuccess("修改成功"); | 
 |  |  |         open.value = false; | 
 |  |  |         getList(); | 
 |  |  |       } else { | 
 |  |  |         // 模拟新增 | 
 |  |  |         const newId = Math.max(...nearExpiryReturnList.value.map(item => item.id)) + 1; | 
 |  |  |         nearExpiryReturnList.value.push({ ...form.value, id: newId }); | 
 |  |  |         total.value = nearExpiryReturnList.value.length; | 
 |  |  |         proxy.$modal.msgSuccess("新增成功"); | 
 |  |  |         open.value = false; | 
 |  |  |         getList(); | 
 |  |  |       } | 
 |  |  |       open.value = false; | 
 |  |  |       getList(); | 
 |  |  |     } | 
 |  |  |   }); | 
 |  |  | } | 
 |  |  | 
 |  |  |     cancelButtonText: "取消", | 
 |  |  |     type: "warning" | 
 |  |  |   }).then(function() { | 
 |  |  |     // 模拟删除 | 
 |  |  |     if (Array.isArray(deleteIds)) { | 
 |  |  |       deleteIds.forEach(id => { | 
 |  |  |         const index = nearExpiryReturnList.value.findIndex(item => item.id === id); | 
 |  |  |         if (index !== -1) { | 
 |  |  |           nearExpiryReturnList.value.splice(index, 1); | 
 |  |  |         } | 
 |  |  |       }); | 
 |  |  |     } else { | 
 |  |  |       const index = nearExpiryReturnList.value.findIndex(item => item.id === deleteIds); | 
 |  |  |       if (index !== -1) { | 
 |  |  |         nearExpiryReturnList.value.splice(index, 1); | 
 |  |  |       } | 
 |  |  |     } | 
 |  |  |     getList(); | 
 |  |  |     // 不调用接口,只显示成功提示 | 
 |  |  |     proxy.$modal.msgSuccess("删除成功"); | 
 |  |  |     getList(); | 
 |  |  |   }).catch(() => {}); | 
 |  |  | } | 
 |  |  |  | 
 |  |  | /** 导出按钮操作 */ | 
 |  |  | function handleExport() { | 
 |  |  |   proxy.download('quality/nearExpiryReturn/export', { | 
 |  |  |     ...queryParams.value | 
 |  |  |   }, `临期退回台账_${new Date().getTime()}.xlsx`); | 
 |  |  |   // 不调用接口,只显示提示 | 
 |  |  |   proxy.$modal.msgSuccess("导出功能暂未实现"); | 
 |  |  | } | 
 |  |  |  | 
 |  |  | onMounted(() => { | 
 |  |  |   getList(); | 
 |  |  | }); | 
 |  |  | </script> | 
 |  |  |  |