V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
jqh
V2EX  ›  PHP

Dcat Admin - 对后端开发者友好的高颜值后台系统构建工具,简单高效,开箱即用

  •  5
     
  •   jqh · 2020-05-07 10:14:36 +08:00 · 7800 次点击
    这是一个创建于 1443 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Dcat Admin

    Dcat Admin是一个基于laravel-admin二次开发而成的后台系统构建工具,只需很少的代码即可快速构建出一个功能完善且颜值极高的后台系统。内置丰富的后台常用组件,开箱即用,让开发者告别冗杂的 HTML 代码,对后端开发者非常友好。

    在线演示站点 | 官方文档 | Github 主页(如果喜欢这个项目不妨点个 star,感谢支持!)

    截图

    环境

    • PHP >= 7.1.0
    • Laravel 5.5.0 ~ 7.*
    • Fileinfo PHP Extension

    技术栈

    功能

    • 用户管理
    • RBAC 权限管理,支持无限极权限节点
    • 菜单管理
    • 使用 pjax 构建无刷新页面,支持按需加载静态资源,可以无限扩展组件而不影响整体性能
    • 松耦合的页面构建与数据操作设计,可轻松切换数据源
    • 自定义主题配色,可任意添加配色
    • 多主题切换,内置多种主题色
    • 可轻松构建无菜单栏的独立页面(如可用于构建弹窗选择器等功能)
    • 插件功能
    • 可视化代码生成器,可根据数据表一键生成增删改查页面
    • 数据表格构建工具,内置丰富的表格常用功能(如组合表头、数据导出、搜索、快捷创建、批量操作等)
    • 树状表格功能构建工具,支持分页和局部加载
    • 数据表单构建工具,内置丰富的表单类型,支持表单异步提交
    • 分步表单构建工具
    • 弹窗表单构建工具
    • 数据详情页构建工具
    • 无限层级树页面构建工具,支持用拖拽的方式实现数据的层级、排序等操作
    • 内置丰富的常用页面组件(如图表、数据统计卡片、下拉菜单、Tab 卡片、提示工具等)
    • Section功能(类似WordpressFilterblade模板的section标签)
    • 异步文件上传表单,支持分块多线程上传
    • 多应用(多后台),此功能正在开发 zhong...

    理念与方向

    Dcat Admin是一款追求对后端开发者友好的后台系统构建工具,追求简单、易用、高品质、高效率和高颜值,我们将持续为此付出努力,也非常欢迎有兴趣的小伙伴加入我们。

    Dcat Adminlaravel-admin原有的功能进行了大量的调整升级,并且增加了许多非常实用的功能。在后续版本迭代中也会秉承“对后端开发者友好”的理念,细心打磨每一个功能,并且会非常重视生态的构建和用户的意见,如果大家有任何建议或想法,都可以在Github issue 区或 QQ 群中反馈,我们会多听大家的。

    高完成度

    这个项目现已经过一年多时间的细心打磨,各项功能已趋于完善和稳定,后续将投入更多时间用于文档建设和编写单元测试用例,尽量保证项目的质量以及文档的友好和完善。

    妥善的版本发行策略

    Dcat Admin的版本发行将会参考主流web 框架的发行策略,尽量降低版本升级带来的影响,最大程度的考虑兼容性问题,小版本的升级将尽量不改动任何功能接口;同时我们也将会提供更新日志,详细说明新版本的改动以及可能造成的影响。

    交流

    QQ 群 704661955

    鸣谢

    非常感谢laravel-admin的开发团队!没有laravel-admin就没有这个项目,非常感谢你们的付出,laravel-admin是个非常优秀的项目。

    最后也非常感谢自放出预告帖这段时间来关注和支持这个项目的同学们,你们的支持给了我非常大的动力!我会用心把这个项目做好,精心打磨每一个功能,并一直维护下去。

    最近有很多同学问我为什么不采用前后端分离技术方案,我在这个帖子里回答的非常详细,有相关疑问的同学请点击此处查看帖子,这里不再赘述。

    54 条回复    2020-05-18 12:38:32 +08:00
    tikazyq
        1
    tikazyq  
       2020-05-07 10:20:12 +08:00   ❤️ 10
    好东西,可惜是 PHP 的
    dapang1221
        2
    dapang1221  
       2020-05-07 10:25:13 +08:00   ❤️ 1
    好东西,已 star
    blackboom
        3
    blackboom  
       2020-05-07 10:35:56 +08:00
    请问作者 AdminLTE3 的主题是自己写的吗
    jqh
        4
    jqh  
    OP
       2020-05-07 10:42:41 +08:00
    @blackboom 是的,UI 设计参考了 vuexy,自己调整了细节和配色
    terranboy
        5
    terranboy  
       2020-05-07 10:42:47 +08:00
    缺点就是集成度太高了也不好
    putaozhenhaochi
        6
    putaozhenhaochi  
       2020-05-07 10:47:08 +08:00 via Android
    挺好的。 搞后端的对 jQuery 一把梭还是很有好感的。🐶
    kylesean
        7
    kylesean  
       2020-05-07 10:51:48 +08:00
    集成太高了,实现复杂的交互,比如商城管理系统中多规格商品的录入,这种类似的组件就比较麻烦,这种一般是 PHP 一把锁,前端代码由后端返回,个人不太喜欢这种开发方式。当然无侵入性的统一的 CURD 类型的管理后台用这个还是很快就能开发完了。支持一下!
    jqh
        8
    jqh  
    OP
       2020-05-07 10:53:37 +08:00
    @putaozhenhaochi 对,就是这种感觉哈哈哈
    jqh
        9
    jqh  
    OP
       2020-05-07 10:57:01 +08:00
    @kylesean `laravel-admin`的整体设计是非常优秀的哦,各项功能都是可以通过一种非常简单的方式进行扩展,也是组件化的低耦合细粒度。

    就比如你这个多规格商品录入,只需要扩展一个`Form`表单字段的类就行了,然后就能单独维护和复用,并不会复杂或难扩展难维护。
    GTim
        10
    GTim  
       2020-05-07 11:03:57 +08:00
    非常赞
    GTim
        11
    GTim  
       2020-05-07 11:08:33 +08:00
    借楼问一下,有 Spring Boot 相关的吗
    fuxkcsdn
        12
    fuxkcsdn  
       2020-05-07 11:24:28 +08:00
    曾经在外包项目使用过 laravel-admin 框架,开发到一半改了需求,为了项目需要不得不去改框架的时候简直想屎的心都有了,项目完结后发现我花了 1/3 的时间在改这框架
    dodo2012
        13
    dodo2012  
       2020-05-07 11:27:49 +08:00
    AdminLTE3 的主题改的不错
    jqh
        14
    jqh  
    OP
       2020-05-07 11:35:44 +08:00
    @GTim 目前没有
    GTim
        15
    GTim  
       2020-05-07 11:38:44 +08:00
    @dodo2012 的确,这主题很好看
    jqh
        16
    jqh  
    OP
       2020-05-07 11:39:59 +08:00
    @fuxkcsdn 不知道你主要是什么需求改源码?我也是因为对 laravel-admin 的许多细节不满意才开发这个项目,现在对 laravel-admin 做了非常多的细节优化,增加了更多实用的功能
    GTim
        17
    GTim  
       2020-05-07 11:40:29 +08:00
    看了你们的请喝咖啡入口,没看到二维码,想请你们喝杯咖啡
    jqh
        18
    jqh  
    OP
       2020-05-07 11:41:16 +08:00
    @GTim 哈哈非常感谢你的支持,先不必了
    Donne
        19
    Donne  
       2020-05-07 11:49:37 +08:00
    颜值确实高,很喜欢这种风格
    ragnaroks
        20
    ragnaroks  
       2020-05-07 11:57:58 +08:00   ❤️ 1
    这个配色确实不错,我之前也做过这类东西,因为 MC 的缘故,用的 yml 去做节点权限配置
    loading
        21
    loading  
       2020-05-07 11:59:06 +08:00 via Android
    我觉得很不错,普通后台 jQuery 很合适。
    hst001
        22
    hst001  
       2020-05-07 12:05:04 +08:00
    好看,前后端有做分离吗?后端如果可以切换其它语言就更棒了!
    jqh
        23
    jqh  
    OP
       2020-05-07 12:32:30 +08:00
    @hst001 前端代码是独立的,在 resource 目录,用 webpack 打包的
    EmptyDX
        24
    EmptyDX  
       2020-05-07 13:27:58 +08:00
    图表这块有点像 Nova,哈哈
    jqh
        25
    jqh  
    OP
       2020-05-07 13:45:43 +08:00
    @EmptyDX 是的,这个数据统计卡片是模仿 nova 的截图写的
    haozi3156666
        26
    haozi3156666  
       2020-05-07 13:48:37 +08:00
    不错啊
    fuxkcsdn
        27
    fuxkcsdn  
       2020-05-07 16:01:40 +08:00
    @jqh 报表,大部分这类框架的表格功能都弱得一笔,一涉及到需要报表的时候就只能自己开发了
    jqh
        28
    jqh  
    OP
       2020-05-07 16:06:50 +08:00
    @fuxkcsdn 报表功能我也考虑到了,所以支持了双表头报表功能,并且使用也非常简单,只需增加几行代码就行了。

    其实你这个都不需要重写源码,只需要自定义 grid 的 view 模板就行了。
    fuxkcsdn
        29
    fuxkcsdn  
       2020-05-07 16:22:52 +08:00
    @jqh 就是定义这些模板才更麻烦
    当初引入第三方报表 前端文件 后,为了适配 view 模板,还不得不花时间把框架的整个 view 功能了解一遍

    p.s. 我没重写框架源码,要是直接重写源码也不需要那么麻烦了,就是为了兼顾后续升级去适配他的 view 模板才搞得麻烦的要死
    barbery
        30
    barbery  
       2020-05-07 16:33:42 +08:00
    不错,点赞
    jqh
        31
    jqh  
    OP
       2020-05-07 16:51:21 +08:00
    @fuxkcsdn 很好奇你用了哪个第三方的报表功能,方便发个链接看看吗?

    如果你是定义所有模板的话的确非常麻烦,特别是升级,你逐个功能都得重新测试一遍,而且 laravel-admin 版本差异比较大那就更难受了。所以我推荐的是 $grid->setView('xxx') 这样只自定义一个 view 模板,这样就没啥问题了。
    bugsnail
        32
    bugsnail  
       2020-05-07 17:05:10 +08:00
    消息提醒是一个前后端需要联动的功能,如果没有实现,就不要放出来了,总感觉能用

    多语言功能同理

    其它总体来讲,都是痒点创新,不算痛点,不知道为什么花这么大力气自己整一个开源,因为做开源并不是做出来就好了,还要长期维护的

    痛点的话,我举个例子,后台一个痛点就是 EXCEL 导入导出,我看到有个组全表头的,你想过之后被业务要求一模一样导出来的吗?

    以上是个人一些看法,主题好不好看,仁者见仁了,个人认为企业还是会选 adminlte 这风格的

    最后赞一下文档,还是很不错的。
    jqh
        33
    jqh  
    OP
       2020-05-07 17:23:47 +08:00
    @bugsnail 感谢建议,那两个按钮只是放出来演示自定义导航栏功能的,这个用过 laravel-admin 的同学会懂。

    之所以写这个项目并不是单纯的炫技之类的或者是三分钟热度,主要还是因为太喜欢 laravel-admin 的这个设计,写后台的体验真的是 PHP 后台系统中我没找到第二个能与之匹敌的,基本只要简单的几行代码就能实现一个完善的后台系统,而且每个功能基本都可以以组件化的形式进行扩展非常灵活。

    但是 laravel-admin 虽然设计非常棒,功能细节上却有非常多的不足,而且作者又比较忙,很多问题都没时间处理。所以我才花大力气写这个项目,在 laravel-admin 的基础上做了非常多的细节优化,并且增加了非常多实用的功能,简单的说就是功能更多更完善更好用了。

    这个项目正式版发布还不到一个月目前反响算是还不错的,既然都花这么多时间写出来了,后续也肯定会坚持维护下去,并且根据用户的反馈与实际场景结合不断完善。
    但是 laravel-admin 虽然设计非常棒,功能细节上却有非常多的不足,而且作者又比较忙,很多问题都没时间处理。所以我才花大力气写这个项目,在 laravel-admin 的基础上做了非常多的细节优化,并且增加了非常多实用的功能,简单的说就是功能更多更完善更好用了。

    这个项目正式版发布还不到一个月目前反响算是还不错的,既然都花这么多时间写出来了,后续也肯定会坚持维护下去,并且根据用户的反馈与实际场景结合不断完善。

    @bugsnail
    fuxkcsdn
        34
    fuxkcsdn  
       2020-05-07 17:24:23 +08:00
    @jqh https://www.ag-grid.com/ 当时还用到了 select2
    fuxkcsdn
        35
    fuxkcsdn  
       2020-05-07 17:32:04 +08:00
    @jqh p.s. 当时引入 ag-grid 第一个问题就是这类框架的可视面积太小,很多东西实际上被我们集成到 ag-grid 里了(比如表格数据的搜索和筛选),然后不得不去看 框架的 view 实现,让它把右侧的 content 完全释放出来

    当然,我说的这项目是 2,3 年前了,由于那次不愉快的体验,就再也不想折腾这些框架了,老老实实 layui 走起
    bugsnail
        36
    bugsnail  
       2020-05-07 17:34:45 +08:00
    @jqh #33 那挺配服你的,一般人功能细节不足都是提 issue/PR,你是重新做一个

    如果真做大了,估计一大堆 LA 的 issue 都会变成你的

    如果能真的做下去,还是挺支持的, 毕竟做开源要的时间挺多的,如果盘活插件开发的话,就更好了,不失为超越 LA 的存在,毕竟 LA 这样的形态已经很不错了。
    sunshinev
        37
    sunshinev  
       2020-05-07 17:37:27 +08:00
    @dapang1221 我有 go 的你要吗~~go-sword
    sunshinev
        38
    sunshinev  
       2020-05-07 17:38:34 +08:00
    @kylesean 这个 go-sword,用 Vue+iView 搞得,https://www.v2ex.com/t/668737#reply12
    jqh
        39
    jqh  
    OP
       2020-05-07 17:40:25 +08:00
    @fuxkcsdn 嗯嗯我看了下这个插件,我现在这个系统的功能已经跟这个插件差不多了,后面也会继续优化

    content 完全释放出来,你是指自定义页面吧,其实这个挺简单的,$content->body(view(xxx)) 就行了
    jqh
        40
    jqh  
    OP
       2020-05-07 17:46:46 +08:00
    @bugsnail 后面会找更多志同道合的小伙伴一起维护,生态这个我也会比较重视,fastadmin 就做得不错,这个也是我学习的目标。

    laravel-admin 的生态我个人感觉做得比较一般,laravel-admin 的第三方插件大部分插件开发出来之后就不更新了。一方面是因为缺少关注度开发者渐渐丧失动力,另一方面也是因为 laravel-admin 的升级版本差异太大的原因。
    lic2zac
        41
    lic2zac  
       2020-05-07 18:02:14 +08:00
    看起来还不错
    robotdiy
        42
    robotdiy  
       2020-05-07 21:48:20 +08:00
    界面挺漂亮。
    omghonor
        43
    omghonor  
       2020-05-08 08:39:27 +08:00
    听说兄弟跟我撞头像,赶紧点个 star
    jqh
        44
    jqh  
    OP
       2020-05-08 08:48:41 +08:00
    @omghonor 哈哈哈,你为什么不让皇受露脸
    forever139
        45
    forever139  
       2020-05-08 10:13:52 +08:00
    喜欢前端比较干净
    onion606
        46
    onion606  
       2020-05-08 17:54:40 +08:00 via Android
    很好看,感觉比 Laravel admin 好看的不是一星半点,已 Star 。
    之前用 LaravelAdminLTE 也挺好,就是集成度不高,界面还要自己写……

    顺便问一下,是不是对手机没有支持的很好,在手机下看的感觉有蛮多不对劲的……
    特别是顶部的那个菜单,用户下拉菜单下拉的时候整个菜单的宽度都变了,好像这是 AdminLTE 的锅……
    jqh
        47
    jqh  
    OP
       2020-05-08 17:59:54 +08:00
    @onion606 是的,手机页面用的人很少,暂时没有时间适配,后面会专门优化
    onion606
        48
    onion606  
       2020-05-08 18:44:02 +08:00 via Android
    @jqh 对 这种页面一般都没什么人用手机看,都是临时看看,不过顶部的菜单栏太难受了😁 界面很好看
    jqh
        49
    jqh  
    OP
       2020-05-08 20:18:55 +08:00
    @onion606 哈哈哈,现在开放了自定义主题配色功能,用户如果对现在的主题配色不满意,可以随意更改,很方便
    HANXIAO1996
        50
    HANXIAO1996  
       2020-05-15 14:17:33 +08:00
    我觉得你弄不到 fastadmin 那么大规模
    jqh
        51
    jqh  
    OP
       2020-05-15 15:05:58 +08:00
    @HANXIAO1996 这个确实很难,fastadmin 毕竟已经经过了这么多年的积累,不过梦想总是要有的,不是吗?在开发体验上,我们还是有信心能做得比 fastadmin 做得更好的,甚至好很多。

    目前这个项目已经与国内最大的 laravel 社区达成合作,已经是个不错的开始了,毕竟正式版发布到现在才一个月时间而已,后续我们也会不断完善这个项目,并且在生态构建方面也会吸取 fastadmin 的经验。
    Xusually
        52
    Xusually  
       2020-05-18 12:11:19 +08:00
    前几天正好别的地方看到,搜了一下,没想到 v2 有帖子。
    还没测试,正好问下楼主对数据库的侵入性如何?好多 Laravel 的框架,都对已有项目的 db 有侵入。
    jqh
        53
    jqh  
    OP
       2020-05-18 12:34:03 +08:00
    @Xusually 有内置的用户以及权限系统,你可以在内置的基础上做调整,也可以完全不用内置的用户系统。
    Xusually
        54
    Xusually  
       2020-05-18 12:38:32 +08:00
    @jqh 👌,谢谢解答,已经 Star,抽空看一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2743 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 12:53 · PVG 20:53 · LAX 05:53 · JFK 08:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.