From 2fc20934018994b7a8abe5199d717a29283cbb8e Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期一, 16 三月 2026 16:44:24 +0800
Subject: [PATCH] 协同审批:增加原料管理页面
---
src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue | 52 ++++++++++++++++++++++++++
src/views/qualityManagement/rawMaterial/components/formDia.vue | 12 +-----
src/views/collaborativeApproval/approvalProcess/index.vue | 6 ++
src/views/qualityManagement/rawMaterial/index.vue | 4 --
4 files changed, 59 insertions(+), 15 deletions(-)
diff --git a/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue b/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
index 20a4ee6..cb0b2a5 100644
--- a/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
+++ b/src/views/collaborativeApproval/approvalProcess/components/approvalDia.vue
@@ -168,6 +168,43 @@
</el-skeleton>
</div>
+ <div v-if="isRawMaterialApproval" style="margin: 10px 0 18px;">
+ <el-divider content-position="left">鍘熸枡璇︽儏</el-divider>
+ <el-skeleton :loading="rawMaterialLoading" animated>
+ <template #template>
+ <el-skeleton-item variant="h3" style="width: 30%" />
+ <el-skeleton-item variant="text" style="width: 100%" />
+ <el-skeleton-item variant="text" style="width: 100%" />
+ </template>
+ <template #default>
+ <el-empty v-if="!currentRawMaterial" description="鏈煡璇㈠埌瀵瑰簲鍘熸枡璇︽儏" />
+ <template v-else>
+ <el-descriptions :column="2" border>
+ <el-descriptions-item label="浜у搧鍚嶇О">{{ currentRawMaterial.productName }}</el-descriptions-item>
+ <el-descriptions-item label="瑙勬牸">{{ currentRawMaterial.model }}</el-descriptions-item>
+ <el-descriptions-item label="鍗曚綅">{{ currentRawMaterial.unit }}</el-descriptions-item>
+ <el-descriptions-item label="鎵瑰彿">{{ currentRawMaterial.batchNo }}</el-descriptions-item>
+ <el-descriptions-item label="妫�楠岀被鍨�">{{ currentRawMaterial.checkTypeText }}</el-descriptions-item>
+ <el-descriptions-item label="妫�娴嬬粨鏋�">{{ currentRawMaterial.checkResultText }}</el-descriptions-item>
+ <el-descriptions-item label="妫�楠屽憳">{{ currentRawMaterial.checkUserName }}</el-descriptions-item>
+ <el-descriptions-item label="妫�娴嬫棩鏈�">{{ currentRawMaterial.checkTime }}</el-descriptions-item>
+ </el-descriptions>
+
+ <div style="margin-top: 20px;">
+ <h4>妫�娴嬮」鐩槑缁�</h4>
+ <el-table :data="currentRawMaterial.qualityInspectItem || []" border style="width: 100%">
+ <el-table-column prop="name" label="妫�娴嬮」鐩�" />
+ <el-table-column prop="unit" label="鍗曚綅" />
+ <el-table-column prop="standardValue" label="鏍囧噯鍊�" />
+ <el-table-column prop="internalControl" label="鍐呮帶鍊�" />
+ <el-table-column prop="testValue" label="鍖栭獙鍊�" />
+ </el-table>
+ </div>
+ </template>
+ </template>
+ </el-skeleton>
+ </div>
+
<el-form :model="{ activities }" ref="formRef" label-position="top">
<el-steps :active="getActiveStep()" finish-status="success" process-status="process" align-center direction="vertical">
<el-step
@@ -232,6 +269,7 @@
import { WarningFilled, Edit, Check, MoreFilled } from '@element-plus/icons-vue'
import { getQuotationList } from "@/api/salesManagement/salesQuotation.js";
import { getPurchaseByCode } from "@/api/procurementManagement/procurementLedger.js";
+import {findRawMaterialDetail} from "@/api/qualityManagement/rawMaterial.js";
const emit = defineEmits(['close'])
const { proxy } = getCurrentInstance()
@@ -252,9 +290,12 @@
const quotationLoading = ref(false)
const currentQuotation = ref({})
const purchaseLoading = ref(false)
+const rawMaterialLoading = ref(false)
const currentPurchase = ref({})
+const currentRawMaterial = ref({})
const isQuotationApproval = computed(() => Number(props.approveType) === 6)
const isPurchaseApproval = computed(() => Number(props.approveType) === 5)
+const isRawMaterialApproval = computed(() => Number(props.approveType) === 9)
const data = reactive({
form: {
@@ -291,10 +332,12 @@
// 鎵撳紑寮规
const openDialog = (type, row) => {
+ console.log(type, row);
operationType.value = type;
dialogFormVisible.value = true;
currentQuotation.value = {}
currentPurchase.value = {}
+ currentRawMaterial.value = {}
userListNoPageByTenantId().then((res) => {
userList.value = res.data;
});
@@ -355,6 +398,15 @@
}
}
+ if (isRawMaterialApproval.value) {
+ rawMaterialLoading.value = true
+ findRawMaterialDetail(row.approveRecordId).then(res => {
+ currentRawMaterial.value = res.data;
+ }).finally(() => {
+ rawMaterialLoading.value = false
+ })
+ }
+
approveProcessDetails(row.approveId).then((res) => {
activities.value = res.data
// 澧炲姞isApproval瀛楁
diff --git a/src/views/collaborativeApproval/approvalProcess/index.vue b/src/views/collaborativeApproval/approvalProcess/index.vue
index 522000f..2d6c37d 100644
--- a/src/views/collaborativeApproval/approvalProcess/index.vue
+++ b/src/views/collaborativeApproval/approvalProcess/index.vue
@@ -6,6 +6,7 @@
<el-tab-pane label="璇峰亣绠$悊" name="2"></el-tab-pane>
<el-tab-pane label="鍑哄樊绠$悊" name="3"></el-tab-pane>
<el-tab-pane label="鎶ラ攢绠$悊" name="4"></el-tab-pane>
+ <el-tab-pane label="鍘熸枡绠$悊" name="9"></el-tab-pane>
</el-tabs>
<div class="search_form">
@@ -35,7 +36,7 @@
<el-button
type="primary"
@click="openForm('add')"
- v-if="currentApproveType !== 5 && currentApproveType !== 6 && currentApproveType !== 7"
+ v-if="currentApproveType !== 5 && currentApproveType !== 6 && currentApproveType !== 7 && currentApproveType !== 9"
>鏂板</el-button>
<el-button @click="handleOut">瀵煎嚭</el-button>
<el-button
@@ -216,6 +217,7 @@
currentApproveType.value === 5 ||
currentApproveType.value === 6 ||
currentApproveType.value === 7 ||
+ currentApproveType.value === 9 ||
row.approveStatus == 2 ||
row.approveStatus == 1 ||
row.approveStatus == 4
@@ -297,6 +299,7 @@
5: "/approveProcess/exportFive",
6: "/approveProcess/exportSix",
7: "/approveProcess/exportSeven",
+ 9: "/approveProcess/exportNine",
}
const url = urlMap[type] || urlMap[0]
const nameMap = {
@@ -308,6 +311,7 @@
5: "閲囪喘鐢宠瀹℃壒琛�",
6: "鎶ヤ环瀹℃壒琛�",
7: "鍙戣揣瀹℃壒琛�",
+ 9: "鍘熸枡瀹℃壒琛�",
}
const fileName = nameMap[type] || nameMap[0]
proxy.download(url, {}, `${fileName}.xlsx`)
diff --git a/src/views/qualityManagement/rawMaterial/components/formDia.vue b/src/views/qualityManagement/rawMaterial/components/formDia.vue
index 9e47f37..b4febd8 100644
--- a/src/views/qualityManagement/rawMaterial/components/formDia.vue
+++ b/src/views/qualityManagement/rawMaterial/components/formDia.vue
@@ -34,11 +34,6 @@
</el-select>
</el-form-item>
</el-col>
- <el-col :span="12">
- <el-form-item label="鎵瑰彿锛�" prop="batchNo">
- <el-input style="width: 100%" v-model="form.batchNo" placeholder="璇疯緭鍏�" clearable/>
- </el-form-item>
- </el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
@@ -47,9 +42,8 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鏁伴噺(鍚�)锛�" prop="quantity">
- <el-input-number :step="0.01" :min="0" style="width: 100%" v-model="form.quantity" placeholder="璇疯緭鍏�"
- clearable :precision="2" controls-position="right"/>
+ <el-form-item label="鎵瑰彿锛�" prop="batchNo">
+ <el-input style="width: 100%" v-model="form.batchNo" placeholder="璇疯緭鍏�" clearable/>
</el-form-item>
</el-col>
</el-row>
@@ -147,7 +141,6 @@
productName: "",
productId: "",
productModelId: "",
- quantity: undefined,
model: "",
batchNo: "",
checkType: undefined,
@@ -160,7 +153,6 @@
checkUserName: [{required: false, message: "璇烽�夋嫨妫�楠屽憳", trigger: "blur"}],
productId: [{required: true, message: "璇疯緭鍏�", trigger: "blur"}],
productModelId: [{required: true, message: "璇烽�夋嫨浜у搧鍨嬪彿", trigger: "change"}],
- quantity: [{required: true, message: "璇疯緭鍏ユ暟閲�", trigger: "blur"}],
batchNo: [{required: true, message: "璇疯緭鍏ユ壒娆�", trigger: "blur"}],
checkType: [{required: true, message: "璇烽�夋嫨妫�楠岀被鍨�", trigger: "change"}],
checkResult: [{required: true, message: "璇烽�夋嫨妫�娴嬬粨鏋�", trigger: "change"}],
diff --git a/src/views/qualityManagement/rawMaterial/index.vue b/src/views/qualityManagement/rawMaterial/index.vue
index 279c80a..1fd7624 100644
--- a/src/views/qualityManagement/rawMaterial/index.vue
+++ b/src/views/qualityManagement/rawMaterial/index.vue
@@ -108,10 +108,6 @@
prop: "model",
},
{
- label: "鏁伴噺(鍚�)",
- prop: "quantity",
- },
- {
label: "鎵规鍙�",
prop: "batchNo",
width: 120
--
Gitblit v1.9.3