mirror of
https://github.com/FatttSnake/Pinnacle-OA.git
synced 2026-04-05 15:01:23 +08:00
Update home page layout, update work card layout.
Optimize t_work table queries.
This commit is contained in:
@@ -52,8 +52,8 @@ public class WorkController {
|
||||
|
||||
@GetMapping("/card")
|
||||
public ResponseResult getCard() {
|
||||
// Long userId = WebUtil.getLoginUser().getUser().getId();
|
||||
long userId = 1;
|
||||
Long userId = WebUtil.getLoginUser().getUser().getId();
|
||||
// long userId = 1;
|
||||
return ResponseResult.build(ResponseCode.DATABASE_SELECT_OK, "success", workService.getCard(userId));
|
||||
}
|
||||
|
||||
|
||||
@@ -39,43 +39,43 @@ public class WorkServiceImpl extends ServiceImpl<WorkMapper, Work> implements IW
|
||||
private UserMapper userMapper;
|
||||
@Override
|
||||
public List<Work> getAll() {
|
||||
List<Work> workList = workMapper.getAll();
|
||||
for (Work work:
|
||||
workList) {
|
||||
work.setProgress(getProgress(work.getId()));
|
||||
work.setPublisherName(getUserName(work.getPublisherId()));
|
||||
}
|
||||
return workList;
|
||||
// List<Work> workList = workMapper.getAll();
|
||||
// for (Work work:
|
||||
// workList) {
|
||||
// work.setProgress(getProgress(work.getId()));
|
||||
// work.setPublisherName(getUserName(work.getPublisherId()));
|
||||
// }
|
||||
return workMapper.getAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Work> getTodo(Long userId) {
|
||||
List<Work> workList = workMapper.getTodo(userId);
|
||||
for (Work work:
|
||||
workList) {
|
||||
work.setPublisherName(getUserName(work.getPublisherId()));
|
||||
}
|
||||
return workList;
|
||||
// List<Work> workList = workMapper.getTodo(userId);
|
||||
// for (Work work:
|
||||
// workList) {
|
||||
// work.setPublisherName(getUserName(work.getPublisherId()));
|
||||
// }
|
||||
return workMapper.getTodo(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Work> getCard(Long userId) {
|
||||
List<Work> workList = workMapper.getCard(userId);
|
||||
for (Work work:
|
||||
workList) {
|
||||
work.setPublisherName(getUserName(work.getPublisherId()));
|
||||
}
|
||||
return workList;
|
||||
// List<Work> workList = workMapper.getCard(userId);
|
||||
// for (Work work:
|
||||
// workList) {
|
||||
// work.setPublisherName(getUserName(work.getPublisherId()));
|
||||
// }
|
||||
return workMapper.getCard(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Work> getComplete(Long userId) {
|
||||
List<Work> workList = workMapper.getComplete(userId);
|
||||
for (Work work:
|
||||
workList) {
|
||||
work.setPublisherName(getUserName(work.getPublisherId()));
|
||||
}
|
||||
return workList;
|
||||
// List<Work> workList = workMapper.getComplete(userId);
|
||||
// for (Work work:
|
||||
// workList) {
|
||||
// work.setPublisherName(getUserName(work.getPublisherId()));
|
||||
// }
|
||||
return workMapper.getComplete(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -88,13 +88,13 @@ public class WorkServiceImpl extends ServiceImpl<WorkMapper, Work> implements IW
|
||||
|
||||
@Override
|
||||
public List<Work> getWorkByContent(String content) {
|
||||
List<Work> workList = workMapper.getWorkByContent(content);
|
||||
for (Work work:
|
||||
workList) {
|
||||
work.setProgress(getProgress(work.getId()));
|
||||
work.setPublisherName(getUserName(work.getPublisherId()));
|
||||
}
|
||||
return workList;
|
||||
// List<Work> workList = workMapper.getWorkByContent(content);
|
||||
// for (Work work:
|
||||
// workList) {
|
||||
// work.setProgress(getProgress(work.getId()));
|
||||
// work.setPublisherName(getUserName(work.getPublisherId()));
|
||||
// }
|
||||
return workMapper.getWorkByContent(content);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
<id property="id" column="id"/>
|
||||
<result property="content" column="content"/>
|
||||
<result property="publisherId" column="publisher_id"/>
|
||||
<result property="publisherName" column="publisher_name"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="deadline" column="deadline"/>
|
||||
<collection property="userWorkList" ofType="userWork">
|
||||
@@ -20,97 +21,93 @@
|
||||
select w.id,
|
||||
content,
|
||||
publisher_id,
|
||||
u.username publisher_name,
|
||||
create_time,
|
||||
deadline,
|
||||
tuw.user_id worker_id,
|
||||
u.username worker_name,
|
||||
tu.username worker_name,
|
||||
tuw.status status,
|
||||
tuw.complete_time complete_time
|
||||
from t_work w,
|
||||
t_user u,
|
||||
t_user_work tuw
|
||||
where w.id = tuw.work_id
|
||||
and tuw.user_id = u.id
|
||||
and w.deleted = 0
|
||||
and tuw.deleted = 0
|
||||
from t_work w
|
||||
left join (select * from t_user where deleted = 0) as u on w.publisher_id = u.id
|
||||
left join (select * from t_user_work where deleted = 0) as tuw on w.id = tuw.work_id
|
||||
left join (select * from t_user where deleted = 0) as tu on tuw.user_id = tu.id
|
||||
where w.deleted = 0
|
||||
order by w.id desc;
|
||||
</select>
|
||||
<select id="getWork" parameterType="long" resultMap="workMap">
|
||||
select w.id,
|
||||
content,
|
||||
publisher_id,
|
||||
u.username publisher_name,
|
||||
create_time,
|
||||
deadline,
|
||||
tuw.user_id worker_id,
|
||||
u.username worker_name,
|
||||
tu.username worker_name,
|
||||
tuw.status status,
|
||||
tuw.complete_time completeTime
|
||||
from t_work w,
|
||||
t_user u,
|
||||
t_user_work tuw
|
||||
from t_work w
|
||||
left join (select * from t_user where deleted = 0) as u on w.publisher_id = u.id
|
||||
left join (select * from t_user_work where deleted = 0) as tuw on w.id = tuw.work_id
|
||||
left join (select * from t_user where deleted = 0) as tu on tuw.user_id = tu.id
|
||||
where w.id = #{id}
|
||||
and w.id = tuw.work_id
|
||||
and tuw.user_id = u.id
|
||||
and w.deleted = 0
|
||||
and tuw.deleted = 0;
|
||||
and w.deleted = 0;
|
||||
</select>
|
||||
<select id="getWorkByContent" parameterType="String" resultMap="workMap">
|
||||
select w.id,
|
||||
content,
|
||||
publisher_id,
|
||||
u.username publisher_name,
|
||||
create_time,
|
||||
deadline,
|
||||
tuw.user_id worker_id,
|
||||
u.username worker_name,
|
||||
tu.username worker_name,
|
||||
tuw.status status,
|
||||
tuw.complete_time completeTime
|
||||
from t_work w,
|
||||
t_user u,
|
||||
t_user_work tuw
|
||||
from t_work w
|
||||
left join (select * from t_user where deleted = 0) as u on w.publisher_id = u.id
|
||||
left join (select * from t_user_work where deleted = 0) as tuw on w.id = tuw.work_id
|
||||
left join (select * from t_user where deleted = 0) as tu on tuw.user_id = tu.id
|
||||
where w.content like '%${content}%'
|
||||
and w.id = tuw.work_id
|
||||
and tuw.user_id = u.id
|
||||
and w.deleted = 0
|
||||
and tuw.deleted = 0;
|
||||
and w.deleted = 0;
|
||||
</select>
|
||||
<select id="getTodo" parameterType="long" resultMap="workMap">
|
||||
select w.id,
|
||||
content,
|
||||
publisher_id,
|
||||
u.username publisher_name,
|
||||
create_time,
|
||||
deadline,
|
||||
tuw.user_id worker_id,
|
||||
u.username worker_name,
|
||||
tu.username worker_name,
|
||||
tuw.status status
|
||||
from t_work w,
|
||||
t_user u,
|
||||
t_user_work tuw
|
||||
where w.id = tuw.work_id
|
||||
and tuw.user_id = u.id
|
||||
and tuw.user_id = #{userId}
|
||||
from t_work w
|
||||
left join (select * from t_user where deleted = 0) as u on w.publisher_id = u.id
|
||||
left join (select * from t_user_work where deleted = 0) as tuw on w.id = tuw.work_id
|
||||
left join (select * from t_user where deleted = 0) as tu on tuw.user_id = tu.id
|
||||
where
|
||||
tuw.user_id = #{userId}
|
||||
and status = false
|
||||
and w.deleted = 0
|
||||
and tuw.deleted = 0
|
||||
order by w.deadline asc, w.id desc;
|
||||
</select>
|
||||
<select id="getCard" parameterType="long" resultMap="workMap">
|
||||
select w.id,
|
||||
content,
|
||||
publisher_id,
|
||||
u.username publisher_name,
|
||||
create_time,
|
||||
deadline,
|
||||
tuw.user_id worker_id,
|
||||
u.username worker_name,
|
||||
tu.username worker_name,
|
||||
tuw.status status
|
||||
from t_work w,
|
||||
t_user u,
|
||||
t_user_work tuw
|
||||
where w.id = tuw.work_id
|
||||
and tuw.user_id = u.id
|
||||
and tuw.user_id = #{userId}
|
||||
from t_work w
|
||||
left join (select * from t_user where deleted = 0) as u on w.publisher_id = u.id
|
||||
left join (select * from t_user_work where deleted = 0) as tuw on w.id = tuw.work_id
|
||||
left join (select * from t_user where deleted = 0) as tu on tuw.user_id = tu.id
|
||||
where tuw.user_id = #{userId}
|
||||
and status = false
|
||||
and w.deleted = 0
|
||||
and tuw.deleted = 0
|
||||
order by w.deadline asc, w.id desc
|
||||
limit 5;
|
||||
|
||||
@@ -119,21 +116,20 @@
|
||||
select w.id,
|
||||
content,
|
||||
publisher_id,
|
||||
u.username publisher_name,
|
||||
create_time,
|
||||
deadline,
|
||||
tuw.user_id worker_id,
|
||||
u.username worker_name,
|
||||
tuw.status status,
|
||||
tuw.complete_time complete_time
|
||||
from t_work w,
|
||||
t_user u,
|
||||
t_user_work tuw
|
||||
from t_work w
|
||||
left join (select * from t_user where deleted = 0) as u on w.publisher_id = u.id
|
||||
left join (select * from t_user_work where deleted = 0) as tuw on w.id = tuw.work_id
|
||||
left join (select * from t_user where deleted = 0) as tu on tuw.user_id = tu.id
|
||||
where tuw.user_id = #{userId}
|
||||
and tuw.user_id = u.id
|
||||
and w.id = tuw.work_id
|
||||
and tuw.status = true
|
||||
and w.deleted = 0
|
||||
and tuw.deleted = 0
|
||||
order by w.id desc;
|
||||
</select>
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<el-card shadow="hover">
|
||||
<template #header>
|
||||
<div class="card-header">
|
||||
<div class="card-header" style="height: 20px">
|
||||
<h2>待办工作</h2>
|
||||
<el-button class="button" text @click="pushTodo">查看更多</el-button>
|
||||
</div>
|
||||
@@ -12,7 +12,7 @@
|
||||
<el-avatar style="background-color: #409eff" size="default">
|
||||
<el-icon
|
||||
color="white"
|
||||
:size="SIZE_ICON_LG()"
|
||||
:size="SIZE_ICON_MD()"
|
||||
style="vertical-align: center"
|
||||
>
|
||||
<icon-pinnacle-workpage />
|
||||
@@ -38,15 +38,17 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import request from '@/services'
|
||||
import { SIZE_ICON_LG, SIZE_ICON_MD } from '@/constants/Common.constants'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
tableData: []
|
||||
}
|
||||
props: {
|
||||
tableData: []
|
||||
},
|
||||
// data() {
|
||||
// return {
|
||||
// tableData: []
|
||||
// }
|
||||
// },
|
||||
methods: {
|
||||
SIZE_ICON_LG() {
|
||||
return SIZE_ICON_LG
|
||||
@@ -57,22 +59,9 @@ export default {
|
||||
formatDate(time) {
|
||||
return new Date(time).toLocaleString()
|
||||
},
|
||||
getTableData() {
|
||||
request
|
||||
.get('/work/card')
|
||||
.then((response) => {
|
||||
this.tableData = response.data.data
|
||||
})
|
||||
.catch((reportError) => {
|
||||
console.log(reportError)
|
||||
})
|
||||
},
|
||||
pushTodo() {
|
||||
this.$router.push('/work/task')
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getTableData()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -89,6 +78,12 @@ export default {
|
||||
}
|
||||
|
||||
.item {
|
||||
margin-bottom: 18px;
|
||||
margin-bottom: 5px;
|
||||
height: calc(((100vh - 56px - 40px - 20px) / 2 - 56px - 40px) / 5);
|
||||
min-height: 48px;
|
||||
}
|
||||
.el-card {
|
||||
height: calc((100vh - 56px - 40px - 20px) / 2);
|
||||
min-height: calc((500px - 56px - 40px - 20px) / 2);
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,30 +1,60 @@
|
||||
<template>
|
||||
<el-row style="width: 100%" :gutter="20">
|
||||
<el-col :span="12">
|
||||
<work-card />
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<work-card />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row style="width: 100%" :gutter="20">
|
||||
<el-col :span="12">
|
||||
<work-card />
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<work-card />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div style="height: calc(100vh - 56px - 40px); min-height: calc(500px - 56px - 40px)">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<work-card :table-data="tableData" />
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<work-card :table-data="tableData" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="12">
|
||||
<work-card :table-data="tableData" />
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<work-card :table-data="tableData" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import request from '@/services'
|
||||
|
||||
export default {
|
||||
name: 'HomePage'
|
||||
name: 'HomePage',
|
||||
data() {
|
||||
return {
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getTableData() {
|
||||
request
|
||||
.get('/work/card')
|
||||
.then((response) => {
|
||||
this.tableData = response.data.data
|
||||
})
|
||||
.catch((reportError) => {
|
||||
console.log(reportError)
|
||||
})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getTableData()
|
||||
},
|
||||
updated() {
|
||||
this.getTableData()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.el-row {
|
||||
width: 100%;
|
||||
height: calc((100vh - 56px - 40px - 20px) / 2);
|
||||
min-height: calc((500px - 56px - 40px - 20px) / 2);
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user