no message

This commit is contained in:
kuaifan 2021-06-15 11:01:23 +08:00
parent 7b91a53a71
commit 3355aa0bbf
7 changed files with 90 additions and 11 deletions

View File

@ -331,8 +331,10 @@ class UsersController extends AbstractController
* @apiGroup users
* @apiName searchinfo
*
* @apiParam {Object} where 搜索条件
* - where.key 昵称、邮箱、用户名
* @apiParam {Object} keys 搜索条件
* - keys.key // 昵称、邮箱、用户名
* - keys.project_id // 在指定项目ID
* - keys.no_project_id // 不在指定项目ID
* @apiParam {Number} [take] 获取数量10-100
*
* @apiSuccess {Number} ret 返回状态码1正确、0错误
@ -343,7 +345,7 @@ class UsersController extends AbstractController
{
$builder = User::select(['userid', 'email', 'nickname', 'profession', 'userimg', 'az']);
//
$keys = Request::input('where');
$keys = Request::input('keys');
if (is_array($keys)) {
if ($keys['key']) {
$builder->where(function($query) use ($keys) {
@ -351,6 +353,16 @@ class UsersController extends AbstractController
->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();

View File

@ -232,6 +232,20 @@ class Project extends AbstractModel
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

View File

@ -354,8 +354,9 @@ class ProjectTask extends AbstractModel
// 负责人
if (Arr::exists($data, 'owner')) {
$row = ProjectTaskUser::whereTaskId($this->id)->whereOwner(1)->first();
if ($row->userid != $data['owner']) {
if (!User::find(intval($data['owner']))) {
$owner = intval($data['owner']);
if ($row->userid != $owner) {
if (empty($this->useridInTheProject($owner))) {
return Base::retError('请选择正确的负责人');
}
$row->owner = 0;
@ -363,7 +364,7 @@ class ProjectTask extends AbstractModel
ProjectTaskUser::updateInsert([
'project_id' => $this->parent_id,
'task_id' => $this->id,
'userid' => $data['owner'],
'userid' => $owner,
], [
'owner' => 1,
]);
@ -391,9 +392,8 @@ class ProjectTask extends AbstractModel
$assist = is_array($data['assist']) ? $data['assist'] : [$data['assist']];
foreach ($assist as $uid) {
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([
'project_id' => $this->parent_id,
'task_id' => $this->id,
@ -479,6 +479,34 @@ class ProjectTask extends AbstractModel
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 完成时间

View File

@ -71,6 +71,14 @@
type: Boolean,
default: true
},
projectId: {
type: Number,
default: 0
},
noProjectId: {
type: Number,
default: 0
},
},
data() {
return {
@ -158,7 +166,9 @@
url: 'users/search',
data: {
keys: {
key: query || ''
key: query || '',
project_id: this.projectId,
no_project_id: this.noProjectId,
},
take: 30
},

View File

@ -19,7 +19,7 @@
<Icon type="md-add" />
</li>
<li :class="['project-icon', searchText!='' ? 'active' : '']">
<ETooltip :value="searchText!=''" :manual="searchText!=''" transfer>
<ETooltip :value="searchText!=''" :manual="searchText!=''" effect="light" transfer>
<Icon type="ios-search" />
<div slot="content">
<Input v-model="searchText" :placeholder="$L('名称、描述...')" clearable autofocus/>

View File

@ -77,6 +77,7 @@
v-if="ownerShow"
v-model="ownerData.owner_userid"
:multiple-max="1"
:project-id="taskDetail.project_id"
:placeholder="$L('选择任务负责人')"/>
<div class="task-detail-avatar-buttons">
<Button size="small" type="primary" @click="$refs.owner.ok()">{{$L('确定')}}</Button>
@ -192,6 +193,7 @@
v-if="ownerShow"
v-model="ownerData.owner_userid"
:multiple-max="1"
:project-id="taskDetail.project_id"
:placeholder="$L('选择任务负责人')"/>
<div class="task-detail-avatar-buttons">
<Button size="small" type="primary" @click="$refs.owner.ok()">{{$L('确定')}}</Button>
@ -222,6 +224,7 @@
v-if="assistShow"
v-model="assistData.assist_userid"
:multiple-max="10"
:project-id="taskDetail.project_id"
:disabled-choice="assistData.disabled"
:placeholder="$L('选择任务协助人员')"/>
<div class="task-detail-avatar-buttons">
@ -597,6 +600,8 @@ export default {
this.timeForce = false;
this.assistForce = false;
this.addsubForce = false;
this.$refs.owner.handleClose();
this.$refs.assist.handleClose();
}
}
},
@ -990,6 +995,7 @@ export default {
dialog_id: data.dialog_id
});
this.$nextTick(() => {
this.$store.dispatch("getDialogMsgList", data.dialog_id);
this.$refs.dialog.sendMsg(this.msgText);
this.msgText = "";
});

View File

@ -13,6 +13,15 @@ $--tooltip-font-size: 14px;
min-width: 100px;
line-height: 34px;
}
.el-dropdown-menu__item--divided:before {
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);
}
}