Browse Source

居民查询左则两块

feature
mk 2 years ago
parent
commit
cdcdcb60e9
  1. BIN
      src/assets/images/index/house.png
  2. BIN
      src/assets/images/index/i-more.png
  3. BIN
      src/assets/images/index/nan.png
  4. BIN
      src/assets/images/index/nv.png
  5. BIN
      src/assets/images/index/resi.png
  6. BIN
      src/assets/images/index/title-icon-jfjl.png
  7. BIN
      src/assets/images/index/title-icon-jtgx.png
  8. BIN
      src/assets/images/index/title-icon-xsfw.png
  9. BIN
      src/assets/images/index/title-icon-ywjl.png
  10. 86
      src/assets/scss/pages/huaxiang.scss
  11. 2
      src/js/store/index.js
  12. 20
      src/js/store/modules/huaXiang.js
  13. 14
      src/router/index.js
  14. 1
      src/views/dataBoard/cpts/personnel/modules/MatterDetails.vue
  15. 99
      src/views/modules/jumin/cpts/leftBto.vue
  16. 71
      src/views/modules/jumin/cpts/leftTop.vue
  17. 96
      src/views/modules/jumin/huaxiang.vue
  18. 4
      src/views/modules/satisfaction/satisfactionProvince/index.vue
  19. 29
      src/views/modules/shequ/chaxun.vue

BIN
src/assets/images/index/house.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

BIN
src/assets/images/index/i-more.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 575 B

BIN
src/assets/images/index/nan.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
src/assets/images/index/nv.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
src/assets/images/index/resi.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

BIN
src/assets/images/index/title-icon-jfjl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
src/assets/images/index/title-icon-jtgx.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
src/assets/images/index/title-icon-xsfw.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
src/assets/images/index/title-icon-ywjl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

86
src/assets/scss/pages/huaxiang.scss

@ -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;
}

2
src/js/store/index.js

@ -5,6 +5,7 @@ import user from "./modules/user";
import app from "./modules/app";
import tagsView from "./modules/tagsView";
import chooseArea from "./modules/chooseArea";
import huaXiang from "./modules/huaXiang";
import categoryStr from "./modules/categoryStr";
import { requestPost } from "@/js/dai/request";
import { dateFormats } from "@/utils/index";
@ -49,6 +50,7 @@ export default new Vuex.Store({
tagsView,
categoryStr,
chooseArea,
huaXiang
},
mutations: {
// 重置vuex本地储存状态

20
src/js/store/modules/huaXiang.js

@ -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;

14
src/router/index.js

@ -108,6 +108,16 @@ export const moduleRoutes = {
title: "社区查询",
},
},
{
path: "jumin-huaxiang",
props: true,
name: "jumin-huaxiang",
component: () => import("@/views/modules/jumin/huaxiang"),
meta: {
isTab: true,
title: "",
},
}
],
};
// pc端菜单的 如果没有配置 默认的 或者配置了默认的 但没有权限 默认选中第一
@ -696,6 +706,10 @@ router.beforeEach((to, from, next) => {
if (to.name === "caiji") {
return next();
}
if(to.name === 'jumin-huaxiang'){
to.meta.title = store.state.huaXiang.userInfo.name
return next();
}
if (window.SITE_CONFIG["dynamicMenuRoutesHasAdded"] || fnCurrentRouteIsPageRoute(to, pageRoutes)) {
return next();
}

1
src/views/dataBoard/cpts/personnel/modules/MatterDetails.vue

@ -1,3 +1,4 @@
<template>
<div class="matter-details">
<div class="user-img">

99
src/views/modules/jumin/cpts/leftBto.vue

@ -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>

71
src/views/modules/jumin/cpts/leftTop.vue

@ -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>

96
src/views/modules/jumin/huaxiang.vue

@ -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>

4
src/views/modules/satisfaction/satisfactionProvince/index.vue

@ -31,8 +31,8 @@
</div>
<el-radio-group v-model="formData.orgCategoryCode" @change="handelChangeCategory" style="margin: 20px 0 0;">
<el-radio-button label="province">省满意度调查</el-radio-button>
<el-radio-button label="city">满意度调查</el-radio-button>
<el-radio-button label="district">满意度调查</el-radio-button>
<el-radio-button label="city">满意度调查</el-radio-button>
<el-radio-button label="district">满意度调查</el-radio-button>
</el-radio-group>
<div class="m-table-item" :style="{ height: maxTableHeight + 'px', width: '100%' }">
<div id="myCharts"></div>

29
src/views/modules/shequ/chaxun.vue

@ -339,6 +339,8 @@ import resiInfo from "@/views/modules/cpts/resi/info";
import houseInfo from "@/views/modules/cpts/house/info";
import smatrRules from "./cpts/smatr-rules.vue";
import { requestGet } from "../../../js/dai/request";
import { addDynamicRoute } from '@/router'
export default {
components: {
resiInfo,
@ -572,10 +574,20 @@ export default {
this.getSearchJumin();
},
async handleWatchSearchJumin(rowIndex) {
let item = this.searchJumin.list[rowIndex];
this.currentResiId = item.resiId;
await nextTick();
this.showedResiInfo = true;
// let item = this.searchJumin.list[rowIndex];
// this.currentResiId = item.resiId;
// await nextTick();
// this.showedResiInfo = true;
let { agencyId, gridId, gridName, gender, homeId, homeName, name, resiId } = this.searchJumin.list[rowIndex]
console.log(this.searchJumin.list[rowIndex]);
this.$store.dispatch('saveData', { agencyId, gridId, gridName, gender, homeId, homeName, name, resiId });
this.$router.push({ name: 'jumin-huaxiang' });
this.$store.state.contentTabs = this.$store.state.contentTabs.map(item => {
if (item.name === "jumin-huaxiang") {
return {...item, title: name };
}
return item;
});
},
handleSizeChangeSearchFangwu(val) {
@ -591,10 +603,11 @@ export default {
},
async handleWatchSearchFangwu(rowIndex) {
let item = this.searchFangwu.list[rowIndex];
this.currentHouseId = item.id;
await nextTick();
this.showedHouseInfo = true;
// let item = this.searchFangwu.list[rowIndex];
// this.currentHouseId = item.id;
// await nextTick();
// this.showedHouseInfo = true;
console.log(this.searchFangwu.list[rowIndex]);
},
getApiData() {},

Loading…
Cancel
Save