no message
This commit is contained in:
parent
eee1a6cb96
commit
bf106f67e3
@ -288,7 +288,6 @@ class Project extends AbstractModel
|
|||||||
public function deleteProject()
|
public function deleteProject()
|
||||||
{
|
{
|
||||||
AbstractModel::transaction(function () {
|
AbstractModel::transaction(function () {
|
||||||
WebSocketDialog::whereId($this->dialog_id)->delete();
|
|
||||||
$columns = ProjectColumn::whereProjectId($this->id)->get();
|
$columns = ProjectColumn::whereProjectId($this->id)->get();
|
||||||
foreach ($columns as $column) {
|
foreach ($columns as $column) {
|
||||||
$column->deleteColumn(false);
|
$column->deleteColumn(false);
|
||||||
|
@ -609,9 +609,6 @@ class ProjectTask extends AbstractModel
|
|||||||
public function deleteTask($pushMsg = true)
|
public function deleteTask($pushMsg = true)
|
||||||
{
|
{
|
||||||
AbstractModel::transaction(function () {
|
AbstractModel::transaction(function () {
|
||||||
if ($this->dialog_id) {
|
|
||||||
WebSocketDialog::whereId($this->dialog_id)->delete();
|
|
||||||
}
|
|
||||||
$this->delete();
|
$this->delete();
|
||||||
$this->addLog("删除{任务}:" . $this->name);
|
$this->addLog("删除{任务}:" . $this->name);
|
||||||
});
|
});
|
||||||
|
@ -262,7 +262,7 @@ class User extends AbstractModel
|
|||||||
if (!$user) {
|
if (!$user) {
|
||||||
$authorization = Base::getToken();
|
$authorization = Base::getToken();
|
||||||
if ($authorization) {
|
if ($authorization) {
|
||||||
throw new ApiException('身份已失效,请重新登录', $user, -1);
|
throw new ApiException('身份已失效,请重新登录', [], -1);
|
||||||
} else {
|
} else {
|
||||||
throw new ApiException('请登录后继续...', [], -1);
|
throw new ApiException('请登录后继续...', [], -1);
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
namespace App\Models;
|
namespace App\Models;
|
||||||
|
|
||||||
use App\Exceptions\ApiException;
|
use App\Exceptions\ApiException;
|
||||||
use App\Module\Base;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class WebSocketDialog
|
* Class WebSocketDialog
|
||||||
@ -21,6 +21,7 @@ use App\Module\Base;
|
|||||||
* @property-read int|null $dialog_user_count
|
* @property-read int|null $dialog_user_count
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog newModelQuery()
|
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog newModelQuery()
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog newQuery()
|
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog newQuery()
|
||||||
|
* @method static \Illuminate\Database\Query\Builder|WebSocketDialog onlyTrashed()
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog query()
|
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog query()
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereCreatedAt($value)
|
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereCreatedAt($value)
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereDeletedAt($value)
|
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereDeletedAt($value)
|
||||||
@ -30,10 +31,14 @@ use App\Module\Base;
|
|||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereName($value)
|
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereName($value)
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereType($value)
|
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereType($value)
|
||||||
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereUpdatedAt($value)
|
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereUpdatedAt($value)
|
||||||
|
* @method static \Illuminate\Database\Query\Builder|WebSocketDialog withTrashed()
|
||||||
|
* @method static \Illuminate\Database\Query\Builder|WebSocketDialog withoutTrashed()
|
||||||
* @mixin \Eloquent
|
* @mixin \Eloquent
|
||||||
*/
|
*/
|
||||||
class WebSocketDialog extends AbstractModel
|
class WebSocketDialog extends AbstractModel
|
||||||
{
|
{
|
||||||
|
use SoftDeletes;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||||
*/
|
*/
|
||||||
@ -100,10 +105,10 @@ class WebSocketDialog extends AbstractModel
|
|||||||
break;
|
break;
|
||||||
case "group":
|
case "group":
|
||||||
if ($dialog->group_type === 'project') {
|
if ($dialog->group_type === 'project') {
|
||||||
$dialog->group_info = Project::select(['id', 'name'])->whereDialogId($dialog->id)->first();
|
$dialog->group_info = Project::withTrashed()->select(['id', 'name'])->whereDialogId($dialog->id)->first();
|
||||||
$dialog->name = $dialog->group_info ? $dialog->group_info->name : '';
|
$dialog->name = $dialog->group_info ? $dialog->group_info->name : '';
|
||||||
} elseif ($dialog->group_type === 'task') {
|
} elseif ($dialog->group_type === 'task') {
|
||||||
$dialog->group_info = ProjectTask::select(['id', 'name'])->whereDialogId($dialog->id)->first();
|
$dialog->group_info = ProjectTask::withTrashed()->select(['id', 'name'])->whereDialogId($dialog->id)->first();
|
||||||
$dialog->name = $dialog->group_info ? $dialog->group_info->name : '';
|
$dialog->name = $dialog->group_info ? $dialog->group_info->name : '';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -8,14 +8,14 @@
|
|||||||
<li @click="dashboard='today'">
|
<li @click="dashboard='today'">
|
||||||
<div class="block-title">{{$L('今日待完成')}}</div>
|
<div class="block-title">{{$L('今日待完成')}}</div>
|
||||||
<div class="block-data">
|
<div class="block-data">
|
||||||
<div class="block-num">{{projectStatistics.today || '...'}}</div>
|
<div class="block-num">{{projectStatistics.today || 0}}</div>
|
||||||
<i class="iconfont"></i>
|
<i class="iconfont"></i>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li @click="dashboard='overdue'">
|
<li @click="dashboard='overdue'">
|
||||||
<div class="block-title">{{$L('超期未完成')}}</div>
|
<div class="block-title">{{$L('超期未完成')}}</div>
|
||||||
<div class="block-data">
|
<div class="block-data">
|
||||||
<div class="block-num">{{projectStatistics.overdue || '...'}}</div>
|
<div class="block-num">{{projectStatistics.overdue || 0}}</div>
|
||||||
<i class="iconfont"></i>
|
<i class="iconfont"></i>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
@ -27,55 +27,57 @@
|
|||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<div class="dashboard-title">{{title}}</div>
|
<template v-if="list.length > 0">
|
||||||
<ul class="dashboard-list overlay-y">
|
<div class="dashboard-title">{{title}}</div>
|
||||||
<li v-for="item in list" :key="item.id" :style="item.color ? {backgroundColor: item.color} : {}">
|
<ul class="dashboard-list overlay-y">
|
||||||
<EDropdown
|
<li v-for="item in list" :key="item.id" :style="item.color ? {backgroundColor: item.color} : {}">
|
||||||
trigger="click"
|
<EDropdown
|
||||||
size="small"
|
trigger="click"
|
||||||
placement="bottom"
|
size="small"
|
||||||
@command="dropTask(item, $event)">
|
placement="bottom"
|
||||||
<div class="drop-icon">
|
@command="dropTask(item, $event)">
|
||||||
<i class="iconfont"></i>
|
<div class="drop-icon">
|
||||||
</div>
|
<i class="iconfont"></i>
|
||||||
<EDropdownMenu slot="dropdown" class="project-list-more-dropdown-menu">
|
</div>
|
||||||
<EDropdownItem v-if="item.complete_at" command="uncomplete">
|
<EDropdownMenu slot="dropdown" class="project-list-more-dropdown-menu">
|
||||||
<div class="item red">
|
<EDropdownItem v-if="item.complete_at" command="uncomplete">
|
||||||
<Icon type="md-checkmark-circle-outline" />{{$L('标记未完成')}}
|
<div class="item red">
|
||||||
</div>
|
<Icon type="md-checkmark-circle-outline" />{{$L('标记未完成')}}
|
||||||
</EDropdownItem>
|
|
||||||
<EDropdownItem v-else command="complete">
|
|
||||||
<div class="item">
|
|
||||||
<Icon type="md-radio-button-off" />{{$L('完成')}}
|
|
||||||
</div>
|
|
||||||
</EDropdownItem>
|
|
||||||
<EDropdownItem v-if="item.parent_id === 0" command="archived">
|
|
||||||
<div class="item">
|
|
||||||
<Icon type="ios-filing" />{{$L('归档')}}
|
|
||||||
</div>
|
|
||||||
</EDropdownItem>
|
|
||||||
<EDropdownItem command="remove">
|
|
||||||
<div class="item">
|
|
||||||
<Icon type="md-trash" />{{$L('删除')}}
|
|
||||||
</div>
|
|
||||||
</EDropdownItem>
|
|
||||||
<template v-if="item.parent_id === 0">
|
|
||||||
<EDropdownItem v-if="item.parent_id === 0" divided disabled>{{$L('背景色')}}</EDropdownItem>
|
|
||||||
<EDropdownItem v-for="(c, k) in $store.state.taskColorList" :key="k" :command="c">
|
|
||||||
<div class="item">
|
|
||||||
<i class="iconfont" :style="{color:c.color||'#f9f9f9'}" v-html="c.color == item.color ? '' : ''"></i>{{$L(c.name)}}
|
|
||||||
</div>
|
</div>
|
||||||
</EDropdownItem>
|
</EDropdownItem>
|
||||||
</template>
|
<EDropdownItem v-else command="complete">
|
||||||
</EDropdownMenu>
|
<div class="item">
|
||||||
</EDropdown>
|
<Icon type="md-radio-button-off" />{{$L('完成')}}
|
||||||
<div class="item-title" @click="$store.dispatch('openTask', item.id)">{{item.name}}</div>
|
</div>
|
||||||
<div :class="['item-time', item.today ? 'today' : '', item.overdue ? 'overdue' : '']">
|
</EDropdownItem>
|
||||||
<Icon type="ios-time-outline"/>
|
<EDropdownItem v-if="item.parent_id === 0" command="archived">
|
||||||
{{expiresFormat(item.end_at)}}
|
<div class="item">
|
||||||
</div>
|
<Icon type="ios-filing" />{{$L('归档')}}
|
||||||
</li>
|
</div>
|
||||||
</ul>
|
</EDropdownItem>
|
||||||
|
<EDropdownItem command="remove">
|
||||||
|
<div class="item">
|
||||||
|
<Icon type="md-trash" />{{$L('删除')}}
|
||||||
|
</div>
|
||||||
|
</EDropdownItem>
|
||||||
|
<template v-if="item.parent_id === 0">
|
||||||
|
<EDropdownItem v-if="item.parent_id === 0" divided disabled>{{$L('背景色')}}</EDropdownItem>
|
||||||
|
<EDropdownItem v-for="(c, k) in $store.state.taskColorList" :key="k" :command="c">
|
||||||
|
<div class="item">
|
||||||
|
<i class="iconfont" :style="{color:c.color||'#f9f9f9'}" v-html="c.color == item.color ? '' : ''"></i>{{$L(c.name)}}
|
||||||
|
</div>
|
||||||
|
</EDropdownItem>
|
||||||
|
</template>
|
||||||
|
</EDropdownMenu>
|
||||||
|
</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)}}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</template>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
width: 664px;
|
width: 664px;
|
||||||
max-width: 80%;
|
max-width: 80%;
|
||||||
max-height: 80%;
|
max-height: 80%;
|
||||||
|
margin-bottom: 2%;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
.dashboard-hello {
|
.dashboard-hello {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user