diff --git a/src/components/WareClerk/GoodsIn.jsx b/src/components/WareClerk/GoodsIn.jsx
index 241012d104f91f9cf9144cf489f7920a0cc50337..97bf89d6511323b0e5b417b825c9af93d63dfa22 100644
--- a/src/components/WareClerk/GoodsIn.jsx
+++ b/src/components/WareClerk/GoodsIn.jsx
@@ -1,5 +1,5 @@
import React, { useState, useEffect } from "react";
-import { useLocation } from "react-router-dom";
+import { useLocation, useNavigate } from "react-router-dom";
import { Table, Modal, Button, message } from "antd";
import axios from "axios";
@@ -11,8 +11,12 @@ const editCSS =
const GoodsIn = () => {
const location = useLocation();
+ const navigate = useNavigate();
+
const ownerIC = location.state.record.orderOwner;
+ // console.log(location.state.record)
+
const [repositoryRaw, setRepositoryRaw] = useState([]);
const [repositoryList, setRepositoryList] = useState([]);
const [orderList, setOrderList] = useState(
@@ -78,24 +82,6 @@ const GoodsIn = () => {
setPosSelected("");
setInAmount(0);
setIsModalVisible(false);
- // axios
- // .post("http://127.0.0.1:8088/admin/ware-clerk/tasks/goods-in/goods", {
- // ...singleGoods
- // })
- // .then((res) => {
- // if (res.data.code === 10000) {
- // message.success(res.data.message);
- // list.push(singleGoods);
- // setInventoryList([...list]);
- // setIsModalVisible(false);
- // } else {
- // message.error(res.data.message);
- // }
- // })
- // .catch((err) => {
- // console.log(err);
- // message.error(err);
- // });
};
const handleCancel = () => {
@@ -130,6 +116,7 @@ const GoodsIn = () => {
.then((res) => {
if (res.data.code === 10000) {
message.success(res.data.message);
+ navigate(-1);
} else {
message.error(res.data.message);
}
diff --git a/src/components/WareClerk/WareChange.jsx b/src/components/WareClerk/WareChange.jsx
index e59280b1f95905fc3cc00eb078bfb623ba6380a2..35f6fe88d7dd5b95052199b4ee14d18a690c982f 100644
--- a/src/components/WareClerk/WareChange.jsx
+++ b/src/components/WareClerk/WareChange.jsx
@@ -1,7 +1,7 @@
import React, { useState, useEffect } from "react";
import axios from "axios";
import { FiSearch } from "react-icons/fi";
-import { Modal, Table } from "antd";
+import { Modal, Table, Button, message } from "antd";
import InputArea from "../InputArea";
import Selector from "../Selector";
@@ -9,21 +9,62 @@ import Selector from "../Selector";
const WareChange = () => {
const [curData, setCurData] = useState(null);
const [ownerIC, setOwnerIC] = useState(null);
- const [mockData, setMockData] = useState([]);
+
+ const [stock, setStock] = useState([]);
const [searchRes, setSearchRes] = useState([]);
+
+ const [repositoryRaw, setRepositoryRaw] = useState([]);
+ const [repositoryList, setRepositoryList] = useState([]);
+ const [posList, setPosList] = useState([]);
+ const [repoSelected, setRepoSelected] = useState("");
+ const [posSelected, setPosSelected] = useState("");
+
+ const [initial, setInitial] = useState(true);
+ const [loading, setLoading] = useState(false);
+ const [dataUpdate, setDataUpdate] = useState(false);
+ const [isInfoCompleted, setIsInfoCompleted] = useState(false);
const [isModalVisible, setIsModalVisible] = useState(false);
const [isCancelModalVisible, setIsCancelModalVisible] = useState(false);
const showModal = (item) => {
setCurData(item);
+ // console.log(item)
setIsModalVisible(true);
};
const handleOk = () => {
- setIsModalVisible(false);
+ // console.log(curData, repoSelected, posSelected);
+ setLoading(true);
+ axios
+ .post("http://127.0.0.1:8088/ /admin/ware-clerk/ware-change/change", {
+ ...curData,
+ inventoryRepositoryNew: repoSelected,
+ inventoryPositionNew: posSelected,
+ })
+ .then((res) => {
+ if (res.data.success) {
+ message.success(res.data.message);
+ setLoading(false);
+ setIsModalVisible(false);
+ setRepoSelected("");
+ setPosSelected("");
+ setDataUpdate((pre) => !pre);
+ } else {
+ message.error(res.data.message);
+ }
+ setLoading(false);
+ })
+ .catch((err) => {
+ console.log(err);
+ setTimeout(() => {
+ setLoading(false);
+ }, 2000);
+ });
};
const handleCancel = () => {
+ setRepoSelected("");
+ setPosSelected("");
setIsCancelModalVisible(true);
};
@@ -39,38 +80,34 @@ const WareChange = () => {
const searchHandler = (e) => {
e.preventDefault();
const [input] = document.forms[0];
- console.log(input.value);
+ // console.log(input.value);
if (input.value) {
- setSearchRes(mockData.filter((item) => item.buyer === ownerIC));
+ setSearchRes(stock.filter((item) => item.inventoryOwner == ownerIC));
} else {
- setSearchRes(mockData);
+ setSearchRes(stock);
}
};
const columns = [
{
title: "货品编号",
- dataIndex: "id",
+ dataIndex: "inventoryId",
},
{
title: "货品名称",
- dataIndex: "name",
+ dataIndex: "inventoryProductName",
},
{
title: "货主名称",
- dataIndex: "owner",
- },
- {
- title: "货主IC编号",
- dataIndex: "buyer",
+ dataIndex: "inventoryOwner",
},
{
title: "仓库号",
- dataIndex: "in",
+ dataIndex: "inventoryRepository",
},
{
title: "仓位号",
- dataIndex: "in",
+ dataIndex: "inventoryPosition",
},
{
title: "操作",
@@ -88,13 +125,77 @@ const WareChange = () => {
},
];
+ //检查仓位是否重复
useEffect(() => {
- axios.get("/admin/accountant/order-query").then((res) => {
- setMockData(res.data.result.list.filter((data) => data.type === 0));
- setSearchRes(res.data.result.list.filter((data) => data.type === 0));
- });
+ if (initial) {
+ setInitial(false);
+ return;
+ }
+ if (curData && posSelected === curData.inventoryPosition) {
+ setIsInfoCompleted(false);
+ } else {
+ setIsInfoCompleted(repoSelected && posSelected);
+ }
+ }, [repoSelected, posSelected]);
+
+ //所有库存
+ useEffect(() => {
+ axios
+ .get("http://127.0.0.1:8088/admin/ware-manager/stock/findAll")
+ .then((res) => {
+ if (res.data.success) {
+ setStock(res.data.data.stock);
+ setSearchRes(res.data.data.stock);
+ } else {
+ message.error(res.data.message);
+ }
+ })
+ .catch((err) => {
+ console.log(err);
+ message.error(err);
+ });
+ }, [dataUpdate]);
+
+ //所有仓库
+ useEffect(() => {
+ axios
+ .get("http://127.0.0.1:8088/admin/system/ware-manage/queryAll")
+ .then((res) => {
+ if (res.data.code === 10000) {
+ setRepositoryRaw(res.data.data.repositoryList);
+ setRepositoryList(
+ res.data.data.repositoryList.map((item) => ({
+ id: item.repositoryId,
+ name: item.repositoryId,
+ }))
+ );
+ } else {
+ message.error(res.data.message);
+ }
+ })
+ .catch((err) => {
+ console.log(err);
+ message.error(err);
+ });
}, []);
+ //所有仓位
+ useEffect(() => {
+ let resObj = {};
+ for (let repo of repositoryList) {
+ Object.assign(resObj, {
+ [repo.id]: repositoryRaw
+ .filter((item) => item.repositoryId === repo.id)[0]
+ .positionVOList.filter((item) => item.positionStatus !== 0)
+ .map((item) => ({
+ id: item.positionId,
+ name: item.positionNum,
+ })),
+ });
+ }
+ setPosList(resObj);
+ }, [repositoryList]);
+
return (
@@ -131,54 +232,69 @@ const WareChange = () => {
}}
/>
-
-
-
-
- setAdminCategory(e.target.value)}
- className={
- "w-20 pt-1 outline-none border-gray-300 border-2 rounded-lg font-medium"
- }
- // categories={adminCategories.filter(
- // (cat) => cat.id !== item.priority
- // )}
- />
-
-
-
-
setAdminCategory(e.target.value)}
- className={
- "w-20 pt-1 outline-none border-gray-300 border-2 rounded-lg font-medium"
- }
- // categories={adminCategories.filter(
- // (cat) => cat.id !== item.priority
- // )}
- />
+ {isModalVisible && (
+
+ {"取消"}
+ ,
+ ,
+ ]}
+ >
+
+
+
+ {
+ setRepoSelected(+e.target.value);
+ }}
+ className={
+ "w-20 pt-1 outline-none border-gray-300 border-2 rounded-lg font-medium"
+ }
+ categories={repositoryList}
+ />
+
+
+
+ {
+ setPosSelected(+e.target.value);
+ }}
+ className={
+ "w-20 pt-1 outline-none border-gray-300 border-2 rounded-lg font-medium"
+ }
+ categories={posList[repoSelected]}
+ />
+
-
-
+
+ )}
{/* Cancel Modal */}
-
- ⚠️ 确定放弃修改吗?
-
+ {isCancelModalVisible && (
+
+ ⚠️ 确定放弃修改吗?
+
+ )}
);
};
diff --git a/src/components/WareManager/Stock.jsx b/src/components/WareManager/Stock.jsx
index 0adaaab285e205d5611e2e405011c83d98b32c8c..d22c7a97b92f067994255acf55a66e709eeaf7dd 100644
--- a/src/components/WareManager/Stock.jsx
+++ b/src/components/WareManager/Stock.jsx
@@ -1,19 +1,19 @@
import React, { useState, useEffect } from "react";
import axios from "axios";
import { FiSearch } from "react-icons/fi";
-import { Table, DatePicker, Space, ConfigProvider } from "antd";
+import { Table, DatePicker, Space, ConfigProvider, message } from "antd";
import locale from "antd/lib/locale/zh_CN";
import Selector from "../Selector";
import InputArea from "../InputArea";
const Stock = () => {
+
const onChange = (date, dateString) => {
setTime(dateString);
- // console.log(date, dateString);
};
- const [cate, setCate] = useState(-1); //-1是全部
+ const [cate, setCate] = useState(-1); //-1是全部仓库
const [time, setTime] = useState(null);
const [info, setInfo] = useState(null);
@@ -21,97 +21,106 @@ const Stock = () => {
const [dataSource, setDataSource] = useState([]);
useEffect(() => {
- axios.get("/admin/ware-manager/stock").then((res) => {
- setSearchRes(res.data.result.list);
- setDataSource(res.data.result.list);
- // setSearchRes(res.data.result.list);
- });
+ axios
+ .get("http://127.0.0.1:8088/admin/ware-manager/stock/findAll")
+ .then((res) => {
+ if (res.data.success) {
+ setSearchRes(res.data.data.stock);
+ setDataSource(res.data.data.stock);
+ } else {
+ message.error(res.data.message);
+ }
+ })
+ .catch((err) => {
+ console.log(err);
+ });
}, []);
const columns = [
{
title: "仓库号",
- dataIndex: "repository",
+ dataIndex: "inventoryRepository",
},
{
title: "仓位号",
- dataIndex: "position",
+ dataIndex: "inventoryPosition",
},
{
title: "货品编号",
- dataIndex: "product",
+ dataIndex: "inventoryProduct",
},
{
title: "货品名称",
- dataIndex: "name",
- },
- {
- title: "货品类型",
- dataIndex: "type",
+ dataIndex: "inventoryProductName",
},
{
- title: "货主名称",
- dataIndex: "owner",
+ title: "货主IC",
+ dataIndex: "inventoryOwner",
},
{
title: "入库时间",
- dataIndex: "time",
- render: (record) => record.split(" ")[0],
+ dataIndex: "inventoryCreatetime",
+ render: (record) => record.split("T")[0],
},
];
- const query = (event) => {
+ const query = (e) => {
+ e.preventDefault();
if (cate == -1 && !time && !info) {
setSearchRes(dataSource);
} else if (cate != -1 && !time && !info) {
- setSearchRes(dataSource.filter((item) => item.repository == cate));
+ setSearchRes(
+ dataSource.filter((item) => item.inventoryRepository == cate)
+ );
} else if (cate == -1 && time && !info) {
setSearchRes(
- dataSource.filter((item) => item.time.split(" ")[0] == time)
+ dataSource.filter(
+ (item) => item.inventoryCreatetime.split("T")[0] == time
+ )
);
} else if (cate == -1 && !time && info) {
setSearchRes(
dataSource.filter(
- (item) => item.owner == info || item.type == info || item.name == info
+ (item) =>
+ item.inventoryOwner == info || item.inventoryProductName == info
)
);
} else if (cate == -1 && time && info) {
setSearchRes(
dataSource.filter(
(item) =>
- item.time.split(" ")[0] == time &&
- (item.owner == info || item.type == info || item.name == info)
+ item.inventoryCreatetime.split("T")[0] == time &&
+ (item.inventoryOwner == info || item.inventoryProductName == info)
)
);
} else if (cate != -1 && time && !info) {
setSearchRes(
dataSource.filter(
- (item) => item.time.split(" ")[0] == time && item.repository == cate
+ (item) =>
+ item.inventoryCreatetime.split("T")[0] == time &&
+ item.inventoryRepository == cate
)
);
} else if (cate != -1 && !time && info) {
setSearchRes(
dataSource.filter(
(item) =>
- item.repository == cate &&
- (item.owner == info || item.type == info || item.name == info)
+ item.inventoryRepository == cate &&
+ (item.inventoryOwner == info || item.inventoryProductName == info)
)
);
} else if (cate != -1 && time && info) {
setSearchRes(
dataSource.filter(
(item) =>
- item.time.split(" ")[0] == time &&
- item.repository == cate &&
- (item.owner == info || item.type == info || item.name == info)
+ item.inventoryCreatetime.split("T")[0] == time &&
+ item.inventoryRepository == cate &&
+ (item.inventoryOwner == info || item.inventoryProductName == info)
)
);
}
-
- //setSearchRes(dataSource.filter(item=>item.repository===cate&&item.time===time));
- console.log(cate);
- console.log(time);
- event.preventDefault();
+ // console.log(cate);
+ // console.log(time);
};
return (
@@ -126,7 +135,10 @@ const Stock = () => {
.map((item) =>
Object.assign(
{},
- { id: item.repository, name: item.repository }
+ {
+ id: item.inventoryRepository,
+ name: item.inventoryRepository,
+ }
)
)
.concat({ id: "-1", name: "全部" })}
@@ -145,7 +157,7 @@ const Stock = () => {
setInfo(e.target.value)}
- placeholder={"货主名称/货品名称/货品类型"}
+ placeholder={"货主IC/货品名称"}
className={
"w-[200px] pl-2 py-1 outline-none border-gray-300 border-2 rounded"
}
diff --git a/src/components/WareManager/StockQuery.js b/src/components/WareManager/StockQuery.js
deleted file mode 100644
index c9648858db9b9e174669231308d0d27b9325fa06..0000000000000000000000000000000000000000
--- a/src/components/WareManager/StockQuery.js
+++ /dev/null
@@ -1,87 +0,0 @@
-import React, { useState, useEffect } from "react";
-import axios from "axios";
-import { Table } from "antd";
-import { FiSearch } from "react-icons/fi";
-import { DatePicker, Space, ConfigProvider } from "antd";
-import locale from "antd/lib/locale/zh_CN";
-
-import { wareCategories } from "../../utils/data";
-import Selector from "../Selector";
-import InputArea from "../InputArea";
-/*
-class StockQuery extends React.Component{
- constructor(props){
- super(props);
- this.state={
- queryCate:null,
- queryDate:null,
- queryInfo:null,
- }
- this.cateChange=this.cateChange.bind(this);
- this.dateChange=this.dateChange.bind(this);
- this.query=this.query.bind(this);
- }
-
- cateChange(event){
- this.setState({
- queryCate:event.target.value,
- })
- }
-
- dateChange(date, dateString){
- this.setState({
- queryDate:dateString,
- })
- console.log(date, dateString);
- }
-
- query(event){
- this.props.mockStockData=this.props.dataSource.filter(item=>item.time==this.state.queryDate),
-
- event.preventDefault();
- }
-
- render(){
- return(
-
- )
- }
-}
-
-export default StockQuery;*/
\ No newline at end of file
diff --git a/src/components/WareManager/WareQuery.jsx b/src/components/WareManager/WareQuery.jsx
index 27f6022b785795f64832f274de2a02ade4ef74b1..6487c06ea6f809caab24a64e8a1ad0357f0f6aa3 100644
--- a/src/components/WareManager/WareQuery.jsx
+++ b/src/components/WareManager/WareQuery.jsx
@@ -12,7 +12,7 @@ const { TabPane } = Tabs;
// 流水查询
const WareQuery = () => {
- const [cate, setCate] = useState(3);
+ const [cate, setCate] = useState(6);
const [inTime, setInTime] = useState(null);
const [outTime, setOutTime] = useState(null);
const [inTime2, setInTime2] = useState(null);
diff --git a/src/index.js b/src/index.js
index e04292ef877bceb63c63b848eb673d31803d2bfb..c0fb00377113e394137e8254626d11ee370e62cb 100644
--- a/src/index.js
+++ b/src/index.js
@@ -4,7 +4,6 @@ import { BrowserRouter as Router } from "react-router-dom";
import "./index.css";
import App from "./App";
import './mock';
-import reportWebVitals from "./reportWebVitals";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
@@ -12,5 +11,3 @@ root.render(
);
-
-reportWebVitals();
diff --git a/src/pages/Admin.jsx b/src/pages/Admin.jsx
index 37e124a470edb166f42d7e89ca33eb44d165a61e..ddd43e7acb24d73841957d83596fb984eead56fb 100644
--- a/src/pages/Admin.jsx
+++ b/src/pages/Admin.jsx
@@ -26,7 +26,6 @@ import {
wareManagerMenu,
priority,
} from "../utils/data";
-import { loginAdmin } from "../utils/adminCookie";
const menuList = [
sysManagerMenu,
@@ -36,15 +35,13 @@ const menuList = [
];
const Admin = () => {
- const [adminInfo] = loginAdmin();
+ const username = localStorage.getItem("username");
+ const localPriority = localStorage.getItem("priority");
return (