Browse Source

大屏显示三率计算方式

master
21819 2 years ago
parent
commit
2c2fc1c3c6
  1. 145
      src/views/datascreen/index.vue

145
src/views/datascreen/index.vue

@ -17,7 +17,8 @@
<div class="boxRightMailCon"> <div class="boxRightMailCon">
<ul class="dutyUl"> <ul class="dutyUl">
<li v-for="item in dutySjList" :key="item.id"> <li v-for="item in dutySjList" :key="item.id">
<p><span class="dutyDept">{{ item.departName }}</span> <span class="dutyULspan">{{ item.mobile }}</span> <span class="dutyULspan">{{ item.policeName }}</span></p> <p><span class="dutyDept">{{ item.departName }}</span> <span class="dutyULspan">{{ item.mobile
}}</span> <span class="dutyULspan">{{ item.policeName }}</span></p>
</li> </li>
</ul> </ul>
@ -27,7 +28,8 @@
<el-tab-pane label="分县市局" name="dutyFj"> <el-tab-pane label="分县市局" name="dutyFj">
<ul class="dutyUl"> <ul class="dutyUl">
<li v-for="item in dutyList.dutyFjList" :key="item.id"> <li v-for="item in dutyList.dutyFjList" :key="item.id">
<p><span class="dutyDept">{{ item.departName }}</span> <span class="dutyULspan">{{ item.mobile }}</span> <span class="dutyULspan">{{ item.policeName }}</span></p> <p><span class="dutyDept">{{ item.departName }}</span> <span class="dutyULspan">{{ item.mobile
}}</span> <span class="dutyULspan">{{ item.policeName }}</span></p>
</li> </li>
</ul> </ul>
@ -36,7 +38,8 @@
<el-tab-pane label="支队" name="dutyZd"> <el-tab-pane label="支队" name="dutyZd">
<ul class="dutyUl"> <ul class="dutyUl">
<li v-for="item in dutyList.dutyZdList" :key="item.id"> <li v-for="item in dutyList.dutyZdList" :key="item.id">
<p><span class="dutyDept">{{ item.departName }}</span> <span class="dutyULspan">{{ item.mobile }}</span> <span class="dutyULspan">{{ item.policeName }}</span></p> <p><span class="dutyDept">{{ item.departName }}</span> <span class="dutyULspan">{{ item.mobile
}}</span> <span class="dutyULspan">{{ item.policeName }}</span></p>
</li> </li>
</ul> </ul>
@ -44,7 +47,8 @@
<el-tab-pane label="部委组警校" name="dutyBw"> <el-tab-pane label="部委组警校" name="dutyBw">
<ul class="dutyUl"> <ul class="dutyUl">
<li v-for="item in dutyList.dutyBwList" :key="item.id"> <li v-for="item in dutyList.dutyBwList" :key="item.id">
<p><span class="dutyDept">{{ item.departName }}</span> <span class="dutyULspan">{{ item.mobile }}</span> <span class="dutyULspan">{{ item.policeName }}</span></p> <p><span class="dutyDept">{{ item.departName }}</span> <span class="dutyULspan">{{ item.mobile
}}</span> <span class="dutyULspan">{{ item.policeName }}</span></p>
</li> </li>
</ul> </ul>
@ -118,12 +122,42 @@
<div class="border-console "> <div class="border-console ">
<div class="console-div"> <div class="console-div">
<ul class="clearfix"> <ul class="clearfix">
<li><h2 class="bulebg">{{ consoleMap.todaySum }}</h2><span>今日来信</span></li> <li>
<li><h2 class="yellowbg">{{ consoleMap.allSum }}</h2><span>来信总数</span></li> <h2 class="bulebg">{{ consoleMap.todaySum }}</h2><span>今日来信</span>
<li><h2 class="bulebg">{{ consoleMap.completed }}</h2><span>办结总数</span></li> </li>
<li><h2 class="yellowbg">{{ consoleMap.completedrate }}</h2><span>办结率</span></li> <li>
<li><h2 class="bulebg">{{ consoleMap.satisfiedrate }}</h2><span>满意率</span></li> <h2 class="yellowbg">{{ consoleMap.allSum }}</h2><span>来信总数</span>
<li><h2 class="bulebg">{{ consoleMap.resolvedrate }}</h2><span>解决率</span></li> </li>
<li>
<h2 class="bulebg">{{ consoleMap.completed }}</h2><span>办结总数</span>
</li>
<li>
<el-popover placement="right-start" title="办结率计算方式" :width="200" trigger="hover" show-after="500"
:content="completedrateContent" popper-class="custom-popover-style">
<template #reference>
<h2 class="yellowbg">{{ consoleMap.completedrate }}</h2>
</template>
</el-popover>
<span>办结率</span>
</li>
<li>
<el-popover placement="right-start" title="满意率计算方式" :width="200" trigger="hover" show-after="500"
:content="satisfiedrateContent" popper-class="custom-popover-style">
<template #reference>
<h2 class="bulebg">{{ consoleMap.satisfiedrate }}</h2>
</template>
</el-popover>
<span>满意率</span>
</li>
<li>
<el-popover placement="right-start" title="解决率计算方式" :width="200" trigger="hover" show-after="500"
:content="resolvedrateContent" popper-class="custom-popover-style">
<template #reference>
<h2 class="bulebg">{{ consoleMap.resolvedrate }}</h2>
</template>
</el-popover>
<span>解决率</span>
</li>
</ul> </ul>
</div> </div>
@ -136,60 +170,23 @@
来信趋势 来信趋势
</div> </div>
<div v-if="seenDay" class="trendOptions"> <div v-if="seenDay" class="trendOptions">
<el-select <el-select v-model="trendDayValue" class="m-2" :placeholder="selectTrend" size="small"
v-model="trendDayValue" style="width: 100px;z-index: 3000;" @change="getMailTrend" popper-class="blueBack">
class="m-2" <el-option v-for="item in trendDayOptions" :key="item.value" :label="item.label" :value="item.value" />
:placeholder="selectTrend"
size="small"
style="width: 100px;z-index: 3000;"
@change="getMailTrend"
popper-class="blueBack"
>
<el-option
v-for="item in trendDayOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</div> </div>
<div v-if="seenWeek" class="trendOptions"> <div v-if="seenWeek" class="trendOptions">
<el-select <el-select v-model="trendWeekValue" class="m-2" :placeholder="selectTrend" size="small"
v-model="trendWeekValue" style="width: 100px;z-index: 3000" @change="getMailTrend" popper-class="blueBack">
class="m-2" <el-option v-for="item in trendWeekOptions" :key="item.value" :label="item.label" :value="item.value" />
:placeholder="selectTrend"
size="small"
style="width: 100px;z-index: 3000"
@change="getMailTrend"
popper-class="blueBack"
>
<el-option
v-for="item in trendWeekOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select> </el-select>
</div> </div>
<div v-if="seenMonth" class="trendOptions"> <div v-if="seenMonth" class="trendOptions">
<el-select <el-select v-model="trendMonthValue" class="m-2" :placeholder="selectTrend" size="small"
v-model="trendMonthValue" style="width: 100px;z-index: 3000" @change="getMailTrend" popper-class="blueBack">
class="m-2" <el-option v-for="item in trendMonthOptions" :key="item.value" :label="item.label" :value="item.value"
:placeholder="selectTrend" style="height:auto;max-height:300px;padding:0;" />
size="small"
style="width: 100px;z-index: 3000"
@change="getMailTrend"
popper-class="blueBack"
>
<el-option
v-for="item in trendMonthOptions"
:key="item.value"
:label="item.label"
:value="item.value"
style="height:auto;max-height:300px;padding:0;"
/>
</el-select> </el-select>
</div> </div>
@ -220,7 +217,8 @@
<div class="boxLeftMailCon"> <div class="boxLeftMailCon">
<ul class="mailUl"> <ul class="mailUl">
<li v-for="item in peopleMaillist" :key="item.id" @click="queryDetails(item)"> <li v-for="item in peopleMaillist" :key="item.id" @click="queryDetails(item)">
<p>{{ item.contactName }} {{ item.contactPhone }}<span class="mailULspan">{{ item.mailState }}</span></p> <p>{{ item.contactName }} {{ item.contactPhone }}<span class="mailULspan">{{ item.mailState }}</span>
</p>
<p>{{ formatDate(item.createTime) }}</p> <p>{{ formatDate(item.createTime) }}</p>
</li> </li>
</ul> </ul>
@ -251,24 +249,23 @@
</div> </div>
</div> </div>
<details-popup <details-popup v-if="showDetails" ref="detailsRef" @success="closeDetails" @close="closeDetails" />
v-if="showDetails"
ref="detailsRef"
@success="closeDetails"
@close="closeDetails"
/>
</div> </div>
</div> </div>
</template> </template>
<style> <style>
@import 'assets/css/index.css'; @import 'assets/css/index.css';
body { body {
background-color: #030b39; background-color: #030b39;
} }
.body { .body {
background-image: url('@/assets/bg.png'); /* 背景图片的路径 */ background-image: url('@/assets/bg.png');
background-size: cover; /* 背景图片大小适应容器 */ /* 背景图片的路径 */
background-size: cover;
/* 背景图片大小适应容器 */
overflow: auto; overflow: auto;
background-color: #1C3472; background-color: #1C3472;
@ -303,6 +300,9 @@ let consoleMap = ref([]);
let mailTypeRankList = reactive([]) as any[]; let mailTypeRankList = reactive([]) as any[];
let completeList = reactive([]) as any[]; let completeList = reactive([]) as any[];
let dutySjList = reactive([]) as any[]; let dutySjList = reactive([]) as any[];
const completedrateContent = ref('')
const satisfiedrateContent = ref('')
const resolvedrateContent = ref('')
const intervalTimeRate = 3500; // const intervalTimeRate = 3500; //
const intervalTimeTrend = 3000; // const intervalTimeTrend = 3000; //
@ -381,6 +381,9 @@ const getConsoleDataMap = async () => {
try { try {
consoleMap = await consoleData() consoleMap = await consoleData()
console.log(consoleMap) console.log(consoleMap)
completedrateContent.value = '办结率=办结数/来信总数\n' + consoleMap.completedrate + '=' + consoleMap.completed + '/' + consoleMap.completedsum
satisfiedrateContent.value = '满意率=满意数/来信总数\n' + consoleMap.satisfiedrate + '=' + consoleMap.satisfied + '/' + consoleMap.satisfiedsum
resolvedrateContent.value = '解决率=解决数/来信总数\n' + consoleMap.resolvedrate + '=' + consoleMap.resolved + '/' + consoleMap.resolvedsum
} catch (error) { } catch (error) {
} }
} }
@ -1201,6 +1204,14 @@ const closeDetails=()=>{
} }
</script> </script>
<style lang="less"> <style lang="scss">
.el-popover.custom-popover-style {
background-color: #162582;
border: 0px;
color: #fff;
}
.custom-popover-style .el-popover__title {
color: #fff;
}
</style> </style>
Loading…
Cancel
Save