/* eslint-disable */
/* eslint-disable prefer-destructuring */
import React, { Component, useEffect, useState } from 'react';
import { UploadOutlined } from '@ant-design/icons';
import { Form } from '@ant-design/compatible';
// import '@ant-design/compatible/assets/index.css';
import {
Row,
Col,
Checkbox,
Layout,
Spin,
Tabs,
Avatar,
Button,
Table,
Upload,
Input,
Modal,
Space
} from 'antd-v4';
import { message } from '@/utils/common/message';
import CommonSales from '@/components/Common/CommonBillEvent';/* 继承销售模块业务功能 */
import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
import Toolbar from '@/components/Common/ToolBar/ToolBarNew';
import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
import styles from '@/index.less';
import CommonView from '@/components/Common/CommonView';
import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
import commonConfig from '@/utils/config';
import * as commonUtils from '@/utils/utils';/* 通用方法 */
import * as commonServices from '@/services/services';/* 服务类 */
import CommonListSelect from '@/components/Common/CommonListSelect';
import CommonListSelectTree from '@/components/Common/CommonListSelectTree';
import AddIcon from '@/assets/add.svg';
import DisableAddIcon from '@/assets/disableadd.svg';
import CopyIcon from '@/assets/copy.svg';
import CopyAllIcon from '@/assets/copyall.svg';
import DisableCopyIcon from '@/assets/disablecopy.svg';
import DisableCopyAllIcon from '@/assets/disablecopyall.svg';
import DelIcon from '@/assets/delete.svg';
import DisableDelIcon from '@/assets/disabledelete.svg';/* 获取配置及数据 */
import MaterialRemarkIcon from '@/assets/materialremark.svg';
import DisMaRemarklIcon from '@/assets/disablematerialremark.svg';
import ProcessIcon from '@/assets/process.svg';
import DisableProcessIcon from '@/assets/disableprocess.svg';
import MateriallIcon from '@/assets/material.svg';
import DisableMateriallIcon from '@/assets/disablematerial.svg';
// import SlaveMemo from './SlaveMemo';
import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
import StaticEditTree from '@/components/Common/Tree/StaticTree';
import AddChildIcon from '@/assets/addChild.svg';
import DisableAddChildIcon from '@/assets/disableaddChild.svg';
import ContextMenuModal from '@/components/Common/ContextMenuModal';
import CommonViewTable from '@/components/Common/CommonViewTable';
import CommonExamInfo from '@/components/Common/CommonExamInfo';
import customStyles from './index.less';
const width = '18px';
const height = '18px';
const setAdd = {
title: '增加',
width: { width },
height: { height },
img: ,
disableimg:
,
};
const setAddChild = {
title: '增加',
width: { width },
height: { height },
img:
,
disableimg:
,
};
const setCopy = {
title: '复制',
width: { width },
height: { height },
img:
,
disableimg:
,
};
const setCopyAll = {
title: '复制部件',
width: { width },
height: { height },
img:
,
disableimg:
,
};
const setDelete = {
title: '删除',
width: { width },
height: { height },
img:
,
disableimg:
,
};
const setProcess = {
title: '工序',
width: { width },
height: { height },
img:
,
disableimg:
,
};
const setMaterial = {
title: '材料',
width: { width },
height: { height },
img:
,
disableimg:
,
};
const { Header, Content, Sider } = Layout;
const { TabPane } = Tabs;
class CommonBill extends Component {
constructor(props) {
super(props);
this.state = {
};
}
componentDidUpdate() {
if (this.contentRef) {
const oNavList = this.contentRef.querySelector(".ant-tabs-nav-list");
if (oNavList) {
const tabs = Array.from(oNavList.children);
if (this.tabLength !== tabs.length) {
this.tabLength = tabs.length;
tabs.sort((a, b) => {
const keyA = a.getAttribute("data-node-key") || 999;
const keyB = b.getAttribute("data-node-key") || 999;
return keyA < keyB ? -1 : keyA > keyB ? 1 : 0;
});
oNavList.innerHTML = "";
tabs.forEach(tab => oNavList.appendChild(tab));
}
}
}
}
/** 行选择 */
onRowClick = (name, record) => {
if (name === 'control') {
this.props.onTableSelectRowChange(name, [record.sId]);
}
};
onChange = (checkedValues) => {
this.props.onSaveState({
dataPersonArray: checkedValues,
});
};
getMenuStatus = (menu) => {
if (menu.sControlName === 'BtnImport') {
return !this.props.enabled;
}
};
/** 上传后执行函数 */
handleUploadChangeFile = async (info) => {
const { file } = info;
const {
masterData, sModelsId, app, token, sModelsType, slaveConfig, slaveData,
} = this.props;
if (file.response) {
if (file.response.code === 1) {
/* 数据查询成功 */
const errorInfo = file.response.dataset.rows[0].nocanbeInsert;
if (commonUtils.isNotEmptyObject(errorInfo)) {
const importErrorData = errorInfo;
this.props.onSaveState({
showImportErrorVisible: true,
importData: importErrorData
});
// message.error(errorInfo[0].sReason);
return;
}
/* 把之前存放的数据删除 */
const slaveDelData = [];
if (commonUtils.isNotEmptyArr(slaveData)) {
slaveData.forEach((item) => {
if (commonUtils.isEmptyObject(item.handleType)) {
item.handleType = 'del';
slaveDelData.push(item);
}
});
}
const returnData = file.response.dataset.rows[0].canbeInsert;
let iCount = 0;
let productIdDropDown;
if (productIdDropDown === undefined && commonUtils.isNotEmptyArr(returnData)) { /* 无论导入多少条数据 都只调用1次接口,获取产品下拉数据集 */
const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
if (iIndex > -1) {
const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[iIndex], returnData[0]);
productIdDropDown = sqlDropDownData.dropDownData;
}
}
await returnData.forEach(async (tableDataRow) => {
tableDataRow.handleType = 'add';
tableDataRow.sId = commonUtils.createSid();
tableDataRow.sParentId = masterData.sId;
tableDataRow.key = tableDataRow.sId;
/* 若导入模板没有序号,则序号从1自增 */
if (commonUtils.isEmptyObject(tableDataRow.iOrder)) {
iCount += 1;
tableDataRow.iOrder = iCount;
}
for (const child of Object.keys(tableDataRow)) {
const index = child.indexOf('_sRealValue_');
if (index > -1) {
const property = child.substring(0, child.length - 12);
tableDataRow[property] = tableDataRow[child];
}
}
if (productIdDropDown !== undefined) {
const iProductIdIndex = productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId);
if (iProductIdIndex === -1 && commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('sales/salesOrder')) { /* 只有销售模块生成新产品 盘点 ,期间 不生成新的产品 */
tableDataRow.sProductId = tableDataRow.sProductName;
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,
});
}
}
// if (!tableDataRow.dNProductPrice) {
// tableDataRow.dNProductPrice = tableDataRow.dProductForeignPrice;
// }
// const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials';
// if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/')) {
// tableDataRow = await this.props.onMaterialsChange(tableDataRow, sModelsId, masterData, {}, 'dAuxiliaryQty', app, token, models);
// tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, tableDataRow);
// } else {
// tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dProductQty', masterData, tableDataRow);
// }
});
this.props.onSaveState({ slaveData: returnData, slaveDelData });
} else { /* 失败s */
this.props.getServiceError(file.response);
}
}
};
handleUploadPropsSales = () => {
const { masterData, sModelsType } = this.props;
if (commonUtils.isNotEmptyObject(masterData)) {
const sCustomerId = commonUtils.isEmptyStr(masterData.sCustomerId) ? undefined : masterData.sCustomerId;
let existCustomerId = false;
if (sModelsType.includes('sales/') && commonUtils.isNotEmptyStr(sCustomerId)) {
existCustomerId = true;
} else if (!sModelsType.includes('sales/')) {
existCustomerId = true;
}
return {
disabled: !this.props.enabled || !existCustomerId, /* 是否可用 */
style: { display: commonUtils.convertBooleanToDisplayBlock(true) }, /* 是否显示 */
};
}
};
/** 上传后执行函数 */
handleBeforeUpload = () => {
// const isLt10M = file.size / 1024 / 1024 < 10;
// if (!isLt10M) {
// message.error(commonFunc.showMessage(this.props.app.commonConst, 'picMax'));/* 图片大小需小于10MB! */
// }
};
/** 图片上传后执行函数 */
handleUploadChange = (info, name) => {
const { file } = info;
if (file.response && file.response.code === 1) {
const sPicturePath = file.response.dataset.rows[0].savePathStr;
const spicture = sPicturePath;
const uploadInfo = {
sPicturePath,
sFileName: file.name,
};
const { [`${name}Column`]: tableColumn, masterData, [`${name}Data`]: tableData } = this.props;
if (commonUtils.isNotEmptyArr(tableData) && commonUtils.isEmpty(tableData[tableData.length - 1].sPicturePath)) {
tableData[tableData.length - 1].sPicturePath = uploadInfo.sPicturePath;
tableData[tableData.length - 1].spicture = spicture;
tableData[tableData.length - 1] = {
...tableData[tableData.length - 1],
sPicturePath: uploadInfo.sPicturePath,
sFileName: uploadInfo.sFileName,
spicture,
handleType: commonUtils.isEmpty(tableData[tableData.length - 1].handleType) ? 'update' : tableData[tableData.length - 1].handleType,
};
} else {
const tableDataRow = this.props.onDataRowAdd(name, true);
tableColumn.forEach((slaveChild) => {
const ckey = slaveChild.dataIndex;
if (ckey === 'sProductNo' || ckey === 'sProductName') {
tableDataRow[ckey] = masterData[ckey] !== undefined ? masterData[ckey] : '';
} else if (ckey === 'iOrder') {
tableDataRow[ckey] = '';
} else if (file.response && file.response.code === 1) {
if (uploadInfo[ckey] !== undefined) {
tableDataRow[ckey] = uploadInfo[ckey];
}
}
});
tableData.push(tableDataRow);
}
this.props.onSaveState({ [`${name}Data`]: tableData, enabled: true });
} else if (file.response && file.response.code === -1) {
message.error(file.response.msg);
}
};
handleOk = async (flag, tmpCheck, isWait) => {
const {
sModelsId, masterData, app, checkConditions, sCheckModelId, checkPersonData, currentId, masterConfig, slaveConfig, checkConfig, sCheckRemark,
} = this.props;
const { currentPane } = app;
const bCkxTmpCheck = app.systemData.filter(item => item.sName === 'CkxTmpCheck')[0].sValue;
if (bCkxTmpCheck === '1') {
const returnData = await this.props.onDataAudit(flag, tmpCheck, isWait);
if (returnData.code === 1) {
if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) {
this.props.onGetData(masterConfig, slaveConfig, checkConfig);
message.success(returnData.msg);
} else {
message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn);
}
} else { /* 失败 */
this.props.getServiceError(returnData);
}
} else {
const dataPersonArray = commonUtils.isEmptyObject(this.props.dataPersonArray) ? [] : this.props.dataPersonArray;
if (commonUtils.isEmptyObject(dataPersonArray)) {
checkPersonData.forEach((item) => {
dataPersonArray.push(item.sUserId);
});
}
const dataPersonString = dataPersonArray.join(',');
const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
const value = {
sProName: 'Sp_System_AutoSendCheckMsg',
paramsMap: {
sFormGuid: sModelsId,
sBillKey: currentPane.sProcName,
sTbName: masterConfig.sTbName,
sGuid: masterData.sId,
sBillNo: masterData.sBillNo,
sCheckCondition: checkConditions,
sMemo: sCheckRemark,
sCheckModelGuid: sCheckModelId,
sCheckPerson: dataPersonString,
},
};
const returnData = (await commonServices.postValueService(app.token, value, url)).data;
if (returnData.code === 1) {
const noCheckMsg = commonFunc.showMessage(app.commonConst, 'NoCheckMsg'); /* 您有消息待审核 */
if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) {
this.props.handleSendSocketMessage('examine', 'showImg', currentId, dataPersonString, noCheckMsg, null);
const urlCanCheckBill = `${commonConfig.server_host}checkModel/getCanCheckBill?sModelsId=${sModelsId}`;
const valueCanCheckBill = { sCheckModelId, checkPersonData, sBillId: masterData.sId };
const returnCanCheckBill = (await commonServices.postValueService(app.token, valueCanCheckBill, urlCanCheckBill)).data;
if (returnCanCheckBill.code === 1) {
if (returnCanCheckBill.dataset.rows[0].iCount === 1) {
this.props.onDataAudit(1, 1);
this.props.onSaveState({
visible: false,
});
return;
}
} else { /* 失败 */
this.props.getServiceError(returnCanCheckBill);
}
this.props.handleSendSocketMessage('reflush', 'showImg', currentId, dataPersonString, noCheckMsg, null);
message.success(returnData.msg);
} else {
message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn);
}
} else { /* 失败 */
this.props.getServiceError(returnData);
}
}
this.props.onSaveState({
visible: false,
});
};
handleCancel = () => {
this.props.onSaveState({
visible: false,
});
};
handleTableModal = async () => {
const {
sModelsId, controlData, masterData, slaveData, controlConfig, slaveSelectedRowKeys, enabled, slaveConfig, sModelsType,
} = this.props;
const addState = {};
let treeState = {};
if (this.props.sModelsType.includes('sales/salesOrder')) {
const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
const iIndex = controlData.findIndex(item => item.sSlaveId === slaveSelectedRowKeys[0]);
if (iIndex === -1 && iSlaveIndex > -1 && enabled) {
const allTableData = {};
allTableData.master = masterData;
allTableData.slaveData = slaveData;
let dropdownProductClassifyId;
const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyId');
if (iIndex > -1) {
const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[iIndex]);
dropdownProductClassifyId = sqlDropDownData.dropDownData;
}
if (commonUtils.isEmptyArr(dropdownProductClassifyId)) {
const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName');
if (iIndex > -1) {
const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[iIndex]);
dropdownProductClassifyId = sqlDropDownData.dropDownData;
}
}
if (commonUtils.isNotEmptyArr(dropdownProductClassifyId)) {
const iProductClassifyIdIndex = dropdownProductClassifyId.findIndex(item => item.sId === slaveData[iSlaveIndex].sProductClassifyId);
if (commonUtils.isNotEmptyObject(dropdownProductClassifyId[iProductClassifyIdIndex])) {
const sAllPartsName = dropdownProductClassifyId[iProductClassifyIdIndex].sAllPartsName;
if (commonUtils.isNotEmptyStr(sAllPartsName)) {
const sAssignFieldObj = sAllPartsName.split(',');
for (const child of sAssignFieldObj) {
const tableDataRowAdd = commonFunc.getDefaultData(controlConfig, allTableData);
tableDataRowAdd.handleType = 'add';
tableDataRowAdd.sId = commonUtils.createSid();
tableDataRowAdd.sNodeId = tableDataRowAdd.sId;
tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
tableDataRowAdd.sSlaveId = slaveSelectedRowKeys[0];
tableDataRowAdd.key = tableDataRowAdd.sId;
tableDataRowAdd.bDefault = false;
tableDataRowAdd.iOrder = 0;
tableDataRowAdd.sPartsName = child;
tableDataRowAdd.dPartsQty = commonUtils.isNull(slaveData[iSlaveIndex].dProductQty, 0) + commonUtils.isNull(slaveData[iSlaveIndex].dGiveQty, 0) + commonUtils.isNull(slaveData[iSlaveIndex].dStockupQty, 0);
tableDataRowAdd.sAllId = tableDataRowAdd.sId;
tableDataRowAdd.sControlParentId = '';
controlData.push(tableDataRowAdd);
}
}
}
}
addState.controlData = controlData;
}
if (controlData !== undefined) {
const iControlIndex = controlData.findIndex(item => item.sSlaveId === slaveSelectedRowKeys[0]);
if (iControlIndex > -1) {
addState.controlSelectedRowKeys = [controlData[iControlIndex].sId];
}
}
}
this.props.onSaveState({
visibleModal: true,
...addState,
...treeState,
});
};
handleTableChooseProcess = () => {
const { processConfig } = this.props;
const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess');
if (iIndex > -1) {
this.props.onBtnChoose('process', 'BtnChooseProcess', processConfig.gdsconfigformslave[iIndex]);
}
};
handleCancelModal = (modelVisible) => {
this.props.onSaveState({
[modelVisible]: false,
});
};
handleOkModal = async () => {
const {
controlData, materialsData, processData, slaveData, slaveSelectedRowKeys,
} = this.props;
const ctData = controlData.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0]);
const mtData = materialsData.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0]);
const pData = processData.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0] && item.sType !== '3');
const p3Data = processData.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0] && item.sType === '3'); /* 成品工序 */
if (commonUtils.isNotEmptyArr(ctData)) {
let mDetail = '';
let pDetail = '';
const slaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
await ctData.forEach((controlItem, n) => {
if (commonUtils.isNotEmptyObject(controlItem.sPartsName)) {
const qz = n === 0 ? '' : ' ';
if (commonUtils.isNotEmptyObject(controlItem.sPartsName)) {
const yDetail = `${mDetail}${qz}#${controlItem.sPartsName}:`;
const gDetail = `${pDetail}${qz}#${controlItem.sPartsName}:`;
let imDetail = '';
let ipDetail = '';
const materials = mtData.filter(materialsItem => (materialsItem.sControlId === controlItem.sId));
// let materialsIdDropDown;
// const materialsIndex = materialsConfig.gdsconfigformslave.findIndex(item => item.sName === 'sMaterialsName');
// if (materialsIndex > -1) {
// const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'materials', materialsConfig.gdsconfigformslave[materialsIndex]);
// materialsIdDropDown = sqlDropDownData.dropDownData;
// }
materials.forEach((mItem, i) => {
const fh = i === 0 ? '' : ',';
imDetail = `${imDetail}${fh} ${mItem.sMaterialsName}`;
});
// processPropsType
const process = pData.filter(processItem => (processItem.sControlId === controlItem.sId));
// let processIdDropDown;
// const processIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName');
// if (processIndex > -1) {
// const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'process', processConfig.gdsconfigformslave[processIndex]);
// processIdDropDown = sqlDropDownData.dropDownData;
// }
// const processIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'process', 'sProcessName');
process.forEach((pItem, i) => {
const fh = i === 0 ? '' : ',';
ipDetail = `${ipDetail}${fh} ${pItem.sProcessName}`;
});
if (commonUtils.isNotEmptyObject(imDetail)) {
mDetail = `${yDetail}${imDetail}`;
}
if (commonUtils.isNotEmptyObject(ipDetail)) {
pDetail = `${gDetail}${ipDetail}`;
}
}
}
});
/* 成品工序 */
let ip3Detail = '';
if (commonUtils.isNotEmptyArr(p3Data)) {
p3Data.forEach((pItem, i) => {
const fh = i === 0 ? '' : ',';
ip3Detail = `${ip3Detail}${fh} ${pItem.sProcessName}`;
});
}
if (commonUtils.isNotEmptyObject(ip3Detail)) {
if (commonUtils.isNotEmptyObject(pDetail)) {
pDetail = `${pDetail},${ip3Detail}`;
} else {
pDetail = ip3Detail;
}
}
slaveData[slaveIndex].sMaterialsMemo = mDetail;
slaveData[slaveIndex].sProcessMemo = pDetail;
slaveData[slaveIndex].handleType = commonUtils.isEmpty(slaveData[slaveIndex].handleType) ? 'update' : slaveData[slaveIndex].handleType;
} else if (commonUtils.isNotEmptyArr(controlData) && commonUtils.isEmptyArr(ctData)) {
const sSlaveId = controlData[0].sSlaveId;
const slaveIndex = slaveData.findIndex(item => item.sId === sSlaveId);
slaveData[slaveIndex].sMaterialsMemo = '';
slaveData[slaveIndex].sProcessMemo = '';
slaveData[slaveIndex].handleType = commonUtils.isEmpty(slaveData[slaveIndex].handleType) ? 'update' : slaveData[slaveIndex].handleType;
}
this.props.onSaveState({
visibleModal: false,
controlData,
materialsData,
processData,
slaveData,
});
};
/** 控制选择控制表时,显示部件工序与成品工序 */
handleFilterSlaveData = (name, dataIndex, value, record) => {
return (commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(value.toLowerCase()));
};
/** 控制选择控制表时,显示部件工序与成品工序 */
handleFilterData = (name, dataIndex, value, record) => {
const { slaveSelectedRowKeys } = this.props;
if (name === 'process') {
return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3' &&
commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase())) ||
(commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()) &&
commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase()));
} else {
return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2' &&
commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase())) ||
(commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()) &&
commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase()));
}
// (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
};
/* 控制表过滤材料表 工序表数据 */
handleGetFilterData = (name) => {
const { [`${name}Data`]: data, controlSelectedRowKeys, slaveSelectedRowKeys } = this.props;
if (data !== undefined) {
const newArr = data.filter((item) => {
if (name === 'control') {
return (commonUtils.isNotEmptyStr(item.sSlaveId) && item.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString()));
} else {
return (commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString()) &&
commonUtils.isNotEmptyStr(item.sSlaveId) && item.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString()));
}
});
return newArr.length;
}
};
/* 包装工单过滤行 */ /** 控制选择控制表时,显示部件工序与成品工序 */
handleFilterDataPack = (name, dataIndex, value, record) => {
if (name === 'process') {
return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') ||
(commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
} else {
return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') ||
(commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()));
}
};
/* 控制表过滤材料表 工序表数据 */
handleGetFilterDataPack = (name) => {
const { [`${name}Data`]: data, controlSelectedRowKeys } = this.props;
if (data !== undefined && commonUtils.isNotEmptyArr(controlSelectedRowKeys)) {
const newArr = data.filter((item) => {
return (commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString()));
});
return newArr.length;
}
};
/** 添加表格空行 */
handleTableAdd = async (name, flag, bchild) => {
/* 外置处理业务 */
const {
sModelsId, sModelsType, gdsformconst, slaveData, controlData, controlSelectedRowKeys, [`${name}Data`]: tableData, slaveSelectedRowKeys, slaveConfig,
} = this.props;
let tableDataRow = {};
if (name === 'control') {
const {
[`${name}SelectedRowKeys`]: treeSelectedKeys,
} = this.props;
if ((bchild === 'childNode' || bchild === 'sameNode') && (commonUtils.isEmptyArr(treeSelectedKeys) || commonUtils.isEmptyArr(controlSelectedRowKeys))) {
message.warn('请选择部件!'); // 请选择部件
return;
}
tableDataRow = this.props.onDataRowAdd(name, true);
if (commonUtils.isEmptyObject(tableDataRow)) {
return;
}
let dPartsQty = 0;
if (commonUtils.isNotEmptyArr(slaveData)) {
slaveData.forEach((item) => {
dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0);
});
let productIdDropDown;
const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
if (slaveIndex > -1) {
const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex]);
productIdDropDown = sqlDropDownData.dropDownData;
}
if (productIdDropDown) {
const iProductIdIndex = productIdDropDown.findIndex(item => item.sId === slaveData[0].sProductId);
if (iProductIdIndex > -1) {
tableDataRow.sPartsName = productIdDropDown[iProductIdIndex].sProductName;
}
}
}
const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
if (iSlaveIndex > -1) {
if (sModelsType.includes('sales/salesOrder')) {
if (!commonUtils.isEmpty(slaveData[iSlaveIndex].dProductQty)) {
tableDataRow.dPartsQty = commonUtils.isNull(slaveData[iSlaveIndex].dProductQty, 0) + commonUtils.isNull(slaveData[iSlaveIndex].dGiveQty, 0);
}
} else {
tableDataRow.dPartsQty = dPartsQty;
}
tableDataRow.sSlaveId = slaveData[iSlaveIndex].sId;
}
/* 树形部件节点增加同级部件、增加子级部件 */
if (sModelsType === 'sales/salesOrderPack') {
if (bchild === 'sameNode') { /* 添加同级 */
const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
/* 找到同级子元素的sControlParentId */
if (iIndex > -1) {
tableDataRow.sControlParentId = controlData[iIndex].sControlParentId;
/* 找到同级父级sAllId */
const pId = controlData[iIndex].sControlParentId;
const sControlParentId = controlData.findIndex(item => item.sNodeId === pId);
if (sControlParentId > -1) {
const sAllId = controlData[sControlParentId].sAllId;
// if (commonUtils.isEmptyObject(sAllId)) {
// message.warn('部件数据生成错误![sAllId为空]');
// return;
// }
tableDataRow.sAllId = `${controlData[sControlParentId].sAllId},${tableDataRow.sNodeId}`;
} else {
tableDataRow.sAllId = tableDataRow.sNodeId;
}
}
}
if (bchild === 'childNode') { /* 添加子级 */
tableDataRow.sControlParentId = treeSelectedKeys[0];
const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]);
if (iIndex > -1) {
const sAllId = controlData[iIndex].sAllId;
if (commonUtils.isEmptyObject(sAllId)) {
message.warn('子部件数据生成错误![sAllId为空]'); // 获取父节点的sAllId
return;
}
tableDataRow.sAllId = `${controlData[iIndex].sAllId},${tableDataRow.sId}`;
}
}
}
tableData.push(tableDataRow);
this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
} else if (name === 'materials' || name === 'process') {
tableDataRow = this.props.onDataRowAdd(name, true);
if (commonUtils.isEmptyArr(controlSelectedRowKeys)) {
const msg = commonFunc.showMessage(gdsformconst, 'pleaseChooseParts');
message.warn(msg === '' ? '请选择部件' : msg); // 请选择部件
return;
}
const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]);
const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
if (iIndex > -1 && iSlaveIndex > -1) {
if (commonUtils.isEmpty(controlData[iIndex].sPartsName) === '') {
message.warn(commonFunc.showMessage(gdsformconst, 'partsNameNotNull')); // 部件名称不能为空
return;
}
tableDataRow.sSlaveId = slaveData[iSlaveIndex].sId;
tableDataRow.sControlId = controlData[iIndex].sId;
tableDataRow.sPartsName = controlData[iIndex].sPartsName;
}
tableData.push(tableDataRow);
this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
} else {
this.props.onDataRowAdd(name, flag);
}
};
/** 删除表格数据 */
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`]: [] };
};
/** 删除表格数据 */
handleTableDel = (name, isWait, tableSelectedRowKeys, isTree) => {
const {
slaveSelectedRowKeys, slaveData, slaveInfoConfig, slaveConfig,
} = this.props;
if (name === 'control') {
// const tableSelectedRowKeys = this.props[`${name}SelectedRowKeys`]; /* 删除时,选中行取删除参数传过来的 */
const {
controlData, treeSelectedKeys, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, sModelsType, slaveSelectedRowKeys, slaveData,
} = this.props;
if (isTree) {
/* 删除该节点及所有子节点 */
const controlChildData = controlData.filter(item => commonUtils.isNotEmptyArr(treeSelectedKeys) && commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
if (commonUtils.isNotEmptyArr(controlData)) {
controlChildData.forEach((itemNew) => {
tableSelectedRowKeys.push(itemNew.sId);
});
}
}
if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) {
const materialsReturnData = this.otherTableDel('materials', tableSelectedRowKeys);
const processReturnData = this.otherTableDel('process', tableSelectedRowKeys);
const controlReturnData = this.props.onDataRowDel(name, isWait, tableSelectedRowKeys);
this.props.onSaveState({
...materialsReturnData,
...processReturnData,
...controlReturnData,
});
return true;
} else {
message.warn('请选择要删除的部件!');
return false;
}
} else if (name === 'slave') { /* 删除子表 */
if (slaveConfig.sTableType === 'multiple' && commonUtils.isNotEmptyObject(slaveInfoConfig)) {
if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
let slaveInfoReturnData = {};
if (commonUtils.isNotEmptyObject(slaveInfoConfig)) {
slaveInfoReturnData = this.props.onChildTableDel('slaveInfo', slaveSelectedRowKeys, slaveData, 'sFatherSlaveId');
}
const slaveReturnData = this.props.onDataRowDel(name, isWait, slaveSelectedRowKeys);
this.props.onSaveState({
...slaveInfoReturnData,
...slaveReturnData,
});
return true;
}
} else if (slaveConfig.sTableType === 'single') { /* 单表删除 */
if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
let slaveSelectedRowNewKeys = slaveSelectedRowKeys;
const newSelectedRowKeys = this.handleDelSlaveChild(slaveData, slaveSelectedRowKeys[0], slaveSelectedRowKeys);
if (commonUtils.isNotEmptyArr(newSelectedRowKeys)) {
slaveSelectedRowNewKeys = newSelectedRowKeys;
}
const slaveReturnData = this.props.onDataRowDel(name, isWait, slaveSelectedRowNewKeys);
this.props.onSaveState({
...slaveReturnData,
});
return true;
}
} else {
const slaveReturnData = this.props.onDataRowDel(name, isWait, slaveSelectedRowKeys);
this.props.onSaveState({
...slaveReturnData,
});
return true;
}
} else {
return this.props.onDataRowDel(name, isWait, tableSelectedRowKeys);
}
};
/* 迭代删除从表子表数据 */
handleDelSlaveChild = (tableData, sId, tableSelectedKeys) => {
const filterData = tableData.filter(item => item.sFatherSlaveId === sId);
filterData.forEach((item) => {
tableSelectedKeys.push(item.sId);
this.handleDelSlaveChild(tableData, item.sId, tableSelectedKeys);
});
return tableSelectedKeys;
}
/** 销售订单删除从表数据时也删除控制材料工序表数据 */
handleSlaveTableDel = (name, isWait, tableSelectedRowKeys) => {
const {
sModelsType, controlData, processData, materialsData,
} = this.props;
if (sModelsType === 'sales/salesOrder' && name === 'slave') {
const controlDataDel = controlData.filter(item => item.sSlaveId === tableSelectedRowKeys[0]);
const controlDataSelectedRowKeys = [];
if (!commonUtils.isEmpty(controlDataDel)) {
for (const item of controlDataDel) {
const materialsDataSelectedRowKey = item.sId;
controlDataSelectedRowKeys.push(materialsDataSelectedRowKey);
}
if (commonUtils.isNotEmptyArr(controlDataSelectedRowKeys)) {
this.props.onDataRowDel('control', isWait, controlDataSelectedRowKeys, true);
}
const materialsDataDel = materialsData.filter(item => item.sSlaveId === tableSelectedRowKeys[0]);
const materialsDataSelectedRowKeys = [];
if (!commonUtils.isEmpty(materialsDataDel)) {
for (const item of materialsDataDel) {
const materialsDataSelectedRowKey = item.sId;
materialsDataSelectedRowKeys.push(materialsDataSelectedRowKey);
}
}
if (commonUtils.isNotEmptyArr(materialsDataSelectedRowKeys)) {
this.props.onDataRowDel('materials', isWait, materialsDataSelectedRowKeys, true);
}
const processDataDel = processData.filter(item => item.sSlaveId === tableSelectedRowKeys[0]);
const processDataSelectedRowKeys = [];
if (!commonUtils.isEmpty(processDataDel)) {
for (const item of processDataDel) {
const processDataSelectedRowKey = item.sId;
processDataSelectedRowKeys.push(processDataSelectedRowKey);
}
}
if (commonUtils.isNotEmptyArr(processDataSelectedRowKeys)) {
this.props.onDataRowDel('process', isWait, processDataSelectedRowKeys, true);
}
}
}
return this.props.onDataRowDel(name, isWait, tableSelectedRowKeys);
};
handleSelect = async (name, selectConfig, selectData) => {
const {
[`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Config`]: tableConfig, masterConfig, controlSelectedRowKeys, sModelsId, token, app, tableName, sModelsType,
} = this.props;
let { masterData } = this.props;
if (commonUtils.isNotEmptyObject(selectConfig.sControlName) && selectConfig.sControlName.toLowerCase().includes('tmplnfobysqlsalesorder')) {
const { slaveData, slaveSelectedRowKeys } = this.props;
const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`;
const sConfigformId = commonUtils.isEmpty(selectConfig) ? '' : selectConfig.sParentId;
const sControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? selectConfig.sControlName : 'BtnCopyFrom.TmpInfoBySql';
let sSqlCondition = '';
const conditonValues0 = this.props.getSqlCondition(selectConfig, 'slave', selectData[0]);
if (commonUtils.isNotEmptyObject(conditonValues0)) {
sSqlCondition = conditonValues0;
} else {
sSqlCondition = { sId: selectData[0].sId };
}
/* 如果只有1行替换,超出1行新增 */
let iSlaveIndex = -1;
let slaveRow = {};
if (commonUtils.isNotEmptyArr(slaveData)) {
if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
iSlaveIndex = 0;
} else {
iSlaveIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId));
}
}
if (iSlaveIndex > -1) {
slaveRow = slaveData[iSlaveIndex];
}
const sRowData = selectData;
const values = { sConfigformId, sControlName, sRowData };
const sTmpInfoBySqlBtnName = selectConfig.sControlName;
const allReturnMap = {};
if (true) {
const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
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, [`${sDelName}`]: oldDelData } = this.props;
if (commonUtils.isEmptyArr(oldDelData)) {
oldDelData = [];
}
if (commonUtils.isEmptyArr(oldData)) {
oldData = [];
}
/* 找到赋值字段 */
const tableConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(sTmpInfoBySqlBtnName + '.' + key));
const tableField = commonUtils.isNotEmptyArr(tableConfig) ? tableConfig[0].sAssignField : '';
if (sTmpInfoBySqlBtnName.includes('_edit')) { /* 替换 根据对应字段对比 相同的不管 不同的插入 */
/* 对应字段 */
const sActiveKey = selectConfig.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(tableField, 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(tableField, child) }; // 取赋值字段
tableRow.sId = commonUtils.createSid();
tableRow.sParentId = masterData.sId;
tableRow.handleType = 'add';
oldData.push(tableRow);
});
}
allReturnMap[sName] = oldData;
} else { /* 插入 数据都插入进去 */
/* 对应字段 */
const keyData = returnData[key];
// 生产补印备料
if (this.props.sModelsId === '12710101117005582604140' && key !== 'master') {
oldData.forEach((child) => {
child.handleType = 'del';
oldDelData.push(child);
});
allReturnMap[sDelName] = oldDelData;
oldData = [];
}
if (key === 'master') {
let newData = keyData;
if (commonUtils.isNotEmptyArr(keyData) && Array.isArray(keyData)) {
newData = keyData[0]
}
oldData = { ...oldData, ...commonFunc.getAssignFieldValue(tableField, newData) }; // 取赋值字段
masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType;
} else if (key === 'slave') { /* 从表 */
if (commonUtils.isNotEmptyObject(slaveRow) && commonUtils.isNotEmptyArr(oldData)) {
oldData[iSlaveIndex] = { ...slaveRow, ...commonFunc.getAssignFieldValue(tableField, keyData[0]) }; // 取赋值字段
oldData[iSlaveIndex].sOriginalId = commonUtils.isNotEmptyObject(keyData[0].sOriginalId) ? keyData[0].sOriginalId : keyData[0].sSlaveId;
// 生产补印备料
if (this.props.sModelsId === '12710101117005582604140') {
oldData[iSlaveIndex].sBomId = selectData[0].sProductCardId;
oldData[iSlaveIndex].sProductTechnologyVer = selectData[0].sProductTechnologyVer;
oldData[iSlaveIndex].sSelectType = "mainVersion";
oldData[iSlaveIndex].handleType = commonUtils.isEmpty(oldData[iSlaveIndex].handleType) ? 'update' : oldData[iSlaveIndex].handleType;
oldData[iSlaveIndex].sMainProductTechnologyId = selectData[0].sProductCardId;
}
slaveData[iSlaveIndex] = oldData[iSlaveIndex];
} else {
if (commonUtils.isNotEmptyArr(keyData)) {
keyData.forEach((child) => {
let tableRow = {};
tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(tableField, child) }; // 取赋值字段
tableRow.sId = commonUtils.createSid();
tableRow.sParentId = masterData.sId;
tableRow.sOriginalId = commonUtils.isNotEmptyObject(child.sSlaveId) ? child.sSlaveId : child.sId; /* 原始sId */
tableRow.sFatherSlaveId = child.sFatherSlaveId; /* 原始sId */
tableRow.handleType = 'add';
if (this.props.sModelsId === '12710101117005582604140') {
tableRow.sBomId = selectData[0].sProductCardId;
tableRow.sProductTechnologyVer = selectData[0].sProductTechnologyVer;
tableRow.sSelectType = "mainVersion";
tableRow.sMainProductTechnologyId = selectData[0].sProductCardId;
}
oldData.push(tableRow);
});
}
}
/* sFatherSlaveId对应为新的sId */
if (commonUtils.isNotEmptyArr(oldData)) {
const materialsFilterData = oldData.filter(item => commonUtils.isNotEmptyObject(item.sFatherSlaveId));
if (commonUtils.isNotEmptyArr(materialsFilterData)) {
materialsFilterData.forEach((filterItem, index) => {
const iIndex = oldData.findIndex(item => item.sOriginalId === filterItem.sFatherSlaveId);
if (iIndex > -1) {
const iNexIndex = oldData.findIndex(item => item.sId === filterItem.sId);
if (iNexIndex > -1) {
oldData[iNexIndex] = {
...oldData[iNexIndex],
sFatherSlaveId: oldData[iIndex].sId
}
}
}
});
}
}
} else {
if (commonUtils.isNotEmptyArr(keyData)) {
keyData.forEach((child) => {
let tableRow = {};
tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(tableField, child) }; // 取赋值字段
tableRow.sId = commonUtils.createSid();
tableRow.sParentId = masterData.sId;
tableRow.sOriginalId = child.sOriginalId; /* 老的从表sSlaveId */
// 生产补印备料
if (this.props.sModelsId === '12710101117005582604140') {
tableRow.sProductCardId = selectData[0].sProductCardId;
tableRow.sZmldlt = child.sZmldlt;
tableRow.sSlaveId = commonUtils.isNotEmptyArr(slaveData) && slaveData[0].sId ? slaveData[0].sId : '';
tableRow.sProcessTbId = child.sProcessTbId;
tableRow.sParentMaterialsId = child.sParentMaterialsId;
tableRow.sInkFatherMaterialsTbId = child.sInkFatherMaterialsTbId;
tableRow.sOriginalOldId = child.sId;
}
if (key === 'control') {
tableRow.sSrcControlId = child.sId;
} else {
tableRow.sSrcControlId = child.sControlId;
}
tableRow.handleType = 'add';
oldData.push(tableRow);
});
}
if (commonUtils.isNotEmptyObject(slaveRow)) {
/* 将部件、材料、工序的sSlaveId 均换成最新的 */
oldData = commonUtils.genSlaveNewId(oldData, key, 'sSlaveId', 'sOriginalId', slaveData[iSlaveIndex]);
}
}
allReturnMap[sName] = oldData;
}
}
/* 将工序材料表的sControlId 换成最新的 */
if (commonUtils.isNotEmptyObject(allReturnMap)) {
const controlNewData = allReturnMap.controlData;
const materialsNewData = allReturnMap.materialsData;
const processNewData = allReturnMap.processData;
if (commonUtils.isNotEmptyArr(controlNewData)) {
controlNewData.forEach((controlRow) => {
/* 替换工序数据中sControlId为最新控制表的sId */
if (commonUtils.isNotEmptyArr(processNewData)) {
const processFilterData = processNewData.filter(materialsRow => materialsRow.sSrcControlId === controlRow.sSrcControlId);
if (commonUtils.isNotEmptyArr(processFilterData)) {
processFilterData.forEach((filterRow) => {
const index = processNewData.findIndex(materialsRow => materialsRow.sId === filterRow.sId);
filterRow.sControlId = controlRow.sId;
filterRow.sPartsName = controlRow.sPartsName;
if (index > -1) {
processNewData[index] = filterRow;
}
})
}
}
/* 替换材料数据中sControlId为最新控制表的sId */
if (commonUtils.isNotEmptyArr(materialsNewData)) {
let materialsFilterData = materialsNewData.filter(materialsRow => materialsRow.sSrcControlId === controlRow.sSrcControlId);
if (commonUtils.isNotEmptyArr(materialsFilterData)) {
materialsFilterData.forEach((filterRow) => {
const index = materialsNewData.findIndex(materialsRow => materialsRow.sId === filterRow.sId);
filterRow.sControlId = controlRow.sId;
filterRow.sPartsName = controlRow.sPartsName;
if (index > -1) {
materialsNewData[index] = filterRow;
// 材料对应工序的ID要变化
const iProcessIndex = processNewData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsNewData[index].sProcessTbId);
if (iProcessIndex > -1) {
materialsNewData[index].sProcessTbId = processNewData[iProcessIndex].sId;
}
materialsNewData[index].sCombinePartsName = commonUtils.isNotEmptyArr(allReturnMap.slaveData) ? allReturnMap.slaveData[0].sId : '';
}
});
}
const materialsData = materialsNewData;
materialsFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId));
if (commonUtils.isNotEmptyArr(materialsFilterData)) {
materialsFilterData.forEach((filterItem, index) => {
const iIndex = materialsData.findIndex(item => item.sOriginalOldId === filterItem.sParentMaterialsId);
if (iIndex > -1) {
const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId);
if (iNexIndex > -1) {
materialsData[iNexIndex] = { ...materialsData[iNexIndex], sParentMaterialsId: materialsData[iIndex].sId }
}
}
});
}
const materialsInkFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sInkFatherMaterialsTbId));
if (commonUtils.isNotEmptyArr(materialsInkFilterData)) {
materialsInkFilterData.forEach((filterItem, index) => {
const iIndex = materialsData.findIndex(item => item.sOriginalOldId === filterItem.sInkFatherMaterialsTbId);
if (iIndex > -1) {
const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId);
if (iNexIndex > -1) {
materialsData[iNexIndex] = { ...materialsData[iNexIndex], sInkFatherMaterialsTbId: materialsData[iIndex].sId }
}
}
});
}
}
});
allReturnMap.materialsData = materialsNewData;
allReturnMap.processData = processNewData;
}
}
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.warn('数据未配置!不能生成!');
return;
}
} else if (commonUtils.isNotEmptyObject(selectConfig.sControlName) && selectConfig.sControlName.toLowerCase().includes('tmpinfobysql')) {
const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`;
const sConfigformId = commonUtils.isEmpty(selectConfig) ? '' : selectConfig.sParentId;
const sControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? selectConfig.sControlName : 'BtnCopyFrom.TmpInfoBySql';
let sSqlCondition = '';
const conditonValues0 = this.props.getSqlCondition(selectConfig, 'slave', selectData[0]);
if (commonUtils.isNotEmptyObject(conditonValues0)) {
sSqlCondition = conditonValues0;
} else {
sSqlCondition = { sId: selectData[0].sId };
}
const sRowData = selectData;
const values = { sConfigformId, sControlName, sRowData };
const sTmpInfoBySqlBtnName = selectConfig.sControlName;
const allReturnMap = {};
if (true) {
const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
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 = [];
}
/* 找到赋值字段 */
const tableConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(sTmpInfoBySqlBtnName + '.' + key));
const tableField = commonUtils.isNotEmptyArr(tableConfig) ? tableConfig[0].sAssignField : '';
if (sTmpInfoBySqlBtnName.includes('_edit')) { /* 替换 根据对应字段对比 相同的不管 不同的插入 */
/* 对应字段 */
const sActiveKey = selectConfig.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(tableField, child) }; // 取赋值字段
tableRow.sId = commonUtils.createSid();
tableRow.sParentId = masterData.sId;
tableRow.handleType = 'add';
newData.push(tableRow);
}
});
newData = oldData.concat(newData);
}
allReturnMap[sName] = newData;
} else { /* 替换 根据对应字段对比 相同的不管 不同的插入 */
/* 对应字段 */
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(tableField, child) }; // 取赋值字段
tableRow.sId = commonUtils.createSid();
tableRow.sParentId = masterData.sId;
tableRow.handleType = 'add';
oldData.push(tableRow);
});
}
allReturnMap[sName] = oldData;
}
}
if (commonUtils.isNotEmptyArr(allReturnMap.masterData) && Array.isArray(allReturnMap.masterData)) {
allReturnMap.masterData = allReturnMap.masterData[0];
}
console.log('allReturnMap:111', allReturnMap);
this.props.onSaveState({ ...allReturnMap });
}
} else {
this.props.getServiceError(dataReturn);
}
} else {
message.warn('数据未配置!不能生成!');
return;
}
} else if (sModelsType !== '' && sModelsType.includes('sales/') && name === 'productProcessInfo') { /* 销售订单调用工艺卡 */
const {
controlConfig, materialsConfig, processConfig, slaveSelectedRowKeys, slaveData,
} = this.props;
const iIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId));
if (iIndex > -1 && commonUtils.isNotEmptyArr(selectData)) {
const tableDataRow = slaveData[iIndex]; /* 从表选中行 */
let { controlData, materialsData, processData } = this.props;
const sId = tableDataRow.sId;
const bCkxCopyFromTechnology = '1'; // app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue;
if (bCkxCopyFromTechnology === '1' && tableDataRow.sProductId !== tableDataRow.sProductName) {
const controlSelectedData = controlData.filter(item => item.sSlaveId === sId);
if (commonUtils.isNotEmptyObject(controlSelectedData)) {
const controlSelectedRowKeys = [];
controlSelectedData.forEach((item) => {
controlSelectedRowKeys.push(item.sId);
});
const materialsReturnData = this.otherTableDel('materials', controlSelectedRowKeys);
const processReturnData = this.otherTableDel('process', controlSelectedRowKeys);
const controlReturnData = this.props.onDataRowDel('control', true, controlSelectedRowKeys);
controlData = controlReturnData.controlData;
materialsData = materialsReturnData.materialsData;
processData = processReturnData.processData;
this.props.onSaveState({
...materialsReturnData,
...processReturnData,
...controlReturnData,
});
}
const sCustomerId = selectData[0].sCustomerId;
const sProductId = selectData[0].sProductId;
const sProductIdArray = [];
sProductIdArray.push(sProductId);
const sProductIds = sProductIdArray.toString();
const condition = {
sCustomerId, sProductIds,
sRowData: selectData,
};
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.productProcessInfo'));
if (dataReturn.code === 1) {
const returnData = dataReturn.dataset.rows[0];
const copyToControlConfig = config.filter(item => item.sControlName.toLowerCase().includes('.control'));
const copyToMaterialsConfig = config.filter(item => item.sControlName.toLowerCase().includes('.materials'));
const copyToProcessConfig = config.filter(item => item.sControlName.toLowerCase().includes('.process'));
const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[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.controlData)) {
const treeCopyNodes = new Map();
// eslint-disable-next-line no-loop-func
returnData.controlData.forEach((controlItem) => {
newCopyTo.control = controlItem;
let controlRow = commonFunc.getDefaultData(controlConfig, newCopyTo); // 取默认值
controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段
controlRow.handleType = 'add';
controlRow.sId = commonUtils.createSid();
controlRow.sSlaveId = tableDataRow.sId;
controlRow.sParentId = masterData.sId;
if (sModelsType === 'sales/salesOrderPack') { /* 树形 */
/* CopyTo时sAllId,sControlParentId 设置 */
const sAllOldId = controlItem.sAllId;
let arr = [];
if (commonUtils.isNotEmptyObject(sAllOldId)) {
arr = sAllOldId.split(',');
}
const newId = controlRow.sId;
let sOldParentId = '';
let sNewParentAllId = '';
if (arr.length < 2) { /* 根节点复制 */
controlRow.sAllId = newId;
sOldParentId = newId;
sNewParentAllId = newId;
} else {
sOldParentId = arr[arr.length - 2];
if (treeCopyNodes.has(sOldParentId)) {
sNewParentAllId = treeCopyNodes.get(sOldParentId);
} else {
const obj = arr[arr.length - 1];
sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
}
const sNewArr = sNewParentAllId.split(',');
controlRow.sControlParentId = sNewArr[sNewArr.length - 1];
sNewParentAllId = `${sNewParentAllId},${newId}`;
controlRow.sAllId = sNewParentAllId;
}
treeCopyNodes.set(controlItem.sId, sNewParentAllId);
}
controlData.push(controlRow);
if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
returnData.materialsData.filter(item => item.sControlId === controlItem.sId)
.forEach((materialsItem) => {
newCopyTo.materials = materialsItem;
let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo); // 取默认值
materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
materialsRow.handleType = 'add';
materialsRow.sId = commonUtils.createSid();
materialsRow.sSlaveId = tableDataRow.sId;
materialsRow.sParentId = masterData.sId;
materialsRow.sControlId = controlRow.sId;
materialsRow.sPartsName = controlRow.sPartsName;
materialsData.push(materialsRow);
});
}
if (commonUtils.isNotEmptyArr(returnData.processData)) {
returnData.processData.filter(item => item.sControlId === controlItem.sId)
.forEach((processItem) => {
newCopyTo.process = processItem;
let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
processRow.handleType = 'add';
processRow.sId = commonUtils.createSid();
processRow.sSlaveId = tableDataRow.sId;
processRow.sParentId = masterData.sId;
processRow.sControlId = controlRow.sId;
processRow.sPartsName = controlRow.sPartsName;
processData.push(processRow);
});
}
});
}
if (commonUtils.isNotEmptyArr(returnData.materialsData)) {
// eslint-disable-next-line no-loop-func
returnData.materialsData.filter(item => item.sType === '2')
.forEach((materialsItem) => {
newCopyTo.materials = materialsItem;
let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo); // 取默认值
materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段
materialsRow.handleType = 'add';
materialsRow.sId = commonUtils.createSid();
materialsRow.sSlaveId = tableDataRow.sId;
materialsRow.sParentId = masterData.sId;
materialsData.push(materialsRow);
});
}
if (commonUtils.isNotEmptyArr(returnData.processData)) {
// eslint-disable-next-line no-loop-func
returnData.processData.filter(item => item.sType === '3')
.forEach((processItem) => {
newCopyTo.process = processItem;
let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值
processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段
processRow.handleType = 'add';
processRow.sId = commonUtils.createSid();
processRow.sSlaveId = tableDataRow.sId;
processRow.sParentId = masterData.sId;
processData.push(processRow);
});
}
this.props.onSaveState({
controlData,
materialsData,
processData,
});
}
}
}
} else if (name === 'productProcessInfoAbandon') { /* 暂未使用的调用工艺卡功能 */
if (commonUtils.isNotEmptyArr(selectData)) {
let slaveData = [];
let controlData = [];
let materialsData = [];
let processData = [];
let sConfigMasterIdSlave = '';
let sConfigMasterIdControl = '';
let sConfigMasterIdMaterials = '';
let sConfigMasterIdProcess = '';
const selectRowData = selectData[0];
const sConfigIdString = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sConfigId')[0].showDropDown;
if (commonUtils.isNotEmptyStr(sConfigIdString)) {
const sConfigId = JSON.parse(sConfigIdString);
sConfigMasterIdSlave = sConfigId.sConfigMasterIdSlave;
sConfigMasterIdControl = sConfigId.sConfigMasterIdControl;
sConfigMasterIdMaterials = sConfigId.sConfigMasterIdMaterials;
sConfigMasterIdProcess = sConfigId.sConfigMasterIdProcess;
}
if (commonUtils.isEmptyStr(sConfigMasterIdSlave)) {
message.warning(commonFunc.showMessage(app.commonConst, 'slaveParameterErro'));
}
if (commonUtils.isEmptyStr(sConfigMasterIdControl)) {
message.warning(commonFunc.showMessage(app.commonConst, 'controlParameterErro'));
}
if (commonUtils.isEmptyStr(sConfigMasterIdMaterials)) {
message.warning(commonFunc.showMessage(app.commonConst, 'materialsParameterErro'));
}
if (commonUtils.isEmptyStr(sConfigMasterIdProcess)) {
message.warning(commonFunc.showMessage(app.commonConst, 'processParameterErro'));
}
const slaveUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdSlave}?sModelsId=${sModelsId}`;
const value = { sSqlCondition: { sParentId: selectRowData.sId } };
const slaveReturnData = (await commonServices.postValueService(token, value, slaveUrl)).data;
if (slaveReturnData.code === 1) {
slaveData = slaveReturnData.dataset.rows[0].dataSet;
slaveData.forEach((item) => {
item.handleType = 'add';
item.sId = commonUtils.createSid();
item.sParentId = masterData.sId;
});
} else {
this.props.getServiceError(slaveReturnData);
}
const controlUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdControl}?sModelsId=${sModelsId}`;
const controlReturnData = (await commonServices.postValueService(token, value, controlUrl)).data;
if (controlReturnData.code === 1) {
controlData = controlReturnData.dataset.rows[0].dataSet;
controlData.forEach((item) => {
item.handleType = 'add';
item.sId = commonUtils.createSid();
item.sParentId = masterData.sId;
});
} else {
this.props.getServiceError(controlReturnData);
}
const materialsUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdMaterials}?sModelsId=${sModelsId}`;
const materialsReturnData = (await commonServices.postValueService(token, value, materialsUrl)).data;
if (materialsReturnData.code === 1) {
materialsData = materialsReturnData.dataset.rows[0].dataSet;
materialsData.forEach((item) => {
item.handleType = 'add';
item.sId = commonUtils.createSid();
item.sParentId = masterData.sId;
});
} else {
this.props.getServiceError(materialsReturnData);
}
const processUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdProcess}?sModelsId=${sModelsId}`;
const processReturnData = (await commonServices.postValueService(token, value, processUrl)).data;
if (processReturnData.code === 1) {
processData = processReturnData.dataset.rows[0].dataSet;
processData.forEach((item) => {
item.handleType = 'add';
item.sId = commonUtils.createSid();
item.sParentId = masterData.sId;
});
} else {
this.props.getServiceError(processReturnData);
}
this.props.onSaveState({
processData, materialsData, controlData, slaveData, [`${name}ChooseVisible`]: false, [`${name}SelectedRowKeys`]: tableSelectedRowKeys,
});
}
} else if (tableName === 'slave' && selectConfig.sControlName === 'BtnChooseMaterials') {
this.props.onSelect('slave', selectConfig, selectData);
} else if (sModelsType.includes('cashier/') && selectConfig.sControlName === 'BtnImportFormData') {
const { slaveData } = this.props;
let tableDataNew = [];
if (commonUtils.isNotEmptyArr(slaveData)) {
tableDataNew = slaveData;
tableDataNew.forEach((item, index) => {
const handleType = item.handleType;
if (commonUtils.isEmptyObject(handleType) || handleType === 'update') {
tableDataNew[index] = { ...item, handleType: 'del' };
}
});
}
if (commonUtils.isNotEmptyArr(selectData)) {
selectData.forEach((item) => {
let tableDataRow = {}; // 取默认值
tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item) }; // 取赋值字段
tableDataRow.handleType = 'add';
tableDataRow.sId = commonUtils.createSid();
tableDataRow.sParentId = masterData.sId;
tableDataNew.push(tableDataRow);
});
this.props.onSaveState({ slaveData: tableDataNew, importFormDataVisible: false });
}
} else {
const { controlData, slaveData, slaveSelectedRowKeys } = this.props;
const iIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1;
if (commonUtils.isNotEmptyArr(selectData)) {
selectData.forEach((item) => {
const newCopyTo = {};
newCopyTo.master = masterData;
if (iIndex > -1) {
newCopyTo.control = controlData[iIndex];
}
let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值
tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
tableDataRow.handleType = 'add';
tableDataRow.sId = commonUtils.createSid();
tableDataRow.sParentId = masterData.sId;
if (this.props.sModelsType.includes('sales/salesOrder')) {
const iSlaveIndex = commonUtils.isNotEmptyArr(slaveSelectedRowKeys) ? slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]) : -1;
if (iSlaveIndex > -1) {
tableDataRow.sSlaveId = slaveData[iSlaveIndex].sId;
}
}
if (iIndex > -1 && tableDataRow.sType !== '3') {
tableDataRow.sControlId = controlData[iIndex].sId;
tableDataRow.sPartsName = controlData[iIndex].sPartsName;
tableData.push(tableDataRow);
} else if (tableDataRow.sType === '3') {
tableData.push(tableDataRow);
}
tableSelectedRowKeys.push(tableDataRow.sId);
});
}
const tableDataNew = this.sortData(controlData, tableData);
this.props.onSaveState({ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, [`${name}SelectedRowKeys`]: tableSelectedRowKeys });
}
};
/** 树节点选中 */
handleTreeSelect = (name, checkedKeys, e) => {
let { controlSelectedRowKeys } = this.props;
controlSelectedRowKeys = checkedKeys; /* 把树形选中节点赋值给表格部件选中节点 */
this.props.onTreeSelect(name, checkedKeys, e);
this.props.onSaveState({
controlSelectedRowKeys,
});
};
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;
};
handleGetDataOk = () => {
this.props.onDataImport('zero');
}
handleGetDataCancel = () => {
this.props.onDataImport('all');
}
colseGetDataVisible = () => {
this.props.onSaveState({ isGetDataVisible: false });
}
/* 审核备注文本框改变事件 */
textChange = (e, record) => {
const sCheckRemark = commonUtils.isNotEmptyObject(record) && commonUtils.isNotEmptyObject(e.target.value) ? e.target.value : '';
this.props.onSaveState({ sCheckRemark });/* 审核备注 */
}
handleTableCopy = (name, isWait, isTree) => {
const {
[`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Pagination`]: tablePagination, sModelsType,
} = this.props;
if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
message.warn(commonFunc.showMessage(this.props.app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */
} else {
if (sModelsType === 'sales/salesOrderPack' && isTree) { /* 树形 */
const {
[`${name}SelectedRowKeys`]: treeSelectedKeys,
} = this.props;
const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]);
if (commonUtils.isNotEmptyArr(tableData)) {
controlChildData.forEach((itemNew) => {
tableSelectedRowKeys.push(itemNew.sId);
});
}
}
const treeCopyNodes = new Map();
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;
tableDataRow.rowTag = null;
tableDataRow.sOrderdetailUsed = '';
tableDataRow.sProductionUsed = '';
tableDataRow.sWorkOrderUsed = '';
tableDataRow.dWorkOrderQty = 0;
const iOrderArr = [];
tableData.forEach((item) => {
const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */
iOrderArr.push(iOrder);
});
const iOrderMax = Math.max(...iOrderArr);
tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0;
if (commonUtils.isNotEmptyObject(tableDataRow.sMaterialsMemo)) {
tableDataRow.sMaterialsMemo = '';
}
if (commonUtils.isNotEmptyObject(tableDataRow.sProcessMemo)) {
tableDataRow.sProcessMemo = '';
}
if (sModelsType === 'sales/salesOrderPack' && isTree) { /* 树形 */
const sAllOldId = tableData[tableDataIndex].sAllId;
const arr = sAllOldId.split(',');
const newId = commonUtils.createSid();
tableDataRow.sId = newId;
let sOldParentId = '';
let sNewParentAllId = '';
if (arr.length < 2) { /* 根节点复制 */
tableDataRow.sAllId = newId;
sOldParentId = newId;
sNewParentAllId = newId;
} else {
sOldParentId = arr[arr.length - 2];
if (treeCopyNodes.has(sOldParentId)) {
sNewParentAllId = treeCopyNodes.get(sOldParentId);
} else {
const obj = arr[arr.length - 1];
sNewParentAllId = sAllOldId.replace((`,${obj}`), '');
}
const sNewArr = sNewParentAllId.split(',');
tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1];
sNewParentAllId = `${sNewParentAllId},${newId}`;
tableDataRow.sAllId = sNewParentAllId;
}
treeCopyNodes.set(sId, sNewParentAllId);
}
if (isWait) {
return tableDataRow;
} else if (commonUtils.isNotEmptyObject(tableDataRow)) {
tableData.push(tableDataRow);
this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 } });
}
}
}
}
};
// ----------------------------数据修改回带end ---------------------------- //
handleMenuClick = (e) => {
let { sId } = this.props.masterData;
const Type = e.key;
const { token } = this.props.app;
const { sType } = this.props.app.userinfo;
if (Type === 'formSlave') { /* 根据从表勾选数据 生成从表数据 */
const { slaveSelectedRowKeys } = this.props;
if (commonUtils.isEmptyObject(slaveSelectedRowKeys)) {
message.error(commonFunc.showMessage(this.props.app.commonConst, 'pleaseChooseData'));/* 请选择一条数据 */
return;
}
sId = slaveSelectedRowKeys;
}
const downloadUrl = `${commonConfig.server_host}sqlfile/scriptSqlDownload?methodName=${Type
}&sId=${sId}&token=${token}&sType=${sType}`;
window.open(downloadUrl);
this.props.onSaveState({
downloadUrl,
});
};
handleSqlDownload = (type) => {
const { masterData } = this.props;
const { token } = this.props.app;
const { sType } = this.props.app.userinfo;
if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyObject(masterData.sId)) {
let downloadUrl = '';
if (type === 'all') {
downloadUrl = `${commonConfig.server_host}sqlfile/scriptSqlDownload?methodName=module&&Type=ALL&sId=${masterData.sParentId !== '' ? masterData.sParentId : masterData.sId}&token=${token}&sType=${sType}`;
} else {
downloadUrl = `${commonConfig.server_host}sqlfile/scriptSqlDownload?methodName=module&&Type=ALL&sId=${masterData.sId}&token=${token}&sType=${sType}`;
}
window.open(downloadUrl);
}
}
handleDrag = (data) => {
this.props.onSaveState({
processData: data,
});
}
handleTableFilterData = (name, data, record) => {
/* 外置处理业务 */
if (name === 'slave') {
let slaveInfoDataNew = [];
if (commonUtils.isNotEmptyArr(data)) {
slaveInfoDataNew = data.filter(item => item.sFatherSlaveId && record.sId && item.sFatherSlaveId === record.sId);
}
return slaveInfoDataNew;
}
}
handleCheckBoxStatus = (status, dataIndex, name) => {
const { [`${name}Data`]: dataSource } = this.props;
if (!Array.isArray(dataSource)) return;
const result = dataSource.map(i => ({
...i,
[dataIndex]: status,
}));
this.props.onSaveState({ [`${name}Data`]: result });
}
render() {
const {
pageLoading, masterConfig, visible, checkConditions, checkPersonData, visibleModal, processChooseVisible, materialsChooseVisible,
app, sTabId, sModelsType, enabled, slaveSelectedRowKeys, controlData,
} = this.props;
const checkCondition = commonFunc.showMessage(app.commonConst, 'checkCondition');/* 审核条件 */
const checkSmemo = commonFunc.showMessage(app.commonConst, 'checkSmemo');/* 备注 */
const columns = [{
title: checkCondition,
dataIndex: 'condition',
key: 'condition',
}, {
title: checkSmemo,
dataIndex: 'sMemo',
key: 'sMemo',
render: (text, record) => {
return (