/* 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 (
);
}
}
export default ToolBarComponent;