import { factorySelect, shopSelectByFactory } from "@/services/system"; import { doFetch } from "@/utils/doFetch"; import { Button, Table } from "antd"; import EditTable from "@/components/EditTable"; import { useEffect, useState } from "react"; import { useModel } from "umi"; const EditUpload = ({ record, fid, storeId }) => { const [value, setvalue] = useState({ [record.id]: record.downloadList, }); const { initialState, setInitialState } = useModel("@@initialState"); useEffect(() => { if (!value) { return; } let newlist = Object.keys(value)?.map?.((it) => { let id = it; let newArr = value[id]?.filter((it) => typeof it.id == "number") ?? []; return { id, downloadList: newArr.map((its) => { return { storePositionId: its?.storePositionId, outstroeNum: its?.outstroeNum, stockNum: its?.stockNum, remark: its?.remark, materieControlNo: its?.materieControlNo, }; }), }; }) ?? []; setInitialState((s) => { return { ...s, submits: { id: fid, materialList: s.submits && s?.submits?.materialList ? s?.submits?.materialList ?.filter( (it) => newlist.map((item) => item.id).indexOf(it.id) == -1 ) ?.concat(newlist) ?.filter((it) => it.downloadList?.length > 0) : [], }, }; }); }, [value]); return ( doFetch({ url: "/ngic-workmanship/wmsMaterieStore/queryStoreOne", params, }), params: { storePositionId: "linked", materieControlNo: "linked" }, effectresult: { supplierNo: "supplierNo", supplierName: "supplierName", stockNum: "stroeNum", materieControlNo: "materieControlNo", }, }, }} style={{ marginLeft: 48 }} columns={[ { title: "库位名称", dataIndex: "storePositionName", key: "storePositionId", search: false, valueType: "select", request: async (params) => { let res = await doFetch({ url: "/ngic-auth/sysStorePosition/queryByStoreId/selection", params: { storeId: params.storeId }, }); return res?.data?.dataList; }, editable: (text, record, index) => { return !record.materieOutstoreDetailId; }, params: { storeId: storeId }, formItemProps: () => { return { rules: [{ required: true, message: "此项为必填项" }], }; }, }, { title: "批次号/SN号", dataIndex: "materieControlNo", key: "materieControlNo", search: false, valueType: "select", request: async (params) => { let res = await doFetch({ url: "/ngic-workmanship/wmsMaterieStore/queryPCList", params: { materieId: params.materieId, storePositionId: params.storePositionId, }, }); return res?.data?.dataList; }, editable: (text, record, index) => { return !record.materieOutstoreDetailId; }, params: (row) => { return { materieId: record.materieId, storePositionId: row.storePositionId, }; }, width: 200, }, { title: "下架数量", dataIndex: "outstroeNum", key: "outstroeNum", search: false, editable: (text, record, index) => { return !record.materieOutstoreDetailId; }, valueType: "digit", }, { title: "供应商编号", dataIndex: "supplierNo", key: "supplierNo", search: false, readonly: true, }, { title: "供应商名称", dataIndex: "supplierName", key: "supplierName", search: false, readonly: true, }, { title: "库存数量", dataIndex: "stockNum", key: "stockNum", search: false, readonly: true, }, { title: "备注", dataIndex: "remark", key: "remark", search: false, editable: (text, record, index) => { return !record.materieOutstoreDetailId; }, }, { title: "操作", valueType: "option", width: 70, render: (text, record, _, action) => [ {}}> 删除 , ], }, ]} value={value[record.id]} onChange={(vals) => { setvalue((s) => ({ ...s, [record.id]: vals, })); }} pagination={false} /> ); }; const one = { materieOutstoreNo: { value: null, type: "input", title: "出库单号", name: ["materieOutstoreNo"], required: false, placeholder: "不填写系统自动生成", }, storeId: { value: null, type: "select", title: "出库仓库", name: ["storeId"], required: true, options: { database: () => doFetch({ url: "/ngic-auth/sysStore/selectionBox", params: { factoryIdList: [] }, }), params: {}, }, linked: true, }, businessNo: { value: null, type: "input", title: "相关单号", name: ["businessNo"], required: false, }, remark: { value: null, type: "textarea", title: "备注", name: ["remark"], required: false, col: { span: 24, }, }, materialList: { value: [], title: "物料信息", type: "table", col: { span: 24 }, name: ["materialList"], required: true, linkconfig: { urlchangeval: { //根据url接口 改变某个value database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params, }), params: { materieId: "linked" }, effectresult: { productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值 productionUnitName: "productionUnitName", usableNum: "usableNum", outstroeNum: "outstroeNum", }, }, }, columns: [ { title: ( 物料编码-名称 * ), dataIndex: "materieId", key: "materieId", valueType: "select", request: async () => { let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {}, }); return res?.data?.dataList; }, fieldProps: { allowClear: true, showSearch: true, }, formItemProps: () => { return { rules: [{ required: true, message: "此项为必填项" }], }; }, editable: true, }, { title: ( 出库数量 * ), dataIndex: "outstroeNum", key: "outstroeNum", formItemProps: () => { return { rules: [{ required: true, message: "此项为必填项" }], }; }, valueType: "digit", editable: true, }, { title: "可用库存", dataIndex: "usableNum", key: "usableNum", readonly: "usableNum", }, { title: "库存单位", dataIndex: "productionUnitName", key: "productionUnitName", readonly: "productionUnitName", }, { title: "操作", valueType: "option", width: 70, render: (text, record, _, action) => [ {}}> 删除 , ], }, ], rowKey: "id", }, }, two = { materieOutstoreNo: { value: null, type: "input", title: "出库单号", name: ["materieOutstoreNo"], required: false, placeholder: "不填写系统自动生成", }, storeId: { value: null, type: "select", title: "出库仓库", name: ["storeId"], required: true, options: { database: () => doFetch({ url: "/ngic-auth/sysStore/selectionBox", params: { factoryIdList: [] }, }), params: {}, }, }, businessNo: { value: null, type: "input", title: "相关单号", name: ["businessNo"], required: false, }, remark: { value: null, type: "textarea", title: "备注", name: ["remark"], required: false, col: { span: 24, }, }, materialList: { value: [], title: "物料信息", type: "table", col: { span: 24 }, name: ["materialList"], required: true, linkconfig: { urlchangeval: { //根据url接口 改变某个value database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params, }), params: { materieId: "linked" }, effectresult: { productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值 productionUnitName: "productionUnitName", usableNum: "usableNum", outstroeNum: "outstroeNum", }, }, }, columns: [ { title: ( 物料编码-名称 * ), dataIndex: "materieId", key: "materieId", valueType: "select", request: async () => { let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {}, }); return res?.data?.dataList; }, fieldProps: { allowClear: true, showSearch: true, }, formItemProps: () => { return { rules: [{ required: true, message: "此项为必填项" }], }; }, }, { title: ( 出库数量 * ), dataIndex: "outstroeNum", key: "outstroeNum", formItemProps: () => { return { rules: [{ required: true, message: "此项为必填项" }], }; }, valueType: "digit", }, { title: "可用库存", dataIndex: "usableNum", key: "usableNum", readonly: "usableNum", }, { title: "库存单位", dataIndex: "productionUnitName", key: "productionUnitName", readonly: "productionUnitName", }, { title: "操作", valueType: "option", width: 70, render: (text, record, _, action) => [ {}}> 删除 , ], }, ], rowKey: "id", }, }, three = { materieOutstoreNo: { value: null, type: "input", title: "出库单号", name: ["materieOutstoreNo"], required: false, placeholder: "不填写系统自动生成", }, storeId: { value: null, type: "select", title: "出库仓库", name: ["storeId"], required: true, options: { database: () => doFetch({ url: "/ngic-auth/sysStore/selectionBox", params: { factoryIdList: [] }, }), params: {}, }, }, businessNo: { value: null, type: "input", title: "相关单号", name: ["businessNo"], required: false, }, remark: { value: null, type: "textarea", title: "备注", name: ["remark"], required: false, col: { span: 24, }, }, materialList: { value: [], title: "物料信息", type: "table", col: { span: 24 }, name: ["materialList"], required: true, linkconfig: { urlchangeval: { //根据url接口 改变某个value database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params, }), params: { materieId: "linked" }, effectresult: { productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值 productionUnitName: "productionUnitName", usableNum: "usableNum", outstroeNum: "outstroeNum", }, }, }, columns: [ { title: ( 物料编码-名称 * ), dataIndex: "materieId", key: "materieId", valueType: "select", request: async () => { let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {}, }); return res?.data?.dataList; }, fieldProps: { allowClear: true, showSearch: true, }, formItemProps: () => { return { rules: [{ required: true, message: "此项为必填项" }], }; }, }, { title: ( 出库数量 * ), dataIndex: "outstroeNum", key: "outstroeNum", formItemProps: () => { return { rules: [{ required: true, message: "此项为必填项" }], }; }, valueType: "digit", }, { title: "可用库存", dataIndex: "usableNum", key: "usableNum", readonly: "usableNum", }, { title: "库存单位", dataIndex: "productionUnitName", key: "productionUnitName", readonly: "productionUnitName", }, { title: "操作", valueType: "option", width: 70, render: (text, record, _, action) => [ {}}> 删除 , ], }, ], rowKey: "id", }, }, four = { materieOutstoreNo: { value: null, type: "input", title: "出库单号", name: ["materieOutstoreNo"], required: false, placeholder: "不填写系统自动生成", }, storeId: { value: null, type: "select", title: "出库仓库", name: ["storeId"], required: true, options: { database: () => doFetch({ url: "/ngic-auth/sysStore/selectionBox", params: { factoryIdList: [] }, }), params: {}, }, }, businessNo: { value: null, type: "input", title: "相关单号", name: ["businessNo"], required: false, }, remark: { value: null, type: "textarea", title: "备注", name: ["remark"], required: false, col: { span: 24, }, }, materialList: { value: [], title: "物料信息", type: "table", col: { span: 24 }, name: ["materialList"], required: true, linkconfig: { urlchangeval: { //根据url接口 改变某个value database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params, }), params: { materieId: "linked" }, effectresult: { productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值 productionUnitName: "productionUnitName", usableNum: "usableNum", outstroeNum: "outstroeNum", }, }, }, columns: [ { title: ( 物料编码-名称 * ), dataIndex: "materieId", key: "materieId", valueType: "select", request: async () => { let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {}, }); return res?.data?.dataList; }, fieldProps: { allowClear: true, showSearch: true, }, formItemProps: () => { return { rules: [{ required: true, message: "此项为必填项" }], }; }, }, { title: ( 出库数量 * ), dataIndex: "outstroeNum", key: "outstroeNum", formItemProps: () => { return { rules: [{ required: true, message: "此项为必填项" }], }; }, valueType: "digit", }, { title: "可用库存", dataIndex: "usableNum", key: "usableNum", readonly: "usableNum", }, { title: "库存单位", dataIndex: "productionUnitName", key: "productionUnitName", readonly: "productionUnitName", }, { title: "操作", valueType: "option", width: 70, render: (text, record, _, action) => [ {}}> 删除 , ], }, ], rowKey: "id", }, }, detail = (setselected, dom) => ({ totalCard: [ //物料详情 { cardTitle: "基本信息", itemData: [ { title: "入库单号", key: "materieInstoreNo", }, { title: "入库类型", key: "instoreTypeName", }, { title: "入库仓库", key: "storeName", }, { title: "相关单号", key: "businessNo", }, { title: "创建人", key: "createUserName", }, { title: "创建时间", key: "createTime", }, { title: "状态", key: "statusName", }, { title: "完成时间", key: "finishTime", }, { title: "备注", key: "remark", noshow: "100%", }, { title: "工单条形码", noshow: true, key: "qrCodeUrl", type: "img", width: 100, }, ], }, { cardTitle: "物料信息列表", extraContent: "", itemData: [ { key: "materialList", type: "table", col: { span: 24 }, columns: [ { title: "物料编码 - 名称", dataIndex: "materieName", key: "materieName", search: false, render: (dom, row) => { return ( (row.materieCode ?? "") + " - " + (row.materieName ?? "") ); }, }, { title: "供应商编号 - 名称", dataIndex: "supplierNo", key: "supplierNo", search: false, render: (dom, row) => { return ( (row.supplierNo ?? "") + " - " + (row.supplierName ?? "") ); }, }, { title: "批次号/SN号", dataIndex: "materieControlNo", key: "materieControlNo", search: false, }, { title: "入库数量", dataIndex: "instroeNum", key: "instroeNum", search: false, }, { title: "未上架数量", dataIndex: "remainderNums", key: "remainderNums", search: false, }, { title: "库存单位", dataIndex: "productionUnitName", key: "productionUnitName", search: false, }, ], expandable: { defaultExpandAllRows: true, expandedRowRender: (record) => ( { return { rules: [{ required: true, message: "此项为必填项" }], }; }, }, { title: "上架数量", dataIndex: "instroeNum", key: "instroeNum", search: false, formItemProps: () => { return { rules: [{ required: true, message: "此项为必填项" }], }; }, }, ]} dataSource={record.uploadList} pagination={false} /> ), }, pagination: "false", rowKey: "id", rowSelection: { onChange: (selectedRowKeys, selectedRows) => { setselected(selectedRows); }, }, }, ], }, { cardTitle: "强制关单信息", itemData: [ { title: "关单人", key: "closeUserName", }, { title: "关单时间", key: "closeTime", }, ], }, { cardTitle: "上架明细", noPrint: true, itemData: [ { key: "materialUploadList", type: "table", col: { span: 24 }, columns: [ { title: "物料编码 - 名称", dataIndex: "materieName", key: "materieName", search: false, render: (dom, row) => { return ( (row.materieCode ?? "") + " - " + (row.materieName ?? "") ); }, }, { title: "供应商编号 - 名称", dataIndex: "supplierNo", key: "supplierNo", search: false, render: (dom, row) => { return ( (row.supplierNo ?? "") + " - " + (row.supplierName ?? "") ); }, }, { title: "批次号/SN号", dataIndex: "materieControlNo", key: "materieControlNo", search: false, }, { title: "入库数量", dataIndex: "instroeNum", key: "instroeNum", search: false, }, { title: "库存单位", dataIndex: "productionUnitName", key: "productionUnitName", search: false, }, ], expandable: { defaultExpandAllRows: true, expandedRowRender: (record) => (
{ return { rules: [{ required: true, message: "此项为必填项" }], }; }, }, { title: "上架数量", dataIndex: "instroeNum", key: "instroeNum", search: false, formItemProps: () => { return { rules: [{ required: true, message: "此项为必填项" }], }; }, }, { title: "备注", dataIndex: "remark", key: "remark", search: false, }, { title: "操作人", dataIndex: "uploadUserName", key: "uploadUserName", search: false, }, { title: "操作时间", dataIndex: "uploadTime", key: "uploadTime", search: false, }, ]} dataSource={record.uploadList} pagination={false} /> ), }, pagination: "false", }, ], }, ], }), dooutside = (fid, storeId) => ({ totalCard: [ //物料详情 { cardTitle: "基本信息", itemData: [ { title: "出库单号", key: "materieOutstoreNo", }, { title: "出库类型", key: "outstoreTypeName", }, { title: "出库仓库", key: "storeName", }, { title: "相关单号", key: "businessNo", }, { title: "备注", key: "remark", }, { title: "创建人", key: "createUserName", }, { title: "创建时间", key: "createTime", }, { title: "状态", key: "statusName", }, ], }, { cardTitle: "物料信息列表", extra: true, extrapath: "/ngic-workmanship/wmsMaterieOutstore/download", extrakey: "submits", //redux key itemData: [ { key: "materialList", type: "table", col: { span: 24 }, columns: [ { title: "物料编码 - 名称", dataIndex: "materieName", key: "materieName", search: false, render: (dom, row) => { return ( (row.materieCode ?? "") + " - " + (row.materieName ?? "") ); }, }, { title: "出库数量", dataIndex: "outstroeNum", key: "outstroeNum", search: false, }, { title: "库存单位", dataIndex: "productionUnitName", key: "productionUnitName", search: false, }, { title: "未下架数量", dataIndex: "remainderNums", key: "remainderNums", search: false, }, ], expandable: { expandedRowRender: (record) => ( ), }, }, ], }, ], }); export default { one, two, three, four, detail, dooutside, };