Vue3 + Element Plus 實現用戶管理模塊

本文介紹一個使用 Vue3 + Element Plus 實現的用戶與小組管理模塊,支持用戶的增刪改查(CRUD)和分頁管理,以及小組的新增和刪除功能,適用于管理后臺系統中的用戶權限管理場景。

一、項目簡介

該模塊具備以下功能:

  • 用戶信息展示(用戶名、姓名、所屬小組、角色)
  • 用戶新增、編輯、刪除
  • 小組新增、刪除管理
  • 分頁支持
  • 彈窗式表單對話框設計

二、效果圖展示

以下為模塊實際界面截圖:

  • 用戶列表頁效果圖
    在這里插入圖片描述

  • 新增/編輯彈窗效果圖
    在這里插入圖片描述
    在這里插入圖片描述

提示:以上截圖請替換為項目實際 UI 效果圖,可展示頁面布局與交互樣式。

三、核心邏輯(JavaScript 部分)

用戶數據通過接口異步獲取,分頁參數傳入后臺,返回記錄與總數。

const fetchUserList = async () => {const response = await queryUserPages({currentPage: pagination.value.currentPage,pageSize: pagination.value.pageSize});userList.value = response.data.records;pagination.value.total = response.data.total;
};

表單提交支持區分新增與編輯場景:

const handleSubmit = async (formData) => {dialogVisible.value = false;if (currentUser.value) {await updateUser(formData);} else {await addUser(formData);}fetchUserList();
};

支持用戶刪除操作,刪除前通過消息框確認:

const confirmDeleteUser = (user) => {ElMessageBox.confirm(`確定要刪除用戶 "${user.userName}" 嗎?`, '刪除確認', {confirmButtonText: '確定',cancelButtonText: '取消',type: 'warning'}).then(() => {deleteUser(user.uuid);});
};const deleteUser = async (userId) => {await deleteUserById({ uuid: userId });fetchUserList();
};

四、小組管理功能

小組彈窗支持新增與刪除操作。

新增小組邏輯如下:

const handleAdd = async () => {if (!form.branchname) {ElMessage.warning('請輸入小組名稱');return;}const response = await request({url: '/role/addBranch',method: 'post',data: form});if (response.code === 200) {ElMessage.success('小組添加成功');resetForm();emit('refresh');}
};

刪除小組邏輯如下:

const handleDelete = (id) => {ElMessageBox.confirm('確定要刪除這個小組嗎?', '警告', {confirmButtonText: '確定',cancelButtonText: '取消',type: 'warning'}).then(async () => {await request({url: '/role/deleteBranchById',method: 'post',data: { uuid: id }});emit('refresh');});
};

五、樣式說明

主要樣式邏輯如下:

  • .box-card:布局容器,使用 Flex 垂直布局
  • .card-header:頂部區域,用于標題與按鈕排列
  • .pagination-container:分頁器底部區域,右對齊展示
.box-card {height: 100%;display: flex;flex-direction: column;overflow: auto;
}.card-header {display: flex;justify-content: space-between;align-items: center;padding: 0 10px;flex-shrink: 0;
}.user-table {flex: 1 1 auto;overflow: hidden;
}.pagination-container {padding: 10px 0;display: flex;justify-content: flex-end;background-color: #fff;flex-shrink: 0;
}
:deep(.el-card__body){height: calc(100% - 120px);padding: 20px 20px 0px 20px;
}

樣式清爽、結構明確,便于組件復用和樣式統一。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/84579.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/84579.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/84579.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python應用“面向對象”小練習

大家好!面向對象編程是一種以 “對象” 為核心的編程思想。對象可以看作是具有特定屬性和行為的實體。例如,一個學生可以是一個對象,他的屬性包括姓名和年齡,行為可以是打招呼。? 代碼呈現: # 定義類和對象 class Student:def __init__(sel…

