Skip to content
On this page

现场考察

业务模板

单据状态 documentsStatus

json
{
  "groupCode": "baseForm",
  "fieldType": "select",
  "fieldLabel": "单据状态",
  "fieldName": "documentsStatus",
  "dictCode": "site_inspection_status",
  "required": "0"
}
js
/**
 * @param {Object} ctx 组件实例
 * @param {String} value 当前所选值
 * @param {Array} data selectModal, remoteSelect 已选行数据 (如有)
 * @param {boolean} _isFill 填充、粘贴操作判断标识
 * @param {Object} row 表行数据 (如有)
 * @param {number} idx 表行索引值 (如有)
 * @param {Object} pageData 页面所有数据
 * @param {Object} layoutConfig 模板配置
 * @param {Object} userInfo 当前登录人信息
 * @param {(groupCode: string, fieldName: string, fn: (item: FormFieldsItem | ColumnItem) => void) => void}
 * customFormatItem 遍历模板分组配置,自定义格式化查询到的字段
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemRequired 自定义设置字段必填
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemDisabled 自定义设置字段置灰
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemRequiredOrDisabled 自定义设置字段必填/置灰
 * @param {() => void} topEmit 用于处理复杂绑定函数需求
 * @param {Constructor} Decimal构造函数, 适用于js小数位数精度计算
 * https://github.com/MikeMcl/decimal.js
 */
function callback(
  ctx,
  {
    value,
    data,
    _isFill,
    row,
    idx,
    pageData,
    layoutConfig,
    userInfo,
    customFormatItem,
    setItemRequired,
    setItemDisabled,
    setItemRequiredOrDisabled,
    topEmit,
    Decimal,
  },
) {
  // 单据状态 documentsStatus;
  // 数据字典 site_inspection_status (0: 新建, 1: 待自评, 2: 待评分, 3: 部分评分, 4: 评分完成, 5: 考察完成, 6: 结案, 7: 作废);
  // 考察步骤 inspectionStep
  // 数据字典 site_inspection_step (0: 自评后现场考察, 1: 只需供应商自评, 2: 直接现场考察, 3: 直接评分);
  let inspectionStep = pageData.inspectionStep || "";
  let documentsStatus = pageData.documentsStatus || "";

  let flag = true;
  if (documentsStatus === "2" || documentsStatus === "3") {
    flag = false;
  }
  if (!documentsStatus || documentsStatus === "0") {
    if (inspectionStep === "3") {
      flag = false;
    }
  }

  /**
   * @description: 业务规则
   * 考察步骤为“直接评分” + “新建、待评分、部分评分” 时, 考察结论 + 限期整改完成时间 可编辑
   * 考察步骤为其他 + “待评分、部分评分” 时, 考察结论 + 限期整改完成时间 可编辑
   * @return {*}
   */
  setItemDisabled("baseForm", "inspectionConclusion", value === "0");
  setItemDisabled("baseForm", "abarbeitungLimitTime", value === "0");

  //   const disabledAll = documentsStatus && documentsStatus !== "0";
  //   setItemDisabled("baseForm", "***", disabledAll);
}

供应商 ELS 账号 toElsAccount

json
{
  "groupCode": "baseForm",
  "fieldType": "remoteSelect",
  "fieldLabel": "供应商ELS账号",
  "fieldName": "toElsAccount",
  "required": "0"
}
js
/**
 * @param {Object} ctx 组件实例
 * @param {String} value 当前所选值
 * @param {Array} data selectModal, remoteSelect 已选行数据 (如有)
 * @param {boolean} _isFill 填充、粘贴操作判断标识
 * @param {Object} row 表行数据 (如有)
 * @param {number} idx 表行索引值 (如有)
 * @param {Object} pageData 页面所有数据
 * @param {Object} layoutConfig 模板配置
 * @param {Object} userInfo 当前登录人信息
 * @param {(groupCode: string, fieldName: string, fn: (item: FormFieldsItem | ColumnItem) => void) => void}
 * customFormatItem 遍历模板分组配置,自定义格式化查询到的字段
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemRequired 自定义设置字段必填
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemDisabled 自定义设置字段置灰
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemRequiredOrDisabled 自定义设置字段必填/置灰
 * @param {() => void} topEmit 用于处理复杂绑定函数需求
 * @param {Constructor} Decimal构造函数, 适用于js小数位数精度计算
 * https://github.com/MikeMcl/decimal.js
 */
function callback(
  ctx,
  {
    value,
    data,
    _isFill,
    row,
    idx,
    pageData,
    layoutConfig,
    userInfo,
    customFormatItem,
    setItemRequired,
    setItemDisabled,
    setItemRequiredOrDisabled,
    topEmit,
    Decimal,
  },
) {
  if (!data || !data.length) {
    return;
  }
  let {
    toElsAccount = "",
    supplierCode = "",
    supplierName = "",
  } = data[0] || {};
  pageData.toElsAccount = toElsAccount;
  pageData.supplierErpCode = supplierCode;
  pageData.supplierName = supplierName;
}
js
{
  modalColumns: [
    {
      field: "toElsAccount",
      fieldLabelI18nKey: "i18n_title_supplierAccount",
      title: "供应商账号",
      with: 150,
    },
    {
      field: "supplierName",
      fieldLabelI18nKey: "i18n_field_RdXRL_8e11f650",
      title: "供应商名称",
      with: 150,
    },
    {
      field: "supplierCode",
      fieldLabelI18nKey: "i18n_field_RdXey_8e18ba5e",
      title: "供应商编码",
      with: 150,
    },
    {
      field: "supplierStatus_dictText",
      fieldLabelI18nKey: "i18n_title_supplierState",
      title: "供应商状态",
      width: 200,
    },
  ],
  modalUrl: "/supplier/supplierMaster/list",
  modalParams: {},
  isClearCallBindFunction: true,
  selectModel: "single",
  handleAfter: function ({ pageData }) {
    pageData.saleElsAccount = "";
    pageData.supplierErpCode = "";
    pageData.supplierName = "";
  },
  afterClearCallBack: function (form, pageData, col) {
    form.saleElsAccount = "";
    form.supplierErpCode = "";
    form.supplierName = "";
  },
}

考察步骤 inspectionStep

json
{
  "groupCode": "baseForm",
  "fieldType": "select",
  "fieldLabel": "考察步骤",
  "fieldName": "inspectionStep",
  "dictCode": "site_inspection_step",
  "required": "1"
}
js
/**
 * @param {Object} ctx 组件实例
 * @param {String} value 当前所选值
 * @param {Array} data selectModal, remoteSelect 已选行数据 (如有)
 * @param {boolean} _isFill 填充、粘贴操作判断标识
 * @param {Object} row 表行数据 (如有)
 * @param {number} idx 表行索引值 (如有)
 * @param {Object} pageData 页面所有数据
 * @param {Object} layoutConfig 模板配置
 * @param {Object} userInfo 当前登录人信息
 * @param {(groupCode: string, fieldName: string, fn: (item: FormFieldsItem | ColumnItem) => void) => void}
 * customFormatItem 遍历模板分组配置,自定义格式化查询到的字段
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemRequired 自定义设置字段必填
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemDisabled 自定义设置字段置灰
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemRequiredOrDisabled 自定义设置字段必填/置灰
 * @param {() => void} topEmit 用于处理复杂绑定函数需求
 * @param {Constructor} Decimal构造函数, 适用于js小数位数精度计算
 * https://github.com/MikeMcl/decimal.js
 */
