From f155518ba4bde9c598ea8e2ea17417f2e41df839 Mon Sep 17 00:00:00 2001
From: BenjaminNH <1249376374@qq.com>
Date: Thu, 3 Jul 2025 16:49:07 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E7=AE=A1=E7=90=86=E5=91=98=E7=94=A8?=
=?UTF-8?q?=E6=88=B7=E7=AE=A1=E7=90=86=E9=A1=B5=E6=B7=BB=E5=8A=A0=E8=A7=92?=
=?UTF-8?q?=E8=89=B2=E5=88=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/vite.svg | 1 -
src/api/axios.js | 2 +-
src/config/menuConfig.js | 2 +-
src/pages/admin/UserDetailModal.jsx | 8 +-------
src/pages/admin/UserManage.jsx | 21 +++++++++++++++------
src/pages/deviceAdmin/DeviceDetailModal.jsx | 2 +-
6 files changed, 19 insertions(+), 17 deletions(-)
delete mode 100644 public/vite.svg
diff --git a/public/vite.svg b/public/vite.svg
deleted file mode 100644
index e7b8dfb..0000000
--- a/public/vite.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/api/axios.js b/src/api/axios.js
index cff5057..ad29c3a 100644
--- a/src/api/axios.js
+++ b/src/api/axios.js
@@ -2,7 +2,7 @@ import { message } from "antd";
import axios from "axios";
import { logout } from "../features/auth/authSlice";
-const baseURL = "http://127.0.0.1:8080";
+const baseURL = import.meta.env.VITE_API_URL;
const axiosInstance = axios.create({
baseURL: baseURL,
diff --git a/src/config/menuConfig.js b/src/config/menuConfig.js
index 1ce51bc..a9aa6a4 100644
--- a/src/config/menuConfig.js
+++ b/src/config/menuConfig.js
@@ -65,7 +65,7 @@ const menuConfig = [
path: "/userdetail",
label: "个人信息",
icon: UserOutlined,
- roles: ["USER", "LEADER", "DEVICE_ADMIN"],
+ roles: ["USER", "LEADER", "DEVICE_ADMIN", "ADMIN"],
},
];
diff --git a/src/pages/admin/UserDetailModal.jsx b/src/pages/admin/UserDetailModal.jsx
index 18ea8b8..fdd797f 100644
--- a/src/pages/admin/UserDetailModal.jsx
+++ b/src/pages/admin/UserDetailModal.jsx
@@ -7,27 +7,21 @@ export default function UserDetailModal({
visiable,
mode = "create",
user,
+ roles,
onclose,
onSuccess,
}) {
const [form] = Form.useForm();
const [initialValues, setInitialValues] = useState();
const [teams, setTeams] = useState([]);
- const [roles, setRoles] = useState([]);
const fetchTeams = async () => {
const data = await axiosInstance.get("/teams");
setTeams(data);
};
- const fetchRoles = async () => {
- const data = await axiosInstance.get("/role");
- setRoles(data);
- };
-
useEffect(() => {
fetchTeams();
- fetchRoles();
}, []);
useEffect(() => {
diff --git a/src/pages/admin/UserManage.jsx b/src/pages/admin/UserManage.jsx
index 4f85b3d..f5cfad6 100644
--- a/src/pages/admin/UserManage.jsx
+++ b/src/pages/admin/UserManage.jsx
@@ -11,12 +11,18 @@ export default function UserManage() {
const [modalMode, setModalMode] = useState();
const [selectedUser, setSelectedUser] = useState();
const [modalOpen, setModalOpen] = useState(false);
+ const [roles, setRoles] = useState([]);
const [pagination, setPagination] = useState({
current: 1,
pageSize: 10,
total: 0,
});
+ const fetchRoles = async () => {
+ const data = await axiosInstance.get("/role");
+ setRoles(data);
+ };
+
const fetchData = async (pagination, name) => {
const data = await axiosInstance.get("/user", {
params: {
@@ -32,13 +38,8 @@ export default function UserManage() {
});
};
- const fetchTeams = async () => {
- const data = await axiosInstance.get("/teams");
- setTeams(data);
- };
-
useEffect(() => {
- // fetchTeams();
+ fetchRoles();
fetchData({
current: 1,
pageSize: 10,
@@ -98,6 +99,13 @@ export default function UserManage() {
+
+ roles.find((r) => r.value === roleId)?.label || "未知角色"
+ }
+ />
{
@@ -131,6 +139,7 @@ export default function UserManage() {
visiable={modalOpen}
mode={modalMode}
user={selectedUser}
+ roles={roles}
onclose={() => {
setModalOpen(false);
setSelectedUser(null);
diff --git a/src/pages/deviceAdmin/DeviceDetailModal.jsx b/src/pages/deviceAdmin/DeviceDetailModal.jsx
index 0289ecc..12e640f 100644
--- a/src/pages/deviceAdmin/DeviceDetailModal.jsx
+++ b/src/pages/deviceAdmin/DeviceDetailModal.jsx
@@ -76,7 +76,7 @@ export default function DeviceDetailModal({
if (imageFile) {
const formData = new FormData();
formData.append("image", imageFile);
- await axiosInstance.post(`device/${device.id}/image`, formData, {
+ await axiosInstance.post(`device/${device.deviceId}/image`, formData, {
headers: {
"Content-Type": "multipart/form-data",
},