feat(mes/qc): 增加物理性质和化学成分同时导入

新增了通用的综合导入组件,支持同时导入化学成分和物理性能数据,并在理化证书页面添加了对应的综合导入按钮和逻辑,实现一站式批量导入两种类型的质检数据。
This commit is contained in:
2026-06-12 13:43:17 +08:00
parent 00972112d2
commit e0cf4b46b6
3 changed files with 599 additions and 2 deletions

View File

@@ -48,6 +48,15 @@
@click="openImportDialog"
>导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-upload"
size="mini"
@click="openCombinedImport"
>综合导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
@@ -307,6 +316,8 @@
</div>
</el-dialog>
<combined-import :visible.sync="combinedImportVisible" @success="getList" />
<el-dialog title="选择对应入场卷号" :visible.sync="ambiguousVisible" width="600px" append-to-body :close-on-click-modal="false">
<div style="font-size: 12px; color: #909399; margin-bottom: 12px;">
厂家卷号匹配到多条入场卷号请为每行选择对应记录
@@ -339,6 +350,7 @@
import * as XLSX from 'xlsx';
import { listChemicalItem, getChemicalItem, delChemicalItem, addChemicalItem, updateChemicalItem, batchAddChemicalItem } from "@/api/mes/qc/chemicalItem";
import CoilSelector from "@/components/CoilSelector";
import CombinedImport from "@/components/CombinedImport";
import { listMaterialCoil } from "@/api/wms/coil";
const CHEMI_TEMPLATE_HEADERS = ['入场钢卷号', '厂家卷号', 'C(%)', 'Si(%)', 'Mn(%)', 'P(%)', 'S(%)', 'Als(%)', 'Al(%)', 'Ti(%)', 'Cr(%)', 'Ni(%)', 'Cu(%)', 'N(%)', 'Fe(%)', 'B(%)'];
@@ -365,7 +377,8 @@ const CHEMI_HEADER_MAP = {
export default {
name: "ChemicalItem",
components: {
CoilSelector
CoilSelector,
CombinedImport
},
computed: {},
data() {
@@ -437,6 +450,7 @@ export default {
supplierCoilNoLoading: false,
ambiguousVisible: false,
ambiguousRows: [],
combinedImportVisible: false,
};
},
created() {
@@ -577,6 +591,9 @@ export default {
openImportDialog() {
this.importDialogVisible = true;
},
openCombinedImport() {
this.combinedImportVisible = true;
},
importHandleFileChange(file) {
if (this.importValidateLoading || this.importLoading) return;
this.importFile = file.raw;

View File

@@ -104,6 +104,15 @@
@click="openImportDialog"
>导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-upload"
size="mini"
@click="openCombinedImport"
>综合导入</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
@@ -339,6 +348,8 @@
</div>
</el-dialog>
<combined-import :visible.sync="combinedImportVisible" @success="getList" />
<el-dialog title="选择对应入场卷号" :visible.sync="ambiguousVisible" width="600px" append-to-body :close-on-click-modal="false">
<div style="font-size: 12px; color: #909399; margin-bottom: 12px;">
厂家卷号匹配到多条入场卷号请为每行选择对应记录
@@ -371,6 +382,7 @@
import * as XLSX from 'xlsx';
import { listPhysicalItem, getPhysicalItem, delPhysicalItem, addPhysicalItem, updatePhysicalItem, batchAddPhysicalItem } from "@/api/mes/qc/physicalItem";
import CoilSelector from "@/components/CoilSelector";
import CombinedImport from "@/components/CombinedImport";
import { listMaterialCoil } from "@/api/wms/coil";
const PHYS_TEMPLATE_HEADERS = [
@@ -397,7 +409,8 @@ const PHYS_HEADER_MAP = {
export default {
name: "PhysicalItem",
components: {
CoilSelector
CoilSelector,
CombinedImport
},
computed: {},
data() {
@@ -465,6 +478,7 @@ export default {
supplierCoilNoLoading: false,
ambiguousVisible: false,
ambiguousRows: [],
combinedImportVisible: false,
};
},
created() {
@@ -601,6 +615,9 @@ export default {
openImportDialog() {
this.importDialogVisible = true;
},
openCombinedImport() {
this.combinedImportVisible = true;
},
importHandleFileChange(file) {
if (this.importValidateLoading || this.importLoading) return;
this.importFile = file.raw;