Commit 5075c95d authored by wuhao's avatar wuhao 🎯

dsade

parent facee4fe
/*
* @Author: wuhao930406 1148547900@qq.com
* @Date: 2023-08-14 15:27:40
* @LastEditors: wuhao930406 1148547900@qq.com
* @LastEditTime: 2023-08-14 15:43:08
* @FilePath: /wms/src/components/DrawInitForm/index.jsx
* @Description:
*
* Copyright (c) 2023 by ${git_name_email}, All Rights Reserved.
*/
import InitForm from "../InitForm"; import InitForm from "../InitForm";
import { Drawer } from "antd"; import { Drawer } from "antd";
import React, { useState, memo } from "react"; import React, { useState, memo } from "react";
...@@ -40,7 +50,7 @@ function DrawInitForm(props) { ...@@ -40,7 +50,7 @@ function DrawInitForm(props) {
style={{ position: "absolute", transform: "translateX(0)",maxWidth:"100%" }} style={{ position: "absolute", transform: "translateX(0)",maxWidth:"100%" }}
width={props.val == "detail" ? 1000 : props.width} width={props.val == "detail" ? 1000 : props.width}
{...props} {...props}
destroyOnClose={true} destroyOnClose={false}
> >
{props.val == "only" && props.children} {props.val == "only" && props.children}
{props.val == "only" ? null : props.val == "detail" ? <Details {...detailprops}></Details> : <InitForm {...newProps}></InitForm>} {props.val == "only" ? null : props.val == "detail" ? <Details {...detailprops}></Details> : <InitForm {...newProps}></InitForm>}
......
import React, { useEffect, useRef,useState } from "react"; import React, { useEffect, useMemo, useRef, useState } from "react";
import { EditableProTable } from "@ant-design/pro-table"; import { EditableProTable } from "@ant-design/pro-table";
import { useUpdate } from "ahooks"; import { useUpdate } from "ahooks";
...@@ -13,108 +13,117 @@ const EditTable = ({ ...@@ -13,108 +13,117 @@ const EditTable = ({
style, style,
}) => { }) => {
const editorFormRef = useRef(); const editorFormRef = useRef();
console.log(columns); //console.log(columns);
const [show, setshow] = useState(true); const [addon, setaddon] = useState(0);
useEffect(() => {
setshow(false); const newcolumns = useMemo(() => {
setTimeout(() => { return columns?.map((item) => {
setshow(true); return item?.params
}, 1200); ? {
}, []); ...item,
params: {
...item.params,
addon,
},
}
: {
...item,
};
});
}, [addon]);
return ( return (
show && ( <EditableProTable
<EditableProTable style={{ ...(style ?? {}) }}
style={{ ...(style ?? {}) }} columns={newcolumns}
columns={columns} rowKey={rowKey}
rowKey={rowKey} value={value || []}
value={value || []} onChange={onChange}
onChange={onChange} recordCreatorProps={
recordCreatorProps={ recordCreatorProps == "false"
recordCreatorProps == "false" ? false
? false : {
: { newRecordType: "dataSource",
newRecordType: "dataSource", record: () => ({
record: () => ({ [rowKey]: Date.now(),
[rowKey]: Date.now(), }),
}), }
} }
} editableFormRef={editorFormRef}
editableFormRef={editorFormRef} editable={{
editable={{ type: "multiple",
type: "multiple", editableKeys: value ? value.map((item) => item[rowKey]) : [],
editableKeys: value ? value.map((item) => item[rowKey]) : [], actionRender: (row, config, defaultDoms) => {
actionRender: (row, config, defaultDoms) => { return [defaultDoms.delete];
return [defaultDoms.delete]; },
}, onValuesChange: async (record, recordList) => {
onValuesChange: async (record, recordList) => { setaddon(s=>Math.random()*1000000);
let { urlchangeval } = linkconfig ?? {}; let { urlchangeval } = linkconfig ?? {};
let newvalue = [...recordList]; let newvalue = [...recordList];
if (urlchangeval && record) { if (urlchangeval && record) {
//根据url 改变 数据值 //根据url 改变 数据值
let { params, database, effectresult } = urlchangeval ?? {}, let { params, database, effectresult } = urlchangeval ?? {},
curvaluerow = curvaluerow =
value && value.length > 0
? value.filter((it) => it[rowKey] == record[rowKey])[0]
: {};
//获取除本行之外已修改的value值
newvalue = newvalue.map((it, i) => {
if (!record) return it;
if (it[rowKey] == record[rowKey]) {
let freshvals = {};
Object.keys(effectresult).map((its) => {
// freshvals[its] = value[i][its];
freshvals[its] = it[its];
});
it = {
...record,
...freshvals,
};
} else {
it =
value && value.length > 0 value && value.length > 0
? value.filter((it) => it[rowKey] == record[rowKey])[0] ? value.filter((its) => its[rowKey] == it[rowKey])[0]
: {}; : {};
//获取除本行之外已修改的value值 }
return it;
});
//参数获取
let parames = {};
let ifs = true;
Object.keys(params).map((it) => {
if (params[it] == "linked") {
parames[it] = record[it];
if (record[it] != curvaluerow[it]) {
ifs = false;
}
} else {
parames[it] = params[it];
}
});
if (ifs) {
//值未变化
} else {
let res = await database(parames);
newvalue = newvalue.map((it, i) => { newvalue = newvalue.map((it, i) => {
if (!record) return it;
if (it[rowKey] == record[rowKey]) { if (it[rowKey] == record[rowKey]) {
let freshvals = {}; Object.keys(effectresult).map((items) => {
Object.keys(effectresult).map((its) => { let result = res?.data?.data ?? {};
// freshvals[its] = value[i][its]; it[items] = result[effectresult[items]];
freshvals[its] = it[its];
}); });
it = { editorFormRef.current?.setRowData?.(i, it);
...record,
...freshvals,
};
} else { } else {
it =
value && value.length > 0
? value.filter((its) => its[rowKey] == it[rowKey])[0]
: {};
} }
return it; return it;
}); });
//参数获取
let parames = {};
let ifs = true;
Object.keys(params).map((it) => {
if (params[it] == "linked") {
parames[it] = record[it];
if (record[it] != curvaluerow[it]) {
ifs = false;
}
} else {
parames[it] = params[it];
}
});
if (ifs) {
//值未变化
} else {
let res = await database(parames);
newvalue = newvalue.map((it, i) => {
if (it[rowKey] == record[rowKey]) {
Object.keys(effectresult).map((items) => {
let result = res?.data?.data ?? {};
it[items] = result[effectresult[items]];
});
editorFormRef.current?.setRowData?.(i, it);
} else {
}
return it;
});
}
} }
onChange(newvalue); }
}, onChange(newvalue);
}} },
maxLength={maxLength ?? 1000} }}
/> maxLength={maxLength ?? 1000}
) />
); );
}; };
......
import React, { useState, useEffect } from "react"; import React, { useEffect, useMemo, useRef, useState } from "react";
import DrawInitForm from "@/components/DrawInitForm"; import { Dropdown, Menu, Button, message, Table } from "antd";
import AutoTable from "@/components/AutoTable";
// import defaultFields from "./fields";
import { doFetch } from "@/utils/doFetch"; import { doFetch } from "@/utils/doFetch";
function Otherinstore() { import DrawInitForm from "@/components/DrawInitForm";
const [open, setopen] = useState(false); import getPrem from "@/utils/getPrem"; //权限判断fn
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,
two: 2,
three: 3,
four: 4,
},
items = [
{
key: "one",
label: <a>采购入库</a>,
},
{
key: "two",
label: <a>生产入库</a>,
},
{
key: "three",
label: <a>退料入库</a>,
},
{
key: "four",
label: <a>其他入库</a>,
},
],
itemz = {
one: "采购入库",
two: "生产入库",
three: "退料入库",
four: "其他入库",
};
const EditUpload = ({ record, fid, storeId }) => {
console.log(123);
const [value, setvalue] = useState({
[record.id]: record.uploadList,
});
const { initialState, setInitialState } = useModel("@@initialState");
const fetchRequest = async (params) => {
console.log(5555);
let newParams = JSON.parse(JSON.stringify(params));
let res = await doFetch({
url: "/ngic-auth/sysStorePosition/queryUseAbleSelection",
params: { storeId: newParams.storeId },
});
return res?.data?.dataList;
};
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)
: [],
},
};
});
// fetchRequest(params);
}, [value]);
useEffect(() => {
fetchRequest({
storeId,
});
}, [storeId]);
return ( return (
<> <EditableProTable
<div rowKey={"id"}
style={{ height: "20px", width: "20px", backgroundColor: "red" }} maxLength={1}
onClick={() => { style={{ marginLeft: 48 }}
setopen(!open); columns={[
}} {
></div> title: (
<DrawInitForm <span>
width="1200px" 库位名称 <b style={{ color: "red" }}>*</b>
fields={ </span>
open ),
? { dataIndex: "storePositionName",
materialList: { key: "storePositionId",
value: [], search: false,
title: "物料信息", valueType: "select",
type: "table", request: async (params) => {
col: { span: 24 }, console.log(params);
name: ["materialList"], const res = await fetchRequest(params);
required: true, return res;
linkconfig: { },
urlchangeval: { editable: (text, record, index) => {
//根据url接口 改变某个value return !record.materieOutstoreDetailId;
database: (params) => },
doFetch({ params: { storeId: storeId },
url: "/ngic-workmanship/wmsMaterieLabel/queryByLabelId", formItemProps: () => {
params, return {
}), rules: [{ required: true, message: "此项为必填项" }],
params: { labelId: "linked" }, };
effectresult: { },
productionUnitName: "productionUnitName", },
materieCode: "materieCode", {
supplierId: "supplierId", title: (
supplierName: "supplierName", <span>
width: "width", 上架数量 <b style={{ color: "red" }}>*</b>
ironLoss: "ironLoss", </span>
sheetThickness: "sheetThickness", ),
shopSign: "shopSign", dataIndex: "instroeNum",
weight: "weight", key: "instroeNum",
specificationModel: "specificationModel", search: false,
}, editable: (text, record, index) => {
}, return !record.materieOutstoreDetailId;
}, },
columns: [ valueType: "digit",
{ formItemProps: () => {
title: ( return {
<span> rules: [{ required: true, message: "此项为必填项" }],
批次号 <b style={{ color: "red" }}>*</b> };
</span> },
), },
dataIndex: "labelId", {
key: "labelId", title: "备注",
valueType: "select", dataIndex: "remark",
width: 180, key: "remark",
params: {}, search: false,
request: async () => { editable: (text, record, index) => {
alert("Please") return !record.materieOutstoreDetailId;
let res = await doFetch({ },
url: "/ngic-workmanship/wmsMaterieLabel/selectionByStatus", },
params: { status: 1 }, {
}); title: "操作",
console.log(res); valueType: "option",
return res?.data?.dataList; width: 70,
}, render: (text, record, _, action) => [
formItemProps: () => { typeof record.id == "number" && (
return { <a key="delete" onClick={() => {}}>
rules: [{ required: true, message: "此项为必填项" }], 删除
}; </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}
/>
);
};
{ function Instore(props) {
title: ( const { initialState, setInitialState } = useModel("@@initialState");
<span> const [activeTabKey, onTabChange] = useState("1");
物料编码-名称 <b style={{ color: "red" }}>*</b> const [selectKeys, setSelectKeys] = useState([]);
</span>
),
dataIndex: "materieCode",
key: "materieCode",
width: 160,
valueType: "select",
readonly: true,
renderFormItem: ({ entry }) => {
return (
<span>
{entry?.materieCode}-{entry?.materieName}
</span>
);
},
},
{
title: "规格型号",
dataIndex: "specificationModel",
key: "specificationModel",
readonly: true,
width: 140,
},
{ let [drawprops, setdrawprops] = useState({
title: "供应商", title: "",
dataIndex: "supplierName", visible: false,
key: "supplierName", onClose: () => {
readonly: "supplierName", setdrawprops((s) => ({
}, ...s,
{ visible: false,
title: "宽度", fields: {},
dataIndex: "width", }));
key: "width", },
readonly: "width", fields: {},
}, width: 1200,
{ }),
title: "铁损", actionRef = useRef(),
dataIndex: "ironLoss", ChildRef = null,
key: "ironLoss", printRef = useRef(),
readonly: "ironLoss", mutiPrintRef = useRef();
//操作完成后刷新
function reload() {
actionRef.current.reload();
ChildRef?.onRefresh();
message.success("操作成功");
setdrawprops((s) => ({
...s,
visible: false,
fields: {},
}));
}
const handlePrint = useReactToPrint({
content: () => printRef.current.dom.current,
});
const mutiPrint = useReactToPrint({
content: () => mutiPrintRef.current.dom.current,
});
const [PchList, setPchList] = useState();
useEffect(() => {
if (drawprops?.visible) {
doFetch({
url: "/ngic-workmanship/wmsMaterieLabel/selectionByStatus",
params: { status: "1" },
}).then((res) => {
setPchList(res?.data?.dataList);
});
}
}, [drawprops?.visible]);
const defaultFields = useMemo(() => {
// let option = {
// options: PchList,
// allowClear: true,
// showSearch: true,
// };
// console.log("pchlist:", option);
return {
four: {
materieInstoreNo: {
value: null,
type: "input",
title: "入库单号",
name: ["materieInstoreNo"],
required: false,
placeholder: "不填写系统自动生成",
},
storeId: {
value: null,
type: "select",
title: "入库仓库",
name: ["storeId"],
required: true,
options: {
database: () =>
doFetch({
url: "/ngic-auth/sysStore/selectionBoxAll",
params: {},
}),
params: {},
},
},
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/wmsMaterieLabel/queryByLabelId",
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: (
<span>
批次号 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "labelId",
key: "labelId",
valueType: "select",
width: 180,
params: {},
request: async (params) => {
let res = await doFetch({
url: "/ngic-workmanship/wmsMaterieLabel/selectionByStatus",
params: { status: "1" },
});
return res?.data?.dataList;
},
formItemProps: () => {
return {
rules: [{ required: true, message: "此项为必填项" }],
};
},
},
{
title: (
<span>
物料编码-名称 <b style={{ color: "red" }}>*</b>
</span>
),
dataIndex: "materieCode",
key: "materieCode",
width: 160,
valueType: "select",
readonly: true,
renderFormItem: ({ entry }) => {
return (
<span>
{entry?.materieCode}-{entry?.materieName}
</span>
);
},
},
{
title: "规格型号",
dataIndex: "specificationModel",
key: "specificationModel",
readonly: true,
width: 140,
},
{
title: "供应商",
dataIndex: "supplierName",
key: "supplierName",
readonly: "supplierName",
},
{
title: "宽度",
dataIndex: "width",
key: "width",
readonly: "width",
},
{
title: "铁损",
dataIndex: "ironLoss",
key: "ironLoss",
readonly: "ironLoss",
},
{
title: "片厚",
dataIndex: "sheetThickness",
key: "sheetThickness",
readonly: "sheetThickness",
},
{
title: "牌号",
dataIndex: "shopSign",
key: "shopSign",
readonly: "shopSign",
},
{
title: "入库数量",
dataIndex: "weight",
key: "weight",
readonly: "weight",
},
{
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
readonly: "productionUnitName",
},
{
title: "操作",
valueType: "option",
width: 70,
render: (text, record, _, action) => [
<a key="delete" onClick={() => {}}>
删除
</a>,
],
},
],
rowKey: "id",
},
},
detail: (setselected, dom) => ({
totalCard: [
//物料详情
{
cardTitle: "基本信息",
itemData: [
{
title: "入库单号",
key: "materieInstoreNo",
},
{
title: "入库类型",
key: "instoreTypeName",
},
{
title: "入库仓库",
key: "storeName",
},
{
title: "创建人",
key: "createUserName",
},
{
title: "创建时间",
key: "createTime",
},
{
title: "状态",
key: "statusName",
},
{
title: "完成时间",
key: "finishTime",
},
{
title: "备注",
key: "remark",
noshow: "100%",
},
{
title: "工单条形码",
noshow: true,
key: "qrCodeUrl",
type: "img",
width: 100,
},
],
},
{
cardTitle: "物料信息列表",
extraContent: "",
itemData: [
{
key: "materialList",
type: "table",
col: { span: 24 },
columns: [
{
title: "物料编码 - 名称",
dataIndex: "materieName",
key: "materieName",
search: false,
render: (dom, row) => {
return (
(row.materieCode ?? "") +
" - " +
(row.materieName ?? "")
);
}, },
{ },
title: "片厚", {
dataIndex: "sheetThickness", title: "供应商编号 - 名称",
key: "sheetThickness", dataIndex: "supplierNo",
readonly: "sheetThickness", key: "supplierNo",
search: false,
render: (dom, row) => {
return (
(row.supplierNo ?? "") +
" - " +
(row.supplierName ?? "")
);
}, },
{ },
title: "牌号", {
dataIndex: "shopSign", title: "批次号",
key: "shopSign", dataIndex: "materieControlNo",
readonly: "shopSign", key: "materieControlNo",
search: false,
},
{
title: "入库数量",
dataIndex: "instroeNum",
key: "instroeNum",
search: false,
},
{
title: "未上架数量",
dataIndex: "remainderNums",
key: "remainderNums",
search: false,
},
{
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
search: false,
},
],
expandable: {
defaultExpandAllRows: true,
expandedRowRender: (record) => (
<Table
style={{ marginLeft: 48 }}
columns={[
{
title: "库位名称",
dataIndex: "storePositionName",
key: "storePositionName",
search: false,
formItemProps: () => {
return {
rules: [
{ required: true, message: "此项为必填项" },
],
};
},
},
{
title: "上架数量",
dataIndex: "instroeNum",
key: "instroeNum",
search: false,
formItemProps: () => {
return {
rules: [
{ required: true, message: "此项为必填项" },
],
};
},
},
]}
dataSource={record.uploadList}
pagination={false}
/>
),
},
pagination: "false",
rowKey: "id",
rowSelection: {
onChange: (selectedRowKeys, selectedRows) => {
setselected(selectedRows);
},
},
},
],
},
{
cardTitle: "强制关单信息",
itemData: [
{
title: "关单人",
key: "closeUserName",
},
{
title: "关单时间",
key: "closeTime",
},
],
},
{
cardTitle: "上架明细",
noPrint: true,
itemData: [
{
key: "materialUploadList",
type: "table",
col: { span: 24 },
columns: [
{
title: "物料编码 - 名称",
dataIndex: "materieName",
key: "materieName",
search: false,
render: (dom, row) => {
return (
(row.materieCode ?? "") +
" - " +
(row.materieName ?? "")
);
}, },
{ },
title: "入库数量", {
dataIndex: "weight", title: "供应商编号 - 名称",
key: "weight", dataIndex: "supplierNo",
readonly: "weight", key: "supplierNo",
search: false,
render: (dom, row) => {
return (
(row.supplierNo ?? "") +
" - " +
(row.supplierName ?? "")
);
}, },
{ },
title: "库存单位", {
dataIndex: "productionUnitName", title: "批次号",
key: "productionUnitName", dataIndex: "materieControlNo",
readonly: "productionUnitName", key: "materieControlNo",
search: false,
},
{
title: "入库数量",
dataIndex: "instroeNum",
key: "instroeNum",
search: false,
},
{
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
search: false,
},
],
expandable: {
defaultExpandAllRows: true,
expandedRowRender: (record) => (
<Table
style={{ marginLeft: 48 }}
columns={[
{
title: "库位名称",
dataIndex: "storePositionName",
key: "storePositionName",
search: false,
formItemProps: () => {
return {
rules: [
{ required: true, message: "此项为必填项" },
],
};
},
},
{
title: "上架数量",
dataIndex: "instroeNum",
key: "instroeNum",
search: false,
formItemProps: () => {
return {
rules: [
{ required: true, message: "此项为必填项" },
],
};
},
},
{
title: "备注",
dataIndex: "remark",
key: "remark",
search: false,
},
{
title: "操作人",
dataIndex: "uploadUserName",
key: "uploadUserName",
search: false,
},
{
title: "操作时间",
dataIndex: "uploadTime",
key: "uploadTime",
search: false,
},
]}
dataSource={record.uploadList}
pagination={false}
/>
),
},
pagination: "false",
},
],
},
],
}),
doinsert: (fid, storeId) => ({
totalCard: [
//物料详情
{
cardTitle: "基本信息",
itemData: [
{
title: "入库单号",
key: "materieInstoreNo",
},
{
title: "入库类型",
key: "instoreTypeName",
},
{
title: "入库仓库",
key: "storeName",
},
{
title: "相关单号",
key: "businessNo",
},
{
title: "备注",
key: "remark",
},
{
title: "创建人",
key: "createUserName",
},
{
title: "创建时间",
key: "createTime",
},
{
title: "状态",
key: "statusName",
},
],
},
{
cardTitle: "物料信息",
extra: true,
extrapath: "/ngic-workmanship/wmsMaterieInstore/uploadOtherInstore",
extrakey: "submit", //redux key
itemData: [
{
key: "materialList",
type: "table",
col: { span: 24 },
columns: [
{
title: "物料编码 - 名称",
dataIndex: "materieName",
key: "materieName",
search: false,
render: (dom, row) => {
return (
(row.materieCode ?? "") +
" - " +
(row.materieName ?? "")
);
}, },
{ },
title: "操作", {
valueType: "option", title: "供应商编号 - 名称",
width: 70, dataIndex: "supplierNo",
render: (text, record, _, action) => [ key: "supplierNo",
<a key="delete" onClick={() => {}}> search: false,
删除 render: (dom, row) => {
</a>, return (
], (row.supplierNo ?? "") +
" - " +
(row.supplierName ?? "")
);
}, },
], },
rowKey: "id", {
title: "批次号",
dataIndex: "materieControlNo",
key: "materieControlNo",
search: false,
},
{
title: "入库数量",
dataIndex: "instroeNum",
key: "instroeNum",
search: false,
},
{
title: "未上架数量",
dataIndex: "remainderNums",
key: "remainderNums",
search: false,
},
{
title: "库存单位",
dataIndex: "productionUnitName",
key: "productionUnitName",
search: false,
},
],
expandable: {
expandedRowRender: (record) => (
<EditUpload record={record} fid={fid} storeId={storeId} />
),
},
rowKey: "id",
},
],
},
],
}),
};
}, [PchList]);
// const defaultFields = useMemo(() => {
// console.log(PchList);
// return
// }, [PchList]);
const PrintButton = (
<Button
disabled={!selectKeys.length}
onClick={() => {
mutiPrint();
}}
>
打印
</Button>
);
useEffect(() => {
const detail = defaultFields.detail(setSelectKeys, PrintButton);
setdrawprops((s) => ({
...s,
...detail,
}));
}, [selectKeys]);
const columns = useMemo(() => {
if (activeTabKey == "1") {
return [
{
title: "入库单号",
dataIndex: "materieInstoreNo",
key: "materieInstoreNo",
search: false,
render: (dom, record) => {
return (
<a
onClick={async () => {
const detail = defaultFields.detail(
setSelectKeys,
PrintButton
);
setdrawprops((s) => ({
...s,
visible: true,
//查看详情 props
val: "detail",
title: `查看详情`,
...detail,
totalPath:
"/ngic-workmanship/wmsMaterieInstore/getInStoreInfoById",
totalParams: { id: record.id },
extra: (
<Button
onClick={async () => {
handlePrint();
}}
>
打印
</Button>
),
}));
}}
>
{dom}
</a>
);
},
},
{
title: "入库类型",
dataIndex: "instoreTypeName",
key: "instoreType",
search: false,
valueType: "select",
options: [
{
label: "采购入库",
value: "1",
},
{
label: "生产入库",
value: "2",
},
{
label: "退料入库",
value: "3",
},
{
label: "其他入库",
value: "4",
},
],
},
{
title: "入库仓库",
search: false,
dataIndex: "storeName",
key: "storeId",
fieldProps: {
allowClear: true,
showSearch: true,
},
options: {
database: () =>
doFetch({
url: "/ngic-auth/sysStore/selectionBox",
params: { factoryIdList: [] },
}),
params: {},
},
valueType: "select",
},
{
title: "备注",
dataIndex: "remark",
key: "remark",
search: false,
},
{
title: "创建人",
dataIndex: "createUserName",
search: false,
key: "createUserName",
},
{
title: "创建时间",
dataIndex: "createTime",
key: "createTime",
valueType: "dateRange",
formItemProps: {
name: "createTimeList",
},
},
{
title: "状态",
dataIndex: "statusName",
search: false,
key: "status",
valueType: "select",
options: [
{
label: "待分配",
value: "5",
},
{
label: "待执行",
value: "6",
},
{
label: "执行中",
value: "7",
},
],
},
{
title: "操作",
valueType: "option",
width: 240,
render: (text, record, _, action) => {
return [
getPrem(
"equipmentCustomer_save",
action,
"上架采集",
async () => {
let extra = defaultFields.doinsert(record.id, record.storeId);
setdrawprops((s) => ({
...s,
visible: true,
//查看详情 props
val: "detail",
title: `上架采集`,
totalPath:
"/ngic-workmanship/wmsMaterieInstore/getInStoreInfoById",
totalParams: { id: record.id },
extra: null,
...extra,
}));
setInitialState((s) => {
return {
...s,
submit: {},
};
});
}
),
getPrem("equipmentCustomer_deleteById", action, "关单", null, {
title: "确认关单?",
onConfirm: () => {
doFetch({
url: "/ngic-workmanship/wmsMaterieInstore/close",
params: { id: record.id },
}).then((res) => {
if (res.code == "0000") {
reload();
}
});
}, },
} }),
: {}
} record?.status === 7
visible={open} ? null
onClose={() => { : getPrem(
setopen(false); "equipmentCustomer_deleteById",
action,
"删除",
null,
{
title: "确认删除?",
onConfirm: () => {
doFetch({
url: "/ngic-workmanship/wmsMaterieInstore/deleteById",
params: { id: record.id },
}).then((res) => {
if (res.code == "0000") {
reload();
}
});
},
}
),
];
},
},
];
} else {
return [
{
title: "入库单号",
dataIndex: "materieInstoreNo",
key: "materieInstoreNo",
render: (dom, record) => {
return (
<a
onClick={() => {
setdrawprops((s) => ({
...s,
visible: true,
//查看详情 props
val: "detail",
title: `查看详情`,
...defaultFields?.detail,
totalPath:
"/ngic-workmanship/wmsMaterieInstoreHis/getInStoreInfoById",
totalParams: { id: record.id },
extra: null,
}));
}}
>
{dom}
</a>
);
},
},
{
title: "入库类型",
dataIndex: "instoreTypeName",
search: false,
key: "instoreType",
valueType: "select",
options: [
{
label: "采购入库",
value: "1",
},
{
label: "生产入库",
value: "2",
},
{
label: "退料入库",
value: "3",
},
{
label: "其他入库",
value: "4",
},
],
},
{
title: "入库仓库",
search: false,
dataIndex: "storeName",
key: "storeId",
fieldProps: {
allowClear: true,
showSearch: true,
},
options: {
database: () =>
doFetch({
url: "/ngic-auth/sysStore/selectionBox",
params: { factoryIdList: [] },
}),
params: {},
},
valueType: "select",
},
{
title: "备注",
dataIndex: "remark",
key: "remark",
search: false,
},
{
search: false,
title: "创建人",
dataIndex: "createUserName",
key: "createUserName",
},
{
title: "创建时间",
dataIndex: "createTime",
key: "createTime",
valueType: "dateRange",
formItemProps: {
name: "createTimeList",
},
},
{
title: "完成时间",
dataIndex: "finishTime",
key: "finishTime",
valueType: "dateRange",
formItemProps: {
name: "finishTimeList",
},
},
{
title: "状态",
dataIndex: "statusName",
search: false,
key: "status",
valueType: "select",
options: [
{
label: "已上架",
value: "2",
},
{
label: "已关单",
value: "4",
},
],
},
];
}
}, [activeTabKey]);
const tableprops = {
...props,
pageextra:
activeTabKey == "1" ? (
<Button
type="primary"
onClick={(e) => {
setdrawprops((s) => ({
...s,
visible: true,
title: itemz["four"],
fields: defaultFields["four"],
instoreType: keytoval["four"],
val: "add", //类型
extra: null,
}));
}}
>
新增
</Button>
) : (
"none"
),
tabList: [
{
tab: "未完成",
key: "1",
},
{
tab: "已完成",
key: "2",
},
],
activeTabKey,
onTabChange,
columns,
path:
activeTabKey == "1"
? "/ngic-workmanship/wmsMaterieInstore/queryOtherList"
: "/ngic-workmanship/wmsMaterieInstoreHis/queryOtherList",
};
return (
<div>
<div style={{ position: "fixed", bottom: -100000 }}>
<PrintDom ref={printRef} {...drawprops} />
</div>
<div style={{ display: "none" }}>
<PrintQrCode ref={mutiPrintRef} selectedItems={selectKeys} />
</div>
<AutoTable
{...tableprops}
actionRef={actionRef}
onRef={(node) => (ChildRef = node)}
></AutoTable>
<DrawInitForm
{...drawprops}
submitData={async (value) => {
if (drawprops.val == "add") {
const data = JSON.parse(JSON.stringify(value));
const materialList = data?.materialList?.map((it) => {
return {
labelId: it?.labelId,
};
});
let res = await doFetch({
url: "/ngic-workmanship/wmsMaterieInstore/saveOtherInstore",
params: {
materieInstoreNo: data.materieInstoreNo,
storeId: data.storeId,
remark: data.remark,
materialList: materialList,
},
});
if (res.code == "0000") {
reload();
}
}
}} }}
></DrawInitForm> reload={reload}
</> />
</div>
); );
} }
export default Otherinstore; export default Instore;
...@@ -340,6 +340,7 @@ function Instore(props) { ...@@ -340,6 +340,7 @@ function Instore(props) {
key: "labelId", key: "labelId",
valueType: "select", valueType: "select",
width: 180, width: 180,
params: {},
request: async (params) => { request: async (params) => {
let res = await doFetch({ let res = await doFetch({
url: "/ngic-workmanship/wmsMaterieLabel/selectionByStatus", url: "/ngic-workmanship/wmsMaterieLabel/selectionByStatus",
......
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