From 481256dff36bd5d71c8e1eeac818259526d91df6 Mon Sep 17 00:00:00 2001 From: Karson <karsonzhang@163.com> Date: Sun, 23 Aug 2020 21:12:42 +0800 Subject: [PATCH] 优化基类控制器Traits的方法 --- application/admin/library/traits/Backend.php | 19 ++++++++++++++++--- public/assets/js/require-backend.min.js | 23 ++++++++++++++++++++--- public/assets/js/require-table.js | 23 ++++++++++++++++++++--- 3 files changed, 56 insertions(+), 9 deletions(-) diff --git a/application/admin/library/traits/Backend.php b/application/admin/library/traits/Backend.php index f3eab95..6b8450d 100755 --- a/application/admin/library/traits/Backend.php +++ b/application/admin/library/traits/Backend.php @@ -200,7 +200,10 @@ trait Backend */ public function del($ids = "") { - $ids = $this->request->post("ids"); + if (!$this->request->isPost()) { + $this->error(__("Invalid parameters")); + } + $ids = $ids ? $ids : $this->request->post("ids"); if ($ids) { $pk = $this->model->getPk(); $adminIds = $this->getDataLimitAdminIds(); @@ -237,6 +240,10 @@ trait Backend */ public function destroy($ids = "") { + if (!$this->request->isPost()) { + $this->error(__("Invalid parameters")); + } + $ids = $ids ? $ids : $this->request->post("ids"); $pk = $this->model->getPk(); $adminIds = $this->getDataLimitAdminIds(); if (is_array($adminIds)) { @@ -273,6 +280,10 @@ trait Backend */ public function restore($ids = "") { + if (!$this->request->isPost()) { + $this->error(__("Invalid parameters")); + } + $ids = $ids ? $ids : $this->request->post("ids"); $pk = $this->model->getPk(); $adminIds = $this->getDataLimitAdminIds(); if (is_array($adminIds)) { @@ -307,8 +318,10 @@ trait Backend */ public function multi($ids = "") { - $ids = $ids ? $ids : $this->request->param("ids"); - $ids = $this->request->param("ids"); + if (!$this->request->isPost()) { + $this->error(__("Invalid parameters")); + } + $ids = $ids ? $ids : $this->request->post("ids"); if ($ids) { if ($this->request->has('params')) { parse_str($this->request->post("params"), $values); diff --git a/public/assets/js/require-backend.min.js b/public/assets/js/require-backend.min.js index 7cd5049..737222d 100644 --- a/public/assets/js/require-backend.min.js +++ b/public/assets/js/require-backend.min.js @@ -11388,11 +11388,28 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr }); return false; }); - //还原或删除 - $(document).on('click', Table.config.restoreallbtn + ',' + Table.config.restoreonebtn + ',' + Table.config.destroyonebtn, function () { + //全部还原 + $(document).on('click', Table.config.restoreallbtn, function () { var that = this; var url = $(that).data("url") ? $(that).data("url") : $(that).attr("href"); Fast.api.ajax(url, function () { + Layer.closeAll(); + table.trigger("uncheckbox"); + table.bootstrapTable('refresh'); + }, function () { + Layer.closeAll(); + }); + return false; + }); + //销毁或删除 + $(document).on('click', Table.config.restoreonebtn + ',' + Table.config.destroyonebtn, function () { + var that = this; + var url = $(that).data("url") ? $(that).data("url") : $(that).attr("href"); + var row = Fast.api.getrowbyindex(table, $(that).data("row-index")); + Fast.api.ajax({ + url: url, + data: {ids: row[options.pk]} + }, function () { table.trigger("uncheckbox"); table.bootstrapTable('refresh'); }); @@ -11504,7 +11521,7 @@ define('table',['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstr var options = table.bootstrapTable('getOptions'); var data = element ? $(element).data() : {}; ids = ($.isArray(ids) ? ids.join(",") : ids); - var url = typeof data.url !== "undefined" ? Table.api.replaceurl(data.url, {ids: ids}, table) : (action == "del" ? options.extend.del_url : options.extend.multi_url); + var url = typeof data.url !== "undefined" ? data.url : (action == "del" ? options.extend.del_url : options.extend.multi_url); var params = typeof data.params !== "undefined" ? (typeof data.params == 'object' ? $.param(data.params) : data.params) : ''; options = {url: url, data: {action: action, ids: ids, params: params}}; Fast.api.ajax(options, function (data, ret) { diff --git a/public/assets/js/require-table.js b/public/assets/js/require-table.js index 467d5a8..56c3e09 100644 --- a/public/assets/js/require-table.js +++ b/public/assets/js/require-table.js @@ -328,11 +328,28 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table }); return false; }); - //还原或删除 - $(document).on('click', Table.config.restoreallbtn + ',' + Table.config.restoreonebtn + ',' + Table.config.destroyonebtn, function () { + //全部还原 + $(document).on('click', Table.config.restoreallbtn, function () { var that = this; var url = $(that).data("url") ? $(that).data("url") : $(that).attr("href"); Fast.api.ajax(url, function () { + Layer.closeAll(); + table.trigger("uncheckbox"); + table.bootstrapTable('refresh'); + }, function () { + Layer.closeAll(); + }); + return false; + }); + //销毁或删除 + $(document).on('click', Table.config.restoreonebtn + ',' + Table.config.destroyonebtn, function () { + var that = this; + var url = $(that).data("url") ? $(that).data("url") : $(that).attr("href"); + var row = Fast.api.getrowbyindex(table, $(that).data("row-index")); + Fast.api.ajax({ + url: url, + data: {ids: row[options.pk]} + }, function () { table.trigger("uncheckbox"); table.bootstrapTable('refresh'); }); @@ -444,7 +461,7 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table var options = table.bootstrapTable('getOptions'); var data = element ? $(element).data() : {}; ids = ($.isArray(ids) ? ids.join(",") : ids); - var url = typeof data.url !== "undefined" ? Table.api.replaceurl(data.url, {ids: ids}, table) : (action == "del" ? options.extend.del_url : options.extend.multi_url); + var url = typeof data.url !== "undefined" ? data.url : (action == "del" ? options.extend.del_url : options.extend.multi_url); var params = typeof data.params !== "undefined" ? (typeof data.params == 'object' ? $.param(data.params) : data.params) : ''; options = {url: url, data: {action: action, ids: ids, params: params}}; Fast.api.ajax(options, function (data, ret) { -- libgit2 0.24.0