diff --git a/apps/web-antd/src/views/business/warehouse-drug-management/admin/api/index.ts b/apps/web-antd/src/views/business/warehouse-drug-management/admin/api/index.ts index 2b2904d1..f54364ab 100644 --- a/apps/web-antd/src/views/business/warehouse-drug-management/admin/api/index.ts +++ b/apps/web-antd/src/views/business/warehouse-drug-management/admin/api/index.ts @@ -6,7 +6,7 @@ const prefix = 'warehouse-drug-management/'; * 分页查询用户列表 * @param data */ -export async function getWesternMedicineList(data: any) { +export async function getWarehouseDrugManagementList(data: any) { return requestClient.get(`${prefix}list`, { params: data }); } @@ -14,7 +14,7 @@ export async function getWesternMedicineList(data: any) { * 分页查询用户列表 * @param data */ -export async function getWesternMedicineOption(data: any) { +export async function getWarehouseDrugManagementOption(data: any) { return requestClient.get(`${prefix}option`, { params: data }); } @@ -22,22 +22,28 @@ export async function getWesternMedicineOption(data: any) { * 获取西(中成)药详情 * @param id */ -export async function getWesternMedicineInfo(id: number) { +export async function getWarehouseDrugManagementInfo(id: number) { return requestClient.get(`${prefix}detail`, { params: { id } }); } /** - * 导出西药药品 + * 导出仓库药品药品 */ -export async function exportWesternMedicineApi() { +export async function exportWarehouseDrugManagementApi() { return requestClient.download(`${prefix}export`); } +/** + * 导出仓库药品药品 - 模板 + */ +export async function exportWarehouseDrugManagementTemplateApi() { + return requestClient.download(`${prefix}export-template`); +} /** * 新增西(中成)药 * @param data */ -export async function createWesternMedicine(data: Record) { +export async function createWarehouseDrugManagement(data: Record) { return requestClient.post(`${prefix}create`, data); } @@ -45,7 +51,7 @@ export async function createWesternMedicine(data: Record) { * 编辑西(中成)药 * @param data */ -export async function updateWesternMedicine(data: Record) { +export async function updateWarehouseDrugManagement(data: Record) { return requestClient.post(`${prefix}update`, data); } @@ -53,14 +59,22 @@ export async function updateWesternMedicine(data: Record) { * 删除西(中成)药 * @param data */ -export async function deleteWesternMedicine(data: Record) { +export async function deleteWarehouseDrugManagement(data: Record) { return requestClient.post(`${prefix}delete`, data); } /** - * 导入西药 + * 导入仓库药品 * @param data */ -export async function importWesternMedicineApi(data: Record) { +export async function importWarehouseDrugManagementApi(data: Record) { return requestClient.upload(`${prefix}import`, data); } + +/** + * 导入仓库药品修改价格 + * @param data + */ +export async function importUpdatePriceApi(data: Record) { + return requestClient.upload(`${prefix}import-update-price`, data); +} diff --git a/apps/web-antd/src/views/business/warehouse-drug-management/admin/components/ExcelUpload.vue b/apps/web-antd/src/views/business/warehouse-drug-management/admin/components/ExcelUpload.vue index 79597eea..07677719 100644 --- a/apps/web-antd/src/views/business/warehouse-drug-management/admin/components/ExcelUpload.vue +++ b/apps/web-antd/src/views/business/warehouse-drug-management/admin/components/ExcelUpload.vue @@ -3,28 +3,26 @@ import { ref } from 'vue'; import { useVbenModal } from '@vben/common-ui'; -import { message, UploadDragger } from 'ant-design-vue'; +import { + Button, + message, + type UploadChangeParam, + UploadDragger, +} from 'ant-design-vue'; -import { importWesternMedicineApi } from '../api'; +import { downloadByData } from '#/util/tool'; + +import { + exportWarehouseDrugManagementTemplateApi, + importUpdatePriceApi, + importWarehouseDrugManagementApi, +} from '../api'; const gridApi = ref(); +const passApplication = ref(); +const importType = ref(1); const fileList = ref([]); -const importWesternMedicine = (file) => { - const submitApi = importWesternMedicineApi; - submitApi({ - file: file.file, - }) - .then(() => { - message.success('导入成功'); - gridApi.value?.reload(); - modalApi.close(); - }) - .finally(() => { - }); -}; - - const [Modal, modalApi] = useVbenModal({ fullscreenButton: false, draggable: true, @@ -33,30 +31,73 @@ const [Modal, modalApi] = useVbenModal({ }, onConfirm: async () => { modalApi.setState({ loading: true, confirmLoading: true }); - const submitApi = importWesternMedicineApi; - submitApi({ - file: fileList.value, - }) - .then(() => { - message.success('导入成功'); - gridApi.value?.reload(); - modalApi.close(); - }) - .finally(() => { - modalApi.setState({ loading: false, confirmLoading: false }); - }); + gridApi.value?.reload(); + modalApi.close(); }, onOpenChange(isOpen: boolean) { gridApi.value = isOpen ? modalApi.getData()?.gridApi : null; + passApplication.value = isOpen ? modalApi.getData()?.passApplication : null; + importType.value = isOpen ? modalApi.getData()?.type : 1; + fileList.value = []; }, }); + +const importWarehouseDrugManagement = ({ file, onSuccess }) => { + modalApi.setState({ loading: true, confirmLoading: true }); + const submitApi = + importType.value === 1 + ? importWarehouseDrugManagementApi + : importUpdatePriceApi; + submitApi({ + file, + }) + .then(() => { + onSuccess('ok', { status: 'done' }); + }) + .catch(() => { + onSuccess('error', { status: 'error' }); + }) + .finally(() => { + modalApi.setState({ loading: false, confirmLoading: false }); + }); +}; +const handleChange = (info: UploadChangeParam) => { + if (info.file.status === 'uploading') { + return; + } + if (info.file.status === 'done') { + message.success('上传成功'); + } + if (info.file.status === 'error') { + message.error('upload error'); + } +}; + +const exportWarehouseDrugManagementTemplate = () => { + exportWarehouseDrugManagementTemplateApi().then((res) => { + // 创建新的URL表示指定的File对象或者Blob对象。 + downloadByData( + res.data, + '萧康云医-仓库商品导入模板结果导出(只包含未导入的药品).xlsx', + ); + message.success('导出成功!'); + }); +};