Browse Source

可视化部分样式,社区自查街道版初始版

v1.1
mk 2 years ago
parent
commit
d07db49aff
  1. BIN
      src/assets/images/shuju/overview/.png
  2. BIN
      src/assets/images/shuju/overview/box-bg.png
  3. BIN
      src/assets/images/shuju/overview/title-bg.png
  4. 8
      src/assets/scss/dataBoard/overview/index.scss
  5. 4
      src/views/dataBoard/overview/components/jdjs.vue
  6. 4
      src/views/dataBoard/overview/index.vue
  7. 4
      src/views/dataBoard/satisfactionEval/components/Title/index.vue
  8. 2
      src/views/dataBoardMain/main-navbar.vue
  9. 784
      src/views/modules/satisfaction/communitySelfInsp/index.vue

BIN
src/assets/images/shuju/overview/.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
src/assets/images/shuju/overview/box-bg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
src/assets/images/shuju/overview/title-bg.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 18 KiB

8
src/assets/scss/dataBoard/overview/index.scss

@ -36,14 +36,18 @@
.m-map { .m-map {
position: relative; position: relative;
width: 100%; width: 100%;
height: 690px; height: 970px;
margin-bottom: 10px; margin-bottom: 10px;
} }
.m-box { .m-box {
width: 460px; width: 460px;
background: linear-gradient(144deg, rgba(46, 164, 255, 0.1) 0%, rgba(46, 164, 255, 0) 100%); // background: linear-gradient(144deg, rgba(46, 164, 255, 0.1) 0%, rgba(46, 164, 255, 0) 100%);
background: url('@/assets/images/shuju/overview/box-bg.png') no-repeat;
background-size: 100% 100%;
margin-top: 5px;
} }
.m-rybox { .m-rybox {

4
src/views/dataBoard/overview/components/jdjs.vue

@ -8,7 +8,7 @@
{{ overview }} {{ overview }}
</div> </div>
</div> </div>
<div class="m-jdjs-bg"> <!-- <div class="m-jdjs-bg">
<div class="m-jdjs-bg-title"> <div class="m-jdjs-bg-title">
<div class="m-jdjs-bg-title-img"> <div class="m-jdjs-bg-title-img">
<img src="../../../../assets/images/shuju/overview/zjbg-icon.png" /> <img src="../../../../assets/images/shuju/overview/zjbg-icon.png" />
@ -18,7 +18,7 @@
<div class="m-jdjs-bg-txt"> <div class="m-jdjs-bg-txt">
{{ report }} {{ report }}
</div> </div>
</div> </div> -->
</div> </div>
</template> </template>
<script> <script>

4
src/views/dataBoard/overview/index.vue

@ -25,7 +25,7 @@
</div> </div>
<grid-map ref="map" @clickAgency="clickAgencyItem" :srcGridData="orgData" @clickDotBtn="handleClickDotBtn" :level="currentLevel" :peopleType="peopleType" /> <grid-map ref="map" @clickAgency="clickAgencyItem" :srcGridData="orgData" @clickDotBtn="handleClickDotBtn" :level="currentLevel" :peopleType="peopleType" />
</div> </div>
<div class="m-box m-rybox"> <!-- <div class="m-box m-rybox">
<title-box :text="`${customerName}${peopleList[peopleType]}`"> <title-box :text="`${customerName}${peopleList[peopleType]}`">
<div class="up-style" style="width: 51%"> <div class="up-style" style="width: 51%">
<div> <div>
@ -35,7 +35,7 @@
</div> </div>
</title-box> </title-box>
<jdwgy v-show="listShow" :peopleType="peopleType" :currentLevelData="currentLevelData" :level="currentLevel" @setNum="setNum" @setPoint="setPoint" /> <jdwgy v-show="listShow" :peopleType="peopleType" :currentLevelData="currentLevelData" :level="currentLevel" @setNum="setNum" @setPoint="setPoint" />
</div> </div> -->
</div> </div>
<div class="g-right"> <div class="g-right">

4
src/views/dataBoard/satisfactionEval/components/Title/index.vue

@ -29,8 +29,8 @@ export default {
// width: 100%; // width: 100%;
height: 40px; height: 40px;
background: url(../../../../../assets/images/shuju/overview/title-bg.png) no-repeat; background: url(../../../../../assets/images/shuju/overview/title-bg.png) no-repeat;
// background-size: 100% 100%; background-size: 100% 100%;
padding: 8px 16px 8px 32px; padding: 8px 16px 8px 45px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;

2
src/views/dataBoardMain/main-navbar.vue

@ -29,7 +29,7 @@
</div>--> </div>-->
<div class="nav-list"> <div class="nav-list">
<div class="nav-item" :class="{ 'z-on': $route.path.indexOf('/dataBoard/overview') != -1 }" @click="toPage('/dataBoard/overview/index')"> <div class="nav-item" :class="{ 'z-on': $route.path.indexOf('/dataBoard/overview') != -1 }" @click="toPage('/dataBoard/overview/index')">
<span>概览</span> <span>书记看板</span>
</div> </div>
<div class="nav-item" :class="{ 'z-on': $route.path.includes('/organizational') }" @click="toPage('/organizational/dangTree')"> <div class="nav-item" :class="{ 'z-on': $route.path.includes('/organizational') }" @click="toPage('/organizational/dangTree')">
<span>组织架构</span> <span>组织架构</span>

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

@ -3,83 +3,594 @@
<div class="g-main"> <div class="g-main">
<div> <div>
<div class="m-search"> <div class="m-search">
<el-form :inline="true" :model="formData" ref="ref_searchform" :label-width="'100px'"> <el-form
:inline="true"
:model="formData"
ref="ref_searchform"
:label-width="'100px'"
>
<el-form-item label="自评周期"> <el-form-item label="自评周期">
<el-date-picker v-model="formData.period" type="month" value-format="yyyy-MM" placeholder="选择日期" <el-date-picker
style="width: 202px" clearable> v-model="formData.period"
type="month"
value-format="yyyy-MM"
placeholder="选择日期"
style="width: 202px"
clearable
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<div style="float: right; margin-top: 5px"> <div style="float: right; margin-top: 5px">
<el-button style="margin-left: 30px" size="small" type="primary " <el-button
@click="handleSearch">查询</el-button> style="margin-left: 30px"
<el-button style="margin-left: 10px" is-plain class="diy-button--white el-button--default" size="small"
size="small" @click="resetSearch">重置</el-button> type="primary "
@click="handleSearch"
>查询</el-button
>
<el-button
style="margin-left: 10px"
is-plain
class="diy-button--white el-button--default"
size="small"
@click="resetSearch"
>重置</el-button
>
</div> </div>
</el-form> </el-form>
</div> </div>
<div class="m-table"> <div class="m-table">
<div class="div_btn" v-if="btnFlag"> <div class="div_btn" v-if="btnFlag">
<el-button type="primary" size="small" class="diy-button--white el-button--default" <el-button
@click="handleCreateMonthlySurvey">生成本月社区自查问卷表</el-button> type="primary"
size="small"
class="diy-button--white el-button--default"
@click="handleCreateMonthlySurvey"
>生成本月社区自查问卷表</el-button
>
</div> </div>
<div class="m-table-item" :style="{ height: maxTableHeight + 'px', width: '100%' }"> <div
class="m-table-item"
:style="{ height: maxTableHeight + 'px', width: '100%' }"
>
<div>本月已参与调研人数 {{ personQty }}</div> <div>本月已参与调研人数 {{ personQty }}</div>
<section class="content_box"> <section class="content_box">
<div class="left"> <div class="left">
<img src="../../../../assets/img/satisfaction/zhdf.png" alt="Image"> <img
src="../../../../assets/img/satisfaction/zhdf.png"
alt="Image"
/>
<div class="left_right"> <div class="left_right">
<div>{{ synthesisScore }}</div> <div>{{ synthesisScore }}</div>
<div>综合得分</div> <div>综合得分</div>
</div> </div>
<div class="right_box"> <div class="right_box">
<div :class="synthesisState ? 'up' : 'down'"> <div :class="synthesisState ? 'up' : 'down'">
<img src="@/assets/images/index/up.png" alt="" v-if="synthesisState && synthesisScoreBtLastMonth!=0" > <img
<img src="@/assets/images/index/down.png" alt="" v-if="!synthesisState && synthesisScoreBtLastMonth!=0" > src="@/assets/images/index/up.png"
alt=""
v-if="synthesisState && synthesisScoreBtLastMonth != 0"
/>
<img
src="@/assets/images/index/down.png"
alt=""
v-if="
!synthesisState &&
synthesisScoreBtLastMonth != 0 &&
synthesisScoreBtLastMonth != null
"
/>
<span>{{ synthesisScoreBtLastMonth }}</span> <span>{{ synthesisScoreBtLastMonth }}</span>
</div> </div>
<div style="color: #999;">较上月</div> <div style="color: #999">较上月</div>
</div> </div>
</div> </div>
<div class="right"> <div class="right">
<div class="box" v-for="(item, index) in score" :key="index"> <div class="box" v-for="(item, index) in score" :key="index">
<div class="card"> <div class="card">
<img :src="item.imgUrl" alt="Image"> <img :src="item.imgUrl" alt="Image" />
<div class="right_right"> <div class="right_right">
<div>{{ item.score }}</div> <div>{{ item.score }}</div>
<div>{{ item.satisfactionCategoryName }}</div> <div>{{ item.satisfactionCategoryName }}</div>
</div> </div>
<div class="right_box"> <div class="right_box">
<div> <div>
<img src="@/assets/images/index/up.png" alt="" v-if="item.state && item.scoreDiffBtLastMonth!=0" > <img
<img src="@/assets/images/index/down.png" alt="" v-if="!item.state && item.scoreDiffBtLastMonth!=0" > src="@/assets/images/index/up.png"
<span :class="item.state?'up':'down'">{{item.scoreDiffBtLastMonth}}</span> alt=""
v-if="item.state && item.scoreDiffBtLastMonth != 0"
/>
<img
src="@/assets/images/index/down.png"
alt=""
v-if="!item.state && item.scoreDiffBtLastMonth != 0"
/>
<span :class="item.state ? 'up' : 'down'">{{
item.scoreDiffBtLastMonth
}}</span>
</div> </div>
<div style="color: #999;">较上月</div> <div style="color: #999">较上月</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</section> </section>
<div id="myCharts"></div>
<section class="bto-box">
<div id="myCharts" v-if="user.level != 'street'"></div>
<div v-else class="f-top16">
<el-table :data="tableList" :height="tabHeight" border align="center">
<el-table-column label="序号" type="index" width="80" />
<el-table-column
label="社区"
show-overflow-tooltip
prop="agencyName"
width="200"
>
</el-table-column>
<el-table-column
label="参与调研人数"
prop="personQty"
width="150"
>
</el-table-column>
<el-table-column
label="综合得分"
prop="synthesisScore"
width="150"
align="center"
>
<template slot-scope="scope">
<div class="f-flex">
<span class="down f-right8">{{
scope.row.synthesisScore
}}</span>
<div>
<img
src="@/assets/images/index/up.png"
width="10px"
height="14px"
v-if="
scope.row.synthesisScoreDiffBtLastMonth >
0 &&
scope.row.synthesisScoreDiffBtLastMonth != 0
"
/>
<img
src="@/assets/images/index/down.png"
width="10px"
height="14px"
v-if="
scope.row.synthesisScoreDiffBtLastMonth <
0 &&
scope.row.synthesisScoreDiffBtLastMonth != 0
"
/>
<span class="gray">{{
scope.row.synthesisScoreDiffBtLastMonth < 0
? Math.abs(
scope.row.synthesisScoreDiffBtLastMonth
)
: scope.row.synthesisScoreDiffBtLastMonth
}}</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column
label="文化设施"
prop="culturalFacilityScore"
width="150"
>
<template slot-scope="scope">
<div class="f-flex">
<span class="down f-right8">{{
scope.row.culturalFacilityScore
}}</span>
<div>
<img
src="@/assets/images/index/up.png"
width="10px"
height="14px"
v-if="
scope.row.culturalFacilityScoreDiffBtLastMonth >
0 &&
scope.row.culturalFacilityScoreDiffBtLastMonth != 0
"
/>
<img
src="@/assets/images/index/down.png"
width="10px"
height="14px"
v-if="
scope.row.culturalFacilityScoreDiffBtLastMonth <
0 &&
scope.row.culturalFacilityScoreDiffBtLastMonth != 0
"
/>
<span class="gray">{{
scope.row.culturalFacilityScoreDiffBtLastMonth < 0
? Math.abs(
scope.row.culturalFacilityScoreDiffBtLastMonth
)
: scope.row.culturalFacilityScoreDiffBtLastMonth
}}</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column
label="基础教育"
prop="basicEducation"
width="150"
>
<template slot-scope="scope">
<div class="f-flex">
<span class="down f-right8">{{
scope.row.basicEducationScore
}}</span>
<div>
<img
src="@/assets/images/index/up.png"
width="10px"
height="14px"
v-if="
scope.row.basicEducationScoreDiffBtLastMonth >
0 &&
scope.row.basicEducationScoreDiffBtLastMonth != 0
"
/>
<img
src="@/assets/images/index/down.png"
width="10px"
height="14px"
v-if="
scope.row.basicEducationScoreDiffBtLastMonth <
0 &&
scope.row.basicEducationScoreDiffBtLastMonth != 0
"
/>
<span class="gray">{{
scope.row.basicEducationScoreDiffBtLastMonth < 0
? Math.abs(
scope.row.basicEducationScoreDiffBtLastMonth
)
: scope.row.basicEducationScoreDiffBtLastMonth
}}</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column
label="体育设施"
prop="sportsFacility"
width="150"
>
<template slot-scope="scope">
<div class="f-flex">
<span class="down f-right8">{{
scope.row.sportsFacilityScore
}}</span>
<div>
<img
src="@/assets/images/index/up.png"
width="10px"
height="14px"
v-if="
scope.row.sportsFacilityScoreDiffBtLastMonth >
0 &&
scope.row.sportsFacilityScoreDiffBtLastMonth != 0
"
/>
<img
src="@/assets/images/index/down.png"
width="10px"
height="14px"
v-if="
scope.row.sportsFacilityScoreDiffBtLastMonth <
0 &&
scope.row.sportsFacilityScoreDiffBtLastMonth != 0
"
/>
<span class="gray">{{
scope.row.sportsFacilityScoreDiffBtLastMonth < 0
? Math.abs(
scope.row.sportsFacilityScoreDiffBtLastMonth
)
: scope.row.sportsFacilityScoreDiffBtLastMonth
}}</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column
label="生态环境"
prop="ecologicalEnv"
width="150"
>
<template slot-scope="scope">
<div class="f-flex">
<span class="down f-right8">{{
scope.row.ecologicalEnvScore
}}</span>
<div>
<img
src="@/assets/images/index/up.png"
width="10px"
height="14px"
v-if="
scope.row.ecologicalEnvScoreDiffBtLastMonth >
0 &&
scope.row.ecologicalEnvScoreDiffBtLastMonth != 0
"
/>
<img
src="@/assets/images/index/down.png"
width="10px"
height="14px"
v-if="
scope.row.ecologicalEnvScoreDiffBtLastMonth <
0 &&
scope.row.ecologicalEnvScoreDiffBtLastMonth != 0
"
/>
<span class="gray">{{
scope.row.ecologicalEnvScoreDiffBtLastMonth < 0
? Math.abs(
scope.row.ecologicalEnvScoreDiffBtLastMonth
)
: scope.row.ecologicalEnvScoreDiffBtLastMonth
}}</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column
label="社会治安"
prop="socialSecurity"
width="150"
>
<template slot-scope="scope">
<div class="f-flex">
<span class="down f-right8">{{
scope.row.socialSecurityScore
}}</span>
<div>
<img
src="@/assets/images/index/up.png"
width="10px"
height="14px"
v-if="
scope.row.socialSecurityScoreDiffBtLastMonth >
0 &&
scope.row.socialSecurityScoreDiffBtLastMonth != 0
"
/>
<img
src="@/assets/images/index/down.png"
width="10px"
height="14px"
v-if="
scope.row.socialSecurityScoreDiffBtLastMonth <
0 &&
scope.row.socialSecurityScoreDiffBtLastMonth != 0
"
/>
<span class="gray">{{
scope.row.socialSecurityScoreDiffBtLastMonth < 0
? Math.abs(
scope.row.socialSecurityScoreDiffBtLastMonth
)
: scope.row.socialSecurityScoreDiffBtLastMonth
}}</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column
label="社会救助"
prop="socialAssistance"
width="150"
>
<template slot-scope="scope">
<div class="f-flex">
<span class="down f-right8">{{
scope.row.socialAssistanceScore
}}</span>
<div>
<img
src="@/assets/images/index/up.png"
width="10px"
height="14px"
v-if="
scope.row.socialAssistanceScoreDiffBtLastMonth >
0 &&
scope.row.socialAssistanceScoreDiffBtLastMonth != 0
"
/>
<img
src="@/assets/images/index/down.png"
width="10px"
height="14px"
v-if="
scope.row.socialAssistanceScoreDiffBtLastMonth <
0 &&
scope.row.socialAssistanceScoreDiffBtLastMonth != 0
"
/>
<span class="gray">{{
scope.row.socialAssistanceScoreDiffBtLastMonth < 0
? Math.abs(
scope.row.socialAssistanceScoreDiffBtLastMonth
)
: scope.row.socialAssistanceScoreDiffBtLastMonth
}}</span>
</div>
</div> </div>
</template>
</el-table-column>
<el-table-column
label="老有所养"
prop="oldPeopleProvide"
width="150"
>
<template slot-scope="scope">
<div class="f-flex">
<span class="down f-right8">{{
scope.row.oldPeopleProvideScore
}}</span>
<div>
<img
src="@/assets/images/index/up.png"
width="10px"
height="14px"
v-if="
scope.row.oldPeopleProvideScoreDiffBtLastMonth >
0 &&
scope.row.oldPeopleProvideScoreDiffBtLastMonth != 0
"
/>
<img
src="@/assets/images/index/down.png"
width="10px"
height="14px"
v-if="
scope.row.oldPeopleProvideScoreDiffBtLastMonth <
0 &&
scope.row.oldPeopleProvideScoreDiffBtLastMonth != 0
"
/>
<span class="gray">{{
scope.row.oldPeopleProvideScoreDiffBtLastMonth < 0
? Math.abs(
scope.row.oldPeopleProvideScoreDiffBtLastMonth
)
: scope.row.oldPeopleProvideScoreDiffBtLastMonth
}}</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="病有所医" prop="medical" width="150" >
<template slot-scope="scope">
<div class="f-flex">
<span class="down f-right8">{{
scope.row.medicalScore
}}</span>
<div> <div>
<img
src="@/assets/images/index/up.png"
width="10px"
height="14px"
v-if="
scope.row.medicalScoreDiffBtLastMonth >
0 &&
scope.row.medicalScoreDiffBtLastMonth != 0
"
/>
<img
src="@/assets/images/index/down.png"
width="10px"
height="14px"
v-if="
scope.row.medicalScoreDiffBtLastMonth <
0 &&
scope.row.medicalScoreDiffBtLastMonth != 0
"
/>
<span class="gray">{{
scope.row.medicalScoreDiffBtLastMonth < 0
? Math.abs(
scope.row.medicalScoreDiffBtLastMonth
)
: scope.row.medicalScoreDiffBtLastMonth
}}</span>
</div> </div>
</div> </div>
</template>
</el-table-column>
<el-table-column
label="操作"
width="90"
align="center"
fixed="right"
>
<template slot-scope="data">
<el-button type="text" @click="handleView(data.row)"
>查看</el-button
>
</template>
</el-table-column>
</el-table>
<el-row type="flex">
<el-col :span="12" align="left">
<div style="margin-top: 25px">{{ total }}</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="total"
>
</el-pagination
></el-col>
</el-row>
</div>
</section>
</div> </div>
<el-dialog v-if="showFormList && user.level == 'community'" :visible.sync="showFormList" :close-on-click-modal="false" <div></div>
:close-on-press-escape="false" title="社区自查" :modal-append-to-body="false" width="820px" top="5vh" </div>
class="dialog-h" @closed="showFormList = false"> </div>
<form-list ref="ref_add_form" @handleClose="handleClose" :satisfactionCategoryStr="satisfactionCategoryStr" <el-dialog
@handelDetail="handelDetail" @handelFollowUpList="handelFollowUpList" :period="formData.period" :seriesName="seriesName" :inspRecordId="inspRecordId"></form-list> v-if="showFormList && user.level == 'community'"
<el-dialog width="920px" class="dialog-h" title="社区自查报告详情" :close-on-click-modal="false" :visible.sync="showFormList"
v-if="showFollowUpDetail" :visible.sync="showFollowUpDetail" append-to-body> :close-on-click-modal="false"
<follow-Detail :period="formData.period" :inspResultId="inspResultId" @handleClose="showFollowUpDetail = false"></follow-Detail> :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"
@handelDetail="handelDetail"
@handelFollowUpList="handelFollowUpList"
:period="formData.period"
:seriesName="seriesName"
:inspRecordId="inspRecordId"
></form-list>
<el-dialog
width="920px"
class="dialog-h"
title="社区自查报告详情"
:close-on-click-modal="false"
v-if="showFollowUpDetail"
:visible.sync="showFollowUpDetail"
append-to-body
>
<follow-Detail
:period="formData.period"
:inspResultId="inspResultId"
@handleClose="showFollowUpDetail = false"
></follow-Detail>
</el-dialog> </el-dialog>
<el-dialog width="820px" class="dialog-h" title="回访记录" :close-on-click-modal="false" v-if="showFollowUpList" <el-dialog
:visible.sync="showFollowUpList" append-to-body> width="820px"
class="dialog-h"
title="回访记录"
:close-on-click-modal="false"
v-if="showFollowUpList"
:visible.sync="showFollowUpList"
append-to-body
>
<follow-list :id="inspResultId"></follow-list> <follow-list :id="inspResultId"></follow-list>
</el-dialog> </el-dialog>
</el-dialog> </el-dialog>
@ -89,11 +600,8 @@
加载中<span class="dot">...</span> 加载中<span class="dot">...</span>
</div> </div>
</el-image> </el-image>
<div> <div><span>问卷链接</span> {{ questionnaireUrl }}</div>
<span>问卷链接</span> {{ questionnaireUrl }} <span slot="footer" class="dialog-footer"> </span>
</div>
<span slot="footer" class="dialog-footer">
</span>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -149,10 +657,10 @@ export default {
type: "category", type: "category",
boundaryGap: true, boundaryGap: true,
axisLine: { axisLine: {
show: true show: true,
}, },
axisTick: { axisTick: {
show: false show: false,
}, },
data: [], // yourDataArrayx data: [], // yourDataArrayx
splitLine: { splitLine: {
@ -160,19 +668,16 @@ export default {
lineStyle: { lineStyle: {
width: 60, // width: 60, //
color: "#000", color: "#000",
opacity: 0 opacity: 0,
}, },
// 2 // 2
}, },
}, },
yAxis: { yAxis: {
type: "value", type: "value",
name: "单位(个)", name: "单位(个)",
min: 0, min: 0,
}, },
series: [ series: [
{ {
@ -216,31 +721,43 @@ export default {
satisfactionCategory: [], // satisfactionCategory: [], //
satisfactionCategoryName: [], satisfactionCategoryName: [],
score: [], // score: [], //
showFormList: false, // showFormList: false, //
showFollowUpDetail: false, // showFollowUpDetail: false, //
showFollowUpList: false, //访 showFollowUpList: false, //访
showTduckImage: false, showTduckImage: false,
qrCodeImgUrl: '',// qrCodeImgUrl: "", //
questionnaireUrl: '', questionnaireUrl: "", //
synthesisScore: '',
personQty: '', synthesisScore: "", //
synthesisState: false, //
synthesisScoreBtLastMonth: null, //
personQty: "", //
inspResultId: "", inspResultId: "",
btnFlag:true, btnFlag: true, //()
user: {},
synthesisState:false, tableList: [],
synthesisScoreBtLastMonth:null,
total: 0,
pageNo: 1,
pageSize: 20,
}; };
}, },
computed: { computed: {
maxTableHeight() { maxTableHeight() {
const h = this.clientHeight - this.searchH - 330 + this.iframeHeight; let num = this.user.level == "street" ? 50 : 0;
const _h = this.clientHeight - 330 - this.searchH; const _h = this.clientHeight - 260 - this.searchH - num;
return this.$store.state.inIframe ? h : _h; return _h;
},
tabHeight() {
const _h = this.clientHeight - 600;
return _h;
}, },
...mapGetters(["clientHeight", "iframeHeight"]), ...mapGetters(["clientHeight", "iframeHeight"]),
}, },
@ -248,19 +765,21 @@ export default {
async mounted() { async mounted() {
this.user = this.$store.state.user; this.user = this.$store.state.user;
this.agencyId = this.user.agencyId; this.agencyId = this.user.agencyId;
if(this.user.level != 'community'){ if (this.user.level != "community") {
this.btnFlag = false this.btnFlag = false;
} }
await this.getDicts(); await this.getDicts();
await this.getTableData(); await this.initData();
await this.initEcharts(); if (this.user.level != "street") {
this.initEcharts();
}
}, },
created() { created() {
let date = new Date() let date = new Date();
this.formData.period = util.formatDate(date, 'yyyy-MM') this.formData.period = util.formatDate(date, "yyyy-MM");
}, },
activated() { activated() {
this.handleWindowResize() // this.handleWindowResize();
}, },
methods: { methods: {
// ------------------------------------------------------------------------------ // ------------------------------------------------------------------------------
@ -288,20 +807,21 @@ export default {
// ------------------------------------------------------------------------------ // ------------------------------------------------------------------------------
handelDetail(id) { handelDetail(id) {
this.showFollowUpDetail = true; this.showFollowUpDetail = true;
this.inspResultId = id this.inspResultId = id;
}, },
handelFollowUpList(id) { handelFollowUpList(id) {
this.showFollowUpList = true; this.showFollowUpList = true;
this.inspResultId = id this.inspResultId = id;
}, },
async handleCreateMonthlySurvey() { async handleCreateMonthlySurvey() {
try { try {
let url = '/governance/satisfaction/communitySelfInsp/generateQuestionnaire' let url =
const { data, code } = await requestPost(url) "/governance/satisfaction/communitySelfInsp/generateQuestionnaire";
const { data, code } = await requestPost(url);
if (code == 0) { if (code == 0) {
this.showTduckImage = true this.showTduckImage = true;
this.qrCodeImgUrl = data.qrCodeImgUrl this.qrCodeImgUrl = data.qrCodeImgUrl;
this.questionnaireUrl = data.questionnaireUrl this.questionnaireUrl = data.questionnaireUrl;
} }
} catch (err) { } catch (err) {
console.log(err); console.log(err);
@ -316,7 +836,7 @@ export default {
}); });
this.$nextTick(() => { this.$nextTick(() => {
window.addEventListener("resize", this.handleWindowResize); window.addEventListener("resize", this.handleWindowResize);
}) });
}, },
handleWindowResize() { handleWindowResize() {
if (this.myChart) { if (this.myChart) {
@ -328,44 +848,52 @@ export default {
this.satisfactionCategoryStr = this.dicts.satisfaction_category.filter( this.satisfactionCategoryStr = this.dicts.satisfaction_category.filter(
(item) => item.label == name (item) => item.label == name
)[0].value; )[0].value;
this.seriesName = seriesName == '满意'?'veryGood':seriesName == '基本满意'?'good':'bad'; this.seriesName =
seriesName == "满意"
? "veryGood"
: seriesName == "基本满意"
? "good"
: "bad";
}, },
handleClose() { handleClose() {
this.showFormList = false; this.showFormList = false;
this.showFollowUpDetail = false this.showFollowUpDetail = false;
}, },
// //
handleSearch(val) { handleSearch(val) {
this.initData();
},
async initData() {
if (this.user.level != "street") {
this.getCharts();
} else {
this.getTableData(); this.getTableData();
}
}, },
async getTableData() { async getCharts() {
try { let url = "/governance/satisfaction/communitySelfInsp/stats/synthesis";
// const url = "/governance/satisfaction/communitySelfInsp/stats/synthesis/superior";
// const { formData } = this;
// let agencyId = this.$store.state.user.agencyId;
// const { data, msg } = await requestGet(url, { ...formData,agencyId });
const url = "/governance/satisfaction/communitySelfInsp/stats/synthesis";
const { formData } = this; const { formData } = this;
const { data, msg } = await requestGet(url, { ...formData }); const { data, code, msg } = await requestGet(url, { ...formData });
if (code == 0) {
//
this.total = data.total || 0;
this.score = []; this.score = [];
this.option.series.forEach(series => series.data = []); this.option.series.forEach((series) => (series.data = []));
this.option.xAxis.data = []; this.option.xAxis.data = [];
this.tableData = data.categoryDatas || [];
this.satisfactionCategory = []; this.satisfactionCategory = [];
this.inspRecordId = data.inspRecordId; this.inspRecordId = data.inspRecordId;
this.synthesisScore = data.synthesisScore; this.synthesisScore = data.synthesisScore;
this.synthesisScoreBtLastMonth = data.synthesisScoreBtLastMonth; this.synthesisScoreBtLastMonth = data.synthesisScoreBtLastMonth;
this.synthesisState = this.synthesisScoreBtLastMonth >= 0; this.synthesisState = this.synthesisScoreBtLastMonth >= 0;
if (this.synthesisScoreBtLastMonth < 0) { if (this.synthesisScoreBtLastMonth < 0) {
this.synthesisScoreBtLastMonth = Math.abs(this.synthesisScoreBtLastMonth); this.synthesisScoreBtLastMonth = Math.abs(
this.synthesisScoreBtLastMonth
);
} }
this.personQty = data.personQty; this.personQty = data.personQty;
const allowedCategories = this.dicts.satisfaction_category.map(item => item.value); const allowedCategories = this.dicts.satisfaction_category.map(
for (const item of this.tableData) { (item) => item.value
);
for (const item of data.categoryDatas) {
if (allowedCategories.includes(item.satisfactionCategory)) { if (allowedCategories.includes(item.satisfactionCategory)) {
this.option.series[0].data.push(item.veryGoodQty); this.option.series[0].data.push(item.veryGoodQty);
this.option.series[1].data.push(item.goodQty); this.option.series[1].data.push(item.goodQty);
@ -377,25 +905,75 @@ export default {
satisfactionCategoryName: item.satisfactionCategoryName, satisfactionCategoryName: item.satisfactionCategoryName,
imgUrl: require(`@/assets/img/satisfaction/${item.satisfactionCategory}.png`), imgUrl: require(`@/assets/img/satisfaction/${item.satisfactionCategory}.png`),
scoreDiffBtLastMonth: item.scoreDiffBtLastMonth, scoreDiffBtLastMonth: item.scoreDiffBtLastMonth,
state: item.scoreDiffBtLastMonth >= 0 state: item.scoreDiffBtLastMonth >= 0,
}); });
if (item.scoreDiffBtLastMonth < 0) { if (item.scoreDiffBtLastMonth < 0) {
item.scoreDiffBtLastMonth = Math.abs(item.scoreDiffBtLastMonth); item.scoreDiffBtLastMonth = Math.abs(item.scoreDiffBtLastMonth);
} }
} }
} }
this.myChart.setOption(this.option); this.myChart.setOption(this.option);
} catch (error) { } else {
console.log(error); this.$message.error(msg);
} }
}, },
async getTableData() {
let url =
"/governance/satisfaction/communitySelfInsp/stats/synthesis/superior";
const { formData, agencyId } = this;
const { data, msg, code } = await requestGet(url, {
...formData,
agencyId,
});
if (code == 0) {
this.score = [];
this.satisfactionCategory = [];
this.inspRecordId = data.inspRecordId;
this.synthesisScore = data.synthesisScore;
this.synthesisScoreBtLastMonth = data.synthesisScoreBtLastMonth;
this.synthesisState = this.synthesisScoreBtLastMonth >= 0;
if (this.synthesisScoreBtLastMonth < 0) {
this.synthesisScoreBtLastMonth = Math.abs(
this.synthesisScoreBtLastMonth
);
}
this.personQty = data.personQty;
const allowedCategories = this.dicts.satisfaction_category.map(
(item) => item.value
);
for (const item of data.categoryDatas) {
if (allowedCategories.includes(item.satisfactionCategory)) {
this.satisfactionCategory.push(item.satisfactionCategory);
this.score.push({
score: item.score,
satisfactionCategoryName: item.satisfactionCategoryName,
imgUrl: require(`@/assets/img/satisfaction/${item.satisfactionCategory}.png`),
scoreDiffBtLastMonth: item.scoreDiffBtLastMonth,
state: item.scoreDiffBtLastMonth >= 0,
});
if (item.scoreDiffBtLastMonth < 0) {
item.scoreDiffBtLastMonth = Math.abs(item.scoreDiffBtLastMonth);
}
}
}
this.tableList = data.childrenAgencyDatas;
this.total = this.tableList.length
}
},
handleCurrentChange() {
this.pageNo = val;
this.getTableData();
},
handleSizeChange() {
this.pageSize = val;
window.localStorage.setItem("pageSize", val);
this.getTableData();
},
// //
resetSearch() { resetSearch() {
this.formData = {}; this.formData = {};
this.getTableData(); this.initData();
}, },
}, },
@ -465,14 +1043,6 @@ export default {
margin: 0; margin: 0;
width: 10px; width: 10px;
height: 14px; height: 14px;
}
.down{
color:#FF7135 ;
}
.up{
color:#00BB72 ;
} }
} }
.right { .right {
@ -500,8 +1070,20 @@ export default {
#myCharts { #myCharts {
width: 100%; width: 100%;
height: 100%;
}
.bto-box {
flex: 1; flex: 1;
} }
.down {
color: #ff7135;
}
.up {
color: #00bb72;
}
.gray {
color: #999999;
}
</style> </style>
Loading…
Cancel
Save