| | |
| | | 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 { Page, useVbenModal } from '@vben/common-ui'; |
| | | import { MesQcStatusEnum } 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 { deleteIpqc, exportIpqc, getIpqcPage } from '#/api/mes/qc/ipqc'; |
| | | import { |
| | | deleteIpqc, |
| | | exportIpqc, |
| | | getIpqcPage, |
| | | importIpqc, |
| | | importIpqcTemplate, |
| | | } from '#/api/mes/qc/ipqc'; |
| | | import { $t } from '#/locales'; |
| | | import QcImportFormModal from '#/views/mes/qc/components/import-form-modal.vue'; |
| | | import QcReportGenerateModal from '#/views/mes/qc/components/report-generate-modal.vue'; |
| | | |
| | | import { useGridColumns, useGridFormSchema } from './data'; |
| | | import Form from './modules/form.vue'; |
| | | |
| | | /** 本页对应 mes_qc_type 的值:2 过程检验 */ |
| | | const QC_TYPE = 2; |
| | | |
| | | const [FormModal, formModalApi] = useVbenModal({ |
| | | connectedComponent: Form, |
| | | destroyOnClose: true, |
| | | }); |
| | | |
| | | const [ReportModal, reportModalApi] = useVbenModal({ |
| | | connectedComponent: QcReportGenerateModal, |
| | | destroyOnClose: true, |
| | | }); |
| | | |
| | | const [ImportModal, importModalApi] = useVbenModal({ |
| | | connectedComponent: QcImportFormModal, |
| | | destroyOnClose: true, |
| | | }); |
| | | |
| | | /** 刷新表格 */ |
| | | function handleRefresh() { |
| | | gridApi.query(); |
| | | } |
| | | |
| | | /** 批量导入过程检验单 */ |
| | | function handleImport() { |
| | | importModalApi |
| | | .setData({ |
| | | title: '批量导入过程检验单', |
| | | templateApi: importIpqcTemplate, |
| | | importApi: importIpqc, |
| | | fileName: '过程检验单导入模板.xls', |
| | | hints: [ |
| | | '仅允许导入 xls、xlsx 格式文件;必填列:检验单名称、检验类型、生产工单号、工位名称、合格品数量、不合格品数量。', |
| | | '「产品物料由生产工单自动推导」,模板不填物料;「检验类型」按字典名称填写(自制工序检验 / 首检 / 巡检 / 自检 / 成品检验)。', |
| | | '「生产工单号」需与「生产管理 - 生产工单」中的工单号一致;「工位名称」需与「基础数据 - 工位管理」中的名称一致。', |
| | | '合格品数量 + 不合格品数量 必须等于「检测数量」(留空时自动取两者之和);工废 + 料废 + 其他废品 之和不得超过不合格品数量。', |
| | | '「质检方案」填方案名称,留空则按物料自动匹配 IPQC 方案;「检测人员」留空取当前登录用户;「检测日期」可留空。', |
| | | '逐行导入,失败行不影响成功行;导入后的检验单为「待检验」状态,可在列表中继续编辑、录入检测结果。', |
| | | ], |
| | | }) |
| | | .open(); |
| | | } |
| | | |
| | | /** 创建过程检验单 */ |
| | |
| | | } |
| | | } |
| | | |
| | | /** 导出表格 */ |
| | | /** 导出表格(按列表筛选条件导出) */ |
| | | async function handleExport() { |
| | | const data = await exportIpqc(await gridApi.formApi.getValues()); |
| | | downloadFileFromBlobPart({ fileName: '过程检验单.xls', source: data }); |
| | | } |
| | | |
| | | /** 出报告:数据由后端从该质检单取,前端只选模板 */ |
| | | function handleReport(row: MesQcIpqcApi.Ipqc) { |
| | | reportModalApi |
| | | .setData({ qcType: QC_TYPE, qcId: row.id, qcNo: row.code }) |
| | | .open(); |
| | | } |
| | | |
| | | const [Grid, gridApi] = useVbenVxeGrid({ |
| | |
| | | </script> |
| | | |
| | | <template> |
| | | <Page auto-content-height><FormModal @success="handleRefresh" /> |
| | | |
| | | <Page auto-content-height> |
| | | <FormModal @success="handleRefresh" /> |
| | | <ReportModal /> |
| | | <ImportModal @success="handleRefresh" /> |
| | | <Grid table-title="过程检验单列表"> |
| | | <template #toolbar-tools> |
| | | <TableAction |
| | |
| | | icon: ACTION_ICON.ADD, |
| | | auth: ['mes:qc-ipqc:create'], |
| | | onClick: handleCreate, |
| | | }, |
| | | { |
| | | label: '批量导入', |
| | | type: 'primary', |
| | | icon: ACTION_ICON.UPLOAD, |
| | | auth: ['mes:qc-ipqc:import'], |
| | | onClick: handleImport, |
| | | }, |
| | | { |
| | | label: $t('ui.actionTitle.export'), |
| | |
| | | <TableAction |
| | | :actions="[ |
| | | { |
| | | label: '出报告', |
| | | type: 'link', |
| | | icon: ACTION_ICON.AUDIT, |
| | | auth: ['qc-report:instance:generate'], |
| | | ifShow: row.status === MesQcStatusEnum.FINISHED, |
| | | onClick: handleReport.bind(null, row), |
| | | }, |
| | | { |
| | | label: $t('common.edit'), |
| | | type: 'link', |
| | | icon: ACTION_ICON.EDIT, |