From 52b3b54470ecc3c80d816a9891b651ce7f5a0eaa Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期六, 11 十月 2025 13:39:27 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_NEW' into dev_NEW
---
src/views/production/components/ProductionDetailsTable.vue | 61 ++++++++++++++++++++++++++++--
1 files changed, 56 insertions(+), 5 deletions(-)
diff --git a/src/views/production/components/ProductionDetailsTable.vue b/src/views/production/components/ProductionDetailsTable.vue
index 8331deb..e017a4d 100644
--- a/src/views/production/components/ProductionDetailsTable.vue
+++ b/src/views/production/components/ProductionDetailsTable.vue
@@ -1,5 +1,24 @@
<template>
<el-table :data="tableData" :border="border" style="width: 100%">
+ <el-table-column label="鐓ゆ枡绫诲瀷" min-width="120">
+ <template #default="{ row, $index }">
+ <el-select
+ clearable
+ v-model="row.type"
+ placeholder="璇烽�夋嫨鐓ゆ枡绫诲瀷"
+ filterable
+ :key="`coalId-select-${$index}-${typeList.length}`"
+ :disabled="isViewMode"
+ >
+ <el-option
+ v-for="(item, index) of typeList"
+ :key="`option-${index}-${item.value}`"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </template>
+ </el-table-column>
<el-table-column label="鐓ょ" min-width="120">
<template #default="{ row, $index }">
<el-select
@@ -9,6 +28,7 @@
@change="(value) => handleCoalSelectChange(row, value)"
filterable
:key="`coalId-select-${$index}-${weekList.length}`"
+ :disabled="isViewMode"
>
<el-option
v-for="(item, index) of weekList"
@@ -26,6 +46,7 @@
placeholder="璇疯緭鍏ョ敓浜ф暟閲�"
type="number"
@input="handleInput('productionQuantity', $index, $event)"
+ :disabled="isViewMode"
/>
</template>
</el-table-column>
@@ -37,6 +58,7 @@
placeholder="璇疯緭鍏ヤ汉宸ユ垚鏈�"
type="number"
@input="handleInput('laborCost', $index, $event)"
+ :disabled="isViewMode"
>
<template #suffix>
<i style="font-style: normal">鍏�</i>
@@ -47,11 +69,15 @@
<el-table-column label="鑳借�楁垚鏈�" min-width="120">
<template #default="{ row, $index }">
+ <!-- 涓嶈兘涓鸿礋鏁� -->
<el-input
v-model="row.energyConsumptionCost"
placeholder="璇疯緭鍏ヨ兘鑰楁垚鏈�"
type="number"
+ min="0"
+ step="0.01"
@input="handleInput('energyConsumptionCost', $index, $event)"
+ :disabled="isViewMode"
>
<template #suffix>
<i style="font-style: normal">鍏�</i>
@@ -67,6 +93,7 @@
placeholder="璇疯緭鍏ヨ澶囨姌鏃�"
type="number"
@input="handleInput('equipmentDepreciation', $index, $event)"
+ :disabled="isViewMode"
>
<template #suffix>
<i style="font-style: normal">鍏�</i>
@@ -75,13 +102,14 @@
</template>
</el-table-column>
- <el-table-column label="閲囪喘鍗曚环" min-width="120">
+ <el-table-column label="閲囪喘鎬讳环" min-width="120">
<template #default="{ row, $index }">
<el-input
v-model="row.purchasePrice"
- placeholder="璇疯緭鍏ラ噰璐崟浠�"
+ placeholder="璇疯緭鍏ラ噰璐�讳环"
type="number"
@input="handleInput('purchasePrice', $index, $event)"
+ :disabled="isViewMode"
>
<template #suffix>
<i style="font-style: normal">鍏�</i>
@@ -99,6 +127,7 @@
type="number"
:readonly="autoCalculate"
@input="handleInput('totalCost', $index, $event)"
+
>
<template #suffix>
<i style="font-style: normal">鍏�</i>
@@ -115,6 +144,7 @@
@change="(value) => handleUserSelectChange(row, value)"
filterable
:key="`producer-select-${$index}-${userList.length}`"
+ :disabled="isViewMode"
>
<el-option
v-for="(item, index) of userList"
@@ -126,10 +156,10 @@
</template>
</el-table-column>
<el-table-column
- v-if="showOperations"
label="鎿嶄綔"
width="120"
fixed="right"
+ v-if="dialogType === 'add'"
>
<template #default="{ $index }">
<el-button
@@ -148,10 +178,21 @@
<script setup name="ProductionDetailsTable">
import {ref, computed, watch, onMounted, nextTick} from "vue";
import {Delete} from "@element-plus/icons-vue";
+import {ElMessage} from "element-plus";
import {getCoalFieldList} from "@/api/basicInformation/coalQualityMaintenance";
import {getCoalInfoList} from "@/api/production";
import {userListAll} from "@/api/publicApi";
+const typeList = [
+ {
+ label: "鎴愬搧",
+ value: 1,
+ },
+ {
+ label: "鍘熸枡",
+ value: 2,
+ }
+ ]
const props = defineProps({
modelValue: {
type: Array,
@@ -169,8 +210,12 @@
type: Boolean,
default: true,
},
+ dialogType:{
+ type: String,
+ default:'add'
+ }
});
-
+const isViewMode = computed(() => props.dialogType === "viewRow");
const emit = defineEmits(["update:modelValue", "input-change", "delete-row"]);
// 浣跨敤 v-model 杩涜鍙屽悜缁戝畾
@@ -185,6 +230,11 @@
// 澶勭悊杈撳叆鍙樺寲
const handleInput = (field, index, value) => {
+ // 纭繚杈撳叆鍊兼槸鏁板瓧鎴栫┖瀛楃涓茶�屼笖闈炶礋鏁�
+ if (!/^\d*\.?\d*$/.test(value) && value !== "") {
+ ElMessage.error("璇疯緭鍏ユ湁鏁堢殑鏁板瓧");
+ return;
+ }
const newData = [...tableData.value];
newData[index][field] = value;
@@ -208,7 +258,7 @@
// 璁$畻鎬绘垚鏈�
const calculateTotalCost = (row) => {
const laborCost = parseFloat(row.laborCost) || 0;
- const energyCost = parseFloat(row.energyCost) || 0;
+ const energyCost = parseFloat(row.energyConsumptionCost) || 0;
const equipmentDepreciation = parseFloat(row.equipmentDepreciation) || 0;
const purchasePrice = parseFloat(row.purchasePrice) || 0;
@@ -366,6 +416,7 @@
purchasePrice: "",
totalCost: "",
producerId: "",
+ type: 1,
...rowData,
};
tableData.value = [...tableData.value, defaultRow];
--
Gitblit v1.9.3