From 409fe09573ba31c21737493e08ea5e7ab88c3964 Mon Sep 17 00:00:00 2001 From: augushong Date: Fri, 23 Sep 2022 10:43:04 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96tableData=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E5=A4=8D=E5=8A=A8=E6=80=81=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0group=E9=87=8D=E5=A4=8D=E9=AA=8C?= =?UTF-8?q?=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/traits/Curd.php | 4 +++- app/common/controller/AdminController.php | 3 ++- .../static/plugs/lay-module/tableData/tableData.html | 2 +- .../static/plugs/lay-module/tableData/tableData.js | 12 ++++++++---- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/admin/traits/Curd.php b/app/admin/traits/Curd.php index 86af9d0..3987b41 100644 --- a/app/admin/traits/Curd.php +++ b/app/admin/traits/Curd.php @@ -24,14 +24,16 @@ trait Curd if (input('selectFields')) { return $this->selectList(); } - list($page, $limit, $where) = $this->buildTableParames(); + list($page, $limit, $where, $excludes, $request_options, $group) = $this->buildTableParames(); $count = $this->model ->where($where) + ->group($group) ->count(); $list = $this->model ->where($where) ->page($page, $limit) ->order($this->sort) + ->group($group) ->select(); $data = [ 'code' => 0, diff --git a/app/common/controller/AdminController.php b/app/common/controller/AdminController.php index b40008f..7ec8204 100644 --- a/app/common/controller/AdminController.php +++ b/app/common/controller/AdminController.php @@ -209,6 +209,7 @@ class AdminController extends BaseController $get = $this->request->get('', null, null); $page = isset($get['page']) && !empty($get['page']) ? $get['page'] : 1; $limit = isset($get['limit']) && !empty($get['limit']) ? $get['limit'] : 15; + $group = isset($get['group']) && !empty($get['group']) ? $get['group'] : null; $filters = isset($get['filter']) && !empty($get['filter']) ? $get['filter'] : '{}'; $ops = isset($get['op']) && !empty($get['op']) ? $get['op'] : '{}'; // json转数组 @@ -277,7 +278,7 @@ class AdminController extends BaseController $where[] = [$key, $op, "%{$val}"]; } } - return [$page, $limit, $where, $excludes, $request_options]; + return [$page, $limit, $where, $excludes, $request_options, $group]; } /** diff --git a/public/static/plugs/lay-module/tableData/tableData.html b/public/static/plugs/lay-module/tableData/tableData.html index 687c130..2a59265 100644 --- a/public/static/plugs/lay-module/tableData/tableData.html +++ b/public/static/plugs/lay-module/tableData/tableData.html @@ -4,7 +4,7 @@
{{setting.placeholder}}
{{itemSelect[setting.fieldName]}} - +
diff --git a/public/static/plugs/lay-module/tableData/tableData.js b/public/static/plugs/lay-module/tableData/tableData.js index 0828499..ce46476 100644 --- a/public/static/plugs/lay-module/tableData/tableData.js +++ b/public/static/plugs/lay-module/tableData/tableData.js @@ -46,7 +46,6 @@ define(['jquery', 'vue'], function ($, Vue) { var options = $.extend(defaultOption, data); - var valueField = options.valueField; if (options.index.indexOf('?') > -1) { @@ -84,8 +83,9 @@ define(['jquery', 'vue'], function ($, Vue) { $.get(options.index, { page: 1, limit: valueLength, - filter: JSON.stringify({ id: this.value }), - op: JSON.stringify({ id: 'in' }) + filter: JSON.stringify({ [options.valueField]: this.value }), + op: JSON.stringify({ [options.valueField]: 'in' }), + group: options.valueField }, (result) => { loading.hide() this.listSelected = result.data; @@ -101,8 +101,12 @@ define(['jquery', 'vue'], function ($, Vue) { methods: { openSelectPage() { - var selectedIds = this.listSelected.map(item => item.id); + if(options.readonly == 1){ + return false; + } + + var selectedIds = this.listSelected.map(item => item.id); var index = layer.open({ title: '选择数据',