spring
6 天以前 0c4429a719f5c95a7690fae51efaaa799ef4e77d
src/views/productionManagement/workOrder/components/ProductionRecordForm.vue
@@ -17,7 +17,7 @@
    type: Number,
    default: 120
  },
  /** 本次生产数量(成型工序用于计算投入重量) */
  /** 本次生产数量(成型工序用于计算投入重量/数量) */
  quantity: {
    type: Number,
    default: null
@@ -27,7 +27,7 @@
    type: Boolean,
    default: false
  },
  /** 工单 BOM 投入重量,非成型工序回显到「投入重量」 */
  /** 工单 BOM 投入重量,非成型工序回显到「投入重量/数量」 */
  bomInputQty: {
    type: Number,
    default: null
@@ -39,11 +39,21 @@
  list: [] as any[],
});
const INPUT_WEIGHT_PARAM_ITEM = "投入重量/数量";
/** 参数项展示名(兼容库内旧名「投入重量」) */
const displayParameterItem = (name) => {
  const trimmed = String(name ?? "").trim();
  if (trimmed === "投入重量") return INPUT_WEIGHT_PARAM_ITEM;
  return trimmed;
};
const fieldLabel = (item: any) => {
  const parameterItem = displayParameterItem(item.parameterItem);
  if (!item.unit || item.unit === "/") {
    return item.parameterItem;
    return parameterItem;
  }
  return `${item.parameterItem}(${item.unit})`;
  return `${parameterItem}(${item.unit})`;
};
const getType = (item: any) => item.type || "文本格式";
@@ -52,7 +62,11 @@
  const result: Record<string, any[]> = {};
  formData.list.forEach((item, index) => {
    if (String(item.isRequired) === "1") {
      result[`list.${index}.value`] = [{required: true, message: `请输入${item.parameterItem}`, trigger: "blur"}];
      result[`list.${index}.value`] = [{
        required: true,
        message: `请输入${displayParameterItem(item.parameterItem)}`,
        trigger: "blur"
      }];
    }
  });
  return result;
@@ -66,15 +80,17 @@
const normalizeUnit = (unit) => String(unit ?? "").trim().toLowerCase();
const isInputWeightItem = (item) =>
  String(item?.parameterItem ?? "").includes("投入重量") &&
  normalizeUnit(item?.unit) === "kg";
const isInputWeightItem = (item) => {
  const name = String(item?.parameterItem ?? "").trim();
  return (name === "投入重量" || name.includes(INPUT_WEIGHT_PARAM_ITEM)) &&
    normalizeUnit(item?.unit) === "kg";
};
const isBlankCoeffItem = (item) =>
  String(item?.parameterItem ?? "").includes("生坯系数") &&
  normalizeUnit(item?.unit) === "g";
/** 投入重量(KG) = 本次生产数量 × 生坯系数(g) / 1000 */
/** 投入重量/数量(KG) = 本次生产数量 × 生坯系数(g) / 1000 */
const syncFormingInputWeight = () => {
  if (!props.isFormingProcess) return;
  const weightItem = formData.list.find(isInputWeightItem);
@@ -93,7 +109,7 @@
  weightItem.value = Number(((qty * coeff) / 1000).toFixed(4));
};
/** 非成型:投入重量取工单 bomInputQty(仅回显,不覆盖用户已编辑的值) */
/** 非成型:投入重量/数量取工单 bomInputQty(仅回显,不覆盖用户已编辑的值) */
const syncBomInputWeight = (force = false) => {
  if (props.isFormingProcess) return;
  const weightItem = formData.list.find(isInputWeightItem);