/* eslint-disable */ /* eslint-disable prefer-destructuring */ 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, Avatar, Button, message, Table, Upload, Input, Modal, } from 'antd'; import CommonSales from '@/components/Common/CommonOeeBillNewEvent';/* 扫码上下料模块 */ import CommonViewTable from '@/components/Common/CommonViewTable'; // import CommonViewTable from '@/components/Common/CommonViewTable'; 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 customStyles from '../index.less'; // import oeeStyle from './oee.less'; import OeeToolBar from './oeeToolBarNew'; import oeeStyle from './oee.less'; import ShowType from '../../components/Common/CommonComponent'; import faceReg from '../../assets/oee/facescan.svg'; import {addCPCLQRCode} from "../../mobile/common/BlueToothUtil"; 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; class CommonOeeluBill extends Component { constructor(props) { super(props); this.state = { }; } /** 行选择 */ onRowClick = (name, record) => { if (name === 'control') { this.props.onTableSelectRowChange(name, [record.sId]); } }; onChange = (checkedValues) => { console.log('323232', 111); 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 }); } handleDownMaterials = async () => { const { slaveData = [], slave0Data =[], slaveConfig, }= this.props; const btnConfig = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.find(item => item.sControlName === 'BtnDown') : []; const addState ={}; if(commonUtils.isEmptyArr(slaveData)) { message.error('请先扫码上料'); return; } this.handleProcedureCall(btnConfig, addState); } // 新增下料按钮点击处理方法 handleDownMaterials1 = async () => { try { const { slaveSelectedRowKeys, slaveData, slave0Data = [], token } = this.props; const obj = {}; obj.sId = commonUtils.createSid(); slave0Data.push(obj); this.props.onSaveState({ slave0Data }) if (!slaveSelectedRowKeys || slaveSelectedRowKeys.length === 0) { message.warning('请先选择要下料的记录'); return; } const selectedRow = slaveData.find(item => item.sId === slaveSelectedRowKeys[0]); const url = `${commonConfig.server_host}oee/downMaterials`; const value ={ sId: selectedRow.sId, } const response = await commonServices.postValueService(token, value, url); if (response.data.code === 1) { message.success('下料成功'); // 成功后刷新数据或其他操作 } else { message.error(response.data.message || '下料失败'); } } catch (error) { message.error('下料请求失败'); console.error('下料错误:', error); } } // 新增撤销按钮点击处理方法 handleCancelMaterials = async () => { const { slaveData = [], slaveSelectedRowKeys =[], slave0Data =[], slaveConfig }= this.props; const btnConfig = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.find(item => item.sControlName === 'BtnCancelMaterials') : []; const addState ={}; this.handleProcedureCall(btnConfig, addState); } handleInputChage= (e, scode, idx) => { const addState = {}; if (commonUtils.isNotEmptyObject(scode)) { const prevList = this.state.insertList.slice(0); prevList[idx] = e.target.value; this.setState({ insertList: prevList, }); addState.sBarcode = this.state.insertList.length ? this.state.insertList[0] : ''; } else { addState.inputValue = e.target.value; } this.props.onSaveState({ ...addState }); } /* 扫码调用存储过程 */ handlePressEnter = async (e) => { const { slaveConfig } = this.props; const addState ={}; e.preventDefault(); // 阻止表单默认提交行为 // 添加composition事件处理 if (e.nativeEvent.isComposing || e.keyCode === 229) { return; // 中文输入法组合过程中不处理 } const sValue = e.target.value; const btnConfig = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.find(item => item.sControlName.indexOf('BtnInput') > -1) : []; addState.sBoardNo = sValue; /* 版号 */ this.handleProcedureCall(btnConfig, addState); // 清除文本框的值 this.props.onSaveState({ inputValue: '' }); } handleProParams = (sKey, arr, bFirst) => { const { [`${sKey}Data`]: tableData, [`${sKey}SelectedRowKeys`]: selectedRowKeys } = this.props; let keyData = commonUtils.isNotEmptyArr(tableData) && commonUtils.isNotEmptyArr(selectedRowKeys) ? tableData.filter(item => commonUtils.isEmptyObject(item.sDivRowNew) && (selectedRowKeys.includes(item.sId) || selectedRowKeys.includes(item.sSlaveId))) : []; if (bFirst) { /* 没有选中行时默认第一条 */ if (commonUtils.isNotEmptyArr(tableData)) { keyData = [tableData[0]]; } } if (commonUtils.isNotEmptyArr(keyData)) { const addState = {}; addState.key = sKey; const val = []; keyData.forEach((currData) => { const currVal = {}; arr.forEach((filed) => { currVal[`${filed}`] = currData[`${filed}`]; }); val.push(currVal); }); addState.value = val; return addState; } else { return undefined; } }; handleProcedureCall = async (btnConfig, otherObj) => { const { app, sModelsId, slaveData = [], slave0Data = [], masterData , slaveSelectedRowKeys = [], slave0SelectedRowKeys = []} = this.props; console.log('btnConfg', btnConfig); console.log('masterData', masterData) const sBtnName = btnConfig.sControlName; const sButtonParam = btnConfig.sButtonParam; const btn = commonUtils.isNotEmptyObject(sButtonParam) ? JSON.parse(sButtonParam) : {}; const sProName = btn?.sproName; const inParams = []; const inMap = commonUtils.isNotEmptyObject(btn) && commonUtils.isNotEmptyArr(btn.inMap) ? btn.inMap : []; const inlist = inMap.split(','); const masterArr = []; const slaveArr = []; const slave0Arr = []; if (inlist.length > 0) { inlist.forEach((item) => { const itemArr = item.split('.'); if (itemArr.length > 0) { const sname = itemArr[0]; const stype = itemArr[1]; if (commonUtils.isNotEmptyStr(sname) && sname === 'master') { masterArr.push(stype); } if (commonUtils.isNotEmptyStr(sname) && sname === 'slave') { slaveArr.push(stype); } if (commonUtils.isNotEmptyStr(sname) && sname === 'slave0') { slave0Arr.push(stype); } } }); if (commonUtils.isNotEmptyArr(masterArr) && commonUtils.isNotEmptyObject(masterData)) { const addState = {}; addState.key = 'master'; const val = []; const currVal = {}; masterArr.forEach((filed) => { currVal[`${filed}`] = masterData[`${filed}`]; }); val.push(currVal); addState.value = val; inParams.push({ ...addState }); } if(btnConfig.sControlName === 'BtnInput') { const sRowData = JSON.parse(JSON.stringify(masterData)); sRowData.sBoardNo = otherObj.sBoardNo; const addState1 = {}; addState1.key ='sRowData'; addState1.value = [sRowData] inParams.push({ ...addState1 }); }else if(btnConfig.sControlName === 'BtnDown') { /* 下料 */ let slaveObj ={}; if(commonUtils.isEmptyArr(slaveSelectedRowKeys)) { slaveObj = slaveData[0]; }else { slaveObj = slaveData.find(item => slaveSelectedRowKeys.includes(item.sId)); } if(commonUtils.isEmptyObject(slaveObj)) { slaveObj = slaveData[0]; } slaveData.forEach((item) => { item.dPackQty = commonUtils.isNull(slaveObj.dPackQty, 0); item.sMemo = slaveObj.sMemo; }) const sRowData = JSON.parse(JSON.stringify(slaveData)); const addState1 = {}; addState1.key ='sRowData'; addState1.value = sRowData inParams.push({ ...addState1 }); }else if(btnConfig.sControlName === 'BtnPopMemo') { let slave0Obj ={}; if(commonUtils.isNotEmptyArr(slave0SelectedRowKeys)) { slave0Obj = slave0Data.find(item => slave0SelectedRowKeys.includes(item.sId)); } else { message.error('请选择数据!'); return; } if(commonUtils.isEmptyObject(slave0Obj)) { slave0Obj = slave0Data[0]; } slave0Obj.sMemo = otherObj?.sMemo; const sRowDataObj = [slave0Obj]; const sRowData = JSON.parse(JSON.stringify(sRowDataObj)); const addState1 = {}; addState1.key = 'sRowData'; addState1.value = sRowData inParams.push({ ...addState1 }); } if (commonUtils.isNotEmptyArr(slaveArr)) { const addState = this.handleProParams('slave', slaveArr); if (commonUtils.isNotEmptyObject(addState)) { inParams.push({ ...addState }); } } if (commonUtils.isNotEmptyArr(slave0Arr)) { const addState = this.handleProParams('slave0', slave0Arr); if (commonUtils.isNotEmptyObject(addState)) { inParams.push({ ...addState }); } } } const proInParam = JSON.stringify({ params: inParams, changeValue: '' }); const value = { sProName: sProName, sProInParam: proInParam, sBtnName }; console.log('value', value); const url = `${commonConfig.server_host}procedureCall/doGenericProcedureCall?sModelsId=${sModelsId}`; const returnData = (await commonServices.postValueService(app.token, value, url)).data; if (returnData.code === 1) { message.success(returnData.msg); this.handleBtnRefresh(); } else if (returnData.code === -8) { Modal.info({ title: '温馨提示:', content: (
{this.handleGetMsg(returnData.msg)}
), okText: '确认', onOk() {}, }); } else { this.props.getServiceError(returnData); } this.props.onSaveState({ loading: false }); } /* 解析消息 */ handleGetMsg = (str) => { const msgArr = commonUtils.isNotEmptyObject(str) ? str.split('xpm'): ''; const divStr = []; if(commonUtils.isNotEmptyArr(msgArr)) { for (let i = 0; i < msgArr.length; i ++) { divStr.push(

{msgArr[i]}

); } } return divStr; } handleBtnRefresh = () => { const { masterConfig, slaveConfig, slave0Config }= this.props; this.props.onGetData(masterConfig, slaveConfig, slave0Config); } /* OEE打印 */ handleOeePrint =() => { /* Get提交地址栏参数过多,更改Get提交为Post提交 */ const { slave0Data = [] , slave0SelectedRowKeys = [], token, sModelsId, slave0Config} = this.props; if(commonUtils.isEmptyArr(slave0SelectedRowKeys)) { message.error('请选择数据!'); } const slaveFilterData = slave0Data.filter(item => slave0SelectedRowKeys.includes(item.sId) ); let printReportName = 'JYCP_SizeW210H285'; const BtnPrintConfig = commonUtils.isNotEmptyObject(slave0Config) ? slave0Config.gdsconfigformslave.filter(item => item.sControlName.indexOf('BtnPrintLabel') > -1) : []; if (commonUtils.isNotEmptyArr(BtnPrintConfig)) { printReportName = BtnPrintConfig[0].sRelation; } if(commonUtils.isNotEmptyArr(slaveFilterData)) { printReportName = slaveFilterData[0].sReportName; console.log('printReportName', printReportName); } let slaveOneData = commonUtils.isNotEmptyArr(slaveFilterData) ? JSON.stringify(slaveFilterData) : '[]'; slaveOneData = slaveOneData.replace("'", ''); const url = `${commonConfig.server_host}printReport/printPdf/${printReportName}?${false ? 'fileType=.xlsx&' : ''}sModelsId=${sModelsId}&printType=noquery&token=${encodeURIComponent(token)}`; const param = slaveOneData; this.handleOpenPostOneData(url, param); } handleOpenPostOneData= (url, params) => { const newWin = window.open(); let formStr = ''; // 设置样式为隐藏,打开新标签再跳转页面前,如果有可现实的表单选项,用户会看到表单内容数据 formStr = `
` + `` + '
'; newWin.document.body.innerHTML = formStr; newWin.document.forms[0].submit(); return newWin; } handleBtnPrint = async () => { const { app, sModelsId, masterData, slave0Data = [], slaveSelectedRowKeys, slave0Config, formRoute, masterConfig, slave0SelectedRowKeys = [], } = this.props; const { token } = app; let urlPrint = ''; let printReportName = ''; let printAssignField = ''; const BtnPrintConfig = commonUtils.isNotEmptyObject(slave0Config) ? slave0Config.gdsconfigformslave.filter(item => item.sControlName.indexOf('BtnPrintLabel') > -1) : []; let masterDataJson = ''; console.log('222BtnPri', BtnPrintConfig) if (commonUtils.isNotEmptyArr(BtnPrintConfig)) { printReportName = BtnPrintConfig[0].sRelation; } console.log('2222', printReportName); if (commonUtils.isEmpty(printReportName)) { message.warn('没有报表模板!'); return; } let slave0SelectedData = []; /* 单条数据打印 */ if (commonUtils.isNotEmptyArr(slave0Data)) { if (slave0Data.length > 0) { /* 多条数据 */ slave0SelectedData = slave0Data.filter(item => slave0SelectedRowKeys.includes(item.sId)); masterDataJson = JSON.stringify(slave0SelectedData); } } const sActiveId = commonUtils.isNotEmptyArr(slave0SelectedData)? slave0SelectedData[0].sId : ''; /* 多条数据打印 */ // printReportName = encodeURI(printReportName); console.log('slave0Data', slave0Data, slave0SelectedRowKeys); console.log('slave0SelectedData', slave0SelectedData); console.log('masterDataJson', masterDataJson); const param = masterDataJson; urlPrint = `${commonConfig.server_host}printReport/printPdf/${sActiveId}/${printReportName}.pdf?${false ? 'fileType=.xlsx&' : ''}&sReportName=${printReportName}&sId=${sActiveId}&sModelsId=${sModelsId}&sMaintableId=${masterConfig.sId}&token=${encodeURIComponent(token)}&sName=${formRoute}`; window.open(urlPrint); // this.handleOpenPost(urlPrint, param); }; handleOpenPost= (url, params) => { const newWin = window.open(); let formStr = ''; // 设置样式为隐藏,打开新标签再跳转页面前,如果有可现实的表单选项,用户会看到表单内容数据 formStr = `
` + `` + '
'; newWin.document.body.innerHTML = formStr; newWin.document.forms[0].submit(); return newWin; } handleEditRow = () => { const{slaveConfig}= this.props; this.props.onGetData( {}, slaveConfig, {}, 'btnEdit'); } handleCancelRow = () => { const{slaveConfig}= this.props; this.props.onGetData( {}, slaveConfig, {}, 'btnCancel'); } handlePopMemoRow = () => { const { slave0SelectedRowKeys =[], slave0Data =[] } = this.props; if (!slave0SelectedRowKeys || slave0SelectedRowKeys.length === 0) { message.warning('请先选择记录'); return; } const selectedRow = slave0Data.find(item => item.sId === slave0SelectedRowKeys[0]); Modal.confirm({ title: '备注', content: ( this.setState({ memoValue: e.target.value })} rows={8} /> ), okText: '确定', cancelText: '取消', onOk: () => { this.handleSaveMemo(this.state.memoValue); } }); } handleSaveMemo = async (memo) => { const { slaveData = [], slave0Data =[], slave0Config, }= this.props; const btnConfig = commonUtils.isNotEmptyObject(slave0Config) ? slave0Config.gdsconfigformslave.find(item => item.sControlName === 'BtnPopMemo') : []; const addState ={ sMemo:memo }; this.handleProcedureCall(btnConfig, addState); } /* 调用接口删除 */ handleDeleteDirectRow = () => { const{ slave0Config, slave0Data=[] }= this.props; const btnDelConfig= slave0Config.gdsconfigformslave.find(item => item.sControlName === 'BtnDeleteRow'); console.log('323232', btnDelConfig); if(commonUtils.isNotEmptyObject(btnDelConfig)) { this.handleProcedureCall(btnDelConfig) } } /* 审核备注文本框改变事件 */ textChange= (e, record) => { const sCheckRemark = commonUtils.isNotEmptyObject(record) && commonUtils.isNotEmptyObject(e.target.value) ? e.target.value : ''; this.props.onSaveState({ sCheckRemark });/* 审核备注 */ } handleTableChange1 = async (name, sFieldName, changeValue, sId, dropDownData, isWait) => { /* 从CommonBase获取默认参数 */ name ='slave'; const { [`${name}Data`]: tableData, slaveSelectedRowKeys = [], } = this.props; const addState = changeValue; if(commonUtils.isNotEmptyArr(tableData)){ const iIndex = tableData.findIndex(item => slaveSelectedRowKeys.includes(item.sId)); if(iIndex > -1) { let { handleType } = tableData[iIndex]; const tableDataOld = JSON.parse(JSON.stringify(tableData[iIndex])); if(sFieldName ==='dPackQty') { addState.sMemo = tableDataOld['sMemo']; }else if(sFieldName ==='sMemo') { addState.dPackQty = tableDataOld['dPackQty']; } handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; addState.handleType = handleType tableData[iIndex] = {...tableData[iIndex], ...addState}; console.log('当前行', tableData[iIndex]); this.props.onSaveState({[`${name}Data`]: tableData }) } } } // 在父组件中定义处理方法 handleCompositionStart = () => { this.setState({isComposing: true}); } handleCompositionEnd = () => { this.setState({isComposing: false}); } // ----------------------------数据修改回带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 (
); } } 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, slaveSelectedRowKeys, sModelsId, app, masterConfig, slaveConfig, isSmall, sModelsType, masterData, formData, inputValue, } = 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; } } } } 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: 材料与工艺不可用, }; // 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, pagination, onChange: props.onTitleChange, AutoTableHeight: '300px', }, templateProps, onKeyDown: props.onKeyDown, onContextMenu: props.onContextMenu, masterData: props.masterData, // 为通用弹窗提供主表数据(孟总需求:产品新增需要带上客户信息) getDateFormat: props.getDateFormat, }; /* 下料表格 */ const slave0TableProps = { ...commonBusiness.getTableTypes('slave0', props), tableProps: { setAdd, setCopy, setCopyAll, setDelete, setMaterialRemark, setMaterial, pagination, onChange: props.onTitleChange, AutoTableHeight: '59.1vh', }, templateProps, rowState: props.rowState, rowId: props.rowId, 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 BtnimportData = commonFunc.showMessage(app.commonConst, 'importData');/* 导入数据 */ const ImportData = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes('ImportData') && item.bVisible) : '';/* 后台是否配置导入 */ const slaveFormConfigs = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.sName !== '' && item.bControl && item.sControlName.indexOf('Btn') === -1) : []; /* 选中行 */ // let showAll = true; /* 只显示表格 */ let bShowLeft = true; /* 表格显示在左侧 */ let iColValueView = 12; let iColValueTable = 12; let slaveRow = {}; if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) { const iIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId)); if (iIndex > -1) { slaveRow = slaveData[iIndex]; } else { slaveRow = slaveData[0]; } } else if (commonUtils.isNotEmptyArr(slaveData)) { slaveRow = slaveData[0]; } if (commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave)) { // const iIndexArea = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName !== '' && item.sControlName.includes('bShow')); // if (iIndexArea > -1) { // showAll = false; // } if (commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave)) { const iShowLeft = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft' && item.bVisible); const iShowRight = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowRight' && item.bVisible); if (iShowLeft > -1) { bShowLeft = true; iColValueTable = slaveConfig.gdsconfigformslave[iShowLeft].iColValue; } else if (iShowRight > -1) { bShowLeft = false; iColValueTable = slaveConfig.gdsconfigformslave[iShowRight].iColValue; } } } iColValueView = commonUtils.isNotEmptyNumber(iColValueTable) ? 24 - iColValueTable : 12; const iShowOrder = bShowLeft ? 1 : 100; /* 从表view */ const slaveViewProps = { ...props, viewConfigs: slaveFormConfigs, tableConfig: slaveConfig, iColValueView:24, viewRow: slaveRow, tableName: 'slave', }; return (
{/* */} { commonUtils.isNotEmptyArr(ImportData) ?
{BtnimportData}
: ''}
props.onCompositionStart()} onCompositionEnd={() => props.CompositionEnd()} size="large" type="text" placeholder="请扫描条码" value={inputValue} onChange={e => props.onInputChage(e)} onPressEnter={e => props.onPressEnter(e)} // 添加输入法控制属性 inputMode="none" // 禁用输入法建议 autoComplete="off" autoCorrect="off" spellCheck="false" />
{ props.contextMenuModalVisible ? : '' }
); }); export default CommonBase(CommonSales(CommonOeeluBill));