chengxiangling
2025-05-14 4f38240e2fd66324ebf9d7dc69b00a363d4c8c4a
提交调整列宽,日历对接等
已修改6个文件
586 ■■■■■ 文件已修改
src/utils/i18n/locales/plan/index.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicData/calendar/index.vue 443 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/platePlanList/index.vue 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/plateProcessStat/index.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/sheetMetalOrderManage/index.vue 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mainPlan/sheetMetalSupplyGap/index.vue 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/i18n/locales/plan/index.js
@@ -166,6 +166,7 @@
    currentProcessNumber: "当前工序号",
    totalWorkingHoursOfProcess: "工序总工时",
    OrderCompletionDate: "订单完工日",
    abnormalState: "异常状态",
    dateYearMonth: "日期",
    resourceName: "资源组",
    designWorkingHours: "设计工时",
@@ -393,6 +394,7 @@
    currentProcessNumber: "Current process number",
    totalWorkingHoursOfProcess: "Total working hours of the process",
    OrderCompletionDate: "Order completion date",
    abnormalState: "Abnormal state",
    dateYearMonth: "Date",
    resourceName: "Resource Group",
    designWorkingHours: "Design working hours",
src/views/basicData/calendar/index.vue
@@ -111,7 +111,7 @@
      class="auto-height-grid"
    >
      <template #status="{ row }">
        <vxe-tag v-if="row.type === '1'" status="primary">周工作日</vxe-tag>
        <vxe-tag v-if="row.type === '1'" status="primary">周工作</vxe-tag>
        <vxe-tag v-if="row.type === '2'" status="success">节假日</vxe-tag>
      </template>
      <template #mark="{ row }">
@@ -393,7 +393,8 @@
                    v-for="(item, index) in form.applicableTranslate"
                    :key="index"
                  >
                    {{ item.factory }} - {{ item.workshop }} - {{ item.process }}
                    {{ item.factory }} - {{ item.workshop }} -
                    {{ item.process }}
                  </div>
                </div>
              </div>
@@ -410,51 +411,141 @@
            >
          </div>
          <div class="grey_bg">
          <el-form
            class="mart10"
            ref="holidaysRef"
            :model="formHolidays"
            :rules="holidayRules"
            :inline="true"
            label-width="105px"
          >
            <template v-for="(item, index) in formHolidays" :key="index">
              <el-form-item label="节假日描述" prop="description">
                <el-input
                  style="width: 130px"
                  v-model="item.describe"
                  placeholder="请输入描述"
                />
              </el-form-item>
              <el-form-item label="开始时间" prop="startdate">
                <el-date-picker
                  style="width: 130px"
                  clearable
                  v-model="item.startdate"
                  type="date"
                  :disabled-date="handleDisabledDate"
                  :default-value="form.effectiveDate"
                  placeholder="选择日期"
            <div
              class="flex_holidays_set"
              v-for="(item, index) in formHolidays"
              :key="index"
            >
              <div class="dis_error_wrap">
                <div class="flex_item">
                  <div class="flex_item_title">
                    <span class="error_require">*</span><span>节假日描述</span>
                  </div>
                  <div>
                    <el-input
                      style="width: 130px"
                      v-model="item.describe"
                      placeholder="请输入描述"
                    />
                  </div>
                </div>
                <div class="error_text">请输入节假日描述</div>
              </div>
              <div class="dis_error_wrap">
                <div class="flex_item">
                  <div class="flex_item_title">
                    <span class="error_require">*</span><span>开始时间</span>
                  </div>
                  <div>
                    <el-date-picker
                      style="width: 130px"
                      clearable
                      v-model="item.startdate"
                      type="date"
                      :disabled-date="handleDisabledDate"
                      :default-value="form.effectiveDate"
                      placeholder="选择日期"
                    >
                    </el-date-picker>
                  </div>
                </div>
                <div class="error_text">请输入开始时间</div>
              </div>
              <div class="dis_error_wrap">
                <div class="flex_item">
                  <div class="flex_item_title">
                    <span class="error_require">*</span><span>结束时间</span>
                  </div>
                  <div>
                    <el-date-picker
                      style="width: 130px"
                      clearable
                      v-model="item.enddate"
                      type="date"
                      :disabled-date="handleDisabledDate"
                      :default-value="form.expiringDate"
                      placeholder="选择日期"
                    >
                    </el-date-picker>
                  </div>
                </div>
                <div class="error_text">请输入结束时间</div>
              </div>
              <div class="dis_error_wrap">
                <div class="flex_item">
                  <el-button
                    v-if="formHolidays.length > 1"
                    type="danger"
                    size="small"
                    @click="handleDelSettingHolidays(item)"
                    >删除</el-button
                  >
                </div>
              </div>
            </div>
            <!-- <el-form
              class="mart10"
              ref="holidaysRef"
              :model="item"
              :rules="holidayRules"
              :inline="true"
              label-width="105px"
            >
              <div v-for="(item, index) in formHolidays.holidays" :key="index">
                <el-form-item
                  label="节假日描述"
                  :prop="'holidays.' + index + '.describe'"
                  :rules="{ required: true, message: '请输入节假日描述', trigger: 'blur' }"
                >
                </el-date-picker>
              </el-form-item>
              <el-form-item label="结束时间" prop="enddate">
                <el-date-picker
                  style="width: 130px"
                  clearable
                  v-model="item.enddate"
                  type="date"
                  placeholder="选择日期"
                  :disabled-date="handleDisabledDate"
                  :default-value="form.expiringDate"
                  <el-input
                    style="width: 130px"
                    v-model="item.describe"
                    placeholder="请输入描述"
                  />
                </el-form-item>
                <el-form-item
                  label="开始时间"
                  :prop="'holidays.' + index + '.startdate'"
                  :rules="{ required: true, message: '请输入开始时间', trigger: 'blur' }"
                >
                </el-date-picker>
              </el-form-item>
              <el-form-item label="" prop="">
                <el-button v-if="formHolidays.length>1" type="danger" size="small" @click="handleDelSettingHolidays(item)">删除</el-button>
              </el-form-item>
            </template>
          </el-form>
                  <el-date-picker
                    style="width: 130px"
                    clearable
                    v-model="item.startdate"
                    type="date"
                    :disabled-date="handleDisabledDate"
                    :default-value="form.effectiveDate"
                    placeholder="选择日期"
                  >
                  </el-date-picker>
                </el-form-item>
                <el-form-item
                  label="结束时间"
                  :prop="'holidays.' + index + '.enddate'"
                  :rules="{ required: true, message: '请输入结束时间', trigger: 'blur' }"
                >
                  <el-date-picker
                    style="width: 130px"
                    clearable
                    v-model="item.enddate"
                    type="date"
                    placeholder="选择日期"
                    :disabled-date="handleDisabledDate"
                    :default-value="form.expiringDate"
                  >
                  </el-date-picker>
                </el-form-item>
                <el-form-item label="" prop="">
                  <el-button
                    v-if="formHolidays.length > 1"
                    type="danger"
                    size="small"
                    @click="handleDelSettingHolidays(item)"
                    >删除</el-button
                  >
                </el-form-item>
              </div>
            </el-form> -->
          </div>
        </div>
      </div>
