no message

This commit is contained in:
kuaifan 2021-06-21 15:11:29 +08:00
parent 33fcb52a40
commit be1dea7452
5 changed files with 40 additions and 21 deletions

View File

@ -39,6 +39,7 @@ class ProjectController extends AbstractController
Carbon::today()->endOfDay()
];
$data['today'] = ProjectTask::authData()
->whereNull('project_tasks.archived_at')
->whereNull('project_tasks.complete_at')
->where('project_tasks.parent_id', 0)
->where(function ($query) use ($between) {
@ -48,6 +49,7 @@ class ProjectController extends AbstractController
// 超期未完成
$data['overdue'] = ProjectTask::authData()
->whereNull('project_tasks.archived_at')
->whereNull('project_tasks.complete_at')
->where('project_tasks.parent_id', 0)
->whereNotNull('project_tasks.end_at')
@ -505,10 +507,10 @@ class ProjectController extends AbstractController
* 任务列表
*
* @apiParam {Number} [project_id] 项目ID
* @apiParam {Number} [parent_id] 主任务ID填写project_id 无效)
* @apiParam {Number} [parent_id] 主任务ID填写此项时 project_id 参数无效)
* @apiParam {String} [name] 任务描述关键词
* @apiParam {Array} [time] 时间范围,如:['2020-12-12', '2020-12-30']
* @apiParam {String} [time_before] 指定时间之前2020-12-30 00:00:00(填写此项时time参数无效
* @apiParam {Array} [time] 指定时间范围未完成,如:['2020-12-12', '2020-12-30']
* @apiParam {String} [time_before] 指定时间之前未完成2020-12-30 00:00:00(填写此项时 time 参数无效)
*/
public function task__lists()
{
@ -524,10 +526,10 @@ class ProjectController extends AbstractController
//
if ($parent_id > 0) {
ProjectTask::userTask($parent_id);
$builder->where('parent_id', $parent_id);
$builder->where('project_tasks.parent_id', $parent_id);
} elseif ($project_id > 0) {
Project::userProject($project_id);
$builder->where('project_id', $project_id);
$builder->where('project_tasks.project_id', $project_id);
} else {
$builder->authData();
}
@ -539,16 +541,21 @@ class ProjectController extends AbstractController
}
//
if (Base::isDateOrTime($time_before)) {
$builder->whereNotNull('project_tasks.end_at')->where('project_tasks.end_at', '<', Carbon::parse($time_before));
$builder
->whereNull('project_tasks.complete_at')
->whereNotNull('project_tasks.end_at')
->where('project_tasks.end_at', '<', Carbon::parse($time_before));
} elseif (is_array($time)) {
if (Base::isDateOrTime($time[0]) && Base::isDateOrTime($time[1])) {
$between = [
Carbon::parse($time[0])->startOfDay(),
Carbon::parse($time[1])->endOfDay()
];
$builder->where(function ($query) use ($between) {
$query->whereBetween('project_tasks.start_at', $between)->orWhereBetween('project_tasks.end_at', $between);
});
$builder
->whereNull('project_tasks.complete_at')
->where(function ($query) use ($between) {
$query->whereBetween('project_tasks.start_at', $between)->orWhereBetween('project_tasks.end_at', $between);
});
}
}
//

View File

@ -84,6 +84,11 @@ class ProjectTask extends AbstractModel
{
use SoftDeletes;
const taskSelect = [
'project_tasks.*',
'project_task_users.owner',
];
protected $appends = [
'file_num',
'msg_num',
@ -253,7 +258,7 @@ class ProjectTask extends AbstractModel
{
$pre = DB::getTablePrefix();
$user = $user ?: User::auth();
$query->select("project_tasks.*")
$query->select(self::taskSelect)
->join('project_task_users', 'project_tasks.id', '=', 'project_task_users.task_pid')
->whereExists(function ($der) use ($pre) {
$der->select(DB::raw(1))
@ -387,6 +392,7 @@ class ProjectTask extends AbstractModel
$row = ProjectTaskUser::createInstance([
'project_id' => $this->project_id,
'task_id' => $this->id,
'task_pid' => $this->parent_id ?: $this->id,
'userid' => $owner,
'owner' => 1,
]);

View File

@ -87,10 +87,10 @@ export default {
if (data.complete_at) {
return false;
}
if (!data.start_at || !data.end_at) {
if (!data.end_at) {
return false;
}
return data.task_user.find(({userid}) => userid == this.userId);
return data.owner;
})
return datas.map(data => {
let task = {

View File

@ -72,8 +72,7 @@
</EDropdown>
<div class="item-title" @click="$store.dispatch('openTask', item.id)">{{item.name}}</div>
<div :class="['item-time', item.today ? 'today' : '', item.overdue ? 'overdue' : '']">
<Icon type="ios-time-outline"/>
{{expiresFormat(item.end_at)}}
<Icon type="ios-time-outline"/>{{expiresFormat(item.end_at)}}
</div>
</li>
</ul>
@ -135,10 +134,11 @@ export default {
},
list() {
const {tasks, dashboard} = this;
const {dashboard} = this;
const todayStart = new Date($A.formatDate("Y-m-d 00:00:00")),
todayEnd = new Date($A.formatDate("Y-m-d 23:59:59"));
return tasks.filter((data) => {
let datas = $A.cloneJSON(this.tasks);
datas = datas.filter((data) => {
if (data.parent_id > 0) {
return false;
}
@ -148,6 +148,9 @@ export default {
if (!data.end_at) {
return false;
}
if (!data.owner) {
return false;
}
const start = new Date(data.start_at),
end = new Date(data.end_at);
data._start_time = start;
@ -156,11 +159,12 @@ export default {
case 'today':
return (start >= todayStart && start <= todayEnd) || (end >= todayStart && end <= todayEnd);
case 'overdue':
return end < todayStart;
return end <= todayStart;
default:
return false;
}
}).sort((a, b) => {
})
return datas.sort((a, b) => {
if (a._end_time != b._end_time) {
return a._end_time - b._end_time;
}

View File

@ -471,7 +471,8 @@ export default {
project_id
}
}).then(result => {
state.columns = state.columns.filter((item) => item.project_id != project_id);
const ids = result.data.data.map(({id}) => id)
state.columns = state.columns.filter((item) => item.project_id != project_id || ids.includes(item.id));
dispatch("saveColumn", result.data.data);
}).catch(e => {
!e.ret && console.error(e);
@ -575,11 +576,12 @@ export default {
url: 'project/task/lists',
data: data
}).then(result => {
const ids = result.data.data.map(({id}) => id)
if (data.project_id) {
state.tasks = state.tasks.filter((item) => item.project_id != data.project_id);
state.tasks = state.tasks.filter((item) => item.project_id != data.project_id || ids.includes(item.id));
}
if (data.parent_id) {
state.tasks = state.tasks.filter((item) => item.parent_id != data.parent_id);
state.tasks = state.tasks.filter((item) => item.parent_id != data.parent_id || ids.includes(item.id));
}
dispatch("saveTask", result.data.data);
}).catch(e => {