浏览代码

Merge pull request #151 from youyingxiang/master

表格右键显示操作菜单
Jiang Qinghua 5 年之前
父节点
当前提交
9f43912dcd
共有 1 个文件被更改,包括 62 次插入0 次删除
  1. 62 0
      src/Grid/Displayers/ContextMenuActions.php

+ 62 - 0
src/Grid/Displayers/ContextMenuActions.php

@@ -0,0 +1,62 @@
+<?php
+
+namespace Dcat\Admin\Grid\Displayers;
+
+use Dcat\Admin\Admin;
+
+class ContextMenuActions extends DropdownActions
+{
+    /**
+     * {@inheritdoc}
+     */
+    protected function addScript()
+    {
+        parent::addScript();
+        $script = <<<'JS'
+(function () {
+    $("body").on("contextmenu", "table#grid-table 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) {
+             menu.attr('index', index).detach().appendTo('#grid-context-menu');
+         } else {
+             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 {
+            menu.css({left: e.pageX+10, top: e.pageY-10}).show();
+         }
+        return false;
+    });
+    
+    $(document).on('click',function(){
+        $('#grid-context-menu .dropdown-menu').hide();
+    })
+   
+    $('#grid-context-menu').click('a', function () {
+        $('#grid-context-menu .dropdown-menu').hide();
+    });
+})();
+JS;
+
+        Admin::script($script);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function display($callback = null)
+    {
+        Admin::html('<div id="grid-context-menu"></div>');
+        Admin::style('.column-__actions__ {display: none !important;}');
+
+        return parent::display($callback);
+    }
+}