美文网首页
dcat-admin表格选择器异步加载选项卡以及存在的问题

dcat-admin表格选择器异步加载选项卡以及存在的问题

作者: dark68 | 来源:发表于2021-04-26 08:24 被阅读0次

    情景描述

    想要在表单页面实现一个表格选择器,由于后期可能存在多个品类,又不想指定多个表格选择器,所以想搞个选项卡试试……

    1 表格选择器

    #控制器中form()添加下列代码,指定一个表格选择器
    $form->selectTable('column')
           ->title('title')
           ->from(TestTable::make());
    

    2 异步表格(TestTable)

    namespace App\Admin\Renderable;
    
    use App\Admin\Repositories\Goods;
    use App\Models\DictDict;
    use Dcat\Admin\Grid;
    use Dcat\Admin\Grid\LazyRenderable;
    use Dcat\Admin\Widgets\Tab;
    use Illuminate\Contracts\Support\Renderable;
    
    class GoodsTable extends LazyRenderable
     {
      /**选项卡和栏目一的数据
       * @inheritDoc
       */
      public function grid(): Grid
       {
          $array = [1=>'栏目1',2=>'栏目2'];
          return Grid::make(new DictDict(),function (Grid $grid)use($array){
              //设置选项卡功能
              $grid->wrap(function(Renderable $view)use($array){
                  $tab = Tab::make();
                  #$view当前模型(DictDict)的Grid数据
                  $tab->add($array[1],$view,true);
                  $tab->add($array[2],$this->column_1());
    
                  return $tab;
              });
                
              $grid->column('id');
              $grid->column('name','名称');
              $grid->paginate(10);
          });
       }
      /**栏目二的数据
       * @return Grid
       */
      protected function column_2()
      {
          return Grid::make(new Goods(),function (Grid $grid){
    
              $grid->column('id');
              $grid->column('name','名称');
    
    
              $grid->paginate(10);
              //禁用操作功能
              $grid->disableActions();
    
              //设置过滤条件
              $grid->filter(function (Grid\Filter $filter){
                  //更改布局
                  $filter->panel();
                  $filter->like('name','名称')->width(4);
              });
          });
        }  
    }
    

    显示效果如下:


    异步弹框选项卡

    存在问题

    现在可以对表格数据进行选择,选中后数据可以放入父级页面的表单中,但是目前SelectTable中的model()只能绑定单个模型进行数据显示,使用选项卡无法判断具体调用的哪个Model,导致后台数据无法匹配。


    SelectTable中model()

    相关文章

      网友评论

          本文标题:dcat-admin表格选择器异步加载选项卡以及存在的问题

          本文链接:https://www.haomeiwen.com/subject/smrdrltx.html