Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mobi
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
1
Merge Requests
1
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
wbx-PCAndMobi
mobi
Commits
fffdb7d9
Commit
fffdb7d9
authored
Apr 01, 2021
by
程卓
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
投诉问题接口对接, 专项检查接口对接, 第一行几个数字对接, (缺报修模块的借口,缺已完成整改接口)
parent
59447ff5
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
511 additions
and
1028 deletions
+511
-1028
api.js
src/server/api.js
+2
-0
dashBoard.vue
src/views/dashBoard.vue
+433
-1023
ComplaintsTrain.vue
src/views/home/ComplaintsTrain.vue
+76
-5
No files found.
src/server/api.js
View file @
fffdb7d9
...
...
@@ -203,4 +203,6 @@ export default {
GET_LABEL_LIST
:
MOCK_URL
+
'/service-customkey-ddd/labels'
,
// 获取标签列表
GET_FB_WY_MANAGE_CHECK
:
'/service-documents-ddd/checkOrder/dahboard/countDatas'
,
//首页-房办月查-物业双周查-经理自查
}
src/views/dashBoard.vue
View file @
fffdb7d9
<
template
>
<div>
<div
id=
"home"
class=
"layoutPadding"
>
<a-row
type=
"flex"
class=
"align-stretch"
>
<a-row
type=
"flex"
class=
"align-stretch"
style=
""
>
<a-col
:span=
"24"
>
<a-row
type=
"flex"
style=
"height:100%;"
>
<a-col
:span=
"6"
>
...
...
@@ -11,7 +10,7 @@
<div
class=
"justify-between topBox"
>
<div>
<p
class=
"top-font"
>
小区数
</p>
<span
class=
"top-count"
>
{{
992
}}
</span>
<span
class=
"top-count"
>
{{
baseData
.
community
}}
</span>
</div>
</div>
</a-col>
...
...
@@ -21,7 +20,7 @@
<span
class=
"top-font"
>
本月新增 :
</span>
</a-col>
<a-col
:span=
'8'
>
<span
class=
"top-count-extra"
style=
"cursor: pointer;"
@
click=
"handleExpired"
>
{{
2
}}
</span>
<span
class=
"top-count-extra"
style=
"cursor: pointer;"
>
{{
2
}}
</span>
</a-col>
</a-row>
<a-row
style=
"border-left: 1px solid lightgrey; padding-left: 10px;padding-top: 10px;"
>
...
...
@@ -29,7 +28,7 @@
<span
class=
"top-font"
>
本月注销 :
</span>
</a-col>
<a-col
:span=
'8'
>
<span
class=
"top-count-extra"
style=
"cursor: pointer;"
@
click=
"handleWillExpire"
>
{{
3
}}
</span>
<span
class=
"top-count-extra"
style=
"cursor: pointer;"
>
{{
3
}}
</span>
</a-col>
</a-row>
</a-col>
...
...
@@ -45,10 +44,10 @@
商品 :
{{
332
}}
</a-col>
<a-col
:span=
'7'
>
直管 :
{{
332
}}
直管 :
{{
224
}}
</a-col>
<a-col
:span=
'10'
>
保障及其他 :
{{
3
32
}}
保障及其他 :
{{
3
21
}}
</a-col>
</a-row>
</div>
...
...
@@ -60,7 +59,7 @@
<div
class=
"justify-between topBox"
>
<div>
<p
class=
"top-font"
>
门牌幢
</p>
<span
class=
"top-count"
>
{{
1000
}}
</span>
<span
class=
"top-count"
>
{{
baseData
.
building
}}
</span>
</div>
</div>
</a-col>
...
...
@@ -70,7 +69,7 @@
<span
class=
"top-font"
>
本月增加 :
</span>
</a-col>
<a-col
:span=
'8'
>
<span
class=
"top-count-extra"
style=
"cursor: pointer;"
@
click=
"handleExpired"
>
{{
0
}}
</span>
<span
class=
"top-count-extra"
style=
"cursor: pointer;"
>
{{
0
}}
</span>
</a-col>
</a-row>
<a-row
style=
"border-left: 1px solid lightgrey; padding-left: 10px;padding-top: 10px;"
>
...
...
@@ -78,7 +77,7 @@
<span
class=
"top-font"
>
本月注销 :
</span>
</a-col>
<a-col
:span=
'8'
>
<span
class=
"top-count-extra"
style=
"cursor: pointer;"
@
click=
"handleWillExpire"
>
{{
4
}}
</span>
<span
class=
"top-count-extra"
style=
"cursor: pointer;"
>
{{
4
}}
</span>
</a-col>
</a-row>
</a-col>
...
...
@@ -103,7 +102,7 @@
<div
class=
"justify-between topBox"
>
<div>
<p
class=
"top-font"
>
物业企业
</p>
<span
class=
"top-count"
>
{{
333
}}
</span>
<span
class=
"top-count"
>
{{
baseData
.
company
}}
</span>
</div>
</div>
</a-col>
...
...
@@ -116,22 +115,22 @@
</a-row>
<a-row
style=
"border-top:1px solid lightgrey;padding-top: 10px;"
>
<a-col
:span=
'12'
>
区属物业 :
{{
332
}}
区属物业 :
{{
111
}}
</a-col>
<a-col
:span=
'12'
>
本市注册 :
{{
33
2
}}
本市注册 :
{{
22
2
}}
</a-col>
</a-row>
</div>
</a-col>
<a-col
:span=
"6"
>
<div
class=
"home-card topBox"
style=
"
margin-right:10px;
"
>
<div
class=
"home-card topBox"
style=
""
>
<a-row>
<a-col
:span=
'7'
>
<div
class=
"justify-between topBox"
>
<div>
<p
class=
"top-font"
>
物业企业
</p>
<span
class=
"top-count"
>
{{
21
}}
</span>
<p
class=
"top-font"
>
业委会
</p>
<span
class=
"top-count"
>
{{
baseData
.
ic
}}
</span>
</div>
</div>
</a-col>
...
...
@@ -144,10 +143,10 @@
</a-row>
<a-row
style=
"border-top:1px solid lightgrey;padding-top: 10px;"
>
<a-col
:span=
'12'
>
区属物业 :
{{
332
}}
近五个月到期 :
{{
11
}}
</a-col>
<a-col
:span=
'12'
>
本市注册 :
{{
332
}}
已过期 :
{{
5
}}
</a-col>
</a-row>
</div>
...
...
@@ -155,28 +154,45 @@
</a-row>
</a-col>
</a-row>
<a-row
class=
"align-stretch"
style=
"margin-top:
2
0px;"
>
<a-col
:span=
"
8
"
>
<a-row
class=
"align-stretch"
style=
"margin-top:
1
0px;"
>
<a-col
:span=
"
6
"
>
<div
class=
"month"
>
<div
class=
"home-card monthTitle"
>
<span>
房办月查
</span>
<span>
</span>
<span>
{{
parseInt
(((
secRowInfos
.
HOUSING_OFFICE
.
count
.
rectifiedCount
/
secRowInfos
.
HOUSING_OFFICE
.
count
.
rectifyCount
)
*
100
))
}}
%
</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 mou
nth"
: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; '
"
>
<
p
class=
"monthBoxTitle"
>
今年完成情况
</p
>
<
div
class=
"monthBoxContent"
>
<
div
class=
"hoverTest"
v-for=
"item in FB_mo
nth"
:key=
"item.name"
>
<div
@
click=
"checkMonth(item)"
:class=
"'monthImg blue '"
:style=
"`background:$
{item.backgroundColor}; color:${item.color}`
">
{{
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; '"
>
</div>
</div>
</div>
</div>
<div
class=
"home-card monthBottom"
>
<span>
整改执行
</span>
<span
style=
"fontSize:13px"
><span
class=
"monthBottomNum"
>
{{
secRowInfos
.
HOUSING_OFFICE
.
count
.
rectifiedCount
}}
/
</span>
{{
secRowInfos
.
HOUSING_OFFICE
.
count
.
rectifyCount
}}
</span>
</div>
</div>
</a-col>
<a-col
:span=
"6"
>
<div
class=
"month"
>
<div
class=
"home-card monthTitle"
>
<span>
物企双周查
</span>
<span>
{{
parseInt
(((
secRowInfos
.
PROPERTY_BIWEEKLY
.
count
.
rectifiedCount
/
secRowInfos
.
PROPERTY_BIWEEKLY
.
count
.
rectifyCount
)
*
100
))
}}
%
</span>
</div>
<div
class=
"home-card monthBox"
>
<p
class=
"monthBoxTitle"
>
今年完成情况
</p>
<div
class=
"monthBoxContent"
>
<div
class=
"hoverTest"
v-for=
"item in WQ_month"
:key=
"item.name"
>
<div
@
click=
"checkMonth(item)"
:class=
"'monthImg blue '"
:style=
"`background:$
{item.backgroundColor}; color:${item.color}`">
{{
item
.
name
}}
<div
class=
"monthHover"
@
click=
"hoverMonth(item)"
>
<div>
...
...
@@ -184,466 +200,138 @@
</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>
<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>
</div>
<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>
<div
class=
"home-card monthBottom"
>
<span>
整改执行
</span>
<span
style=
"fontSize:13px"
><span
class=
"monthBottomNum"
>
{{
secRowInfos
.
PROPERTY_BIWEEKLY
.
count
.
rectifiedCount
}}
/
</span>
{{
secRowInfos
.
PROPERTY_BIWEEKLY
.
count
.
rectifyCount
}}
</span>
</div>
<!--
<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>
<a-col
:span=
"6"
>
<div
class=
"month"
style=
"height:100%"
>
<div
class=
"home-card monthTitle"
>
<span>
物业经理自查
</span>
</div>
<div
class=
"home-card monthBox"
>
<p
class=
"monthBoxTitle"
>
{{
!
showMonthOrYear
?
'本月'
:
'今年'
}}
完成情况
<span
@
click=
"showMonthOrYear=!showMonthOrYear"
style=
"float:right;fontSize:12px;cursor:pointer;color:rgb(80,150,250)"
>
切换今年
</span></p>
<div
class=
"monthBoxContent"
v-show=
"showMonthOrYear"
>
<div
class=
"hoverTest"
v-for=
"item in manager_month"
:key=
"item.name"
>
<div
@
click=
"checkMonth(item)"
:class=
"'monthImg blue'"
:style=
"`background:$
{item.backgroundColor}; color:${item.color}`">
{{
item
.
name
}}
<div
class=
"monthHover"
@
click=
"hoverMonth(item)"
>
<div>
<span>
明细
</span>
</div>
</div>
</div>
</div>
</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
v-show=
"!showMonthOrYear"
class=
"calendar"
>
<!--
<a-calendar
id=
"calendar"
:validRange=
"validRange"
:fullscreen=
"false"
/>
-->
<table
border=
0
style=
"width:100%;height:100%;text-align:center;marginTop:10px"
>
<thead>
<tr>
<th>
周一
</th>
<th>
周二
</th>
<th>
周三
</th>
<th>
周四
</th>
<th>
周五
</th>
<th>
周六
</th>
<th>
周日
</th>
</tr>
</thead>
<tbody
ref=
'calendar'
>
</tbody>
</table>
</div>
</a-row>
</div>
<div
class=
"home-card monthBottom"
>
<span>
整改执行
</span>
<span
style=
"fontSize:13px"
><span
class=
"monthBottomNum"
>
{{
secRowInfos
.
COMMUNITY_MANAGER_YEAR
.
count
.
rectifiedCount
}}
/
</span>
{{
secRowInfos
.
COMMUNITY_MANAGER_YEAR
.
count
.
rectifyCount
}}
</span>
</div>
</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-col
:span=
"6"
>
<div
class=
"sec-right"
>
<div
style=
""
>
<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>
<a-col
:span=
"24"
>
<div
class=
"home-card middle-right"
@
click=
"$router.push(
{path: '/houseData/basicInfo'})">
<img
src=
"@/assets/icon/xqda.png"
style=
"width:40px;margin:0 10%"
alt=
""
>
<p
style=
"color:rgb(80,150,250)"
>
小区档案
</p>
</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>
<a-col
:span=
"24"
>
<div
class=
"home-card middle-right"
@
click=
"$router.push(
{path: '/houseData/propertyInfo'})">
<img
src=
"@/assets/icon/wyqyda.png"
style=
"width:40px;margin:0 10%"
alt=
""
>
<p
style=
"color:rgb(80,150,250)"
>
物业企业档案
</p>
</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
style=
"flex:1;marginTop:10px; display:flex;flex-direction:column"
class=
"home-card"
>
<div
class=
"home-card"
style=
"border-bottom:1px solid #ccc;font-weight:550;"
>
<span>
专项检查
</span>
</div
>
<div
style=
"flex:1;display:flex;flex-direction:column;justify-content:space-around;paddingLeft:10%;font-weight:600;fontSize:15px"
>
<div
style=
""
>
<span
><img
src=
"@/assets/icon/yyzt.png"
alt=
""
style=
"width:20px;margin-right:3px;"
>
已有主题
</span>
<span
style=
"float:right;paddingRight:50px;color:rgb(80,150,250)"
>
{{
theme
}}
</span>
</div>
</div>
<div
class=
"repair-btm"
>
<div
class=
"baoxiuSecondTitle"
>
<p>
转派物业企业报修
</p>
<img
src=
"@/assets/icon/ddd.png"
alt=
""
@
click=
"toRepair('2', '1')"
>
<div>
<span
><img
src=
"@/assets/icon/ywcjcxq.png"
alt=
""
style=
"width:20px;margin-right:3px;"
>
已完成小区
</span>
<span
style=
"float:right;paddingRight:50px;color:rgb(80,150,250)"
>
{{
sect
}}
</span>
</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>
<span
><img
src=
"@/assets/icon/zt.png"
alt=
""
style=
"width:20px;margin-right:3px;"
>
已开整改单
</span>
<span
style=
"float:right;paddingRight:50px;color:rgb(80,150,250)"
>
{{
receipts
}}
</span>
</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>
<span
><img
src=
"@/assets/icon/zt.png"
alt=
""
style=
"width:20px;margin-right:3px;"
>
已完成整改
</span>
<span
style=
"float:right;paddingRight:50px;color:rgb(80,150,250)"
>
0
</span>
</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>
</a-row>
<a-row
class=
"align-stretch"
style=
"margin-top:10px;"
>
<a-col
:span=
"12"
style=
"marginRight:10px"
>
<div
class=
"home-card"
style=
"margin-top:10px;"
>
<ComplaintsTrain
moduletitle=
"投诉问题"
/>
</div>
</a-col>
<a-col
:span=
"12"
>
<div
class=
"home-card"
style=
"margin-top:10px;"
>
<ComplaintsTrain
moduletitle=
"报修"
/>
</div>
</a-col>
</a-row>
</div>
</div>
</
template
>
<
script
>
import
ok
from
'@/assets/icon/ok.png'
import
nm
from
'@/assets/icon/nm.png'
import
ComplaintsTrain
from
'@/views/home/ComplaintsTrain'
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,
ComplaintsTrain
},
data
()
{
return
{
ok
,
nm
,
sect
:
0
,
//已完成小区
theme
:
0
,
//已有主题
receipts
:
0
,
//已开整改单
baseData
:
{},
showMonthOrYear
:
false
,
date
:
new
Date
(),
titleData
:
{},
openConfig
:
false
,
...
...
@@ -651,126 +339,162 @@ export default {
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
:
''
,
},
FB_month
:
[
{
name
:
'1月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'2月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'3月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'4月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'5月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'6月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'7月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'8月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'9月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'10月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'11月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'12月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
],
WQ_month
:
[
{
name
:
'1月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'2月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'3月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'4月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'5月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'6月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'7月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'8月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'9月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'10月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'11月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'12月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
],
manager_month
:
[
{
name
:
'1月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'2月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'3月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'4月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'5月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'6月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'7月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'8月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'9月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'10月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'11月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
{
name
:
'12月'
,
check
:
false
,
hover
:
false
,
totStreet
:
0
,
checkStreet
:
0
,
class
:
''
,
backgroundColor
:
'rgb(226,235,245);'
},
],
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'
,
secRowInfos
:
{},
}
},
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'
)
}
}
this
.
getFBCheck
()
this
.
getCheckData
()
this
.
getSectNum
()
this
.
getbaseInfo
()
this
.
getReceiptsNum
()
},
updated
(){
this
.
$nextTick
(()
=>
{
this
.
myCanlendar
()
})
// })
// 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')
// }
},
computed
:
{
validRange
(){
//限制日历只展示当前月的日期
let
year
=
this
.
$moment
(
new
Date
()).
format
(
'YYYY'
)
let
month
=
+
this
.
$moment
(
new
Date
()).
format
(
'MM'
)
let
last
=
''
let
start
=
year
+
'-'
+
month
+
'-01'
let
arr1
=
[
1
,
3
,
5
,
7
,
8
,
10
,
12
]
let
arr2
=
[
4
,
6
,
9
,
11
]
if
(
arr1
.
indexOf
(
month
)
!=-
1
)
{
last
=
year
+
'-'
+
month
+
'-31'
}
else
if
(
arr2
.
indexOf
(
month
)
!=-
1
){
last
=
year
+
'-'
+
month
+
'-30'
}
else
if
(
String
((
year
/
4
)).
indexOf
(
'.'
)
!=-
1
){
last
=
year
+
'-'
+
month
+
'-28'
}
else
{
last
=
year
+
'-'
+
month
+
'-29'
}
return
[
this
.
$moment
(
start
),
this
.
$moment
(
last
)]
}
},
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
=
''
//日历组件
myCanlendar
(){
let
dateArr
=
[...
this
.
$moment
(
new
Date
()).
format
(
'YYYY-MM-DD'
).
split
(
'-'
)]
// console.log('获取当前日期:'dateArr)
// 获取当前月对应的最大天数
let
maxDayObj
=
new
Date
(
dateArr
[
0
],
dateArr
[
1
],
0
)
let
maxDay
=
maxDayObj
.
getDate
()
// console.log('当前月对应的最大天数:'+maxDay)
// 获取当前日期第一天对应周几
let
firstDayObj
=
new
Date
(
dateArr
[
0
],
dateArr
[
1
]
-
1
,
1
)
let
firstDay
=
firstDayObj
.
getDay
()
firstDay
=
firstDay
==
0
?
7
:
firstDay
// console.log('获取当前日期第一天对应周几:'+firstDay)
// 打印表格
let
spaceOnce
=
true
let
tab
=
'<tr>'
for
(
let
i
=
1
;
i
<=
maxDay
;
i
++
){
// 打印最前面的空格子,确保只打印一次
if
(
firstDay
>
0
&&
spaceOnce
){
for
(
let
j
=
1
;
j
<
firstDay
;
j
++
){
tab
+=
'<td> </td>'
}
spaceOnce
=
false
}
}
},
hoverMonth
(
item
){
let
time
=
new
Date
().
getFullYear
()
// console.log(time+'-'+parseInt(item.name))
this
.
$router
.
push
({
name
:
'month'
,
query
:
{
month
:
time
+
'-'
+
parseInt
(
item
.
name
)
let
info
=
this
.
secRowInfos
.
COMMUNITY_MANAGER_MATH
.
data
[
i
]
let
color
=
'rgb(226,235,245)'
if
(
info
)
{
if
(
info
.
rectifiedCount
/
info
.
rectifyCount
<
0.9
)
{
color
=
'#CC4D4D'
}
else
if
(
info
.
rectifiedCount
/
info
.
rectifyCount
==
1
||
info
.
rectifyCount
==
0
)
{
color
=
'#6EB629'
}
else
{
color
=
'#FFD400'
}
}
})
tab
+=
'<td style="border-radius:20%;text-align:center;border:4px solid #fff;background:'
+
color
+
'">'
+
i
+
'</td>'
if
((
i
-
(
8
-
firstDay
))
%
7
==
0
){
tab
+=
'</tr><tr>'
}
/*
如果某月的第一天是周日,那么格子总数会有42个,反之35个就够了,这里按42个打印
// 打印最后几个空格子, tbody总共应有42个格子,-天数 -前面的空格子
*/
let
lastSpace
=
42
-
maxDay
-
(
firstDay
-
1
)
// console.log('最后总共有空格:'+lastSpace+',倒数第二行空格:'+(lastSpace-7))
if
(
i
==
maxDay
&&
lastSpace
>
0
){
for
(
let
k
=
0
;
k
<
lastSpace
;
k
++
){
tab
+=
'<td> </td>'
// 减7是计算倒数第二行最后有几个空格,然后换下一行.
if
((
lastSpace
-
7
)
>
0
&&
k
+
1
==
(
lastSpace
-
7
))
tab
+=
'</tr><tr>'
}
}
}
tab
+=
'</tr>'
this
.
$refs
.
calendar
.
innerHTML
=
tab
},
/**
* 获取dashboard数据
*/
get
List
(){
get
baseInfo
(){
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_RESOURE_LIST
,
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
this
.
titl
eData
=
this
.
$com
.
confirm
(
res
,
'data.content'
,
[])
this
.
bas
eData
=
this
.
$com
.
confirm
(
res
,
'data.content'
,
[])
}
})
...
...
@@ -785,40 +509,65 @@ export default {
})
},
/**
* 获
取房办月查统计
* 获
房办月查完成情况
*/
get
HouthMonth
(){
get
FBCheck
(){
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_
HOUSE_MONTH
,
url
:
this
.
$api
.
GET_
FB_WY_MANAGE_CHECK
,
}).
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
this
.
secRowInfos
=
this
.
$com
.
confirm
(
res
,
'data.content'
,
{})
// 处理房办的月份颜色
this
.
secRowInfos
.
HOUSING_OFFICE
.
data
.
forEach
((
ele
,
i
)
=>
{
if
(
ele
.
rectifiedCount
/
ele
.
rectifyCount
==
1
)
{
// 完成率100 绿色
this
.
FB_month
[
i
].
backgroundColor
=
'#6EB629'
this
.
FB_month
[
i
].
color
=
'#fff'
}
else
if
(
ele
.
rectifiedCount
/
ele
.
rectifyCount
<
.
9
){
// 完成率90以下 红色
this
.
FB_month
[
i
].
backgroundColor
=
'#CC4D4D'
this
.
FB_month
[
i
].
color
=
'#fff'
}
else
if
(
ele
.
rectifiedCount
/
ele
.
rectifyCount
>
0.9
){
// 完成率90到100之间 黄色
this
.
FB_month
[
i
].
backgroundColor
=
'#FFD400'
this
.
FB_month
[
i
].
color
=
'#fff'
}
else
{
// 无数据状态
this
.
FB_month
[
i
].
backgroundColor
=
'rgb(226,235,245)'
this
.
FB_month
[
i
].
color
=
'#2B87FE'
}
}
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
)
})
// 处理物企双周查月份颜色
this
.
secRowInfos
.
PROPERTY_BIWEEKLY
.
data
.
forEach
((
ele
,
i
)
=>
{
if
(
ele
.
rectifiedCount
/
ele
.
rectifyCount
==
1
||
ele
.
rectifyCount
==
0
)
{
// 完成率100 绿色
this
.
WQ_month
[
i
].
backgroundColor
=
'#6EB629'
this
.
WQ_month
[
i
].
color
=
'#fff'
}
else
if
(
ele
.
rectifiedCount
/
ele
.
rectifyCount
<
.
9
){
// 完成率90以下 红色
this
.
WQ_month
[
i
].
backgroundColor
=
'#CC4D4D'
this
.
WQ_month
[
i
].
color
=
'#fff'
}
else
if
(
ele
.
rectifiedCount
/
ele
.
rectifyCount
>
0.9
){
// 完成率90到100之间 黄色
this
.
WQ_month
[
i
].
backgroundColor
=
'#FFD400'
this
.
WQ_month
[
i
].
color
=
'#fff'
}
else
{
// 无数据状态
this
.
WQ_month
[
i
].
backgroundColor
=
'rgb(226,235,245)'
this
.
WQ_month
[
i
].
color
=
'#2B87FE'
}
})
// 处理小区经理自查月份颜色
this
.
secRowInfos
.
COMMUNITY_MANAGER_YEAR
.
data
.
forEach
((
ele
,
i
)
=>
{
if
(
ele
.
rectifiedCount
/
ele
.
rectifyCount
==
1
)
{
// 完成率100 绿色
this
.
manager_month
[
i
].
backgroundColor
=
'#6EB629'
this
.
manager_month
[
i
].
color
=
'#fff'
}
else
if
(
ele
.
rectifiedCount
/
ele
.
rectifyCount
<
.
9
){
// 完成率90以下 红色
this
.
manager_month
[
i
].
backgroundColor
=
'#CC4D4D'
this
.
manager_month
[
i
].
color
=
'#fff'
}
else
if
(
ele
.
rectifiedCount
/
ele
.
rectifyCount
>
0.9
){
// 完成率90到100之间 黄色
this
.
manager_month
[
i
].
backgroundColor
=
'#FFD400'
this
.
manager_month
[
i
].
color
=
'#fff'
}
else
{
// 无数据状态
this
.
manager_month
[
i
].
backgroundColor
=
'rgb(226,235,245)'
this
.
manager_month
[
i
].
color
=
'#2B87FE'
}
})
}
})
},
...
...
@@ -862,48 +611,6 @@ export default {
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
)
})
},
/**
* 获取已完成检查小区
*/
...
...
@@ -968,186 +675,75 @@ export default {
})
},
/**
* 获取处置单统计
*/
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'
)
checkMonth
(
item
){
this
.
nowMonth
=
item
.
name
this
.
checkStreet
=
item
.
checkStreet
for
(
let
i
=
0
;
i
<
this
.
FB_month
.
length
;
i
++
){
if
(
this
.
FB_month
[
i
].
name
==
item
.
name
){
this
.
FB_month
[
i
].
class
=
'hadCheckMonth'
}
else
{
this
.
FB_month
[
i
].
class
=
''
}
})
},
//调接口跳转专项检查页面
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
){
hoverMonth
(
item
){
let
time
=
new
Date
().
getFullYear
()
// console.log(time+'-'+parseInt(item.name))
this
.
$router
.
push
({
name
:
'
repairList
'
,
name
:
'
month
'
,
query
:
{
bxmaintainType
:
bxmaintainType
,
signStatus
:
signStatus
month
:
time
+
'-'
+
parseInt
(
item
.
name
)
}
})
},
/**
* 改变投诉的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
getHouthMonth
(){
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_TOUSUQUESTION_LIST
,
params
:
params
}).
then
(
res
=>
{
url
:
this
.
$api
.
GET_HOUSE_MONTH
,
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
this
.
tousuQuestionList
[
type
]
=
this
.
$com
.
confirm
(
res
,
'data.content.content'
,
[])
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
.
FB_month
[
cont
[
i
].
month
-
1
].
check
=
true
this
.
FB_month
[
cont
[
i
].
month
-
1
].
checkStreet
=
cont
[
i
].
checkStreet
this
.
FB_month
[
cont
[
i
].
month
-
1
].
totStreet
=
cont
[
i
].
totStreet
}
}
let
num
=
Number
(
this
.
$moment
(
this
.
date
).
format
(
'MM'
))
this
.
FB_month
[
num
-
1
].
class
=
'hadCheckMonth'
this
.
nowMonth
=
this
.
FB_month
[
num
-
1
].
name
this
.
checkStreet
=
this
.
FB_month
[
num
-
1
].
checkStreet
}
})
},
/**
* 获取
投诉密度排行
* 获取
处置单统计
*/
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
getDisposal
(){
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_TOUSUDENSITY_LIST
,
params
:
params
}).
then
(
res
=>
{
url
:
this
.
$api
.
GET_HOME_DISPOSAL
,
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
this
.
tousuDensityList
[
type
]
=
this
.
$com
.
confirm
(
res
,
'data.content
.content'
,
[])
this
.
disposal
=
this
.
$com
.
confirm
(
res
,
'data
.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
>
<
style
scoped
>
#home
{
width
:
100%
;
display
:
flex
;
flex-direction
:
column
;
}
.home-card
{
background
:
#fff
;
...
...
@@ -1175,43 +771,78 @@ export default {
line-height
:
24px
;
}
.sec-right
{
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
}
.middle-right
{
text-align
:
center
;
height
:
calc
(
50%
-
10px
);
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-around
;
align-items
:
center
;
align-items
:
center
;
cursor
:
pointer
;
}
.middle-right
p
{
font-size
:
14px
;
margin
:
5px
0px
0px
0px
;
font-weight
:
600
;
margin
:
5px
;
}
.month
{
height
:
100%
;
background
:
#fff
;
margin-right
:
10px
;
display
:
flex
;
justify-content
:
space-between
;
flex-direction
:
column
;
}
.monthTitle
>
span
:first-child
{
.monthTitle
,
.monthBottom
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
}
.monthTitle
>
span
{
font-weight
:
600
;
font-size
:
16px
;
}
.monthTitleNum
{
font-size
:
16px
;
color
:
#0E7CFF
;
font-weight
:
600
;
vertical-align
:
baseline
;
.monthBottom
>
span
{
font-weight
:
500
;
font-size
:
14px
;
}
.monthBottom
.monthBottomNum
{
color
:
rgb
(
0
,
103
,
251
);
font-size
:
20px
;
}
.monthBox
{
height
:
calc
(
100%
-
55px
);
display
:
flex
;
flex-direction
:
column
;
justify-content
:
space-around
;
align-items
:
stretch
;
flex
:
1
;
justify-content
:
space-between
;
border-bottom
:
1px
dashed
#ccc
;
/* margin: 0 10px; */
}
.monthBoxTitle
{
font-weight
:
500
;
font-size
:
14px
;
margin-bottom
:
10px
;
}
.monthBoxContent
,
.calendar
{
display
:
flex
;
flex-direction
:
row
;
flex-wrap
:
wrap
;
justify-content
:
space-around
;
align-items
:
center
;
flex
:
1
;
margin
:
15px
0
;
}
.monthBoxContent
.hoverTest
{
width
:
21%
;
}
.monthImg
{
margin
:
10%
;
padding-top
:
calc
(
40%
-
11px
);
...
...
@@ -1243,26 +874,15 @@ export default {
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
;
}
...
...
@@ -1297,241 +917,31 @@ export default {
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
;
}
</
style
>
.tousuRankNum
{
display
:
flex
;
align-items
:
center
;
<
style
>
#calendar
{
width
:
100%
;
}
.tousuContent
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
#calendar
>
.ant-fullcalendar-header
{
display
:
none
;
}
#calendar
.ant-fullcalendar
{
border-top
:
0px
;
width
:
100%
;
.topBox-l
.inner
{
padding
:
1rem
;
width
:
24%
;
display
:
flex
;
justify-content
:
space-between
;
background
:
#fff
;
}
.topBox-l
{
#calendar
.ant-fullcalendar-table
{
width
:
100%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
/* margin-top: -20px; */
}
/* 第二行 */
.secBox
{
margin-top
:
1rem
;
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
#calendar
table
{
height
:
auto
;
}
/* 第3行 */
.thirdBox
{
margin-top
:
1rem
;
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
#calendar
.ant-fullcalendar-disabled-cell
{
display
:
none
;
}
/* 第四行 */
.fourthBox
{
margin-top
:
1rem
;
width
:
100%
;
display
:
flex
;
justify-content
:
space-between
;
}
</
style
>
</
style
>
\ No newline at end of file
src/views/home/ComplaintsTrain.vue
View file @
fffdb7d9
...
...
@@ -7,18 +7,21 @@
<p
:class=
"`$
{active=='month'?'active':''}`" @click="changeRank('month')">月排行
</p>
<p
:class=
"`$
{active=='year'?'active':''}`" @click="changeRank('year')">年排行
</p>
<p
:class=
"`$
{active=='total'?'active':''}`" @click="changeRank('total')">总排行
</p>
<
p
@
click=
"toMore"
>
···
</p
>
<
!--
<p
@
click=
"toMore"
>
···
</p>
--
>
</div>
</div>
<div
class=
"content"
>
<div
class=
"content"
>
<div
class=
"list"
v-for=
"(item,index) in list"
:key=
"index"
>
<div
class=
"left"
>
<span
:style=
"`background:$
{index>2?'rgb(229,230,231)':'#000'};color:${index>2?'rgb(96,97,98)':'#FFF'};`">
{{
++
index
}}
</span>
<span>
{{
item
.
complaintType
}}
</span>
</div>
<
div
class=
"danwei"
>
{{
item
.
num
}}
件
</div
>
<
!--
<div
class=
"danwei"
>
{{
item
.
num
}}
件
</div>
--
>
</div>
</div>
<!--
<div
class=
"content"
v-else
style=
""
>
<p>
暂无数据...
</p>
</div>
-->
</div>
</
template
>
...
...
@@ -45,6 +48,27 @@ export default {
})
}
if
(
this
.
moduletitle
==
'投诉问题'
)
{
this
.
getList
()
}
if
(
this
.
moduletitle
==
'报修'
)
{
// 没接口 假数据
this
.
list
=
[
{
complaintType
:
'供电供水设备经常出现故障'
,
_id
:
'高空坠物隐患'
,
},
{
complaintType
:
'日常运作出现状况'
,
_id
:
'高空坠物隐患'
,
},
{
complaintType
:
'各种分摊费和特约维修费'
,
_id
:
'高空坠物隐患'
,
},
]
}
},
methods
:
{
...
mapActions
([
...
...
@@ -57,6 +81,52 @@ export default {
this
.
list
=
this
.
$com
.
confirm
(
res
,
'data.content'
,
[]).
slice
(
0
,
5
)
})
}
if
(
this
.
moduletitle
==
'投诉问题'
)
{
this
.
getList
()
}
if
(
this
.
moduletitle
==
'报修'
)
{
// 没接口 假数据
this
.
list
=
[
{
complaintType
:
'高空坠物隐患'
,
_id
:
'高空坠物隐患'
,
},
{
complaintType
:
'日常运作出现状况'
,
_id
:
'高空坠物隐患'
,
},
{
complaintType
:
'各种分摊费和特约维修费'
,
_id
:
'高空坠物隐患'
,
},
]
}
},
getList
(){
const
date
=
new
Date
()
const
year
=
date
.
getFullYear
()
const
month
=
date
.
getMonth
()
+
1
const
params
=
{}
if
(
this
.
active
==
'month'
){
params
.
type
=
'M'
params
.
tsMonthly
=
year
+
''
+
(
String
(
month
).
length
==
1
?
'-0'
+
month
:
'-'
+
month
)
}
else
if
(
this
.
active
==
'year'
){
params
.
type
=
'Y'
params
.
dateTime
=
year
+
''
}
else
if
(
this
.
active
==
'total'
){
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
.
list
=
this
.
$com
.
confirm
(
res
,
'data.content.content'
,
[])
}
})
},
toMore
(){
switch
(
this
.
moduletitle
)
{
...
...
@@ -105,16 +175,17 @@ export default {
.box
.title
>
div
.active
{
color
:
rgb
(
68
,
136
,
245
);
}
.box
.title
>
div
p
:last-child
{
/*
.box .title >div p:last-child{
color: rgb(68,136,245);
font-weight: 800;
font-size: 20px;
margin: 0;
}
}
*/
.box
.content
{
padding
:
15px
;
flex
:
1
;
display
:
flex
;
min-height
:
200px
;
flex-direction
:
column
;
}
.box
.content
.list
{
...
...
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