/* eslint-disable */
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 * as commonFunc from "@/components/Common/commonFunc";
import * as commonServices from "@/services/services";
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];
//
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
}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;