perf: 工作报告优化
This commit is contained in:
parent
a9e71567fe
commit
942cf57c36
@ -15,6 +15,7 @@
|
|||||||
<Icon type="ios-arrow-up" />
|
<Icon type="ios-arrow-up" />
|
||||||
<Icon type="ios-arrow-down" />
|
<Icon type="ios-arrow-down" />
|
||||||
</div>
|
</div>
|
||||||
|
<Badge v-if="reportUnreadNumber > 0" class="manage-box-top-report" :count="reportUnreadNumber"/>
|
||||||
</div>
|
</div>
|
||||||
<DropdownMenu slot="list">
|
<DropdownMenu slot="list">
|
||||||
<DropdownItem
|
<DropdownItem
|
||||||
@ -23,7 +24,7 @@
|
|||||||
:divided="!!item.divided"
|
:divided="!!item.divided"
|
||||||
:name="item.path">
|
:name="item.path">
|
||||||
{{$L(item.name)}}
|
{{$L(item.name)}}
|
||||||
<Badge v-if="item.path === 'workReport'" class="manage-menu-report-badge" :count="reportUnreadNumber"/>
|
<Badge v-if="item.path === 'workReport'" @click.native="openReceiveReport" class="manage-menu-report-badge" :count="reportUnreadNumber"/>
|
||||||
</DropdownItem>
|
</DropdownItem>
|
||||||
<Dropdown placement="right-start" @on-click="setTheme">
|
<Dropdown placement="right-start" @on-click="setTheme">
|
||||||
<DropdownItem divided>
|
<DropdownItem divided>
|
||||||
@ -179,7 +180,7 @@
|
|||||||
v-model="workReportShow"
|
v-model="workReportShow"
|
||||||
placement="right"
|
placement="right"
|
||||||
:size="1100">
|
:size="1100">
|
||||||
<Report v-if="workReportShow" @read="reportUnread" />
|
<Report v-if="workReportShow" :reportType="reportTabs" :reportUnreadNumber="reportUnreadNumber" @read="reportUnread" />
|
||||||
</DrawerOverlay>
|
</DrawerOverlay>
|
||||||
|
|
||||||
<!--查看所有团队-->
|
<!--查看所有团队-->
|
||||||
@ -276,6 +277,7 @@ export default {
|
|||||||
notificationClass: null,
|
notificationClass: null,
|
||||||
|
|
||||||
reportUnreadNumber: 0,
|
reportUnreadNumber: 0,
|
||||||
|
reportTabs: "my"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -738,12 +740,17 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
reportUnread() {
|
reportUnread() {
|
||||||
|
this.reportTabs = "my";
|
||||||
this.$store.dispatch("call", {
|
this.$store.dispatch("call", {
|
||||||
url: 'report/unread',
|
url: 'report/unread',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
}).then(({data}) => {
|
}).then(({data}) => {
|
||||||
this.reportUnreadNumber = data.total ? data.total : 0;
|
this.reportUnreadNumber = data.total ? data.total : 0;
|
||||||
}).catch(() => {});
|
}).catch(() => {});
|
||||||
|
},
|
||||||
|
|
||||||
|
openReceiveReport(){
|
||||||
|
this.reportTabs = "receive";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,24 +1,24 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="report">
|
<div class="report">
|
||||||
<Tabs v-model="reportTabs">
|
<Tabs v-model="reportTabs">
|
||||||
<TabPane :label="$L('填写汇报')" name="edit">
|
<TabPane :label="$L('填写汇报')" name="edit">
|
||||||
<ReportEdit :id="reportId" @saveSuccess="saveSuccess"></ReportEdit>
|
<ReportEdit :id="reportId" @saveSuccess="saveSuccess"></ReportEdit>
|
||||||
</TabPane>
|
</TabPane>
|
||||||
<TabPane :label="$L('我的汇报')" name="my">
|
<TabPane :label="$L('我的汇报')" name="my">
|
||||||
<ReportMy v-if="reportTabs === 'my'" @detail="showDetail" @edit="editReport"></ReportMy>
|
<ReportMy v-if="reportTabs === 'my'" @detail="showDetail" @edit="editReport"></ReportMy>
|
||||||
</TabPane>
|
</TabPane>
|
||||||
<TabPane :label="$L('收到的汇报')" name="receive">
|
<TabPane :label="tabRebder(reportUnreadNumber)" name="receive">
|
||||||
<ReportReceive v-if="reportTabs === 'receive'" @detail="showDetail"></ReportReceive>
|
<ReportReceive v-if="reportTabs === 'receive'" @detail="showDetail"></ReportReceive>
|
||||||
</TabPane>
|
</TabPane>
|
||||||
</Tabs>
|
</Tabs>
|
||||||
<DrawerOverlay
|
<DrawerOverlay
|
||||||
v-model="showDetailDrawer"
|
v-model="showDetailDrawer"
|
||||||
placement="right"
|
placement="right"
|
||||||
:size="950"
|
:size="950"
|
||||||
transfer>
|
transfer>
|
||||||
<ReportDetail :data="detailData"/>
|
<ReportDetail :data="detailData"/>
|
||||||
</DrawerOverlay>
|
</DrawerOverlay>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@ -27,39 +27,66 @@ import ReportMy from "./ReportMy"
|
|||||||
import ReportReceive from "./ReportReceive"
|
import ReportReceive from "./ReportReceive"
|
||||||
import ReportDetail from "./ReportDetail"
|
import ReportDetail from "./ReportDetail"
|
||||||
import DrawerOverlay from "../../../components/DrawerOverlay";
|
import DrawerOverlay from "../../../components/DrawerOverlay";
|
||||||
|
import {mapState} from "vuex";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "Report",
|
name: "Report",
|
||||||
components: {
|
components: {
|
||||||
DrawerOverlay,
|
DrawerOverlay,
|
||||||
ReportEdit, ReportMy, ReportReceive, ReportDetail
|
ReportEdit, ReportMy, ReportReceive, ReportDetail
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
reportUnreadNumber: {
|
||||||
|
type: Number,
|
||||||
|
default: 0
|
||||||
},
|
},
|
||||||
data() {
|
reportType:{
|
||||||
return {
|
default: "my"
|
||||||
reportTabs: "my",
|
|
||||||
showDetailDrawer: false,
|
|
||||||
detailData: {},
|
|
||||||
reportId: 0,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
showDetail(row) {
|
|
||||||
this.showDetailDrawer = true;
|
|
||||||
this.detailData = row;
|
|
||||||
//1.5秒后执行
|
|
||||||
setTimeout(() => {
|
|
||||||
this.$emit("read");
|
|
||||||
}, 1500);
|
|
||||||
},
|
|
||||||
editReport(id) {
|
|
||||||
this.reportId = id;
|
|
||||||
this.reportTabs = "edit";
|
|
||||||
},
|
|
||||||
saveSuccess() {
|
|
||||||
this.reportId = 0;
|
|
||||||
this.reportTabs = "my";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
reportTabs: "my",
|
||||||
|
showDetailDrawer: false,
|
||||||
|
detailData: {},
|
||||||
|
reportId: 0,
|
||||||
|
tabRebder: data => {
|
||||||
|
return h => {
|
||||||
|
if(data > 0){
|
||||||
|
return h('div', [
|
||||||
|
h('span', { class: 'navbar-item-content' }, '收到的汇报'),
|
||||||
|
h('Badge', { class: 'manage-box-report' }, data),
|
||||||
|
])
|
||||||
|
}else {
|
||||||
|
return h('div', [
|
||||||
|
h('span', { class: 'navbar-item-content' }, '收到的汇报'),
|
||||||
|
])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.reportTabs = this.reportType;
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
showDetail(row) {
|
||||||
|
this.showDetailDrawer = true;
|
||||||
|
this.detailData = row;
|
||||||
|
//1.5秒后执行
|
||||||
|
setTimeout(() => {
|
||||||
|
this.$emit("read");
|
||||||
|
}, 1500);
|
||||||
|
},
|
||||||
|
editReport(id) {
|
||||||
|
this.reportId = id;
|
||||||
|
this.reportTabs = "edit";
|
||||||
|
},
|
||||||
|
saveSuccess() {
|
||||||
|
this.reportId = 0;
|
||||||
|
this.reportTabs = "my";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -51,6 +51,7 @@ export default {
|
|||||||
createAt: [],
|
createAt: [],
|
||||||
reportType:'',
|
reportType:'',
|
||||||
reportTypeList:[
|
reportTypeList:[
|
||||||
|
{value:"",label:'全部' },
|
||||||
{value:"weekly",label:'周报' },
|
{value:"weekly",label:'周报' },
|
||||||
{value:"daily",label:'日报' },
|
{value:"daily",label:'日报' },
|
||||||
],
|
],
|
||||||
@ -123,6 +124,7 @@ export default {
|
|||||||
url: 'report/my',
|
url: 'report/my',
|
||||||
data: {
|
data: {
|
||||||
page: this.listPage,
|
page: this.listPage,
|
||||||
|
pagesize: this.listPageSize,
|
||||||
created_at: this.createAt,
|
created_at: this.createAt,
|
||||||
type: this.reportType
|
type: this.reportType
|
||||||
},
|
},
|
||||||
|
@ -58,6 +58,7 @@ export default {
|
|||||||
reportType:'',
|
reportType:'',
|
||||||
createAt: [],
|
createAt: [],
|
||||||
reportTypeList:[
|
reportTypeList:[
|
||||||
|
{value:"",label:'全部' },
|
||||||
{value:"weekly",label:'周报' },
|
{value:"weekly",label:'周报' },
|
||||||
{value:"daily",label:'日报' },
|
{value:"daily",label:'日报' },
|
||||||
],
|
],
|
||||||
@ -87,11 +88,6 @@ export default {
|
|||||||
)
|
)
|
||||||
}else {
|
}else {
|
||||||
arr.push(
|
arr.push(
|
||||||
h('Tag', {
|
|
||||||
props: { //传递参数
|
|
||||||
color: "lime",
|
|
||||||
}
|
|
||||||
}, this.$L("已读")),
|
|
||||||
h('span',params.row.title)
|
h('span',params.row.title)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -145,6 +141,7 @@ export default {
|
|||||||
url: 'report/receive',
|
url: 'report/receive',
|
||||||
data: {
|
data: {
|
||||||
page: this.listPage,
|
page: this.listPage,
|
||||||
|
pagesize: this.listPageSize,
|
||||||
username: this.username,
|
username: this.username,
|
||||||
created_at: this.createAt,
|
created_at: this.createAt,
|
||||||
type: this.reportType
|
type: this.reportType
|
||||||
|
27
resources/assets/sass/components/report.scss
vendored
27
resources/assets/sass/components/report.scss
vendored
@ -28,6 +28,33 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.manage-box-report{
|
||||||
|
font-family: "Monospaced Number";
|
||||||
|
line-height: 1;
|
||||||
|
vertical-align: middle;
|
||||||
|
position: absolute;
|
||||||
|
-webkit-transform: translateX(50%);
|
||||||
|
-ms-transform: translateX(50%);
|
||||||
|
transform: translateX(50%);
|
||||||
|
right: 0;
|
||||||
|
height: 20px;
|
||||||
|
border-radius: 10px;
|
||||||
|
min-width: 20px;
|
||||||
|
background: #ed4014;
|
||||||
|
border: 1px solid transparent;
|
||||||
|
color: #fff;
|
||||||
|
line-height: 18px;
|
||||||
|
text-align: center;
|
||||||
|
padding: 0 6px;
|
||||||
|
font-size: 12px;
|
||||||
|
white-space: nowrap;
|
||||||
|
-webkit-transform-origin: -10% center;
|
||||||
|
-ms-transform-origin: -10% center;
|
||||||
|
transform-origin: -10% center;
|
||||||
|
z-index: 10;
|
||||||
|
-webkit-box-shadow: 0 0 0 1px #fff;
|
||||||
|
box-shadow: 0 0 0 1px #fff;
|
||||||
|
}
|
||||||
|
|
||||||
.page-box {
|
.page-box {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
10
resources/assets/sass/pages/page-manage.scss
vendored
10
resources/assets/sass/pages/page-manage.scss
vendored
@ -69,6 +69,16 @@
|
|||||||
margin: -1px;
|
margin: -1px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.manage-box-top-report {
|
||||||
|
align-items: center;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
flex: 0 0 auto;
|
||||||
|
> i {
|
||||||
|
font-size: 12px;
|
||||||
|
margin: -1px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
.manage-menu-report-badge {
|
.manage-menu-report-badge {
|
||||||
margin-left: 6px;
|
margin-left: 6px;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user