/* eslint-disable */ /* eslint-disable spaced-comment,no-lonely-if */ /* eslint-disable prefer-destructuring */ import React, { Component } from 'react'; import moment from 'moment'; import { Icon as LegacyIcon } from '@ant-design/compatible'; import { DownloadOutlined, DownOutlined, UploadOutlined } from '@ant-design/icons'; import { Menu, Spin, message, Input, Checkbox, Upload } from 'antd'; import * as commonConfig from '@/utils/config'; import * as commonUtils from '@/utils/utils'; import styles from '@/index.less'; import StatementInfo from '@/components/CommonElementEvent/StatementInfo'; import FilfileManageInfo from '@/components/CommonElementEvent/FilfileManageInfo'; import BatchPriceUpdate from '@/components/CommonElementEvent/BatchPriceUpdate'; import BatchNPriceUpdate from '@/components/CommonElementEvent/BatchNPriceUpdate';/* 产品单价价格批量更新 */ // import AffixMenu from '@/routes/common/AffixMenu'; import * as commonFunc from '@/components/Common/commonFunc'; import AntdDraggableModal from '@/components/Common/AntdDraggableModal'; import SlaveMemo from '@/components/Common/SlaveMemo'; import * as commonServices from '@/services/services'; import BatchWorkListPriceUpdate from '@/components/CommonElementEvent/BatchWorkListPriceUpdate'; import CommonListSelect from '@/components/Common/CommonListSelect'; import oeeStyle from './oee.less'; import { routerRedux } from 'dva/router'; const { SubMenu } = Menu; const MenuItemGroup = Menu.ItemGroup; class ToolBarComponent extends Component { /** 构造函数 */ constructor(props) { super(props); this.state = { menuData: [], /* 导航工具栏 */ enabled: false, bCheck: false, bInvalid: false, reportData: [], /* 报表数据 */ reportSelectedRowKeys: [], inputChange: '', checked: false, checkedId: '', }; } componentWillMount() { this.componentWillReceiveProps(this.props); } componentWillReceiveProps(nextProps) { const { masterConfig, gdsjurisdiction, report, masterData, app, menuChildData, } = nextProps; let { searchUpDownData, enabled, bCheck, bInvalid, visibleStatement, visibleBatchPriceUpdate, visibleBatchNPriceUpdate, reportData, reportSelectedRowKeys, } = this.state; const btnShowData = []; commonConfig.btnData.forEach((item) => { btnShowData.push({ ...item }); }); let menuData = []; if (commonUtils.isNotEmptyObject(masterConfig) && commonUtils.isEmptyArr(menuData)) { const buttonConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === '' && item.showName !== '' && item.sControlName !== ''); /** 筛选出显示的按钮 */ buttonConfig.forEach((child) => { const index = btnShowData.findIndex(item => item.sControlName === child.sControlName); if (child.bVisible && child.sControlName.substring(0, 3) === 'Btn' && btnShowData.findIndex(item => item.sControlName === child.sControlName) === -1) { child.iconName = 'menu-unfold'; btnShowData.push(child); } else if (!child.bVisible && index > -1) { btnShowData.splice(index, 1); } else if (index > -1) { btnShowData[index].showName = child.showName; } }); /** 根据权限,筛选出显示的按钮 */ gdsjurisdiction.forEach((child) => { const index = btnShowData.findIndex(item => item.sControlName === child.sAction); if (index > -1) { btnShowData.splice(index, 1); } }); /* 管理员有重置按钮,非管理员无重置按钮 */ const { sType } = app.userinfo; if (sType !== 'sysadmin') { const index = btnShowData.findIndex(item => item.sControlName === 'BtnResetpwd'); if (index > -1) { btnShowData.splice(index, 1); } } /* 筛选出一级菜单 */ menuData = btnShowData.filter(item => !item.sControlName.includes('.')); /* 初始值的二级菜单 */ // const secondMenu = btnShowData.filter(item => item.sControlName.includes('.')); /** 配置后匹配二级菜单 */ menuData.forEach((menu) => { menu.child = []; /** 匹配相应的子菜单 */ const childData = btnShowData.filter(item => item.sControlName.startsWith(`${menu.sControlName}.`) && item.sControlName.split('.').length <= 2); if (menu.sControlName === 'BtnPrint') { /* 打印的二级菜单集合 */ const reportChild = []; if (commonUtils.isNotEmptyArr(report)) { for (const each of report) { reportChild.push({ sControlName: `BtnPrint.${each.sId}`, showName: each.sReportName, disabled: false, sActiveId: each.sId, sId: each.sId, }); } } menu.child.push(...reportChild); } else if (menu.sControlName === 'BtnPrintCustomer' && commonUtils.isNotEmptyObject(menuChildData)) { const reportChild = []; if (commonUtils.isNotEmptyArr(menuChildData)) { for (const each of menuChildData) { reportChild.push({ sControlName: `BtnPrintCus.${each.sId}`, showName: each.sReportName, disabled: false, sActiveId: each.sId, sId: each.sId, }); } } menu.child.push(...reportChild); } else if (commonUtils.isNotEmptyArr(childData)) { childData.forEach((childTwo) => { if (childTwo.sControlName === 'BtnBsOperation.BtnUpCheck' || childTwo.sControlName === 'BtnBsOperation.BtnDownCheck') { const childDataThree = btnShowData.filter(item => item.sControlName.startsWith(`${childTwo.sControlName}.`) && item.sControlName.split('.').length === 3); childTwo.child = childDataThree; } }); menu.child.push(...childData); } }); } if (enabled !== nextProps.enabled) { enabled = nextProps.enabled; } if (visibleStatement !== nextProps.visibleStatement) { visibleStatement = nextProps.visibleStatement; } if (visibleBatchPriceUpdate !== nextProps.visibleBatchPriceUpdate) { visibleBatchPriceUpdate = nextProps.visibleBatchPriceUpdate; } if (visibleBatchNPriceUpdate !== nextProps.visibleBatchNPriceUpdate) { visibleBatchNPriceUpdate = nextProps.visibleBatchNPriceUpdate; } if (reportData !== nextProps.reportData) { reportData = nextProps.reportData; } if (reportSelectedRowKeys !== nextProps.reportSelectedRowKeys) { reportSelectedRowKeys = nextProps.reportSelectedRowKeys; } if (commonUtils.isNotEmptyObject(masterData) && bCheck !== masterData.bCheck) { bCheck = masterData.bCheck; } if (commonUtils.isNotEmptyObject(masterData) && bInvalid !== masterData.bInvalid) { bInvalid = masterData.bInvalid; } if (JSON.stringify(searchUpDownData) !== JSON.stringify(nextProps.searchUpDownData)) { searchUpDownData = nextProps.searchUpDownData; } this.setState({ menuData, searchUpDownData, enabled, bCheck, bInvalid, visibleStatement, visibleBatchPriceUpdate, visibleBatchNPriceUpdate, reportData, reportSelectedRowKeys, }); } shouldComponentUpdate(nextProps, nextState) { const { masterConfig } = nextProps; const { menuData, searchUpDownData, enabled, bCheck, bInvalid, visibleStatement, visibleBatchPriceUpdate, visibleBatchNPriceUpdate, visibleBatchWorkListPriceUpdate, reportData, reportSelectedRowKeys, } = this.state; const { adDisabled, } = this.props; return masterConfig !== undefined && Object.keys(masterConfig).length > 0 && (JSON.stringify(menuData) !== JSON.stringify(nextState.menuData) || JSON.stringify(masterConfig) !== JSON.stringify(nextState.masterConfig) || JSON.stringify(searchUpDownData) !== JSON.stringify(nextState.searchUpDownData) || JSON.stringify(reportData) !== JSON.stringify(nextState.initialReportData) || JSON.stringify(reportSelectedRowKeys) !== JSON.stringify(nextState.reportSelectedRowKeys) || enabled !== nextState.enabled || bCheck !== nextState.bCheck || visibleStatement !== nextState.visibleStatement || visibleBatchPriceUpdate !== nextState.visibleBatchPriceUpdate || visibleBatchNPriceUpdate !== nextState.visibleBatchNPriceUpdate || visibleBatchWorkListPriceUpdate !== nextState.visibleBatchWorkListPriceUpdate || bInvalid !== nextState.bInvalid || adDisabled !== nextProps.adDisabled); } componentDidUpdate(prevProps) { const { slaveSelectedRowKeys, slaveInfoSelectedRowKeys, slaveData, slaveInfoData, } = prevProps; if (JSON.stringify(slaveData) !== JSON.stringify(this.props.slaveData) || JSON.stringify(slaveInfoData) !== JSON.stringify(this.props.slaveInfoData) || JSON.stringify(slaveSelectedRowKeys) !== JSON.stringify(this.props.slaveSelectedRowKeys) || JSON.stringify(slaveInfoSelectedRowKeys) !== JSON.stringify(this.props.slaveInfoSelectedRowKeys)) { this.handleBtnEnabled(this.props, false); } } /** 获取有三级菜单的父级菜单属性 */ getMenuProps = (menu, type) => { const obj = {}; obj.key = menu.sControlName; obj.disabled = this.getMenuStatus(menu); const { iconName, showName } = menu; obj.className = this.getMenuStatus(menu) && this.props.billList === 'billList' ? styles.toolBarSubDisabled : styles.toolBarSub; if (menu.sControlName !== undefined && (menu.sControlName === 'BtnBsOperation.BtnUpCheck' || menu.sControlName === 'BtnBsOperation.BtnDownCheck')) { obj.onMouseEnter = this.handleMouseEnter; /* 根据二级菜单获取三级数据 */ } // if (menu.sControlName !== undefined && (menu.sControlName.indexOf('BtnBsOperation.BtnUpCheck') > -1 || menu.sControlName.indexOf('BtnBsOperation.BtnDownCheck') > -1) && menu.sControlName.split('.').length === 3) { // obj.onMouseEnter = this.handleMouseEnter; /* 根据二级菜单获取三级数据 */ // } obj['data-sactiveid'] = menu.sActiveId; if (type === 'icon') { obj.title = {showName}; } else if (type === 'title') { obj.title = showName; } else if (type === 'key' && commonUtils.isEmpty(menu.sControlName)) { obj.key = menu.sId; } return obj; }; /** 获取父级菜单属性 */ getMenuStatus = (menu) => { let { masterData } = this.props; const { sortEnabled } = this.props; const { enabled, adDisabled, sModelsType, masterConfig, } = this.props; if (commonUtils.isEmptyObject(masterData)) { masterData = {}; } const { bCheck, bInvalid } = masterData; let disabledData = []; /* 置灰按钮集合 */ if (adDisabled) { disabledData = ['BtnAdd', 'BtnAddChild', 'BtnUpd', 'BtnDel', 'BtnSave', 'BtnCancel', 'BtnSetPeriod']; } else if (!adDisabled) { if (!enabled) { if (bInvalid) { // 已作废 disabledData = ['BtnUpd', 'BtnDel', 'BtnSave', 'BtnCancel', 'BtnExamine', 'BtnCancelExamine', 'BtnCopyTo', 'BtnCopyFrom', 'BtnBsOperation.BtnInvalid', 'BtnInvalid']; } else if (bCheck) { // 已审核 if (!commonUtils.isEmpty(sModelsType) && sModelsType.includes('element/')) { if (sModelsType === 'element/customerInfo') { const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnCheck'); if (iIndex > -1) { disabledData = ['BtnDel', 'BtnSave', 'BtnCancel', 'BtnExamine', 'BtnCopyFrom', 'BtnCancelInvalid', 'BtnImport']; //'BtnUpd', } else { disabledData = ['BtnSave', 'BtnCancel', 'BtnCancelExamine', 'BtnCopyFrom', 'BtnCancelInvalid']; } } else { disabledData = ['BtnSave', 'BtnCancel', 'BtnCancelExamine', 'BtnCopyFrom', 'BtnCancelInvalid']; } } else { /* 已审核查看状态 修改 删除 保存 取消 审核 复制从 取消作废置灰 */ disabledData = ['BtnUpd', 'BtnDel', 'BtnSave', 'BtnCancel', 'BtnExamine', 'BtnCopyFrom', 'BtnCancelInvalid', 'BtnImport']; } } else { /** 查看状态 修改 删除 保存 取消 审核 复制从置灰 */ disabledData = ['BtnSave', 'BtnCancel', 'BtnCancelExamine', 'BtnCopyTo', 'BtnCopyFrom', 'BtnCancelInvalid']; if (!commonUtils.isEmpty(sModelsType) && sModelsType.includes('element/')) { /* 除了客户信息,其他基础信息在查看状态状态下 复制到常亮 */ disabledData = ['BtnSave', 'BtnCancel', 'BtnCancelExamine', 'BtnCopyFrom', 'BtnCancelInvalid']; if (sModelsType === 'element/customerInfo') { const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnCheck'); if (iIndex > -1) { disabledData = ['BtnSave', 'BtnCancel', 'BtnCancelExamine', 'BtnCopyTo', 'BtnCopyFrom', 'BtnCancelInvalid']; } } } } } else { /* 修改状态 */ if (sModelsType === 'production/productionPlanInfo' || sModelsType === 'productionMainPlan/productionMainPlan') { disabledData = ['BtnAdd', 'BtnAddChild', 'BtnUpd', 'BtnDel', 'BtnFirst', 'BtnPrior', 'BtnNext', 'BtnLast', 'BtnUpCheck', 'BtnDownCheck', 'BtnExamine', 'BtnCancelExamine', 'BtnCopyTo', 'BtnBsOperation.BtnInvalid', 'BtnBsOperation.BtnCancelInvalid', 'BtnCancelInvalid', 'BtnInvalid']; } else { disabledData = ['BtnRefresh', 'BtnAdd', 'BtnAddChild', 'BtnUpd', 'BtnDel', 'BtnFirst', 'BtnPrior', 'BtnNext', 'BtnLast', 'BtnUpCheck', 'BtnDownCheck', 'BtnExamine', 'BtnCancelExamine', 'BtnCopyTo', 'BtnBsOperation.BtnInvalid', 'BtnBsOperation.BtnCancelInvalid', 'BtnPrint', 'BtnCancelInvalid', 'BtnInvalid']; } } } // 生产排程搜索时不可以上下移动 if (sortEnabled === false) { disabledData.push('BtnSave'); disabledData.push('BtnRepairstartdate'); } /* 通用上传按钮 除了新增,其他状态下都是亮的*/ if (menu.sControlName === 'BtnUpload') { const { handleType } = masterData; if (handleType === 'add') { disabledData.push('BtnUpload'); } } // 其它自定义按钮不在以上 不能操作数据里 if (menu.disabled) { disabledData.push(menu.sControlName); } // 订单已审核 价格批量更新亮 */ if (commonUtils.isNotEmptyObject(menu.sControlName) && menu.sControlName.includes('PriceUpdate')) { const { bCheck } = masterData; if (!bCheck) { disabledData.push(menu.sControlName); } } /* 导入未清按钮 只有编辑亮的*/ if (menu.sControlName === 'BtnImportFormData') { if (!enabled) { disabledData.push('BtnImportFormData'); } } /* 盘点导出模板数据 只有非编辑 按钮亮*/ if (menu.sControlName === 'BtnOutTemplateData') { if (enabled) { disabledData.push('BtnOutTemplateData'); } } if (sModelsType === 'productionMainPlan/productionMainPlan') { // 主计划中保存,取消保存按钮默认不可点击 if (disabledData.indexOf('BtnSave') === -1) { disabledData.push('BtnSave'); } if (disabledData.indexOf('BtnRefresh') === -1) { disabledData.push('BtnRefresh'); } // 生产主计划数据集有改动的时候才会高亮保存按钮 // 生产主计划保存按钮和确认计划的按钮互斥,存一 if (this.props.dataChanged === true) { // 列表有所改动 // 显示保存,禁用确认计划 if (disabledData.indexOf('BtnSave') !== -1) { disabledData.splice(disabledData.indexOf('BtnSave'), 1); } if (disabledData.indexOf('BtnRefresh') !== -1) { disabledData.splice(disabledData.indexOf('BtnRefresh'), 1); } if (disabledData.indexOf('BtnUnifiedPlanning') === -1) { disabledData.push('BtnUnifiedPlanning'); } } // if (this.props.dataChanged === false) { // if (disabledData.indexOf('BtnUnifiedPlanning') !== -1) { // disabledData.splice(disabledData.indexOf('BtnUnifiedPlanning'), 1); // } // if (disabledData.indexOf('BtnSave') === -1) { // disabledData.push('BtnSave'); // disabledData.push('BtnRefresh'); /* 生产主计划刷新按钮的亮与灰与保存按钮同步 */ // } // } } let bReturn = true; if (menu.sControlName !== undefined && menu.sControlName.indexOf('.') > -1) { bReturn = disabledData.findIndex(item => item === menu.sControlName.substring(0, menu.sControlName.indexOf('.'))) > -1; if (!bReturn) { bReturn = disabledData.findIndex(item => item === menu.sControlName) > -1; } } else { bReturn = disabledData.findIndex(item => item === menu.sControlName) > -1; } bReturn = bReturn || (this.props.getMenuStatus !== undefined && this.props.getMenuStatus(menu)); return bReturn; }; getDisabledProps = (name) => { if (commonUtils.isNotEmptyObject(name)) { const { enabled } = this.props; const obj = {}; obj.disabled = enabled; return obj; } }; /* */ handleBtnEnabled = (props, isReturn) => { const { masterConfig: masterConfigOld } = props; if (commonUtils.isNotEmptyObject(masterConfigOld)) { const masterConfig = JSON.parse(JSON.stringify(masterConfigOld)); const buttonConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === '' && item.showName !== '' && item.sControlName !== ''); if (commonUtils.isNotEmptyArr(buttonConfig)) { for (const btnItem of buttonConfig) { const iIndex = masterConfig.gdsconfigformslave.findIndex(item => btnItem.sId === item.sId); let btndisabled = false; if (commonUtils.isNotEmptyStr(btnItem.sButtonEnabled)) { btndisabled = this.handleAnalysisBtnEnabled(props, btnItem, masterConfig.gdsconfigformslave); } masterConfig.gdsconfigformslave[iIndex].disabled = btndisabled; // = { ...masterConfig.gdsconfigformslave[iIndex], disabled: btndisabled }; } } if (isReturn) { return { ...masterConfig }; } else { const addState = {}; addState.masterConfig = { ...masterConfig }; this.props.onSaveState({ ...addState }); } } } handleAnalysisBtnEnabled = (props, currConfig, gdsconfigformslave) => { const { sButtonEnabled } = currConfig; let btndisabled = false; if (commonUtils.isNotEmptyObject(sButtonEnabled)) { const enabled = JSON.parse(sButtonEnabled); const solution = enabled.solution; const rowSelected = enabled.rowSelected; const buttonFilter = enabled.button; // const dataFilter = enabled.data; // 解析配置中 solution:["新工单"] if (!(commonUtils.isNotEmptyArr(solution) && solution.includes(props.masterData.sSolutionName))) { btndisabled = true; return btndisabled; } let disabledRowSelected; // 解析配置中 rowSelected: [{name:'master',rule:'&&'},{name:'slave',rule:'&&'}], if (commonUtils.isNotEmptyArr(rowSelected)) { let rule; let selectRt; let i = 0; for (const item of rowSelected) { const name = item.name; i += 1; if (commonUtils.isNotEmptyArr(props[`${name}SelectedRowKeys`])) { selectRt = true; // 表示 满足当前条件, } else { selectRt = false; } /* 只有1个配置: selectRt = true 当满足当前条件,按钮应该为亮,即当前btndisabled =false,不返回继续往下进行判断 selectRt = false 不当满足当前条件,按钮应该为灰色,即当前btndisabled =true,已经有条件不满足,按钮可直接定为灰色的,即直接返回true */ if (i === 1) { disabledRowSelected = selectRt; } else if (i > 1 && rule === '&&') { disabledRowSelected = selectRt && disabledRowSelected; } else if (i > 1 && rule === '||') { disabledRowSelected = selectRt || disabledRowSelected; } rule = item.rule; } if (!disabledRowSelected) { btndisabled = true; return btndisabled; } } // gdsconfigformslave[iIndex].disabled 为true 表示按钮至灰, false 表示按钮亮,可使用 let disabledButtonFilter; if (commonUtils.isNotEmptyArr(buttonFilter)) { let rule; let buttonRt; let i = 0; for (const item of buttonFilter) { i += 1; const name = item.name; const currDisabled = !item.enabled; const iIndex = gdsconfigformslave.findIndex(config => config.sControlName === name); const tempDisabled = gdsconfigformslave[iIndex].disabled; if (tempDisabled === currDisabled) { buttonRt = true; } else { buttonRt = false; } if (i === 1) { disabledButtonFilter = buttonRt; } else if (i > 1 && rule === '&&') { disabledButtonFilter = buttonRt && disabledRowSelected; } else if (i > 1 && rule === '||') { disabledButtonFilter = buttonRt || disabledRowSelected; } rule = item.rule; } if (!disabledButtonFilter) { btndisabled = true; return btndisabled; } } } return btndisabled; } /** 根据二级菜单获取三级数据 */ handleMouseEnter = (e) => { if (commonUtils.isNotEmptyStr(e.key) && this.props.onSearchUpDownThird !== undefined) { this.props.onSearchUpDownThird(e.key); } }; handleImport = async (proName, proInParam) => { this.props.onSaveState({ loading: true, }); const { sModelsId, masterData, slaveData, slaveDelData: slaveDelDataOld, app, } = this.props; const btnConfig = this.props.masterConfig.gdsconfigformslave.filter(item => (item.sControlName === 'BtnCommonImport'))[0];// sButtonEnabled sButtonParam if (!commonUtils.isNotEmptyObject(btnConfig) || !commonUtils.isNotEmptyStr(btnConfig.sButtonParam)) { message.error('请配置按钮的存储过程'); this.props.onSaveState({ loading: false, }); } const sButtonParam = btnConfig.sButtonParam; const btn = JSON.parse(sButtonParam); const sProName = btn.sproName; const inParams = []; const inMap = btn.inMap; const inlist = inMap.split(','); const masterArr = []; const slaveArr = []; const slaveInfoArr = []; const controlArr = []; const materialsArr = []; const processArr = []; 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 === 'slaveInfo') { slaveInfoArr.push(stype); } if (commonUtils.isNotEmptyStr(sname) && sname === 'control') { controlArr.push(stype); } if (commonUtils.isNotEmptyStr(sname) && sname === 'materials') { materialsArr.push(stype); } if (commonUtils.isNotEmptyStr(sname) && sname === 'process') { processArr.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 (commonUtils.isNotEmptyArr(slaveArr)) { const addState = this.handleProParams('slave', slaveArr); if (commonUtils.isNotEmptyObject(addState)) { inParams.push({ ...addState }); } } if (commonUtils.isNotEmptyArr(slaveInfoArr)) { const addState = this.handleProParams('slaveInfo', slaveInfoArr); if (commonUtils.isNotEmptyObject(addState)) { inParams.push({ ...addState }); } } if (commonUtils.isNotEmptyArr(controlArr)) { const addState = this.handleProParams('control', controlArr); if (commonUtils.isNotEmptyObject(addState)) { inParams.push({ ...addState }); } } if (commonUtils.isNotEmptyArr(materialsArr)) { const addState = this.handleProParams('materials', materialsArr); if (commonUtils.isNotEmptyObject(addState)) { inParams.push({ ...addState }); } } if (commonUtils.isNotEmptyArr(processArr)) { const addState = this.handleProParams('process', processArr); if (commonUtils.isNotEmptyObject(addState)) { inParams.push({ ...addState }); } } } const value = { sProName, sProInParam: JSON.stringify({ params: inParams }) }; const url = `${commonConfig.server_host}procedureCall/doGenericProcedureCall?sModelsId=${sModelsId}`; const dataReturn = (await commonServices.postValueService(app.token, value, url)).data; // const url = `${commonConfig.server_host}eleMaterialsStock/getEleMaterialsStock?sModelsId=${sModelsId}&sWareHouseId=${masterData.sWareHouseId}&num=${num}`; // const dataReturn = (await commonServices.getService(this.props.app.token, url)).data; if (dataReturn.code === 1) { const returnData = dataReturn.dataset.rows; const slaveDelData = commonUtils.isEmptyArr(slaveDelDataOld) ? [] : slaveDelDataOld; slaveData.forEach((item) => { item.handleType = 'del'; slaveDelData.push({ ...item }); }); returnData.forEach((item, index) => { item.handleType = 'add'; item.sParentId = masterData.sId; item.iOrder = index + 1; returnData[index] = { ...item }; }); this.props.onSaveState({ slaveData: returnData, slaveDelData }); } else { this.props.getServiceError(dataReturn); } this.props.onSaveState({ loading: false, }); } /** 菜单的点击事件 */ handleClick = (e) => { let checkedBoolean = false; let obj = { enabled: false }; const { checked, checkedId } = this.state; const { key, keyPath } = e; if (checked && checkedId === key) { checkedBoolean = true; } /* 新增 */ if (key === 'BtnAdd') { /* 增加 */ this.handleAdd(obj); }else if(key === 'BtnClose'){ const { dispatch, onSaveCurrentState, slaveData, } = this.props; const { app } = this.props; let copyToSlaveData = []; if(commonUtils.isNotEmptyObject(app) && app.currentPane && app.currentPane.copyTo){ copyToSlaveData = app.currentPane.copyTo.slaveData; } const { userinfo } = app; /* 关闭界面时 清除操作锁定 */ if (commonUtils.isNotEmptyArr(slaveData)) { const sIdArray = []; slaveData.forEach((item) => { const redisKey = commonUtils.isNotEmptyObject(item.sOriginalId) ? item.sOriginalId : commonUtils.isNotEmptyObject(item.sSlaveId ) ? item.sSlaveId : item.sSrcSlaveId ; sIdArray.push(redisKey); }); if(commonUtils.isNotEmptyArr(copyToSlaveData)) { copyToSlaveData.forEach((item) => { const redisKey = item.sSlaveId; sIdArray.push(redisKey); }); } const sId = sIdArray.toString(); console.log('关闭解锁:', sId); this.props.handleSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null); } dispatch(routerRedux.push('/indexOee/processReport')); onSaveCurrentState(undefined,undefined,undefined,undefined,undefined, true);// 变为当前设备的未清页面 } else if (key === 'BtnAddChild') { /* 分类增加子级 */ this.handleAddChild(obj); } else if (key === 'BtnUpd') { /* 修改 */ this.props.onEdit(obj); } else if (key === 'BtnSave') { /* 保存 */ this.props.onSaveState({ loading: true, }); /* 生产主计划重置数据变化状态 */ this.props.onSaveState({ dataChanged: false, }); setTimeout(() => { this.props.onSubmit(); }, 500); } else if (key === 'BtnExamine') { /* 审核 */ this.props.onSaveState({ loading: true, }); this.props.onBtnExamine(); } else if (key === 'BtnCancelExamine') { /* 消审 */ this.props.onSaveState({ loading: true, }); this.props.onBtnCancelExamine(); } else if (key.indexOf('BtnBsOperation') > -1) { /* 作废、取消作废 */ if (key === 'BtnBsOperation.BtnInvalid') { obj = { title: '确定要作废', handleType: 'toVoid', }; this.props.onChangeInvalid(obj); } else { const name = key.split('.'); this.props.onButtonClick(name[1]); } } else if (key === 'BtnInvalid') { obj = { title: '确定要作废', handleType: 'toVoid', }; this.props.onChangeInvalid(obj); } else if (key === 'BtnCancelInvalid') { obj = { title: '确定取消作废', handleType: 'cancel', }; this.props.onChangeInvalid(obj); } else if (key === 'BtnGetWeight') { // 获取重量 this.props.onGetWeight(); } else if (key.indexOf('BtnCopyTo') > -1) { /* 复制到 */ // && commonUtils.isNotEmptyStr(e.item.props.sActiveId) this.props.onCopyTo(e.key, e.item.props['data-sactiveid']); } else if (key.indexOf('BtnCopyFrom') > -1 && commonUtils.isNotEmptyStr(e.item.props['data-sactiveid'])) { /* 复制从 */ obj = { copyFromKey: key, copyFromSActiveId: e.item.props['data-sactiveid'], }; this.props.onCopyFrom(obj); } else if (key.indexOf('BtnEject') > -1) { /* 自定义接口弹出 */ const { masterConfig, masterData } = this.props; const buttonConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === '' && item.showName !== '' && item.sControlName === key); if (commonUtils.isNotEmptyStr(buttonConfig)) { const sActiveKey = buttonConfig[0].sActiveKey; /* 拿到表名 */ if (commonUtils.isNotEmptyObject(sActiveKey)) { let tbName = 'slave'; /* 表名 */ const btnName = key; /* 按钮名 */ let record = {}; /* 选中行 */ let iIndex = -1; const splitData = sActiveKey.split('.'); if (commonUtils.isNotEmptyStr(splitData) && splitData.length > 1) { tbName = splitData[0]; /* 表名 */ if (tbName === 'master') { record = masterData; } else { const { [`${tbName}SelectedRowKeys`]: tableSelectedRowKeys, [`${tbName}Data`]: tableData } = this.props; if (commonUtils.isNotEmptyStr(tableData)) { iIndex = tableData.findIndex(item => tableSelectedRowKeys.includes(item.sSlaveId)); if (iIndex > -1) { record = tableData[iIndex]; } } } } this.props.onViewClick(tbName, btnName, record, iIndex); } } } else if (keyPath.indexOf('BtnBsOperation.BtnUpCheck') > -1 && commonUtils.isNotEmptyStr(e.item.props['data-sactiveid']) && key.indexOf('BtnBsOperation.BtnUpCheck') < 0) { /* 上查 */ /* key.indexOf('BtnUpCheck') < 0 用于防止用户点击二级菜单时的跳转 */ this.props.onSearchUpDown(key, e.item.props['data-sactiveid']); } else if (keyPath.indexOf('BtnBsOperation.BtnDownCheck') > -1 && commonUtils.isNotEmptyStr(e.item.props['data-sactiveid']) && key.indexOf('BtnBsOperation.BtnDownCheck') < 0) { /* 下查 */ /* key.indexOf('BtnDownCheck') < 0 用于防止用户点击二级菜单时的跳转 */ this.props.onSearchUpDown(key, e.item.props['data-sactiveid']); } else if (key === 'BtnNext') { /* 下一条 */ this.props.onNext(); } else if (key === 'BtnPrior') { /* 上一条 */ this.props.onBtnPrior(); } else if (key === 'BtnFirst') { /* 首条 */ this.props.onBtnFirst(); } else if (key === 'BtnLast') { /* 末条 */ this.props.onBtnLast(); } else if (key === 'BtnCancel') { /* 取消 */ obj = { title: '确定要取消', }; this.props.onCancel(obj); } else if (key.indexOf('BtnPrint') > -1 && commonUtils.isNotEmptyStr(e.item.props['data-sactiveid'])) { /* 打印 */ this.props.onBtnPrint(e.item.props['data-sactiveid'], checkedBoolean, e.key); } else if (key === 'BtnDel') { /* 删除 */ obj = { title: '确定要删除', }; this.props.onDel(obj); } else if (key === 'BtnGetGoods') { this.props.onGetGoods(); } else if (key.indexOf('BtnUpload') > -1) { /* 上传 */ this.props.onSaveState({ visibleFilfile: true, }); } else if (key.startsWith('BtnEvent')) { this.props.onSaveState({ loading: true, }); const btnConfig = this.props.masterConfig.gdsconfigformslave.filter(item => (item.sControlName === key))[0];// sButtonEnabled sButtonParam if (commonUtils.isNotEmptyObject(btnConfig) && commonUtils.isNotEmptyStr(btnConfig.sButtonParam)) { this.handleBtnEent(btnConfig); } else { message.error('请配置按钮的存储过程'); this.props.onSaveState({ loading: false, }); } } else if (key.indexOf('BtnRepair') > -1) { if (key.toLowerCase().endsWith('choosedate')) { this.handleForceComplete(key, 'chooseDate'); } else { this.handleForceComplete(key); } } else if (key === 'BtnForceComplete' || key === 'BtnNoPurchase' || key === 'BtnForceComplete2' || key === 'BtnForceComplete3') { this.handleForceComplete(key); } else if (key === 'BtnUpPbOrder') { this.props.onSaveState({ upPbOrderVisible: true, }); } else if (key === 'BtnDlPbOrder') { this.props.onSaveState({ dlPbOrderVisible: true, }); } else if (key === 'BtnCommonImport') { this.handleImport(); } else if (this.props.onButtonClick !== undefined) { this.props.onButtonClick(key); } }; /* 新增 */ handleAdd = () => { this.props.onAdd(); }; /* 新增子级 */ handleAddChild= (obj) => { this.props.onAddChild(obj); }; handleFilfileManageCancel = (modelVisible) => { this.props.onSaveState({ [modelVisible]: false }); } handleFilfileManageOk = (modelVisible, selectConfig, filfileSelectedData, sSrcSlaveId, filfileDelData) => { if (commonUtils.isNotEmptyObject(sSrcSlaveId)) { /* 工单、工艺卡、报价单控制表数据带回 */ let controlFilfileData = []; let controlFilfileDelData = []; if (commonUtils.isNotEmptyArr(filfileSelectedData)) { controlFilfileData = filfileSelectedData.filter(item => item.sSrcSlaveId === sSrcSlaveId);/* 控制表选中行上传的图片数组 */ } if (commonUtils.isNotEmptyArr(filfileDelData)) { controlFilfileDelData = filfileDelData.filter(item => item.sSrcSlaveId === sSrcSlaveId); } this.props.onFilfileManageOk(controlFilfileData, controlFilfileDelData, sSrcSlaveId); } this.props.onSaveState({ [modelVisible]: false }); } // 获取订单中的取消 handleCancel = () => { this.setState({ inputChange: '', }); this.props.onGetGoodsCancle(); }; // 获取订单中的确定 handleOk = () => { this.props.onGetGoodsValue(this.state.inputChange); }; // 获取订单中的值变化 handleInputChange = (e) => { this.setState({ inputChange: e.target.value, }); } radioClick = (Child, e) => { e.stopPropagation(); this.setState({ // eslint-disable-next-line react/no-unused-state checked: e.target.checked, checkedId: Child.sControlName, }); } // 进行存储过程按钮存储过程参数解析拼接 根据存储过程按钮参数配置进行解析,配置是json格式 {"sproName":"cal_sss","inMap":"master.sSlaveId,slave.sId"} handleBtnEent = (btnConfig, name, sValue) => { if (commonUtils.isNotEmptyObject(btnConfig) && (btnConfig.sControlName === 'BtnEventReceiveReturn' || btnConfig.sControlName === 'BtnEventReceive')) { // 刀模归还, 刀模领用判断是否选择数据 const { slaveSelectedRowKeys, app } = this.props; if (slaveSelectedRowKeys && commonUtils.isEmptyArr(slaveSelectedRowKeys)) { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择记录 this.props.onSaveState({ loading: false, }); return; } } const { masterData, sCurrMemoProps } = this.props; if (commonUtils.isNotEmptyObject(name) && name.indexOf('BtnRepair') > -1 && commonUtils.isNotEmptyObject(sCurrMemoProps)) { sCurrMemoProps.bVisibleMemo = false; this.props.onSaveState({ sCurrMemoProps }); } const sButtonParam = btnConfig.sButtonParam; const btn = JSON.parse(sButtonParam); const sProName = btn.sproName; const inParams = []; const inMap = btn.inMap; const inlist = inMap.split(','); const masterArr = []; const slaveArr = []; const slaveInfoArr = []; const controlArr = []; const materialsArr = []; const processArr = []; 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 === 'slaveInfo') { slaveInfoArr.push(stype); } if (commonUtils.isNotEmptyStr(sname) && sname === 'control') { controlArr.push(stype); } if (commonUtils.isNotEmptyStr(sname) && sname === 'materials') { materialsArr.push(stype); } if (commonUtils.isNotEmptyStr(sname) && sname === 'process') { processArr.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 (commonUtils.isNotEmptyArr(slaveArr)) { const addState = this.handleProParams('slave', slaveArr); if (commonUtils.isNotEmptyObject(addState)) { inParams.push({ ...addState }); } } if (commonUtils.isNotEmptyArr(slaveInfoArr)) { const addState = this.handleProParams('slaveInfo', slaveInfoArr); if (commonUtils.isNotEmptyObject(addState)) { inParams.push({ ...addState }); } } if (commonUtils.isNotEmptyArr(controlArr)) { const addState = this.handleProParams('control', controlArr); if (commonUtils.isNotEmptyObject(addState)) { inParams.push({ ...addState }); } } if (commonUtils.isNotEmptyArr(materialsArr)) { const addState = this.handleProParams('materials', materialsArr); if (commonUtils.isNotEmptyObject(addState)) { inParams.push({ ...addState }); } } if (commonUtils.isNotEmptyArr(processArr)) { const addState = this.handleProParams('process', processArr); if (commonUtils.isNotEmptyObject(addState)) { inParams.push({ ...addState }); } } } this.handleProcedureCall(btnConfig, sProName, JSON.stringify({ params: inParams, changeValue: sValue })); }; // 存储过程按钮调用存储过程 handleProcedureCall = async (btnConfig, proName, proInParam) => { const { app, sModelsId } = this.props; const value = { sProName: proName, sProInParam: proInParam }; 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.props.onButtonClick('BtnRefresh'); } else { this.props.getServiceError(returnData); } this.props.onSaveState({ loading: false }); // 点击返回重排的时候刷新树 if (btnConfig.sControlName === 'BtnEventReturn') { if (this.props.refreshTreeData) { this.props.refreshTreeData(); } } } // 根据配置解析拼接具体参数 handleProParams = (sKey, arr) => { const { [`${sKey}Data`]: tableData, [`${sKey}SelectedRowKeys`]: selectedRowKeys } = this.props; const keyData = commonUtils.isNotEmptyArr(tableData) && commonUtils.isNotEmptyArr(selectedRowKeys) ? 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; } }; /* 双击弹出Memo */ handleGetMemo = (name, sValue, sMemoFiled, sRecord, bVisibleMemo, btnConfig) => { const { sCurrMemoProps } = this.props; sCurrMemoProps.bVisibleMemo = false; if (btnConfig.length > 0) { sRecord[sMemoFiled] = sValue; this.props.onSaveState({ sCurrMemoProps }); this.handleToForceComplete(sValue); } else { let { [`${name}Data`]: tableData } = this.props; const addStata = { [`${sMemoFiled}`]: sValue }; if (name !== 'master') { const iIndex = tableData.findIndex(item => item.sId === sRecord.sId); let handleType = tableData[iIndex].handleType;/* 获取操作类型 */ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; addStata.handleType = handleType; tableData[iIndex] = { ...tableData[iIndex], ...addStata }; } else { let handleType = tableData.handleType;/* 获取操作类型 */ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; addStata.handleType = handleType; tableData = { ...tableData, ...addStata }; } this.props.onSaveState({ ...sCurrMemoProps, [`${name}Data`]: tableData }); } }; /* 点击隐藏Memo 弹窗 */ handleGetMemoCancel = () => { const { sCurrMemoProps } = this.props; sCurrMemoProps.bVisibleMemo = false; this.props.onSaveState({ sCurrMemoProps }); }; handleForceComplete = (name, createDate) => { let sysLogData = {}; const slaveMemoConfigOld = []; if (createDate !== 'chooseDate') { const { slaveSelectedRowKeys, slaveInfoSelectedRowKeys, app, masterConfig, slaveInfoData, masterData, } = this.props; const btnConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName === name)[0];// sButtonEnabled sButtonParam let target = ''; if (btnConfig.sActiveKey) { target = btnConfig.sActiveKey.split(',')[0].split('.')[0]; } if (target !== 'slaveInfo' && commonUtils.isEmptyArrNew(slaveSelectedRowKeys)) { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择记录 } else if (target === 'slaveInfo' && commonUtils.isEmptyArrNew(slaveInfoSelectedRowKeys)) { message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择记录 } else if (target === 'slaveInfo' && !Array.isArray(slaveInfoData)) { message.warn('请展开详情并选择数据。'); // 请选择记录 } else { let btnConfigNameArr = []; let singleConfig = {}; if (name.indexOf('BtnRepair') > -1) { if (!commonUtils.isEmpty(btnConfig.sActiveKey)) { btnConfigNameArr = btnConfig.sActiveKey.split(','); } if (commonUtils.isNotEmptyArr(btnConfigNameArr)) { // eslint-disable-next-line array-callback-return btnConfigNameArr.map((i) => { let sIndex = -1; if (target === 'slaveInfo') { sIndex = this.props.slaveInfoConfig.gdsconfigformslave.findIndex(item => (item.sName === i.split('.')[1])); } else { sIndex = this.props.slaveConfig.gdsconfigformslave.findIndex(item => (item.sName === i)); } if (sIndex > -1) { if (target === 'slaveInfo') { singleConfig = this.props.slaveInfoConfig.gdsconfigformslave[sIndex]; } else { singleConfig = this.props.slaveConfig.gdsconfigformslave[sIndex]; } if (masterData) { masterData[singleConfig.sName] = undefined; } slaveMemoConfigOld.push(singleConfig); } }); } } /* 时间格式的字段 若默认值为空 则取当前时间 */ const activeKeyData = commonUtils.isNotEmptyObject(btnConfig.sActiveKey) ? btnConfig.sActiveKey.split(',') : []; if (activeKeyData.length > 1) { /* 当多字段时候 若时间格式的字段 若默认值为空 则取当前时间 */ const filterData = activeKeyData.filter(item => item.substring(0, 1) === 't'); if (commonUtils.isNotEmptyArr(filterData)) { filterData.forEach((item) => { if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isEmpty(masterData[item])) { masterData[item] = moment().format('YYYY-MM-DD HH:mm:ss'); } }); } } else { if (commonUtils.isNotEmptyObject(btnConfig.sActiveKey) && btnConfig.sActiveKey.substring(0, 1) === 't') { if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isEmpty(masterData[btnConfig.sActiveKey])) { masterData[btnConfig.sActiveKey] = moment().format('YYYY-MM-DD HH:mm:ss'); } } } sysLogData = { sId: slaveSelectedRowKeys.toString() }; this.props.onSaveState({ slaveMemoConfig: slaveMemoConfigOld, masterData, sCurrMemoProps: { bVisibleMemo: true, sMemoField: 'sReason', sRecord: sysLogData, dataSource: sysLogData, btnName: name, }, }); } } else { const chooseDateConfig = { sId: commonUtils.createSid(), sName: 'pChooseDate', sDropDownType: 'sql', bNotEmpty: false, iVisCount: 1, dropDownData: [], showName: '生成凭证', }; slaveMemoConfigOld.push(chooseDateConfig); this.props.onSaveState({ slaveMemoConfig: slaveMemoConfigOld, sCurrMemoProps: { bVisibleMemo: true, sMemoField: 'sReason', sRecord: sysLogData, dataSource: sysLogData, btnName: name, }, }); } } handleToForceComplete = async (sValue) => { const { app, slaveSelectedRowKeys, slaveConfig, sModelsId, slaveInfoSelectedRowKeys, formRoute, masterConfig, } = this.props; const { token } = app; let iIndex = -1; if (masterConfig && Array.isArray(masterConfig.gdsconfigformslave)) { iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnForceComplete' || item.sControlName === 'BtnNoPurchase'); } if (iIndex < 0 && slaveConfig && Array.isArray(slaveConfig.gdsconfigformslave)) { iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnForceComplete' || item.sControlName === 'BtnNoPurchase'); } if (iIndex < 0) return; const btnConfig = slaveConfig.gdsconfigformslave[iIndex]; // debugger const sRelation = btnConfig.sRelation; let selectedRowKeys = ''; if (formRoute === '/indexPage/materialRequirementsPlanning') { selectedRowKeys = slaveInfoSelectedRowKeys.toString(); } else { selectedRowKeys = slaveSelectedRowKeys.toString(); } const url = `${commonConfig.server_host}bill/billForceComplete?sModelsId=${sModelsId}&sName=${formRoute}`; const values = { sqlParam: sRelation, sId: selectedRowKeys, sReason: sValue }; const masterReturn = (await commonServices.postValueService(token, values, url)).data; if (masterReturn.code === 1) { message.success(masterReturn.msg); this.props.onButtonClick('BtnRefresh'); } else { this.props.getServiceError(masterReturn); } } /** 上传文件改变时的状态 */ handleUploadChange = async (info) => { const { slaveSelectedRowKeys, app, slaveSelectedData, sModelsId, token, } = this.props; if (slaveSelectedRowKeys === undefined || slaveSelectedRowKeys.length !== 1) { message.warn(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo')); /* 请先选择一条数据! */ return; } const { file } = info; if (file.response) { if (file.response.code === 1) { /* 成功 */ message.success(file.response.msg); const savePathStr = file.response.dataset.rows[0].savePathStr; const sId = commonUtils.isNotEmptyArr(slaveSelectedData) ? slaveSelectedData[0].sId : ''; const bFile = commonUtils.isNotEmptyArr(slaveSelectedData) ? slaveSelectedData[0].bCorrespondFile : ''; if (commonUtils.isNotEmptyObject(sId) && !bFile) { const url = `${commonConfig.server_host}salesorder/updateOrderCorrespondFile?sModelsId=${sModelsId}`; const values = { sOrderId: sId, savePathStr }; const sReturn = (await commonServices.postValueService(token, values, url)).data; if (sReturn.code === 1) { this.props.onButtonClick('BtnRefresh'); } else { this.props.getServiceError(sReturn); } } } else { /* 失败 */ this.props.getServiceError({ msg: commonFunc.showMessage(app.commonConst, 'reportDesign') + file.response }); /* 报表设计 */ } } }; /* 订单文件下载 */ handleBtnDownload = () => { const { slaveSelectedRowKeys, slaveData, app, } = this.props; if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) { message.warn(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));/* 请先选择一条数据 */ return; } const dataSelect = slaveData.filter(item => slaveSelectedRowKeys.includes(item.sSlaveId)); const sBillNoArr = []; let sBillNoStr = ''; if (commonUtils.isNotEmptyArr(dataSelect)) { dataSelect.forEach((item) => { sBillNoArr.push(item.sBillNo); }); sBillNoStr = JSON.stringify(sBillNoArr); } if (commonUtils.isNotEmptyArr(sBillNoArr)) { const urlPrint = `${commonConfig.file_host}file/downloadPbOrder`; this.handleOpenPost(urlPrint, sBillNoStr); } }; handleOpenPost= (url, params) => { const newWin = window.open(); let formStr = ''; formStr = `
` + `` + '
'; newWin.document.body.innerHTML = formStr; newWin.document.forms[0].submit(); return newWin; } /** 渲染 */ render() { const { menuData, searchUpDownData } = this.state; const { loading, sModelsId, masterConfig, visibleFilfile, copyFromChooseVisible, app, sTabId, controlSelectedRowKeys, sModelsType, slaveSelectedData, slaveSelectedRowKeys, formRoute, slaveData, } = this.props; const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0]; const filfileManageTitle = commonFunc.showMessage(app.commonConst, 'filfileManageTitle');/* 通用文件上传 */ const getGoodsTitle = commonFunc.showMessage(app.commonConst, 'getGoodsTitle');/* 获取订单表头 */ const getGoodsPlaceholder = commonFunc.showMessage(app.commonConst, 'handleNoWebOrderIds');/* 获取订单输入框字样 */ let btnUploadConfig = {}; if (commonUtils.isNotEmptyObject(masterConfig)) { const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnUpload'); if (iIndex > -1) { btnUploadConfig = this.props.masterConfig.gdsconfigformslave[iIndex]; } } let sSlaveId = ''; let selectedsId = ''; /* 列表选中行或窗体sFormId */ const bList = (formRoute === '/indexPage/commonList'); if ((sModelsType === 'manufacture/workOrder' || sModelsType === 'manufacture/workOrder3' || sModelsType === 'quotation/quotation') && commonUtils.isNotEmptyArr(controlSelectedRowKeys)) { sSlaveId = controlSelectedRowKeys[0];/* 控制表选中行ID */ } else if (bList) { /* HM订单准印资质列表 sSrcId为列表选中行sId */ if (sModelsType === 'HMOrderList') { if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) { selectedsId = slaveSelectedRowKeys[0]; } } else { selectedsId = commonUtils.isNotEmptyArr(slaveData) && commonUtils.isNotEmptyObject(slaveData[0].sFormId) ? slaveData[0].sFormId : ''; /* 列表从表的sFormId */ } } const { masterData, visibleGetGoods } = this.props; const filfilemanageType = { app: { ...this.props.app, currentPane: { name: 'elefilfilemanage', config: btnUploadConfig, conditonValues: { sSrcId: commonUtils.isNotEmptyObject(selectedsId) ? selectedsId : commonUtils.isNotEmptyObject(masterData) ? masterData.sId : '' }, title: filfileManageTitle, route: '/elefilfilemanage', formId: '15864832090002447752315825731600', key: `${sModelsId}15864832090002447752315825731600`, sModelsType: 'element/filfilemanage', sSrcNo: bList ? (commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sBillNo : '') : (commonUtils.isNotEmptyObject(masterData) ? masterData.sBillNo : ''), /* 源单号 */ sSrcFormId: bList ? (commonUtils.isNotEmptyArr(slaveData) ? slaveData[0].sFormId : '') : (commonUtils.isNotEmptyObject(masterData) ? masterData.sFormId : ''), /* 源单窗体Id */ sSrcId: commonUtils.isNotEmptyObject(selectedsId) ? selectedsId : commonUtils.isNotEmptyObject(masterData) ? masterData.sId : '', /* 源单Id */ sSrcSlaveId: commonUtils.isNotEmptyObject(sSlaveId) ? sSlaveId : '', /* 工单控制表选中行 */ onFilfileOk: this.handleFilfileManageOk, onFilfileCancel: this.handleFilfileManageCancel, }, }, config: btnUploadConfig, enabled: true, /*this.props.enabled */ dispatch: this.props.dispatch, content: this.props.content, id: new Date().getTime().toString(), }; /* 通用复制从调用 */ let copyFromType = {}; let copyFromConfig = {}; let copyFromTitle = '自定义复制从窗体';/* 复制从工艺卡查询结果 */ if (commonUtils.isNotEmptyObject(this.props.copyFromChooseData)) { const copyFromKey = this.props.copyFromKey; const iIndex = this.props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === copyFromKey); if (iIndex > -1) { copyFromConfig = this.props.masterConfig.gdsconfigformslave[iIndex]; copyFromTitle = commonUtils.isNotEmptyObject(copyFromConfig) ? copyFromConfig.sActiveName : copyFromTitle; } copyFromType = { app: { ...this.props.app, currentPane: { name: 'commonCopyFrom', config: copyFromConfig, conditonValues: this.props.getSqlCondition(copyFromConfig), title: this.props.copyFromChooseData.sMenuName, route: this.props.copyFromChooseData.sName, formId: this.props.copyFromChooseData.sId, key: sModelsId + this.props.copyFromChooseData.sId, sModelsType: this.props.copyFromChooseData.sModelType, select: this.props.onCopyFromSelect, /* 自定义复制从窗体时间 */ selectCancel: this.handleFilfileManageCancel.bind(this, 'copyFromChooseVisible'), }, }, dispatch: this.props.dispatch, content: this.props.content, id: new Date().getTime().toString(), }; } let upPbOrderProps = {}; let sBillNo = ''; if (commonUtils.isNotEmptyArr(slaveSelectedData)) { sBillNo = slaveSelectedData[0].sBillNo; } upPbOrderProps = { action: `${commonConfig.file_host_ebc}file/uploadPbOrder?sModelsId=${sModelsId}&&sOrderNo=${sBillNo}`, onChange: this.handleUploadChange, accept: '.pdf', showUploadList: false, beforeUpload: () => { if (commonUtils.isEmptyObject(sBillNo)) { const noUpload = commonFunc.showMessage(app.commonConst, 'NoUpload');/* 禁止上传 */ message.error(noUpload); return false; } }, }; return (
{ menuData.map((item) => { const { child, iconName, showName,sColorTerms } = item; const sColor = commonUtils.isNotEmptyObject(sColorTerms)? sColorTerms :"#006fc8"; return (child.length > 1) ? {child.map((eachChild) => { if (eachChild.sControlName === 'BtnBsOperation.BtnUpCheck' || eachChild.sControlName === 'BtnBsOperation.BtnDownCheck') { return ( {eachChild.child.map((threeChild) => { if (commonUtils.isNotEmptyObject(searchUpDownData) && commonUtils.isNotEmptyArr(searchUpDownData[threeChild.sControlName])) { return ( { searchUpDownData[threeChild.sControlName].map((fourMenuItem) => { return ( { fourMenuItem.showName} ); }) } ); } else { return ''; } })} ); } else { return ( {eachChild.showName} { eachChild.sControlName.indexOf('BtnPrint') > -1 ? : '' } ); } })} : child.length === 1 ? {item.sName === 'BtnPrint' ? showName : child[0].showName} : { commonUtils.isNotEmptyObject(item.sControlName) && item.sControlName.indexOf('BtnUpPbOrder') > -1 ?
{showName}
: commonUtils.isNotEmptyObject(item.sControlName) && item.sControlName.indexOf('BtnDlPbOrder') > -1 ?
this.handleBtnDownload()}> {showName}
:
{showName}
}
; })}
); } } export default ToolBarComponent;