Appearance
批量试制
表行编辑规则
js
{
groupName: "行信息",
groupNameI18nKey: "i18n_title_lineInformation",
groupCode: "",
groupType: "item",
sortOrder: "2",
extend: {
vxeGridConfig: {
editConfig: {
trigger: "click",
mode: "cell",
beforeEditMethod(pageData, { row, rowIndex, column, columnIndex }) {
if (column.property == "checkQuantity") {
return true;
}
if (
pageData.value.trialStatus == "2" ||
pageData.value.trialStatus == "3"
) {
if (
(pageData.value.auditStatus == 0 ||
pageData.value.auditStatus == 3 ||
pageData.value.auditStatus == 4) &&
pageData.value.trialPrincipal == "0"
) {
return true;
} else if (pageData.value.trialPrincipal == "1") {
return true;
} else {
return false;
}
}
return false;
},
},
},
},
}单据编号 trialNumber
json
{
"groupCode": "baseForm",
"fieldType": "input",
"fieldLabel": "单据编号",
"fieldName": "trialNumber",
"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,
},
) {
setItemDisabled("baseForm", "***", pageData.trialStatus !== "1");
}试制对象 trialPrincipal
json
{
"groupCode": "baseForm",
"fieldType": "select",
"fieldLabel": "试制对象",
"fieldName": "trialPrincipal",
"dictCode": "trialPrincipal",
"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,
},
) {
// 试制对象 trialPrincipal;
// 数据字典 trialPrincipal (1: 供应商试制, 0: 采购方试制);
// 样品申请单 sampleNumber;
// 物料编码 materialNumber;
// 采购订单 orderNumber;
if (pageData.trialStatus && pageData.trialStatus !== "1") {
return;
}
/**
* @description: 业务规则
* 试制对象 为 供应商试制 时,物料编码 + 采购订单可以编辑,样品申请单 置灰
* 试制对象 为 采购方试制 时,样品申请单 可以编辑,物料编码 + 采购订单置灰
* @return {*}
*/
setItemDisabled("baseForm", "materialNumber", value === "0");
setItemDisabled("baseForm", "orderNumber", value === "0");
setItemDisabled("baseForm", "sampleNumber", value === "1");
if (value === "0") {
pageData.orderItemId = "";
pageData.orderHeadId = "";
pageData.orderNumber = "";
pageData.orderItemNumber = "";
}
if (value === "1") {
pageData.sampleItemId = "";
pageData.sampleHeadId = "";
pageData.sampleItemNumber = "";
pageData.sampleNumber = "";
}
}样品申请单 sampleNumber
json
{
"groupCode": "baseForm",
"fieldType": "selectModal",
"fieldLabel": "样品申请单",
"fieldName": "sampleNumber",
"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 {
id = "",
headId = "",
itemNumber = "",
sampleNumber = "",
toElsAccount = "",
supplierCode = "",
supplierName = "",
purchaseGroup = "",
purchaseOrg = "",
materialNumber = "",
materialName = "",
materialDesc = "",
cateCode = "",
cateName = "",
factory = "",
quantityUnit = "",
materialSpec = "",
materialGroup = "",
materialGroupName = "",
} = data[0] || {};
pageData.sampleItemId = id;
pageData.sampleHeadId = headId;
pageData.sampleItemNumber = itemNumber;
pageData.sampleNumber = sampleNumber;
pageData.toElsAccount = toElsAccount;
pageData.supplierCode = supplierCode;
pageData.supplierName = supplierName;
pageData.purchaseGroup = purchaseGroup;
pageData.purchaseOrg = purchaseOrg;
pageData.materialNumber = materialNumber;
pageData.materialName = materialName;
pageData.materialDesc = materialDesc;
pageData.cateCode = cateCode;
pageData.cateName = cateName;
pageData.factory = factory;
pageData.quantityUnit = quantityUnit;
pageData.materialSpec = materialSpec;
pageData.materialGroup = materialGroup;
pageData.materialGroupName = materialGroupName;
}js
{
modalColumns: [
{
field: "sampleNumber",
title: "样品申请单号",
fieldLabelI18nKey: "i18n_title_sampleApplicationOrderNumber",
with: 150,
},
{
field: "itemNumber",
title: "样品申请行号",
fieldLabelI18nKey: "i18n_title_sampleApplicationLineNumber",
with: 150,
},
{
field: "toElsAccount",
title: "供应商账号",
fieldLabelI18nKey: "i18n_title_supplierAccount",
with: 150,
},
{
field: "materialNumber",
title: "物料编码",
fieldLabelI18nKey: "i18n_field_materialNumber",
with: 150,
},
{
field: "materialDesc",
title: "物料描述",
fieldLabelI18nKey: "i18n_field_materialDesc",
with: 150,
},
{
field: "cateCode",
title: "物料分类编码",
fieldLabelI18nKey: "i18n_field_cateCode",
with: 150,
},
{
field: "cateName",
title: "物料分类名称",
fieldLabelI18nKey: "i18n_field_cateName",
with: 150,
},
{
field: "factory_dictText",
title: "工厂",
fieldLabelI18nKey: "i18n_field_factory",
with: 150,
},
{
field: "itemStatus_dictText",
fieldLabelI18nKey: "i18n_field_itemStatus",
title: "行状态",
with: 100,
},
],
modalUrl: "/sample/purchaseSampleHead/itemEeliveryList",
modalParams: {},
afterClearCallBack(form, pageData) {
pageData.sampleItemNumber = "";
pageData.sampleItemId = "";
pageData.sampleHeadId = "";
pageData.sampleItemNumber = "";
pageData.sampleNumber = "";
pageData.toElsAccount = "";
pageData.supplierCode = "";
pageData.supplierName = "";
pageData.purchaseGroup = "";
pageData.purchaseOrg = "";
pageData.materialNumber = "";
pageData.materialName = "";
pageData.materialDesc = "";
pageData.cateCode = "";
pageData.cateName = "";
pageData.factory = "";
pageData.quantityUnit = "";
},
handleAfter({ pageData, userInfo }) {
pageData.sampleItemNumber = "";
pageData.sampleItemId = "";
pageData.sampleHeadId = "";
pageData.sampleItemNumber = "";
pageData.sampleNumber = "";
pageData.toElsAccount = "";
pageData.supplierCode = "";
pageData.supplierName = "";
pageData.purchaseGroup = "";
pageData.purchaseOrg = "";
pageData.materialNumber = "";
pageData.materialName = "";
pageData.materialDesc = "";
pageData.cateCode = "";
pageData.cateName = "";
pageData.factory = "";
pageData.quantityUnit = "";
},
mobileHandleAfter(Vue, { _pageData, _form, _cacheAllData, _value }) {
_form.sampleItemNumber = "";
_form.sampleItemId = "";
_form.sampleHeadId = "";
_form.sampleItemNumber = "";
_form.sampleNumber = "";
_form.toElsAccount = "";
_form.supplierCode = "";
_form.supplierName = "";
_form.purchaseGroup = "";
_form.purchaseOrg = "";
_form.materialNumber = "";
_form.materialName = "";
_form.materialDesc = "";
_form.cateCode = "";
_form.cateName = "";
_form.factory = "";
_form.quantityUnit = "";
},
}物料编码 materialNumber
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "物料编码",
"fieldName": "materialNumber",
"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 {
materialNumber = "",
materialName = "",
materialDesc = "",
cateCode = "",
cateName = "",
materialSpec = "",
materialGroup = "",
materialGroupName = "",
baseUnit_dictText = "",
} = data[0] || {};
pageData.materialNumber = materialNumber;
pageData.materialName = materialName;
pageData.materialDesc = materialDesc;
pageData.cateCode = cateCode;
pageData.cateName = cateName;
pageData.materialSpec = materialSpec;
pageData.materialGroup = materialGroup;
pageData.materialGroupName = materialGroupName;
pageData.quantityUnit = baseUnit_dictText;
}js
{
modalColumns: [
{
field: "materialNumber",
title: "物料编码",
with: 150,
},
{
field: "materialName",
title: "物料名称",
with: 150,
},
{
field: "materialDesc",
title: "物料描述",
with: 150,
},
{
field: "cateCode",
title: "物料分类编码",
with: 150,
},
{
field: "cateName",
title: "物料分类名称",
with: 150,
},
{
field: "materialSpec",
title: "物料规格",
with: 150,
},
{
field: "materialGroup",
title: "物料组编码",
with: 150,
},
{
field: "materialGroupName",
title: "物料组名称",
with: 150,
},
{
field: "baseUnit_dictText",
title: "基本单位",
with: 150,
},
],
modalUrl: "/material/purchaseMaterialHead/list",
modalParams: {},
afterClearCallBack(form, pageData) {
pageData.materialNumber = "";
pageData.materialName = "";
pageData.materialDesc = "";
pageData.cateCode = "";
pageData.cateName = "";
pageData.materialSpec = "";
pageData.materialGroup = "";
pageData.materialGroupName = "";
pageData.quantityUnit = "";
},
handleAfter({ pageData, userInfo }) {
pageData.materialNumber = "";
pageData.materialName = "";
pageData.materialDesc = "";
pageData.cateCode = "";
pageData.cateName = "";
pageData.materialSpec = "";
pageData.materialGroup = "";
pageData.materialGroupName = "";
pageData.quantityUnit = "";
},
mobileHandleAfter(Vue, { _pageData, _form, _cacheAllData, _value }) {
_form.materialNumber = "";
_form.materialName = "";
_form.materialDesc = "";
_form.cateCode = "";
_form.cateName = "";
_form.materialSpec = "";
_form.materialGroup = "";
_form.materialGroupName = "";
_form.quantityUnit = "";
},
}采购订单 orderNumber
json
{
"groupCode": "baseForm",
"fieldType": "selectModal",
"fieldLabel": "采购订单",
"fieldName": "orderNumber",
"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 {
id = "",
headId = "",
orderNumber = "",
itemNumber = "",
} = data[0] || {};
pageData.orderItemId = id;
pageData.orderHeadId = headId;
pageData.orderNumber = orderNumber;
pageData.orderItemNumber = itemNumber;
}js
{
modalColumns: [
{
field: "orderNumber",
title: "采购订单号",
with: 150,
},
{
field: "itemNumber",
title: "采购订单行号",
with: 150,
},
{
field: "materialNumber",
title: "物料编码",
with: 150,
},
{
field: "materialDesc",
title: "物料描述",
with: 150,
},
{
field: "cateCode",
title: "物料分类编码",
with: 150,
},
{
field: "cateName",
title: "物料分类名称",
with: 150,
},
{
field: "factory",
title: "工厂",
with: 150,
},
{
field: "itemStatus_dictText",
title: "行状态",
with: 100,
},
],
modalUrl: "/order/purchaseOrderItem/list",
selectModal: "single",
modalParams(Vue, form, obj) {
return { materialNumber: form.materialNumber };
},
params({ pageData, userInfo }) {
return { materialNumber: pageData.materialNumber || "" };
},
beforeCheckedCallBack(Vue, pageData, groupData, form) {
return new Promise((resolve, reject) => {
form.materialNumber ? resolve("success") : reject("须先选择物料编码");
});
},
handleBefore({ pageData, userInfo }) {
if (!pageData.materialNumber) {
return Promise.reject("请先选择物料编码");
} else {
return Promise.resolve("success");
}
},
afterClearCallBack(form, pageData) {
pageData.orderItemNumber = "";
},
handleAfter({ pageData, userInfo }) {
pageData.orderItemId = "";
pageData.orderHeadId = "";
pageData.orderNumber = "";
pageData.orderItemNumber = "";
},
mobileModalParams(Vue, { _pageData, _cacheAllData }) {
return { materialNumber: _cacheAllData.materialNumber };
},
mobileHandleBefore(Vue, { _pageData, _form, _row, _cacheAllData, _value }) {
return new Promise((resolve, reject) => {
form.materialNumber ? resolve("success") : reject("须先选择物料编码");
});
},
mobileHandleAfter(Vue, { _pageData, _form, _cacheAllData, _value }) {
_form.orderItemNumber = "";
},
}对方 ELS 账号 toElsAccount
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "对方ELS账号",
"fieldName": "toElsAccount",
"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 {
toElsAccount = "",
supplierCode = "",
supplierName = "",
} = data[0] || {};
pageData.toElsAccount = toElsAccount;
pageData.supplierCode = supplierCode;
pageData.supplierName = supplierName;
}js
{
modalColumns: [
{
field: "toElsAccount",
fieldLabelI18nKey: "i18n_title_supplierAccount",
title: "供应商账号",
with: 150,
},
// {
// field: 'supplierCode',
// fieldLabelI18nKey: 'i18n_title_supplierCode',
// title: '供应商编码',
// with: 150,
// },
{
field: "supplierName",
fieldLabelI18nKey: "i18n_title_supplierName",
title: "供应商名称",
with: 150,
},
],
modalUrl: "/supplier/supplierMaster/list",
modalParams: {
frozenFunctionValue: "0",
},
afterClearCallBack(parentRef, pageData, groupData, form) {
pageData.toElsAccount = "";
pageData.supplierCode = "";
pageData.supplierName = "";
},
mobileHandleAfter(Vue, { _pageData, _form, _cacheAllData, _value }) {
_form.toElsAccount = "";
_form.supplierCode = "";
_form.supplierName = "";
},
handleAfter({ pageData, userInfo }) {
pageData.toElsAccount = "";
pageData.supplierCode = "";
pageData.supplierName = "";
},
}负责人 principal
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "负责人",
"fieldName": "principal",
"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.principal = `${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: {},
}检测数量 checkQuantity 🎉
json
{
"groupCode": "purchaseTrialProductionItemList",
"fieldType": "number",
"title": "检测数量",
"field": "checkQuantity",
"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 (pageData.trialStatus == "1") {
return;
}
if (row.checkQuantity && row.defectiveQuantity) {
let checkQuantity = Number(row.checkQuantity);
let defectiveQuantity = Number(row.defectiveQuantity);
if (checkQuantity < defectiveQuantity) {
row.defectiveQuantity = checkQuantity;
row.qualifiedQuantity = 0;
return;
} else {
row.qualifiedQuantity = checkQuantity - defectiveQuantity;
return;
}
}
if (row.defectiveQuantity == 0 && row.checkQuantity > 0) {
row.qualifiedQuantity = row.checkQuantity;
return;
}
if (!row.defectiveQuantity) {
row.qualifiedQuantity = row.defectiveQuantity;
return;
}
}不良数量 defectiveQuantity 🎉
json
{
"groupCode": "purchaseTrialProductionItemList",
"fieldType": "number",
"title": "不良数量",
"field": "defectiveQuantity",
"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 (pageData.trialStatus == "1") {
return;
}
if (row.checkQuantity && row.defectiveQuantity) {
let checkQuantity = Number(row.checkQuantity);
let defectiveQuantity = Number(row.defectiveQuantity);
if (checkQuantity < defectiveQuantity) {
row.defectiveQuantity = checkQuantity;
row.qualifiedQuantity = 0;
return;
} else {
row.qualifiedQuantity = checkQuantity - defectiveQuantity;
return;
}
}
if (row.defectiveQuantity == 0 && row.checkQuantity > 0) {
row.qualifiedQuantity = row.checkQuantity;
return;
}
if (!row.defectiveQuantity) {
row.qualifiedQuantity = row.defectiveQuantity;
return;
}
}