dragonlhp / tpamis
TpAmis 类似 DophinPHP(海豚PHP)的快速构建表格个表单的构建器
v1.0.36
2025-06-05 01:17 UTC
Requires
- php: >=7.4.0|>=8.0.0
This package is auto-updated.
Last update: 2025-06-12 07:47:27 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());
}
}
}
}
资源及数据库配置
还在开发中。。。。。。。。。。