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: "materieOutstoreNo", }, { title: "出库类型", key: "outstoreTypeName", }, { title: "出库仓库", key: "storeName", }, { title: "相关单号", key: "businessNo", }, { title: "创建人", key: "createUserName", }, { title: "创建时间", key: "createTime", }, { title: "状态", key: "statusName", }, { title: "完成时间", key: "finishTime", }, { title: "备注", key: "remark", noshow: "100%", }, { title: "工单条形码", key: "qrCodeUrl", type: "img", noshow: true, width: 100, }, ], }, { cardTitle: "物料信息列表", extraContent: dom, 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, }, ], pagination: "false", rowKey: "id", expandable: { expandedRowRender: record => { return { rules: [{ required: true, message: '此项为必填项' }], }; }, }, { title: "批次号/SN号", dataIndex: "materieControlNo", key: "materieControlNo", search: false, }, { title: "供应商编号-名称", dataIndex: "supplierNo", key: "supplierNo", search: false, render: (dom, row) => { return (row?.supplierNo ?? '') + " - " + (row?.supplierName ?? '') } }, { title: "下架数量", dataIndex: "outstroeNum", key: "outstroeNum", search: false, } ]} dataSource={record.downloadList} pagination={false} />, }, rowSelection: { onChange: (selectedRowKeys, selectedRows) => { setselected(selectedRows) }, } }, ], }, { cardTitle: "强制关单信息", itemData: [ { title: "关单人", key: "closeUserName", }, { title: "关单时间", key: "closeTime", } ], }, { cardTitle: "下架明细", noPrint: true, itemData: [ { key: "materialDownloadList", 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, }, ], expandable: { defaultExpandAllRows: true, expandedRowRender: record =>
{ return { rules: [{ required: true, message: '此项为必填项' }], }; }, }, { title: "批次号/SN号", dataIndex: "materieControlNo", key: "materieControlNo", search: false, }, { title: "供应商编号 - 名称", dataIndex: "supplierNo", key: "supplierNo", search: false, render: (dom, row) => { return (row.supplierNo ?? '') + " - " + (row.supplierName ?? '') } }, { title: "下架数量", dataIndex: "outstroeNum", key: "outstroeNum", search: false, } , { title: "备注", dataIndex: "remark", key: "remark", search: false, } , { title: "操作人", dataIndex: "downloadUserName", key: "downloadUserName", search: false, } , { title: "操作时间", dataIndex: "downloadTime", key: "downloadTime", search: false, } ]} dataSource={record.downloadList} 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 };