| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | 
							- <?php
 
- namespace App\Admin\Extensions\Displayers;
 
- use Encore\Admin\Admin;
 
- use Encore\Admin\Grid\Displayers\AbstractDisplayer;
 
- class AjaxExpand extends AbstractDisplayer
 
- {
 
-     public function display()
 
-     {
 
-         $this->setupScript();
 
-         $key = $this->getKey();
 
-         if ($this->row->children->isEmpty()) {
 
-             return <<<EOT
 
- <i class="fa fa-file-o fa-fw"></i><span style="margin-left: 4px">{$this->value}</span>
 
- EOT;
 
-         }
 
-         return <<<EOT
 
- <span class="grid-expand" data-inserted="0" data-level="1" data-key="{$key}" data-parent_group="collapse-g-{$key}">
 
-    <a href="javascript:void(0)" style="color: #666666;"><i class="fa fa-folder fa-fw"></i><span style="margin-left: 4px">{$this->value}</span></a>
 
- </span>
 
- EOT;
 
-     }
 
-     protected function setupScript()
 
-     {
 
-         $script = <<<EOT
 
- $("tbody").off().delegate('.grid-expand',"click",function(){
 
-     var expand=this;
 
-     if ($(this).data('inserted') == '0') {
 
-         $.ajax({
 
-             method: 'get',
 
-             url: "{$this->getResource()}?_expand_="+$(expand).data('key')+"&level="+$(expand).data('level')+"&parent_group="+$(expand).data('parent_group'),
 
-             beforeSend: function () {
 
-                 $("i", expand).removeClass("fa-folder");
 
-                 $("i", expand).addClass("fa-refresh fa-spin");
 
-             },
 
-             success: function (data) {
 
-                 if (data.has_children == 0) {
 
-                     $("i", expand).removeClass("fa-refresh fa-spin");
 
-                     $("i", expand).addClass("fa-file-o");
 
-                     return false;
 
-                 }
 
-                 $("i", expand).removeClass("fa-refresh fa-spin");
 
-                 $("i", expand).addClass("fa-folder-open");
 
-                 var html = data.html;
 
-                 var row = $(expand).closest('tr');
 
-                 row.after(html);
 
-                 $(expand).data('inserted', 1);
 
-                 $('.{$this->grid->getGridRowName()}-checkbox').iCheck({checkboxClass:'icheckbox_minimal-blue'}).on('ifChanged', function () {
 
-                     if (this.checked) {
 
-                         $(this).closest('tr').css('background-color', '#ffffd5');
 
-                     } else {
 
-                         $(this).closest('tr').css('background-color', '');
 
-                     }
 
-                 }); 
 
-                 render_action_delete();
 
-             }
 
-         });
 
-     } else {
 
-         if ($("i", this).hasClass("fa-folder")) {
 
-             //关闭状态,展开,展开只展开子类
 
-             $('.collapse-c-'+$(this).data('key')).collapse('show');
 
-         } else {
 
-             //开启状态,关闭,关闭要关闭所有的子类
 
-             $('.collapse-g-'+$(this).data('key')).collapse('hide');
 
-             $('.collapse-g-'+$(this).data('key')).find("i.fa-folder-open").toggleClass("fa-folder fa-folder-open");
 
-         }
 
-         $("i", this).toggleClass("fa-folder fa-folder-open");
 
-     }
 
- });
 
- EOT;
 
-         Admin::script($script);
 
-     }
 
- }
 
 
  |