Browse Source

新增页面

feature
战立标 2 years ago
parent
commit
0b53ad505d
  1. BIN
      src/assets/images/manyidu/hx_bg.png
  2. 4
      src/assets/scss/dataBoard/table-border.scss
  3. 10
      src/router/index.js
  4. 360
      src/views/dataBoard/satisfactionEval/dissatisfieReason/detail.vue
  5. 221
      src/views/dataBoard/satisfactionEval/dissatisfieReason/index.vue
  6. 8
      src/views/dataBoard/satisfactionEval/index.vue
  7. 142
      src/views/dataBoard/satisfactionEval/modules/DissatisfiedReason/index.vue
  8. 25
      src/views/dataBoard/satisfactionEval/modules/PersonnelPortrait/index.vue
  9. 130
      src/views/dataBoard/satisfactionEval/modules/PotentialPeople/index.vue
  10. 30
      src/views/dataBoard/satisfactionEval/modules/SelfInspectionScore/index.vue
  11. 2
      src/views/dataBoard/satisfactionEval/modules/eventAnalysis/index.vue

BIN
src/assets/images/manyidu/hx_bg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 46 KiB

4
src/assets/scss/dataBoard/table-border.scss

@ -19,8 +19,8 @@
background: #0E3873;
}
/deep/ .el-table td,
/deep/ .el-table th {
/deep/ .el-table td {
///deep/ .el-table th {
background: none !important;
}

10
src/router/index.js

@ -584,6 +584,16 @@ export const dataBoardRoutes = {
isTab: false,
},
},
{
path: "satisfactionEval/dissatisfieReason",
props: true,
component: () => import("@/views/dataBoard/satisfactionEval/dissatisfieReason/index"),
name: "dataBoard-dissatisfieReason-index",
meta: {
title: "社区自查不满意数原因列表",
isTab: false,
},
},
{
path: "satisfactionEval/dissatisfiedPersonnel",
props: true,

360
src/views/dataBoard/satisfactionEval/dissatisfieReason/detail.vue

@ -0,0 +1,360 @@
<template>
<el-dialog
:before-close="handleClose"
:modal="true"
:modal-append-to-body="false"
:visible.sync="dialogVisible"
class="dissatisfied-detail"
title=""
width="1118px"
>
<div class="content">
<div class="main-title main-title2">
<Title text="社区自查报告详情"/>
</div>
<div class="content2">
<div class="title-sub">
<img :height="18" :width="18" src="@/assets/images/manyidu/tc-title-icon.png"/>
不满意事项列表
</div>
<div class="preface">
<p>尊敬的居民朋友</p>
<p class="indent-2">
为了更好地推进社区工作为您提供更全面优质的社区服务请您根据真实情况填写此表我们将认真对待您提出的问题并承诺对您提供的信息保密感谢您的配合</p>
</div>
<div class="problem-list">
<div class="problem-item">
<div class="problem-title">1您对本社区的文化设施建设情况</div>
<el-radio-group v-model="radio">
<el-radio :label="1">满意</el-radio>
<el-radio :label="2">基本满意</el-radio>
<el-radio :label="3">不满意</el-radio>
</el-radio-group>
</div>
<div class="problem-item">
<div class="problem-title">1.1您具体对哪些方面不满意请详细说明原因</div>
<el-radio-group v-model="radio">
<el-radio :label="1">社区文化广场</el-radio>
<el-radio :label="2">图书阅览室</el-radio>
<el-radio :label="3">文艺演出</el-radio>
<el-radio :label="4">其他</el-radio>
</el-radio-group>
<div>不满意的原因: 退休人员比较多大家空闲时间多没社区文化广场太少了没法打发时间</div>
</div>
<div class="problem-item">
<div class="problem-title">2您对本社区的体育健身设施组织开展的健身活动比赛等体育活动是否满意?</div>
<el-radio-group v-model="radio">
<el-radio :label="1">满意</el-radio>
<el-radio :label="2">基本满意</el-radio>
<el-radio :label="3">不满意</el-radio>
</el-radio-group>
</div>
<div class="problem-item">
<div class="problem-title">2.1您具体对哪些方面不满意请详细说明原因</div>
<el-radio-group v-model="radio">
<el-radio :label="1">社区健身器材</el-radio>
<el-radio :label="2">健身运动</el-radio>
<el-radio :label="3">体育活动</el-radio>
<el-radio :label="3">其他</el-radio>
</el-radio-group>
<div>不满意的原因: 老年人健身的地方都没有平时想锻炼困难</div>
</div>
<div class="problem-item">
<div class="problem-title">3您对本社区的幼儿园保育教育质量小学/初中数学质量以及师德师风方面是否满意</div>
<el-radio-group v-model="radio">
<el-radio :label="1">满意</el-radio>
<el-radio :label="2">基本满意</el-radio>
<el-radio :label="3">不满意</el-radio>
</el-radio-group>
<div>不满意的原因</div>
</div>
<div class="problem-item">
<div class="problem-title">4您对本社区的医疗机构便利程度医务人员的服务态度是否满意</div>
<el-radio-group v-model="radio">
<el-radio :label="1">满意</el-radio>
<el-radio :label="2">基本满意</el-radio>
<el-radio :label="3">不满意</el-radio>
</el-radio-group>
</div>
<div class="problem-item">
<div class="problem-title">4.1您具体对哪些方面不满意请详细说明原因</div>
<el-radio-group v-model="radio">
<el-radio :label="1">挂号缴费</el-radio>
<el-radio :label="2">检查化验</el-radio>
<el-radio :label="3">其他</el-radio>
</el-radio-group>
<div>不满意的原因</div>
</div>
<div class="problem-item">
<div class="problem-title">5您对本社区的养老院建设和服务居家社区养老服务等方面是否满意</div>
<el-radio-group v-model="radio">
<el-radio :label="1">满意</el-radio>
<el-radio :label="2">基本满意</el-radio>
<el-radio :label="3">不满意</el-radio>
</el-radio-group>
</div>
<div class="problem-item">
<div class="problem-title">5.1您具体对哪些方面不满意请详细说明原因</div>
<el-radio-group v-model="radio">
<el-radio :label="1">社区老年人活动场所</el-radio>
<el-radio :label="2">社区为老服务</el-radio>
<el-radio :label="3">居家养老服务</el-radio>
<el-radio :label="4">其他</el-radio>
</el-radio-group>
<div>不满意的原因</div>
</div>
<div class="problem-item">
<div class="problem-title">6您对本社区的社会救助和服务态度以及困难家庭住房保障工作是否满意</div>
<el-radio-group v-model="radio">
<el-radio :label="1">满意</el-radio>
<el-radio :label="2">基本满意</el-radio>
<el-radio :label="3">不满意</el-radio>
</el-radio-group>
</div>
<div class="problem-item">
<div class="problem-title">6.1您具体对哪些方面不满意请详细说明原因</div>
<el-radio-group v-model="radio">
<el-radio :label="1">低保特困残疾人保障办理便利程度</el-radio>
<el-radio :label="3">临时救助申请办理便利程度</el-radio>
<el-radio :label="4">其他</el-radio>
</el-radio-group>
<div>不满意的原因</div>
</div>
<div class="problem-item">
<div class="problem-title">7您对本社区的空气质量居住环境道路情况停车情况是否满意</div>
<el-radio-group v-model="radio">
<el-radio :label="1">满意</el-radio>
<el-radio :label="2">基本满意</el-radio>
<el-radio :label="3">不满意</el-radio>
</el-radio-group>
</div>
<div class="problem-item">
<div class="problem-title">7.1您具体对哪些方面不满意请详细说明原因</div>
<el-radio-group v-model="radio">
<el-radio :label="1">废气异味工地扬尘</el-radio>
<el-radio :label="3">楼院卫生</el-radio>
<el-radio :label="3">乱停车</el-radio>
<el-radio :label="3">占道经营</el-radio>
<el-radio :label="4">其他</el-radio>
</el-radio-group>
<div>不满意的原因</div>
</div>
<div class="problem-item">
<div class="problem-title">
8您对本社区的公安机关打击违法犯罪活动开展巡逻执勤维护治安秩序等安全防范工作方面是否满意
</div>
<el-radio-group v-model="radio">
<el-radio :label="1">满意</el-radio>
<el-radio :label="2">基本满意</el-radio>
<el-radio :label="3">不满意</el-radio>
</el-radio-group>
</div>
<div class="problem-item">
<div class="problem-title">
8您对本社区的公安机关打击违法犯罪活动开展巡逻执勤维护治安秩序等安全防范工作方面是否满意
</div>
<el-radio-group v-model="radio">
<el-radio :label="1">扫黑除恶</el-radio>
<el-radio :label="3">打击犯罪</el-radio>
<el-radio :label="3">保护人身财产安全</el-radio>
<el-radio :label="4">其他</el-radio>
</el-radio-group>
<div>不满意的原因</div>
</div>
<div class="problem-item">
<div class="problem-title">
<div>9您的姓名</div>
<div class="line">夯大力</div>
</div>
</div>
<div class="problem-item">
<div class="problem-title">
<div>10您的手机号</div>
<div class="line">夯大力</div>
</div>
</div>
<div class="problem-item">
<div class="problem-title">11您是否接受回访</div>
<el-radio-group v-model="radio">
<el-radio :label="1">接受回访</el-radio>
<el-radio :label="3">不接受回访</el-radio>
</el-radio-group>
</div>
<div class="problem-item">
<div class="problem-title">12请选择合适您的回访方式</div>
<el-radio-group v-model="radio">
<el-radio :label="1">电话回访</el-radio>
<el-radio :label="2">工作人员上门回访</el-radio>
</el-radio-group>
</div>
<div class="problem-item">
<div class="problem-title">请填写您在社区的家庭住址</div>
<div class="select">
<el-select v-model="value" class="select" filterable placeholder="选择所在小区"
popper-class="selectPopClass">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-select v-model="value" class="select" filterable placeholder="楼栋" popper-class="selectPopClass">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-select v-model="value" class="select" filterable placeholder="单元" popper-class="selectPopClass">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-select v-model="value" class="select" filterable placeholder="门牌号" popper-class="selectPopClass">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div class="textarea">
<el-input
:autosize="{ minRows: 5, maxRows: 10}"
placeholder="如以上选择无法找到您的家庭住址,可在这里填写。"
type="textarea"
/>
</div>
</div>
</div>
</div>
</div>
</el-dialog>
</template>
<script>
import Title from "@/views/dataBoard/satisfactionEval/components/Title";
export default {
name: "dissatisfieReason",
components: {Title},
data() {
return {
dialogVisible: false,
radio: 3,
value: "",
options: [{
label: '1',
value: 1
}],
};
},
methods: {
handleClose(done) {
this.dialogVisible = false;
},
open(id) {
this.dialogVisible = true;
this.getDetail(id);
},
getDetail(id) {
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/scss/dataBoard/dialog.scss";
.content2 {
padding: 42px 40px;
color: #fff;
}
.indent-2 {
text-indent: 2em;
}
.title-sub {
font-size: 18px;
display: flex;
align-items: center;
img {
margin-right: 5px;
}
}
.problem-list {
font-size: 14px;
margin-top: 24px;
.problem-item {
margin-bottom: 25px;
.problem-title {
margin-bottom: 17px;
}
.el-radio-group {
margin-bottom: 10px;
}
}
}
/deep/ .el-radio__label {
color: #fff !important;
}
/deep/ .el-textarea__inner {
color: #fff;
border: 1px solid #0E3978;
border-radius: 2px;
background: rgba(0, 23, 66, 0.72);
}
.el-select {
width: 150px;
margin-right: 4px;
border: 1px solid #126ac5;
border-radius: 2px;
/deep/ .el-input__inner {
color: #fff;
border: none;
background: none;
}
}
.textarea {
width: 610px;
margin-top: 10px;
}
</style>

221
src/views/dataBoard/satisfactionEval/dissatisfieReason/index.vue

@ -0,0 +1,221 @@
<template>
<div>
<Breadcrumb :list="breadcrumbList"/>
<div class="screen">
<el-form :model="queryParams" inline>
<el-date-picker
v-model="queryParams.month"
:append-to-body="false"
placeholder="按月度"
popper-class="date-current-weiyi"
size="small"
type="month"
value-format="yyyy-MM"
/>
<el-select
v-model="queryParams.agencyId"
placeholder="按组织"
popper-class="selectPopClass"
size="small"
>
<el-option
v-for="item in orgOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
<el-input v-model.trim="queryParams.name" placeholder="不满意原因" size="small"></el-input>
<el-button class="btn" size="small" type="primary" @click="search">查询</el-button>
</el-form>
</div>
<div class="table">
<el-table v-loading="loading" :data="list" element-loading-background="rgba(0,0,0,0.5)"
element-loading-spinner="el-icon-loading" element-loading-text="加载中...">
<el-table-column label="序号" type="index" width="80"/>
<el-table-column label="填写时间" prop="key" width="118"/>
<el-table-column label="所属组织" prop="gridName" width="118"/>
<el-table-column label="姓名" prop="restName"></el-table-column>
<el-table-column label="连写电话" prop="mobile">
<template slot-scope="scope">
{{ $sensitive(scope.row.mobile, 3, 7) }}
</template>
</el-table-column>
<el-table-column label="文化设施" prop="key"/>
<el-table-column label="体育设施" prop="key"/>
<el-table-column label="生态环境" prop="key"/>
<el-table-column label="社会治安" prop="key"/>
<el-table-column label="社会救助" prop="key"/>
<el-table-column label="老有所养" prop="key"/>
<el-table-column label="基础教育" prop="key"/>
<el-table-column label="病有所医" prop="key"/>
<el-table-column label="不满意原因" prop="key"/>
<el-table-column label="回访方式" prop="key"/>
<el-table-column label="回访状态" prop="key"/>
<el-table-column align="center" label="详情" width="90">
<template slot-scope="data">
<el-button type="text" @click="handleView(data.row)">查看</el-button>
</template>
</el-table-column>
</el-table>
</div>
<dissatisfieReasonDetail ref="detail" />
<Pagination v-show="total > 0" :limit.sync="queryParams.pageSize" :page.sync="queryParams.pageNo" :total="total"
@pagination="getList"/>
</div>
</template>
<script>
import Breadcrumb from "@/views/dataBoard/satisfactionEval/components/Breadcrumb";
import Pagination from "@/views/dataBoard/satisfactionEval/components/Pagination";
import dissatisfieReasonDetail from "@/views/dataBoard/satisfactionEval/dissatisfieReason/detail.vue";
import Title from "@/views/dataBoard/satisfactionEval/components/Title";
export default {
name: "dissatisfied",
components: {Breadcrumb, Pagination, Title, dissatisfieReasonDetail},
data() {
return {
queryParams: {
month: "",
agencyId: "",
pageNo: 1,
pageSize: 10,
},
total: 0,
orgOptions: [],
breadcrumbList: [
{
path: "/dataBoard/satisfactionEval/index",
name: "满意度评价",
},
{
path: "",
name: "社区自查不满意原因列表 ",
},
],
monthOptions: new Array(12).fill(0).map((_, index) => {
return {label: index - 0 + 1 + "月", value: index - 0 + 1};
}),
list: [{},{},{}],
title: "",
loading: false,
};
},
activated() {
this.title = this.$route.query.title;
let searchParams = JSON.parse(this.$route.query.searchParams);
this.queryParams = {
...this.queryParams,
...searchParams,
};
this.getList();
},
methods: {
search() {
this.queryParams.pageNo = 1;
this.getList();
},
getList() {
this.loading = true;
this.$http.get("?" + this.$paramsFormat(this.queryParams)).then(({data: {data}}) => {
this.total = data.total;
this.list = data.list;
this.loading = false;
});
},
getOrg() {
let params = {
orgId: this.$store.state.chooseArea.chooseName.orgId,
level: this.$store.state.chooseArea.chooseName.level,
};
this.$http.post(`/gov/org/agency/maporg`, params).then(async ({data: {data}}) => {
this.queryParams.agencyId = this.$store.state.chooseArea.chooseName.orgId;
let parent = {value: data.id, label: data.name};
this.orgOptions = [
parent,
...data.children.map((item) => {
return {
value: item.id,
label: item.name,
};
}),
];
this.getList();
});
},
timeChange(type) {
let startTime = "",
endTime = "";
if (type == 1) {
startTime = this.$moment().startOf("month").format("YYYY-MM-DD");
}
if (type == 2) {
startTime = this.$moment().subtract(1, "months").startOf("month").format("YYYY-MM-DD");
}
if (type == 3) {
startTime = this.$moment().subtract(2, "months").startOf("month").format("YYYY-MM-DD");
}
if (type == 4) {
startTime = this.$moment().subtract(5, "months").startOf("month").format("YYYY-MM-DD");
}
if (type == 5) {
startTime = this.$moment().subtract(11, "months").startOf("month").format("YYYY-MM-DD");
}
if (type == 2) {
endTime = this.$moment().subtract(1, "months").endOf("month").format("YYYY-MM-DD");
} else {
endTime = this.$moment().endOf("month").format("YYYY-MM-DD");
}
return [startTime, endTime];
},
handleView(id) {
this.id = id;
this.$refs.detail.open(id);
},
},
};
</script>
<style lang="scss" scoped>
@import "@/assets/scss/dataBoard/table.scss";
.screen {
margin: 25px 0 40px;
.el-select,
.el-input {
width: 150px;
margin-right: 4px;
border: 1px solid #126ac5;
border-radius: 2px;
/deep/ .el-input__inner {
color: #fff;
border: none;
background: none;
}
}
.btn {
height: 32px;
margin-left: 46px;
}
}
.main-title {
margin: 25px 0 32px;
}
.table {
margin-top: 32px;
}
</style>

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

@ -25,6 +25,10 @@
--></div>
</el-col>
<el-col :span="8">
<div class="bgImg">
<Title text="社区自查不满意原因" />
<DissatisfiedReason />
</div>
<div class="bgImg">
<Title text="不满意人员画像" />
<PersonnelPortrait />
@ -50,6 +54,7 @@ import PersonnelPortrait from "@/views/dataBoard/satisfactionEval/modules/Person
import PotentialPeople from "@/views/dataBoard/satisfactionEval/modules/PotentialPeople";
import eventAnalysis from "@/views/dataBoard/satisfactionEval/modules/eventAnalysis";
import SelfInspectionScore from "@/views/dataBoard/satisfactionEval/modules/SelfInspectionScore";
import DissatisfiedReason from "@/views/dataBoard/satisfactionEval/modules/DissatisfiedReason";
export default {
@ -64,7 +69,8 @@ export default {
PersonnelPortrait,
PotentialPeople,
eventAnalysis,
SelfInspectionScore
SelfInspectionScore,
DissatisfiedReason
},
data() {
return {

142
src/views/dataBoard/satisfactionEval/modules/DissatisfiedReason/index.vue

@ -0,0 +1,142 @@
<template>
<div class="charts">
<div id="DissatisfiedReason" @click="$router.push('/dataBoard/satisfactionEval/dissatisfieReason')"></div>
</div>
</template>
<script>
import * as echarts from "echarts";
export default {
name: "DissatisfiedReason",
props: {
data: {
type: Array,
default: () => []
}
},
data() {
return {
}
},
mounted() {
this.initChart();
},
methods: {
timeChange() {
},
initChart() {
let div = document.getElementById('DissatisfiedReason');
this.myChart = echarts.init(div);
var getname = ['社区工作不了解', '宣传力度小', '对社区工作不满意', '其他']; //
var getNum = [8, 9, 16, 21];
var data = [];
for (var i = 0; i < getname.length; i++) {
data.push({name: getname[i], value: getNum[i]})
}
const color = ['#1A95FF', '#27B5BD', '#F95619', '#FFAA01']
var option = {
color,
tooltip: {
trigger: "item"
},
legend: {
type: "plain",
orient: "vertical",
right: 70,
top: "center",
align: "left",
itemGap: 16,
itemWidth: 10,
itemHeight: 10,
symbolKeepAspect: false,
selectedMode: false,
formatter: function (name) {
for (var i = 0; i < getname.length; i++) {
if (name == data[i].name) {
return '{name|' + name + '}{num|' + getNum[i] + '}'
}
}
},
textStyle: {
rich: {
name: {
fontSize: 12,
width: 130,
overflow: 'hidden',
textOverflow: 'ellipsis',
padding: [0, 29, 0, 5],
color: '#A3B9DA',
},
num: {
fontSize: 18,
fontWeight: 500,
align: 'right',
color: '#FFFFFF',
}
}
}
},
series: [{
name: '',
type: "pie",
radius: ["65%", "90%"],
center: ["20%", "50%"],
avoidLabelOverlap: false,
label: {
show: false,
position: "center",
color: "rgba(13, 17, 29,0)",
formatter: `{primary|{d}%}\n{point|占比}}`,
rich: {
primary: {
fontSize: 24,
color: '#7FCEFF',
align: 'center'
},
point: {
fontSize: 12,
fontWeight: 400,
color: "#A3B9DA",
align: 'center'
}
}
},
emphasis: {
label: {
show: true,
fontSize: '14',
fontWeight: 'normal'
}
},
labelLine: {
show: false
},
data: data,
zlevel: 30
}]
};
this.myChart.setOption(option, true);
window.addEventListener("resize", () => this.myChart.resize());
}
}
}
</script>
<style lang="scss" scoped>
.charts {
display: flex;
justify-content: space-between;
padding: 32px;
#DissatisfiedReason {
flex: calc(100% - 100px);
width: calc(100% - 100px);
height: 150px;
}
}
</style>

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

@ -59,7 +59,7 @@
<div style="display: flex">
<div class="btn" @click="gotopage">
<div>
按画像匹配到同类<span>
按画像匹配到潜在不满意人员<span>
<b>{{ matchPeopleNum ? matchPeopleNum : 0 }}</b
></span
>
@ -186,7 +186,7 @@ $purple: #6642fd;
.screen {
display: flex;
align-items: center;
margin: 25px 0 47px;
margin: 25px 0 0px;
.txt {
font-size: 16px;
@ -283,9 +283,9 @@ $purple: #6642fd;
}
.portrait {
width: 388px;
height: 345px;
height: 310px;
position: relative;
background: url("@/assets/images/manyidu/hx_bg.png") no-repeat center;
background: url("@/assets/images/manyidu/hx_bg.png") no-repeat center 80px;
background-size: 234px 186px;
margin: 0 auto;
cursor: pointer;
@ -341,12 +341,12 @@ $purple: #6642fd;
&:nth-of-type(6) {
left: 228px;
top: 269px;
top: 246px;
}
&:nth-of-type(4) {
left: 77px;
top: 257px;
top: 246px;
}
&:nth-of-type(7) {
@ -432,19 +432,22 @@ $purple: #6642fd;
}
.btn {
min-width: 240px;
height: 46px;
border: 1px solid #125aaa;
min-width: 320px;
height: 40px;
background: #00143C;
border: 1px solid #125AAA;
border-radius: 20px;
border-radius: 23px;
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 46px;
line-height: 40px;
display: inline-flex;
align-items: center;
justify-content: space-between;
padding: 0 20px;
margin: 33px auto 0;
margin: 20px auto 0;
cursor: pointer;
span {

130
src/views/dataBoard/satisfactionEval/modules/PotentialPeople/index.vue

@ -1,12 +1,12 @@
<template>
<div
class="potential-people"
v-loading="loading"
element-loading-text="加载中..."
element-loading-spinner="el-icon-loading"
class="potential-people"
element-loading-background="rgba(0,0,0,0.5)"
element-loading-spinner="el-icon-loading"
element-loading-text="加载中..."
>
<div
<!-- <div
class="potential-people-item"
@click="
$router.push(
@ -86,6 +86,65 @@
}}</span
>
</div>
</div>-->
<div class="number-list">
<div class="number-item" @click="
$router.push(
'/dataBoard/satisfactionEval/potentialPeople?countType=event'
)">
<div class="img">
<img alt="" src="@/assets/images/manyidu/hf_ts.png"/>
</div>
<div>
<div class="txt">
事件未解决 <br/>
上报人数
</div>
<div class="num">
<span class="orange">{{ unSolvedNum ? unSolvedNum : 0 }}</span>
</div>
</div>
</div>
<div class="number-item" @click="
$router.push(
'/dataBoard/satisfactionEval/potentialPeople?countType=demand'
)
">
<div class="img">
<img alt="" src="@/assets/images/manyidu/hf_bmy.png"/>
</div>
<div>
<div class="txt">
需求未满足 <br/>
人数
</div>
<div class="num">
<span class="green">{{
unFinishNum ? unFinishNum : 0
}}</span>
</div>
</div>
</div>
<div class="number-item" @click="
$router.push(
'/dataBoard/satisfactionEval/potentialPeople?countType=service'
)
">
<div class="img">
<img alt="" src="@/assets/images/manyidu/hf_zpbmy.png"/>
</div>
<div>
<div class="txt">
应享未享 <br/>
服务人数
</div>
<div class="num">
<span class="light">{{ noServiceNum ? noServiceNum : 0 }}</span>
</div>
</div>
</div>
</div>
</div>
</template>
@ -104,7 +163,8 @@ export default {
props: {
date: {
type: Object,
default: () => {},
default: () => {
},
},
},
watch: {
@ -136,7 +196,7 @@ export default {
"/governance/satisfactionOverview/potentialSatisfactionGroup?" +
this.$paramsFormat(params)
)
.then(({ data: { data } }) => {
.then(({data: {data}}) => {
this.noServiceNum = data.noServiceNum;
this.unFinishNum = data.unFinishNum;
this.unSolvedNum = data.unSolvedNum;
@ -147,7 +207,7 @@ export default {
};
</script>
<style scoped lang="scss">
<style lang="scss" scoped>
@keyframes roate {
0% {
transform: rotateZ(0);
@ -164,34 +224,37 @@ export default {
-o-transform: rotateZ(360deg);
}
}
.potential-people {
padding: 16px 36px;
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 36px;
.potential-people-item {
flex: 1;
margin: 14px;
padding: 26px 0 31px;
text-align: center;
flex: 1;
border: 1px solid rgba(28, 67, 111, 0.22);
background: linear-gradient(
0deg,
rgba(31, 121, 255, 0.22) 0%,
rgba(31, 121, 255, 0) 100%
);
padding: 26px 0 31px;
.icon {
width: 86px;
height: 86px;
margin: 0 auto;
.imgIcon {
width: 30px;
height: 30px;
position: relative;
top: -58px;
width: 30px;
height: 30px;
}
.imgBg {
display: block;
width: 100%;
@ -203,17 +266,17 @@ export default {
.txt {
font-size: 14px;
font-weight: 400;
color: #a3b9da;
line-height: 24px;
margin: 11px 0 22px;
white-space: normal;
color: #a3b9da;
}
.num {
font-size: 14px;
font-weight: 500;
color: #a3b9da;
white-space: normal;
color: #a3b9da;
span {
font-size: 32px;
@ -235,4 +298,43 @@ export default {
.light {
color: #7fceff;
}
.number-list {
display: flex;
justify-content: space-between;
padding: 20px 15px 15px 8px;
.number-item {
display: flex;
.image {
width: 98px;
height: 70px;
}
.txt {
font-size: 15px;
margin-left: -6px;
font-weight: 400;
color: #ffffff;
line-height: 26px;
margin-bottom: 17px;
white-space: nowrap;
}
.num {
font-size: 14px;
font-weight: 500;
color: #a3b9da;
white-space: nowrap;
span {
font-size: 32px;
font-weight: bold;
font-style: italic;
//color: #3ab7ff;
}
}
}
}
</style>

30
src/views/dataBoard/satisfactionEval/modules/SelfInspectionScore/index.vue

@ -1,10 +1,25 @@
<template>
<div class="table">
<el-table :data="data" height="400px">
<el-table-column align="center" label="序号" prop="number" width="80"></el-table-column>
<el-table-column label="12345热线投诉\n人数" prop="column1"></el-table-column>
<el-table-column label="上级满意度调查\n不满意人数" prop="column2"></el-table-column>
<el-table-column label="社区自查不满意\n人数" prop="column3" width="120"></el-table-column>
<el-table :data="data" height="290px">
<el-table-column label="社区" prop="number" width="100"></el-table-column>
<el-table-column label="" prop="column1" width="130">
<template #header>
<div>12345热线投诉</div>
<div>人数</div>
</template>
</el-table-column>
<el-table-column label="" prop="column2" width="130">
<template #header>
<div>上级满意度调查</div>
<div>不满意人数</div>
</template>
</el-table-column>
<el-table-column label="" prop="column3" width="130">
<template #header>
<div>社区自查不满意</div>
<div>人数</div>
</template>
</el-table-column>
<el-table-column label="社区自查得分" prop="column3" width="120"></el-table-column>
</el-table>
</div>
@ -21,6 +36,9 @@ export default {
}
</script>
<style scoped lang="scss">
<style lang="scss" scoped>
@import "@/assets/scss/dataBoard/table-border.scss";
.table {
padding: 10px;
}
</style>

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

@ -150,8 +150,6 @@ export default {
{number: 3, column1: '市北区清江路100号', column2: '10', column3: '100'},
{number: 4, column1: '市北区清江路**号', column2: '10', column3: '100'},
{number: 5, column1: '市北区清江路**号', column2: '10', column3: '100'},
{number: 6, column1: '市北区清江路**号', column2: '10', column3: '100'},
{number: 7, column1: '市北区清江路**号', column2: '10', column3: '100'},
],
data1: [
"number",

Loading…
Cancel
Save