epmet pc工作端
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.

352 lines
6.9 KiB

3 years ago
<template>
<div class="m-pop" ref="pop" @mousewheel="handleWheel" v-show="!hidden">
<div class="info">
<div v-if="type === '1'">
<div class="u-info-title">居民信息</div>
<div class="item">
姓名
<span>{{ info.user_name || "--" }}</span>
</div>
<div class="item">
所属网格
<span>{{ info.grid || "--" }}</span>
</div>
<div class="item">
所属小区
<span>{{ info.house || "--" }}</span>
</div>
<div class="item">
手机号
<span>{{ info.telephone || "--" }}</span>
</div>
<div class="item">
性别
<span>{{ info.genderShow || "--" }}</span>
</div>
<div class="item">
身份证号
<span>{{ info.idcard || "--" }}</span>
</div>
<div class="item">
工作单位
<span>{{ info.workunit || "--" }}</span>
</div>
<div class="item">
人户状况
<span>{{ info.household || "--" }}</span>
</div>
<div class="item">
人员类别
<span>{{ info.classtype || "--" }}</span>
</div>
<div @click="handleClickBtn('watch-resi')" class="more-btn">
更多
</div>
<div class="operate">
<div
@click="handleClickBtn('create-demand')"
v-if="info.agencyId == $store.state.user.agencyId"
class="btn z-blue"
>
发布需求
</div>
<div
v-if="
info.agencyId == $store.state.user.agencyId &&
type === 'volunteer'
"
@click="handleClickBtn('create-service')"
class="btn z-yellow"
>
发起服务
</div>
</div>
</div>
<div v-if="type === '2'">
<div class="u-info-title">小区信息</div>
<div class="item">
所属组织
<span>{{ info.community || "--" }}</span>
</div>
<div class="item">
所属网格
<span>{{ info.grid || "--" }}</span>
</div>
<div class="item">
小区名称
<span>{{ info.village_name || "--" }}</span>
</div>
<div class="item">
关联物业
<span>{{ info.property || "--" }}</span>
</div>
<div class="item">
实有楼栋
<span>{{ info.building || "--" }}</span>
</div>
</div>
<div v-if="type === '3'">
<div class="u-info-title">楼栋信息</div>
<div class="item">
所属小区
<span>{{ info.village_name || "--" }}</span>
</div>
<div class="item">
楼栋名称
<span>{{ info.village_name || "--" }}</span>
</div>
<div class="item">
楼栋类型
<span>{{ info.building_type || "--" }}</span>
</div>
<div class="item">
单元数
<span>{{ info.unit_count || "--" }}</span>
</div>
<div class="item">
层数
<span>{{ info.levels_count || "--" }}</span>
</div>
<div class="item">
总户数
<span>{{ info.households || "--" }}</span>
</div>
<div class="item">
人口数
<span>{{ info.resident_count || "--" }}</span>
</div>
<div class="item">
楼长姓名
<span>{{ info.hm_name || "--" }}</span>
</div>
<div class="item">
楼长电话
<span>{{ info.hm_phone || "--" }}</span>
</div>
</div>
<div v-if="type === '4'">
<div class="u-info-title">房屋信息</div>
<div class="item">
房屋名称
<span>{{ info.title || "--" }}</span>
</div>
<div class="item">
房屋类型
<span>{{ info.house_type || "--" }}</span>
</div>
<div class="item">
房屋用途
<span>{{ info.house_usage || "--" }}</span>
</div>
<div class="item">
房屋状态
<span>{{ info.house_state || "--" }}</span>
</div>
<div class="item">
房主姓名
<span>{{ info.holder_name || "--" }}</span>
</div>
<div class="item">
联系方式
<span>{{ info.holder_phone || "--" }}</span>
</div>
<div class="item">
房主身份证
<span>{{ info.holder_idcard || "--" }}</span>
</div>
<div @click="handleClickBtn('watch-house')" class="more-btn">
更多
</div>
3 years ago
</div>
</div>
</div>
</template>
<script>
import { requestPost, requestGet } from "@/js/dai/request";
export default {
name: "popup",
props: {
item: {
type: Object,
default: () => ({}),
},
},
data() {
return {
hidden: true,
type: "",
srcItem: {},
info: {},
list: [],
};
},
computed: {},
watch: {},
mounted() {},
methods: {
handleWheel(e) {
if (this.$refs.pop.clientHeight >= 321) {
e.stopPropagation();
}
},
handleClickBtn(type) {
this.$emit("operate", type, {
type: this.type,
id: this.srcItem.id,
...this.info,
});
},
handleClickListItem(item) {
console.log("handleClickListItem", item);
this.$emit("clickListItem", item);
},
async show(item) {
console.log("-----------------show:", item);
const { type, latitude, longitude } = item;
if (!type) {
return false;
}
if (!latitude || !longitude) {
this.$message.warning("请先完善坐标位置");
return false;
}
this.type = item.type;
this.srcItem = item;
this.info = item;
this.hidden = false;
return true;
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/scss/c/config.scss";
@import "@/assets/scss/c/function.scss";
@import "@/assets/scss/modules/visual/c/common.scss";
.m-pop {
@include scrollBar2;
width: 450px;
color: #fff;
font-size: 14px;
line-height: 20px;
max-height: 500px;
overflow-y: auto;
.info {
padding: 10px;
.u-info-title {
margin-bottom: 10px;
font-size: 24px;
font-weight: bold;
color: #69efff;
line-height: 40px;
}
.item-pics {
display: flex;
margin: 20px 0;
img {
display: block;
width: 32%;
height: 90px;
margin-right: 9px;
object-fit: cover;
}
}
}
.item {
@include toe;
font-size: 18px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 34px;
}
.list {
.item {
display: flex;
align-items: center;
margin-bottom: 5px;
padding: 5px;
border-bottom: 1px dashed #124584;
&:last-child {
border-bottom: none;
}
.item-cnt {
@include toe;
width: 90%;
}
.i-arrow {
margin-left: auto;
}
}
}
.operate {
display: flex;
justify-content: center;
}
.more-btn {
position: absolute;
right: 20px;
top: 30px;
width: 60px;
height: 24px;
background: rgba(221, 141, 2, 0.57);
border: 1px solid #dd8d02;
border-radius: 2px;
font-size: 16px;
font-family: PingFang SC;
font-weight: 400;
color: #ffffff;
line-height: 24px;
text-align: center;
cursor: pointer;
}
.btn {
margin-top: 20px;
margin-right: 20px;
width: 110px;
line-height: 30px;
border: 1px solid #eee;
text-align: center;
font-size: 18px;
border-radius: 2px;
cursor: pointer;
&.z-blue {
background: #09a5ff;
border-color: #09a5ff;
}
&.z-yellow {
background: #fe6b53;
border-color: #fe6b53;
}
}
}
</style>