Appearance
价格主数据
价格类型 priceType
json
{
"groupCode": "baseForm",
"fieldType": "select",
"fieldLabel": "价格类型",
"fieldName": "priceType",
"dictCode": "srmPriceType",
"defaultValue": "1",
"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,
}
) {
setItemRequired("baseForm", "materialNumber", value == "1");
setItemRequired("baseForm", "materialGroup", value == "2");
}物料编码 materialNumber
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "物料编码",
"fieldName": "materialNumber",
"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 {
materialNumber = "",
materialName = "",
materialDesc = "",
materialSpec = "",
materialGroup = "",
id = "",
cateName = "",
cateCode = "",
minOrderQuantity = "",
minPackQuantity = "",
purchaseOrg = "",
factory = "",
quotaWay = "",
purchaseUnit = "",
} = data[0] || {};
console.log("data[0]data[0]", data[0]);
pageData.materialNumber = materialNumber;
pageData.materialName = materialName;
pageData.materialDesc = materialDesc;
pageData.materialGroup = materialGroup;
pageData.materialId = id;
pageData.cateName = cateName;
pageData.cateCode = cateCode;
pageData.minQuantity = minOrderQuantity;
pageData.minPackQuantity = minPackQuantity;
pageData.purchaseOrg = purchaseOrg;
pageData.factory = factory;
pageData.quotaWay = quotaWay;
// 填入采购单位并置灰
pageData.purchaseUnit = purchaseUnit;
const flag = purchaseUnit ? true : false;
setItemDisabled("baseForm", "purchaseUnit", flag);
}js
{
modalColumns: [
{
field: "materialNumber",
title: "物料编码",
width: 180,
},
{
field: "materialName",
title: "物料名称",
width: 180,
},
{
field: "materialDesc",
title: "物料描述",
width: 180,
},
{
field: "materialSpec",
title: "物料规格",
width: 180,
},
{
field: "materialGroup_dictText",
title: "物料组",
width: 180,
},
{
field: "cateCode",
title: "物料分类",
width: 180,
},
{
field: "cateName",
title: "物料分类名称",
width: 180,
},
{
field: "purchaseUnit_dictText",
title: "采购单位",
width: 180,
},
{
field: "minOrderQuantity",
title: "最小订单量",
width: 180,
},
{
field: "minPackQuantity",
title: "最小包装量",
width: 180,
},
],
modalUrl: "/material/purchaseMaterialHead/page-list",
modalParams: {},
handleAfter: function ({ pageData }) {
pageData.materialNumber = "";
pageData.materialName = "";
pageData.materialDesc = "";
pageData.materialSpec = "";
pageData.materialGroup = "";
pageData.materialId = "";
pageData.cateName = "";
pageData.cateCode = "";
pageData.minQuantity = "";
pageData.minPackQuantity = "";
pageData.purchaseOrg = "";
pageData.factory = "";
pageData.quotaWay = "";
pageData.purchaseUnit = "";
},
}物料分类 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) {
const { cateCode = "", title = "" } = data[0] || {};
pageData.cateCode = cateCode;
pageData.cateName = title;
}
}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/getMaterialCodeTree",
modalParams: {
cateStatus: "1",
quotaStrategy: "1",
},
mobileModalParams: {
cateStatus: "1",
quotaStrategy: "1",
},
isTree: true,
treeConfig: {},
afterClearCallBack: function (that, form, col) {
form.cateCode = "";
form.cateName = "";
},
}对方 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) {
const { toElsAccount = "", supplierName = "" } = data[0] || {};
pageData.toElsAccount = toElsAccount;
pageData.supplierName = supplierName;
}
}js
{
modalColumns: [
{
field: "toElsAccount",
fieldLabelI18nKey: "i18n_title_supplierAccount",
title: "供应商账号",
with: 150,
},
{
field: "supplierName",
fieldLabelI18nKey: "i18n_title_supplierName",
title: "供应商名称",
with: 150,
},
{
field: "supplierCode",
fieldLabelI18nKey: "i18n_title_supplierCode",
title: "供应商编码",
with: 150,
},
],
modalUrl: "/supplier/supplierMaster/list",
modalParams: {},
handleAfter: function ({ pageData }) {
pageData.toElsAccount = "";
pageData.supplierName = "";
pageData.supplierCode = "";
},
}税码 taxCode
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "税码",
"fieldName": "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 && Array.isArray(data)) {
const { taxCode = "", taxRate = "" } = data[0] || {};
pageData.taxCode = taxCode;
pageData.taxRate = taxRate;
}
// 税率 taxRate;
let taxRate = pageData.taxRate || "";
// 含税单价 price;
let price = pageData.price || "";
// 计算未税单价 netPrice
if (taxRate && price) {
if (Decimal) {
let formula = Decimal.add(1, Decimal.div(taxRate, 100));
let netPrice = Decimal.div(price, formula);
// 4位小数
pageData.netPrice = new Decimal(netPrice).toFixed(4);
}
}
}js
{
modalColumns: [
{
field: "taxCode",
title: "税码",
fieldLabelI18nKey: "i18n_field_taxCode",
with: 150,
},
{
field: "taxRate",
title: "税率(%)",
fieldLabelI18nKey: "i18n_field_fIW_1d82c0c",
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: function ({ pageData }) {
pageData.taxCode = "";
pageData.taxRate = "";
},
}:::
含税单价 price
json
{
"groupCode": "baseForm",
"fieldType": "float",
"fieldLabel": "含税单价",
"fieldName": "price",
"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 (!value) {
pageData.netPrice = "0";
}
if (data && Array.isArray(data)) {
const { taxCode = "", taxRate = "" } = data[0] || {};
pageData.taxCode = taxCode;
pageData.taxRate = taxRate;
}
// 税率 taxRate;
let taxRate = pageData.taxRate || "";
// 含税单价 price;
let price = value || "";
// 计算未税单价 netPrice
if (taxRate && price) {
if (Decimal) {
let formula = Decimal.add(1, Decimal.div(taxRate, 100));
let netPrice = Decimal.div(price, formula);
// 4位小数
pageData.netPrice = new Decimal(netPrice).toFixed(4);
}
}
}