Appearance
8D 改进
8D 报告状态 eightDisciplinesStatus
json
{
"groupCode": "baseForm",
"fieldType": "select",
"fieldLabel": "8D报告状态",
"fieldName": "eightDisciplinesStatus",
"dictCode": "srm8DStatus",
"defaultValue": "D0",
"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,
},
) {
// 8D状态 eightDisciplinesStatus
// 数据字典 srm8DStatus (D0: 问题提出, D1: 小组成立, D2: 问题界定, D3: 围堵措施, D4: 原因分析, D5: 纠正措施, D6: 效果验证, D7: 预防再发生, D8: 结案评价, D9: 已结案, D10: 已关闭)
/**
* @description: 业务规则
* 8D状态 不是 问题提出 状态时, 表头所有字段不允许再编辑
* @return {*}
*/
setItemDisabled("baseForm", "***", value !== "D0", [
"eightDisciplinesNumber", // 8D报告编号
"eightDisciplinesStatus", // 8D报告状态
"supplierName", // 供应商名称
"materialDesc", // 物料描述
"cateCode", // 物料分类编码
"cateCode", // 物料分类编码
"d3FinishTime", // D3实际完成时间
"createDepartment", // 创建部门
"publishUser", // 发布人
"publishTime", // 发布时间
"materialName", // 物料名称
]);
// D1:小组成立
const tableData = pageData["eightDisciplinesTeamList"];
const arr = [
"D0",
"D1",
"D2",
"D3",
"D4",
"D5",
"D6",
"D7",
"D8",
"D9",
"D10",
];
const flag = value === "D0" || !value;
// D2:问题界定
setItemDisabled("eightDisciplinesTwo", "***", flag || value === "D1");
// 原因分析 analysis;
// 分组groupCode: eightDisciplinesFour;
// 如果8D状态值不符合范围时, 置灰整个分组;
// D4:原因分析
setItemDisabled("eightDisciplinesFour", "***", flag);
// 分层级控制
if (!flag) {
const afterD4 = arr.slice(5);
setItemDisabled("eightDisciplinesFour", "***", afterD4.includes(value));
if (!afterD4.includes(value)) {
// 如果不是当前负责人时, 置灰整个分组;
const D4Row = tableData.find((n) => n.reportFlowStep === "D4");
if (D4Row) {
let account = `${D4Row.toElsAccount}${D4Row.subAccount}`;
let userAccount = `${userInfo.elsAccount}${userInfo.subAccount}`;
setItemDisabled("eightDisciplinesFour", "***", account !== userAccount);
}
}
}
// 预防措施 precaution
// 分组groupCode: eightDisciplinesSeven;
// 如果8D状态值不符合范围时, 置灰整个分组;
// D7:预防再发生
setItemDisabled("eightDisciplinesSeven", "***", flag);
// 分层级控制
if (!flag) {
const afterD7 = arr.slice(8);
setItemDisabled("eightDisciplinesSeven", "***", afterD7.includes(value));
if (!afterD7.includes(value)) {
// 如果不是当前负责人时, 置灰整个分组;
const D7Row = tableData.find((n) => n.reportFlowStep === "D7");
if (D7Row) {
let account = `${D7Row.toElsAccount}${D7Row.subAccount}`;
let userAccount = `${userInfo.elsAccount}${userInfo.subAccount}`;
setItemDisabled(
"eightDisciplinesSeven",
"***",
account !== userAccount,
);
}
}
}
// 结案评价 closedCondition
// 分组groupCode: eightDisciplinesEight;
// 如果8D状态值不符合范围时, 置灰整个分组;
// D8:结案评价
setItemDisabled("eightDisciplinesEight", "***", flag);
// 分层级控制
if (!flag) {
const afterD8 = arr.slice(9);
setItemDisabled("eightDisciplinesEight", "***", afterD8.includes(value));
if (!afterD8.includes(value)) {
// 如果不是当前负责人时, 置灰整个分组;
const D8Row = tableData.find((n) => n.reportFlowStep === "D8");
if (D8Row) {
let account = `${D8Row.toElsAccount}${D8Row.subAccount}`;
let userAccount = `${userInfo.elsAccount}${userInfo.subAccount}`;
setItemDisabled(
"eightDisciplinesEight",
"***",
account !== userAccount,
);
}
}
}
}报告类型 eightDisciplinesType
json
{
"groupCode": "baseForm",
"fieldType": "select",
"fieldLabel": "报告类型",
"fieldName": "eightDisciplinesType",
"dictCode": "srm8DType",
"defaultValue": "gysgj",
"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,
},
) {
// 报告类型 eightDisciplinesType
// 数据字典 srm8DType (gysgj: 供应商改进, nbgj: 内部改进)
/**
* @description: 业务规则
* 报价类型为 供应商改进 时,对方ELS账号 必填,否则置灰
* @return {*}
*/
if (pageData.eightDisciplinesStatus === "D0") {
setItemRequiredOrDisabled("baseForm", "toElsAccount", value === "gysgj");
}
// 本地页面处理复杂绑定函数需求
topEmit && topEmit();
}对方 ELS 账号 toElsAccount
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "对方ELS账号",
"fieldName": "toElsAccount",
"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;
}
const {
toElsAccount = "",
supplierCode = "",
supplierName = "",
} = data[0] || {};
pageData.toElsAccount = toElsAccount;
pageData.supplierCode = supplierCode;
pageData.supplierName = supplierName;
// 本地页面处理复杂绑定函数需求
topEmit && topEmit();
}js
{
modalColumns: [
{
field: "toElsAccount",
title: "供应商账号",
fieldLabelI18nKey: "i18n_field_toElsAccount",
with: 150,
},
{
field: "supplierName",
title: "供应商名称",
fieldLabelI18nKey: "i18n_field_supplierName",
with: 150,
},
{
field: "supplierCode",
title: "供应商编码",
fieldLabelI18nKey: "i18n_field_supplierCode",
with: 150,
},
],
modalUrl: "/supplier/supplierMaster/list",
modalParams: {
frozenFunctionValue: "0",
},
params: () => {
return { frozenFunctionValue: "0" };
},
afterClearCallBack(parentRef, pageData, groupData, rootRef) {
pageData.supplierName = "";
pageData.supplierCode = "";
let teamList =
rootRef.$refs.businessRef.$refs.eightDisciplinesTeamListgrid[0].$refs.eightDisciplinesTeamList.getTableData()
.fullData;
if (teamList && teamList.length > 0) {
for (let i = 0; i < teamList.length; i++) {
let teamItem = teamList[i];
if (teamItem.reportFlowStep == "D8") {
continue;
}
teamItem.subAccount = teamList[7].subAccount;
teamItem.toElsAccount = pageData.elsAccount;
teamItem.name = null;
teamItem.teamRole = "member";
teamItem.phone = null;
teamItem.mail = null;
}
}
},
handleAfter: ({ pageData, userInfo }) => {
debugger;
const eightDisciplinesTeamList = pageData.eightDisciplinesTeamList || [];
if (eightDisciplinesTeamList && eightDisciplinesTeamList.length) {
eightDisciplinesTeamList.forEach((n) => {
if (n.reportFlowStep !== "D8") {
n.toElsAccount = "";
n.subAccount = userInfo.subAccount || "";
n.phone = null;
n.mail = null;
n.name = null;
n.teamRole = "member";
}
});
}
},
}物料编码 materialNumber
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "物料编码",
"fieldName": "materialNumber",
"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 {
materialNumber = "",
materialDesc = "",
materialSpec = "",
materialGroup = "",
materialName = "",
cateCode = "",
cateName = "",
} = data[0] || {};
pageData.materialNumber = materialNumber;
pageData.materialDesc = materialDesc;
pageData.materialSpec = materialSpec;
pageData.materialGroup = materialGroup;
pageData.materialName = materialName;
pageData.cateCode = cateCode;
pageData.cateName = cateName;
}js
{
modalColumns: [
{
field: "materialNumber",
title: "物料编号",
fieldLabelI18nKey: "i18n_title_materialNumber",
with: 150,
},
{
field: "materialDesc",
fieldLabelI18nKey: "i18n_field_materialDesc",
title: "物料描述",
with: 150,
},
{
field: "materialName",
fieldLabelI18nKey: "i18n_field_materialName",
title: "物料名称",
with: 150,
},
{
field: "materialSpec",
title: "物料规格",
fieldLabelI18nKey: "i18n_title_materialSpec",
with: 150,
},
{
field: "materialGroup",
title: "物料组",
fieldLabelI18nKey: "i18n_field_materialGroup",
with: 150,
},
{
field: "cateCode",
title: "物料分类编码",
fieldLabelI18nKey: "i18n_field_materialClassificationCode",
with: 150,
},
{
field: "cateName",
title: "物料分类名称",
fieldLabelI18nKey: "i18n_field_cateName",
with: 150,
},
],
modalUrl: "/material/purchaseMaterialHead/list",
modalParams: { blocDel: "0" },
handleAfter: function ({ pageData: form }) {
form.materialNumber = "";
form.materialDesc = "";
form.materialSpec = "";
form.materialGroup = "";
form.materialName = "";
form.cateCode = "";
form.cateName = "";
},
}发布人 publishUser
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "发布人",
"fieldName": "publishUser",
"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 { subAccount = "", realname = "" } = data[0] || {};
pageData.publishUser = `${subAccount}_${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: {},
}问题描述 questionDesc
json
{
"groupCode": "eightDisciplinesTwo",
"fieldType": "textArea",
"fieldLabel": "问题描述",
"fieldName": "questionDesc",
"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 eightDisciplinesTeamList = pageData.eightDisciplinesTeamList;
if (pageData.eightDisciplinesStatus == "D8") {
setItemDisabled("eightDisciplinesTwo", "questionDesc", true);
return;
}
if (
eightDisciplinesTeamList &&
eightDisciplinesTeamList.length &&
eightDisciplinesTeamList[1]
) {
if (eightDisciplinesTeamList[1].subAccount != userInfo.subAccount) {
setItemDisabled("eightDisciplinesTwo", "questionDesc", true);
} else {
setItemDisabled("eightDisciplinesTwo", "questionDesc", false);
}
}
}\
子账号 subAccount 🎉
json
{
"groupCode": "eightDisciplinesTeamList",
"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;
}
const {
subAccount = "",
phone = "",
email = "",
realname = "",
} = data[0] || {};
row.subAccount = subAccount;
row.phone = phone;
row.mail = email;
row.name = realname;
const eightDisciplinesTeamList = pageData.eightDisciplinesTeamList;
if (pageData.eightDisciplinesStatus == "D8") {
setItemDisabled("eightDisciplinesTwo", "questionDesc", true);
}
if (
eightDisciplinesTeamList &&
eightDisciplinesTeamList.length &&
eightDisciplinesTeamList[1]
) {
if (eightDisciplinesTeamList[1].subAccount != userInfo.subAccount) {
setItemDisabled("eightDisciplinesTwo", "questionDesc", true);
} else {
setItemDisabled("eightDisciplinesTwo", "questionDesc", false);
}
}
}js
{
modalColumns: [
{
field: "subAccount",
title: "子账号",
fieldLabelI18nKey: "i18n_field_subAccount",
with: 150,
},
{
field: "realname",
title: "姓名",
fieldLabelI18nKey: "i18n_field_realname",
with: 150,
},
{
field: "phone",
title: "电话",
fieldLabelI18nKey: "i18n_field_telephone",
with: 150,
},
{
field: "email",
title: "邮箱",
fieldLabelI18nKey: "i18n_field_email",
with: 150,
},
],
modalUrl: "account/elsSubAccount/list",
params: ({ pageData, userInfo }) => {
return { status: "1" };
},
beforeCheckedCallBack(Vue, row, column) {
return new Promise((resolve, reject) => {
row.elsAccount == row.toElsAccount
? resolve("success")
: reject("当前行只能由相应的执行方进行修改");
});
},
mobileHandleBefore(Vue, { _pageData, _form, _row, _cacheAllData, _value }) {
return new Promise((resolve, reject) => {
_row.elsAccount == _row.toElsAccount
? resolve("success")
: reject("当前行只能由相应的执行方进行修改");
});
},
handleBefore: ({ row, userInfo }) => {
row.tempSubAccount = row.subAccount;
if (!row.toElsAccount || userInfo.elsAccount != row.toElsAccount) {
return Promise.reject("当前行只能由相应的执行方进行修改");
} else {
return Promise.resolve();
}
},
afterRowClearCallBack: function (Vue, row) {
if (row.elsAccount != row.toElsAccount) {
Vue.$message.error("当前行只能由相应的执行方进行删除");
return;
}
row.subAccount = "";
row.phone = "";
row.mail = "";
row.name = "";
},
handleAfter: ({ row, userInfo }) => {
if (userInfo.elsAccount != row.toElsAccount) {
row.subAccount = row.tempSubAccount;
return Promise.reject("当前行只能由相应的执行方进行修改");
} else {
row.subAccount = "";
row.phone = "";
row.mail = "";
row.name = "";
}
},
}纠正措施 improvementProgram 🎉
json
{
"groupCode": "eightDisciplinesSixList",
"fieldType": "richEditorModel",
"title": "纠正措施",
"field": "improvementProgram",
"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,
},
) {
let SetupZeroD6Row = (pageData.eightDisciplinesTeamList || []).find(
(item) => item.reportFlowStep == "D6",
);
if (
pageData.eightDisciplinesStatus == "D8" ||
(SetupZeroD6Row &&
SetupZeroD6Row.toElsAccount + SetupZeroD6Row.subAccount !=
userInfo.elsAccount + userInfo.subAccount)
) {
setItemDisabled("eightDisciplinesSixList", "improvementProgram", true);
return;
}
}效果验证描述 resultValidate 🎉
json
{
"groupCode": "eightDisciplinesSixList",
"fieldType": "richEditorModel",
"title": "效果验证描述",
"field": "resultValidate",
"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,
},
) {
let SetupZeroD6Row = (pageData.eightDisciplinesTeamList || []).find(
(item) => item.reportFlowStep == "D6",
);
if (
pageData.eightDisciplinesStatus == "D8" ||
(SetupZeroD6Row &&
SetupZeroD6Row.toElsAccount + SetupZeroD6Row.subAccount !=
userInfo.elsAccount + userInfo.subAccount)
) {
setItemDisabled("eightDisciplinesSixList", "resultValidate", true);
return;
}
}验证人 validatePerson 🎉
json
{
"groupCode": "eightDisciplinesSixList",
"fieldType": "remoteSelect",
"title": "验证人",
"field": "validatePerson",
"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 { subAccount = "", realname = "" } = data[0] || {};
row.validatePerson = `${subAccount}_${realname}`;
}js
{
modalColumns: [
{
field: "subAccount",
title: "子账号",
fieldLabelI18nKey: "i18n_field_subAccount",
with: 150,
},
{
field: "realname",
title: "姓名",
fieldLabelI18nKey: "i18n_field_realname",
with: 150,
},
{
field: "email",
title: "邮箱",
fieldLabelI18nKey: "i18n_field_email",
with: 150,
},
{
field: "telephone",
title: "电话",
fieldLabelI18nKey: "i18n_field_telephone",
with: 150,
},
],
modalUrl: "/account/elsSubAccount/page",
modalParams: {},
afterRowClearCallBack: function (Vue, row) {
row.validatePerson = "";
},
}改进方案 improvementProgram 🎉
json
{
"groupCode": "eightDisciplinesFiveList",
"fieldType": "richEditorModel",
"title": "改进方案",
"field": "improvementProgram",
"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 (pageData.eightDisciplinesStatus == "D8") {
setItemDisabled("eightDisciplinesFiveList", "improvementProgram", true);
return;
}
}计划执行人 planPerson 🎉
json
{
"groupCode": "eightDisciplinesFiveList",
"fieldType": "remoteSelect",
"title": "计划执行人",
"field": "planPerson",
"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 { subAccount = "", realname = "" } = data[0] || {};
row.planPerson = `${subAccount}_${realname}`;
}js
{
modalColumns: [
{
field: "subAccount",
title: "子账号",
fieldLabelI18nKey: "i18n_field_subAccount",
with: 150,
},
{
field: "realname",
title: "姓名",
fieldLabelI18nKey: "i18n_field_realname",
with: 150,
},
{
field: "email",
title: "邮箱",
fieldLabelI18nKey: "i18n_field_email",
with: 150,
},
{
field: "telephone",
title: "电话",
fieldLabelI18nKey: "i18n_field_telephone",
with: 150,
},
],
modalUrl: "/account/elsSubAccount/page",
modalParams: {},
afterRowClearCallBack: function (Vue, row) {
row.planPerson = "";
},
}措施内容 solutionContent 🎉
json
{
"groupCode": "eightDisciplinesThreeList",
"fieldType": "richEditorModel",
"title": "措施内容",
"field": "solutionContent",
"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,
},
) {
let SetupZeroD3Row = (pageData.eightDisciplinesTeamList || []).find(
(item) => item.reportFlowStep == "D3",
);
if (
pageData.eightDisciplinesStatus == "D8" ||
(SetupZeroD3Row &&
SetupZeroD3Row.toElsAccount + SetupZeroD3Row.subAccount !=
userInfo.elsAccount + userInfo.subAccount)
) {
setItemDisabled("eightDisciplinesThreeList", "solutionContent", true);
return;
}
}措施负责人 solutionResponsibility 🎉
json
{
"groupCode": "eightDisciplinesThreeList",
"fieldType": "selectModal",
"title": "措施负责人",
"field": "solutionResponsibility",
"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 { subAccount = "", realname = "" } = data[0] || {};
row.solutionResponsibility = `${subAccount}_${realname}`;
}js
{
modalColumns: [
{
field: "subAccount",
title: "子账号",
fieldLabelI18nKey: "i18n_field_subAccount",
with: 150,
},
{
field: "realname",
title: "姓名",
fieldLabelI18nKey: "i18n_field_realname",
with: 150,
},
{
field: "email",
title: "邮箱",
fieldLabelI18nKey: "i18n_field_email",
with: 150,
},
{
field: "telephone",
title: "电话",
fieldLabelI18nKey: "i18n_field_telephone",
with: 150,
},
],
modalUrl: "/account/elsSubAccount/page",
modalParams: {},
beforeCheckedCallBack(Vue, row, column, form) {
let that = this;
let toElsAccount = Vue.form.eightDisciplinesTeamList[2].toElsAccount;
let elsAccount = Vue.$ls.get("Login_elsAccount");
return new Promise((resolve, reject) => {
elsAccount == toElsAccount
? resolve("success")
: reject("当前行只能由相应的执行方进行修改");
});
},
mobileHandleBefore(Vue, { _pageData, _form, _row, _cacheAllData, _value }) {
return new Promise((resolve, reject) => {
_row.elsAccount == _row.toElsAccount
? resolve("success")
: reject("当前行只能由相应的执行方进行修改");
});
},
afterRowClearCallBack: function (Vue, row) {
if (row.elsAccount != row.toElsAccount) {
Vue.$message.error("当前行只能由相应的执行方进行删除");
return;
}
row.solutionResponsibility = "";
},
}