vue3+element-plus的后台管理系统模板 和 vue3+ant-design-vue的后台管理系统模板

news2024/11/17 10:59:21

项目介绍

规范:后台系统模板,按照企业级别的规范搭建的。
权限控制:通过后端返回的路由表(这个路由表是由前端这边在系统配好的然后存储在后端的)来动态渲染菜单和注册路由,同时也根据页面内的接口权限对页面中的按钮做了是否可见的设置。前端这边有 路由、角色、用户管理3个模块来控制权限,配权限找到这3个模块一步步配就行了。
功能模块封装:对axios进行了封装;封装了pinia持久化插件;封装了判断按钮权限的函数;封装了自定义hook来操作vue-i18n的国际化;封装了基于浏览器存储的自定义存储方式;封装了常用的工具函数。
组件封装:封装了快捷标签导航;封装了查询面板表单;对el-table做了进一步封装,通过表头配置来生成繁琐的dom结构;对el-menu就行了进一步封装,通过树形数据即可渲染出对应菜单;封装了icon组件。
细节处理:对组件库就行了主题和按需引入配置;动态计算布局内容和表格的高度,尽量不让纵向出滚动条且内容会刚好占满全屏;根据当前项目运行环境的不同做了一些不同的处理;可通过路由项的meta配置来决定此页面是否缓存、是否需要菜单、是否需要布局等等;路由、角色、用户管理这3个模块我已经写好,很多细节可以参考这3个模块的代码;基本没有多余的代码,然后你要用的话,直接下载然后改改样式、主题、封装一些你需要的功能组件和功能函数就可以直接写页面了,基本是开箱即用。

项目教学

项目开源地址(element-plus版):https://gitee.com/gitee_lw/element-plus-admin
项目开源地址(ant-design-vue版):https://gitee.com/gitee_lw/antd3-admin
下面使用element-plus版来介绍项目。两个版本的逻辑业务用的同一套,就是组件库的差别。

了解项目目录结构

在这里插入图片描述

了解项目技术选型

在这里插入图片描述

权限逻辑核心代码

全局路由守卫,判断是否具备访问某个页面的权限(“@/router/permission.ts”)
在这里插入图片描述

该模块由于管理 系统菜单和当前用户所具备权限的路由表(“@/store/modules/routes.ts”)
在这里插入图片描述页面、菜单权限演示

在这里插入图片描述

判断是否具备某个按钮的权限(“@/common/addGlobalProperty.ts”)里的hasAuth函数,我已经将这个函数挂在全局上了
在这里插入图片描述根据具备的按钮权限来控制按钮是否显示的使用示例
在这里插入图片描述

关于自定义存储

代码见@/commom/utils.ts中的函数creatBs
在这里插入图片描述

自定义存储类似于vue-ls,这是我自己封装的,相对于vue-ls更加轻量,通过函数返回的自定义存储对象灵活性高,存储的值可以设置过期时间、是否加密、存储键名的前缀。

pinia持久化的使用

找到文件@/store/install/index.ts
在这里插入图片描述函数storagefyPlus传递一个配置对象,key是pinia模块的idvalue是持久化的存储方式,值类型是数字的话代表使用的是我封装的自定义存储,数字的话代表过期时间(0代表不过期),如果是'localStorage'则代表使用的是localStorage的存储方式。

国际化的使用

1.配置词汇
在这里插入图片描述2.使用
在这里插入图片描述3.效果演示
在这里插入图片描述

4.更多使用参考语言切换组件@/layouts/components/selectLang.vue

自定义表格组件的使用

1.引入基于el-table封装的表格,import MyTable from "@/components/Table/myTable.vue";
2.编写表头配置
在这里插入图片描述

3.使用组件生成表格
在这里插入图片描述4.表格的表头配置支持自定义渲染头或者列内容、多级表头渲染
在这里插入图片描述

5.表格支持插槽渲染,插槽名同列配置的prop属性,头部具名作用域插槽的渲染需要额外加-header后缀。表格也支持分页配置来渲染分页器
在这里插入图片描述

查询面板组件的使用

1.引入组件
import searchPanel from '@/components/SearchPanel'
2.提供组件需要的状态

