SaiAdmin基于webman+vue3的完整框架,代码自动生成,增加Vue免编译

saithink

saiadmin是一款基于vue3 + webman 的极速开发框架,前端开发采用JavaScript,后端采用PHP,两种高效开发语言将会擦出什么样的火花?

内置功能

  1. 用户管理,用户添加、修改、删除,支持不同用户登录后台看到不同的首页
  2. 部门管理,部门组织机构(公司、部门、小组),树结构方式展现适应各种结构
  3. 岗位管理,可以给用户配置所担任职务
  4. 角色管理,树结构设计,支持角色菜单和按钮权限分配,支持角色数据权限分配、强大的角色管理体系
  5. 菜单管理,配置系统菜单和按钮等
  6. 字典管理,对系统中经常使用并且固定的数据可以重复使用和维护
  7. 系统配置,系统的一些常用设置管理
  8. 操作日志,用户对系统的一些正常操作的查询
  9. 登录日志,用户登录系统的记录查询
  10. 服务监控,查看当前服务器状态和PHP环境等信息
  11. 附件管理,管理当前系统上传的文件及图片等信息
  12. 数据表维护,对系统的数据表可以进行清理碎片和优化
  13. 定时任务,在线(添加、修改、删除)任务调度包含执行结果日志
  14. 代码生成,前后端代码的生成(php、vue、js、sql),支持一键下载和一键生成到项目中
  15. 邮件服务,内置邮件发送服务
  16. 应用市场,生态丰富,官网上架官方和开发人员的插件应用
  17. 文件上传,支持本地、七牛云、阿里云、腾讯云上传
  18. 兼容性强,基于webman插件形式开发,对webman无侵入,和webman各种应用插件共存

官方网址: https://saithink.top

演示地址:http://admin.saithink.top

根据角色进行体验,不同角色查看不同数据,仅能分配当前角色已有的权限和部门

超级管理员
账号:admin 密码:123456

总经理
账号:liuqiangdong 密码:123456

销售总监
账号:xiaoshou 密码:123456

文章底部有git地址和微信交流群

项目介绍

1. 内置了完整的权限体系,包括:菜单、用户、角色、部门等权限控制。也包括了日常的系统监控、字典代码、数据表维护、定时任务、代码生成器等功能。
2. 后端分层为三层Controller,Logic,Model;增加了Validate验证器;

Controller 负责处理用户的输入和管理应用程序的流程;
Logic 负责应用的核心功能和规则,确保应用能够按照预期的方式工作;
Model 使应用程序的数据访问和操作逻辑组织得更加清晰和易于维护;
Validate 验证器采取thinkphp的think-validate;

3. 数据库采用Mysql,缓存采用 文件缓存Redis 两种方式,只需要在配置文件选择即可
4. 前后端都有鉴权方式,确保数据的安全性
5. 附带代码生成功能,能够一键生成前后端所有代码,可以直接生成到项目中,也可以下载代码
6. 支持生成apidoc文档格式控制器
7. 支持vue免编译功能,远程加载后端vue文件

项目截图








如何安装

后端安装

本项目是基于webman的插件方式进行开发,对webman项目没有任何侵入性,能够兼容其他webman项目,目前版本支持php7.3 - php8.3,安装方式如下,具体安装和配置流程可以到官方文档 SaiAdmin 进行查看

composer require saithink/saiadmin

如果php版本是7.X无法直接安装的,可以采取以下命令进行安装

composer require -W saithink/saiadmin

前端安装

git clone https://github.com/saithink/saiadmin-vue.git
# 或
git clone https://gitee.com/appsai/saiadmin-vue.git

# 进入项目目录
cd saiadmin-vue
# 安装依赖
yarn install
# 开发模式启动
yarn dev
# 前端打包
yarn build

开源地址

GitHub

前端:https://github.com/saithink/saiadmin-vue.git
后端:https://github.com/saithink/saiadmin.git

Gitee

前端:https://gitee.com/appsai/saiadmin-vue.git
后端:https://gitee.com/appsai/saiadmin.git

微信交流群

微信#1群已满,要进1群的请添加好友邀请进群,好友添加备注saiadmin

13753 61 36
61个评论

10bang

不错,感谢分享

  • saithink 2024-01-21

    希望大家喜欢

  • supdger 2024-06-20

    我喜欢,我朋友不喜欢哈哈。因为我后端,他前端,我前端代码搞不了的就找他,所以他不喜欢。

稚出

装完之后,怎么点什么都是服务器资源不存在

xiaozhiyue

