mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-17 06:32:51 +00:00
优化团队管理搜索功能
This commit is contained in:
parent
7491a6faac
commit
8dd4cfa6b2
@ -427,9 +427,12 @@ class UsersController extends AbstractController
|
|||||||
* @apiName lists
|
* @apiName lists
|
||||||
*
|
*
|
||||||
* @apiParam {Object} [keys] 搜索条件
|
* @apiParam {Object} [keys] 搜索条件
|
||||||
|
* - keys.key 邮箱/昵称/职位(赋值后keys.email、keys.nickname、keys.profession失效)
|
||||||
* - keys.email 邮箱
|
* - keys.email 邮箱
|
||||||
* - keys.nickname 昵称
|
* - keys.nickname 昵称
|
||||||
* - keys.profession 职位
|
* - keys.profession 职位
|
||||||
|
* - keys.identity 身份(如:admin、noadmin)
|
||||||
|
* - keys.email_verity 邮箱是否认证(如:yes、no)
|
||||||
* @apiParam {Number} [page] 当前页,默认:1
|
* @apiParam {Number} [page] 当前页,默认:1
|
||||||
* @apiParam {Number} [pagesize] 每页显示数量,默认:20,最大:50
|
* @apiParam {Number} [pagesize] 每页显示数量,默认:20,最大:50
|
||||||
*
|
*
|
||||||
@ -445,6 +448,17 @@ class UsersController extends AbstractController
|
|||||||
//
|
//
|
||||||
$keys = Request::input('keys');
|
$keys = Request::input('keys');
|
||||||
if (is_array($keys)) {
|
if (is_array($keys)) {
|
||||||
|
if ($keys['key']) {
|
||||||
|
if (str_contains($keys['key'], "@")) {
|
||||||
|
$builder->where("email", "like", "%{$keys['key']}%");
|
||||||
|
} else {
|
||||||
|
$builder->where(function($query) use ($keys) {
|
||||||
|
$query->where("email", "like", "%{$keys['key']}%")
|
||||||
|
->orWhere("nickname", "like", "%{$keys['key']}%")
|
||||||
|
->orWhere("profession", "like", "%{$keys['key']}%");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if ($keys['email']) {
|
if ($keys['email']) {
|
||||||
$builder->where("email", "like", "%{$keys['email']}%");
|
$builder->where("email", "like", "%{$keys['email']}%");
|
||||||
}
|
}
|
||||||
@ -454,6 +468,7 @@ class UsersController extends AbstractController
|
|||||||
if ($keys['profession']) {
|
if ($keys['profession']) {
|
||||||
$builder->where("profession", "like", "%{$keys['profession']}%");
|
$builder->where("profession", "like", "%{$keys['profession']}%");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if ($keys['identity']) {
|
if ($keys['identity']) {
|
||||||
if (Base::leftExists($keys['identity'], "no")) {
|
if (Base::leftExists($keys['identity'], "no")) {
|
||||||
$builder->where("identity", "not like", "%," . Base::leftDelete($keys['identity'], 'no') . ",%");
|
$builder->where("identity", "not like", "%," . Base::leftDelete($keys['identity'], 'no') . ",%");
|
||||||
@ -461,6 +476,11 @@ class UsersController extends AbstractController
|
|||||||
$builder->where("identity", "like", "%,{$keys['identity']},%");
|
$builder->where("identity", "like", "%,{$keys['identity']},%");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if ($keys['email_verity'] === 'yes') {
|
||||||
|
$builder->whereEmailVerity(1);
|
||||||
|
} elseif ($keys['email_verity'] === 'no') {
|
||||||
|
$builder->whereEmailVerity(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$list = $builder->orderByDesc('userid')->paginate(Base::getPaginate(50, 20));
|
$list = $builder->orderByDesc('userid')->paginate(Base::getPaginate(50, 20));
|
||||||
//
|
//
|
||||||
|
|||||||
@ -10,26 +10,10 @@
|
|||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
<div class="search-label">
|
<div class="search-label">
|
||||||
{{$L("邮箱")}}
|
{{$L("关键词")}}
|
||||||
</div>
|
</div>
|
||||||
<div class="search-content">
|
<div class="search-content">
|
||||||
<Input v-model="keys.email" clearable/>
|
<Input v-model="keys.key" :placeholder="$L('邮箱、昵称、职位')" clearable/>
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<div class="search-label">
|
|
||||||
{{$L("昵称")}}
|
|
||||||
</div>
|
|
||||||
<div class="search-content">
|
|
||||||
<Input v-model="keys.nickname" clearable/>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<div class="search-label">
|
|
||||||
{{$L("职位/职称")}}
|
|
||||||
</div>
|
|
||||||
<div class="search-content">
|
|
||||||
<Input v-model="keys.position" clearable/>
|
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
@ -37,7 +21,7 @@
|
|||||||
{{$L("身份")}}
|
{{$L("身份")}}
|
||||||
</div>
|
</div>
|
||||||
<div class="search-content">
|
<div class="search-content">
|
||||||
<Select v-model="keys.identity">
|
<Select v-model="keys.identity" :placeholder="$L('请选择')">
|
||||||
<Option value="">{{$L('全部')}}</Option>
|
<Option value="">{{$L('全部')}}</Option>
|
||||||
<Option value="admin">{{$L('管理员')}}</Option>
|
<Option value="admin">{{$L('管理员')}}</Option>
|
||||||
<Option value="disable">{{$L('禁用')}}</Option>
|
<Option value="disable">{{$L('禁用')}}</Option>
|
||||||
@ -46,6 +30,18 @@
|
|||||||
</Select>
|
</Select>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
<li>
|
||||||
|
<div class="search-label">
|
||||||
|
{{$L("邮箱认证")}}
|
||||||
|
</div>
|
||||||
|
<div class="search-content">
|
||||||
|
<Select v-model="keys.email_verity" :placeholder="$L('请选择')">
|
||||||
|
<Option value="">{{$L('全部')}}</Option>
|
||||||
|
<Option value="yes">{{$L('已邮箱认证')}}</Option>
|
||||||
|
<Option value="no">{{$L('未邮箱认证')}}</Option>
|
||||||
|
</Select>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
<li class="search-button">
|
<li class="search-button">
|
||||||
<Tooltip
|
<Tooltip
|
||||||
theme="light"
|
theme="light"
|
||||||
@ -133,7 +129,14 @@ export default {
|
|||||||
minWidth: 100,
|
minWidth: 100,
|
||||||
render: (h, {row}) => {
|
render: (h, {row}) => {
|
||||||
const arr = [h('AutoTip', row.email)];
|
const arr = [h('AutoTip', row.email)];
|
||||||
const identity = row.identity;
|
const {email_verity, identity} = row;
|
||||||
|
if (email_verity) {
|
||||||
|
arr.push(h('Icon', {
|
||||||
|
props: {
|
||||||
|
type: 'md-checkmark'
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}
|
||||||
if (identity.includes("admin")) {
|
if (identity.includes("admin")) {
|
||||||
arr.push(h('Tag', {
|
arr.push(h('Tag', {
|
||||||
props: {
|
props: {
|
||||||
|
|||||||
@ -35,6 +35,11 @@
|
|||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
|
.ivu-icon {
|
||||||
|
color: $primary-color;
|
||||||
|
margin-left: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
.ivu-tag {
|
.ivu-tag {
|
||||||
height: 18px;
|
height: 18px;
|
||||||
line-height: 18px;
|
line-height: 18px;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user