Commit 932cd13d authored by krysent's avatar krysent

来料入库

parent 73b4032d
......@@ -2,59 +2,73 @@ 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'
import { useEffect, useState } from "react";
import { useModel } from "umi";
const EditUpload = ({ record, fid, storeId }) => {
const [value, setvalue] = useState({
[record.id]: record.downloadList
[record.id]: record.downloadList,
});
const { initialState, setInitialState } = useModel("@@initialState");
useEffect(() => {
if (!value) {
return
return;
}
let newlist = Object.keys(value)?.map?.(it => {
let newlist =
Object.keys(value)?.map?.((it) => {
let id = it;
let newArr = value[id]?.filter(it => typeof (it.id) == "number") ?? [];
let newArr = value[id]?.filter((it) => typeof it.id == "number") ?? [];
return {
id,
downloadList: newArr.map(its => {
downloadList: newArr.map((its) => {
return {
storePositionId: its?.storePositionId,
outstroeNum: its?.outstroeNum,
stockNum: its?.stockNum,
remark: its?.remark,
materieControlNo: its?.materieControlNo
}
})
}
materieControlNo: its?.materieControlNo,
};
}),
};
}) ?? [];
setInitialState(s => {
return ({
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])
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 <EditTable
return (
<EditTable
rowKey="id"
maxLength={1000}
linkconfig={{
urlchangeval: {
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStore/queryStoreOne", params }),
params: { "storePositionId": "linked", materieControlNo: "linked" },
database: (params) =>
doFetch({
url: "/ngic-workmanship/wmsMaterieStore/queryStoreOne",
params,
}),
params: { storePositionId: "linked", materieControlNo: "linked" },
effectresult: {
"supplierNo": "supplierNo",
"supplierName": "supplierName",
"stockNum": "stroeNum",
"materieControlNo": "materieControlNo"
}
}
supplierNo: "supplierNo",
supplierName: "supplierName",
stockNum: "stroeNum",
materieControlNo: "materieControlNo",
},
},
}}
style={{ marginLeft: 48 }}
columns={[
......@@ -65,16 +79,19 @@ const EditUpload = ({ record, fid, storeId }) => {
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
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
return !record.materieOutstoreDetailId;
},
params: { storeId: storeId },
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
......@@ -85,16 +102,25 @@ const EditUpload = ({ record, fid, storeId }) => {
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
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
return !record.materieOutstoreDetailId;
},
params: (row) => {
return { materieId: record.materieId, storePositionId: row.storePositionId }
return {
materieId: record.materieId,
storePositionId: row.storePositionId,
};
},
width: 200
width: 200,
},
{
title: "下架数量",
......@@ -102,30 +128,30 @@ const EditUpload = ({ record, fid, storeId }) => {
key: "outstroeNum",
search: false,
editable: (text, record, index) => {
return !record.materieOutstoreDetailId
return !record.materieOutstoreDetailId;
},
valueType: "digit"
valueType: "digit",
},
{
title: "供应商编号",
dataIndex: "supplierNo",
key: "supplierNo",
search: false,
readonly: true
readonly: true,
},
{
title: "供应商名称",
dataIndex: "supplierName",
key: "supplierName",
search: false,
readonly: true
readonly: true,
},
{
title: "库存数量",
dataIndex: "stockNum",
key: "stockNum",
search: false,
"readonly": true,
readonly: true,
},
{
title: "备注",
......@@ -133,78 +159,75 @@ const EditUpload = ({ record, fid, storeId }) => {
key: "remark",
search: false,
editable: (text, record, index) => {
return !record.materieOutstoreDetailId
}
return !record.materieOutstoreDetailId;
},
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
}
},
]}
value={value[record.id]}
onChange={(vals) => {
setvalue(s => ({
setvalue((s) => ({
...s,
[record.id]: vals
[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
}
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,
},
"materialList": {
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",
......@@ -212,122 +235,134 @@ const one = {
name: ["materialList"],
required: true,
linkconfig: {
urlchangeval: {//根据url接口 改变某个value
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params }),
params: { "materieId": "linked" },
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"
}
}
productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值
productionUnitName: "productionUnitName",
usableNum: "usableNum",
outstroeNum: "outstroeNum",
},
},
},
columns: [
{
"title": <span>物料编码-名称 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "materieId",
"key": "materieId",
"valueType": "select",
"request": async () => {
let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} })
return res?.data?.dataList
title: (
<span>
物料编码-名称 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "materieId",
key: "materieId",
valueType: "select",
request: async () => {
let res = await doFetch({
url: "/ngic-workmanship/pmMaterie/query/selectbox",
params: {},
});
return res?.data?.dataList;
},
"fieldProps": {
fieldProps: {
allowClear: true,
showSearch: true
showSearch: true,
},
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
editable: true
editable: true,
},
{
"title": <span>出库数量 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "outstroeNum",
"key": "outstroeNum",
"formItemProps": () => {
title: (
<span>
出库数量 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "outstroeNum",
key: "outstroeNum",
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
valueType: "digit",
editable: true
editable: true,
},
{
"title": "可用库存",
"dataIndex": "usableNum",
"key": "usableNum",
"readonly": 'usableNum'
title: "可用库存",
dataIndex: "usableNum",
key: "usableNum",
readonly: "usableNum",
},
{
"title": "库存单位",
"dataIndex": "productionUnitName",
"key": "productionUnitName",
"readonly": 'productionUnitName'
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
readonly: "productionUnitName",
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
},
],
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
}
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": {
materialList: {
value: [],
title: "物料信息",
type: "table",
......@@ -335,120 +370,132 @@ const one = {
name: ["materialList"],
required: true,
linkconfig: {
urlchangeval: {//根据url接口 改变某个value
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params }),
params: { "materieId": "linked" },
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"
}
}
productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值
productionUnitName: "productionUnitName",
usableNum: "usableNum",
outstroeNum: "outstroeNum",
},
},
},
columns: [
{
"title": <span>物料编码-名称 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "materieId",
"key": "materieId",
"valueType": "select",
"request": async () => {
let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} })
return res?.data?.dataList
title: (
<span>
物料编码-名称 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "materieId",
key: "materieId",
valueType: "select",
request: async () => {
let res = await doFetch({
url: "/ngic-workmanship/pmMaterie/query/selectbox",
params: {},
});
return res?.data?.dataList;
},
"fieldProps": {
fieldProps: {
allowClear: true,
showSearch: true
showSearch: true,
},
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
{
"title": <span>出库数量 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "outstroeNum",
"key": "outstroeNum",
"formItemProps": () => {
title: (
<span>
出库数量 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "outstroeNum",
key: "outstroeNum",
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
valueType: "digit"
valueType: "digit",
},
{
"title": "可用库存",
"dataIndex": "usableNum",
"key": "usableNum",
"readonly": 'usableNum'
title: "可用库存",
dataIndex: "usableNum",
key: "usableNum",
readonly: "usableNum",
},
{
"title": "库存单位",
"dataIndex": "productionUnitName",
"key": "productionUnitName",
"readonly": 'productionUnitName'
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
readonly: "productionUnitName",
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
},
],
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
}
materieOutstoreNo: {
value: null,
type: "input",
title: "出库单号",
name: ["materieOutstoreNo"],
required: false,
placeholder: "不填写系统自动生成",
},
"materialList": {
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",
......@@ -456,120 +503,132 @@ const one = {
name: ["materialList"],
required: true,
linkconfig: {
urlchangeval: {//根据url接口 改变某个value
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params }),
params: { "materieId": "linked" },
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"
}
}
productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值
productionUnitName: "productionUnitName",
usableNum: "usableNum",
outstroeNum: "outstroeNum",
},
},
},
columns: [
{
"title": <span>物料编码-名称 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "materieId",
"key": "materieId",
"valueType": "select",
"request": async () => {
let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} })
return res?.data?.dataList
title: (
<span>
物料编码-名称 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "materieId",
key: "materieId",
valueType: "select",
request: async () => {
let res = await doFetch({
url: "/ngic-workmanship/pmMaterie/query/selectbox",
params: {},
});
return res?.data?.dataList;
},
"fieldProps": {
fieldProps: {
allowClear: true,
showSearch: true
showSearch: true,
},
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
{
"title": <span>出库数量 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "outstroeNum",
"key": "outstroeNum",
"formItemProps": () => {
title: (
<span>
出库数量 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "outstroeNum",
key: "outstroeNum",
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
valueType: "digit"
valueType: "digit",
},
{
"title": "可用库存",
"dataIndex": "usableNum",
"key": "usableNum",
"readonly": 'usableNum'
title: "可用库存",
dataIndex: "usableNum",
key: "usableNum",
readonly: "usableNum",
},
{
"title": "库存单位",
"dataIndex": "productionUnitName",
"key": "productionUnitName",
"readonly": 'productionUnitName'
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
readonly: "productionUnitName",
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
},
],
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
}
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,
},
"materialList": {
remark: {
value: null,
type: "textarea",
title: "备注",
name: ["remark"],
required: false,
col: {
span: 24,
},
},
materialList: {
value: [],
title: "物料信息",
type: "table",
......@@ -577,73 +636,89 @@ const one = {
name: ["materialList"],
required: true,
linkconfig: {
urlchangeval: {//根据url接口 改变某个value
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params }),
params: { "materieId": "linked" },
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"
}
}
productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值
productionUnitName: "productionUnitName",
usableNum: "usableNum",
outstroeNum: "outstroeNum",
},
},
},
columns: [
{
"title": <span>物料编码-名称 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "materieId",
"key": "materieId",
"valueType": "select",
"request": async () => {
let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} })
return res?.data?.dataList
title: (
<span>
物料编码-名称 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "materieId",
key: "materieId",
valueType: "select",
request: async () => {
let res = await doFetch({
url: "/ngic-workmanship/pmMaterie/query/selectbox",
params: {},
});
return res?.data?.dataList;
},
"fieldProps": {
fieldProps: {
allowClear: true,
showSearch: true
showSearch: true,
},
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
{
"title": <span>出库数量 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "outstroeNum",
"key": "outstroeNum",
"formItemProps": () => {
title: (
<span>
出库数量 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "outstroeNum",
key: "outstroeNum",
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
valueType: "digit"
valueType: "digit",
},
{
"title": "可用库存",
"dataIndex": "usableNum",
"key": "usableNum",
"readonly": 'usableNum'
title: "可用库存",
dataIndex: "usableNum",
key: "usableNum",
readonly: "usableNum",
},
{
"title": "库存单位",
"dataIndex": "productionUnitName",
"key": "productionUnitName",
"readonly": 'productionUnitName'
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
readonly: "productionUnitName",
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
},
],
rowKey: "id",
}
},
},
detail = (setselected, dom) => ({
totalCard: [
......@@ -699,7 +774,8 @@ const one = {
},
{
cardTitle: "物料信息列表",
extraContent: dom,
extraContent: "",
itemData: [
{
key: "materialList",
......@@ -712,8 +788,10 @@ const one = {
key: "materieName",
search: false,
render: (dom, row) => {
return (row.materieCode ?? '') + " - " + (row.materieName ?? '')
}
return (
(row.materieCode ?? "") + " - " + (row.materieName ?? "")
);
},
},
{
title: "出库数量",
......@@ -737,7 +815,8 @@ const one = {
pagination: "false",
rowKey: "id",
expandable: {
expandedRowRender: record => <Table
expandedRowRender: (record) => (
<Table
style={{ marginLeft: 48 }}
columns={[
{
......@@ -745,9 +824,9 @@ const one = {
dataIndex: "storePositionName",
key: "storePositionName",
search: false,
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
......@@ -763,26 +842,30 @@ const one = {
key: "supplierNo",
search: false,
render: (dom, row) => {
return (row?.supplierNo ?? '') + " - " + (row?.supplierName ?? '')
}
return (
(row?.supplierNo ?? "") +
" - " +
(row?.supplierName ?? "")
);
},
},
{
title: "下架数量",
dataIndex: "outstroeNum",
key: "outstroeNum",
search: false,
}
},
]}
dataSource={record.downloadList}
pagination={false}
/>,
/>
),
},
rowSelection: {
onChange: (selectedRowKeys, selectedRows) => {
setselected(selectedRows)
setselected(selectedRows);
},
},
}
},
],
},
......@@ -796,7 +879,7 @@ const one = {
{
title: "关单时间",
key: "closeTime",
}
},
],
},
{
......@@ -814,8 +897,10 @@ const one = {
key: "materieName",
search: false,
render: (dom, row) => {
return (row.materieCode ?? '') + " - " + (row.materieName ?? '')
}
return (
(row.materieCode ?? "") + " - " + (row.materieName ?? "")
);
},
},
{
title: "出库数量",
......@@ -832,7 +917,8 @@ const one = {
],
expandable: {
defaultExpandAllRows: true,
expandedRowRender: record => <Table
expandedRowRender: (record) => (
<Table
style={{ marginLeft: 48 }}
columns={[
{
......@@ -840,9 +926,9 @@ const one = {
dataIndex: "storePositionName",
key: "storePositionName",
search: false,
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
......@@ -858,46 +944,48 @@ const one = {
key: "supplierNo",
search: false,
render: (dom, row) => {
return (row.supplierNo ?? '') + " - " + (row.supplierName ?? '')
}
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"
pagination: "false",
},
],
},
]
],
}),
dooutside = (fid, storeId) => ({
totalCard: [
......@@ -935,15 +1023,15 @@ const one = {
},
{
title: "状态",
key: "statusName"
}
key: "statusName",
},
],
},
{
cardTitle: "物料信息列表",
extra: true,
extrapath: "/ngic-workmanship/wmsMaterieOutstore/download",
extrakey: "submits",//redux key
extrakey: "submits", //redux key
itemData: [
{
key: "materialList",
......@@ -956,8 +1044,10 @@ const one = {
key: "materieName",
search: false,
render: (dom, row) => {
return (row.materieCode ?? '') + " - " + (row.materieName ?? '')
}
return (
(row.materieCode ?? "") + " - " + (row.materieName ?? "")
);
},
},
{
title: "出库数量",
......@@ -976,25 +1066,24 @@ const one = {
dataIndex: "remainderNums",
key: "remainderNums",
search: false,
}
},
],
expandable: {
expandedRowRender: record => <EditUpload record={record} fid={fid} storeId={storeId} />,
}
expandedRowRender: (record) => (
<EditUpload record={record} fid={fid} storeId={storeId} />
),
},
},
],
},
]
],
});
export default {
one,
two,
three,
four,
detail,
dooutside
dooutside,
};
......@@ -2,59 +2,73 @@ 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'
import { useEffect, useState } from "react";
import { useModel } from "umi";
const EditUpload = ({ record, fid, storeId }) => {
const [value, setvalue] = useState({
[record.id]: record.downloadList
[record.id]: record.downloadList,
});
const { initialState, setInitialState } = useModel("@@initialState");
useEffect(() => {
if (!value) {
return
return;
}
let newlist = Object.keys(value)?.map?.(it => {
let newlist =
Object.keys(value)?.map?.((it) => {
let id = it;
let newArr = value[id]?.filter(it => typeof (it.id) == "number") ?? [];
let newArr = value[id]?.filter((it) => typeof it.id == "number") ?? [];
return {
id,
downloadList: newArr.map(its => {
downloadList: newArr.map((its) => {
return {
storePositionId: its?.storePositionId,
outstroeNum: its?.outstroeNum,
stockNum: its?.stockNum,
remark: its?.remark,
materieControlNo: its?.materieControlNo
}
})
}
materieControlNo: its?.materieControlNo,
};
}),
};
}) ?? [];
setInitialState(s => {
return ({
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])
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 <EditTable
return (
<EditTable
rowKey="id"
maxLength={1000}
linkconfig={{
urlchangeval: {
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStore/queryStoreOne", params }),
params: { "storePositionId": "linked", materieControlNo: "linked" },
database: (params) =>
doFetch({
url: "/ngic-workmanship/wmsMaterieStore/queryStoreOne",
params,
}),
params: { storePositionId: "linked", materieControlNo: "linked" },
effectresult: {
"supplierNo": "supplierNo",
"supplierName": "supplierName",
"stockNum": "stroeNum",
"materieControlNo": "materieControlNo"
}
}
supplierNo: "supplierNo",
supplierName: "supplierName",
stockNum: "stroeNum",
materieControlNo: "materieControlNo",
},
},
}}
style={{ marginLeft: 48 }}
columns={[
......@@ -65,16 +79,19 @@ const EditUpload = ({ record, fid, storeId }) => {
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
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
return !record.materieOutstoreDetailId;
},
params: { storeId: storeId },
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
......@@ -85,16 +102,25 @@ const EditUpload = ({ record, fid, storeId }) => {
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
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
return !record.materieOutstoreDetailId;
},
params: (row) => {
return { materieId: record.materieId, storePositionId: row.storePositionId }
return {
materieId: record.materieId,
storePositionId: row.storePositionId,
};
},
width: 200
width: 200,
},
{
title: "下架数量",
......@@ -102,30 +128,30 @@ const EditUpload = ({ record, fid, storeId }) => {
key: "outstroeNum",
search: false,
editable: (text, record, index) => {
return !record.materieOutstoreDetailId
return !record.materieOutstoreDetailId;
},
valueType: "digit"
valueType: "digit",
},
{
title: "供应商编号",
dataIndex: "supplierNo",
key: "supplierNo",
search: false,
readonly: true
readonly: true,
},
{
title: "供应商名称",
dataIndex: "supplierName",
key: "supplierName",
search: false,
readonly: true
readonly: true,
},
{
title: "库存数量",
dataIndex: "stockNum",
key: "stockNum",
search: false,
"readonly": true,
readonly: true,
},
{
title: "备注",
......@@ -133,78 +159,75 @@ const EditUpload = ({ record, fid, storeId }) => {
key: "remark",
search: false,
editable: (text, record, index) => {
return !record.materieOutstoreDetailId
}
return !record.materieOutstoreDetailId;
},
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
}
},
]}
value={value[record.id]}
onChange={(vals) => {
setvalue(s => ({
setvalue((s) => ({
...s,
[record.id]: vals
[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
}
materieOutstoreNo: {
value: null,
type: "input",
title: "出库单号",
name: ["materieOutstoreNo"],
required: false,
placeholder: "不填写系统自动生成",
},
"materialList": {
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",
......@@ -212,122 +235,134 @@ const one = {
name: ["materialList"],
required: true,
linkconfig: {
urlchangeval: {//根据url接口 改变某个value
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params }),
params: { "materieId": "linked" },
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"
}
}
productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值
productionUnitName: "productionUnitName",
usableNum: "usableNum",
outstroeNum: "outstroeNum",
},
},
},
columns: [
{
"title": <span>物料编码-名称 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "materieId",
"key": "materieId",
"valueType": "select",
"request": async () => {
let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} })
return res?.data?.dataList
title: (
<span>
物料编码-名称 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "materieId",
key: "materieId",
valueType: "select",
request: async () => {
let res = await doFetch({
url: "/ngic-workmanship/pmMaterie/query/selectbox",
params: {},
});
return res?.data?.dataList;
},
"fieldProps": {
fieldProps: {
allowClear: true,
showSearch: true
showSearch: true,
},
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
editable: true
editable: true,
},
{
"title": <span>出库数量 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "outstroeNum",
"key": "outstroeNum",
"formItemProps": () => {
title: (
<span>
出库数量 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "outstroeNum",
key: "outstroeNum",
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
valueType: "digit",
editable: true
editable: true,
},
{
"title": "可用库存",
"dataIndex": "usableNum",
"key": "usableNum",
"readonly": 'usableNum'
title: "可用库存",
dataIndex: "usableNum",
key: "usableNum",
readonly: "usableNum",
},
{
"title": "库存单位",
"dataIndex": "productionUnitName",
"key": "productionUnitName",
"readonly": 'productionUnitName'
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
readonly: "productionUnitName",
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
},
],
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
}
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: {},
},
},
"materialList": {
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",
......@@ -335,120 +370,132 @@ const one = {
name: ["materialList"],
required: true,
linkconfig: {
urlchangeval: {//根据url接口 改变某个value
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params }),
params: { "materieId": "linked" },
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"
}
}
productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值
productionUnitName: "productionUnitName",
usableNum: "usableNum",
outstroeNum: "outstroeNum",
},
},
},
columns: [
{
"title": <span>物料编码-名称 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "materieId",
"key": "materieId",
"valueType": "select",
"request": async () => {
let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} })
return res?.data?.dataList
title: (
<span>
物料编码-名称 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "materieId",
key: "materieId",
valueType: "select",
request: async () => {
let res = await doFetch({
url: "/ngic-workmanship/pmMaterie/query/selectbox",
params: {},
});
return res?.data?.dataList;
},
"fieldProps": {
fieldProps: {
allowClear: true,
showSearch: true
showSearch: true,
},
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
{
"title": <span>出库数量 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "outstroeNum",
"key": "outstroeNum",
"formItemProps": () => {
title: (
<span>
出库数量 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "outstroeNum",
key: "outstroeNum",
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
valueType: "digit"
valueType: "digit",
},
{
"title": "可用库存",
"dataIndex": "usableNum",
"key": "usableNum",
"readonly": 'usableNum'
title: "可用库存",
dataIndex: "usableNum",
key: "usableNum",
readonly: "usableNum",
},
{
"title": "库存单位",
"dataIndex": "productionUnitName",
"key": "productionUnitName",
"readonly": 'productionUnitName'
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
readonly: "productionUnitName",
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
},
],
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
}
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,
},
"materialList": {
remark: {
value: null,
type: "textarea",
title: "备注",
name: ["remark"],
required: false,
col: {
span: 24,
},
},
materialList: {
value: [],
title: "物料信息",
type: "table",
......@@ -456,120 +503,132 @@ const one = {
name: ["materialList"],
required: true,
linkconfig: {
urlchangeval: {//根据url接口 改变某个value
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params }),
params: { "materieId": "linked" },
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"
}
}
productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值
productionUnitName: "productionUnitName",
usableNum: "usableNum",
outstroeNum: "outstroeNum",
},
},
},
columns: [
{
"title": <span>物料编码-名称 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "materieId",
"key": "materieId",
"valueType": "select",
"request": async () => {
let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} })
return res?.data?.dataList
title: (
<span>
物料编码-名称 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "materieId",
key: "materieId",
valueType: "select",
request: async () => {
let res = await doFetch({
url: "/ngic-workmanship/pmMaterie/query/selectbox",
params: {},
});
return res?.data?.dataList;
},
"fieldProps": {
fieldProps: {
allowClear: true,
showSearch: true
showSearch: true,
},
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
{
"title": <span>出库数量 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "outstroeNum",
"key": "outstroeNum",
"formItemProps": () => {
title: (
<span>
出库数量 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "outstroeNum",
key: "outstroeNum",
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
valueType: "digit"
valueType: "digit",
},
{
"title": "可用库存",
"dataIndex": "usableNum",
"key": "usableNum",
"readonly": 'usableNum'
title: "可用库存",
dataIndex: "usableNum",
key: "usableNum",
readonly: "usableNum",
},
{
"title": "库存单位",
"dataIndex": "productionUnitName",
"key": "productionUnitName",
"readonly": 'productionUnitName'
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
readonly: "productionUnitName",
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
},
],
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
}
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": {
},
materialList: {
value: [],
title: "物料信息",
type: "table",
......@@ -577,73 +636,89 @@ const one = {
name: ["materialList"],
required: true,
linkconfig: {
urlchangeval: {//根据url接口 改变某个value
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params }),
params: { "materieId": "linked" },
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"
}
}
productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值
productionUnitName: "productionUnitName",
usableNum: "usableNum",
outstroeNum: "outstroeNum",
},
},
},
columns: [
{
"title": <span>物料编码-名称 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "materieId",
"key": "materieId",
"valueType": "select",
"request": async () => {
let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} })
return res?.data?.dataList
title: (
<span>
物料编码-名称 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "materieId",
key: "materieId",
valueType: "select",
request: async () => {
let res = await doFetch({
url: "/ngic-workmanship/pmMaterie/query/selectbox",
params: {},
});
return res?.data?.dataList;
},
"fieldProps": {
fieldProps: {
allowClear: true,
showSearch: true
showSearch: true,
},
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
{
"title": <span>出库数量 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "outstroeNum",
"key": "outstroeNum",
"formItemProps": () => {
title: (
<span>
出库数量 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "outstroeNum",
key: "outstroeNum",
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
valueType: "digit"
valueType: "digit",
},
{
"title": "可用库存",
"dataIndex": "usableNum",
"key": "usableNum",
"readonly": 'usableNum'
title: "可用库存",
dataIndex: "usableNum",
key: "usableNum",
readonly: "usableNum",
},
{
"title": "库存单位",
"dataIndex": "productionUnitName",
"key": "productionUnitName",
"readonly": 'productionUnitName'
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
readonly: "productionUnitName",
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
},
],
rowKey: "id",
}
},
},
detail = (setselected, dom) => ({
totalCard: [
......@@ -652,15 +727,15 @@ const one = {
cardTitle: "基本信息",
itemData: [
{
title: "库单号",
key: "materieOutstoreNo",
title: "库单号",
key: "materieInstoreNo",
},
{
title: "库类型",
key: "outstoreTypeName",
title: "库类型",
key: "instoreTypeName",
},
{
title: "库仓库",
title: "库仓库",
key: "storeName",
},
{
......@@ -690,16 +765,16 @@ const one = {
},
{
title: "工单条形码",
noshow: true,
key: "qrCodeUrl",
type: "img",
noshow: true,
width: 100,
},
],
},
{
cardTitle: "物料信息列表",
extraContent: dom,
extraContent: "",
itemData: [
{
key: "materialList",
......@@ -712,32 +787,51 @@ const one = {
key: "materieName",
search: false,
render: (dom, row) => {
return (row.materieCode ?? '') + " - " + (row.materieName ?? '')
}
return (
(row.materieCode ?? "") + " - " + (row.materieName ?? "")
);
},
},
{
title: "出库数量",
dataIndex: "outstroeNum",
key: "outstroeNum",
title: "供应商编号 - 名称",
dataIndex: "supplierNo",
key: "supplierNo",
search: false,
render: (dom, row) => {
return (
(row.supplierNo ?? "") + " - " + (row.supplierName ?? "")
);
},
},
{
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
title: "批次号/SN号",
dataIndex: "materieControlNo",
key: "materieControlNo",
search: false,
},
{
title: "未下架数量",
title: "入库数量",
dataIndex: "instroeNum",
key: "instroeNum",
search: false,
},
{
title: "未上架数量",
dataIndex: "remainderNums",
key: "remainderNums",
search: false,
},
{
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
search: false,
},
],
pagination: "false",
rowKey: "id",
expandable: {
expandedRowRender: record => <Table
defaultExpandAllRows: true,
expandedRowRender: (record) => (
<Table
style={{ marginLeft: 48 }}
columns={[
{
......@@ -745,44 +839,36 @@ const one = {
dataIndex: "storePositionName",
key: "storePositionName",
search: false,
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
{
title: "批次号/SN号",
dataIndex: "materieControlNo",
key: "materieControlNo",
title: "上架数量",
dataIndex: "instroeNum",
key: "instroeNum",
search: false,
formItemProps: () => {
return {
rules: [{ required: true, message: "此项为必填项" }],
};
},
{
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}
dataSource={record.uploadList}
pagination={false}
/>,
/>
),
},
pagination: "false",
rowKey: "id",
rowSelection: {
onChange: (selectedRowKeys, selectedRows) => {
setselected(selectedRows)
setselected(selectedRows);
},
},
}
},
],
},
......@@ -796,15 +882,15 @@ const one = {
{
title: "关单时间",
key: "closeTime",
}
},
],
},
{
cardTitle: "架明细",
cardTitle: "架明细",
noPrint: true,
itemData: [
{
key: "materialDownloadList",
key: "materialUploadList",
type: "table",
col: { span: 24 },
columns: [
......@@ -814,13 +900,32 @@ const one = {
key: "materieName",
search: false,
render: (dom, row) => {
return (row.materieCode ?? '') + " - " + (row.materieName ?? '')
}
return (
(row.materieCode ?? "") + " - " + (row.materieName ?? "")
);
},
},
{
title: "出库数量",
dataIndex: "outstroeNum",
key: "outstroeNum",
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,
},
{
......@@ -832,7 +937,8 @@ const one = {
],
expandable: {
defaultExpandAllRows: true,
expandedRowRender: record => <Table
expandedRowRender: (record) => (
<Table
style={{ marginLeft: 48 }}
columns={[
{
......@@ -840,64 +946,52 @@ const one = {
dataIndex: "storePositionName",
key: "storePositionName",
search: false,
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
{
title: "批次号/SN号",
dataIndex: "materieControlNo",
key: "materieControlNo",
title: "上架数量",
dataIndex: "instroeNum",
key: "instroeNum",
search: false,
formItemProps: () => {
return {
rules: [{ required: true, message: "此项为必填项" }],
};
},
{
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",
dataIndex: "uploadUserName",
key: "uploadUserName",
search: false,
}
,
},
{
title: "操作时间",
dataIndex: "downloadTime",
key: "downloadTime",
dataIndex: "uploadTime",
key: "uploadTime",
search: false,
}
},
]}
dataSource={record.downloadList}
dataSource={record.uploadList}
pagination={false}
/>,
/>
),
},
pagination: "false"
pagination: "false",
},
],
},
]
],
}),
dooutside = (fid, storeId) => ({
totalCard: [
......@@ -935,15 +1029,15 @@ const one = {
},
{
title: "状态",
key: "statusName"
}
key: "statusName",
},
],
},
{
cardTitle: "物料信息列表",
extra: true,
extrapath: "/ngic-workmanship/wmsMaterieOutstore/download",
extrakey: "submits",//redux key
extrakey: "submits", //redux key
itemData: [
{
key: "materialList",
......@@ -956,8 +1050,10 @@ const one = {
key: "materieName",
search: false,
render: (dom, row) => {
return (row.materieCode ?? '') + " - " + (row.materieName ?? '')
}
return (
(row.materieCode ?? "") + " - " + (row.materieName ?? "")
);
},
},
{
title: "出库数量",
......@@ -976,25 +1072,24 @@ const one = {
dataIndex: "remainderNums",
key: "remainderNums",
search: false,
}
},
],
expandable: {
expandedRowRender: record => <EditUpload record={record} fid={fid} storeId={storeId} />,
}
expandedRowRender: (record) => (
<EditUpload record={record} fid={fid} storeId={storeId} />
),
},
},
],
},
]
],
});
export default {
one,
two,
three,
four,
detail,
dooutside
dooutside,
};
......@@ -41,8 +41,6 @@ const keytoval = {
four: "其他出库",
};
function Outstore(props) {
const { initialState, setInitialState } = useModel("@@initialState");
const [activeTabKey, onTabChange] = useState("1");
......@@ -160,10 +158,6 @@ function Outstore(props) {
label: "退料入库",
value: "3",
},
{
label: "其他入库",
value: "4",
},
],
},
{
......@@ -194,6 +188,7 @@ function Outstore(props) {
dataIndex: "createTime",
key: "createTimeList",
valueType: "dateRange",
search: false,
formItemProps: {
name: "createTimeList",
},
......@@ -205,12 +200,8 @@ function Outstore(props) {
valueType: "select",
options: [
{
label: "待下架",
value: "0",
},
{
label: "下架中",
value: "2",
label: "执行中",
value: "7",
},
{
label: "待分配",
......@@ -278,10 +269,6 @@ function Outstore(props) {
label: "退料入库",
value: "3",
},
{
label: "其他入库",
value: "4",
},
],
},
{
......@@ -297,7 +284,6 @@ function Outstore(props) {
{
title: "备注",
dataIndex: "remark",
search: false,
key: "remark",
search: false,
},
......@@ -311,6 +297,7 @@ function Outstore(props) {
title: "创建时间",
dataIndex: "createTime",
key: "createTimeList",
search: false,
valueType: "dateRange",
formItemProps: {
name: "createTimeList",
......
......@@ -735,7 +735,7 @@ const one = {
},
{
cardTitle: "物料信息列表",
extraContent: dom,
extraContent: "",
itemData: [
{
key: "materialList",
......
import React, { useEffect, useMemo, useRef, useState } from "react";
import { Dropdown, Menu, Button, message } from "antd";
import { Dropdown, Menu, Button, message, Table } from "antd";
import AutoTable from "@/components/AutoTable";
// import defaultFields from "./fields";
import { doFetch } from "@/utils/doFetch";
......@@ -85,7 +85,7 @@ const EditUpload = ({ record, fid, storeId }) => {
return (
<EditableProTable
rowKey={"id"}
maxLength={1000}
maxLength={1}
style={{ marginLeft: 48 }}
columns={[
{
......@@ -100,7 +100,7 @@ const EditUpload = ({ record, fid, storeId }) => {
valueType: "select",
request: async (params) => {
let res = await doFetch({
url: "/ngic-auth/sysStorePosition/queryByStoreId/selection",
url: "/ngic-auth/sysStorePosition/queryUseAbleSelection",
params: { storeId: params.storeId },
});
return res?.data?.dataList;
......@@ -403,7 +403,7 @@ const defaultFields = {
},
{
cardTitle: "物料信息列表",
extraContent: dom,
extraContent: "",
itemData: [
{
key: "materialList",
......@@ -663,9 +663,9 @@ const defaultFields = {
],
},
{
cardTitle: "物料信息列表",
cardTitle: "物料信息",
extra: true,
extrapath: "/ngic-workmanship/wmsMaterieInstore/upload",
extrapath: "/ngic-workmanship/wmsMaterieInstore/uploadOtherInstore",
extrakey: "submit", //redux key
itemData: [
{
......@@ -696,7 +696,7 @@ const defaultFields = {
},
},
{
title: "批次号/SN号",
title: "批次号",
dataIndex: "materieControlNo",
key: "materieControlNo",
search: false,
......@@ -802,6 +802,7 @@ function Instore(props) {
title: "入库单号",
dataIndex: "materieInstoreNo",
key: "materieInstoreNo",
search: false,
render: (dom, record) => {
return (
<a
......@@ -841,6 +842,7 @@ function Instore(props) {
title: "入库类型",
dataIndex: "instoreTypeName",
key: "instoreType",
search: false,
valueType: "select",
options: [
{
......@@ -863,6 +865,7 @@ function Instore(props) {
},
{
title: "入库仓库",
search: false,
dataIndex: "storeName",
key: "storeId",
fieldProps: {
......@@ -879,11 +882,7 @@ function Instore(props) {
},
valueType: "select",
},
{
title: "相关单号",
dataIndex: "businessNo",
key: "businessNo",
},
{
title: "备注",
dataIndex: "remark",
......@@ -893,6 +892,7 @@ function Instore(props) {
{
title: "创建人",
dataIndex: "createUserName",
search: false,
key: "createUserName",
},
{
......@@ -907,6 +907,7 @@ function Instore(props) {
{
title: "状态",
dataIndex: "statusName",
search: false,
key: "status",
valueType: "select",
options: [
......@@ -1015,6 +1016,7 @@ function Instore(props) {
{
title: "入库类型",
dataIndex: "instoreTypeName",
search: false,
key: "instoreType",
valueType: "select",
options: [
......@@ -1038,6 +1040,7 @@ function Instore(props) {
},
{
title: "入库仓库",
search: false,
dataIndex: "storeName",
key: "storeId",
fieldProps: {
......@@ -1054,11 +1057,7 @@ function Instore(props) {
},
valueType: "select",
},
{
title: "相关单号",
dataIndex: "businessNo",
key: "businessNo",
},
{
title: "备注",
dataIndex: "remark",
......@@ -1066,6 +1065,7 @@ function Instore(props) {
search: false,
},
{
search: false,
title: "创建人",
dataIndex: "createUserName",
key: "createUserName",
......@@ -1091,6 +1091,7 @@ function Instore(props) {
{
title: "状态",
dataIndex: "statusName",
search: false,
key: "status",
valueType: "select",
options: [
......
......@@ -2,59 +2,73 @@ 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'
import { useEffect, useState } from "react";
import { useModel } from "umi";
const EditUpload = ({ record, fid, storeId ,formRef}) => {
const EditUpload = ({ record, fid, storeId, formRef }) => {
const [value, setvalue] = useState({
[record.id]: record.downloadList
[record.id]: record.downloadList,
});
const { initialState, setInitialState } = useModel("@@initialState");
useEffect(() => {
if (!value) {
return
return;
}
let newlist = Object.keys(value)?.map?.(it => {
let newlist =
Object.keys(value)?.map?.((it) => {
let id = it;
let newArr = value[id]?.filter(it => typeof (it.id) == "number") ?? [];
let newArr = value[id]?.filter((it) => typeof it.id == "number") ?? [];
return {
id,
downloadList: newArr.map(its => {
downloadList: newArr.map((its) => {
return {
storePositionId: its?.storePositionId,
outstroeNum: its?.outstroeNum,
stockNum: its?.stockNum,
remark: its?.remark,
materieControlNo: its?.materieControlNo
}
})
}
materieControlNo: its?.materieControlNo,
};
}),
};
}) ?? [];
setInitialState(s => {
return ({
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])
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 <EditTable
return (
<EditTable
rowKey="id"
maxLength={1000}
linkconfig={{
urlchangeval: {
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStore/queryStoreOne", params }),
params: { "storePositionId": "linked", materieControlNo: "linked" },
database: (params) =>
doFetch({
url: "/ngic-workmanship/wmsMaterieStore/queryStoreOne",
params,
}),
params: { storePositionId: "linked", materieControlNo: "linked" },
effectresult: {
"supplierNo": "supplierNo",
"supplierName": "supplierName",
"stockNum": "stroeNum",
"materieControlNo": "materieControlNo"
}
}
supplierNo: "supplierNo",
supplierName: "supplierName",
stockNum: "stroeNum",
materieControlNo: "materieControlNo",
},
},
}}
style={{ marginLeft: 48 }}
columns={[
......@@ -65,16 +79,19 @@ const EditUpload = ({ record, fid, storeId ,formRef}) => {
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
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
return !record.materieOutstoreDetailId;
},
params: { storeId: storeId },
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
......@@ -85,16 +102,25 @@ const EditUpload = ({ record, fid, storeId ,formRef}) => {
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
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
return !record.materieOutstoreDetailId;
},
params: (row) => {
return { materieId: record.materieId, storePositionId: row.storePositionId }
return {
materieId: record.materieId,
storePositionId: row.storePositionId,
};
},
width: 200
width: 200,
},
{
title: "下架数量",
......@@ -102,30 +128,30 @@ const EditUpload = ({ record, fid, storeId ,formRef}) => {
key: "outstroeNum",
search: false,
editable: (text, record, index) => {
return !record.materieOutstoreDetailId
return !record.materieOutstoreDetailId;
},
valueType: "digit"
valueType: "digit",
},
{
title: "供应商编号",
dataIndex: "supplierNo",
key: "supplierNo",
search: false,
readonly: true
readonly: true,
},
{
title: "供应商名称",
dataIndex: "supplierName",
key: "supplierName",
search: false,
readonly: true
readonly: true,
},
{
title: "库存数量",
dataIndex: "stockNum",
key: "stockNum",
search: false,
"readonly": true,
readonly: true,
},
{
title: "备注",
......@@ -133,78 +159,75 @@ const EditUpload = ({ record, fid, storeId ,formRef}) => {
key: "remark",
search: false,
editable: (text, record, index) => {
return !record.materieOutstoreDetailId
}
return !record.materieOutstoreDetailId;
},
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
}
},
]}
value={value[record.id]}
onChange={(vals) => {
setvalue(s => ({
setvalue((s) => ({
...s,
[record.id]: vals
[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
}
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: {},
},
"materialList": {
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",
......@@ -212,122 +235,134 @@ const one = {
name: ["materialList"],
required: true,
linkconfig: {
urlchangeval: {//根据url接口 改变某个value
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params }),
params: { "materieId": "linked" },
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"
}
}
productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值
productionUnitName: "productionUnitName",
usableNum: "usableNum",
outstroeNum: "outstroeNum",
},
},
},
columns: [
{
"title": <span>物料编码-名称 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "materieId",
"key": "materieId",
"valueType": "select",
"request": async () => {
let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} })
return res?.data?.dataList
title: (
<span>
物料编码-名称 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "materieId",
key: "materieId",
valueType: "select",
request: async () => {
let res = await doFetch({
url: "/ngic-workmanship/pmMaterie/query/selectbox",
params: {},
});
return res?.data?.dataList;
},
"fieldProps": {
fieldProps: {
allowClear: true,
showSearch: true
showSearch: true,
},
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
editable: true
editable: true,
},
{
"title": <span>出库数量 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "outstroeNum",
"key": "outstroeNum",
"formItemProps": () => {
title: (
<span>
出库数量 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "outstroeNum",
key: "outstroeNum",
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
valueType: "digit",
editable: true
editable: true,
},
{
"title": "可用库存",
"dataIndex": "usableNum",
"key": "usableNum",
"readonly": 'usableNum'
title: "可用库存",
dataIndex: "usableNum",
key: "usableNum",
readonly: "usableNum",
},
{
"title": "库存单位",
"dataIndex": "productionUnitName",
"key": "productionUnitName",
"readonly": 'productionUnitName'
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
readonly: "productionUnitName",
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
},
],
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
}
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": {
materialList: {
value: [],
title: "物料信息",
type: "table",
......@@ -335,120 +370,132 @@ const one = {
name: ["materialList"],
required: true,
linkconfig: {
urlchangeval: {//根据url接口 改变某个value
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params }),
params: { "materieId": "linked" },
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"
}
}
productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值
productionUnitName: "productionUnitName",
usableNum: "usableNum",
outstroeNum: "outstroeNum",
},
},
},
columns: [
{
"title": <span>物料编码-名称 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "materieId",
"key": "materieId",
"valueType": "select",
"request": async () => {
let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} })
return res?.data?.dataList
title: (
<span>
物料编码-名称 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "materieId",
key: "materieId",
valueType: "select",
request: async () => {
let res = await doFetch({
url: "/ngic-workmanship/pmMaterie/query/selectbox",
params: {},
});
return res?.data?.dataList;
},
"fieldProps": {
fieldProps: {
allowClear: true,
showSearch: true
showSearch: true,
},
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
{
"title": <span>出库数量 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "outstroeNum",
"key": "outstroeNum",
"formItemProps": () => {
title: (
<span>
出库数量 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "outstroeNum",
key: "outstroeNum",
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
valueType: "digit"
valueType: "digit",
},
{
"title": "可用库存",
"dataIndex": "usableNum",
"key": "usableNum",
"readonly": 'usableNum'
title: "可用库存",
dataIndex: "usableNum",
key: "usableNum",
readonly: "usableNum",
},
{
"title": "库存单位",
"dataIndex": "productionUnitName",
"key": "productionUnitName",
"readonly": 'productionUnitName'
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
readonly: "productionUnitName",
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
},
],
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
}
materieOutstoreNo: {
value: null,
type: "input",
title: "出库单号",
name: ["materieOutstoreNo"],
required: false,
placeholder: "不填写系统自动生成",
},
"materialList": {
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",
......@@ -456,120 +503,132 @@ const one = {
name: ["materialList"],
required: true,
linkconfig: {
urlchangeval: {//根据url接口 改变某个value
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params }),
params: { "materieId": "linked" },
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"
}
}
productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值
productionUnitName: "productionUnitName",
usableNum: "usableNum",
outstroeNum: "outstroeNum",
},
},
},
columns: [
{
"title": <span>物料编码-名称 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "materieId",
"key": "materieId",
"valueType": "select",
"request": async () => {
let res = await doFetch({ url: "/ngic-workmanship/pmMaterie/query/selectbox", params: {} })
return res?.data?.dataList
title: (
<span>
物料编码-名称 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "materieId",
key: "materieId",
valueType: "select",
request: async () => {
let res = await doFetch({
url: "/ngic-workmanship/pmMaterie/query/selectbox",
params: {},
});
return res?.data?.dataList;
},
"fieldProps": {
fieldProps: {
allowClear: true,
showSearch: true
showSearch: true,
},
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
{
"title": <span>出库数量 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "outstroeNum",
"key": "outstroeNum",
"formItemProps": () => {
title: (
<span>
出库数量 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "outstroeNum",
key: "outstroeNum",
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
valueType: "digit"
valueType: "digit",
},
{
"title": "可用库存",
"dataIndex": "usableNum",
"key": "usableNum",
"readonly": 'usableNum'
title: "可用库存",
dataIndex: "usableNum",
key: "usableNum",
readonly: "usableNum",
},
{
"title": "库存单位",
"dataIndex": "productionUnitName",
"key": "productionUnitName",
"readonly": 'productionUnitName'
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
readonly: "productionUnitName",
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
},
],
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
}
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: {},
},
},
"materialList": {
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",
......@@ -577,75 +636,89 @@ const one = {
name: ["materialList"],
required: true,
linkconfig: {
urlchangeval: {//根据url接口 改变某个value
database: (params) => doFetch({ url: "/ngic-workmanship/wmsMaterieStockStore/queryStoreOne", params }),
params: { "materieId": "linked" },
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"
}
}
productionUnit: "productionUnit", //key 为列表更新值 value为response 返回值
productionUnitName: "productionUnitName",
usableNum: "usableNum",
outstroeNum: "outstroeNum",
},
},
},
columns: [
{
"title": <span>物料编码-名称 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "materieId",
"key": "materieId",
"valueType": "select",
"request": async () => {
title: (
<span>
物料编码-名称 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "materieId",
key: "materieId",
valueType: "select",
request: async () => {
let res = await doFetch({
url: "/ngic-workmanship/pmMaterie/selectboxByStoreId", params: {
} })
return res?.data?.dataList
url: "/ngic-workmanship/pmMaterie/selectboxByStoreId",
params: {},
});
return res?.data?.dataList;
},
"fieldProps": {
fieldProps: {
allowClear: true,
showSearch: true
showSearch: true,
},
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
{
"title": <span>出库数量 <b style={{ color: "red" }}>*</b></span>,
"dataIndex": "outstroeNum",
"key": "outstroeNum",
"formItemProps": () => {
title: (
<span>
出库数量 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "outstroeNum",
key: "outstroeNum",
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
valueType: "digit"
valueType: "digit",
},
{
"title": "可用库存",
"dataIndex": "usableNum",
"key": "usableNum",
"readonly": 'usableNum'
title: "可用库存",
dataIndex: "usableNum",
key: "usableNum",
readonly: "usableNum",
},
{
"title": "库存单位",
"dataIndex": "productionUnitName",
"key": "productionUnitName",
"readonly": 'productionUnitName'
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
readonly: "productionUnitName",
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => { }}>
<a key="delete" onClick={() => {}}>
删除
</a>,
],
},
],
rowKey: "id",
}
},
},
detail = (setselected, dom) => ({
totalCard: [
......@@ -701,7 +774,8 @@ const one = {
},
{
cardTitle: "物料信息列表",
extraContent: dom,
extraContent: "",
itemData: [
{
key: "materialList",
......@@ -714,8 +788,10 @@ const one = {
key: "materieName",
search: false,
render: (dom, row) => {
return (row.materieCode ?? '') + " - " + (row.materieName ?? '')
}
return (
(row.materieCode ?? "") + " - " + (row.materieName ?? "")
);
},
},
{
title: "出库数量",
......@@ -739,7 +815,8 @@ const one = {
pagination: "false",
rowKey: "id",
expandable: {
expandedRowRender: record => <Table
expandedRowRender: (record) => (
<Table
style={{ marginLeft: 48 }}
columns={[
{
......@@ -747,9 +824,9 @@ const one = {
dataIndex: "storePositionName",
key: "storePositionName",
search: false,
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
......@@ -765,26 +842,30 @@ const one = {
key: "supplierNo",
search: false,
render: (dom, row) => {
return (row?.supplierNo ?? '') + " - " + (row?.supplierName ?? '')
}
return (
(row?.supplierNo ?? "") +
" - " +
(row?.supplierName ?? "")
);
},
},
{
title: "下架数量",
dataIndex: "outstroeNum",
key: "outstroeNum",
search: false,
}
},
]}
dataSource={record.downloadList}
pagination={false}
/>,
/>
),
},
rowSelection: {
onChange: (selectedRowKeys, selectedRows) => {
setselected(selectedRows)
setselected(selectedRows);
},
},
}
},
],
},
......@@ -798,7 +879,7 @@ const one = {
{
title: "关单时间",
key: "closeTime",
}
},
],
},
{
......@@ -816,8 +897,10 @@ const one = {
key: "materieName",
search: false,
render: (dom, row) => {
return (row.materieCode ?? '') + " - " + (row.materieName ?? '')
}
return (
(row.materieCode ?? "") + " - " + (row.materieName ?? "")
);
},
},
{
title: "出库数量",
......@@ -834,7 +917,8 @@ const one = {
],
expandable: {
defaultExpandAllRows: true,
expandedRowRender: record => <Table
expandedRowRender: (record) => (
<Table
style={{ marginLeft: 48 }}
columns={[
{
......@@ -842,9 +926,9 @@ const one = {
dataIndex: "storePositionName",
key: "storePositionName",
search: false,
"formItemProps": () => {
formItemProps: () => {
return {
rules: [{ required: true, message: '此项为必填项' }],
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
......@@ -860,46 +944,48 @@ const one = {
key: "supplierNo",
search: false,
render: (dom, row) => {
return (row.supplierNo ?? '') + " - " + (row.supplierName ?? '')
}
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"
pagination: "false",
},
],
},
]
],
}),
dooutside = (fid, storeId) => ({
totalCard: [
......@@ -937,15 +1023,15 @@ const one = {
},
{
title: "状态",
key: "statusName"
}
key: "statusName",
},
],
},
{
cardTitle: "物料信息列表",
extra: true,
extrapath: "/ngic-workmanship/wmsMaterieOutstore/download",
extrakey: "submits",//redux key
extrakey: "submits", //redux key
itemData: [
{
key: "materialList",
......@@ -958,8 +1044,10 @@ const one = {
key: "materieName",
search: false,
render: (dom, row) => {
return (row.materieCode ?? '') + " - " + (row.materieName ?? '')
}
return (
(row.materieCode ?? "") + " - " + (row.materieName ?? "")
);
},
},
{
title: "出库数量",
......@@ -978,25 +1066,24 @@ const one = {
dataIndex: "remainderNums",
key: "remainderNums",
search: false,
}
},
],
expandable: {
expandedRowRender: record => <EditUpload record={record} fid={fid} storeId={storeId} />,
}
expandedRowRender: (record) => (
<EditUpload record={record} fid={fid} storeId={storeId} />
),
},
},
],
},
]
],
});
export default {
one,
two,
three,
four,
detail,
dooutside
dooutside,
};
import React, { useEffect, useMemo, useRef, useState } from "react";
import { Dropdown, Menu, Button, message } from "antd";
import { Dropdown, Menu, Button, message, Table } from "antd";
import AutoTable from "@/components/AutoTable";
// import defaultFields from "./fields";
import { doFetch } from "@/utils/doFetch";
......@@ -9,6 +9,7 @@ import { useReactToPrint } from "react-to-print";
import { useModel } from "umi";
import PrintDom from "./printdom";
import { PrintQrCode } from "@/components/PrintCode";
import { EditableProTable } from "@ant-design/pro-table";
const keytoval = {
one: 1,
......@@ -41,6 +42,148 @@ const keytoval = {
four: "其他出库",
};
const EditUpload = ({ record, fid, storeId }) => {
const [value, setvalue] = useState({
[record.id]: record.uploadList,
});
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,
uploadList: newArr.map((its) => {
return {
storePositionId: its?.storePositionId,
instroeNum: its?.instroeNum,
remark: its?.remark,
};
}),
};
}) ?? [];
setInitialState((s) => {
return {
...s,
submit: {
id: fid,
materialList:
s.submit && s?.submit?.materialList
? s?.submit?.materialList
?.filter(
(it) => newlist.map((item) => item.id).indexOf(it.id) == -1
)
?.concat(newlist)
?.filter((it) => it.uploadList?.length > 0)
: [],
},
};
});
}, [value]);
return (
<EditableProTable
rowKey={"id"}
maxLength={1000}
style={{ marginLeft: 48 }}
columns={[
{
title: (
<span>
库位名称 <b style={{ color: "red" }}>*</b>
</span>
),
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: (
<span>
上架数量 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "instroeNum",
key: "instroeNum",
search: false,
editable: (text, record, index) => {
return !record.materieOutstoreDetailId;
},
valueType: "digit",
formItemProps: () => {
return {
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
{
title: "备注",
dataIndex: "remark",
key: "remark",
search: false,
editable: (text, record, index) => {
return !record.materieOutstoreDetailId;
},
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
typeof record.id == "number" && (
<a key="delete" onClick={() => {}}>
删除
</a>
),
],
},
]}
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) => {
return {
...s,
[record.id]: recordList,
};
});
},
}}
pagination={false}
/>
);
};
const defaultFields = {
four: {
materieOutstoreNo: {
......@@ -241,7 +384,8 @@ const defaultFields = {
},
{
cardTitle: "物料信息列表",
extraContent: dom,
extraContent: "",
itemData: [
{
key: "materialList",
......@@ -453,121 +597,194 @@ const defaultFields = {
},
],
}),
dooutside: (fid, storeId) => ({
totalCard: [
//物料详情
{
cardTitle: "基本信息",
itemData: [
{
};
function Outstore(props) {
const { initialState, setInitialState } = useModel("@@initialState");
const [activeTabKey, onTabChange] = useState("1");
const [selectKeys, setSelectKeys] = useState([]);
let [drawprops, setdrawprops] = useState({
title: "",
visible: false,
onClose: () => {
setdrawprops((s) => ({
...s,
visible: false,
fields: {},
}));
},
fields: {},
width: 1200,
storeId: "",
materieId: "",
}),
actionRef = useRef(),
ChildRef = null,
printRef = useRef(),
mutiPrintRef = useRef();
const outStoreFields = {
materieOutstoreNo: {
value: null,
type: "input",
title: "出库单号",
key: "materieOutstoreNo",
name: ["materieOutstoreNo"],
required: false,
placeholder: "不填写系统自动生成",
readonly: true,
},
{
outstoreTypeName: {
value: null,
title: "出库类型",
key: "outstoreTypeName",
type: "input",
name: ["outstoreTypeName"],
required: true,
readonly: true,
},
{
storeId: {
value: null,
title: "出库仓库",
key: "storeName",
},
{
title: "相关单号",
key: "businessNo",
type: "input",
name: ["storeId"],
required: true,
readonly: true,
},
{
remark: {
value: null,
type: "textarea",
title: "备注",
key: "remark",
name: ["remark"],
required: false,
col: {
span: 24,
},
readonly: true,
},
materialList: {
value: [],
title: "物料信息",
type: "table",
col: { span: 24 },
name: ["materialList"],
recordCreatorProps: "false",
required: true,
// linkconfig: {
// urlchangeval: {
// //根据url接口 改变某个value
// database: (params) =>
// doFetch({
// url: "/ngic-workmanship/wmsMaterieOutstore/download",
// params,
// }),
// params: { labelId: "linked" },
// effectresult: {
// productionUnitName: "productionUnitName",
// materieCode: "materieCode",
// supplierId: "supplierId",
// supplierName: "supplierName",
// width: "width",
// ironLoss: "ironLoss",
// sheetThickness: "sheetThickness",
// shopSign: "shopSign",
// weight: "weight",
// specificationModel: "specificationModel",
// },
// },
// },
columns: [
{
title: "创建人",
key: "createUserName",
title: (
<span>
物料编码-名称 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "materieCode",
key: "materieCode",
valueType: "select",
readonly: true,
},
{
title: "创建时间",
key: "createTime",
title: (
<span>
批次号 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "labelId",
key: "labelId",
valueType: "select",
width: 220,
request: async () => {
let res = await doFetch({
url: "/ngic-workmanship/wmsMaterieInventory/query/selectbox",
params: { storeId: drawprops?.storeId },
});
return res?.data?.dataList;
},
fieldProps: {
allowClear: true,
showSearch: true,
},
formItemProps: () => {
return {
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
{
title: "状态",
key: "statusName",
title: "规格型号",
dataIndex: "specificationModel",
key: "specificationModel",
readonly: true,
},
],
{
title: "供应商",
dataIndex: "supplierName",
key: "supplierName",
readonly: "supplierName",
},
{
cardTitle: "物料信息列表",
extra: true,
extrapath: "/ngic-workmanship/wmsMaterieOutstore/download",
extrakey: "submits", //redux key
itemData: [
title: "宽度",
dataIndex: "width",
key: "width",
readonly: "width",
},
{
key: "materialList",
type: "table",
col: { span: 24 },
columns: [
title: "铁损",
dataIndex: "ironLoss",
key: "ironLoss",
readonly: "ironLoss",
},
{
title: "物料编码 - 名称",
dataIndex: "materieName",
key: "materieName",
search: false,
render: (dom, row) => {
return (
(row.materieCode ?? "") + " - " + (row.materieName ?? "")
);
title: "片厚",
dataIndex: "sheetThickness",
key: "sheetThickness",
readonly: "sheetThickness",
},
{
title: "牌号",
dataIndex: "shopSign",
key: "shopSign",
readonly: "shopSign",
},
{
title: "出库数量",
dataIndex: "outstroeNum",
key: "outstroeNum",
search: false,
title: "入库数量",
dataIndex: "weight",
key: "weight",
readonly: "weight",
},
{
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
search: false,
},
{
title: "未下架数量",
dataIndex: "remainderNums",
key: "remainderNums",
search: false,
},
],
expandable: {
expandedRowRender: (record) => (
<EditUpload record={record} fid={fid} storeId={storeId} />
),
},
},
],
readonly: "productionUnitName",
},
],
}),
};
function Outstore(props) {
const { initialState, setInitialState } = useModel("@@initialState");
const [activeTabKey, onTabChange] = useState("1");
const [selectKeys, setSelectKeys] = useState([]);
let [drawprops, setdrawprops] = useState({
title: "",
visible: false,
onClose: () => {
setdrawprops((s) => ({
...s,
visible: false,
fields: {},
}));
rowKey: "id",
},
fields: {},
width: 1200,
}),
actionRef = useRef(),
ChildRef = null,
printRef = useRef(),
mutiPrintRef = useRef();
};
//操作完成后刷新
function reload() {
......@@ -740,21 +957,28 @@ function Outstore(props) {
action,
"下架采集",
async () => {
let extra = defaultFields.dooutside(
record.id,
record.storeId
);
const details = await doFetch({
url: "/ngic-workmanship/wmsMaterieOutstore/getOutStoreInfoById",
params: {
id: record?.id,
},
});
console.log(details?.data?.data);
const detailData = details.data?.data;
if (detailData) {
for (let i in outStoreFields) {
outStoreFields[i].value = detailData[i];
}
}
setdrawprops((s) => ({
...s,
visible: true,
//查看详情 props
val: "detail",
val: "edit",
title: `下架采集`,
...extra,
totalPath:
"/ngic-workmanship/wmsMaterieOutstore/getOutStoreInfoById",
totalParams: { id: record.id },
extra: null,
fields: outStoreFields,
storeId: detailData?.storeId,
materieId: detailData?.materieId,
}));
setInitialState((s) => {
return {
......
......@@ -699,7 +699,8 @@ const one = {
},
{
cardTitle: "物料信息列表",
extraContent: dom,
extraContent: "",
itemData: [
{
key: "materialList",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment