Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
M
multiSystem
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Yulun Yao
multiSystem
Commits
59447ff5
Commit
59447ff5
authored
Mar 12, 2021
by
程卓
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dashboard开始
parent
aa05432f
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
1541 additions
and
0 deletions
+1541
-0
routes.js
src/router/routes.js
+4
-0
dashBoard.vue
src/views/dashBoard.vue
+1537
-0
No files found.
src/router/routes.js
View file @
59447ff5
...
...
@@ -27,6 +27,10 @@ const appRoutes = [
path
:
'/portal-home'
,
name
:
'home'
,
component
:
resolve
=>
require
([
'@/views/home'
],
resolve
),
//Home,
meta
:
{
title
:
'首页'
},
},
{
path
:
'/dashBoard'
,
name
:
'dashBoard'
,
component
:
resolve
=>
require
([
'@/views/dashBoard'
],
resolve
),
//Home,
meta
:
{
title
:
'首页'
},
},
{
path
:
'/person'
,
name
:
'person'
,
component
:
resolve
=>
require
([
'@/views/person-center'
],
resolve
),
//PersonCenter,
meta
:
{
title
:
'个人中心'
},
},
...
...
src/views/dashBoard.vue
0 → 100644
View file @
59447ff5
<
template
>
<div>
<div
id=
"home"
class=
"layoutPadding"
>
<a-row
type=
"flex"
class=
"align-stretch"
>
<a-col
:span=
"24"
>
<a-row
type=
"flex"
style=
"height:100%;"
>
<a-col
:span=
"6"
>
<div
class=
"home-card topBox"
style=
"margin-right:10px;"
>
<a-row>
<a-col
:span=
'7'
>
<div
class=
"justify-between topBox"
>
<div>
<p
class=
"top-font"
>
小区数
</p>
<span
class=
"top-count"
>
{{
992
}}
</span>
</div>
</div>
</a-col>
<a-col
:span=
'12'
>
<a-row
style=
"border-left: 1px solid lightgrey; padding-left: 10px; padding-bottom: 5px;"
>
<a-col
:span=
'16'
>
<span
class=
"top-font"
>
本月新增 :
</span>
</a-col>
<a-col
:span=
'8'
>
<span
class=
"top-count-extra"
style=
"cursor: pointer;"
@
click=
"handleExpired"
>
{{
2
}}
</span>
</a-col>
</a-row>
<a-row
style=
"border-left: 1px solid lightgrey; padding-left: 10px;padding-top: 10px;"
>
<a-col
:span=
'16'
>
<span
class=
"top-font"
>
本月注销 :
</span>
</a-col>
<a-col
:span=
'8'
>
<span
class=
"top-count-extra"
style=
"cursor: pointer;"
@
click=
"handleWillExpire"
>
{{
3
}}
</span>
</a-col>
</a-row>
</a-col>
<a-col
:span=
'1'
/>
<a-col
:span=
'4'
>
<div
class=
"align-center"
style=
"margin-top: 0px"
>
<img
src=
"@/assets/icon/xqs.png"
style=
"width:50px;"
alt=
""
>
</div>
</a-col>
</a-row>
<a-row
style=
"border-top:1px solid lightgrey;padding-top: 10px;"
>
<a-col
:span=
'7'
>
商品 :
{{
332
}}
</a-col>
<a-col
:span=
'7'
>
直管 :
{{
332
}}
</a-col>
<a-col
:span=
'10'
>
保障及其他 :
{{
332
}}
</a-col>
</a-row>
</div>
</a-col>
<a-col
:span=
"6"
>
<div
class=
"home-card topBox"
style=
"margin-right:10px;"
>
<a-row>
<a-col
:span=
'7'
>
<div
class=
"justify-between topBox"
>
<div>
<p
class=
"top-font"
>
门牌幢
</p>
<span
class=
"top-count"
>
{{
1000
}}
</span>
</div>
</div>
</a-col>
<a-col
:span=
'12'
>
<a-row
style=
"border-left: 1px solid lightgrey; padding-left: 10px; padding-bottom: 5px;"
>
<a-col
:span=
'16'
>
<span
class=
"top-font"
>
本月增加 :
</span>
</a-col>
<a-col
:span=
'8'
>
<span
class=
"top-count-extra"
style=
"cursor: pointer;"
@
click=
"handleExpired"
>
{{
0
}}
</span>
</a-col>
</a-row>
<a-row
style=
"border-left: 1px solid lightgrey; padding-left: 10px;padding-top: 10px;"
>
<a-col
:span=
'16'
>
<span
class=
"top-font"
>
本月注销 :
</span>
</a-col>
<a-col
:span=
'8'
>
<span
class=
"top-count-extra"
style=
"cursor: pointer;"
@
click=
"handleWillExpire"
>
{{
4
}}
</span>
</a-col>
</a-row>
</a-col>
<a-col
:span=
'1'
/>
<a-col
:span=
'4'
>
<div
class=
"align-center"
style=
"margin-top: 0px"
>
<img
src=
"@/assets/icon/mpzs.png"
style=
"width:50px;"
alt=
""
>
</div>
</a-col>
</a-row>
<a-row
style=
"border-top:1px solid lightgrey;padding-top: 10px;"
>
<a-col
:span=
'12'
>
有电梯 :
{{
332
}}
</a-col>
</a-row>
</div>
</a-col>
<a-col
:span=
"6"
>
<div
class=
"home-card topBox"
style=
"margin-right:10px;"
>
<a-row>
<a-col
:span=
'7'
>
<div
class=
"justify-between topBox"
>
<div>
<p
class=
"top-font"
>
物业企业
</p>
<span
class=
"top-count"
>
{{
333
}}
</span>
</div>
</div>
</a-col>
<a-col
:span=
'12'
/>
<a-col
:span=
'4'
>
<div
class=
"align-center"
style=
"margin-top: 0px"
>
<img
src=
"@/assets/icon/wyqys.png"
style=
"width:50px;"
alt=
""
>
</div>
</a-col>
</a-row>
<a-row
style=
"border-top:1px solid lightgrey;padding-top: 10px;"
>
<a-col
:span=
'12'
>
区属物业 :
{{
332
}}
</a-col>
<a-col
:span=
'12'
>
本市注册 :
{{
332
}}
</a-col>
</a-row>
</div>
</a-col>
<a-col
:span=
"6"
>
<div
class=
"home-card topBox"
style=
"margin-right:10px;"
>
<a-row>
<a-col
:span=
'7'
>
<div
class=
"justify-between topBox"
>
<div>
<p
class=
"top-font"
>
物业企业
</p>
<span
class=
"top-count"
>
{{
21
}}
</span>
</div>
</div>
</a-col>
<a-col
:span=
'12'
/>
<a-col
:span=
'4'
>
<div
class=
"align-center"
style=
"margin-top: 0px"
>
<img
src=
"@/assets/icon/ywhs.png"
style=
"width:50px;"
alt=
""
>
</div>
</a-col>
</a-row>
<a-row
style=
"border-top:1px solid lightgrey;padding-top: 10px;"
>
<a-col
:span=
'12'
>
区属物业 :
{{
332
}}
</a-col>
<a-col
:span=
'12'
>
本市注册 :
{{
332
}}
</a-col>
</a-row>
</div>
</a-col>
</a-row>
</a-col>
</a-row>
<a-row
class=
"align-stretch"
style=
"margin-top:20px;"
>
<a-col
:span=
"8"
>
<div
class=
"month"
>
<div
class=
"home-card monthTitle"
>
<span>
房办月查
</span>
<span>
</span>
</div>
<div
class=
"home-card monthBox"
>
<span
style=
"font-weight:600;"
>
全年情况
</span>
<a-row>
<a-col
:span=
"4"
class=
"hoverTest"
v-for=
"item in mounth"
:key=
"item.name"
>
<div
v-if=
"item.check"
@
click=
"checkMonth(item)"
:class=
"'monthImg green '+item.class"
:style=
"'background:url('+ok+') no-repeat center center /cover; '"
>
{{
item
.
name
}}
<div
class=
"monthHover"
@
click=
"hoverMonth(item)"
>
<div>
<span>
明细
</span>
</div>
</div>
</div>
<div
v-else
@
click=
"checkMonth(item)"
:class=
"'monthImg blue '+item.class"
:style=
"'background:url('+nm+') no-repeat center center /cover; '"
>
{{
item
.
name
}}
<div
class=
"monthHover"
@
click=
"hoverMonth(item)"
>
<div>
<span>
明细
</span>
</div>
</div>
</div>
</a-col>
</a-row>
</div>
</div>
</a-col>
<a-col
:span=
"13"
class=
"zxjc"
>
<div
class=
"jiancha"
>
<div
class=
"home-card jianchaTitle"
>
<span>
专项检查
</span>
<img
src=
"@/assets/icon/tp.png"
style=
"height:20px;"
alt=
""
>
</div>
<div
style=
"height: calc(100% - 55px);"
>
<a-row
class=
"jianchaBox"
>
<a-col
:span=
"12"
class=
"home-card jianchaTheme"
>
<!--
<div
class=
"justify-between"
style=
"align-items:baseline;"
>
<span
style=
"font-weight:600;"
>
已查/应查
</span>
<span
style=
"font-size:20px;font-weight:600;"
><span
style=
"color:#0477FF;"
>
68
</span>
/124
</span>
</div>
<a-progress
:percent=
"68/124*100"
size=
"small"
:showInfo=
"false"
:strokeWidth=
"10"
strokeColor=
"#11C3C4"
/>
-->
<a-row>
<a-col
:span=
"16"
:offset=
"2"
>
<span
style=
"font-weight:600;"
><img
src=
"@/assets/icon/yyzt.png"
alt=
""
style=
"width:20px;margin-right:3px;"
>
已有主题
</span>
</a-col>
<a-col
:span=
"6"
>
<!--
<span
class=
"jianchaThemeNum"
>
{{
theme
}}
</span>
-->
<span
class=
"jianchaThemeNum"
>
0
</span>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"16"
:offset=
"2"
>
<span
style=
"font-weight:600;"
><img
src=
"@/assets/icon/ywcjcxq.png"
alt=
""
style=
"width:20px;margin-right:3px;"
>
已完成检查小区
</span>
</a-col>
<a-col
:span=
"6"
>
<!--
<span
class=
"jianchaThemeNum"
>
{{
sect
}}
</span>
-->
<span
class=
"jianchaThemeNum"
>
0
</span>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"16"
:offset=
"2"
>
<span
style=
"font-weight:600;"
><img
src=
"@/assets/icon/zt.png"
alt=
""
style=
"width:20px;margin-right:3px;"
>
已开整改单
</span>
</a-col>
<a-col
:span=
"6"
>
<!--
<span
class=
"jianchaThemeNum"
>
{{
receipts
}}
</span>
-->
<span
class=
"jianchaThemeNum"
>
0
</span>
</a-col>
</a-row>
</a-col>
<a-col
:span=
"12"
class=
"home-card jianchaBoxRight"
>
<div>
<span
class=
"jianchaPeopleTitle"
>
当前检察人员
</span>
</div>
<a-row
style=
"height:calc(100% - 34px)"
>
<a-col
:span=
"12"
v-for=
"(item,i) in people"
:key=
"i"
style=
"font-size:14px;height: 25%;"
>
<img
src=
"@/assets/icon/peoplebj.png"
style=
"height:16px;margin-right: 5px; margin-top: -3px;"
/>
{{
item
.
TE_NAME
}}
</a-col>
<a-col
v-if=
"people.length == 7"
:span=
"12"
style=
"font-size:14px;height: 25%;"
>
<img
src=
"@/assets/icon/ddd.png"
style=
"height:16px;margin-right: 5px; margin-top: -3px;"
/>
</a-col>
</a-row>
</a-col>
<!--
<a-col
:span=
"8"
class=
"home-card justify-between"
style=
"padding:0px 10px;height:100%;flex-direction:column;"
>
<div>
<span
style=
"height:30px;display:inline-block;vertical-align: sub;font-weight:600;"
>
已完成整改/已开整改单
</span>
</div>
<div>
<div
class=
"justify-between"
style=
"align-items:baseline;font-weight:600;font-size:20px;"
>
<span
style=
"color:#0477FF;"
>
25%
</span>
<span><span
style=
"color:#0477FF;"
>
4
</span>
/16
</span>
</div>
<a-progress
:percent=
"68/124*100"
size=
"small"
:showInfo=
"false"
:strokeWidth=
"10"
strokeColor=
"#11C3C4"
/>
</div>
<div>
<div
class=
"justify-between"
style=
"align-items:baseline;"
>
<span
style=
"font-weight:600;"
>
整改率
</span>
<span
style=
"font-size:20px;font-weight:600;color:#0477FF;"
>
16%
</span>
</div>
<a-progress
:percent=
"68/124*100"
size=
"small"
:showInfo=
"false"
:strokeWidth=
"10"
strokeColor=
"#11C3C4"
/>
</div>
</a-col>
-->
</a-row>
</div>
</div>
</a-col>
<a-col
:span=
"3"
>
<div
style=
"height:100%;margin-left:10px;"
>
<a-row>
<div
class=
"home-card middle-right"
style=
"margin-bottom: 20px"
@
click=
"toFangXunFangTai"
>
<img
src=
"@/assets/icon/fxft.png"
style=
"width:40px;"
alt=
""
>
<p>
灾情上报
</p>
</div>
</a-row>
<a-row>
<div
class=
"home-card middle-right"
@
click=
"$router.push(
{path: '/houseData/basicInfo'})">
<img
src=
"@/assets/icon/xqda.png"
style=
"width:40px;"
alt=
""
>
<p>
小区档案
</p>
</div>
</a-row>
<a-row>
<div
class=
"home-card middle-right"
@
click=
"$router.push(
{path: '/houseData/propertyInfo'})" style="margin-top:20px;">
<img
src=
"@/assets/icon/wyqyda.png"
style=
"width:40px;"
alt=
""
>
<p>
物业企业档案
</p>
</div>
</a-row>
</div>
</a-col>
</a-row>
<a-row
class=
"align-stretch"
style=
"margin-top:20px;"
>
<a-col
:span=
"8"
>
<div
class=
"fengxian"
>
<div
class=
"home-card fengxianTitle"
>
<span>
物业风险发现/处置
</span>
<img
src=
"@/assets/icon/qs.png"
@
click=
"openOutUrl1"
style=
"height:20px;"
alt=
""
>
</div>
<div
class=
"home-card fengxianBox"
>
<a-row>
<a-col
class=
"justify-between"
>
<span
style=
"font-size:16px;font-weight:600;"
>
风险场景
</span>
<!--
<img
src=
"@/assets/icon/ddd.png"
style=
"height:16px;"
alt=
""
>
-->
</a-col>
</a-row>
<a-row
class=
"align-stretch"
style=
"padding:10px 0px;"
>
<a-col
:span=
"7"
>
<!-- 特殊处理百分比过大显示就像100% -->
<a-progress
type=
"circle"
:percent=
"(disposal.alreadyDone/disposal.thisYearTotal*100)>89 && (disposal.alreadyDone/disposal.thisYearTotal*100)
<100
?
80:
(
disposal
.
alreadyDone
/
disposal
.
thisYearTotal
*
100
)"
size=
"small"
:showInfo=
"false"
:strokeWidth=
"15"
strokeColor=
"#46B3FF"
:width=
"60"
/>
</a-col>
<a-col
:span=
"16"
>
<div
class=
"fengxianDisposalNum"
>
<span>
已处置数/发现数
</span>
<span
style=
"color:#000;font-size:20px;font-weight:700;"
><span
style=
"color:#1890ff;"
>
{{
disposal
.
alreadyDone
}}
</span>
/
{{
disposal
.
thisYearTotal
}}
</span>
</div>
</a-col>
</a-row>
<a-row>
<a-col
:span=
"8"
>
<div
style=
"height:100%"
>
<span>
物业处置
</span>
<span
class=
"disposalDetailNum"
>
{{
disposal
.
wyDone
}}
</span>
</div>
</a-col>
<a-col
:span=
"8"
>
<div
style=
"height:100%"
>
<span>
居委处置
</span>
<span
class=
"disposalDetailNum"
>
{{
disposal
.
jwDone
}}
</span>
</div>
</a-col>
<a-col
:span=
"8"
>
<div
style=
"height:100%"
>
<span>
网格处置
</span>
<span
class=
"disposalDetailNum"
>
{{
disposal
.
wgDone
}}
</span>
</div>
</a-col>
</a-row>
<!--
<div
class=
"gayLine"
style=
"margin:10px 0px"
></div>
<a-row>
<a-col
style=
"display:flex;justify-content:space-between;"
>
<span
style=
"font-weight:600;"
>
其他委办局转派物业处置
</span>
<img
src=
"@/assets/icon/ddd.png"
style=
"height:16px;"
alt=
""
>
</a-col>
</a-row>
<a-row
style=
"padding:10px 0px;display:flex;align-items:stretch;"
>
<a-col
:span=
"7"
>
<a-progress
type=
"circle"
:percent=
"12/58*100"
size=
"small"
:showInfo=
"false"
:strokeWidth=
"15"
strokeColor=
"#46B3FF"
:width=
"60"
/>
</a-col>
<a-col
:span=
"16"
>
<div
style=
"display:flex;flex-direction:column;justify-content:space-around;height:100%"
>
<span>
已处置数/转派总数
</span>
<span
style=
"color:#000;font-size:20px;font-weight:700;"
><span
style=
"color:#1890ff;"
>
12
</span>
/58
</span>
</div>
</a-col>
</a-row>
-->
</div>
</div>
</a-col>
<a-col
:span=
"8"
>
<div
class=
"baoxiu"
>
<div
class=
"home-card baoxiuTitle"
>
<span>
应急报修
</span>
</div>
<div
class=
"baoxiuBox"
>
<div
class=
"repair-top"
>
<div
class=
"baoxiuSecondTitle"
>
<p>
转派区应急维修中心
</p>
<img
src=
"@/assets/icon/ddd.png"
alt=
""
@
click=
"toRepair('1', '2')"
>
</div>
<div
class=
"baoxiuMiddleBox"
>
<div>
<a-progress
type=
"circle"
:percent=
"repair.yjwhcomplete/repair.yjwhtotal*100"
size=
"small"
:showInfo=
"false"
:strokeWidth=
"15"
strokeColor=
"#46B3FF"
:width=
"40"
/>
</div>
<div>
<span
style=
"color:#555;"
>
已完成数/已转派总数
</span>
<span
style=
"color:#000;font-size:1.3rem;font-weight:700;"
><span
style=
"color:#1890ff;"
>
{{
repair
.
yjwhcomplete
}}
</span>
/
{{
repair
.
yjwhtotal
}}
</span>
</div>
</div>
<div
class=
"baoxiuBottomBox"
>
<div>
<div
class=
"baoxiuBottomBoxTitle"
><span
style=
"color:#555;"
>
及时接单率
</span><span
style=
"color:#10C3C4;"
>
{{
repair
.
yjwhreceiveratio
}}
%
</span></div>
<a-progress
:percent=
"repair.yjwhreceiveratio"
:showInfo=
"false"
strokeColor=
"#96DDDE"
:strokeWidth=
"7"
/>
</div>
<div>
<div
class=
"baoxiuBottomBoxTitle"
><span
style=
"color:#555;"
>
及时处置率
</span><span
style=
"color:#10C3C4;"
>
{{
repair
.
yjwhhandleratio
}}
%
</span></div>
<a-progress
:percent=
"repair.yjwhhandleratio"
:showInfo=
"false"
strokeColor=
"#96DDDE"
:strokeWidth=
"7"
/>
</div>
</div>
</div>
<div
class=
"repair-btm"
>
<div
class=
"baoxiuSecondTitle"
>
<p>
转派物业企业报修
</p>
<img
src=
"@/assets/icon/ddd.png"
alt=
""
@
click=
"toRepair('2', '1')"
>
</div>
<div
class=
"baoxiuMiddleBox"
>
<div>
<a-progress
type=
"circle"
:percent=
"repair.wybxcomplete/repair.wybxtotal*100"
size=
"small"
:showInfo=
"false"
:strokeWidth=
"15"
strokeColor=
"#46B3FF"
:width=
"40"
/>
</div>
<div>
<span
style=
"color:#555;"
>
已完成数/已转派总数
</span>
<span
style=
"color:#000;font-size:1.3rem;font-weight:700;"
><span
style=
"color:#1890ff;"
>
{{
repair
.
wybxcomplete
}}
</span>
/
{{
repair
.
wybxtotal
}}
</span>
</div>
</div>
<div
class=
"baoxiuBottomBox"
>
<div>
<div
class=
"baoxiuBottomBoxTitle"
><span
style=
"color:#555;"
>
及时接单率
</span><span
style=
"color:#10C3C4;"
>
{{
repair
.
wybxreceiveratio
}}
%
</span></div>
<a-progress
:percent=
"repair.wybxreceiveratio"
:showInfo=
"false"
strokeColor=
"#96DDDE"
:strokeWidth=
"7"
/>
</div>
<div>
<div
class=
"baoxiuBottomBoxTitle"
><span
style=
"color:#555;"
>
及时处置率
</span><span
style=
"color:#10C3C4;"
>
{{
repair
.
wybxhandleratio
}}
%
</span></div>
<a-progress
:percent=
"repair.wybxhandleratio"
:showInfo=
"false"
strokeColor=
"#96DDDE"
:strokeWidth=
"7"
/>
</div>
</div>
</div>
</div>
</div>
</a-col>
<a-col
:span=
"8"
>
<div
class=
"tousu"
>
<img
class=
"tousuIMG"
src=
"@/assets/icon/sz.png"
alt=
""
@
click=
"toTousu"
>
<a-tabs
class=
"tousuQuestion"
default-active-key=
"1"
:activeKey=
"activeKey"
@
change=
"(key) => changeTabKey(key, 1)"
style=
"height: 100%;"
>
<a-tab-pane
key=
"1"
tab=
"投诉问题"
>
<a-tabs
default-active-key=
"1"
:activeKey=
"activeKey2"
@
change=
"(key) => changeTabKey(key, 2)"
size=
"small"
>
<a-tab-pane
key=
"1"
tab=
"月排行"
>
<template
v-if=
"tousuQuestionList.M&&tousuQuestionList.M.length>0"
>
<a-row
class=
"tousuTabTitle"
>
<a-col
:span=
"18"
>
问题
</a-col>
<a-col
:span=
"4"
:offset=
"2"
>
<span>
数量
</span>
</a-col>
</a-row>
<a-row
class=
"tousuContentRow"
v-for=
"(item,i) in tousuQuestionList.M"
:key=
"i"
>
<a-col
class=
"tousuRankNum"
:span=
"2"
>
<div
class=
"row-number"
:style=
"'background:'+(i>2?'#E5E6E7':'#000')+';line-height: 18px;color:'+(i>2?'#000':'#fff')"
>
{{
i
+
1
}}
</div>
</a-col>
<a-col
:span=
"16"
>
<div
class=
"tousuContent"
>
<a-tooltip>
<template
slot=
"title"
>
{{
item
.
name
}}
</
template
>
{{item.name}}
</a-tooltip>
</div>
</a-col>
<a-col
:span=
"4"
:offset=
"2"
>
<span
style=
"font-weight:600;"
>
{{item.num}}
</span></a-col>
</a-row>
</template>
<
template
v-else
>
<div
style=
"height: 100%;display:flex;align-items:center;justify-content:center;"
>
<div
style=
"font-size:30px;font-weight:900;color:#ccc;"
>
暂无数据
</div>
</div>
</
template
>
</a-tab-pane>
<a-tab-pane
key=
"2"
tab=
"年度排行"
>
<
template
v-if=
"tousuQuestionList.Y&&tousuQuestionList.Y.length>0"
>
<a-row
class=
"tousuTabTitle"
>
<a-col
:span=
"18"
>
问题
</a-col>
<a-col
:span=
"4"
:offset=
"2"
><span>
数量
</span></a-col>
</a-row>
<a-row
v-for=
"(item,i) in tousuQuestionList.Y"
:key=
"i"
class=
"tousuContentRow"
>
<a-col
:span=
"2"
class=
"tousuRankNum"
>
<div
class=
"row-number"
:style=
"'background:'+(i>2?'#E5E6E7':'#000')+';line-height: 18px;color:'+(i>2?'#000':'#fff')"
>
{{
i
+
1
}}
</div>
</a-col>
<a-col
:span=
"16"
>
<div
class=
"tousuContent"
>
<a-tooltip>
<template
slot=
"title"
>
{{
item
.
name
}}
</
template
>
{{item.name}}
</a-tooltip>
</div>
</a-col>
<a-col
:span=
"4"
:offset=
"2"
>
<span
style=
"font-weight:600;"
>
{{item.num}}
</span></a-col>
</a-row>
</template>
<
template
v-else
>
<div
style=
"height: 100%;display:flex;align-items:center;justify-content:center;"
>
<div
style=
"font-size:30px;font-weight:900;color:#ccc;"
>
暂无数据
</div>
</div>
</
template
>
</a-tab-pane>
<a-tab-pane
key=
"3"
tab=
"总排行"
>
<
template
v-if=
"tousuQuestionList.S&&tousuQuestionList.S.length>0"
>
<a-row
class=
"tousuTabTitle"
>
<a-col
:span=
"18"
>
问题
</a-col>
<a-col
:span=
"4"
:offset=
"2"
><span>
数量
</span></a-col>
</a-row>
<a-row
v-for=
"(item,i) in tousuQuestionList.S"
:key=
"i"
class=
"tousuContentRow"
>
<a-col
:span=
"2"
class=
"tousuRankNum"
>
<div
class=
"row-number"
:style=
"'background:'+(i>2?'#E5E6E7':'#000')+';line-height: 18px;color:'+(i>2?'#000':'#fff')"
>
{{
i
+
1
}}
</div>
</a-col>
<a-col
:span=
"16"
>
<div
class=
"tousuContent"
>
<a-tooltip>
<template
slot=
"title"
>
{{
item
.
name
}}
</
template
>
{{item.name}}
</a-tooltip>
</div>
</a-col>
<a-col
:span=
"4"
:offset=
"2"
>
<span
style=
"font-weight:600;"
>
{{item.num}}
</span></a-col>
</a-row>
</template>
<
template
v-else
>
<div
style=
"height: 100%;display:flex;align-items:center;justify-content:center;"
>
<div
style=
"font-size:30px;font-weight:900;color:#ccc;"
>
暂无数据
</div>
</div>
</
template
>
</a-tab-pane>
</a-tabs>
</a-tab-pane>
<a-tab-pane
key=
"2"
tab=
"投诉密度"
>
<a-tabs
default-active-key=
"1"
:activeKey=
"activeKey2"
@
change=
"(key) => changeTabKey(key, 2)"
size=
"small"
>
<a-tab-pane
key=
"1"
tab=
"月排行"
>
<
template
v-if=
"tousuDensityList.M&&tousuDensityList.M.length>0"
>
<a-row
class=
"tousuTabTitle"
>
<a-col
:span=
"15"
>
街道
</a-col>
<a-col
:span=
"7"
:offset=
"2"
><span>
数量
</span></a-col>
</a-row>
<a-row
v-for=
"(item,i) in tousuDensityList.M"
:key=
"i"
class=
"tousuContentRow"
>
<a-col
:span=
"2"
class=
"tousuRankNum"
>
<div
class=
"row-number"
:style=
"'background:'+(i>2?'#E5E6E7':'#000')+';line-height: 18px;color:'+(i>2?'#000':'#fff')"
>
{{
i
+
1
}}
</div>
</a-col>
<a-col
:span=
"13"
>
<div
class=
"tousuContent"
>
<a-tooltip>
<template
slot=
"title"
>
{{
item
.
name
}}
</
template
>
{{item.name}}
</a-tooltip>
</div>
</a-col>
<a-col
:span=
"7"
:offset=
"2"
>
<span
style=
"font-weight:600;"
>
{{Math.round(item.num)}}
</span>
<span>
件/小区
</span>
</a-col>
</a-row>
</template>
<
template
v-else
>
<div
style=
"height: 100%;display:flex;align-items:center;justify-content:center;"
>
<div
style=
"font-size:30px;font-weight:900;color:#ccc;"
>
暂无数据
</div>
</div>
</
template
>
</a-tab-pane>
<a-tab-pane
key=
"2"
tab=
"年度排行"
>
<
template
v-if=
"tousuDensityList.Y&&tousuDensityList.Y.length>0"
>
<a-row
class=
"tousuTabTitle"
>
<a-col
:span=
"15"
>
街道
</a-col>
<a-col
:span=
"7"
:offset=
"2"
><span>
数量
</span></a-col>
</a-row>
<a-row
v-for=
"(item,i) in tousuDensityList.Y"
:key=
"i"
class=
"tousuContentRow"
>
<a-col
:span=
"2"
class=
"tousuRankNum"
>
<div
class=
"row-number"
:style=
"'background:'+(i>2?'#E5E6E7':'#000')+';line-height: 18px;color:'+(i>2?'#000':'#fff')"
>
{{
i
+
1
}}
</div>
</a-col>
<a-col
:span=
"13"
>
<div
class=
"tousuContent"
>
<a-tooltip>
<template
slot=
"title"
>
{{
item
.
name
}}
</
template
>
{{item.name}}
</a-tooltip>
</div>
</a-col>
<a-col
:span=
"7"
:offset=
"2"
>
<span
style=
"font-weight:600;"
>
{{Math.round(item.num)}}
</span>
<span>
件/小区
</span>
</a-col>
</a-row>
</template>
<
template
v-else
>
<div
style=
"height: 100%;display:flex;align-items:center;justify-content:center;"
>
<div
style=
"font-size:30px;font-weight:900;color:#ccc;"
>
暂无数据
</div>
</div>
</
template
>
</a-tab-pane>
<a-tab-pane
key=
"3"
tab=
"总排行"
>
<
template
v-if=
"tousuDensityList.S&&tousuDensityList.S.length>0"
>
<a-row
class=
"tousuTabTitle"
>
<a-col
:span=
"15"
>
街道
</a-col>
<a-col
:span=
"7"
:offset=
"2"
><span>
数量
</span></a-col>
</a-row>
<a-row
v-for=
"(item,i) in tousuDensityList.S"
:key=
"i"
class=
"tousuContentRow"
>
<a-col
:span=
"2"
class=
"tousuRankNum"
>
<div
class=
"row-number"
:style=
"'background:'+(i>2?'#E5E6E7':'#000')+';line-height: 18px;color:'+(i>2?'#000':'#fff')"
>
{{
i
+
1
}}
</div>
</a-col>
<a-col
:span=
"13"
>
<div
class=
"tousuContent"
>
<a-tooltip>
<template
slot=
"title"
>
{{
item
.
name
}}
</
template
>
{{item.name}}
</a-tooltip>
</div>
</a-col>
<a-col
:span=
"7"
:offset=
"2"
>
<span
style=
"font-weight:600;"
>
{{Math.round(item.num)}}
</span>
<span>
件/小区
</span>
</a-col>
</a-row>
</template>
<
template
v-else
>
<div
style=
"height: 100%;display:flex;align-items:center;justify-content:center;"
>
<div
style=
"font-size:30px;font-weight:900;color:#ccc;"
>
暂无数据
</div>
</div>
</
template
>
</a-tab-pane>
</a-tabs>
</a-tab-pane>
</a-tabs>
</div>
</a-col>
</a-row>
</div>
</div>
</template>
<
script
>
import
ok
from
'@/assets/icon/ok.png'
import
nm
from
'@/assets/icon/nm.png'
import
qs
from
'qs'
import
axios
from
'axios'
// import ComplaintsTrain from '@/views/home/ComplaintsTrain'
// import EmergencyRepair from '@/views/home/EmergencyRepair'
// import IndustrySupervision from '@/views/home/IndustrySupervision'
// import ManagementModule from '@/views/home/ManagementModule'
// import RetrofitElevator from '@/views/home/RetrofitElevator'
// import RiskDisposal from '@/views/home/RiskDisposal'
// import FileModule from '@/views/home/FileModule'
export
default
{
name
:
'HomePage'
,
components
:
{
// ComplaintsTrain,
// EmergencyRepair,
// IndustrySupervision,
// ManagementModule,
// RetrofitElevator,
// RiskDisposal,
// FileModule,
},
data
()
{
return
{
ok
,
nm
,
date
:
new
Date
(),
titleData
:
{},
openConfig
:
false
,
disposal
:
{},
nowMonth
:
'本月'
,
checkStreet
:
0
,
totStreet
:
0
,
mounth
:
[
{
name
:
'1月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
},
{
name
:
'2月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
},
{
name
:
'3月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
},
{
name
:
'4月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
},
{
name
:
'5月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
},
{
name
:
'6月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
},
{
name
:
'7月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
},
{
name
:
'8月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
},
{
name
:
'9月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
},
{
name
:
'10月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
},
{
name
:
'11月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
},
{
name
:
'12月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
},
],
expired
:
0
,
expireInFiveMonth
:
0
,
theme
:
0
,
sect
:
0
,
receipts
:
0
,
people
:
[],
tousuQuestionList
:
{
M
:
[],
Y
:
[],
S
:
[],
},
tousuDensityList
:
{
M
:
[],
Y
:
[],
S
:
[],
},
repair
:
{
yjwhtotal
:
0
,
//应急维护总数
yjwhcomplete
:
0
,
//应急维护已完成数
yjwhreceiveratio
:
0
,
//应急维护接单率
yjwhhandleratio
:
0
,
//应急维护处置率
wybxtotal
:
0
,
//物业保修总数
wybxcomplete
:
0
,
//物业报修已完成率
wybxreceiveratio
:
0
,
//物业保修接单率
wybxhandleratio
:
0
,
//物业报修处置率
},
activeKey
:
'1'
,
activeKey2
:
'1'
,
}
},
created
(){},
mounted
(){
this
.
getConfig
()
this
.
getList
()
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_USER_INFO
,
}).
then
(
res
=>
{
if
(
res
.
code
==
200
)
{
if
(
!!
res
.
data
.
content
.
isAllPerm
)
{
this
.
getDisposal
()
this
.
getHouthMonth
()
this
.
getCheckData
()
this
.
getCheckPeople
()
this
.
getSectNum
()
this
.
getReceiptsNum
()
this
.
getRepair
()
this
.
getTousuQuestion
(
'M'
)
this
.
getTousuQuestion
(
'Y'
)
this
.
getTousuQuestion
(
'S'
)
this
.
getTousuDensity
(
'M'
)
this
.
getTousuDensity
(
'Y'
)
this
.
getTousuDensity
(
'S'
)
}
}
})
// })
// if (this.$store.state.userinfos && this.$store.state.userinfos.isAllPerm) { // 不是全部权限dashboard下方的模块不展示
// this.getDisposal()
// this.getHouthMonth()
// this.getCheckData()
// this.getCheckPeople()
// this.getSectNum()
// this.getReceiptsNum()
// this.getRepair()
// this.getTousuQuestion('M')
// this.getTousuQuestion('Y')
// this.getTousuQuestion('S')
// this.getTousuDensity('M')
// this.getTousuDensity('Y')
// this.getTousuDensity('S')
// }
},
methods
:
{
/**
* 点击月份
*/
checkMonth
(
item
){
this
.
nowMonth
=
item
.
name
this
.
checkStreet
=
item
.
checkStreet
for
(
let
i
=
0
;
i
<
this
.
mounth
.
length
;
i
++
){
if
(
this
.
mounth
[
i
].
name
==
item
.
name
){
this
.
mounth
[
i
].
class
=
'hadCheckMonth'
}
else
{
this
.
mounth
[
i
].
class
=
''
}
}
},
hoverMonth
(
item
){
let
time
=
new
Date
().
getFullYear
()
// console.log(time+'-'+parseInt(item.name))
this
.
$router
.
push
({
name
:
'month'
,
query
:
{
month
:
time
+
'-'
+
parseInt
(
item
.
name
)
}
})
},
/**
* 获取dashboard数据
*/
getList
(){
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_RESOURE_LIST
,
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
this
.
titleData
=
this
.
$com
.
confirm
(
res
,
'data.content'
,
[])
}
})
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_ALREADY_OR_EXPIRE
,
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
let
inner
=
res
.
data
.
content
this
.
expired
=
inner
.
alreadyExpireCount
this
.
expireInFiveMonth
=
inner
.
willExpireCount
}
})
},
/**
* 获取房办月查统计
*/
getHouthMonth
(){
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_HOUSE_MONTH
,
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
let
cont
=
this
.
$com
.
confirm
(
res
,
'data.content'
,
[])
this
.
totStreet
=
cont
[
0
].
totStreet
for
(
let
i
=
0
;
i
<
cont
.
length
;
i
++
){
if
(
cont
[
i
]
&&
cont
[
i
].
month
&&
cont
[
i
].
month
>
0
){
this
.
mounth
[
cont
[
i
].
month
-
1
].
check
=
true
this
.
mounth
[
cont
[
i
].
month
-
1
].
checkStreet
=
cont
[
i
].
checkStreet
this
.
mounth
[
cont
[
i
].
month
-
1
].
totStreet
=
cont
[
i
].
totStreet
}
}
let
num
=
Number
(
this
.
$moment
(
this
.
date
).
format
(
'MM'
))
this
.
mounth
[
num
-
1
].
class
=
'hadCheckMonth'
this
.
nowMonth
=
this
.
mounth
[
num
-
1
].
name
this
.
checkStreet
=
this
.
mounth
[
num
-
1
].
checkStreet
}
})
},
/**
* 获取以及报修统计
*/
getRepair
(){
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_REPAIR_STATISTICS
,
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
this
.
repair
=
this
.
$com
.
confirm
(
res
,
'data.content'
,
[])
}
else
{
this
.
$message
.
error
(
res
.
msg
,
10
)
}
})
},
/**
* 获取专项检查数据
*/
getCheckData
(){
const
Axios
=
axios
.
create
({
baseURL
:
this
.
$api
.
BASE_URL
,
timeout
:
15000
,
})
let
config
=
{
method
:
'post'
,
url
:
this
.
$api
.
GET_CHWECK_DATA
,
headers
:
{
'X-Requested-With'
:
'XMLHttpRequest'
,
'Content-Type'
:
'application/x-www-form-urlencoded;charset=UTF-8'
,
},
}
let
params
=
{
pageNo
:
1
,
pageSize
:
10000
,
flag
:
'0'
,
someday
:
this
.
$moment
(
this
.
date
).
format
(
'YYYY'
)
+
this
.
$moment
(
this
.
date
).
format
(
'MM'
)
+
this
.
$moment
(
this
.
date
).
format
(
'DD'
),
hpb_id
:
'310104000000'
}
config
=
Object
.
assign
(
config
,
{
data
:
qs
.
stringify
(
params
)
})
Axios
(
config
)
.
then
(
res
=>
{
if
(
res
.
data
.
code
===
'200'
)
{
let
data
=
this
.
$com
.
confirm
(
res
,
'data.data.content'
,
[])
this
.
theme
=
0
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
){
if
(
data
[
i
].
THEMETYPE
==
'专项'
){
this
.
theme
+=
1
}
}
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
err
.
data
.
msg
)
})
},
/**
* 获取检查人员数据
*/
getCheckPeople
(){
let
date
=
new
Date
()
let
startDate
=
this
.
$moment
(
date
).
format
(
'YYYY-MM-DD'
)
+
' 00:00:00'
let
endDate
=
this
.
$moment
(
date
).
format
(
'YYYY-MM-DD'
)
+
' 24:00:00'
const
Axios
=
axios
.
create
({
baseURL
:
this
.
$api
.
BASE_URL
,
timeout
:
15000
,
})
let
config
=
{
method
:
'post'
,
url
:
'http://962121.fgj.sh.gov.cn/wyweb/shanghaiwuye/propertyinspector/api/v1/sharingplatform/getInspectors'
,
headers
:
{
'X-Requested-With'
:
'XMLHttpRequest'
,
'Content-Type'
:
'application/x-www-form-urlencoded;charset=UTF-8'
,
},
}
let
params
=
{
pageNo
:
1
,
pageSize
:
10000
,
startDate
:
startDate
,
endDate
:
endDate
,
hpb_id
:
'310104000000'
}
config
=
Object
.
assign
(
config
,
{
data
:
qs
.
stringify
(
params
)
})
Axios
(
config
)
.
then
(
res
=>
{
if
(
res
.
data
.
code
===
'200'
)
{
let
data
=
this
.
$com
.
confirm
(
res
,
'data.data.content'
,
[])
if
(
data
.
lenght
>
8
){
this
.
people
=
data
.
slice
(
0
,
7
)
}
else
{
this
.
people
=
data
}
}
}).
catch
(
err
=>
{
this
.
$message
.
error
(
err
.
data
.
msg
)
})
},
/**
* 获取已完成检查小区
*/
getSectNum
(){
const
Axios
=
axios
.
create
({
baseURL
:
this
.
$api
.
BASE_URL
,
timeout
:
15000
,
})
let
config
=
{
method
:
'post'
,
url
:
'http://962121.fgj.sh.gov.cn/wyweb/shanghaiwuye/propertyinspector/api/v1/sharingplatform/sectListForOneDay'
,
headers
:
{
'X-Requested-With'
:
'XMLHttpRequest'
,
'Content-Type'
:
'application/x-www-form-urlencoded;charset=UTF-8'
,
},
}
let
params
=
{
pageNo
:
1
,
pageSize
:
10000
,
someday
:
this
.
$moment
(
this
.
date
).
format
(
'YYYY'
)
+
this
.
$moment
(
this
.
date
).
format
(
'MM'
)
+
this
.
$moment
(
this
.
date
).
format
(
'DD'
),
hpb_id
:
'310104000000'
}
config
=
Object
.
assign
(
config
,
{
data
:
qs
.
stringify
(
params
)
})
Axios
(
config
)
.
then
(
res
=>
{
this
.
sect
=
res
.
data
.
data
.
totalRows
}).
catch
(
err
=>
{
this
.
$message
.
error
(
err
.
data
.
msg
)
})
},
/**
* 获取已开整改单
*/
getReceiptsNum
(){
const
Axios
=
axios
.
create
({
baseURL
:
this
.
$api
.
BASE_URL
,
timeout
:
15000
,
})
let
config
=
{
method
:
'post'
,
url
:
'http://962121.fgj.sh.gov.cn/wyweb/shanghaiwuye/propertyinspector/api/v1/sharingplatform/sectListForOneDay'
,
headers
:
{
'X-Requested-With'
:
'XMLHttpRequest'
,
'Content-Type'
:
'application/x-www-form-urlencoded;charset=UTF-8'
,
},
}
let
params
=
{
pageNo
:
1
,
pageSize
:
10000
,
isPublish
:
'1'
,
someday
:
this
.
$moment
(
this
.
date
).
format
(
'YYYY'
)
+
this
.
$moment
(
this
.
date
).
format
(
'MM'
)
+
this
.
$moment
(
this
.
date
).
format
(
'DD'
),
hpb_id
:
'310104000000'
}
config
=
Object
.
assign
(
config
,
{
data
:
qs
.
stringify
(
params
)
})
Axios
(
config
)
.
then
(
res
=>
{
this
.
receipts
=
res
.
data
.
data
.
totalRows
}).
catch
(
err
=>
{
this
.
$message
.
error
(
err
.
data
.
msg
)
})
},
/**
* 获取处置单统计
*/
getDisposal
(){
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_HOME_DISPOSAL
,
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
this
.
disposal
=
this
.
$com
.
confirm
(
res
,
'data.content'
,
[])
}
})
},
/**
* 判断是否开启自定义字段
*/
getConfig
(){
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_CONFIG
,
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
this
.
openConfig
=
this
.
$com
.
confirm
(
res
,
'data.content'
,
[]).
customKeyEnable
// 是否开启自定义字段存入cookie
this
.
$cookie
.
set
(
'customKeyEnable'
,
this
.
openConfig
)
let
isXuHui
=
this
.
$com
.
confirm
(
res
,
'data.content'
,
[])
this
.
$store
.
commit
(
'CHANGE_ISXUHUI'
,
isXuHui
.
projectArea
==
'xuhui'
)
}
})
},
//调接口跳转专项检查页面
toFangXunFangTai
(){
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_JIANCHADIZHI
,
}).
then
(
res
=>
{
window
.
open
(
res
)
})
},
openOutUrl1
(){
window
.
open
(
'http://962121.fgj.sh.gov.cn/wyweb/shanghaiwuye/web/dataV/riskmanagement/#/'
)
},
openOutUrl2
(){
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_WYGENERATE
,
}).
then
(
res
=>
{
window
.
open
(
res
)
})
},
/**
* 去应急报修
* @params {bxmaintainType} string
*/
toRepair
(
bxmaintainType
,
signStatus
){
this
.
$router
.
push
({
name
:
'repairList'
,
query
:
{
bxmaintainType
:
bxmaintainType
,
signStatus
:
signStatus
}
})
},
/**
* 改变投诉的tab的key
*/
changeTabKey
(
key
,
num
){
if
(
num
==
1
){
this
.
activeKey
=
key
}
else
if
(
num
==
2
){
this
.
activeKey2
=
key
}
},
/**
* 获取投诉问题排行
*/
getTousuQuestion
(
type
){
const
date
=
new
Date
()
const
year
=
date
.
getFullYear
()
const
month
=
date
.
getMonth
()
+
1
const
params
=
{}
if
(
type
==
'M'
){
params
.
type
=
'A'
params
.
tsMonthly
=
year
+
''
+
(
String
(
month
).
length
==
1
?
'-0'
+
month
:
'-'
+
month
)
}
else
if
(
type
==
'Y'
){
params
.
type
=
'Y'
params
.
dateTime
=
year
+
''
}
else
if
(
type
==
'S'
){
params
.
type
=
'S'
}
params
.
tsNum_desc
=
'desc'
params
.
pageNo
=
1
params
.
pageSize
=
8
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_TOUSUQUESTION_LIST
,
params
:
params
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
this
.
tousuQuestionList
[
type
]
=
this
.
$com
.
confirm
(
res
,
'data.content.content'
,
[])
}
})
},
/**
* 获取投诉密度排行
*/
getTousuDensity
(
type
){
const
date
=
new
Date
()
const
year
=
date
.
getFullYear
()
const
month
=
date
.
getMonth
()
+
1
const
params
=
{}
if
(
type
==
'M'
){
params
.
type
=
'A'
params
.
dateTime
=
year
+
''
+
(
String
(
month
).
length
==
1
?
'-0'
+
month
:
'-'
+
month
)
}
else
if
(
type
==
'Y'
){
params
.
type
=
'Y'
params
.
dateTime
=
year
+
''
}
else
if
(
type
==
'S'
){
params
.
type
=
'S'
params
.
dateTime
=
'20'
}
params
.
pageNo
=
1
params
.
pageSize
=
8
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_TOUSUDENSITY_LIST
,
params
:
params
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
this
.
tousuDensityList
[
type
]
=
this
.
$com
.
confirm
(
res
,
'data.content.content'
,
[])
}
})
},
handleExpired
()
{
this
.
$router
.
push
({
name
:
'indCous'
,
query
:
{
date
:
(
this
.
$moment
().
format
(
'L'
)).
split
(
'/'
).
join
(
''
)}})
},
handleWillExpire
()
{
this
.
$router
.
push
({
name
:
'indCous'
,
query
:
{
cdate
:
(
this
.
$moment
().
format
(
'L'
)).
split
(
'/'
).
join
(
''
),
date
:
(
this
.
$moment
().
add
(
'months'
,
5
).
format
(
'L'
)).
split
(
'/'
).
join
(
''
)}})
},
/**
* 去投诉
*/
toTousu
(){
const
date
=
new
Date
()
const
year
=
date
.
getFullYear
()
const
month
=
date
.
getMonth
()
+
1
const
query
=
{}
if
(
this
.
activeKey
==
'1'
){
if
(
this
.
activeKey2
==
'1'
){
query
.
type
=
'M'
query
.
tsMonthly
=
year
+
''
+
(
String
(
month
).
length
==
1
?
'-0'
+
month
:
'-'
+
month
)
}
else
if
(
this
.
activeKey2
==
'2'
){
query
.
type
=
'Y'
query
.
dateTime
=
year
+
''
}
else
if
(
this
.
activeKey2
==
'3'
){
query
.
type
=
'S'
}
this
.
$router
.
push
({
name
:
'tousuQuestion'
,
query
:
query
})
}
else
if
(
this
.
activeKey
==
'2'
){
if
(
this
.
activeKey2
==
'1'
){
query
.
type
=
'M'
query
.
tsMonthly
=
year
+
''
+
(
String
(
month
).
length
==
1
?
'-0'
+
month
:
'-'
+
month
)
}
else
if
(
this
.
activeKey2
==
'2'
){
query
.
type
=
'Y'
query
.
dateTime
=
year
+
''
}
else
if
(
this
.
activeKey2
==
'3'
){
query
.
type
=
'S'
}
this
.
$router
.
push
({
name
:
'tousuDensity'
,
query
:
query
})
}
},
},
}
</
script
>
<
style
>
#home
{
width
:
100%
;
}
.home-card
{
background
:
#fff
;
padding
:
15px
;
}
.topBox
{
height
:
100%
;
}
.top-font
{
color
:
#818283
;
font-size
:
14px
;
margin-bottom
:
3px
;
}
.top-count
{
color
:
#000
;
font-size
:
28px
;
font-weight
:
600
;
line-height
:
34px
;
}
.top-count-extra
{
color
:
#000
;
font-size
:
24px
;
font-weight
:
600
;
line-height
:
24px
;
}
.middle-right
{
text-align
:
center
;
height
:
calc
(
50%
-
10px
);
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-around
;
align-items
:
center
;
cursor
:
pointer
;
}
.middle-right
p
{
font-size
:
14px
;
margin
:
5px
0px
0px
0px
;
font-weight
:
600
;
}
.month
{
height
:
100%
;
background
:
#fff
;
margin-right
:
10px
;
}
.monthTitle
>
span
:first-child
{
font-weight
:
600
;
font-size
:
16px
;
}
.monthTitleNum
{
font-size
:
16px
;
color
:
#0E7CFF
;
font-weight
:
600
;
vertical-align
:
baseline
;
}
.monthBox
{
height
:
calc
(
100%
-
55px
);
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-around
;
align-items
:
stretch
;
}
.monthImg
{
margin
:
10%
;
padding-top
:
calc
(
40%
-
11px
);
padding-bottom
:
calc
(
40%
-
11px
);
text-align
:
center
;
cursor
:
pointer
;
border
:
1px
solid
transparent
;
border-radius
:
14%
;
position
:
relative
;
}
.monthHover
{
z-index
:
999
;
position
:
absolute
;
bottom
:
0px
;
left
:
0
;
height
:
50%
;
background
:
rgba
(
0
,
0
,
0
,
0.5
);
width
:
100%
;
color
:
#fff
;
border-radius
:
0
0
14%
14%
;
display
:
none
;
line-height
:
100%
;
}
.monthHover
div
{
width
:
100%
;
height
:
100%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
.monthImg
:hover
.monthHover
{
/* height: 50%;
color:#000; */
display
:
block
;
}
.zxjc
.ant-progress-inner
{
background
:
#F4F5F6
;
}
#home
.ant-progress-inner
{
border
:
none
;
}
#home
.ant-tabs-tab-active.ant-tabs-tab
{
line-height
:
31px
;
}
/* #home .ant-tabs-bar.ant-tabs-top-bar{
margin: 0px;
} */
/* #home .ant-tabs-content.ant-tabs-content-animated.ant-tabs-top-content{
height: calc(100% - 55px);
} */
#home
.ant-tabs-tabpane
{
padding
:
0px
15px
10px
15px
;
}
.justify-between
{
display
:
flex
;
justify-content
:
space-between
;
}
.align-center
{
display
:
flex
;
align-items
:
center
;
}
.align-stretch
{
display
:
flex
;
align-items
:
stretch
;
}
.row-number
{
height
:
18px
;
width
:
18px
;
border-radius
:
50%
;
text-align
:
center
;
}
.green
{
color
:
#579D1F
;
}
.blue
{
color
:
#2B87FE
;
}
.hadCheckMonth.green
{
border-color
:
#579D1F
;
}
.hadCheckMonth.blue
{
border-color
:
#2B87FE
;
}
.jiancha
{
height
:
100%
;
background
:
#fff
;
margin
:
0px
10px
;
}
.jianchaTitle
>
span
{
font-weight
:
600
;
font-size
:
16px
;
}
.jianchaBox
{
padding
:
15px
0px
;
height
:
100%
;
}
.jianchaTheme
{
border-right
:
1px
dashed
#eee
;
padding
:
0px
10px
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-around
;
height
:
100%
;
}
.jianchaThemeNum
{
color
:
#0477FF
;
font-weight
:
600
;
}
.jianchaBoxRight
{
padding
:
0px
10px
0px
30px
;
height
:
100%
;
}
.jianchaPeopleTitle
{
height
:
30px
;
display
:
inline-block
;
vertical-align
:
sub
;
font-weight
:
600
;
}
.fengxian
{
height
:
100%
;
background
:
#fff
;
margin-right
:
10px
;
}
.fengxianTitle
>
span
{
font-weight
:
600
;
font-size
:
16px
;
}
.fengxianBox
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-around
;
height
:
calc
(
100%
-
55px
);
}
.fengxianDisposalNum
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-around
;
height
:
100%
;
}
.disposalDetailNum
{
color
:
#000
;
font-size
:
16px
;
font-weight
:
700
;
vertical-align
:
middle
;
color
:
#11C3C4
;
}
.repair-top
{
margin
:
0
0.7rem
;
padding-top
:
0.7rem
;
padding-bottom
:
0.3rem
;
flex
:
1
;
border-bottom
:
1px
dashed
#eee
;
}
.repair-btm
{
margin
:
0
0.7rem
;
padding-top
:
0.7rem
;
padding-bottom
:
0.3rem
;
flex
:
1
;
}
.baoxiu
{
height
:
100%
;
background
:
#fff
;
margin
:
0px
10px
;
}
.baoxiuTitle
,
.fengxianTitle
,
.monthTitle
,
.jianchaTitle
{
display
:
flex
;
justify-content
:
space-between
;
border-bottom
:
1px
solid
#eee
;
}
.baoxiuTitle
>
span
{
font-weight
:
600
;
font-size
:
16px
}
.baoxiuBox
{
height
:
calc
(
100%
-
55px
);
display
:
flex
;
flex-direction
:
column
;
font-size
:
0.8rem
;
}
.baoxiuSecondTitle
{
display
:
flex
;
justify-content
:
space-between
;
}
.baoxiuSecondTitle
>
p
{
font-size
:
0.8rem
;
color
:
#000
;
margin-bottom
:
0.3rem
;
}
.baoxiuSecondTitle
>
img
{
height
:
1.2rem
;
margin-top
:
-0.3rem
;
cursor
:
pointer
;
}
.baoxiuMiddleBox
{
display
:
flex
;
}
.baoxiuMiddleBox
>
div
:first-child
{
margin-right
:
0.5rem
;
display
:
flex
;
align-items
:
center
;
}
.baoxiuMiddleBox
>
div
:last-child
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-around
;
height
:
100%
;
}
.baoxiuBottomBox
{
display
:
flex
;
margin-top
:
0.3rem
;
justify-content
:
space-between
;
}
.baoxiuBottomBox
>
div
{
width
:
45%
;
}
.baoxiuBottomBoxTitle
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
flex-end
;
}
#home
.tousuQuestion
>
div
{
margin
:
0
;
}
.tousu
{
height
:
100%
;
background
:
#fff
;
margin-left
:
10px
;
position
:
relative
;
}
.tousuIMG
{
height
:
1.2rem
;
cursor
:
pointer
;
position
:
absolute
;
right
:
1rem
;
top
:
1rem
;
z-index
:
10
;
}
.tousuTabTitle
{
font-weight
:
600
;
margin-bottom
:
5px
;
}
.tousuContentRow
{
font-size
:
12px
;
display
:
flex
;
align-items
:
stretch
;
padding
:
3px
0px
;
text-align
:
left
;
}
.tousuRankNum
{
display
:
flex
;
align-items
:
center
;
}
.tousuContent
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.topBox-l
.inner
{
padding
:
1rem
;
width
:
24%
;
display
:
flex
;
justify-content
:
space-between
;
background
:
#fff
;
}
.topBox-l
{
width
:
100%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
}
/* 第二行 */
.secBox
{
margin-top
:
1rem
;
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
}
/* 第3行 */
.thirdBox
{
margin-top
:
1rem
;
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
}
/* 第四行 */
.fourthBox
{
margin-top
:
1rem
;
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment