From f9d14aa693d8cd490dae51cd75fd09fcd01f6098 Mon Sep 17 00:00:00 2001 From: Karson <karsonzhang@163.com> Date: Sat, 8 Jun 2019 09:49:30 +0800 Subject: [PATCH] 修复主键非ID时的排序错误 --- application/admin/controller/Ajax.php | 8 +++++--- public/assets/js/require-table.js | 5 +++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/application/admin/controller/Ajax.php b/application/admin/controller/Ajax.php index 828e228..d3ec69e 100644 --- a/application/admin/controller/Ajax.php +++ b/application/admin/controller/Ajax.php @@ -147,12 +147,14 @@ class Ajax extends Backend $field = $this->request->post("field"); //操作的数据表 $table = $this->request->post("table"); + //主键 + $pk = $this->request->post("pk"); //排序的方式 $orderway = $this->request->post("orderway", "", 'strtolower'); $orderway = $orderway == 'asc' ? 'ASC' : 'DESC'; $sour = $weighdata = []; $ids = explode(',', $ids); - $prikey = 'id'; + $prikey = $pk ? $pk : (Db::name($table)->getPk() ?: 'id'); $pid = $this->request->post("pid"); //限制更新的字段 $field = in_array($field, ['weigh']) ? $field : 'weigh'; @@ -160,9 +162,9 @@ class Ajax extends Backend // 如果设定了pid的值,此时只匹配满足条件的ID,其它忽略 if ($pid !== '') { $hasids = []; - $list = Db::name($table)->where($prikey, 'in', $ids)->where('pid', 'in', $pid)->field('id,pid')->select(); + $list = Db::name($table)->where($prikey, 'in', $ids)->where('pid', 'in', $pid)->field("{$prikey},pid")->select(); foreach ($list as $k => $v) { - $hasids[] = $v['id']; + $hasids[] = $v[$prikey]; } $ids = array_values(array_intersect($ids, $hasids)); } diff --git a/public/assets/js/require-table.js b/public/assets/js/require-table.js index ecd310a..5354b3c 100644 --- a/public/assets/js/require-table.js +++ b/public/assets/js/require-table.js @@ -277,7 +277,8 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table pid: pid, field: Table.config.dragsortfield, orderway: options.sortOrder, - table: options.extend.table + table: options.extend.table, + pk: options.pk } }; Fast.api.ajax(params, function (data, ret) { @@ -409,7 +410,7 @@ define(['jquery', 'bootstrap', 'moment', 'moment/locale/zh-cn', 'bootstrap-table }); Layer.photos({ photos: { - "start":$(this).index(".img-center"), + "start": $(this).index(".img-center"), "data": data }, anim: 5 //0-6的选择,指定弹出图片动画类型,默认随机(请注意,3.0之前的版本用shift参数) -- libgit2 0.24.0