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", },