Appearance
供应商准入
准入类型 accessType
json
{
"groupCode": "baseForm",
"fieldType": "select",
"fieldLabel": "准入类型",
"fieldName": "accessType",
"dictCode": "srmAccessMgmtAccessType",
"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,
},
) {
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;
}
pageData.toElsAccount = data[0].toElsAccount;
pageData.supplierName = data[0].supplierName;
pageData.supplierCode = data[0].supplierCode;
pageData.supplierClassify = data[0].supplierClassify;
pageData.supplierClassify_dictText = data[0].supplierClassify_dictText;
pageData.accountGroup = data[0].accountGroup;
pageData.accountGroup_dictText = data[0].accountGroup_dictText;
pageData.supplierTermDate = data[0].supplierTermDate;
pageData.supplierStatus = data[0].supplierStatus;
pageData.supplierStatus_dictText = data[0].supplierStatus_dictText;
let flag =
data[0].accountGroup && data[0].accountGroup.split(",").includes("C005");
setItemDisabled && setItemDisabled("baseForm", "supplierTermDate", !flag);
debugger;
if (data[0].toElsAccount) {
layoutConfig.groups.forEach((group) => {
if (group.groupCode === "enterpriseForm") group.show = true;
if (group.groupCode === "enterprisePortrait") group.show = true;
});
}
const qhttp = ctx.appContext.config.globalProperties.$http;
const url = "supplier/supplierMaster/queryEnterpriseByElsAccount";
qhttp
.request({
url,
method: "get",
params: { elsAccount: data[0].toElsAccount },
})
.then((res) => {
if (res.code === 200) {
if (res.result) {
Object.keys(res.result).forEach((key) => {
if (
pageData.enterpriseForm &&
pageData.enterpriseForm[key] !== undefined
) {
// 主要是赋值给供应商信息,不能将elsAccount和id的值覆盖
if (key !== "elsAccount" && key !== "id") {
pageData.enterpriseForm[key] = res.result[key];
}
}
});
}
}
});
}js
{
modalColumns: [
{
field: "toElsAccount",
title: "供应商ELS账号",
fieldLabelI18nKey: "i18n_title_supplierELSAccount",
with: 150,
},
{
field: "supplierName",
title: "供应商名称",
fieldLabelI18nKey: "i18n_field_supplierName",
with: 150,
},
{
field: "supplierCode",
title: "供应商ERP编码",
fieldLabelI18nKey: "i18n_field_supplierCode",
with: 150,
},
{
field: "supplierStatus_dictText",
title: "供应商状态",
fieldLabelI18nKey: "i18n_field_supplierStatus",
with: 150,
},
{
field: "supplierClassify_dictText",
title: "供应商分类",
fieldLabelI18nKey: "i18n_field_supplierClassify",
with: 150,
},
{
field: "accountGroup_dictText",
title: "供应商账户组",
fieldLabelI18nKey: "i18n_field_accountGroup",
with: 150,
},
],
modalUrl: "/supplier/supplierMaster/list",
selectModel: "single",
handleAfter: function ({ pageData }) {
pageData.toElsAccount = "";
pageData.supplierName = "";
pageData.supplierCode = "";
pageData.supplierClassify = "";
pageData.supplierClassify_dictText = "";
pageData.accountGroup = "";
pageData.accountGroup_dictText = "";
pageData.supplierTermDate = "";
pageData.supplierStatus = "";
pageData.supplierStatus_dictText = "";
},
afterClearCallBack: function (that, form, col) {
form.toElsAccount = "";
form.supplierName = "";
form.supplierCode = "";
form.supplierClassify = "";
form.supplierClassify_dictText = "";
form.accountGroup = "";
form.accountGroup_dictText = "";
form.supplierTermDate = "";
form.supplierStatus = "";
form.supplierStatus_dictText = "";
},
}物料分类编码 cateCode
json
{
"groupCode": "baseForm",
"fieldType": "selectModal",
"fieldLabel": "物料分类编码",
"fieldName": "cateCode",
"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 cateCodeArray = [];
let cateNameArray = [];
data.forEach((a) => {
cateCodeArray.push(a.cateCode);
cateNameArray.push(a.cateCode + "_" + a.cateName);
});
pageData.cateCode = cateCodeArray.join(",");
pageData.cateName = cateNameArray.join(",");
topEmit && topEmit();
}js
{
modalColumns: [
{
field: "cateCode",
title: "物料分类编码",
fieldLabelI18nKey: "i18n_field_materialClassificationCode",
with: 150,
},
{
field: "cateName",
title: "物料分类名称",
fieldLabelI18nKey: "i18n_field_cateName",
with: 150,
},
],
modalUrl: "/material/purchaseMaterialCode/list",
params: { cateStatus: "1" },
selectModel: "multiple",
handleAfter: function ({ pageData, userInfo }) {
pageData.cateCode = "";
pageData.cateName = "";
},
}准入策略标题 policyDesc
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "准入策略标题",
"fieldName": "policyDesc",
"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.policyDesc = data[0].policyDesc;
pageData.policyNumber = data[0].policyNumber;
pageData.policyRemark = data[0].remark;
pageData.accessLink = data[0].accessLink;
pageData.accessLink_dictText = data[0].accessLink_dictText;
// 资质审查 0 样品检测 1 现场考察 2
let itemGrid0 = pageData["supplierAccessMgmtQuareviewList"];
let itemGrid1 = pageData["supplierAccessMgmtSamplecheckList"];
let itemGrid2 = pageData["supplierAccessMgmtInspectionList"];
let itemInfo0 = [];
let itemInfo1 = [];
let itemInfo2 = [];
let arr0 = [];
let arr1 = [];
let arr2 = [];
if (itemGrid0.length)
itemInfo0 = itemGrid0.filter((item) => !item.policyNumber);
if (itemGrid1.length)
itemInfo1 = itemGrid1.filter((item) => !item.policyNumber);
if (itemGrid2.length)
itemInfo2 = itemGrid2.filter((item) => !item.policyNumber);
if (data[0].itemList.length) {
data[0].itemList.forEach((item) => {
let items = {
...item,
policyNumber: data[0].policyNumber,
policyDesc: data[0].policyDesc,
fileType: item.fileType,
limited: item.limited,
attachmentTemplateId: item.attachmentId,
attachmentTemplateName: item.attachmentName,
attachmentTemplatePath: item.attachmentPath,
attachmentTemplateSaveType: item.attachmentSaveType,
};
// 过滤null or undefined
// Object.keys(items).forEach((el) => {
// if (!items[el]) {
// items[el] = ''
// }
// })
if (items.attachmentId && items.attachmentName)
items.fbk1 = JSON.stringify([
{ id: items.attachmentId, fileName: items.attachmentName },
]);
delete items.id;
if (item.accessLink == "0") arr0.push(items);
if (item.accessLink == "1") arr1.push(items);
if (item.accessLink == "2") arr2.push(items);
});
pageData["supplierAccessMgmtQuareviewList"] = [...itemInfo0, ...arr0];
pageData["supplierAccessMgmtSamplecheckList"] = [...itemInfo1, ...arr1];
pageData["supplierAccessMgmtInspectionList"] = [...itemInfo2, ...arr2];
}
}js
{
modalColumns: [
{
field: "policyNumber",
title: "准入策略编号",
fieldLabelI18nKey: "i18n_field_rNiNAy_3f42158f",
with: 150,
},
{
field: "policyDesc",
title: "准入策略标题",
fieldLabelI18nKey: "i18n_field_rNiNBD_3f3f8f5f",
with: 150,
},
{
field: "policyType_dictText",
title: "准入策略类型",
fieldLabelI18nKey: "i18n_field_rNiNAc_3f41c85e",
with: 150,
},
{
field: "accessLink_dictText",
title: "准入环节",
fieldLabelI18nKey: "i18n_field_rNSy_266c2152",
with: 200,
},
{
field: "cateCode",
title: "适用的物料分类",
fieldLabelI18nKey: "i18n_field_KjjSLzA_9206f663",
with: 150,
},
{
field: "cateName",
title: "适用物料分类名称",
fieldLabelI18nKey: "i18n_field_KjSLzARL_f08a72ae",
with: 150,
},
{
field: "remark",
title: "备注",
fieldLabelI18nKey: "i18n_field_remark",
with: 150,
},
],
modalUrl: "/supplier/supplierAccessMgmtStrategyHead/selectCustomPageList",
params: ({ pageData, userInfo }) => {
return {
policyStatus: "1",
toElsAccount: pageData.toElsAccount,
purchaseOrg: pageData.purchaseOrg,
policyType: pageData.accessType,
cateCode: pageData.cateCode,
};
},
modalParams: {
policyStatus: "1",
},
mobileModalParams: {
policyStatus: "1",
},
selectModel: "single",
handleAfter: function ({ pageData, userInfo }) {
pageData.policyDesc = "";
pageData.policyNumber = "";
pageData.policyRemark = "";
pageData.accessLink = "";
pageData.accessLink_dictText = "";
const quareviewList = pageData["supplierAccessMgmtQuareviewList"]
? pageData["supplierAccessMgmtQuareviewList"]
: [];
const samplecheckList = pageData["supplierAccessMgmtSamplecheckList"]
? pageData["supplierAccessMgmtSamplecheckList"]
: [];
const inspectionList = pageData["supplierAccessMgmtInspectionList"]
? pageData["supplierAccessMgmtInspectionList"]
: [];
pageData["supplierAccessMgmtQuareviewList"] = quareviewList.filter(
(item) => !item.policyNumber,
);
pageData["supplierAccessMgmtSamplecheckList"] = samplecheckList.filter(
(item) => !item.policyNumber,
);
pageData["supplierAccessMgmtInspectionList"] = inspectionList.filter(
(item) => !item.policyNumber,
);
},
}采购负责人 purchasePrincipal
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "采购负责人",
"fieldName": "purchasePrincipal",
"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.purchasePrincipal = data[0].subAccount + "_" + data[0].realname;
}js
{
modalColumns: [
{
field: "subAccount",
title: "账号",
fieldLabelI18nKey: "i18n_title_account",
with: 150,
},
{
field: "realname",
title: "名称",
fieldLabelI18nKey: "i18n_field_qcItemName",
with: 150,
},
],
modalUrl: "/account/elsSubAccount/page",
params: {
status: "1",
},
mobileModalParams: {
status: "1",
},
userInfoConfig: {
open: true,
useFieldName: function (userInfo) {
return userInfo.subAccount + "_" + userInfo.realname;
},
},
selectModel: "single",
}