Files
dvcp_v2_webapp/project/beta/grid/AppBuildMap/toolBar/communityOverview.vue
2022-06-06 16:02:33 +08:00

117 lines
2.4 KiB
Vue

<template>
<section class="communityOverview">
<ai-title title="小区总览"/>
<div class="units" v-if="Object.keys(buildingUnits).length>0">
<div class="building" v-for="(value,name) in buildingUnits" :key="name">
<div class="unit" v-for="(op,j) in value" :key="j" @click="sta.selectedBuilding(op,j+1)"
:class="{selected:sta.unitNumber==j+1 && sta.currentBuilding.buildingNumber==name}">
<b>{{ name}}</b>
<div>{{ j+1 }}单元</div>
</div>
</div>
</div>
<AiEmpty v-else>暂无楼栋信息,请进入楼栋管理添加</AiEmpty>
</section>
</template>
<script>
export default {
name: "communityOverview",
inject: ['root', 'sta'],
computed: {
buildingUnits() {
let obj = {}
this.units.map(e => {
for(let i=0;i<e.unitNumber;i++){
obj[e.buildingNumber]?.push(e) || (obj[e.buildingNumber] = [e])
}
})
return obj;
}
},
data() {
return {
units: []
}
},
methods: {
getUnits(communityId) {
this.root.instance.post("/app/appcommunitybuildinginfo/list", null, {
params: {
communityId,
size: 999
}
}).then(res => {
if (res?.data) {
this.units = res.data.records
}
})
}
},
created() {
this.getUnits(this.root.isFormDv ? this.root.info.communityId : this.$route.query.communityId)
}
}
</script>
<style lang="scss" scoped>
.communityOverview {
max-width: 400px;
.units {
display: flex;
flex-wrap: wrap;
padding: 0 20px 20px;
align-items: flex-start;
.building {
display: flex;
align-items: center;
height: auto;
flex-wrap: wrap;
.unit {
margin-right: 10px;
margin-bottom: 10px;
&:nth-of-type(5) {
margin-right: 0;
}
}
}
.unit {
width: 64px;
height: 56px;
background: #F8FBFF;
border-radius: 2px 0 0 2px;
border: 1px solid #829CCF;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-size: 12px;
color: #999;
cursor: pointer;
b {
color: #424242;
}
&.selected {
color: #fff;
background: #2266FF;
b {
color: #fff;
}
}
}
}
.ai-empty {
height: 240px;
}
}
</style>