no message
This commit is contained in:
parent
921be40c64
commit
570583bafd
@ -32,11 +32,10 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
$user = User::auth();
|
||||
User::auth();
|
||||
//
|
||||
$list = Project::select(Project::projectSelect)
|
||||
->join('project_users', 'projects.id', '=', 'project_users.project_id')
|
||||
->where('project_users.userid', $user->userid)
|
||||
->authData()
|
||||
->orderByDesc('projects.id')
|
||||
->paginate(Base::getPaginate(200, 100));
|
||||
//
|
||||
@ -50,7 +49,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function basic()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$project_id = intval(Request::input('project_id'));
|
||||
//
|
||||
@ -66,7 +65,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function detail()
|
||||
{
|
||||
$user = User::auth();
|
||||
User::auth();
|
||||
//
|
||||
$project_id = intval(Request::input('project_id'));
|
||||
//
|
||||
@ -76,9 +75,8 @@ class ProjectController extends AbstractController
|
||||
}]);
|
||||
}, 'projectUser'])
|
||||
->select(project::projectSelect)
|
||||
->join('project_users', 'projects.id', '=', 'project_users.project_id')
|
||||
->authData()
|
||||
->where('projects.id', $project_id)
|
||||
->where('project_users.userid', $user->userid)
|
||||
->first();
|
||||
if (empty($project)) {
|
||||
return Base::retError('项目不存在或不在成员列表内');
|
||||
@ -167,7 +165,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function update()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$project_id = intval(Request::input('project_id'));
|
||||
$name = trim(Request::input('name', ''));
|
||||
@ -208,7 +206,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function user()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$project_id = intval(Request::input('project_id'));
|
||||
$userid = Request::input('userid');
|
||||
@ -247,7 +245,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function transfer()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$project_id = intval(Request::input('project_id'));
|
||||
$owner_userid = intval(Request::input('owner_userid'));
|
||||
@ -286,7 +284,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function sort()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$project_id = intval(Request::input('project_id'));
|
||||
$sort = Base::json2array(Request::input('sort'));
|
||||
@ -363,7 +361,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$project_id = intval(Request::input('project_id'));
|
||||
//
|
||||
@ -384,7 +382,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function column__add()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$project_id = intval(Request::input('project_id'));
|
||||
$name = trim(Request::input('name'));
|
||||
@ -417,7 +415,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function column__update()
|
||||
{
|
||||
$user = User::auth();
|
||||
User::auth();
|
||||
//
|
||||
$data = Request::all();
|
||||
$column_id = intval($data['column_id']);
|
||||
@ -428,9 +426,8 @@ class ProjectController extends AbstractController
|
||||
}
|
||||
// 项目
|
||||
$project = Project::select(project::projectSelect)
|
||||
->join('project_users', 'projects.id', '=', 'project_users.project_id')
|
||||
->authData()
|
||||
->where('projects.id', $column->project_id)
|
||||
->where('project_users.userid', $user->userid)
|
||||
->first();
|
||||
if (empty($project)) {
|
||||
return Base::retError('项目不存在或不在成员列表内');
|
||||
@ -456,7 +453,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function column__delete()
|
||||
{
|
||||
$user = User::auth();
|
||||
User::auth();
|
||||
//
|
||||
$column_id = intval(Request::input('column_id'));
|
||||
// 列表
|
||||
@ -466,9 +463,8 @@ class ProjectController extends AbstractController
|
||||
}
|
||||
// 项目
|
||||
$project = Project::select(project::projectSelect)
|
||||
->join('project_users', 'projects.id', '=', 'project_users.project_id')
|
||||
->authData()
|
||||
->where('projects.id', $column->project_id)
|
||||
->where('project_users.userid', $user->userid)
|
||||
->first();
|
||||
if (empty($project)) {
|
||||
return Base::retError('项目不存在或不在成员列表内');
|
||||
@ -478,6 +474,30 @@ class ProjectController extends AbstractController
|
||||
return Base::retSuccess('删除成功', $column->toArray());
|
||||
}
|
||||
|
||||
/**
|
||||
* 任务统计
|
||||
*/
|
||||
public function task__statistics()
|
||||
{
|
||||
User::auth();
|
||||
|
||||
$data = [];
|
||||
|
||||
// 今日待任务
|
||||
$between = [
|
||||
Carbon::today()->startOfDay(),
|
||||
Carbon::today()->endOfDay()
|
||||
];
|
||||
$data['today'] = ProjectTask::authData()->where(function($query) use ($between) {
|
||||
$query->whereBetween('project_tasks.start_at', $between)->orWhereBetween('project_tasks.end_at', $between);
|
||||
})->count();
|
||||
|
||||
// 超期未完成
|
||||
$data['overdue'] = ProjectTask::authData()->whereNotNull('project_tasks.end_at')->where('project_tasks.end_at', '<', Carbon::now())->count();
|
||||
|
||||
return Base::retSuccess('success', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* 任务列表
|
||||
*
|
||||
@ -486,9 +506,9 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function task__lists()
|
||||
{
|
||||
$user = user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$builder = ProjectTask::select(ProjectTask::taskSelect);
|
||||
$builder = ProjectTask::select(ProjectTask::taskSelect)->authData();
|
||||
//
|
||||
$name = Request::input('name');
|
||||
$time = Request::input('time');
|
||||
@ -509,13 +529,7 @@ class ProjectController extends AbstractController
|
||||
}
|
||||
}
|
||||
//
|
||||
$list = $builder
|
||||
->join('project_task_users', 'project_tasks.id', '=', 'project_task_users.task_pid')
|
||||
->whereNull('project_tasks.archived_at')
|
||||
->where('project_tasks.parent_id', 0)
|
||||
->where('project_task_users.userid', $user->userid)
|
||||
->orderByDesc('project_tasks.id')
|
||||
->paginate(Base::getPaginate(200, 100));
|
||||
$list = $builder->orderByDesc('project_tasks.id')->paginate(Base::getPaginate(200, 100));
|
||||
//
|
||||
return Base::retSuccess('success', $list);
|
||||
}
|
||||
@ -527,7 +541,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function task__basic()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$task_id = intval(Request::input('task_id'));
|
||||
//
|
||||
@ -546,7 +560,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function task__sublist()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$task_id = intval(Request::input('task_id'));
|
||||
//
|
||||
@ -563,7 +577,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function task__content()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$task_id = intval(Request::input('task_id'));
|
||||
//
|
||||
@ -579,7 +593,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function task__files()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$task_id = intval(Request::input('task_id'));
|
||||
//
|
||||
@ -602,7 +616,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function task__add()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
parse_str(Request::getContent(), $data);
|
||||
$project_id = intval($data['project_id']);
|
||||
$column_id = $data['column_id'];
|
||||
@ -658,7 +672,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function task__addsub()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$task_id = intval(Request::input('task_id'));
|
||||
$name = Request::input('name');
|
||||
@ -699,7 +713,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function task__update()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
parse_str(Request::getContent(), $data);
|
||||
$task_id = intval($data['task_id']);
|
||||
@ -796,7 +810,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function task__dialog()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$task_id = intval(Request::input('task_id'));
|
||||
//
|
||||
@ -834,7 +848,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function task__archived()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$task_id = intval(Request::input('task_id'));
|
||||
//
|
||||
@ -855,7 +869,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function task__delete()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$task_id = intval(Request::input('task_id'));
|
||||
//
|
||||
@ -876,7 +890,7 @@ class ProjectController extends AbstractController
|
||||
*/
|
||||
public function log__lists()
|
||||
{
|
||||
user::auth();
|
||||
User::auth();
|
||||
//
|
||||
$project_id = intval(Request::input('project_id'));
|
||||
$task_id = intval(Request::input('task_id'));
|
||||
|
@ -3,7 +3,6 @@
|
||||
namespace App\Models;
|
||||
|
||||
use App\Exceptions\ApiException;
|
||||
use App\Module\Base;
|
||||
use App\Tasks\PushTask;
|
||||
use Hhxsv5\LaravelS\Swoole\Task\Task;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@ -33,6 +32,7 @@ use Request;
|
||||
* @property-read int|null $project_log_count
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProjectUser[] $projectUser
|
||||
* @property-read int|null $project_user_count
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Project authData($user = null)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Project newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|Project newQuery()
|
||||
* @method static \Illuminate\Database\Query\Builder|Project onlyTrashed()
|
||||
@ -189,6 +189,20 @@ class Project extends AbstractModel
|
||||
return $this->hasMany(projectUser::class, 'project_id', 'id')->orderBy('id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询自己的项目
|
||||
* @param $query
|
||||
* @param null $user
|
||||
* @return mixed
|
||||
*/
|
||||
public function scopeAuthData($query, $user = null)
|
||||
{
|
||||
$user = $user ?: User::auth();
|
||||
$query->join('project_users', 'projects.id', '=', 'project_users.project_id')
|
||||
->where('project_users.userid', $user->userid);
|
||||
return $query;
|
||||
}
|
||||
|
||||
/**
|
||||
* 加入项目
|
||||
* @param int $userid 加入的会员ID
|
||||
@ -325,9 +339,8 @@ class Project extends AbstractModel
|
||||
public static function userProject($project_id)
|
||||
{
|
||||
$project = Project::select(self::projectSelect)
|
||||
->join('project_users', 'projects.id', '=', 'project_users.project_id')
|
||||
->authData()
|
||||
->where('projects.id', intval($project_id))
|
||||
->where('project_users.userid', User::token2userid())
|
||||
->first();
|
||||
if (empty($project)) {
|
||||
throw new ApiException('项目不存在或不在成员列表内');
|
||||
|
@ -50,6 +50,7 @@ use Request;
|
||||
* @property-read int|null $task_tag_count
|
||||
* @property-read \Illuminate\Database\Eloquent\Collection|\App\Models\ProjectTaskUser[] $taskUser
|
||||
* @property-read int|null $task_user_count
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask authData($user = null)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask newQuery()
|
||||
* @method static \Illuminate\Database\Query\Builder|ProjectTask onlyTrashed()
|
||||
@ -246,6 +247,22 @@ class ProjectTask extends AbstractModel
|
||||
return $this->hasMany(projectTaskTag::class, 'task_id', 'id')->orderBy('id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询自己的任务
|
||||
* @param $query
|
||||
* @param null $user
|
||||
* @return mixed
|
||||
*/
|
||||
public function scopeAuthData($query, $user = null)
|
||||
{
|
||||
$user = $user ?: User::auth();
|
||||
$query->join('project_task_users', 'project_tasks.id', '=', 'project_task_users.task_pid')
|
||||
->whereNull('project_tasks.archived_at')
|
||||
->where('project_tasks.parent_id', 0)
|
||||
->where('project_task_users.userid', $user->userid);
|
||||
return $query;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加任务
|
||||
* @param $data
|
||||
@ -669,9 +686,8 @@ class ProjectTask extends AbstractModel
|
||||
}
|
||||
//
|
||||
$project = Project::select(Project::projectSelect)
|
||||
->join('project_users', 'projects.id', '=', 'project_users.project_id')
|
||||
->authData()
|
||||
->where('projects.id', $task->project_id)
|
||||
->where('project_users.userid', User::token2userid())
|
||||
->first();
|
||||
if (empty($project)) {
|
||||
throw new ApiException('项目不存在或不在成员列表内');
|
||||
|
@ -170,7 +170,14 @@ export default {
|
||||
},
|
||||
|
||||
computed: {
|
||||
...mapState(['userId', 'userInfo', 'dialogMsgUnread', 'projectList', 'projectOpenTask', 'projectChatShow']),
|
||||
...mapState([
|
||||
'userId',
|
||||
'userInfo',
|
||||
'dialogMsgUnread',
|
||||
'projectList',
|
||||
'projectOpenTask',
|
||||
'projectChatShow'
|
||||
]),
|
||||
},
|
||||
|
||||
watch: {
|
||||
|
@ -5,7 +5,7 @@
|
||||
<em v-if="item.p_name && item.parent_id === 0" class="priority-color" :style="{backgroundColor:item.p_color}"></em>
|
||||
<Col span="12" :class="['row-name', item.complete_at ? 'complete' : '']">
|
||||
<Icon
|
||||
v-if="item.sub_num > 0 || fastAddTask"
|
||||
v-if="item.sub_num > 0 || (item.parent_id===0 && fastAddTask)"
|
||||
:class="['sub-icon', item[openName] ? 'active' : '']"
|
||||
type="ios-arrow-forward"
|
||||
@click="getSublist(item)"/>
|
||||
@ -86,7 +86,7 @@
|
||||
v-if="item[openName]===true"
|
||||
:list="item.sub_task"
|
||||
:parent-id="item.id"
|
||||
:fast-add-task="fastAddTask"
|
||||
:fast-add-task="item.parent_id===0 && fastAddTask"
|
||||
:color-list="colorList"
|
||||
:open-key="openKey"
|
||||
@command="dropTask"/>
|
||||
|
@ -1,14 +1,67 @@
|
||||
<template>
|
||||
<div class="page-dashboard">
|
||||
<PageTitle>{{$L('仪表板')}}</PageTitle>
|
||||
<div class="nopage">
|
||||
<div class="nopage-icon"><Icon type="ios-speedometer" /></div>
|
||||
<div class="nopage-text">{{$L('仪表板')}}</div>
|
||||
<div class="dashboard-wrapper">
|
||||
<div class="dashboard-hello">{{$L('欢迎您,' + userInfo.nickname)}}</div>
|
||||
<div class="dashboard-desc">{{$L('以下是你当前的任务统计数据')}}</div>
|
||||
<ul class="dashboard-block">
|
||||
<li>
|
||||
<div class="block-title">{{$L('今日待完成')}}</div>
|
||||
<div class="block-data">
|
||||
<div class="block-num">21</div>
|
||||
<i class="iconfont"></i>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="block-title">{{$L('超期未完成')}}</div>
|
||||
<div class="block-data">
|
||||
<div class="block-num">2</div>
|
||||
<i class="iconfont"></i>
|
||||
</div>
|
||||
</li>
|
||||
<li>
|
||||
<div class="block-title">{{$L('参与的项目')}}</div>
|
||||
<div class="block-data">
|
||||
<div class="block-num">{{projectList.length}}</div>
|
||||
<i class="iconfont"></i>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="dashboard-title">{{$L('今日任务')}}</div>
|
||||
<ul class="dashboard-list overlay-y">
|
||||
<li>
|
||||
<i class="iconfont"></i>
|
||||
<div class="item-title">超全!B端通用界面设计法则全方位科普</div>
|
||||
<div class="item-time"></div>
|
||||
</li>
|
||||
<li>
|
||||
<i class="iconfont"></i>
|
||||
<div class="item-title">做B端后台产品很复杂?送你一份完整的设计流程和规范!</div>
|
||||
<div class="item-time"></div>
|
||||
</li>
|
||||
<li>
|
||||
<i class="iconfont"></i>
|
||||
<div class="item-title">如何设计「时间显示」更专业?来看大厂总结的方法</div>
|
||||
<div class="item-time"></div>
|
||||
</li>
|
||||
<li>
|
||||
<i class="iconfont"></i>
|
||||
<div class="item-title">用实战分析和案例,教你网页配色的终极套路</div>
|
||||
<div class="item-time"></div>
|
||||
</li>
|
||||
<li>
|
||||
<i class="iconfont"></i>
|
||||
<div class="item-title">用一篇超全面的文章,帮你了解维也纳艺术团体「分离派」</div>
|
||||
<div class="item-time"></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapState} from "vuex";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {}
|
||||
@ -16,5 +69,8 @@ export default {
|
||||
mounted() {
|
||||
|
||||
},
|
||||
computed: {
|
||||
...mapState(['userInfo', 'projectList']),
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
6
resources/assets/sass/iconfont.scss
vendored
6
resources/assets/sass/iconfont.scss
vendored
@ -1,8 +1,8 @@
|
||||
@font-face {
|
||||
font-family: 'iconfont'; /* Project id 2583385 */
|
||||
src: url('//at.alicdn.com/t/font_2583385_cz486uauxcg.woff2?t=1623761047200') format('woff2'),
|
||||
url('//at.alicdn.com/t/font_2583385_cz486uauxcg.woff?t=1623761047200') format('woff'),
|
||||
url('//at.alicdn.com/t/font_2583385_cz486uauxcg.ttf?t=1623761047200') format('truetype');
|
||||
src: url('//at.alicdn.com/t/font_2583385_s933tffef1.woff2?t=1624075007364') format('woff2'),
|
||||
url('//at.alicdn.com/t/font_2583385_s933tffef1.woff?t=1624075007364') format('woff'),
|
||||
url('//at.alicdn.com/t/font_2583385_s933tffef1.ttf?t=1624075007364') format('truetype');
|
||||
}
|
||||
|
||||
.iconfont {
|
||||
|
120
resources/assets/sass/pages/page-dashboard.scss
vendored
120
resources/assets/sass/pages/page-dashboard.scss
vendored
@ -1,4 +1,124 @@
|
||||
.page-dashboard {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
.dashboard-wrapper {
|
||||
width: 664px;
|
||||
max-width: 80%;
|
||||
max-height: 90%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.dashboard-hello {
|
||||
padding: 0 12px;
|
||||
color: #333333;
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.dashboard-desc {
|
||||
margin-top: 18px;
|
||||
padding: 0 12px;
|
||||
color: #888888;
|
||||
font-size: 13px;
|
||||
}
|
||||
.dashboard-block {
|
||||
margin-top: 18px;
|
||||
padding: 0 12px;
|
||||
display: flex;
|
||||
> li {
|
||||
flex: 1;
|
||||
flex-shrink: 0;
|
||||
list-style: none;
|
||||
margin-right: 24px;
|
||||
border-radius: 8px;
|
||||
padding: 16px 24px;
|
||||
background-color: #fa8e8c;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
transition: box-shadow 0.3s;
|
||||
&:hover {
|
||||
box-shadow: 0 0 10px #cccccc;
|
||||
}
|
||||
&:first-child {
|
||||
background-color: #6f9ef6;
|
||||
}
|
||||
&:last-child {
|
||||
background-color: #98de6e;
|
||||
margin-right: 0;
|
||||
cursor: default;
|
||||
box-shadow: none;
|
||||
}
|
||||
.block-title {
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
font-size: 12px;
|
||||
}
|
||||
.block-data {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-top: 10px;
|
||||
line-height: 1;
|
||||
.block-num {
|
||||
flex: 1;
|
||||
color: #ffffff;
|
||||
font-weight: 600;
|
||||
font-size: 32px;
|
||||
}
|
||||
.iconfont {
|
||||
color: rgba(255, 255, 255, 0.7);
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.dashboard-title {
|
||||
margin-top: 60px;
|
||||
padding: 0 12px;
|
||||
font-weight: 600;
|
||||
font-size: 15px;
|
||||
}
|
||||
.dashboard-list {
|
||||
margin-top: 4px;
|
||||
padding: 0 12px;
|
||||
overflow: auto;
|
||||
> li {
|
||||
list-style: none;
|
||||
display: flex;
|
||||
background: #F9FAFB;
|
||||
margin-top: 12px;
|
||||
padding: 8px 12px;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
transition: box-shadow 0.3s;
|
||||
&:hover {
|
||||
box-shadow: 0 0 6px #dfdfdf;
|
||||
}
|
||||
&:last-child {
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
.iconfont {
|
||||
color: #bbbbbb;
|
||||
font-size: 18px;
|
||||
flex-shrink: 0;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
line-height: 22px;
|
||||
}
|
||||
.item-title {
|
||||
flex: 1;
|
||||
padding-left: 6px;
|
||||
line-height: 22px;
|
||||
}
|
||||
.item-time {
|
||||
padding-left: 12px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.nopage {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
Loading…
x
Reference in New Issue
Block a user