From bde016be027840a9afd8ac7cb2a89581271e17e2 Mon Sep 17 00:00:00 2001 From: zch Date: Fri, 18 Jul 2025 13:49:36 +0800 Subject: [PATCH] =?UTF-8?q?feat(qms):=20=E6=B7=BB=E5=8A=A0=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在多个 QMS 相关模块中添加了导入数据的功能- 新增 importData 函数用于处理导入操作 - 在前端页面中添加了导入按钮和相关逻辑 - 优化了部分模块的界面布局 --- src/api/qms/QcInspectionMain/index.ts | 17 ++++++ src/api/qms/qcInspectionItem/index.ts | 18 ++++++ src/api/qms/qcInspectionItemCategory/index.ts | 14 +++++ src/api/qms/qcInspectionResult/index.ts | 17 ++++++ src/api/qms/qcInspectionTemplate/index.ts | 27 +++++++-- src/api/qms/qcInspectionType/index.ts | 17 ++++++ src/api/qms/qcTemplateItem/index.ts | 18 ++++++ src/views/qms/QcInspectionMain/index.vue | 28 ++++++++++ src/views/qms/qcInspectionItem/index.vue | 30 +++++++++- .../qms/qcInspectionItemCategory/index.vue | 56 ++++++++++++++++++- src/views/qms/qcInspectionType/index.vue | 52 ++++++++++++++--- 11 files changed, 279 insertions(+), 15 deletions(-) diff --git a/src/api/qms/QcInspectionMain/index.ts b/src/api/qms/QcInspectionMain/index.ts index 94a9f9b..17c46b8 100644 --- a/src/api/qms/QcInspectionMain/index.ts +++ b/src/api/qms/QcInspectionMain/index.ts @@ -75,3 +75,20 @@ export function getQcInspectionMainList (query) { params: query }); }; + +/** + * 导入数据 + * + * @param file 导入文件 + * @param updateSupport 是否更新已存在数据 + */ +export const importData = (file: File, updateSupport: boolean) => { + const formData = new FormData(); + formData.append('file', file); + formData.append('updateSupport', updateSupport.toString()); + return request({ + url: '/qms/QcInspectionMain/importData', + method: 'post', + data: formData + }); +}; \ No newline at end of file diff --git a/src/api/qms/qcInspectionItem/index.ts b/src/api/qms/qcInspectionItem/index.ts index b2d1040..a9ea6b8 100644 --- a/src/api/qms/qcInspectionItem/index.ts +++ b/src/api/qms/qcInspectionItem/index.ts @@ -75,3 +75,21 @@ export function getQcInspectionItemList (query) { params: query }); }; + +/** + * 导入数据 + * + * @param file 导入文件 + * @param updateSupport 是否更新已存在数据 + */ +export const importData = (file: File, updateSupport: boolean) => { + const formData = new FormData(); + formData.append('file', file); + formData.append('updateSupport', updateSupport.toString()); + return request({ + url: '/qms/qcInspectionItem/importData', + method: 'post', + data: formData + }); +}; + diff --git a/src/api/qms/qcInspectionItemCategory/index.ts b/src/api/qms/qcInspectionItemCategory/index.ts index 20522d5..95017f9 100644 --- a/src/api/qms/qcInspectionItemCategory/index.ts +++ b/src/api/qms/qcInspectionItemCategory/index.ts @@ -75,3 +75,17 @@ export function getQcInspectionItemCategoryList (query) { params: query }); }; + + /** + * 导入数据 + * + * @param file 导入文件 + * @param updateSupport 是否更新已存在数据 + */ + export const importData = (file: File, updateSupport: boolean) => { + return request({ + url: '/qms/qcInspectionItemCategory/importData', + method: 'post', + data: { file, updateSupport } + }); + }; diff --git a/src/api/qms/qcInspectionResult/index.ts b/src/api/qms/qcInspectionResult/index.ts index 8109a8f..8a31f4c 100644 --- a/src/api/qms/qcInspectionResult/index.ts +++ b/src/api/qms/qcInspectionResult/index.ts @@ -75,3 +75,20 @@ export function getQcInspectionResultList (query) { params: query }); }; + +/** + * 导入数据 + * + * @param file 导入文件 + * @param updateSupport 是否更新已存在数据 + */ +export const importData = (file: File, updateSupport: boolean) => { + const formData = new FormData(); + formData.append('file', file); + formData.append('updateSupport', updateSupport.toString()); + return request({ + url: '/qms/qcInspectionResult/importData', + method: 'post', + data: formData + }); +}; \ No newline at end of file diff --git a/src/api/qms/qcInspectionTemplate/index.ts b/src/api/qms/qcInspectionTemplate/index.ts index ed46a60..4af727d 100644 --- a/src/api/qms/qcInspectionTemplate/index.ts +++ b/src/api/qms/qcInspectionTemplate/index.ts @@ -17,7 +17,7 @@ export const listQcInspectionTemplate = (query?: QcInspectionTemplateQuery): Axi }; /** - * 查询检测模板主详细 + * 查询检测模板主表详细 * @param templateId */ export const getQcInspectionTemplate = (templateId: string | number): AxiosPromise => { @@ -28,7 +28,7 @@ export const getQcInspectionTemplate = (templateId: string | number): AxiosPromi }; /** - * 新增检测模板主 + * 新增检测模板主表 * @param data */ export const addQcInspectionTemplate = (data: QcInspectionTemplateForm) => { @@ -40,7 +40,7 @@ export const addQcInspectionTemplate = (data: QcInspectionTemplateForm) => { }; /** - * 修改检测模板主 + * 修改检测模板主表 * @param data */ export const updateQcInspectionTemplate = (data: QcInspectionTemplateForm) => { @@ -52,7 +52,7 @@ export const updateQcInspectionTemplate = (data: QcInspectionTemplateForm) => { }; /** - * 删除检测模板主 + * 删除检测模板主表 * @param templateId */ export const delQcInspectionTemplate = (templateId: string | number | Array) => { @@ -64,7 +64,7 @@ export const delQcInspectionTemplate = (templateId: string | number | Array { + const formData = new FormData(); + formData.append('file', file); + formData.append('updateSupport', updateSupport.toString()); + return request({ + url: '/qms/qcInspectionTemplate/importData', + method: 'post', + data: formData + }); +}; \ No newline at end of file diff --git a/src/api/qms/qcInspectionType/index.ts b/src/api/qms/qcInspectionType/index.ts index 126a6f6..d6431fe 100644 --- a/src/api/qms/qcInspectionType/index.ts +++ b/src/api/qms/qcInspectionType/index.ts @@ -75,3 +75,20 @@ export function getQcInspectionTypeList (query) { params: query }); }; + + /** + * 导入数据 + * + * @param file 导入文件 + * @param updateSupport 是否更新已存在数据 + */ + export const importData = (file: File, updateSupport: boolean) => { + const formData = new FormData(); + formData.append('file', file); + formData.append('updateSupport', updateSupport.toString()); + return request({ + url: '/qms/qcInspectionType/importData', + method: 'post', + data: formData + }); +}; \ No newline at end of file diff --git a/src/api/qms/qcTemplateItem/index.ts b/src/api/qms/qcTemplateItem/index.ts index 79d75f1..f711c9e 100644 --- a/src/api/qms/qcTemplateItem/index.ts +++ b/src/api/qms/qcTemplateItem/index.ts @@ -75,3 +75,21 @@ export function getQcTemplateItemList (query) { params: query }); }; + + + /** + * 导入数据 + * + * @param file 导入文件 + * @param updateSupport 是否更新已存在数据 + */ + export const importData = (file: File, updateSupport: boolean) => { + const formData = new FormData(); + formData.append('file', file); + formData.append('updateSupport', updateSupport.toString()); + return request({ + url: '/qms/qcTemplateItem/importData', + method: 'post', + data: formData + }); +}; \ No newline at end of file diff --git a/src/views/qms/QcInspectionMain/index.vue b/src/views/qms/QcInspectionMain/index.vue index fe364c1..e14a673 100644 --- a/src/views/qms/QcInspectionMain/index.vue +++ b/src/views/qms/QcInspectionMain/index.vue @@ -51,6 +51,9 @@ 导出模板 + + 导入 + @@ -776,6 +779,31 @@ const calculateUnqualifiedQty = () => { } } +/** 导入按钮操作 */ +const fileInput = ref(); +const uploading = ref(false); +const handleImport = () => { + fileInput.value?.click(); +} +const onFileChange = async (event: Event) => { + const input = event.target as HTMLInputElement; + if (input.files && input.files.length > 0) { + const file = input.files[0]; + uploading.value = true; + try { + await importData(file, true); + proxy?.$modal.msgSuccess("导入成功"); + await getList(); + } catch (err) { + proxy?.$modal.msgError("导入失败"); + console.error(err); + } finally { + uploading.value = false; + input.value = ''; + } + } +} + onMounted(() => { getInspectionItemList(); getInspectionTypeList(); diff --git a/src/views/qms/qcInspectionItem/index.vue b/src/views/qms/qcInspectionItem/index.vue index c058820..ce84485 100644 --- a/src/views/qms/qcInspectionItem/index.vue +++ b/src/views/qms/qcInspectionItem/index.vue @@ -93,6 +93,9 @@ 导出 + + 导入 + @@ -290,7 +293,7 @@