Laravel dcat-admin 用法与示例收集
作者:钓赛通
发布时间:2024-03-19
点击数:
基于 Dcat-admin 极速开发
复制功能添加
# php部分 // 在 app/Admin/bootstrap.php 中添加以下代码 // https://demo.saishiyun.net/js/clipboard.min.js?v2.2.2-beta Admin::js('js/clipboard.min.js'); # js部分 Admin::script( <<<JS (function () { var clipboard = new ClipboardJS('.clipboard-txt'); clipboard.on('success', function(e) { e.clearSelection(); layer.msg('已复制'); }); clipboard.on('error', function(e) { e.clearSelection(); layer.msg('复制内容失败'); }); })() JS ); # html 上使用 <span class='clipboard-txt' data-clipboard-text='" . $this->doc_link . "'> <i class='feather icon-copy'></i> </span>
在表格工具栏 使用模态框加表单的简易方法
// 使用model 创建一个表单实例 $form = Form::make(new JinjianDoc()); $form->confirm('确认现在生成吗?'); $form->action('/material-collect/create-link/save'); $business_code = '1566291601_' . time(); $form->title('创建商户进件链接<br/><span style="font-size: 12px;font-weight: 400;color:#737373">每个链接唯一使用</span>'); $form->text('hotel_name', '酒店名称')->required(); $form->hidden('doc_link', '酒店名称')->value(url('admin/material-collect/form?business_code=' . $business_code))->required(); $form->hidden('business_code', '酒店名称')->value($business_code)->required(); $form->hidden('hotel_bd', '业务BD')->value('杨总'); $form->disableEditingCheck(); $form->disableCreatingCheck(); $form->disableViewCheck(); $modal = Modal::make() ->lg() ->title('生成进件链接') ->body($form) ->button('<button class="btn btn-primary">生成进件链接</button>'); $grid->tools($modal);
独立使用表单响应
use Dcat\Admin\Widgets\Form as WidgetForm; return (new WidgetForm())->response()->error('已核销,请勿重复操作'); return (new WidgetForm())->response()->success('操作成功')->refresh();
自定义快速创建
$grid->enableDialogCreate(); // 打开弹窗创建 // 快速添加 $grid->quickCreate(function (Grid\Tools\QuickCreate $create) { $request = Request(); //$sc_id = $request->get('sc_id'); //$hangzu_id = $request->get('hangzu_id'); $create->text('name'); $create->text('code'); });
开发扩展中,添加子菜单
// 定义菜单 protected $menu = [ [ 'title' => '超光CMS', 'uri' => '', 'icon' => 'fa-file-text-o', ], [ 'parent' => '超光CMS', // 指定父级菜单 'title' => '分类管理', 'icon' => 'fa-file-text-o', 'uri' => 'cgcms/cat', ], [ 'parent' => '超光CMS', // 指定父级菜单 'title' => '内容管理', 'icon' => 'fa-file-text-o', 'uri' => 'cgcms/art', ], ];
给不同的值设置不同的颜色
$grid->column('name')->label(); // 设置颜色,直接传别名 $grid->column('name')->label('danger'); // 也可以这样使用 $grid->column('name')->label(Admin::color()->danger()); // 也可以直接传颜色代码$grid->column('name')->label('#222'); $grid->column('state')->using([1 => '未处理', 2 => '已处理', ...])->label([ 'default' => 'primary', // 设置默认颜色,不设置则默认为 default 1 => 'primary', 2 => 'danger', 3 => 'success', 4 => Admin::color()->info(),]); $grid->column('name')->badge(); // 设置颜色,直接传别名 $grid->column('name')->badge('danger'); // 也可以这样使用 $grid->column('name')->badge(Admin::color()->danger()); // 也可以直接传颜色代码 $grid->column('name')->badge('#222'); $grid->state->using([1 => '未处理', 2 => '已处理', ...])->badge([ 'default' => 'primary', // 设置默认颜色,不设置则默认为 default 1 => 'primary', 2 => 'danger', 3 => 'success', 4 => Admin::color()->info(),]); $grid->column('approved')->bool(); $grid->column('approved')->bool(['Y' => true, 'N' => false]); $grid->column('state') ->using([1 => '未处理', 2 => '已处理', ...]) ->dot( [ 1 => 'primary', 2 => 'danger', 3 => 'success', 4 => Admin::color()->info(), ], 'primary' // 第二个参数为默认值 );
所有禁止项
# 表格 $grid->disableRowSelector(); // 禁止行选择 $grid->disableBatchActions();// 禁止批量操作 $grid->enableDialogCreate(); // 打开窗口创建 $grid->disableBatchDelete(); // 禁止批量删除 # 表单 $form->disableDeleteButton(); $form->disableListButton(); $form->disableViewButton(); $form->disableResetButton(); $form->disableViewButton(); $form->disableEditingCheck(); $form->disableHeader(); # 详情
页面提示信息加数据表格
// 加上提示信息 $htmll = <<<HTML <ul> <li>1.运营人员:可以使用手机移动端来确认订单,查看每日统计等操作. <a class="clipboard-txt" data-clipboard-text='$mobile_link' href="javascript:void(0);" > 复制链接 <i class='feather icon-copy'></i></a> $modal</li> </ul> HTML; $alert = Alert::make($htmll, '提示:'); return $alert->info()->removable().$grid;
表单验证及响应
$validator = \Validator::make($request->all(), [ 'action_name' => 'required', ],[ 'action_name.required' => '操作项 不能为空', ]); if ($validator->fails()) { return (new WidgetForm())->response()->error($validator->errors()->first()); }