Skip to content
On this page

绩效评估

业务模板

绩效模板编号 performanceTemplateNumber

json
{
  "groupCode": "baseForm",
  "fieldType": "remoteSelect",
  "fieldLabel": "绩效模板编号",
  "fieldName": "performanceTemplateNumber",
  "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;
  }
  pageData.performanceTemplateNumber = data[0].performanceTemplateNumber || "";
  pageData.performanceTemplateId = data[0].id || "";
  pageData.isWeightStrategy = data[0].isWeightStrategy || "";
  pageData.performanceTemplateName = data[0].performanceTemplateName || "";
  pageData.assessmentCycle = data[0].assessmentCycle || "";
  pageData.requiredAudit = data[0].resultRequiredAudit || "0";
  pageData.requiredSend = data[0].resultRequiredAudit || "0";
  pageData.orgType = data[0].orgType || "";
  pageData.orgCode = data[0].orgCode || "";
  pageData.orgName = data[0].orgName || "";
  pageData.supplierClassify = data[0].supplierClassify || "";
  pageData.templateIdRefreshStatus = "1";

  let codeMap = {
    1: "assessmentTimeRangeMonth",
    2: "assessmentTimeRangeQuarter",
    3: "assessmentTimeRangeYear",
  };

  let assessmentCycle = data[0].assessmentCycle;
  let idx = parseInt(assessmentCycle);
  let dictCode = codeMap[idx] || "assessmentTimeRangeMonth";
  let groups = layoutConfig.groups;
  let setDictCodeByProp = (prop) => {
    for (let group of groups) {
      if (group.groupType == "item") continue;
      let formFields = group.formFields || [];
      for (let sub of formFields) {
        if (sub.fieldName === prop) {
          sub.fieldType = "select";
          sub.dictCode = dictCode;
          break;
        }
      }
    }
  };
  setDictCodeByProp("assessmentTimeRange");
  pageData.assessmentTimeRange = "";
  // 本地页面处理复杂绑定函数需求
  topEmit && topEmit();
}
js
{
  modalColumns: [
    {
      field: "performanceTemplateNumber",
      title: "绩效模板编号",
      fieldLabelI18nKey: "i18n_field_performanceTemplateNumber",
      with: 150,
    },
    {
      field: "performanceTemplateName",
      title: "绩效模板名称",
      fieldLabelI18nKey: "i18n_field_performanceTemplateName",
      with: 150,
    },
    {
      field: "isWeightStrategy_dictText",
      title: "权重策略",
      fieldLabelI18nKey: "i18n_field_bsiN_31236539",
      with: 150,
    },
    {
      field: "orgType_dictText",
      title: "组织类型",
      fieldLabelI18nKey: "i18n_field_orgTypeName",
      with: 150,
    },
    {
      field: "orgCode",
      title: "组织编码",
      fieldLabelI18nKey: "i18n_field_orgCode",
      with: 150,
    },
    {
      field: "orgName",
      title: "组织名称",
      fieldLabelI18nKey: "i18n_field_orgName",
      with: 150,
    },
    {
      field: "assessmentCycle_dictText",
      title: "考核周期",
      fieldLabelI18nKey: "i18n_field_assessmentCycle",
      with: 150,
    },
    {
      field: "supplierClassify_dictText",
      title: "供应商分类",
      fieldLabelI18nKey: "i18n_field_supplierClassify",
      with: 150,
    },
  ],
  modalUrl: "/performance/purchasePerformanceTemplateHead/list",
  params({ pageData, userInfo }) {
    return {
      auditStatusStr: "2,4",
      effectiveStatus: "1",
    };
  },
  afterClearCallBack(form, pageData) {
    form.performanceTemplateNumber = "";
    form.performanceTemplateId = "";
    form.isWeightStrategy = "";
    form.performanceTemplateName = "";
    form.assessmentCycle = "";
    form.orgType = "";
    form.orgCode = "";
    form.orgName = "";
    form.supplierClassify = "";
  },
  mobileModalParams(Vue, { _pageData, _cacheAllData }) {
    return {
      auditStatusStr: "2,4",
      effectiveStatus: "1",
      orgType: _cacheAllData.orgType,
      orgCode: _cacheAllData.orgCode,
    };
  },
  mobileHandleAfter(Vue, { _pageData, _form, _cacheAllData, _value }) {
    _form.performanceTemplateNumber = "";
    _form.performanceTemplateId = "";
    _form.performanceTemplateName = "";
    _form.assessmentCycle = "";
  },
}

组织编码 orgCode

json
{
  "groupCode": "baseForm",
  "fieldType": "selectModal",
  "fieldLabel": "组织编码",
  "fieldName": "orgCode",
  "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;
  }
  pageData.orgCode = data[0].orgCode || "";
  pageData.orgName = data[0].orgName || "";
}
js
{
  modalColumns: [
    {
      field: "orgCode",
      title: "组织编码",
      with: 150,
    },
    {
      field: "orgName",
      title: "组织名称",
      with: 150,
    },
  ],
  selectModal: "single",
  modalUrl: "/org/purchaseOrganizationInfo/list",
  params: ({ pageData, userInfo }) => {
    return { orgCategoryCode: pageData.orgType || "" };
  },
  handleAfter: ({ pageData, userInfo }) => {
    pageData.orgCode = "";
  },
}

考核周期 assessmentCycle

json
{
  "groupCode": "baseForm",
  "fieldType": "select",
  "fieldLabel": "考核周期",
  "fieldName": "assessmentCycle",
  "dictCode": "assessmentCycle",
  "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,
  },
) {
  const cycle = [
    "assessmentTimeRangeMonth",
    "assessmentTimeRangeQuarter",
    "assessmentTimeRangeYear",
  ];

  for (let group of layoutConfig.groups) {
    if (group.groupType == "item") continue;
    let formFields = group.formFields;
    for (let sub of formFields) {
      if (sub.fieldName === "assessmentTimeRange") {
        if (value != "") {
          //pageData[sub.fieldName] = '';
        }
        const t = Decimal.sub(value, 1);
        sub.defaultValue = "";
        sub.fieldType = "select";
        sub.dictCode = cycle[t];
        break;
      }
    }
  }
}

评分人 subAccount 🎉

json
{
  "groupCode": "purchasePerformanceReportItemList",
  "fieldType": "remoteSelect",
  "title": "评分人",
  "field": "subAccount",
  "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;
  }
  row.subAccount = data[0].subAccount + "_" + data[0].realname;
}
js
{
  modalColumns: [
    {
      field: "subAccount",
      title: "子账号",
      fieldLabelI18nKey: "i18n_field_subAccount",
      with: 150,
    },
    {
      field: "realname",
      title: "姓名",
      fieldLabelI18nKey: "i18n_field_realname",
      with: 150,
    },
  ],
  modalUrl: "/account/elsSubAccount/page",
  modalParams: { status: "1" },
  beforeCheckedCallBack(Vue, row, column) {
    return new Promise((resolve, reject) => {
      let flag = row.scoringMethod == "0" || row.scoringMethod == "2";
      flag
        ? reject("打分方式为系统计算,不需要编辑评分人")
        : resolve("success");
    });
  },
  mobileHandleBefore(Vue, { _pageData, _row, _cacheAllData, _value }) {
    return new Promise((resolve, reject) => {
      let flag = _row.scoringMethod == "0" || _row.scoringMethod == "2";
      flag
        ? reject("打分方式为系统计算,不需要编辑评分人")
        : resolve("success");
    });
  },
  afterRowClearCallBack: function (Vue, row) {
    row.subAccount = "";
  },
}