From 74f21d10c2f29e4631ff1c17d07e3bd6b73ca0b8 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 20 三月 2026 17:54:14 +0800
Subject: [PATCH] 造粒报工
---
src/views/productionManagement/workOrder/components/GranulationForm.vue | 939 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 939 insertions(+), 0 deletions(-)
diff --git a/src/views/productionManagement/workOrder/components/GranulationForm.vue b/src/views/productionManagement/workOrder/components/GranulationForm.vue
new file mode 100644
index 0000000..8fed003
--- /dev/null
+++ b/src/views/productionManagement/workOrder/components/GranulationForm.vue
@@ -0,0 +1,939 @@
+<script setup lang="ts">
+import {computed, onMounted, reactive, ref} from "vue";
+import {userListNoPageByTenantId} from "@/api/system/user.js";
+import {ElMessage} from "element-plus";
+import {addProductMain} from "@/api/productionManagement/workOrder.js";
+
+defineOptions({
+ name: "GranulationForm"
+});
+
+const props = defineProps({
+ isShow: {
+ type: Boolean,
+ required: true
+ },
+ isEdit: {
+ type: Boolean,
+ default: false
+ },
+ row: {
+ type: Object,
+ default: () => ({}),
+ }
+});
+
+const emits = defineEmits(["update:isShow", "refreshData"]);
+
+const visible = computed({
+ get: () => props.isShow,
+ set: (value: boolean) => emits("update:isShow", value),
+});
+
+const formData = reactive({
+ productProcessRouteItemId: undefined,
+ workOrderId: undefined,
+ planQuantity: undefined,
+ reportWork: undefined,
+ productMainId: undefined,
+ quantity: undefined, // 浜у嚭鏁伴噺
+ userId: undefined, // 浣滀笟鍛�
+ userName: undefined, // 浣滀笟鍛�
+ otherData: {
+ whiteMaterialNumber: undefined, // 鐧芥枡鏂欏彿
+ ingredientDateTime: undefined, // 閰嶆枡鏃ユ湡鏃堕棿
+ weight: undefined, // 閲嶉噺
+ stirredMillIncludesMixing: {
+ oneBucketStartTime: undefined, // 1妗跺紑濮嬫椂闂�
+ oneBucketEndTime: undefined, // 1妗剁粨鏉熸椂闂�
+ twoBucketStartTime: undefined, // 2妗跺紑濮嬫椂闂�
+ twoBucketEndTime: undefined, // 2妗剁粨鏉熸椂闂�
+ fiveBucketStartTime: undefined, // 5妗跺紑濮嬫椂闂�
+ fiveBucketEndTime: undefined, // 5妗剁粨鏉熸椂闂�
+ powderWeight: undefined, // 绮夋枡閲嶉噺
+ waterWeight: undefined, // 姘撮噸閲�
+ stirStartTime: undefined, // 鎼呮媽寮�濮嬫椂闂�
+ stirEndTime: undefined, // 鎼呮媽缁撴潫鏃堕棿
+ stirDispersantWeight: undefined, // 鎼呮媽鍒嗘暎鍓傞噸閲�
+ userId: undefined,
+ userName: undefined,
+ confirmId: undefined,
+ confirmName: undefined,
+ },
+ granulation: {
+ output: undefined, // 浜у嚭鎬讳骇閲�
+ qualifiedMaterialWeight: undefined, // 鍚堟牸鏂欓噸閲�
+ wallMaterial: undefined, // 澹佹枡
+ wasteMaterials: undefined, // 灏炬枡
+ },
+ burningMaterial: {
+ startTime: undefined, // 寮�濮嬫椂闂�
+ endTime: undefined, // 缁撴潫鏃堕棿
+ furnaceNumber: undefined, // 鐐夊彿
+ highestTemperatureZone: undefined, // 鏈�楂樻俯鍖�
+ calcinationRate: undefined, // 鐓呯儳閫熷害
+ calcinationWeight: undefined, // 鐓呯儳閲嶉噺
+ userId: undefined,
+ userName: undefined,
+ confirmId: undefined,
+ confirmName: undefined,
+ },
+ powder: {
+ excess: undefined, // 绮夌鏂欐斁鏂欐病瓒呰繃鏂欐枟闄愪綅绾�
+ },
+ burntBlockBatchNumber: undefined, // 鐑у潡鏂欐壒娆″彿
+ burntBlockBatchNumberDate: undefined, // 鐑у潡鏂欐棩鏈�
+ stirredMill: {
+ threeBucketStartTime: undefined, // 3妗跺紑濮嬫椂闂�
+ threeBucketEndTime: undefined, // 3妗剁粨鏉熸椂闂�
+ threeBucketMixingPowderWeight: undefined, // 3妗跺姞绮夋枡閲嶉噺
+ fourBucketStartTime: undefined, // 4妗跺紑濮嬫椂闂�
+ fourBucketEndTime: undefined, // 4妗剁粨鏉熸椂闂�
+ fourBucketMixingPowderWeight: undefined, // 4妗跺姞绮夋枡閲嶉噺
+ sixBucketStartTime: undefined, // 6妗跺紑濮嬫椂闂�
+ sixBucketEndTime: undefined, // 6妗剁粨鏉熸椂闂�
+ sixBucketMixingPowderWeight: undefined, // 6妗跺姞绮夋枡閲嶉噺
+ userId: undefined,
+ userName: undefined,
+ confirmId: undefined,
+ confirmName: undefined,
+ },
+ stir: {
+ startTime: undefined,
+ endTime: undefined,
+ weightRatio: undefined, // 閲嶉噺姣旓紙姘�/鏂欙級
+ pva: undefined, // PVA绮樺悎鍓傞噸閲�
+ dispersantWeight: undefined, // 鍒嗘暎鍓傞噸閲�
+ releaseAgentWeight: undefined, // 鑴辨ā鍓傞噸閲�
+ },
+ granulationB: {
+ startTime: undefined,
+ endTime: undefined,
+ atomizerRotationalSpeed: undefined, // 闆惧寲鍣ㄨ浆閫�
+ importSpeed: undefined, // 杩涘彛閫熷害
+ outSpeed: undefined, // 鍑哄彛閫熷害
+ qualifiedWeight: undefined, // 鍚堟牸閲嶉噺
+ wallMaterial: undefined, // 澹佹枡
+ wasteMaterials: undefined, // 灏炬枡
+ userId: undefined,
+ userName: undefined,
+ confirmId: undefined,
+ confirmName: undefined,
+ },
+ remark: undefined, // 澶囨敞
+ }
+})
+
+const userOptions = ref([]);
+const getUserList = () => {
+ userListNoPageByTenantId()
+ .then(res => {
+ if (res.code === 200) {
+ userOptions.value = res.data || [];
+ }
+ })
+ .catch(err => {
+ console.error("鑾峰彇鐢ㄦ埛鍒楄〃澶辫触", err);
+ });
+};
+// 鐢ㄦ埛閫夋嫨鍙樺寲鏃舵洿鏂� userName
+const handleUserChange = (userId: any, reportType: string) => {
+ if (userId) {
+ const selectedUser = userOptions.value.find(user => user.userId === userId);
+
+ switch (reportType) {
+ case 'stirredMillIncludesMixingUserId':
+ formData.otherData.stirredMillIncludesMixing.userName = selectedUser.userName;
+ break;
+ case 'stirredMillIncludesMixingConfirmId':
+ formData.otherData.stirredMillIncludesMixing.confirmName = selectedUser.userName;
+ break;
+ case 'burningMaterialUserId':
+ formData.otherData.burningMaterial.userName = selectedUser.userName;
+ break;
+ case 'burningMaterialConfirmId':
+ formData.otherData.stirredMillIncludesMixing.confirmName = selectedUser.userName;
+ break;
+ case 'stirredMillUserId':
+ formData.otherData.stirredMill.userName = selectedUser.userName;
+ break;
+ case 'stirredMillConfirmId':
+ formData.otherData.stirredMill.confirmName = selectedUser.userName;
+ break;
+ case 'granulationBUserId':
+ formData.otherData.granulationB.userName = selectedUser.userName;
+ break;
+ case 'granulationBConfirmId':
+ formData.otherData.granulationB.confirmName = selectedUser.userName;
+ break;
+ }
+ } else {
+ switch (reportType) {
+ case 'stirredMillIncludesMixingUserId':
+ formData.otherData.stirredMillIncludesMixing.userName = "";
+ break;
+ case 'stirredMillIncludesMixingConfirmId':
+ formData.otherData.stirredMillIncludesMixing.confirmName = "";
+ break;
+ case 'burningMaterialUserId':
+ formData.otherData.burningMaterial.userName = "";
+ break;
+ case 'burningMaterialConfirmId':
+ formData.otherData.stirredMillIncludesMixing.confirmName = "";
+ break;
+ case 'stirredMillUserId':
+ formData.otherData.stirredMill.userName = "";
+ break;
+ case 'stirredMillConfirmId':
+ formData.otherData.stirredMill.confirmName = "";
+ break;
+ case 'granulationBUserId':
+ formData.otherData.granulationB.userName = "";
+ break;
+ case 'granulationBConfirmId':
+ formData.otherData.granulationB.confirmName = "";
+ break;
+ }
+ }
+};
+
+const handleReport = () => {
+ if (!formData.otherData.stirredMillIncludesMixing.userId && !formData.otherData.stirredMill.userId && !formData.otherData.burningMaterial.userId && !formData.otherData.granulationB.userId) {
+ ElMessage.error('璇烽�夋嫨浣滀笟鍛�')
+ return;
+ }
+ if (!formData.quantity || formData.quantity <= 0) {
+ ElMessage.error('璇疯緭鍏ョ敓浜ф暟閲�')
+ return;
+ }
+ formData.userId = formData.otherData.stirredMillIncludesMixing.userId || formData.otherData.stirredMill.userId || formData.otherData.burningMaterial.userId || formData.otherData.granulationB.userId;
+
+ const otherData = JSON.stringify(formData.otherData);
+ const submitData = {
+ ...formData,
+ otherData: otherData
+ };
+
+ addProductMain(submitData).then(res => {
+ if (res.code === 200) {
+ ElMessage({
+ message: '鎶ュ伐鎴愬姛',
+ type: 'success',
+ })
+ emits("refreshData")
+ visible.value = false;
+ } else {
+ ElMessage.error('鎶ュ伐澶辫触')
+ }
+ });
+};
+
+const initData = () => {
+ if (!props.isEdit) {
+ formData.otherData = JSON.parse(props.row.otherData || '{}');
+ formData.quantity = props.row.quantity;
+ } else {
+ const row = props.row;
+ formData.planQuantity = row.planQuantity
+ formData.productProcessRouteItemId = row.productProcessRouteItemId
+ formData.workOrderId = row.id
+ formData.reportWork = row.reportWork
+ formData.productMainId = row.productMainId
+ }
+}
+
+const displayValue = (value: any) => {
+ return value === undefined || value === null || value === "" ? "-" : value;
+};
+
+onMounted(() => {
+ getUserList();
+ initData()
+})
+</script>
+
+<template>
+ <el-dialog v-model="visible"
+ :title="isEdit? '閫犵矑鎶ュ伐' : '璇︽儏'"
+ width="90%">
+ <el-form :model="formData">
+ <table class="report-table">
+ <tbody>
+ <tr>
+ <td class="label" colspan="2">鐧芥枡鏂欏彿锛�</td>
+ <td colspan="3">
+ <el-input v-if="props.isEdit" v-model="formData.otherData.whiteMaterialNumber" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.whiteMaterialNumber) }}</span>
+ </td>
+ <td class="label" colspan="2">閰嶆枡鏃ユ湡锛�</td>
+ <td colspan="5">
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.ingredientDateTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.ingredientDateTime) }}</span>
+ </td>
+ <td class="label" colspan="2">閲嶉噺锛�</td>
+ <td colspan="2">
+ <el-input v-if="props.isEdit" v-model="formData.otherData.weight" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.weight) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="2" rowspan="5">鎼呮媽纾紙鍚悈鎷岋級锛�</td>
+ <td class="label" colspan="7">鎼呮媽纾�</td>
+ <td class="label" colspan="5" rowspan="2">鎼呮媽妗舵悈鎷�</td>
+ <td class="label" colspan="2" rowspan="3">
+ <span>浣滀笟鍛�:</span>
+ <el-select v-model="formData.otherData.stirredMillIncludesMixing.userId"
+ v-if="props.isEdit"
+ style="width: 100%"
+ placeholder="璇烽�夋嫨浣滀笟鍛�"
+ clearable
+ filterable
+ @change="handleUserChange($event, 'stirredMillIncludesMixingUserId')">
+ <el-option v-for="user in userOptions"
+ :key="user.userId"
+ :label="user.userName"
+ :value="user.userId"/>
+ </el-select>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMillIncludesMixing.userName || formData.otherData.stirredMillIncludesMixing.userId) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="2"></td>
+ <td class="label" colspan="1">1鍙锋《锛�</td>
+ <td class="label" colspan="2">2鍙锋《锛�</td>
+ <td class="label" colspan="2">5鍙锋《锛�</td>
+ </tr>
+ <tr>
+ <td class="label" colspan="2">寮�濮嬫椂闂达細</td>
+ <td colspan="1">
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stirredMillIncludesMixing.oneBucketStartTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMillIncludesMixing.oneBucketStartTime) }}</span>
+ </td>
+ <td colspan="2">
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stirredMillIncludesMixing.twoBucketStartTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMillIncludesMixing.twoBucketStartTime) }}</span>
+ </td>
+ <td colspan="2">
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stirredMillIncludesMixing.fiveBucketStartTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMillIncludesMixing.fiveBucketStartTime) }}</span>
+ </td>
+ <td class="label" colspan="5">
+ <span>寮�濮嬫椂闂达細</span>
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stirredMillIncludesMixing.stirStartTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMillIncludesMixing.stirStartTime) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="2">缁撴潫鏃堕棿锛�</td>
+ <td colspan="1">
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stirredMillIncludesMixing.oneBucketEndTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMillIncludesMixing.oneBucketEndTime) }}</span>
+ </td>
+ <td colspan="2">
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stirredMillIncludesMixing.twoBucketEndTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMillIncludesMixing.twoBucketEndTime) }}</span>
+ </td>
+ <td colspan="2">
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stirredMillIncludesMixing.fiveBucketEndTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMillIncludesMixing.fiveBucketEndTime) }}</span>
+ </td>
+ <td colspan="5">
+ <span>缁撴潫鏃堕棿锛�</span>
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stirredMillIncludesMixing.stirEndTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMillIncludesMixing.stirEndTime) }}</span>
+ </td>
+ <td class="label" colspan="2" rowspan="3">
+ <span>纭浜�:</span>
+ <el-select v-model="formData.otherData.stirredMillIncludesMixing.confirmId"
+ v-if="props.isEdit"
+ style="width: 100%"
+ placeholder="璇烽�夋嫨纭浜�"
+ clearable
+ filterable
+ @change="handleUserChange($event, 'stirredMillIncludesMixingConfirmId')">
+ <el-option v-for="user in userOptions"
+ :key="user.userId"
+ :label="user.userName"
+ :value="user.userId"/>
+ </el-select>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMillIncludesMixing.confirmName || formData.otherData.stirredMillIncludesMixing.confirmId) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="2">绮夋枡閲嶉噺锛�</td>
+ <td colspan="1">
+ <el-input v-if="props.isEdit" v-model="formData.otherData.stirredMillIncludesMixing.powderWeight" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMillIncludesMixing.powderWeight) }}</span>
+ <span>KG</span>
+ </td>
+ <td class="label" colspan="2">姘撮噸閲忥細</td>
+ <td colspan="2">
+ <el-input v-if="props.isEdit" v-model="formData.otherData.stirredMillIncludesMixing.waterWeight" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMillIncludesMixing.waterWeight) }}</span>
+ <span>KG</span>
+ </td>
+ <td class="label" colspan="2">鍒嗘暎鍓傞噸閲忥細</td>
+ <td colspan="3">
+ <el-input v-if="props.isEdit" v-model="formData.otherData.stirredMillIncludesMixing.stirDispersantWeight" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMillIncludesMixing.stirDispersantWeight) }}</span>
+ <span>g</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="2">閫犵矑锛�</td>
+ <td class="label" colspan="2">浜у嚭鎬婚噸閲忥細</td>
+ <td colspan="1">
+ <el-input v-if="props.isEdit" v-model="formData.otherData.granulation.output" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.granulation.output) }}</span>
+ <span>KG</span>
+ </td>
+ <td class="label" colspan="2">鍚堟牸鏂欓噸閲忥細</td>
+ <td colspan="2">
+ <el-input v-if="props.isEdit" v-model="formData.otherData.granulation.qualifiedMaterialWeight" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.granulation.qualifiedMaterialWeight) }}</span>
+ <span>KG</span>
+ </td>
+ <td class="label" colspan="2">
+ 澹佹枡锛�
+ <el-input v-if="props.isEdit" v-model="formData.otherData.granulation.wallMaterial" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.granulation.wallMaterial) }}</span>
+ </td>
+ <td colspan="3">
+ 灏炬枡锛�
+ <el-input v-if="props.isEdit" v-model="formData.otherData.granulation.wasteMaterials" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.granulation.wasteMaterials) }}</span>
+ <span>KG</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="2" rowspan="3">鐑ф枡锛�</td>
+ <td class="label" colspan="7">
+ <span>寮�濮嬫椂闂达細</span>
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.burningMaterial.startTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.burningMaterial.startTime) }}</span>
+ </td>
+ <td class="label" colspan="5">
+ <span>缁撴潫鏃堕棿锛�</span>
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.burningMaterial.endTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.burningMaterial.endTime) }}</span>
+ </td>
+ <td class="label" colspan="2" rowspan="2">
+ <span>浣滀笟鍛�:</span>
+ <el-select v-model="formData.otherData.burningMaterial.userId"
+ v-if="props.isEdit"
+ style="width: 100%"
+ placeholder="璇烽�夋嫨浣滀笟鍛�"
+ clearable
+ filterable
+ @change="handleUserChange($event, 'burningMaterialUserId')">
+ <el-option v-for="user in userOptions"
+ :key="user.userId"
+ :label="user.userName"
+ :value="user.userId"/>
+ </el-select>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.burningMaterial.userName || formData.otherData.burningMaterial.userId) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="7">
+ <span>鐐夊彿锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.burningMaterial.furnaceNumber" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.burningMaterial.furnaceNumber) }}</span>
+ </td>
+ <td class="label" colspan="5">
+ <span>鏈�楂樻俯搴﹀尯锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.burningMaterial.highestTemperatureZone" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.burningMaterial.highestTemperatureZone) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="7">
+ <span>鐓呯儳閫熷害锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.burningMaterial.calcinationRate" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.burningMaterial.calcinationRate) }}</span>
+ <span>min/鏉�</span>
+ </td>
+ <td class="label" colspan="5">
+ <span>鐓呯儳鍚庨噸閲忥細</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.burningMaterial.calcinationWeight" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.burningMaterial.calcinationWeight) }}</span>
+ <span>KG</span>
+ </td>
+ <td class="label" colspan="2" rowspan="2">
+ <span>纭浜�:</span>
+ <el-select v-model="formData.otherData.burningMaterial.confirmId"
+ v-if="props.isEdit"
+ style="width: 100%"
+ placeholder="璇烽�夋嫨纭浜�"
+ clearable
+ filterable
+ @change="handleUserChange($event, 'burningMaterialConfirmId')">
+ <el-option v-for="user in userOptions"
+ :key="user.userId"
+ :label="user.userName"
+ :value="user.userId"/>
+ </el-select>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.burningMaterial.confirmName || formData.otherData.burningMaterial.confirmId) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="2">绮夋枡</td>
+ <td class="label" colspan="12">
+ <span>绮夌鏂欐斁鏂欐病瓒呰繃鏂欐枟闄愪綅绾匡細</span>
+ <el-checkbox-group v-if="props.isEdit" v-model="formData.otherData.powder.excess">
+ <el-checkbox label="鏄�" value="鏄�" />
+ <el-checkbox label="鍚�" value="鍚�" />
+ </el-checkbox-group>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.powder.excess) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="9">
+ <span>鐑у潡鏂欐壒鍙�:</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.burntBlockBatchNumber" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.burntBlockBatchNumber) }}</span>
+ </td>
+ <td class="label" colspan="2">鏃ユ湡锛�</td>
+ <td class="label" colspan="3">
+ <el-input v-if="props.isEdit" v-model="formData.otherData.burntBlockBatchNumberDate" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.burntBlockBatchNumberDate) }}</span>
+ </td>
+ <td class="label" colspan="2" rowspan="4">
+ <span>浣滀笟鍛�:</span>
+ <el-select v-model="formData.otherData.stirredMill.userId"
+ v-if="props.isEdit"
+ style="width: 100%"
+ placeholder="璇烽�夋嫨浣滀笟鍛�"
+ clearable
+ filterable
+ @change="handleUserChange($event, 'stirredMillUserId')">
+ <el-option v-for="user in userOptions"
+ :key="user.userId"
+ :label="user.userName"
+ :value="user.userId"/>
+ </el-select>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMill.userName || formData.otherData.stirredMill.userId) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="2" rowspan="4">鎼呮媽纾�</td>
+ <td class="label" colspan="2"></td>
+ <td class="label" colspan="3">3鍙锋《</td>
+ <td class="label" colspan="4">4鍙锋《</td>
+ <td class="label" colspan="3">6鍙锋《</td>
+ </tr>
+ <tr>
+ <td class="label" colspan="2">鎼呮媽绮夋枡閲嶉噺锛�</td>
+ <td class="label" colspan="3">
+ <el-input v-if="props.isEdit" v-model="formData.otherData.stirredMill.threeBucketMixingPowderWeight" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMill.threeBucketMixingPowderWeight) }}</span>
+ </td>
+ <td class="label" colspan="4">
+ <el-input v-if="props.isEdit" v-model="formData.otherData.stirredMill.fourBucketMixingPowderWeight" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMill.fourBucketMixingPowderWeight) }}</span>
+ </td>
+ <td class="label" colspan="3">
+ <el-input v-if="props.isEdit" v-model="formData.otherData.stirredMill.sixBucketMixingPowderWeight" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMill.sixBucketMixingPowderWeight) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="2">寮�濮嬫椂闂达細</td>
+ <td class="label" colspan="3">
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stirredMill.threeBucketStartTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMill.threeBucketStartTime) }}</span>
+ </td>
+ <td class="label" colspan="4">
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stirredMill.fourBucketStartTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMill.fourBucketStartTime) }}</span>
+ </td>
+ <td class="label" colspan="3">
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stirredMill.sixBucketStartTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMill.sixBucketStartTime) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="2">缁撴潫鏃堕棿锛�</td>
+ <td class="label" colspan="3">
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stirredMill.threeBucketEndTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMill.threeBucketEndTime) }}</span>
+ </td>
+ <td class="label" colspan="4">
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stirredMill.fourBucketEndTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMill.fourBucketEndTime) }}</span>
+ </td>
+ <td class="label" colspan="3">
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stirredMill.sixBucketEndTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMill.sixBucketEndTime) }}</span>
+ </td>
+ <td class="label" colspan="2" rowspan="3">
+ <span>纭浜�:</span>
+ <el-select v-model="formData.otherData.stirredMill.confirmId"
+ v-if="props.isEdit"
+ style="width: 100%"
+ placeholder="璇烽�夋嫨纭浜�"
+ clearable
+ filterable
+ @change="handleUserChange($event, 'stirredMillConfirmId')">
+ <el-option v-for="user in userOptions"
+ :key="user.userId"
+ :label="user.userName"
+ :value="user.userId"/>
+ </el-select>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stirredMill.confirmName || formData.otherData.stirredMill.confirmId) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="2" rowspan="2">鎼呮媽</td>
+ <td class="label" colspan="4">
+ <span>寮�濮嬫椂闂达細</span>
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stir.startTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stir.startTime) }}</span>
+ </td>
+ <td class="label" colspan="4">
+ <span>缁撴潫鏃堕棿锛�</span>
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.stir.endTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stir.endTime) }}</span>
+ </td>
+ <td class="label" colspan="4">
+ <span>閲嶉噺姣旓紙姘�/鏂欙級锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.stir.weightRatio" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stir.weightRatio) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="4">
+ <span>PVA绮樺悎鍓傞噸閲� 锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.stir.pva" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stir.pva) }}</span>
+ </td>
+ <td class="label" colspan="4">
+ <span>鍒嗘暎鍓傞噸閲� 锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.stir.dispersantWeight" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stir.dispersantWeight) }}</span>
+ </td>
+ <td class="label" colspan="4">
+ <span>鑴辨ā鍓傞噸閲� 锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.stir.releaseAgentWeight" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.stir.releaseAgentWeight) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="2" rowspan="4">閫犵矑</td>
+ <td class="label" colspan="6">
+ <span>寮�濮嬫椂闂达細</span>
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.granulationB.startTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.granulationB.startTime) }}</span>
+ </td>
+ <td class="label" colspan="6">
+ <span>缁撴潫鏃堕棿锛�</span>
+ <el-date-picker
+ v-if="props.isEdit"
+ v-model="formData.otherData.granulationB.endTime"
+ type="datetime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ placeholder="璇烽�夋嫨"
+ style="width: 100%"
+ />
+ <span v-else class="view-value">{{ displayValue(formData.otherData.granulationB.endTime) }}</span>
+ </td>
+ <td class="label" colspan="2" rowspan="2">
+ <span>浣滀笟鍛�:</span>
+ <el-select v-model="formData.otherData.granulationB.userId"
+ v-if="props.isEdit"
+ style="width: 100%"
+ placeholder="璇烽�夋嫨浣滀笟鍛�"
+ clearable
+ filterable
+ @change="handleUserChange($event, 'granulationBUserId')">
+ <el-option v-for="user in userOptions"
+ :key="user.userId"
+ :label="user.userName"
+ :value="user.userId"/>
+ </el-select>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.granulationB.userName || formData.otherData.granulationB.userId) }}</span>
+ </td>
+ </tr>
+
+ <tr>
+ <td class="label" colspan="4">
+ <span>闆惧寲鍣ㄨ浆閫� 锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.granulationB.atomizerRotationalSpeed" placeholder="璇疯緭鍏�">
+ <template #append>r/min</template>
+ </el-input>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.granulationB.atomizerRotationalSpeed) }}</span>
+ </td>
+ <td class="label" colspan="4">
+ <span>杩涘彛閫熷害 锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.granulationB.importSpeed" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.granulationB.importSpeed) }}</span>
+ </td>
+ <td class="label" colspan="4">
+ <span>鍑哄彛閫熷害 锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.granulationB.outSpeed" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.granulationB.outSpeed) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="6">
+ <span>浜у嚭鎬绘暟 锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.quantity" placeholder="璇疯緭鍏�">
+ <template #append>KG</template>
+ </el-input>
+ <span v-else class="view-value">{{ displayValue(formData.quantity) }}</span>
+ </td>
+ <td class="label" colspan="6">
+ <span>鍚堟牸閲嶉噺 锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.granulationB.qualifiedWeight" placeholder="璇疯緭鍏�">
+ <template #append>KG</template>
+ </el-input>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.granulationB.qualifiedWeight) }}</span>
+ </td>
+ <td class="label" colspan="2" rowspan="2">
+ <span>纭浜�:</span>
+ <el-select v-model="formData.otherData.granulationB.confirmId"
+ v-if="props.isEdit"
+ style="width: 100%"
+ placeholder="璇烽�夋嫨纭浜�"
+ clearable
+ filterable
+ @change="handleUserChange($event, 'stirredMillConfirmId')">
+ <el-option v-for="user in userOptions"
+ :key="user.userId"
+ :label="user.userName"
+ :value="user.userId"/>
+ </el-select>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.granulationB.confirmName || formData.otherData.granulationB.confirmId) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="6">
+ <span>灏炬枡 锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.granulationB.wasteMaterials" placeholder="璇疯緭鍏�">
+ <template #append>KG</template>
+ </el-input>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.granulationB.wasteMaterials) }}</span>
+ </td>
+ <td class="label" colspan="6">
+ <span>澹佹枡 锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.granulationB.wallMaterial" placeholder="璇疯緭鍏�">
+ <template #append>KG</template>
+ </el-input>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.granulationB.wallMaterial) }}</span>
+ </td>
+ </tr>
+ <tr>
+ <td class="label" colspan="16">
+ <span>澶囨敞 锛�</span>
+ <el-input v-if="props.isEdit" v-model="formData.otherData.remark" placeholder="璇疯緭鍏�"/>
+ <span v-else class="view-value">{{ displayValue(formData.otherData.remark) }}</span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button v-if="props.isEdit" type="primary"
+ @click="handleReport">纭畾</el-button>
+ <el-button @click="visible = false">{{ props.isEdit ? "鍙栨秷" : "鍏抽棴" }}</el-button>
+ </span>
+ </template>
+ </el-dialog>
+</template>
+
+<style scoped>
+.report-table {
+ width: 100%;
+ border-collapse: collapse;
+ table-layout: fixed;
+ font-size: 13px;
+}
+
+.report-table td {
+ border: 1px solid #dcdfe6;
+ padding: 6px;
+ vertical-align: middle;
+}
+
+.report-table .label {
+ width: 90px;
+ background: #f5f7fa;
+ text-align: center;
+ font-weight: 500;
+}
+
+.report-table .tip {
+ text-align: center;
+ font-weight: 500;
+ line-height: 1.4;
+ background: #fafafa;
+}
+
+.view-value {
+ display: inline-block;
+ min-height: 32px;
+ line-height: 32px;
+}
+</style>
--
Gitblit v1.9.3