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

项目介绍

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

项目教学

项目开源地址:https://gitee.com/gitee_lw/element-plus-admin

了解项目目录结构

在这里插入图片描述

了解项目技术选型

在这里插入图片描述

权限逻辑核心代码

全局路由守卫,判断是否具备访问某个页面的权限(“@/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://xiahunao.cn/news/350215.html

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

相关文章

科研热点|科研人专属身份证来了,国产ORCID ID启动!

2023年6月1日&#xff0c;国家自然科学基金委员会发布了《国家自然科学基金委员会关于推广和发布基础研究科研人员标识&#xff08;BRID&#xff09;有关工作安排的通告》&#xff0c;宣布从即日起&#xff0c;国家自然科学基金委员会&#xff08;以下简称自然科学基金委&#…

技术分享 | App常见bug解析

【摘要】 功能Bug内容显示错误前端页面展示的内容有误。这种错误的产生有两种可能1、前端代码写的文案错误2、接口返回值错误功能错误功能错误是在测试过程中最常见的类型之一&#xff0c;也就是产品的功能没有实现。比如图中的公众号登录不成功的问题。界面展示错乱产品界面上…

yolov3

文章目录 前言一、主干网络darknet53二、从特征获取预测结果 前言 本文主要讲解yolov3的基本知识&#xff0c;如有错误请指出。 本文主要来自 博客1 博客2 一、主干网络darknet53 53是因为有53层。 1、darknet53没有使用pooling 来进行下采样&#xff0c;而是用一个33&…

C语言:计算n的阶乘(不考虑溢出)

题目&#xff1a; 从键盘输入一个值n&#xff0c;计算n的阶乘&#xff0c; 如&#xff1a;输入5&#xff0c;计算5的阶乘 --> 5! 1 * 2 * 3 * 4 * 5 思路&#xff1a; 第一步&#xff1a; 创建一个变量 ret &#xff0c;用来存放每次相乘后的值&#xff0c; 因为 0 乘 任何…

java排列组合(递归算法)

一、排列 1、计算公式如下&#xff1a; 2、使用方法&#xff0c;例如在1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5中取3个数排列&#xff1a; 3、全排列 当mn时&#xff0c;结果为全排列。例如1&#xff0c;2&#xff0c;3&#xff0c;4的全排列如下&#xff1…

算法中的排列与组合

排列组合公式 不含重复元素的排列组合 含有重复元素的排列组合 如果产生的组合和排列可以包含有重复的元素&#xff0c;其实这类问题在苏荷数学上是多种集的排列和组合问题。 多重集的排列问题 设S是有k种不同类型对象的多重集合&#xff0c;每个元素都有无限的重复数。那么…

排列组合 交叉组合 组合排列算法

20180619 一&#xff0c;交叉组合排列算法&#xff1a; 1、前言&#xff1a; 在项目开发的过程中负责全系统查询检索的一个模块&#xff0c;其中有一个查询方式叫做“交叉组合查询”&#xff0c;与数学中的排列组合类似&#xff0c;因此就开始想看一下这个该怎么写&#xff0c;…

程序员必备算法——排列组合

程序员必备算法——排列组合 程序员必备算法排列组合 还记得排列组合吗全排列的实现组合问题总结 还记得排列组合吗&#xff1f; 在高中的时候最常接触的莫过于排列组合了&#xff0c;毕竟高考必考的嘛。我们先来回忆下这两个的公式是啥&#xff1a; 如果看到这个还有一丢…

教你 5 分钟快速部署开源网关

最近在研究开源网关&#xff0c;找了一圈&#xff0c;发现这个叫 Apinto 的开源网关符合我的需求&#xff0c;下面我将演示如何部署这样一个开源网关。 Apinto功能架构图 开始部署 部署资源 设备推荐配置设备数量部署对象4核8G&#xff0c;250G磁盘空间&#xff0c;2.5GHz1控制…

【算法】JavaScript必会算法 —— 排列组合(全排列)

文章目录 首先理解一下排列组合的定义&#xff1a; 排列的定义&#xff1a;从 n n n个不同元素中&#xff0c;任取 m m m&#xff08; m ≤ n m≤n m≤n&#xff0c; m m m与 n n n均为自然数&#xff0c;下同&#xff09;个元素按照一定的顺序排成一列&#xff0c;叫做从 n n…

C++:排列组合算法

转载请注明出处 1 介绍 排列&#xff08;Permutation&#xff09;和组合&#xff08;Combination&#xff09;是两个基础的数学概念。 计算排列与组合可以解决一些实际的工程问题&#xff0c;掌握排列组合计算的方法是十分重要的。 目前&#xff0c;网上已经有一些计算排列…

排列组合公式及排列组合算法

排列组合公式 排列组合公式/排列组合计算公式 公式P是指排列&#xff0c;从N个元素取M个进行排列。 公式C是指组合&#xff0c;从N个元素取M个进行组合&#xff0c;不进行排列。 N-元素的总个数 M参与选择的元素个数 &#xff01;-阶乘&#xff0c;如 9&#xff01;&#xf…

排列组合公式/排列组合计算公式

排列组合公式/排列组合计算公式 公式P是指排列&#xff0c;从N个元素取M个进行排列。 公式C是指组合&#xff0c;从N个元素取M个进行组合&#xff0c;不进行排列。 N-元素的总个数 M参与选择的元素个数 &#xff01;-阶乘&#xff0c;如9&#xff01;&#xff1d;9*8*7*6*5…

详细总结组合排列的十余种算法实现

目录 •写在前面 •问题引入 •暴力枚举 循环枚举 递归枚举 回溯枚举 •深度优先搜索 前序遍历 中序遍历 后序遍历 •字典序 •二进制位运算 •带重复数字 •总结 •写在前面 排列组合的问题&#xff0c;如果没有合适的算法去解决&#xff0c;时间复杂度会相当的…

论坛的头像

做了个论坛的头像,相当的简单 也就只能看看啦 菜啊

论坛头像编辑 html,spu头像编辑.html

&#xfeff;SPU头像编辑 $axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; }; $axure.utils.getOtherPath function() { return resources/Other.html; }; $axure.utils.getReloadPath function() { return resources/reload.ht…

牛客网项目---1.7.账号设置(上传头像、修改密码)

7、账号设置/setting 上传头像将头像保存到本地/七牛云服务器&#xff0c;随机生成字符串作为图片的名称&#xff0c;表单提交再返回该界面。获取头像时&#xff0c;在本地获取&#xff0c;通过输入输出流&#xff0c;先读到缓冲区&#xff0c;再从缓冲区写出&#xff1b;在七…

Discuz论坛无法上传头像/ 企业邮箱被归为垃圾邮件的问题

背景&#xff1a; 安装了Discuz论坛程序&#xff0c;更改个人头像的时候&#xff0c;点击上传按钮没有反应基于阿里云企业邮箱配置了论坛的邮件发送服务&#xff0c;但是邮箱被列入垃圾邮件拒收 解决方法&#xff1a; 上传头像失败&#xff1a;ucenter和全局域名要加https&a…

flask更改用户头像

目录结构图: 配置app 导包及配置 import os from flask import Flask, flash, request, redirect, url_for,Request,render_template from werkzeug.utils import secure_filenameUPLOAD_FOLDER 文件下载的绝对路径 # 允许的下载类型 ALLOWED_EXTENSIONS {txt, pdf, png, j…