Appearance
OEM 发料申请
表行编辑规则
js
{
groupName: "发料行",
groupNameI18nKey: "i18n_field_hLc_1477964",
groupCode: "oemRequestItemList",
groupType: "item",
sortOrder: "2",
extend: {
editConfig: {
trigger: "click",
mode: "cell",
showStatus: false,
activeMethod: function (that, row, _rowIndex, column, _columnIndex) {
console.log("that", that);
console.log("column", column);
let documentType = that.pageConfig.groups[0].formModel.documentType;
if (documentType == "1" && column.property == "allowSupplyQuantity") {
return false;
}
if (documentType == "1" && column.property == "shouldedQuantity") {
return false;
}
if (documentType == "1" && column.property == "materialBatch") {
return false;
}
if (documentType == "1" && column.property == "materialSupplier") {
return false;
}
if (documentType != "1" && column.property == "supplyQuantity") {
return false;
}
return true;
},
},
},
}对方 ELS toElsAccount
json
{
"groupCode": "baseForm",
"fieldType": "remoteSelect",
"fieldLabel": "对方ELS",
"fieldName": "toElsAccount",
"required": "1"
}js
/**
* @param {Object} ctx 组件实例
* @param {String} value 当前所选值
* @param {Array} data selectModal, remoteSelect 已选行数据 (如有)
* @param {boolean} _isFill 填充、粘贴操作判断标识
* @param {Object} row 表行数据 (如有)
* @param {number} idx 表行索引值 (如有)
* @param {Object} pageData 页面所有数据
* @param {Object} layoutConfig 模板配置
* @param {Object} userInfo 当前登录人信息
* @param {(groupCode: string, fieldName: string, fn: (item: FormFieldsItem | ColumnItem) => void) => void}
* customFormatItem 遍历模板分组配置,自定义格式化查询到的字段
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemRequired 自定义设置字段必填
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemDisabled 自定义设置字段置灰
* @param {(groupCode: string, fieldName: string, flag: boolean) => void}
* setItemRequiredOrDisabled 自定义设置字段必填/置灰
* @param {() => void} topEmit 用于处理复杂绑定函数需求
* @param {Constructor} Decimal构造函数, 适用于js小数位数精度计算
* https://github.com/MikeMcl/decimal.js
*/
function callback(
ctx,
{
value,
data,
_isFill,
row,
idx,
pageData,
layoutConfig,
userInfo,
customFormatItem,
setItemRequired,
setItemDisabled,
setItemRequiredOrDisabled,
topEmit,
Decimal,
},
) {
if (!data || !data.length) {
return;
}
pageData.toElsAccount = data[0].toElsAccount;
pageData.supplierCode = data[0].supplierCode;
pageData.supplierName = data[0].supplierName;
}js
{
modalColumns: [
{
field: "toElsAccount",
fieldLabelI18nKey: "i18n_title_supplierAccount",
title: "供应商账号",
with: 150,
},
{
field: "supplierName",
fieldLabelI18nKey: "i18n_massProdHead5f0c_supplierName",
title: "供应商名称",
with: 150,
},
{
field: "supplierCode",
fieldLabelI18nKey: "i18n_field_RdXey_8e18ba5e",
title: "供应商编码",
with: 150,
},
{
field: "needCoordination_dictText",
fieldLabelI18nKey: "i18n_field_KQKWMe_29d59dcb",
title: "是否在线协同",
with: 150,
},
],
modalUrl: "/supplier/supplierMaster/list",
modalParams: {
frozenFunctionValue: "0",
},
afterClearCallBack: function (that, form, col) {
form.toElsAccount = "";
form.supplierCode = "";
form.supplierName = "";
},
}单据状态 documentType
json
{
"groupCode": "baseForm",
"fieldType": "select",
"fieldLabel": "单据状态",
"fieldName": "documentType",
"dictCode": "srmPurchaseOemStatus",
"defaultValue": "1",
"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 ("1" !== pageData.documentType) {
setItemDisabled("baseForm", "***", true);
}
}申请原因 reason
json
{
"groupCode": "baseForm",
"fieldType": "select",
"fieldLabel": "申请原因",
"fieldName": "reason",
"dictCode": "srmPurchaseOemReason",
"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,
},
) {
let tableFullData = pageData.oemRequestItemList;
for (let i = 0; i < tableFullData.length; i++) {
let item = tableFullData[i];
//计算应发数量
if (value == "0") {
item.shouldQuantity =
parseFloat(item.bomRequiryQuantity) +
parseFloat(item.allowSupplyQuantity);
} else {
item.shouldQuantity = parseFloat(item.allowSupplyQuantity);
}
//计算待发数量 应发-实送
item.shouldingQuantity =
parseFloat(item.shouldQuantity) - parseFloat(item.shouldedQuantity);
}
}订单号 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;
}
pageData.orderType = data[0].orderType;
pageData.orderNumber = data[0].orderNumber;
pageData.orderStatus = data[0].orderStatus;
pageData.company = data[0].company;
pageData.purchaseOrg = data[0].purchaseOrg;
pageData.purchaseGroup = data[0].purchaseGroup;
}js
{
modalColumns: [
{
field: "orderNumber",
title: "订单号",
with: 150,
},
{
field: "toElsAccount",
title: "供应商ELS",
with: 150,
},
{
field: "supplierName",
title: "供应商名称",
with: 150,
},
{
field: "orderType_dictText",
title: "订单类型",
with: 150,
},
{
field: "orderStatus_dictText",
title: "订单状态",
with: 150,
},
],
modalUrl: "order/purchaseOemRequestHead/orderList",
mobileModalParams(Vue, { _pageData, _cacheAllData }) {
console.log("_cacheAllData", _cacheAllData);
return {
toElsAccount: _cacheAllData.toElsAccount,
creator: "purchase",
};
},
mobileHandleBefore(Vue, { _pageData, _form, _cacheAllData, _value }) {
return new Promise((resolve, reject) => {
let toElsAccount = _form.toElsAccount || "";
if (!toElsAccount) {
reject("请先选择供应商");
} else {
resolve("success");
}
});
},
modalParams: function (_self, form, row) {
return { toElsAccount: form.toElsAccount, creator: "purchase" };
},
params: function ({ pageData, userInfo }) {
return { toElsAccount: pageData.toElsAccount, creator: "purchase" };
},
handleAfter: function ({ pageData, userInfo }) {
pageData.purchaseOemRequestItemList = [];
},
handleBefore: function ({ pageData, userInfo }) {
return new Promise((resolve, rejec) => {
modalParams = {};
let toElsAccount = pageData.toElsAccount || "";
if (!toElsAccount) {
return rejec("请先选择供应商");
}
return resolve("success");
});
},
afterClearCallBack: function (parentRef, pageData, groupData, form) {
parentRef.$parent.$parent.$refs.purchaseOemRequestItemListgrid[0].$refs.purchaseOemRequestItemList.remove();
},
beforeCheckedCallBack: function (parentRef, pageData, groupData, form) {
return new Promise((resolve, rejec) => {
modalParams = {};
let toElsAccount = form.toElsAccount || "";
if (!toElsAccount) {
return rejec("请先选择供应商");
}
return resolve("success");
});
},
}申请补料数量 supplyQuantity 🎉
json
{
"groupCode": "oemRequestItemList",
"fieldType": "input",
"title": "申请补料数量",
"field": "supplyQuantity",
"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 reason = pageData.reason;
row.allowSupplyQuantity = value;
//计算应发数量
//OEM订单发料的:需求量+批准发料
if (reason == "0") {
row.shouldQuantity =
parseFloat(row.bomRequiryQuantity) + parseFloat(row.allowSupplyQuantity);
} else {
row.shouldQuantity = parseFloat(row.allowSupplyQuantity);
}
//计算待发数量
row.shouldingQuantity =
parseFloat(row.shouldQuantity) - parseFloat(row.shouldedQuantity);
}