After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 575 B |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 9.4 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 1.5 KiB |
@ -0,0 +1,86 @@ |
|||
.g-main{ |
|||
width: 100%; |
|||
height: 100%; |
|||
display: flex; |
|||
flex-direction: column; |
|||
padding:25px 16px; |
|||
box-sizing: border-box; |
|||
.top{ |
|||
display: flex; |
|||
height: calc(50vh - 104px); |
|||
.left{ |
|||
width: 320px; |
|||
height: 100%; |
|||
margin-right:16px; |
|||
overflow-y: scroll; |
|||
} |
|||
.right{ |
|||
flex: 1; |
|||
overflow-y: scroll; |
|||
|
|||
} |
|||
} |
|||
.bottom{ |
|||
height: calc(50vh - 104px); |
|||
margin-top: 16px; |
|||
display: flex; |
|||
.left{ |
|||
width: 320px; |
|||
height: 100%; |
|||
margin-right:16px; |
|||
overflow-y: scroll; |
|||
|
|||
} |
|||
.right{ |
|||
flex: 1; |
|||
overflow-y: scroll; |
|||
|
|||
} |
|||
} |
|||
|
|||
} |
|||
.card{ |
|||
background-color: #fff; |
|||
padding: 10px 16px 16px; |
|||
overflow: hidden; |
|||
height: 100%; |
|||
display: flex; |
|||
flex-direction: column; |
|||
.title{ |
|||
font-family: PingFang SC; |
|||
font-weight: bold; |
|||
color: #333333; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: space-between; |
|||
img{ |
|||
width: 24px; |
|||
height: 24px; |
|||
} |
|||
} |
|||
.bgC{ |
|||
flex: 1; |
|||
background-color: #f5f7fa; |
|||
border-radius: 2px; |
|||
overflow-y: scroll; |
|||
display: flex; |
|||
flex-direction: column; |
|||
padding: 0 16px; |
|||
.item{ |
|||
margin-top: 19px; |
|||
.value{ |
|||
color: #333333; |
|||
font-family: PingFang SC; |
|||
font-weight: 400; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
.gray{ |
|||
color: #000000; |
|||
opacity: 0.65; |
|||
} |
|||
.bgf{ |
|||
background-color: #fff ; |
|||
margin-top: 0 !important; |
|||
} |
@ -0,0 +1,20 @@ |
|||
|
|||
const huaXiang ={ |
|||
state: { |
|||
userInfo:null || JSON.parse(localStorage.getItem('huaX')) |
|||
}, |
|||
mutations: { |
|||
setData(state, payload) { |
|||
state.userInfo = payload; |
|||
} |
|||
}, |
|||
actions: { |
|||
saveData({ commit }, payload) { |
|||
console.log(payload,'vueX接参'); |
|||
commit('setData', payload); |
|||
localStorage.setItem('huaX', JSON.stringify(payload)); |
|||
} |
|||
} |
|||
}; |
|||
|
|||
export default huaXiang; |
@ -0,0 +1,99 @@ |
|||
<template> |
|||
<div class=""> |
|||
<div v-for="(item, index) in familyList" :key="index" class="familylist"> |
|||
<div :class="['item', {'bgf':index== 0 }] "> |
|||
<div> |
|||
<img v-if="index == 0 && userInfo.gender == '1'" src="../../../../assets/images/index/nan.png" alt="" |
|||
width="56px"> |
|||
<img v-if="index == 0 && userInfo.gender == '2'" src="../../../../assets/images/index/nv.png" alt="" |
|||
width="56px"> |
|||
<span class="name">{{ item.name }}</span>({{ item.houseHolderRel == "本人" ? "户主" : item.houseHolderRel ? item.houseHolderRel : '--' |
|||
}}) |
|||
</div> |
|||
<div> |
|||
<span>人户状况:</span>{{item.householdSituation||'--'}} |
|||
</div> |
|||
<div> |
|||
<span>居民分类:</span>{{item.resiCategory||'--'}} |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { requestPost, requestGet } from '@/js/dai/request' |
|||
export default { |
|||
//数据 |
|||
data() { |
|||
return { |
|||
familyList: [] |
|||
}; |
|||
}, |
|||
//创建前 |
|||
created() { |
|||
}, |
|||
mounted() { |
|||
console.log(this.userInfo); |
|||
this.getFamilyRelationshipList() |
|||
}, |
|||
props: { |
|||
userInfo: { |
|||
type: Object, |
|||
default: () => { } |
|||
} |
|||
}, |
|||
//方法 |
|||
methods: { |
|||
async getFamilyRelationshipList() { |
|||
let url = `/actual/base/peopleRoomOverview/getFamilyRelationshipList?type=0&resid=` + this.userInfo.resiId |
|||
let { code, data, msg } = await requestPost(url) |
|||
if (code == 0) { |
|||
// 找到符合条件的对象的索引 |
|||
const index = data.findIndex(item => item.name == this.userInfo.name); |
|||
// 如果找到符合条件的对象 |
|||
if (index !== -1) { |
|||
// 移除这个对象并将其放到数组的第一个位置 |
|||
const [item] = data.splice(index, 1); |
|||
data.unshift(item); |
|||
} |
|||
for(let i in data){ |
|||
if(data[i].classificationOfInhabitantsList){ |
|||
data[i].resiCategory = data[i].classificationOfInhabitantsList.join(',') |
|||
} |
|||
} |
|||
this.familyList = data |
|||
} else { |
|||
this.$message.error(msg) |
|||
} |
|||
} |
|||
}, |
|||
//子组件注册 |
|||
components: {}, |
|||
//计算 |
|||
computed: {}, |
|||
//监听 |
|||
watch: {}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/pages/huaxiang"; |
|||
@import "@/assets/scss/modules/management/list-main.scss"; |
|||
.item{ |
|||
padding: 0 15px; |
|||
&>div{ |
|||
margin-top: 18px; |
|||
.name{ |
|||
font-family: PingFang SC; |
|||
font-weight: bold; |
|||
color: #000000; |
|||
} |
|||
} |
|||
} |
|||
.bgf>:nth-child(1){ |
|||
margin: 0!important; |
|||
padding-top: 16px; |
|||
box-sizing: border-box; |
|||
} |
|||
</style> |
@ -0,0 +1,71 @@ |
|||
<template> |
|||
<div class=''> |
|||
<div class="item f-font14"> |
|||
<span class="label gray">居住地址:</span><span class="value">{{ resiInfo.fullName||"--" }}</span> |
|||
</div> |
|||
<div class="item f-font14"> |
|||
<span class="label gray">联系电话:</span><span class="value">{{ resiInfo.mobile||"--" }}</span> |
|||
</div> |
|||
<div class="item f-font14"> |
|||
<span class="label gray">所属网格:</span><span class="value">{{ resiInfo.gridName||"--" }}</span> |
|||
</div> |
|||
<div class="item f-font14"> |
|||
<span class="label gray">入户状况:</span><span class="value">{{ resiInfo.householdSituation||"--" }}</span> |
|||
</div> |
|||
<div class="item f-font14"> |
|||
<!-- 居住类型,与子女同住,空巢,独居,其他 字段没有返回--> |
|||
<span class="label gray">居住类型:</span><span class="value">{{ resiInfo.resideSituation || "--" }}</span> |
|||
</div> |
|||
<div class="item f-font14"> |
|||
<span class="label gray">家庭预警:</span> |
|||
<span class="value">{{resiInfo.riskyFlag === '1' ? '满意度风险家庭' : '--'}}</span> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { requestPost, requestGet } from '@/js/dai/request' |
|||
export default { |
|||
//数据 |
|||
data() { |
|||
return { |
|||
resiInfo: {} |
|||
}; |
|||
}, |
|||
//创建前 |
|||
created() { |
|||
}, |
|||
mounted() { |
|||
this.getPersonalFile() |
|||
}, |
|||
props: { |
|||
resiId: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
}, |
|||
//方法 |
|||
methods: { |
|||
async getPersonalFile() { |
|||
let url = `/actual/base/peopleRoomOverview/getPersonalFile?resid=` + this.resiId |
|||
let { code, data, msg } = await requestPost(url) |
|||
if (code == 0) { |
|||
this.resiInfo = data |
|||
} else { |
|||
this.$message.error(msg) |
|||
} |
|||
} |
|||
}, |
|||
//子组件注册 |
|||
components: {}, |
|||
//计算 |
|||
computed: {}, |
|||
//监听 |
|||
watch: {}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/pages/huaxiang"; |
|||
@import "@/assets/scss/modules/management/list-main.scss"; |
|||
</style> |
@ -0,0 +1,96 @@ |
|||
<template> |
|||
<div class='g-main'> |
|||
<div class="top"> |
|||
<div class="left"> |
|||
<div class="card"> |
|||
<div class="title"> |
|||
<div><img src="../../../assets/images/index/title-icon-sqzl.png" alt="">居民档案</div> |
|||
<span class="title f-font14 gray" style="cursor: pointer;" @click="handlerUserInfo">详情 ></span> |
|||
</div> |
|||
<div class="f-top12"> |
|||
<img src="../../../assets/images/index/resi.png" alt="" width="56px"> {{userInfo.name}} |
|||
</div> |
|||
<section class="bgC"> |
|||
<left-top :resiId="userInfo.resiId"></left-top> |
|||
</section> |
|||
</div> |
|||
</div> |
|||
<div class="right"> |
|||
<div class="card"> |
|||
<div class="title"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="bottom"> |
|||
<div class="left"> |
|||
<div class="card"> |
|||
<div class="title"> |
|||
<div><img src="../../../assets/images/index/title-icon-jtgx.png" alt="">家庭关系</div> |
|||
</div> |
|||
<section class="bgC" style="padding: 0;"> |
|||
<left-bto :userInfo="userInfo" ></left-bto> |
|||
</section> |
|||
</div> |
|||
</div> |
|||
<div class="right"> |
|||
<div class="card"> |
|||
<div class="title"></div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<resi-info |
|||
v-if="showedResiInfo && userInfo.resiId" |
|||
:resi-id="userInfo.resiId" |
|||
@close="showedResiInfo = false" |
|||
/> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import { requestPost, requestGet } from '@/js/dai/request' |
|||
import leftTop from "./cpts/leftTop"; |
|||
import leftBto from "./cpts/leftBto"; |
|||
import resiInfo from "@/views/modules/cpts/resi/info"; |
|||
import nextTick from "dai-js/tools/nextTick"; |
|||
export default { |
|||
//数据 |
|||
data() { |
|||
return { |
|||
userInfo:{}, |
|||
showedResiInfo: false, |
|||
}; |
|||
}, |
|||
//创建前 |
|||
created() { |
|||
this.getFamilyRelationshipList() |
|||
this.userInfo = this.$store.state.huaXiang.userInfo |
|||
}, |
|||
//方法 |
|||
methods: { |
|||
async getFamilyRelationshipList() { |
|||
let url = `/actual/base/peopleRoomOverview/getFamilyRelationshipList?type=0&resid=` + this.userInfo.resiId |
|||
let {code,data,msg} = await requestPost(url) |
|||
if(code == 0){ |
|||
this.familyList = data |
|||
}else{ |
|||
this.$message.error(msg) |
|||
} |
|||
}, |
|||
async handlerUserInfo(){ |
|||
await nextTick(); |
|||
this.showedResiInfo = true; |
|||
}, |
|||
|
|||
}, |
|||
//子组件注册 |
|||
components: {leftTop,leftBto,resiInfo}, |
|||
//计算 |
|||
computed: {}, |
|||
//监听 |
|||
watch: {}, |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@import "@/assets/scss/pages/huaxiang"; |
|||
@import "@/assets/scss/modules/management/list-main.scss"; |
|||
</style> |