function callback(
  ctx,
  {
    value,
    data,
    _isFill,
    row,
    idx,
    pageData,
    layoutConfig,
    userInfo,
    customFormatItem,
    setItemRequired,
    setItemDisabled,
    setItemRequiredOrDisabled,
    topEmit,
    Decimal,
  },
) {
  // 单据状态 documentsStatus;
  // 数据字典 site_inspection_status (0: 新建, 1: 待自评, 2: 待评分, 3: 部分评分, 4: 评分完成, 5: 考察完成, 6: 结案, 7: 作废);
  // 考察步骤 inspectionStep
  // 数据字典 site_inspection_step (0: 自评后现场考察, 1: 只需供应商自评, 2: 直接现场考察, 3: 直接评分);
  let inspectionStep = pageData.inspectionStep || "";
  let documentsStatus = pageData.documentsStatus || "";

  let flag = true;
  if (documentsStatus === "2" || documentsStatus === "3") {
    flag = false;
  }
  if (!documentsStatus || documentsStatus === "0") {
    if (inspectionStep === "3") {
      flag = false;
    }
  }

  /**
   * @description: 业务规则
   * 考察步骤为“直接评分” + “新建、待评分、部分评分” 时, 考察结论 + 限期整改完成时间 可编辑
   * 考察步骤为其他 + “待评分、部分评分” 时, 考察结论 + 限期整改完成时间 可编辑
   * @return {*}
   */
  setItemDisabled("baseForm", "inspectionConclusion", value === "0");
  setItemDisabled("baseForm", "abarbeitungLimitTime", value === "0");

  // 本地页面处理复杂绑定函数需求
  topEmit && topEmit();
}

物料分类 materialType

json
{
  "groupCode": "baseForm",
  "fieldType": "remoteSelect",
  "fieldLabel": "物料分类",
  "fieldName": "materialType",
  "required": "0"
}
js
/**
 * @param {Object} ctx 组件实例
 * @param {String} value 当前所选值
 * @param {Array} data selectModal, remoteSelect 已选行数据 (如有)
 * @param {boolean} _isFill 填充、粘贴操作判断标识
 * @param {Object} row 表行数据 (如有)
 * @param {number} idx 表行索引值 (如有)
 * @param {Object} pageData 页面所有数据
 * @param {Object} layoutConfig 模板配置
 * @param {Object} userInfo 当前登录人信息
 * @param {(groupCode: string, fieldName: string, fn: (item: FormFieldsItem | ColumnItem) => void) => void}
 * customFormatItem 遍历模板分组配置,自定义格式化查询到的字段
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemRequired 自定义设置字段必填
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemDisabled 自定义设置字段置灰
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemRequiredOrDisabled 自定义设置字段必填/置灰
 * @param {() => void} topEmit 用于处理复杂绑定函数需求
 * @param {Constructor} Decimal构造函数, 适用于js小数位数精度计算
 * https://github.com/MikeMcl/decimal.js
 */
function callback(
  ctx,
  {
    value,
    data,
    _isFill,
    row,
    idx,
    pageData,
    layoutConfig,
    userInfo,
    customFormatItem,
    setItemRequired,
    setItemDisabled,
    setItemRequiredOrDisabled,
    topEmit,
    Decimal,
  },
) {
  if (!data || !data.length) {
    return;
  }
  const { cateCode = "" } = data[0] || {};
  pageData.materialType = cateCode;
}
js
{
  modalColumns: [
    {
      field: "cateCode",
      title: "物料分类编码",
      fieldLabelI18nKey: "i18n_field_cateCode",
      with: 150,
    },
    {
      field: "cateName",
      title: "物料分类名称",
      fieldLabelI18nKey: "i18n_field_cateName",
      with: 150,
    },
    {
      field: "cateLevelCode",
      title: "物料分类级别编码",
      fieldLabelI18nKey: "i18n_field_cateLevelCode",
      with: 150,
    },
    {
      field: "upCateCode_dictText",
      title: "上级物料分类",
      fieldLabelI18nKey: "i18n_field_upCateCode",
      with: 150,
    },
  ],
  modalUrl: "/material/purchaseMaterialCode/list",
  modalParams: {},
  selectModel: "single",
}

考察标准名称 inspectionStandardName

