Browse Source

房屋左侧完成,右上列表父子传参问题,满意度按钮权限

feature
mk 2 years ago
parent
commit
ddbe04737d
  1. 15
      src/js/store/modules/huaXiang.js
  2. 18
      src/router/index.js
  3. 80
      src/views/modules/portrayal/fangwu/cpts/leftTop.vue
  4. 120
      src/views/modules/portrayal/fangwu/index.vue
  5. 32
      src/views/modules/portrayal/jumin/cpts/leftBto.vue
  6. 0
      src/views/modules/portrayal/jumin/cpts/leftTop.vue
  7. 0
      src/views/modules/portrayal/jumin/cpts/pointsRecord.vue
  8. 0
      src/views/modules/portrayal/jumin/cpts/rightBto.vue
  9. 121
      src/views/modules/portrayal/jumin/cpts/rightTop.vue
  10. 0
      src/views/modules/portrayal/jumin/cpts/table/complain.vue
  11. 0
      src/views/modules/portrayal/jumin/cpts/table/fuwu.vue
  12. 4
      src/views/modules/portrayal/jumin/cpts/table/sheng.vue
  13. 0
      src/views/modules/portrayal/jumin/cpts/table/shequ.vue
  14. 0
      src/views/modules/portrayal/jumin/cpts/table/shijian.vue
  15. 0
      src/views/modules/portrayal/jumin/cpts/table/xuqiu.vue
  16. 0
      src/views/modules/portrayal/jumin/cpts/xiangshoufuwu.vue
  17. 26
      src/views/modules/portrayal/jumin/index.vue
  18. 11
      src/views/modules/satisfaction/communitySelfInsp/index.vue
  19. 10
      src/views/modules/shequ/chaxun.vue

15
src/js/store/modules/huaXiang.js

@ -1,19 +1,26 @@
const huaXiang ={
state: {
userInfo:null || JSON.parse(localStorage.getItem('huaX'))
userInfo:null || JSON.parse(localStorage.getItem('resiPort')) ,
houseInfo:null || JSON.parse(localStorage.getItem('housePort'))
},
mutations: {
setData(state, payload) {
state.userInfo = payload;
},
sethouseData(state, payload){
state.houseInfo = payload;
}
},
actions: {
saveData({ commit }, payload) {
console.log(payload,'vueX接参');
commit('setData', payload);
localStorage.setItem('huaX', JSON.stringify(payload));
}
localStorage.setItem('resiPort', JSON.stringify(payload));
},
saveDataH({ commit }, payload) {
commit('sethouseData', payload);
localStorage.setItem('housePort', JSON.stringify(payload));
}
}
};

18
src/router/index.js

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

80
src/views/modules/portrayal/fangwu/cpts/leftTop.vue

