@ -6,11 +6,22 @@
< el -col :span ="12" >
< el -card class = "box-card" >
< div slot = "header" class = "box-card-header" >
< SvgIcon style = "color: #2D8cF0;width: 24px;height: 24px;" icon -class = " notice " / >
< span style = "padding-left: 10px" > 待办事项 < / span >
< i class = "el-icon-more" style = "margin-left: auto; font-size: 20px" / >
<!-- < span style = "padding-left: 10px" > 待办事项 < / span >
< i class = "el-icon-more" style = "margin-left: auto; font-size: 20px" / > -- >
< el -tabs v-model ="activeName" >
< el -tab -pane label = "待办事项" name = "todo" >
< span slot = "label" >
< SvgIcon style = "color: #2D8cF0;width: 17px;height: 17px;" icon -class = " notice " / > 待办事项
< / span >
< / e l - t a b - p a n e >
< el -tab -pane v-if ="isShowNoPay" label="合同到期待办清单" name="todolist" >
< span slot = "label" >
< SvgIcon style = "color: #2D8cF0;width: 14px;height: 14px;" icon -class = " caidan " / > 合同到期待办清单
< / span >
< / e l - t a b - p a n e >
< / e l - t a b s >
< / div >
< div class = "table-tree1" >
< div class = "table-tree1" v-if ="activeName==='todo'" >
< el -table :data ="list" border class = "v-table" style = "width: 100%; margin-bottom: 20px;height:220px" >
< el -table -column type = "index" label = "序号" align = "center" / >
< el -table -column prop = "type" width = "100" label = "类型" align = "center" :formatter ="typeFormatter" / >
@ -45,11 +56,16 @@
< div style = "display: flex; justify-content: flex-end" >
< Page :total ="total" show -elevator @on-change ="pageChange" / >
< / div >
< / div >
< div v-if ="isShowNoPay && activeName==='todolist'" >
< xy -table :cell-style ="nopayCellStyle" :height ="270" :list ="nopay" :table-item ="nopayTable" >
< template v -slot : btns / >
< / x y - t a b l e >
< / div >
< / e l - c a r d >
< / e l - c o l >
< el -col :span ="12" >
< el -col :span ="1 1 ">
< el -card class = "box-card" >
< div slot = "header" class = "box-card-header" >
< SvgIcon style = "color: #2D8cF0;width: 24px;height: 24px;" icon -class = " calendar -check " / >
@ -99,41 +115,34 @@
< / r o u t e r - l i n k >
< / e l - c a r d >
< / e l - c o l >
< el -col :span ="24" >
< el -card class = "box-card" >
< div slot = "header" class = "box-card-header" >
< SvgIcon style = "color: #2D8cF0;width: 24px;height: 24px;" icon -class = " calendar -check " / >
< span style = "padding-left:10px;" > 合同签订统计表 < / span >
< i class = "el-icon-more" style = "margin-left: auto; font-size: 20px" / >
< / div >
< div style = "margin-top:10px" >
< xy -table
ref = "xyTable"
: height = "300"
: list = "departmentTotal"
: table - item = "departmentTotalTable"
: show - summary = "true"
: summary - method = "summary"
>
< template v -slot : btns / >
< / x y - t a b l e >
< / div >
< / e l - c a r d >
< / e l - c o l >
< el -col v-if ="isShowNoPay" :span ="24" >
< el -card class = "box-card" >
< div slot = "header" class = "box-card-header" >
< SvgIcon style = "color: #2D8cF0;width: 24px;height: 24px;" icon -class = " caidan " / >
< span style = "padding-left:10px;" > 合同到期待办清单 < / span >
< i class = "el-icon-more" style = "margin-left: auto; font-size: 20px" / >
< / div >
< div style = "margin-top:10px" >
< xy -table :cell-style ="nopayCellStyle" :height ="300" :list ="nopay" :table-item ="nopayTable" >
< template v -slot : btns / >
< / x y - t a b l e >
< el -col :span ="1" >
< div style = "display: flex;flex-direction: column;height: 310px;padding-top: 20px;" >
< div class = "show-static-btn" @click ="$refs['budgetStatic'].show()" >
统计查看
< i class = "el-icon-d-arrow-left" > < / i >
< / div >
< div class = "show-static-btn"
@ click = " $confirm ( '选择统计的数据类型' , '提示' , {
confirmButtonText : '预算类型' ,
cancelButtonText : '部门科室' ,
showClose : false ,
callback : ( action , instance ) => {
if ( action === 'cancel' ) {
$refs [ 'carryStatic' ] . setType ( 1 )
$refs [ 'carryStatic' ] . show ( )
}
if ( action === 'confirm' ) {
$refs [ 'carryStatic' ] . setType ( 2 )
$refs [ 'carryStatic' ] . show ( )
}
}
} ) " >
执行统计
< i class = "el-icon-d-arrow-left" > < / i >
< / div >
< / div >
< / e l - c ar d >
< / e l - co l >
< / e l - c o l >
< / e l - r o w >
< div v-for ="(sitem, index) in typeList" >
< template v-if ="sitem[0]&&sitem[1]" >
< el -col v-if ="sitem[0]" :span ="12" >
@ -255,9 +264,49 @@
< / e l - c o l >
< / template >
< / div >
< el -col :span ="24" >
< el -card class = "box-card" >
< div slot = "header" class = "box-card-header" >
< SvgIcon style = "color: #2D8cF0;width: 24px;height: 24px;" icon -class = " calendar -check " / >
< span style = "padding-left:10px;" > 合同签订统计表 < / span >
< i class = "el-icon-more" style = "margin-left: auto; font-size: 20px" / >
< / div >
< div style = "margin-top:10px" >
< xy -table
ref = "xyTable"
: height = "300"
: list = "departmentTotal"
: table - item = "departmentTotalTable"
: show - summary = "true"
: summary - method = "summary"
>
< template v -slot : btns / >
< / x y - t a b l e >
< / div >
< / e l - c a r d >
< / e l - c o l >
<!-- < el -col v-if ="isShowNoPay" :span ="24" >
< el -card class = "box-card" >
< div slot = "header" class = "box-card-header" >
< SvgIcon style = "color: #2D8cF0;width: 24px;height: 24px;" icon -class = " caidan " / >
< span style = "padding-left:10px;" > 合同到期待办清单 < / span >
< i class = "el-icon-more" style = "margin-left: auto; font-size: 20px" / >
< / div >
< div style = "margin-top:10px" >
< xy -table :cell-style ="nopayCellStyle" :height ="300" :list ="nopay" :table-item ="nopayTable" >
< template v -slot : btns / >
< / x y - t a b l e >
< / div >
< / e l - c a r d >
< / e l - c o l > - - >
< / e l - r o w >
< detailContract ref = "detailContract" / >
< detailContract ref = "detailContract" / >
< budgetStatic ref = "budgetStatic" > < / budgetStatic >
< carryStatic ref = "carryStatic" :departments ="statistic.departmentList" :year ="select.year" > < / carryStatic >
< / div >
< / template >
@ -266,7 +315,9 @@ import detailContract from '@/views/contract/components/detailContract'
import LxHeader from '@/components/LxHeader/index.vue'
import Pagination from '@/components/Pagination'
import SvgIcon from '@/components/SvgIcon/index.vue'
import MyProgress from '@/components/Progress/index.vue'
import MyProgress from '@/components/Progress/index.vue'
import budgetStatic from '@/views/dashboard/components/budgetStatic.vue'
import carryStatic from '@/views/dashboard/components/carryStatic.vue'
import {
adminDepartmentList
} from '@/api/system/department'
@ -281,7 +332,8 @@ import {
import {
getNotice ,
readNotice ,
statistic
statistic ,
statisticDepartment
} from '@/api/dashboard/notice'
import {
parseTime ,
@ -297,12 +349,15 @@ export default {
Pagination ,
detailContract ,
SvgIcon ,
MyProgress
MyProgress ,
budgetStatic ,
carryStatic
} ,
data ( ) {
return {
isShowNoPay : true ,
nopay : [ ] ,
nopay : [ ] ,
activeName : 'todo' ,
nopayTable : [ {
prop : 'name' ,
label : '合同名称' ,
@ -1277,6 +1332,10 @@ export default {
arr . push ( [ res . typeList [ i ] , res . typeList [ i + 1 ] ] )
}
this . typeList = arr
}
if ( res . departmentList ) {
this . statistic . departmentList = res . departmentList ? . sort ( ( a , b ) => a . plan _department . sortnumber - b . plan _department . sortnumber )
}
/ / t h i s . s p l i t = A r r a y . f r o m ( { l e n g t h : M a t h . c e i l ( t h i s . t y p e L i s t / 2 ) } , ( ) = > 0 . 5 )
} ,
@ -1427,7 +1486,35 @@ export default {
}
< / style >
< style scoped lang = "scss" >
< style scoped lang = "scss" >
. show - static - btn {
cursor : pointer ;
font - size : 15 px ;
font - weight : 600 ;
text - align : center ;
color : # fff ;
background : # 4 d8bdc ;
border - radius : 4 px ;
border : 1 px solid # EBEEF5 ;
box - shadow : 0 2 px 12 px 0 rgba ( 0 , 0 , 0 , 0.1 ) ;
transition : all .2 s ;
flex : 1 ;
width : 100 % ;
display : flex ;
flex - direction : column ;
justify - content : center ;
align - items : center ;
padding : 0 20 px ;
box - sizing : border - box ;
& + & {
background : darkorange ;
margin - top : 20 px ;
}
& : hover {
transform : scale ( 1.05 , 1.05 ) ;
}
}
: : v - deep . el - dialog _ _body {
padding : 8 px 20 px ;
}