/* eslint-disable array-callback-return,no-undef,object-curly-newline,prefer-destructuring,no-unused-vars */ import React, { Component } from 'react'; import { Form } from '@ant-design/compatible'; // import '@ant-design/compatible/assets/index.css'; import { Modal, Layout, Spin, Card, Row, Col } from 'antd-v4'; // Switch Select, Tabs, import styles from '../../index.less'; import selfstyles from '../productionMainPlan/index.less'; import * as commonFunc from '../Common/commonFunc'; import CommonBase from '../Common/CommonBase'; import * as commonBusiness from '../Common/commonBusiness';/* 单据业务功能 */ import StaticEditTable from '../Common/CommonTable';/* 可编辑表格 */ import CommonProductionPlanEvent from '../Common/CommonProductionPlanEvent'; import Toolbar from '../Common/ToolBar/ToolBarNew'; import MoveUp from '../../assets/processUp.svg'; import MoveDown from '../../assets/processDown.svg'; import DisableMoveUp from '../../assets/disableprocessUp.svg'; import DisableMoveDown from '../../assets/disableprocessDown.svg'; import MoveTop from '../../assets/processTop.svg'; import DisableMoveTop from '../../assets/disableprocessTop.svg'; import MoveBottom from '../../assets/processBottom.svg'; import DisableMoveBottom from '../../assets/disableprocessBottom.svg'; import ChangeMachine from '../../assets/changeMachine.svg'; import DisableChangeMachine from '../../assets/disablechangeMachine.svg'; import Reset from '../../assets/reset.svg'; import DisableReset from '../../assets/disablereset.svg'; import * as commonUtils from '../../utils/utils'; import ShowType from '../Common/CommonComponent'; import commonConfig from '../../utils/config'; import AntdDraggableModal from '../Common/AntdDraggableModal'; // const { Option } = Select; const { Header, Content, Sider } = Layout; // const { TabPane } = Tabs; class ProductionPlanInfoComponentInfo extends Component { constructor(props) { super(props); this.state = {}; this.form = {}; /* 表单对象 */ } shouldComponentUpdate(nextProps) { const { slaveColumn, masterConfig } = nextProps; return commonUtils.isNotEmptyArr(slaveColumn) || commonUtils.isNotEmptyObject(masterConfig); } // onRowMouseEnter = (name, record) => { // console.log('record:', record); // } onDoubleClick = (name, record) => { if (this.props.onDoubleClick !== undefined) { this.props.onDoubleClick(record); } }; onRowClick = (name, record, bRowClick) => { const { slaveData } = this.props; let { slaveSelectedRowKeys, slaveInfoSelectedRowKeys } = this.props; slaveInfoSelectedRowKeys = commonUtils.isNotEmptyArr(slaveInfoSelectedRowKeys) ? slaveInfoSelectedRowKeys : []; if (name === 'slave') { if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) { const keys = []; keys.push(record.sSlaveId); slaveSelectedRowKeys = keys; const sIds = record.sSlaveId.split('-'); slaveInfoSelectedRowKeys.push(...sIds); } else { const indexKey = slaveSelectedRowKeys.indexOf(record.sSlaveId); if (indexKey === -1) { slaveSelectedRowKeys.push(record.sSlaveId); const sIds = record.sSlaveId.split('-'); slaveInfoSelectedRowKeys.push(...sIds); sIds.forEach((item) => { const iIndex = slaveInfoSelectedRowKeys.findIndex(e => e === item); if (iIndex === -1) { slaveInfoSelectedRowKeys.push(item); } }); } else if (indexKey !== -1) { if (!bRowClick) { slaveSelectedRowKeys.splice(indexKey, 1); } const sIds = record.sSlaveId.split('-'); sIds.forEach((item) => { const index = slaveInfoSelectedRowKeys.findIndex(e => e === item); if (!bRowClick) { slaveInfoSelectedRowKeys.splice(index, 1); } }); } } } else if (name === 'slaveInfo') { if (commonUtils.isEmptyArr(slaveInfoSelectedRowKeys)) { const keys = []; keys.push(record.sId); slaveInfoSelectedRowKeys = keys; const slaveDataNews = slaveData.filter(item => item.sSlaveId.split('-').includes(record.sId)); if (commonUtils.isNotEmptyArr(slaveDataNews)) { slaveSelectedRowKeys = [slaveDataNews[0].sSlaveId]; } } else { const indexKey = slaveInfoSelectedRowKeys.indexOf(record.sId); if (indexKey === -1) { slaveInfoSelectedRowKeys.push(record.sId); const slaveDataNews = slaveData.filter(item => item.sSlaveId.split('-').includes(record.sId)); if (commonUtils.isNotEmptyArr(slaveDataNews)) { const iIndex = slaveSelectedRowKeys.findIndex(item => item === slaveDataNews[0].sSlaveId); if (iIndex === -1) { slaveSelectedRowKeys.push(slaveDataNews[0].sSlaveId); } } } else if (indexKey !== -1) { /* 可输入行,行内点击时 不去除selectedRowKeys */ if (!bRowClick) { slaveInfoSelectedRowKeys.splice(indexKey, 1); } const slaveDataNews = slaveData.filter(item => item.sSlaveId.split('-').includes(record.sId)); if (commonUtils.isNotEmptyArr(slaveDataNews)) { const sSlaveIds = slaveDataNews[0].sSlaveId.split('-'); if (slaveInfoSelectedRowKeys.length === 0 || sSlaveIds.length === 1) { const iIndex = slaveSelectedRowKeys.indexOf(item => slaveDataNew[0].sSlaveId === item); slaveSelectedRowKeys.splice(iIndex, 1); } else { let bdel = true; for (const sId of sSlaveIds) { if (slaveInfoSelectedRowKeys.findIndex(item => item === sId && item !== record.sId)) { bdel = false; break; } } if (bdel) { const iIndex = slaveSelectedRowKeys.indexOf(item => slaveDataNew[0].sSlaveId === item); slaveSelectedRowKeys.splice(iIndex, 1); } } } } } } let machineEnabled = false; if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) { const currSlave = slaveData.filter(item => item.sSlaveId === slaveSelectedRowKeys[0])[0]; const processSlave = slaveData.filter(item => item.sProcessId === currSlave.sProcessId && slaveSelectedRowKeys.includes(item.sSlaveId)); if (processSlave.length === slaveSelectedRowKeys.length) { machineEnabled = true; } } const { sModelsId } = this.props; commonUtils.setStoreDropDownData(sModelsId, 'master', 'sMachineId', []); this.props.onSaveState({ slaveSelectedRowKeys, slaveInfoSelectedRowKeys, machineEnabled }); }; onCloseChangeMachine = () => { const { masterData } = this.props; delete masterData.tStartDate; delete masterData.iSplitNum; delete masterData.bSplit; this.props.onSaveState({ isChangeMachine: false, masterData: { ...masterData, sMachineId: '', sTeamId: '' } }); } onTableSelectRowChange = (name, selectedRowKeys) => { if (name === 'slave') { const addState = this.props.onTableSelectRowChange(name, selectedRowKeys, true); const slaveInfoSelectedRowKeys = []; if (commonUtils.isNotEmptyArr(selectedRowKeys)) { selectedRowKeys.forEach((selectedRow) => { const sIds = selectedRow.split('-'); slaveInfoSelectedRowKeys.push(...sIds); }); } addState.slaveInfoSelectedRowKeys = slaveInfoSelectedRowKeys; this.props.onSaveState({ ...addState }); } else { this.props.onTableSelectRowChange(name, selectedRowKeys); } // let record = {}; // let key; // if (name === 'slave') { // if (commonUtils.isNotEmptyArr(selectedRowKeys) && commonUtils.isEmptyArr(slaveSelectedRowKeys) && selectedRowKeys.length === 1) { // key = selectedRowKeys[0]; // } else if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys) && commonUtils.isEmptyArr(selectedRowKeys) && slaveSelectedRowKeys.length === 1) { // key = slaveSelectedRowKeys[0]; // } else if (commonUtils.isNotEmptyArr(selectedRowKeys) && commonUtils.isNotEmptyArr(slaveSelectedRowKeys) && selectedRowKeys.length > slaveSelectedRowKeys.length) { // key = selectedRowKeys.filter(item => !slaveSelectedRowKeys.includes(item))[0]; // } else if (commonUtils.isNotEmptyArr(selectedRowKeys) && commonUtils.isNotEmptyArr(slaveSelectedRowKeys) && selectedRowKeys.length < slaveSelectedRowKeys.length) { // key = slaveSelectedRowKeys.filter(item => !selectedRowKeys.includes(item))[0]; // } // record = tableData.filter(item => key === item.sSlaveId)[0]; // this.onRowClick(name, record); // } else if (name === 'slaveInfo') { // if (commonUtils.isNotEmptyArr(selectedRowKeys) && commonUtils.isEmptyArr(slaveInfoSelectedRowKeys) && selectedRowKeys.length === 1) { // key = selectedRowKeys[0]; // } else if (commonUtils.isNotEmptyArr(slaveInfoSelectedRowKeys) && commonUtils.isEmptyArr(selectedRowKeys) && slaveInfoSelectedRowKeys.length === 1) { // key = slaveInfoSelectedRowKeys[0]; // } else if (commonUtils.isNotEmptyArr(selectedRowKeys) && commonUtils.isNotEmptyArr(slaveInfoSelectedRowKeys) && selectedRowKeys.length > slaveInfoSelectedRowKeys.length) { // key = selectedRowKeys.filter(item => !slaveInfoSelectedRowKeys.includes(item))[0]; // } else if (commonUtils.isNotEmptyArr(selectedRowKeys) && commonUtils.isNotEmptyArr(slaveInfoSelectedRowKeys) && selectedRowKeys.length < slaveInfoSelectedRowKeys.length) { // key = slaveInfoSelectedRowKeys.filter(item => !selectedRowKeys.includes(item))[0]; // } // record = tableData.filter(item => key === item.sId)[0]; // this.onRowClick(name, record); // } else { // this.props.onTableSelectRowChange(name, selectedRowKeys); // } }; /** 处理选择行发生改变 */ handleTableFilterData = (name, data, record) => { /* 外置处理业务 */ if (name === 'slave') { let slaveInfoDataNew = []; if (commonUtils.isNotEmptyArr(data)) { slaveInfoDataNew = data.filter(item => record.sSlaveId.split('-').includes(item.sId)); } return slaveInfoDataNew; } }; // 根据配置解析拼接具体参数 handleProParams = (sKey, arr) => { const { [`${sKey}Data`]: tableData, [`${sKey}SelectedRowKeys`]: selectedRowKeys } = this.props; const keyData = tableData.filter(item => selectedRowKeys.includes(item.sId) || selectedRowKeys.includes(item.sSlaveId)); 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; } }; sortData = (tempData) => { tempData.sort((g1, g2) => { return g1.iOrder - g2.iOrder; }); return tempData; }; /* 控制排序 */ orderData = (e, name, type) => { const { [`${name}SelectedRowKeys`]: tableselectedRowKeys, app, slavePagination: slavePaginationOld } = this.props; let { [`${name}Data`]: currentData } = this.props; if (name === 'slave') { if (commonUtils.isEmptyArr(tableselectedRowKeys)) { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请勾选要移动数据 */ return; } if (commonUtils.isEmptyArr(currentData)) { message.warn(commonFunc.showMessage(app.commonConst, 'NoProcessData'));/* 请填写工序表数据 */ return; } const tempNew = currentData.filter((item) => { /* 获取勾选数据集 */ return tableselectedRowKeys.indexOf(item.sSlaveId) > -1; }); if (commonUtils.isEmptyArr(tempNew)) { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseMoveData'));/* 请选择要移动数据 */ return; } const len = currentData.length; const newLen = tempNew.length; let num = 0.01;/* 循环增加体 */ let targetiOrder = -1; if (type === 1) { /* 上移 */ const iIndex = currentData.findIndex(item => item.sSlaveId === tempNew[0].sSlaveId);/* 选中第一个节点的下标 */ if (iIndex === 0) { if (newLen === 1) { message.warn(commonFunc.showMessage(app.commonConst, 'NoUp'));/* 无需上移 */ return; } else { targetiOrder = 0; } } else { targetiOrder = currentData[iIndex - 1].iOrder - 1; /* 目标排序号 */ } } else if (type === 2) { /* 下移 */ const iIndex = currentData.findIndex(item => item.sSlaveId === tempNew[newLen - 1].sSlaveId);/* 选中最后一个节点的下标 */ if (iIndex === len - 1) { if (newLen === 1) { message.warn(commonFunc.showMessage(app.commonConst, 'NoDown')); /* 无需下移 */ return; } else { targetiOrder = currentData[iIndex].iOrder; } } else { targetiOrder = currentData[iIndex + 1].iOrder; } } else if (type === 0) { /* 置顶 */ const iIndex = currentData.findIndex(item => item.sSlaveId === tempNew[0].sSlaveId);/* 选中第一个节点的下标 */ if (iIndex === 0) { if (newLen === 1) { message.warn(commonFunc.showMessage(app.commonConst, 'NoTop')); /* 无需置顶 */ return; } else { targetiOrder = currentData[iIndex].iOrder; } } else { targetiOrder = currentData[0].iOrder - 1; } } else if (type === 3) { /* 置底 */ const iIndex = currentData.findIndex(item => item.sSlaveId === tempNew[newLen - 1].sSlaveId);/* 选中最后一个节点的下标 */ if (iIndex === len - 1) { if (newLen === 1) { message.warn(commonFunc.showMessage(app.commonConst, 'NoBottom')); /* 无需置底 */ return; } else { targetiOrder = currentData[iIndex].iOrder; } } else { targetiOrder = currentData[len - 1].iOrder + 1; } } tempNew.forEach((item) => { const index1 = currentData.findIndex(item1 => item1.sSlaveId === item.sSlaveId); currentData[index1] = { ...item, iOrder: targetiOrder + num, handleType: 'update' }; num += 0.01; }); currentData = this.sortData(currentData); currentData = this.orderNum(currentData); const iIndex = currentData.findIndex(item => item.sSlaveId === tableselectedRowKeys[0]); const slavePagination = { ...slavePaginationOld }; slavePagination.current = Math.ceil((iIndex + 1) / commonConfig.pageSize); this.props.onSaveState({ [`${name}Data`]: currentData, slavePagination }); } else if (name === 'slaveInfo') { this.props.onSaveState({ isChangeMachine: true }); } }; /* 自定义排序号 */ orderNum = (tableData) => { tableData.forEach((item, index) => { item.iOrder = index + 1; item.handleType = 'update'; }); return tableData; }; /** 处理选择行发生改变 */ // handleTableFilterData = (name, data, record) => { // /* 外置处理业务 */ // if (name === 'slave') { // let slaveInfoDataNew = ''; // slaveInfoDataNew = data.filter(item => record.sSlaveId.split(',').includes(item.sId)); // return slaveInfoDataNew; // } // }; /** 处理card点击事件 */ handleTabsCallback = (child) => { if (commonUtils.isNotEmptyArr(this.props.teamData)) { child.cardSelectedColor = '#fff7e6'; const iIndex = this.props.teamData.findIndex(item => item.sId === child.sId); const teamDataNew = this.props.teamData; teamDataNew.forEach((item, index) => { if (index !== iIndex) { item.cardSelectedColor = ''; } }); } this.props.onSaveState({ Loading: true }); this.props.onTabsCallback(child); }; // renderCards = (data) => { // let showInfo = ''; // data.map((item) => { // showInfo += ( //