From d841a8ea6dc2f7fdedbf0ea2b1e539842f5f3e37 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 12 十月 2026 19:45:36 +0800
Subject: [PATCH] 宁夏-九鸿 1.发版配置文件修改
---
src/views/mes/qc/iqc/index.vue | 76 +++++++++++++++++++++++++++++++++----
1 files changed, 67 insertions(+), 9 deletions(-)
diff --git a/src/views/mes/qc/iqc/index.vue b/src/views/mes/qc/iqc/index.vue
index 8181b05..303129b 100644
--- a/src/views/mes/qc/iqc/index.vue
+++ b/src/views/mes/qc/iqc/index.vue
@@ -2,21 +2,37 @@
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { MesQcIqcApi } from '#/api/mes/qc/iqc';
-import { Page, useVbenModal } from '../../../../packages/effects/common-ui/src';
-import { MesQcStatusEnum } from '../../../../packages/constants/src';
-import { downloadFileFromBlobPart } from '../../../../packages/utils/src';
+import { onMounted, ref } from 'vue';
+import { useRoute } from 'vue-router';
+
+import { Page, useVbenModal } from '@vben/common-ui';
+import { MesQcStatusEnum, MesQcTypeEnum } from '@vben/constants';
+import { downloadFileFromBlobPart } from '@vben/utils';
import { Button, message } from 'ant-design-vue';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
+import { exportProductWord } from '#/api/mes/qc/indicatorresult';
import { deleteIqc, exportIqc, getIqcPage } from '#/api/mes/qc/iqc';
import { $t } from '#/locales';
+import QcExportRangeModal from '#/views/mes/qc/components/export-range-modal.vue';
+import QcReportPrint from '#/views/mes/qc/components/qc-report-print.vue';
import { useGridColumns, useGridFormSchema } from './data';
import Form from './modules/form.vue';
+defineOptions({ name: 'MesQcIqc' });
+
+const route = useRoute();
+const printRef = ref<InstanceType<typeof QcReportPrint> | null>(null);
+
const [FormModal, formModalApi] = useVbenModal({
connectedComponent: Form,
+ destroyOnClose: true,
+});
+
+const [ExportRangeModal, exportRangeModalApi] = useVbenModal({
+ connectedComponent: QcExportRangeModal,
destroyOnClose: true,
});
@@ -55,10 +71,29 @@
}
}
-/** 瀵煎嚭琛ㄦ牸 */
-async function handleExport() {
- const data = await exportIqc(await gridApi.formApi.getValues());
- downloadFileFromBlobPart({ fileName: '鏉ユ枡妫�楠屽崟.xls', source: data });
+/** 鎵撳嵃妫�楠屾姤鍛� */
+async function handlePrint(row: MesQcIqcApi.Iqc) {
+ await printRef.value?.print(row.id!, MesQcTypeEnum.IQC);
+}
+
+/** 瀵煎嚭浜у搧妫�楠屽崟 Word锛堢焊璐ㄦ楠屽崟鐗堝紡锛屽垽瀹氱粨璁哄甫鍑烘楠岀粨鏋滐級 */
+async function handleExportProductWord(row: MesQcIqcApi.Iqc) {
+ const blob = await exportProductWord(row.id!, MesQcTypeEnum.IQC);
+ downloadFileFromBlobPart({
+ fileName: `浜у搧妫�楠屽崟-${row.code ?? row.id}.docx`,
+ source: blob,
+ });
+}
+
+/** 瀵煎嚭琛ㄦ牸锛堝脊绐楅�夋楠屾椂闂磋寖鍥达級 */
+function handleExport() {
+ exportRangeModalApi
+ .setData({
+ title: '鎸夋楠屾椂闂村鍑烘潵鏂欐楠屽崟',
+ exportApi: exportIqc,
+ fileName: '鏉ユ枡妫�楠屽崟.xls',
+ })
+ .open();
}
const [Grid, gridApi] = useVbenVxeGrid({
@@ -90,11 +125,20 @@
},
} as VxeTableGridOptions<MesQcIqcApi.Iqc>,
});
+
+onMounted(() => {
+ const id = route.query.id;
+ if (id) {
+ formModalApi.setData({ formType: 'detail', id: Number(id) }).open();
+ }
+});
</script>
<template>
- <Page auto-content-height><FormModal @success="handleRefresh" />
-
+ <Page auto-content-height>
+ <FormModal @success="handleRefresh" />
+ <ExportRangeModal />
+ <QcReportPrint ref="printRef" />
<Grid table-title="鏉ユ枡妫�楠屽崟鍒楄〃">
<template #toolbar-tools>
<TableAction
@@ -145,6 +189,20 @@
},
},
{
+ label: '鎵撳嵃鎶ュ憡',
+ type: 'link',
+ icon: 'ant-design:printer-outlined',
+ auth: ['mes:qc-iqc:query'],
+ onClick: handlePrint.bind(null, row),
+ },
+ {
+ label: '瀵煎嚭浜у搧妫�楠屽崟',
+ type: 'link',
+ icon: 'ant-design:file-word-outlined',
+ auth: ['mes:qc-iqc:query'],
+ onClick: handleExportProductWord.bind(null, row),
+ },
+ {
label: $t('common.detail'),
type: 'link',
icon: ACTION_ICON.VIEW,
--
Gitblit v1.9.3