project.ts 1.93 KB
export const getDisable = (code, id, value) => {
  return code === 'LOCKED' && !!id && (value || value === 0);
};

// 利润分析的权限校验
export const getProfitDisable = (field, code, id, value) => {
  // 包装费用,汇率不允许修改
  if (['exchangeRate', 'profitRate'].includes(field)) {
    return true;
  }
  // code是lock,编辑并且value存在,才需要审核
  return code === 'LOCKED' && !!id && (value || value === 0);
};

// 基本信息的权限校验 客户编码、项目号、生产科、内部编号、业务员 才需要审核
export const getBaseDisable = (field, code, id) => {
  if (
    [
      'customerCode',
      'projectNo',
      'productionDepartment',
      'innerNo',
      'orderCount',
      'businessPerson',
    ].includes(field)
  ) {
    return code === 'LOCKED' && !!id;
  }
  return false;
};

// 质量检测的disable函数
// 中期验货:只要是PASS, PASS 2ND, PASS 3RD, FAIL-RELEASE,就锁定。
// 终期验货:只要是PASS, PASS 2ND, PASS 3RD, FAIL-RELEASE,就锁定。
export const getQualityDisable = (field, code, id, value, endValue) => {
  // 确认自己是否是锁住的
  // const isLock = getDisable(code, id, value);
  const isLock = code === 'LOCKED' && !!id;
  // 如果不是锁的,直接返回不锁
  if (!isLock) return false;

  // 锁的话,需要在进行下面判断,确定要不要不锁
  if (isLock) {
    // 所有字段就锁定判断,终期验货结果,值是PASS, PASS 2ND, PASS 3RD, FAIL-RELEASE就锁定。
    const isEndLock = ['PASS', 'PASS 2ND', 'PASS 3RD', 'FAIL RELEASE'].includes(endValue);
    if (isEndLock) {
      // return isEndLock && !!id && (value || value === 0);
      return isEndLock;
    } else {
      // 中期验货结果,值是PASS, PASS 2ND, PASS 3RD, FAIL-RELEASE,就锁定。
      if (field === 'midCheckResult') {
        return ['PASS', 'PASS 2ND', 'PASS 3RD', 'FAIL RELEASE'].includes(value);
      }
    }
  }
  return false;
};