const searchOptions=ref<searchOptionType[]>([
	{type:'input',id:'userName',props:{label:'用户名'}},
	{type:'input',id:'nickName',props:{label:'昵称'}},
	{type:'select',id:'role',props:{label:'角色'},innerComponentProps:{filterable:true,selectOptions:[
					// { label: '商品类型1', value: '1',disabled:false },
	  ],
	}},
])
// type是表单项类型,id是表单项属性,props是el-form-item的props,innerComponentProps的el-form-item内部包裹组件的props。额外为el-select提供selectOptions属性,用于渲染el-option

3.使用组件

 <search-panel :options="searchOptions"  @collapsed="setTableHeight" @reset="reset" @search="search" />

4.渲染效果
![在这里插入图片描述](https://img-blog.csdnimg.cn/624a402b642a4125915bd05750700797.png当查询选项大于一行时,会出现折叠展开按钮
在这里插入图片描述

其他推荐

如果不喜欢用element-plus,我用ant-design-vue也写了一套,逻辑和这套系统一模一样,就是换了个组件库
项目开源地址:https://gitee.com/gitee_lw/antd3-admin

效果演示

在这里插入图片描述

结尾

有什么不懂的地方,欢迎提问。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

能用excel批量提取网页内特定数据吗?

这个需求其实是采集数据&#xff0c;用第三方软件比较合适&#xff0c;当然&#xff0c;用excel也可以批量提取网页内特定文字。请按照以下步骤操作&#xff1a; 1. 打开要提取的网页&#xff0c;并选中要提取的文字&#xff0c;例如一个表格里的数据。 2. 复制选中的文字。 …

你的 ChatGPT 使用姿势是错的!告诉你 4 个使用 ChatGPT 的小技巧

大部分人使用 ChatGPT 的方式都是错的&#xff0c;比如&#xff1a; 没有在提问时提供案例。忽略了可以通过设置 ChatGPT 的角色来控制它的行为。没有提供过多有效信息&#xff0c;而是让 ChatGPT 猜猜猜。 之所以会犯这些错误&#xff0c;是因为我们使用 ChatGPT 时还停留在…

HarmonyOS3 Stage模型介绍

Stage模型是HarmonyOS 3.1 Develper Preview&#xff08;API 9&#xff09;版本开始新增的模型&#xff0c;也是目前HarmonyOS主推且会长期演进的模型。在该模型中&#xff0c;由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”&#xff0c;因此称这…

一款红队批量脆弱点搜集工具

功能 指纹识别:调用“三米前有香蕉皮“前辈工具&#xff0c;他的工具比finger好用 寻找资产中404&#xff0c;403&#xff0c;以及网页中存在的其他薄弱点&#xff0c;以及需要特定路径访问的资产 后续会把nuclei加进来 目前只有windows可以用 使用 第一次使用脚本请运行p…

Neo4j安装配置教程

目录结构 前言Neoj4简介安装JDKNeo4j安装步骤Neo4j下载解压Neo4j压缩包配置环境变量启动Neo4j执行命令报错&#xff0c;报错信息如下&#xff1a; 启动Neo4j&#xff0c;再次测试浏览器访问Neo4j参考链接 前言 安装所需配件网盘一键下载。以下描述中&#xff0c;官网下载均有描…

1、2、3类LSA解析

拓扑 需求 &#xff08;1&#xff09;企业核心机房&#xff0c;连接不同楼宇&#xff0c;实现不同楼宇互通&#xff1b; &#xff08;2&#xff09;企业核心机房设置为OSPF骨干区域&#xff1b; &#xff08;3&#xff09;其他办公楼宇为非骨干区域&#xff0c;通过路由器与…

Vue+SpringBoot打造超市商品管理系统(附源码文档)

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;Java全栈软件工程师一枚&#xff0c;来自浙江宁波&#xff0c;负责开发管理公司OA项目&#xff0c;专注软件前后端开发、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲师&#xff0c;全栈领域优质创作者。 目录 一…

C++学习之旅 - 指针

文章目录 指针的基本概念指针的定义与使用指针占用的内存空间空指针野指针cont修饰指针指针&数组访问数组中第一个元素(访问&指针)如何访问数组中的第二个字节 指针和函数 指针的基本概念 指针的作用: 可以通过指针间接访问内存 内存编号是从0开始记录的&#xff0c;一…

offer收割机再现,接口测试常问面试题 (附答案),对标大厂面试...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 软件测试面试题&am…

海外网红营销必备:品牌与海外红人合作的谈判技巧指南

随着社交媒体的飞速发展&#xff0c;海外网红已经成为品牌营销的热门选择。与知名红人合作&#xff0c;可以有效地扩大品牌影响力、提升产品认知度&#xff0c;并吸引目标受众。然而&#xff0c;与红人的谈判过程常常充满挑战&#xff0c;需要品牌营销人员具备一定的技巧和策略…

以太坊是匿名化的影子银行?将如何适应并影响传统金融?

以太坊经常被描述为传统金融权力的对立面。实际上&#xff0c;以太坊的目标并不是去颠覆传统金融领域&#xff0c;而试图去补充和改善它。未来&#xff0c;这两个系统将会有更多的交集。 多极世界中的中立性 以太坊并不是一种隐形的货币替代品和匿名的影子银行&#xff0c;目前…

人才“选用育留”难?做好这步,人力资源或许比你想象的更轻松

人才作为企业生存和发展最重要的资源之一&#xff0c;如何发现、使用、培养、留住优秀人才是所有企业人力资源管理的关键。但在实际场景当中&#xff0c;“招聘流程长造成人才流失”、“员工招聘不精准、效率低”、“员工培育周期长、成本高”、“优秀人才留不住”等问题正深深…

浅入浅出 iptables 网络隔离原理

01 iptables简介 iptables ipfirewall&#xff08;内核1.x时代&#xff09; ipchains&#xff08;内核2.x时代&#xff09; iptables 网络协议栈 Link Layer 数据链路层的数据流向&#xff0c;根据mac寻址找到对应的网卡后向上进入网络层 Network Layer 网络层的数据流向&am…

实训第一天

目录 主流的关系数据库 非关系型数据库 Mysql的启动和停止 Mysql登录方式本地登录 远程登录 查看mysql数据库 创建数据库 使用数据库 删除数据库 Mysql结构化查询语句 mysql 数据类型 数值类型 字符类型 日期类型 唯一约束与主键约束 主流的关系数据库 mysql,db2,oracle&a…

Selenium自动化之弹窗处理

1.前言 我们在使用Selenium做Web自动化测试时&#xff0c;页面经常出现弹窗&#xff0c;如果不处理后续的测试脚本就无法正常运行&#xff0c;今天我们就带大家一起来学习如何处理Web页面上的弹窗。 2.Web页面弹窗的分类 弹窗通常有3种&#xff1a;Alert类型弹框、Confirm类…

人工智能之ChatGPT

前言 近日&#xff0c;美国OpenAI研发的聊天机器人程序ChatGPT爆火&#xff0c;相关话题多次引发热议。 ChatGPT是啥&#xff1f; 简单来说&#xff0c;ChatGPT是一个智能聊天机器人&#xff0c;但是它的功能却远不止聊天 利用机器学习算法&#xff0c;ChatGPT可以利用人工智…

SVN搭建ubuntu服务器过程(图文超详细)

目录 步骤0&#xff1a;搭建环境&#xff1a; 步骤一&#xff1a;下载subversion安装包 步骤二&#xff1a;创建版本库目录 步骤三&#xff1a;创建版本库 步骤四&#xff1a;修改SVN配置 步骤五&#xff1a;重启SVN服务 步骤0&#xff1a;搭建环境&#xff1a; 在ubuntu…

仙境传说RO:添加地图传送门教程

仙境传说RO&#xff1a;添加地图传送门教程 大家好我是艾西&#xff0c;上一篇文章中我跟大家分享了仙境传说RO怎么添加NPC&#xff0c;NPC可以加入自己想要售卖的装备物品等。那么对于玩家跑地图需要手动跑肯定是不方便的毕竟大家玩游戏就是为了娱乐以及放松&#xff0c;那么…

降本增效,StarRocks 在同程旅行的实践

作者&#xff1a;周涛 同程旅行数据中心大数据研发工程师 同程旅行是中国在线旅游行业的创新者和市场领导者。作为一家一站式平台&#xff0c;同程旅行致力于满足用户旅游需求&#xff0c;秉持 "让旅行更简单、更快乐" 的使命&#xff0c;主要通过包括微信小程序、AP…

深浅拷贝及赋值区别理解

浅拷贝&#xff1a; 对象浅拷贝Object.assign() 数组的浅拷贝Array.prototype.slice()与Array.prototype.concat() 解构赋值 1.对于数组/对象中基本数据类型[123,234]&#xff0c;拷贝的是数值&#xff0c;所以修改拷贝后的这个值&#xff0c;原数据不会改变&#xff1b;2.对…