perf: 工作报告支持查看仅未读

This commit is contained in:
kuaifan 2025-02-25 20:39:22 +08:00
parent a8be330baa
commit d543c27000
2 changed files with 24 additions and 0 deletions

View File

@ -71,6 +71,7 @@ class ReportController extends AbstractController
* @apiParam {Object} [keys] 搜索条件 * @apiParam {Object} [keys] 搜索条件
* - keys.key: 关键词 * - keys.key: 关键词
* - keys.type: 汇报类型weekly:周报daily:日报 * - keys.type: 汇报类型weekly:周报daily:日报
* - keys.status: 状态unread:未读read:已读
* - keys.created_at: 汇报时间 * - keys.created_at: 汇报时间
* @apiParam {Number} [page] 当前页,默认:1 * @apiParam {Number} [page] 当前页,默认:1
* @apiParam {Number} [pagesize] 每页显示数量,默认:20,最大:50 * @apiParam {Number} [pagesize] 每页显示数量,默认:20,最大:50
@ -98,6 +99,11 @@ class ReportController extends AbstractController
if (in_array($keys['type'], [Report::WEEKLY, Report::DAILY])) { if (in_array($keys['type'], [Report::WEEKLY, Report::DAILY])) {
$builder->whereType($keys['type']); $builder->whereType($keys['type']);
} }
if (in_array($keys['status'], ['unread', 'read'])) {
$builder->whereHas("receivesUser", function ($query) use ($user, $keys) {
$query->where("report_receives.userid", $user->userid)->where("report_receives.read", $keys['status'] === 'unread' ? 0 : 1);
});
}
if (is_array($keys['created_at'])) { if (is_array($keys['created_at'])) {
if ($keys['created_at'][0] > 0) $builder->where('created_at', '>=', Base::newCarbon($keys['created_at'][0])->startOfDay()); if ($keys['created_at'][0] > 0) $builder->where('created_at', '>=', Base::newCarbon($keys['created_at'][0])->startOfDay());
if ($keys['created_at'][1] > 0) $builder->where('created_at', '<=', Base::newCarbon($keys['created_at'][1])->endOfDay()); if ($keys['created_at'][1] > 0) $builder->where('created_at', '<=', Base::newCarbon($keys['created_at'][1])->endOfDay());

View File

@ -22,6 +22,18 @@
</Select> </Select>
</div> </div>
</li> </li>
<li>
<div class="search-label">
{{ $L("汇报状态") }}
</div>
<div class="search-content">
<Select
v-model="keys.status"
:placeholder="$L('全部')">
<Option v-for="item in reportStatusList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
</div>
</li>
<li> <li>
<div class="search-label"> <div class="search-label">
{{ $L("汇报时间") }} {{ $L("汇报时间") }}
@ -191,6 +203,12 @@ export default {
{value: "weekly", label: this.$L('周报')}, {value: "weekly", label: this.$L('周报')},
{value: "daily", label: this.$L('日报')}, {value: "daily", label: this.$L('日报')},
], ],
reportStatusList: [
{value: "", label: this.$L('全部')},
{value: "unread", label: this.$L('仅未读')},
{value: "read", label: this.$L('仅已读')},
],
} }
}, },
mounted() { mounted() {