Quellcode durchsuchen

优化菜单规则管理

(cherry picked from commit 31a6a47dc3a762226882fe5a3076c38c8911353c)
Karson vor 1 Jahr
Ursprung
Commit
fb5b78e777
2 geänderte Dateien mit 34 neuen und 27 gelöschten Zeilen
  1. 15 13
      public/assets/js/backend/auth/rule.js
  2. 19 14
      public/assets/js/backend/user/rule.js

+ 15 - 13
public/assets/js/backend/auth/rule.js

@@ -25,7 +25,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function
                     [
                         {field: 'state', checkbox: true,},
                         {field: 'id', title: 'ID'},
-                        {field: 'title', title: __('Title'), align: 'left', formatter: Controller.api.formatter.title},
+                        {field: 'title', title: __('Title'), align: 'left', formatter: Controller.api.formatter.title, clickToSelect: !false},
                         {field: 'icon', title: __('Icon'), formatter: Controller.api.formatter.icon},
                         {field: 'name', title: __('Name'), align: 'left', formatter: Controller.api.formatter.name},
                         {field: 'weigh', title: __('Weigh')},
@@ -92,18 +92,20 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function
 
             });
 
-            //显示隐藏子节点
-            $(document).on("click", ".btn-node-sub", function (e) {
-                var status = $(this).data("shown") ? true : false;
-                $("a[data-pid='" + $(this).data("id") + "']").each(function () {
-                    $(this).closest("tr").toggle(!status);
+            table.on('post-body.bs.table', function (e, settings, json, xhr) {
+                //显示隐藏子节点
+                $(">tbody>tr[data-index] > td", this).on('click', "a.btn-node-sub", function () {
+                    var status = $(this).data("shown") ? true : false;
+                    $("a[data-pid='" + $(this).data("id") + "']").each(function () {
+                        $(this).closest("tr").toggle(!status);
+                    });
+                    if (status) {
+                        $("a[data-pid='" + $(this).data("id") + "']").trigger("collapse");
+                    }
+                    $(this).data("shown", !status);
+                    $("i", this).toggleClass("fa-caret-down").toggleClass("fa-caret-right");
+                    return false;
                 });
-                if (status) {
-                    $("a[data-pid='" + $(this).data("id") + "']").trigger("collapse");
-                }
-                $(this).data("shown", !status);
-                $("i", this).toggleClass("fa-caret-down").toggleClass("fa-caret-right");
-                return false;
             });
 
             //隐藏子节点
@@ -155,7 +157,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'template'], function
                     value = value.indexOf(" ") > -1 ? value.replace(/(.*) /, "$1" + caret) : caret + value;
 
                     value = !row.ismenu || row.status == 'hidden' ? "<span class='text-muted'>" + value + "</span>" : value;
-                    return '<a href="javascript:;" data-toggle="tooltip" title="' + __('Toggle sub menu') + '" data-id="' + row.id + '" data-pid="' + row.pid + '" class="'
+                    return '<a href="javascript:;" data-id="' + row.id + '" data-pid="' + row.pid + '" class="'
                         + (row.haschild == 1 || row.ismenu == 1 ? 'text-primary' : 'disabled') + ' btn-node-sub">' + value + '</a>';
                 },
                 name: function (value, row, index) {

+ 19 - 14
public/assets/js/backend/user/rule.js

@@ -28,7 +28,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {field: 'id', title: __('Id')},
                         {field: 'pid', title: __('Pid'), visible: false},
                         {field: 'title', title: __('Title'), align: 'left', formatter: Controller.api.formatter.title},
-                        {field: 'name', title: __('Name'), align: 'left'},
+                        {field: 'name', title: __('Name'), align: 'left', formatter: Controller.api.formatter.name},
                         {field: 'remark', title: __('Remark')},
                         // {field: 'ismenu', title: __('Ismenu'), formatter: Table.api.formatter.toggle},
                         {field: 'createtime', title: __('Createtime'), formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true, visible: false},
@@ -49,18 +49,20 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
             // 为表格绑定事件
             Table.api.bindevent(table);
 
-            //显示隐藏子节点
-            $(document).on("click", ".btn-node-sub", function (e) {
-                var status = $(this).data("shown") ? true : false;
-                $("a[data-pid='" + $(this).data("id") + "']").each(function () {
-                    $(this).closest("tr").toggle(!status);
+            table.on('post-body.bs.table', function (e, settings, json, xhr) {
+                //显示隐藏子节点
+                $(">tbody>tr[data-index] > td", this).on('click', "a.btn-node-sub", function () {
+                    var status = $(this).data("shown") ? true : false;
+                    $("a[data-pid='" + $(this).data("id") + "']").each(function () {
+                        $(this).closest("tr").toggle(!status);
+                    });
+                    if (status) {
+                        $("a[data-pid='" + $(this).data("id") + "']").trigger("collapse");
+                    }
+                    $(this).data("shown", !status);
+                    $("i", this).toggleClass("fa-caret-down").toggleClass("fa-caret-right");
+                    return false;
                 });
-                if (status) {
-                    $("a[data-pid='" + $(this).data("id") + "']").trigger("collapse");
-                }
-                $(this).data("shown", !status);
-                $("i", this).toggleClass("fa-caret-down").toggleClass("fa-caret-right");
-                return false;
             });
 
             //隐藏子节点
@@ -107,9 +109,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                     value = value.indexOf("&nbsp;") > -1 ? value.replace(/(.*)&nbsp;/, "$1" + caret) : caret + value;
 
                     value = !row.ismenu || row.status == 'hidden' ? "<span class='text-muted'>" + value + "</span>" : value;
-                    return '<a href="javascript:;" data-toggle="tooltip" title="' + __('Toggle sub menu') + '" data-id="' + row.id + '" data-pid="' + row.pid + '" class="'
+                    return '<a href="javascript:;" data-id="' + row.id + '" data-pid="' + row.pid + '" class="'
                         + (row.haschild == 1 || row.ismenu == 1 ? 'text-primary' : 'disabled') + ' btn-node-sub">' + value + '</a>';
-                }
+                },
+                name: function (value, row, index) {
+                    return !row.ismenu || row.status == 'hidden' ? "<span class='text-muted'>" + value + "</span>" : value;
+                },
             },
             bindevent: function () {
                 $(document).on('click', "input[name='row[ismenu]']", function () {