mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-09 19:42:47 +08:00
优化tableData组件,修复动态字段,增加group重复验证
This commit is contained in:
@@ -24,14 +24,16 @@ trait Curd
|
|||||||
if (input('selectFields')) {
|
if (input('selectFields')) {
|
||||||
return $this->selectList();
|
return $this->selectList();
|
||||||
}
|
}
|
||||||
list($page, $limit, $where) = $this->buildTableParames();
|
list($page, $limit, $where, $excludes, $request_options, $group) = $this->buildTableParames();
|
||||||
$count = $this->model
|
$count = $this->model
|
||||||
->where($where)
|
->where($where)
|
||||||
|
->group($group)
|
||||||
->count();
|
->count();
|
||||||
$list = $this->model
|
$list = $this->model
|
||||||
->where($where)
|
->where($where)
|
||||||
->page($page, $limit)
|
->page($page, $limit)
|
||||||
->order($this->sort)
|
->order($this->sort)
|
||||||
|
->group($group)
|
||||||
->select();
|
->select();
|
||||||
$data = [
|
$data = [
|
||||||
'code' => 0,
|
'code' => 0,
|
||||||
|
|||||||
@@ -209,6 +209,7 @@ class AdminController extends BaseController
|
|||||||
$get = $this->request->get('', null, null);
|
$get = $this->request->get('', null, null);
|
||||||
$page = isset($get['page']) && !empty($get['page']) ? $get['page'] : 1;
|
$page = isset($get['page']) && !empty($get['page']) ? $get['page'] : 1;
|
||||||
$limit = isset($get['limit']) && !empty($get['limit']) ? $get['limit'] : 15;
|
$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'] : '{}';
|
$filters = isset($get['filter']) && !empty($get['filter']) ? $get['filter'] : '{}';
|
||||||
$ops = isset($get['op']) && !empty($get['op']) ? $get['op'] : '{}';
|
$ops = isset($get['op']) && !empty($get['op']) ? $get['op'] : '{}';
|
||||||
// json转数组
|
// json转数组
|
||||||
@@ -277,7 +278,7 @@ class AdminController extends BaseController
|
|||||||
$where[] = [$key, $op, "%{$val}"];
|
$where[] = [$key, $op, "%{$val}"];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return [$page, $limit, $where, $excludes, $request_options];
|
return [$page, $limit, $where, $excludes, $request_options, $group];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<div class="placeholder" v-if="listSelected.length == 0">{{setting.placeholder}}</div>
|
<div class="placeholder" v-if="listSelected.length == 0">{{setting.placeholder}}</div>
|
||||||
<div class="layui-btn layui-btn-xs layui-btn-normal" v-for="(itemSelect,indexSelect) in listSelected">
|
<div class="layui-btn layui-btn-xs layui-btn-normal" v-for="(itemSelect,indexSelect) in listSelected">
|
||||||
<span>{{itemSelect[setting.fieldName]}}</span>
|
<span>{{itemSelect[setting.fieldName]}}</span>
|
||||||
<i class="layui-icon layui-icon-close" @click.stop="removeItem(itemSelect,indexSelect)"></i>
|
<i class="layui-icon layui-icon-close" @click.stop="removeItem(itemSelect,indexSelect)" v-if="setting.readonly != 1"></i>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -46,7 +46,6 @@ define(['jquery', 'vue'], function ($, Vue) {
|
|||||||
|
|
||||||
var options = $.extend(defaultOption, data);
|
var options = $.extend(defaultOption, data);
|
||||||
|
|
||||||
|
|
||||||
var valueField = options.valueField;
|
var valueField = options.valueField;
|
||||||
|
|
||||||
if (options.index.indexOf('?') > -1) {
|
if (options.index.indexOf('?') > -1) {
|
||||||
@@ -84,8 +83,9 @@ define(['jquery', 'vue'], function ($, Vue) {
|
|||||||
$.get(options.index, {
|
$.get(options.index, {
|
||||||
page: 1,
|
page: 1,
|
||||||
limit: valueLength,
|
limit: valueLength,
|
||||||
filter: JSON.stringify({ id: this.value }),
|
filter: JSON.stringify({ [options.valueField]: this.value }),
|
||||||
op: JSON.stringify({ id: 'in' })
|
op: JSON.stringify({ [options.valueField]: 'in' }),
|
||||||
|
group: options.valueField
|
||||||
}, (result) => {
|
}, (result) => {
|
||||||
loading.hide()
|
loading.hide()
|
||||||
this.listSelected = result.data;
|
this.listSelected = result.data;
|
||||||
@@ -101,8 +101,12 @@ define(['jquery', 'vue'], function ($, Vue) {
|
|||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
openSelectPage() {
|
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({
|
var index = layer.open({
|
||||||
title: '选择数据',
|
title: '选择数据',
|
||||||
|
|||||||
Reference in New Issue
Block a user