@ -0,0 +1,80 @@
<template>
<div class=''>
<div class="item f-font14">
<span class="label gray">房主姓名</span><span class="value">{{ houseInfo.ownerName||"--" }}</span>
</div>
<div class="item f-font14">
<span class="label gray">联系电话</span><span class="value">{{ houseInfo.ownerPhone||"--" }}</span>
</div>
<div class="item f-font14">
<span class="label gray">房屋类型</span><span class="value">{{ houseInfo.houseTypeName||"--" }}</span>
</div>
<div class="item f-font14">
<span class="label gray">用途</span><span class="value">{{ houseInfo.purposeName||"--" }}</span>
</div>
<div class="item f-font14">
<span class="label gray">家庭类别</span><span class="value">{{ houseInfo.resideSituation || "--" }}</span>
</div>
<div class="item f-font14">
<span class="label gray">房屋状态</span><span class="value">{{ houseInfo.rentName||"--" }}</span>
</div>
<div class="item f-font14">
<span class="label gray">家庭预警</span>
<span class="value">{{houseInfo.riskFlag === '1' ? '满意度风险家庭' : '--'}}</span>
</div>
</div>
</template>
<script>
import { requestPost, requestGet } from '@/js/dai/request'
export default {
//
data() {
return {
houseInfo: {}
};
},
//
created() {
},
mounted() {
this.getPersonalFile()
},
props: {
houseId: {
type: String,
default: ''
},
},
watch: {
houseId: {
handler(newVal, oldVal) {
this.getPersonalFile()
}
}
},
//
methods: {
async getPersonalFile() {
let url = `/actual/base/communityHouse/getMaskedHouseDeatilById/` + this.houseId
let { code, data, msg } = await requestPost(url)
if (code == 0) {
this.houseInfo = 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>

120
src/views/modules/portrayal/fangwu/index.vue

@ -0,0 +1,120 @@
<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>
</div>
<div class="f-top12">
<img src="../../../../assets/images/index/house.png" alt="" width="56px"> {{ houseInfo.fullName }}
</div>
<section class="bgC">
<left-top :houseId="houseInfo.houseId" :key="houseInfo.houseId"></left-top>
</section>
</div>
</div>
<div class="right">
<div class="card">
<div class="title">
<div><img src="../../../../assets/images/index/title-icon-ywjl.png" alt="">各项业务记录</div>
</div>
<right-top :houseInfo="houseInfo" :familyResiList="familyResiList" :type="'1'" :key="houseInfo.houseId"></right-top>
</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 :houseInfo="houseInfo" :type="'1'" :key="houseInfo.houseId"></left-bto>
</section>
</div>
</div>
<div class="right">
<div class="card f-w50 right16">
<div class="title">
<div><img src="../../../../assets/images/index/title-icon-xsfw.png" alt="">享受服务次数统计</div>
</div>
<div>
<!-- <xiangshoufuwu :key="houseInfo.houseId"/> -->
</div>
</div>
<div class="card" style="width: calc(50% - 16px);">
<div class="title">
<div><img src="../../../../assets/images/index/title-icon-jfjl.png" alt="">积分记录</div>
</div>
<div class="card">
<!-- <pointsRecord :houseId="houseInfo.houseId" :key="houseInfo.houseId" /> -->
</div>
</div>
</div>
</div>
<resi-info v-if="showedResiInfo && houseInfo.houseId" :resi-id="houseInfo.houseId" @close="showedResiInfo = false" />
</div>
</template>
<script>
import { requestPost, requestGet } from '@/js/dai/request'
import leftTop from "./cpts/leftTop";
import leftBto from "../jumin/cpts/leftBto";
import rightTop from "../jumin/cpts/rightTop";
// import rightBto from "./cpts/rightBto";
import resiInfo from "@/views/modules/cpts/resi/info";
import nextTick from "dai-js/tools/nextTick";
// import pointsRecord from "./cpts/pointsRecord";
// import xiangshoufuwu from "./cpts/xiangshoufuwu";
export default {
//
data() {
return {
houseInfo: {},
showedResiInfo: false,
familyResiList:[]
};
},
//
async created() {
this.houseInfo = this.$store.state.huaXiang.houseInfo
await this.getFamilyRelationshipList()
},
mounted() {
},
activated() {
this.houseInfo = this.$store.state.huaXiang.houseInfo
},
//
methods: {
async getFamilyRelationshipList() {
let url = `/actual/base/peopleRoomOverview/getFamilyRelationshipList?type=1&resid=` + this.houseInfo.houseId
let { code, data, msg } = await requestPost(url)
if (code == 0) {
this.familyResiList = data.map(item=>item.id)
console.log(this.familyResiList,'父组件传递')
} else {
this.$message.error(msg)
}
},
changeTotal(val) {
this.total = val.total
},
},
//
// leftTop, leftBto, resiInfo, rightTop, pointsRecord, rightBto, xiangshoufuwu
components: {leftTop,leftBto,rightTop },
//
computed: {},
//
watch: {},
}
</script>
<style lang="scss" scoped>
@import "@/assets/scss/pages/huaxiang";
@import "@/assets/scss/modules/management/list-main.scss";
</style>

32
src/views/modules/jumin/cpts/leftBto.vue → src/views/modules/portrayal/jumin/cpts/leftBto.vue

@ -3,9 +3,9 @@
<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=""
<img v-if="index == 0 && item.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=""
<img v-if="index == 0 && item.gender == '2'" src="../../../../../assets/images/index/nv.png" alt=""
width="56px">
<span class="name">{{ item.name }}</span>{{ item.houseHolderRel == "本人" ? "户主" : item.houseHolderRel ? item.houseHolderRel : '--'
}}
@ -33,24 +33,42 @@ export default {
//
created() {
},
mounted() {
console.log(this.userInfo);
this.getFamilyRelationshipList()
async mounted() {
await this.getFamilyRelationshipList()
},
props: {
userInfo: {
type: Object,
default: () => { }
},
houseInfo:{
type: Object,
default: () => { }
},
type:{
type: String,
default: '0'
}
},
//
methods: {
async getFamilyRelationshipList() {
let url = `/actual/base/peopleRoomOverview/getFamilyRelationshipList?type=0&resid=` + this.userInfo.resiId
let id = ''
if(this.type == '0'){
id = this.userInfo.resiId
}else if(this.type == '1'){
id = this.houseInfo.houseId
}
let url = `/actual/base/peopleRoomOverview/getFamilyRelationshipList?type=${this.type}&resid=` + id
let { code, data, msg } = await requestPost(url)
if (code == 0) {
//
const index = data.findIndex(item => item.name == this.userInfo.name);
let index = ''
if(this.type == '0'){
index = data.findIndex(item => item.name == this.userInfo.name);
}else{
index = data.findIndex(item => item.houseHolderRel == '本人');
}
//
if (index !== -1) {
//

0
src/views/modules/jumin/cpts/leftTop.vue → src/views/modules/portrayal/jumin/cpts/leftTop.vue

0
src/views/modules/jumin/cpts/pointsRecord.vue → src/views/modules/portrayal/jumin/cpts/pointsRecord.vue

0
src/views/modules/jumin/cpts/rightBto.vue → src/views/modules/portrayal/jumin/cpts/rightBto.vue

121
src/views/modules/jumin/cpts/rightTop.vue → src/views/modules/portrayal/jumin/cpts/rightTop.vue

@ -2,7 +2,7 @@
<div class=''>
<el-tabs v-model="topTabs" @tab-click="tabClick">
<el-tab-pane :label="complainLabel" name="12345">
<complain :tableData="complainList" />
<complain :tableData="complainList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ complainTotal }}</div>
@ -15,7 +15,7 @@
</el-row>
</el-tab-pane>
<el-tab-pane :label="shengLabel" name="sheng">
<sheng :tableData="shengList" />
<sheng :tableData="shengList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ shengTotal }}</div>
@ -28,7 +28,7 @@
</el-row>
</el-tab-pane>
<el-tab-pane :label="shequLabel" name="shequ">
<shequ :tableData="shequList" />
<shequ :tableData="shequList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ shequTotal }}</div>
@ -41,7 +41,7 @@
</el-row>
</el-tab-pane>
<el-tab-pane :label="shijianLabel" name="shijian">
<shijian :tableData="shijianList" />
<shijian :tableData="shijianList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ shijianTotal }}</div>
@ -54,7 +54,7 @@
</el-row>
</el-tab-pane>
<el-tab-pane :label="xuqiuLabel" name="xuqiu">
<xuqiu :tableData="xuqiuList" />
<xuqiu :tableData="xuqiuList" :key="resiId[0]" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ xuqiuTotal }}</div>
@ -67,23 +67,21 @@
</el-row>
</el-tab-pane>
<el-tab-pane :label="fuwuLabel" name="fuwu">
<div style="display: flex; flex-direction: column; height: 100%;">
<!-- 你的表格组件将填充所有可用空间 -->
<fuwu :tableData="fuwuList" style="flex: 1; overflow: auto;" />
<!-- 你的页码部分保持恒定的高度 -->
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ fuwuTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper"
:total="fuwuTotal">
</el-pagination>
</el-col>
</el-row>
</div>
</el-tab-pane>
<div style="display: flex; flex-direction: column; height: 100%;">
<fuwu :tableData="fuwuList" :key="resiId[0]" style="flex: 1; overflow: auto;" />
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px;">{{ fuwuTotal }}</div>
</el-col>
<el-col :span="12" align="right">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page.sync="pageNo" :page-size="pageSize" layout="prev, pager, next, jumper"
:total="fuwuTotal">
</el-pagination>
</el-col>
</el-row>
</div>
</el-tab-pane>
</el-tabs>
</div>
@ -131,21 +129,34 @@ export default {
};
},
//
created() { },
mounted() {
this.getComplainList()
this.getShengList()
this.getShequList()
this.getshijianList()
this.getxuqiuList()
this.getfuwuList()
created() {
if (this.type == '0') {
this.resiId = [this.userInfo.resiId]
} else if (this.type == '1') {
this.resiId = this.familyResiList
}
console.log(this.resiId, '子组件获取');
},
async mounted() {
await this.getComplainList()
await this.getShengList()
await this.getShequList()
await this.getshijianList()
await this.getxuqiuList()
await this.getfuwuList()
},
props: {
userInfo: {
userInfo: {
type: Object,
default: {
resiId: ''
}
default: () => { }
},
familyResiList: {
type: Array,
default: () => []
},
type: {
type: String,
default: '0'
}
},
//
@ -160,8 +171,13 @@ export default {
},
getComplainList() {
if (this.resiId.length == 0) {
this.complainList = []
this.complainLabel = `12345投诉(0)`
return
}
let parm = {
residList: [this.userInfo.resiId],
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
@ -186,8 +202,13 @@ export default {
});
},
getShengList() {
if (this.resiId.length == 0) {
this.shengList = []
this.shengLabel = `省满意度调查(0)`
return
}
let parm = {
residList: [this.userInfo.resiId],
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
@ -199,8 +220,13 @@ export default {
});
},
getShequList() {
if (this.resiId.length == 0) {
this.shequList = []
this.shequLabel = `社区满意度自查(0)`
return
}
let parm = {
residList: [this.userInfo.resiId],
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
@ -222,8 +248,13 @@ export default {
});
},
getshijianList() {
if (this.resiId.length == 0) {
this.shijianList = []
this.shijianLabel = `上报事件(0)`
return
}
let parm = {
residList: [this.userInfo.resiId],
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
@ -241,8 +272,13 @@ export default {
});
},
getxuqiuList() {
if (this.resiId.length == 0) {
this.xuqiuList = []
this.xuqiuLabel = `居民需求(0)`
return
}
let parm = {
residList: [this.userInfo.resiId],
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}
@ -258,8 +294,13 @@ export default {
});
},
getfuwuList() {
if (this.resiId.length == 0) {
this.fuwuList = []
this.fuwuLabel = `社区服务(0)`
return
}
let parm = {
residList: [this.userInfo.resiId],
residList: this.resiId,
pageNo: this.pageNo,
pageSize: this.pageSize
}

0
src/views/modules/jumin/cpts/table/complain.vue → src/views/modules/portrayal/jumin/cpts/table/complain.vue

0
src/views/modules/jumin/cpts/table/fuwu.vue → src/views/modules/portrayal/jumin/cpts/table/fuwu.vue

4
src/views/modules/jumin/cpts/table/sheng.vue → src/views/modules/portrayal/jumin/cpts/table/sheng.vue

@ -26,9 +26,7 @@ export default {
},
data() {
return {
queryParams: {
residList: [],
},
list: [],
total: 0,
rowId: null,

0
src/views/modules/jumin/cpts/table/shequ.vue → src/views/modules/portrayal/jumin/cpts/table/shequ.vue

0
src/views/modules/jumin/cpts/table/shijian.vue → src/views/modules/portrayal/jumin/cpts/table/shijian.vue

0
src/views/modules/jumin/cpts/table/xuqiu.vue → src/views/modules/portrayal/jumin/cpts/table/xuqiu.vue

0
src/views/modules/jumin/cpts/xiangshoufuwu.vue → src/views/modules/portrayal/jumin/cpts/xiangshoufuwu.vue

26
src/views/modules/jumin/huaxiang.vue → src/views/modules/portrayal/jumin/index.vue

@ -4,11 +4,11 @@
<div class="left">
<div class="card">
<div class="title">
<div><img src="../../../assets/images/index/title-icon-sqzl.png" alt="">居民档案</div>
<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 }}
<img src="../../../../assets/images/index/resi.png" alt="" width="56px"> {{ userInfo.name }}
</div>
<section class="bgC">
<left-top :resiId="userInfo.resiId" :key="userInfo.resiId"></left-top>
@ -18,9 +18,9 @@
<div class="right">
<div class="card">
<div class="title">
<div><img src="../../../assets/images/index/title-icon-ywjl.png" alt="">各项业务记录</div>
<div><img src="../../../../assets/images/index/title-icon-ywjl.png" alt="">各项业务记录</div>
</div>
<right-top :userInfo="userInfo" :key="userInfo.resiId"></right-top>
<right-top :userInfo="userInfo" :key="userInfo.resiId" :type="'0'"></right-top>
</div>
</div>
</div>
@ -28,17 +28,17 @@
<div class="left">
<div class="card">
<div class="title">
<div><img src="../../../assets/images/index/title-icon-jtgx.png" alt="">家庭关系</div>
<div><img src="../../../../assets/images/index/title-icon-jtgx.png" alt="">家庭关系</div>
</div>
<section class="bgC" style="padding: 0;">
<left-bto :userInfo="userInfo" :key="userInfo.resiId"></left-bto>
<left-bto :userInfo="userInfo" :key="userInfo.resiId" :type="'0'"></left-bto>
</section>
</div>
</div>
<div class="right">
<div class="card f-w50 right16">
<div class="title">
<div><img src="../../../assets/images/index/title-icon-xsfw.png" alt="">享受服务次数统计</div>
<div><img src="../../../../assets/images/index/title-icon-xsfw.png" alt="">享受服务次数统计</div>
</div>
<div>
<xiangshoufuwu :key="userInfo.resiId"/>
@ -46,7 +46,7 @@
</div>
<div class="card" style="width: calc(50% - 16px);">
<div class="title">
<div><img src="../../../assets/images/index/title-icon-jfjl.png" alt="">积分记录</div>
<div><img src="../../../../assets/images/index/title-icon-jfjl.png" alt="">积分记录</div>
</div>
<div class="card">
<pointsRecord :resiId="userInfo.resiId" :key="userInfo.resiId" />
@ -81,7 +81,6 @@ export default {
//
async created() {
this.userInfo = this.$store.state.huaXiang.userInfo
await this.getFamilyRelationshipList()
},
mounted() {
},
@ -90,15 +89,6 @@ export 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) {
this.familyList = data
} else {
this.$message.error(msg)
}
},
async handlerUserInfo() {
await nextTick();
this.showedResiInfo = true;

11
src/views/modules/satisfaction/communitySelfInsp/index.vue

@ -20,7 +20,7 @@
</div>
<div class="m-table">
<div class="div_btn">
<div class="div_btn" v-if="btnFlag">
<el-button type="primary" size="small" class="diy-button--white el-button--default"
@click="handleCreateMonthlySurvey">生成本月社区自查问卷表</el-button>
</div>
@ -53,7 +53,7 @@
</div>
</div>
</div>
<el-dialog v-if="showFormList" :visible.sync="showFormList" :close-on-click-modal="false"
<el-dialog v-if="showFormList && user.level == 'community'" :visible.sync="showFormList" :close-on-click-modal="false"
:close-on-press-escape="false" title="社区自查" :modal-append-to-body="false" width="820px" top="5vh"
class="dialog-h" @closed="showFormList = false">
<form-list ref="ref_add_form" @handleClose="handleClose" :satisfactionCategoryStr="satisfactionCategoryStr"
@ -212,7 +212,9 @@ export default {
synthesisScore: '',
personQty: '',
inspResultId:""
inspResultId:"",
btnFlag:true
};
},
@ -228,6 +230,9 @@ export default {
async mounted() {
this.user = this.$store.state.user;
this.agencyId = this.user.agencyId;
if(this.user.level != 'community'){
this.btnFlag = false
}
await this.getDicts();
await this.getTableData();
await this.initEcharts();

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

@ -607,7 +607,15 @@ export default {
// this.currentHouseId = item.id;
// await nextTick();
// this.showedHouseInfo = true;
console.log(this.searchFangwu.list[rowIndex]);
let { doorName,id,fullName } = this.searchFangwu.list[rowIndex]
this.$store.dispatch('saveDataH', { doorName,houseId:id,fullName });
this.$router.push({ name: 'fangwu-huaxiang' });
this.$store.state.contentTabs = this.$store.state.contentTabs.map(item => {
if (item.name === "fangwu-huaxiang") {
return {...item, title: doorName };
}
return item;
});
},
getApiData() {},

Loading…
Cancel
Save