Browse Source

网格架构微网格显示name

V1.0
SongZhen 2 years ago
parent
commit
f8be5b3270
  1. 7
      src/components/GridTree/nodeWrap.vue
  2. 2
      src/views/dataBoard/satisfactionEval/index.vue
  3. 97
      src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue

7
src/components/GridTree/nodeWrap.vue

@ -27,8 +27,9 @@
</div> </div>
</div> </div>
<div v-if="item.level === 'unit_chief'"> <div v-if="item.level === 'unit_chief'">
<div @click="gotoPersonnel(item)" class="dyzxh" :title="item.name"> <div @click="gotoPersonnel(item)" class="dyzxh" :title="item.organizationName">
{{ spliceNameFun(item.name, 3) }} <!-- {{ spliceNameFun(item.organizationName, 3) }} -->
{{ item.organizationName }}
</div> </div>
</div> </div>
</div> </div>
@ -97,7 +98,7 @@ export default {
}, },
gotoPersonnel(item) { gotoPersonnel(item) {
const grandPid = this.findParentParentId(this.nodeConfig, item.pid); const grandPid = this.findParentParentId(this.nodeConfig, item.pid);
const name = item.name ? item.name : "四号楼二单元302"; const name = item.organizationName ? item.organizationName : "四号楼二单元302";
this.$router.push(`/organizational/microgrid/${item.id}/${grandPid}/${name}`); this.$router.push(`/organizational/microgrid/${item.id}/${grandPid}/${name}`);
}, },
}, },

2
src/views/dataBoard/satisfactionEval/index.vue

@ -23,7 +23,7 @@
<SelfTrend/> <SelfTrend/>
</div> </div>
<div class="bg2"> <div class="bg2">
<Title text="下级网格不满意事项统计"/> <Title text="下级组织不满意事项统计"/>
<EventStatistics/> <EventStatistics/>
</div> </div>
</el-col> </el-col>

97
src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue

@ -1,6 +1,6 @@
<template> <template>
<div class="personnel-portrait"> <div class="personnel-portrait">
<Tabs v-model="resultType" :list="resultTypeList" @changeVal="resultTypeChange"/> <Tabs v-model="resultType" :list="resultTypeList" @changeVal="resultTypeChange" />
<div class="screen"> <div class="screen">
<div class="txt">不满意人员画像</div> <div class="txt">不满意人员画像</div>
<!-- <el-select v-model="typeCondition" @change="getData" placeholder="请选择" class="select" popper-class="selectPopClass"> <!-- <el-select v-model="typeCondition" @change="getData" placeholder="请选择" class="select" popper-class="selectPopClass">
@ -26,19 +26,24 @@
<div class="tag light" v-if="monthIncomeLevel"> <div class="tag light" v-if="monthIncomeLevel">
<div class="text">{{ monthIncomeLevel }}</div> <div class="text">{{ monthIncomeLevel }}</div>
</div> </div>
<div class="tag green" v-if="cultureLevel"> <div class="tag green" v-if="cultureName">
<div class="text">{{ cultureLevel }}</div> <div class="text">{{ cultureName }}</div>
</div> </div>
<div class="tag orange" v-if="marriageName"> <div class="tag orange" v-if="marriageName">
<div class="text">{{ marriageName }}</div> <div class="text">{{ marriageName }}</div>
</div> </div>
<div class="tag purple" v-if="gender"> <div class="tag purple" v-if="gender">
<div class="text">{{ gender === '1' ? '男' : gender === '2' ? '女' : gender === '0' ? '未知' : '' }}</div> <div class="text">{{ gender === "1" ? "男" : gender === "2" ? "女" : gender === "0" ? "未知" : "" }}</div>
</div> </div>
</div> </div>
<div class="btn" @click="gotopage"> <div class="btn" @click="gotopage">
<div>按画像匹配到同类<span> <b>{{ matchPeopleNum ? matchPeopleNum : 0 }}</b></span></div> <div>
按画像匹配到同类<span>
<b>{{ matchPeopleNum ? matchPeopleNum : 0 }}</b
></span
>
</div>
<i class="el-icon-arrow-right"></i> <i class="el-icon-arrow-right"></i>
</div> </div>
</div> </div>
@ -49,30 +54,32 @@ import Tabs from "@/views/dataBoard/satisfactionEval/components/Tabs/index.vue";
export default { export default {
name: "PersonnelPortrait", name: "PersonnelPortrait",
components: {Tabs}, components: { Tabs },
data() { data() {
return { return {
resultType: 'provinceAndSelf', resultType: "provinceAndSelf",
resultTypeList: [{ resultTypeList: [
label: '按省调查/社区自查结果', {
value: 'provinceAndSelf' label: "按省调查/社区自查结果",
value: "provinceAndSelf",
}, { },
label: '按12345热线投诉结果', {
value: '12345' label: "按12345热线投诉结果",
}], value: "12345",
typeCondition: '', },
],
typeCondition: "",
typeConditionList: [], typeConditionList: [],
gender: "", gender: "",
marriageName: "", marriageName: "",
ageClassification: "", ageClassification: "",
cultureLevel: "", cultureName: "",
gridName: "", gridName: "",
monthIncomeLevel: "", monthIncomeLevel: "",
residentTagName: "", residentTagName: "",
matchPeopleNum: 0, matchPeopleNum: 0,
searchParams: '' searchParams: "",
} };
}, },
watch: { watch: {
"$store.state.chooseArea.chooseName"(val) { "$store.state.chooseArea.chooseName"(val) {
@ -80,7 +87,7 @@ export default {
// this.getDisKey() // this.getDisKey()
this.getData(); this.getData();
} }
} },
}, },
mounted() { mounted() {
if (this.$store.state.chooseArea.chooseName.orgId) { if (this.$store.state.chooseArea.chooseName.orgId) {
@ -90,17 +97,17 @@ export default {
}, },
methods: { methods: {
resultTypeChange(val) { resultTypeChange(val) {
this.resultType = val this.resultType = val;
this.getData() this.getData();
}, },
gotopage() { gotopage() {
this.$router.push('/dataBoard/satisfactionEval/dissatisfiedPersonnel?searchParams=' + this.searchParams) this.$router.push("/dataBoard/satisfactionEval/dissatisfiedPersonnel?searchParams=" + this.searchParams);
}, },
getDisKey() { getDisKey() {
this.$http.post('/sys/dict/data/dictlist', {'dictType': 'satisfaction_category'}).then(({data: {data}}) => { this.$http.post("/sys/dict/data/dictlist", { dictType: "satisfaction_category" }).then(({ data: { data } }) => {
this.typeCondition = data[0].value this.typeCondition = data[0].value;
this.typeConditionList = data this.typeConditionList = data;
}) });
}, },
getData() { getData() {
let params = { let params = {
@ -108,22 +115,22 @@ export default {
orgId: this.$store.state.chooseArea.chooseName.orgId, orgId: this.$store.state.chooseArea.chooseName.orgId,
queryType: this.resultType, queryType: this.resultType,
category: this.typeCondition, category: this.typeCondition,
} };
this.$http.get('/governance/satisfactionOverview/satisfactionCrowdPortrait?' + this.$paramsFormat(params)).then(({data: {data}}) => { this.$http.get("/governance/satisfactionOverview/satisfactionCrowdPortrait?" + this.$paramsFormat(params)).then(({ data: { data } }) => {
this.gender = data.gender; this.gender = data.gender;
this.marriageName = data.marriageName; this.marriageName = data.marriageName;
this.ageClassification = data.ageClassification; this.ageClassification = data.ageClassification;
this.cultureLevel = data.cultureLevel; this.cultureName = data.cultureName;
this.gridName = data.gridName; this.gridName = data.gridName;
this.monthIncomeLevel = data.monthIncomeLevel; this.monthIncomeLevel = data.monthIncomeLevel;
this.residentTagName = data.residentTagName; this.residentTagName = data.residentTagName;
this.matchPeopleNum = data.matchPeopleNum; this.matchPeopleNum = data.matchPeopleNum;
this.searchParams = JSON.stringify({...data, ...params}) this.searchParams = JSON.stringify({ ...data, ...params });
}) });
} },
} },
} };
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -146,7 +153,7 @@ $purple: #6642fd;
.txt { .txt {
font-size: 16px; font-size: 16px;
font-weight: 500; font-weight: 500;
color: #FFFFFF; color: #ffffff;
line-height: 22px; line-height: 22px;
margin-right: 25px; margin-right: 25px;
} }
@ -154,15 +161,15 @@ $purple: #6642fd;
/deep/ .el-input__inner { /deep/ .el-input__inner {
width: 110px !important; width: 110px !important;
height: 24px !important; height: 24px !important;
background: #021C49 !important; background: #021c49 !important;
border: 1px solid #125AAA !important; border: 1px solid #125aaa !important;
border-radius: 12px !important; border-radius: 12px !important;
color: #A0CDFF; color: #a0cdff;
} }
/deep/ .el-input__icon { /deep/ .el-input__icon {
line-height: 24px !important; line-height: 24px !important;
color: #A0CDFF; color: #a0cdff;
} }
} }
@ -196,13 +203,12 @@ $purple: #6642fd;
&:after { &:after {
content: ""; content: "";
opacity: .3; opacity: 0.3;
display: block; display: block;
width: 76px; width: 76px;
height: 76px; height: 76px;
position: absolute; position: absolute;
border-radius: 50%; border-radius: 50%;
} }
&:nth-of-type(1) { &:nth-of-type(1) {
@ -315,11 +321,11 @@ $purple: #6642fd;
.btn { .btn {
width: 240px; width: 240px;
height: 46px; height: 46px;
border: 1px solid #125AAA; border: 1px solid #125aaa;
border-radius: 23px; border-radius: 23px;
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #FFFFFF; color: #ffffff;
line-height: 46px; line-height: 46px;
display: flex; display: flex;
align-items: center; align-items: center;
@ -332,5 +338,4 @@ $purple: #6642fd;
font-size: 18px; font-size: 18px;
} }
} }
</style>
</style>

Loading…
Cancel
Save