json
{
  "groupCode": "baseForm",
  "fieldType": "remoteSelect",
  "fieldLabel": "考察标准名称",
  "fieldName": "inspectionStandardName",
  "required": "1"
}
js
/**
 * @param {Object} ctx 组件实例
 * @param {String} value 当前所选值
 * @param {Array} data selectModal, remoteSelect 已选行数据 (如有)
 * @param {boolean} _isFill 填充、粘贴操作判断标识
 * @param {Object} row 表行数据 (如有)
 * @param {number} idx 表行索引值 (如有)
 * @param {Object} pageData 页面所有数据
 * @param {Object} layoutConfig 模板配置
 * @param {Object} userInfo 当前登录人信息
 * @param {(groupCode: string, fieldName: string, fn: (item: FormFieldsItem | ColumnItem) => void) => void}
 * customFormatItem 遍历模板分组配置,自定义格式化查询到的字段
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemRequired 自定义设置字段必填
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemDisabled 自定义设置字段置灰
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemRequiredOrDisabled 自定义设置字段必填/置灰
 * @param {() => void} topEmit 用于处理复杂绑定函数需求
 * @param {Constructor} Decimal构造函数, 适用于js小数位数精度计算
 * https://github.com/MikeMcl/decimal.js
 */
function callback(
  ctx,
  {
    value,
    data,
    _isFill,
    row,
    idx,
    pageData,
    layoutConfig,
    userInfo,
    customFormatItem,
    setItemRequired,
    setItemDisabled,
    setItemRequiredOrDisabled,
    topEmit,
    Decimal,
  },
) {
  if (!data || !data.length) {
    return;
  }
  let {
    inspectionStandardName = "",
    versionNumber = "",
    totalScore = "",
    standardFullMarks = "",
    qualifiedPoints = "",
  } = data[0] || {};

  pageData.inspectionStandardName = inspectionStandardName;
  pageData.inspectionStandardVersion = versionNumber;
  pageData.totalScore = totalScore;
  pageData.standardFullMarks = standardFullMarks;
  pageData.qualifiedPoints = qualifiedPoints;
  if (pageData.scoreGroupList.length) {
    pageData.scoreGroupList.forEach((n) => {
      n.inspectionClassify = [];
    });
  }

  // 本地页面处理复杂绑定函数需求
  topEmit && topEmit();
}
js
{
  modalColumns: [
    {
      field: "inspectionStandardName",
      title: "名称",
      width: 150,
    },
    {
      field: "versionNumber",
      title: "版本",
      width: 150,
    },
    {
      field: "totalScore",
      title: "合计总分",
      width: 150,
    },
    {
      field: "standardFullMarks",
      title: "标准满分",
      width: 150,
    },
    {
      field: "qualifiedPoints",
      title: "合格分线",
      width: 150,
    },
  ],
  modalUrl: "/other/elsInspectionStandardHead/list",
  isClearCallBindFunction: true,
  selectModel: "single",
  modalParams(self, form) {
    return {
      status: "1",
      classify: form.inspectionStandardClassify,
    };
  },
  mobileModalParams(Vue, { _pageData, _cacheAllData }) {
    return {
      status: "1",
      classify: _cacheAllData.inspectionStandardClassify,
    };
  },
  params: ({ pageData, userInfo }) => {
    return {
      status: "1",
      classify: pageData.inspectionStandardClassify || "",
    };
  },
  handleBefore: ({ pageData, userInfo }) => {
    if (!pageData.inspectionStandardClassify) {
      return Promise.reject("请先选择考察标准分类");
    } else {
      return Promise.resolve();
    }
  },
  handleAfter: ({ pageData }) => {
    pageData.inspectionStandardName = "";
    pageData.inspectionStandardVersion = "";
    pageData.totalScore = "";
    pageData.standardFullMarks = "";
    pageData.qualifiedPoints = "";
  },
  beforeCheckedCallBack(parentRef, pageData, groupData, form) {
    return new Promise((resolve, rejec) => {
      let inspectionStandardClassify = form.inspectionStandardClassify;
      return inspectionStandardClassify
        ? resolve("success")
        : rejec("请先选择考察标准分类!");
    });
  },
  mobileHandleBefore(Vue, { _pageData, _form, _row, _cacheAllData, _value }) {
    return new Promise((resolve, reject) => {
      !!_cacheAllData.inspectionStandardClassify
        ? resolve("success")
        : reject("请先选择考察标准分类");
    });
  },
}

