Appearance
样品申请
申请人 applicant
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "申请人",
"fieldName": "applicant",
"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 { subAccount = "", realname = "" } = data[0] || {};
pageData.applicant = `${subAccount}_${realname}`;
}js
{
modalColumns: [
{
field: "subAccount",
title: "子账号",
fieldLabelI18nKey: "i18n_field_subAccount",
with: 150,
},
{
field: "realname",
title: "姓名",
fieldLabelI18nKey: "i18n_field_realname",
with: 150,
},
],
modalUrl: "/account/elsSubAccount/page",
modalParams: {},
}收货地址 deliveryAddress
json
{
"groupCode": "baseForm",
"fieldType": "selectModal",
"fieldLabel": "收货地址",
"fieldName": "deliveryAddress",
"required": "0"
}js
/**
* @param {Object} ctx 组件实例
* @param {String} value 当前所选值
* @param {Array} data selectModal, remoteSelect 已选行数据 (如有)
* @param {boolean} _isFill 填充、粘贴操作判断标识
* @param {Object} row 表行数据 (如有)
* @param {number} idx 表行索引值 (如有)
* @param {Object} pageData 页面所有数据
* @param {Object} layoutConfig 模板配置
* @param {Object} userInfo 当前登录人信息
* @param {(groupCode: string, fieldName: string, fn: (item: FormFieldsItem | ColumnItem) => void) => void}
* customFormatItem 遍历模板分组配置,自定义格式化查询到的字段
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemRequired 自定义设置字段必填
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemDisabled 自定义设置字段置灰
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemRequiredOrDisabled 自定义设置字段必填/置灰
* @param {() => void} topEmit 用于处理复杂绑定函数需求
* @param {Constructor} Decimal构造函数, 适用于js小数位数精度计算
* https://github.com/MikeMcl/decimal.js
*/
function callback(
ctx,
{
value,
data,
_isFill,
row,
idx,
pageData,
layoutConfig,
userInfo,
customFormatItem,
setItemRequired,
setItemDisabled,
setItemRequiredOrDisabled,
topEmit,
Decimal,
},
) {
if (!data || !data.length) {
return;
}
const { address = "", consignee = "", purchasePhone = "" } = data[0] || {};
pageData.deliveryAddress = address;
pageData.receiveContact = consignee;
pageData.receivePhone = purchasePhone;
}js
{
modalColumns: [
{
field: "organizationType_dictText",
title: "组织类型",
fieldLabelI18nKey: "i18n_field_organizationType",
width: 150,
},
{
field: "organizationName",
title: "组织名称",
fieldLabelI18nKey: "i18n_field_orgName",
width: 150,
},
{
field: "address",
title: "收货地址",
fieldLabelI18nKey: "i18n_title_address",
width: 350,
},
{
field: "consignee",
title: "收货人",
fieldLabelI18nKey: "i18n_field_consignee",
width: 200,
},
{
field: "purchasePhone",
title: "收货人电话",
fieldLabelI18nKey: "i18n_field_receivedPhone",
width: 200,
},
{
field: "consigneeEmail",
title: "收货人邮箱",
fieldLabelI18nKey: "i18n_field_consigneeEmail",
width: 200,
},
{
field: "phone",
title: "收货人座机",
fieldLabelI18nKey: "i18n_title_consigneePlan",
width: 200,
},
],
modalUrl: "/delivery/deliveryOrderAddress/list",
selectModal: "single",
params({ pageData }) {
return { elsAccount: pageData.busAccount };
},
afterClearCallBack(form, pageData) {
form.deliveryAddress = "";
form.receiveContact = "";
form.receivePhone = "";
},
mobileModalParams(Vue, { _pageData, _cacheAllData }) {
return { elsAccount: _cacheAllData.busAccount };
},
mobileHandleAfter(Vue, { _pageData, _form, _cacheAllData, _value }) {
_form.deliveryAddress = "";
_form.receiveContact = "";
_form.receivePhone = "";
},
}发布人 publishUser
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "发布人",
"fieldName": "publishUser",
"required": "0"
}js
/**
* @param {Object} ctx 组件实例
* @param {String} value 当前所选值
* @param {Array} data selectModal, remoteSelect 已选行数据 (如有)
* @param {boolean} _isFill 填充、粘贴操作判断标识
* @param {Object} row 表行数据 (如有)
* @param {number} idx 表行索引值 (如有)
* @param {Object} pageData 页面所有数据
* @param {Object} layoutConfig 模板配置
* @param {Object} userInfo 当前登录人信息
* @param {(groupCode: string, fieldName: string, fn: (item: FormFieldsItem | ColumnItem) => void) => void}
* customFormatItem 遍历模板分组配置,自定义格式化查询到的字段
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemRequired 自定义设置字段必填
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemDisabled 自定义设置字段置灰
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemRequiredOrDisabled 自定义设置字段必填/置灰
* @param {() => void} topEmit 用于处理复杂绑定函数需求
* @param {Constructor} Decimal构造函数, 适用于js小数位数精度计算
* https://github.com/MikeMcl/decimal.js
*/
function callback(
ctx,
{
value,
data,
_isFill,
row,
idx,
pageData,
layoutConfig,
userInfo,
customFormatItem,
setItemRequired,
setItemDisabled,
setItemRequiredOrDisabled,
topEmit,
Decimal,
},
) {
if (!data || !data.length) {
return;
}
const { subAccount = "", realname = "" } = data[0] || {};
pageData.publishUser = `${subAccount}_${realname}`;
}js
{
modalColumns: [
{
field: "subAccount",
title: "子账号",
fieldLabelI18nKey: "i18n_field_subAccount",
with: 150,
},
{
field: "realname",
title: "姓名",
fieldLabelI18nKey: "i18n_field_realname",
with: 150,
},
],
modalUrl: "/account/elsSubAccount/page",
modalParams: {},
}需求数量 repertoryQuantity 🎉
json
{
"groupCode": "purchaseSampleItemList",
"fieldType": "number",
"title": "需求数量",
"field": "repertoryQuantity",
"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,
},
) {
// 含税单价 price
let price = row.price || "";
// 未税单价 netPrice
// 需求数量 repertoryQuantity
let repertoryQuantity = row.repertoryQuantity || "";
// 含税金额 taxAmount
// 未税金额 netAmount
// 税率 taxRate
let taxRate = row.taxRate || "";
if (price && repertoryQuantity) {
if (Decimal) {
let taxAmount = Decimal.mul(price, repertoryQuantity);
row.taxAmount = new Decimal(taxAmount).toFixed(4);
if (taxRate) {
let formula = Decimal.add(1, Decimal.div(taxRate, 100));
let netPrice = Decimal.div(price, formula);
let netAmount = Decimal.mul(netPrice, repertoryQuantity);
row.netPrice = new Decimal(netPrice).toFixed(4);
row.netAmount = new Decimal(netAmount).toFixed(4);
}
}
}
}含税单价 price 🎉
json
{
"groupCode": "purchaseSampleItemList",
"fieldType": "number",
"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,
},
) {
// 含税单价 price
let price = row.price || "";
// 未税单价 netPrice
// 需求数量 repertoryQuantity
let repertoryQuantity = row.repertoryQuantity || "";
// 含税金额 taxAmount
// 未税金额 netAmount
// 税率 taxRate
let taxRate = row.taxRate || "";
if (price && repertoryQuantity) {
if (Decimal) {
let taxAmount = Decimal.mul(price, repertoryQuantity);
row.taxAmount = new Decimal(taxAmount).toFixed(4);
if (taxRate) {
let formula = Decimal.add(1, Decimal.div(taxRate, 100));
let netPrice = Decimal.div(price, formula);
let netAmount = Decimal.mul(netPrice, repertoryQuantity);
row.netPrice = new Decimal(netPrice).toFixed(4);
row.netAmount = new Decimal(netAmount).toFixed(4);
}
}
}
}税码 taxCode 🎉
json
{
"groupCode": "purchaseSampleItemList",
"fieldType": "remoteSelect",
"title": "税码",
"field": "taxCode",
"required": "0"
}js
/**
* @param {Object} ctx 组件实例
* @param {String} value 当前所选值
* @param {Array} data selectModal, remoteSelect 已选行数据 (如有)
* @param {boolean} _isFill 填充、粘贴操作判断标识
* @param {Object} row 表行数据 (如有)
* @param {number} idx 表行索引值 (如有)
* @param {Object} pageData 页面所有数据
* @param {Object} layoutConfig 模板配置
* @param {Object} userInfo 当前登录人信息
* @param {(groupCode: string, fieldName: string, fn: (item: FormFieldsItem | ColumnItem) => void) => void}
* customFormatItem 遍历模板分组配置,自定义格式化查询到的字段
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemRequired 自定义设置字段必填
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemDisabled 自定义设置字段置灰
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemRequiredOrDisabled 自定义设置字段必填/置灰
* @param {() => void} topEmit 用于处理复杂绑定函数需求
* @param {Constructor} Decimal构造函数, 适用于js小数位数精度计算
* https://github.com/MikeMcl/decimal.js
*/
function callback(
ctx,
{
value,
data,
_isFill,
row,
idx,
pageData,
layoutConfig,
userInfo,
customFormatItem,
setItemRequired,
setItemDisabled,
setItemRequiredOrDisabled,
topEmit,
Decimal,
},
) {
if (!data || !data.length) {
return;
}
const { taxCode = "", taxRate = "" } = data[0] || {};
row.taxCode = taxCode;
row.taxRate = taxRate;
// 含税单价 price
let price = row.price || "";
// 未税单价 netPrice
// 需求数量 repertoryQuantity
let repertoryQuantity = row.repertoryQuantity || "";
// 含税金额 taxAmount
// 未税金额 netAmount
// 税率 taxRate
if (price && repertoryQuantity) {
if (Decimal) {
let taxAmount = Decimal.mul(price, repertoryQuantity);
row.taxAmount = new Decimal(taxAmount).toFixed(4);
if (taxRate) {
let formula = Decimal.add(1, Decimal.div(taxRate, 100));
let netPrice = Decimal.div(price, formula);
let netAmount = Decimal.mul(netPrice, repertoryQuantity);
row.netPrice = new Decimal(netPrice).toFixed(4);
row.netAmount = new Decimal(netAmount).toFixed(4);
}
}
}
}js
{
modalColumns: [
{
field: "taxCode",
title: "税码",
with: 150,
},
{
field: "taxRate",
title: "税率(%)",
with: 150,
},
{
field: "taxName",
title: "税码名称",
with: 150,
},
{
field: "remark",
title: "备注",
with: 150,
},
],
modalUrl: "/base/tax/queryTaxForTemplate",
modalParams: function (Vue, form, row) {
return {
purchaseAccount: row.toElsAccount,
};
},
afterRowClearCallBack: function (Vue, row) {
row.taxCode = "";
row.taxRate = "";
},
}