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/ipqc/index.vue |   65 ++++++++++++++++++++++++++++----
 1 files changed, 56 insertions(+), 9 deletions(-)

diff --git a/src/views/mes/qc/ipqc/index.vue b/src/views/mes/qc/ipqc/index.vue
index 022beb4..2dd9949 100644
--- a/src/views/mes/qc/ipqc/index.vue
+++ b/src/views/mes/qc/ipqc/index.vue
@@ -2,15 +2,20 @@
 import type { VxeTableGridOptions } from '#/adapter/vxe-table';
 import type { MesQcIpqcApi } from '#/api/mes/qc/ipqc';
 
-import { Page, useVbenModal } from '../../../../packages/effects/common-ui/src';
-import { MesQcStatusEnum } from '../../../../packages/constants/src';
-import { downloadFileFromBlobPart } from '../../../../packages/utils/src';
+import { ref } from 'vue';
+
+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 { deleteIpqc, exportIpqc, getIpqcPage } from '#/api/mes/qc/ipqc';
 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';
@@ -20,9 +25,30 @@
   destroyOnClose: true,
 });
 
+const [ExportRangeModal, exportRangeModalApi] = useVbenModal({
+  connectedComponent: QcExportRangeModal,
+  destroyOnClose: true,
+});
+
+const printRef = ref<InstanceType<typeof QcReportPrint> | null>(null);
+
 /** 鍒锋柊琛ㄦ牸 */
 function handleRefresh() {
   gridApi.query();
+}
+
+/** 鎵撳嵃妫�楠屾姤鍛� */
+async function handlePrint(row: MesQcIpqcApi.Ipqc) {
+  await printRef.value?.print(row.id!, MesQcTypeEnum.IPQC);
+}
+
+/** 瀵煎嚭浜у搧妫�楠屽崟 Word锛堢焊璐ㄦ楠屽崟鐗堝紡锛屽垽瀹氱粨璁哄甫鍑烘楠岀粨鏋滐級 */
+async function handleExportProductWord(row: MesQcIpqcApi.Ipqc) {
+  const blob = await exportProductWord(row.id!, MesQcTypeEnum.IPQC);
+  downloadFileFromBlobPart({
+    fileName: `浜у搧妫�楠屽崟-${row.code ?? row.id}.docx`,
+    source: blob,
+  });
 }
 
 /** 鍒涘缓杩囩▼妫�楠屽崟 */
@@ -55,10 +81,15 @@
   }
 }
 
-/** 瀵煎嚭琛ㄦ牸 */
-async function handleExport() {
-  const data = await exportIpqc(await gridApi.formApi.getValues());
-  downloadFileFromBlobPart({ fileName: '杩囩▼妫�楠屽崟.xls', source: data });
+/** 瀵煎嚭琛ㄦ牸锛堝脊绐楅�夋楠屾椂闂磋寖鍥达級 */
+function handleExport() {
+  exportRangeModalApi
+    .setData({
+      title: '鎸夋楠屾椂闂村鍑鸿繃绋嬫楠屽崟',
+      exportApi: exportIpqc,
+      fileName: '杩囩▼妫�楠屽崟.xls',
+    })
+    .open();
 }
 
 const [Grid, gridApi] = useVbenVxeGrid({
@@ -93,8 +124,10 @@
 </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 +178,20 @@
               },
             },
             {
+              label: '鎵撳嵃鎶ュ憡',
+              type: 'link',
+              icon: 'ant-design:printer-outlined',
+              auth: ['mes:qc-ipqc:query'],
+              onClick: handlePrint.bind(null, row),
+            },
+            {
+              label: '瀵煎嚭浜у搧妫�楠屽崟',
+              type: 'link',
+              icon: 'ant-design:file-word-outlined',
+              auth: ['mes:qc-ipqc:query'],
+              onClick: handleExportProductWord.bind(null, row),
+            },
+            {
               label: $t('common.detail'),
               type: 'link',
               icon: ACTION_ICON.VIEW,

--
Gitblit v1.9.3