接上篇-使用 element-plus 优化UI界面

使用 element-plus 可以让我们更容易创建一个精美且功能丰富的UI界面。接下来,我们将优化 GroupManagement.vue 组件,使用 element-plus 的表格、按钮、对话框等组件来实现一个更专业的小组管理页面。

优化后的 GroupManagement.vue 代码

1. 安装 element-plus

如果还没有安装 element-plus,可以使用以下命令进行安装:

npm install element-plus
2. 引入 element-plus 组件

main.js 中引入 element-plus

import { createApp } from 'vue';
import App from './App.vue';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';const app = createApp(App);
app.use(ElementPlus);
app.mount('#app');
3. 使用 element-plus 组件优化 GroupManagement.vue

我们将使用 el-tableel-buttonel-dialogel-inputelement-plus 组件来优化页面。

<template><div><h2>小组管理</h2><!-- 小组信息和操作按钮 --><el-card class="group-info" shadow="hover"><div slot="header" class="clearfix"><span>网上邻居</span><el-button style="float: right" type="primary" size="mini" @click="editGroupInfo">编辑信息</el-button></div><p>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX(小组简介)</p><el-button-group class="group-actions"><el-button @click="inviteUser" type="success">邀请用户</el-button><el-button @click="dissolveGroup" type="danger">解散群聊</el-button></el-button-group></el-card><!-- 小组成员表格 --><el-table :data="members" stripe style="width: 100%" v-loading="loading"><el-table-column prop="name" label="成员" width="180" /><el-table-column prop="school" label="学校" width="180" /><el-table-column prop="role" label="角色" width="120" /><el-table-column prop="joinDate" label="进组时间" width="180" /><!-- 操作列 --><el-table-column label="操作" width="220"><template #default="scope"><el-button @click="removeMember(scope.row)" type="danger" size="mini">移除成员</el-button><el-button @click="transferMember(scope.row)" type="primary" size="mini">转让小组</el-button></template></el-table-column></el-table><!-- 编辑小组信息对话框 --><el-dialog title="编辑小组信息" :visible.sync="dialogVisible"><el-input v-model="groupInfo.description" type="textarea" rows="4" placeholder="请输入小组简介" /><span slot="footer" class="dialog-footer"><el-button @click="dialogVisible = false">取消</el-button><el-button type="primary" @click="saveGroupInfo">保存</el-button></span></el-dialog></div>
</template><script>
import { ref } from "vue";export default {setup() {const loading = ref(false);const dialogVisible = ref(false);// 小组信息const groupInfo = ref({description: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX(小组简介)",});// 小组成员数据const members = ref([{id: 1,name: "Wu Jinxuan",school: "同济大学",role: "组长",joinDate: "2024年11月9日",},// 可添加更多成员数据]);// 编辑小组信息const editGroupInfo = () => {dialogVisible.value = true;};// 保存小组信息const saveGroupInfo = () => {dialogVisible.value = false;// 执行保存逻辑console.log("保存小组信息:", groupInfo.value);};// 邀请用户const inviteUser = () => {console.log("邀请用户");};// 解散群聊const dissolveGroup = () => {console.log("解散群聊");};// 移除成员const removeMember = (member) => {members.value = members.value.filter((m) => m.id !== member.id);console.log("移除成员:", member);};// 转让小组const transferMember = (member) => {console.log("转让小组给:", member.name);};return {loading,dialogVisible,groupInfo,members,editGroupInfo,saveGroupInfo,inviteUser,dissolveGroup,removeMember,transferMember,};},
};
</script><style scoped>
.group-info {margin-bottom: 20px;
}
.group-actions {margin-top: 10px;
}
.dialog-footer {text-align: right;
}
</style>

 

代码说明

  1. el-card:使用 el-card 来显示小组信息,添加标题和操作按钮。
  2. el-table:使用 el-table 显示小组成员数据,支持排序和样式。
  3. el-dialog:使用 el-dialog 创建编辑对话框,用户可以编辑小组信息。
  4. el-button-group:按钮组用于操作小组(邀请用户、解散群聊)。
  5. 数据绑定和方法:使用 ref 定义 loadingdialogVisiblegroupInfomembers,并通过方法实现编辑、删除、邀请等功能。

主要功能

  • 编辑小组信息:点击“编辑信息”按钮,弹出对话框,用户可以修改小组简介。
  • 邀请用户:点击“邀请用户”按钮,执行邀请操作。
  • 解散群聊:点击“解散群聊”按钮,执行解散操作。
  • 移除成员:点击“移除成员”按钮,删除该成员。
  • 转让小组:点击“转让小组”按钮,将该成员设置为新组长。

样式优化

  • 使用 element-plus 的表格和卡片组件,样式更加简洁和美观。
  • 通过 dialog-footer 插槽为对话框添加了操作按钮,统一了页面布局。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/472626.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 Web Search 插件扩展 GitHub Copilot 问答

GitHub Copilot 是一个由 GitHub 和 OpenAI 合作开发的人工智能代码提示工具。它可以根据上下文提示代码&#xff0c;还可以回答各种技术相关的问题。但是 Copilot 本身不能回答非技术类型的问题。为了扩展 Copilot 的功能&#xff0c;微软发布了一个名为 Web Search 的插件&am…

24 年第十届数维杯国际数模竞赛赛题浅析

本次万众瞩目的数维杯国际大学生数学建模赛题已正式出炉&#xff0c;无论是赛题难度还是认可度&#xff0c;该比赛都是数模届的独一档&#xff0c;含金量极高&#xff0c;可以用于综测加分、保研、简历添彩等各方面。考虑到大家解题实属不易&#xff0c;为了帮助大家取得好成绩…

无人机检测车辆——多目标检测

目录 YOLOv3&#xff08;You Only Look Once version 3&#xff09;简介 YOLOv3 的主要特点 YOLOv3 的结构 1. 特征提取网络&#xff08;Backbone&#xff09; 2. 检测头&#xff08;Head&#xff09; 3. 输出层 YOLOv3 损失函数 YOLOv3 的优势 YOLOv3 的应用 YOLOv3…

ThriveX 博客管理系统前后端项目部署教程

前端 前端项目地址&#xff1a;https://github.com/LiuYuYang01/ThriveX-Blog 控制端项目地址&#xff1a;https://github.com/LiuYuYang01/ThriveX-Admin Vercel 首先以 Vercel 进行部署&#xff0c;两种方式部署都是一样的&#xff0c;我们以前端项目进行演示 首先我们先…

python的matplotlib实现数据分析绘图

目录 需求 效果 数据分析绘图示例 代码解释 运行结果 需求 分析一个班级中学生成绩分布&#xff0c;并绘图 效果 数据分析绘图示例 import matplotlib.pyplot as plt import numpy as np# 假设的学生成绩数据 np.random.seed(0) # 设置随机种子以确保结果可复现 score…

计算机网络 (3)计算机网络的性能

一、计算机网络性能指标 速率&#xff1a; 速率是计算机网络中最重要的性能指标之一&#xff0c;它指的是数据的传送速率&#xff0c;也称为数据率&#xff08;Data Rate&#xff09;或比特率&#xff08;Bit Rate&#xff09;。速率的单位是比特/秒&#xff08;bit/s&#xff…

MySQL Online DDL

文章目录 1. 在线DDL的优势2. 支持的DDL操作3. 在线DDL的原理4. Online DDL的操作流程1. 准备阶段&#xff08;Prepare phase&#xff09;2. 拷贝阶段&#xff08;Copy phase&#xff09;3. 应用阶段&#xff08;Apply phase&#xff09;4. 替换阶段&#xff08;Swap phase&…

SwanLab安装教程

SwanLab是一款开源、轻量级的AI实验跟踪工具&#xff0c;提供了一个跟踪、比较、和协作实验的平台&#xff0c;旨在加速AI研发团队100倍的研发效率。 其提供了友好的API和漂亮的界面&#xff0c;结合了超参数跟踪、指标记录、在线协作、实验链接分享、实时消息通知等功能&…

基于rk356x u-boot版本功能分析及编译相关(三)Makefile分析

🎏技术驱动源于热爱,祝各位学有所成。 文章目录 一、Makefile简要概述二、简要流程图三、Makefile文件具体分析大家好哈,这次因工作比较忙,文章更新拖的有些久了。哈哈,话不多说,咱们接着上次继续说u-boot的Makefile。 一、Makefile简要概述 一般要了解u-boot源码的编译…

vscode中执行git合并操作需要输入合并commit信息,打开的nano小型文本编辑器说明-

1.前提&#xff1a; VScode中的git组件执行任何合并动作的时候需要提交远程合并的commit信息&#xff0c;然后编辑器自动打开的是nano文本编辑器 2.nano编辑器说明&#xff1a; 1.保存文件&#xff1a;按 Ctrl O&#xff0c;然后按 Enter 来保存文件。 2.退出编辑器&#xf…

微信小程序 === 使用腾讯地图选点

目录 插件介绍 接入指引 相关参数说明 插件错误处理 效果图 permission 插件的作用 添加插件 引入插件代码包 使用插件 页面 js 接口 插件介绍 腾讯位置服务地图选点插件 可以让用户快速、准确地选择并确认自己的当前位置&#xff0c;并将相关位置信息回传给开发者。…

vue内置指令和自定义指令

常见的指令&#xff1a; v-bind : 单向绑定解析表达式, 可简写为 :xxx v-model : 双向数据绑定 v-for : 遍历数组/对象/字符串 v-on : 绑定事件监听, 可简…

Mac终端字体高亮、提示插件

一、安装配置“oh my zsh” 1.1 安装brew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 按照步骤安装即可&#xff0c;安装完成查看版本 brew -v 1.2 安装zsh brew install zsh 安装完成后查看版本 zsh --version 1.3 …

CentOS8 在MySQL8.0 实现半同步复制

#原理 MySQL默认是异步的,不要求必须全部同步到从节点才返回成功结果; 同步复制: 用户发请求到代理, 代理收到请求后写/更新数据库写入到二进制日志bin_log, 然后必须等数据发到所有的从节点, 从节点全部收到数据后, 主节点才返回给客户端的成功结果。 弊端&#xff1a; 客…

手机ip地址异常怎么解决

在现代社会中&#xff0c;手机已成为我们日常生活中不可或缺的一部分&#xff0c;无论是工作、学习还是娱乐&#xff0c;都离不开网络的支持。然而&#xff0c;有时我们会遇到手机IP地址异常的问题&#xff0c;这不仅会影响我们的网络体验&#xff0c;还可能带来安全隐患。本文…

C++:基于红黑树封装map和set

目录 红黑树的修改 红黑树节点 红黑树结构 红黑树的迭代器 红黑树Insert函数 红黑树的默认成员函数 修改后完整的红黑树 set、map的模拟实现 set map 测试封装的set和map 红黑树的修改 想要用红黑树封装map和set&#xff0c;需要对之前实现的key-value红黑树进行修…

Spring Boot框架:电商系统的技术革新

4 系统设计 网上商城系统的设计方案比如功能框架的设计&#xff0c;比如数据库的设计的好坏也就决定了该系统在开发层面是否高效&#xff0c;以及在系统维护层面是否容易维护和升级&#xff0c;因为在系统实现阶段是需要考虑用户的所有需求&#xff0c;要是在设计阶段没有经过全…

【Linux】介绍和基础01

Linux介绍 linux是一个操作系统 和 windows平级 虚拟机 运行Linux在当前系统的 ‘另一个电脑’ 虚拟机可以运行多个‘电脑’ 你在哪 决定操作文件 ~ 波浪线代表当前登录的家 root 用户没有单独的家 整个操作都是root的家 Ubuntu没有盘的概念 所有的linux中都是文件 文…

(一)Ubuntu20.04服务器端部署Stable-Diffusion-webui AI绘画环境

一、说明 cup型号&#xff1a; Intel(R) Celeron(R) CPU G1610 2.60GHz 内存大小&#xff1a; 7.5Gi 356Mi 4.6Gi 1.0Mi 2.6Gi 6.8Gi Swap: 4.0Gi 0B 4.0Gi 显卡型号&#xff1a;NVIDIA P104-100 注意&#xff1a…

IQ Offset之工厂实例分析

有个产品 其方块图如下: FEM全名为Front End Module 详情可参照这篇 [1] WIFI前端模块的解析 这边就不赘述 而在工厂大量生产时 有一块板子 其Chain1的EVM Fail 分析Log后 发现其IQ Offset的值 比Chain2/Chain3/Chain4 还要来得差 请问 问题是出在收发器? 还是…