精华内容
下载资源
问答
  • 项目介绍 JavaWeb是基于 SpringBoot2+Layui2.5.6+element-ui+Shiro+MybatisPlus 研发的权限(RBAC)及内容管理系统,致力于做更简洁的后台管理框架,包含系统管理、代码生成、权限管理、站点、广告、布局、字段、配置...

    项目介绍

    JavaWeb_Vue是基于 SpringBoot2+Vue+element-ui+Shiro+MybatisPlus 研发的权限(RBAC)及内容管理系统,致力于做更简洁的后台管理框架,包含系统管理、代码生成、权限管理、站点、广告、布局、字段、配置等一系列常用的模块,整套系统一键生成所有模块(包括前端UI),一键实现CRUD,简化了传统手动抒写重复性代码的工作。 同时,框架提供长大量常规组件,如上传单图、上传多图、上传文件、下拉选择、复选框按钮、单选按钮,城市选择、富文本编辑器、权限颗粒度控制等高频使用的组件,代码简介,使用方便,节省了大量重复性的劳动,降低了开发成本,提高了整体开发效率,整体开发效率提交80%以上,JavaWeb框架专注于为中小企业提供最佳的行业基础后台框架解决方案,执行效率、扩展性、稳定性值得信赖,操作体验流畅,使用非常优化,欢迎大家使用及进行二次开发。

    开发者信息

    后台演示(用户名:admin 密码:123456)

    技术支持

    效果图展示

    在这里插入图片描述

    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

    展开全文
  • SpringBoot+Vue前后端分离系统搭建

    千次阅读 2020-10-11 09:19:08
    项目介绍 JavaWeb是基于 SpringBoot2+Layui2.5.6+element-ui+Shiro+MybatisPlus 研发的权限(RBAC)及内容管理系统,致力于做更简洁的后台管理框架,包含系统管理、代码生成、权限管理、站点、广告、布局、字段、配置...

    项目介绍

    JavaWeb_Vue是基于 SpringBoot2+Vue+element-ui+Shiro+MybatisPlus 研发的权限(RBAC)及内容管理系统,致力于做更简洁的后台管理框架,包含系统管理、代码生成、权限管理、站点、广告、布局、字段、配置等一系列常用的模块,整套系统一键生成所有模块(包括前端UI),一键实现CRUD,简化了传统手动抒写重复性代码的工作。 同时,框架提供长大量常规组件,如上传单图、上传多图、上传文件、下拉选择、复选框按钮、单选按钮,城市选择、富文本编辑器、权限颗粒度控制等高频使用的组件,代码简介,使用方便,节省了大量重复性的劳动,降低了开发成本,提高了整体开发效率,整体开发效率提交80%以上,JavaWeb框架专注于为中小企业提供最佳的行业基础后台框架解决方案,执行效率、扩展性、稳定性值得信赖,操作体验流畅,使用非常优化,欢迎大家使用及进行二次开发。

    开发者信息

    后台演示(用户名:admin 密码:123456)

    技术支持

    效果图展示

    在这里插入图片描述

    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

    展开全文
  • 前言 后台管理系统是基于RBAC设计的,也就是说不同的角色应该拥有不同的资源访问权限,这篇就来实现这个功能 实现 方式一 vue-admin-template 只提供了基础的vue后台...方式一:对于前后端分离多人协作开发比较友好,前

    前言

    后台管理系统是基于RBAC设计的,也就是说不同的角色应该拥有不同的资源访问权限,这篇就来实现这个功能

    实现

    方式一

    vue-admin-template 只提供了基础的vue后台管理框架,权限管理模块没有引入。
    vue-element-admin 相对完整的组件demo和权限模块。它的动态路由配置如下:

    • 前端配置完整的路由菜单
    • 请求后端api返回 用户拥有的菜单
    • 在前端过滤渲染呈现用户的菜单

    方式二


    由后端统一配置菜单,直接返回给前端渲染

    优缺点

    方式一:对于前后端分离多人协作开发比较友好,前端只需要提供路由菜单的编码,由后端配置给对应角色用户。前端人员不受后端开发的约束。

    方式二:动态路由菜单直接由后端配置并返回,相对安全。但是前端人员的路由文件的存放和命名就和后端人员耦合度较高。

    这个demo尝试使用方式二的方式来实现动态路由菜单,喜欢方式一的可以直接研究vue-element-admin项目

    系统管理功能

    用户界面


    用户管理:新增/编辑用户信息,并可以给用户设置一个或多个角色。

    角色 界面


    角色管理:新增/编辑角色信息,并可以给角色设置菜单权限。

    菜单界面


    菜单管理:新增/编辑、管理所有的基础菜单,不同角色可以指定不同的菜单。

    核心代码

    • 数据库菜单数据

    • 接口返回给前端的树形结构数据

    "menus": [{
    			"id": "5e9d2ef576424b61445388acc285da0f",
    			"pId": "0",
    			"weight": "10",
    			"name": "系统管理",
    			"path": "/sys-manage",
    			"component": "",
    			"code": "sys-manage",
    			"hidden": "0",
    			"createTime": null,
    			"forbidden": null,
    			"icon": "el-icon-s-operation",
    			"permission": "",
    			"updateTime": null,
    			"type": "0",
    			"children": [{
    				"id": "e308c7f841d56b791af44fd6a0b6745f",
    				"pId": "5e9d2ef576424b61445388acc285da0f",
    				"weight": "10",
    				"name": "用户管理",
    				"path": "/users",
    				"component": "sys/user/users",
    				"code": "users",
    				"hidden": "0",
    				"createTime": null,
    				"forbidden": null,
    				"icon": "el-icon-user-solid",
    				"permission": "",
    				"updateTime": null,
    				"type": "0"
    			}, {
    				"id": "72633ded69127f0974141bb5687e541d",
    				"pId": "5e9d2ef576424b61445388acc285da0f",
    				"weight": "20",
    				"name": "角色管理",
    				"path": "/roles",
    				"component": "sys/role/roles",
    				"code": "roles",
    				"hidden": "0",
    				"createTime": null,
    				"forbidden": null,
    				"icon": "el-icon-s-custom",
    				"permission": "",
    				"updateTime": null,
    				"type": "0"
    			}, {
    				"id": "5aadb65fed8eca1761bcabe8bb6b9cf9",
    				"pId": "5e9d2ef576424b61445388acc285da0f",
    				"weight": "30",
    				"name": "菜单管理",
    				"path": "/menus",
    				"component": "sys/menu/menus",
    				"code": "menus",
    				"hidden": "0",
    				"createTime": null,
    				"forbidden": null,
    				"icon": "el-icon-menu",
    				"permission": "",
    				"updateTime": null,
    				"type": "0"
    			}]
    		}, {
    			"id": "afc533ce3f5e8611efaa3888e11a9265",
    			"pId": "0",
    			"weight": "20",
    			"name": "开发者工具",
    			"path": "/develop",
    			"component": "",
    			"code": "develop",
    			"hidden": "0",
    			"createTime": null,
    			"forbidden": null,
    			"icon": "fa fa-desktop",
    			"permission": "",
    			"updateTime": null,
    			"type": "0",
    			"children": [{
    				"id": "00aa7dc71a0c0d0538300919f8f308e9",
    				"pId": "afc533ce3f5e8611efaa3888e11a9265",
    				"weight": "10",
    				"name": "测试1",
    				"path": "/test1",
    				"component": "",
    				"code": "111",
    				"hidden": "0",
    				"createTime": null,
    				"forbidden": null,
    				"icon": "fa fa-cutlery",
    				"permission": "",
    				"updateTime": null,
    				"type": "0"
    			}, {
    				"id": "512369a39292357cf9624fddc8e83ec8",
    				"pId": "afc533ce3f5e8611efaa3888e11a9265",
    				"weight": "10",
    				"name": "代码生成",
    				"path": "/gen",
    				"component": "",
    				"code": "gen",
    				"hidden": "0",
    				"createTime": null,
    				"forbidden": null,
    				"icon": "fa fa-code",
    				"permission": "",
    				"updateTime": null,
    				"type": "0"
    			}]
    		}]
    
    • 新增一个store路由模块来清洗数据,把后端数据库表里的数据清洗成route支持的结构
    import { asyncRoutes, constantRoutes } from '@/router'
    /* Layout */
    import Layout from '@/layout'
    
    
    /**
     * 处理拼装侧边栏菜单
     * @param routes asyncRoutes
     * @param menus
     */
    export function filterAsyncRoutes(menus) {
        const res = []
        // 遍历一级菜单 需要component: Layout 布局
        menus.forEach(menu => {
            const tmp = {
                path: menu.path,
                name: menu.code,
                component: Layout,
                meta: {
                    title: menu.name,
                    icon: menu.icon
                },
                hidden: menu.hidden === '0' ? false : true
            }
            if (menu.children) {
                tmp.children = initChildren(menu.children)
            }
            res.push(tmp)
        })
    
    
        return res
    }
    
    // 递归遍历子菜单
    function initChildren(children) {
        const rs = []
    
        children.forEach(child => {
            const temp = {
                path: child.path,
                name: child.code,
                meta: {
                    title: child.name,
                    icon: child.icon
                },
                hidden: child.hidden === '0' ? false : true,
                component: loadView(child.component)
            }
    
            if (child.children) {
                temp.children = initChildren(child.children)
            }
    
            rs.push(temp)
        })
    
    
    
        return rs
    }
    
    /**
     * 解决动态加载路由 报错:Cannot find module 'XXXX', 例如:Cannot find module '@/views/sys/role/roles' 
     * @param {*} view 
     */
    export const loadView = (view) => {
        return (resolve) => require([`@/views/${view}`], resolve)
    };
    
    
    const state = {
        routes: [],
        addRoutes: []
    }
    
    const mutations = {
        SET_ROUTES: (state, routes) => {
            state.addRoutes = routes
            state.routes = constantRoutes.concat(routes)
    
        }
    }
    
    const actions = {
        generateRoutes({ commit }, menus) {
            return new Promise(resolve => {
                let accessedRoutes
                accessedRoutes = filterAsyncRoutes(menus)
                //404 页面,放在最后  否则会报错。这是框架里说得 还真只能放最后。。。
                accessedRoutes.push({ path: '*', redirect: '/404', hidden: true })
                commit('SET_ROUTES', accessedRoutes)
                resolve(accessedRoutes)
            })
        }
    }
    
    
    
    export default {
        namespaced: true,
        state,
        mutations,
        actions
    }
    
    • 修改permission.js逻辑
    import router from './router'
    import store from './store'
    import { Message } from 'element-ui'
    import NProgress from 'nprogress' // progress bar
    import 'nprogress/nprogress.css' // progress bar style
    
    NProgress.configure({ showSpinner: false }) // NProgress Configuration
    
    const whiteList = ['/login'] // no redirect whitelist
    
    router.beforeEach(async (to, from, next) => {
      // start progress bar
      NProgress.start()
    
      // 白名单直接跳转 如果是登陆路由,清空用户token
      if (whiteList.indexOf(to.path) !== -1) {
        next()
      } else {
        //验证是否有token, 有token跳转, 无token或token失效跳转登录页
        const token = store.getters.token
        if (token) {
          const name = store.getters.name
          if (name) {
            next();
          } else {
            // 获取动态路由菜单
            try {
              const { menus } = await store.dispatch('user/getInfo')
    
              const accessRoutes = await store.dispatch('accessRoutes/generateRoutes', menus)
    
              // dynamically add accessible routes
              router.addRoutes(accessRoutes)
    
              // hack method to ensure that addRoutes is complete
              // set the replace: true, so the navigation will not leave a history record
              next({ ...to, replace: true })
            } catch (error) {
              // remove token and go to login page to re-login
              await store.dispatch('user/resetToken')
              Message.error(error || 'Has Error')
              next(`/login?redirect=${to.path}`)
              NProgress.done()
            }
          }
        } else {
          // await store.dispatch('user/resetToken')
          Message.error('登陆失效,请重新登陆')
          next(`/login?redirect=${to.path}`)
        }
      }
    })
    
    router.afterEach(() => {
      // finish progress bar
      NProgress.done()
    })
    
    

    效果

    • 配置角色菜单

    • 配置用户角色

    • 用不同角色用户进行登陆

    user

    admin

    结尾

    基础的代码太多,就没有贴出来,展示出来的都是功能的效果。

    唠叨一下

    拖延症犯了就不想写文章。。。

    展开全文
  • springboot+vue前后端分离框架快速搭建

    千次阅读 2020-08-22 16:29:18
    项目介绍 JavaWeb是基于 SpringBoot2+Layui2.5.6+element-ui+Shiro+MybatisPlus 研发的权限(RBAC)及内容管理系统,致力于做更简洁的后台管理框架,包含系统管理、代码生成、权限管理、站点、广告、布局、字段、配置...

    项目介绍

    JavaWeb是基于 SpringBoot2+Layui2.5.6+element-ui+Shiro+MybatisPlus 研发的权限(RBAC)及内容管理系统,致力于做更简洁的后台管理框架,包含系统管理、代码生成、权限管理、站点、广告、布局、字段、配置等一系列常用的模块,整套系统一键生成所有模块(包括前端UI),一键实现CRUD,简化了传统手动抒写重复性代码的工作。 同时,框架提供长大量常规组件,如上传单图、上传多图、上传文件、下拉选择、复选框按钮、单选按钮,城市选择、富文本编辑器、权限颗粒度控制等高频使用的组件,代码简介,使用方便,节省了大量重复性的劳动,降低了开发成本,提高了整体开发效率,整体开发效率提交80%以上,JavaWeb框架专注于为中小企业提供最佳的行业基础后台框架解决方案,执行效率、扩展性、稳定性值得信赖,操作体验流畅,使用非常优化,欢迎大家使用及进行二次开发。

    • 模块化:全新的架构和模块化的开发机制,便于灵活扩展和二次开发。
    • 模型/栏目/分类信息体系:通过栏目和模型绑定,以及不同的模型类型,不同栏目可以实现差异化的功能,轻松实现诸如资讯、下载、讨论和图片等功能。通过分类信息和栏目绑定,可以自动建立索引表,轻松实现复杂的信息检索。
      SpringBoot2 + Layui开发出来的框架。
    • 支持SQLServer、MySQL、Oracle、PostgreSQL、SQLite等多数据库类型。模块化设计,层次结构清晰。
    • AUTH权限认证,操作权限控制精密细致,对所有管理链接都进行权限验证,可控制到导航菜单、功能按钮。提高开发效率及质量。
    • 常用类封装,日志、缓存、验证、字典、文件(本地、七牛云)。等等,目前兼容浏览器(Chrome、Firefox、360浏览器等)
    • 适用范围:可以开发OA、ERP、BPM、CRM、WMS、TMS、MIS、BI、电商平台后台、物流管理系统、快递管理系统、教务管理系统等各类管理软件。

    功能特性

    • 严谨规范: 提供一套有利于团队协作的结构设计、编码、数据等规范。
    • 高效灵活: 清晰的分层设计、钩子行为扩展机制,解耦设计更能灵活应对需求变更。
    • 严谨安全: 清晰的系统执行流程,严谨的异常检测和安全机制,详细的日志统计,为系统保驾护航。
    • 组件化: 完善的组件化设计,丰富的表单组件,让开发列表和表单更得心应手。无需前端开发,省时省力。
    • 简单上手快: 结构清晰、代码规范、在开发快速的同时还兼顾性能的极致追求。
    • 自身特色: 权限管理、组件丰富、第三方应用多、分层解耦化设计和先进的设计思想。
    • 高级进阶: 分布式、负载均衡、集群、Redis、分库分表。
    • 命令行: 命令行功能,一键管理应用扩展。
    • 基于SpringBoot 简化了大量项目配置和maven依赖,让您更专注于业务开发,独特的分包方式,代码多而不乱。
    • JS封装 对常用js插件进行二次封装,使js代码变得简洁,更加易维护。
    • 参数配置 灵活控制常用功能的开关,无需重启项目即可生效,实时刷新。

    开发者信息

    后台演示(用户名:admin 密码:123456)

    技术支持

    效果图展示

    在这里插入图片描述

    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

    展开全文
  • 三、前后端跨域问题 ​ 这里,主要要提的就是axios的post方式发送数据的数据类型content-type不是x-www-form-urlencoded,而是application/json,对于django的后端来说直接request.POST.get是无法得到数据的,就...
  • 基于 Laravel8.x+AntDesign+Vue 开发的权限架构及内容管理框架,采用全新的前端UI框架,支持多主题切换,前端UI框架完全适配手机、PAD终端以及PC电脑终端,框架内置完整的权限架构体系以及常规基础模块:用户管理...
  • Laravel8.x+AntDesign+Vue前后端分离快速开发平台

    千次阅读 热门讨论 2021-05-06 20:43:25
    基于 Laravel8.x+AntDesign+Vue 开发的权限架构及内容管理框架,采用全新的前端UI框架,支持多主题切换,前端UI框架完全适配手机、PAD终端以及PC电脑终端,框架内置完整的权限架构体系以及常规基础模块:用户管理...
  • 基于 Laravel8.x+AntDesign+Vue 开发的权限架构及内容管理框架,采用全新的前端UI框架,支持多主题切换,前端UI框架完全适配手机、PAD终端以及PC电脑终端,框架内置完整的权限架构体系以及常规基础模块:用户管理...
  • Lombok 项目是一个第三方的 Java 工具库,它会自动插入编辑器和构建工具中,Lombok提供了一组非常有用的注释,用来消除Java类中的大量样板代码,比如 setter getter 方法、构造方法等等, 仅仅在原来的 JavaBean 类...
  • python django框架+vue.js前后端分离

    万次阅读 2021-06-17 09:16:50
    本文用于学习django+vue.js实现web前后端分离协作开发。以一个添加和删除数据库书籍应用为实例。 django框架官方地址:https://www.djangoproject.com/ vue.js 框架官方地址:https://cn.vuejs.org/ 一、构建django...
  • 基于 Laravel8.x+AntDesign+Vue 开发的权限架构及内容管理框架,采用全新的前端UI框架,支持多主题切换,前端UI框架完全适配手机、PAD终端以及PC电脑终端,框架内置完整的权限架构体系以及常规基础模块:用户管理...
  • Vue + SpringBoot 前后端分离的技术栈

    千次阅读 多人点赞 2021-03-24 16:10:50
    Vue + SpringBoot 前后端分离的技术栈模块,毕业设计文案
  • Vue01-前后端分析

    2021-10-07 10:25:11
    Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库(如: vue-router: 跳转,vue-resource: 通信,vuex:管理)或既有项目整合。 2、前端核心分析 想要成为真正的“互联网 Java 全栈工程师”还有很长的一段路要...
  • 前后端分离分工协作是一个非常高效的做法,但是有时前后端分离不彻底会很痛苦。前后端本来应该是异步进行的,进度互不影响,但是在没有mock的时候,前端却严重依赖后端的接口,总会苦苦等待后端接口出来才能继续开发...
  • 本文从一名新手的角度(默认对Vue有了解,对Koa或者Express有了解)出发,从0开始构建一个数据通过Koa提供API的形式获取,页面通过Vue渲染的完整的前端项目。可以了解到Vue构建单页面的一些知识以及前端路由的使用、...
  • Vue:前端体系、前后端分离

    千次阅读 2020-07-31 20:21:50
    Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库(如:vue-router:跳转,vue-resource:通信,vuex:管理)或既有项目整合。 官网:https://cn.vuejs.org/v2/guide/ 2、前端知识体系 想要成为真正的...
  • 前后端分工协作是一个非常高效的做法,但是有时前后端分离不彻底会很痛苦。前后端应该是异步进行的,进度互不影响,但是在没有mock的时候,前端却严重依赖后端的接口,总会苦苦等待后端接口出来才能继续开发。为了...
  • 基于 Laravel8.x+AntDesign+Vue 开发的权限架构及内容管理框架,采用全新的前端UI框架,支持多主题切换,前端UI框架完全适配手机、PAD终端以及PC电脑终端,框架内置完整的权限架构体系以及常规基础模块:用户管理...
  • 阅读文本大概需要15分钟。仓库地址:https://github.com/opendigg/awesome-github-vue awesome-...
  • vue-pc项目实战的项目开发流程

    千次阅读 2020-01-06 15:09:30
    项目介绍 这是一款类似于驾考宝典的综合应用,是关于题库方面的后台管理系统部分 项目的开发流程 立项 boss,产品,讨论确定做什么项目,包含功能什么什么是挣钱的等等 流程图 产品根据功能绘制出实现功能需要经历...
  • 是一款基于SpringBoot2、MybatisPlus、Shiro、Vue、ElementUI等技术栈研发的前后端分离开发框架,设计之初就定位为一款高端产品,采用全新的架构设计,后端服务和前端都是采用全新的设计方案,兼容手机、PAD和PC电脑...
  • SPA项目-瑞幸咖啡一、项目介绍1.1、基本情况1.2、实现的功能1.2.1、静态页面实现1.2.2、动态效果实现(接口)1.3、项目使用到的相关技术二、项目的业务流程(实现)2.1、登录2.1.1、登录的流程2.2、首页2.2.1、首页...
  • 项目介绍 JavaWeb是基于 SpringBoot2+Layui2.5.6+element-ui+Shiro+MybatisPlus 研发的权限(RBAC)及内容管理系统,致力于做更简洁的后台管理框架,包含系统管理、代码生成、权限管理、站点、广告、布局、字段、配置...
  • 点击上方“编程派”,选择设为“设为星标”优质文章,第一时间送达!学习全文大概需要 12分钟,内容实战性较强。1. 前言本篇将基于Python 3.7+Django 3.0结合Vue.js...
  • 优点 这种模式下,前后端的分工非常清晰,前后端的关键协作点是 Ajax接口。看起来是如此美妙,但回过头来看看的话,这与 JSP 时代区别不大。复杂度从服务端的JSP里移到了浏览器的 Javascript,浏览器端变得很复杂。...
  • 项目介绍 JavaWeb_Ant_Pro 是基于 SpringBoot2+Vue+AntDesign+Shiro+MybatisPlus 研发的权限(RBAC)及内容管理系统,致力于做更简洁的后台管理框架,包含系统管理、代码生成、权限管理、站点、广告、布局、字段、...
  • Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品详情页的展示) 一、商品排序 1、完善页面信息 这是用来做排序的,默认按照综合排序。 点击新品,应该按照商品创建时间排序,...
  • 基于 ThinkPhp6.x+AntDesign+Vue 开发的权限架构及内容管理框架,采用全新的前端UI框架,支持多主题切换,前端UI框架完全适配手机、PAD终端以及PC电脑终端,框架内置完整的权限架构体系以及常规基础模块:用户管理...
  • 项目介绍 JavaWeb是基于 SpringBoot2+Layui2.5.6+element-ui+Shiro+MybatisPlus 研发的权限(RBAC)及内容管理系统,致力于做更简洁的后台管理框架,包含系统管理、代码生成、权限管理、站点、广告、布局、字段、配置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,123
精华内容 849
关键字:

vue前后端项目协作

vue 订阅