Appearance
分项检查单
对方 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;
}
pageData.toElsAccount = data[0].elsAccount || "";
pageData.supplierName = data[0].name || "";
pageData.supplierCode = data[0].fbk1 || "";
pageData.industry = data[0].industry || "";
}js
{
modalColumns: [
{
field: "elsAccount",
title: "供应商ELS账号",
fieldLabelI18nKey: "i18n_title_supplierELSAccount",
with: 150,
},
{
field: "name",
title: "供应商名称",
fieldLabelI18nKey: "i18n_field_name",
with: 150,
},
{
field: "fbk1",
title: "供应商ERP编码",
fieldLabelI18nKey: "i18n_field_supplierCode",
with: 150,
},
{
field: "industry",
title: "行业",
fieldLabelI18nKey: "i18n_field_industry",
with: 150,
},
],
modalUrl: "/enterprise/elsEnterpriseInfo/queryAccessSupplier",
params({ pageData, userInfo }) {
return { supplierStatus: pageData.fbk1 };
},
mobileModalParams(Vue, { _pageData, _cacheAllData }) {
return { supplierStatus: _cacheAllData.fbk1 };
},
selectModel: "single",
handleAfter: function ({ pageData, userInfo }) {
pageData.toElsAccount = "";
pageData.supplierName = "";
pageData.supplierCode = "";
pageData.industry = "";
},
}准入方式 regulationType
json
{
"groupCode": "baseForm",
"fieldType": "select",
"fieldLabel": "准入方式",
"fieldName": "regulationType",
"dictCode": "regulationType",
"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,
},
) {
const role = layoutConfig.tempRole;
const groupCode =
role == "sale" ? "supplierStandardItemList" : "purchaseStandardItemList";
const list = pageData[groupCode];
if (list.length > 0 && list[0].regulationType != value) {
pageData[groupCode] = [];
}
}物料分类编码 cateCode
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "物料分类编码",
"fieldName": "cateCode",
"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.cateCode = data[0].cateCode || "";
pageData.cateName = data[0].cateName || "";
}js
{
modalColumns: [
{
field: "cateCode",
title: "物料分类编码",
fieldLabelI18nKey: "i18n_field_cateCode",
with: 150,
},
{
field: "cateName",
title: "物料分类名称",
fieldLabelI18nKey: "i18n_field_cateName",
with: 150,
},
],
modalUrl: "/material/purchaseMaterialCode/list",
params: { cateStatus: "1" },
selectModel: "single",
handleAfter: function ({ pageData, userInfo }) {
pageData.cateCode = "";
pageData.cateName = "";
},
}负责人子账号 elsSubAccount
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "负责人子账号",
"fieldName": "elsSubAccount",
"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.elsSubAccount = data[0].subAccount || "";
pageData.person = 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",
params: {
status: "1",
},
handleAfter: function ({ pageData }) {
pageData.elsSubAccount = "";
pageData.person = "";
},
userInfoConfig: {
open: true,
useFieldName: "subAccount",
},
selectModel: "single",
}检查人 respondents 🎉
json
{
"groupCode": "purchaseStandardItemList",
"fieldType": "remoteSelect",
"title": "检查人",
"field": "respondents",
"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) {
if (_isFill) {
const { respondents = "" } = data[0] || {};
row.respondents = respondents;
} else {
const { subAccount = "", realname = "" } = data[0] || {};
row.respondents = `${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",
selectModal: "single",
params({ pageData, userInfo, row }) {
let obj = {
participants: row.participants,
status: 1,
};
if (row.participants && row.participants === "sale") {
obj.elsAccount = pageData.toElsAccount || "";
}
return obj;
},
handleBefore({ pageData, userInfo, row }) {
if (!row.participants) {
return Promise.reject("先选择参与对象");
} else {
return Promise.resolve();
}
},
handleAfter({ pageData, row }) {
row.respondents = "";
},
}评分人 scorer 🎉
json
{
"groupCode": "purchaseStandardItemList",
"fieldType": "remoteSelect",
"title": "评分人",
"field": "scorer",
"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) {
if (_isFill) {
const { scorer = "" } = data[0] || {};
row.scorer = scorer;
} else {
const { subAccount = "", realname = "" } = data[0] || {};
row.scorer = `${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",
selectModal: "single",
params: {
status: 1,
},
handleAfter({ pageData, row }) {
row.scorer = "";
},
}条例填写类型 inputType 🎉
json
{
"groupCode": "purchaseStandardItemList",
"fieldType": "select",
"title": "条例填写类型",
"field": "inputType",
"dictCode": "regulationFillInType",
"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,
},
) {
// 条例填写类型 inputType;
// 数据字典 regulationFillInType (1: 手输, 2: 单选, 3: 多选);
/**
* @description: 业务规则:
* 动态设置关联单据字段弹窗选择配置
*/
customFormatItem(
"purchaseStandardItemList",
"selectAnswer",
function fn(item) {
debugger;
if (item.extend) {
item.extend = Object.assign(item.extend, {
current: row.inputType === "3" ? 1 : 0,
});
}
},
);
}选择检查结果 selectAnswer 🎉
json
{
"groupCode": "purchaseStandardItemList",
"fieldType": "selectModal",
"title": "选择检查结果",
"field": "selectAnswer",
"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) {
if (data && data.length) {
// 适配向下填充
if (_isFill) {
const { selectAnswer = "" } = data[0] || {};
row.selectAnswer = selectAnswer;
} else {
// 多选
if (row.inputType === "3") {
row.selectAnswer = data.map((item) => item.selectName).join(",");
} else {
const { selectName = "" } = data[0] || {};
row.selectAnswer = selectName;
}
}
}
}
}js
{
handleBefore({ pageData, row, userInfo }) {
let subAccount = userInfo.subAccount;
if (row.respondents && row.respondents.split("_")[0] !== subAccount) {
return Promise.reject(
"该单检查人为:" + row.respondents + ", 你没有检查权限",
);
}
if (row.itemStatus !== "1") {
return Promise.reject("只有【检查中】状态的单据才能进行检查");
}
return Promise.resolve();
},
handleAfter({ pageData, row }) {
row.selectAnswer = "";
},
current: 0,
modalConfigs: [
{
title: "选择数据",
modalColumns: [
{
field: "selectName",
title: "选项",
fieldLabelI18nKey: "i18n_field_id_120990",
width: 150,
},
{
field: "selectValue",
title: "选项值",
fieldLabelI18nKey: "i18n_title_optionsValue",
width: 150,
},
],
modalUrl: "/supplier/supplierStandardRegulation/listSelected",
selectModal: "single",
params({ pageData, userInfo, row, role }) {
return {
elsAccount: role == "sale" ? row.toElsAccount : row.elsAccount,
regulationNumber: row.regulationNumber,
deleted: "0",
};
},
},
{
title: "选择数据",
modalColumns: [
{
field: "selectName",
title: "选项",
fieldLabelI18nKey: "i18n_field_id_120990",
width: 150,
},
{
field: "selectValue",
title: "选项值",
fieldLabelI18nKey: "i18n_title_optionsValue",
width: 150,
},
],
modalUrl: "/supplier/supplierStandardRegulation/listSelected",
selectModal: "multiple",
params({ pageData, userInfo, row, role }) {
return {
elsAccount: role == "sale" ? row.toElsAccount : row.elsAccount,
regulationNumber: row.regulationNumber,
deleted: "0",
};
},
},
],
}分数 score 🎉
json
{
"groupCode": "purchaseStandardItemList",
"fieldType": "input",
"title": "分数",
"field": "score",
"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 (row.score > row.fullMark) {
row.score = row.fullMark;
}
}