供应商自评考察结果 selfAssessmentResult 🎉

json
{
  "groupCode": "inspectionItemList",
  "fieldType": "input",
  "title": "供应商自评考察结果",
  "field": "selfAssessmentResult",
  "required": "0"
}
js
/**
 * @param {Object} ctx 组件实例
 * @param {String} value 当前所选值
 * @param {Array} data selectModal, remoteSelect 已选行数据 (如有)
 * @param {boolean} _isFill 填充、粘贴操作判断标识
 * @param {Object} row 表行数据 (如有)
 * @param {number} idx 表行索引值 (如有)
 * @param {Object} pageData 页面所有数据
 * @param {Object} layoutConfig 模板配置
 * @param {Object} userInfo 当前登录人信息
 * @param {(groupCode: string, fieldName: string, fn: (item: FormFieldsItem | ColumnItem) => void) => void}
 * customFormatItem 遍历模板分组配置,自定义格式化查询到的字段
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemRequired 自定义设置字段必填
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemDisabled 自定义设置字段置灰
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemRequiredOrDisabled 自定义设置字段必填/置灰
 * @param {() => void} topEmit 用于处理复杂绑定函数需求
 * @param {Constructor} Decimal构造函数, 适用于js小数位数精度计算
 * https://github.com/MikeMcl/decimal.js
 */
function callback(
  ctx,
  {
    value,
    data,
    _isFill,
    row,
    idx,
    pageData,
    layoutConfig,
    userInfo,
    customFormatItem,
    setItemRequired,
    setItemDisabled,
    setItemRequiredOrDisabled,
    topEmit,
    Decimal,
  },
) {
  // ...
}

function callback(
  ctx,
  {
    value,
    data,
    row,
    idx,
    pageData,
    layoutConfig,
    customFormatItem,
    setItemRequired,
    setItemDisabled,
    setItemRequiredOrDisabled,
  },
) {
  // ...
}

采购方评分考察结果 inspectResult 🎉

json
{
  "groupCode": "inspectionItemList",
  "fieldType": "input",
  "title": "采购方评分考察结果",
  "field": "inspectResult",
  "required": "0"
}
js
/**
 * @param {Object} ctx 组件实例
 * @param {String} value 当前所选值
 * @param {Array} data selectModal, remoteSelect 已选行数据 (如有)
 * @param {boolean} _isFill 填充、粘贴操作判断标识
 * @param {Object} row 表行数据 (如有)
 * @param {number} idx 表行索引值 (如有)
 * @param {Object} pageData 页面所有数据
 * @param {Object} layoutConfig 模板配置
 * @param {Object} userInfo 当前登录人信息
 * @param {(groupCode: string, fieldName: string, fn: (item: FormFieldsItem | ColumnItem) => void) => void}
 * customFormatItem 遍历模板分组配置,自定义格式化查询到的字段
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemRequired 自定义设置字段必填
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemDisabled 自定义设置字段置灰
 * @param {(groupCode: string, fieldName: string, flag: boolean) => void}
 * setItemRequiredOrDisabled 自定义设置字段必填/置灰
 * @param {() => void} topEmit 用于处理复杂绑定函数需求
 * @param {Constructor} Decimal构造函数, 适用于js小数位数精度计算
 * https://github.com/MikeMcl/decimal.js
 */
function callback(
  ctx,
  {
    value,
    data,
    _isFill,
    row,
    idx,
    pageData,
    layoutConfig,
    userInfo,
    customFormatItem,
    setItemRequired,
    setItemDisabled,
    setItemRequiredOrDisabled,
    topEmit,
    Decimal,
  },
) {
  // ...
}

function callback(
  ctx,
  {
    value,
    data,
    row,
    idx,
    pageData,
    layoutConfig,
    customFormatItem,
    setItemRequired,
    setItemDisabled,
    setItemRequiredOrDisabled,
  },
) {
  // ...
}