import React, { useEffect, useReducer, useRef } from "react"; import { Button, Drawer, Steps, Form, Popconfirm, Switch, Tabs, Tooltip, Row, Col, message, } from "antd"; import AutoTable from "@/components/AutoTable"; import getPrem from "@/utils/getPrem"; //权限判断fn import InitForm from "@/components/InitForm"; import { useRequest } from "umi"; import { addFields, issueFields } from "./fields"; import { doFetch } from "@/utils/doFetch"; import moment from "moment"; import { prodorderDetail } from "@/utils/detailTotalCard"; import Details from "@/components/Details"; import Coltext from "@/components/Coltext"; const { Step } = Steps, { TabPane } = Tabs; const initState = { vs: false, fields: {}, iftype: {}, curitem: {}, currentStep: 0, orderId: "", fieldsValue: {}, btnLoading: false, tabeTep: [], tabKey: "", editType: "", fieldsc: {}, visible: false, detail: { dataSource: {}, totalCard: [], }, detailsVisible: false, expandedRowKeys: [], activeTabKey: "1", issueData: [], }, tabList = [ { key: "1", tab: "未完成", }, { key: "2", tab: "已完成", }, ], otherBasic = { materieCode: "物料编号", materieName: "物料名称", materieTypeName: "物料类别", processLineCode: "工艺路线编号", processLineName: "工艺路线名称", factoryName: "所属工厂", shopName: "所属车间", }; function reducer(state, action) { let { type } = action, newState = {}; switch (type) { case "add": newState = { ...state, vs: true, iftype: { title: "新增生产订单", val: type, }, fields: { ...action.fields }, }; break; case "addBom": newState = { ...state, visible: true, iftype: { title: "新增物料BOM", val: type, }, fieldsc: { ...action.fieldsc }, curitem: action.curitem, }; break; case "addProcess": newState = { ...state, visible: true, iftype: { title: action.title, val: type, isTopRightAdd: action.isTopRightAdd, }, fieldsc: { ...action.fieldsc }, curitem: action.curitem, }; break; case "edit": newState = { ...state, vs: true, iftype: { title: "修改生产订单", val: type, }, fields: { ...action.fields }, curitem: action.curitem, editType: action.editType, }; break; case "editBom": newState = { ...state, visible: true, iftype: { title: "编辑物料BOM", val: type, }, fieldsc: { ...action.fieldsc }, curitem: action.curitem, }; break; case "issue": newState = { ...state, visible: true, iftype: { title: "下达", val: type, }, fieldsc: { ...action.fieldsc }, curitem: action.curitem, issueData: action.issueData, }; break; case "setCurrent": newState = { ...state, currentStep: action.currentStep, }; break; case "changeOrderId": newState = { ...state, orderId: action.orderId, }; break; case "changeValues": newState = { ...state, fieldsValue: { ...action.fieldsValue }, }; break; case "changeLoading": newState = { ...state, btnLoading: action.btnLoading, }; break; case "changeTableTep": newState = { ...state, tabeTep: action.tabeTep, }; break; case "changeFields": newState = { ...state, fields: { ...action.fields }, }; break; case "changeTabKey": newState = { ...state, tabKey: action.tabKey, }; break; case "changeactiveTabKey": newState = { ...state, activeTabKey: action.activeTabKey, }; break; case "changeEditType": newState = { ...state, editType: action.editType, }; break; case "closeBom": newState = { ...state, fieldsc: {}, visible: false, }; break; case "see": newState = { ...state, detail: { dataSource: action.dataSource, totalCard: action.totalCard, }, detailsVisible: true, }; break; case "changeExpand": newState = { ...state, expandedRowKeys: action.expandedRowKeys, }; break; case "changeissueData": newState = { ...state, issueData: action.issueData, }; break; case "changeFieldsc": newState = { ...state, fieldsc: action.fieldsc, }; break; case "close": newState = { ...state, vs: false, fields: {}, iftype: {}, curitem: {}, currentStep: 0, orderId: "", btnLoading: false, tabeTep: [], tabKey: "", fieldsValue: {}, editType: "", fieldsc: {}, visible: false, detailsVisible: false, detail: { dataSource: {}, totalCard: [], }, expandedRowKeys: [], issueData: [], }; break; } return newState; } const Prodorder = (props) => { let actionRef = useRef(), ChildRef = null, [formRef] = Form.useForm(), actionRefs = useRef(), actionRefc = useRef(), [issueFormRef] = Form.useForm(); function reload() { actionRef?.current?.reload(); ChildRef?.onRefresh(); } function reloads() { actionRefc?.current?.reload(); actionRefs?.current?.reload(); dispatch({ type: "closeBom" }); } let extrarender = [ , ], extrarenders = [ , ]; const { run, loading } = useRequest(doFetch, { manual: true, formatResult: (res) => res, onSuccess: (result, params) => { if (result.code == "0000") { reloads(); } }, }), [state, dispatch] = useReducer(reducer, initState), { vs, fields, iftype, curitem, currentStep, orderId, fieldsValue, btnLoading, tabeTep, tabKey, editType, visible, fieldsc, detail, detailsVisible, expandedRowKeys, activeTabKey, issueData, } = state, columns = [ { title: "生产订单编号", dataIndex: "productionOrderNo", key: "productionOrderNo", render: (_, row) => { return ( { doFetch({ url: "/ngic-production/umProductionOrder/queryById", params: { id: row.id }, }).then((res) => { if (res.code == "0000") { let dataSource = res?.data?.data ?? {}; let bottom = [ { cardTitle: "物料BOM信息", itemData: [ { key: "materieBomTreeList", rowKey: "key", type: "table", columns: [ { title: "原料标识", dataIndex: "isRawMaterial", key: "isRawMaterial", search: false, render: (_, row) => { return (
{row.isRawMaterial == 1 ? "是" : "否"}
); }, }, { title: "物料编号", dataIndex: "title", key: "title", search: false, }, { title: "物料名称", dataIndex: "materieName", key: "materieName", search: false, }, { title: "生产单位", dataIndex: "productionUnitName", key: "productionUnitName", search: false, }, { title: "物料类别", dataIndex: "materieTypeName", key: "materieTypeName", search: false, }, { title: "台份量", dataIndex: "numberUnits", key: "numberUnits", search: false, }, { title: "预投量", dataIndex: "planQuantity", key: "planQuantity", search: false, }, { title: "产出工序", dataIndex: "workingProduceName", key: "workingProduceName", search: false, }, { title: "投料工序", dataIndex: "workingFeedingName", key: "workingFeedingName", search: false, }, ], col: { span: 24 }, expandable: { defaultExpandedRowKeys: dataSource.materieBomTreeList?.length > 0 ? [dataSource.materieBomTreeList[0]?.key] : [], }, }, ], }, { cardTitle: "工艺路线信息", itemData: [ { key: "lineList", type: "table", columns: [ { title: "工艺路线编号", dataIndex: "processLineCode", key: "processLineCode", search: false, }, { title: "工艺路线名称", dataIndex: "processLineName", key: "processLineName", }, { title: "物料编号", dataIndex: "materieCode", key: "materieCode", }, { title: "物料名称", dataIndex: "materieName", key: "materieName", }, { title: "所属工厂", dataIndex: "factoryName", key: "factoryName", }, { title: "所属车间", dataIndex: "shopName", key: "shopName", }, { title: "工序信息", dataIndex: "stepProcedure", key: "stepProcedure", }, ], col: { span: 24 }, }, ], }, ], totalCard = [...prodorderDetail, ...bottom]; dispatch({ type: "see", dataSource, totalCard }); } }); }} > {row.productionOrderNo}
); }, }, { title: "产出物料编号", dataIndex: "materieCode", key: "materieCode", }, { title: "产出物料名称", dataIndex: "materieName", key: "materieName", }, { title: "产出物料单位", dataIndex: "productionUnitName", key: "productionUnitName", search: false, }, { title: "订单数量", dataIndex: "orderNum", key: "orderNum", search: false, }, { title: "计划开工时间", dataIndex: "planStartDate", key: "planStartDate", search: false, }, { title: "计划完工时间", dataIndex: "planEndDate", key: "planEndDate", search: false, }, { title: "生产订单状态", dataIndex: "statusName", key: "statusName", search: false, }, { title: "已排产数量", dataIndex: "scheduledProductionNum", key: "scheduledProductionNum", search: false, }, { title: "完成数量", dataIndex: "finishNum", key: "finishNum", search: false, }, { title: "销售订单号", dataIndex: "saleOrderNo", key: "saleOrderNo", }, { title: "行号", dataIndex: "lineNo", key: "lineNo", search: false, }, { title: "客户名称", dataIndex: "customerName", key: "customerName", }, { title: "规格", dataIndex: "specs", key: "specs", search: false, }, { title: "颜色", dataIndex: "color", key: "color", search: false, }, { title: "操作", dataIndex: "option_dataindex", key: "option_dataindex", valueType: "option", width: 275, render: (text, row, _, action) => extraAction(text, row, _, action), }, ], columnsc = [ { title: "物料编号", dataIndex: "title", key: "title", search: false, }, { title: "物料名称", dataIndex: "materieName", key: "materieName", search: false, }, { title: "物料类别", dataIndex: "materieTypeName", key: "materieTypeName", search: false, }, { title: "台份量", dataIndex: "numberUnits", key: "numberUnits", search: false, }, { title: "预投量(系统计算)", dataIndex: "planQuantity", key: "planQuantity", search: false, }, { title: "产出工序", dataIndex: "workingProduceName", key: "workingProduceName", search: false, }, { title: "投料工序", dataIndex: "workingFeedingName", key: "workingFeedingName", search: false, }, { title: "作为原料", dataIndex: "material", key: "material", valueType: "switch", width: 85, render: (text, row, _, action) => { return row.parentKey != "0" ? ( { doFetch({ url: "/ngic-production/omOrderMaterieBomTmp/updateIsRawMaterial", params: { id: row.key, isRawMaterial: row.isRawMaterial == 1 ? 0 : 1, }, }).then((res) => { if (res.code == "0000") { actionRefs?.current?.reload(); } }); }} onCancel={() => {}} okText="确定" cancelText="取消" disabled={!getPrem("equipmentSupplier_updatestatus", "ifs")} > ) : ( <> ); }, search: false, }, { title: "操作", dataIndex: "option_dataindex", key: "option_dataindex", valueType: "option", width: 275, render: (text, row, _, action) => extraActions(text, row, _, action), }, ], columnss = [ { title: "步骤号", dataIndex: "stepSort", key: "stepSort", search: false, }, { title: "工序编号", dataIndex: "title", key: "title", search: false, }, { title: "工序名称", dataIndex: "workingProcedureName", key: "workingProcedureName", search: false, }, { title: "工序类型", dataIndex: "workingProcedureTypeName", key: "workingProcedureTypeName", search: false, }, { title: "采集方式", dataIndex: "collectionModeName", key: "collectionModeName", search: false, }, { title: "操作", dataIndex: "option_dataindex", key: "option_dataindex", valueType: "option", width: 275, render: (text, row, _, action) => extraActions(text, row, _, action), }, ], steps = [ { title: "基础信息", content: ( {}} formRef={formRef} actions={(form, submitBtn) => { return null; }} rowCol={0} > ), }, { title: "物料BOM", content: ( { if (expanded) { dispatch({ type: "changeExpand", expandedRowKeys: [...expandedRowKeys, record.key], }); } else { let newKeys = expandedRowKeys.filter( (it) => it != record.key ); dispatch({ type: "changeExpand", expandedRowKeys: [...newKeys], }); } }, }} > ), }, { title: "工艺路线", content: ( { dispatch({ type: "changeTabKey", tabKey: key }); }} > {tabeTep.map((it, i) => (
{Object.keys(otherBasic).map((item) => { return ( ); })}
))}
), }, ]; function extraAction(text, record, _, action) { // status 1 未下达 2已下达 3 已撤回 4生产中 5已完成 let ifs = record.status == 1 || record.status == 3, ifsc = record.status == 2; return [ ifs && getPrem("sysDepartment_save", action, "修改", () => { for (let i in addFields) { addFields[i].value = record[i]; } dispatch({ type: "edit", fields: addFields, curitem: record, editType: "mastEdit", }); dispatch({ type: "changeOrderId", orderId: record?.id }); }), ifs && getPrem("sysDepartment_deleteById", action, "下达", () => { doFetch({ url: "/ngic-production/omShopPlanTmp/queryByOrderId", params: { id: record.id }, }).then((res) => { if (res.code == "0000") { let data = res?.data?.dataList ?? []; for (let i in issueFields) { issueFields[i].value = data; issueFields[i].columns[11] = { title: "操作", dataIndex: "option_dataindex", key: "option_dataindex", valueType: "option", search: false, editable: false, render: (text, row, index, action) => { return [ index != 0 && ( { asce(index, issueFields[i].value); }} > 升序 ), index != data.length - 1 && ( { desc(index, issueFields[i].value); }} > 降序 ), ]; }, }; } dispatch({ type: "issue", fieldsc: issueFields, curitem: record, issueData: data, }); } }); }), ifsc && getPrem("sysDepartment_deleteById", action, "撤回", null, { title: "确认撤回该生产订单?", onConfirm: () => { doFetch({ url: "/ngic-production/umProductionOrder/recall", params: { id: record.id }, }).then((res) => { if (res.code == "0000") { reload(); } }); }, }), ifs && getPrem("sysDepartment_deleteById", action, "删除", null, { title: "确认删除该生产订单?", onConfirm: () => { doFetch({ url: "/ngic-production/umProductionOrder/deleteById", params: { id: record.id }, }).then((res) => { if (res.code == "0000") { reload(); } }); }, }), ]; } function extraActions(text, record, index, action) { return [ currentStep == 2 && record.parentKey == "0" && getPrem("sysDepartment_deleteById", action, "升序", () => { run({ url: "/ngic-production/omOrderProcessLineStepTmp/upDown", params: { id: record.key, stepSort: 1 }, }); }), currentStep == 2 && record.parentKey == "0" && getPrem("sysDepartment_deleteById", action, "降序", () => { run({ url: "/ngic-production/omOrderProcessLineStepTmp/upDown", params: { id: record.key, stepSort: 2 }, }); }), ((currentStep == 1 && record.materieType != 1) || record.parentKey == "0") && getPrem("sysDepartment_save", action, "新增", () => { if (currentStep == 1) { addBomFn({ id: record.key }, record); } else if (currentStep == 2) { addProcessFn(record, false, "新增工序"); } }), currentStep == 1 && record.parentKey != "0" && getPrem("sysDepartment_save", action, "修改", () => { if (currentStep == 1) { let fieldsc = { materieCode: { value: null, type: "input", title: "物料编号", name: ["materieCode"], required: false, disabled: true, }, materieName: { value: null, type: "input", title: "物料名称", name: ["materieName"], required: false, disabled: true, }, materieTypeName: { value: null, type: "input", title: "物料类别", name: ["materieTypeName"], required: false, disabled: true, }, numberUnits: { value: null, type: "inputnumber", title: "台份量", name: ["numberUnits"], required: true, }, workingProduceId: { value: null, type: "select", title: "产出工序", name: ["workingProduceId"], required: true, }, workingFeedingId: { value: null, type: "select", title: "投料工序", name: ["workingFeedingId"], required: true, }, }; let all = async () => { let mark = await doFetch({ url: "/ngic-base-business/bmSpecialSet/queryByMark", params: { mark: "materiel_bom" }, }), tem = await doFetch({ url: "/ngic-production/omOrderMaterieBomTmp/queryUpdateMaterie", params: { id: record.key }, }); return { markKey: mark?.data?.value, temData: tem?.data?.data, }; }; all().then((res) => { const { markKey, temData } = res; for (let i in fieldsc) { fieldsc[i].value = record[i]; if (i == "workingProduceId") { fieldsc[i].options = temData?.workingProduceList ?? []; if (record.materieType == 1 || markKey == 2) { fieldsc["workingProduceId"].hides = true; } else { fieldsc["workingProduceId"].hides = false; } } if (i == "workingFeedingId") { fieldsc[i].options = temData?.workingFeedingList ?? []; if (markKey == 2) { fieldsc["workingFeedingId"].hides = true; } else { fieldsc["workingFeedingId"].hides = false; } } if (i == "materieCode") { fieldsc[i].value = record.title; } } dispatch({ type: "editBom", fieldsc, curitem: record }); }); } }), ((currentStep == 1 && record.parentKey != "0") || currentStep == 2) && getPrem("sysDepartment_deleteById", action, "删除", null, { title: currentStep == 1 ? "确认删除该物料BOM?" : record.parentKey == 0 ? "确认删除该步骤?" : "确认删除该工序?", onConfirm: () => { run({ url: currentStep == 1 ? "/ngic-production/omOrderMaterieBomTmp/deleteById" : record.parentKey == 0 ? "/ngic-production/omOrderProcessLineStepTmp/deleteById" : "/ngic-production/omOrderProcessLineStepProcedureTmp/deleteById", params: { id: record.key }, }); }, }), ]; } const next = () => { let newStep = currentStep + 1; if (currentStep == 0) { let editId = editType == "mastEdit" ? { productionOrderId: orderId } : { id: orderId }; formRef.validateFields().then((values) => { let newValues = JSON.parse(JSON.stringify(values)); newValues.planEndDate = moment(newValues.planEndDate).format( "YYYY-MM-DD" ); newValues.planStartDate = moment(newValues.planStartDate).format( "YYYY-MM-DD" ); dispatch({ type: "changeLoading", btnLoading: true }); doFetch({ url: "/ngic-production/omProductionOrderTmp/save", params: { ...newValues, ...editId }, }).then((res) => { if (res.code == "0000") { let dataId = res?.data?.data ?? ""; dispatch({ type: "changeOrderId", orderId: dataId }); dispatch({ type: "changeValues", fieldsValue: { ...newValues } }); dispatch({ type: "setCurrent", currentStep: newStep }); dispatch({ type: "changeLoading", btnLoading: false }); getExpend(dataId); } }); }); } if (currentStep == 1) { doFetch({ url: "/ngic-production/omOrderMaterieBomTmp/check", params: { productionOrderId: orderId }, }).then((res) => { if (res.code == "0000") { doFetch({ url: "/ngic-production/omOrderProcessLineTmp/queryListByOrderId", params: { productionOrderId: orderId }, }).then((res) => { if (res.code == "0000") { let data = res?.data?.dataList ?? []; dispatch({ type: "changeTableTep", tabeTep: [...data] }); dispatch({ type: "changeTabKey", tabKey: data[0]?.id ?? "" }); } }); dispatch({ type: "setCurrent", currentStep: newStep }); } }); } }; const prev = () => { let newStep = currentStep - 1; if (newStep == 0) { for (let i in addFields) { addFields[i].value = fieldsValue[i]; } dispatch({ type: "changeFields", fields: addFields }); dispatch({ type: "changeEditType", editType: "prevEdit" }); } if (newStep == 1) { getExpend(orderId); } dispatch({ type: "setCurrent", currentStep: newStep }); }; function addBomFn(idparams, record) { let all = async () => { let mark = await doFetch({ url: "/ngic-base-business/bmSpecialSet/queryByMark", params: { mark: "materiel_bom" }, }); return { markKey: mark?.data?.value, }; }; all().then((res) => { const { markKey } = res; let fieldsc = { list: { value: [], title: "物料", type: "checktable", col: { span: 24 }, name: ["list"], required: false, editable: true, columns: [ { title: "物料编号", dataIndex: "materieCode", key: "materieCode", }, { title: "物料名称", dataIndex: "materieName", key: "materieName", }, { title: "物料类别", dataIndex: "materieTypeName", key: "materieTypeName", search: false, }, { title: "台份量", dataIndex: "numberUnits", key: "numberUnits", width: 110, search: false, selectedRender: "InputNumber", }, { title: "产出工序", dataIndex: "workingProduceId", key: "workingProduceId", width: 150, search: false, selectedRender: markKey == 2 ? "" : "Select", optionsFields: "workingProduceList", renderNull: [ { name: "materieType", equalvalue: [1], }, ], }, { title: "投料工序", dataIndex: "workingFeedingId", key: "workingFeedingId", width: 150, search: false, selectedRender: markKey == 2 ? "" : "Select", optionsFields: "workingFeedingList", }, ], path: "/ngic-production/omOrderMaterieBomTmp/queryAddMateriePage", extraparams: idparams, rowKey: "id", rowName: "materieName", }, }; dispatch({ type: "addBom", fieldsc, curitem: record, markKey }); }); } function addProcessFn(record, isTopRightAdd, title) { let fieldsc = { procedureList: { value: [], title: "工序", type: "checktable", col: { span: 24 }, name: ["procedureList"], required: false, editable: false, columns: [ { title: "工序编号", dataIndex: "workingProcedureCode", key: "workingProcedureCode", }, { title: "工序名称", dataIndex: "workingProcedureName", key: "workingProcedureName", }, { title: "工序类型", dataIndex: "workingProcedureTypeName", key: "workingProcedureTypeName", search: false, }, { title: "采集方式", dataIndex: "collectionModeName", key: "collectionModeName", search: false, }, ], path: "/ngic-production/omOrderProcessLineStepProcedureTmp/queryAddProcedurePage", extraparams: { id: tabKey }, rowKey: "id", rowName: "workingProcedureName", }, }; dispatch({ type: "addProcess", fieldsc, curitem: record, isTopRightAdd: isTopRightAdd, title, }); } let saveData = (values, fn) => { let newfields = JSON.parse(JSON.stringify(values)); //新增&修改 let params, url; if (iftype.val != "issue") { if (iftype.val == "addBom") { newfields.list = newfields.list.map((it) => { return { materieId: it.id, numberUnits: it.numberUnits, workingProduceId: it.workingProduceId, workingFeedingId: it.workingFeedingId, }; }); params = { ...newfields, productionOrderId: orderId, parentId: curitem.key, }; url = "/ngic-production/omOrderMaterieBomTmp/save"; } else if (iftype.val == "editBom") { params = { numberUnits: newfields.numberUnits, workingProduceId: newfields.workingProduceId, workingFeedingId: newfields.workingFeedingId, id: curitem.key, }; url = "/ngic-production/omOrderMaterieBomTmp/save"; } else if (iftype.val == "addProcess") { newfields.procedureList = newfields.procedureList.map((it) => { return { workingProcedureId: it, }; }); url = "/ngic-production/omOrderProcessLineStepTmp/add"; params = { ...newfields, productionOrderId: orderId, processLineId: tabKey, id: iftype.isTopRightAdd ? "" : curitem.key, }; } run({ url, params }); } else { url = "/ngic-production/omShopPlanTmp/submitRelease"; let newList = newfields.list.map((it) => { return { id: it.id, planStartDate: it.planStartDate, planEndDate: it.planEndDate, }; }); doFetch({ url, params: newList }).then((res) => { if (res.code == "0000") { reload(); dispatch({ type: "closeBom" }); } }); } }; const asce = (currentIndex, data) => { let firstData = data.slice(0, currentIndex - 1) ?? [], lastData = data.slice(currentIndex + 1, data.length) ?? [], currentData = data.slice(currentIndex, currentIndex + 1) ?? [], prveData = data.slice(currentIndex - 1, currentIndex) ?? [], newData = [...firstData, ...currentData, ...prveData, ...lastData]; for (let i in issueFields) { issueFields[i].value = [...newData]; } issueFormRef.setFieldsValue({ list: newData }); dispatch({ type: "changeFieldsc", fieldsc: issueFields }); }, desc = (currentIndex, data) => { let firstData = data.slice(0, currentIndex) ?? [], lastData = data.slice(currentIndex + 2, data.length) ?? [], currentData = data.slice(currentIndex, currentIndex + 1) ?? [], nextData = data.slice(currentIndex + 1, currentIndex + 2) ?? [], newData = [...firstData, ...nextData, ...currentData, ...lastData]; for (let i in issueFields) { issueFields[i].value = newData; } issueFormRef.setFieldsValue({ list: newData }); dispatch({ type: "changeFieldsc", fieldsc: issueFields }); }; function getExpend(dataId) { doFetch({ url: "/ngic-production/omOrderMaterieBomTmp/queryTreeList", params: { productionOrderId: dataId }, }).then((res) => { if (res.code == "0000") { let dataTree = res?.data?.dataList ?? []; dispatch({ type: "changeExpand", expandedRowKeys: dataTree?.length > 0 ? dataTree[0].parentKey == "0" ? [dataTree[0].key] : [] : [], }); } }); } return (
it.valueType != "option") } path={ activeTabKey == "1" ? "/ngic-production/umProductionOrder/queryNotFinishList" : "/ngic-production/umProductionOrder/queryFinishList" } actionRef={actionRef} onRef={(node) => (ChildRef = node)} tabList={tabList} activeTabKey={activeTabKey} onTabChange={(key) => { dispatch({ type: "changeactiveTabKey", activeTabKey: key }); }} > dispatch({ type: "close" })} footer={false} destroyOnClose={true} width={"100%"} style={{ position: "absolute" }} getContainer={false} maskClosable={false} > <>
{steps.map((item) => ( ))}
{steps[currentStep].content}
{currentStep > 0 && ( )} {currentStep < steps.length - 1 && ( )} {currentStep === steps.length - 1 && ( )}
dispatch({ type: "closeBom" })} footer={false} destroyOnClose={true} width={iftype.val == "issue" ? "100%" : 900} style={{ position: "absolute" }} getContainer={false} maskClosable={false} > { saveData(values, fn); }} onChange={(changedValues, allValues) => {}} submitting={loading || !visible} formRef={issueFormRef} >
dispatch({ type: "close" })} footer={false} destroyOnClose={true} width={"100%"} {...detail} >
); }; export default Prodorder;