소스 검색

解决ContextMenuActions不隐藏action列问题

jqh 5 년 전
부모
커밋
23dec61b7b
2개의 변경된 파일9개의 추가작업 그리고 6개의 파일을 삭제
  1. 4 0
      src/Grid/Concerns/HasActions.php
  2. 5 6
      src/Grid/Displayers/ContextMenuActions.php

+ 4 - 0
src/Grid/Concerns/HasActions.php

@@ -91,7 +91,11 @@ trait HasActions
             return;
         }
 
+        $attributes = ['class' => 'grid__actions__'];
+
         $this->addColumn('__actions__', trans('admin.action'))
+            ->setHeaderAttributes($attributes)
+            ->setAttributes($attributes)
             ->displayUsing($this->getActionClass(), [$this->actionsCallback]);
     }
 

+ 5 - 6
src/Grid/Displayers/ContextMenuActions.php

@@ -12,13 +12,13 @@ class ContextMenuActions extends DropdownActions
     protected function addScript()
     {
         parent::addScript();
-        $script = <<<'JS'
+
+        $script = <<<JS
 (function () {
-    $("body").on("contextmenu", "table#grid-table tr", function(e) {
+    $("body").on("contextmenu", "table#{$this->grid->getTableId()} tr", function(e) {
          $('#grid-context-menu .dropdown-menu').hide();
         
          var menu = $(this).find('td .grid-dropdown-actions .dropdown-menu');
-         console.log(menu.html());
          var index = $(this).index();
          
          if (menu.length) {
@@ -27,7 +27,6 @@ class ContextMenuActions extends DropdownActions
              menu = $('#grid-context-menu .dropdown-menu[index='+index+']');
          }
          
-         var height = 0;
          if (menu.height() > (document.body.clientHeight - e.pageY)) {
             menu.css({left: e.pageX+10, top: e.pageY - menu.height()}).show();
          } else {
@@ -54,8 +53,8 @@ JS;
      */
     public function display($callback = null)
     {
-        Admin::html('<div id="grid-context-menu"></div>');
-        Admin::style('.column-__actions__ {display: none !important;}');
+        Admin::html('<div id="grid-context-menu" class="dropdown" style="display: contents"></div>');
+        Admin::style('.grid__actions__ .dropdown{display: none!important;} th.grid__actions__{display: none!important}');
 
         return parent::display($callback);
     }