市北互联平台前端仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

442 lines
11 KiB

4 years ago
<template>
<div class="div_community_info"
@click="handleShowAllUser()">
4 years ago
<div class="div_select">
<img src="../../../../assets/img/shuju/title-tip.png"
alt />
<div class="customer_select">
4 years ago
<!-- <span>{{neighborHoodName+'-'}}</span> -->
4 years ago
<el-select v-model="selBuildingId"
:popper-append-to-body="false"
placeholder="请选择">
4 years ago
<el-option v-for="(item,index) in buildingArray"
4 years ago
:key="item.buildingId"
:label="item.buildingName"
4 years ago
:value="item.buildingId"
4 years ago
@click.native="handleClickBuilding(index)">
4 years ago
</el-option>
</el-select>
</div>
</div>
<div class="div_room_bar">
<el-scrollbar style="height:100%">
<div v-if="roomLoaded"
class="div_room">
<div v-for="(item,index) in roomArray"
:key="index"
:class="['item',{'item_sel':selHouseIndex==index}]"
@click="handleClickRoom(index)">
<span>{{item.houseName}}</span>
<div class="icon_party">
<img :src="item.partyUrl"
alt />
</div>
<div class="icon_category">
<img v-for="(iconItem,iconIndex) in item.iconArrayShow"
:key="iconIndex"
:src="iconItem.iconUrl"
alt />
</div>
<div @click.stop="handleShowAllUser(index)"
class="div_user">
<span>全部成员</span>
<img src="../../../../assets/img/xiala.png"
alt />
<div class="user_list"
4 years ago
v-show="item.showAllUser&&userArray.length>0">
<div v-for="(userItem,userIndex) in userArray"
:key="userIndex"
class="user_item"
4 years ago
@click.stop="handleClickUser(userItem.userId)">
<div class="user_item_content">
<div class="name">{{userItem.name}}</div>
4 years ago
<img src="../../../../assets/img/jinru.png"
alt />
</div>
<div :class="['item_line',{'last_line':userIndex==(userArray.length-1)}]"></div>
</div>
</div>
4 years ago
</div>
4 years ago
</div>
</div>
</el-scrollbar>
</div>
4 years ago
</div>
</template>
<script>
import { mapGetters } from "vuex";
import { Loading } from 'element-ui'; //引入Loading服务
import { requestPost } from "@/js/dai/request";
let loading;//加载动画
export default {
data () {
return {
//父组件传过来的小区id
neighborHoodId: '',
neighborHoodName: '',
4 years ago
buildingArray: [],//楼栋下拉框数据
4 years ago
selBuildingId: '',
selBuildingName: '',
roomLoaded: false,
4 years ago
roomArray: [],
4 years ago
selHouseId: '',
selHouseName: '',
selHouseIndex: 0,
4 years ago
userArray: [],
4 years ago
selUserName: '',
selUserId: '',
orgData: {},//当前组织对象
orgId: '',
orgLevel: '',
//下钻层级记录
runNum: 0,
runAgencyArray: [],
}
},
async mounted () {
},
methods: {
//小区id,小区名称
4 years ago
async initData (neighborHoodId, neighborHoodName) {
this.roomLoaded = false
this.neighborHoodId = neighborHoodId
this.neighborHoodName = neighborHoodName
//加载楼栋数据
await this.loadBuilding()
if (this.selBuildingId) {
await this.loadRoom()
this.roomLoaded = true
}
},
4 years ago
//切换楼栋
4 years ago
async handleClickBuilding (index) {
4 years ago
this.selBuildingId = this.buildingArray[index].buildingId
this.selBuildingName = this.buildingArray[index].buildingName
4 years ago
await this.loadRoom()
this.roomLoaded = true
4 years ago
this.$emit('refreshInfoList', this.selBuildingId, 'building')
},
4 years ago
//选择房间
handleClickRoom (index) {
this.selHouseIndex = index
4 years ago
this.selHouseId = this.roomArray[index].houseId
this.selHouseName = this.roomArray[index].houseName
// this.$emit('refreshInfoList', this.selHouseId, 'room')
4 years ago
},
//点击全部成员
async handleShowAllUser (selIndex) {
4 years ago
// this.startLoading()
4 years ago
await this.loadUser(this.roomArray[selIndex].houseId, selIndex)
4 years ago
this.roomArray.forEach((element, index) => {
let obj = JSON.parse(JSON.stringify(element))
if (index === selIndex) {
obj.showAllUser = !obj.showAllUser
this.$set(this.roomArray, selIndex, obj)
4 years ago
4 years ago
} else {
obj.showAllUser = false
this.$set(this.roomArray, index, obj)
// element.showAllUser = false
}
});
4 years ago
// this.endLoading()
4 years ago
},
//点击用户
4 years ago
handleClickUser (userId) {
this.$emit('toSubAgency', 'people', userId, "")
4 years ago
},
//获取右侧infolist数据
async loadList () {
},
//加载楼栋数据
async loadBuilding () {
4 years ago
const url = "/gov/org/agency/baseinfofamilybuilding"
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/agency/baseinfofamilybuilding"
4 years ago
let params = {
4 years ago
neighborHoodId: this.neighborHoodId
4 years ago
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
4 years ago
this.buildingArray = data
4 years ago
this.buildingArray.forEach(item => {
4 years ago
if (!this.buildingArray[0].buildingName) {
item.buildingName = '楼'
}
4 years ago
});
if (this.buildingArray.length > 0) {
this.selBuildingId = this.buildingArray[0].buildingId
this.selBuildingName = this.buildingArray[0].buildingName
4 years ago
4 years ago
} else {
this.selBuildingId = ''
this.selBuildingName = ''
}
} else {
this.$message.error(msg)
}
},
//加载房间数据
async loadRoom () {
4 years ago
const url = "/gov/org/ichouse/houselist"
// const url = "http://yapi.elinkservice.cn/mock/245/gov/org/ichouse/houselist"
4 years ago
let params = {
buildingId: this.selBuildingId
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
4 years ago
this.roomArray = data
4 years ago
if (this.roomArray.length > 0) {
this.roomArray.forEach(roomItem => {
let iconArrayShow = JSON.parse(JSON.stringify(roomItem.categoryList))
4 years ago
let iconArray = []
4 years ago
4 years ago
if (iconArrayShow.length > 0) {
if (iconArrayShow[0].isSpecial === '1') {//第一个图标是党员
roomItem.isParty = true
roomItem.partyUrl = iconArrayShow[0].iconUrl
iconArrayShow.shift();//删除第一个数据
} else {
roomItem.isParty = false
}
}
4 years ago
if (iconArrayShow.length > 4) {//去前四个
for (let i = 0; i < 4; i++) {
iconArray.push(iconArrayShow[i])
}
} else {
iconArray = iconArrayShow
}
4 years ago
this.$nextTick(() => {
// ref_tree 元素的ref value 绑定的node-key
4 years ago
roomItem.iconArrayShow = iconArray
4 years ago
});
roomItem.showAllUser = false
});
}
} else {
this.$message.error(msg)
}
},
//加载成员数据
async loadUser (houseId, index) {
4 years ago
const url = "/epmetuser/icresiuser/getpeoplebyroom"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icresiuser/getpeoplebyroom"
4 years ago
let params = {
homeId: houseId
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
4 years ago
this.userArray = data
if (this.userArray.length === 0) {
this.$message.warning('该房间下没有住户')
}
4 years ago
} else {
this.$message.error(msg)
}
},
//开启加载动画
startLoading () {
loading = Loading.service({
lock: true, //是否锁定
text: '正在加载……', //加载中需要显示的文字
background: 'rgba(0,0,0,.7)' //背景颜色
});
},
//结束加载动画
endLoading () {
//clearTimeout(timer);
if (loading) {
loading.close();
}
},
},
props: {
},
computed: {
4 years ago
// selectWidth () {
// let width = this.selHouseName.length * 200
// console.log(width)
// return width + 'px';
// },
4 years ago
mapHeight () {
return this.clientHeight - 120;
},
// zoom: {
// get () {
// //根据不同屏幕分辨率,控制zoom大小
// if (this.clientHeight < 900) {
// return 2.3
// } else {
// return 2.8
// }
// },
// set (value) {
// }
// },
...mapGetters(["clientHeight"])
},
components: {},
}
</script>
<style
lang="scss"
src="@/assets/scss/modules/visual/basicInfoMain.scss"
scoped
></style>
<style lang=scss scoped>
.customer_select {
/* 未选中任何选项的时候 placeholder的样式 需要先选中父元素 增加权重 */
/deep/ input::-webkit-input-placeholder {
color: #fff;
}
/deep/ input::-moz-input-placeholder {
color: #fff;
}
/deep/ input::-ms-input-placeholder {
color: #fff;
}
/* 修改的是el-input的样式 */
/* 一种方法是设置最里层el-input__inner的背景色 外层的两级父元素设置为透明色 */
/* 另一种方法是从el-select到el-input__inenr的背景色都设置为需要的颜色 */
/deep/ .el-select,
/deep/ .el-input,
/deep/ .el-input__inner {
background-color: #08164d00;
color: #fff;
border: 0px;
border-radius: 0px;
text-align: left;
font-size: 22px;
font-family: PingFang SC;
font-weight: 800;
color: #ffffff;
display: flex;
}
/* el-input聚焦的时候 外层的border会有一个样式 */
/deep/ .el-select .el-input.is-focus .el-input__inner {
border: 0px;
}
/* 修改的是el-input上下的小图标的颜色 */
4 years ago
/deep/ .el-select .el-input .el-select__caret::before {
4 years ago
color: #fff;
4 years ago
content: "";
background: url("../../../../assets/img/xiala.png") center center no-repeat;
position: absolute;
width: 100%;
height: 100%;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
4 years ago
}
/* 修改总体选项的样式 最外层 */
/deep/ .el-select-dropdown {
background-color: #08164d;
margin: 0px;
border: 0px;
border-radius: 0px;
}
/* 修改选项整体的样式 */
/deep/ .el-select-dropdown__list {
padding: 6px 0 20px 0;
}
4 years ago
/* 修改单个的选项的样式 */
/deep/ .el-select-dropdown__item {
background-color: transparent;
color: #fff;
}
/* item选项的hover样式 */
/deep/ .el-select-dropdown__item.hover,
/deep/ .el-select-dropdown__item:hover {
color: #409eff;
}
/* 修改的是下拉框选项内容上方的尖角 */
/deep/ .el-popper .popper__arrow,
.el-popper .popper__arrow::after {
display: none;
}
}
</style>
<style lang=scss >
.el-scrollbar__wrap {
overflow-x: hidden !important;
}
</style>