感谢分享

  • 暂无评论
muvtou

感谢分享

  • 暂无评论
彭彭

很棒的分享,好像没有数据权据,建议加上。不知道下面的是否准确,请指教!!!
在BaseModel可以加上

    public function __construct(object|array $data = [])
    {
        parent::__construct($data);
        //注册用户数据权限
        $model = $this;
        self::macro('userDataScope', function (?int $user_id = null) use ($model) {
            //配置文件是否开启数据权限
            if (!config('plugin.saiadmin.saithink.data_scope_enabled')) {
                return $this;
            }
            //获取当前登录用户信息
            if (!$current_user = getCurrentInfo()) {
                throw new \RuntimeException('Data Scope missing user_id');
            }
            //当前登录用户是否超级管理员
            $user_id = $current_user['id'];
            if ($user_id == config('plugin.saiadmin.saithink.SUPER_ADMIN')) {
                return $this;
            }
            //判断模型是否有created_by字段
            if (!in_array('created_by', $model->field)) {
                return $this;
            }
            //用户部门数据权限判断

        });
    }

然后在BaseLogic加判断是否开启用户权限

    /**
     * 搜索器搜索
     * @param array $searchWhere
     * @param bool  $scope
     * @return mixed
     */
    public function search(array $searchWhere = [], $scope = false)
    {
        $withSearch = array_keys($searchWhere);
        $data = $searchWhere;
        foreach ($withSearch as $k => $v) {
            if ($data[$v] === '') {
                unset($data[$v]);
                unset($withSearch[$k]);
            }
        }

        if ($scope) {
            return $this->model->userDataScope()->withSearch($withSearch, $data);
        }

        return $this->model->withSearch($withSearch, $data);
    }

这样在Controller里面调用的时候可以根据具体情况判断是否调用

$query = $this->logic->search($where,true);
  • saithink 2024-01-25

    非常棒,看出来认真研究了的

864328615

后台不需要做数据验证码,看了下源码 数据都是前端传过来就直接入库了

saithink

后台数据验证再这里
截图

  • 864328615 2024-02-01

    不是接口权限 是validate验证

  • saithink 2024-02-01

    后端没有做validate验证,在前端进行的验证

  • saithink 2024-03-12

    目前已经加上了tp的验证器

Jinson

感谢分享

  • 暂无评论
青衣煮茶

支持一下

tangniyuqi

体验了下 真不错

water2023

很棒啊收费不啊

Administration

这个真是不错,666

Forsend

很棒,收藏了!
就是不太会Vue

lllllll

刚准备找个前后端分离项目,就找到了,体验了很不错!

lly888

ting丝滑的的 很不错star下

无法埋名

thinkorm么?习惯了

cc

thinkorm 能升级到最新版面么 有withsun 之类的

  • saithink 2024-03-17

    目前如果php版本是8+的话,安装的就是thinkorm3.+版本

huwen945

请问下验证码支持redis保存吗,我看官网好像是直接显示的图片

  • saithink 2024-03-25

    支持,session和redis两种方式都支持,可以在配置文件中选择

putyy

一眼看去如此像 mineadmin 👍

  • saithink 2024-03-29

    基于mineadmin前端+webman后端开发的

xiaobai

不错啊。大赞

xia

很不错的后台管理系统

zhang9966

功能能否增加一些

Blaze

找了几个不同的前后的分离框架研究了下,就这个的确不错!

soueo

做的非常不错,稍微提点用户体验优化,在定时任务那里,定时规则可以做成像宝塔那样选择的感觉会更好一点

  • saithink 2024-04-28

    感谢支持,后期加上类似若依的那种选择方式,方便用户操作

寒尘卉羽

感谢分享,后面有需要首选这个了

AnT2077

感谢分享

ak47f16200

写的不错,哈哈,

  1. 多模块怎么用呢?
  2. controller可以啥都不写只写一个__construct,我就是这么干的。。
  • saithink 2024-05-08

    多模块参照webman的多模块设计,很简单和方便

tangniyuqi

目前有多少人在用呢

德玛西亚

牛逼,祝你JJ增加5CM

zhou604638018

终于等到了

xpwsgg

给你点个赞

xiaodong

数据库配置文件是在这里改么?

  • xiaodong 2024-05-22

    好的谢谢找到了

  • z 2024-06-24

    请问下你配置成功了吗

yajie

感谢分享

  • 暂无评论
稚出

点赞

  • 暂无评论
morrow

牛皮

  • 暂无评论
nnly055

厉害,准备下个新项目就用这个搞了

liudada1204

