优化前端代码

This commit is contained in:
kuaifan 2022-01-21 14:21:48 +08:00
parent c4fed86f1e
commit 511c19d5aa
10 changed files with 34 additions and 43 deletions

View File

@ -42,7 +42,7 @@ class ReportController extends AbstractController
{ {
$user = User::auth(); $user = User::auth();
// 搜索当前用户 // 搜索当前用户
$builder = Report::query()->whereUserid($user->userid); $builder = Report::with(['receivesUser'])->whereUserid($user->userid);
$type = trim(Request::input('type')); $type = trim(Request::input('type'));
$createAt = Request::input('created_at'); $createAt = Request::input('created_at');
in_array($type, [Report::WEEKLY, Report::DAILY]) && $builder->whereType($type); in_array($type, [Report::WEEKLY, Report::DAILY]) && $builder->whereType($type);
@ -52,13 +52,6 @@ class ReportController extends AbstractController
if ($createAt[1] > 0) $whereArray[] = ['created_at', '<=', date('Y-m-d H:i:s', Base::dayTimeE($createAt[1]))]; if ($createAt[1] > 0) $whereArray[] = ['created_at', '<=', date('Y-m-d H:i:s', Base::dayTimeE($createAt[1]))];
} }
$list = $builder->where($whereArray)->orderByDesc('created_at')->paginate(Base::getPaginate(50, 20)); $list = $builder->where($whereArray)->orderByDesc('created_at')->paginate(Base::getPaginate(50, 20));
if ($list->items()) {
foreach ($list->items() as $item) {
$item->receivesUser;
$item->receives = empty($item->receivesUser) ? [] : array_column($item->receivesUser->toArray(), "userid");
}
}
return Base::retSuccess('success', $list); return Base::retSuccess('success', $list);
} }
@ -82,7 +75,7 @@ class ReportController extends AbstractController
public function receive(): array public function receive(): array
{ {
$user = User::auth(); $user = User::auth();
$builder = Report::query(); $builder = Report::with(['receivesUser']);
$builder->whereHas("receivesUser", function ($query) use ($user) { $builder->whereHas("receivesUser", function ($query) use ($user) {
$query->where("report_receives.userid", $user->userid); $query->where("report_receives.userid", $user->userid);
}); });
@ -103,9 +96,7 @@ class ReportController extends AbstractController
$list = $builder->where($whereArray)->orderByDesc('created_at')->paginate(Base::getPaginate(50, 20)); $list = $builder->where($whereArray)->orderByDesc('created_at')->paginate(Base::getPaginate(50, 20));
if ($list->items()) { if ($list->items()) {
foreach ($list->items() as $item) { foreach ($list->items() as $item) {
$item["receive_time"] = ReportReceive::query()->whereRid($item["id"])->whereUserid($user->userid)->value("receive_time"); $item->receive_time = ReportReceive::query()->whereRid($item["id"])->whereUserid($user->userid)->value("receive_time");
$item->receivesUser;
$item->receives = empty($item->receivesUser) ? [] : array_column($item->receivesUser->toArray(), "userid");
} }
} }
return Base::retSuccess('success', $list); return Base::retSuccess('success', $list);
@ -353,7 +344,7 @@ class ReportController extends AbstractController
return Base::retError("缺少ID参数"); return Base::retError("缺少ID参数");
$one = Report::getOne($id); $one = Report::getOne($id);
$one["type_val"] = $one->getRawOriginal("type"); $one->type_val = $one->getRawOriginal("type");
$user = User::auth(); $user = User::auth();
// 标记为已读 // 标记为已读

View File

@ -1,6 +1,6 @@
{ {
"name": "DooTask", "name": "DooTask",
"version": "0.6.60", "version": "0.6.63",
"description": "DooTask is task management system.", "description": "DooTask is task management system.",
"main": "main.js", "main": "main.js",
"license": "MIT", "license": "MIT",

View File

@ -1,6 +1,6 @@
{ {
"name": "DooTask", "name": "DooTask",
"version": "0.6.60", "version": "0.6.63",
"description": "DooTask is task management system.", "description": "DooTask is task management system.",
"scripts": { "scripts": {
"start": "./cmd dev", "start": "./cmd dev",

2
public/js/app.js vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/js/build/652.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -26,7 +26,7 @@
</Col> </Col>
<Col span="6"> <Col span="6">
<div class="report-submitter"> <div class="report-submitter">
<UserAvatar v-for="item in data.receives" :key="item" :userid="item" :size="28"/> <UserAvatar v-for="item in data.receives_user" :key="item" :userid="item.userid" :size="28"/>
</div> </div>
</Col> </Col>
</Row> </Row>

View File

@ -172,7 +172,7 @@ export default {
// data // data
this.reportData.title = data.title; this.reportData.title = data.title;
this.reportData.content = data.content; this.reportData.content = data.content;
this.reportData.receive = data.receives; this.reportData.receive = data.receives_user.map(({userid}) => userid);
this.reportData.type = data.type_val; this.reportData.type = data.type_val;
this.reportData.id = reportId; this.reportData.id = reportId;
this.disabledType = true; this.disabledType = true;

View File

@ -66,19 +66,19 @@ export default {
this.columns = [{ this.columns = [{
"title": this.$L("名称"), "title": this.$L("名称"),
"key": 'title', "key": 'title',
sortable: true, "sortable": true,
"minWidth": 120, "minWidth": 120,
}, { }, {
"title": this.$L("类型"), "title": this.$L("类型"),
"key": 'type', "key": 'type',
"align": 'center', "align": 'center',
sortable: true, "sortable": true,
"maxWidth": 80, "maxWidth": 80,
}, { }, {
"title": this.$L("汇报时间"), "title": this.$L("汇报时间"),
"key": 'created_at', "key": 'created_at',
"align": 'center', "align": 'center',
sortable: true, "sortable": true,
"maxWidth": 180, "maxWidth": 180,
}, { }, {
"title": "操作", "title": "操作",

View File

@ -54,13 +54,13 @@ export default {
listPageSize: 10, listPageSize: 10,
noDataText: "", noDataText: "",
username:'', username: '',
reportType:'', reportType: '',
createAt: [], createAt: [],
reportTypeList:[ reportTypeList: [
{value:"",label:'全部' }, {value: "", label: '全部'},
{value:"weekly",label:'周报' }, {value: "weekly", label: '周报'},
{value:"daily",label:'日报' }, {value: "daily", label: '日报'},
], ],
} }
}, },
@ -77,22 +77,22 @@ export default {
"minWidth": 120, "minWidth": 120,
render: (h, params) => { render: (h, params) => {
let arr = [] let arr = []
if(params.row.receives_user[0].pivot.read==0){ if (params.row.receives_user[0].pivot.read == 0) {
arr.push( arr.push(
h('Tag', { h('Tag', {
props: { // props: { //
color: "orange", color: "orange",
} }
}, this.$L("未读")), }, this.$L("未读")),
h('span',params.row.title) h('span', params.row.title)
) )
}else { } else {
arr.push( arr.push(
h('span',params.row.title) h('span', params.row.title)
) )
} }
return h('div',arr) return h('div', arr)
} }
}, { }, {
"title": this.$L("类型"), "title": this.$L("类型"),
@ -117,11 +117,11 @@ export default {
} }
let arr = [ let arr = [
h('ETooltip', { h('ETooltip', {
props: { content: this.$L('查看'), transfer: true, delay: 600 }, props: {content: this.$L('查看'), transfer: true, delay: 600},
style: { position: 'relative' }, style: {position: 'relative'},
}, [h('Icon', { }, [h('Icon', {
props: { type: 'md-eye', size: 16 }, props: {type: 'md-eye', size: 16},
style: { margin: '0 3px', cursor: 'pointer' }, style: {margin: '0 3px', cursor: 'pointer'},
on: { on: {
click: () => { click: () => {
this.$emit("detail", params.row) this.$emit("detail", params.row)
@ -151,16 +151,16 @@ export default {
// data // data
this.lists = data.data; this.lists = data.data;
this.listTotal = data.total; this.listTotal = data.total;
if ( this.lists.length <= 0 ) { if (this.lists.length <= 0) {
this.noDataText = this.$L("无数据"); this.noDataText = this.$L("无数据");
} }
// msg // msg
}).catch(({msg}) => { }).catch(({msg}) => {
// msg // msg
$A.messageError(msg); $A.messageError(msg);
}).finally( () => { }).finally(() => {
this.loadIng = 0; this.loadIng = 0;
} ); });
}, },
setPage(page) { setPage(page) {
this.listPage = page; this.listPage = page;
@ -173,10 +173,10 @@ export default {
} }
}, },
timePick(e){ timePick(e) {
this.createAt = e; this.createAt = e;
}, },
typePick(e){ typePick(e) {
// console.log(e) // console.log(e)
}, },
searchTab() { searchTab() {