zss
4 小时以前 3dee44aee9e5b8b55b5b8c2dd577042a35a24c66
src/views/productionManagement/productionReporting/reportingDialog.vue
@@ -117,19 +117,6 @@
                        v-model="form.npsNo"
                        class="form-input" />
            </el-form-item>
            <el-form-item label="班组"
                          prop="teamName"
                          required
                          class="form-item">
              <el-select v-model="form.teamName"
                         placeholder="请选择班组"
                         class="form-select">
                <el-option label="白班"
                           value="白班" />
                <el-option label="夜班"
                           value="夜班" />
              </el-select>
            </el-form-item>
            <el-form-item label="产品编码"
                          prop="materialCode"
                          class="form-item">
@@ -151,6 +138,28 @@
                        v-model="form.specification"
                        class="form-input" />
            </el-form-item>
            <el-form-item label="创建时间"
                          prop="createTime"
                          class="form-item">
              <el-date-picker disabled
                              v-model="form.createTime"
                              type="datetime"
                              placeholder="请选择创建时间"
                              class="form-input" />
            </el-form-item>
            <el-form-item label="班组"
                          prop="teamName"
                          required
                          class="form-item">
              <el-select v-model="form.teamName"
                         placeholder="请选择班组"
                         class="form-select">
                <el-option label="白班"
                           value="白班" />
                <el-option label="夜班"
                           value="夜班" />
              </el-select>
            </el-form-item>
            <el-form-item label="创建人"
                          prop="createBy"
                          required
@@ -164,15 +173,6 @@
                           :label="user.nickName || user.userName"
                           :value="user.nickName || user.userName" />
              </el-select>
            </el-form-item>
            <el-form-item label="创建时间"
                          prop="createTime"
                          class="form-item">
              <el-date-picker disabled
                              v-model="form.createTime"
                              type="datetime"
                              placeholder="请选择创建时间"
                              class="form-input" />
            </el-form-item>
          </div>
        </el-form>
@@ -357,6 +357,9 @@
                                      :key="param.id"
                                      :label="param.paramName"
                                      :label-width="120"
                                      :required="param.isRequired"
                                      :prop="`paramGroups.${activeProcessId}.${index}.${param.id}`"
                                      :rules="param.isRequired ? [{ required: true, message: `请输入${param.paramName}`, trigger: 'blur' }] : []"
                                      class="param-item">
                          <template v-if="param.paramType == '1'">
                            <!-- 数字类型 -->
@@ -454,8 +457,10 @@
                    <!-- 参数列 -->
                    <el-table-column v-for="param in params"
                                     :key="param.id"
                                     :label="param.paramName"
                                     min-width="200">
                                     :min-width="200">
                      <template #header>
                        <span :class="{ 'required-label': param.isRequired }">{{ param.paramName }}</span>
                      </template>
                      <template #default="{ row }">
                        <template v-if="param.paramType == '1'">
                          <!-- 数字类型 -->
@@ -560,6 +565,7 @@
                <el-input-number v-model="form.outputVolume"
                                 :min="0"
                                 :precision="2"
                                 @change="handleVolumeChange"
                                 class="volume-input" />
                <span class="volume-unit">方</span>
              </div>
@@ -572,6 +578,7 @@
                <el-input-number v-model="form.unqualifiedVolume"
                                 :min="0"
                                 :precision="2"
                                 @change="handleVolumeChange"
                                 class="volume-input" />
                <span class="volume-unit">方</span>
              </div>
@@ -658,7 +665,7 @@
    id: data.id || undefined,
    orderId: data.orderId || "",
    npsNo: data.npsNo || "",
    teamName: data.teamName || "",
    teamName: data.teamName || "白班",
    materialCode: data.materialCode || "",
    productName: data.productName || "",
    specification: data.specification || "",
@@ -695,6 +702,9 @@
      .finally(() => {
        orderLoading.value = false;
      });
  };
  const handleVolumeChange = () => {
    form.completedVolume = form.outputVolume - form.unqualifiedVolume;
  };
  // 处理生产订单选择
@@ -926,7 +936,48 @@
        }
      });
    } else if (activeStep.value === 2) {
      // 第三步:直接进入第四步
      // 第三步:验证参数必填项
      let isValid = true;
      let errorMessage = "";
      // 遍历所有工序
      for (const process of processList.value) {
        const processId = process.processId;
        const paramGroups = form.paramGroups[processId] || [];
        const processParams = process.orderRouteItemParaVos || [];
        // 获取必填参数
        const requiredParams = processParams.filter(p => p.isRequired);
        if (requiredParams.length > 0) {
          // 检查每个参数组中的必填参数
          for (
            let groupIndex = 0;
            groupIndex < paramGroups.length;
            groupIndex++
          ) {
            const group = paramGroups[groupIndex];
            for (const param of requiredParams) {
              const value = group[param.id];
              if (value === undefined || value === null || value === "") {
                isValid = false;
                errorMessage = `工序【${process.processName}】参数组${
                  groupIndex + 1
                }的【${param.paramName}】为必填项`;
                break;
              }
            }
            if (!isValid) break;
          }
        }
        if (!isValid) break;
      }
      if (!isValid) {
        ElMessage.error(errorMessage);
        return;
      }
      activeStep.value = 3;
    }
  };
@@ -1220,6 +1271,13 @@
    white-space: nowrap;
  }
  /* 必填标识样式 */
  .required-label::before {
    content: "*";
    color: #f56c6c;
    margin-right: 4px;
  }
  .form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));