no message
This commit is contained in:
parent
7b91a53a71
commit
3355aa0bbf
@ -331,9 +331,11 @@ class UsersController extends AbstractController
|
|||||||
* @apiGroup users
|
* @apiGroup users
|
||||||
* @apiName searchinfo
|
* @apiName searchinfo
|
||||||
*
|
*
|
||||||
* @apiParam {Object} where 搜索条件
|
* @apiParam {Object} keys 搜索条件
|
||||||
* - where.key 昵称、邮箱、用户名
|
* - keys.key // 昵称、邮箱、用户名
|
||||||
* @apiParam {Number} [take] 获取数量,10-100
|
* - keys.project_id // 在指定项目ID
|
||||||
|
* - keys.no_project_id // 不在指定项目ID
|
||||||
|
* @apiParam {Number} [take] 获取数量,10-100
|
||||||
*
|
*
|
||||||
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
|
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
|
||||||
* @apiSuccess {String} msg 返回信息(错误描述)
|
* @apiSuccess {String} msg 返回信息(错误描述)
|
||||||
@ -343,7 +345,7 @@ class UsersController extends AbstractController
|
|||||||
{
|
{
|
||||||
$builder = User::select(['userid', 'email', 'nickname', 'profession', 'userimg', 'az']);
|
$builder = User::select(['userid', 'email', 'nickname', 'profession', 'userimg', 'az']);
|
||||||
//
|
//
|
||||||
$keys = Request::input('where');
|
$keys = Request::input('keys');
|
||||||
if (is_array($keys)) {
|
if (is_array($keys)) {
|
||||||
if ($keys['key']) {
|
if ($keys['key']) {
|
||||||
$builder->where(function($query) use ($keys) {
|
$builder->where(function($query) use ($keys) {
|
||||||
@ -351,6 +353,16 @@ class UsersController extends AbstractController
|
|||||||
->orWhere('nickname', 'like', '%,' . $keys['key'] . ',%');
|
->orWhere('nickname', 'like', '%,' . $keys['key'] . ',%');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
if (intval($keys['project_id']) > 0) {
|
||||||
|
$builder->whereIn('userid', function ($query) use ($keys) {
|
||||||
|
$query->select('userid')->from('project_users')->where('project_id', $keys['project_id']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (intval($keys['no_project_id']) > 0) {
|
||||||
|
$builder->whereNotIn('userid', function ($query) use ($keys) {
|
||||||
|
$query->select('userid')->from('project_users')->where('project_id', $keys['no_project_id']);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
$list = $builder->orderBy('userid')->take(Base::getPaginate(100, 10, 'take'))->get();
|
$list = $builder->orderBy('userid')->take(Base::getPaginate(100, 10, 'take'))->get();
|
||||||
|
@ -232,6 +232,20 @@ class Project extends AbstractModel
|
|||||||
return $this->projectUser->pluck('userid')->toArray();
|
return $this->projectUser->pluck('userid')->toArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员id是否在项目里
|
||||||
|
* @param int $userid
|
||||||
|
* @return int 0:不存在、1存在、2存在且是管理员
|
||||||
|
*/
|
||||||
|
public function useridInTheProject($userid)
|
||||||
|
{
|
||||||
|
$user = ProjectUser::whereProjectId($this->id)->whereUserid(intval($userid))->first();
|
||||||
|
if (empty($user)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return $user->owner ? 2 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 删除项目
|
* 删除项目
|
||||||
* @return bool
|
* @return bool
|
||||||
|
@ -354,8 +354,9 @@ class ProjectTask extends AbstractModel
|
|||||||
// 负责人
|
// 负责人
|
||||||
if (Arr::exists($data, 'owner')) {
|
if (Arr::exists($data, 'owner')) {
|
||||||
$row = ProjectTaskUser::whereTaskId($this->id)->whereOwner(1)->first();
|
$row = ProjectTaskUser::whereTaskId($this->id)->whereOwner(1)->first();
|
||||||
if ($row->userid != $data['owner']) {
|
$owner = intval($data['owner']);
|
||||||
if (!User::find(intval($data['owner']))) {
|
if ($row->userid != $owner) {
|
||||||
|
if (empty($this->useridInTheProject($owner))) {
|
||||||
return Base::retError('请选择正确的负责人');
|
return Base::retError('请选择正确的负责人');
|
||||||
}
|
}
|
||||||
$row->owner = 0;
|
$row->owner = 0;
|
||||||
@ -363,7 +364,7 @@ class ProjectTask extends AbstractModel
|
|||||||
ProjectTaskUser::updateInsert([
|
ProjectTaskUser::updateInsert([
|
||||||
'project_id' => $this->parent_id,
|
'project_id' => $this->parent_id,
|
||||||
'task_id' => $this->id,
|
'task_id' => $this->id,
|
||||||
'userid' => $data['owner'],
|
'userid' => $owner,
|
||||||
], [
|
], [
|
||||||
'owner' => 1,
|
'owner' => 1,
|
||||||
]);
|
]);
|
||||||
@ -391,9 +392,8 @@ class ProjectTask extends AbstractModel
|
|||||||
$assist = is_array($data['assist']) ? $data['assist'] : [$data['assist']];
|
$assist = is_array($data['assist']) ? $data['assist'] : [$data['assist']];
|
||||||
foreach ($assist as $uid) {
|
foreach ($assist as $uid) {
|
||||||
if (intval($uid) == 0) continue;
|
if (intval($uid) == 0) continue;
|
||||||
if (ProjectTaskUser::whereTaskId($this->id)->whereUserid($uid)->whereOwner(1)->exists()) continue;
|
|
||||||
//
|
//
|
||||||
if (!ProjectTaskUser::whereTaskId($this->id)->whereUserid($uid)->where('owner', '!=', 1)->exists()) {
|
if (empty($this->useridInTheTask($uid))) {
|
||||||
ProjectTaskUser::createInstance([
|
ProjectTaskUser::createInstance([
|
||||||
'project_id' => $this->parent_id,
|
'project_id' => $this->parent_id,
|
||||||
'task_id' => $this->id,
|
'task_id' => $this->id,
|
||||||
@ -479,6 +479,34 @@ class ProjectTask extends AbstractModel
|
|||||||
return array_values(array_filter(array_unique($userids)));
|
return array_values(array_filter(array_unique($userids)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员id是否在项目里
|
||||||
|
* @param int $userid
|
||||||
|
* @return int 0:不存在、1存在、2存在且是管理员
|
||||||
|
*/
|
||||||
|
public function useridInTheProject($userid)
|
||||||
|
{
|
||||||
|
$user = ProjectUser::whereProjectId($this->project_id)->whereUserid(intval($userid))->first();
|
||||||
|
if (empty($user)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return $user->owner ? 2 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 会员id是否在任务里
|
||||||
|
* @param int $userid
|
||||||
|
* @return int 0:不存在、1存在、2存在且是管理员
|
||||||
|
*/
|
||||||
|
public function useridInTheTask($userid)
|
||||||
|
{
|
||||||
|
$user = ProjectTaskUser::whereTaskId($this->id)->whereUserid(intval($userid))->first();
|
||||||
|
if (empty($user)) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return $user->owner ? 2 : 1;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 标记已完成、未完成
|
* 标记已完成、未完成
|
||||||
* @param Carbon|null $complete_at 完成时间
|
* @param Carbon|null $complete_at 完成时间
|
||||||
|
@ -71,6 +71,14 @@
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true
|
default: true
|
||||||
},
|
},
|
||||||
|
projectId: {
|
||||||
|
type: Number,
|
||||||
|
default: 0
|
||||||
|
},
|
||||||
|
noProjectId: {
|
||||||
|
type: Number,
|
||||||
|
default: 0
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
@ -158,7 +166,9 @@
|
|||||||
url: 'users/search',
|
url: 'users/search',
|
||||||
data: {
|
data: {
|
||||||
keys: {
|
keys: {
|
||||||
key: query || ''
|
key: query || '',
|
||||||
|
project_id: this.projectId,
|
||||||
|
no_project_id: this.noProjectId,
|
||||||
},
|
},
|
||||||
take: 30
|
take: 30
|
||||||
},
|
},
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<Icon type="md-add" />
|
<Icon type="md-add" />
|
||||||
</li>
|
</li>
|
||||||
<li :class="['project-icon', searchText!='' ? 'active' : '']">
|
<li :class="['project-icon', searchText!='' ? 'active' : '']">
|
||||||
<ETooltip :value="searchText!=''" :manual="searchText!=''" transfer>
|
<ETooltip :value="searchText!=''" :manual="searchText!=''" effect="light" transfer>
|
||||||
<Icon type="ios-search" />
|
<Icon type="ios-search" />
|
||||||
<div slot="content">
|
<div slot="content">
|
||||||
<Input v-model="searchText" :placeholder="$L('名称、描述...')" clearable autofocus/>
|
<Input v-model="searchText" :placeholder="$L('名称、描述...')" clearable autofocus/>
|
||||||
|
@ -77,6 +77,7 @@
|
|||||||
v-if="ownerShow"
|
v-if="ownerShow"
|
||||||
v-model="ownerData.owner_userid"
|
v-model="ownerData.owner_userid"
|
||||||
:multiple-max="1"
|
:multiple-max="1"
|
||||||
|
:project-id="taskDetail.project_id"
|
||||||
:placeholder="$L('选择任务负责人')"/>
|
:placeholder="$L('选择任务负责人')"/>
|
||||||
<div class="task-detail-avatar-buttons">
|
<div class="task-detail-avatar-buttons">
|
||||||
<Button size="small" type="primary" @click="$refs.owner.ok()">{{$L('确定')}}</Button>
|
<Button size="small" type="primary" @click="$refs.owner.ok()">{{$L('确定')}}</Button>
|
||||||
@ -192,6 +193,7 @@
|
|||||||
v-if="ownerShow"
|
v-if="ownerShow"
|
||||||
v-model="ownerData.owner_userid"
|
v-model="ownerData.owner_userid"
|
||||||
:multiple-max="1"
|
:multiple-max="1"
|
||||||
|
:project-id="taskDetail.project_id"
|
||||||
:placeholder="$L('选择任务负责人')"/>
|
:placeholder="$L('选择任务负责人')"/>
|
||||||
<div class="task-detail-avatar-buttons">
|
<div class="task-detail-avatar-buttons">
|
||||||
<Button size="small" type="primary" @click="$refs.owner.ok()">{{$L('确定')}}</Button>
|
<Button size="small" type="primary" @click="$refs.owner.ok()">{{$L('确定')}}</Button>
|
||||||
@ -222,6 +224,7 @@
|
|||||||
v-if="assistShow"
|
v-if="assistShow"
|
||||||
v-model="assistData.assist_userid"
|
v-model="assistData.assist_userid"
|
||||||
:multiple-max="10"
|
:multiple-max="10"
|
||||||
|
:project-id="taskDetail.project_id"
|
||||||
:disabled-choice="assistData.disabled"
|
:disabled-choice="assistData.disabled"
|
||||||
:placeholder="$L('选择任务协助人员')"/>
|
:placeholder="$L('选择任务协助人员')"/>
|
||||||
<div class="task-detail-avatar-buttons">
|
<div class="task-detail-avatar-buttons">
|
||||||
@ -597,6 +600,8 @@ export default {
|
|||||||
this.timeForce = false;
|
this.timeForce = false;
|
||||||
this.assistForce = false;
|
this.assistForce = false;
|
||||||
this.addsubForce = false;
|
this.addsubForce = false;
|
||||||
|
this.$refs.owner.handleClose();
|
||||||
|
this.$refs.assist.handleClose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -990,6 +995,7 @@ export default {
|
|||||||
dialog_id: data.dialog_id
|
dialog_id: data.dialog_id
|
||||||
});
|
});
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
|
this.$store.dispatch("getDialogMsgList", data.dialog_id);
|
||||||
this.$refs.dialog.sendMsg(this.msgText);
|
this.$refs.dialog.sendMsg(this.msgText);
|
||||||
this.msgText = "";
|
this.msgText = "";
|
||||||
});
|
});
|
||||||
|
9
resources/assets/sass/element.scss
vendored
9
resources/assets/sass/element.scss
vendored
@ -13,6 +13,15 @@ $--tooltip-font-size: 14px;
|
|||||||
min-width: 100px;
|
min-width: 100px;
|
||||||
line-height: 34px;
|
line-height: 34px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-dropdown-menu__item--divided:before {
|
.el-dropdown-menu__item--divided:before {
|
||||||
height: 5px;
|
height: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-tooltip__popper.is-light[x-placement^="bottom"] {
|
||||||
|
border-width: 0;
|
||||||
|
box-shadow: 0 1px 6px rgba(0, 0, 0, 0.2);
|
||||||
|
.popper__arrow {
|
||||||
|
border-bottom-color: hsla(0, 0%, 85%, .5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user