|
|
@ -1,6 +1,7 @@ |
|
|
|
<template> |
|
|
|
<el-card shadow="never" class="aui-card--fill"> |
|
|
|
<div class="mode-block"> |
|
|
|
<div class="mode-block resi-container"> |
|
|
|
<el-card ref="searchCard" class="search-card"> |
|
|
|
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()"> |
|
|
|
<el-form-item label="组织机构" label-width="100px" |
|
|
|
prop="agencyId"> |
|
|
@ -27,7 +28,7 @@ |
|
|
|
</template> |
|
|
|
</el-cascader> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="入黑名单时间" |
|
|
|
<el-form-item label="时间范围" |
|
|
|
prop="startTime"> |
|
|
|
<el-date-picker v-model="timeRange" |
|
|
|
type="daterange" |
|
|
@ -40,24 +41,34 @@ |
|
|
|
</el-date-picker> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item> |
|
|
|
<el-button @click="getDataList()">{{ $t('query') }}</el-button> |
|
|
|
<el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%"> |
|
|
|
</el-card> |
|
|
|
<el-card class="resi-card-table"> |
|
|
|
<div class="resi-row-btn"> |
|
|
|
<el-button @click="totalHandle" |
|
|
|
class="diy-button--add" |
|
|
|
size="small">总计</el-button> |
|
|
|
<el-button @click="exportHandle" |
|
|
|
class="diy-button--reset" |
|
|
|
size="small">导出</el-button> |
|
|
|
</div> |
|
|
|
<el-table class="resi-table" v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%"> |
|
|
|
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column> |
|
|
|
<el-table-column prop="agencyName" label="组织结构" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="neighbourhoodsCount" label="小区数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="houseCount" label="房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="houseSelfCount" label="自住房屋总" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="houseLeaseCount" label="出租房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="houseIdleCount" label="闲置房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="userCount" label="居民总数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="userResiCount" label="常住人口数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="userFloatCount" label="流动人口数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="houseIncr" label="新增房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="userIncr" label="新增人口数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="houseModify" label="修改房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column prop="userModify" label="修改人口数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="160" fixed prop="agencyName" label="组织结构" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="80" prop="neighbourhoodsCount" label="小区数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="80" prop="houseCount" label="房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="houseSelfCount" label="自住房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="houseLeaseCount" label="出租房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="houseIdleCount" label="闲置房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="userCount" label="居民总数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="userResiCount" label="常住人口数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="userFloatCount" label="流动人口数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="houseIncr" label="新增房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="userIncr" label="新增人口数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="houseModify" label="修改房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="userModify" label="修改人口数" header-align="center" align="center"></el-table-column> |
|
|
|
</el-table> |
|
|
|
<el-pagination |
|
|
|
:current-page="page" |
|
|
@ -68,8 +79,33 @@ |
|
|
|
@size-change="pageSizeChangeHandle" |
|
|
|
@current-change="pageCurrentChangeHandle"> |
|
|
|
</el-pagination> |
|
|
|
</el-card> |
|
|
|
<!-- 弹窗, 新增 / 修改 --> |
|
|
|
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update> |
|
|
|
<el-dialog |
|
|
|
title="总计" |
|
|
|
:visible.sync="totalVisible" |
|
|
|
width="60%"> |
|
|
|
<template> |
|
|
|
<el-table |
|
|
|
:data="tableData" |
|
|
|
style="width: 100%"> |
|
|
|
<el-table-column width="160" fixed prop="agencyName" label="组织结构" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="80" prop="neighbourhoodsCount" label="小区数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="80" prop="houseCount" label="房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="120" prop="houseSelfCount" label="自住房屋总数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="houseLeaseCount" label="出租房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="houseIdleCount" label="闲置房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="userCount" label="居民总数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="userResiCount" label="常住人口数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="userFloatCount" label="流动人口数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="houseIncr" label="新增房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="userIncr" label="新增人口数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="houseModify" label="修改房屋数" header-align="center" align="center"></el-table-column> |
|
|
|
<el-table-column width="100" prop="userModify" label="修改人口数" header-align="center" align="center"></el-table-column> |
|
|
|
</el-table> |
|
|
|
</template> |
|
|
|
</el-dialog> |
|
|
|
</div> |
|
|
|
</el-card> |
|
|
|
</template> |
|
|
@ -85,13 +121,16 @@ export default { |
|
|
|
getDataListURL: '/data/stats/factAgencyUserHouseDaily/page', |
|
|
|
getDataListIsPage: true, |
|
|
|
deleteURL: '/data/stats/factAgencyUserHouseDaily', |
|
|
|
deleteIsBatch: true |
|
|
|
deleteIsBatch: true, |
|
|
|
exportURL: '/data/stats/factAgencyUserHouseDaily/export' |
|
|
|
}, |
|
|
|
optionsA: [], |
|
|
|
totalVisible: false, |
|
|
|
timeRange: '', |
|
|
|
dataForm: { |
|
|
|
id: '' |
|
|
|
}, |
|
|
|
tableData: [] |
|
|
|
} |
|
|
|
}, |
|
|
|
components: { |
|
|
@ -113,13 +152,58 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
totalHandle () { |
|
|
|
this.tableData = [] |
|
|
|
this.$http |
|
|
|
.get('/data/stats/factAgencyUserHouseDaily/total',{params: this.dataForm}) |
|
|
|
.then(({ data: res }) => { |
|
|
|
if (res.code !== 0) { |
|
|
|
return this.$message.error(res.msg) |
|
|
|
} else { |
|
|
|
console.log('获取查询详情成功', res.data) |
|
|
|
this.tableData.push(res.data) |
|
|
|
} |
|
|
|
}) |
|
|
|
.catch(() => { |
|
|
|
return this.$message.error('网络错误') |
|
|
|
}) |
|
|
|
this.totalVisible = true |
|
|
|
}, |
|
|
|
exportHandle () { |
|
|
|
const url = this.mixinViewModuleOptions.exportURL |
|
|
|
this.$http({ |
|
|
|
method: 'GET', |
|
|
|
url, |
|
|
|
responseType: 'blob', |
|
|
|
params: this.dataForm |
|
|
|
}).then(res => { |
|
|
|
// this.download(res.data, title + '.xls') |
|
|
|
if (res.headers["content-disposition"]) { |
|
|
|
let fileName = window.decodeURI(res.headers["content-disposition"].split(";")[1].split("=")[1]) |
|
|
|
console.log('filename', fileName) |
|
|
|
let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' }) |
|
|
|
var url = window.URL.createObjectURL(blob) |
|
|
|
var aLink = document.createElement('a') |
|
|
|
aLink.style.display = 'none' |
|
|
|
aLink.href = url |
|
|
|
aLink.setAttribute('download', fileName) |
|
|
|
document.body.appendChild(aLink) |
|
|
|
aLink.click() |
|
|
|
document.body.removeChild(aLink) //下载完成移除元素 |
|
|
|
window.URL.revokeObjectURL(url) //释放掉blob对象 |
|
|
|
} else this.$message.error('下载失败') |
|
|
|
}).catch(err => { |
|
|
|
console.log('err', err) |
|
|
|
return this.$message.error('网络错误') |
|
|
|
}) |
|
|
|
}, |
|
|
|
cascaderClick (nodeData) { |
|
|
|
this.dataForm.objectId = nodeData.objectId; |
|
|
|
this.dataForm.objectType = nodeData.objectType |
|
|
|
this.$refs.cascaderUnit.checkedValue = nodeData.objectId; |
|
|
|
this.$refs.cascaderUnit.computePresentText(); |
|
|
|
this.$refs.cascaderUnit.toggleDropDownVisible(false); |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
getGridList() { |
|
|
|
const { user } = this.$store.state |
|
|
@ -145,7 +229,7 @@ export default { |
|
|
|
} |
|
|
|
</script> |
|
|
|
<style> |
|
|
|
.block{ |
|
|
|
.block{ |
|
|
|
position: absolute; |
|
|
|
left: 0px; |
|
|
|
display: inline-block; |
|
|
@ -153,7 +237,80 @@ export default { |
|
|
|
height: 50px; |
|
|
|
background: #fff; |
|
|
|
} |
|
|
|
.cascader-block .el-cascader-node>.el-radio{ |
|
|
|
.cascader-block .el-cascader-node>.el-radio{ |
|
|
|
display: none; |
|
|
|
} |
|
|
|
</style> |
|
|
|
<style lang="scss" scoped> |
|
|
|
.blacklist-reason { |
|
|
|
width: 100%; |
|
|
|
height: 80px; |
|
|
|
border: 1px solid #e4e4e4; |
|
|
|
border-radius: 4px; |
|
|
|
resize: none; |
|
|
|
padding: 8px; |
|
|
|
box-sizing: border-box; |
|
|
|
} |
|
|
|
</style> |
|
|
|
<style lang="scss" scoped> |
|
|
|
@import "@/assets/scss/buttonstyle.scss"; |
|
|
|
|
|
|
|
.resi-container .resi-card-table { |
|
|
|
::v-deep .el-table th { |
|
|
|
color: #fff; |
|
|
|
background-color: rgba(33, 149, 254, 1); |
|
|
|
// border-right: 1px solid rgba(33, 149, 254, 1); |
|
|
|
} |
|
|
|
} |
|
|
|
.resi-table { |
|
|
|
::v-deep .el-button--text { |
|
|
|
text-decoration: underline; |
|
|
|
} |
|
|
|
::v-deep .btn-color-del { |
|
|
|
margin-left: 10px; |
|
|
|
color: rgba(213, 16, 16, 1); |
|
|
|
} |
|
|
|
::v-deep .btn-color-edit { |
|
|
|
color: rgba(0, 167, 169, 1); |
|
|
|
} |
|
|
|
} |
|
|
|
.form-wr { |
|
|
|
.input-width { |
|
|
|
width: 260px; |
|
|
|
|
|
|
|
} |
|
|
|
.input-width-textarea { |
|
|
|
width: 500px; |
|
|
|
} |
|
|
|
.imsg-list { |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
.imgs-item { |
|
|
|
position: relative; |
|
|
|
margin-right: 10px; |
|
|
|
.el-icon-delete { |
|
|
|
position: absolute; |
|
|
|
top: 0; |
|
|
|
right: 0; |
|
|
|
font-size: 18px; |
|
|
|
color: red; |
|
|
|
z-index: 3; |
|
|
|
cursor: pointer; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
.div-content { |
|
|
|
width: 100%; |
|
|
|
overflow: hidden; |
|
|
|
text-overflow: ellipsis; |
|
|
|
white-space: nowrap; |
|
|
|
} |
|
|
|
.resi-row-btn { |
|
|
|
margin-bottom: 13px; |
|
|
|
.upload-btn { |
|
|
|
display: inline-block; |
|
|
|
margin: 0 10px; |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |
|
|
|