src/views/production/components/ProductionDetailsTable.vue
@@ -50,10 +50,13 @@
    <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"
        >
@@ -156,6 +159,7 @@
<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";
@@ -197,6 +201,11 @@
// 处理输入变化
const handleInput = (field, index, value) => {
  // 确保输入值是数字或空字符串而且非负数
  if (!/^\d*\.?\d*$/.test(value) && value !== "") {
    ElMessage.error("请输入有效的数字");
    return;
  }
  const newData = [...tableData.value];
  newData[index][field] = value;