/* eslint-disable */
import React, { Component } from "react";
import { Modal, Progress } from "antd-v4";
import { message } from "@/utils/common/message";
// import moment from 'moment';
import * as commonUtils from "@/utils/utils"; /* 通用方法 */
import * as commonBusiness from "@/components/Common/commonBusiness"; /* 单据业务功能 */
import * as commonServices from "@/services/services"; /* 服务类 */
import commonConfig from "@/utils/config";
import * as commonFunc from "@/components/Common/commonFunc";
import styles from "@/components/Common/ToolBar/index.less";
const { confirm } = Modal;
export default ChildComponent => {
return class extends Component {
constructor(props) {
super(props);
this.state = {
initSId: "",
};
// this.state = {
// masterConfig: {}, /* 主表配置 */
// slaveConfig: {}, /* 从表配置 */
// slaveColumn: [], /* 显示的从表表头 */
// checkConfig: {}, /* 审核配置 */
// checkColumn: [], /* 显示的审核表表头 */
//
// billnosetting: {}, /* 是否自动审核 */
// report: [], /* 打印模板 */
// masterData: {}, /* 主表数据 */
// slaveData: [], /* 从表数据 */
// dataTotal: {}, /* 合计字段 */
// checkData: [], /* 审核表数据 */
// masterFlag: false, /* 是否获取主表数据 */
// slaveFlag: false, /* 是否获取从表数据 */
// checkFlag: false, /* 是否获取审核表数据 */
// sId: '', /* 数据Id */
// enabled: false, /* 页面是否可编辑 */
// slaveSelectedRowKeys: [], /* 已选择的数据行(数据格式:数组) */
// slaveDelData: [], /* 已删除的数据集合,保存的时候会与从表一并传给服务器(数据格式:数组) */
// expand: false, /* 默认主表只显示2行 */
// imgSrc: '', /* Avatar组件中的img中src的资源路径 */
// currentIndexFlag: false, /* 默认不显示当前的数据在主表页的位置序号 */
// };
this.form = {}; /* 表单对象 */
this.copyName = "";
const { sModelsId, sModelsType = "" } = props;
if (sModelsType.includes("cashier/")) {
commonUtils.setStoreDropDownData(sModelsId, "master", "sCustomerId", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sCustomerNo", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sCustomerName", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sSupplyId", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sSupplyNo", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sSupplyName", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sFamilyId", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sFamilyNo", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sFamilyName", []);
}
commonUtils.setStoreDropDownData(sModelsId, "slave", "sSrcNo", []);
}
async componentWillReceiveProps(nextProps) {
const { formData, currentId } = nextProps;
const { masterConfig: masterConfigOld, app } = nextProps;
if (commonUtils.isEmptyObject(masterConfigOld) && formData.length > 0) {
const sId = currentId || nextProps.masterData?.sId || "";
const masterConfig = formData.filter(item => !item.bGrd)[0];
const sReasonTitle = commonUtils.isNotEmptyObject(commonFunc.showMessage(app.commonConst, "sReason"))
? commonFunc.showMessage(app.commonConst, "sReason")
: "报错原因"; /* 导入报错原因 */
/* 导入错误配置 */
let importConfig = {};
let importFilterData = formData.filter(item => item.bReportData && item.sGrd === "importTemplate");
if (commonUtils.isNotEmptyArr(importFilterData)) {
importConfig = formData.filter(item => item.bReportData && item.sGrd === "importTemplate")[0];
const iIndex = importConfig.gdsconfigformslave.findIndex(item => item.sName === "sReason");
if (iIndex === -1) {
importConfig.gdsconfigformslave.push({
bCanInput: false,
bEntireLine: false,
bFilter: false,
bFind: false,
bFirstEmpty: false,
bIsOther: false,
bMultipleChoice: false,
bNewRecord: false,
bNotEmpty: false,
bNotRepeat: false,
bReadonly: false,
bSum: false,
bTree: false,
bVisible: true,
iColValue: 1,
iFitWidth: 200,
/* iIncrement: 26154, */
iOrder: 1,
iTag: 0,
iVisCount: 0,
iconName: "menu-unfold",
sActiveKey: "",
sAssignField: "",
sBig5: "",
sBig5DropDown: "",
sBrandsId: "1111111111",
sChinese: "报错原因",
sChineseDropDown: "",
sColor: "",
sColorTerms: "",
sControlName: "",
sDateFormat: "",
sDefault: "",
sDropDownType: "",
sEnglish: "",
sEnglishDropDown: "",
sFilterSql: "",
/* sId: '19211681019715580740769130', */
sKeyUpFilter: "",
sMaxValue: "",
sMinValue: "",
sName: "sReason",
sNotRepeatColumn: "",
/* sParentId: '19211681019715428730724240', */
sRelation: "",
sSelectRelation: "",
sSqlCondition: "",
sSubsidiaryId: "1111111111",
showDropDown: "",
showName: sReasonTitle,
});
}
}
let importColumn = [];
if (commonUtils.isNotEmptyObject(importConfig)) {
importColumn = commonFunc.getHeaderConfig(importConfig);
}
const config = {};
let addState = {};
let addOtherState = {};
let onlySlave = false;
let onlySlave0 = false;
let onlySlave1 = false;
let onlyslave2 = false;
let onlyslave3 = false;
let onlyslave4 = false;
let slaveColumn = [];
let slave0Column = [];
let slave1Column = [];
let slave2Column = [];
let slave3Column = [];
let slave4Column = [];
const slaveConfig = formData.length > 1 ? formData[1] : {};
if (!commonUtils.isEmptyObject(slaveConfig) && slaveConfig.bGrdVisible && slaveConfig.sGrd !== "importTemplate") {
config.slaveConfig = slaveConfig;
slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
onlySlave = true;
const slavePageSize =
commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyNumber(slaveConfig.iPageSize) && slaveConfig.iPageSize !== 0
? slaveConfig.iPageSize
: commonConfig.pageSize;
addOtherState.slavePageSize = slavePageSize;
}
const slave0Config = formData.length > 2 ? formData[2] : {};
if (!commonUtils.isEmptyObject(slave0Config) && slave0Config.bGrdVisible && slave0Config.sGrd !== "importTemplate") {
config.slave0Config = slave0Config;
slave0Column = commonFunc.getHeaderConfig(slave0Config);
onlySlave0 = true;
const slave0PageSize =
commonUtils.isNotEmptyObject(slave0Config) && commonUtils.isNotEmptyNumber(slave0Config.iPageSize) && slave0Config.iPageSize !== 0
? slave0Config.iPageSize
: commonConfig.pageSize;
addOtherState.slave0PageSize = slave0PageSize;
}
const slave1Config = formData.length > 3 ? formData[3] : {};
if (!commonUtils.isEmptyObject(slave1Config) && slave1Config.bGrdVisible && slave1Config.sGrd !== "importTemplate") {
config.slave1Config = slave1Config;
slave1Column = commonFunc.getHeaderConfig(slave1Config);
onlySlave1 = true;
const slave1PageSize =
commonUtils.isNotEmptyObject(slave1Config) && commonUtils.isNotEmptyNumber(slave1Config.iPageSize) && slave1Config.iPageSize !== 0
? slave1Config.iPageSize
: commonConfig.pageSize;
addOtherState.slave1PageSize = slave1PageSize;
}
const slave2Config = formData.length > 4 ? formData[4] : {};
if (!commonUtils.isEmptyObject(slave2Config) && slave2Config.bGrdVisible && slave2Config.sGrd !== "importTemplate") {
config.slave2Config = slave2Config;
slave2Column = commonFunc.getHeaderConfig(slave2Config);
onlyslave2 = true;
const slave2PageSize =
commonUtils.isNotEmptyObject(slave2Config) && commonUtils.isNotEmptyNumber(slave2Config.iPageSize) && slave2Config.iPageSize !== 0
? slave2Config.iPageSize
: commonConfig.pageSize;
addOtherState.slave2PageSize = slave2PageSize;
}
const slave3Config = formData.length > 5 ? formData[5] : {};
if (!commonUtils.isEmptyObject(slave3Config) && slave3Config.bGrdVisible && slave3Config.sGrd !== "importTemplate") {
config.slave3Config = slave3Config;
slave3Column = commonFunc.getHeaderConfig(slave3Config);
onlyslave3 = true;
const slave3PageSize =
commonUtils.isNotEmptyObject(slave3Config) && commonUtils.isNotEmptyNumber(slave3Config.iPageSize) && slave3Config.iPageSize !== 0
? slave3Config.iPageSize
: commonConfig.pageSize;
addOtherState.slave3PageSize = slave3PageSize;
}
const slave4Config = formData.length > 6 ? formData[6] : {};
if (!commonUtils.isEmptyObject(slave4Config) && slave4Config.bGrdVisible && slave4Config.sGrd !== "importTemplate") {
config.slave4Config = slave4Config;
slave4Column = commonFunc.getHeaderConfig(slave4Config);
onlyslave4 = true;
const slave4PageSize =
commonUtils.isNotEmptyObject(slave4Config) && commonUtils.isNotEmptyNumber(slave4Config.iPageSize) && slave4Config.iPageSize !== 0
? slave4Config.iPageSize
: commonConfig.pageSize;
addOtherState.slave4PageSize = slave4PageSize;
}
let slaveInfoList = ["slave"]; /* 父表格名配置集合 */
let slaveChildInfoList = []; /* 子表格名配置集合 */
const addStateConfig = {}; /* 所有表格配置集合 */
addStateConfig["slaveConfig"] = slaveConfig;
let addStateMap = {}; /* 所有表格配置集合 */
if (formData.length > 7) {
formData.forEach((item, index) => {
if (index > 6 && item.sGrd !== "importTemplate" && !item.sGrd?.includes("_")) {
const num = index - 2;
addOtherState[`slave${num}Config`] = item;
config[`slave${num}Config`] = item;
addOtherState[`slave${num}Column`] = commonFunc.getHeaderConfig(item);
addOtherState[`onlyslave${num}`] = true;
const pageSize =
commonUtils.isNotEmptyObject(item) && commonUtils.isNotEmptyNumber(item.iPageSize) && item.iPageSize !== 0
? item.iPageSize
: commonConfig.pageSize;
addOtherState[`slave${num}PageSize`] = pageSize;
}
});
}
/* commonNewBill 可以一带N表 */
const tableConfigArr = formData.filter(item => item.bGrd && item.bGrdVisible && item.sGrd !== "importTemplate" && !item.sGrd?.includes("_"));
const slaveOtherConfigArr = [];
if (commonUtils.isNotEmptyArr(tableConfigArr)) {
tableConfigArr.forEach((item, iIndex) => {
if (iIndex > 5) {
const iSlaveTag = iIndex - 1;
item.slaveNameTag = iSlaveTag;
slaveOtherConfigArr.push(item);
const slaveOtherConfigName = "slave" + iSlaveTag + "Config";
let slaveOtherColumnName = "slave" + iSlaveTag + "Column";
const onlyslaveTag = "onlyslave" + iSlaveTag;
const slavePageSizeTag = "slave" + iSlaveTag + "PageSize";
const slaveOtherColumn = commonFunc.getHeaderConfig(item);
addOtherState[slaveOtherConfigName] = item;
addOtherState[slaveOtherColumnName] = slaveOtherColumn;
addOtherState[onlyslaveTag] = true;
const slavePageSize =
commonUtils.isNotEmptyObject(item) && commonUtils.isNotEmptyNumber(item.iPageSize) && item.iPageSize !== 0
? item.iPageSize
: commonConfig.pageSize;
addOtherState[slavePageSizeTag] = slavePageSize;
}
/* 封装父级表格 */
let num = 0;
if (iIndex > 0) {
num = iIndex - 1;
slaveInfoList.push(`slave${num}`);
addStateConfig[`slave${num}Config`] = item;
}
/* 找到父级页签下面的子级页签数据集 */
const childFormData = formData.filter(
child => !child.bGrdVisible && child.sGrd && item.sChildTableName && item.sChildTableName.includes(child.sGrd) && child.sGrd !== "slave"
);
if (commonUtils.isNotEmptyArr(childFormData)) {
childFormData.forEach((child, tag) => {
addOtherState[`slave${num}Child${tag}Config`] = child;
addStateConfig[`slave${num}Child${tag}Config`] = child;
addOtherState[`slave${num}Child${tag}Column`] = commonFunc.getHeaderConfig(child);
const sChildName = child.showName;
slaveChildInfoList.push(`slave${num}Child${tag}-${sChildName}`);
});
}
});
addStateMap = addStateConfig;
addOtherState.slaveOtherConfigArr = slaveOtherConfigArr;
}
config.masterConfig = masterConfig;
if (sId === "") {
let copyTo = nextProps.app.currentPane.copyTo;
if (nextProps.formRoute === '/indexMobile/commobilePadBill') {
copyTo = nextProps.copyTo;
}
addState = await this.handleAdd(config, copyTo, true);
// 如果配置了bEmptyAddLine, 默认不添加空数据
formData.forEach((item, index) => {
if (index > 0) {
const tempConfig = formData[index];
const i = index === 1 ? "" : index - 2;
if (commonUtils.isNotEmptyObject(tempConfig) && tempConfig.bGrdVisible) {
const bEmptyAddLine = tempConfig.gdsconfigformslave.find(item => item.sControlName === "bEmptyAddLine");
if (commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible) {
if (this.initHandleAddNoValue.includes(i)) {
addState[`slave${i}Data`] = [];
}
}
}
}
});
} else {
this.handleGetData(
masterConfig,
slaveConfig,
slave0Config,
slave1Config,
slave2Config,
slave3Config,
slave4Config,
null,
commonUtils.isNotEmptyObject(addOtherState) ? addOtherState.slave5Config : null,
commonUtils.isNotEmptyObject(addOtherState) ? addOtherState.slave6Config : null,
commonUtils.isNotEmptyObject(addOtherState) ? addOtherState.slave7Config : null,
commonUtils.isNotEmptyObject(addOtherState) ? addOtherState.slave8Config : null,
commonUtils.isNotEmptyObject(addOtherState) ? addOtherState.slave9Config : null,
commonUtils.isNotEmptyObject(addOtherState) ? addOtherState.slave10Config : null
);
}
this.props.onSaveState({
masterConfig,
sId,
pageLoading: false,
...addState,
slaveConfig,
slaveColumn,
slave0Config,
slave0Column,
slave1Config,
slave1Column,
slave2Config,
slave2Column,
slave3Config,
slave3Column,
slave4Config,
slave4Column,
onlySlave,
onlySlave0,
onlySlave1,
onlyslave2,
onlyslave3,
onlyslave4,
importConfig,
importColumn,
addStateMap,
slaveInfoList,
slaveChildInfoList,
...addOtherState,
});
}
}
shouldComponentUpdate(nextProps) {
const { slaveColumn, masterConfig } = nextProps;
return commonUtils.isNotEmptyArr(slaveColumn) || commonUtils.isNotEmptyObject(masterConfig);
}
/** 获取应收账款 */
getCustomerReceipt = async masterData => {
const { sModelsId } = this.props;
if (!commonUtils.isEmpty(masterData.sCustomerId)) {
const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
const value = { sProName: "Sp_Receivables_AR", paramsMap: { sStatistics: masterData.sCustomerId } };
const dataReturn = (await commonServices.postValueService(this.props.app.token, value, url)).data;
if (dataReturn.code === 1) {
/* 数据查询成功 */
const [returnData] = dataReturn.dataset.rows[0].dataSet.outData;
const masterDataNew = {
...masterData,
dNoReceiptMoney: returnData.dNoReceiptMoney,
dDueReceiptMoney: returnData.dNoReceiptMoney,
};
this.props.onSaveState({ masterData: masterDataNew });
} else {
/* 失败 */
this.props.getServiceError(dataReturn);
}
}
};
/** 获取上查下查数据 */
getSearchUpDownData = async showConfig => {
const { sModelsId } = this.props;
const url = `${commonConfig.server_host}searchupdown/getSearchUpDown/${showConfig.sId}?sModelsId=${sModelsId}`;
const conditonValues = this.props.getSqlCondition(showConfig);
if (commonUtils.isNotEmptyObject(conditonValues)) {
const iIndex = Object.keys(conditonValues).findIndex(item => commonUtils.isEmpty(conditonValues[item]));
if (iIndex === -1) {
/* 调用后台接口 */
const body = {
sSqlCondition: commonUtils.isEmptyObject(conditonValues) ? "" : conditonValues /* 查询条件 */,
};
const dataReturn = (await commonServices.postValueService(this.props.app.token, body, url)).data;
if (dataReturn.code === 1) {
/* 数据查询成功 */
return dataReturn.dataset.rows;
} else {
/* 失败 */
this.props.getServiceError(dataReturn);
return [];
}
}
}
};
sortData = (tableData, processData) => {
processData.sort((g1, g2) => {
const iIndex1 =
tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId);
let sPartOrder1 = `0000${iIndex1}`;
sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3);
let sOrder1 = `000${g1.iOrder}`;
sOrder1 = sOrder1.substring(sOrder1.length - 3);
const iIndex2 =
tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId);
let sPartOrder2 = `0000${iIndex2}`;
sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3);
let sOrder2 = `000${g2.iOrder}`;
sOrder2 = sOrder2.substring(sOrder2.length - 3);
return parseInt(sPartOrder1 + g1.sType + sOrder1, 10) - parseInt(sPartOrder2 + g2.sType + sOrder2, 10);
});
return processData;
};
/** 获取主表、从表、审核表数据 */
handleGetData = async (
masterConfig,
slaveConfig,
slave0Config,
slave1Config,
slave2Config,
slave3Config,
slave4Config,
bEditClick,
slave5Config,
slave6Config,
slave7Config,
slave8Config,
slave9Config,
slave10Config
) => {
const { currentId, app } = this.props; /* 当前页签数据 */
const { sModelsId, masterData, sModelsType, slaveSelectedRowKeys } = this.props;
const sId = currentId || masterData.sId || "";
await this.props.handleGetDataOne({ name: "master", configData: masterConfig, condition: { sId, pageSize: "", pageNum: "" }, bEditClick });
let addStateSlave = {};
if (!commonUtils.isEmptyObject(slaveConfig)) {
addStateSlave = await this.props.handleGetDataSet({
name: "slave",
configData: slaveConfig,
condition: { sSqlCondition: { sParentId: sId } },
isWait: true,
});
// if (sModelsType === 'cost/cosInsert' && commonUtils.isNotEmptyObject(addStateSlave) && commonUtils.isNotEmptyArr(addStateSlave.slaveData)) {
// let slaveDelData = [];
// addStateSlave.slaveData.forEach((item) => {
// item.handleType = 'del';
// slaveDelData.push(item);
// });
// addStateSlave.slaveData = []
// let sDepartNameDropDown;
// const allTableData = {};
// const masterIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sDepartName');
// if (masterIndex > -1) {
// const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[masterIndex]);
// sDepartNameDropDown = sqlDropDownData.dropDownData;
// sDepartNameDropDown.forEach((item) => {
// const tableDataRowAdd = commonFunc.getDefaultData(slaveConfig, allTableData);
// tableDataRowAdd.handleType = 'add';
// tableDataRowAdd.sId = commonUtils.createSid();
// tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
// tableDataRowAdd.key = tableDataRowAdd.sId;
// tableDataRowAdd.bDefault = false;
// tableDataRowAdd.iOrder = 0;
// tableDataRowAdd.sDepartName = item.sName;
// addStateSlave.slaveData.push(tableDataRowAdd);
// });
// }
if (app) {
const { currentPane } = app;
if (currentPane && addStateSlave) {
const temp = addStateSlave.slaveData.find(item => item.sName === app.currentPane.sName);
if (temp && bEditClick !== "update") {
addStateSlave.slaveSelectedRowKeys = [temp.sId];
this.setState({
initSId: temp.sId,
});
} else if (temp && bEditClick === "update") {
/* 修改后 选中行不要消失 */
if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
addStateSlave.slaveSelectedRowKeys = slaveSelectedRowKeys;
}
}
}
}
}
let addStateSlave1 = {};
if (!commonUtils.isEmptyObject(slave1Config)) {
addStateSlave1 = await this.props.handleGetDataSet({
name: "slave1",
configData: slave1Config,
condition: { sSqlCondition: { sParentId: sId } },
isWait: true,
});
}
let addStateSlave0 = {};
if (!commonUtils.isEmptyObject(slave0Config)) {
addStateSlave0 = await this.props.handleGetDataSet({
name: "slave0",
configData: slave0Config,
condition: { sSqlCondition: { sParentId: sId } },
isWait: true,
});
/* 如果配置了控件Form 切数据为0 则初始化一条空数据 */
const ableConfigs0 = commonUtils.isNotEmptyObject(slave0Config)
? slave0Config.gdsconfigformslave.filter(item => item.sName !== "" && item.bControl && item.sControlName.indexOf("Btn") === -1)
: [];
let slave0NewData = [];
if (
commonUtils.isNotEmptyArr(ableConfigs0) &&
commonUtils.isNotEmptyObject(addStateSlave0) &&
commonUtils.isEmptyArr(addStateSlave0.slave0Data)
) {
const allTableData = {};
allTableData.masterData = masterData;
const newSid = commonUtils.createSid();
const tableDataRowAdd = commonFunc.getDefaultData(slave0Config, allTableData, { newSid });
tableDataRowAdd.handleType = "add";
tableDataRowAdd.sId = newSid;
tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
tableDataRowAdd.key = tableDataRowAdd.sId;
tableDataRowAdd.bDefault = false;
tableDataRowAdd.iOrder = 1;
slave0NewData.push(tableDataRowAdd);
addStateSlave0.slave0Data = slave0NewData;
}
// if (sModelsType === 'cost/cosInsert' && commonUtils.isNotEmptyObject(addStateSlave0) && commonUtils.isNotEmptyArr(addStateSlave0.slave0Data)) {
// let slave0DelData = []
// addStateSlave0.slave0Data.forEach((item) => {
// item.handleType = 'del';
// slave0DelData.push(item);
// });
// addStateSlave0.slave0Data = [];
//
// let sWorkCenterNameDropDown;
// const allTableData = {};
// const master1Index = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sWorkCenterName');
// if (master1Index > -1) {
// const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[master1Index]);
// sWorkCenterNameDropDown = sqlDropDownData.dropDownData;
// console.log(sWorkCenterNameDropDown);
// sWorkCenterNameDropDown.forEach((item) => {
// const tableDataRowAdd = commonFunc.getDefaultData(slaveConfig, allTableData);
// tableDataRowAdd.handleType = 'add';
// tableDataRowAdd.sId = commonUtils.createSid();
// tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
// tableDataRowAdd.key = tableDataRowAdd.sId;
// tableDataRowAdd.bDefault = false;
// tableDataRowAdd.iOrder = 1;
// tableDataRowAdd.sDepartName = item.sName;
// item.sDepartName = item.sName;
// addStateSlave0.slave0Data.push(item);
// })
// }
// }
}
let addStateSlave2 = {};
if (!commonUtils.isEmptyObject(slave2Config)) {
addStateSlave2 = await this.props.handleGetDataSet({
name: "slave2",
configData: slave2Config,
condition: { sSqlCondition: { sParentId: sId } },
});
}
let addStateSlave3 = {};
if (!commonUtils.isEmptyObject(slave3Config)) {
addStateSlave3 = await this.props.handleGetDataSet({
name: "slave3",
configData: slave3Config,
condition: { sSqlCondition: { sParentId: sId } },
});
}
let addStateSlave4 = {};
if (!commonUtils.isEmptyObject(slave4Config)) {
addStateSlave4 = await this.props.handleGetDataSet({
name: "slave4",
configData: slave4Config,
condition: { sSqlCondition: { sParentId: sId } },
});
}
let addStateSlave5 = {};
if (!commonUtils.isEmptyObject(slave5Config)) {
addStateSlave5 = await this.props.handleGetDataSet({
name: "slave5",
configData: slave5Config,
condition: { sSqlCondition: { sParentId: sId } },
isWait: true,
});
}
let addStateSlave6 = {};
if (!commonUtils.isEmptyObject(slave6Config)) {
addStateSlave6 = await this.props.handleGetDataSet({
name: "slave6",
configData: slave6Config,
condition: { sSqlCondition: { sParentId: sId } },
isWait: true,
});
}
let addStateSlave7 = {};
if (!commonUtils.isEmptyObject(slave7Config)) {
addStateSlave7 = await this.props.handleGetDataSet({
name: "slave7",
configData: slave7Config,
condition: { sSqlCondition: { sParentId: sId } },
isWait: true,
});
}
let addStateSlave8 = {};
if (!commonUtils.isEmptyObject(slave8Config)) {
addStateSlave8 = await this.props.handleGetDataSet({
name: "slave8",
configData: slave8Config,
condition: { sSqlCondition: { sParentId: sId } },
isWait: true,
});
}
let addStateSlave9 = {};
if (!commonUtils.isEmptyObject(slave9Config)) {
addStateSlave9 = await this.props.handleGetDataSet({
name: "slave9",
configData: slave9Config,
condition: { sSqlCondition: { sParentId: sId } },
isWait: true,
});
}
let addStateSlave10 = {};
if (!commonUtils.isEmptyObject(slave10Config)) {
addStateSlave10 = await this.props.handleGetDataSet({
name: "slave10",
configData: slave10Config,
condition: { sSqlCondition: { sParentId: sId } },
isWait: true,
});
}
this.props.onSaveState({
pageLoading: false,
...addStateSlave,
...addStateSlave0,
...addStateSlave1,
...addStateSlave2,
...addStateSlave3,
...addStateSlave4,
...addStateSlave5,
...addStateSlave6,
...addStateSlave7,
...addStateSlave8,
...addStateSlave9,
...addStateSlave10,
});
};
/* 获取表数据 */
handleGetMemoData = async (slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config) => {
const { currentId } = this.props; /* 当前页签数据 */
const sId = currentId || this.props.masterData?.sId || ""; /* 数据Id */
const addStateSlave = slaveConfig
? await this.props.handleGetDataSet({
name: "slave",
configData: slaveConfig,
condition: { sSqlCondition: { sParentId: sId } },
isWait: true,
})
: "";
const addStateSlave0 = slave0Config
? await this.props.handleGetDataSet({
name: "slave0",
configData: slave0Config,
condition: { sSqlCondition: { sParentId: sId } },
})
: "";
const addStateSlave1 = slave1Config
? await this.props.handleGetDataSet({
name: "slave1",
configData: slave1Config,
condition: { sSqlCondition: { sParentId: sId } },
isWait: true,
})
: "";
const addStateslave2 = slave2Config
? await this.props.handleGetDataSet({
name: "slave2",
configData: slave2Config,
condition: { sSqlCondition: { sParentId: sId } },
isWait: true,
})
: "";
const addStateslave3 = slave3Config
? await this.props.handleGetDataSet({
name: "slave3",
configData: slave3Config,
condition: { sSqlCondition: { sParentId: sId } },
isWait: true,
})
: "";
const addStateslave4 = slave4Config
? await this.props.handleGetDataSet({
name: "slave4",
configData: slave4Config,
condition: { sSqlCondition: { sParentId: sId } },
isWait: true,
})
: "";
// addStateProcess.processData = this.sortData(addStateControl.controlData, addStateProcess.processData);
this.props.onSaveState({
pageLoading: false,
...addStateSlave,
...addStateSlave0,
...addStateSlave1,
...addStateslave2,
...addStateslave3,
...addStateslave4,
});
};
/* 获取单张表数据 */
handleGetOneMemoData = (memoName, memoConfig) => {
const { currentId } = this.props; /* 当前页签数据 */
const sId = currentId || this.props.masterData?.sId || ""; /* 数据Id */
if (commonUtils.isNotEmptyObject(sId)) {
/* 解决detail数据没有问题 */
this.props.handleGetDataSet({
name: memoName,
configData: memoConfig,
condition: { sSqlCondition: { sParentId: sId } },
});
}
};
initHandleAddNoValue = [];
/** 点击新增按钮 */
handleAdd = async (config, copyTo, isWait) => {
/* 外置处理业务 */
const { sModelsId, sModelsType, token, app } = this.props;
if (sModelsType.includes("cashier/")) {
commonUtils.setStoreDropDownData(sModelsId, "master", "sCustomerId", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sCustomerNo", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sCustomerName", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sSupplyId", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sSupplyNo", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sSupplyName", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sFamilyId", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sFamilyNo", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sFamilyName", []);
}
let masterConfig = commonUtils.isEmptyObject(config) ? {} : config.masterConfig;
if (!isWait) {
masterConfig = this.props.masterConfig;
}
let configNew = {};
if (commonUtils.isEmptyObject(config)) {
const { slaveConfig } = this.props;
configNew.slaveConfig = slaveConfig;
} else {
configNew = config;
}
let masterData = commonFunc.getDefaultData(masterConfig);
masterData.handleType = "add";
masterData.sId = commonUtils.createSid();
masterData.sFormId = sModelsId;
masterData.maxBillNo = "sBillNo";
/* 新增产品/印件,如果是newRecord过来的,则要获取关联的客户信息 */
if (this.props.app.currentPane.newRecordRelation !== undefined) {
const addStata = this.props.app.currentPane.newRecordRelation;
if (commonUtils.isNotEmptyObject(addStata) && commonUtils.isNotEmptyObject(addStata.sCustomerId)) {
masterData.sCustomerId = addStata.sCustomerId;
masterData.sCustomerNo = addStata.sCustomerNo;
masterData.sCustomerName = addStata.sCustomerName;
/* newRecord新增产品,客户不可修改 */
const ssCustomerNameIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sCustomerName");
if (ssCustomerNameIndex > -1) {
masterConfig.gdsconfigformslave[ssCustomerNameIndex].iTag = 1;
}
}
}
let slaveData = [];
let slave1Data = [];
let slave0Data = [];
let slave2Data = [];
let slave3Data = [];
let slave4Data = [];
const addstate = {};
// const slaveTotal = [];
// const tableDataTotal = {};
if (commonUtils.isNotEmptyObject(copyTo)) {
if (copyTo.formRoute === "/indexPage/commonListLeft") {
masterData = { ...masterData, ...copyTo.masterData };
} else {
const copyToMasterConfig = copyTo.config.filter(item => item.sControlName === copyTo.name);
const masterAssignField = commonUtils.isNotEmptyArr(copyToMasterConfig) ? copyToMasterConfig[0].sAssignField : "";
const newCopyTo = {};
newCopyTo.master = copyTo.masterData;
newCopyTo.slave = commonUtils.isEmpty(copyTo.slaveData) ? [] : copyTo.slaveData[0];
masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterAssignField, copyTo.masterData, newCopyTo) };
masterData.tGetPayDate = commonBusiness.getGeyPayDate(masterData);
if (sModelsType === "semigoodsStock/matchbill") {
const sConfigformId = commonUtils.isEmpty(copyTo.config[0]) ? "" : copyTo.config[0].sParentId;
const sControlName = copyTo.name;
const sSqlCondition = { sProductId: copyTo.slaveData[0].sProductId, sId: copyTo.masterData.sId };
const condition = { sConfigformId, sControlName, sSqlCondition };
const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfo/?sModelsId=${sModelsId}`;
const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
if (dataReturn.code === 1) {
const returnData = dataReturn.dataset.rows[0];
const copyToMasterDetailConfig = copyTo.config.filter(
item => item.sControlName.toLowerCase() === `${copyTo.name}.masterdetail`.toLowerCase()
);
const copyToSlaveConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
const copyToSlaveDetailConfig = copyTo.config.filter(
item => item.sControlName.toLowerCase() === `${copyTo.name}.slavedetail`.toLowerCase()
);
const copyToSlave1Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave1`.toLowerCase());
const copyToSlave0Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave0`.toLowerCase());
const copyToSlave2Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave2`.toLowerCase());
const copyToSlava3Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slava3`.toLowerCase());
const copyToSlava4Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slava4`.toLowerCase());
const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : "";
const salveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : "";
const salveAssignField = commonUtils.isNotEmptyArr(copyToSlaveConfig) ? copyToSlaveConfig[0].sAssignField : "";
const slave1AssignField = commonUtils.isNotEmptyArr(copyToSlave1Config) ? copyToSlave1Config[0].sAssignField : "";
const slave0AssignField = commonUtils.isNotEmptyArr(copyToSlave0Config) ? copyToSlave0Config[0].sAssignField : "";
const slave2AssignField = commonUtils.isNotEmptyArr(copyToSlave2Config) ? copyToSlave2Config[0].sAssignField : "";
const slave3AssignField = commonUtils.isNotEmptyArr(copyToSlava3Config) ? copyToSlava3Config[0].sAssignField : "";
const slave4AssignField = commonUtils.isNotEmptyArr(copyToSlava4Config) ? copyToSlava4Config[0].sAssignField : "";
if (commonUtils.isNotEmptyArr(returnData.master)) {
masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.master[0], newCopyTo) };
}
if (salveAssignField) {
if (commonUtils.isNotEmptyArr(returnData.slave)) {
returnData.slave.forEach(slaveItem => {
newCopyTo.slave = slaveItem;
const newSid = commonUtils.createSid();
let slaveRow = commonFunc.getDefaultData(config.slaveConfig, newCopyTo, { newSid }); // 取默认值
slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(salveDetailAssignField, copyTo.masterData, newCopyTo) };
slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(salveAssignField, slaveItem, newCopyTo) }; // 取赋值字段
slaveRow.handleType = "add";
slaveRow.sId = newSid;
slaveRow.sParentId = masterData.sId;
slaveData.push(slaveRow);
});
}
}
if (slave0AssignField) {
if (commonUtils.isNotEmptyArr(returnData.slave0)) {
returnData.slave0.forEach(slave0Item => {
newCopyTo.slave0 = slave0Item;
const newSid = commonUtils.createSid();
let slave0Row = commonFunc.getDefaultData(config.slave0Config, newCopyTo, { newSid }); // 取默认值
slave0Row = { ...slave0Row, ...commonFunc.getAssignFieldValue(slave0AssignField, slave0Item, newCopyTo) }; // 取赋值字段
slave0Row.handleType = "add";
slave0Row.sId = newSid;
slave0Row.sParentId = masterData.sId;
slave0Data.push(slave0Row);
});
}
}
if (slave1AssignField) {
if (commonUtils.isNotEmptyArr(returnData.slave1)) {
returnData.slave1.forEach(slave1Item => {
newCopyTo.slave1 = slave1Item;
const newSid = commonUtils.createSid();
let slave1Row = commonFunc.getDefaultData(config.slave1Config, newCopyTo, { newSid }); // 取默认值
slave1Row = { ...slave1Row, ...commonFunc.getAssignFieldValue(slave1AssignField, slave1Item, newCopyTo) }; // 取赋值字段
slave1Row.handleType = "add";
slave1Row.sId = newSid;
slave1Row.sParentId = masterData.sId;
slave1Data.push(slave1Row);
});
}
}
if (slave2AssignField) {
if (commonUtils.isNotEmptyArr(returnData.slave2)) {
returnData.slave2.forEach(slave2Item => {
newCopyTo.slave2 = slave2Item;
const newSid = commonUtils.createSid();
let slave2Row = commonFunc.getDefaultData(config.slave2Config, newCopyTo, { newSid }); // 取默认值
slave2Row = { ...slave2Row, ...commonFunc.getAssignFieldValue(slave2AssignField, slave2Item, newCopyTo) }; // 取赋值字段
slave2Row.handleType = "add";
slave2Row.sId = newSid;
slave2Row.sParentId = masterData.sId;
slave2Data.push(slave2Row);
});
}
}
if (slave3AssignField) {
if (commonUtils.isNotEmptyArr(returnData.slave3)) {
returnData.slave3.forEach(slave3Item => {
newCopyTo.slave3 = slave3Item;
const newSid = commonUtils.createSid();
let slave3Row = commonFunc.getDefaultData(config.slave3Config, newCopyTo, { newSid }); // 取默认值
slave3Row = { ...slave3Row, ...commonFunc.getAssignFieldValue(slave3AssignField, slave3Item, newCopyTo) }; // 取赋值字段
slave3Row.handleType = "add";
slave3Row.sId = newSid;
slave3Row.sParentId = masterData.sId;
slave3Data.push(slave3Row);
});
}
}
if (slave4AssignField) {
if (commonUtils.isNotEmptyArr(returnData.slave4)) {
returnData.slave4.forEach(slave4Item => {
newCopyTo.slave4 = slave4Item;
const newSid = commonUtils.createSid();
let slave4Row = commonFunc.getDefaultData(config.slave4Config, newCopyTo, { newSid }); // 取默认值
slave4Row = { ...slave4Row, ...commonFunc.getAssignFieldValue(slave4AssignField, slave4Item, newCopyTo) }; // 取赋值字段
slave4Row.handleType = "add";
slave4Row.sId = newSid;
slave4Row.sParentId = masterData.sId;
slave4Data.push(slave4Row);
});
}
}
} else {
this.props.getServiceError(dataReturn);
}
} else if (
commonUtils.isNotEmptyArr(copyTo.config) &&
copyTo.config.filter(item => item.sControlName && item.sControlName.includes("TmpInfoBySql")).length > 1
) {
const sTmpInfoConfig = copyTo.config.filter(item => item.sControlName && item.sControlName.includes("TmpInfoBySql"))[0];
const sControlName = sTmpInfoConfig.sControlName;
const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`;
const sConfigformId = commonUtils.isEmpty(sTmpInfoConfig) ? "" : sTmpInfoConfig.sParentId;
if (commonUtils.isNotEmptyArr(copyTo.slaveData)) {
const sRowData = copyTo.slaveData;
const condition = { sConfigformId, sControlName, sRowData };
const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
if (dataReturn.code === 1) {
const returnData = dataReturn.dataset.rows[0];
const copyToMasterDetailConfig = copyTo.config.filter(
item => item.sControlName.toLowerCase() === `${copyTo.name}.master`.toLowerCase()
);
const copyToMasterConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase());
const copyToSlaveConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
const copyToSlaveDetailConfig = copyTo.config.filter(
item => item.sControlName.toLowerCase() === `${copyTo.name}.slavedetail`.toLowerCase()
);
const copyToSlave1Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave1`.toLowerCase());
const copyToSlave0Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave0`.toLowerCase());
const copyToSlave2Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave2`.toLowerCase());
const copyToSlava3Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slava3`.toLowerCase());
const copyToSlava4Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slava4`.toLowerCase());
const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : "";
const masterAssignField = commonUtils.isNotEmptyArr(copyToMasterConfig) ? copyToMasterConfig[0].sAssignField : "";
const salveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : "";
const salveAssignField = commonUtils.isNotEmptyArr(copyToSlaveConfig) ? copyToSlaveConfig[0].sAssignField : "";
const slave1AssignField = commonUtils.isNotEmptyArr(copyToSlave1Config) ? copyToSlave1Config[0].sAssignField : "";
const slave0AssignField = commonUtils.isNotEmptyArr(copyToSlave0Config) ? copyToSlave0Config[0].sAssignField : "";
const slave2AssignField = commonUtils.isNotEmptyArr(copyToSlave2Config) ? copyToSlave2Config[0].sAssignField : "";
const slave3AssignField = commonUtils.isNotEmptyArr(copyToSlava3Config) ? copyToSlava3Config[0].sAssignField : "";
const slave4AssignField = commonUtils.isNotEmptyArr(copyToSlava4Config) ? copyToSlava4Config[0].sAssignField : "";
if (commonUtils.isNotEmptyArr(returnData.TmpInfoBySql) && masterAssignField) {
masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterAssignField, returnData.TmpInfoBySql[0], newCopyTo) };
}
if (commonUtils.isNotEmptyArr(returnData.master) && masterDetailAssignField) {
masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.master[0], newCopyTo) };
}
if (commonUtils.isNotEmptyArr(returnData.slave)) {
returnData.slave.forEach(slaveItem => {
newCopyTo.slave = slaveItem;
const newSid = commonUtils.createSid();
let slaveRow = commonFunc.getDefaultData(config.slaveConfig, newCopyTo, { newSid }); // 取默认值
if (salveDetailAssignField) {
slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(salveDetailAssignField, copyTo.masterData, newCopyTo) };
} else if (salveAssignField) {
slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(salveAssignField, slaveItem, newCopyTo) }; // 取赋值字段
}
slaveRow.handleType = "add";
slaveRow.sId = newSid;
slaveRow.sParentId = masterData.sId;
slaveData.push(slaveRow);
});
}
if (commonUtils.isNotEmptyArr(returnData.slave0)) {
returnData.slave0.forEach(slave0Item => {
newCopyTo.slave0 = slave0Item;
const newSid = commonUtils.createSid();
let slave0Row = commonFunc.getDefaultData(config.slave0Config, newCopyTo, { newSid }); // 取默认值
slave0Row = { ...slave0Row, ...commonFunc.getAssignFieldValue(slave0AssignField, slave0Item, newCopyTo) }; // 取赋值字段
slave0Row.handleType = "add";
slave0Row.sId = newSid;
slave0Row.sParentId = masterData.sId;
slave0Data.push(slave0Row);
});
}
if (commonUtils.isNotEmptyArr(returnData.slave1)) {
returnData.slave1.forEach(slave1Item => {
newCopyTo.slave1 = slave1Item;
const newSid = commonUtils.createSid();
let slave1Row = commonFunc.getDefaultData(config.slave1Config, newCopyTo, { newSid }); // 取默认值
slave1Row = { ...slave1Row, ...commonFunc.getAssignFieldValue(slave1AssignField, slave1Item, newCopyTo) }; // 取赋值字段
slave1Row.handleType = "add";
slave1Row.sId = newSid;
slave1Row.sParentId = masterData.sId;
slave1Data.push(slave1Row);
});
}
if (commonUtils.isNotEmptyArr(returnData.slave2)) {
returnData.slave2.forEach(slave2Item => {
newCopyTo.slave2 = slave2Item;
const newSid = commonUtils.createSid();
let slave2Row = commonFunc.getDefaultData(config.slave2Config, newCopyTo, { newSid }); // 取默认值
slave2Row = { ...slave2Row, ...commonFunc.getAssignFieldValue(slave2AssignField, slave2Item, newCopyTo) }; // 取赋值字段
slave2Row.handleType = "add";
slave2Row.sId = newSid;
slave2Row.sParentId = masterData.sId;
slave2Data.push(slave2Row);
});
}
if (commonUtils.isNotEmptyArr(returnData.slave3)) {
returnData.slave3.forEach(slave3Item => {
newCopyTo.slave3 = slave3Item;
const newSid = commonUtils.createSid();
let slave3Row = commonFunc.getDefaultData(config.slave3Config, newCopyTo, { newSid }); // 取默认值
slave3Row = { ...slave3Row, ...commonFunc.getAssignFieldValue(slave3AssignField, slave3Item, newCopyTo) }; // 取赋值字段
slave3Row.handleType = "add";
slave3Row.sId = newSid;
slave3Row.sParentId = masterData.sId;
slave3Data.push(slave3Row);
});
}
if (commonUtils.isNotEmptyArr(returnData.slave4)) {
returnData.slave4.forEach(slave4Item => {
newCopyTo.slave4 = slave4Item;
const newSid = commonUtils.createSid();
let slave4Row = commonFunc.getDefaultData(config.slave4Config, newCopyTo, { newSid }); // 取默认值
slave4Row = { ...slave4Row, ...commonFunc.getAssignFieldValue(slave4AssignField, slave4Item, newCopyTo) }; // 取赋值字段
slave4Row.handleType = "add";
slave4Row.sId = newSid;
slave4Row.sParentId = masterData.sId;
slave4Data.push(slave4Row);
});
}
} else {
this.props.getServiceError(dataReturn);
}
} else {
message.error("请正确配置参数!");
}
} else {
/* 走copyTo数据源 */
const returnData = {
masterData: copyTo.masterData,
slave: commonUtils.isNotEmptyArr(copyTo.slaveData) ? copyTo.slaveData : [],
slave0: commonUtils.isNotEmptyArr(copyTo.slave0Data) ? copyTo.slave0Data : [],
slave1: commonUtils.isNotEmptyArr(copyTo.slave1Data) ? copyTo.slave1Data : [],
slave2: commonUtils.isNotEmptyArr(copyTo.slave2Data) ? copyTo.slave2Data : [],
slave3: commonUtils.isNotEmptyArr(copyTo.slave3Data) ? copyTo.slave3Data : [],
slave4: commonUtils.isNotEmptyArr(copyTo.slave4Data) ? copyTo.slave4Data : [],
};
const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.toLowerCase());
const copyToSlaveConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
const copyToSlaveDetailConfig = copyTo.config.filter(
item => item.sControlName.toLowerCase() === `${copyTo.name}.slavedetail`.toLowerCase()
);
const copyToSlave1Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave1`.toLowerCase());
const copyToSlave0Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave0`.toLowerCase());
const copyToSlave2Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave2`.toLowerCase());
const copyToSlava3Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave3`.toLowerCase());
const copyToSlava4Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave4`.toLowerCase());
const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : "";
const salveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : "";
const salveAssignField = commonUtils.isNotEmptyArr(copyToSlaveConfig) ? copyToSlaveConfig[0].sAssignField : "";
const slave1AssignField = commonUtils.isNotEmptyArr(copyToSlave1Config) ? copyToSlave1Config[0].sAssignField : "";
const slave0AssignField = commonUtils.isNotEmptyArr(copyToSlave0Config) ? copyToSlave0Config[0].sAssignField : "";
const slave2AssignField = commonUtils.isNotEmptyArr(copyToSlave2Config) ? copyToSlave2Config[0].sAssignField : "";
const slave3AssignField = commonUtils.isNotEmptyArr(copyToSlava3Config) ? copyToSlava3Config[0].sAssignField : "";
const slave4AssignField = commonUtils.isNotEmptyArr(copyToSlava4Config) ? copyToSlava4Config[0].sAssignField : "";
if (commonUtils.isNotEmptyArr(returnData.master)) {
masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.master[0], newCopyTo) };
}
if (salveAssignField) {
if (commonUtils.isNotEmptyArr(returnData.slave)) {
returnData.slave.forEach(slaveItem => {
newCopyTo.slave = slaveItem;
const newSid = commonUtils.createSid();
let slaveRow = commonFunc.getDefaultData(config.slaveConfig, newCopyTo, { newSid }); // 取默认值
slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(salveDetailAssignField, copyTo.masterData, newCopyTo) };
slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(salveAssignField, slaveItem, newCopyTo) }; // 取赋值字段
if (
(!commonUtils.isEmpty(slaveRow.dProductQty) && slaveRow.dProductQty !== slaveRow.dSrcQty) ||
(!commonUtils.isEmpty(slaveRow.dAuxiliaryQty) && slaveRow.dAuxiliaryQty !== slaveRow.dSrcAuxiliaryQty)
) {
let models =
sModelsType.includes("sales/") || sModelsType.includes("manufacture/") || sModelsType.includes("productStock/")
? "Product"
: "Materials";
let sFieldName =
sModelsType.includes("sales/") || sModelsType.includes("manufacture/") || sModelsType.includes("productStock/")
? "dProductQty"
: "dAuxiliaryQty";
/* 20210901标板问题 未清新增时,材料销售模块需要用换算数量进行业务计算 */
if (sModelsType.includes("sales/materials") || sModelsType === "sales/salesCheck") {
/* 如果是材料销售模块/销售对账 如果是材料 则用换算数量*单价 算金额 */
slaveRow.dAuxiliaryQty = slaveRow.dProductQty;
/* 材料逻辑计算 */
if (
commonUtils.isNotEmptyNumber("dMaterialsQty") &&
slaveRow.dMaterialsQty !== 0 &&
commonUtils.isNotEmptyObject(slaveRow.sMaterialsUnit)
) {
let modelsNew = "";
if (models === "Product") {
/* 计算前将Product替换为Materials */
modelsNew = "Materials";
const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */
const { dNetPrice } = app.decimals;
const dForeignPrice = slaveRow[`d${models}ForeignPrice`];
if (commonUtils.isNotEmptyNumber(dForeignPrice)) {
/* 只有外币单价情況下 要算本位币单价 */
const dProductPrice = commonUtils.convertFixNum(dForeignPrice * dCurrencyRate, dNetPrice);
slaveRow[`d${models}Price`] = dProductPrice;
}
slaveRow[`dN${modelsNew}Price`] = slaveRow[`d${models}ForeignPrice`];
slaveRow[`d${modelsNew}ForeignPrice`] = slaveRow[`d${models}ForeignPrice`];
slaveRow[`d${modelsNew}Price`] = slaveRow[`d${models}Price`];
slaveRow[`dN${modelsNew}Money`] = slaveRow[`dN${models}Price`];
slaveRow[`dN${modelsNew}Money`] = slaveRow[`d${models}ForeignMoney`];
slaveRow[`d${modelsNew}ForeignMoney`] = slaveRow[`d${models}ForeignMoney`];
slaveRow[`d${modelsNew}Money`] = slaveRow[`d${models}Money`];
slaveRow.bSalesMaterials = true; /* 材料销售 销售对账 材料计算 */
models = "Materials";
sFieldName = commonUtils.isNotEmptyObject(sFieldName) ? sFieldName.replace("Product", "Materials") : sFieldName;
}
}
}
slaveRow = commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, slaveRow);
}
slaveRow.handleType = "add";
slaveRow.sId = newSid;
slaveRow.sParentId = masterData.sId;
slaveData.push(slaveRow);
});
}
}
if (slave0AssignField) {
if (commonUtils.isNotEmptyArr(returnData.slave0)) {
returnData.slave0.forEach(slave0Item => {
newCopyTo.slave0 = slave0Item;
const newSid = commonUtils.createSid();
let slave0Row = commonFunc.getDefaultData(config.slave0Config, newCopyTo, { newSid }); // 取默认值
slave0Row = { ...slave0Row, ...commonFunc.getAssignFieldValue(slave0AssignField, slave0Item, newCopyTo) }; // 取赋值字段
slave0Row.handleType = "add";
slave0Row.sId = newSid;
slave0Row.sParentId = masterData.sId;
slave0Data.push(slave0Row);
});
}
}
if (slave1AssignField) {
if (commonUtils.isNotEmptyArr(returnData.slave1)) {
returnData.slave1.forEach(slave1Item => {
newCopyTo.slave1 = slave1Item;
const newSid = commonUtils.createSid();
let slave1Row = commonFunc.getDefaultData(config.slave1Config, newCopyTo, { newSid }); // 取默认值
slave1Row = { ...slave1Row, ...commonFunc.getAssignFieldValue(slave1AssignField, slave1Item, newCopyTo) }; // 取赋值字段
slave1Row.handleType = "add";
slave1Row.sId = newSid;
slave1Row.sParentId = masterData.sId;
slave1Data.push(slave1Row);
});
}
}
if (slave2AssignField) {
if (commonUtils.isNotEmptyArr(returnData.slave2)) {
returnData.slave2.forEach(slave2Item => {
newCopyTo.slave2 = slave2Item;
const newSid = commonUtils.createSid();
let slave2Row = commonFunc.getDefaultData(config.slave2Config, newCopyTo, { newSid }); // 取默认值
slave2Row = { ...slave2Row, ...commonFunc.getAssignFieldValue(slave2AssignField, slave2Item, newCopyTo) }; // 取赋值字段
slave2Row.handleType = "add";
slave2Row.sId = newSid;
slave2Row.sParentId = masterData.sId;
slave2Data.push(slave2Row);
});
}
}
if (slave3AssignField) {
if (commonUtils.isNotEmptyArr(returnData.slave3)) {
returnData.slave3.forEach(slave3Item => {
newCopyTo.slave3 = slave3Item;
const newSid = commonUtils.createSid();
let slave3Row = commonFunc.getDefaultData(config.slave3Config, newCopyTo, { newSid }); // 取默认值
slave3Row = { ...slave3Row, ...commonFunc.getAssignFieldValue(slave3AssignField, slave3Item, newCopyTo) }; // 取赋值字段
slave3Row.handleType = "add";
slave3Row.sId = newSid;
slave3Row.sParentId = masterData.sId;
slave3Data.push(slave3Row);
});
}
}
if (slave4AssignField) {
if (commonUtils.isNotEmptyArr(returnData.slave4)) {
returnData.slave4.forEach(slave4Item => {
newCopyTo.slave4 = slave4Item;
const newSid = commonUtils.createSid();
let slave4Row = commonFunc.getDefaultData(config.slave4Config, newCopyTo, { newSid }); // 取默认值
slave4Row = { ...slave4Row, ...commonFunc.getAssignFieldValue(slave4AssignField, slave4Item, newCopyTo) }; // 取赋值字段
slave4Row.handleType = "add";
slave4Row.sId = newSid;
slave4Row.sParentId = masterData.sId;
slave4Data.push(slave4Row);
});
}
}
}
}
}
// /* 剔除订单到收款单新增空行 */
let bUpload = false;
/* 图片文件不要新增空行 */
if (commonUtils.isNotEmptyObject(configNew.slaveConfig)) {
const filterData = configNew.slaveConfig.gdsconfigformslave.filter(item => item.sControlName.includes("BtnUpload") && item.bVisible);
if (commonUtils.isNotEmptyArr(filterData) && filterData.length > 0) {
bUpload = true;
}
}
if (
slaveData.length === 0 &&
!bUpload &&
commonUtils.isNotEmptyObject(configNew.slaveConfig) &&
this.props.sModelsType !== "cashier/receipt" &&
this.props.sModelsType !== "cashier/payment"
) {
this.initHandleAddNoValue = [...new Set([...this.initHandleAddNoValue, ""])];
const allTableData = {};
allTableData.master = masterData;
allTableData.slave = slaveData;
const newSid = commonUtils.createSid();
const tableDataRowAdd = commonFunc.getDefaultData(configNew.slaveConfig, allTableData, { newSid });
tableDataRowAdd.handleType = "add";
tableDataRowAdd.sId = newSid;
tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
tableDataRowAdd.key = tableDataRowAdd.sId;
tableDataRowAdd.bDefault = false;
tableDataRowAdd.iOrder = 1;
slaveData.push(tableDataRowAdd);
}
if (false && commonUtils.isNotEmptyObject(configNew)) {
for (const key of Object.keys(configNew)) {
if (key.includes("Config") && !key.includes("onGet") && !key.includes("report")) {
const tablename = key.replace("Config", "").trim();
let tableData = [];
if (tablename !== "slave" && tablename !== "master") {
this.initHandleAddNoValue = [...new Set([...this.initHandleAddNoValue, 0])];
const allTableData = {};
allTableData.master = masterData;
allTableData.slave = slaveData;
const newSid = commonUtils.createSid();
const tableDataRowAdd = {};
tableDataRowAdd.handleType = "add";
tableDataRowAdd.sId = newSid;
tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
tableDataRowAdd.key = tableDataRowAdd.sId;
tableDataRowAdd.bDefault = false;
tableDataRowAdd.iOrder = 1;
tableData.push(tableDataRowAdd);
addstate[`${tablename}Data`] = tableData;
}
}
}
}
if (commonUtils.isNotEmptyObject(copyTo) && copyTo.masterData) {
/* 重新塞入copyTo.masterData */
copyTo.masterData = masterData;
}
if (commonUtils.isNotEmptyObject(copyTo) && copyTo.masterData) {
/* 重新塞入copyTo.masterData */
copyTo.masterData = masterData;
}
const { slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config } = this.props;
if (commonUtils.isNotEmptyObject(slaveConfig) && slaveConfig.bGrdVisible) {
const bEmptyAddLine = slaveConfig.gdsconfigformslave.find(item => item.sControlName === "bEmptyAddLine");
if (commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible) {
slaveData = [];
}
}
if (commonUtils.isNotEmptyObject(slave0Config) && slave0Config.bGrdVisible) {
const bEmptyAddLine = slave0Config.gdsconfigformslave.find(item => item.sControlName === "bEmptyAddLine");
if (commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible) {
slave0Data = [];
}
}
if (commonUtils.isNotEmptyObject(slave1Config) && slave1Config.bGrdVisible) {
const bEmptyAddLine = slave1Config.gdsconfigformslave.find(item => item.sControlName === "bEmptyAddLine");
if (commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible) {
slave1Data = [];
}
}
if (commonUtils.isNotEmptyObject(slave2Config) && slave2Config.bGrdVisible) {
const bEmptyAddLine = slave2Config.gdsconfigformslave.find(item => item.sControlName === "bEmptyAddLine");
if (commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible) {
slave2Data = [];
}
}
if (commonUtils.isNotEmptyObject(slave3Config) && slave3Config.bGrdVisible) {
const bEmptyAddLine = slave3Config.gdsconfigformslave.find(item => item.sControlName === "bEmptyAddLine");
if (commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible) {
slave3Data = [];
}
}
if (commonUtils.isNotEmptyObject(slave4Config) && slave4Config.bGrdVisible) {
const bEmptyAddLine = slave4Config.gdsconfigformslave.find(item => item.sControlName === "bEmptyAddLine");
if (commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible) {
slave4Data = [];
}
}
new Array(6).fill("").forEach((_, index) => {
const num = index + 5;
const config = this.props[`slave${num}Config`];
if (commonUtils.isNotEmptyArr(config)) {
addstate[`slave${num}Data`] = [];
}
});
const { slavePagination = {} } = this.props;
const slavePaginationNew = {
...slavePagination,
total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length,
current: 999,
};
masterData.enabled = true;
const state = {
masterData,
slaveData,
// slavePagination: slavePaginationNew,
slaveTotal: [],
slaveSelectedRowKeys: [],
slave1SelectedRowKeys: [],
searchUpDownData: {},
enabled: true,
slave0Data,
slave1Data,
slave2Data,
slave3Data,
slave4Data,
processSelectedRowKeys: [],
controlSelectedRowKeys: [],
slave0SelectedRowKeys: [],
...addstate,
};
state.sUseInfo = "";
if (isWait) {
return state;
} else {
this.props.onSaveState(state);
return true;
}
};
/** 点击修改按钮操作 */
handleEdit = async () => {
const {
masterConfig,
slaveConfig,
slave0Config,
slave1Config,
slave2Config,
slave3Config,
slave4Config,
currentId,
app,
masterData,
dispatch,
} = this.props;
const { userinfo, systemData } = app;
const { sMakePerson } = masterData; /* 本单据制单人 */
const { sUserName, sType } = userinfo; /* 登录用户 */
const iIndex = systemData.findIndex(item => item.sName === "CkxModifyBillNoMakePerson");
if (iIndex > -1) {
const sValue = systemData[iIndex].sValue;
if (sValue === "0") {
/* 系统未启用非制单人修改单据,普通用户非制单人不可以修改制单人的单据 */
if (sType !== "sysadmin" && sUserName !== sMakePerson) {
message.error(commonFunc.showMessage(app.commonConst, "NoUpdateByNoMakePerson"));
this.props.onSaveState({
loading: false,
});
return;
}
}
}
this.props.app.webSocket.onmessageTmp = async msg => {
const rtmsg = JSON.parse(msg.data);
if (rtmsg.action === "showMsg") {
message.warning(rtmsg.msg);
this.props.onSaveState({ loading: false });
} else if (rtmsg.action === "update") {
await this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, "update");
this.props.onSaveState({ enabled: true, loading: false });
}
};
this.props.handleSendSocketMessage("update", "showMsg", currentId, userinfo.sId, null, null);
};
/** 表单回带 */
handleForm = form => {
this.form = form;
};
/** toolbar审核(消审) */
handleAudit = async flag => {
/* 待用数据声明 */
let bResult = true;
const { masterData, app } = this.props;
/* 作废订单不能审核 */
if (masterData.bInvalid) {
message.warning(commonFunc.showMessage(app.commonConst, "sToVoid"));
this.props.onSaveState({
loading: false,
});
return "";
}
/** 数据审核 */
bResult = await this.dataAudit(flag);
return bResult;
};
/** 数据审核 */
dataAudit = async (flag, tmpCheck, isWait) => {
message.destroy();
/* 待用数据声明 */
const {
sModelsId,
masterData,
app,
masterConfig,
slaveConfig,
slave2Config,
slave1Config,
token,
sModelsType,
slave4Config,
slave0Config,
slave3Config,
slaveData,
orderDetailConfig,
} = this.props;
const sSlaveIdArray = [];
if (commonUtils.isNotEmptyArr(slaveData)) {
slaveData.forEach(item => {
sSlaveIdArray.push(commonUtils.isNotEmptyObject(item.sId) ? item.sId : item.sSlaveId);
});
}
const slaveId = sSlaveIdArray.toString();
/* 数据参数 */
const value = {
sClientType: "1",
paramsMap: {
iFlag: flag,
iTmpCheck: commonUtils.isEmptyNumber(tmpCheck) ? 0 : tmpCheck,
sFormGuid: sModelsId,
sGuid: masterData.sId,
sSlaveId: slaveId,
sBillNo: commonUtils.isNotEmptyObject(masterData.sBillNo) ? masterData.sBillNo : "",
},
};
let clearFlag = false;
if (sModelsType === "sales/salesOrder" || sModelsType === "manufacture/workOrder") {
for (const item of slaveData) {
if (commonUtils.isNotEmptyStr(item.sProductInfo)) {
clearFlag = true;
break;
}
}
}
/* 数据审核 */
const url = `${commonConfig.server_host}business/doExamine?sModelsId=${sModelsId}`;
const returnData = (await commonServices.postValueService(app.token, value, url)).data;
if (isWait) {
return returnData;
} else {
/* 接收返回值 */
await this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config);
const check = commonFunc.showMessage(app.commonConst, "BtnExamine"); /* 审核 */
const BtnCancelExamine = commonFunc.showMessage(app.commonConst, "BtnCancelExamine"); /* 销审 */
if ((sModelsType === "sales/salesOrder" || sModelsType === "manufacture/workOrder3") && !commonUtils.isEmpty(slave3Config)) {
await this.handleGetMemoData(slave4Config, slave0Config, slave3Config);
} else if (sModelsType === "purchase/purchaseOrder") {
await this.handleGetOneMemoData("orderDetail", orderDetailConfig);
}
if (this.props.app.currentPane.refresh !== undefined) {
this.props.app.currentPane.refresh();
}
if (returnData.code === 1) {
/* 成功 */
this.props.onSaveState({
loading: false,
});
if (flag === 1) {
/* 审核 */
if (clearFlag && (sModelsType === "sales/salesOrder" || sModelsType === "manufacture/workOrder")) {
commonUtils.setStoreDropDownData(sModelsId, "master", "sProductId", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sProductNo", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sProductName", []);
}
const { outData } = returnData.dataset.rows[0].dataSet;
if (commonUtils.isNotEmptyStr(outData[0].sReturn)) {
const sReturnArray = outData[0].sReturn.split("|");
if (outData[0].sReturn.split("-").length < 2) {
// 正常业务提示,非审核模板
// if (this.props.app.currentPane.refresh !== undefined) {
// this.props.app.currentPane.refresh();
// }
message.error(check + outData[0].sReturn);
return;
}
const checkConditions = [];
let checkPersonData = {};
sReturnArray.forEach(item => {
const checkCondition = item.split("-")[2];
checkConditions.push({
key: commonUtils.createSid(),
condition: checkCondition,
});
});
const sCheckModelId = sReturnArray[0].split("-")[1];
if (commonUtils.isNotEmptyStr(sCheckModelId)) {
const urlCheck = `${commonConfig.server_host}checkModel/getUserListByModelId/${sCheckModelId}?sModelsId=${sModelsId}`;
const dataReturn = (await commonServices.getService(token, urlCheck)).data;
if (dataReturn.code === 1) {
checkPersonData = dataReturn.dataset.rows;
checkPersonData.forEach(item => {
item.key = commonUtils.createSid();
});
this.props.onSaveState({
checkConditions,
checkPersonData,
sCheckModelId,
visible: true,
});
} else {
/* 失败 */
this.props.getServiceError({ msg: check + dataReturn });
}
}
} else {
message.success(check + returnData.msg);
}
} else {
/* 消审 */
const { outData } = returnData.dataset.rows[0].dataSet;
if (commonUtils.isNotEmptyStr(outData[0].sReturn)) {
message.error(outData[0].sReturn);
} else {
// if (this.props.app.currentPane.refresh !== undefined) {
// this.props.app.currentPane.refresh();
// }
message.success(BtnCancelExamine + returnData.msg);
}
}
} else if (returnData.code === -8) {
Modal.info({
title: "温馨提示:",
content:
{this.handleGetMsg(returnData.msg)}
,
okText: "确认",
onOk() {},
});
this.props.onSaveState({
loading: false,
});
return false;
} else {
/* 失败 */
this.props.getServiceError(returnData);
this.props.onSaveState({
loading: false,
});
return false;
}
return true;
}
};
/** toolbar保存 */
handleSaveData = async params => {
const {
token,
sModelsId,
currentId,
masterData,
masterConfig,
slaveConfig,
slave1Config,
billnosetting,
app,
// eslint-disable-next-line no-unused-vars
sModelsType,
// eslint-disable-next-line no-unused-vars
slave0Config,
// eslint-disable-next-line no-unused-vars
slave2Config,
// eslint-disable-next-line no-unused-vars
slave3Config,
// eslint-disable-next-line no-unused-vars
slave4Config,
slave5Config,
slave6Config,
slave7Config,
slave8Config,
slave9Config,
slave10Config,
dispatch,
} = this.props;
const { userinfo } = app;
const { copyTo } = app.currentPane;
const onSendSocketMessage = this.props.handleSendSocketMessage;
const BtnSave = commonFunc.showMessage(app.commonConst, "BtnSave"); /* 保存 */
params.optName = BtnSave;
// params.data.forEach(item=>{
// item.column?.forEach(col=>{
// if(col.isSettingFunctions) {
// if(col.iOrder > 10 ) {
// const i = Math.floor(col.iOrder / 10)
// col.iOrder = this.props.slaveData[i - 1].iOrder
// } else {
// col.iOrder = 1;
// }
// }
// })
// })
const tableData = this.props.slaveData?.sort((a, b) => {
const hasA = a.hasOwnProperty("sName") && a.sName != null;
const hasB = b.hasOwnProperty("sName") && b.sName != null;
if (hasA && !hasB) return -1;
if (!hasA && hasB) return 1;
// 2. bVisible 为 true 的在前
const visA = a.bVisible === true;
const visB = b.bVisible === true;
if (visA && !visB) return -1;
if (!visA && visB) return 1;
// 3. 最后按 iOrder 升序
return a.iOrder - b.iOrder;
});
params.data.forEach(item=>{
if (item.name === "slave") {
const isSettingFunctions = item.column.some(col => col.isSettingFunctions);
if (isSettingFunctions) {
item.column = tableData.map((col,i) => {
col.iOrder =( i + 1 )* 10;
col.handleType = col.handleType || "update";
return col
});
}
}
})
const returnData = await commonBusiness.saveData({ token, value: params, sModelsId });
if (commonUtils.isNotEmptyObject(returnData)) {
if (commonUtils.isNotEmptyObject(copyTo)) {
const sIdArray = [];
if (commonUtils.isNotEmptyArr(copyTo.slaveData)) {
const { slaveData } = copyTo;
slaveData.forEach(item => {
const redisKey = item.sSlaveId;
sIdArray.push(redisKey);
});
}
/* 处理只有单主表解锁问题 */
if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyObject(masterData.sSrcSlaveId)) {
sIdArray.push(masterData.sSrcSlaveId);
}
const sId = sIdArray.toString();
onSendSocketMessage("copyfinish", "noAction", sId, userinfo.sId, null, null);
}
onSendSocketMessage("release", "noAction", currentId, userinfo.sId, null, null);
this.props.onSaveState({
enabled: false,
currentId: masterData.sId,
});
// 保存后更新panes,currentPane的checkedId,防止浏览器刷新时重新又变成新增。
const iPaneIndex = app.panes.findIndex(item => item.key === app.currentPane.key);
app.panes[iPaneIndex].checkedId = masterData.sId;
app.currentPane.checkedId = masterData.sId;
dispatch({ type: "app/savePanesAndCurrentPane", payload: { panes: app.panes, currentPane: app.currentPane } });
/* 新记录时,关闭后能自动带值 */
const callBackRecord = this.props.app.currentPane.newRecordMethod;
if (callBackRecord !== undefined) {
const sId = masterData.sId === undefined ? masterData.sid : masterData.sId; /* sId */
/* 回调 传[新增的数据sId] */
if (this.props.app.currentPane.newRecordMethod !== undefined) {
this.props.app.currentPane.newRecordMethod(sId);
}
}
if (billnosetting.bAutoCheck) {
await this.handleAudit(1);
} else {
await this.handleGetData(
masterConfig,
slaveConfig,
slave0Config,
slave1Config,
slave2Config,
slave3Config,
slave4Config,
null,
slave5Config,
slave6Config,
slave7Config,
slave8Config,
slave9Config,
slave10Config
);
if (this.props.app.currentPane.refresh !== undefined) {
this.props.app.currentPane.refresh();
}
}
this.props.onSaveState({
loading: false,
});
return true;
} else {
this.props.onSaveState({
loading: false,
});
return false;
}
};
/** toolbar校验保存 */
handleValidateSave = () => {
this.form.validateFields(async err => {
/* 验证通过与不通过走不同的流程 */
if (err) {
/* 验证失败 */
/* 直接渲染显示错误提示 */
for (const key of Object.keys(err)) {
message.error(err[key].errors[0].message);
}
this.props.onSaveState({
loading: false,
});
} else {
/* 验证成功 */
const {
masterConfig,
slaveConfig,
slaveData,
slaveDelData,
app,
sModelsType,
slave0Config,
slaveColumn,
slave0Data,
slave0Column,
slave0DelData,
slave1Config,
slave1Column,
slave1Data,
slave1DelData,
slave2Config,
slave2Column,
slave2Data,
slave2DelData,
slave3Config,
slave3Column,
slave3Data,
slave3DelData,
slave4Config,
slave4Column,
slave4Data,
slave4DelData,
} = this.props;
let { masterData } = this.props;
// if (commonUtils.isEmptyArr(slaveData) && !sModelsType.includes('sales/salesInvoice') && !sModelsType.includes('purchase/purchaseInvoice') && sModelsType !== 'cashier/financialTransfer' && sModelsType !== 'cashier/financialAdjustment'
// && !sModelsType.includes('cashier/receipt') && !sModelsType.includes('cashier/payment') && !sModelsType.includes('purchase/purchaseEnquiry') || !commonBusiness.validateTable(slave0Config, materialsData, this.props)) {
// message.error(commonFunc.showMessage(app.commonConst, 'slaveNotNull')); // 从表不能为空!
// this.props.onSaveState({
// loading: false,
// });
// return;
// }
if (
!commonBusiness.validateMaster(masterConfig, masterData, this.props) ||
!commonBusiness.validateTable(slaveConfig, slaveData, this.props) ||
!commonBusiness.validateTable(slave1Config, slave1Data, this.props) ||
!commonBusiness.validateTable(slave0Config, slave0Data, this.props) ||
!commonBusiness.validateTable(slave2Config, slave2Data, this.props) ||
!commonBusiness.validateTable(slave3Config, slave3Data, this.props) ||
!commonBusiness.validateTable(slave4Config, slave4Data, this.props)
) {
this.props.onSaveState({
loading: false,
});
return;
}
/* 根据配置校验 表格内容是否为空 */
if (commonUtils.isNotEmptyObject(this.props)) {
for (const key of Object.keys(this.props)) {
if (key.includes("Config") && !key.includes("onGet") && !key.includes("report")) {
const tablename = key.replace("Config", "").trim();
const tableConfigName = key;
const tableDataName = tablename + "Data";
const tableConfig = this.props[tableConfigName];
const tableData = this.props[tableDataName];
if (tableConfig && tableConfig.bNotCanEmpty) {
if (commonUtils.isEmptyArr(tableData)) {
message.error(commonFunc.showMessage(app.commonConst, "slaveNotNull")); // 表格不能为空!
this.props.onSaveState({
loading: false,
});
return;
}
}
}
}
}
// && sModelsType === 'materialsStock/productionmaterialsadjust'
if (commonUtils.isNotEmptyArr(slaveData)) {
let flag = true;
for (const item of slaveData) {
if (sModelsType === "materialsStock/productionmaterialsadjust") {
if (commonUtils.isNotEmptyStr(item.sWareHouseId)) {
if (masterData.sWareHouseId === item.sWareHouseId) {
message.error(commonFunc.showMessage(app.commonConst, "NotSameMateMaterialWarehouse")); /* 材料调拨原仓库与调入仓库不能一致 */
flag = false;
break;
}
}
}
// {"paper":"纸张","finished":"成品","half_finished":"半成品","accessories":"辅料","corrugated":"瓦楞"}
if (
commonUtils.isNotEmptyObject(item.sMaterialsType) &&
item.sMaterialsType === "paper" &&
commonUtils.isEmptyObject(item.sMaterialsStyle)
) {
message.error(item.sMaterialsName + commonFunc.showMessage(app.commonConst, "NoStyle")); /* 请填写"${item.sMaterialsName}"的规格 */
flag = false;
break;
}
}
if (!flag) {
this.props.onSaveState({
loading: false,
});
return;
}
}
if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props)) {
this.props.onSaveState({
loading: false,
});
return;
}
if (commonUtils.isNotEmptyArr(slaveData) && sModelsType === "materialsStock/productionmaterials") {
const flag = await this.handleEleMaterialsStoreCurrQty(slaveData);
if (!flag) {
this.props.onSaveState({
loading: false,
});
return;
}
}
if (sModelsType === "purchase/purchaseEnquiry") {
delete masterData.maxBillNo;
}
if (sModelsType === "cashier/receipt" || sModelsType === "cashier/payment") {
let flag = true;
if (masterData.sSettlementId === "bank") {
if (commonUtils.isEmptyStr(masterData.sBankId) || commonUtils.isEmptyStr(masterData.sBankAccount)) {
message.error(commonFunc.showMessage(app.commonConst, "requiredsBankAccount")); /* 收/付款条件为银行时,银行、银行账号为必填项 */
flag = false;
}
}
if (masterData.sSettlementId === "bill") {
if (commonUtils.isEmptyStr(masterData.sBankId) || commonUtils.isEmptyStr(masterData.sInvoiceNo)) {
message.error(commonFunc.showMessage(app.commonConst, "requiredsInvoiceNo")); /* 收/付款条件为票据时,银行、票据号码为必填项 */
flag = false;
}
}
let dslaveTotalMoney = 0;
for (const item of slaveData) {
if (item.handleType !== "del") {
if (commonUtils.isNotEmptyNumber(item.dTotalMoney)) {
dslaveTotalMoney += item.dTotalMoney;
}
}
}
const dPmoney = this.props.getFloatNum("dProductMoney");
dslaveTotalMoney = commonUtils.convertFixNum(dslaveTotalMoney, dPmoney); /* 取系统设定小数位 */
if (
commonUtils.isNotEmptyArr(slaveData) &&
commonUtils.isNotEmptyNumber(masterData.dTotalMoney) &&
commonUtils.isNotEmptyNumber(masterData.dAdvanceMoney) &&
commonUtils.convertFixNum(masterData.dTotalMoney - masterData.dAdvanceMoney, dPmoney) !== dslaveTotalMoney
) {
message.error(commonFunc.showMessage(app.commonConst, "NotSameTotalMoney")); /* 主从表总金额不一致 */
flag = false;
}
/* 收付款保存前,看到从表没数据,预收勾上时,自动调用一下分摊 */
if (commonUtils.isEmptyArr(slaveData)) {
masterData = this.handleShare();
}
if (!flag) {
this.props.onSaveState({
loading: false,
});
return;
}
}
const configNameList = Object.keys(this.props)
.filter(item => item && item.startsWith("slave") && item.endsWith("Config"))
.map(item => item.replace("Config", ""));
const data = [];
data.push(commonBusiness.mergeData("master", masterConfig.sTbName, [masterData]));
if (slaveConfig && commonUtils.isNotEmptyArr(slaveColumn)) {
data.push(commonBusiness.mergeData("slave", slaveConfig.sTbName, slaveData, slaveDelData));
}
if (slave0Config && commonUtils.isNotEmptyArr(slave0Column) && slave0Config.sTbName !== "sysbillcheckresult") {
data.push(commonBusiness.mergeData("slave0", slave0Config.sTbName, slave0Data, slave0DelData));
}
if (slave1Config && commonUtils.isNotEmptyArr(slave1Column) && slave1Config.sTbName !== "sysbillcheckresult") {
data.push(commonBusiness.mergeData("slave1", slave1Config.sTbName, slave1Data, slave1DelData));
}
if (slave2Config && commonUtils.isNotEmptyArr(slave2Column) && slave2Config.sTbName !== "sysbillcheckresult") {
data.push(commonBusiness.mergeData("slave2", slave2Config.sTbName, slave2Data, slave2DelData));
}
if (slave3Config && commonUtils.isNotEmptyArr(slave3Column) && slave3Config.sTbName !== "sysbillcheckresult") {
data.push(commonBusiness.mergeData("slave3", slave3Config.sTbName, slave3Data, slave3DelData));
}
if (slave4Config && commonUtils.isNotEmptyArr(slave4Column) && slave4Config.sTbName !== "sysbillcheckresult") {
data.push(commonBusiness.mergeData("slave4", slave4Config.sTbName, slave4Data, slave4DelData));
}
if (commonUtils.isNotEmptyArr(configNameList)) {
configNameList.forEach(tbName => {
const { [`${tbName}Config`]: tableConfig, [`${tbName}Data`]: tableData, [`${tbName}DelData`]: tableDelData } = this.props;
if (
tableConfig &&
tableConfig.sTbName &&
tableConfig.sSqlStr !== "noQuery" &&
tbName !== "slave" &&
tbName !== "slave0" &&
tbName !== "slave1" &&
tbName !== "slave2" &&
tbName !== "slave3" &&
tbName !== "slave4"
) {
const tableDataNew = tbName === "master" ? [tableData] : tableData;
data.push(commonBusiness.mergeData(tbName, tableConfig.sTbName, tableDataNew, tableDelData));
}
});
}
this.handleSaveData({ data, sClientType: "1", sSysLogSrcId: masterData.sId });
}
});
};
/* 切换作废状态 */
handleOkChangeInvaild = async props => {
const { sModelsId, masterData, masterConfig, handleType } = props;
const value = {
sClientType: "1",
sId: [masterData.sId],
sTableName: masterConfig.sTbName,
handleType,
};
const url = `${commonConfig.server_host}checkModel/updatebInvalid?sModelsId=${sModelsId}`;
const { data } = await commonServices.postValueService(props.app.token, value, url);
if (data.code === 1) {
message.success(data.msg);
masterData.bInvalid = handleType === "toVoid"; /* 作废状态 */
props.onSaveState({ masterData });
/* 审核(消审)后刷新跳转路由数据(commonList)的数据 */
if (props.app.currentPane.refresh !== undefined) {
props.app.currentPane.refresh();
}
} else {
props.getServiceError(data);
}
};
/* 作废、取消作废的公用函数 */
handleInvalid = obj => {
const props = { ...this.props, ...this.state, ...obj };
const onOkInvaild = this.handleOkChangeInvaild;
confirm({
title: obj.title,
onOk() {
onOkInvaild(props);
},
onCancel() {},
});
};
/* 单据页上查下查跳转页面 */
handleSearchUpDown = async (sId, sActiveId) => {
/* 待用数据声明 */
const { dispatch, sTabId } = this.props;
dispatch({
type: "content/onRouter",
payload: {
url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}` /* 接口地址 */,
sParentId: sTabId /* 父页面编号 */,
checkedId: sId,
},
});
};
/* 上查下查三级菜单 在上一条下一条时必须清除searchUpDownData */
handleSearchUpDownThird = async upDownKey => {
/* 待用数据声明 */
const { masterConfig, searchUpDownData: searchUpDownDataOld } = this.props;
/** 获取sqlCondition参数:{sSqlCondition,sId} */
const searchUpDownData = commonUtils.isEmptyObject(searchUpDownDataOld) ? {} : { ...searchUpDownDataOld };
if (commonUtils.isNotEmptyObject(masterConfig)) {
const searchUpDownConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(`${upDownKey}`));
for (const item of searchUpDownConfig) {
if (commonUtils.isEmptyArr(searchUpDownData[item.sControlName])) {
searchUpDownData[item.sControlName] = await this.getSearchUpDownData(item);
}
}
this.props.onSaveState({ searchUpDownData });
}
};
/* 单据页复制到 */
handleCopyTo = (name, sActiveId) => {
/* 待用数据声明 */
const { dispatch, masterConfig, slave1Data, masterData, slaveData, slave2Data, slave0Data, slave3Data, slave4Data } = this.props;
// 从表有sCopyToCondition则不能复制,并提示
if (commonUtils.isNotEmptyArr(slaveData) && name.includes(".")) {
const sCopyToConditionIndex = slaveData.findIndex(item => item.sCopyToCondition);
if (sCopyToConditionIndex !== -1) {
message.warning(slaveData[sCopyToConditionIndex].sCopyToCondition);
return;
}
}
const copyTo = {};
const copyToConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
copyTo.name = name;
copyTo.config = copyToConfig;
copyTo.masterData = masterData;
copyTo.slaveData = slaveData;
copyTo.slave1Data = slave1Data;
copyTo.slave0Data = slave0Data;
copyTo.slave2Data = slave2Data;
copyTo.slave3Data = slave3Data;
copyTo.slave4Data = slave4Data;
dispatch({
type: "content/onRouter",
payload: {
url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}` /* 接口地址 */,
copyTo,
},
});
};
handleCopyFrom = async obj => {
// const {
// slaveData, masterData, masterConfig,
// } = this.props;
/* 根据sql条件进行判断 */
// const buttonConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === '' && item.showName !== '' && item.sControlName === obj.copyFromKey);
// if (commonUtils.isNotEmptyArr(buttonConfig) && commonUtils.isNotEmptyObject(buttonConfig[0].sSqlCondition) && buttonConfig[0].sSqlCondition.includes('slave.')) {
// if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isEmptyStr(slaveData[0].sCustomerId) && commonUtils.isEmptyStr(masterData.sCustomerId)) {
// message.error(commonFunc.showMessage(this.props.app.commonConst, 'pleaseInputCustomer'));/* 请填写客户 */
// return;
// }
// }
this.copyName = obj.name;
const { token } = this.props;
const url = `${commonConfig.server_host}/gdsmodule/getGdsmoduleById/${obj.copyFromSActiveId}?sModelsId=${obj.copyFromSActiveId}`;
const dataReturn = (await commonServices.getService(token, url)).data;
if (dataReturn.code === 1) {
const returnData = dataReturn.dataset.rows[0];
if (obj.copyFromKey.includes("customizeFormInfo")) {
/* 复制从自定义窗体 */
this.props.onSaveState({ copyFromChooseVisible: true, copyFromChooseData: returnData, copyFromKey: obj.copyFromKey });
} else {
this.props.onSaveState({
productProcessInfoChooseVisible: true,
productProcessInfoChooseData: returnData,
productProcessInfoCopyFromKey: obj.copyFromKey,
});
}
} else {
this.props.getServiceError(dataReturn);
}
};
/* 上一条、下一条、首条、末条 */
handleSearchData = async handleType => {
const {
sModelsId,
app,
currentIndexFlag,
currentPageNo,
masterData,
sSrcModelsId,
masterConfig,
slaveConfig,
slave0Config,
slave1Config,
slave2Config,
slave3Config,
slave4Config,
} = this.props;
let { sBillIdsArray = [] } = this.props;
let { currentId } = this.props;
const { currentPane, token } = app;
const tipLast = commonFunc.showLocalMessage(this.props, "tipLast", "当前已经是最后一条");
const tipFirst = commonFunc.showLocalMessage(this.props, "tipFirst", "当前已经是第一条");
let { pages, sFilterOrderBy, bFilter, sListFormmasterId, currentIndex, fromKey } = currentPane;
if (fromKey === "1") {
const fromKeyConfig = masterConfig.gdsconfigformslave.find(i => i && i.sName === "sListFormmasterId");
if (fromKeyConfig) sListFormmasterId = fromKeyConfig.sActiveKey;
}
let currentPosition = currentIndexFlag
? currentPageNo
: commonUtils.isEmptyObject(pages)
? 1
: (pages.current - 1) * commonConfig.pageSize + Number.parseInt(currentIndex, 10) + 1;
if (currentIndex === undefined) {
currentPosition = 1;
}
// if (handleType === 'first') {
// currentPosition = 1;
// } else if (handleType === 'end') {
// currentPosition = pages.total;
// }
if (!commonUtils.isNum(currentPosition)) {
// 如果是列表直接点增加,就跳到第一条去
currentPosition = 1;
}
let bExist = false;
/* 如果sBillIdsArray已存在 则不请求 */
if (commonUtils.isNotEmptyArr(sBillIdsArray) && sBillIdsArray.length > 0) {
const index = sBillIdsArray.indexOf(currentId);
if (index > -1) {
if ("next".includes(handleType)) {
currentPosition = index + 1;
if (currentPosition > sBillIdsArray.length - 1) {
message.warn(tipLast);
return;
}
} else if ("up".includes(handleType)) {
if (index === 0) {
message.warn(tipFirst);
return;
}
currentPosition = index - 1;
} else if ("first".includes(handleType)) {
currentPosition = 0;
} else if ("end".includes(handleType)) {
currentPosition = sBillIdsArray.length - 1;
}
currentId = sBillIdsArray[currentPosition];
currentPosition = currentPosition + 1;
bExist = true;
} else {
bExist = false;
}
}
/* 如果是第一次请求 */
if (!bExist) {
const bFromList = commonUtils.isEmptyObject(pages) ? true : false;
if (bFromList) {
if (handleType === "next" || handleType === "end") {
message.warn(tipLast);
return;
} else {
message.warn(tipFirst);
return;
}
}
const value = {
sClientType: "1",
sFilterOrderBy,
bFilter,
sListFormmasterId,
currentPosition,
handleType,
iCountSum: pages.total,
sUpId: masterData?.sId,
sParentModelId: sSrcModelsId,
};
this.props.onSaveState({ loading: true });
const url = `${commonConfig.server_host}business/getBusinessDataByIndex?sModelsId=${sModelsId}`;
/* 接收返回值 */
const { data } = await commonServices.postValueService(token, value, url);
/* 接收返回值 */
/* 成功的话刷新页面(同步主表和从表数据),不成功就弹出错误提示 */
if (data.code === 1) {
/* 数据查询成功 */
const returnData = data.dataset.rows[0];
/* 拿到接口返回的sBillids */
console.log("returnData", returnData);
const sBillIds = returnData.sBillIds;
if (commonUtils.isNotEmptyArr(sBillIds)) {
sBillIdsArray = sBillIds;
}
currentId = returnData.sId;
currentPosition = returnData.currentPosition;
} else {
/* 失败 */
this.props.getServiceError(data);
return false;
}
}
this.props.onSaveState(
{
currentIndexFlag: true,
currentPageNo: currentPosition,
currentId,
searchUpDownData: {},
slaveSelectedRowKeys: [],
sBillIdsArray,
loading: true
},
() => {
this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config);
}
);
return true;
};
handleCancel = obj => {
/* 待用数据声明 */
const that = this;
const { currentId, masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, app, masterData } =
this.props;
const { userinfo } = app;
const onSendSocketMessage = this.props.handleSendSocketMessage;
const onGetDataOk = this.handleGetData;
const onSaveStateOk = this.props.onSaveState;
const { copyTo } = app.currentPane;
confirm({
title: obj.title,
onOk() {
// 解决新建页签sid为空的bug
if (!currentId) {
const { panes, currentPane } = that.props.app;
const currentPaneIndex = panes.findIndex(item => item.key === currentPane.key);
const newPanes = [];
if (currentPaneIndex > 0) {
panes.forEach((item, index) => {
if (index !== currentPaneIndex) {
newPanes.push(item);
}
});
that.props.dispatch({
type: "app/removePane",
payload: { changePanes: newPanes, currentPane: panes[currentPaneIndex - 1] },
}); /* 关闭当前页签 */
}
/* 复制到新增页签取消时 关闭页签 并清除操作记录 */
if (commonUtils.isNotEmptyObject(copyTo)) {
const { slaveData, srcFormRoute, copyOtherData } = copyTo;
if (commonUtils.isNotEmptyObject(srcFormRoute) && srcFormRoute.includes("materialRequirementsPlanning")) {
/* 物料需求计划用sWorkOrderMaterialId作为唯一键 */
const sIdArray = [];
if (
commonUtils.isNotEmptyArr(copyOtherData) &&
copyOtherData[0].name === "detail" &&
commonUtils.isNotEmptyArr(copyOtherData[0].data)
) {
const slaveDetailData = copyOtherData[0].data;
slaveDetailData.forEach(item => {
const redisKey = item.sWorkOrderMaterialId;
sIdArray.push(redisKey);
});
} else {
/* 变更单、采购申请单 */
slaveData.forEach(item => {
const redisKey = item.sWorkOrderMaterialId;
sIdArray.push(redisKey);
});
}
const sId = sIdArray.toString();
onSendSocketMessage("copyfinish", "noAction", sId, userinfo.sId, null, null);
} else if (commonUtils.isNotEmptyArr(slaveData)) {
const sIdArray = [];
slaveData.forEach(item => {
const redisKey = item.sSlaveId;
sIdArray.push(redisKey);
});
/* 处理只有单主表解锁问题 */
if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyObject(masterData.sSrcSlaveId)) {
sIdArray.push(masterData.sSrcSlaveId);
}
const sId = sIdArray.toString();
onSendSocketMessage("copyfinish", "noAction", sId, userinfo.sId, null, null);
} else if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyObject(masterData.sSrcSlaveId)) {
const sIdArray = [];
/* 处理只有单主表解锁问题 */
sIdArray.push(masterData.sSrcSlaveId);
const sId = sIdArray.toString();
onSendSocketMessage("copyfinish", "noAction", sId, userinfo.sId, null, null);
}
}
return;
}
const bChanged = commonBusiness.handleGetChanged(that.props);
if (bChanged) {
onGetDataOk(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config);
}
onSaveStateOk({ enabled: false });
if (commonUtils.isNotEmptyObject(copyTo)) {
const { slaveData } = copyTo;
const sIdArray = [];
slaveData.forEach(item => {
const redisKey = item.sSlaveId;
sIdArray.push(redisKey);
});
const sId = sIdArray.toString();
onSendSocketMessage("copyfinish", "noAction", sId, userinfo.sId, null, null);
}
onSendSocketMessage("release", "noAction", currentId, userinfo.sId, null, null);
},
// onOk() {
// if (!currentId) {
// const { panes, currentPane } = that.props.app;
// const currentPaneIndex = panes.findIndex(item => item.key === currentPane.key);
// const newPanes = [];
// if (currentPaneIndex > 0 && currentPane.fromKey === '1') {
// panes.forEach((item, index) => {
// if (index !== currentPaneIndex) {
// newPanes.push(item);
// }
// });
// that.props.dispatch({ type: 'app/removePane', payload: { changePanes: newPanes, currentPane: panes[currentPaneIndex - 1] } });/* 关闭当前页签 */
// }
// }
// onGetDataOk(masterConfig, slaveConfig, slave1Config);
// onSaveStateOk({ enabled: false });
// if (commonUtils.isNotEmptyObject(copyTo)) {
// const { slaveData } = copyTo;
// const sIdArray = [];
// if(commonUtils.isNotEmptyArr(slaveData)) {
// slaveData.forEach((item) => {
// const redisKey = item.sSlaveId;
// sIdArray.push(redisKey);
// });
// }
// /* 处理只有单主表解锁问题 */
// if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyObject(masterData.sSrcSlaveId)) {
// sIdArray.push(masterData.sSrcSlaveId);
// }
// const sId = sIdArray.toString();
// onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null);
// }
// onSendSocketMessage('release', 'noAction', currentId, userinfo.sId, null, null);
// },
onCancel() {},
});
};
/* 删除 */
handleDel = obj => {
const props = { ...this.props, ...this.state };
const onOkDel = this.handleOkDel;
confirm({
title: obj.title,
onOk() {
onOkDel(props);
},
onCancel() {},
});
};
/* 确定要删除 */
handleOkDel = async props => {
/* 数据参数 */
const { token, sModelsId, sModelsType, masterConfig, masterData, slaveConfig, slave1Config, orderDetailConfig, app, formData } = props;
const { userinfo, systemData } = app;
const { sMakePerson } = masterData; /* 本单据制单人 */
const { sUserName, sType } = userinfo; /* 登录用户 */
const iIndex = systemData.findIndex(item => item.sName === "CkxModifyBillNoMakePerson");
if (iIndex > -1) {
const sValue = systemData[iIndex].sValue;
if (sValue === "0") {
/* 系统未启用非制单人修改单据,普通用户非制单人不可以修改制单人的单据 */
if (sType !== "sysadmin" && sUserName !== sMakePerson) {
message.error(commonFunc.showMessage(app.commonConst, "NoDelByNoMakePerson"));
return;
}
}
}
const value = {
sClientType: "1",
data: {
sMasterTable: masterConfig.sTbName,
sId: [masterData.sId],
},
};
const sSlaveTable = [];
if (commonUtils.isNotEmptyObject(slaveConfig)) {
sSlaveTable.push({
tableName: slaveConfig.sTbName,
relationName: "sParentId",
});
}
if (commonUtils.isNotEmptyObject(slave1Config)) {
sSlaveTable.push({
tableName: slave1Config.sTbName,
relationName: "sParentId",
});
}
if (sModelsType === "purchase/purchaseOrder") {
let orderDetailConfig = {};
let orderDetailConfigArr = formData.filter(item => item.bGrd && item.sTbName === "purpurchaseorderDetail");
if (commonUtils.isNotEmptyArr(orderDetailConfigArr)) {
orderDetailConfig = orderDetailConfigArr[0];
}
if (commonUtils.isNotEmptyObject(orderDetailConfig)) {
sSlaveTable.push({
tableName: orderDetailConfig.sTbName,
relationName: "sParentId",
});
}
}
value.sSlaveTable = sSlaveTable;
const { sBillNo, sId } = masterData || {};
const url = `${commonConfig.server_host}business/delMasSlaBusinessData?sModelsId=${sModelsId}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`;
/* 接收返回值 */
const { data } = await commonServices.postValueService(token, value, url);
if (data.code === 1) {
/* 数据删除成功 */
if (this.props.app.currentPane.refresh !== undefined) {
this.props.app.currentPane.refresh();
}
if(location.pathname.includes(('commobilePadBill'))){
this.handleDelDataSuccessPad(props);
} else {
this.handleDelDataSuccess(props);
}
} else {
/* 失败 */
this.props.getServiceError(data);
}
};
/* 数据删除成功跳转到新路由即pane */
handleDelDataSuccess = props => {
if(location.pathname.includes(('commobilePadBill'))){
window.history.back(-1);
setTimeout(() => {
this.props.dispatch({ type: "app/refreshPage" });
}, 100);
return;
}
const { app } = props;
let { panes, currentPane } = app;
/* 删除单据后退出当前路由后,标签panes变化后的集合 */
panes = panes.filter(pane => pane.key !== currentPane.key);
/* 跳转到panes集合的最后一个路由,因为panes集合一定含有主页路由所以panes的集合大于等于1 */
currentPane = panes[panes.length - 1];
this.props.onRemovePane(panes, currentPane);
};
handleDelDataSuccessPad = props => {
window.history.back(-1);
setTimeout(() => {
this.props.dispatch({ type: "app/refreshPage" });
// history.push(location.pathname);
}, 100);
};
/** 添加表格空行 */
handleTableAdd = (name, isWait) => {
/* 从CommonBase获取默认参数 */
const { masterData, masterConfig, sModelsType, app } = this.props;
let { [`${name}Data`]: tableData } = this.props;
tableData = commonUtils.isEmptyObject(tableData) ? [] : tableData;
const tableDataRow = this.props.onDataRowAdd(name, true);
/* 添加行的业务处理拿出去 */
if (sModelsType.includes("sales/")) {
if (commonUtils.isEmptyStr(masterData.sCustomerId)) {
const iIndex = masterConfig.gdsconfigformslave.findIndex(
item => (item.sName === "sCustomerId" || item.sName === "sCustomerNo" || item.sName === "sCustomerName") && item.bVisible
);
if (iIndex > -1) {
const { showName } = masterConfig.gdsconfigformslave[iIndex];
message.warn(showName + commonFunc.showMessage(app.commonConst, "isNotNull")); // 不能为空
return;
}
}
}
tableDataRow.sWareHouseId = masterData.sWareHouseId;
tableDataRow.sWareHouseNo = masterData.sWareHouseNo;
tableDataRow.sWareHouseName = masterData.sWareHouseName;
tableDataRow.sLocationId = masterData.sLocationId;
tableDataRow.sLocationNo = masterData.sLocationNo;
tableDataRow.sLocationName = masterData.sLocationName;
tableDataRow.sWareHouseLocationId = masterData.sWareHouseLocationId;
tableDataRow.sWareHouseLocationNo = masterData.sWareHouseLocationNo;
tableDataRow.sWareHouseLocationName = masterData.sWareHouseLocationName;
if (isWait) {
return tableDataRow;
} else if (commonUtils.isNotEmptyObject(tableDataRow)) {
tableData.push(tableDataRow);
this.props.onSaveState({
[`${name}Data`]: tableData,
[`${name}Pagination`]: { total: tableData.length, current: 9999 },
[`${name}SelectedRowKeys`]: [tableDataRow.sId],
});
}
};
/* 新增子级 */
handleTableAddChild = (name, flag, bchild) => {
/* 从CommonBase获取默认参数 */
const {
masterData,
masterConfig,
sModelsType,
app,
[`${name}Pagination`]: tablePagination,
slaveSelectedRowKeys,
[`${name}SelectedRowKeys`]: tableSelectedRowKeys,
} = this.props;
let { [`${name}Data`]: tableData } = this.props;
tableData = commonUtils.isEmptyObject(tableData) ? [] : tableData;
if (name === "slave" && bchild === "childNode") {
const tableDataRow = this.props.onDataRowAdd(name, true);
if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
message.error("请选择数据!");
return;
}
const iSlaveIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]);
if (iSlaveIndex > -1) {
const slaveRow = tableData[iSlaveIndex];
if (commonUtils.isNotEmptyObject(slaveRow)) {
tableDataRow.sFatherSlaveId = slaveRow.sId;
if (commonUtils.isNotEmptyObject(tableDataRow)) {
tableData.push(tableDataRow);
this.props.onSaveState({
[`${name}Data`]: tableData,
[`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 },
[`${name}SelectedRowKeys`]: [tableDataRow.sId],
});
}
}
}
}
};
/** 复制 */
handleTableCopy = (name, isWait) => {
const { [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props;
if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
message.warn(commonFunc.showMessage(this.props.app.commonConst, "pleaseChooseCopyData")); /* 请选择复制数据 */
} else {
for (const sId of tableSelectedRowKeys) {
const tableDataIndex = tableData.findIndex(item => item.sId === sId);
if (tableDataIndex > -1) {
const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
tableDataRow.sId = commonUtils.createSid();
tableDataRow.handleType = "add";
tableDataRow.key = tableDataRow.sId;
tableDataRow.sSrcSlaveId = "";
tableDataRow.sSrcId = "";
tableDataRow.dSrcQty = null;
if (commonUtils.isNotEmptyObject(tableDataRow.sMaterialsMemo)) {
tableDataRow.sMaterialsMemo = "";
}
if (commonUtils.isNotEmptyObject(tableDataRow.sProcessMemo)) {
tableDataRow.sProcessMemo = "";
}
if (isWait) {
return tableDataRow;
} else if (commonUtils.isNotEmptyObject(tableDataRow)) {
tableData.push(tableDataRow);
this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}Pagination`]: { total: tableData.length, current: 9999 } });
}
}
}
}
};
handleTableCopyTo = (name, toname, isWait) => {
const { [`${name}Data`]: tableData, [`${toname}Data`]: tablePersonData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props;
if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
message.warn(commonFunc.showMessage(this.props.app.commonConst, "pleaseChooseCopyData")); /* 请选择复制数据 */
} else {
for (const sId of tableSelectedRowKeys) {
const tableDataIndex = tableData.findIndex(item => item.sId === sId);
if (tableDataIndex > -1) {
const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
tableDataRow.sId = commonUtils.createSid();
tableDataRow.handleType = "add";
tableDataRow.key = tableDataRow.sId;
if (isWait) {
return tableDataRow;
} else if (commonUtils.isNotEmptyObject(tableDataRow)) {
if (commonUtils.isNotEmptyObject(toname)) {
tablePersonData.push(tableDataRow);
this.props.onSaveState({
[`${toname}Data`]: tablePersonData,
[`${toname}Pagination`]: { total: tablePersonData.length, current: 9999 },
});
message.success("操作成功!");
} else {
tableData.push(tableDataRow);
this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}Pagination`]: { total: tableData.length, current: 9999 } });
}
}
}
}
}
};
/** 复制全部 */
handleTableCopyAll = (name, isWait) => {
const { slaveData, controlData, slaveSelectedRowKeys, slave0Data } = this.props;
let { processData } = this.props;
if (name === "slave") {
if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
message.warn(commonFunc.showMessage(this.props.app.commonConst, "pleaseChooseCopyData")); /* 请选择复制数据 */
} else {
for (const sId of slaveSelectedRowKeys) {
const slaveDataIndex = slaveData.findIndex(item => item.sId === sId);
if (slaveDataIndex > -1) {
const slaveDataRow = JSON.parse(JSON.stringify(slaveData[slaveDataIndex]));
slaveDataRow.sId = commonUtils.createSid();
slaveDataRow.handleType = "add";
slaveDataRow.key = slaveDataRow.sId;
slaveData.push(slaveDataRow);
if (commonUtils.isNotEmptyArr(controlData)) {
controlData
.filter(itemControl => itemControl.sSlaveId === sId)
.forEach(itemControl => {
const tableDataRow = JSON.parse(JSON.stringify(itemControl));
tableDataRow.sId = commonUtils.createSid();
tableDataRow.handleType = "add";
tableDataRow.key = tableDataRow.sId;
tableDataRow.sSlaveId = slaveDataRow.sId;
controlData.push(tableDataRow);
/* 部件表复制其材料表、工序表 */
slave0Data
.filter(item => item.sControlId === itemControl.sId && item.sType !== "2")
.forEach(item => {
const slave0Row = JSON.parse(JSON.stringify(item));
slave0Row.sId = commonUtils.createSid();
slave0Row.handleType = "add";
slave0Row.sControlId = tableDataRow.sId;
slave0Row.sPartsName = tableDataRow.sPartsName;
slave0Row.sSlaveId = tableDataRow.sSlaveId;
slave0Data.push(slave0Row);
});
processData
.filter(item => item.sControlId === itemControl.sId && item.sType !== "3")
.forEach(item => {
const processRow = JSON.parse(JSON.stringify(item));
processRow.sId = commonUtils.createSid();
processRow.handleType = "add";
processRow.sControlId = tableDataRow.sId;
processRow.sPartsName = tableDataRow.sPartsName;
processRow.sSlaveId = tableDataRow.sSlaveId;
processData.push(processRow);
});
processData = this.sortData(controlData, processData);
});
}
if (commonUtils.isNotEmptyArr(slave0Data)) {
/* 订单从表复制全部 复制成品材料 */
slave0Data
.filter(item => item.sSlaveId === sId && item.sType === "2")
.forEach(slave0Item => {
const slave0Row = JSON.parse(JSON.stringify(slave0Item));
slave0Row.handleType = "add";
slave0Row.sId = commonUtils.createSid();
slave0Row.sSlaveId = slaveDataRow.sId;
slave0Data.push(slave0Row);
});
}
if (commonUtils.isNotEmptyArr(processData)) {
/* 订单从表复制全部 复制成品工序 */
processData
.filter(item => item.sSlaveId === sId && item.sType === "3")
.forEach(processItem => {
const processRow = JSON.parse(JSON.stringify(processItem));
processRow.handleType = "add";
processRow.sId = commonUtils.createSid();
processRow.sSlaveId = slaveDataRow.sId;
processData.push(processRow);
});
}
}
this.props.onSaveState({
slaveData,
[`${name}Pagination`]: { total: slaveData.length, current: 9999 },
controlData,
slave0Data,
processData,
});
}
}
} else if (name === "control") {
const { [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props;
if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
message.warn(commonFunc.showMessage(this.props.app.commonConst, "pleaseChooseCopyData")); /* 请选择复制数据 */
} else {
for (const sId of tableSelectedRowKeys) {
const tableDataIndex = tableData.findIndex(item => item.sId === sId);
if (tableDataIndex > -1) {
const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex]));
tableDataRow.sId = commonUtils.createSid();
tableDataRow.handleType = "add";
tableDataRow.key = tableDataRow.sId;
if (isWait) {
return tableDataRow;
} else if (commonUtils.isNotEmptyObject(tableDataRow)) {
tableData.push(tableDataRow);
/* 部件表复制其材料表、工序表 */
slave0Data
.filter(item => item.sControlId === sId && item.sType !== "2")
.forEach(item => {
const slave0Row = JSON.parse(JSON.stringify(item));
slave0Row.sId = commonUtils.createSid();
slave0Row.handleType = "add";
slave0Row.sControlId = tableDataRow.sId;
slave0Row.sPartsName = tableDataRow.sPartsName;
slave0Data.push(slave0Row);
});
processData
.filter(item => item.sControlId === sId && item.sType !== "3")
.forEach(item => {
const processRow = JSON.parse(JSON.stringify(item));
processRow.sId = commonUtils.createSid();
processRow.handleType = "add";
processRow.sControlId = tableDataRow.sId;
processRow.sPartsName = tableDataRow.sPartsName;
processData.push(processRow);
});
processData = this.sortData(tableData, processData);
this.props.onSaveState({
[`${name}Data`]: tableData,
[`${name}Pagination`]: { total: tableData.length, current: 9999 },
slave0Data,
processData,
});
}
}
}
}
}
};
handleCloseProductProcessInfoChooseModal = () => {
this.props.onSaveState({
productProcessInfoChooseVisible: false,
});
};
singlePQtyChange = tableDataRow => {
const bZfZf = tableDataRow.iPrintMode === 2; // 正反版
const bSample = tableDataRow.dSumPQty >= 4; // 样本
tableDataRow.iPrintModePo = tableDataRow.iPrintMode <= 2 ? 2 : tableDataRow.iPrintMode === 3 ? 0 : -1;
if (bSample) {
if (tableDataRow.dSinglePQty > 0) {
tableDataRow.dPlateQty = Math.ceil(tableDataRow.dSumPQty / tableDataRow.dSinglePQty);
}
if (bZfZf && tableDataRow.iPrintModePo === 2) {
// 双面样本,正反
if (tableDataRow.dPlateQty < 2) {
// 不管建议放正自翻版了,点方式什么是什么
tableDataRow.dPlateQty = 2;
tableDataRow.iStick = Math.ceil(commonUtils.isNull(tableDataRow.dPlateQty, 0) / 2);
tableDataRow.dSumPlateQty =
tableDataRow.iStick *
(commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
} else {
if (tableDataRow.iPrintModePo !== 2) {
// 单面样本
tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
tableDataRow.dSumPlateQty =
tableDataRow.iStick *
(commonUtils.isNull(tableDataRow.iPositiveColor, 0) + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
} else {
tableDataRow.dPlateQty =
commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty / 2);
}
tableDataRow.dSumPlateQty =
tableDataRow.iStick *
(commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
}
} else {
if (tableDataRow.iPrintModePo !== 2) {
// 单面样本
tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty;
} else {
tableDataRow.dPlateQty =
commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1);
}
tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty);
tableDataRow.dSumPlateQty =
tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
}
if (tableDataRow.iStick > 0 && tableDataRow.dSinglePQty > 0) {
tableDataRow.dMachineQty = commonUtils.convertFixNum(
(commonUtils.isNull(tableDataRow.dPartsQty, 0) * commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) /
tableDataRow.dSinglePQty /
tableDataRow.iStick,
0
);
tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
}
} else {
tableDataRow.iStick = 1;
tableDataRow.dSumPlateQty =
tableDataRow.iStick *
(commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
if (bZfZf && tableDataRow.iPrintModePo === 2) {
tableDataRow.dPlateQty = 2;
tableDataRow.dSumPlateQty =
tableDataRow.iStick *
(commonUtils.isNull(tableDataRow.iPositiveColor, 0) +
commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) +
commonUtils.isNull(tableDataRow.iOppositeColor, 0) +
commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0));
} else {
tableDataRow.dPlateQty = 1;
tableDataRow.dSumPlateQty =
tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0));
}
if (tableDataRow.dSinglePQty > 0) {
if (tableDataRow.iPage > 1) {
// 笔记本 用 非样本 来做, 倍率是每页都一样才可以用 原先 /2 是指页数, 现在直接按张数
tableDataRow.dMachineQty = commonUtils.convertFixNum((tableDataRow.dPartsQty * tableDataRow.iPage) / tableDataRow.dSinglePQty, 0);
} else {
tableDataRow.dMachineQty = commonUtils.convertFixNum(commonUtils.isNull(tableDataRow.dPartsQty, 0) / tableDataRow.dSinglePQty, 0);
tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick;
}
}
}
return tableDataRow;
};
/** 表格数据更改 */
// name 不写完整的state名称作用为了要用到total // (name, changeValue, sId, dropDownData)
handleTableChange = async (name, sFieldName, changeValue, sId, dropDownData, isWait) => {
/* 从CommonBase获取默认参数 */
const { [`${name}Data`]: tableData, sModelsType, sModelsId, token, app, slaveConfig, slave0Data, slaveData } = this.props;
const { dNetMoney, dNetPrice } = app.decimals;
if (name === "control" && sModelsType === "sales/salesOrder") {
const { [`${name}Data`]: tableData, slave0Data: slave0DataOld, slave2Data: slave2DataOld } = this.props;
let tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
if (tableDataRow === undefined) return;
if (
sFieldName === "dSinglePQty" ||
sFieldName === "dSumPQty" ||
sFieldName === "iPrintModePo" ||
sFieldName === "iPrintMode" ||
sFieldName === "iPrintModePo" ||
sFieldName === "iPositiveColor" ||
sFieldName === "iPositiveSpecialColor" ||
sFieldName === "iOppositeColor" ||
sFieldName === "iOppositeSpecialColor"
) {
if (sFieldName === "iPrintModePo") {
if (tableDataRow.iPrintModePo === 0) {
tableDataRow.iPrintMode = 3;
if (tableDataRow.iPositiveColor === 0) {
tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
tableDataRow.iOppositeColor = 0;
tableDataRow.iOppositeSpecialColor = 0;
} else {
tableDataRow.iOppositeColor = 0;
tableDataRow.iOppositeSpecialColor = 0;
}
} else if (tableDataRow.iPrintModePo === 1) {
tableDataRow.iPrintMode = 3;
if (tableDataRow.iPositiveColor === 0) {
tableDataRow.iPositiveColor = 0;
tableDataRow.iPositiveSpecialColor = 0;
tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? 4 : tableDataRow.iOppositeColor;
} else {
tableDataRow.iPositiveColor = 0;
tableDataRow.iPositiveSpecialColor = 0;
}
} else {
tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
}
} else if (sFieldName === "iPrintMode") {
if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
tableDataRow.iPositiveColor =
commonUtils.isEmpty(tableDataRow.iPositiveColor) || tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
} else if (tableDataRow.iPrintMode === 2) {
tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor;
} else if (tableDataRow.iPrintMode === 3) {
tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor;
tableDataRow.iOppositeColor = 0;
tableDataRow.iOppositeSpecialColor = 0;
} else if (tableDataRow.iPrintMode === 4) {
tableDataRow.iPositiveColor = 0;
tableDataRow.iPositiveSpecialColor = 0;
tableDataRow.iOppositeColor = 0;
tableDataRow.iOppositeSpecialColor = 0;
}
} else if (sFieldName === "iPositiveColor" || sFieldName === "iPositiveSpecialColor") {
if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) {
tableDataRow.iOppositeColor = tableDataRow.iPositiveColor;
tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor;
}
}
tableDataRow = this.singlePQtyChange(tableDataRow);
}
const slave0Data = [];
const slave2Data = [];
slave0DataOld.forEach(item => {
const itemNew = { ...item };
if (itemNew.sControlId === sId) {
itemNew.sPartsName = tableDataRow.sPartsName;
}
slave0Data.push(itemNew);
});
slave2DataOld.forEach(item => {
const itemNew = { ...item };
if (itemNew.sControlId === sId) {
itemNew.sPartsName = tableDataRow.sPartsName;
}
slave2Data.push(itemNew);
});
const slave0DataNew = this.sortData(tableData, slave0Data);
const slave2DataNew = this.sortData(tableData, slave2Data);
const iIndex = tableData.findIndex(item => item.sId === sId);
tableData[iIndex] = tableDataRow;
this.props.onSaveState({ [`${name}Data`]: tableData, slave0Data: slave0DataNew, slave2Data: slave2DataNew });
} else {
let { masterData } = this.props;
const iIndex = tableData.findIndex(item => item.sId === sId);
if (
sFieldName.substring(0, 1) === "d" &&
commonUtils.convertToNum(tableData[iIndex][sFieldName]) === commonUtils.convertToNum(changeValue[sFieldName])
) {
if (!(tableData[iIndex][sFieldName] === undefined && commonUtils.convertToNum(changeValue[sFieldName]) === 0)) return;
}
if (
sFieldName === "sProductName" &&
name === "slave" &&
(sModelsType.includes("sales/salesOrder") || sModelsType.includes("manufacture/workOrder") || sModelsType.includes("quotation/quotation"))
) {
if (commonUtils.isNotEmptyObject(changeValue) && Object.keys(changeValue).length === 1 && Object.keys(changeValue)[0] === sFieldName) {
changeValue.sProductId = changeValue.sProductName;
}
}
let tableDataRow = this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true);
if (
(sFieldName === "sProductId" ||
sFieldName === "sProductName" ||
sFieldName === "sProductStyle" ||
sFieldName === "sProductUnit" ||
sFieldName === "sProductNo" ||
sFieldName === "sCustomerProductNo" ||
sFieldName === "sProductClassifyId" ||
sFieldName === "sProductClassifyName") &&
!commonUtils.isEmpty(tableDataRow.sProductId)
) {
// const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', sFieldName);
let productIdDropDown;
const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === sFieldName);
if (slaveIndex > -1) {
const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, "slave", slaveConfig.gdsconfigformslave[slaveIndex]);
productIdDropDown = sqlDropDownData.dropDownData;
}
const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown)
? -1
: productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId);
if (iProductIdIndex === -1) {
tableDataRow.sProductInfo = JSON.stringify({
sProductId: tableDataRow.sProductName,
sProductName: tableDataRow.sProductName,
sProductStyle: tableDataRow.sProductStyle,
sProductUnit: tableDataRow.sProductUnit,
sProductNo: tableDataRow.sProductNo,
sCustomerProductNo: tableDataRow.sCustomerProductNo,
sProductClassifyId: tableDataRow.sProductClassifyId,
sProductClassifyName: tableDataRow.sProductClassifyName,
});
} else {
tableDataRow.sProductInfo = "";
}
if (
(sFieldName === "sProductId" || sFieldName === "sProductName" || sFieldName === "sProductNo") &&
!commonUtils.isEmpty(changeValue.sProductId)
) {
const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
const { sCustomerId } = masterData; /* 增加客户id参数 */
const value = {
sProName: "Sp_Cashier_GetProductPrice",
paramsMap: {
sProductGuid: changeValue.sProductId,
sCustomerId,
},
};
const returnData = (await commonServices.postValueService(app.token, value, url)).data;
if (returnData.code === 1) {
tableDataRow.dProductPrice = returnData.dataset.rows[0].dataSet.outData[0].dPrice;
}
// else {
// this.props.getServiceError(returnData);
// }
}
} else if (
sModelsType === "sales/salesOrder" &&
(sFieldName === "sProductClassifyId" || sFieldName === "sProductClassifyName") &&
name === "slave"
) {
const { controlData } = this.props;
if (controlData !== undefined && !commonUtils.isEmpty(tableData.sProductInfo)) {
const controlDataFilter = controlData.filter(item => item.sSlaveId === tableData[iIndex].sId);
const tableSelectedRowKeys = [];
controlDataFilter.forEach(item => {
tableSelectedRowKeys.push(item.sId);
});
const slave0ReturnData = this.otherTableDel("slave0", tableSelectedRowKeys);
const slave2ReturnData = this.otherTableDel("slave2", tableSelectedRowKeys);
const slave3ReturnData = this.props.onDataRowDel("slave3", true, tableSelectedRowKeys);
this.props.onSaveState({
...slave0ReturnData,
...slave2ReturnData,
...slave3ReturnData,
});
}
} else if (sModelsType.includes("cashier/") && sFieldName === "dTotalMoney") {
/* 付款单、收款单,从表付款/收款金额改变,会自动汇总到主表付款金额中 */
const addStata = {};
addStata.dTotalMoney = 0;
if (iIndex > -1) {
/* 选中行 */
let dMoney = commonUtils.isNotEmptyNumber(tableDataRow.dTotalMoney) ? tableDataRow.dTotalMoney : 0;
dMoney = commonUtils.convertStrToNumber(dMoney);
addStata.dTotalMoney = dMoney + commonUtils.convertStrToNumber(addStata.dTotalMoney);
}
tableData.forEach((item, index) => {
/* 非选中行 */
if (index !== iIndex) {
const dMoney = commonUtils.isNotEmptyNumber(item.dTotalMoney) ? item.dTotalMoney : 0;
addStata.dTotalMoney = commonUtils.convertFixNum(dMoney, 6) + commonUtils.convertFixNum(addStata.dTotalMoney, 6);
}
});
masterData = { ...masterData, ...addStata };
this.props.onSaveState({ masterData });
}
// 取工艺卡数据
if (
sModelsType &&
sModelsType.includes("sales/salesOrder") &&
(sFieldName === "sProductId" || sFieldName === "sProductNo" || sFieldName === "sProductName") &&
name === "slave"
) {
const { controlConfig, slave0Config, processConfig } = this.props;
let { controlData, slave0Data, processData } = this.props;
const sId = tableData[iIndex].sId;
const bCkxCopyFromTechnology = app.systemData.filter(item => item.sName === "CkxCopyFromTechnology")[0].sValue;
if (bCkxCopyFromTechnology === "1" && tableDataRow.sProductId !== tableDataRow.sProductName) {
const controlSelectedData = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => item.sSlaveId === sId) : [];
if (commonUtils.isNotEmptyObject(controlSelectedData)) {
const slave0ReturnData = this.otherTableDel("slave0", controlSelectedData);
const processReturnData = this.otherTableDel("process", controlSelectedData);
const controlReturnData = this.props.onDataRowDel("control", true, controlSelectedData);
controlData = controlReturnData.controlData;
slave0Data = slave0ReturnData.slave0Data;
processData = processReturnData.processData;
this.props.onSaveState({
...slave0ReturnData,
...processReturnData,
...controlReturnData,
});
}
const sCustomerId = masterData.sCustomerId;
const sProductId = changeValue.sProductId;
const sProductIdArray = [];
sProductIdArray.push(sProductId);
const sProductIds = sProductIdArray.toString();
const condition = { sCustomerId, sProductIds, sType: "select" };
const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`;
const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
const config = this.props.masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes("BtnCopyFrom.ActProcessCard"));
if (dataReturn.code === 1) {
const returnData = dataReturn.dataset.rows[0];
const copyToControlConfig = config.filter(
item => item.sControlName.toLowerCase() === "BtnCopyFrom.ActProcessCard.Control".toLowerCase()
);
const copyToSlave0Config = config.filter(item => item.sControlName.toLowerCase() === "BtnCopyFrom.ActProcessCard.Slave0".toLowerCase());
const copyToProcessConfig = config.filter(
item => item.sControlName.toLowerCase() === "BtnCopyFrom.ActProcessCard.Process".toLowerCase()
);
const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : "";
const slave0AssignField = commonUtils.isNotEmptyArr(copyToSlave0Config) ? copyToSlave0Config[0].sAssignField : "";
const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : "";
const newCopyTo = {};
newCopyTo.master = masterData;
newCopyTo.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData;
/* 订单选择产品 调用工艺卡数据 */
if (commonUtils.isNotEmptyArr(returnData.slaveData)) {
returnData.slaveData.forEach(slaveItem => {
/* 从工艺卡数据集 找到从表相同产品ID,客户ID */
if (slaveItem.sProductId === tableDataRow.sProductId) {
/* 选中当前行 */
tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(slaveAssignField, slaveItem, newCopyTo) }; // 取赋值字段
// tableDataRow.sFatherSlaveId = slaveItem.sFatherSlaveId;
tableDataRow.sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */
tableDataRow.sBatchNo = tableDataRow.sId; /* 添加批次行 */
tableData[iIndex] = { ...tableData[iIndex], ...tableDataRow }; // 取赋值字段
} else {
/* 其他数据 新增 */
newCopyTo.slave = slaveItem;
let slaveRow = {};
slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(slaveAssignField, slaveItem, newCopyTo) }; // 取赋值字段
slaveRow.handleType = "add";
slaveRow.sFatherSlaveId = slaveItem.sFatherSlaveId;
slaveRow.sId = commonUtils.createSid();
slaveRow.sParentId = masterData.sId;
slaveRow.sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */
slaveRow.sBatchNo = tableDataRow.sId; /* 添加批次行 */
tableData.push(slaveRow);
}
});
}
/* 若有层级 则拼装新的slaveData层级 */
const tableFilterData = tableData.filter(item => item.sBatchNo === tableDataRow.sId);
if (commonUtils.isNotEmptyArr(tableFilterData)) {
const slaveNewData = commonUtils.genTreeDataByArrSales(tableFilterData, "sId", "sFatherSlaveId");
if (commonUtils.isNotEmptyArr(slaveNewData)) {
slaveNewData.forEach(item => {
const iIndex = tableData.findIndex(row => row.sId === item.sId);
if (iIndex > -1) {
tableData[iIndex] = { ...tableData[iIndex], ...item };
}
});
}
}
if (commonUtils.isNotEmptyArr(returnData.controlData)) {
// eslint-disable-next-line no-loop-func
returnData.controlData.forEach(controlItem => {
newCopyTo.control = controlItem;
const newSid = commonUtils.createSid();
let controlRow = commonFunc.getDefaultData(controlConfig, newCopyTo, { newSid }); // 取默认值
controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
controlRow.handleType = "add";
controlRow.sId = newSid;
controlRow.sSlaveId = tableDataRow.sId;
controlRow.sParentId = masterData.sId;
controlData.push(controlRow);
if (commonUtils.isNotEmptyArr(returnData.slave0Data)) {
returnData.slave0Data
.filter(item => item.sControlId === controlItem.sId)
.forEach(slave0Item => {
newCopyTo.slave0 = slave0Item;
const newSid = commonUtils.createSid();
let slave0Row = commonFunc.getDefaultData(slave0Config, newCopyTo, { newSid }); // 取默认值
slave0Row = { ...slave0Row, ...commonFunc.getAssignFieldValue(slave0AssignField, slave0Item, newCopyTo) }; // 取赋值字段
slave0Row.handleType = "add";
slave0Row.sId = newSid;
slave0Row.sSlaveId = tableDataRow.sId;
slave0Row.sParentId = masterData.sId;
slave0Row.sControlId = controlRow.sId;
slave0Row.sPartsName = controlRow.sPartsName;
slave0Data.push(slave0Row);
});
}
if (commonUtils.isNotEmptyArr(returnData.processData)) {
returnData.processData
.filter(item => item.sControlId === controlItem.sId)
.forEach(processItem => {
newCopyTo.process = processItem;
const newSid = commonUtils.createSid();
let processRow = commonFunc.getDefaultData(processConfig, newCopyTo, { newSid }); // 取默认值
processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
processRow.handleType = "add";
processRow.sId = newSid;
processRow.sSlaveId = tableDataRow.sId;
processRow.sParentId = masterData.sId;
processRow.sControlId = controlRow.sId;
processRow.sPartsName = controlRow.sPartsName;
processData.push(processRow);
});
}
});
}
if (commonUtils.isNotEmptyArr(returnData.slave0Data)) {
// eslint-disable-next-line no-loop-func
returnData.slave0Data
.filter(item => item.sType === "2")
.forEach(slave0Item => {
newCopyTo.slave0 = slave0Item;
const newSid = commonUtils.createSid();
let slave0Row = commonFunc.getDefaultData(slave0Config, newCopyTo, { newSid }); // 取默认值
slave0Row = { ...slave0Row, ...commonFunc.getAssignFieldValue(slave0AssignField, slave0Item, newCopyTo) }; // 取赋值字段
slave0Row.handleType = "add";
slave0Row.sId = newSid;
slave0Row.sSlaveId = tableDataRow.sId;
slave0Row.sParentId = masterData.sId;
slave0Data.push(slave0Row);
});
}
if (commonUtils.isNotEmptyArr(returnData.processData)) {
// eslint-disable-next-line no-loop-func
returnData.processData
.filter(item => item.sType === "3")
.forEach(processItem => {
newCopyTo.process = processItem;
const newSid = commonUtils.createSid();
let processRow = commonFunc.getDefaultData(processConfig, newCopyTo, { newSid }); // 取默认值
processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
processRow.handleType = "add";
processRow.sId = newSid;
processRow.sSlaveId = tableDataRow.sId;
processRow.sParentId = masterData.sId;
processData.push(processRow);
});
}
this.props.onSaveState({ controlData, slave0Data, processData });
}
}
} else if (
sModelsType === "sales/salesOrder" &&
(sFieldName === "dProductQty" || sFieldName === "dGiveQty" || sFieldName === "dStockupQty") &&
name === "slave"
) {
const { controlData, slaveSelectedRowKeys } = this.props;
const controlSelectedData = controlData.filter(item => item.sSlaveId === slaveSelectedRowKeys[0]);
for (const one of controlSelectedData) {
one.dPartsQty = commonUtils.isNull(tableDataRow.dProductQty, 0) + commonUtils.isNull(tableDataRow.dGiveQty, 0);
}
this.props.onSaveState({ controlData });
} else if (
sModelsType.includes("purchase/") &&
(sFieldName === "sMaterialsId" || sFieldName === "sMaterialsNo" || sFieldName === "sMaterialsName") &&
name === "slave"
) {
const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
const value = {
sProName: "Sp_Cashier_GetMaterialsPrice",
paramsMap: {
sMaterialsGuid: changeValue.sMaterialsId,
sSupplyGuid: masterData.sSupplyId,
},
};
const returnData = (await commonServices.postValueService(app.token, value, url)).data;
if (returnData.code === 1) {
tableDataRow.dMaterialsPrice = returnData.dataset.rows[0].dataSet.outData[0].dPrice;
}
// else {
// this.props.getServiceError(returnData);
// }
} else if (sModelsType === "sales/salesCheck" && sFieldName === "dLossMoney" && name === "slave") {
if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcMoney) && commonUtils.isNotEmptyNumber(tableDataRow.dLossMoney)) {
const dPprice = this.props.getFloatNum("dProductPrice"); /* 获取系统设定小数位 */
tableDataRow.dProductMoney = commonUtils.convertFixNum(tableDataRow.dSrcMoney - tableDataRow.dLossMoney, dPprice);
} else if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcMoney) && commonUtils.isEmptyNumber(tableDataRow.dLossMoney)) {
tableDataRow.dProductMoney = tableDataRow.dSrcMoney;
tableDataRow.dLossMoney = 0;
}
}
/* 各种金额,税额,价格计算 */
let models =
name === "materials"
? "Materials"
: sModelsType.includes("sales/") ||
sModelsType.includes("manufacture/") ||
sModelsType.includes("quotation/") ||
sModelsType.includes("productStock/") ||
sModelsType.includes("semigoodsStock/")
? "Product"
: "Materials";
const bSaleMaterials = models === "Product" && commonUtils.isNotEmptyObject(tableDataRow.sMaterialsId);
if (
sModelsType.includes("purchase/") ||
sModelsType.includes("quotation/") ||
sModelsType.includes("manufacture/") ||
sModelsType.includes("materialsStock/") ||
sModelsType.includes("outside/") ||
sModelsType.includes("semigoodsStock/") ||
sModelsType.includes("sales/materials") ||
sModelsType === "sales/salesCheck"
) {
if (sModelsType.includes("sales/materials") || sModelsType === "sales/salesCheck" || bSaleMaterials) {
tableDataRow.dAuxiliaryQty = tableDataRow.dProductQty;
}
tableDataRow = await this.handleMaterialsChange(tableDataRow, sModelsId, masterData, changeValue, sFieldName, app, token, models);
}
if (bSaleMaterials) {
/* 如果是材料销售模块/销售对账 如果是材料 则用换算数量*单价 算金额 */
/* 材料逻辑计算 */
if (commonUtils.isNotEmptyNumber(tableDataRow.dMaterialsQty) && tableDataRow.dMaterialsQty !== 0) {
let modelsNew = "";
if (models === "Product") {
/* 计算前将Product替换为Materials */
modelsNew = "Materials";
const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */
const { dNetPrice } = app.decimals;
const dForeignPrice = tableDataRow[`d${models}ForeignPrice`];
if (commonUtils.isNotEmptyNumber(dForeignPrice)) {
/* 只有外币单价情況下 要算本位币单价 */
const dProductPrice = commonUtils.convertFixNum(dForeignPrice * dCurrencyRate, dNetPrice);
tableDataRow[`d${models}Price`] = dProductPrice;
}
tableDataRow[`dN${modelsNew}Price`] = tableDataRow[`d${models}ForeignPrice`];
tableDataRow[`d${modelsNew}ForeignPrice`] = tableDataRow[`d${models}ForeignPrice`];
tableDataRow[`d${modelsNew}Price`] = tableDataRow[`d${models}Price`];
tableDataRow[`dN${modelsNew}Money`] = tableDataRow[`dN${models}Price`];
tableDataRow[`dN${modelsNew}Money`] = tableDataRow[`d${models}ForeignMoney`];
tableDataRow[`d${modelsNew}ForeignMoney`] = tableDataRow[`d${models}ForeignMoney`];
tableDataRow[`d${modelsNew}Money`] = tableDataRow[`d${models}Money`];
tableDataRow.bSalesMaterials = true; /* 材料销售 销售对账 材料计算 */
models = "Materials";
sFieldName = commonUtils.isNotEmptyObject(sFieldName) ? sFieldName.replace("Product", "Materials") : sFieldName;
}
}
}
tableDataRow = commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, tableDataRow);
let dMaterialsMoney = "";
if (sModelsType.includes("outside/")) {
/* 工序发外 && (sFieldName === 'sSupplyName' || sFieldName === 'sProcessName' || sFieldName === 'dAuxiliaryQty') */
let sComputeId = {};
const sSupplyId = masterData.sSupplyId;
const sProcessId = tableDataRow.sProcessId;
if (commonUtils.isNotEmptyObject(sProcessId)) {
/* 根据客户id,工序id获取公式ID */
sComputeId = await commonBusiness.getOutSideProcessFormula({
token,
sModelsId,
sSupplyId,
sProcessId,
});
if (!commonUtils.isEmpty(sComputeId)) {
dMaterialsMoney = await commonBusiness.getFormulaValue({
token,
sModelsId,
masterData,
tableDataRow,
sComputeId,
});
tableDataRow.dMaterialsMoney = dMaterialsMoney;
tableDataRow = commonBusiness.getCalculateMoney(app, masterData, tableDataRow, "Materials");
}
}
/* 在detail表(加工工序)中将每一个工序都填写单价,算出金额,几个工序金额应该汇总到slave表(回厂信息)最后一道工序金额中,并要自动算单价 */
// /* 将改变数量、金额 汇总到slave0回厂信息表 */
const iSlave0ProductIndex = slave0Data.findIndex(
item => commonUtils.isNotEmptyObject(item.sCombineProcessIds) && item.sCombineProcessIds.split(",").includes(tableDataRow.sSrcSlaveId)
);
if (iSlave0ProductIndex > -1) {
const addState = {};
let dMaterialsProductMoneyAll = 0;
let dMaterialsProductPrice = 0;
const slaveORow = slave0Data[iSlave0ProductIndex];
/* 合计该组金额 */
const slaveFilterData = tableData.filter(
item => commonUtils.isNotEmptyObject(slaveORow.sCombineProcessIds) && slaveORow.sCombineProcessIds.split(",").includes(item.sSrcSlaveId)
);
if (commonUtils.isNotEmptyArr(slaveFilterData)) {
for (const one of slaveFilterData) {
if (one.sId === tableDataRow.sId) {
dMaterialsProductMoneyAll += tableDataRow.dMaterialsMoney;
} else {
dMaterialsProductMoneyAll += commonUtils.isNull(one.dMaterialsMoney, 0);
}
}
}
// /* 更新数量 */
// if(slaveORow.sCombineProcessIds){
// const sFirstId =commonUtils.isNotEmptyArr(slaveORow.sCombineProcessIds.split(',')) ? slaveORow.sCombineProcessIds.split(',')[0] : '' ; /* 找到第一条 */
// if(sFirstId === tableDataRow.sSrcSlaveId) {
// addState.dAuxiliaryQty = tableDataRow.dAuxiliaryQty;
// addState.dMaterialsQty = tableDataRow.dMaterialsQty;
// }
// }
/* 更新数量(取同一部件,工序名称相同项数据的数量) */
if (slaveORow.sCombineProcessIds) {
const sCombineProcessIdsArr = slaveORow.sCombineProcessIds.split(",");
if (tableDataRow.sProcessName === slaveORow.sProcessName && sCombineProcessIdsArr.includes(tableDataRow.sSrcSlaveId)) {
addState.dAuxiliaryQty = tableDataRow.dAuxiliaryQty;
addState.dMaterialsQty = tableDataRow.dMaterialsQty;
}
}
if (dMaterialsProductMoneyAll !== 0) {
if (tableDataRow.dAuxiliaryQty !== 0) {
dMaterialsProductPrice = commonUtils.convertFixNum(dMaterialsProductMoneyAll / slaveORow.dMaterialsQty, dNetPrice);
}
addState.dMaterialsMoney = dMaterialsProductMoneyAll;
addState.dMaterialsPrice = dMaterialsProductPrice;
}
addState.handleType = commonUtils.isEmpty(slave0Data[iSlave0ProductIndex].handleType)
? "update"
: slave0Data[iSlave0ProductIndex].handleType;
slave0Data[iSlave0ProductIndex] = { ...slave0Data[iSlave0ProductIndex], ...addState };
slave0Data[iSlave0ProductIndex] = commonBusiness.getCalculateMoney(app, masterData, slave0Data[iSlave0ProductIndex], "Materials");
}
this.props.onSaveState({ slave0Data, slaveData });
} else if (
sModelsType === "outside/outsideprocess1" &&
(sFieldName === "sSupplyName" || sFieldName === "sProcessName" || sFieldName === "dAuxiliaryQty")
) {
/* 工序发外 */
tableDataRow = commonBusiness.getCalculateMoney(app, masterData, tableDataRow, "Materials");
}
// 是否默认只能勾选一个
if (["bDefault"].includes(sFieldName)) {
if (changeValue.bDefault) {
tableData.forEach(i => {
i && i.bDefault && (i.bDefault = false);
});
}
}
if (isWait) {
return tableDataRow;
} else {
tableData[iIndex] = tableDataRow;
this.props.onSaveState({ [`${name}Data`]: tableData, enabled: true });
}
}
};
/** 删除表格数据 */
otherTableDel = (name, tableSelectedRowKeys) => {
const tableData = this.props[`${name}Data`];
let tableDelData = this.props[`${name}DelData`];
tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData;
for (const sId of tableSelectedRowKeys) {
/* 看看删除集合和从表中是否都存在该条数据 */
let tableDataIndex = tableData.findIndex(item => item.sControlId === sId);
while (tableDataIndex > -1) {
/* 删除从表中的数据并存入删除集合中 */
const slaveDataFilter = tableData[tableDataIndex];
tableData.splice(tableDataIndex, 1);
slaveDataFilter.handleType = "del";
tableDelData.push(slaveDataFilter);
tableDataIndex = tableData.findIndex(item => item.sControlId === sId);
}
}
return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] };
};
handleMaterialsChange = async (tableDataRow, sModelsId, masterData, changeValue, sFieldName, app, token, models) => {
const { sComputeId, sConversionComputeId, sReConversionComputeId } = tableDataRow;
const sFormulaIdType = tableDataRow.bInverse ? "sReComputeId" : "sComputeId"; /* 正算、反算类型 */
if (
sFieldName === "sMaterialsNo" ||
sFieldName === "sMaterialsName" ||
sFieldName === "dAuxiliaryQty" ||
sFieldName === "dReelAuxiliaryQty" ||
sFieldName === "dConversionQty" ||
sFieldName === "sMaterialsStyle" ||
sFieldName === "dProductQty"
) {
if (sFieldName === "dReelAuxiliaryQty") {
if (tableDataRow.sMaterialsUnit === "吨" && tableDataRow.bReel && tableDataRow.dGramWeight > 0) {
tableDataRow = commonBusiness.getMaterialsQty(
app,
{ ...tableDataRow, sMaterialsStyle: tableDataRow.sReelMaterialsStyle },
"dReelAuxiliaryQty",
"dMaterialsQty"
);
tableDataRow.dAuxiliaryQty = tableDataRow.dMaterialsQty;
tableDataRow.sMaterialsStyle =
tableDataRow.sMaterialsStyle !== undefined && tableDataRow.sMaterialsStyle.split("*").length > 1
? tableDataRow.sMaterialsStyle.split("*")[0]
: tableDataRow.sMaterialsStyle;
tableDataRow.sAuxiliaryUnit = tableDataRow.sMaterialsUnit;
} else if (tableDataRow.sMaterialsUnit.toUpper() === "M2" && tableDataRow.bReel) {
tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, "dReelAuxiliaryQty", "dMaterialsQty");
tableDataRow.dAuxiliaryQty = tableDataRow.dReelAuxiliaryQty;
} else {
tableDataRow.dAuxiliaryQty = tableDataRow.dReelAuxiliaryQty;
}
}
if (commonUtils.isEmpty(sComputeId) && sFieldName !== "dConversionQty") {
if (sFieldName === "dProductQty") {
tableDataRow.dMaterialsQty = await commonBusiness.getFormulaValue({
token,
sModelsId,
masterData,
tableDataRow,
sComputeId,
sFormulaIdType,
});
// tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, 'dProductQty', 'dMaterialsQty');
} else if (app.currentPane.sModelsType && app.currentPane.sModelsType.includes("outside/")) {
tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, "dAuxiliaryQty", "dMaterialsQty");
} else {
tableDataRow.dMaterialsQty = await commonBusiness.getFormulaValue({
token,
sModelsId,
masterData,
tableDataRow,
sComputeId,
sFormulaIdType,
});
}
} else if (!commonUtils.isEmpty(sComputeId)) {
tableDataRow.dMaterialsQty = await commonBusiness.getFormulaValue({
token,
sModelsId,
masterData,
tableDataRow,
sComputeId,
});
}
if (sFieldName !== "dConversionQty" && !commonUtils.isEmpty(sConversionComputeId)) {
tableDataRow.dConversionQty = await commonBusiness.getFormulaValue({
token,
sModelsId,
masterData,
tableDataRow,
sComputeId: sConversionComputeId,
});
}
} else if (sFieldName === "dMaterialsQty") {
const { sReComputeId } = tableDataRow;
if (commonUtils.isEmpty(sReComputeId) && tableDataRow.bInverse) {
if (app.currentPane.sModelsType && app.currentPane.sModelsType.includes("outside/")) {
tableDataRow = commonBusiness.getAuxiliaryQty(app, tableDataRow, sFieldName, "dAuxiliaryQty");
} else {
tableDataRow.dAuxiliaryQty = await commonBusiness.getFormulaValue({
token,
sModelsId,
masterData,
tableDataRow,
sReComputeId,
sFormulaIdType,
});
}
} else if (tableDataRow.bInverse) {
tableDataRow.dAuxiliaryQty = await commonBusiness.getFormulaValue({
token,
sModelsId,
masterData,
tableDataRow,
sComputeId: sReComputeId,
});
if (commonUtils.isNotEmptyArr(tableDataRow.dAuxiliaryQty) && tableDataRow.dAuxiliaryQty !== 0) {
tableDataRow.dProductQty = tableDataRow.dAuxiliaryQty;
}
}
if (!commonUtils.isEmpty(sReConversionComputeId)) {
tableDataRow.dConversionQty = await commonBusiness.getFormulaValue({
token,
sModelsId,
masterData,
tableDataRow,
sComputeId: sReConversionComputeId,
});
}
} else if (sFieldName === "dAuxiliaryLossQty") {
const tableDataRowNew = { ...tableDataRow, dAuxiliaryQty: tableDataRow.dAuxiliaryLossQty };
if (commonUtils.isEmpty(sComputeId)) {
// tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, sFieldName, 'dLossQty');
tableDataRow.dLossQty = await commonBusiness.getFormulaValue({
token,
sModelsId,
masterData,
tableDataRow: tableDataRowNew,
sComputeId,
sFormulaIdType,
});
} else {
tableDataRow.dLossQty = await commonBusiness.getFormulaValue({
token,
sModelsId,
masterData,
tableDataRow: tableDataRowNew,
sComputeId,
});
}
if (!commonUtils.isEmpty(tableDataRow.dSrcSurplusAuxiliaryQty)) {
tableDataRow.dAuxiliaryQty = tableDataRow.dSrcSurplusAuxiliaryQty - tableDataRow.dAuxiliaryLossQty;
tableDataRow.dMaterialsQty = commonUtils.convertFixNum(tableDataRow.dSrcSurplusQty - tableDataRow.dLossQty, 6);
}
} else if (sFieldName === "dLossQty") {
const { sReComputeId } = tableDataRow;
const tableDataRowNew = { ...tableDataRow, dMaterialsQty: tableDataRow.dLossQty };
if (commonUtils.isEmpty(sReComputeId) && tableDataRow.bInverse) {
// tableDataRow = commonBusiness.getAuxiliaryQty(app, tableDataRow, sFieldName, 'dAuxiliaryLossQty');
tableDataRow.dAuxiliaryLossQty = await commonBusiness.getFormulaValue({
token,
sModelsId,
masterData,
tableDataRow: tableDataRowNew,
sReComputeId,
sFormulaIdType,
});
} else {
tableDataRow.dAuxiliaryLossQty = await commonBusiness.getFormulaValue({
token,
sModelsId,
masterData,
tableDataRow: tableDataRowNew,
sComputeId: sReComputeId,
});
}
if (!commonUtils.isEmpty(tableDataRow.dSrcSurplusAuxiliaryQty)) {
tableDataRow.dAuxiliaryQty = tableDataRow.dSrcSurplusAuxiliaryQty - tableDataRow.dAuxiliaryLossQty;
tableDataRow.dMaterialsQty = tableDataRow.dSrcSurplusQty - tableDataRow.dLossQty;
}
} else if (sFieldName === "sProcessId" || sFieldName === "sProcessNo" || sFieldName === "sProcessName") {
const sProcessId = changeValue.sProcessId;
const url = `${commonConfig.server_host}process/outsideprocess?sModelsId=${sModelsId}&sProcessId=${sProcessId}`;
const dataReturn = (await commonServices.getService(token, url)).data;
if (dataReturn.code === 1) {
if (commonUtils.isNotEmptyArr(dataReturn.dataset.rows)) {
tableDataRow.dMaterialsPrice = dataReturn.dataset.rows[0].dMaterialsPrice;
}
tableDataRow = commonBusiness.getCalculateAllMoney(app, models, "dMaterialsPrice", masterData, tableDataRow);
}
}
return tableDataRow;
};
handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, isWait, masterDataNew) => {
// if (sFieldName === 'sZczlx' && changeValue.sZczlx === '01') {
// this.handleClearAllData();
// return;
// }
const { sModelsId, sModelsType, masterData: masterDataOld, app, masterConfig, slaveConfig, token } = this.props;
let { slaveData, slave0Data = [] } = this.props;
const addState = {};
const masterData = masterDataNew === undefined ? (masterDataOld === undefined ? {} : masterDataOld) : masterDataNew;
let bNewSlaveData = false;
if (
sModelsType &&
(sModelsType.includes("sales/") || sModelsType.includes("productStock/")) &&
(sFieldName === "sCustomerId" || sFieldName === "sCustomerNo" || sFieldName === "sCustomerName")
) {
if (commonUtils.isNotEmptyArr(slaveData)) {
// 从表有数据,请删除后修改客户!不能去掉
if (slaveData.length === 1 && commonUtils.isEmpty(slaveData[0].sProductId)) {
bNewSlaveData = true;
} else {
message.warn(commonFunc.showMessage(app.commonConst, "slaveHasDataPleaseDel"));
return;
}
}
changeValue.tGetPayDate = commonBusiness.getGeyPayDate({ ...masterData, ...changeValue });
// commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductId', []);
// commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductNo', []);
// commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductName', []);
//
// commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductId', []);
// commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductNo', []);
// commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductName', []);
}
if (sFieldName === "sSupplyId" || sFieldName === "sSupplyNo" || sFieldName === "sSupplyName") {
changeValue.tGetPayDate = commonBusiness.getGeyPayDate({ ...masterData, ...changeValue });
} else if (sFieldName === "sWareHouseId" || sFieldName === "sWareHouseNo" || sFieldName === "sWareHouseName") {
commonUtils.setStoreDropDownData(sModelsId, "slave", "sMaterialsId", []);
commonUtils.setStoreDropDownData(sModelsId, "slave", "sMaterialsNo", []);
commonUtils.setStoreDropDownData(sModelsId, "slave", "sMaterialsName", []);
if (sModelsType === "materialsStock/materialsCheck" || sModelsType === "productStock/productCheck") {
let value = {};
if (sModelsType === "materialsStock/materialsCheck") {
value = {
sProName: "Sp_System_AccountSquareCheck",
paramsMap: {
iType2: 1,
sWareHouseGuid: commonUtils.isNotEmptyObject(changeValue.sWareHouseId) ? changeValue.sWareHouseId : "",
},
};
} else if (sModelsType === "productStock/productCheck") {
value = {
sProName: "Sp_System_AccountSquareCheck",
paramsMap: {
iType2: 2,
sWareHouseGuid: commonUtils.isNotEmptyObject(changeValue.sWareHouseId) ? changeValue.sWareHouseId : "",
},
};
}
const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
const returnData = (await commonServices.postValueService(app.token, value, url)).data;
if (returnData.code === 1) {
const outData = returnData.dataset.rows[0].dataSet.outData[0];
if (outData.sCode === -1) {
message.error(outData.sReturn);
return;
}
} else {
this.props.getServiceError(returnData);
return;
}
}
} else if (sModelsType.includes("cashier/") && sFieldName === "sBillType") {
commonUtils.setStoreDropDownData(sModelsId, "master", "sCustomerId", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sCustomerNo", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sCustomerName", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sSupplyId", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sSupplyNo", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sSupplyName", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sFamilyId", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sFamilyNo", []);
commonUtils.setStoreDropDownData(sModelsId, "master", "sFamilyName", []);
changeValue.sCustomerId = "";
const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sCustomerId");
if (iIndex > -1) {
masterConfig.gdsconfigformslave[iIndex].bReGetDropDown = true;
}
changeValue.sSupplyId = "";
const iSupplyIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sSupplyId");
if (iSupplyIndex > -1) {
masterConfig.gdsconfigformslave[iSupplyIndex].bReGetDropDown = true;
}
/* 财务调整中切换调整类型后,对象名称清空 */
const sBillTypeIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sFamilyName");
if (sBillTypeIndex > -1) {
masterData.sFamilyName = "";
}
this.props.onSaveState({ masterConfig });
} else if (sFieldName === "sGetPayId") {
changeValue.tGetPayDate = commonBusiness.getGeyPayDate({ ...masterData, ...changeValue });
} else if (sFieldName === "sSettlementId") {
if (changeValue.sSettlementId === "cash") {
const sBankAccountIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sBankAccount");
if (sBankAccountIndex > -1) {
masterConfig.gdsconfigformslave[sBankAccountIndex].iTag = 1;
masterData.sBankAccount = "";
}
const sInvoiceNoIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sInvoiceNo");
if (sInvoiceNoIndex > -1) {
masterConfig.gdsconfigformslave[sInvoiceNoIndex].iTag = 1;
masterData.sInvoiceNo = "";
}
const sBankIdIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sBankId" || item.sName === "sBankName");
if (sBankIdIndex > -1) {
masterConfig.gdsconfigformslave[sBankIdIndex].iTag = 1;
masterData.sBankId = "";
masterData.sBankName = "";
}
const tDueDateIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "tDueDate");
if (tDueDateIndex > -1) {
masterConfig.gdsconfigformslave[tDueDateIndex].iTag = 1;
delete masterData.tDueDate;
}
}
if (changeValue.sSettlementId === "bank") {
const sInvoiceNoIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sInvoiceNo");
if (sInvoiceNoIndex > -1) {
masterConfig.gdsconfigformslave[sInvoiceNoIndex].iTag = 1;
masterData.sInvoiceNo = "";
}
const sBankAccountIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sBankAccount");
if (sBankAccountIndex > -1) {
masterConfig.gdsconfigformslave[sBankAccountIndex].iTag = 0;
}
const sBankIdIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sBankId" || item.sName === "sBankName");
if (sBankIdIndex > -1) {
masterConfig.gdsconfigformslave[sBankIdIndex].iTag = 0;
}
const tDueDateIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "tDueDate");
if (tDueDateIndex > -1) {
masterConfig.gdsconfigformslave[tDueDateIndex].iTag = 1;
delete masterData.tDueDate;
}
}
if (changeValue.sSettlementId === "bill") {
const sBankAccountIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sBankAccount");
if (sBankAccountIndex > -1) {
masterConfig.gdsconfigformslave[sBankAccountIndex].iTag = 1;
masterData.sBankAccount = "";
}
const sInvoiceNoIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sInvoiceNo");
if (sInvoiceNoIndex > -1) {
masterConfig.gdsconfigformslave[sInvoiceNoIndex].iTag = 0;
}
const sBankIdIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sBankId");
if (sBankIdIndex > -1) {
masterConfig.gdsconfigformslave[sBankIdIndex].iTag = 0;
}
const tDueDateIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "tDueDate");
if (tDueDateIndex > -1) {
masterConfig.gdsconfigformslave[tDueDateIndex].iTag = 0;
}
}
}
let returnData = this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true, masterData);
const masterDataAfter = commonBusiness.getKeyUpEvent(name, sFieldName, masterConfig, returnData.masterData, {}, true);
if (commonUtils.isNotEmptyObject(masterDataAfter)) {
returnData.masterData = masterDataAfter;
}
if (
sFieldName === "sSupplyId" ||
sFieldName === "sSupplyNo" ||
sFieldName === "sSupplyName" ||
sFieldName === "sWareHouseId" ||
sFieldName === "sWareHouseNo" ||
sFieldName === "sWareHouseName" ||
sFieldName === "tDeliverDate" ||
sFieldName === "sCurrency" ||
sFieldName === "dCurrencyRate" ||
sFieldName === "sCurrencyName"
) {
const slaveDataNew = [];
const models =
sModelsType.includes("sales/") || sModelsType.includes("manufacture/") || sModelsType.includes("productStock/") ? "Product" : "Materials";
for (const item of slaveData) {
let tableDataRow =
(sFieldName === "sWareHouseId" || sFieldName === "sWareHouseNo" || sFieldName === "sWareHouseName") &&
sModelsType.includes("materialsStock/productionmaterialsadjust")
? { ...item }
: { ...item, [sFieldName]: changeValue[sFieldName] };
if (sFieldName === "sSupplyId" || sFieldName === "sSupplyNo" || sFieldName === "sSupplyName") {
tableDataRow.sTaxId = changeValue.sTaxId;
tableDataRow.sTaxNo = changeValue.sTaxNo;
tableDataRow.sTaxName = changeValue.sTaxName;
tableDataRow.dTaxRate = changeValue.dTaxRate;
tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? "update" : tableDataRow.handleType;
let dMaterialsMoney = "";
if (sModelsType && sModelsType.includes("outside/")) {
/* 工序发外 */
let sComputeId = "";
const sSupplyId = changeValue.sSupplyId;
const sProcessId = tableDataRow.sProcessId;
/* 根据客户id,工序id获取公式ID */
if (commonUtils.isNotEmptyObject(sSupplyId) && commonUtils.isNotEmptyObject(sProcessId)) {
sComputeId = await commonBusiness.getOutSideProcessFormula({
token,
sModelsId,
sSupplyId,
sProcessId,
});
console.log("sComputeId", sComputeId);
if (commonUtils.isNotEmptyObject(sComputeId)) {
dMaterialsMoney = await commonBusiness.getFormulaValue({
token,
sModelsId,
masterData: returnData.masterData,
tableDataRow,
sComputeId,
});
console.log("dMaterialsMoney", dMaterialsMoney);
tableDataRow.dMaterialsMoney = dMaterialsMoney;
tableDataRow = commonBusiness.getCalculateMoney(app, returnData.masterData, tableDataRow, "Materials");
}
// else {
// tableDataRow.dMaterialsPrice = 0;
// tableDataRow.dMaterialsMoney = 0;
// }
}
} else {
tableDataRow = commonBusiness.getCalculateAllMoney(app, models, "sTaxId", returnData.masterData, tableDataRow);
}
} else if (sFieldName === "sCurrency" || sFieldName === "dCurrencyRate" || sFieldName === "sCurrencyName") {
tableDataRow = commonBusiness.getCalculateAllMoney(app, models, `d${models}ForeignPrice`, returnData.masterData, tableDataRow);
tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? "update" : tableDataRow.handleType;
}
if (
(sFieldName === "sWareHouseId" || sFieldName === "sWareHouseNo" || sFieldName === "sWareHouseName") &&
!sModelsType.includes("materialsStock/productionmaterialsadjust")
) {
tableDataRow.sWareHouseId = changeValue.sWareHouseId;
tableDataRow.sWareHouseNo = changeValue.sWareHouseNo;
tableDataRow.sWareHouseName = changeValue.sWareHouseName;
tableDataRow.sLocationId = changeValue.sLocationId;
tableDataRow.sLocationNo = changeValue.sLocationNo;
tableDataRow.sLocationName = changeValue.sLocationName;
tableDataRow.sWareHouseLocationId = changeValue.sWareHouseLocationId;
tableDataRow.sWareHouseLocationNo = changeValue.sWareHouseLocationNo;
tableDataRow.sWareHouseLocationName = changeValue.sWareHouseLocationName;
tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? "update" : tableDataRow.handleType;
}
slaveDataNew.push(tableDataRow);
}
addState.slaveData = slaveDataNew;
// this.props.onSaveState({ slaveData: slaveDataNew });
if (sFieldName === "sSupplyId" || sFieldName === "sSupplyNo" || sFieldName === "sSupplyName") {
const slave0DataNew = [];
for (const item of slave0Data) {
let tableDataRow = { ...item };
tableDataRow.sTaxId = changeValue.sTaxId;
tableDataRow.sTaxNo = changeValue.sTaxNo;
tableDataRow.sTaxName = changeValue.sTaxName;
tableDataRow.dTaxRate = changeValue.dTaxRate;
tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? "update" : tableDataRow.handleType;
tableDataRow = commonBusiness.getCalculateMoney(app, returnData.masterData, tableDataRow, "Materials");
slave0DataNew.push(tableDataRow);
}
addState.slave0Data = slave0DataNew;
}
} else if (sFieldName === "sCustomerId" || sFieldName === "sCustomerNo" || sFieldName === "sCustomerName") {
if (commonUtils.isNotEmptyArr(slaveData)) {
// 从表有数据,请删除后修改客户!不能去掉
if (slaveData.length === 1 && commonUtils.isEmpty(slaveData[0].sProductId)) {
bNewSlaveData = true;
} else {
message.warn(commonFunc.showMessage(app.commonConst, "slaveHasDataPleaseDel"));
return;
}
}
if (bNewSlaveData && commonUtils.isEmptyArr(slaveData)) {
const slaveDataNew = [];
const allTableData = {};
allTableData.master = returnData.masterData;
const newSid = commonUtils.createSid();
const tableDataRowAdd = commonFunc.getDefaultData(slaveConfig, allTableData, { newSid });
tableDataRowAdd.handleType = "add";
tableDataRowAdd.sId = newSid;
tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
tableDataRowAdd.key = tableDataRowAdd.sId;
tableDataRowAdd.bDefault = false;
tableDataRowAdd.iOrder = 0;
slaveDataNew.push(tableDataRowAdd);
addState.slaveData = slaveDataNew;
// this.props.onSaveState({ slaveData: slaveDataNew });
}
// else if (sModelsType.includes('sales/') || sModelsType.includes('cashier/') || sModelsType.includes('manufacture/')) { // 获取应收款
// if (commonUtils.isNotEmptyObject(masterData)) {
// this.getCustomerReceipt({ masterData: returnData.masterData });
// }
// }
} else if (sFieldName === "sExpenseeName") {
let { slaveDelData, slave0DelData } = this.props;
const allTableData = {};
allTableData.master = returnData.masterData;
const newCopyTo = {};
newCopyTo.master = masterData;
const slaveDataNew = [];
const slave0DataNew = [];
if (commonUtils.isEmptyArr(slaveDelData)) {
slaveDelData = [];
}
if (commonUtils.isEmptyArr(slave0DelData)) {
slave0DelData = [];
}
//获取部门名称数据
let sDepartNameDropDown;
const masterIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sDepartName");
slaveData.forEach(item => {
item.handleType = "del";
slaveDelData.push(item);
});
if (masterIndex > -1) {
const config = masterConfig.gdsconfigformslave[masterIndex];
const slaveAssignField = config.sAssignField || "";
const sqlDropDownData = await this.props.getSqlDropDownData(
sModelsId,
"master",
masterConfig.gdsconfigformslave[masterIndex],
returnData.masterData
);
sDepartNameDropDown = sqlDropDownData.dropDownData;
sDepartNameDropDown.forEach(item => {
const newSid = commonUtils.createSid();
let tableDataRowAdd = commonFunc.getDefaultData(slaveConfig, allTableData, { newSid });
tableDataRowAdd = { ...tableDataRowAdd, ...commonFunc.getAssignFieldValue(slaveAssignField, item, newCopyTo) }; // 取赋值字段
tableDataRowAdd.handleType = "add";
tableDataRowAdd.sId = newSid;
tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
tableDataRowAdd.key = tableDataRowAdd.sId;
tableDataRowAdd.bDefault = false;
tableDataRowAdd.iOrder = 0;
slaveDataNew.push(tableDataRowAdd);
});
}
// 获取工作中心数据
let sWorkCenterNameDropDown;
const master1Index = masterConfig.gdsconfigformslave.findIndex(item => item.sName === "sWorkCenterName");
slave0Data.forEach(item => {
item.handleType = "del";
slave0DelData.push(item);
});
if (master1Index > -1) {
const config = masterConfig.gdsconfigformslave[master1Index];
const slaveAssignField = config.sAssignField || "";
const sqlDropDownData = await this.props.getSqlDropDownData(
sModelsId,
"master",
masterConfig.gdsconfigformslave[master1Index],
returnData.masterData
);
sWorkCenterNameDropDown = sqlDropDownData.dropDownData;
sWorkCenterNameDropDown.forEach(item => {
const newSid = commonUtils.createSid();
let tableDataRowAdd = commonFunc.getDefaultData(slaveConfig, allTableData, { newSid });
tableDataRowAdd = { ...tableDataRowAdd, ...commonFunc.getAssignFieldValue(slaveAssignField, item, newCopyTo) }; // 取赋值字段
tableDataRowAdd.handleType = "add";
tableDataRowAdd.sId = newSid;
tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
tableDataRowAdd.key = tableDataRowAdd.sId;
tableDataRowAdd.bDefault = false;
tableDataRowAdd.iOrder = 1;
slave0DataNew.push(tableDataRowAdd);
});
}
addState.slaveData = slaveDataNew;
addState.slaveDelData = slaveDelData;
addState.slave0Data = slave0DataNew;
addState.slave0DelData = slave0DelData;
}
const models =
name === "materials"
? "Materials"
: sModelsType.includes("sales/") ||
sModelsType.includes("manufacture/") ||
sModelsType.includes("quotation/") ||
sModelsType.includes("productStock/") ||
sModelsType.includes("semigoodsStock/")
? "Product"
: "Materials";
if (
sModelsType.includes("purchase/") ||
sModelsType.includes("quotation/") ||
sModelsType.includes("manufacture/") ||
sModelsType.includes("materialsStock/") ||
sModelsType.includes("outside/") ||
sModelsType.includes("semigoodsStock/")
) {
const masterData = await this.handleMaterialsChange(
returnData.masterData,
sModelsId,
masterData,
changeValue,
sFieldName,
app,
token,
models
);
returnData = { ...returnData, masterData };
}
/* 将改变数量、金额 汇总到slave0回厂信息表 */
if (commonUtils.isNotEmptyArr(addState.slaveData) && commonUtils.isNotEmptyArr(addState.slave0Data)) {
const { dNetPrice } = app.decimals;
for (const tableDataRow of addState.slaveData) {
const iSlave0ProductIndex = addState.slave0Data.findIndex(
item => commonUtils.isNotEmptyObject(item.sCombineProcessIds) && item.sCombineProcessIds.split(",").includes(tableDataRow.sSrcSlaveId)
);
if (iSlave0ProductIndex > -1) {
const addState1 = {};
let dMaterialsProductMoneyAll = 0;
let dMaterialsProductPrice = 0;
const slaveORow = slave0Data[iSlave0ProductIndex];
/* 合计该组金额 */
const slaveFilterData = addState.slaveData.filter(
item => commonUtils.isNotEmptyObject(slaveORow.sCombineProcessIds) && slaveORow.sCombineProcessIds.split(",").includes(item.sSrcSlaveId)
);
if (commonUtils.isNotEmptyArr(slaveFilterData)) {
for (const one of slaveFilterData) {
if (one.sId === tableDataRow.sId) {
dMaterialsProductMoneyAll += commonUtils.isNull(tableDataRow.dMaterialsMoney, 0);
} else {
dMaterialsProductMoneyAll += commonUtils.isNull(one.dMaterialsMoney, 0);
}
}
}
/* 更新数量(取同一部件,工序名称相同项数据的数量) */
if (slaveORow.sCombineProcessIds) {
const sCombineProcessIdsArr = slaveORow.sCombineProcessIds.split(",");
if (tableDataRow.sProcessName === slaveORow.sProcessName && sCombineProcessIdsArr.includes(tableDataRow.sSrcSlaveId)) {
addState1.dAuxiliaryQty = tableDataRow.dAuxiliaryQty;
addState1.dMaterialsQty = tableDataRow.dMaterialsQty;
}
}
if (dMaterialsProductMoneyAll !== 0) {
if (tableDataRow.dAuxiliaryQty !== 0) {
dMaterialsProductPrice = commonUtils.convertFixNum(dMaterialsProductMoneyAll / slaveORow.dMaterialsQty, dNetPrice);
}
addState1.dMaterialsMoney = dMaterialsProductMoneyAll;
addState1.dMaterialsPrice = dMaterialsProductPrice;
}
addState1.handleType = commonUtils.isEmpty(addState.slave0Data[iSlave0ProductIndex].handleType)
? "update"
: addState.slave0Data[iSlave0ProductIndex].handleType;
addState.slave0Data[iSlave0ProductIndex] = { ...addState.slave0Data[iSlave0ProductIndex], ...addState1 };
addState.slave0Data[iSlave0ProductIndex] = commonBusiness.getCalculateMoney(
app,
masterData,
addState.slave0Data[iSlave0ProductIndex],
"Materials"
);
}
}
}
if (isWait) {
return { ...returnData, ...addState };
} else {
this.props.onSaveState({ ...returnData, ...addState }, () => {
if (["17038380450009419160550182640000"].includes(sModelsId)) {
if (["tYear"].includes(sFieldName)) {
this.props.onSaveState({ pageLoading: true });
this.handleButtonClick("BtnCalc").finally(() => {
this.props.onSaveState({ pageLoading: false });
});
}
}
});
return returnData;
}
};
// 清空所有数据
handleClearAllData = () => {
const { masterConfig, masterData = {}, slaveData = [] } = this.props;
const { handleType = "update", sId } = masterData;
const copyTo = {
master: masterData,
slave: slaveData,
};
const addState = {};
addState.masterData = {
...commonFunc.getDefaultData(masterConfig, copyTo),
handleType,
sId,
};
for (let i = 0; i < 11; i++) {
const num = i == 0 ? "" : i - 1;
const slaveName = `slave${num}`;
const onlySlaveName = `onlySlave${num}`;
const onlySlaveValue = this.props[onlySlaveName];
if (onlySlaveValue) {
addState[`${slaveName}Data`] = [];
if (handleType === "update") {
const slaveDataOld = this.props[`${slaveName}Data`] || [];
addState[`${slaveName}DelData`] = slaveDataOld.filter(item => item.handleType !== "add1").map(item => ({ ...item, handleType: "del" }));
}
}
}
this.props.onSaveState(addState);
};
handleBtnPrint = async (sActiveId, checked, eKey) => {
const { app, sModelsId, masterConfig, masterData, slaveConfig, sModelsType, reportData, menuChildData, formRoute, controlConfig } = this.props;
if (sModelsType === "manufacture/workOrder") {
this.handleUpdateProduction();
}
const { token } = app;
const queryFilter = {};
queryFilter[masterConfig.sId] = { sId: masterData.sId };
if (commonUtils.isNotEmptyObject(slaveConfig)) {
queryFilter[slaveConfig.sId] = { sSqlCondition: { sParentId: masterData.sId } };
}
const queryFilterJson = JSON.stringify(queryFilter);
// const masterDataJson = JSON.stringify(masterData);
/* 拿到打印报表名称 */
let printReportName = "report";
let printCustomerReportName = "report";
if (commonUtils.isNotEmptyArr(reportData)) {
const iIndex = reportData.findIndex(item => item.sId === sActiveId);
if (iIndex > -1) {
printReportName = reportData[iIndex].sReportName;
}
}
if (commonUtils.isNotEmptyArr(menuChildData)) {
const iIndex = menuChildData.findIndex(item => item.sId === sActiveId);
if (iIndex > -1) {
printCustomerReportName = menuChildData[iIndex].sReportName;
}
}
let urlPrint = "";
if (formRoute === "/indexPage/printlabel") {
if (
commonUtils.isNotEmptyObject(masterData) &&
masterData.dTrunkQty !== undefined &&
masterData.dFractionQty !== undefined &&
masterData.dPackQty !== undefined
) {
// masterData中必填的三个字段
// const param = masterDataJson;
/* 把masterData放在数组中 */
const ListData = [];
ListData.push(masterData);
const param = JSON.stringify(ListData);
if (eKey.indexOf("BtnPrint.") > -1) {
urlPrint = `${commonConfig.file_host}printReport/printPdf/${sActiveId}/${printReportName}.pdf?${
checked ? "fileType=.xlsx&" : ""
}printType=noquery&sModelsId=${sModelsId}&token=${encodeURIComponent(token)}`;
} else if (eKey.indexOf("BtnPrintCus.") > -1) {
urlPrint = `${commonConfig.file_host}printReport/printPdf/${printCustomerReportName}?${
checked ? "fileType=.xlsx&" : ""
}printType=noquery&sModelsId=${sModelsId}&token=${encodeURIComponent(token)}`;
}
/* Get提交地址栏参数过多,更改Get提交为Post提交 */
this.handleOpenPost(urlPrint, param);
} else {
const dTrunkQtyName = masterConfig.gdsconfigformslave.filter(item => item.sName === "dTrunkQty");
const dFractionQtyName = masterConfig.gdsconfigformslave.filter(item => item.sName === "dFractionQty");
const dPackQtyName = masterConfig.gdsconfigformslave.filter(item => item.sName === "dPackQty");
if (masterData.dTrunkQty === undefined && commonUtils.isNotEmptyObject(dTrunkQtyName)) {
message.error(`${dTrunkQtyName[0].showName} 必填项!`);
} else if (masterData.dFractionQty === undefined && commonUtils.isNotEmptyObject(dFractionQtyName)) {
message.error(`${dFractionQtyName[0].showName} 必填项!`);
} else if (masterData.dPackQty === undefined && commonUtils.isNotEmptyObject(dPackQtyName)) {
message.error(`${dPackQtyName[0].showName} 必填项!`);
}
return;
}
} else if (eKey.indexOf("BtnPrint.") > -1) {
let { controlSelectedRowKeys } = this.props;
/* 不出现选择框,则打印全部;出现选择框,则打印勾选的 */
let bisMutiSelect = false;
if (commonUtils.isNotEmptyObject(controlConfig) && commonUtils.isNotEmptyArr(controlConfig.gdsconfigformslave)) {
const filterData = controlConfig.gdsconfigformslave.filter(item => item.sControlName === "bisMutiSelect");
if (commonUtils.isNotEmptyArr(filterData)) {
bisMutiSelect = filterData[0].bVisible;
}
}
if (bisMutiSelect === false || bisMutiSelect === undefined) {
controlSelectedRowKeys = [];
}
urlPrint = `${commonConfig.file_host}printReport/printPdf/${sActiveId}/${printReportName}.pdf?${
checked ? "fileType=.xlsx&" : ""
}sModelsId=${sModelsId}&sMaintableId=${masterConfig.sId}&sControlIds=${
commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlSelectedRowKeys : []
}`;
} else if (eKey.indexOf("BtnPrintCus.") > -1) {
urlPrint = `${commonConfig.file_host}printReport/printPdf/${printCustomerReportName}?${
checked ? "fileType=.xlsx&" : ""
}sModelsId=${sModelsId}&sMaintableId=${masterConfig.sId}`;
}
if (formRoute !== "/indexPage/printlabel") {
window.open(`${encodeURI(`${urlPrint}&queryFilter=${queryFilterJson}`)}&token=${encodeURIComponent(token)}`);
}
};
handleOpenPost = (url, params) => {
const newWin = window.open();
let formStr = "";
formStr =
`";
newWin.document.body.innerHTML = formStr;
newWin.document.forms[0].submit();
return newWin;
};
handleUpdateProduction = async () => {
const { sModelsId, masterData } = this.props;
const { sBillNo, sId } = masterData || {};
const dataUrl = `${commonConfig.server_host}business/addUpdateDelBusinessData?sModelsId=${sModelsId}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`;
const value = {
data: [
{
sTable: "mftworkordermaster",
column: [{ handleType: "update", sId: masterData.sId, bProduction: 1 }],
},
],
sClientType: "1",
};
const dataReturn = (await commonServices.postValueService(this.props.app.token, value, dataUrl)).data;
if (dataReturn.code === 1) {
message.success(dataReturn.msg);
} else {
this.props.getServiceError(dataReturn);
}
};
handleTitleChange = (name, slavePagination) => {
this.props.onSaveState({ [`${name}Pagination`]: slavePagination });
};
/* 工单、工艺卡、报价单控制表回带图片地址 */
handleFilfileManageOk = async (controlFilfileData, controlFilfileDelData, sSrcSlaveId) => {
const { controlData: tableData, app, sModelsId, token, controlConfig } = this.props;
if (commonUtils.isNotEmptyObject(sSrcSlaveId)) {
if (commonUtils.isNotEmptyArr(controlFilfileDelData)) {
const addState = {};
const iIndex = tableData.findIndex(item => item.sId === sSrcSlaveId);
if (iIndex > -1) {
const tableDataNewRow = tableData[iIndex];
const { sMaterialsPicturePath, sMachinePicturePath } = tableDataNewRow;
const controlsMaterialsPictureDelData = controlFilfileDelData.filter(item => item.sType === "3"); /* 开料 */
if (commonUtils.isNotEmptyArr(controlsMaterialsPictureDelData)) {
controlsMaterialsPictureDelData.forEach(slaveItem => {
if (slaveItem.sPicturePath === sMaterialsPicturePath) {
addState.sMaterialsPicturePath = "";
}
});
}
const sMachinePictureDelPath = controlFilfileDelData.filter(item => item.sType === "4"); /* 联版 */
if (commonUtils.isNotEmptyArr(sMachinePictureDelPath)) {
sMachinePictureDelPath.forEach(slaveItem => {
if (slaveItem.sPicturePath === sMachinePicturePath) {
addState.sMachinePicturePath = "";
}
});
}
if (commonUtils.isNotEmptyObject(addState) && (addState.sMachinePicturePath === "" || addState.sMaterialsPicturePath === "")) {
tableData[iIndex] = { ...tableDataNewRow, ...addState };
const data = [];
const updataData = {};
const updateWhere = {};
const column = {};
if (addState.sMaterialsPicturePath === "") {
column.sMaterialsPicturePath = addState.sMaterialsPicturePath;
}
if (addState.sMachinePicturePath === "") {
column.sMachinePicturePath = addState.sMachinePicturePath;
}
if (commonUtils.isNotEmptyObject(tableDataNewRow.sId) && commonUtils.isNotEmptyObject(column)) {
updateWhere.sId = tableDataNewRow.sId;
updataData.sTable = controlConfig.sTbName;
updataData.sWhere = updateWhere;
updataData.column = column;
data.push(updataData);
/* 调用接口将图片地址存入控制表 */
const configUrl = `${commonConfig.server_host}business/updateBusinessData?sModelsId=${sModelsId}`;
const value = {
data,
sClientType: "1",
};
const dataReturn = (await commonServices.postValueService(token, value, configUrl)).data;
if (dataReturn.code === 1) {
/* 刷新 */
if (this.props.app.currentPane.refresh !== undefined) {
this.props.app.currentPane.refresh();
}
} else {
this.getServiceError(dataReturn);
}
}
}
}
}
if (commonUtils.isNotEmptyArr(controlFilfileData)) {
const addState = {};
const iIndex = tableData.findIndex(item => item.sId === sSrcSlaveId);
if (iIndex > -1) {
const tableDataNewRow = tableData[iIndex];
const { sMaterialsPicturePath, sMachinePicturePath } = tableDataNewRow;
const controlsMaterialsPictureData = controlFilfileData.filter(item => item.sType === "3");
if (commonUtils.isNotEmptyArr(controlsMaterialsPictureData)) {
addState.sMaterialsPicturePath = commonUtils.isNotEmptyObject(controlsMaterialsPictureData[0].sPicturePath)
? controlsMaterialsPictureData[0].sPicturePath
: ""; /* 上机默认取上传图片的第一条 */
}
const controlsMachinePictureData = controlFilfileData.filter(item => item.sType === "4");
if (commonUtils.isNotEmptyArr(controlsMachinePictureData)) {
addState.sMachinePicturePath = commonUtils.isNotEmptyObject(controlsMachinePictureData[0].sPicturePath)
? controlsMachinePictureData[0].sPicturePath
: "";
}
if (commonUtils.isNotEmptyObject(addState)) {
tableData[iIndex] = { ...tableDataNewRow, ...addState };
const data = [];
const updataData = {};
const updateWhere = {};
const column = {};
if (commonUtils.isNotEmptyObject(addState.sMaterialsPicturePath) && addState.sMaterialsPicturePath !== sMaterialsPicturePath) {
column.sMaterialsPicturePath = addState.sMaterialsPicturePath;
}
if (commonUtils.isNotEmptyObject(addState.sMachinePicturePath) && addState.sMachinePicturePath !== sMachinePicturePath) {
column.sMachinePicturePath = addState.sMachinePicturePath;
}
if (commonUtils.isNotEmptyObject(tableDataNewRow.sId) && commonUtils.isNotEmptyObject(column)) {
updateWhere.sId = tableDataNewRow.sId;
updataData.sTable = controlConfig.sTbName;
updataData.sWhere = updateWhere;
updataData.column = column;
data.push(updataData);
/* 调用接口将图片地址存入控制表 */
const configUrl = `${commonConfig.server_host}business/updateBusinessData?sModelsId=${sModelsId}`;
const value = {
data,
sClientType: "1",
};
const dataReturn = (await commonServices.postValueService(token, value, configUrl)).data;
if (dataReturn.code === 1) {
this.props.onSaveState({ tableData });
/* 刷新 */
if (this.props.app.currentPane.refresh !== undefined) {
this.props.app.currentPane.refresh();
}
} else {
this.getServiceError(dataReturn);
}
}
}
}
}
} else {
return message.warning(commonFunc.showMessage(app.commonConst, "selectedRowKeysNo"));
}
};
// 收付款分摊
handleShare = () => {
/* 分摊 */
const { masterData: masterDataOld, slaveData: slaveDataOld, app } = this.props;
const { dNetMoney } = app.decimals;
const masterData = { ...masterDataOld };
const slaveData = [];
slaveDataOld.forEach(item => {
slaveData.push({ ...item });
});
const dTotalMoney = masterData.dTotalMoney !== undefined ? masterData.dTotalMoney : 0;
let minusSum = 0; /* 负数求和 */
let minusRoundingSum = 0; /* 负数舍入求和 */
const minusData = []; /* 负数集 */
let positiveSum = 0; /* 正数求和 */
let positiveRoundingSum = 0; /* 正数舍入求和 */
const positiveData = []; /* 正数集 */
slaveData.forEach(child => {
child.dTotalMoney = 0;
child.dRoundingMoney = commonUtils.isNum(child.dRoundingMoney) ? child.dRoundingMoney : 0;
if (child.dBalanceMoney < 0) {
minusSum -= Math.abs(child.dBalanceMoney);
minusRoundingSum -= Math.abs(child.dRoundingMoney);
minusData.push(child);
} else {
positiveSum += child.dBalanceMoney;
positiveRoundingSum += child.dRoundingMoney;
positiveData.push(child);
}
});
if (commonUtils.convertFixNum(minusSum - minusRoundingSum + (positiveSum - positiveRoundingSum) - dTotalMoney, dNetMoney) <= 0) {
/* 够扣 */
positiveSum -= minusRoundingSum;
positiveSum -= positiveRoundingSum;
positiveSum -= dTotalMoney; /* 去除分摊金额 */
if (positiveSum >= 0) {
for (let i = 0; i < minusData.length; i += 1) {
/* 负数遍历 */
const dBalanceMoney = Math.abs(minusData[i].dBalanceMoney); /* 余额正数 */
const dRoundingMoney = minusData[i].dRoundingMoney !== undefined ? minusData[i].dRoundingMoney : 0;
if (positiveSum <= dBalanceMoney) {
minusData[i].dTotalMoney = commonUtils.convertFixNum(-positiveSum - dRoundingMoney * 1, dNetMoney);
if (minusData[i].handleType === undefined) {
minusData[i].handleType = commonUtils.isEmpty(minusData[i].handleType) ? "update" : minusData[i].handleType;
}
break;
} else {
minusData[i].dTotalMoney = commonUtils.convertFixNum(-(dBalanceMoney * 1) - dRoundingMoney * 1, dNetMoney);
positiveSum -= dBalanceMoney - dRoundingMoney * 1;
if (minusData[i].handleType === undefined) {
minusData[i].handleType = commonUtils.isEmpty(minusData[i].handleType) ? "update" : minusData[i].handleType;
}
}
}
for (let i = 0; i < positiveData.length; i += 1) {
/* 正数遍历 */
const { dBalanceMoney } = positiveData[i]; /* 余额正数 */
const dRoundingMoney = positiveData[i].dRoundingMoney !== undefined ? positiveData[i].dRoundingMoney : 0;
positiveData[i].dTotalMoney = commonUtils.convertFixNum(dBalanceMoney * 1 - dRoundingMoney * 1, dNetMoney);
if (positiveData[i].handleType === undefined) {
positiveData[i].handleType = commonUtils.isEmpty(positiveData[i].handleType) ? "update" : positiveData[i].handleType;
}
}
masterData.dAdvanceMoney = 0;
masterData.bAdvance = false;
} else {
/* 有预收 */
for (let i = 0; i < positiveData.length; i += 1) {
/* 正数遍历 */
const { dBalanceMoney } = positiveData[i]; /* 余额正数 */
const dRoundingMoney = positiveData[i].dRoundingMoney !== undefined ? positiveData[i].dRoundingMoney : 0;
positiveData[i].dTotalMoney = commonUtils.convertFixNum(dBalanceMoney * 1 - dRoundingMoney * 1, dNetMoney);
positiveData[i].handleType = commonUtils.isEmpty(positiveData[i].handleType) ? "update" : positiveData[i].handleType;
}
for (let i = 0; i < minusData.length; i += 1) {
/* 负数遍历 */
minusData[i].dRoundingMoney = 0;
minusData[i].handleType = commonUtils.isEmpty(minusData[i].handleType) ? "update" : minusData[i].handleType;
}
masterData.dAdvanceMoney = commonUtils.convertFixNum(Math.abs(positiveSum), dNetMoney);
masterData.bAdvance = true;
}
masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? "update" : masterData.handleType;
this.props.onSaveState({ masterData, slaveData });
} else if (minusSum - minusRoundingSum + (positiveSum - positiveRoundingSum) - dTotalMoney > 0) {
/* 不够扣情况 */
minusSum -= minusRoundingSum;
minusSum -= positiveRoundingSum;
minusSum -= dTotalMoney; /* 去除分摊金额 */
for (let i = 0; i < minusData.length; i += 1) {
/* 负数遍历 */
const dBalanceMoney = Math.abs(minusData[i].dBalanceMoney); /* 余额正数 */
const dRoundingMoney = minusData[i].dRoundingMoney !== undefined ? minusData[i].dRoundingMoney : 0;
minusData[i].dTotalMoney = commonUtils.convertFixNum(-(dBalanceMoney * 1) - dRoundingMoney * 1, dNetMoney);
minusData[i].handleType = commonUtils.isEmpty(minusData[i].handleType) ? "update" : minusData[i].handleType;
}
for (let i = 0; i < positiveData.length; i += 1) {
/* 正数遍历 */
const { dBalanceMoney } = positiveData[i]; /* 余额正数 */
const dRoundingMoney = positiveData[i].dRoundingMoney !== undefined ? positiveData[i].dRoundingMoney : 0;
if (Math.abs(minusSum) <= dBalanceMoney) {
positiveData[i].dTotalMoney = commonUtils.convertFixNum(Math.abs(minusSum) - dRoundingMoney * 1, dNetMoney);
positiveData[i].handleType = commonUtils.isEmpty(positiveData[i].handleType) ? "update" : positiveData[i].handleType;
break;
} else {
positiveData[i].dTotalMoney = commonUtils.convertFixNum(dBalanceMoney * 1 - dRoundingMoney * 1, dNetMoney);
minusSum = -(Math.abs(minusSum) - dBalanceMoney * 1 - dRoundingMoney * 1);
positiveData[i].handleType = commonUtils.isEmpty(positiveData[i].handleType) ? "update" : positiveData[i].handleType;
}
}
masterData.dAdvanceMoney = 0;
masterData.bAdvance = false;
masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? "update" : masterData.handleType;
this.props.onSaveState({ masterData, slaveData });
}
// let allTotalMoney = 0;
// let allRoundingMoney = 0;
// slaveData.forEach((child) => {
// if (child.dTotalMoney !== undefined) {
// allTotalMoney += child.dTotalMoney * 1;
// }
// if (child.dRoundingMoney !== undefined) {
// allRoundingMoney += child.dRoundingMoney * 1;
// }
// });
// this.props.onSaveState({ allTotalMoney, allRoundingMoney });
return masterData;
};
handleImport = async () => {
const { sModelsId, sModelsType, masterConfig, masterData, slaveData, slaveDelData: slaveDelDataOld, app } = this.props;
if (commonUtils.isEmpty(masterData.sWareHouseId)) {
message.error(commonFunc.getConfigShowName(masterConfig, "sWareHouseId") + commonFunc.showMessage(app.commonConst, "isNotNull")); // 不能为空!
return;
}
let url;
if (sModelsType.includes("productStock/")) {
url = `${commonConfig.server_host}eleProductStock/getEleProductStock?sModelsId=${sModelsId}&sWareHouseId=${masterData.sWareHouseId}`;
} else {
url = `${commonConfig.server_host}eleMaterialsStock/getEleMaterialsStock?sModelsId=${sModelsId}&sWareHouseId=${masterData.sWareHouseId}`;
}
const dataReturn = (await commonServices.getService(this.props.app.token, url)).data;
if (dataReturn.code === 1) {
const returnData = dataReturn.dataset.rows;
const slaveDelData = commonUtils.isEmptyArr(slaveDelDataOld) ? [] : slaveDelDataOld;
slaveData.forEach(item => {
item.handleType = "del";
slaveDelData.push({ ...item });
});
returnData.forEach(item => {
item.handleType = "add";
item.sParentId = masterData.sId;
});
this.props.onSaveState({ slaveData: returnData, slaveDelData });
} else {
this.props.getServiceError(dataReturn);
}
};
handleOutTemplate = async () => {
const { token, formData } = this.props;
const slaveConfig = formData.filter(item => item.sGrd === "importTemplate")[0];
window.location.href = `${commonConfig.server_host}import/exportTemplet?gdsconfigformmasterId=${slaveConfig.sId}&token=${token}`;
};
handleDesignFunction = () => {
this.props.onSaveState({ visibleStatement: true });
};
handleBatchPriceUpdate = () => {
const { slaveData, slaveSelectedRowKeys, app } = this.props;
if (slaveSelectedRowKeys === undefined || slaveSelectedRowKeys.length !== 1) {
return message.warning(commonFunc.showMessage(app.commonConst, "selectedRowKeysNo")); /* 请选择一条数据进行操作 */
} else {
const batchPriceUpdateData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]);
this.props.onSaveState({ batchPriceUpdateData, visibleBatchPriceUpdate: true });
}
};
/* 解析消息 */
handleGetMsg = str => {
const msgArr = commonUtils.isNotEmptyObject(str) ? str.split("xpm") : "";
const divStr = [];
if (commonUtils.isNotEmptyArr(msgArr)) {
for (let i = 0; i < msgArr.length; i++) {
divStr.push({msgArr[i]}
);
}
}
return divStr;
};
/* 导出Excel */
handleOut = async () => {
const { slaveConfig, formRoute, masterData } = this.props;
/* 导出使用Post提交 */
const url = `${commonConfig.server_host}excel/export/${slaveConfig.sId}?sModelsId=${
slaveConfig.sParentId
}&sName=${formRoute}&token=${encodeURIComponent(this.props.app.token)}`;
const conditionValuesStr = JSON.stringify({ sId: masterData?.sId, sBillNo: masterData?.sBillNo });
this.handleOpenOut(url, "", "", undefined, conditionValuesStr);
};
/* Get提交地址栏参数过多,更改Get提交为Post提交 */
handleOpenOut = (url, bFilter, slaveOrderBy, sGroupByList, conditionValues) => {
const newWin = window.open();
let formStr = "";
// 设置样式为隐藏,打开新标签再跳转页面前,如果有可现实的表单选项,用户会看到表单内容数据
formStr = `";
newWin.document.body.innerHTML = formStr;
newWin.document.forms[0].submit();
return newWin;
};
/* 导出模版数据 */
handleOutTemplateData = async () => {
const { slaveConfig, formRoute, masterData, sortedInfo } = this.props;
const sort = commonUtils.isNotEmptyObject(sortedInfo) ? (sortedInfo.order === "ascend" ? "asc" : "desc") : "";
const slaveOrderBy = commonUtils.isNotEmptyObject(sortedInfo) && Object.keys(sortedInfo).length > 0 ? { [sortedInfo.columnKey]: sort } : ""; //
const sId = commonUtils.isNotEmptyObject(masterData) ? masterData.sId : "";
if (commonUtils.isNotEmptyObject(sId)) {
const sSqlCondition = { sParentId: sId };
let url = `${commonConfig.server_host}excel/export/${slaveConfig.sId}?sModelsId=${slaveConfig.sParentId}&token=${this.props.app.token}&sName=${formRoute}`;
if (commonUtils.isNotEmptyObject(sSqlCondition)) {
url = `${url}&sSqlCondition=${encodeURIComponent(JSON.stringify(sSqlCondition))}`;
}
if (slaveOrderBy !== undefined && slaveOrderBy !== "" && Object.keys(slaveOrderBy).length > 0) {
url = `${url}&sFilterOrderBy=${encodeURIComponent(JSON.stringify(slaveOrderBy))}`;
}
window.open(url);
} else {
message.warn("没有主表数据!");
}
};
/** 按钮操作事件 */
handleButtonClick = async (name, bBtncalcComfim) => {
const FriendlyReminder = commonFunc.showLocalMessage(this.props, "FriendlyReminder", "温馨提示");
if (name === "BtnOut") {
this.handleOut();
} else if (name === "BtnDesignFunction") {
this.handleDesignFunction();
} else if (name === "BtnBatchPriceUpdate") {
this.handleBatchPriceUpdate();
} else if (name && name.includes("BtnOutTemplateData")) {
/* 导出模版数据 */
this.handleOutTemplateData();
} else if (name && name.includes("BtnOutTemplate")) {
this.handleOutTemplate();
}
const { sModelsType, masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config } = this.props;
if (name === "BtnRefresh") {
if (this.props.app.currentPane.refresh !== undefined) {
this.props.app.currentPane.refresh();
}
this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config);
} else if (
(name === "BtnShare" || name === "BtnOutTemplate") &&
(sModelsType.includes("cashier/") || sModelsType.includes("sales/") || sModelsType.includes("purchase/"))
) {
// 收付款分摊
if (name === "BtnShare") {
this.handleShare();
}
if (sModelsType.includes("sales/") && name === "BtnOutTemplate") {
this.handleOutTemplate();
}
} else if (name === "BtnImport" && (sModelsType.includes("materialsStock/") || sModelsType.includes("productStock/"))) {
if (name === "BtnImport") {
this.handleImport();
}
} else if (name && name.includes("BtnTempSql")) {
/* 通过BtnTempSql按钮 自定义调用Sql 并将数据回填到界面上 */
const { masterConfig, slaveConfig, sModelsId, token } = this.props;
let { masterData, slaveData } = this.props;
const slave0Data = [];
const slave1Data = [];
const slave2Data = [];
const slave3Data = [];
const slave4Data = [];
const copyTo = {};
copyTo.name = name;
copyTo.slaveData = slaveData;
const buttonConfigArr =
masterConfig && masterConfig.gdsconfigformslave.filter(item => item.sControlName && item.sControlName.includes("BtnTempSql"));
const allConfig = {
slaveConfig,
masterConfig,
};
if (commonUtils.isNotEmptyArr(buttonConfigArr)) {
copyTo.config = buttonConfigArr;
const sTmpInfoConfig = buttonConfigArr.filter(item => item.sControlName && item.sControlName.includes("BtnTempSql"))[0];
const sControlName = sTmpInfoConfig.sControlName;
const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`;
const sConfigformId = commonUtils.isEmpty(sTmpInfoConfig) ? "" : sTmpInfoConfig.sParentId;
if (commonUtils.isNotEmptyObject(sTmpInfoConfig)) {
const newCopyTo = {};
newCopyTo.master = copyTo.masterData;
newCopyTo.slave = commonUtils.isEmpty(copyTo.slaveData) ? [] : copyTo.slaveData[0];
// const sRowData = copyTo.slaveData;
const sRowData = [masterData];
const condition = { sConfigformId, sControlName, sRowData };
const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
if (dataReturn.code === 1) {
slaveData = [];
const returnData = dataReturn.dataset.rows[0];
const copyToMasterDetailConfig = copyTo.config.filter(
item => item.sControlName.toLowerCase() === `${copyTo.name}.masterdetail`.toLowerCase()
);
const copyToSlaveConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase());
const copyToSlaveDetailConfig = copyTo.config.filter(
item => item.sControlName.toLowerCase() === `${copyTo.name}.slavedetail`.toLowerCase()
);
const copyToSlave1Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave1`.toLowerCase());
const copyToSlave0Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave0`.toLowerCase());
const copyToSlave2Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave2`.toLowerCase());
const copyToSlava3Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slava3`.toLowerCase());
const copyToSlava4Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slava4`.toLowerCase());
const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : "";
const salveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : "";
const salveAssignField = commonUtils.isNotEmptyArr(copyToSlaveConfig) ? copyToSlaveConfig[0].sAssignField : "";
const slave1AssignField = commonUtils.isNotEmptyArr(copyToSlave1Config) ? copyToSlave1Config[0].sAssignField : "";
const slave0AssignField = commonUtils.isNotEmptyArr(copyToSlave0Config) ? copyToSlave0Config[0].sAssignField : "";
const slave2AssignField = commonUtils.isNotEmptyArr(copyToSlave2Config) ? copyToSlave2Config[0].sAssignField : "";
const slave3AssignField = commonUtils.isNotEmptyArr(copyToSlava3Config) ? copyToSlava3Config[0].sAssignField : "";
const slave4AssignField = commonUtils.isNotEmptyArr(copyToSlava4Config) ? copyToSlava4Config[0].sAssignField : "";
if (commonUtils.isNotEmptyArr(returnData.master) && masterDetailAssignField) {
masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.master[0], newCopyTo) };
}
if (commonUtils.isNotEmptyArr(returnData.slave)) {
returnData.slave.forEach(slaveItem => {
newCopyTo.slave = slaveItem;
const newSid = commonUtils.createSid();
let slaveRow = commonFunc.getDefaultData(allConfig.slaveConfig, newCopyTo, { newSid }); // 取默认值
if (salveDetailAssignField) {
slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(salveDetailAssignField, copyTo.masterData, newCopyTo) };
} else if (salveAssignField) {
slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(salveAssignField, slaveItem, newCopyTo) }; // 取赋值字段
}
slaveRow.handleType = "add";
slaveRow.sId = newSid;
slaveRow.sParentId = masterData.sId;
slaveData.push(slaveRow);
});
}
if (commonUtils.isNotEmptyArr(returnData.slave0)) {
returnData.slave0.forEach(slave0Item => {
newCopyTo.slave0 = slave0Item;
const newSid = commonUtils.createSid();
let slave0Row = commonFunc.getDefaultData(allConfig.slave0Config, newCopyTo, { newSid }); // 取默认值
slave0Row = { ...slave0Row, ...commonFunc.getAssignFieldValue(slave0AssignField, slave0Item, newCopyTo) }; // 取赋值字段
slave0Row.handleType = "add";
slave0Row.sId = newSid;
slave0Row.sParentId = masterData.sId;
slave0Data.push(slave0Row);
});
}
if (commonUtils.isNotEmptyArr(returnData.slave1)) {
returnData.slave1.forEach(slave1Item => {
newCopyTo.slave1 = slave1Item;
const newSid = commonUtils.createSid();
let slave1Row = commonFunc.getDefaultData(allConfig.slave1Config, newCopyTo, { newSid }); // 取默认值
slave1Row = { ...slave1Row, ...commonFunc.getAssignFieldValue(slave1AssignField, slave1Item, newCopyTo) }; // 取赋值字段
slave1Row.handleType = "add";
slave1Row.sId = newSid;
slave1Row.sParentId = masterData.sId;
slave1Data.push(slave1Row);
});
}
if (commonUtils.isNotEmptyArr(returnData.slave2)) {
returnData.slave2.forEach(slave2Item => {
newCopyTo.slave2 = slave2Item;
const newSid = commonUtils.createSid();
let slave2Row = commonFunc.getDefaultData(allConfig.slave2Config, newCopyTo, { newSid }); // 取默认值
slave2Row = { ...slave2Row, ...commonFunc.getAssignFieldValue(slave2AssignField, slave2Item, newCopyTo) }; // 取赋值字段
slave2Row.handleType = "add";
slave2Row.sId = newSid;
slave2Row.sParentId = masterData.sId;
slave2Data.push(slave2Row);
});
}
if (commonUtils.isNotEmptyArr(returnData.slave3)) {
returnData.slave3.forEach(slave3Item => {
newCopyTo.slave3 = slave3Item;
const newSid = commonUtils.createSid();
let slave3Row = commonFunc.getDefaultData(allConfig.slave3Config, newCopyTo, { newSid }); // 取默认值
slave3Row = { ...slave3Row, ...commonFunc.getAssignFieldValue(slave3AssignField, slave3Item, newCopyTo) }; // 取赋值字段
slave3Row.handleType = "add";
slave3Row.sId = newSid;
slave3Row.sParentId = masterData.sId;
slave3Data.push(slave3Row);
});
}
if (commonUtils.isNotEmptyArr(returnData.slave4)) {
returnData.slave4.forEach(slave4Item => {
newCopyTo.slave4 = slave4Item;
const newSid = commonUtils.createSid();
let slave4Row = commonFunc.getDefaultData(allConfig.slave4Config, newCopyTo, { newSid }); // 取默认值
slave4Row = { ...slave4Row, ...commonFunc.getAssignFieldValue(slave4AssignField, slave4Item, newCopyTo) }; // 取赋值字段
slave4Row.handleType = "add";
slave4Row.sId = newSid;
slave4Row.sParentId = masterData.sId;
slave4Data.push(slave4Row);
});
}
this.props.onSaveState({ slaveData, slave1Data, slave2Data, slave3Data, slave4Data });
} else {
this.props.getServiceError(dataReturn);
}
}
} else {
message.error("请正确配置自定义按钮!");
}
} else if (name && name.includes("BtnCalc")) {
/* 实现通用计算功能 */
const { masterConfig, masterData, sModelsId } = this.props;
this.props.onSaveState({ pageLoading: true });
const btnConfig = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === name))
? masterConfig.gdsconfigformslave.filter(item => item.sControlName === name)[0]
: {}; // sButtonEnabled sButtonParam
if (commonUtils.isNotEmptyObject(btnConfig)) {
/* 组装allTableData */
const allTableMap = {};
const allReturnMap = {};
const slaveNameList = [];
/* 从props找到 所有的Config */
if (commonUtils.isNotEmptyArr(this.props)) {
for (const key of Object.keys(this.props)) {
if (key.includes("Config") && !key.includes("onGet") && !key.includes("report")) {
const tablename = key.replace("Config", "").trim();
slaveNameList.push(tablename);
}
}
}
if (commonUtils.isNotEmptyArr(slaveNameList)) {
slaveNameList.forEach((name, index) => {
const tableConfig = this.props[name + "Config"]; /* 动态配置 */
const tableData = this.props[name + "Data"]; /* 动态配置 */
if (commonUtils.isNotEmptyObject(tableConfig)) {
allTableMap[name + "." + tableConfig.sTbName] = tableData;
}
});
const masterTbName = masterConfig.sTbName;
allTableMap["master." + masterTbName] = masterData;
}
const sButtonParam = btnConfig.sButtonParam;
const btn = commonUtils.isJSON(sButtonParam) ? JSON.parse(sButtonParam) : "";
const sProName = btn.sproName;
const url = `${commonConfig.server_host}calcprocedure/calc?sModelsId=${sModelsId}`;
const value = {
sProName,
sButtonParam,
allTableMap,
};
if (bBtncalcComfim) {
value.iFlag = 1;
}
const dataReturn = (await commonServices.postValueService(this.props.app.token, value, url)).data;
if (dataReturn.code === 1) {
/* 数据操作 数据回传页面 */
message.success("操作成功!");
const returnData = dataReturn.dataset.rows[0];
if (commonUtils.isNotEmptyArr(slaveNameList) && commonUtils.isNotEmptyObject(returnData)) {
slaveNameList.forEach((name, index) => {
const tableConfig = this.props[name + "Config"]; /* 动态配置 */
let tableDelData = this.props[name + "DelData"];
if (commonUtils.isEmptyArr(tableDelData)) {
tableDelData = [];
}
let tableDelDataNew = [];
let tableData = [];
if (commonUtils.isNotEmptyObject(tableConfig)) {
tableData = returnData[name + "." + tableConfig.sTbName]; /* 动态配置 */
if (commonUtils.isNotEmptyArr(tableData) && Array.isArray(tableData)) {
tableDelDataNew = tableData.filter(item => item.handleType === "del");
tableData = tableData.filter(item => item.handleType !== "del");
tableDelData = tableDelData.concat(tableDelDataNew);
}
}
allReturnMap[name + "Data"] = tableData;
allReturnMap[name + "DelData"] = tableDelData;
});
const masterTbName = masterConfig.sTbName;
allReturnMap.masterData = returnData["master." + masterTbName];
allReturnMap.masterData.enabled = true;
}
// this.handleValidateSave();
this.props.onSaveState({ ...allReturnMap, pageLoading: false });
} else if (dataReturn.code === -8 || dataReturn.code === 2) {
Modal.info({
title: "温馨提示:",
content: {this.handleGetMsg(dataReturn.msg)}
,
okText: "确认",
onOk() {},
});
this.props.onSaveState({ pageLoading: false });
} else if (dataReturn.code === -7) {
const _this = this;
Modal.confirm({
title: FriendlyReminder,
content: {this.handleGetMsg(dataReturn.msg)}
,
onOk() {
_this.handleButtonClick(name, true);
},
onCancel() {},
});
this.props.onSaveState({ pageLoading: false });
} else {
/* 失败 */
this.props.getServiceError(dataReturn);
this.props.onSaveState({ pageLoading: false });
}
}
} else if (name === "BtnTmpInfoBySql") {
/* 自定义数据源 */
this.handleBtnTmpInfoBySql(name);
} else if (name === "BtnExtract") {
/* 提取上批数据功能 */
this.handleBtnExtract(name);
}
};
handleBtnTmpInfoBySql = async btnName => {
const { masterConfig, masterData, slaveData, slaveSelectedRowKeys, token, sModelsId } = this.props;
let slaveRow = {};
if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
const iIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId));
if (iIndex > -1) {
slaveRow = slaveData[iIndex];
}
} else {
slaveRow = slaveData[0];
}
const tableConfig = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === btnName))
? masterConfig.gdsconfigformslave.filter(item => item.sControlName === btnName)[0]
: {};
const sTmpInfoConfig = tableConfig;
const sButtonParam = tableConfig.sButtonParam;
const btn = commonUtils.isNotEmptyObject(sButtonParam) ? JSON.parse(sButtonParam) : "";
if (commonUtils.isNotEmptyObject(btn)) {
const sProName = commonUtils.isNotEmptyObject(btn) ? btn.sproName : "";
const sTmpInfoBySqlBtnName = btn.sControlName;
const newCopyTo = {};
newCopyTo.master = masterData;
/* 找到自定义TempInfo配置 */
const sTmpInfoBySqlBtnConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(sTmpInfoBySqlBtnName));
const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`;
const sConfigformId = commonUtils.isEmpty(sTmpInfoBySqlBtnConfig) ? "" : sTmpInfoBySqlBtnConfig[0].sParentId;
const sControlName = commonUtils.isNotEmptyObject(sTmpInfoBySqlBtnName) ? sTmpInfoBySqlBtnName : "TmpInfoBySql";
const sAssignField = sTmpInfoBySqlBtnConfig[0].sAssignField;
let sRowData = [slaveRow];
if (sTmpInfoBySqlBtnConfig[0].sSqlCondition && sTmpInfoBySqlBtnConfig[0].sSqlCondition.includes("master.")) {
sRowData = [masterData];
}
const values = { sConfigformId, sControlName, sRowData };
if (true) {
const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
const allReturnMap = {};
if (dataReturn.code === 1) {
const returnData = dataReturn.dataset.rows[0];
if (commonUtils.isNotEmptyObject(returnData)) {
for (const key of Object.keys(returnData)) {
const sName = `${key}Data`;
const sDelName = `${key}DelData`;
// allReturnMap[sName] = returnData[key];
let { [`${key}Data`]: oldData, [`${key}Data`]: oldDelData } = this.props;
if (commonUtils.isEmptyArr(oldDelData)) {
oldDelData = [];
}
if (commonUtils.isEmptyArr(oldData)) {
oldData = [];
}
if (sTmpInfoBySqlBtnName.includes("_edit")) {
/* 替换 根据对应字段对比 相同的不管 不同的插入 */
/* 对应字段 */
const sActiveKey = sTmpInfoBySqlBtnConfig[0].sActiveKey;
const keyData = returnData[key];
let newData = [];
if (commonUtils.isNotEmptyArr(keyData)) {
keyData.forEach(child => {
const filterData = oldData.filter(item => item[sActiveKey] !== child[sActiveKey]);
if (commonUtils.isNotEmptyArr(filterData) && filterData.length === oldData.length) {
let tableRow = {};
tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(sAssignField, child) }; // 取赋值字段
tableRow.sId = commonUtils.createSid();
tableRow.sParentId = masterData.sId;
tableRow.handleType = "add";
newData.push(tableRow);
}
});
newData = oldData.concat(newData);
}
allReturnMap[sName] = newData;
} else if (sTmpInfoBySqlBtnName.includes("_del")) {
/* 替换 根据对应字段对比 相同的不管 不同的插入 */
/* 对应字段 */
oldData.forEach(child => {
child.handleType = "del";
oldDelData.push(child);
});
allReturnMap[sDelName] = oldDelData;
oldData = [];
const keyData = returnData[key];
if (commonUtils.isNotEmptyArr(keyData)) {
keyData.forEach(child => {
let tableRow = {};
tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(sAssignField, child) }; // 取赋值字段
tableRow.sId = commonUtils.createSid();
tableRow.sParentId = masterData.sId;
tableRow.handleType = "add";
tableRow.key = tableRow.sId;
oldData.push(tableRow);
});
}
allReturnMap[sName] = oldData;
} else {
allReturnMap[sName] = returnData[key];
}
}
if (commonUtils.isNotEmptyArr(allReturnMap.masterData) && Array.isArray(allReturnMap.masterData)) {
allReturnMap.masterData = allReturnMap.masterData[0];
}
console.log("allReturnMap:", allReturnMap);
this.props.onSaveState({ ...allReturnMap });
}
} else {
this.props.getServiceError(dataReturn);
}
}
} else {
message.error("配置错误,没有配置对应字段!");
}
};
/* 提取功能 */
handleBtnExtract = btnName => {
/* 上批数据 */
const { masterConfig, slaveChildInfoList, formData, slaveData = [], slaveSelectedRowKeys } = this.props;
let slaveRow = {};
if (commonUtils.isNotEmptyArr(slaveData)) {
if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
slaveRow = slaveData[0];
} else {
slaveRow = slaveData.find(item => item.sId === slaveSelectedRowKeys[0]);
}
}
slaveRow.sNoteMemo1Up = 10;
slaveRow.sNoteMemo2Up = 20;
slaveRow.sNoteMemo3Up = 30;
slaveRow.sNoteMemo4Up = 40;
slaveRow.sNoteMemo5Up = 50;
slaveRow.sNoteMemo6Up = 50;
slaveRow.sNoteMemo7Up = 50;
slaveRow.sNoteMemo8Up = 50;
slaveRow.sNoteMemo9Up = 50;
slaveRow.sNoteMemo10Up = 50;
slaveRow.sNoteMemo11Up = 110;
console.log("slaveRow", slaveRow);
const tableConfig = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === btnName))
? masterConfig.gdsconfigformslave.filter(item => item.sControlName === btnName)[0]
: {};
const sAssignField = commonUtils.isNotEmptyObject(tableConfig) ? tableConfig.sAssignField : "";
console.log("22sAssignField2", sAssignField);
const addState = {};
console.log("slaveChildInfoList", slaveChildInfoList);
/* 找到界面所有子表配置, 将子表数据中的Up给对应父级配置的没有up的字段 */
if (commonUtils.isNotEmptyArr(slaveChildInfoList) && commonUtils.isNotEmptyObject(slaveRow)) {
slaveChildInfoList.forEach(slaveChildName => {
const childName = slaveChildName.split("-")[0];
const childConfig = this.props[`${childName}Config`];
const childData = this.props[`${childName}Data`];
console.log("config:::", childName, childData);
if (commonUtils.isNotEmptyObject(childConfig)) {
/* 找到父级配置 */
const fatherConfig = formData.find(
fatherConfig => fatherConfig.sChildTableName && fatherConfig.sChildTableName.split(",").includes(childConfig?.sGrd)
);
const fatherName = fatherConfig.sGrd;
let fatherData = this.props[`${fatherName}Data`];
if (commonUtils.isEmptyArr(fatherData)) {
fatherData = [];
}
let tableRow = {};
tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(sAssignField, slaveRow) }; // 取赋值字段
console.log("tableRow", tableRow);
if (commonUtils.isEmptyArr(fatherData)) {
const newRow = { ...tableRow };
newRow.sId = commonUtils.createSid();
fatherData.push(newRow);
} else {
const handleType = commonUtils.isEmpty(fatherData[0].handleType) ? "update" : fatherData[0].handleType;
fatherData[0] = { ...fatherData[0], ...tableRow, handleType };
}
addState[fatherName] = fatherData;
console.log("fatherName:", fatherName);
console.log("fatherConfig", fatherConfig);
console.log("fatherData", fatherData);
}
});
}
console.log("addState", addState);
this.props.onSaveState({ addState });
};
handleBtnChoose = async (name, sControlName, chooseConfig) => {
const { token } = this.props;
const url = `${commonConfig.server_host}/gdsmodule/getGdsmoduleById/${chooseConfig.sActiveId}?sModelsId=${chooseConfig.sActiveId}`;
const dataReturn = (await commonServices.getService(token, url)).data;
if (dataReturn.code === 1) {
const [returnData] = dataReturn.dataset.rows;
this.props.onSaveState({ [`${name}ChooseVisible`]: true, [`${name}ChooseData`]: returnData });
} else {
this.props.getServiceError(dataReturn);
}
};
handleViewClick = (name, sName, record, index, myConfig) => {
if (name === "process" && sName === "sProcessParamStr") {
// process sProcessParam
const { processConfig, enabled, sModelsType } = this.props;
const slaveSelectOneData = record;
let modalVisible = false;
const sProcessParamsSelects = [];
let paramType = "";
if (commonUtils.isNotEmptyObject(slaveSelectOneData)) {
if (sModelsType.includes("manufacture/")) {
paramType = slaveSelectOneData.sWorkOrderParam;
} else if (sModelsType.includes("quotation/")) {
paramType = slaveSelectOneData.sProcessParam;
}
}
if (commonUtils.isNotEmptyObject(paramType) && enabled) {
const sProcessParam = JSON.parse(paramType);
modalVisible = true;
// eslint-disable-next-line no-plusplus
for (let i = 1; i < 7; i++) {
const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
if (iIndex > -1 && !commonUtils.isEmpty(sProcessParam[`sParam${i.toString()}`])) {
processConfig.gdsconfigformslave[iIndex].showName = sProcessParam[`sParam${i.toString()}`];
processConfig.gdsconfigformslave[iIndex].bVisible = !sProcessParam[`sParam${i.toString()}`].includes("参数值");
record[`sParam${i.toString()}`] = sProcessParam[`sParam${i.toString()}`];
sProcessParamsSelects.push(processConfig.gdsconfigformslave[iIndex]);
} else if (iIndex > -1) {
// processConfig.gdsconfigformslave[iIndex].showName = `sParamValue${i.toString()}`;
processConfig.gdsconfigformslave[iIndex].bVisible = true;
}
}
/* Begin 找到除了工艺参数以外的额外参数 通过对应字段找到该字段配置 */
for (const key of Object.keys(slaveSelectOneData)) {
if (key.includes("sParam")) {
const iIndexOther = processConfig.gdsconfigformslave.findIndex(item => item.sName === key.replace("sParam", "").trim());
if (iIndexOther > -1 && !commonUtils.isEmpty(slaveSelectOneData[key])) {
const fieldConfig = processConfig.gdsconfigformslave[iIndexOther];
if (fieldConfig) {
const sFieldName = fieldConfig.sName; /* 字段名 */
const bSrcName = `bParamConfig${fieldConfig.sName}`;
const bSrc = slaveSelectOneData[bSrcName];
/* 如果不原配置 则同参数配置雷同 */
if (!bSrc) {
processConfig.gdsconfigformslave[iIndexOther].sFieldToContent = "1"; /* 从工序配置的DropDownData中拿数据 */
} else {
/* 走原配置读取数据源 */
processConfig.gdsconfigformslave[iIndexOther].sFieldToContent = ""; /* 从工序配置的DropDownData中拿数据 */
}
processConfig.gdsconfigformslave[iIndexOther].bParam = true; /* 增加参数字段标识 */
processConfig.gdsconfigformslave[iIndexOther].showName = sProcessParam[`sParam${sFieldName.toString()}`];
sProcessParamsSelects.push(processConfig.gdsconfigformslave[iIndexOther]);
}
}
}
}
/* END */
} else {
modalVisible = false;
// eslint-disable-next-line no-plusplus
for (let i = 1; i < 7; i++) {
const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
if (iIndex > -1) {
processConfig.gdsconfigformslave[iIndex].bVisible = true;
}
}
}
this.props.onSaveState({
processRecord: record,
sProcessParamsSelects,
sProcessParamsModalVisible: modalVisible,
});
} else if (name === "process" && sName === "sParams" && commonUtils.isNotEmptyObject(record.sParams)) {
// process sProcessParam
const { processConfig, enabled, sModelsType } = this.props;
const slaveSelectOneData = record;
let modalVisible = false;
const sProcessParamsSelects = [];
let sParamData = [];
let paramType = "";
if (commonUtils.isNotEmptyObject(slaveSelectOneData)) {
if (sModelsType.includes("manufacture/")) {
paramType = slaveSelectOneData.sWorkOrderParam;
} else if (sModelsType.includes("quotation/")) {
paramType = slaveSelectOneData.sProcessParam;
}
}
/* 工序参数以表格形式展示 列 */
const sParamConfig = {
bisMutiSelect: true,
bMutiSelect: false,
};
const gdsconfigformslave = [
{
sId: commonUtils.createSid(),
sName: "sId",
showName: "主键",
bVisible: false,
iFitWidth: 200,
},
{
sId: commonUtils.createSid(),
sName: "bSelfCbx",
showName: "选择",
bVisible: true,
iFitWidth: 45,
},
{
sId: commonUtils.createSid(),
sName: "sParamKey",
showName: "参数主键",
bVisible: true,
iFitWidth: 200,
},
{
sId: commonUtils.createSid(),
sName: "sParamName",
showName: "参数名",
bVisible: true,
iFitWidth: 400,
},
{
sId: commonUtils.createSid(),
sName: "sParamValue",
showName: "参数值",
bVisible: true,
},
];
sParamConfig.gdsconfigformslave = gdsconfigformslave;
const sParamColumn = commonFunc.getHeaderConfig(sParamConfig);
if (commonUtils.isNotEmptyObject(paramType) && enabled) {
/* 将sParam1中的数据 还原到sParamData数据中 */
sParamData = JSON.parse(record.sParams);
}
this.props.onSaveState({
processRecord: record,
sProcessParamsSelects,
sParamsModalVisible: true,
sParamConfig,
sParamColumn,
sParamData,
});
} else {
if (sName === "myTableConfig") {
this.handleQuickViewClick(name, sName, record, index, myConfig);
} else {
this.props.onViewClick(name, sName, record, index, myConfig);
}
}
};
handleViewChoose = (name, sName, record) => {
const { sId } = record; /* 控制表主键 */
const { enabled } = this.props;
const sisColorSelectedRowKeys = [];
let jsonData = [];
if (name === "process" && sName === "sColorSerialMemo") {
const { [`${name}Data`]: tableData } = this.props;
const iIndex = tableData.findIndex(item => item.sId === sId);
if (iIndex > -1) {
const sColorSerialMemo = tableData[iIndex].sColorSerialMemo;
if (commonUtils.isNotEmptyObject(sColorSerialMemo)) {
try {
jsonData = JSON.parse(sColorSerialMemo);
jsonData.forEach(item => {
sisColorSelectedRowKeys.push(item.sId);
});
} catch (ex) {
// console.log('ex', ex);
}
}
}
this.props.onSaveState({
sisColorChooseVisible: true,
processSelectedRowId: sId /* 工序表选中行sId */,
enabled,
sisColorSelectedRowKeys,
sisColorSelectedData: jsonData,
});
} else if (sName === "sParams") {
// process sProcessParam
const { processConfig, enabled, sModelsType } = this.props;
const slaveSelectOneData = record;
let modalVisible = false;
const sProcessParamsSelects = [];
let sParamData = [];
let paramType = "";
if (commonUtils.isNotEmptyObject(slaveSelectOneData)) {
paramType = slaveSelectOneData.sWorkOrderParam;
}
if (commonUtils.isEmpty(paramType)) {
message.warn("无工艺参数!");
return;
}
/* 工序参数以表格形式展示 列 */
const sParamConfig = {
bisMutiSelect: false,
bMutiSelect: false,
};
const gdsconfigformslave = [
{
sId: commonUtils.createSid(),
sName: "sId",
showName: "主键",
bVisible: false,
iFitWidth: 200,
},
{
sId: commonUtils.createSid(),
sName: "bSelfCbx",
showName: "选择",
bVisible: true,
iFitWidth: 37,
},
{
sId: commonUtils.createSid(),
sName: "sParamKey",
showName: "参数主键",
bVisible: false,
iFitWidth: 200,
},
{
sId: commonUtils.createSid(),
sName: "sParamName",
showName: "参数名",
bVisible: true,
iFitWidth: 230,
},
{
sId: commonUtils.createSid(),
sName: "sParamValue",
showName: "参数值",
bVisible: true,
},
];
sParamConfig.gdsconfigformslave = gdsconfigformslave;
const sParamColumn = commonFunc.getHeaderConfig(sParamConfig);
if (commonUtils.isNotEmptyObject(paramType)) {
/* 要把数据以表格的形式显示出来 */
const sParamJsonObj = JSON.parse(paramType);
for (const key of Object.keys(sParamJsonObj)) {
if (key.includes("sParam") && !key.includes("DropDown") && !key.includes("Default")) {
const obj = {};
obj.sId = commonUtils.createSid();
obj.sParamKey = key;
obj.sParamName = sParamJsonObj[key];
/* 找到数字 找到下拉数据源 */
const num = key.replace(/[^\d]/g, "").trim();
if (Number(num)) {
const number = Number(num);
const sParamDropDownKey = `sParamDropDown${number}`;
obj.sDropDownData = sParamJsonObj[sParamDropDownKey]; /* 下拉 */
const sParamDefaultKey = `sParamDefault${number}`;
obj.sParamValue = sParamJsonObj[sParamDefaultKey]; /* 默认值 */
}
sParamData.push(obj);
}
}
/* 将sParam1中的数据 还原到sParamData数据中 */
if (commonUtils.isNotEmptyObject(record.sParams)) {
const selectedData = JSON.parse(record.sParams);
if (commonUtils.isNotEmptyArr(selectedData)) {
selectedData.forEach(itemS => {
sParamData.forEach(j => {
if (!Object.prototype.hasOwnProperty.call(itemS?.data || {}, j?.sParamKey)) return;
const value = itemS?.data?.[j.sParamKey];
if (j) j.sParamValue = value;
});
const iIndex = sParamData.findIndex(item => item.sParamName === itemS.sParamName);
if (iIndex > -1) {
const addState = {};
addState.sParamValue = itemS.sParamValue;
addState.bSelfCbx = itemS.bSelfCbx;
sParamData[iIndex] = { ...sParamData[iIndex], ...addState };
}
});
}
/* 如果数据集有一个是非选中的则非选中状态 否则全选 */
if (commonUtils.isNotEmptyArr(sParamColumn)) {
const iIndex = sParamColumn.findIndex(item => item.dataIndex === "bSelfCbx");
if (iIndex > -1) {
const filterData = sParamData.filter(item => !item.bSelfCbx);
if (commonUtils.isNotEmptyArr(filterData)) {
sParamColumn[iIndex] = { ...sParamColumn[iIndex], bCheckAll: false };
} else {
sParamColumn[iIndex] = { ...sParamColumn[iIndex], bCheckAll: true };
}
}
}
}
}
this.props.onSaveState({
processRecord: record,
sProcessParamsSelects,
sParamsModalVisible: true,
sParamConfig,
sParamColumn,
sParamData,
sParamModalType: "sWork",
enabled,
});
} else if (sName === "sParamsNew") {
// 工艺参数NEW
const { processConfig, enabled, sModelsType } = this.props;
const slaveSelectOneData = record;
let modalVisible = false;
const sProcessParamsSelects = [];
let sParamNewData = [];
let paramType = "";
if (commonUtils.isNotEmptyObject(slaveSelectOneData)) {
paramType = slaveSelectOneData.sWorkOrderParam;
}
if (commonUtils.isEmpty(paramType)) {
message.warn("无工艺参数!");
return;
}
/* 工序参数以表格形式展示 列 */
const sParamNewConfig = {
bisMutiSelect: false,
bMutiSelect: false,
};
const gdsconfigformslave = [
{
sId: commonUtils.createSid(),
sName: "sId",
showName: "主键",
bVisible: false,
iFitWidth: 200,
},
{
sId: commonUtils.createSid(),
sName: "bSelfCbx",
showName: "选择",
bVisible: true,
iFitWidth: 37,
},
{
sId: commonUtils.createSid(),
sName: "sParamKey",
showName: "参数主键",
bVisible: false,
iFitWidth: 200,
},
{
sId: commonUtils.createSid(),
sName: "sParamName",
showName: "参数名",
bVisible: true,
iFitWidth: 230,
},
{
sId: commonUtils.createSid(),
sName: "sParamValue",
showName: "参数值",
bVisible: true,
},
];
sParamNewConfig.gdsconfigformslave = gdsconfigformslave;
const sParamNewColumn = commonFunc.getHeaderConfig(sParamNewConfig);
if (commonUtils.isNotEmptyObject(paramType)) {
/* 要把数据以表格的形式显示出来 */
const sParamJsonObj = JSON.parse(paramType);
for (const key of Object.keys(sParamJsonObj)) {
if (key.includes("sParam") && !key.includes("DropDown") && !key.includes("Default")) {
const obj = {};
obj.sId = commonUtils.createSid();
obj.sParamKey = key;
obj.sParamName = sParamJsonObj[key];
/* 找到数字 找到下拉数据源 */
const num = key.replace(/[^\d]/g, "").trim();
if (Number(num)) {
const number = Number(num);
const sParamDropDownKey = `sParamDropDown${number}`;
obj.sDropDownData = sParamJsonObj[sParamDropDownKey]; /* 下拉 */
const sParamDefaultKey = `sParamDefault${number}`;
obj.sParamValue = sParamJsonObj[sParamDefaultKey]; /* 默认值 */
}
sParamNewData.push(obj);
}
}
/* 将sParam1中的数据 还原到sParamData数据中 */
if (commonUtils.isNotEmptyObject(record.sParamsNew)) {
const selectedData = JSON.parse(record.sParamsNew);
if (commonUtils.isNotEmptyArr(selectedData)) {
selectedData.forEach(itemS => {
sParamNewData.forEach(j => {
if (!Object.prototype.hasOwnProperty.call(itemS?.data || {}, j?.sParamKey)) return;
const value = itemS?.data?.[j.sParamKey];
if (j) j.sParamValue = value;
});
const iIndex = sParamNewData.findIndex(item => item.sParamName === itemS.sParamName);
if (iIndex > -1) {
const addState = {};
addState.sParamValue = itemS.sParamValue;
addState.bSelfCbx = itemS.bSelfCbx;
sParamNewData[iIndex] = { ...sParamNewData[iIndex], ...addState };
}
});
}
/* 如果数据集有一个是非选中的则非选中状态 否则全选 */
if (commonUtils.isNotEmptyArr(sParamNewColumn)) {
const iIndex = sParamNewColumn.findIndex(item => item.dataIndex === "bSelfCbx");
if (iIndex > -1) {
const filterData = sParamNewData.filter(item => !item.bSelfCbx);
if (commonUtils.isNotEmptyArr(filterData)) {
sParamNewColumn[iIndex] = { ...sParamNewColumn[iIndex], bCheckAll: false };
} else {
sParamNewColumn[iIndex] = { ...sParamNewColumn[iIndex], bCheckAll: true };
}
}
}
}
}
this.props.onSaveState({
tableRecord: record,
tableRecordName: name,
sProcessParamsSelects,
sParamsNewModalVisible: true,
sParamNewConfig,
sParamNewColumn,
sParamNewData,
sParamModalType: "sWork",
enabled,
});
} else if (enabled && name === "control" && (sName === "sPositiveColor" || sName === "sOppositeColor")) {
/* 控制表 选择正面颜色、反面颜色 */
const { [`${name}Data`]: tableData } = this.props;
const iIndex = tableData.findIndex(item => item.sId === sId);
if (iIndex > -1) {
const sColorSerialMemo = tableData[iIndex][sName];
if (commonUtils.isNotEmptyObject(sColorSerialMemo)) {
try {
jsonData = JSON.parse(sColorSerialMemo);
jsonData.forEach(item => {
sisColorSelectedRowKeys.push(item.sId);
});
} catch (ex) {
// console.log('ex', ex);
}
}
}
this.props.onSaveState({
sisColorChooseVisible: true,
controlSelectedRowId: sId /* 控制表选中行sId */,
processSelectedRowId: "" /* 工序表选中行sId */,
enabled,
sisColorSelectedRowKeys,
sisColorSelectedData: jsonData,
sisColorField: sName /* 弹出字段 */,
});
}
};
/* 选择工艺参数点击确定 */
handleParamsOk = () => {
// 工艺参数弹窗确定按钮
const { processData, processRecord, processConfig, sParamData, enabled, sParamModalType } = this.props;
if (enabled) {
if (commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyObject(processRecord)) {
const processSelectDataIndex = processData.findIndex(item => item.sId === processRecord.sId);
if (processSelectDataIndex > -1) {
if (commonUtils.isNotEmptyArr(sParamData)) {
let sParamJsonData = "";
const sParamSeletedData = sParamData.filter(item => item.bSelfCbx);
if (commonUtils.isNotEmptyObject(sParamSeletedData)) {
sParamJsonData = JSON.stringify(sParamSeletedData);
}
let { handleType } = processData[processSelectDataIndex];
handleType = commonUtils.isEmpty(handleType) ? "update" : handleType;
if (sParamModalType === "sQuo") {
/* 报价参数点击确定 */
processData[processSelectDataIndex].sQuoParams = sParamJsonData;
} else {
/* 工单参数点击确定 */
processData[processSelectDataIndex].sParams = sParamJsonData;
}
processData[processSelectDataIndex].handleType = handleType;
}
}
}
this.props.onSaveState({
processData,
sParamsModalVisible: false,
});
} else {
this.props.onSaveState({
sParamsModalVisible: false,
});
}
};
handleParamsNewOk = () => {
// 工艺参数弹窗确定按钮
const {
tableRecordName,
[`${tableRecordName}Data`]: processData,
tableRecord: processRecord,
processConfig,
sParamNewData,
enabled,
sParamModalType,
} = this.props;
if (enabled) {
if (commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyObject(processRecord)) {
const processSelectDataIndex = processData.findIndex(item => item.sId === processRecord.sId);
if (processSelectDataIndex > -1) {
if (commonUtils.isNotEmptyArr(sParamNewData)) {
let sParamJsonData = "";
let sParamSeletedData = sParamNewData.filter(item => item.bSelfCbx);
if (commonUtils.isNotEmptyObject(sParamSeletedData)) {
const originSParamsNew = JSON.parse(processData[processSelectDataIndex]?.sParamsNew || "[]");
if (!Array.isArray(originSParamsNew) || !originSParamsNew.length) return message.error("数据异常");
const replaceData = {};
sParamSeletedData.forEach(i => i && i.sParamKey && (replaceData[i.sParamKey] = i.sParamValue));
sParamSeletedData = originSParamsNew.map(i => ({
...i,
data: {
...(i.data || {}),
...(replaceData || {}),
},
}));
sParamJsonData = JSON.stringify(sParamSeletedData);
}
let { handleType } = processData[processSelectDataIndex];
handleType = commonUtils.isEmpty(handleType) ? "update" : handleType;
if (sParamModalType === "sQuo") {
/* 报价参数点击确定 */
processData[processSelectDataIndex].sQuoParams = sParamJsonData;
} else {
/* 工单参数点击确定 */
processData[processSelectDataIndex].sParamsNew = sParamJsonData;
}
processData[processSelectDataIndex].handleType = handleType;
}
}
}
this.props.onSaveState({
[`${tableRecordName}Data`]: processData,
sParamsNewModalVisible: false,
});
} else {
this.props.onSaveState({
sParamsNewModalVisible: false,
});
}
};
/* 获取表格数据 */
handleGetTableConfig = async (name, sModelsId) => {
if (commonUtils.isNotEmptyObject(sModelsId)) {
const newConfig = await this.props.onGetTableConfig(name, sModelsId);
if (commonUtils.isNotEmptyObject(newConfig)) {
const newColumn = commonFunc.getHeaderConfig(newConfig);
this.props.onSaveState({ [`${[name]}Config`]: newConfig, [`${[name]}Column`]: newColumn });
}
}
};
/* 快捷键跳转 */
handleQuickViewClick = async (name, sName, record, index, myConfigArr) => {
const {
slaveConfig,
slaveData,
dispatch,
slaveFilterCondition,
slavePagination,
slaveOrderBy,
sModelsType,
formRoute,
treeFilterCondition,
app,
iPageSize,
sModelsId,
// slaveSelectedData,
// masterData,
// employeeConfig,
} = this.props;
console.log("myConfigArr", myConfigArr);
let picArr = [];
if (commonUtils.isNotEmptyArr(myConfigArr)) {
picArr = myConfigArr;
}
if (picArr.length > 0) {
const getConfig = this.handleGetTableConfig;
const tableDataRow = record;
const iIndex = index;
const [{ sActiveId }] = picArr;
let [{ sActiveKey }] = picArr;
const sFormId = sActiveId === "1" ? (commonUtils.isEmpty(tableDataRow.sFormId) ? tableDataRow.sSrcFormId : tableDataRow.sFormId) : sActiveId;
if (commonUtils.isNotEmptyObject(sActiveKey) && sActiveKey.includes(".")) {
/* 接口按钮跳转 如果有slave.对应字段 则需要取出对应字段 */
const index = sActiveKey.lastIndexOf(".");
sActiveKey = sActiveKey.substring(index + 1, sActiveKey.length);
}
const sNameUrl = `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sFormId}?sModelsId=${sFormId}&sName=${formRoute}`;
const filterCondition = [];
const conditionValues = this.props.getSqlCondition(picArr[0], name, tableDataRow);
if (!commonUtils.isEmpty(conditionValues)) {
Object.keys(conditionValues).forEach(item => {
if (item === "tStartDate_pro" || item.substring(0, 1) === "p") {
if (!commonUtils.isEmpty(conditionValues[item]) && conditionValues[item].length >= 2) {
const tStartDate = moment(conditionValues[item][0]).format(this.sDateFormat);
const tEndDate = moment(conditionValues[item][1]).add(1, "days").format(this.sDateFormat);
filterCondition.push({
bFilterName: item,
bFilterCondition: "=",
bFilterValue: `${tStartDate},${tEndDate}`,
});
}
} else if (item === "mStartDate_pro" || item.substring(0, 1) === "m") {
if (!commonUtils.isEmpty(conditionValues[item])) {
const tStartDate = moment(conditionValues[item]).startOf("month").format(this.sDateFormat);
const tEndDate = moment(conditionValues[item]).endOf("month").add(1, "days").format(this.sDateFormat);
filterCondition.push({
bFilterName: `t${item.substring(1, item.length)}`,
bFilterCondition: "=",
bFilterValue: `${tStartDate},${tEndDate}`,
});
}
} else if (item.substring(0, 1) === "t") {
filterCondition.push({
bFilterName: item,
bFilterCondition: "=",
bFilterValue: moment(conditionValues[item]).format(this.sDateFormat),
});
} else {
filterCondition.push({
bFilterName: item,
bFilterCondition: "=",
bFilterValue: conditionValues[item],
});
}
});
}
this.props.dispatch({
type: "content/onRouter",
payload: {
url: sNameUrl,
refresh: getConfig.bind(this, name, sModelsId) /* 刷新方法 */,
sTabId: commonUtils.createSid(),
// sParentId: this.state.sTabId,
urlDataType: "newPane",
checkedId: myConfigArr[0].sId,
sName: myConfigArr[0].sName,
bFilter: slaveFilterCondition,
pageSize: commonConfig.pageSize,
pages: slavePagination,
currentData: [tableDataRow],
conditonValues: conditionValues,
newKey: tableDataRow[sActiveKey],
currentIndex: iIndex,
filterCondition,
},
});
}
};
handleSelect = async (name, selectConfig, selectData) => {
const {
[`${name}Data`]: tableData,
[`${name}Config`]: tableConfig,
masterConfig,
controlSelectedRowKeys,
sModelsId,
token,
app,
tableName,
sModelsType,
slaveConfig,
slave0Config,
slave1Config,
slave2Config,
slave3Config,
slave4Config,
} = this.props;
let { masterData } = this.props;
if (selectConfig?.sControlName && selectConfig?.sControlName.includes("TmpInfoBySql")) {
const copyConfig = selectConfig;
const sTmpInfoBySqlBtnConfig = copyConfig;
const sConfigformId = commonUtils.isEmpty(copyConfig) ? "" : copyConfig.sParentId;
const sControlName = commonUtils.isNotEmptyObject(copyConfig) && copyConfig.sControlName ? copyConfig.sControlName : "TmpInfoBySql";
const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`;
const sRowData = selectData;
const condition = { sConfigformId, sControlName, sRowData };
const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
const allReturnMap = {};
if (dataReturn.code === 1) {
const returnData = dataReturn.dataset.rows[0];
if (commonUtils.isNotEmptyObject(returnData)) {
for (const key of Object.keys(returnData)) {
let config = masterConfig.gdsconfigformslave.filter(
item => item.sControlName.split(".").length === 3 && item.sControlName.includes(selectConfig.sControlName + "." + key)
)[0];
const sAssignField = config ? config.sAssignField : copyConfig.sAssignField;
const sTmpInfoBySqlBtnName = config?.sControlName;
const sName = `${key}Data`;
const sDelName = `${key}DelData`;
// allReturnMap[sName] = returnData[key];
let { [`${key}Data`]: oldData, [`${key}Data`]: oldDelData } = this.props;
if (commonUtils.isEmptyArr(oldDelData)) {
oldDelData = [];
}
if (commonUtils.isEmptyArr(oldData)) {
oldData = [];
}
if (key === "master" || key === "TmpInfoBySql") {
const newRow = Array.isArray(returnData[key]) ? returnData[key][0] : returnData[key];
masterData = { ...masterData, ...commonFunc.getAssignFieldValue(sAssignField, newRow) }; // 取赋值字段
masterData.maxBillNo = "sBillNo";
masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? "update" : masterData.handleType;
allReturnMap.masterData = masterData;
} else if (sTmpInfoBySqlBtnName.includes("_add")) {
/* 原有数据集不动,新数据插入 */
/* 对应字段 */
const keyData = returnData[key];
if (commonUtils.isNotEmptyArr(keyData)) {
keyData.forEach(child => {
const tableRow = { ...child, ...commonFunc.getAssignFieldValue(sAssignField, child) }; // 取赋值字段
tableRow.sId = commonUtils.createSid();
tableRow.sParentId = masterData.sId;
tableRow.handleType = "add";
oldData.push(tableRow);
});
}
allReturnMap[sName] = oldData;
} else if (sTmpInfoBySqlBtnName.includes("_edit")) {
/* 替换 根据对应字段对比 相同的不管 不同的插入 */
/* 对应字段 */
const sActiveKey = sTmpInfoBySqlBtnConfig[0].sActiveKey;
const keyData = returnData[key];
let newData = [];
if (commonUtils.isNotEmptyArr(keyData)) {
keyData.forEach(child => {
const filterData = oldData.filter(item => item[sActiveKey] !== child[sActiveKey]);
if (commonUtils.isNotEmptyArr(filterData) && filterData.length === oldData.length) {
let tableRow = {};
tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(sAssignField, child) }; // 取赋值字段
tableRow.sId = commonUtils.createSid();
tableRow.sParentId = masterData.sId;
tableRow.handleType = "add";
newData.push(tableRow);
}
});
newData = oldData.concat(newData);
}
allReturnMap[sName] = newData;
} else if (sTmpInfoBySqlBtnName.includes("_del") || !sTmpInfoBySqlBtnName.includes("_")) {
/* 替换 根据对应字段对比 相同的不管 不同的插入 */
/* 对应字段 */
oldData.forEach(child => {
child.handleType = "del";
oldDelData.push(child);
});
allReturnMap[sDelName] = oldDelData;
oldData = [];
console.log("returnData", returnData[key]);
const keyData = returnData[key];
if (commonUtils.isNotEmptyArr(keyData)) {
keyData.forEach(child => {
const tableRow = { ...child, ...commonFunc.getAssignFieldValue(sAssignField, child) }; // 取赋值字段
tableRow.sId = commonUtils.createSid();
tableRow.sParentId = masterData.sId;
tableRow.handleType = "add";
oldData.push(tableRow);
});
}
allReturnMap[sName] = oldData;
} else {
allReturnMap[sName] = returnData[key];
}
}
console.log("allReturnMap:", allReturnMap);
this.props.onSaveState({ ...allReturnMap });
}
} else {
this.props.getServiceError(dataReturn);
}
} else if (selectConfig?.sControlName === "BtnGetApiDialog") {
/* 回刷单据 */
await this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config);
}
};
handleSelect1 = async (name, selectConfig, selectData) => {
const { masterData, masterConfig, token, sModelsId } = this.props;
const _props = this.props;
const _this = this;
const copyConfig = masterConfig.gdsconfigformslave.filter(
item => item.sControlName.split(".").length === 2 && item.sControlName.includes(this.copyName)
)[0];
const sConfigformId = commonUtils.isEmpty(copyConfig) ? "" : copyConfig.sParentId;
const sControlName = commonUtils.isNotEmptyObject(copyConfig) && copyConfig.sControlName ? copyConfig.sControlName : "TmpInfoBySql";
const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`;
const addState = {};
const sRowData = selectData;
async function fetchData() {
const condition = { sConfigformId, sControlName, sRowData };
const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
if (dataReturn.code === 1) {
const returnData = dataReturn.dataset.rows[0];
for (const key in returnData) {
let arr = JSON.parse(JSON.stringify(returnData[key]));
arr.forEach((item, idx) => {
const newCopyTo = {};
newCopyTo.master = masterData;
let config = masterConfig.gdsconfigformslave.filter(
item => item.sControlName.split(".").length === 3 && item.sControlName.includes(selectConfig.sControlName + "." + key)
)[0];
const sAssignField = config ? config.sAssignField : copyConfig.sAssignField;
const newSid = commonUtils.createSid();
let mixData = commonFunc.getDefaultData(_props[`${key}Config`] || {}, newCopyTo, { newSid }); // 取默认值
mixData = { ...mixData, ...commonFunc.getAssignFieldValue(sAssignField, item, newCopyTo) }; // 取赋值字段
mixData.handleType = "add";
mixData.sId = newSid;
mixData.sParentId = key === "mater" || key === "TmpInfoBySql" ? mixData.sParentId : masterData.sId;
if (key === "master" || key === "TmpInfoBySql") {
mixData.sFormId = _this.props.masterData.sFormId;
mixData.sId = _this.props.masterData.sId;
mixData.maxBillNo = "sBillNo";
mixData.handleType = commonUtils.isEmpty(_this.props.masterData.handleType) ? "update" : _this.props.masterData.handleType;
arr[idx] = mixData;
} else {
mixData.sParentId = _this.props.masterData.sId;
arr[idx] = mixData;
}
});
const tableName = key === "mater" || key === "TmpInfoBySql" ? "master" : key;
if (addState[`${tableName}Data`] === undefined) {
addState[`${tableName}Data`] = [];
}
addState[`${tableName}Data`] = addState[`${tableName}Data`].concat(arr);
console.log("结果集", addState);
}
} else {
_this.props.getServiceError(dataReturn);
}
}
await fetchData();
if (addState.masterData) {
[addState.masterData] = addState.masterData;
}
if (Object.keys(addState).length) {
this.props.onSaveState({ ...addState });
}
};
handleSelectCancel = name => {
this.props.onSaveState({ [`${name}ChooseVisible`]: false });
};
/* 双击弹出Memo */
// handleGetMemo = (name, sValue, sMemoFiled, sRecord) => {
// const { sCurrMemoProps } = this.props;
// let { [`${name}Data`]: tableData } = this.props;
// const addStata = { [`${sMemoFiled}`]: sValue };
// if (name !== 'master') {
// const iIndex = tableData.findIndex(item => item.sId === sRecord.sId);
// let handleType = tableData[iIndex].handleType;/* 获取操作类型 */
// handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
// addStata.handleType = handleType;
// tableData[iIndex] = { ...tableData[iIndex], ...addStata };
// } else {
// let handleType = tableData.handleType;/* 获取操作类型 */
// handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
// addStata.handleType = handleType;
// tableData = { ...tableData, ...addStata };
// }
// sCurrMemoProps.bVisibleMemo = false;
// this.props.onSaveState({ ...sCurrMemoProps, [`${name}Data`]: tableData });
// };
// handleGetMemoCancel = () => {
// const { sCurrMemoProps } = this.props;
// sCurrMemoProps.bVisibleMemo = false;
// this.props.onSaveState({ ...sCurrMemoProps });
// };
// async await
handleEleMaterialsStoreCurrQty = async slaveData => {
const { sModelsId, app } = this.props;
let flag = true;
const InsufficientInventory = commonFunc.showMessage(app.commonConst, "InsufficientInventory"); /* 库存不足,不能领料 */
const MateriaTransferQuantityVerificationFailed = commonFunc.showMessage(
app.commonConst,
"MateriaTransferQuantityVerificationFailed"
); /* 材料调拨数量校验失败,请稍后操作 */
const url = `${commonConfig.server_host}eleMaterialsStock/getEleMaterialsStoreCurrQty?sModelsId=${sModelsId}`;
for (const item of slaveData) {
const body = {
sMaterialsId: item.sMaterialsId /* 查询条件 */,
sMaterialsStyle: item.sMaterialsStyle,
sWareHouseId: item.sWareHouseId,
};
if (commonUtils.isNotEmptyStr(item.sLocationId)) {
body.sLocationId = item.sLocationId;
}
if (commonUtils.isNotEmptyStr(item.sWarehouseLocationId)) {
body.sWarehouseLocationId = item.sWarehouseLocationId;
}
if (commonUtils.isNotEmptyStr(item.sDefineNo)) {
body.sDefineNo = item.sDefineNo;
}
if (commonUtils.isNotEmptyStr(item.sDefineNo2)) {
body.sDefineNo2 = item.sDefineNo2;
}
const dataReturn = (await commonServices.postValueService(this.props.app.token, body, url)).data;
if (dataReturn.code === 1) {
if (commonUtils.isNotEmptyArr(dataReturn.dataset.rows)) {
const materials = dataReturn.dataset.rows[0];
if (materials.dAuxiliaryQty < item.dAuxiliaryQty) {
message.error(`[${item.sMaterialsName}${item.sMaterialsStyle}], ${InsufficientInventory}`);
flag = false;
break;
}
} else {
const sMaterialsName = commonUtils.isEmpty(item.sMaterialsName) ? item.sMaterialsName1 : item.sMaterialsName;
message.error(`[${sMaterialsName}${item.sMaterialsStyle}], ${InsufficientInventory}`);
flag = false;
break;
}
} else {
message.error(MateriaTransferQuantityVerificationFailed);
flag = false;
break;
}
}
return flag;
};
handleBtnExportSql = () => {};
componentDidUpdate() {
if (this.state.initSId) {
this.slaveTablePositon();
}
}
slaveTablePositon() {
if (!this.state.initSId) return;
const oSelectedTr = document.querySelector(`#dataBox tr[data-row-key='${this.state.initSId}']`);
if (oSelectedTr) {
const oTbody = oSelectedTr.parentNode.parentNode.parentNode;
if (oSelectedTr && oTbody) {
oTbody.scrollTop = oSelectedTr.offsetTop;
this.setState({
initSId: "",
});
}
}
}
handleTableBlur = async (name, sFieldName, record, tableConfig) => {
const { sModelsId, app, token, sModelsType, [`${name}Data`]: tableData, [`${name}Data`]: tableSelectedRowKeys, masterData } = this.props;
const models =
name === "materials"
? "Materials"
: sModelsType.includes("sales/") ||
sModelsType.includes("manufacture/") ||
sModelsType.includes("print/") ||
sModelsType.includes("quotation/") ||
sModelsType.includes("productStock/")
? "Product"
: "Materials";
let tableDataRow = {};
if (
sFieldName === "sMaterialsNo" ||
sFieldName === "sMaterialsName" ||
sFieldName === "dAuxiliaryQty" ||
sFieldName === "dReelAuxiliaryQty" ||
sFieldName === "dConversionQty" ||
sFieldName === "sMaterialsStyle"
) {
let iIndex = -1;
if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
iIndex = 0;
} else {
tableData.findIndex(item => item.sId === tableSelectedRowKeys.toString());
}
tableDataRow = await this.handleMaterialsChange(record, sModelsId, masterData, {}, sFieldName, app, token, models);
if (iIndex > -1) {
tableData[iIndex] = tableDataRow;
}
this.props.onSaveState({ [`${name}Data`]: tableData });
} else {
this.props.onDropDownBlur(name, sFieldName, record, tableConfig);
}
};
/* 单击右键全部更新,弹出窗选择后,更新此列所有数据 (只更新非只读字段) */
onContextMenu = (e, record, showConfig, tbName) => {
const contextMenuConfig = [];
const showConfigNew = JSON.parse(JSON.stringify(showConfig)); /* 深拷贝配置 */
contextMenuConfig.push(showConfigNew);
this.props.onSaveState({
contextMenuModalVisible: true /* 右击全部更新弹窗 */,
contextMenuConfig /* 右击字段配置 数组形式 */,
contextMenuRecord: record /* 右击数据 */,
contextMenuName: showConfig.showName /* 右击字段 */,
contextMenuTbName: tbName /* 右击字段 */,
});
};
/* 单据字段单击右键全部更新,弹出窗选择后,更新此列所有数据。(只更新非只读字段) */
handleContextMenuOk = async (contextMenuValue, contextMenuData, contextMenuType) => {
const {
contextMenuConfig,
contextMenuTbName,
[`${contextMenuTbName}Data`]: tableData,
[`${contextMenuTbName}SelectedRowKeys`]: selectedRowKeys,
} = this.props;
if (commonUtils.isNotEmptyObject(contextMenuTbName) && commonUtils.isNotEmptyArr(tableData)) {
if (commonUtils.isNotEmptyArr(contextMenuConfig) && commonUtils.isNotEmptyObject(contextMenuConfig[0])) {
const tableConfig = contextMenuConfig[0];
const tableFilterData = tableData.filter(item => selectedRowKeys.includes(item.sId));
if (commonUtils.isNotEmptyArr(tableFilterData)) {
let changeData = [];
const chooseType = commonUtils.isNotEmptyNumber(contextMenuType) ? contextMenuType : 1;
if (chooseType === 1) {
changeData = tableData;
} else if (chooseType === 2) {
const iIndex = tableData.findIndex(item => selectedRowKeys.includes(item.sId));
changeData = tableData.filter((_, index) => index >= iIndex);
}
// const tableDataRow = tableFilterData[0];
if (commonUtils.isNotEmptyArr(changeData) && commonUtils.isNotEmptyObject(tableConfig.sName) && !commonUtils.isEmpty(contextMenuValue)) {
const sName = tableConfig.sName;
for (let i = 0; i < changeData.length; i++) {
const child = changeData[i];
const addState = {};
addState[sName] = contextMenuValue;
const iIndex = tableData.findIndex(row => row.sId === child.sId);
const bShowProcess = [
"sMaterialsNo",
"sMaterialsName",
"dAuxiliaryQty",
"dReelAuxiliaryQty",
"dConversionQty",
"sMaterialsStyle",
"sMaterialsStyle",
"dMaterialsQty",
"dAuxiliaryLossQty",
"dLossQty",
"sProcessId",
"sProcessNo",
"sProcessName",
].includes(sName);
bShowProcess && message.loading({ content: , key: "xlyProcess", duration: 0, className: styles.xlyProcess });
if (iIndex > -1) {
addState.handleType = commonUtils.isEmpty(tableData[iIndex].handleType) ? "update" : tableData[iIndex].handleType;
tableData[iIndex] = { ...tableData[iIndex], ...addState, ...contextMenuData };
const changeValue = { ...contextMenuData };
changeValue[sName] = contextMenuValue;
this.xlyProcessPercent = (((i + 1) / changeData.length) * 100).toFixed(2);
const duration = i === changeData.length - 1 ? 1 : 0;
bShowProcess &&
message.loading({
content: ,
key: "xlyProcess",
duration,
className: styles.xlyProcess,
});
/* 手动触发改变事件 */
const result = await this.handleTableChange(contextMenuTbName, sName, changeValue, child.sId, [], true);
tableData[iIndex] = { ...tableData[iIndex], ...result };
}
}
}
}
}
}
this.props.onSaveState({
[`${contextMenuTbName}Data`]: tableData,
contextMenuModalVisible: false /* 右击全部更新弹窗 */,
});
};
handleCancelModal = modelVisible => {
this.props.onSaveState({
[modelVisible]: false,
});
};
handleTableSelectRowChange = async (name, selectedRowKeys, changeValue, isWait) => {
if (name === "sParamNew" && commonUtils.isNotEmptyArr(selectedRowKeys)) {
/* 点击工艺参数列表 根据点击行动态加载配置 */
const { sParamNewData, sParamNewConfig } = this.props;
/* 找到最后一个选中 */
const lastSelectedKeys = selectedRowKeys[selectedRowKeys.length - 1];
const iIndex = sParamNewData.findIndex(item => lastSelectedKeys === item.sId);
/* 选中数据时 塞入选中行的配置 */
if (iIndex > -1) {
const sParamObj = sParamNewData[iIndex];
const index = sParamNewConfig.gdsconfigformslave.findIndex(item => item.sName === "sParamValue");
if (index > -1) {
if (commonUtils.isNotEmptyObject(sParamObj.sDropDownData)) {
sParamNewConfig.gdsconfigformslave[index].sDropDownType = "const";
sParamNewConfig.gdsconfigformslave[index].showDropDown = JSON.stringify(sParamObj.sDropDownData);
} else {
sParamNewConfig.gdsconfigformslave[index].sDropDownType = "";
sParamNewConfig.gdsconfigformslave[index].showDropDown = undefined;
}
}
/* 点击时 若没打钩 则选择框打钩 若已经打钩则取消打钩 */
if (sParamNewData[iIndex].bSelfCbx) {
// sParamData[iIndex] = { ...sParamData[iIndex], bSelfCbx: false };
} else {
sParamNewData[iIndex] = { ...sParamNewData[iIndex], bSelfCbx: true };
}
this.props.onSaveState({
sParamNewData,
});
}
}
if (isWait) {
return await this.props.onTableSelectRowChange(name, selectedRowKeys, isWait);
} else {
this.props.onTableSelectRowChange(name, selectedRowKeys);
}
};
handleGetParamsValue = ({ sName, sValue, record = {} }) => {
const jsonData = commonUtils.convertStrToObj(sValue, []);
if (["sParams", "sParamsNew"].includes(sName)) {
const { sWorkOrderParam: sWorkOrderParamStr } = record;
const sWorkOrderParam = commonUtils.convertStrToObj(sWorkOrderParamStr, {});
const sWorkOrderData = jsonData.find(item => item.sParamType === "sWorkOrder") || {};
const { data = {} } = sWorkOrderData;
const result = [];
Object.keys(data).forEach(key => {
if (sWorkOrderParam[key] !== undefined) {
result.push(`${sWorkOrderParam[key]}: ${data[key]}`);
}
});
return result.join(";");
}
return sValue;
};
handleSelectCommonPopup = (currentPaneName, selectConfig, selectData, tbName) => {
const { [`${tbName}SelectedRowKeys`]: tableSelectedRowKeys, masterData, processConfig } = this.props;
let { [`${tbName}Data`]: tableData } = this.props;
const addState = {};
if (selectConfig.sControlName && selectConfig.sControlName.includes("BtnPopupTray")) {
const iIndex =
commonUtils.isNotEmptyArr(tableSelectedRowKeys) && commonUtils.isNotEmptyObject(tableSelectedRowKeys[0])
? tableData.findIndex(item => item.sId === tableSelectedRowKeys[0])
: -1;
let dSumProductQty = 0;
if (commonUtils.isNotEmptyArr(selectData)) {
// eslint-disable-next-line no-unused-vars
selectData.forEach(async (item, index) => {
const newCopyTo = {};
newCopyTo.master = masterData;
const sName = selectConfig.sKeyUpFilter; /* 将后台配置筛选字段作为 列字段 */
let sValue = "";
if (iIndex > -1) {
newCopyTo.slave = tableData[iIndex];
sValue = tableData[iIndex][sName];
}
/* 第一条数据若字段值为空或者只有一条数据时 则添加到该行 否则新增一行 */
if (selectData.length === 1 || (index === 0 && commonUtils.isEmptyObject(sValue))) {
let tableDataRow = {}; // 取默认值
tableDataRow = { ...tableData[iIndex] };
if (tbName === "slave") {
tableDataRow.sSqlConditionId = tableDataRow.sId;
}
tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
tableData[iIndex] = tableDataRow;
tableData[iIndex].handleType = commonUtils.isEmpty(tableData[iIndex].handleType) ? "update" : tableData[iIndex].handleType;
} else {
let tableDataRowAdd = this.handleTableAdd(tbName, true);
if (tbName === "slave") {
tableDataRowAdd.sSqlConditionId = tableDataRowAdd.sId;
}
tableDataRowAdd = { ...tableDataRowAdd, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段0
tableData.push(tableDataRowAdd);
}
});
tableData.forEach((item, index) => {
dSumProductQty = commonUtils.convertFixNum(
commonUtils.convertFixNum(commonUtils.isNull(dSumProductQty, 0), 6) + commonUtils.convertFixNum(commonUtils.isNull(item.dSampleQty), 6),
6
);
});
masterData.dInspectQty = commonUtils.convertFixNum(dSumProductQty * 10000, 6);
masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? "update" : masterData.handleType;
addState[`${tbName}Data`] = tableData;
addState.masterData = masterData;
this.props.onSaveState({ ...addState });
}
} else {
this.props.onSelectCommonPopup(currentPaneName, selectConfig, selectData, tbName);
}
};
/** 键盘事件监听 */
onKeyDown = (e, record, sName, name) => {
const { [`${name}Data`]: tableData, [`${name}Column`]: tableColumn, [`${name}Config`]: tableConfig } = this.props;
let keyCode = e.keyCode;
let firstName;
let bEnter = false;
if (keyCode === 13) {
// 判断当前单元格是否是最后,不是则跳到下一格,是则跳到下一行第一格
bEnter = true;
const uniqueTableId = `table_${this.props.sModelsId}_${tableConfig.sId}`;
const currentTable = document.getElementById(uniqueTableId);
const currentTr = currentTable.querySelector(`tr[data-row-key="${record.sId}"]`);
const allInput = currentTr.querySelectorAll(`input[id*="${record.sId}"]`);
const iIndex = Array.from(allInput).findIndex(item => item.getAttribute("id") === `${sName}${record.sId}`);
if (iIndex < allInput.length - 1) {
keyCode = 39;
} else {
const oFirstInput = allInput[0];
firstName = oFirstInput.getAttribute("id").replace(record.sId, "");
keyCode = 40;
}
}
// 以下if条件为 为解决bug2031问题入口 需求:收款单里输入的收款金额,上下键操作把加减金额改为选择上下行(通过上下方向键切换行数)
if ([38, 40].includes(keyCode)) {
// 上键、下键
e.preventDefault();
if (tableData.length > 1) {
// 当从表行数大于一行时才有上下移动的意义
const index = tableData.findIndex(item => item.sId === record.sId); // 获取当前编辑行的下标
if (index > -1) {
if (keyCode === 38 && index > 0) {
// 方向键上键 且 当前编辑行下标大于0时,为0时无法向上
const lastSid = tableData[index - 1].sId; // 获取上一个id
this.props.onSaveState({ [`${name}SelectedRowKeys`]: [lastSid] }, () => commonUtils.focus(`${sName}${lastSid}`));
}
if (keyCode === 40 && index < tableData.length - 1) {
// 方向键下键 且 当前编辑行下标小于最大值时,为最大值时无法向下
const nextSid = tableData[index + 1].sId; // 获取下一个id
this.props.onSaveState({ [`${name}SelectedRowKeys`]: [nextSid] }, () => commonUtils.focus(`${firstName || sName}${nextSid}`));
}
}
}
}
const move = (keyCode, cursortPosition, columnIndex, currentElement) => {
const inputType = currentElement.getAttribute("type");
const value = currentElement.value;
if (keyCode === 37 && columnIndex > 0 && cursortPosition < 1) {
// 左移 则 列下标必须大于0, 且光标在最左侧
const lastId = `${tableColumn[columnIndex - 1].dataIndex}${record.sId}`;
if (!commonUtils.focus(lastId, e)) move(keyCode, cursortPosition, columnIndex - 1, currentElement); // 递归
}
if (keyCode === 39 && columnIndex < tableColumn.length - 1) {
// 右移 则 列下标必须小于列数量-1
if (!record[sName] || cursortPosition >= value.length || inputType === "search" || bEnter) {
// 当前列为空 或 光标位置不小于当前值的长度
const nextId = `${tableColumn[columnIndex + 1].dataIndex}${record.sId}`;
if (!commonUtils.focus(nextId, e)) move(keyCode, cursortPosition, columnIndex + 1, currentElement); // 递归
}
}
};
if ([37, 39].includes(keyCode)) {
// 左键、右键
const currentElement = document.getElementById(`${sName}${record.sId}`); // 当前编辑框对象
if (currentElement) {
const cursortPosition = commonUtils.getCursortPosition(currentElement); // 光标位置
const columnIndex = tableColumn.findIndex(item => item.dataIndex === sName); // 当前列下标
move(keyCode, cursortPosition, columnIndex, currentElement);
}
}
};
/* 拖拽表格树形节点 */
handleMoveRow = (dragIndex, hoverIndex, dragKey, hoverKey, props) => {
const { slaveData: data } = this.props;
// const dragRow = data[dragIndex];
const dragObject = commonUtils.isNotEmptyArr(data.filter(ele => ele.sId === dragKey)) ? data.filter(ele => ele.sId === dragKey)[0] : {};
const hoverObject = commonUtils.isNotEmptyArr(data.filter(ele => ele.sId === hoverKey)) ? data.filter(ele => ele.sId === hoverKey)[0] : {};
// 同级菜单的移动
let newData = data.filter(ele => ele.sId !== dragKey);
let insertIndex = 0;
if (commonUtils.isNotEmptyArr(newData)) {
newData.forEach((ele, index) => {
if (ele.sId === hoverKey) {
if (dragIndex > hoverIndex) {
// 上移:dragKey表示的元素 放到 hoverKey表示的元素之前
insertIndex = index;
} else {
// 下移 dragKey表示的元素 放到 hoverKey表示的元素之后
insertIndex = index + 1;
}
}
});
newData.splice(insertIndex, 0, dragObject);
if (commonUtils.isNotEmptyObject(dragObject)) {
dragObject.handleType = dragObject.handleType ? dragObject.handleType : "update";
dragObject.iOrder = hoverObject.iOrder + 1
}
// newData.forEach((item,index) =>{
// item.handleType = 'update'
// item.iOrder =
// })
this.props.onSaveState({ slaveData: newData });
}
};
render() {
const { masterData, sModelsType, app } = this.props;
const imgSrc = commonBusiness.handleAddIcon(masterData, sModelsType, app);
return (
);
}
};
};