Laravel 后台管理 Dcat Admin 使用记录-CSDN博客
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
Laravel Dcat Admin
安装配置
安装文档地址
框架版本Laravel 8.*
修改配置
修改
admin.php
文件
return [
// 后台名称
'name' => 'DAD后台管理',
// 标题
'title' => '后台管理',
// 本地(http)无法访问时, 在`env`中定义ADMIN_HTTPS 将 `true` 改为 `false`;
'https' => env('ADMIN_HTTPS', true),
];
英文改为中文
修改app.php
文件
return [
// 修改时区
'timezone' => 'Asia/Shanghai',
// 修改地区语言
// 'locale' => 'en',
'locale' => 'zh_CN',
];
表格操作 Ajax 结合 Pjax
更新数据状态
表格字段
js
操作
$grid->column('auditing', '审核')->display(function () {
$href = admin_url('admin-xxx/handle');
if ($this->status > 2) {
return '已处理';
}
return <<<HTML
<button class="btn btn-primary btn-outline btn-sm" data-action-{$this->id}="changeStatus" data-id="{$this->id}" data-state="4" >驳回</button>
<button class="btn btn-primary btn-outline btn-sm" data-action-{$this->id}="changeStatus" data-id="{$this->id}" data-state="3" >已完成</button>
<script>
Dcat.ready(function () {
// JS 代码也可以放在模板文件中
console.log('模板文件执行js~');
$('[data-action-{$this->id}]').click(function(e) {
console.log(e.target.dataset);
let dataset = e.target.dataset;
$.ajax({
type: "POST",
url: "{$href}",
data: {id: dataset.id, state: dataset.state},
success: function(res){
console.log(res);
if(res.status){
Dcat.success('更新成功');
Dcat.reload('#pjax-container');
}
},
error:function(err) {
console.log(err);
}
});
})
});
</script>
HTML;
});
路由
// 审核 - 事件
$router->post('admin-xxx/handle', 'AdminXXXController@handle');
请求方法
/**
* 处理请求
* @param Request $request
*/
public function handle(Request $request)
{
// 获取当前行ID
$id = $request->input('id', 0);
$state = $request->input('state', 0);
// 更新逻辑
// 返回响应结果并刷新页面
return Admin::json()->success("操作成功");
}
表格 链接
链接 1. 字数超出隐藏 2. 链接新窗口打开
// 字数超出隐藏
$grid->column('title')->limit(20);
// 链接新窗口打开
$grid->column('link')->display(function ($text) {
$strLimit = Str::limit($text, 20);
return "<a href='{$text}' target='_blank'>{$strLimit}</a>";
});
表单
功能 - 默认值, 新增操作, 编辑操作
$form->hidden('status')->default(1);
$form->hidden('created_at');
$form->hidden('code');
// 判断是否为新增操作
if ($form->isCreating()) {
// 新增时使用当前时间(模型禁用自动维护时间戳 $timestamps = false)
$form->created_at = now()->toDateTimeString();
$form->saving(function (Form $form) {
// 修改用户提交的数据
$form->code = $this->createCode();
});
}
// 编辑
if ($form->isEditing()) {
// 禁用编辑
$form->text('code')->disable();
$form->radio('status')->options([1 => '未使用', 2 => '已使用']);
}
设置页面(通常修改更新在同一页面)
index
方法自动覆盖grid
方法 将body
中替换为 表单页面
public function index(Content $content)
{
return $content
->translation($this->translation())
->title($this->title())
// ->body($this->grid());
// edit ID
->body($this->form()->edit('1'));
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
return Form::make(new SystemSettings(), function (Form $form) {
$form->action('system-settings/1'); // 提交表单地址
$form->disableHeader();
$form->column(8, function (Form $form) {
$form->textarea('home_notice');
$form->textarea('home_link');
$form->text('home_link_name');
});
// 保存时更改数据
$form->saving(function (Form $form) {
});
// 表单底部
$form->footer(function ($footer) {
// 去掉`重置`按钮
$footer->disableReset();
// 去掉`查看`checkbox
$footer->disableViewCheck();
// 去掉`继续编辑`checkbox
$footer->disableEditingCheck();
// 去掉`继续创建`checkbox
$footer->disableCreatingCheck();
// 设置`查看`默认选中
$footer->defaultViewChecked();
// 设置`继续编辑`默认选中
$footer->defaultEditingChecked();
// 设置`继续创建`默认选中
$footer->defaultCreatingChecked();
});
});
}
表单
动态获取选项列表
/**
* @return array
*/
public function getOptions(): array
{
$list = Accounts::all()->values()->toArray();
return collect($list)->mapWithKeys(function ($item) {
return [strval($item['id']) => $item['account']];
})->all();
}
$options = $this->getOptions();
return Grid::make(new XXXModel(), function (Grid $grid) use ($options ) {
$grid->column('id', '编号')->sortable();
}
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |