/* eslint-disable */ import React, { Component } 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, message, Table, Upload, Input } from "antd"; 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 * as 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 RGL, { WidthProvider } from "react-grid-layout"; // import customStyles from '../index.less'; // import oeeStyle from './oee.less'; import OeeToolBar from "./oeeToolBarNew"; import oeeStyle from "./oee.less"; import ShowType from "../../components/Common/CommonComponent"; const ReactGridLayout = WidthProvider(RGL); 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 CommonOeeBill extends Component { constructor(props) { super(props); this.state = {}; } /** 行选择 */ 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)) { 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) { 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.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]; } } if (sModelsType === "sales/salesOrderPack") { const sSlaveId = slaveSelectedRowKeys[0]; if (commonUtils.isNotEmptyObject(sSlaveId)) { treeState = this.props.onGetControlTreeData( controlData, true, sSlaveId ); } } } 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.sId === pId ); if (sControlParentId > -1) { const sAllId = controlData[sControlParentId].sAllId; if (commonUtils.isEmptyObject(sAllId)) { message.warn("部件数据生成错误![sAllId为空]"); return; } tableDataRow.sAllId = `${controlData[sControlParentId].sAllId},${ tableDataRow.sId }`; } else { tableDataRow.sAllId = tableDataRow.sId; } } } 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); let treeState = []; if (sModelsType === "sales/salesOrderPack") { treeState = this.props.onGetControlTreeData( tableData, true, tableDataRow.sSlaveId ); } this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId], ...treeState }); } 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) => { 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.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 ); let treeState = []; if (sModelsType === "sales/salesOrderPack") { const iSlaveIndex = slaveData.findIndex( item => item.sId === slaveSelectedRowKeys[0] ); if (iSlaveIndex > -1) { const sSlaveId = slaveData[iSlaveIndex].sId; treeState = this.props.onGetControlTreeData( controlReturnData.controlData, true, sSlaveId ); } } this.props.onSaveState({ ...materialsReturnData, ...processReturnData, ...controlReturnData, ...treeState }); return true; } else { message.warn("请选择要删除的部件!"); return false; } } else { return this.props.onDataRowDel(name, isWait, tableSelectedRowKeys); } }; /** 销售订单删除从表数据时也删除控制材料工序表数据 */ 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, tableName, sModelsType } = this.props; const tableSelectedRowKeys = []; 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 }; 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); }); } /* 包装订单 生成树形 */ let treeState = {}; if (sModelsType === "sales/salesOrderPack") { treeState = this.props.onGetControlTreeData(controlData, true); } this.props.onSaveState({ controlData, materialsData, processData, ...treeState }); } } } } 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 }); /* 审核备注 */ }; // ----------------------------数据修改回带end ---------------------------- // render() { const { pageLoading, masterConfig, visible, checkConditions, checkPersonData, visibleModal, processChooseVisible, materialsChooseVisible, app, sTabId, sModelsType, enabled, slaveSelectedRowKeys } = 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 (
{ this.textChange(e, record); }} />
); } } ]; let chooseProcessConfig; let onChooseProcessIndex; /* 获取toolbar 选择工序 */ if (commonUtils.isNotEmptyObject(masterConfig)) { onChooseProcessIndex = masterConfig.gdsconfigformslave.findIndex( item => item.sControlName === "BtnChooseProcess" ); if (onChooseProcessIndex > -1) { chooseProcessConfig = this.props.masterConfig.gdsconfigformslave[ onChooseProcessIndex ]; } } /* 获取toolbar 选择材料 */ let chooseMaterialsConfig; const modalWidth = "1132"; const fixedAutoHeight = sModelsType === "sales/salesOrderPack" ? 120 : 66; if (commonUtils.isNotEmptyObject(masterConfig)) { const iIndex = masterConfig.gdsconfigformslave.findIndex( item => item.sControlName === "BtnChooseMaterials" ); if (iIndex > -1) { chooseMaterialsConfig = masterConfig.gdsconfigformslave[iIndex]; } } /* 若销售订单从表选中行被工单或其他调用 则材料与工艺只能查看不能操作s */ let bUsed = enabled; if ( sModelsType.includes("sales/salesOrder") && enabled && commonUtils.isNotEmptyArr(slaveSelectedRowKeys) ) { const { slaveData } = this.props; const iSlaveDataIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId) ); if (iSlaveDataIndex > -1) { const sWorkOrderUsed = slaveData[iSlaveDataIndex].sWorkOrderUsed; if (commonUtils.isNotEmptyObject(sWorkOrderUsed)) { bUsed = false; } } } const controlPropsType = { ...commonBusiness.getTableTypes("control", this.props), tableProps: { CalLastWidth: modalWidth, AutoTableHeight: fixedAutoHeight, setCopyAll, setProcess, setMaterial, chooseProcessConfigRow: chooseProcessConfig, chooseMaterialsConfigRow: chooseMaterialsConfig, onRow: record => { return { onClick: () => { this.onRowClick("control", record); } }; } }, filteredValue: this.props.slaveSelectedRowKeys, onFilterData: this.handleFilterSlaveData, OnGetFilterData: this.handleGetFilterData, onAddRow: this.handleTableAdd, onDelRow: this.handleTableDel, onKeyDown: this.props.onKeyDown, enabled: bUsed }; const name = "controlTree"; const treeProps = { ...commonBusiness.getTreeTypes("tree", this.props), isSearch: false, checkable: false, disabled: false, checkedAll: false, unChecked: false, [`${name}Column`]: this.props[`${name}Column`], [`${name}Config`]: this.props[`${name}Config`], [`${name}Data`]: this.props[`${name}Data`], getFloatNum: this.props.getFloatNum, getSqlDropDownData: this.props.getSqlDropDownData, getSqlCondition: this.props.getSqlCondition, handleSqlDropDownNewRecord: this.props.handleSqlDropDownNewRecord, getDateFormat: this.props.getDateFormat, onDoubleClick: this.props.onDoubleClick, onSelect: this.handleTreeSelect, expandedKeys: this.props.expandedKeys, showLine: true }; const materialsPropsType = { ...commonBusiness.getTableTypes("materials", this.props), tableProps: { CalLastWidth: modalWidth }, filteredValue: this.props.controlSelectedRowKeys, onFilterData: this.handleFilterData, OnGetFilterData: this.handleGetFilterData, onAddRow: this.handleTableAdd, onKeyDown: this.props.onKeyDown, enabled: bUsed }; const processPropsType = { ...commonBusiness.getTableTypes("process", this.props), tableProps: { CalLastWidth: modalWidth }, filteredValue: this.props.controlSelectedRowKeys, onFilterData: this.handleFilterData, OnGetFilterData: this.handleGetFilterData, onAddRow: this.handleTableAdd, onChooseProcessRow: this.handleTableChooseProcess, onKeyDown: this.props.onKeyDown, enabled: bUsed }; let searchProcessType = {}; // let chooseProcessConfig = {}; if (commonUtils.isNotEmptyObject(this.props.processChooseData)) { // const iIndex = this.props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess'); // if (iIndex > -1) { // chooseProcessConfig = this.props.processConfig.gdsconfigformslave[iIndex]; // } searchProcessType = { app: { ...this.props.app, currentPane: { name: "process", config: chooseProcessConfig, conditonValues: this.props.getSqlCondition(chooseProcessConfig), title: this.props.processChooseData.sMenuName, route: this.props.processChooseData.sName, formId: this.props.processChooseData.sId, key: this.props.sModelsId + this.props.processChooseData.sId, sModelsType: this.props.processChooseData.sModelType, select: this.handleSelect, selectCancel: this.props.onSelectCancel } }, dispatch: this.props.dispatch, content: this.props.content, id: new Date().getTime().toString(), realizeHeight: this.props.realizeHeight /* 拖动偏移高度 */ }; } let searchMaterialsType = {}; // let chooseMaterialsConfig = {}; if ( commonUtils.isNotEmptyObject(this.props.materialsChooseData) && this.props.tableName !== "slave" ) { // const iIndex = this.props.materialsConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials'); // if (iIndex > -1) { // chooseMaterialsConfig = this.props.materialsConfig.gdsconfigformslave[iIndex]; // } searchMaterialsType = { app: { ...this.props.app, currentPane: { name: "materials", config: chooseMaterialsConfig, conditonValues: this.props.getSqlCondition(chooseMaterialsConfig), title: this.props.materialsChooseData.sMenuName, route: this.props.materialsChooseData.sName, formId: this.props.materialsChooseData.sId, key: this.props.sModelsId + this.props.materialsChooseData.sId, sModelsType: this.props.materialsChooseData.sModelsType, select: this.handleSelect, selectCancel: this.props.onSelectCancel } }, dispatch: this.props.dispatch, content: this.props.content, id: new Date().getTime().toString(), realizeHeight: this.props.realizeHeight }; } const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0]; const setMaterailRemark = commonFunc.showMessage( app.commonConst, "setMaterailRemark" ); /* 选择材料与工艺 */ const setProcessTitle = commonFunc.showMessage( app.commonConst, "setProcess" ); /* 选择工序标题 */ const setMaterialTitle = commonFunc.showMessage( app.commonConst, "setMaterial" ); /* 选择材料标题 */ 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" ); /* 审核人 */ // eslint-disable-next-line jsx-a11y/anchor-is-valid const operateAdd = ( {this.props.enabled ? setAdd.img : setAdd.disableimg}{" "} ); // eslint-disable-next-line jsx-a11y/anchor-is-valid const operateAddChild = ( {this.props.enabled ? setAddChild.img : setAddChild.disableimg} ); // eslint-disable-next-line jsx-a11y/anchor-is-valid const operateCopy = ( {this.props.enabled ? setCopy.img : setCopy.disableimg} ); // eslint-disable-next-line jsx-a11y/anchor-is-valid const operateUpdate = ( {this.props.enabled ? setCopyAll.img : setCopyAll.disableimg} ); // eslint-disable-next-line jsx-a11y/anchor-is-valid const operateDel = ( {this.props.enabled ? setDelete.img : setDelete.disableimg} ); return (
{visible ? ( {BtnClose} , ]} >
{checkPerson}
{commonUtils.isNotEmptyObject(checkPersonData) ? checkPersonData.map(item => { return (
{item.sUserName} ); }) : ""} ) : ( "" )} {visibleModal ? ( {BtnClose} , ]} > {(pane.notCurrentPane ? ( false ) : ( processChooseVisible )) ? ( ) : ( "" )} {(pane.notCurrentPane ? ( false ) : ( materialsChooseVisible )) ? ( ) : ( "" )}
{sModelsType === "sales/salesOrderPack" ? (
部件信息
{operateAdd} {operateAddChild} {operateCopy} {operateUpdate} {operateDel}
) : (
)}
) : ( "" )} ); } } const OeeBillComponent = Form.create({ mapPropsToFields(props) { const { masterData, masterConfig } = props; const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig); return obj; } })(props => { const { form, onReturnForm, slaveData, slavePagination, onlyMaster, sModelsId, app, onlyMasterAndSlave, masterConfig, slaveConfig, isSmall, isGetDataVisible, onGetDataCancel, onGetDataOk, colseGetDataVisible, sModelsType, masterData, formData } = props; /* 回带表单 */ onReturnForm(form); let iPageSize = commonConfig.pageSize; if (commonUtils.isNotEmptyArr(formData)) { if (formData.length > 1) { const slaveConfig = formData.filter( item => item.bGrd && item.sTbName !== "sysbillcheckresult" )[0]; if (commonUtils.isNotEmptyObject(slaveConfig)) { iPageSize = slaveConfig.iPageSize; /* 单据后台设定页数 */ if (iPageSize < 100) { iPageSize = 100; } } } } console.log("iPageSize", iPageSize); const pagination = { pageSize: iPageSize, total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length, current: commonUtils.isEmptyObject(slavePagination) ? 1 : slavePagination.current, ...slavePagination, // showQuickJumper: true, hideOnSinglePage: true, size: isSmall ? "small" : "large", pageSizeOptions: commonConfig.pageSizeOptions, showSizeChanger: !isSmall, showQuickJumper: !isSmall }; const templateProps = props.formData.filter( item => item.sGrd === "importTemplate" )[0]; let setMaterialRemark = { title: "材料与工艺", width: { width }, height: { height }, img: ( 材料与工艺 ), disableimg: ( 材料与工艺不可用 ) }; /* 获取toolbar 选择材料 */ let searchMaterialsType = {}; let chooseMaterialsConfig = {}; if (commonUtils.isNotEmptyObject(slaveConfig)) { const iIndex = slaveConfig.gdsconfigformslave.findIndex( item => item.sControlName === "BtnChooseMaterials" ); if (iIndex > -1) { chooseMaterialsConfig = slaveConfig.gdsconfigformslave[iIndex]; } } if (commonUtils.isNotEmptyObject(props.materialsChooseData)) { searchMaterialsType = { app: { ...props.app, currentPane: { name: "materials", config: chooseMaterialsConfig, conditonValues: props.getSqlCondition(chooseMaterialsConfig), title: props.materialsChooseData.sMenuName, route: props.materialsChooseData.sName, formId: props.materialsChooseData.sId, key: sModelsId + props.materialsChooseData.sId, sModelsType: props.materialsChooseData.sModelType, select: props.onSelect, selectCancel: props.onSelectCancel } }, dispatch: props.dispatch, content: props.content, id: new Date().getTime().toString(), realizeHeight: props.realizeHeight /* 拖动偏移高度 */ }; } /* 调用产品工艺卡 */ let productProcessInfoType = {}; let productProcessInfoConfig = {}; let processCardSearchResult = commonFunc.showMessage( app.commonConst, "processCardSearchResult" ); /* 复制从工艺卡查询结果 */ if (commonUtils.isNotEmptyObject(props.productProcessInfoChooseData)) { const productProcessInfoCopyFromKey = props.productProcessInfoCopyFromKey; const iIndex = props.masterConfig.gdsconfigformslave.findIndex( item => item.sControlName === productProcessInfoCopyFromKey ); if (iIndex > -1) { productProcessInfoConfig = props.masterConfig.gdsconfigformslave[iIndex]; processCardSearchResult = commonUtils.isNotEmptyObject(productProcessInfoConfig) && commonUtils.isNotEmptyObject(productProcessInfoConfig.sActiveName) ? productProcessInfoConfig.sActiveName : processCardSearchResult; } productProcessInfoType = { app: { ...props.app, currentPane: { name: "productProcessInfo", config: productProcessInfoConfig, conditonValues: props.getSqlCondition(productProcessInfoConfig), title: props.productProcessInfoChooseData.sMenuName, route: props.productProcessInfoChooseData.sName, formId: props.productProcessInfoChooseData.sId, key: sModelsId + props.productProcessInfoChooseData.sId, sModelsType: props.productProcessInfoChooseData.sModelType, select: props.onSelect, selectCancel: props.onSelectCancel } }, dispatch: props.dispatch, content: props.content, id: new Date().getTime().toString() }; } /* 导入收付款未清数据 */ let importPopupProps = {}; let importPopupTitle = "导入未清数据"; if (commonUtils.isNotEmptyObject(props)) { let importPopupConfig = {}; const { masterConfig, sModelsId } = props; if (commonUtils.isNotEmptyObject(masterConfig)) { const iIndex = masterConfig.gdsconfigformslave.findIndex( item => item.sControlName === "BtnImportFormData" && item.bVisible ); if (iIndex > -1) { importPopupConfig = masterConfig.gdsconfigformslave[iIndex]; importPopupTitle = commonUtils.isNotEmptyObject(importPopupConfig) && commonUtils.isNotEmptyObject(importPopupConfig.sActiveName) ? importPopupConfig.sActiveName : importPopupTitle; importPopupProps = { app: { ...props.app, currentPane: { name: "commonPopup", config: importPopupConfig, conditonValues: {}, title: importPopupTitle, route: "/indexPage/commonList", formRoute: "/indexPage/commonList", formId: importPopupConfig.sActiveId, key: sModelsId + importPopupConfig.sId, sModelsType: "search/importFormData", select: props.onSelect, selectCancel: props.handleCancelModal.bind( this, "importFormDataVisible" ), bFilterProName: props.bFilterProName /* 存储过程查询ID */, bFilterProValue: props.bFilterProValue /* 存储过程查询VALUE */ } }, dispatch: props.dispatch, content: props.content, id: new Date().getTime().toString(), realizeHeight: props.realizeHeight /* 拖动偏移高度 */ }; } } } // const saleOrder = commonFunc.showMessage(app.commonConst, 'saleOrder');/* 销售订单 s*/ setMaterialRemark = props.sModelsType !== undefined && props.sModelsType.includes("sales/salesOrder") ? setMaterialRemark : null; const slaveTableProps = { ...commonBusiness.getTableTypes("slave", props), tableProps: { setAdd, setCopy, setCopyAll, setDelete, setMaterialRemark, setMaterial, chooseMaterialsConfigRow: chooseMaterialsConfig, pagination, onChange: props.onTitleChange, AutoTableHeight: "59.1vh" }, templateProps, onKeyDown: props.onKeyDown, onContextMenu: props.onContextMenu, masterData: props.masterData, // 为通用弹窗提供主表数据(孟总需求:产品新增需要带上客户信息) getDateFormat: props.getDateFormat }; let gdsconfigformmasterId = ""; if (templateProps !== undefined) { gdsconfigformmasterId = templateProps.sId; } const sNotEmpty = "sParentId,sProductId"; let uploadUrl = `${ commonConfig.server_host }import/checkExcel?sModelsId=${sModelsId}&gdsconfigformmasterId=${gdsconfigformmasterId}&sNotEmpty=${sNotEmpty}&token=${ app.token }`; /* 送货单需要传客户id */ if ( commonUtils.isNotEmptyObject(sModelsType) && sModelsType === "sales/salesSgoods" && commonUtils.isNotEmptyObject(masterData) ) { const sCustomerId = masterData.sCustomerId; if (commonUtils.isNotEmptyObject(sCustomerId)) { uploadUrl = `${ commonConfig.server_host }import/checkExcel?sModelsId=${sModelsId}&gdsconfigformmasterId=${gdsconfigformmasterId}&sNotEmpty=${sNotEmpty}&sCustomerId=${sCustomerId}&token=${ app.token }`; } } const outProps = { action: uploadUrl, onChange: props.onUploadChangeFile /* 文件上传 */, accept: "xls/*", showUploadList: false, beforeUpload: () => { /* 查看时不可上传 */ if (!props.enabled) return false; } }; const uploadPropsSales = props.onUploadPropsSales(); const MainContent = commonFunc.showMessage( app.commonConst, "MainContent" ); /* 主体内容 */ const isGetData = commonFunc.showMessage( app.commonConst, "isGetData" ); /* 确认获取库存为零的数据吗 */ const isFilterGetDataZero = commonFunc.showMessage( app.commonConst, "isFilterGetDataZero" ); const isAllGetData = commonFunc.showMessage(app.commonConst, "isAllGetData"); const BtnimportData = commonFunc.showMessage( app.commonConst, "importData" ); /* 导入数据 */ const ImportData = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter( item => item.sControlName.includes("ImportData") && item.bVisible ) : ""; /* 后台是否配置导入 */ /* if (props.sModelsType === 'sales/salesOrder') { const btnUpload = ( ); slaveTableProps.tableProps.newButton = btnUpload; } */ /* 是否只展示上报参数界面 */ const bShowParamPanel = commonUtils.isNotEmptyObject(slaveConfig) ? commonUtils.isNotEmptyArr( slaveConfig.gdsconfigformslave.filter( item => item.sName && item.sName.includes("sReportPanel") ) ) : false; const bView = true && !bShowParamPanel; /* 主表数据 */ const configs = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter( item => item.sName !== "" && item.bVisible && item.sControlName.indexOf("Btn") === -1 && item.iTag === 2 ) : []; const ableConfigs = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter( item => item.sName !== "" && item.bVisible && item.sControlName.indexOf("Btn") === -1 && item.iTag === 3 ) : []; return (
{bView && commonUtils.isNotEmptyObject(masterData) ? (
{commonUtils.isNotEmptyArr(configs) ? configs.map((item, index) => { return ( // eslint-disable-next-line react/no-array-index-key
{item.showName}
{commonUtils.isNotEmptyObject(masterData) ? masterData[item.sName] : ""}
); }) : ""}
{/* 右侧 */}
{/* 修改配置值 */}
{commonUtils.isNotEmptyArr(ableConfigs) ? ableConfigs.map(child => { const sMemo = child.sName .toLowerCase() .endsWith("memo"); // let enabledNew = true; // if (child.iTag === 3) { // enabledNew = true; // } const showTypeProps = { name: "master", form: props.form, getSqlDropDownData: props.getSqlDropDownData, getSqlCondition: props.getSqlCondition, handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord, getFloatNum: props.getFloatNum, getDateFormat: props.getDateFormat, onChange: props.onChange, showConfig: child, formItemLayout: {}, textArea: sMemo, enabled: true, dataValue: commonUtils.isNotEmptyObject( masterData ) ? masterData[child.sName] : "", bTable: false, formRoute: props.formRoute }; return ; }) : ""}
) : ( "" )}
{/* */} {commonUtils.isNotEmptyArr(ImportData) ? (
{BtnimportData}
) : ( "" )}
{/*
*/} {/*
*/} {/* */} {/*
*/} {/*
*/} {onlyMaster ? (
) : (
{!bShowParamPanel ? ( ) : ( "" )}
)} {onlyMasterAndSlave ? (
) : ( "" )}
{isGetDataVisible ? ( {isAllGetData} , ]} >

{isGetData}

) : ( "" )} {props.materialsChooseVisible && !props.visibleModal ? ( ) : ( "" )} {props.productProcessInfoChooseVisible ? ( ) : ( "" )} {props.importFormDataVisible ? ( ) : ( "" )} {props.contextMenuModalVisible ? : ""} {/* 底部按钮 */} {/*
*/} {/*
*/} {/* /!* eslint-disable-next-line jsx-a11y/anchor-is-valid *!/ */} {/* */} {/* 打印预览 */} {/* */} {/* /!* eslint-disable-next-line jsx-a11y/anchor-is-valid *!/ */} {/* */} {/* 直接打印 */} {/* */} {/* /!* eslint-disable-next-line jsx-a11y/anchor-is-valid *!/ */} {/* */} {/* 关闭 */} {/* */} {/*
*/} {/*
*/}
); }); const handleGetParam = (name, slaveSelectOneData) => { const paramsConfig = {}; let paramData = {}; paramsConfig.gdsconfigformslave = []; const sType = `${name}Param`; const paramType = commonUtils.isNotEmptyObject(slaveSelectOneData) ? slaveSelectOneData[sType] : ""; if (commonUtils.isNotEmptyObject(paramType)) { paramData = { ...paramData, ...commonUtils.convertStrToObj(paramType) }; paramData.sId = commonUtils.createSid(); const gdsconfigformslaveSid = {}; gdsconfigformslaveSid.sName = "sId"; gdsconfigformslaveSid.showName = "sId"; gdsconfigformslaveSid.bVisible = false; paramsConfig.gdsconfigformslave.push(gdsconfigformslaveSid); if (commonUtils.isNotEmptyObject(paramType)) { for (const key of Object.keys(paramData)) { if ( key.includes("sParam") && !key.includes("sParamDropDown") && !key.includes("sParamDefault") ) { const gdsconfigformslave = {}; gdsconfigformslave.sName = key; gdsconfigformslave.showName = paramData[key]; gdsconfigformslave.bVisible = true; /* 判断是否是sql下拉 */ const num = Number(key.replace("sParam", "")); const sqlDrownName = `sParamDropDown${num}`; if (!commonUtils.isEmpty(paramData[sqlDrownName])) { gdsconfigformslave.sDropDownType = "const"; const conStr = JSON.stringify(paramData[sqlDrownName]); gdsconfigformslave.showDropDown = conStr; } paramsConfig.gdsconfigformslave.push(gdsconfigformslave); } } } } else { paramsConfig.gdsconfigformslave = []; paramData = {}; } return { [`${name}ParamConfig`]: paramsConfig, [`${name}ParamData`]: [paramData] }; }; const OeeBillParamsComponent = Form.create({ mapPropsToFields(props) { const { masterData, masterConfig } = props; const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig); return obj; } })(props => { const { slaveData } = props; // 是否展示 let bShown = false; if (commonUtils.isNotEmptyArr(slaveData)) { const { sReportParam } = slaveData[0]; if ( sReportParam && commonUtils.isJSON(sReportParam) && commonUtils.isNotEmptyObject(JSON.parse(sReportParam)) ) { bShown = true; } } if (!bShown) { return ""; } const { sReportParamConfig, sReportParamData } = handleGetParam( "sReport", slaveData[0] ); const sReportViewConfig = commonUtils.isNotEmptyObject(sReportParamConfig) && commonUtils.isNotEmptyArr(sReportParamConfig.gdsconfigformslave) ? sReportParamConfig.gdsconfigformslave.filter(item => item.bVisible) : []; const tableConfig = sReportViewConfig; const viewRow = commonUtils.isNotEmptyArr(sReportParamData) ? sReportParamData[0] : {}; let tempLayout = {}; if (slaveData[0].sReportPanel) { tempLayout = JSON.parse(slaveData[0].sReportPanel); } else { let flag = 0; return tableConfig.map((item, index) => { if (index % 4 === 0 && index !== 0) { flag += 1; } return { i: item.sName, x: (index - flag * 4) * 3, y: flag, w: 3, h: 1 }; }); } return ( {tableConfig.map(child => { const iRowNum = child.iColValue === 1 ? 6 : 1; /* 1个字段占的网格个数 ,网格总个数是24 */ const iColValue = sMemo ? 24 : child.iColValue * iRowNum; /* 跨度 */ /* 产品部要求 备注设置成一行到底 */ const sMemo = child.sName.toLowerCase().endsWith("memo"); let enabledNew = !child.bReadonly; if (child.iTag === 1) { enabledNew = false; } else if (child.iTag === 3) { enabledNew = true; } const sFormulaMemo = child.sName.toString() === "sFormulaMemo" ? "none" : "block"; if (child.iTag === 1) { enabledNew = false; } else if (child.iTag === 3) { enabledNew = true; } const showTypeProps = { name: "sProcessParam", form: props.form, getSqlDropDownData: props.getSqlDropDownData, getSqlCondition: props.getSqlCondition, handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord, getFloatNum: props.getFloatNum, onChange: props.onChange, showConfig: child, formItemLayout: { labelCol: { span: 8 }, wrapperCol: { span: 16 } }, textArea: sMemo, enabled: enabledNew, dataValue: viewRow[child.sName], bTable: true, formRoute: props.formRoute, app: props.app, iColValue, record: viewRow, sId: viewRow.sId, bViewTable: true, onViewClick: props.handleViewClick, onFieldDoubleClick: props.handleFieldDoubleClick }; return (
); })}
); }); export default CommonBase(CommonSales(CommonOeeBill));