Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
housing-estate
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
物业总平台
housing-estate
Commits
d1fb9720
提交
d1fb9720
authored
6月 20, 2023
作者:
宋雄
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
http://47.105.205.210/property-platform/housing-estate
上级
129c9c81
450e2f3f
显示空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
483 行增加
和
181 行删除
+483
-181
api.js
src/api/api.js
+5
-0
Analysis.vue
src/views/dashboard/Analysis.vue
+352
-87
building.vue
src/views/information/building/building.vue
+3
-2
capital.vue
src/views/information/capital/capital.vue
+1
-1
house.vue
src/views/information/house/house.vue
+3
-2
owner.vue
src/views/information/owner/owner.vue
+115
-85
worker.vue
src/views/information/worker/worker.vue
+1
-1
advertisement.vue
src/views/property/advertisement/advertisement.vue
+1
-1
complaint.vue
src/views/property/complaint/complaint.vue
+1
-1
maintenance.vue
src/views/property/maintenance/maintenance.vue
+1
-1
没有找到文件。
src/api/api.js
浏览文件 @
d1fb9720
...
@@ -3,6 +3,8 @@ import Vue from 'vue'
...
@@ -3,6 +3,8 @@ import Vue from 'vue'
import
{
UI_CACHE_DB_DICT_DATA
}
from
"@/store/mutation-types"
import
{
UI_CACHE_DB_DICT_DATA
}
from
"@/store/mutation-types"
// 首页统计
// 首页统计
const
homeDataStatistics
=
(
params
)
=>
getAction
(
"/community/homepage/dataStatistics"
,
params
);
const
homeDataStatistics
=
(
params
)
=>
getAction
(
"/community/homepage/dataStatistics"
,
params
);
const
companyNoticeList
=
(
params
)
=>
getAction
(
"/property-company/notice/companyNotice/list"
,
params
);
//角色管理
//角色管理
const
addRole
=
(
params
)
=>
postAction
(
"/sys/role/add"
,
params
);
const
addRole
=
(
params
)
=>
postAction
(
"/sys/role/add"
,
params
);
const
editRole
=
(
params
)
=>
putAction
(
"/sys/role/edit"
,
params
);
const
editRole
=
(
params
)
=>
putAction
(
"/sys/role/edit"
,
params
);
...
@@ -69,6 +71,7 @@ const getRoomListApi = (params)=>getAction("/property-community/building/communi
...
@@ -69,6 +71,7 @@ const getRoomListApi = (params)=>getAction("/property-community/building/communi
const
addCommunityOwner
=
(
params
)
=>
postAction
(
"/property-community/info/communityOwner/add"
,
params
);
const
addCommunityOwner
=
(
params
)
=>
postAction
(
"/property-community/info/communityOwner/add"
,
params
);
const
geCommunityOwnertInfoApi
=
(
params
)
=>
getAction
(
"/property-community/info/communityOwner/queryById"
,
params
);
const
geCommunityOwnertInfoApi
=
(
params
)
=>
getAction
(
"/property-community/info/communityOwner/queryById"
,
params
);
const
auditCommunityOwnerApi
=
(
params
)
=>
postAction
(
"/property-community/info/communityOwner/audit"
,
params
);
const
auditCommunityOwnerApi
=
(
params
)
=>
postAction
(
"/property-community/info/communityOwner/audit"
,
params
);
const
downloadOwnerTemplate
=
(
params
)
=>
postAction
(
"/property-community/info/communityOwner/downloadOwnerTemplate"
,
params
);
// 生活缴费-费用规则
// 生活缴费-费用规则
const
geCommunityRuleListApi
=
(
params
)
=>
getAction
(
"/property-company/system/companyChargerule/communityRuleList"
,
params
);
const
geCommunityRuleListApi
=
(
params
)
=>
getAction
(
"/property-company/system/companyChargerule/communityRuleList"
,
params
);
...
@@ -132,6 +135,7 @@ export const transitRESTful = {
...
@@ -132,6 +135,7 @@ export const transitRESTful = {
export
{
export
{
homeDataStatistics
,
homeDataStatistics
,
companyNoticeList
,
addRole
,
addRole
,
editRole
,
editRole
,
checkRoleCode
,
checkRoleCode
,
...
@@ -192,6 +196,7 @@ export {
...
@@ -192,6 +196,7 @@ export {
getBuildingListApi
,
getBuildingListApi
,
getUnitListApi
,
getUnitListApi
,
getRoomListApi
,
getRoomListApi
,
downloadOwnerTemplate
,
addCommunityOwner
,
addCommunityOwner
,
geCommunityOwnertInfoApi
,
geCommunityOwnertInfoApi
,
auditCommunityOwnerApi
,
auditCommunityOwnerApi
,
...
...
src/views/dashboard/Analysis.vue
浏览文件 @
d1fb9720
...
@@ -3,7 +3,8 @@
...
@@ -3,7 +3,8 @@
<a-row
:gutter=
"24"
>
<a-row
:gutter=
"24"
>
<a-col
:sm=
"24"
:md=
"12"
:xl=
"6"
:style=
"
{ marginBottom: '24px' }">
<a-col
:sm=
"24"
:md=
"12"
:xl=
"6"
:style=
"
{ marginBottom: '24px' }">
<div
class=
"statistics"
>
<div
class=
"statistics"
>
<img
class=
"icon"
src=
"~@/assets/guaz.png"
alt=
""
>
<div
class=
"icon"
style=
"background-color:#1890ff;"
><a-icon
type=
"team"
/></div>
<!--
<img
class=
"icon"
src=
"~@/assets/guaz.png"
alt=
""
>
-->
<div>
<div>
<p
style=
"color:#666;margin-bottom:5px;"
>
住户总数量
</p>
<p
style=
"color:#666;margin-bottom:5px;"
>
住户总数量
</p>
<p
style=
"margin-bottom:0;color:#333;font-size:28px;line-height:1;"
>
{{
pageForm
.
ownerNum
}}
</p>
<p
style=
"margin-bottom:0;color:#333;font-size:28px;line-height:1;"
>
{{
pageForm
.
ownerNum
}}
</p>
...
@@ -12,7 +13,7 @@
...
@@ -12,7 +13,7 @@
</a-col>
</a-col>
<a-col
:sm=
"24"
:md=
"12"
:xl=
"6"
:style=
"
{ marginBottom: '24px' }">
<a-col
:sm=
"24"
:md=
"12"
:xl=
"6"
:style=
"
{ marginBottom: '24px' }">
<div
class=
"statistics"
>
<div
class=
"statistics"
>
<
img
class=
"icon"
src=
"~@/assets/guaz.png"
alt=
""
>
<
div
class=
"icon"
style=
"background-color:#7262fd;"
><a-icon
type=
"home"
/></div
>
<div>
<div>
<p
style=
"color:#666;margin-bottom:5px;"
>
房屋总数量
</p>
<p
style=
"color:#666;margin-bottom:5px;"
>
房屋总数量
</p>
<p
style=
"margin-bottom:0;color:#333;font-size:28px;line-height:1;"
>
{{
pageForm
.
roomNum
}}
</p>
<p
style=
"margin-bottom:0;color:#333;font-size:28px;line-height:1;"
>
{{
pageForm
.
roomNum
}}
</p>
...
@@ -21,7 +22,7 @@
...
@@ -21,7 +22,7 @@
</a-col>
</a-col>
<a-col
:sm=
"24"
:md=
"12"
:xl=
"6"
:style=
"
{ marginBottom: '24px' }">
<a-col
:sm=
"24"
:md=
"12"
:xl=
"6"
:style=
"
{ marginBottom: '24px' }">
<div
class=
"statistics"
>
<div
class=
"statistics"
>
<
img
class=
"icon"
src=
"~@/assets/guaz.png"
alt=
""
>
<
div
class=
"icon"
style=
"background-color:#ffaa00;"
><a-icon
type=
"bank"
/></div
>
<div>
<div>
<p
style=
"color:#666;margin-bottom:5px;"
>
楼栋总数量
</p>
<p
style=
"color:#666;margin-bottom:5px;"
>
楼栋总数量
</p>
<p
style=
"margin-bottom:0;color:#333;font-size:28px;line-height:1;"
>
{{
pageForm
.
buildingNum
}}
</p>
<p
style=
"margin-bottom:0;color:#333;font-size:28px;line-height:1;"
>
{{
pageForm
.
buildingNum
}}
</p>
...
@@ -30,7 +31,7 @@
...
@@ -30,7 +31,7 @@
</a-col>
</a-col>
<a-col
:sm=
"24"
:md=
"12"
:xl=
"6"
:style=
"
{ marginBottom: '24px' }">
<a-col
:sm=
"24"
:md=
"12"
:xl=
"6"
:style=
"
{ marginBottom: '24px' }">
<div
class=
"statistics"
>
<div
class=
"statistics"
>
<
img
class=
"icon"
src=
"~@/assets/guaz.png"
alt=
""
>
<
div
class=
"icon"
style=
"background-color:#52c41a;"
><a-icon
type=
"pay-circle"
/></div
>
<div>
<div>
<p
style=
"color:#666;margin-bottom:5px;"
>
年度累计已缴物业费
</p>
<p
style=
"color:#666;margin-bottom:5px;"
>
年度累计已缴物业费
</p>
<p
style=
"margin-bottom:0;color:#333;font-size:28px;line-height:1;"
>
{{
pageForm
.
propertyYearFee
}}
</p>
<p
style=
"margin-bottom:0;color:#333;font-size:28px;line-height:1;"
>
{{
pageForm
.
propertyYearFee
}}
</p>
...
@@ -41,131 +42,291 @@
...
@@ -41,131 +42,291 @@
<a-row
:gutter=
"24"
>
<a-row
:gutter=
"24"
>
<a-col
:sm=
"24"
:md=
"12"
:xl=
"12"
:style=
"
{ marginBottom: '24px' }">
<a-col
:sm=
"24"
:md=
"12"
:xl=
"12"
:style=
"
{ marginBottom: '24px' }">
<pie
title=
"缴费率"
:dataSource=
"pieData"
/>
<div
class=
"to-do t-box"
>
<h3
class=
"box-title"
>
待办事项
</h3>
<div
class=
"todo-list"
>
<div
class=
"item"
>
<p>
入驻业主待审核
</p>
<p>
{{
pageForm
.
waitAuditOwnerNum
}}
家
</p><a-button
type=
"primary"
size=
"small"
@
click=
"toOperation(1)"
:disabled=
"pageForm.waitAuditOwnerNum == 0"
>
去处理
</a-button>
</div>
<div
class=
"item"
>
<p>
租户物业费催缴
</p>
<p>
{{
pageForm
.
waitCallPropertyFee
}}
家
</p><a-button
type=
"primary"
size=
"small"
@
click=
"toOperation(2)"
:disabled=
"pageForm.waitCallPropertyFee == 0"
>
去处理
</a-button>
</div>
<div
class=
"item"
>
<p>
业主投诉待处理
</p>
<p>
{{
pageForm
.
waitHandle
}}
家
</p><a-button
type=
"primary"
size=
"small"
@
click=
"toOperation(3)"
:disabled=
"pageForm.waitHandle == 0"
>
去处理
</a-button>
</div>
<div
class=
"item"
>
<p>
业主报修待处理
</p>
<p>
{{
pageForm
.
waitDispatch
}}
家
</p><a-button
type=
"primary"
size=
"small"
@
click=
"toOperation(4)"
:disabled=
"pageForm.waitDispatch == 0"
>
去处理
</a-button>
</div>
</div>
</div>
</a-col>
</a-col>
<a-col
:sm=
"24"
:md=
"12"
:xl=
"12"
:style=
"
{ marginBottom: '24px' }">
<a-col
:sm=
"24"
:md=
"12"
:xl=
"12"
:style=
"
{ marginBottom: '24px' }">
<div>
<div
class=
"announcement t-box"
>
<h5>
园区公告
</h5>
<div
class=
"title"
>
<h3
class=
"box-title"
>
最新公告
</h3><a-button
size=
"small"
@
click=
"toMore()"
>
查看更多
</a-button>
<a-button
size=
"small"
@
click=
"toMore()"
>
发布公告
</a-button>
</div>
<ul>
<ul>
<li>
清明节放假通知,213231312313
</li>
<li
v-for=
"(item, index) in noticeList"
:key=
"index"
><a
@
click=
"toDetails(item)"
>
{{
item
.
noticeTitle
}}
</a>
<li>
5月1日停电通知,因1233233 园区公告 清明节放假通知,21323131231323233
</li>
<p>
{{
item
.
createTime
.
slice
(
0
,
10
)
}}
</p>
</li>
</ul>
</ul>
</div>
</div>
</a-col>
</a-col>
</a-row>
</a-row>
<a-row
:gutter=
"24"
>
<a-card
:loading=
"loading"
:bordered=
"false"
:body-style=
"
{padding: '0'}">
<a-col
:sm=
"24"
:md=
"24"
:xl=
"24"
:style=
"
{ marginBottom: '24px' }">
<div
class=
"salesCard"
>
<div
class=
"quick t-box"
>
<h3
class=
"box-title"
>
快速新建
</h3>
<div
class=
"todo-list"
>
<div
class=
"item"
@
click=
"toQuick(1)"
><a-icon
type=
"bank"
/>
<p>
新建楼宇
</p>
</div>
<div
class=
"item"
@
click=
"toQuick(2)"
><a-icon
type=
"user-add"
/>
<p>
新建业主
</p>
</div>
<div
class=
"item"
@
click=
"toQuick(3)"
><a-icon
type=
"home"
/>
<p>
新建房屋
</p>
</div>
<div
class=
"item"
@
click=
"toQuick(4)"
><a-icon
type=
"user"
/>
<p>
雇员管理
</p>
</div>
<div
class=
"item"
@
click=
"toQuick(5)"
><a-icon
type=
"pay-circle"
/>
<p>
物业费查询
</p>
</div>
<div
class=
"item"
@
click=
"toQuick(6)"
><a-icon
type=
"money-collect"
/>
<p>
生活费查询
</p>
</div>
<div
class=
"item"
@
click=
"toQuick(7)"
><a-icon
type=
"tool"
/>
<p>
报修处理
</p>
</div>
<div
class=
"item"
@
click=
"toQuick(8)"
><a-icon
type=
"question-circle"
/>
<p>
投诉处理
</p>
</div>
<div
class=
"item"
@
click=
"toQuick(9)"
><a-icon
type=
"form"
/>
<p>
发布公告
</p>
</div>
</div>
</div>
</a-col>
</a-row>
<a-row
:gutter=
"24"
>
<a-col
:sm=
"24"
:md=
"12"
:xl=
"12"
:style=
"
{ marginBottom: '24px' }">
<div
class=
"salesCard t-box"
>
<h3
class=
"box-title"
>
缴费统计
</h3>
<div
class=
"extra-type"
>
<div
class=
"extra-type"
>
<a>
物业
</a>
<a-radio-group
@
change=
"handleSizeChange"
:value=
"typeCode"
>
<a>
水费
</a>
<a-radio-button
value=
"SFLX00001"
>
物业费
</a-radio-button>
<a>
电费
</a>
<a-radio-button
value=
"SFLX00002"
>
水费
</a-radio-button>
<a>
燃气费
</a>
<a-radio-button
value=
"SFLX00003"
>
电费
</a-radio-button>
<a-radio-button
value=
"SFLX00004"
>
燃气费
</a-radio-button>
<a-radio-button
value=
"SFLX00005"
>
暖气费
</a-radio-button>
</a-radio-group>
</div>
</div>
<div>
<div>
<bar
:dataSource=
"barData"
/>
<bar
:dataSource=
"barData"
style=
"padding: 0;"
/>
</div>
</div>
</div>
</div>
</a-card>
</a-col>
<a-col
:sm=
"24"
:md=
"12"
:xl=
"12"
:style=
"
{ marginBottom: '24px' }">
<div
class=
"pay-cost t-box"
>
<h3
class=
"box-title"
>
缴费率
</h3>
<pie
:dataSource=
"payData"
style=
"margin-top: 40px;"
/>
</div>
</a-col>
</a-row>
<a-row
:gutter=
"24"
>
<a-row
:gutter=
"24"
>
<a-col
:sm=
"24"
:md=
"12"
:xl=
"12"
:style=
"
{ marginBottom: '24px' }">
<a-col
:sm=
"24"
:md=
"12"
:xl=
"12"
:style=
"
{ marginBottom: '24px' }">
<pie
title=
"报修统计"
:dataSource=
"pieData"
/>
<div
class=
"pay-cost t-box"
>
<h3
class=
"box-title"
>
报修统计
</h3>
<pie
:dataSource=
"repairData"
/>
<div
class=
"number"
>
<p>
全部报修
{{
pageForm
.
repairTotal
}}
</p>
<p
v-for=
"(item, index) in repairData"
:key=
"index"
>
{{
item
.
item
}}
{{
item
.
count
}}
</p>
</div>
</div>
</a-col>
</a-col>
<a-col
:sm=
"24"
:md=
"12"
:xl=
"12"
:style=
"
{ marginBottom: '24px' }">
<a-col
:sm=
"24"
:md=
"12"
:xl=
"12"
:style=
"
{ marginBottom: '24px' }">
<pie
title=
"投诉统计"
:dataSource=
"pieData"
/>
<div
class=
"pay-cost t-box"
>
<h3
class=
"box-title"
>
投诉统计
</h3>
<pie
:dataSource=
"complaintsData"
/>
<div
class=
"number"
>
<p>
全部投诉
{{
pageForm
.
complaintTotal
}}
</p>
<p
v-for=
"(item, index) in complaintsData"
:key=
"index"
>
{{
item
.
item
}}
{{
item
.
count
}}
</p>
</div>
</div>
</a-col>
</a-col>
</a-row>
</a-row>
<a-modal
:title=
"noticeTitle"
:visible=
"visible"
@
cancel=
"handleCancel"
:footer=
"null"
width=
"40%"
>
<p
v-html=
"noticeContent "
></p>
</a-modal>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
Bar
from
'@/components/chart/Bar'
import
Bar
from
'@/components/chart/Bar'
import
Pie
from
'@/components/chart/Pie'
import
Pie
from
'@/components/chart/Pie'
import
{
homeDataStatistics
}
from
"@/api/api"
import
{
homeDataStatistics
,
companyNoticeList
}
from
'@/api/api'
const
barData
=
[]
//
const barData = []
for
(
let
i
=
0
;
i
<
12
;
i
+=
1
)
{
//
for (let i = 0; i
<
12
;
i
+=
1
)
{
barData
.
push
({
//
barData.push({
x
:
`
${
i
+
1
}
月`
,
//
x: `${i + 1}月`,
y
:
Math
.
floor
(
Math
.
random
()
*
1000
)
+
200
// y: 1000,
})
//
})
}
//
}
export
default
{
export
default
{
name
:
"Analysis"
,
name
:
'Analysis'
,
components
:
{
components
:
{
Bar
,
Bar
,
Pie
Pie
,
},
},
data
()
{
data
()
{
return
{
return
{
pageForm
:
{},
pageForm
:
{},
loading
:
true
,
loading
:
true
,
barData
,
payData
:
[],
pieData
:
[
noticeList
:
[],
{
item
:
'物业费'
,
count
:
40
},
typeCode
:
'SFLX00001'
,
{
item
:
'水费'
,
count
:
21
},
repairData
:
[],
{
item
:
'电费'
,
count
:
17
},
complaintsData
:
[],
{
item
:
'燃气费'
,
count
:
13
},
barData
:
[],
{
item
:
'停车费'
,
count
:
9
}
noticeTitle
:
''
,
]
noticeContent
:
''
,
visible
:
false
,
}
}
},
},
created
()
{
created
()
{
this
.
onDetail
()
this
.
onDetail
()
this
.
companyNotice
()
},
},
methods
:
{
methods
:
{
async
onDetail
()
{
async
onDetail
(
typeCode
)
{
let
{
result
}
=
await
homeDataStatistics
()
let
{
result
}
=
await
homeDataStatistics
({
typeCode
:
typeCode
})
this
.
pageForm
=
{...
result
}
this
.
pageForm
=
{
...
result
}
this
.
loading
=
!
this
.
loading
this
.
payData
=
[
{
item
:
'物业费'
,
count
:
result
.
propertyFeeRate
||
0
},
//当前小区业主数量
{
item
:
'水费'
,
count
:
result
.
waterRate
||
0
},
// private Integer ownerNum;
{
item
:
'电费'
,
count
:
result
.
electricRate
||
0
},
// //当前小区房屋数量
{
item
:
'燃气费'
,
count
:
result
.
gasFeeRate
||
0
},
// private Integer roomNum;
{
item
:
'暖气费'
,
count
:
result
.
heatFeeRate
||
0
},
// //当前小区楼栋数量
]
// private Integer buildingNum;
this
.
barData
=
result
.
monthlyStatistics
.
map
((
item
)
=>
{
// //当前小区累积缴纳物业费
return
{
// private BigDecimal propertyYearFee;
x
:
item
.
monthNum
+
'月'
,
// //物业费占比
y
:
item
.
totalMoney
,
// private BigDecimal propertyFeeRate;
// //水费占比
// private BigDecimal waterRate;
// //电费占比
// private BigDecimal electricRate;
// //燃气费占比
// private BigDecimal gasFeeRate;
// //按月统计费用
// private List
<
MonthlyStatisticsVo
>
monthlyStatistics
;
// //报修总数
// private Integer repairTotal;
// //报修待派单数量
// private Integer waitDispatch;
// //报修维修中数量
// private Integer inRepair;
// //报修完成数量
// private Integer repairOver;
// //全部投诉数量
// private Integer complaintTotal;
// //投诉待处理数量
// private Integer waitHandle;
// //投诉已处理数量
// private Integer complaintOver;
// //当前小区待审核业主数量
// private Integer waitAuditOwnerNum;
// //当前小区物业费待催缴业主数量
// private Integer waitCallPropertyFee;
}
}
})
this
.
repairData
=
[
// { item: '全部报修', count: result.repairTotal || 0 },
// { item: '待派单', count: result.waitDispatch || 0 },
{
item
:
'未完成'
,
count
:
result
.
repairTotal
-
result
.
repairOver
||
0
},
{
item
:
'已完成'
,
count
:
result
.
repairOver
||
0
},
]
this
.
complaintsData
=
[
// { item: '全部投诉', count: result.complaintTotal || 0 },
{
item
:
'待处理'
,
count
:
result
.
waitHandle
||
0
},
{
item
:
'已完成'
,
count
:
result
.
complaintOver
||
0
},
]
this
.
loading
=
!
this
.
loading
},
async
companyNotice
()
{
let
{
result
}
=
await
companyNoticeList
({
pageNo
:
1
,
pageSize
:
5
,
order
:
'desc'
,
column
:
'createTime'
})
this
.
noticeList
=
result
.
records
},
toOperation
(
type
)
{
if
(
type
==
1
)
{
this
.
$router
.
push
({
path
:
'/information/owner'
,
})
}
else
if
(
type
==
2
)
{
this
.
$router
.
push
({
path
:
'/property/living'
,
})
}
else
if
(
type
==
3
)
{
this
.
$router
.
push
({
path
:
'/property/complaint'
,
})
}
else
if
(
type
==
4
)
{
this
.
$router
.
push
({
path
:
'/property/maintenance'
,
})
}
}
},
toQuick
(
type
)
{
if
(
type
==
1
)
{
this
.
$router
.
push
({
path
:
'/information/building'
,
})
}
else
if
(
type
==
2
)
{
this
.
$router
.
push
({
path
:
'/information/owner'
,
})
}
else
if
(
type
==
3
)
{
this
.
$router
.
push
({
path
:
'/information/house'
,
})
}
else
if
(
type
==
4
)
{
this
.
$router
.
push
({
path
:
'/information/worker'
,
})
}
else
if
(
type
==
5
)
{
this
.
$router
.
push
({
path
:
'/property/living'
,
})
}
else
if
(
type
==
6
)
{
this
.
$router
.
push
({
path
:
'/property/living'
,
})
}
else
if
(
type
==
7
)
{
this
.
$router
.
push
({
path
:
'/property/maintenance'
,
})
}
else
if
(
type
==
8
)
{
this
.
$router
.
push
({
path
:
'/property/complaint'
,
})
}
else
if
(
type
==
9
)
{
this
.
$router
.
push
({
path
:
'/property/advertisement'
,
})
}
}
},
toMore
()
{
this
.
$router
.
push
({
path
:
'/property/advertisement'
,
})
},
toDetails
(
item
)
{
this
.
noticeTitle
=
item
.
noticeTitle
this
.
noticeContent
=
item
.
noticeContent
this
.
visible
=
true
},
handleCancel
(
e
)
{
this
.
visible
=
false
},
handleSizeChange
(
e
)
{
let
that
=
this
this
.
typeCode
=
e
.
target
.
value
that
.
onDetail
(
this
.
typeCode
)
},
},
}
</
script
>
</
script
>
<
style
lang=
"less"
scoped
>
<
style
lang=
"less"
scoped
>
.hone-content-box {
.hone-content-box {
background-color: #fff;
padding: 10px;
padding: 16px;
.statistics {
.statistics {
// flex: none;
// flex: none;
background: #fff;
width: 100%;
width: 100%;
height: 90px;
height: 90px;
box-sizing: border-box;
box-sizing: border-box;
...
@@ -174,9 +335,18 @@
...
@@ -174,9 +335,18 @@
align-items: center;
align-items: center;
padding-left: 20px;
padding-left: 20px;
.icon {
.icon {
width: 64px;
width: 60px;
height: 64px;
height: 60px;
border-radius: 60px;
margin-right: 12px;
margin-right: 12px;
display: flex;
text-align: center;
align-items: center;
justify-content: center;
.anticon {
font-size: 32px;
color: #ffffff;
}
}
}
}
}
...
@@ -188,4 +358,98 @@
...
@@ -188,4 +358,98 @@
}
}
}
}
}
}
.t-box {
background: #fff;
padding: 15px;
border: 1px solid #e0dfdf;
}
.box-title {
font-weight: bold;
margin-bottom: 15px;
display: inline-block;
padding-left: 10px;
border-left: 3px solid #1890ff;
height: 20px;
line-height: 20px;
}
.pay-cost {
height: 380px;
}
.announcement {
height: 220px;
.title {
.ant-btn {
float: right;
margin-left: 10px;
}
}
ul {
padding-left: 5px;
li {
list-style-type: none;
height: 30px;
line-height: 30px;
display: flex;
justify-content: space-between;
a {
color: #666;
width: 80%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
}
}
.salesCard {
height: 380px;
}
.extra-type {
a {
margin-right: 20px;
}
}
.number {
width: 80%;
margin: 0 10%;
display: flex;
justify-content: space-evenly;
p {
font-size: 14px;
margin: 0;
}
}
.to-do {
height: 220px;
.todo-list {
padding: 0 10px;
margin-top: 15px;
.item {
display: flex;
justify-content: space-between;
}
}
}
.quick {
height: 165px;
.todo-list {
display: flex;
justify-content: space-evenly;
margin-top: 20px;
.item {
margin: 0 10px;
display: flex;
flex-direction: column;
text-align: center;
cursor: pointer;
.anticon {
font-size: 40px;
color: #007dff;
}
p {
margin-top: 8px;
}
}
}
}
</
style
>
</
style
>
\ No newline at end of file
src/views/information/building/building.vue
浏览文件 @
d1fb9720
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
<!-- 操作按钮区域 -->
<!-- 操作按钮区域 -->
<div
class=
"table-operator"
>
<div
class=
"table-operator"
>
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
<a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('
t_property_settled
')"
>
导出
</a-button>
<a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('
楼宇管理
')"
>
导出
</a-button>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-menu
slot=
"overlay"
>
<a-menu
slot=
"overlay"
>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
...
@@ -162,7 +162,8 @@
...
@@ -162,7 +162,8 @@
url
:
{
url
:
{
list
:
"/property-community/building/communityBuilding/list"
,
list
:
"/property-community/building/communityBuilding/list"
,
delete
:
'/property-community/building/communityBuilding/delete'
,
delete
:
'/property-community/building/communityBuilding/delete'
,
deleteBatch
:
'/property-community/building/communityBuilding/deleteBatch'
deleteBatch
:
'/property-community/building/communityBuilding/deleteBatch'
,
exportXlsUrl
:
"/property-community/building/communityBuilding/exportXls"
,
}
}
}
}
},
},
...
...
src/views/information/capital/capital.vue
浏览文件 @
d1fb9720
...
@@ -23,7 +23,7 @@
...
@@ -23,7 +23,7 @@
<!-- 操作按钮区域 -->
<!-- 操作按钮区域 -->
<div
class=
"table-operator"
>
<div
class=
"table-operator"
>
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
<
a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('t_property_settled')"
>
导出
</a-button
>
<
!--
<a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('t_property_settled')"
>
导出
</a-button>
--
>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-menu
slot=
"overlay"
>
<a-menu
slot=
"overlay"
>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
...
...
src/views/information/house/house.vue
浏览文件 @
d1fb9720
...
@@ -36,7 +36,7 @@
...
@@ -36,7 +36,7 @@
<!-- 操作按钮区域 -->
<!-- 操作按钮区域 -->
<div
class=
"table-operator"
>
<div
class=
"table-operator"
>
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
<a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('
t_property_settled
')"
>
导出
</a-button>
<a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('
房屋管理
')"
>
导出
</a-button>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-menu
slot=
"overlay"
>
<a-menu
slot=
"overlay"
>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
...
@@ -177,7 +177,8 @@
...
@@ -177,7 +177,8 @@
url
:
{
url
:
{
list
:
"/property-community/building/communityRoom/list"
,
list
:
"/property-community/building/communityRoom/list"
,
delete
:
'/property-community/building/communityRoom/delete'
,
delete
:
'/property-community/building/communityRoom/delete'
,
deleteBatch
:
'/property-community/building/communityRoom/deleteBatch'
deleteBatch
:
'/property-community/building/communityRoom/deleteBatch'
,
exportXlsUrl
:
"/property-community/building/communityRoom/exportXls"
}
}
}
}
},
},
...
...
src/views/information/owner/owner.vue
浏览文件 @
d1fb9720
...
@@ -12,14 +12,16 @@
...
@@ -12,14 +12,16 @@
<a-col
:md=
"6"
:sm=
"8"
>
<a-col
:md=
"6"
:sm=
"8"
>
<a-form-model-item
label=
"房屋用途"
>
<a-form-model-item
label=
"房屋用途"
>
<a-select
style=
"width: 100%"
v-model=
"queryParam.chargeType"
placeholder=
"请选择房屋用途"
>
<a-select
style=
"width: 100%"
v-model=
"queryParam.chargeType"
placeholder=
"请选择房屋用途"
>
<a-select-option
v-for=
"item in useOptions"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
<a-select-option
v-for=
"item in useOptions"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
</a-select>
</a-select>
</a-form-model-item>
</a-form-model-item>
</a-col>
</a-col>
<a-col
:md=
"6"
:sm=
"8"
>
<a-col
:md=
"6"
:sm=
"8"
>
<a-form-model-item
label=
"认证状态"
>
<a-form-model-item
label=
"认证状态"
>
<a-select
style=
"width: 100%"
v-model=
"queryParam.chargeType"
placeholder=
"请选择认证状态"
>
<a-select
style=
"width: 100%"
v-model=
"queryParam.chargeType"
placeholder=
"请选择认证状态"
>
<a-select-option
v-for=
"item in certificationOptions"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
<a-select-option
v-for=
"item in certificationOptions"
:key=
"item.value"
:value=
"item.value"
>
{{
item
.
label
}}
</a-select-option>
</a-select>
</a-select>
</a-form-model-item>
</a-form-model-item>
</a-col>
</a-col>
...
@@ -36,17 +38,23 @@
...
@@ -36,17 +38,23 @@
<div
style=
"display:flex"
>
<div
style=
"display:flex"
>
<div
style=
"flex: none;width:200px"
v-if=
"treeData.length"
>
<div
style=
"flex: none;width:200px"
v-if=
"treeData.length"
>
<a-tree
v-if=
"treeDataFlag"
:load-data=
"onLoadData"
:tree-data=
"treeData"
@
select=
"onClickTree"
style=
"max-height: 600px;overflow-y:auto"
/>
<a-tree
v-if=
"treeDataFlag"
:load-data=
"onLoadData"
:tree-data=
"treeData"
@
select=
"onClickTree"
style=
"max-height: 600px;overflow-y:auto"
/>
</div>
</div>
<div
style=
"flex:auto;padding-left:10px"
>
<div
style=
"flex:auto;padding-left:10px"
>
<!-- 操作按钮区域 -->
<!-- 操作按钮区域 -->
<div
class=
"table-operator"
>
<div
class=
"table-operator"
>
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
<a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('t_property_settled')"
>
导出
</a-button>
<a-button
icon=
"download"
@
click=
"downloadExportXls()"
>
模板下载
</a-button>
<a-upload
name=
"file"
:showUploadList=
"false"
:multiple=
"false"
:headers=
"tokenHeader"
:action=
"importExcelUrl"
@
change=
"handleImportExcel"
>
<a-button
type=
"primary"
icon=
"import"
>
导入
</a-button>
</a-upload>
<a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('业主管理')"
>
导出
</a-button>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-menu
slot=
"overlay"
>
<a-menu
slot=
"overlay"
>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
</a-menu>
</a-menu>
<a-button
style=
"margin-left: 8px"
>
批量操作
<a-icon
type=
"down"
/></a-button>
<a-button
style=
"margin-left: 8px"
>
批量操作
<a-icon
type=
"down"
/></a-button>
</a-dropdown>
</a-dropdown>
...
@@ -60,20 +68,10 @@
...
@@ -60,20 +68,10 @@
<a
style=
"margin-left: 24px"
v-if=
"selectedRowKeys.length > 0"
@
click=
"onClearSelected"
>
清空
</a>
<a
style=
"margin-left: 24px"
v-if=
"selectedRowKeys.length > 0"
@
click=
"onClearSelected"
>
清空
</a>
</div>
</div>
<a-table
<a-table
ref=
"table"
size=
"middle"
:scroll=
"
{x:true}" bordered rowKey="id" :columns="columns"
ref=
"table"
:dataSource="dataSource" :pagination="ipagination" :loading="loading"
size=
"middle"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" class="j-table-force-nowrap"
:scroll=
"
{x:true}"
@change="handleTableChange">
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange"
>
<span
slot=
"ownerName"
slot-scope=
"text, record"
>
<span
slot=
"ownerName"
slot-scope=
"text, record"
>
<span>
{{
record
.
ownerName
}}
,
{{
record
.
ownerPhone
}}
</span>
<span>
{{
record
.
ownerName
}}
,
{{
record
.
ownerPhone
}}
</span>
</span>
</span>
...
@@ -89,7 +87,7 @@
...
@@ -89,7 +87,7 @@
<
/template
>
<
/template
>
<
template
v
-
else
-
if
=
"record.auditStatus === 'refuse'"
>
<
template
v
-
else
-
if
=
"record.auditStatus === 'refuse'"
>
<
a
@
click
=
"handleEdit(record)"
>
详情
<
/a
>
<
a
@
click
=
"handleEdit(record)"
>
详情
<
/a
>
<
a
-
divider
type
=
"vertical"
/>
<
a
-
divider
type
=
"vertical"
/>
<
a
-
popconfirm
title
=
"确定删除吗?"
@
confirm
=
"() => handleDelete(record.id)"
placement
=
"topLeft"
>
<
a
-
popconfirm
title
=
"确定删除吗?"
@
confirm
=
"() => handleDelete(record.id)"
placement
=
"topLeft"
>
<
a
>
删除
<
/a
>
<
a
>
删除
<
/a
>
<
/a-popconfirm
>
<
/a-popconfirm
>
...
@@ -97,10 +95,10 @@
...
@@ -97,10 +95,10 @@
<
template
v
-
else
>
<
template
v
-
else
>
<
a
@
click
=
"handleEdit(record)"
>
编辑
<
/a
>
<
a
@
click
=
"handleEdit(record)"
>
编辑
<
/a
>
<
a
-
divider
type
=
"vertical"
/>
<
a
-
divider
type
=
"vertical"
/>
<
a
-
dropdown
>
<
a
-
dropdown
>
<
a
class
=
"ant-dropdown-link"
>
<
a
class
=
"ant-dropdown-link"
>
更多
<
a
-
icon
type
=
"down"
/>
更多
<
a
-
icon
type
=
"down"
/>
<
/a
>
<
/a
>
<
a
-
menu
slot
=
"overlay"
>
<
a
-
menu
slot
=
"overlay"
>
<
a
-
menu
-
item
>
<
a
-
menu
-
item
>
...
@@ -128,91 +126,92 @@
...
@@ -128,91 +126,92 @@
<
/template
>
<
/template
>
<
script
>
<
script
>
import
{
getBuildingListApi
,
getUnitListApi
,
getRoomListApi
}
from
'@/api/api'
import
{
getBuildingListApi
,
getUnitListApi
,
getRoomListApi
,
downloadOwnerTemplate
}
from
'@/api/api'
import
{
JeecgListMixin
}
from
'@/mixins/JeecgListMixin'
import
{
downFile
}
from
'@/api/manage'
import
NoticeModal
from
'./modules/NoticeModal'
import
{
JeecgListMixin
}
from
'@/mixins/JeecgListMixin'
import
{
filterDictTextByCache
}
from
'@/components/dict/JDictSelectUtil'
import
NoticeModal
from
'./modules/NoticeModal'
import
{
RELATION_SHIP
,
filterDictTextByStatic
}
from
'@/assets/static.js'
import
{
filterDictTextByCache
}
from
'@/components/dict/JDictSelectUtil'
import
{
ajaxGetDictItems
,
getDictItemsFromCache
}
from
'@/api/api'
import
{
RELATION_SHIP
,
filterDictTextByStatic
}
from
'@/assets/static.js'
import
{
ajaxGetDictItems
,
getDictItemsFromCache
}
from
'@/api/api'
const
columns
=
[
const
columns
=
[
{
{
title
:
'业主'
,
title
:
'业主'
,
dataIndex
:
'ownerName'
,
dataIndex
:
'ownerName'
,
scopedSlots
:
{
customRender
:
'ownerName'
}
,
scopedSlots
:
{
customRender
:
'ownerName'
}
,
key
:
'ownerName'
,
key
:
'ownerName'
,
align
:
'center'
align
:
'center'
,
}
,
}
,
{
{
title
:
'与业主关系'
,
title
:
'与业主关系'
,
dataIndex
:
'relationShip'
,
dataIndex
:
'relationShip'
,
key
:
'relationShip'
,
key
:
'relationShip'
,
align
:
'center'
,
align
:
'center'
,
customRender
:
function
(
text
)
{
customRender
:
function
(
text
)
{
return
filterDictTextByStatic
(
RELATION_SHIP
,
text
);
return
filterDictTextByStatic
(
RELATION_SHIP
,
text
)
}
}
,
}
,
}
,
{
{
title
:
'住户'
,
title
:
'住户'
,
dataIndex
:
'residentName'
,
dataIndex
:
'residentName'
,
key
:
'residentName'
,
key
:
'residentName'
,
scopedSlots
:
{
customRender
:
'residentName'
}
,
scopedSlots
:
{
customRender
:
'residentName'
}
,
align
:
'center'
align
:
'center'
,
}
,
}
,
{
{
title
:
'房屋用途'
,
title
:
'房屋用途'
,
dataIndex
:
'useTo'
,
dataIndex
:
'useTo'
,
key
:
'useTo'
,
key
:
'useTo'
,
align
:
'center'
,
align
:
'center'
,
customRender
:
function
(
text
)
{
customRender
:
function
(
text
)
{
return
filterDictTextByCache
(
'house_purpose'
,
text
);
return
filterDictTextByCache
(
'house_purpose'
,
text
)
}
}
,
}
,
}
,
{
{
title
:
'房屋编号'
,
title
:
'房屋编号'
,
dataIndex
:
'buildingName'
,
dataIndex
:
'buildingName'
,
key
:
'buildingName'
,
key
:
'buildingName'
,
scopedSlots
:
{
customRender
:
'buildingName'
}
,
scopedSlots
:
{
customRender
:
'buildingName'
}
,
align
:
'center'
align
:
'center'
,
}
,
}
,
{
{
title
:
'建筑面积(m2)'
,
title
:
'建筑面积(m2)'
,
dataIndex
:
'floorSpace'
,
dataIndex
:
'floorSpace'
,
key
:
'floorSpace'
,
key
:
'floorSpace'
,
align
:
'center'
align
:
'center'
,
}
,
}
,
{
{
title
:
'是否认证'
,
title
:
'是否认证'
,
dataIndex
:
'isAuth'
,
dataIndex
:
'isAuth'
,
key
:
'isAuth'
,
key
:
'isAuth'
,
align
:
'center'
,
align
:
'center'
,
customRender
:
function
(
text
)
{
customRender
:
function
(
text
)
{
return
filterDictTextByCache
(
'yn'
,
text
);
return
filterDictTextByCache
(
'yn'
,
text
)
}
}
,
}
,
}
,
{
{
title
:
'审核状态'
,
title
:
'审核状态'
,
dataIndex
:
'auditStatus'
,
dataIndex
:
'auditStatus'
,
key
:
'auditStatus'
,
key
:
'auditStatus'
,
align
:
'center'
,
align
:
'center'
,
customRender
:
function
(
text
)
{
customRender
:
function
(
text
)
{
return
filterDictTextByCache
(
'auditStatus'
,
text
);
return
filterDictTextByCache
(
'auditStatus'
,
text
)
}
}
,
}
,
}
,
{
{
title
:
'操作'
,
title
:
'操作'
,
dataIndex
:
'action'
,
dataIndex
:
'action'
,
scopedSlots
:
{
customRender
:
'action'
}
,
scopedSlots
:
{
customRender
:
'action'
}
,
align
:
'center'
,
align
:
'center'
,
width
:
150
width
:
150
,
}
}
,
]
]
export
default
{
export
default
{
name
:
'PermissionListAsync'
,
name
:
'PermissionListAsync'
,
mixins
:
[
JeecgListMixin
],
mixins
:
[
JeecgListMixin
],
components
:
{
components
:
{
NoticeModal
NoticeModal
,
}
,
}
,
data
()
{
data
()
{
return
{
return
{
...
@@ -222,60 +221,68 @@
...
@@ -222,60 +221,68 @@
// 表头
// 表头
columns
:
columns
,
columns
:
columns
,
url
:
{
url
:
{
list
:
"/property-community/info/communityOwner/list"
,
list
:
'/property-community/info/communityOwner/list'
,
delete
:
'/property-community/info/communityOwner/delete'
,
delete
:
'/property-community/info/communityOwner/delete'
,
deleteBatch
:
'/property-community/info/communityOwner/deleteBatch'
deleteBatch
:
'/property-community/info/communityOwner/deleteBatch'
,
exportXlsUrl
:
'/property-community/info/communityOwner/exportXls'
,
importExcelUrl
:
'property-community/info/communityOwner/importExcel'
,
downloadExcelUrl
:
'property-community/info/communityOwner/downloadOwnerTemplate'
,
}
,
}
,
treeData
:
[]
treeData
:
[],
}
}
}
,
}
,
created
()
{
created
()
{
this
.
getBuildingList
()
this
.
getBuildingList
()
this
.
initDictData
()
this
.
initDictData
()
}
,
}
,
computed
:
{
importExcelUrl
:
function
()
{
return
`${window._CONFIG['domianURL']
}
/${this.url.importExcelUrl
}
`
}
,
}
,
methods
:
{
methods
:
{
initDictData
()
{
initDictData
()
{
//优先从缓存中读取字典配置
//优先从缓存中读取字典配置
if
(
getDictItemsFromCache
(
'owner_certification_status'
))
{
if
(
getDictItemsFromCache
(
'owner_certification_status'
))
{
this
.
useOptions
=
getDictItemsFromCache
(
'house_purpose'
);
this
.
useOptions
=
getDictItemsFromCache
(
'house_purpose'
)
this
.
certificationOptions
=
getDictItemsFromCache
(
'owner_certification_status'
);
this
.
certificationOptions
=
getDictItemsFromCache
(
'owner_certification_status'
)
return
return
}
}
// //根据字典Code, 初始化字典数组
// //根据字典Code, 初始化字典数组
ajaxGetDictItems
(
'house_purpose'
,
null
).
then
((
res
)
=>
{
ajaxGetDictItems
(
'house_purpose'
,
null
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
if
(
res
.
success
)
{
this
.
useOptions
=
res
.
result
;
this
.
useOptions
=
res
.
result
}
}
}
)
}
)
ajaxGetDictItems
(
'owner_certification_status'
,
null
).
then
((
res
)
=>
{
ajaxGetDictItems
(
'owner_certification_status'
,
null
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
if
(
res
.
success
)
{
this
.
certificationOptions
=
res
.
result
;
this
.
certificationOptions
=
res
.
result
}
}
}
)
}
)
}
,
}
,
async
getBuildingList
()
{
async
getBuildingList
()
{
let
{
result
}
=
await
getBuildingListApi
()
let
{
result
}
=
await
getBuildingListApi
()
this
.
treeData
=
result
.
map
(
item
=>
{
this
.
treeData
=
result
.
map
((
item
)
=>
{
return
{
return
{
title
:
item
.
buildingName
,
title
:
item
.
buildingName
,
key
:
item
.
id
key
:
item
.
id
,
}
}
}
)
}
)
}
,
}
,
onClickTree
(
value
,
option
)
{
onClickTree
(
value
,
option
)
{
let
level
=
option
.
node
.
pos
.
split
(
'-'
).
length
let
level
=
option
.
node
.
pos
.
split
(
'-'
).
length
if
(
level
===
2
)
{
if
(
level
===
2
)
{
this
.
queryParam
[
'buildingId'
]
=
value
[
0
]
this
.
queryParam
[
'buildingId'
]
=
value
[
0
]
this
.
queryParam
[
'unitId'
]
=
undefined
this
.
queryParam
[
'unitId'
]
=
undefined
this
.
queryParam
[
'roomId'
]
=
undefined
this
.
queryParam
[
'roomId'
]
=
undefined
}
}
if
(
level
===
3
)
{
if
(
level
===
3
)
{
this
.
queryParam
[
'buildingId'
]
=
undefined
this
.
queryParam
[
'buildingId'
]
=
undefined
this
.
queryParam
[
'unitId'
]
=
value
[
0
]
this
.
queryParam
[
'unitId'
]
=
value
[
0
]
this
.
queryParam
[
'roomId'
]
=
undefined
this
.
queryParam
[
'roomId'
]
=
undefined
}
}
if
(
level
===
4
)
{
if
(
level
===
4
)
{
this
.
queryParam
[
'buildingId'
]
=
undefined
this
.
queryParam
[
'buildingId'
]
=
undefined
this
.
queryParam
[
'unitId'
]
=
undefined
this
.
queryParam
[
'unitId'
]
=
undefined
this
.
queryParam
[
'roomId'
]
=
value
[
0
]
this
.
queryParam
[
'roomId'
]
=
value
[
0
]
...
@@ -284,49 +291,71 @@
...
@@ -284,49 +291,71 @@
}
,
}
,
onSearchReset
()
{
onSearchReset
()
{
this
.
treeDataFlag
=
false
this
.
treeDataFlag
=
false
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
treeDataFlag
=
true
this
.
treeDataFlag
=
true
}
,
30
)
}
,
30
)
this
.
searchReset
()
this
.
searchReset
()
}
,
}
,
onLoadData
(
treeNode
)
{
onLoadData
(
treeNode
)
{
return
new
Promise
(
async
resolve
=>
{
return
new
Promise
(
async
(
resolve
)
=>
{
if
(
treeNode
.
dataRef
.
children
)
{
if
(
treeNode
.
dataRef
.
children
)
{
resolve
();
resolve
()
return
;
return
}
}
if
(
treeNode
.
pos
.
split
(
'-'
).
length
===
2
)
{
if
(
treeNode
.
pos
.
split
(
'-'
).
length
===
2
)
{
let
{
result
}
=
await
getUnitListApi
({
id
:
treeNode
.
eventKey
}
)
let
{
result
}
=
await
getUnitListApi
({
id
:
treeNode
.
eventKey
}
)
treeNode
.
dataRef
.
children
=
result
.
map
(
item
=>
{
treeNode
.
dataRef
.
children
=
result
.
map
((
item
)
=>
{
return
{
return
{
title
:
item
.
unitName
,
title
:
item
.
unitName
,
key
:
item
.
id
key
:
item
.
id
,
}
}
}
)
}
)
this
.
treeData
=
[...
this
.
treeData
];
this
.
treeData
=
[...
this
.
treeData
]
resolve
();
resolve
()
}
else
{
}
else
{
let
{
result
}
=
await
getRoomListApi
({
id
:
treeNode
.
eventKey
}
)
let
{
result
}
=
await
getRoomListApi
({
id
:
treeNode
.
eventKey
}
)
treeNode
.
dataRef
.
children
=
result
.
map
(
item
=>
{
treeNode
.
dataRef
.
children
=
result
.
map
((
item
)
=>
{
return
{
return
{
title
:
item
.
roomNum
,
title
:
item
.
roomNum
,
key
:
item
.
id
,
key
:
item
.
id
,
isLeaf
:
true
isLeaf
:
true
,
}
}
}
)
}
)
this
.
treeData
=
[...
this
.
treeData
];
this
.
treeData
=
[...
this
.
treeData
]
resolve
();
resolve
()
}
}
}
);
}
)
}
,
}
,
onRoutetAdd
(
id
)
{
onRoutetAdd
(
id
)
{
this
.
$router
.
push
({
this
.
$router
.
push
({
path
:
'/information/owner-add?id='
+
id
path
:
'/information/owner-add?id='
+
id
,
}
);
}
)
}
}
,
downloadExportXls
()
{
let
fileName
=
'业主管理模板'
;
downFile
(
this
.
url
.
downloadExcelUrl
,
''
).
then
((
data
)
=>
{
if
(
!
data
)
{
this
.
$message
.
warning
(
'文件下载失败'
)
return
}
}
if
(
typeof
window
.
navigator
.
msSaveBlob
!==
'undefined'
)
{
window
.
navigator
.
msSaveBlob
(
new
Blob
([
data
],
{
type
:
'application/vnd.ms-excel'
}
),
fileName
+
'.xlsx'
)
}
else
{
let
url
=
window
.
URL
.
createObjectURL
(
new
Blob
([
data
],
{
type
:
'application/vnd.ms-excel'
}
))
let
link
=
document
.
createElement
(
'a'
)
link
.
style
.
display
=
'none'
link
.
href
=
url
link
.
setAttribute
(
'download'
,
fileName
+
'.xlsx'
)
document
.
body
.
appendChild
(
link
)
link
.
click
()
document
.
body
.
removeChild
(
link
)
//下载完成移除元素
window
.
URL
.
revokeObjectURL
(
url
)
//释放掉blob对象
}
}
}
)
}
,
}
,
}
<
/script
>
<
/script
>
<
style
scoped
>
<
style
scoped
>
@
import
'~@assets/less/common.less'
;
@
import
'~@assets/less/common.less'
;
<
/style>
<
/style>
\ No newline at end of file
src/views/information/worker/worker.vue
浏览文件 @
d1fb9720
...
@@ -23,7 +23,7 @@
...
@@ -23,7 +23,7 @@
<!-- 操作按钮区域 -->
<!-- 操作按钮区域 -->
<div
class=
"table-operator"
>
<div
class=
"table-operator"
>
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
<
a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('t_property_settled')"
>
导出
</a-button
>
<
!--
<a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('t_property_settled')"
>
导出
</a-button>
--
>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-menu
slot=
"overlay"
>
<a-menu
slot=
"overlay"
>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
...
...
src/views/property/advertisement/advertisement.vue
浏览文件 @
d1fb9720
...
@@ -23,7 +23,7 @@
...
@@ -23,7 +23,7 @@
<!-- 操作按钮区域 -->
<!-- 操作按钮区域 -->
<div
class=
"table-operator"
>
<div
class=
"table-operator"
>
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
<
a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('t_property_settled')"
>
导出
</a-button
>
<
!--
<a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('t_property_settled')"
>
导出
</a-button>
--
>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-menu
slot=
"overlay"
>
<a-menu
slot=
"overlay"
>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
...
...
src/views/property/complaint/complaint.vue
浏览文件 @
d1fb9720
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
<!-- 操作按钮区域 -->
<!-- 操作按钮区域 -->
<div
class=
"table-operator"
>
<div
class=
"table-operator"
>
<!--
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
-->
<!--
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
-->
<
a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('t_property_settled')"
>
导出
</a-button
>
<
!--
<a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('t_property_settled')"
>
导出
</a-button>
--
>
<!--
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<!--
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-menu
slot=
"overlay"
>
<a-menu
slot=
"overlay"
>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
...
...
src/views/property/maintenance/maintenance.vue
浏览文件 @
d1fb9720
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
<!-- 操作按钮区域 -->
<!-- 操作按钮区域 -->
<div
class=
"table-operator"
>
<div
class=
"table-operator"
>
<!--
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
-->
<!--
<a-button
@
click=
"handleAdd"
type=
"primary"
icon=
"plus"
>
新增
</a-button>
-->
<
a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('t_property_settled')"
>
导出
</a-button
>
<
!--
<a-button
type=
"primary"
icon=
"download"
@
click=
"handleExportXls('t_property_settled')"
>
导出
</a-button>
--
>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-dropdown
v-if=
"selectedRowKeys.length > 0"
>
<a-menu
slot=
"overlay"
>
<a-menu
slot=
"overlay"
>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
<a-menu-item
key=
"1"
@
click=
"batchDel"
><a-icon
type=
"delete"
/>
删除
</a-menu-item>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论