zss
16 小时以前 5448c9032abebbbaf4761670dfd90c8e5ea058fc
src/views/productionManagement/productStructure/Detail/index.vue
@@ -38,11 +38,10 @@
                               label="规格">
                <template #default="{ row, $index }">
                  <el-form-item v-if="dataValue.isEdit"
                                :rules="[{ required: true, message: '请选择规格', trigger: ['blur','change'] }]"
                                :rules="[{ required: false, message: '请选择规格', trigger: ['blur','change'] }]"
                                style="margin: 0">
                    <el-select v-model="row.model"
                               placeholder="请选择规格"
                               clearable
                               :disabled="!dataValue.isEdit"
                               style="width: 100%"
                               @visible-change="(v) => { if (v) openDialog(row.tempId) }">
@@ -81,7 +80,6 @@
                                style="margin: 0">
                    <el-input-number v-model="row.unitQuantity"
                                     :min="0"
                                     :precision="2"
                                     :step="1"
                                     controls-position="right"
                                     style="width: 100%"
@@ -119,6 +117,21 @@
                  </el-form-item>
                </template>
              </el-table-column>
               <el-table-column prop="unitPrice"
                               label="单价">
                <template #default="{ row, $index }">
                  <el-form-item v-if="dataValue.isEdit"
                                :rules="[{ required: true, message: '请输入单价', trigger: ['blur','change'] }]"
                                style="margin: 0">
                    <el-input-number v-model="row.unitPrice"
                                     :min="0"
                                     :step="1"
                                     controls-position="right"
                                     style="width: 100%"
                                     :disabled="!dataValue.isEdit" />
                  </el-form-item>
                </template>
              </el-table-column>
              <el-table-column label="操作"
                               fixed="right"
                               width="200">
@@ -141,16 +154,12 @@
      </el-table-column>
      <el-table-column label="BOM编号"
                       prop="bomNo" />
      <el-table-column label="产品编码"
                       prop="productCode" />
      <el-table-column label="产品名称"
                       prop="productName" />
      <el-table-column label="规格型号"
                       prop="model" />
      <el-table-column label="产品类型"
                       prop="dictLabel" />
    </el-table>
    <div v-if="dataValue.isEdit && dataValue.dataList.length == 0"
    <div v-if="dataValue.isEdit"
         style="text-align: center;border: 1px solid #e4e7ed;padding: 10px;transition: all 0.3s ease;cursor: pointer;"
         :class="{'hover-effect': dataValue.isEdit && dataValue.dataList.length == 0}">
         :class="{'hover-effect': dataValue.isEdit}">
      <el-button type="primary"
                 text
                 @click="addItem">
@@ -206,11 +215,8 @@
  // 从路由参数获取产品信息
  const routeBomNo = computed(() => route.query.bomNo || "");
  const routeProductCode = computed(() => route.query.productCode || "");
  const routeProductName = computed(() => route.query.productName || "");
  const routeProductModelName = computed(
    () => route.query.productModelName || ""
  );
  const routeDictLabel = computed(() => route.query.dictLabel || "");
  const routeOrderId = computed(() => route.query.orderId);
  const pageType = computed(() => route.query.type);
  const isOrderPage = computed(
@@ -230,9 +236,8 @@
  const tableData = reactive([
    {
      productName: "",
      model: "",
      bomNo: "",
      dictLabel: "",
    },
  ]);
@@ -344,11 +349,6 @@
    const validateItem = (item: any, isTopLevel = false) => {
      console.log(item, "item");
      // 校验当前项的必填字段
      if (!item.model) {
        ElMessage.error("请选择规格");
        isValid = false;
        return;
      }
      if (!item.processId) {
        ElMessage.error("请选择消耗工序");
        isValid = false;
@@ -356,6 +356,11 @@
      }
      if (!item.unitQuantity) {
        ElMessage.error("请输入单位产出所需数量");
        isValid = false;
        return;
      }
      if (!item.unitPrice) {
        ElMessage.error("请输入单价");
        isValid = false;
        return;
      }
@@ -454,6 +459,7 @@
      processId: "",
      processName: "",
      unitQuantity: 0,
      unitPrice: 0,
      demandedQuantity: 0,
      unit: "",
      children: [],
@@ -476,6 +482,7 @@
          processId: "",
          processName: "",
          unitQuantity: 0,
          unitPrice: 0,
          demandedQuantity: 0,
          unit: "",
          children: [],
@@ -502,6 +509,7 @@
        productModelId: undefined,
        processId: "",
        unitQuantity: 0,
        unitPrice: 0,
        demandedQuantity: 0,
        children: [],
        unit: "",
@@ -539,9 +547,8 @@
  onMounted(async () => {
    // 从路由参数回显数据
    tableData[0].productName = routeProductName.value as string;
    tableData[0].model = routeProductModelName.value as string;
    tableData[0].bomNo = routeBomNo.value as string;
    tableData[0].dictLabel = routeDictLabel.value as string;
    // 订单情况下禁用编辑
    if (isOrderPage.value) {