EthanChenLi / swoft-Xadmin

🚀 基于swoft 2&xadmin开发的后台管理系统🍎
Apache License 2.0
55 stars 8 forks source link

swoft

swoft Xadmin

基于swoft 2.x 和 xadmin 开发的快速后台框架。

版本和依赖要求:
参考文档

swoole文档
swoft文档
xadmin演示

升级记录

版本 更新内容
v0.0.1
v0.0.2 删除一个特别智障的问题
v0.0.3 修复一些特别蛋疼的问题
v0.1.0 修复一些无聊的问题,使用官方session组件

安装方法

启动方式

    swoftcli run -c ws:start

或者

    php bin/swoft ws:start

切换配置

应用配置位于 ./config/{ENV}/base.php
切换环境配置只需要将./app/base.php文件中的配置修改为:

//应用级配置
    'config'   => [
        'path' => __DIR__ . '/../config',
        'env' =>'pro' //pro为生产环境配置,dev为开发环境配置
    ],

分组路由

支持分组路由,如 http://DOMAIN/admin/auth.group/lists,对应目录: Http/Controller/Admin/Auth/AdminController

快速curd模板

内置快速curd操作,可以方便快捷的搭建出常用的curd功能。支持:

使用要求

http://DOMAIN/admin/{Controller}/{lists/add/edit/del}/{?id=}

Controller 为你的控制器名称,路由将自动寻找 controller/{lists/add/edit/del}模板文件 如:http://DOMAIN/admin/index/lists ,路由器会寻找/resource/views/index/lists.html模板文件,否则将会抛出异常到控制台。

全局配置

在需要使用快速curd模板的控制器中引入Trait(trait引入方式见php document)即可

use \App\Http\Traits\HttpBaseTrait;

关联实体模型

protected $model ={Entity}::class;

Entity :你需要关联的实体名称:如

protected $model =Admin::class; 

一、list列表模板

http://DOMAIN/admin/{Controller}/lists

lists 分页模板会查找你绑定的实体内容并将内容分页输出。 lists将会输出以下变量:

lists快捷模板

一、模糊搜索
<div class="layui-input-inline">
    <input type="text" name="params[like][value]" lay-verify="title" autocomplete="off" placeholder="请输入关键词" class="layui-input layui-btn-sm" value="<?php echo($data['keywords']['like']['value']); ?>">
    <input name="params[like][fields]" value="{field1}|{field2}" type="hidden">
    <input type="submit" >
</div>
二、精确搜索
 <input type="input" name="params[{fields}]" value="{your values}">

重写方法

一、 重写请求查询条件方法

用于重写查询条件,返回条件数组

__listsKeywords(array $params, array $map):array
二、重写查询语句

用于定制特殊查询语句,返回查询结果

__listsData(array $map,array $params):array
三、重写渲染页面

用于自行渲染页面,返回标准响应结果

__listsDisplay(array $buildData):Response

二、add\edit快捷模板

http://DOMAIN/admin/{Controller}/{add/edit}{/?id=}

2.1 添加页面

http://DOMAIN/admin/{Controller}/add
一、重写添加渲染页面
__addDisplay():Response
__addUpdateBefore(array $requestParams):bool

2.2 修改页面

http://DOMAIN/admin/{Controller}/edit/?id={index_id}
__editUpdateBefore(array $requestParams):bool
一、重写修改渲染页面
__editDisplay(array $info):Response

2.3 添加/修改数据

添加数据

http://DOMAIN/admin/{Controller}/add

添加数据模板name字段必须跟mysql表字段对应。

修改数据

http://DOMAIN/admin/{Controller}/edit

修改数据必须提交带有主键ID的值

添加/修改前置方法

__{add/edit}Before(array $request):array

添加/修改后置方法

__{add/edit}After(Mix $result):Response

三、快捷删除

http://DOMAIN/admin/{Controller}/del{/?id=}

前置方法

__delBefore(array $map):$map

后置方法

__delAfter(Mix $result):Response

四、导出到excel

添加导出按钮

 <button class="layui-btn layui-btn-normal" onclick="outputExcel('{:getOutputUri()}')">
    <i class="layui-icon">&#xe601;</i> 导出到excel
 </button>

配置

在需要导出的类中添加配置

    protected $output=[
      ["字段名称","excel标题名称",{['为true字段','为false字段']}],
    ];

eg

    protected $output=[
      ["admin_id","id"],
      ["admin_username","用户名"],
      ["created_at","创建时间"],
      ["admin_bs","状态",['启用','禁用']],
      ["admin_nickname","昵称"],
      ["group_name","所属组"],
    ];

Swoft is an open-source software licensed under the LICENSE

power by ethan[touch_789@163.com] LICENSE