@@ -486,6 +577,7 @@
import { selectProcessNameList } from "@/api/basicData/processRoute.js";
import { ElMessage } from "element-plus";
const { proxy } = getCurrentInstance();
const holidaysRef = ref(null);
const { aps_factory } = proxy.useDict("aps_factory");
const tableRef = ref();
const calendarList = ref([]);
@@ -510,13 +602,15 @@
      },
    ],
  },
  formHolidays: [
    {
      enddate: "",
      startdate: "",
      describe: "",
    },
  ],
  formHolidays: {
    holidays: [
      {
        enddate: "",
        startdate: "",
        describe: "",
      },
    ],
  },
  queryParams: {
    pageNum: 1,
    pageSize: 10,
@@ -560,17 +654,34 @@
      },
    ],
  },
  holidayRules: {
    describe: [
      {
        required: true,
        message: "请输入节假日描述",
        trigger: "blur",
      },
    ],
  },
  // holidayRules: {
  //   describe: [
  //     {
  //       required: true,
  //       message: "请输入节假日描述",
  //       trigger: "blur",
  //     },
  //   ],
  //   startdate: [
  //     {
  //       required: true,
  //       message: "请输入开始时间",
  //       trigger: "blur",
  //     },
  //   ],
  //   enddate: [
  //     {
  //       required: true,
  //       message: "请输入结束时间",
  //       trigger: "blur",
  //     },
  //   ],
  // },
});
const { queryParams, form, rules, formHolidays, holidayRules } = toRefs(data);
const holidayRules = {
  holidays: [{ required: true, message: "节假日是必填项", trigger: "blur" }],
};
const { queryParams, form, rules, formHolidays } = toRefs(data);
const dateType = ref("周工作");
const dateTypeList = ref([
  {
@@ -667,43 +778,43 @@
    align: "center",
    slots: { default: "mark" },
  },
  {
    title: "适用工厂",
    field: "applicableFactory",
    width: 200,
    align: "center",
    formatter: ({ cellValue, row, column }) => {
      if (cellValue) {
        for (let i = 0; i < plantList.value.length; i++) {
          if (cellValue === plantList.value[i].plantCode) {
            return plantList.value[i].plantName;
          }
        }
      }
    },
  },
  {
    title: "适用车间",
    field: "applicableWorkshop",
    width: 200,
    align: "center",
    formatter: ({ cellValue, row, column }) => {
      if (cellValue) {
        for (let i = 0; i < shopList.value.length; i++) {
          if (cellValue === shopList.value[i].id) {
            return shopList.value[i].shopName;
          }
        }
      }
      return "";
    },
  },
  {
    title: "适用工序",
    field: "applicableProcess",
    width: 200,
    align: "center",
  },
  // {
  //   title: "适用工厂",
  //   field: "applicableFactory",
  //   width: 200,
  //   align: "center",
  //   formatter: ({ cellValue, row, column }) => {
  //     if (cellValue) {
  //       for (let i = 0; i < plantList.value.length; i++) {
  //         if (cellValue === plantList.value[i].plantCode) {
  //           return plantList.value[i].plantName;
  //         }
  //       }
  //     }
  //   },
  // },
  // {
  //   title: "适用车间",
  //   field: "applicableWorkshop",
  //   width: 200,
  //   align: "center",
  //   formatter: ({ cellValue, row, column }) => {
  //     if (cellValue) {
  //       for (let i = 0; i < shopList.value.length; i++) {
  //         if (cellValue === shopList.value[i].id) {
  //           return shopList.value[i].shopName;
  //         }
  //       }
  //     }
  //     return "";
  //   },
  // },
  // {
  //   title: "适用工序",
  //   field: "applicableProcess",
  //   width: 200,
  //   align: "center",
  // },
  {
    title: "创建者",
    field: "createBy",
@@ -847,16 +958,19 @@
    applicableTranslate: JSON.parse(row.applicableTranslate),
  };
  if (!row.holidays) {
    formHolidays.value = [
      {
        enddate: "",
        startdate: "",
        describe: "",
      },
    ];
    formHolidays.value = {
      holidays: [
        {
          enddate: "",
          startdate: "",
          describe: "",
        },
      ],
    };
  } else {
    formHolidays.value = JSON.parse(row.holidays.value);
    formHolidays.value.holidays = JSON.parse(row.holidays.value);
  }
  console.log(formHolidays.value.holidays, "formHolidays.value");
  openSetHolidays.value = true;
}
// 禁用日期
@@ -864,18 +978,17 @@
  const targetDate = moment(date).valueOf();
  const startDate = moment(form.value.effectiveDate).valueOf();
  const endDate = moment(form.value.expiringDate).valueOf();
  console.log(targetDate, startDate, endDate, "handleDisabledDate");
  return targetDate < startDate || targetDate > endDate;
}
// 删除节假日设置
function handleDelSettingHolidays(row) {
 formHolidays.value = formHolidays.value.filter(item=>{
    return item != row
  })
  formHolidays.value.holidays = formHolidays.value.holidays.filter((item) => {
    return item != row;
  });
}
// 添加节假日
function hanldeAddHolidays() {
  formHolidays.value.push({
  formHolidays.value.holidays.push({
    enddate: "",
    startdate: "",
    describe: "",
@@ -884,39 +997,64 @@
function handleToggleExpand() {
  expand.value = !expand.value;
}
// const confirmClick = () => {
//     let formList = [predictionFormRef]
//     let resultArr = [];
//     let validate = (form) => {
//         let result = new Promise((resolve, reject) => {
//             form.value.validate(valid => {
//                 if (valid) {
//                     resolve()
//                 } else {
//                     reject()
//                 }
//             })
//         })
//         resultArr.push(result)
//     }
//     formList.forEach(item => {
//         validate(item)
//     })
//     Promise.all(resultArr).then(() => {
//         saveRule() // 校验成功之后 保存数据的方法
//     })
// }
// const submitForm = () => {
//   formRef.value.validate((valid) => {
//     if (valid) {
//       alert('submit!');
//     } else {
//       alert('Form is not valid.');
//       return false;
//     }
//   });
// };
// 提交节假日
function handleSaveHolidaysForm() {
  proxy.$refs["holidaysRef"].validate((valid) => {
  console.log(holidaysRef.value, "表单dom");
  // holidaysRef.value.validate((valid) => {
  //   console.log(valid,"valid")
  //   if (valid) {
  //     proxy.$modal.msgSuccess('submit!');
  //   } else {
  //     proxy.$modal.msgSuccess('Form is not valid.');
  //     return false;
  //   }
  // })
  holidaysRef.value.validate((valid) => {
    if (!valid) {
      proxy.$modal.msgSuccess("必填项不能为空");
    }
    if (valid) {
      updateCalendar({
        id: form.value.id,
        // content: {
        //   weekdays: weekDaysSettingList.value,
        // },
        holidays: formHolidays.value.map((item) => {
        holidays: formHolidays.value.holidays.map((item) => {
          return {
            startdate: moment(item.startdate).format("YY-MM-DD"),
            enddate: moment(item.enddate).format("YY-MM-DD"),
            startdate: moment(item.startdate).format("YYYY-MM-DD"),
            enddate: moment(item.enddate).format("YYYY-MM-DD"),
            describe: item.describe,
          };
        }),
        // applicable: applicableSettingList.value.map((item) => {
        //   return {
        //     factory: item.factory.split(";")[0],
        //     process: item.process.split(";")[0],
        //     workshop: item.workshop.split(";")[0],
        //   };
        // }),
        // applicableTranslate: JSON.stringify(
        //   applicableSettingList.value.map((item) => {
        //     return {
        //       factory: item.factory.split(";")[1],
        //       process: item.process.split(";")[1],
        //       workshop: item.workshop.split(";")[1],
        //     };
        //   })
        //),
        // applicableCn:
        //},
      }).then((response) => {
        proxy.$modal.msgSuccess("新增成功");
        open.value = false;
@@ -964,6 +1102,7 @@
            };
          }),
          applicableProcess: form.value.applicableProcess,
          type: "1",
        }).then((response) => {
          proxy.$modal.msgSuccess("修改成功");
          open.value = false;
@@ -1005,6 +1144,7 @@
              };
            })
          ),
          type: "1",
          // applicableCn:
          //},
        }).then((response) => {
@@ -1149,12 +1289,20 @@
}
.h300 {
}
.height_dialog{
.height_dialog {
  height: 400px;
  overflow: hidden;
  .height_dialog_scroll{
  .height_dialog_scroll {
    height: 100%;
    overflow: auto;
  }
}
.dis_error_wrap {
  .error_text {
    margin-left: 20px;
    font-size: 12px;
    color: #f56c6c;
    margin-left: 120px;
  }
}
.grey_bg {
@@ -1162,11 +1310,28 @@
  width: 100%;
  padding: 10px;
  box-sizing: border-box;
  .flex_holidays_set {
    display: flex;
    justify-content: flex-start;
    align-items: center;
  }
  .flex_item {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    margin-top: 10px;
    .flex_item_title {
      width: 85px;
      color: #606266;
      font-size: 14px;
      font-weight: 600;
      margin-left: 20px;
      margin-right: 10px;
      .error_require {
        color: #f56c6c;
        margin-right: 5px;
      }
    }
    .flex_item_dis {
      display: flex;
      flex-direction: column;
src/views/mainPlan/platePlanList/index.vue
@@ -166,112 +166,112 @@
    {
      title: t("plan.table.mainPartCustomer"),
      field: "customer",
      width: 150,
      width: "auto",
      fixed: "left",
    },
    {
      title: t("plan.table.mainPartNumber"),
      field: "mainPartNumber",
      width: 120,
      width: "auto",
      fixed: "left",
    },
    {
      title: t("plan.table.businessType"),
      field: "businessType",
      width: 90,
      width: "auto",
      fixed: "left",
    },
    {
      title: t("plan.table.documentNumber"),
      field: "documentNumber",
      width: 140,
      width: "auto",
      fixed: "left",
    },
    {
      title: t("plan.table.requirementType"),
      field: "requirementType",
      width: 100,
      width: "auto",
      fixed: "left",
    },
    {
      title: t("plan.table.documentStatus"),
      field: "documentStatus",
      width: 70,
      width: "auto",
      fixed: "left",
    },
    {
      title: t("plan.table.updateBy"),
      field: "updateBy",
      width: 100,
    },
    // {
    //   title: t("plan.table.updateBy"),
    //   field: "updateBy",
    //   width: "auto",
    // },
    {
      title: t("plan.table.workCenter"),
      field: "workCenter",
      width: 200,
      width: "auto",
    },
    {
      title: t("plan.table.department"),
      field: "department",
      width: 200,
      width: "auto",
    },
    {
      title: t("plan.table.opStatus"),
      field: "opStatus",
      width: 200,
      width: "auto",
    },
    {
      title: t("plan.table.nextOpName"),
      field: "nextOpName",
      width: 100,
      width: "auto",
    },
    {
      title: t("plan.table.nextProcessDeparment"),
      field: "nextProcessDeparment",
      width: 200,
      width: "auto",
    },
    {
      title: t("plan.table.itemNumber"),
      field: "itemNumber",
      width: 150,
      width: "auto",
      type: "html",
    },
    {
      title: t("plan.table.drawingNo"),
      field: "drawingNo",
      width: 150,
      width: "auto",
      // format: 'YYYY-MM-DD'
    },
    {
      title: t("plan.table.versionNumber"),
      field: "versionNumber",
      width: 100,
      width: "auto",
      type: "html",
    },
    {
      title: t("plan.table.cheaperCode"),
      field: "cheaperCode",
      width: 100,
      width: "auto",
    },
    {
      title: t("plan.table.productionQuantity"),
      field: "productionQuantity",
      width: 100,
      width: "auto",
      type: "html",
    },
    {
      title: t("plan.table.workorderCreationTime"),
      field: "orderCreateTime",
      width: 200,
      width: "auto",
    },
    {
      title: t("plan.table.workOrderReviewTime"),
      field: "approveOn",
      width: 200,
      width: "auto",
    },
    {
      title: t("plan.table.workOrderStartTime"),
      field: "startWorkDate",
      width: 200,
      width: "auto",
    },
    // {
    //   title: t("plan.table.planworkOrderTime"),
@@ -281,7 +281,7 @@
    {
      title: t("plan.table.planEndDay"),
      field: "planEndDay",
      width: 150,
      width: "auto",
      format: "YYYY-MM-DD hh:mm:ss",
    },
  ]
src/views/mainPlan/plateProcessStat/index.vue
@@ -165,55 +165,61 @@
      {
        title: t("plan.table.workOrderNo"),
        field: "workOrderNo",
        width: 150,
        width: "auto",
      },
      {
        title: t("plan.table.processName"),
        field: "processName",
        width: "auto",
      },
      {
        title: t("plan.table.processNumber"),
        field: "routeProcessNumberTxt",
        width: 100,
        width: "auto",
      },
      {
        title: t("plan.table.currentProcessNumber"),
        field: "currentProcessNumberTxt",
        width: 100,
        width: "auto",
      },
      {
        title: t("plan.table.productionQuantity"),
        field: "productionQuantity",
        width: 80,
        width: "auto",
      },
      {
        title: t("plan.table.standardTime"),
        field: "standardTime",
        width: 80,
        width: 100,
      },
      {
        title: t("plan.table.totalWorkingHoursOfProcess"),
        field: "processTotalTime",
        width: 80,
        width: 100,
      },
      {
        title: t("plan.table.planStartDay"),
        field: "processPlanStartDaytxt",
        width: 200,
        width: 160,
        type: "html",
      },
      {
        title: t("plan.table.planEndDayDate"),
        field: "processPlanEndDaytxt",
        width: 200,
        width: 160,
        type: "html",
      },
      {
        title: t("plan.table.OrderCompletionDate"),
        field: "orderPlanEndDay",
        width: 200,
        width: 160,
        format: "YYYY-MM-DD HH:mm:ss",
      },
      {
        title: t("plan.table.abnormalState"),
        field: "exceptionStatus",
        width: "auto",
      }
    ];
  },
  { immediate: true, deep: true }
@@ -239,6 +245,7 @@
        .padStart(3, "0");
    });
    aps_plate_process_statList.value = listValue;
    console.log(aps_plate_process_statList.value,"aps_plate_process_statList.value")
    total.value = response.total;
    loading.value = false;
  });
@@ -383,7 +390,7 @@
//   }
//   return null;
// };
getList();
// getList();
</script>
<style lang="scss" scoped>
.column-with-margin {
src/views/mainPlan/sheetMetalOrderManage/index.vue
@@ -388,25 +388,25 @@
      {
        title: t("basic.table.requirementTraceabilityID"),
        field: "requireTrackId",
        width: 200,
        width: "auto",
        align: "center",
      },
      {
        title: t("plan.table.workOrderNo"),
        field: "workOrderNo",
        width: 200,
        width: "auto",
        align: "center",
      },
      {
        title: t("basic.table.matchQuantity"),
        field: "deductionAmount",
        width: 200,
        width: "auto",
        align: "center",
      },
      {
        title: t("basic.table.workOrderType"),
        field: "workOrderType",
        width: 200,
        width: "auto",
        align: "center",
        formatter: ({ cellValue, row, column }) => {
          if (cellValue) {
@@ -421,31 +421,31 @@
      {
        title: t("plan.table.itemNumber"),
        field: "mainPartNumber",
        width: 200,
        width: "auto",
        align: "center",
      },
      {
        title: t("plan.table.mainPartDrawingNumber"),
        field: "mainPartDrawingNumber",
        width: 200,
        width: "auto",
        align: "center",
      },
      {
        title: t("basic.table.mainCustomer"),
        field: "customer",
        width: 200,
        width: "auto",
        align: "center",
      },
      {
        title: t("plan.table.productionQuantity"),
        field: "productionQuantity",
        width: 100,
        width: "auto",
        align: "center",
      },
      {
        title: t("basic.table.applicableFactories"),
        field: "applicableFactories",
        width: 200,
        width: 100,
        align: "center",
        formatter: ({ cellValue, row, column }) => {
          if (cellValue) {
@@ -460,31 +460,31 @@
      {
        title: t("plan.table.productionBase"),
        field: "productionBase",
        width: 100,
        width: "auto",
        align: "center",
      },
      {
        title: t("plan.table.planStartDay"),
        field: "planStartDay",
        width: 200,
        width: "auto",
        align: "center",
      },
      {
        title: t("plan.table.planEndDayDate"),
        field: "planEndDay",
        width: 200,
        width: "auto",
        align: "center",
      },
      {
        title: t("plan.table.workorderCreationTime"),
        field: "orderCreateTime",
        width: 200,
        width: "auto",
        align: "center",
      },
      {
        title: t("plan.table.mismatchedProductionQuantity"),
        field: "unmatchedQuantity",
        width: 100,
        width: "auto",
        align: "center",
      },
      {
src/views/mainPlan/sheetMetalSupplyGap/index.vue
@@ -142,24 +142,24 @@
        width: 200,
        align: "center",
      },
      {
        title: t("plan.table.bomLowCode"),
        field: "bomLineLevel",
        width: 200,
        align: "center",
      },
      {
        title: t("plan.table.matchState"),
        field: "matchState",
        width: 200,
        align: "center",
      },
      {
        title: t("plan.table.matchPattern"),
        field: "matchMode",
        width: 200,
        align: "center",
      },
      // {
      //   title: t("plan.table.bomLowCode"),
      //   field: "bomLineLevel",
      //   width: 200,
      //   align: "center",
      // },
      // {
      //   title: t("plan.table.matchState"),
      //   field: "matchState",
      //   width: 200,
      //   align: "center",
      // },
      // {
      //   title: t("plan.table.matchPattern"),
      //   field: "matchMode",
      //   width: 200,
      //   align: "center",
      // },
      {
        title: t("plan.table.unmatchedDemandQuantity"),
        field: "unmatchedDemandAmount",