dragonlhp/tpamis

TpAmis 类似 DophinPHP(海豚PHP)的快速构建表格个表单的构建器

v1.0.36 2025-06-05 01:17 UTC

README

TpAmis 是一款基于amis的快速构建表格和表单的构建器

安装

composer require dragonlhp/tpamis

资源及数据库配置

php think tpamis:publish

以上操作将会复制静态资源文件到/public/static/tpamis目录下

上传文件地址需要自行修改,后期会改为全部是配置文件

注册修改的服务 // 容器Provider定义文件

return [
    'think\exception\Handle' => TpAmis\provider\ExceptionHandleNew::class,
    'think\Paginator' => TpAmis\provider\Paginator::class,
    '\think\db\BaseQuery' => TpAmis\provider\BaseQuery::class,
];

在common.php中实现AmisUserAuth函数,用于按钮权限认证
function AmisUserAuth($url)
{
	return true;
}

使用案例:

<?php

namespace app\controller;

use app\BaseController;
use app\model\SystemAdmin;
use app\model\SystemCompany;
use TpAmis\Traits;

class Index extends BaseController
{
    use Traits\JumpTrait;
    use Traits\ExportTrait;
    use Traits\UploadTrait;
    use Traits\RequestTrait;
    use Traits\ElementTrait;
    use Traits\QueryPathTrait;
    use Traits\FileManagerTrait;
    use Traits\CheckActionTrait;
    use Traits\IconifyPickerTrait;
    use Traits\AmisAdminTrait;

    public function index()
    {
        if ($this->request->isPost()) {
            $data = SystemAdmin::where('id', '>', 1)->paginate();
            return $this->data($data);
        }

        $amis = amis()->TableBuilder()
            ->setTitle('产品开发页面')
            ->setApi(BaseApiPost('index'))
            ->addColumns([
                ['id', 'ID'],
                ['head_img', '头像', 'avatar'],
                ['head_img', '头像', 'image'],
                ['username', '用户名','text'],
                ['nickname', '昵称'],
                ['phone', '手机', 'number', '', '', ['kilobitSeparator' => true]],
                ['in_time', '入职时间', 'date'],
                ['company_id', '所属公司', 'select', '', SystemCompany::column('name', 'id')],
                ['company_id', '所属公司', 'select.edit', '', SystemCompany::column('name as label,id as value')],
                ['status', '状态', 'switch'],//同时支持日期格式和时间戳格式的显示
                ['create_time', '创建时间', 'datetime'],//同时支持日期格式和时间戳格式的显示
                ['update_time', '修改时间', 'datetime'],//同时支持日期格式和时间戳格式的显示
                ['right_button', '操作', 'btn'],
            ])
            // ->setImageUrlDomain()
            // ->setImageUrlDomainFields([])
            ->addTopButton('create')
            ->addTopButtons('enable,disable')
            ->addTopButtons(['delete'])
            ->addRightButton('edit', '编辑', 'full')
            ->addRightButton('custom', 'AjaxAction', '启用')
            ->addRightButtons(['delete', 'status' => ['状态']]);
        return $this->fetch($amis);
    }

    public function create()
    {
        $amis = amis()->FormBuilder()->debug()
            ->setTitle('产品开发页面')
            ->setApi(BaseApiPost('table'))
            ->addFormItems([
                ['head_img', '头像', 'avatar'],
                ['username', '用户名', 'text', '', '默认值', ['required' => true]],
                ['nickname', '昵称'],
                ['phone', '手机', 'number', '', '1', ['kilobitSeparator' => true]],
                ['in_time', '入职时间', 'date'],
                ['company_id', '所属公司', 'select', '', SystemCompany::column('name as lebel,id as value'), ['required' => true]],
                ['create_time', '创建时间', 'datetime'],
                ['update_time', '修改时间', 'datetime'],
            ])
            ->addText('remark', '备注')
        ;

        return $this->fetch($amis);
    }
    public function edit()
    {
        $id = $this->request->param('id');
        if (!$id) {
            return $this->error('参数错误');
        }

        $data = SystemAdmin::find($id);
        $amis = amis()->FormBuilder()
            ->setTitle('产品开发页面')
            ->setApi(BaseApiPost('table')) //api获取表单填充数据
            ->data($data->toArray()) //直接设置表单数据
            ->addFormItems([
                ['head_img', '头像', 'avatar'],
                ['username', '用户名', '', '', '默认值', ['required' => true]],
                ['nickname', '昵称'],
                ['phone', '手机', 'number', '', '', ['kilobitSeparator' => true]],
                ['in_time', '入职时间', 'date'],
                ['company_id', '所属公司', 'select', '', SystemCompany::column('name as lebel,id as value'), ['required' => true]],
                ['create_time', '创建时间', 'datetime'],
                ['update_time', '修改时间', 'datetime'],
            ]);

        ;
        return $this->fetch($amis);
    }

    function modify()
    {   
        if ($this->request->get('type') == 'quickRows') {
            try {
                $rowsDiff = $this->request->post('rowsDiff');
                foreach ($rowsDiff as $rows) {
                    SystemAdmin::where('id', $rows['id'])->update($rows);
                }
                return $this->success('修改成功');
            } catch (\Exception $th) {
                return $this->error($th->getMessage());
            }
        }
    }
}

资源及数据库配置

还在开发中。。。。。。。。。。