嗨喽有个小问题,布局选择混合模式下,系统设置点不开

jiaruo

make

  • 暂无评论
Dawson

saiadmin 安装好了 怎么访问后台 或者说后台的路由是什么

  • saithink 2024-06-30

    建议看一下官网,上面有安装和使用说明

qq375139026

看着是不错, 前端是用的mine-admin的前端吧。 我觉得吧,这个用了还是提及一下吧~~

  • saithink 2024-07-04

    感谢评论,在官网上专门写了的

happy

一键生成代码后,还要配置路由吗?
生成了提示服务器资源不存在,看了下是访问的url提示404

  • saithink 2024-07-28

    按照文档设置好路径,不需要再配置路由

  • happy 2024-07-29

    我是按文档弄的,不行,你们测试可以吗

happy

截图
这是我自己加的,不是框架里面的,如果实现点击切换,能调用接口

  • happy 2024-07-28

    而且带上搜索框的条件

huihui14569

这个有做接口权限的验证吗?

qq7467466

这个框架和MineAdmin很像

  • saithink 2024-08-12

    是的,1.0-2.0前端使用的就是mineadmin的前端

TomMilk

部署就卡住了
1 报错test数据库找不到 : 数据库配置在config\thinkorm.php ,不在config\database.php
2 报错xx表找不到 要导入sql文件
3账号admin 密码123456
4前端执行yarn dev打开网址 提示网络连接错误 : 前端项目里没配置后端接口网址转发

文档能不能写的详细些呀

无法埋名

和hyperf的mineadmin什么区别?

  • saithink 2024-08-20

    3.x版本的前端已取消ma的封装模式,采取arco design原装表单,后端webman和hyper天然有区别

misfeng

大佬,有考虑出thinkphp版本的吗

  • saithink 2024-08-21

    本来就是从thinkphp转过来的,thinkphp也有很多类似框架

  • 德玛西亚 2024-08-21

    webman的代码开发逻辑上跟用tp没啥区别,直接用就行了

1057451212@qq.com

tongyi

感谢分享

  • 暂无评论
kzhzjdyw888

这个项目的贡献对社区的影响深远,真心佩服开发者的付出。

xiaodong

好用牛逼轰轰的

  • 暂无评论
xiaodong

这个接口找不到
http://localhost:8888/dev/core/dept/accessDept
composer 与gitee上的代码不同步composer3.0.1版本

  • saithink 2024-09-06

    确定安装的后端是最新版,用官方源,不行的话就到git上去下载

  • xiaodong 2024-09-06

    我php8.0.2 composer 后端代码下载下来的是3.0.1,我切换到3.x.dev还是每一这个接口,我用git上的替换掉了谢谢

dsx5ds

开源可以商用么,感觉不错,

  • 暂无评论
sanergo

其实一直没搞懂一个后台为什么还要去前后端分离?
对于90%以上的项目来说,后台基本就是运营用来看数据的地方,基本不对外开放(就算对外开放也够用)。现有的webman admin绝对够用了,而且还方便部署和管理。
所以是真不太理解,难道大家都是属于那10%的这部分吗?

  • dsx5ds 2024-09-06

    看使用环境吧,比如企业内部来说,多部门岗位这个框架更有优势,其次是vue的响应模式可以让那些数据录入等非编程人员更舒服,老板看着也开心啊

  • 1057451212@qq.com 2024-09-06

    是的,我也 不喜欢 后端 的 前台代码 还需要打包。

  • ieras 2024-09-11

    其实大部分公司项目来说 都是分离的。。。

liudada1204

按本地安装教程来的,3.0.1.update.sql导入数据库时报错,windows环境,用的navicat

php版本7.3.4,启动时报错

TomMilk

请问哪些网站用的这款框架开发的?
有案例吗?

misfeng

关联模型 搜索的话 有点难搞呢,用的搜索器不知道怎么加

tesla

求大佬把携程加到框架中

  • saithink 11天前

    安装兔子大佬的协程插件就可以使用协程了

dsx5ds

hasone 等 怎么加with查询getlist呢

破建站的

前后端本地都安装了 体验是真不错 可惜 thinkorm实在用不惯 尝试改造发现工作量巨大 大佬有考虑弄个 laravel orm 的版本吗

  • gddd 10天前

    +1 希望支持laravel orm

  • saithink 10天前

    laravel orm是强大一些,后续有时间了再弄吧

wocall

总之,牛逼

  • 暂无评论

saithink

570
积分
0
获赞数
0
粉丝数
2023-02-22 加入
×
🔝