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
c45cd5ba
Commit
c45cd5ba
authored
Apr 29, 2021
by
程卓
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
区分dashboard(徐汇特殊) ,公共首页的下方接口对接,修复徐汇分支menu菜单错误
parent
a51c3b1f
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1547 additions
and
1024 deletions
+1547
-1024
getMicRouters.js
src/router/getMicRouters.js
+1
-1
routes.js
src/router/routes.js
+1
-5
xuhuiRoutes.json
src/router/xuhuiRoutes.json
+4
-60
api.js
src/server/api.js
+1
-0
commenHome.vue
src/views/commenHome.vue
+28
-0
dashBoard.vue
src/views/dashBoard.vue
+0
-947
home.vue
src/views/home.vue
+48
-11
homeXuhui.vue
src/views/homeXuhui.vue
+1464
-0
No files found.
src/router/getMicRouters.js
View file @
c45cd5ba
...
@@ -48,7 +48,7 @@ async function GetRoutes(router) {
...
@@ -48,7 +48,7 @@ async function GetRoutes(router) {
break
break
default
:
// 当前仅可使用pudong / xuhui-sit/uat进行打包
default
:
// 当前仅可使用pudong / xuhui-sit/uat进行打包
MicRouters
=
yangpu
MicRouters
=
xuhui
break
break
}
}
...
...
src/router/routes.js
View file @
c45cd5ba
...
@@ -24,11 +24,7 @@ const appRoutes = [
...
@@ -24,11 +24,7 @@ const appRoutes = [
component
:
resolve
=>
require
([
'@/components/Layout'
],
resolve
),
//Layout,
component
:
resolve
=>
require
([
'@/components/Layout'
],
resolve
),
//Layout,
children
:
[
children
:
[
{
{
path
:
'/portal-home'
,
name
:
'home'
,
component
:
resolve
=>
require
([
'@/views/home'
],
resolve
),
//Home,
path
:
'/portal-home'
,
name
:
'home'
,
component
:
resolve
=>
require
([
'@/views/commenHome'
],
resolve
),
//Home,
meta
:
{
title
:
'首页'
},
},
{
path
:
'/dashBoard'
,
name
:
'dashBoard'
,
component
:
resolve
=>
require
([
'@/views/dashBoard'
],
resolve
),
//Home,
meta
:
{
title
:
'首页'
},
meta
:
{
title
:
'首页'
},
},
},
{
path
:
'/person'
,
name
:
'person'
,
component
:
resolve
=>
require
([
'@/views/person-center'
],
resolve
),
//PersonCenter,
{
path
:
'/person'
,
name
:
'person'
,
component
:
resolve
=>
require
([
'@/views/person-center'
],
resolve
),
//PersonCenter,
...
...
src/router/xuhuiRoutes.json
View file @
c45cd5ba
...
@@ -2,76 +2,20 @@
...
@@ -2,76 +2,20 @@
"Layout"
:
[
"Layout"
:
[
{
{
"path"
:
"/order/disposal"
,
"name"
:
"Disposal"
,
"path"
:
"/order/disposal"
,
"name"
:
"Disposal"
,
"meta"
:
{
"title"
:
"处置单列表"
,
"menuPath"
:
fals
e
,
"menuIcon"
:
"profile"
,
"hideInBread"
:
false
},
"meta"
:
{
"title"
:
"处置单列表"
,
"menuPath"
:
tru
e
,
"menuIcon"
:
"profile"
,
"hideInBread"
:
false
},
"children"
:[
"children"
:[
{
{
"path"
:
"/order/disposal/disposalList"
,
"name"
:
"disposalList"
,
"path"
:
"/order/disposal/disposalList"
,
"name"
:
"disposalList"
,
"meta"
:
{
"title"
:
"处置单列表"
,
"menuPath"
:
fals
e
,
"menuIcon"
:
"profile"
,
"hideInBread"
:
false
},
"meta"
:
{
"title"
:
"处置单列表"
,
"menuPath"
:
tru
e
,
"menuIcon"
:
"profile"
,
"hideInBread"
:
false
},
"children"
:
[
"children"
:
[
{
{
"path"
:
"/order/disposal/disposalView/:id"
,
"name"
:
"DisposalView"
,
"path"
:
"/order/disposal/disposalView/:id"
,
"name"
:
"DisposalView"
,
"meta"
:
{
"title"
:
"处置单详情"
,
"menuPath"
:
fals
e
,
"hideInBread"
:
false
}
"meta"
:
{
"title"
:
"处置单详情"
,
"menuPath"
:
tru
e
,
"hideInBread"
:
false
}
}
}
]
]
}
}
]
]
},
{
"path"
:
"/question/month"
,
"name"
:
"month"
,
"meta"
:
{
"title"
:
"检查单"
,
"menuIcon"
:
"profile"
,
"menuPath"
:
false
,
"hideInBread"
:
false
},
"children"
:[
{
"path"
:
"/question/month/monthList"
,
"name"
:
"month"
,
"meta"
:
{
"title"
:
"房办月查列表"
,
"menuIcon"
:
"profile"
,
"menuPath"
:
false
,
"hideInBread"
:
false
},
"children"
:
[
{
"path"
:
"/question/month/monthInfo"
,
"name"
:
"monthInfo"
,
"meta"
:
{
"title"
:
"检查详情"
,
"menuPath"
:
false
,
"hideInBread"
:
false
}
}
]
}
]
},
{
"path"
:
"/question/repair"
,
"name"
:
"repairList"
,
"meta"
:
{
"title"
:
"应急报修"
,
"menuIcon"
:
"profile"
,
"menuPath"
:
false
,
"hideInBread"
:
false
},
"children"
:[
{
"path"
:
"/question/repair/repairList"
,
"name"
:
"repairList"
,
"meta"
:
{
"title"
:
"应急报修列表"
,
"menuIcon"
:
"profile"
,
"menuPath"
:
false
,
"hideInBread"
:
false
},
"children"
:
[
{
"path"
:
"/question/repair/repairInfo"
,
"name"
:
"repairInfo"
,
"meta"
:
{
"title"
:
"报修详情"
,
"menuPath"
:
false
,
"hideInBread"
:
false
}
}
]
}
]
},
{
"path"
:
"/question/tousu"
,
"name"
:
"tousu"
,
"meta"
:
{
"title"
:
"投诉信息"
,
"menuPath"
:
true
,
"menuIcon"
:
"profile"
,
"hideInBread"
:
true
},
"children"
:
[
{
"path"
:
"/question/tousu/tousuQuestion"
,
"name"
:
"tousuQuestion"
,
"meta"
:
{
"title"
:
"投诉问题排行"
,
"menuPath"
:
true
,
"hideInBread"
:
false
},
"children"
:[
{
"path"
:
"/question/tousu/tousuQuestion/questionInfo"
,
"name"
:
"questionInfo"
,
"meta"
:
{
"title"
:
"投诉问题列表"
,
"menuPath"
:
false
,
"hideInBread"
:
false
}
},
{
"path"
:
"/question/tousu/tousuQuestion/tousuDetails"
,
"name"
:
"tousuDetails"
,
"meta"
:
{
"title"
:
"投诉问题详情"
,
"menuPath"
:
false
,
"hideInBread"
:
false
}
}
]
},
{
"path"
:
"/question/tousu/tousuDensity"
,
"name"
:
"tousuDensity"
,
"meta"
:
{
"title"
:
"投诉密度排行"
,
"menuPath"
:
true
,
"hideInBread"
:
false
}
}
]
}
}
]
]
}
}
src/server/api.js
View file @
c45cd5ba
...
@@ -64,6 +64,7 @@ default: // 默认环境下(开发环境)
...
@@ -64,6 +64,7 @@ default: // 默认环境下(开发环境)
// BASE_URL = 'http://31.0.161.39/apiv2'
// BASE_URL = 'http://31.0.161.39/apiv2'
// BASE_URL = 'http://211.136.105.193/apiv2'
// BASE_URL = 'http://211.136.105.193/apiv2'
BASE_URL
=
'http://yangpu-hm.omniview.pro/api/v2'
BASE_URL
=
'http://yangpu-hm.omniview.pro/api/v2'
// BASE_URL = 'http://xuhui.hm.omniview.pro/api/v2'
// BASE_URL = 'http://pudong.hm.omniview.pro/api/v2'
// BASE_URL = 'http://pudong.hm.omniview.pro/api/v2'
// BASE_URL = 'http://211.136.105.193/apiv2'
// BASE_URL = 'http://211.136.105.193/apiv2'
MOCK_URL
=
'https://yapi.omniview.pro/mock/283'
MOCK_URL
=
'https://yapi.omniview.pro/mock/283'
...
...
src/views/commenHome.vue
0 → 100644
View file @
c45cd5ba
<
template
>
<div
class=
"content"
>
<xuhui
v-if=
"(this.$api.BASE_URL).indexOf('xuhui') > -1 || (this.$api.BASE_URL).indexOf('31.0.161.39') > -1"
/>
<home
v-else
/>
</div>
</
template
>
<
script
>
import
xuhui
from
'@/views/homeXuhui'
import
home
from
'@/views/home'
export
default
{
components
:
{
xuhui
,
home
}
}
</
script
>
<
style
scoped
>
.content
{
width
:
100%
;
height
:
100%
;
}
</
style
>
\ No newline at end of file
src/views/dashBoard.vue
deleted
100644 → 0
View file @
a51c3b1f
<
template
>
<div
id=
"home"
class=
"layoutPadding"
>
<a-row
type=
"flex"
class=
"align-stretch"
style=
""
>
<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"
>
{{
baseData
.
community
}}
</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;"
>
{{
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;"
>
{{
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'
>
直管 :
{{
224
}}
</a-col>
<a-col
:span=
'10'
>
保障及其他 :
{{
321
}}
</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"
>
{{
baseData
.
building
}}
</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;"
>
{{
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;"
>
{{
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"
>
{{
baseData
.
company
}}
</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'
>
区属物业 :
{{
111
}}
</a-col>
<a-col
:span=
'12'
>
本市注册 :
{{
222
}}
</a-col>
</a-row>
</div>
</a-col>
<a-col
:span=
"6"
>
<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"
>
{{
baseData
.
ic
}}
</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'
>
近五个月到期 :
{{
11
}}
</a-col>
<a-col
:span=
'12'
>
已过期 :
{{
5
}}
</a-col>
</a-row>
</div>
</a-col>
</a-row>
</a-col>
</a-row>
<a-row
class=
"align-stretch"
style=
"margin-top:10px;"
>
<a-col
:span=
"6"
>
<div
class=
"month"
>
<div
class=
"home-card monthTitle"
>
<span>
房办月查
</span>
<span>
{{
parseInt
(((
secRowInfos
.
HOUSING_OFFICE
.
count
.
rectifiedCount
/
secRowInfos
.
HOUSING_OFFICE
.
count
.
rectifyCount
)
*
100
))
}}
%
</span>
</div>
<div
class=
"home-card monthBox"
>
<p
class=
"monthBoxTitle"
>
今年完成情况
</p>
<div
class=
"monthBoxContent"
>
<div
class=
"hoverTest"
v-for=
"item in FB_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>
</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>
<span>
明细
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<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>
</div>
</a-col>
<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>
<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>
</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-col
:span=
"6"
>
<div
class=
"sec-right"
>
<div
style=
""
>
<a-row>
<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=
"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>
<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>
<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>
<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>
<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-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>
</
template
>
<
script
>
import
ComplaintsTrain
from
'@/views/home/ComplaintsTrain'
import
qs
from
'qs'
import
axios
from
'axios'
export
default
{
name
:
'HomePage'
,
components
:
{
ComplaintsTrain
},
data
()
{
return
{
sect
:
0
,
//已完成小区
theme
:
0
,
//已有主题
receipts
:
0
,
//已开整改单
baseData
:
{},
showMonthOrYear
:
false
,
date
:
new
Date
(),
titleData
:
{},
openConfig
:
false
,
disposal
:
{},
nowMonth
:
'本月'
,
checkStreet
:
0
,
totStreet
:
0
,
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
,
secRowInfos
:
{},
}
},
mounted
(){
this
.
getFBCheck
()
this
.
getCheckData
()
this
.
getSectNum
()
this
.
getbaseInfo
()
this
.
getReceiptsNum
()
},
updated
(){
this
.
$nextTick
(()
=>
{
this
.
myCanlendar
()
})
},
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
:
{
//日历组件
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
}
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数据
*/
getbaseInfo
(){
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_RESOURE_LIST
,
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
this
.
baseData
=
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
}
})
},
/**
* 获房办月查完成情况
*/
getFBCheck
(){
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_FB_WY_MANAGE_CHECK
,
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
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'
}
})
// 处理物企双周查月份颜色
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'
}
})
}
})
},
/**
* 获取专项检查数据
*/
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
)
})
},
/**
* 获取已完成检查小区
*/
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
)
})
},
/**
* 点击月份
*/
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
=
''
}
}
},
hoverMonth
(
item
){
let
time
=
new
Date
().
getFullYear
()
// console.log(time+'-'+parseInt(item.name))
this
.
$router
.
push
({
name
:
'month'
,
query
:
{
month
:
time
+
'-'
+
parseInt
(
item
.
name
)
}
})
},
/**
* 获取房办月查统计
*/
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
.
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
}
})
},
/**
* 获取处置单统计
*/
getDisposal
(){
this
.
$ajax
.
get
({
url
:
this
.
$api
.
GET_HOME_DISPOSAL
,
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
this
.
disposal
=
this
.
$com
.
confirm
(
res
,
'data.content'
,
[])
}
})
},
},
}
</
script
>
<
style
scoped
>
#home
{
width
:
100%
;
display
:
flex
;
flex-direction
:
column
;
}
.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
;
}
.sec-right
{
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
}
.middle-right
{
text-align
:
center
;
height
:
calc
(
50%
-
10px
);
display
:
flex
;
align-items
:
center
;
cursor
:
pointer
;
}
.middle-right
p
{
font-size
:
14px
;
margin
:
5px
;
}
.month
{
height
:
100%
;
background
:
#fff
;
margin-right
:
10px
;
display
:
flex
;
justify-content
:
space-between
;
flex-direction
:
column
;
}
.monthTitle
,
.monthBottom
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
}
.monthTitle
>
span
{
font-weight
:
600
;
font-size
:
16px
;
}
.monthBottom
>
span
{
font-weight
:
500
;
font-size
:
14px
;
}
.monthBottom
.monthBottomNum
{
color
:
rgb
(
0
,
103
,
251
);
font-size
:
20px
;
}
.monthBox
{
display
:
flex
;
flex-direction
:
column
;
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
);
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
{
display
:
block
;
}
#home
.ant-progress-inner
{
border
:
none
;
}
#home
.ant-tabs-tab-active.ant-tabs-tab
{
line-height
:
31px
;
}
#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
;
}
</
style
>
<
style
>
#calendar
{
width
:
100%
;
}
#calendar
>
.ant-fullcalendar-header
{
display
:
none
;
}
#calendar
.ant-fullcalendar
{
border-top
:
0px
;
width
:
100%
;
}
#calendar
.ant-fullcalendar-table
{
width
:
100%
;
/* margin-top: -20px; */
}
#calendar
table
{
height
:
auto
;
}
#calendar
.ant-fullcalendar-disabled-cell
{
display
:
none
;
}
</
style
>
\ No newline at end of file
src/views/home.vue
View file @
c45cd5ba
...
@@ -41,13 +41,13 @@
...
@@ -41,13 +41,13 @@
</a-row>
</a-row>
<a-row
style=
"border-top:1px solid lightgrey;padding-top: 10px;"
>
<a-row
style=
"border-top:1px solid lightgrey;padding-top: 10px;"
>
<a-col
:span=
'7'
>
<a-col
:span=
'7'
>
商品 :
{{
332
}}
商品 :
{{
firstRowInfos
.
condoRows
}}
</a-col>
</a-col>
<a-col
:span=
'7'
>
<a-col
:span=
'7'
>
直管 :
{{
224
}}
直管 :
{{
firstRowInfos
.
straightAndMixedRows
}}
</a-col>
</a-col>
<a-col
:span=
'10'
>
<a-col
:span=
'10'
>
保障及其他 :
{{
321
}}
保障及其他 :
{{
firstRowInfos
.
otherRows
}}
</a-col>
</a-col>
</a-row>
</a-row>
</div>
</div>
...
@@ -90,7 +90,7 @@
...
@@ -90,7 +90,7 @@
</a-row>
</a-row>
<a-row
style=
"border-top:1px solid lightgrey;padding-top: 10px;"
>
<a-row
style=
"border-top:1px solid lightgrey;padding-top: 10px;"
>
<a-col
:span=
'12'
>
<a-col
:span=
'12'
>
有电梯 :
{{
332
}}
有电梯 :
{{
firstRowInfos
.
haveElevatorCount
}}
</a-col>
</a-col>
</a-row>
</a-row>
</div>
</div>
...
@@ -116,10 +116,10 @@
...
@@ -116,10 +116,10 @@
</a-row>
</a-row>
<a-row
style=
"border-top:1px solid lightgrey;padding-top: 10px;"
>
<a-row
style=
"border-top:1px solid lightgrey;padding-top: 10px;"
>
<a-col
:span=
'12'
>
<a-col
:span=
'12'
>
区属物业 :
{{
111
}}
区属物业 :
{{
firstRowInfos
.
areaPropCompanyCount
}}
</a-col>
</a-col>
<a-col
:span=
'12'
>
<a-col
:span=
'12'
>
本市注册 :
{{
222
}}
本市注册 :
{{
firstRowInfos
.
cityPropCompanyCount
}}
</a-col>
</a-col>
</a-row>
</a-row>
</div>
</div>
...
@@ -145,10 +145,10 @@
...
@@ -145,10 +145,10 @@
</a-row>
</a-row>
<a-row
style=
"border-top:1px solid lightgrey;padding-top: 10px;"
>
<a-row
style=
"border-top:1px solid lightgrey;padding-top: 10px;"
>
<a-col
:span=
'12'
>
<a-col
:span=
'12'
>
近五个月到期 :
{{
11
}}
近五个月到期 :
{{
firstRowInfos
.
willExpireCount
}}
</a-col>
</a-col>
<a-col
:span=
'12'
>
<a-col
:span=
'12'
>
已过期 :
{{
5
}}
已过期 :
{{
firstRowInfos
.
alreadyExpireCount
}}
</a-col>
</a-col>
</a-row>
</a-row>
</div>
</div>
...
@@ -329,6 +329,20 @@ export default {
...
@@ -329,6 +329,20 @@ export default {
sect
:
0
,
//已完成小区
sect
:
0
,
//已完成小区
theme
:
0
,
//已有主题
theme
:
0
,
//已有主题
receipts
:
0
,
//已开整改单
receipts
:
0
,
//已开整改单
// 首行四模块下方数据
firstRowInfos
:
{
alreadyExpireCount
:
0
,
areaPropCompanyCount
:
0
,
cityPropCompanyCount
:
0
,
condoRatio
:
0
,
condoRows
:
0
,
haveElevatorCount
:
0
,
otherRatio
:
0
,
otherRows
:
0
,
straightAndMixedRatio
:
0
,
straightAndMixedRows
:
0
,
willExpireCount
:
0
,
},
baseData
:
{},
baseData
:
{},
showMonthOrYear
:
false
,
showMonthOrYear
:
false
,
...
@@ -574,9 +588,32 @@ export default {
...
@@ -574,9 +588,32 @@ export default {
url
:
this
.
$api
.
GET_ALREADY_OR_EXPIRE
,
url
:
this
.
$api
.
GET_ALREADY_OR_EXPIRE
,
}).
then
(
res
=>
{
}).
then
(
res
=>
{
if
(
res
.
code
===
'200'
)
{
if
(
res
.
code
===
'200'
)
{
let
inner
=
res
.
data
.
content
const
{
this
.
expired
=
inner
.
alreadyExpireCount
alreadyExpireCount
=
0
,
this
.
expireInFiveMonth
=
inner
.
willExpireCount
areaPropCompanyCount
=
0
,
cityPropCompanyCount
=
0
,
condoRatio
=
0
,
condoRows
=
0
,
haveElevatorCount
=
0
,
otherRatio
=
0
,
otherRows
=
0
,
straightAndMixedRatio
=
0
,
straightAndMixedRows
=
0
,
willExpireCount
=
0
,
}
=
this
.
$com
.
confirm
(
res
,
'data.content'
,
{})
this
.
firstRowInfos
=
{
alreadyExpireCount
,
areaPropCompanyCount
,
cityPropCompanyCount
,
condoRatio
,
condoRows
,
haveElevatorCount
,
otherRatio
,
otherRows
,
straightAndMixedRatio
,
straightAndMixedRows
,
willExpireCount
,
}
}
}
})
})
},
},
...
...
src/views/homeXuhui.vue
0 → 100644
View file @
c45cd5ba
<
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;"
>
<div
class=
"justify-between topBox"
>
<div>
<p
class=
"top-font"
>
小区数
</p>
<span
class=
"top-count"
>
{{
data
.
community
}}
</span>
</div>
<div
class=
"align-center"
>
<img
src=
"@/assets/icon/xqs.png"
style=
"width:50px;"
alt=
""
>
</div>
</div>
</div>
</a-col>
<a-col
:span=
"6"
>
<div
class=
"home-card topBox"
style=
"margin:0px 10px;"
>
<div
class=
"justify-between topBox"
>
<div>
<p
class=
"top-font"
>
门牌幢数
</p>
<span
class=
"top-count"
>
{{
data
.
building
}}
</span>
</div>
<div
class=
"align-center"
>
<img
src=
"@/assets/icon/mpzs.png"
style=
"width:50px;"
alt=
""
>
</div>
</div>
</div>
</a-col>
<a-col
:span=
"6"
>
<div
class=
"home-card topBox"
style=
"margin:0px 10px;"
>
<div
class=
"justify-between topBox"
>
<div>
<p
class=
"top-font"
>
物业企业数
</p>
<span
class=
"top-count"
>
{{
data
.
company
}}
</span>
</div>
<div
class=
"align-center"
>
<img
src=
"@/assets/icon/wyqys.png"
style=
"width:50px;"
alt=
""
>
</div>
</div>
</div>
</a-col>
<a-col
:span=
"6"
>
<div
class=
"home-card topBox"
style=
"margin-left:10px;"
>
<a-row>
<a-col
:span=
'6'
>
<div
class=
"justify-between topBox"
>
<div>
<p
class=
"top-font"
>
业委会数
</p>
<span
class=
"top-count"
>
{{
data
.
ic
}}
</span>
</div>
</div>
</a-col>
<a-col
:span=
'13'
>
<a-row
style=
"border-left: 1px solid lightgrey; border-bottom: 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"
>
{{
expired
}}
</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"
>
5个月内到期
</span>
</a-col>
<a-col
:span=
'8'
>
<span
class=
"top-count-extra"
style=
"cursor: pointer;"
@
click=
"handleWillExpire"
>
{{
expireInFiveMonth
}}
</span>
</a-col>
</a-row>
</a-col>
<a-col
:span=
'1'
></a-col>
<a-col
:span=
'4'
>
<div
class=
"align-center"
style=
"margin-top: 10px"
>
<img
src=
"@/assets/icon/ywhs.png"
style=
"width:50px;"
alt=
""
>
</div>
</a-col>
</a-row>
</div>
</a-col>
</a-row>
</a-col>
<!--
<a-col
:span=
"4"
>
<div
class=
"home-card topBox"
style=
"margin-left:0px 10px; cursor: pointer"
@
click=
"handleExpired"
>
<div
class=
"justify-between topBox"
>
<div>
<p
class=
"top-font"
>
已过期
</p>
<span
class=
"top-count"
>
{{
expired
}}
</span>
</div>
<div
class=
"align-center"
>
<img
src=
"@/assets/icon/wyqys.png"
style=
"width:50px;"
alt=
""
>
</div>
</div>
</div>
</a-col>
<a-col
:span=
"4"
>
<div
class=
"home-card topBox"
style=
"margin-left:10px; cursor: pointer"
@
click=
"handleWillExpire"
>
<div
class=
"justify-between topBox"
>
<div>
<p
class=
"top-font"
>
未来5个月将到期
</p>
<span
class=
"top-count"
>
{{
expireInFiveMonth
}}
</span>
</div>
<div
class=
"align-center"
>
<img
src=
"@/assets/icon/wyqys.png"
style=
"width:50px;"
alt=
""
>
</div>
</div>
</div>
</a-col>
-->
</a-row>
<a-row
v-if=
"$store.state.userInfos && $store.state.userInfos.isAllPerm"
class=
"align-stretch"
style=
"margin-top:20px;"
>
<a-col
:span=
"8"
>
<div
class=
"month"
>
<div
class=
"home-card monthTitle"
>
<span>
房办月查
</span>
<span>
<span
style=
"font-size:12px;"
>
{{
nowMonth
}}
</span>
<span
class=
"monthTitleNum"
>
{{
checkStreet
}}
<span
style=
"color:#000;"
>
/
{{
totStreet
}}
</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
v-if=
"$store.state.userInfos&&$store.state.userInfos.isAllPerm"
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'
export
default
{
name
:
'HomePage'
,
components
:
{
},
data
()
{
return
{
ok
,
nm
,
date
:
new
Date
(),
data
:
{},
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'
)
}
}
})
},
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
.
data
=
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