Browse Source

工单内部做了已读红点提示,全局的待做

develop
shuixiang 5 years ago
parent
commit
ad11196aa8
  1. 13
      app/AdminAgent/Controllers/WorkorderController.php
  2. 2
      app/AdminAgent/bootstrap.php
  3. 6
      app/AdminAgent/routes.php
  4. 8
      app/AdminGuide/Controllers/WorkorderController.php
  5. 2
      app/AdminGuide/bootstrap.php
  6. 5
      app/AdminSupplier/Controllers/WorkorderController.php
  7. 2
      app/AdminSupplier/bootstrap.php
  8. 22
      public/js/workorder-notice.js
  9. 14
      resources/views/admin/pages/guide-index.blade.php
  10. 21
      resources/views/admin/pages/index.blade.php
  11. 14
      resources/views/admin/pages/supplier-index.blade.php

13
app/AdminAgent/Controllers/WorkorderController.php

@ -35,6 +35,9 @@ class WorkorderController extends AdminController
$workorder = \App\Models\Workorder::query()
->with(['point','publisher'])
->withCount(['items' => function($query) {
$query->where('is_read', 0);
}])
->where(['publisher_id' => Admin::user()->id,'publisher_type' => DemandTraits::$col[0]])
->orWhere(function ($query) {
$query->where('point_id',Admin::user()->id)
@ -58,6 +61,7 @@ class WorkorderController extends AdminController
'content' => $v->title,
'last_message' => $item ? ($item->type == 1 ? $item->content : '【 图片 】') : '',
'last_message_time' => $item->created_at ?? '',
'items_count' => $workorderId != $v->id ? $v->items_count : 0,
];
$userList [] = $arr;
}
@ -75,10 +79,14 @@ class WorkorderController extends AdminController
'name' => $v->publisher->name,
'content' => $v->content,
'created_at_text' => $v->created_at,
'is_read' => $v->is_read,
];
$msgList [] = $arr;
}
// 更新已读未读,此处没有考虑性能代码解藕等问题
WorkorderItem::query()->where('workorder_id',$workorderId)->update(['is_read' => 1]);
$data = [
'user_list' => $userList,
'msg_list' => $msgList,
@ -298,4 +306,9 @@ class WorkorderController extends AdminController
return $this->jsonSuccess($item);
}
public function checkUnread()
{
}
}

2
app/AdminAgent/bootstrap.php

@ -32,3 +32,5 @@ app('view')->prependNamespace('admin', resource_path('views/admin'));
Filter::resolving(function (Filter $filter) {
$filter->panel();
});
Admin::js('/js/workorder-notice.js');

6
app/AdminAgent/routes.php

@ -51,3 +51,9 @@ Route::group([
$router->any('workorder_item', 'WorkorderController@index');
});
Route::group([
'namespace' => config('admin.route.namespace'),
'middleware' => config('admin.route.middleware'),
], function (Router $router) {
$router->any('workorder_notice', 'WorkorderController@checkUnread');
});

8
app/AdminGuide/Controllers/WorkorderController.php

@ -35,6 +35,9 @@ class WorkorderController extends AdminController
$workorder = \App\Models\Workorder::query()
->with(['point','publisher'])
->withCount(['items' => function($query) {
$query->where('is_read', 0);
}])
->where(['publisher_id' => Admin::user()->id,'publisher_type' => DemandTraits::$col[2]])
->orWhere(function ($query) {
$query->where('point_id',Admin::user()->id)
@ -58,6 +61,7 @@ class WorkorderController extends AdminController
'content' => $v->title,
'last_message' => $item ? ($item->type == 1 ? $item->content : '【 图片 】') : '',
'last_message_time' => $item->created_at ?? '',
'items_count' => $workorderId != $v->id ? $v->items_count : 0,
];
$userList [] = $arr;
}
@ -75,10 +79,14 @@ class WorkorderController extends AdminController
'name' => $v->publisher->name,
'content' => $v->content,
'created_at_text' => $v->created_at,
'is_read' => $v->is_read,
];
$msgList [] = $arr;
}
// 更新已读未读,此处没有考虑性能代码解藕等问题
WorkorderItem::query()->where('workorder_id',$workorderId)->update(['is_read' => 1]);
$data = [
'user_list' => $userList,
'msg_list' => $msgList,

2
app/AdminGuide/bootstrap.php

@ -32,3 +32,5 @@ app('view')->prependNamespace('admin', resource_path('views/admin'));
Filter::resolving(function (Filter $filter) {
$filter->panel();
});
Admin::js('/js/workorder-notice.js');

5
app/AdminSupplier/Controllers/WorkorderController.php

@ -57,6 +57,7 @@ class WorkorderController extends AdminController
'content' => $v->title,
'last_message' => $item ? ($item->type == 1 ? $item->content : '【 图片 】') : '',
'last_message_time' => $item->created_at ?? '',
'items_count' => $workorderId != $v->id ? $v->items_count : 0,
];
$userList [] = $arr;
}
@ -74,10 +75,14 @@ class WorkorderController extends AdminController
'name' => $v->publisher->name,
'content' => $v->content,
'created_at_text' => $v->created_at,
'is_read' => $v->is_read,
];
$msgList [] = $arr;
}
// 更新已读未读,此处没有考虑性能代码解藕等问题
WorkorderItem::query()->where('workorder_id',$workorderId)->update(['is_read' => 1]);
$data = [
'user_list' => $userList,
'msg_list' => $msgList,

2
app/AdminSupplier/bootstrap.php

@ -59,3 +59,5 @@ Filter::resolving(function (Filter $filter) {
}
$menu->add($items);
});*/
Admin::js('/js/workorder-notice.js');

22
public/js/workorder-notice.js

@ -0,0 +1,22 @@
Dcat.ready(function () {
// const workorderNoticeTimer = setInterval(function () {
//
// $.ajax({
// url: '/workorder_notice',
// type: 'POST',
// data: {},
// dataType: 'json',
// success: function (res) {
// Dcat.info('您有新的工单信息', null, {
// timeOut: 5000, // 5秒后自动消失
// });
// },
// error: function (error) {
//
// }
// });
//
// }, 2000);
});

14
resources/views/admin/pages/guide-index.blade.php

@ -63,11 +63,9 @@
<div class="msg-time">
{{$item['last_message_time']}}
</div>
{{--@if($item['unread'] == true)--}}
{{--<div class="msg-list-badge background-red"></div>--}}
{{--@else--}}
{{--<div class="msg-list-badge background-gray"></div>--}}
{{--@endif--}}
@if($item['items_count'] > 0)
<div class="msg-list-badge background-red">{{$item['items_count']}}</div>
@endif
</div>
@endforeach
@endif
@ -108,6 +106,9 @@
<div class="msg-time">
{{$item['created_at_text']}}
@if($item['is_read'] == 0)
<span class="unread">[ 新消息 ]</span>
@endif
</div>
</div>
</div>
@ -133,6 +134,9 @@
<div class="msg-time">
{{$item['created_at_text']}}
@if($item['is_read'] == 0)
<span class="unread">[ 新消息 ]</span>
@endif
</div>
</div>
</div>

21
resources/views/admin/pages/index.blade.php

@ -29,10 +29,11 @@
.msg-list-content { color: gray; background-color: #f4f4f4; border-radius: 5px; padding: 2px 5px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.msg-list-badge {
position: absolute; right: 5px; top: 5px;
width: 10px; height: 10px; border-radius: 10px;
width: 20px; height: 20px; border-radius: 20px; line-height: 20px;
text-align: center; font-size: 12px;
}
.background-red { background-color: red; }
.background-gray { background-color: gray; }
.background-red { color: white; background-color: red; }
.background-gray { color: white; background-color: gray; }
</style>
<div class="row chat-container">
@ -63,11 +64,9 @@
<div class="msg-time">
{{$item['last_message_time']}}
</div>
{{--@if($item['unread'] == true)--}}
{{--<div class="msg-list-badge background-red"></div>--}}
{{--@else--}}
{{--<div class="msg-list-badge background-gray"></div>--}}
{{--@endif--}}
@if($item['items_count'] > 0)
<div class="msg-list-badge background-red">{{$item['items_count']}}</div>
@endif
</div>
@endforeach
@endif
@ -108,6 +107,9 @@
<div class="msg-time">
{{$item['created_at_text']}}
@if($item['is_read'] == 0)
<span class="unread">[ 新消息 ]</span>
@endif
</div>
</div>
</div>
@ -133,6 +135,9 @@
<div class="msg-time">
{{$item['created_at_text']}}
@if($item['is_read'] == 0)
<span class="unread">[ 新消息 ]</span>
@endif
</div>
</div>
</div>

14
resources/views/admin/pages/supplier-index.blade.php

@ -63,11 +63,9 @@
<div class="msg-time">
{{$item['last_message_time']}}
</div>
{{--@if($item['unread'] == true)--}}
{{--<div class="msg-list-badge background-red"></div>--}}
{{--@else--}}
{{--<div class="msg-list-badge background-gray"></div>--}}
{{--@endif--}}
@if($item['items_count'] > 0)
<div class="msg-list-badge background-red">{{$item['items_count']}}</div>
@endif
</div>
@endforeach
@endif
@ -108,6 +106,9 @@
<div class="msg-time">
{{$item['created_at_text']}}
@if($item['is_read'] == 0)
<span class="unread">[ 新消息 ]</span>
@endif
</div>
</div>
</div>
@ -133,6 +134,9 @@
<div class="msg-time">
{{$item['created_at_text']}}
@if($item['is_read'] == 0)
<span class="unread">[ 新消息 ]</span>
@endif
</div>
</div>
</div>

Loading…
Cancel
Save