/* eslint-disable */
import React, { Component, useState, useRef, useEffect } from "react";
import { Form } from "@ant-design/compatible";
// import '@ant-design/compatible/assets/index.css';
import { Row, Col, Checkbox, Layout, Spin, Tabs, Dropdown, Avatar, Button, Menu, Table, Upload } from "antd-v4";
import { message } from "@/utils/common/message";
import { DownOutlined, UploadOutlined } from "@ant-design/icons";
import CommonNewSales from "@/components/Common/CommonNewBillEvent"; /* 继承销售模块业务功能 */
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 AssignmentField from "./AssignmentField";
import CommonView from "@/components/Common/CommonView";
import CommonViewTable from "@/components/Common/CommonViewTable";
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 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 AntdDraggableModal from "@/components/Common/AntdDraggableModal";
import CommonListSelect from "./CommonListSelect";
import WorkCalendar from "@/components/Common/WorkCalendar/WorkCalendar";
import ContextMenuModal from "@/components/Common/ContextMenuModal";
import CommonViewDragable from "@/components/Common/CommonViewDragable";
import CommonExamInfo from "@/components/Common/CommonExamInfo";
import JsonFormatter from "@/components/Common/Json/JsonFormatter";
import lodash from "lodash";
import userImgs from "@/assets/user.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';
const width = "18px";
const height = "18px";
const setAdd = {
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:
,
// };
// console.log('btn; ', setAdd, setDelete, setCopy);
const { Header, Content } = Layout;
const { TabPane } = Tabs;
let _this = {};
// const { confirm } = Modal;
class CommonNewBill extends Component {
constructor(props) {
super(props);
this.state = {
currentTab: "",
};
_this = this;
}
componentDidUpdate() {
// 没有默认页签情况下, 非编辑状态进入,展示第一个tab
const { enabled, masterConfig } = this.props;
// 获取默认展开tab
const defaultTabConfig =
masterConfig &&
masterConfig.gdsconfigformslave.find(
item =>
["MainContent", "zMaterials", "zCheck", ...new Array(10).fill("").map((_, index) => `zSlaveInfo${index}`)].includes(item.sControlName) &&
item.sDefault
);
if (!enabled && !this.firstLoaded && commonUtils.isEmptyObject(defaultTabConfig)) {
clearTimeout(this.timer);
this.timer = setTimeout(() => {
this.firstLoaded = true;
if (this.slaveTabsRef) {
const oFirstTab = this.slaveTabsRef.querySelector(".ant-tabs-nav-list")?.querySelector(".ant-tabs-tab");
if (oFirstTab) {
// 创建一个自定义的 click 事件
const clickEvent = new Event("click", { bubbles: true, cancelable: true });
// 触发该元素的 click 事件
oFirstTab.dispatchEvent(clickEvent);
}
}
}, 500);
}
}
/** 行选择 */
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;
}
};
/** 上传后执行函数 */
// handleUploadChange = (info) => {
// const { file } = info;
// console.log(info, 'infoinfoinfoinfoinfoinfoinfoinfoinfo');
// const { masterData, sModelsId, slaveConfig } = this.props;
// if (file.response) {
// if (file.response.code === 1) {
// /* 数据查询成功 */
// const errorInfo = file.response.dataset.rows[0].nocanbeInsert;
// if (commonUtils.isNotEmptyObject(errorInfo)) {
// message.error(errorInfo[0].sReason);
// return;
// }
// const returnData = file.response.dataset.rows[0].canbeInsert;
// returnData.forEach(async (tableDataRow) => {
// tableDataRow.handleType = 'add';
// tableDataRow.sId = commonUtils.createSid();
// tableDataRow.sParentId = masterData.sId;
// tableDataRow.key = tableDataRow.sId;
// 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];
// }
// }
// // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductId');
// let productIdDropDown;
// const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductId');
// if (slaveIndex > -1) {
// const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex]);
// productIdDropDown = sqlDropDownData.dropDownData;
// }
// if (productIdDropDown !== undefined) {
// const iProductIdIndex = 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,
// });
// }
// }
// });
// this.props.onSaveState({ slaveData: returnData });
// } else { /* 失败 */
// this.props.getServiceError(file.response);
// }
// }
// };
/** 图片上传后执行函数 */
handleUploadChange = (info, name) => {
const { file } = info;
if (file.response && file.response.code === 1) {
const sPicturePath = file.response.dataset.rows[0].savePathStr;
const uploadInfo = {
sPicturePath,
sFileName: file.name,
};
const tableDataRow = this.props.onDataRowAdd(name, true);
const { [`${name}Column`]: tableColumn, masterData, [`${name}Data`]: tableData } = this.props;
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);
}
};
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) } /* 是否显示 */,
};
}
};
handleOk = async (flag, tmpCheck, isWait) => {
const { sModelsId, masterData, app, checkConditions, sCheckModelId, checkPersonData, currentId, masterConfig, slaveConfig, checkConfig } =
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: "",
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 } = this.props;
const addState = {};
if (this.props.sModelsType === "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 = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductClassifyId');
let dropdownProductClassifyId;
const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductClassifyId");
if (slaveIndex > -1) {
const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, "slave", slaveConfig.gdsconfigformslave[slaveIndex]);
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;
}
// dropdownProductClassifyId = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductClassifyName');
}
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.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 = slaveData[iSlaveIndex].dProductQty;
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,
});
};
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 = () => {
const { controlData, slave0Data, processData, sModelsId, slaveData, slaveSelectedRowKeys, materialsConfig, processConfig } = this.props;
const ctData = controlData.filter(item => item.handleType !== "del" && item.sSlaveId === slaveSelectedRowKeys[0]);
const mtData = slave0Data.filter(item => item.handleType !== "del" && item.sSlaveId === slaveSelectedRowKeys[0]);
const pData = processData.filter(item => item.handleType !== "del" && item.sSlaveId === slaveSelectedRowKeys[0] && item.sType === "2");
if (commonUtils.isNotEmptyArr(ctData)) {
let mDetail = "";
let pDetail = "";
const slaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
ctData.forEach(async (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);
// const materialsIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'materials', 'sMaterialsName');
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 ? "" : ",";
if (materialsIdDropDown) {
const materialsIdIndex = materialsIdDropDown.findIndex(item => item.sId === mItem.sMaterialsId);
if (materialsIdIndex > -1) {
imDetail = `${imDetail}${fh} ${materialsIdDropDown[materialsIdIndex].sMaterialsName}`;
}
}
});
// processPropsType
const process = pData.filter(processItem => processItem.sControlId === controlItem.sId);
// const processIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'process', 'sProcessName');
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;
}
process.forEach((pItem, i) => {
const fh = i === 0 ? "" : ",";
if (processIdDropDown) {
const processIdIndex = processIdDropDown.findIndex(item => item.sId === pItem.sProcessId);
if (processIdIndex > -1) {
ipDetail = `${ipDetail}${fh} ${processIdDropDown[processIdIndex].sProcessName}`;
}
}
});
if (commonUtils.isNotEmptyObject(imDetail)) {
mDetail = `${yDetail}${imDetail}`;
}
if (commonUtils.isNotEmptyObject(ipDetail)) {
pDetail = `${gDetail}${ipDetail}`;
}
}
}
});
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,
slave0Data,
processData,
slaveData,
});
};
/** 控制选择控制表时,显示部件工序与成品工序 */
handleFilterSlaveData = (name, dataIndex, value, record) => {
return commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(value.toLowerCase());
};
/** 控制选择控制表时,显示部件工序与成品工序 */
// eslint-disable-next-line no-unused-vars
handleFilterData = (name, dataIndex, value, record) => {
return true;
// 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;
}
};
/** 添加表格空行 */
handleTableAdd = async (name, flag) => {
/* 外置处理业务 */
const {
sModelsId,
sModelsType,
gdsformconst,
slaveData,
controlData,
controlSelectedRowKeys,
[`${name}Data`]: tableData,
slaveSelectedRowKeys,
slaveConfig,
} = this.props;
let tableDataRow = {};
if (name === "control") {
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);
});
// const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName');
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 === "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;
}
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) => {
const { slaveSelectedRowKeys, slaveData, slaveConfig, sModelsId, masterData } = this.props;
if (name === "control") {
const tableSelectedRowKeys = this.props[`${name}SelectedRowKeys`];
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 {
return false;
}
} else if (name === "slave") {
/* 删除子表 */
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 if (sModelsId === "12710101117000994807090") {
/* 从表删除 更新主表入仓数量 */
const slaveReturnData = this.props.onDataRowDel(name, true, slaveSelectedRowKeys);
if (
commonUtils.isNotEmptyObject(slaveReturnData) &&
commonUtils.isNotEmptyArr(slaveReturnData.slaveData) &&
commonUtils.isNotEmptyObject(masterData)
) {
let dSumProductQty = 0;
slaveReturnData.slaveData.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;
slaveReturnData.masterData = masterData;
}
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);
}
};
handleTableDelSelect = (name, isWait, tableSelectedRowKeys) => {
const { slaveSelectedRowKeys, slaveData, slaveConfig, sModelsId, masterData } = this.props;
const slaveReturnData = this.props.onDataRowDel(name, isWait, tableSelectedRowKeys);
this.props.onSaveState({
...slaveReturnData,
});
return true;
};
/* 迭代删除从表子表数据 */
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}Config`]: tableConfig,
masterData,
masterConfig,
controlSelectedRowKeys,
sModelsId,
token,
app,
} = this.props;
const tableSelectedRowKeys = [];
if (name === "productProcessInfo") {
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 {
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 === "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 });
}
};
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;
};
/** 上传后执行函数 */
handleBeforeUpload = () => {
// const isLt10M = file.size / 1024 / 1024 < 10;
// if (!isLt10M) {
// message.error(commonFunc.showMessage(this.props.app.commonConst, 'picMax'));/* 图片大小需小于10MB! */
// }
};
handleTabChange = key => {
setTimeout(() => {
this.setState({
currentTab: key,
});
}, 0);
};
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.warn("请选择数据");
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,
});
};
handleSlaveInit = async name => {
const { app, masterData, [`${name}Data`]: slaveData } = this.props;
if (masterData.sName !== null && masterData.sName !== undefined) {
message.warn("该节点不能初始化!");
return;
}
// const comfiled = service.service_path.filter(item => (item.route ===
// app.currentPane.route)).length <= 0 ? {} :
// service.service_path.filter(item => (item.route ===
// app.currentPane.route))[0];
const comfiled = {
path: "gdsconfigform",
pathTwo: "Gdsconfigformmaster",
pathSlave: "Gdsconfigformslave",
pathCustom: "Customslave",
pathInit: "GdsconfigformslaveByMaster",
pathSlaveSelect: "gdsmodule",
pathSlaveSelectTwo: "SelectFormData",
};
const url = `${commonConfig.server_host}${comfiled.path}/get${comfiled.pathInit}?sParentId=${masterData.sId}&sTbName=${masterData.sTbName}&sType=${masterData.sType}`;
const dataReturn = (await commonServices.getService(this.props.app.token, url)).data;
if (dataReturn.code === 1) {
/* 数据查询成功 */
if (commonUtils.isNotEmptyArr(dataReturn.dataset.rows)) {
const tempData = dataReturn.dataset.rows;
const initData = [];
tempData.forEach(item => {
item.handleType = "add";
initData.push(item);
});
const newData = [...slaveData, ...initData];
this.props.onSaveState({ slaveData: newData, enabled: true });
message.success("初始化成功!");
} else {
message.warn("当前表格无需初始化!");
}
} else {
/* 失败 */
this.props.getServiceError(dataReturn);
}
};
handleCopyRow = (name, toname) => {
this.props.onCopyRow(name, toname);
};
handleCopy2Custom = () => {
let toname = "slave2";
for (let i = 0; i < 10; i++) {
const slaveConfigName = `slave${i}Config`;
const slaveConfig = this.props[slaveConfigName];
if (slaveConfig && commonUtils.isNotEmptyObject(slaveConfig)) {
if (slaveConfig.sTbName === "gdsconfigformcustomslave") {
toname = `slave${i}`;
break;
}
}
}
this.props.onCopyRow("slave", toname);
};
/** 添加行 */
handleAddRow = (name, index) => {
this.props.onDataRowAdd(name, null, index);
};
/** 删除行 */
handleDelRow = name => {
const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props;
if (this.props.onDataRowDel(name, false, tableSelectedRowKeys)) {
message.success("删除成功!");
}
};
/* 字段双击弹出 */
handleFieldDoubleClick = (sValue, showConfig, tbName) => {
const { [`${tbName}SelectedRowKeys`]: tableSelectedRowKeys, [`${tbName}Data`]: tableData } = this.props;
if (commonUtils.isNotEmptyObject(showConfig) && showConfig.sName === "sAssignField") {
let tableDataRow = {};
if (commonUtils.isNotEmptyArr(tableData)) {
const tableFilterData = tableData.filter(item => tableSelectedRowKeys.includes(item.sId));
if (commonUtils.isNotEmptyArr(tableFilterData)) {
tableDataRow = tableFilterData[0];
}
}
const sAssignFieldColumn = [
{
sId: commonUtils.createSid(),
sParentId: tableDataRow.sId,
dataIndex: "sNewName",
title: "现字段",
width: "220px",
editable: true,
bNotSort: true,
},
{
sId: commonUtils.createSid(),
sParentId: tableDataRow.sId,
dataIndex: "sOldName",
title: "源字段",
width: "220px",
editable: true,
bNotSort: true,
},
];
const sAssignFieldData = [];
if (commonUtils.isNotEmptyObject(tableDataRow) && commonUtils.isNotEmptyObject(sValue)) {
const selectedRowKeys = [];
const sAssignFieldDataTemp = sValue.split(",");
sAssignFieldDataTemp.forEach(index => {
const aAssignFieldObj = {};
const splitData = index.split(":");
if (commonUtils.isNotEmptyArr(splitData)) {
aAssignFieldObj.sId = commonUtils.createSid();
aAssignFieldObj.sNewName = splitData[0];
aAssignFieldObj.sOldName = splitData[1];
sAssignFieldData.push(aAssignFieldObj);
}
selectedRowKeys[0] = sAssignFieldData[0].sId;
});
const { enabled } = this.props;
this.props.onSaveState({
sAssignFieldColumn,
visibleAssignmentField: true,
sAssignFieldData,
sAssignFieldName: tbName,
sAssignFieldRowId: tableDataRow.sId /* 选中行的sId */,
enabled,
});
} else {
this.props.onSaveState({
sAssignFieldColumn,
visibleAssignmentField: true,
sAssignFieldData: [],
sAssignFieldName: tbName,
sAssignFieldRowId: tableDataRow.sId /* 选中行的sId */,
});
}
} else if (showConfig?.sName === "sInstruct") {
/* 指令集弹窗 */
// const sInstructJsonString = sValue;
// this.props.onSaveState({
// visibleInstructField: true,
// sInstructJsonString,
// });
}
};
/* 拿到赋值字段 */
handleGetsAssignField = (data, sFieldName) => {
if (sFieldName === "sAssignField") {
const { sAssignFieldRowId, sAssignFieldName } = this.props; /* 双击弹出赋值窗体的行ID */
const { [`${sAssignFieldName}Data`]: tableData } = this.props;
if (commonUtils.isNotEmptyArr(tableData)) {
const iIndex = tableData.findIndex(item => item.sId === sAssignFieldRowId);
const newData = {};
/* 将数组变成赋值字符串 */
let sAssignFieldStr = "";
const len = data.length;
data.forEach((item, index) => {
sAssignFieldStr += `${item.sNewName}:${item.sOldName}`;
if (index !== len - 1) {
sAssignFieldStr += ",";
}
});
newData.sAssignField = sAssignFieldStr;
newData.handleType = commonUtils.isEmpty(tableData[iIndex].handleType) ? "update" : tableData[iIndex].handleType;
tableData[iIndex] = { ...tableData[iIndex], ...newData };
this.props.onSaveState({ [`${sAssignFieldName}Data`]: tableData });
}
}
};
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) } /* 是否显示 */,
};
}
};
handleUploadChangeFile = async info => {
const { file } = info;
const { formData = [] } = this.props;
const templateData = formData.filter(item => item.sGrd === 'importTemplate');
const name = commonUtils.isNotEmptyArr(templateData) ? templateData[0].sTableAlias : 'slave'
const {
masterData, sModelsId, app, token, sModelsType,
[`${name}Config`]: slaveConfig, [`${name}Data`]: slaveData
} = this.props;
if (file.response) {
if (file.response.code === 1) {
if (file.response.dataset.rows.length > 1) {
const addState = {};
for (let i = 0; i < file.response.dataset.rows.length; i++) {
const row = file.response.dataset.rows[i];
/* 数据查询成功 */
const errorInfo = row.nocanbeInsert;
if (commonUtils.isNotEmptyObject(errorInfo)) {
const importErrorData = errorInfo;
this.props.onSaveState({
showImportErrorVisible: true,
importData: importErrorData,
});
return;
}
const tableName = ["", 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
.filter(item => {
const name = `slave${item}Config`;
const config = this.props[name] || {};
return config.sGrd === row.sGrd || config.sTableName === row.sTableName;
})
.map(item => `slave${item}`)[0];
if (!tableName) continue;
const tableDelData = [];
const { [`${tableName}Data`]: tableData = [], [`${tableName}Config`]: tableConfig } = this.props;
/* 把之前存放的数据删除 */
addState[`${tableName}DelData`] = [];
tableData.forEach(item => {
if (item.handleType !== "add") {
item.handleType = "del";
tableDelData.push(item);
}
});
const returnData = row.canbeInsert;
let iCount = 0;
let productIdDropDown;
if (productIdDropDown === undefined && commonUtils.isNotEmptyArr(returnData)) {
/* 无论导入多少条数据 都只调用1次接口,获取产品下拉数据集 */
const iIndex = tableConfig.gdsconfigformslave.findIndex(item => item.sName === "sProductName");
if (iIndex > -1) {
const sqlDropDownData = await this.props.getSqlDropDownData(
sModelsId,
tableName,
tableConfig.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 || item.sNId === tableDataRow.sProductId) &&
item.sProductStyle === tableDataRow.sProductStyle
);
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);
// }
});
addState[`${tableName}Data`] = returnData;
addState[`${tableName}DelData`] = tableDelData;
}
this.props.onSaveState(addState);
} else {
/* 数据查询成功 */
const errorInfo = file.response.dataset.rows[0].nocanbeInsert;
if (commonUtils.isNotEmptyObject(errorInfo)) {
// message.error(errorInfo[0].sReason);
const importErrorData = errorInfo;
this.props.onSaveState({
showImportErrorVisible: true,
importData: importErrorData,
});
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 || item.sNId === tableDataRow.sProductId) && item.sProductStyle === tableDataRow.sProductStyle
);
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);
}
}
};
handleSetTabNumList = tabNumList => {
this.tabNumList = tabNumList;
};
/** 通用下载 */
handleDownload = (name, flag, tableSelectedRowKeys) => {
const { [`${name}Data`]: tableData, sModelsId, app } = this.props;
if (tableSelectedRowKeys === undefined || tableSelectedRowKeys.length !== 1) {
message.warn(commonFunc.showMessage(app.commonConst, "selectedRowKeysNo")); /* 请先选择一条数据 */
return;
}
const dataSelect = tableData.filter(item => item.sId === tableSelectedRowKeys[0]);
const { token } = this.props.app;
const { sPicturePath } = dataSelect[0];
const urlPrint = `${commonConfig.file_host}file/download?sModelsId=${sModelsId}&token=${token}&savePathStr=${sPicturePath}`;
window.open(urlPrint);
};
handleJSONModalOk = value => {
const { masterData } = this.props;
const textAreaValue = value; // 获取 textarea 的值
const handleType = commonUtils.isEmpty(masterData.handleType) ? "update" : masterData.handleType;
const newMasterData = { ...masterData, sInstruct: textAreaValue, handleType }; // 更新 masterData.sInstruct
this.props.onSaveState({ masterData: newMasterData, visibleInstructField: false }); // 关闭弹窗
};
// ----------------------------数据修改回带wend ---------------------------- //
render() {
const { pageLoading, visible, checkConditions, checkPersonData, app } = 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",
},
];
const btnSure = commonFunc.showMessage(app.commonConst, "btnSure"); /* 确认 */
const check = commonFunc.showMessage(app.commonConst, "check"); /* 审核 */
const BtnClose = commonFunc.showMessage(app.commonConst, "BtnClose"); /* 关闭 */
const checkPerson = commonFunc.showMessage(app.commonConst, "checkPerson"); /* 审核人 */
return (