線性回歸原理推導與應用(八):邏輯回歸二分類乳腺癌數據分類

乳腺癌數據是sklearn中自帶的數據集,需要通過相關特征對是否患有乳腺癌進行分類。 數據清洗與建模 首先加載相關庫和相關數據 from sklearn.datasets import load_breast_cancer from sklearn.linear_model import LogisticRegression import numpy as np import…

nginx的一些配置的意思

1.用這個端口可以訪問到nginx 2.工作進程,設置成和cpu核心數一樣即可 3.每個工作進程的最大網絡連接數。 4.主機名稱 設置反向代理時,把server_name設置成ip。 5.反向代理進行轉發,localhost指的是nginx所在的機器。 關鍵字proxy_pass。 …

SID103S/D/Q-300nA, 軌至軌, CMOS 運算放大器替代SGM8141

概述 SID103系列產品是專注于超低功耗、軌至軌、CMOS運算放大器,最低工作電壓可以支持到1.4V,并且工作時每個通道僅消耗300nA的電流。特別適合穿戴式、獨立式等對功耗敏感的電池供電場景。 SID103系列產品擁有5kHz的增益帶寬積,外接500pF電…

十六進制字符轉十進制算法

十六進制與十進制對照 十六進制十進制00112233445566778899A10B11C12D13E14F15 十六進制與十進制區別 十六進制是滿16進1,十進制是滿10進1,這里要注意下區別,16進制的字符里面為什么是0-9沒有10,這里面進了一位,表示…

微軟技術賦能:解鎖開發、交互與數據潛力,共探未來創新路

在微軟 Build 2025 大會以及創想未來峰會上,微軟展示的一系列前沿技術與創新應用,不僅展現了其在科技領域的深厚底蘊與前瞻視野,更為開發者和企業帶來了前所未有的機遇與變革動力。 領馭科技作為微軟中國南區核心合作伙伴及 HKCSP 1T 首批授…

并發基礎|進程與線程

進程基礎 什么是進程? 為了實現并發的功能,引入了進程的概念。 ? 為了實現并發,需要引入多程序的環境,但是多程序的環境會造成一些單程序時不存在的問題,比如程序的之間沒有了封閉性,程序不可以連續的執…

鴻蒙倉頡開發語言實戰教程:自定義tabbar

大家周末好呀,今天繼續分享倉頡語言開發商城應用的實戰教程,今天要做的是tabbar。 大家都知道ArkTs有Tabs和TabContent容器,能夠實現上圖的樣式,滿足基本的使用需求。而倉頡就不同了,它雖然也有這兩個組件,…

LINUX526 回顧 配置ssh rsync定時備份(未完成)

配置SSH回顧: 1.關閉防火墻、selinux systemctl stop firewalld systemctl disable firewalld setenforce 0 vim /etc/selinux/config SELINUXdisable 2. 510 2.配置YUM源 我計劃配本地yum源 2.1 yum源備份 cd /etc/yum.repos.d tar -zcf repo.tar.gz *.repo …

hdc - Mac本環境配置

1. 安裝依賴工具 Homebrew 若未安裝 Homebrew,打開終端執行: OpenJDK 11 HDC 依賴 Java 環境,安裝 OpenJDK 11: 配置環境變量: 2. 安裝 DevEco Studio 下載:從華為開發者聯盟下載最新版 DevEco Studio。 …

項目三 - 任務8:實現詞頻統計功能

本項目旨在實現一個詞頻統計功能,通過讀取文本文件并利用Java編程技巧處理和分析文本數據。首先,使用BufferedReader逐行讀取文件內容,然后通過String.split(" ")方法將每行文本分割成單詞數組。接下來,采用HashMap來存…

Python - 文件部分

