Appearance
采购范式合同管理(标准)
合同层级 contractLevels
json
{
"groupCode": "baseForm",
"fieldType": "select",
"fieldLabel": "合同层级",
"fieldName": "contractLevels",
"dictCode": "srmContractLevels",
"defaultValue": "master",
"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 flag = value === "master";
setItemDisabled("baseForm", "masterContractNumber", flag);
setItemDisabled("baseForm", "masterContractName", flag);
if (flag) {
pageData.masterContractNumber = "";
pageData.masterContractName = "";
pageData.masterContractId = "";
}
}主合同号 masterContractNumber
json
{
"groupCode": "baseForm",
"fieldType": "selectModal",
"fieldLabel": "主合同号",
"fieldName": "masterContractNumber",
"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) {
const { id = "", contractNumber = "", contractName = "" } = data[0] || {};
pageData.masterContractId = id;
pageData.masterContractNumber = contractNumber;
pageData.masterContractName = contractName;
// 本地页面处理复杂绑定函数需求
topEmit && topEmit();
}
}js
{
modalColumns: [
{
field: "contractNumber",
title: "合同单号",
fieldLabelI18nKey: "i18n_field_masterContractNumber ",
with: 150,
},
{
field: "contractName",
title: "合同名称",
fieldLabelI18nKey: "i18n_field_masterContractName",
with: 150,
},
{
field: "contractDesc",
title: "合同描述",
fieldLabelI18nKey: "i18n_field_contractDesc",
with: 150,
},
{
field: "contractType_dictText",
title: "合同类型",
fieldLabelI18nKey: "i18n_field_contractType",
with: 150,
},
],
modalUrl: "/contract/purchaseContractHead/list",
selectModel: "single",
params({ pageData }) {
return {
superQueryParams:
"%5B%7B%22logicSymbol%22:%22in%22,%22fieldCode%22:%22contractStatus%22,%22fieldType%22:%22input%22,%22dictCode%22:%22%22,%22fieldValue%22:%223,6%22,%22joiner%22:%22AND%22%7D,%7B%22logicSymbol%22:%22eq%22,%22fieldCode%22:%22contractLevels%22,%22fieldType%22:%22input%22,%22dictCode%22:null,%22fieldValue%22:%22master%22,%22joiner%22:%22AND%22%7D%5D",
superQueryMatchType: "AND",
};
},
mobileModalParams(Vue, { _pageData, _cacheAllData }) {
return {
superQueryParams:
"%5B%7B%22logicSymbol%22:%22in%22,%22fieldCode%22:%22contractStatus%22,%22fieldType%22:%22input%22,%22dictCode%22:%22%22,%22fieldValue%22:%223,6%22,%22joiner%22:%22AND%22%7D,%7B%22logicSymbol%22:%22eq%22,%22fieldCode%22:%22contractLevels%22,%22fieldType%22:%22input%22,%22dictCode%22:null,%22fieldValue%22:%22master%22,%22joiner%22:%22AND%22%7D%5D",
superQueryMatchType: "AND",
};
},
handleAfter: ({ pageData }) => {
pageData.masterContractId = "";
pageData.masterContractNumber = "";
pageData.masterContractName = "";
},
}合同模板编码 contractTemplateNumber
json
{
"groupCode": "baseForm",
"fieldType": "selectModal",
"fieldLabel": "合同模板编码",
"fieldName": "contractTemplateNumber",
"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 {
contractTemplateNumber = "",
contractTemplateName = "",
contractTemplateVersion = "",
company = "",
purchaseGroup = "",
purchaseOrg = "",
} = data[0] || {};
pageData.contractTemplateNumber = contractTemplateNumber;
pageData.contractTemplateName = contractTemplateName;
pageData.contractTemplateVersion = contractTemplateVersion;
pageData.company = company;
pageData.purchaseGroup = purchaseGroup;
pageData.purchaseOrg = purchaseOrg;
// 本地页面处理复杂绑定函数需求
topEmit && topEmit();
}js
{
selectModal: "single",
modalColumns: [
{
field: "contractTemplateNumber",
fieldLabelI18nKey: "i18n_field_contractTemplateNumber",
title: "合同模板编码",
with: 150,
},
{
field: "contractTemplateName",
fieldLabelI18nKey: "i18n_field_contractTemplateName",
title: "合同模板名称",
with: 150,
},
{
field: "contractTemplateVersion",
fieldLabelI18nKey: "i18n_field_contractTemplateVersion",
title: "合同模板版本",
with: 150,
},
{
field: "templateDesc",
fieldLabelI18nKey: "i18n_field_templateDesc",
title: "模板描述",
with: 150,
},
{
field: "templateType_dictText",
fieldLabelI18nKey: "i18n_field_templateType",
title: "模板类型",
with: 150,
},
{
field: "templateStatus_dictText",
fieldLabelI18nKey: "i18n_field_templateStatus",
title: "模板状态",
with: 150,
},
],
modalUrl: "/contract/purchaseContractTemplateHead/list",
params: () => {
return {
auditStatus: "2",
templateStatus: "1",
order: "desc",
column: "id",
};
},
handleAfter: ({ pageData }) => {
pageData.contractTemplateNumber = "";
pageData.contractTemplateName = "";
pageData.contractTemplateVersion = "";
pageData.company = "";
pageData.purchaseGroup = "";
pageData.purchaseOrg = "";
pageData.purchaseContractContentItemList = [];
},
}补录标识 supplement
json
{
"groupCode": "baseForm",
"fieldType": "select",
"fieldLabel": "补录标识",
"fieldName": "supplement",
"dictCode": "yn",
"defaultValue": "0",
"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 flag = value === "1";
setItemDisabled("baseForm", "sign", flag);
pageData.sign = value === "1" ? "0" : pageData.sign;
// 是否属于先执行后签合同 控制 先执行后签合同申请流程号 是否必填
// setItemRequired("baseForm", "processNumber", flag);
}签订地址 contractSignAddress
json
{
"groupCode": "busRule",
"fieldType": "input",
"fieldLabel": "签订地址",
"fieldName": "contractSignAddress",
"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,
},
) {
pageData.address = value || "";
}签订日期 contractSignDate
json
{
"groupCode": "busRule",
"fieldType": "date",
"fieldLabel": "签订日期",
"fieldName": "contractSignDate",
"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,
},
) {
pageData.effectiveDate = value || "";
}对方 ELS 账号 toElsAccount
json
{
"groupCode": "personFrom",
"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) {
const {
toElsAccount = "",
supplierCode = "",
supplierName = "",
} = data[0] || {};
pageData.toElsAccount = toElsAccount;
pageData.supplierCode = supplierCode;
pageData.supplierName = supplierName;
pageData.invoicedElsAccount = toElsAccount;
pageData.invoicedErpCode = supplierCode;
pageData.invoicedName = supplierName;
//履约方编码
pageData.performingPartyElsAccount = toElsAccount;
pageData.performingPartyCode = supplierCode;
//履约方名称
pageData.performingPartyName = supplierName;
pageData.payeeElsAccount = toElsAccount;
pageData.payeeErpCode = supplierCode;
pageData.payeeName = supplierName;
//销售负责人 供应商联系人新增中职能含订单的联系人
}
// 本地页面处理复杂绑定函数需求
topEmit && topEmit();
}js
{
modalColumns: [
{
field: "toElsAccount",
title: "供应商账号",
fieldLabelI18nKey: "i18n_title_supplierAccount",
width: 150,
},
{
field: "supplierName",
title: "供应商名称",
fieldLabelI18nKey: "i18n_field_supplierName",
width: 150,
},
{
field: "supplierCode",
title: "供应商编码",
fieldLabelI18nKey: "i18n_field_toCompanyCode",
width: 150,
},
{
field: "bankBranchName",
title: "开户行全称",
fieldLabelI18nKey: "",
width: 150,
},
{
field: "bankAccount",
title: "银行账号",
fieldLabelI18nKey: "",
width: 150,
},
],
modalUrl: "/supplier/supplierMaster/list",
selectModal: "single",
params({ pageData }) {
return {
frozenFunctionValue: "3",
purchaseOrg: pageData?.purchaseOrg || "",
};
},
mobileModalParams(Vue, { _pageData, _cacheAllData }) {
return {
frozenFunctionValue: "3",
purchaseOrg: _cacheAllData.purchaseOrg,
};
},
handleAfter({ pageData }) {
pageData.toElsAccount = "";
pageData.supplierCode = "";
pageData.supplierName = "";
pageData.performingPartyElsAccount = "";
pageData.invoicedElsAccount = "";
pageData.payeeElsAccount = "";
pageData.invoicedErpCode = "";
pageData.invoicedName = "";
pageData.payeeErpCode = "";
pageData.payeeName = "";
pageData.performingPartyCode = "";
pageData.performingPartyName = "";
pageData.bankBranchName = "";
pageData.bankAccount = "";
pageData.paymentCondition = "";
pageData.paymentType = "";
pageData.purchasePrincipal = "";
},
}销售负责人 salePrincipal
json
{
"groupCode": "personFrom",
"fieldType": "selectModal",
"fieldLabel": "销售负责人",
"fieldName": "salePrincipal",
"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) {
const { realname = "", email = "", phone = "" } = data[0] || {};
pageData.salePrincipal = realname;
pageData.supplierMail = email;
pageData.supplierPhone = phone;
}
}js
{
modalColumns: [
{
field: "post",
title: "职位",
fieldLabelI18nKey: "i18n_title_position",
with: 150,
},
{
field: "realname",
title: "名字",
fieldLabelI18nKey: "i18n_field_RJ_a88ea",
with: 150,
},
{
field: "phone",
title: "电话",
fieldLabelI18nKey: "i18n_field_telephone",
with: 150,
},
{
field: "email",
title: "邮箱",
fieldLabelI18nKey: "i18n_field_email",
with: 150,
},
],
modalUrl: "/supplier/supplierMaster/getContract",
selectModel: "single",
params({ pageData }) {
return {
elsAccount: pageData.toElsAccount || "",
toElsAccount: pageData.elsAccount || "",
};
},
mobileModalParams(Vue) {
return {
elsAccount: Vue.vuex_userInfo.elsAccount,
toElsAccount: Vue.vuex_userInfo.elsAccount,
};
},
handleAfter: ({ pageData }) => {
pageData.salePrincipal = "";
pageData.supplierMail = "";
pageData.supplierPhone = "";
},
}供应商地址 supplierAddress
json
{
"groupCode": "personFrom",
"fieldType": "selectModal",
"fieldLabel": "供应商地址",
"fieldName": "supplierAddress",
"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) {
const { address } = data[0] || {};
pageData.supplierAddress = address;
}
}js
{
modalColumns: [
{
field: "country",
title: "国家",
with: 150,
},
{
field: "province",
title: "省份",
with: 150,
},
{
field: "city",
title: "城市",
with: 150,
},
{
field: "address",
title: "详细地址",
with: 250,
},
],
modalUrl: "/supplier/supplierMaster/getAddressInfo",
selectModal: "single",
params: function ({ pageData }) {
return {
elsAccount: pageData.elsAccount || "",
toElsAccount: pageData.toElsAccount || "",
};
},
handleAfter: ({ pageData }) => {
pageData.supplierAddress = "";
},
}采购负责人 purchasePrincipal
json
{
"groupCode": "personFrom",
"fieldType": "remoteSelect",
"fieldLabel": "采购负责人",
"fieldName": "purchasePrincipal",
"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) {
const { realname = "", email = "", phone = "" } = data[0] || {};
pageData.purchasePrincipal = realname;
pageData.mail = email;
pageData.phone = phone;
}
}js
{
modalColumns: [
{
field: "subAccount",
title: "子账号",
fieldLabelI18nKey: "i18n_field_subAccount",
with: 150,
},
{
field: "realname",
title: "名字",
fieldLabelI18nKey: "i18n_field_RJ_a88ea",
with: 150,
},
],
modalUrl: "/account/elsSubAccount/page",
selectModal: "single",
params({ pageData }) {
return {
elsAccount: pageData.elsAccount || "",
toElsAccount: pageData.elsAccount || "",
};
},
mobileModalParams(Vue) {
return {
elsAccount: Vue.vuex_userInfo.elsAccount,
toElsAccount: Vue.vuex_userInfo.elsAccount,
};
},
handleAfter: ({ pageData }) => {
pageData.purchasePrincipal = "";
pageData.mail = "";
pageData.phone = "";
},
}履约方 ELS 账号 performingPartyElsAccount
json
{
"groupCode": "personFrom",
"fieldType": "remoteSelect",
"fieldLabel": "履约方ELS账号",
"fieldName": "performingPartyElsAccount",
"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) {
const {
toElsAccount = "",
supplierCode = "",
supplierName = "",
personPhone = "",
personEmail = "",
} = data[0] || {};
pageData.performingPartyElsAccount = toElsAccount;
pageData.performingPartyCode = supplierCode;
pageData.performingPartyName = supplierName;
pageData.performingPartyPhone = personPhone;
pageData.performingPartyMail = personEmail;
}
}js
{
modalColumns: [
{
field: "toElsAccount",
title: "履约方账号",
fieldLabelI18nKey: "i18n_field_IZCey_51232089",
with: 150,
},
{
field: "supplierName",
title: "履约方名称",
fieldLabelI18nKey: "i18n_field_IZCRL_511c5c7b",
with: 150,
},
{
field: "supplierCode",
title: "履约方编码",
fieldLabelI18nKey: "i18n_field_IZCAo_512190a3",
with: 150,
},
],
modalUrl: "/supplier/supplierMaster/list",
selectModel: "single",
params: ({ pageData, userInfo }) => {
return {
frozenFunctionValue: "3",
purchaseOrg: pageData?.purchaseOrg || "",
};
},
handleAfter: ({ pageData, userInfo }) => {
pageData.performingPartyElsAccount = "";
pageData.performingPartyCode = "";
pageData.performingPartyName = "";
pageData.performingPartyPhone = "";
pageData.performingPartyMail = "";
},
}开票方 Els 账号 invoicedElsAccount
json
{
"groupCode": "personFrom",
"fieldType": "remoteSelect",
"fieldLabel": "开票方Els账号",
"fieldName": "invoicedElsAccount",
"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) {
const {
toElsAccount = "",
supplierCode = "",
supplierName = "",
personPhone = "",
} = data[0] || {};
pageData.invoicedElsAccount = toElsAccount;
pageData.invoicedErpCode = supplierCode;
pageData.invoicedName = supplierName;
pageData.invoicedPhone = personPhone;
}
}js
{
modalColumns: [
{
field: "toElsAccount",
title: "开票方账号",
fieldLabelI18nKey: "i18n_alert_vPCey_737853a2",
with: 150,
},
{
field: "supplierName",
title: "开票方名称",
fieldLabelI18nKey: "i18n_alert_vPCRL_73718f94",
with: 150,
},
{
field: "supplierCode",
title: "开票方编码",
fieldLabelI18nKey: "i18n_alert_vPCAo_7376c3bc",
with: 150,
},
],
modalUrl: "/supplier/supplierMaster/list",
selectModal: "single",
params({ pageData, userInfo }) {
return {
frozenFunctionValue: "3",
purchaseOrg: pageData?.purchaseOrg || "",
};
},
mobileModalParams(Vue, { _pageData, _cacheAllData }) {
return {
frozenFunctionValue: "3",
purchaseOrg: _cacheAllData.purchaseOrg,
};
},
handleAfter({ pageData, userInfo }) {
pageData.invoicedElsAccount = "";
pageData.invoicedErpCode = "";
pageData.invoicedName = "";
pageData.invoicedPhone = "";
},
}收款方 ELS 账号 payeeElsAccount
json
{
"groupCode": "personFrom",
"fieldType": "remoteSelect",
"fieldLabel": "收款方ELS账号",
"fieldName": "payeeElsAccount",
"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) {
const {
toElsAccount = "",
supplierCode = "",
supplierName = "",
personPhone = "",
} = data[0] || {};
pageData.payeeElsAccount = toElsAccount;
pageData.payeeErpCode = supplierCode;
pageData.payeeName = supplierName;
pageData.payeePhone = personPhone;
}
}js
{
modalColumns: [
{
field: "toElsAccount",
title: "收款方账号",
fieldLabelI18nKey: "i18n_field_receiverBankAccount",
with: 150,
},
{
field: "supplierName",
title: "收款方名称",
fieldLabelI18nKey: "i18n_alert_lVCRL_c4874134",
with: 150,
},
{
field: "supplierCode",
title: "收款方编码",
fieldLabelI18nKey: "i18n_alert_lVCAo_c48c755c",
with: 150,
},
],
modalUrl: "/supplier/supplierMaster/list",
selectModal: "single",
mobileModalParams(Vue, { _pageData, _cacheAllData }) {
return {
frozenFunctionValue: "3",
purchaseOrg: _cacheAllData.purchaseOrg,
};
},
params({ pageData, userInfo }) {
return {
frozenFunctionValue: "3",
purchaseOrg: pageData.purchaseOrg || "",
};
},
handleAfter({ pageData, userInfo }) {
pageData.payeeElsAccount = "";
pageData.payeeErpCode = "";
pageData.payeeName = "";
pageData.payeePhone = "";
},
}物料分类 cateCode 🎉
json
{
"groupCode": "purchaseContractItemList",
"fieldType": "selectModal",
"title": "物料分类",
"field": "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) {
const { cateCode = "", cateName = "", cateLevelCode = "" } = data[0] || {};
row.cateCode = cateCode;
row.cateName = cateName;
row.cateLevelCode = cateLevelCode;
}
}js
{
modalColumns: [
{
field: "cateCode",
title: "编码",
fieldLabelI18nKey: "i18n_field_cateCode",
treeNode: true,
},
{
field: "title",
title: "分类名称",
fieldLabelI18nKey: "i18n_title_classificationName",
width: 180,
},
{
field: "value",
title: "分类编码",
fieldLabelI18nKey: "i18n_title_classificationCode",
width: 180,
},
],
selectModal: "single",
modalUrl: "/material/purchaseMaterialCode/pageMaterialCodeTree",
params: {
cateStatus: "1",
},
isTree: true,
treeConfig: {},
handleAfter({ row }) {
row.cateCode = "";
row.cateName = "";
row.cateLevelCode = "";
},
}订单数量 quantity 🎉
json
{
"groupCode": "purchaseContractItemList",
"fieldType": "float",
"title": "订单数量",
"field": "quantity",
"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,
},
) {
// 税率 taxRate;
let taxRate = row.taxRate || "0";
// 含税单价 price;
let price = row.price || "";
// 订单数量 quantity
let quantity = row.quantity || "";
const DIGIT = 4;
if (!Decimal) {
return;
}
const formula = Decimal.add(1, Decimal.div(taxRate, 100));
if (price && taxRate) {
let netPrice = Decimal.div(price, formula);
// 4位小数
row.netPrice = new Decimal(netPrice).toFixed(DIGIT);
if (quantity) {
let taxAmount = Decimal.mul(price, quantity);
let netAmount = Decimal.div(taxAmount, formula);
row.taxAmount = new Decimal(taxAmount).toFixed(DIGIT);
row.netAmount = new Decimal(netAmount).toFixed(DIGIT);
}
// 动态计算
// 含税总金额 totalTaxAmount
// 未税总金额 totalNetAmount
const purchaseContractItemList = pageData.purchaseContractItemList || [];
if (purchaseContractItemList.length) {
let totalTaxAmount = purchaseContractItemList.reduce((acc, item) => {
return Decimal.add(acc, item.taxAmount);
}, new Decimal(0));
let totalNetAmount = purchaseContractItemList.reduce((acc, item) => {
return Decimal.add(acc, item.netAmount);
}, new Decimal(0));
pageData.totalTaxAmount = new Decimal(totalTaxAmount).toFixed(DIGIT);
pageData.totalNetAmount = new Decimal(totalNetAmount).toFixed(DIGIT);
}
}
}含税单价 price 🎉
json
{
"groupCode": "purchaseContractItemList",
"fieldType": "float",
"title": "含税单价",
"field": "price",
"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,
},
) {
// 税率 taxRate;
let taxRate = row.taxRate || "0";
// 含税单价 price;
let price = row.price || "";
// 订单数量 quantity
let quantity = row.quantity || "";
const DIGIT = 4;
if (!Decimal) {
return;
}
const formula = Decimal.add(1, Decimal.div(taxRate, 100));
if (price && taxRate) {
let netPrice = Decimal.div(price, formula);
// 4位小数
row.netPrice = new Decimal(netPrice).toFixed(DIGIT);
if (quantity) {
let taxAmount = Decimal.mul(price, quantity);
let netAmount = Decimal.div(taxAmount, formula);
row.taxAmount = new Decimal(taxAmount).toFixed(DIGIT);
row.netAmount = new Decimal(netAmount).toFixed(DIGIT);
}
// 动态计算
// 含税总金额 totalTaxAmount
// 未税总金额 totalNetAmount
const purchaseContractItemList = pageData.purchaseContractItemList || [];
if (purchaseContractItemList.length) {
let totalTaxAmount = purchaseContractItemList.reduce((acc, item) => {
return Decimal.add(acc, item.taxAmount);
}, new Decimal(0));
let totalNetAmount = purchaseContractItemList.reduce((acc, item) => {
return Decimal.add(acc, item.netAmount);
}, new Decimal(0));
pageData.totalTaxAmount = new Decimal(totalTaxAmount).toFixed(DIGIT);
pageData.totalNetAmount = new Decimal(totalNetAmount).toFixed(DIGIT);
}
}
}税码 taxCode 🎉
json
{
"groupCode": "purchaseContractItemList",
"fieldType": "remoteSelect",
"title": "税码",
"field": "taxCode",
"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) {
const { taxCode = "", taxRate = "" } = data[0] || {};
row.taxCode = taxCode;
row.taxRate = taxRate;
}
// 税率 taxRate;
let taxRate = row.taxRate || "0";
// 含税单价 price;
let price = row.price || "";
// 订单数量 quantity
let quantity = row.quantity || "";
const DIGIT = 4;
if (!Decimal) {
return;
}
const formula = Decimal.add(1, Decimal.div(taxRate, 100));
if (price && taxRate) {
let netPrice = Decimal.div(price, formula);
// 4位小数
row.netPrice = new Decimal(netPrice).toFixed(DIGIT);
if (quantity) {
let taxAmount = Decimal.mul(price, quantity);
let netAmount = Decimal.div(taxAmount, formula);
row.taxAmount = new Decimal(taxAmount).toFixed(DIGIT);
row.netAmount = new Decimal(netAmount).toFixed(DIGIT);
}
// 动态计算
// 含税总金额 totalTaxAmount
// 未税总金额 totalNetAmount
const purchaseContractItemList = pageData.purchaseContractItemList || [];
if (purchaseContractItemList.length) {
let totalTaxAmount = purchaseContractItemList.reduce((acc, item) => {
return Decimal.add(acc, item.taxAmount);
}, new Decimal(0));
let totalNetAmount = purchaseContractItemList.reduce((acc, item) => {
return Decimal.add(acc, item.netAmount);
}, new Decimal(0));
pageData.totalTaxAmount = new Decimal(totalTaxAmount).toFixed(DIGIT);
pageData.totalNetAmount = new Decimal(totalNetAmount).toFixed(DIGIT);
}
}
}js
{
modalColumns: [
{
field: "taxCode",
title: "税码",
fieldLabelI18nKey: "i18n_title_enterTaxCode",
with: 150,
},
{
field: "taxRate",
title: "税率(%)",
fieldLabelI18nKey: "i18n_field_fIW_1d82c07",
with: 150,
},
{
field: "taxName",
title: "税码名称",
fieldLabelI18nKey: "i18n_field_taxName",
with: 150,
},
{
field: "remark",
title: "备注",
fieldLabelI18nKey: "i18n_field_remark",
with: 150,
},
],
modalUrl: "/base/tax/queryTaxForTemplate",
modalParams: {},
handleAfter: ({ pageData, row }) => {
row.taxCode = "";
row.taxRate = "";
},
}履行金额 amount 🎉
json
{
"groupCode": "purchaseContractPromiseList",
"fieldType": "input",
"title": "履行金额",
"field": "amount",
"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 totalTaxAmount = 0;
let targetQuantity = 0;
layoutConfig.groups.forEach((group) => {
if (group.groupCode == "busRule") {
totalTaxAmount = pageData.totalTaxAmount;
}
if (group.groupCode == "baseForm") {
targetQuantity = pageData.targetQuantity;
}
});
if (pageData.contractType === "1") {
if (
totalTaxAmount &&
totalTaxAmount !== "0" &&
row.amount &&
row.amount !== "0"
) {
row.performanceRatio = Decimal.div(
Decimal.mul(row.amount, "100"),
totalTaxAmount,
).toFixed(6);
row.amount = new Decimal(row.amount).toFixed(6);
}
} else if (pageData.contractType === "2") {
if (
targetQuantity &&
targetQuantity !== "0" &&
row.amount &&
row.amount !== "0"
) {
row.performanceRatio = Decimal.div(
Decimal.mul(row.amount, "100"),
targetQuantity,
).toFixed(6);
row.amount = new Decimal(row.amount).toFixed(6);
}
}
if (row.amount == "") {
row.performanceRatio = "";
}
if (row.amount == null) {
row.performanceRatio = null;
}
row.precedence = "1";
}履约比例% performanceRatio 🎉
json
{
"groupCode": "purchaseContractPromiseList",
"fieldType": "input",
"title": "履约比例%",
"field": "performanceRatio",
"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 totalTaxAmount = pageData.totalTaxAmount;
let targetQuantity = pageData.targetQuantity;
if (pageData.contractType === "1") {
if (
totalTaxAmount &&
totalTaxAmount !== "0" &&
row.performanceRatio &&
row.performanceRatio !== "0"
) {
row.performanceRatio = new Decimal(row.performanceRatio).toFixed(6);
let temp = Decimal.mul(row.performanceRatio, totalTaxAmount);
row.amount = Decimal.mul(temp, "0.01");
row.amount = new Decimal(row.amount).toFixed(6);
}
} else if (pageData.contractType === "2") {
if (
targetQuantity &&
targetQuantity !== "0" &&
row.performanceRatio &&
row.performanceRatio !== "0"
) {
row.performanceRatio = new Decimal(row.performanceRatio).toFixed(6);
let temp = Decimal.mul(row.performanceRatio, targetQuantity);
row.amount = Decimal.mul(temp, "0.01");
row.amount = new Decimal(row.amount).toFixed(6);
}
}
if (row.performanceRatio === "") {
row.amount = "";
}
row.precedence = "2";
}履行金额 amount 🎉
json
{
"groupCode": "contractItemCustom1List",
"fieldType": "float",
"title": "履行金额",
"field": "amount",
"dataFormat": "#.000000",
"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,
},
) {
let totalTaxAmount = 0;
let targetQuantity = 0;
layoutConfig.groups.forEach((group) => {
if (group.groupCode == "busRule") {
totalTaxAmount = pageData.totalTaxAmount;
}
if (group.groupCode == "baseForm") {
targetQuantity = pageData.targetQuantity;
}
});
if (pageData.contractType === "1") {
if (
totalTaxAmount &&
totalTaxAmount !== "0" &&
row.amount &&
row.amount !== "0"
) {
row.performanceRatio = Decimal.div(
Decimal.mul(row.amount, "100"),
totalTaxAmount,
).toFixed(6);
row.amount = new Decimal(row.amount).toFixed(6);
}
} else if (pageData.contractType === "2") {
if (
targetQuantity &&
targetQuantity !== "0" &&
row.amount &&
row.amount !== "0"
) {
row.performanceRatio = Decimal.div(
Decimal.mul(row.amount, "100"),
targetQuantity,
).toFixed(6);
row.amount = new Decimal(row.amount).toFixed(6);
}
}
if (row.amount == "") {
row.performanceRatio = "";
}
if (row.amount == null) {
row.performanceRatio = null;
}
row.precedence = "1";
}履行比例 performanceRatio 🎉
json
{
"groupCode": "contractItemCustom1List",
"fieldType": "float",
"title": "履行比例",
"field": "performanceRatio",
"dataFormat": "#.000000",
"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,
},
) {
let totalTaxAmount = 0;
let targetQuantity = 0;
layoutConfig.groups.forEach((group) => {
if (group.groupCode == "busRule") {
totalTaxAmount = pageData.totalTaxAmount;
}
if (group.groupCode == "baseForm") {
targetQuantity = pageData.targetQuantity;
}
});
if (pageData.contractType === "1") {
if (
totalTaxAmount &&
totalTaxAmount !== "0" &&
row.performanceRatio &&
row.performanceRatio !== "0"
) {
row.performanceRatio = new Decimal(row.performanceRatio).toFixed(6);
let temp = Decimal.mul(row.performanceRatio, totalTaxAmount);
row.amount = Decimal.mul(temp, "0.01");
row.amount = new Decimal(row.amount).toFixed(6);
}
} else if (pageData.contractType === "2") {
if (
targetQuantity &&
targetQuantity !== "0" &&
row.performanceRatio &&
row.performanceRatio !== "0"
) {
row.performanceRatio = new Decimal(row.performanceRatio).toFixed(6);
let temp = Decimal.mul(row.performanceRatio, targetQuantity);
row.amount = Decimal.mul(temp, "0.01");
row.amount = new Decimal(row.amount).toFixed(6);
}
}
if (row.performanceRatio === "") {
row.amount = "";
}
row.precedence = "2";
}