import { factorySelect, shopSelectByFactory } from "@/services/system"; import { doFetch } from "@/utils/doFetch"; import { Button, Table } from "antd"; import { EditableProTable } from "@ant-design/pro-table"; import { useEffect, useState } from 'react' import { useModel } from 'umi' const EditUpload = ({ record, fid ,storeId}) => { const [value, setvalue] = useState({ [record.id]: record.uploadList }); const { initialState, setInitialState } = useModel("@@initialState"); console.log('===================================='); console.log(storeId); console.log('===================================='); useEffect(() => { if (!value) { return } setInitialState(s => ({ ...s, submit: { id: fid, materialList: Object.keys(value)?.map?.(it => { let id = it; return { id, uploadList: value[id]?.map(its => { return { storePositionId: its?.storePositionId, instroeNum: its?.instroeNum, remark: its?.remark } }) } }) } })) }, [value]) return { let res = await doFetch({ url: "/ngic-auth/sysStorePosition/queryByStoreId/selection", params: { storeId: storeId } }); return res?.data?.dataList }, editable: (text, record, index) => { return !record.materieOutstoreDetailId } }, { title: "上架数量", dataIndex: "instroeNum", key: "instroeNum", search: false, editable: (text, record, index) => { return !record.materieOutstoreDetailId } }, { 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]} recordCreatorProps={{ newRecordType: "dataSource", record: () => ({ id: Date.now(), }), }} editable={{ type: "multiple", actionRender: (row, config, defaultDoms) => { return [defaultDoms.delete]; }, onValuesChange: async (records, recordList) => { setvalue(s => ({ ...s, [record.id]: recordList })); }, }} pagination={false} /> } const one = { "materieInstoreNo": { "value": null, "type": "input", "title": "入库单号", "name": [ "materieInstoreNo" ], "required": false }, "storeId": { "value": null, "type": "select", "title": "仓库", "name": [ "storeId" ], "required": true, "options": { database: () => doFetch({ url: "/ngic-auth/sysStore/selectionBox", params: { factoryIdList: [] } }), params: {} }, }, "supplierId": { "value": null, "type": "select", "title": "供应商", "name": [ "supplierId" ], "required": true, "options": { database: () => doFetch({ url: "/ngic-auth/sysSupplier/query/selection", params: {} }), 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/pmMaterie/queryUnitByMaterieId", params }), params: { "materieId": "linked" }, effectresult: { "productionUnit": "productionUnit",//key 为列表更新值 value为response 返回值 "productionUnitName": "productionUnitName" } } }, columns: [ { "title": 物料编码-名称 *, "dataIndex": "materieId", "key": "materieId", "valueType": "select", "width": 300, "request": async () => { let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} }) return res?.data?.dataList }, "fieldProps": { allowClear: false, showSearch: true }, "formItemProps": () => { return { rules: [{ required: true, message: '此项为必填项' }], }; }, }, { "title": "批次号/SN号", "dataIndex": "materieControlNo", "key": "materieControlNo" }, { "title": 入库数量 *, "dataIndex": "instroeNum", "key": "instroeNum", "formItemProps": () => { return { rules: [{ required: true, message: '此项为必填项' }], }; }, }, { "title": "单位", "dataIndex": "productionUnitName", "key": "productionUnitName", "readonly": 'productionUnitName', "width": 60 }, { title: "操作", valueType: "option", width: 70, render: (text, record, _, action) => [ { }}> 删除 , ], }, ], rowKey: "id", } }, two = { "materieInstoreNo": { "value": null, "type": "input", "title": "入库单号", "name": [ "materieInstoreNo" ], "required": false }, "storeId": { "value": null, "type": "select", "title": "仓库", "name": [ "storeId" ], "required": true, "options": { database: () => doFetch({ url: "/ngic-auth/sysStore/selectionBox", params: { factoryIdList: [] } }), params: {} }, }, "supplierId": { "value": "2022070124566476657", "type": "select", "title": "供应商", "name": [ "supplierId" ], "required": true, "disabled": true, "options": [ { value: "2022070124566476657", label: "南高(默认)" } ], }, "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/pmMaterie/queryUnitByMaterieId", params }), params: { "materieId": "linked" }, effectresult: { "productionUnit": "productionUnit",//key 为列表更新值 value为response 返回值 "productionUnitName": "productionUnitName" } } }, columns: [ { "title": 物料编码-名称 *, "dataIndex": "materieId", "key": "materieId", "valueType": "select", "width": 300, "request": async () => { let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} }) return res?.data?.dataList }, "fieldProps": { allowClear: false, showSearch: true }, "formItemProps": () => { return { rules: [{ required: true, message: '此项为必填项' }], }; }, }, { "title": "批次号/SN号", "dataIndex": "materieControlNo", "key": "materieControlNo" }, { "title": 入库数量 *, "dataIndex": "instroeNum", "key": "instroeNum", "formItemProps": () => { return { rules: [{ required: true, message: '此项为必填项' }], }; }, }, { "title": "单位", "dataIndex": "productionUnitName", "key": "productionUnitName", "readonly": 'productionUnitName', "width": 60 }, { title: "操作", valueType: "option", width: 70, render: (text, record, _, action) => [ { }}> 删除 , ], }, ], rowKey: "id", } }, three = { "materieInstoreNo": { "value": null, "type": "input", "title": "入库单号", "name": [ "materieInstoreNo" ], "required": false }, "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/pmMaterie/queryUnitByMaterieId", params }), params: { "materieId": "linked" }, effectresult: { "productionUnit": "productionUnit",//key 为列表更新值 value为response 返回值 "productionUnitName": "productionUnitName" } } }, columns: [ { "title": 物料编码-名称 *, "dataIndex": "materieId", "key": "materieId", "valueType": "select", "width": 300, "request": async () => { let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} }) return res?.data?.dataList }, "fieldProps": { allowClear: false, showSearch: true }, "formItemProps": () => { return { rules: [{ required: true, message: '此项为必填项' }], }; }, }, { "title": 供应商编号-名称 *, "dataIndex": "supplierId", "key": "supplierId", "valueType": "select", "width": 300, "request": async () => { let res = await doFetch({ url: "/ngic-auth/sysSupplier/query/selection/withNo", params: {} }) return res?.data?.dataList }, "fieldProps": { allowClear: false, showSearch: true }, "formItemProps": () => { return { rules: [{ required: true, message: '此项为必填项' }], }; }, }, { "title": "批次号/SN号", "dataIndex": "materieControlNo", "key": "materieControlNo" }, { "title": 入库数量 *, "dataIndex": "instroeNum", "key": "instroeNum", "formItemProps": () => { return { rules: [{ required: true, message: '此项为必填项' }], }; }, }, { "title": "单位", "dataIndex": "productionUnitName", "key": "productionUnitName", "readonly": 'productionUnitName', "width": 60 }, { title: "操作", valueType: "option", width: 70, render: (text, record, _, action) => [ { }}> 删除 , ], }, ], rowKey: "id", } }, four = { "materieInstoreNo": { "value": null, "type": "input", "title": "入库单号", "name": [ "materieInstoreNo" ], "required": false }, "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/pmMaterie/queryUnitByMaterieId", params }), params: { "materieId": "linked" }, effectresult: { "productionUnit": "productionUnit",//key 为列表更新值 value为response 返回值 "productionUnitName": "productionUnitName" } } }, columns: [ { "title": 物料编码-名称 *, "dataIndex": "materieId", "key": "materieId", "valueType": "select", "width": 300, "request": async () => { let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} }) return res?.data?.dataList }, "fieldProps": { allowClear: false, showSearch: true }, "formItemProps": () => { return { rules: [{ required: true, message: '此项为必填项' }], }; }, }, { "title": 供应商编号-名称 *, "dataIndex": "supplierId", "key": "supplierId", "valueType": "select", "width": 300, "request": async () => { let res = await doFetch({ url: "/ngic-auth/sysSupplier/query/selection/withNo", params: {} }) return res?.data?.dataList }, "fieldProps": { allowClear: false, showSearch: true }, "formItemProps": () => { return { rules: [{ required: true, message: '此项为必填项' }], }; }, }, { "title": "批次号/SN号", "dataIndex": "materieControlNo", "key": "materieControlNo" }, { "title": 入库数量 *, "dataIndex": "instroeNum", "key": "instroeNum", "formItemProps": () => { return { rules: [{ required: true, message: '此项为必填项' }], }; }, }, { "title": "单位", "dataIndex": "productionUnitName", "key": "productionUnitName", "readonly": 'productionUnitName', "width": 60 }, { title: "操作", valueType: "option", width: 70, render: (text, record, _, action) => [ { }}> 删除 , ], }, ], rowKey: "id", } }, detail = { totalCard: [ //物料详情 { cardTitle: "基本信息", itemData: [ { title: "入库单号", key: "materieInstoreNo", }, { title: "入库类型", key: "instoreTypeName", }, { title: "入库仓库", key: "storeName", }, { title: "相关单号", key: "businessNo", }, { title: "备注", key: "remark", }, { title: "创建人", key: "createUserName", }, { title: "创建时间", key: "createTime", }, ], }, { cardTitle: "物料信息列表", 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: "productionUnitName", key: "productionUnitName", search: false, }, ], expandable: { defaultExpandAllRows: true, expandedRowRender: record => , }, pagination: "false" }, ], }, { 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 =>
, }, pagination: "false" }, ], }, ] }, doinsert = (fid,storeId) => ({ totalCard: [ //物料详情 { cardTitle: "基本信息", itemData: [ { title: "入库单号", key: "materieInstoreNo", }, { title: "入库类型", key: "instoreTypeName", }, { title: "入库仓库", key: "storeName", }, { title: "相关单号", key: "businessNo", }, { title: "备注", key: "remark", }, { title: "创建人", key: "createUserName", }, { title: "创建时间", key: "createTime", }, ], }, { cardTitle: "物料信息列表", extra: true, extrapath: "/ngic-workmanship/wmsMaterieInstore/upload", extrakey: "submit",//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: "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: { expandedRowRender: record => , } }, ], }, ] }); export default { one, two, three, four, detail, doinsert };