- 第 101 篇 - Date: 2025 - 05 - 26 Author: 鄭龍浩/仟墨 Python - 文件部分 學習時間: 2025-05-19 文章目錄 Python - 文件部分一 文件與路徑1 文本文件2 二進制文件3 編碼格式① 常見編碼格式② 指定編碼格式③ 最佳格式④ 處理編碼錯誤 4 絕對路徑5 相對路徑基本寫法返回…

R語言開始繪圖--柱狀圖

R語言是一種專門用于統計計算和圖形顯示的編程語言,廣泛應用于數據分析、統計建模、數據可視化等領域。它由Ross Ihaka和Robert Gentleman于1993年在新西蘭奧克蘭大學開發,現已成為數據科學和統計學領域的重要工具。 R語言的特點 R語言具有豐富的統計和…

PYTORCH_CUDA_ALLOC_CONF基本原理和具體示例

PYTORCH_CUDA_ALLOC_CONFmax_split_size_mb 是 PyTorch 提供的一項環境變量配置,用于控制 CUDA 顯存分配的行為。通過指定此參數,可以有效管理 GPU 顯存的碎片化,緩解因顯存碎片化而導致的 “CUDA out of memory”(顯存溢出&#…

Halcon仿射變換---個人筆記

文章目錄 1.概述2.仿射變換類型3.仿射變換流程4.根據特征點、角度計算仿射變換矩陣4.1 從空變換矩陣創建仿射變換矩陣4.2 把旋轉角度添加到仿射變換矩陣4.3 把縮放添加到仿射變換矩陣4.4 把平移添加到防射變換矩陣4.5 把斜切添加到仿射變換矩陣4.6 根據點和角度計算剛性仿射變換…

《深度掌控Linux:openEuler、CentOS、Debian、Ubuntu的全方位運維指南》

《深度掌控Linux:openEuler、CentOS、Debian、Ubuntu的全方位運維指南》 一、引言 在當今數字化的時代背景下,Linux操作系統憑借其卓越的性能、可靠性和開源的優勢,在服務器、云計算、嵌入式系統等眾多領域占據著舉足輕重的地位。對于IT運維…

【Webtrees 用戶手冊】第 2 章 - 訪客須知

Webtrees 用戶手冊/訪客指南 信 第 2 章 - 訪客須知 <- 章節概述 目錄 1頁面結構2標題菜單 2.1主題 2.1.1云2.1.2顏色2.1.3絕佳2.1.4最小2.1.5網絡樹2.1.6西妮婭 2.2語言2.3登記2.4搜索字段 3主菜單 3.1家譜3.2圖表3.3列表3.4日歷3.5報告3.6尋找3.7故事3.8常見問題 (FAQ) 4…

動態規劃-918.環形子數組的最大和-力扣(LeetCode)

一、題目解析 聽著有點復雜&#xff0c;這里一圖流。 將環形問題轉化為線性問題。 二、算法原理 1.狀態表示 2.狀態轉移方程 詳細可以移步另一篇博客&#xff0c;53. 最大子數組和 - 力扣&#xff08;LeetCode&#xff09; 3.初始化 由于計算中需要用到f[i-1]和g[i-1]的值&…

飛牛fnNAS遠程映射盤符

目錄 一、NAS、PC端配置Zerotier 二、使用網上鄰居 三、使用WebDAV 1.開啟WebDAV 2.PC上安裝RaiDrive并設置 如果能將NAS作為本機一個盤符來使用,一定會令我非常方便。如果是本地,可以很方便實現。 將飛牛NAS映射為本地盤符,常用兩種方式,一種是網上鄰居,另一種是We…

華為2025年校招筆試手撕真題教程(二)

一、題目 大灣區某城市地鐵線路非常密集&#xff0c;乘客很難一眼看出選擇哪條線路乘坐比較合適&#xff0c;為了解決這個問題&#xff0c;地鐵公司希望你開發一個程序幫助乘客挑選合適的乘坐線路&#xff0c;使得乘坐時間最短&#xff0c;地鐵公司可以提供的數據是各相鄰站點…