diff --git a/app/Http/Controllers/Api/ReportController.php b/app/Http/Controllers/Api/ReportController.php index 3dbbba000..4eeb51a96 100755 --- a/app/Http/Controllers/Api/ReportController.php +++ b/app/Http/Controllers/Api/ReportController.php @@ -6,6 +6,7 @@ use App\Exceptions\ApiException; use App\Models\AbstractModel; use App\Models\ProjectTask; use App\Models\Report; +use App\Models\ReportLink; use App\Models\ReportReceive; use App\Models\User; use App\Module\Base; @@ -441,7 +442,8 @@ class ReportController extends AbstractController * @apiGroup report * @apiName detail * - * @apiParam {Number} [id] 报告id + * @apiParam {Number} [id] 报告ID + * @apiParam {String} [code] 报告分享代码,与ID二选一,优先ID * * @apiSuccess {Number} ret 返回状态码(1正确、0错误) * @apiSuccess {String} msg 返回信息(错误描述) @@ -450,24 +452,35 @@ class ReportController extends AbstractController public function detail(): array { $user = User::auth(); + // $id = intval(trim(Request::input("id"))); - if (empty($id)) + $code = trim(Request::input("code")); + // + if (empty($id) && empty($code)) { return Base::retError("缺少ID参数"); - - $one = Report::getOne($id); - $one->type_val = $one->getRawOriginal("type"); - - // 标记为已读 - if (!empty($one->receivesUser)) { - foreach ($one->receivesUser as $item) { - if ($item->userid === $user->userid && $item->pivot->read === 0) { - $one->receivesUser()->updateExistingPivot($user->userid, [ - "read" => 1, - ]); + } + // + if (!empty($id)) { + $one = Report::getOne($id); + $one->type_val = $one->getRawOriginal("type"); + // 标记为已读 + if (!empty($one->receivesUser)) { + foreach ($one->receivesUser as $item) { + if ($item->userid === $user->userid && $item->pivot->read === 0) { + $one->receivesUser()->updateExistingPivot($user->userid, [ + "read" => 1, + ]); + } } } + } else { + $link = ReportLink::whereCode($code)->first(); + if (empty($link)) { + return Base::retError("报告不存在或已被删除"); + } + $one = Report::getOne($link->rid); + $one->report_link = $link; } - return Base::retSuccess("success", $one); } diff --git a/resources/assets/js/pages/manage/components/ReportDetail.vue b/resources/assets/js/pages/manage/components/ReportDetail.vue index c4a37e6a2..5287d644e 100644 --- a/resources/assets/js/pages/manage/components/ReportDetail.vue +++ b/resources/assets/js/pages/manage/components/ReportDetail.vue @@ -4,43 +4,43 @@ {{ data.title }} -
-
- - - - - {{ data.created_at }} - - - - - -
-
- -
-
-
-
-
-
- - -
-
-
+
+ +
  • +
    + {{ $L("分享人") }} +
    +
    + +
    +
  • + +
    @@ -53,7 +53,10 @@ export default { props: { data: { default: {}, - } + }, + type: { + default: 'view', + }, }, data() { return { @@ -66,7 +69,9 @@ export default { watch: { 'data.id': { handler(id) { - if (id > 0) this.sendRead(); + if (id > 0 && this.type === 'view') { + this.sendRead(); + } }, immediate: true }, diff --git a/resources/assets/js/pages/single/reportDetail.vue b/resources/assets/js/pages/single/reportDetail.vue index 80438419a..901c31f12 100644 --- a/resources/assets/js/pages/single/reportDetail.vue +++ b/resources/assets/js/pages/single/reportDetail.vue @@ -1,7 +1,7 @@