Appearance
绩效评估
绩效模板编号 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 = "";
},
}