All Projects → chichengyu → thinkphp5.1-vue-iview-admin

chichengyu / thinkphp5.1-vue-iview-admin

Licence: other
基于thinkphp5.1、vue、iview的一个后台管理系统

Programming Languages

PHP
23972 projects - #3 most used programming language
Vue
7211 projects
Smarty
1635 projects
javascript
184084 projects - #8 most used programming language
PLpgSQL
1095 projects
CSS
56736 projects

Projects that are alternatives of or similar to thinkphp5.1-vue-iview-admin

Uniadmin
UniAdmin是一套渐进式模块化开源后台,采用前后端分离技术,数据交互采用json格式,功能低耦合高内聚;核心模块支持系统设置、权限管理、用户管理、菜单管理、API管理等功能,后期上线模块商城将打造类似composer、npm的开放式插件市场;同时我们将打造一套兼容性的API标准,从ThinkPHP5.1+Vue2开始,逐步吸引爱好者共同加入,以覆盖larval、spring-boot、django、yii、koa、react等多语言框架。
Stars: ✭ 277 (+1357.89%)
Mutual labels:  iview, thinkphp5
YuMusic
A Music Player Build with JavaFX WebView, iView,RequireJS
Stars: ✭ 17 (-10.53%)
Mutual labels:  iview
Vuewechatplateform
这是我用Vue 写的一个微信第三方公众号管理平台
Stars: ✭ 184 (+868.42%)
Mutual labels:  iview
Opendevops
CODO是一款为用户提供企业多混合云、一站式DevOps、自动化运维、完全开源的云管理平台、自动化运维平台
Stars: ✭ 2,990 (+15636.84%)
Mutual labels:  iview
Jsearch
jSearch(聚搜) 是一款专注内容的chrome搜索扩展,一次搜索聚合多平台内容。
Stars: ✭ 193 (+915.79%)
Mutual labels:  iview
laravel-spa-iview
Laravel 5 Boilerplate / Starter kit with iview
Stars: ✭ 46 (+142.11%)
Mutual labels:  iview
Codo
基于Vue + Iview-Admin实现的一套后台管理系统
Stars: ✭ 172 (+805.26%)
Mutual labels:  iview
think-redisd
thinkphp 5 redis读写分离驱动
Stars: ✭ 24 (+26.32%)
Mutual labels:  thinkphp5
tp5-rbac
一个tp5的RBAC库,使用composer来安装和更新你的项目对于RBAC的需求。同时支持jwt方式的验证。包含了RBAC需要的数据表的数据迁移,能够很方便的开始开发。
Stars: ✭ 69 (+263.16%)
Mutual labels:  thinkphp5
Vue Questionnaire
使用 Vue + CI 开发的简易问卷调查系统,演示账户:admin / admin
Stars: ✭ 220 (+1057.89%)
Mutual labels:  iview
Blog Frontend Project
Web frontend code for my blogs, develop with Vue.
Stars: ✭ 206 (+984.21%)
Mutual labels:  iview
Vue Cnode
🚀 基于vue3 function-based 构建cnode社区
Stars: ✭ 192 (+910.53%)
Mutual labels:  iview
vueleopard
a simple 'vue iview webpack' admin leopard template
Stars: ✭ 16 (-15.79%)
Mutual labels:  iview
Thinkjs Vue.js Blog
使用 ThinkJS+Vue.js+mysql 开发的博客程序,演示地址:
Stars: ✭ 190 (+900%)
Mutual labels:  iview
dproxy
简易的网络代理工具,带有IP白名单限制管,带有简洁的UI管理界面,提供丰富的API接口,可方便的与各个系统集成,可编译为单文件运行
Stars: ✭ 25 (+31.58%)
Mutual labels:  iview
Onlinejudgefe
A multiple pages app built for OnlineJudge
Stars: ✭ 175 (+821.05%)
Mutual labels:  iview
Vue Backage
基于vue和iview的后台管理系统
Stars: ✭ 198 (+942.11%)
Mutual labels:  iview
huybery-blog
spa blog by flask & vue
Stars: ✭ 28 (+47.37%)
Mutual labels:  iview
dawn-api
A RESTful API package
Stars: ✭ 25 (+31.58%)
Mutual labels:  thinkphp5
saltshaker frontend
saltshaker_plus frontend
Stars: ✭ 65 (+242.11%)
Mutual labels:  iview

thinkphp5.1-vue-iview-admin

介绍

基于thinkphp5.1、vue、iview做的一个后台管理系统,默认打包出的是异步加载

另外这里在提供一个版本,项目跟这个项目是一模一样的,唯一不同的就是,打包出的文件不是异步加载,只有三个文件,bundle.js、index.html、images。
[email protected] 链接: https://pan.baidu.com/s/1G7qsn8ouE3eOksxO7R7dwA 提取码: hq4d
[email protected] 链接: https://share.weiyun.com/5ioodcD (密码:VZ8n)
0.1是整改前的,0.2是整改后的

还有一点需要注意的是,如果使用本项目的ThinkPHP5.1进行接口开发,值得注意的一点是,我已经封装好接管异常的处理了,只需要创建异常类文件继承封装的异常就可以了。异常目录 app/lib/excption 目录,这个异常类分两种,一种是客户端异常(BaseException),一种服务器异常(不需要管,接管的异常会自动处理),当需要在不同功能接口返回异常时,只需要创建对应的异常类来继承客户端异常(即 BaseException)即可。

架构

架构说明

目录结构

ThinkPHP的目录结构就不用多说了,要说的是结合Vue后的目录

     public目录  
     ├─preview          预览目录(安装之后直接删除)  
     ├─static           应用目录  
     │  ├─admin             后台目录(本后台管理系统主目录)  
     │  ├─home              前台目录  
     │  ├─src               模块目录  
     │  │  ├─.Runtime          预编译与缓存目录(运行npm run build:dll生成,使用时不用管,提升打包速度生成的文件存放目录)
     │  │  ├─api               接口请求目录  
     │  │  ├─assets            静态资源目录  
     │  │  ├─components        组件目录  
     │  │  ├─config            配置目录  
     │  │  ├─lib               核心库目录  
     │  │  ├─router            路由目录  
     │  │  ├─store             vuex目录  
     │  │  ├─views             视图目录  
     │  │  ├─App.vue           根组件  
     │  │  ├─env.js            环境变量配置文件  
     │  │  ├─index.html        主页    
     │  │  ├─main.js           入口文件    
     │  │  └─ ...              
     │

Getting started

# clone the project
git clone https://github.com/chichengyu/thinkphp5.1-vue-ivew-admin.git

# install dependency
composer install

# install dependency
npm install

# 利用 DllPlugin 和 DllReferencePlugin 预编译资源模块生成 vendor.dll.js(优化打包速度)
npm run build:dll

# build
npm run build

# watch
npm run watch

注意:安装完成后,先把 public/prieview 整个目录删除,这个只是用于在这里预览而已。另外,值得注意一下的是,在执行 npm run watchnpm run build之前,必须先执行 npm run build:dll,这样后面打包时的速度会快很多。预编译资源模块:webpack.dll.config.js就是预编译模块的配置文件,想要使用预编译资源功能就需要webpack.dll.config.jsentry 的配置项 vendor中加入路径。如:axios(我这里是 npm install axios,所以就是默认找 node_modules 文件夹)

vendor: [
   'axios',
   // ...其它库
],   

Build

# Dev server
npm run dev  

# build  
npm run build

# watch
npm run watch

使用说明

ThinkPHP5.1、Vue、Iview的使用就不在此多说了,这里要说的是前后分离时的 权限控制,这里介绍两种方法,两种都需要前后配合
至于,路由的具体添加请查看 public/static/src/router/admin.routes.js 的注释,有详细说明

  • Vue-Router的meta元信息
    在需要验证的路由中加入 meta 属性 meta:{rules:['admin','editor']},如下:
      {  
          path:'index',  
          name:'adminIndex',  
          meta:{rules:['admin','editor']},// 如此这样  
          component: () => import(/* webpackChunkName: "login" */ '@/views/admin/components/index.vue')  
      }  
    
    admin、editor表示只有 admin/editor 两个用户组的用户能访问此条路由。
    当用户登陆时返回的用户信息中需要有当前用户所属的用户组(键名:roles)
    如:
     {
          username: 'admin',
          token: ' 5bf4b1a323557c43607406bc',
          roles: ['admin']
     } 
    
  • Vue-Router的name属性
    在需要验证的路由中加入 name 属性,且每个路由的 name 值必须是独一无二的,不能有相同值的,后台需要返回一个以所有路由中 name 值的对象规则,
      {
          "rules": {
              'index': true,
              'adminIndex': true,
              'table': true,
              'form': true,
              'keyboard': true,
              'line': true,
              'icons': true,
              'mix': true,
              'notAuth': false,
              'found': false,
          }
      }
    
    然后在路由守卫里进行判断筛选出当前登陆用户的菜单动态挂载到路由上。
    这里使用的是 meta 属性进行权限控制的,当然两种各有优劣势

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].