|
|
|
@ -9,8 +9,7 @@ |
|
|
|
<span style="font-size: 22px">执法监督灵敏感知体系</span> |
|
|
|
<span style="font-size: 22px">执法监督灵敏感知体系</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="datav-col"> |
|
|
|
<div class="datav-col"> |
|
|
|
<label for="">统计周期:</label> |
|
|
|
<datav-date-picker v-model="time"/> |
|
|
|
<span>2024年01月01日 - 2024年08月30日</span> |
|
|
|
|
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="flex gap-42"> |
|
|
|
<div class="flex gap-42"> |
|
|
|
<datav-statistic |
|
|
|
<datav-statistic |
|
|
|
@ -49,11 +48,21 @@ |
|
|
|
</el-row> |
|
|
|
</el-row> |
|
|
|
<el-row style="margin-top: 20px" :gutter="16"> |
|
|
|
<el-row style="margin-top: 20px" :gutter="16"> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-col :span="8"> |
|
|
|
<datav-card title="分县市局"> |
|
|
|
<datav-card> |
|
|
|
|
|
|
|
<div class="card-header"> |
|
|
|
|
|
|
|
<span class="card-title">分县市局</span> |
|
|
|
|
|
|
|
<div class="select-container"> |
|
|
|
|
|
|
|
<el-select v-model="selectedMetric" placeholder="请选择指标"> |
|
|
|
|
|
|
|
<el-option label="问题数" value="problemNumber"></el-option> |
|
|
|
|
|
|
|
<el-option label="涉及人数" value="personNumber"></el-option> |
|
|
|
|
|
|
|
<el-option label="平均数" value="avgProblemNumber"></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
<datav-tabs |
|
|
|
<datav-tabs |
|
|
|
type="bottom-button" |
|
|
|
type="bottom-button" |
|
|
|
> |
|
|
|
> |
|
|
|
<datav-tab-item label="风险值" name="1"> |
|
|
|
<datav-tab-item label="高业务量" name="1"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
:data="areaRiskList" |
|
|
|
:data="areaRiskList" |
|
|
|
@ -62,7 +71,7 @@ |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-scrollbar> |
|
|
|
</el-scrollbar> |
|
|
|
</datav-tab-item> |
|
|
|
</datav-tab-item> |
|
|
|
<datav-tab-item label="问题数" name="2"> |
|
|
|
<datav-tab-item label="中业务量" name="2"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
:data="areaNegativeList" |
|
|
|
:data="areaNegativeList" |
|
|
|
@ -72,7 +81,7 @@ |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-scrollbar> |
|
|
|
</el-scrollbar> |
|
|
|
</datav-tab-item> |
|
|
|
</datav-tab-item> |
|
|
|
<datav-tab-item label="人均问题数" name="3"> |
|
|
|
<datav-tab-item label="低业务量" name="3"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
:data="areaRateList" |
|
|
|
:data="areaRateList" |
|
|
|
@ -86,11 +95,21 @@ |
|
|
|
</datav-card> |
|
|
|
</datav-card> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-col :span="8"> |
|
|
|
<datav-card title="派出所"> |
|
|
|
<datav-card> |
|
|
|
|
|
|
|
<div class="card-header"> |
|
|
|
|
|
|
|
<span class="card-title">派出所</span> |
|
|
|
|
|
|
|
<div class="select-container"> |
|
|
|
|
|
|
|
<el-select v-model="selectedMetricPCS" placeholder="请选择指标"> |
|
|
|
|
|
|
|
<el-option label="问题数" value="problemNumber"></el-option> |
|
|
|
|
|
|
|
<el-option label="涉及人数" value="personNumber"></el-option> |
|
|
|
|
|
|
|
<el-option label="平均数" value="avgProblemNumber"></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
<datav-tabs |
|
|
|
<datav-tabs |
|
|
|
type="bottom-button" |
|
|
|
type="bottom-button" |
|
|
|
> |
|
|
|
> |
|
|
|
<datav-tab-item label="风险值" name="4"> |
|
|
|
<datav-tab-item label="高业务量" name="4"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
:data="pcsRiskList" |
|
|
|
:data="pcsRiskList" |
|
|
|
@ -99,7 +118,7 @@ |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-scrollbar> |
|
|
|
</el-scrollbar> |
|
|
|
</datav-tab-item> |
|
|
|
</datav-tab-item> |
|
|
|
<datav-tab-item label="问题数" name="5"> |
|
|
|
<datav-tab-item label="中业务量" name="5"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
:data="orgNegativeList" |
|
|
|
:data="orgNegativeList" |
|
|
|
@ -109,7 +128,7 @@ |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-scrollbar> |
|
|
|
</el-scrollbar> |
|
|
|
</datav-tab-item> |
|
|
|
</datav-tab-item> |
|
|
|
<datav-tab-item label="人均问题数" name="6"> |
|
|
|
<datav-tab-item label="低业务量" name="6"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
:data="orgRateList" |
|
|
|
:data="orgRateList" |
|
|
|
@ -123,11 +142,21 @@ |
|
|
|
</datav-card> |
|
|
|
</datav-card> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-col :span="8"> |
|
|
|
<datav-card title="交警大队"> |
|
|
|
<datav-card> |
|
|
|
|
|
|
|
<div class="card-header"> |
|
|
|
|
|
|
|
<span class="card-title">交警大队</span> |
|
|
|
|
|
|
|
<div class="select-container"> |
|
|
|
|
|
|
|
<el-select v-model="selectedMetricJJDD" placeholder="请选择指标"> |
|
|
|
|
|
|
|
<el-option label="问题数" value="problemNumber"></el-option> |
|
|
|
|
|
|
|
<el-option label="涉及人数" value="personNumber"></el-option> |
|
|
|
|
|
|
|
<el-option label="平均数" value="avgProblemNumber"></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
<datav-tabs |
|
|
|
<datav-tabs |
|
|
|
type="bottom-button" |
|
|
|
type="bottom-button" |
|
|
|
> |
|
|
|
> |
|
|
|
<datav-tab-item label="风险值" name="7"> |
|
|
|
<datav-tab-item label="高业务量" name="7"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
:data="carRiskList" |
|
|
|
:data="carRiskList" |
|
|
|
@ -136,7 +165,7 @@ |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-scrollbar> |
|
|
|
</el-scrollbar> |
|
|
|
</datav-tab-item> |
|
|
|
</datav-tab-item> |
|
|
|
<datav-tab-item label="问题数" name="8"> |
|
|
|
<datav-tab-item label="中业务量" name="8"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
:data="orgCarNegativeList" |
|
|
|
:data="orgCarNegativeList" |
|
|
|
@ -146,7 +175,7 @@ |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-scrollbar> |
|
|
|
</el-scrollbar> |
|
|
|
</datav-tab-item> |
|
|
|
</datav-tab-item> |
|
|
|
<datav-tab-item label="人均问题数" name="9"> |
|
|
|
<datav-tab-item label="低业务量" name="9"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
:data="orgCarRateList" |
|
|
|
:data="orgCarRateList" |
|
|
|
@ -163,23 +192,33 @@ |
|
|
|
|
|
|
|
|
|
|
|
<el-row style="margin-top: 20px" :gutter="16"> |
|
|
|
<el-row style="margin-top: 20px" :gutter="16"> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-col :span="8"> |
|
|
|
<datav-card title="民警"> |
|
|
|
<datav-card> |
|
|
|
|
|
|
|
<div class="card-header"> |
|
|
|
|
|
|
|
<span class="card-title">领导</span> |
|
|
|
|
|
|
|
<div class="select-container"> |
|
|
|
|
|
|
|
<el-select v-model="selectedMetricLD" placeholder="请选择指标"> |
|
|
|
|
|
|
|
<el-option label="派出所" value="paichusuo"></el-option> |
|
|
|
|
|
|
|
<el-option label="交警" value="jiaojing"></el-option> |
|
|
|
|
|
|
|
<el-option label="平均数" value="avgProblemNumber"></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
<datav-tabs |
|
|
|
<datav-tabs |
|
|
|
type="bottom-button" |
|
|
|
type="bottom-button" |
|
|
|
> |
|
|
|
> |
|
|
|
<datav-tab-item label="风险值" name="10"> |
|
|
|
<datav-tab-item label="问题数" name="14"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
<datav-chart-bar |
|
|
|
:data="policeARiskList" |
|
|
|
:data="leaderRiskList" |
|
|
|
size="small" |
|
|
|
size="small" |
|
|
|
:color="colors" |
|
|
|
:color="colors" |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-scrollbar> |
|
|
|
</el-scrollbar> |
|
|
|
</datav-tab-item> |
|
|
|
</datav-tab-item> |
|
|
|
<datav-tab-item label="问题数" name="11"> |
|
|
|
<datav-tab-item label="问题涉及人数" name="15"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<el-scrollbar height="240px"> |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
:data="policeANegativeList" |
|
|
|
:data="leaderNegativeList" |
|
|
|
:max="11" |
|
|
|
:max="11" |
|
|
|
size="small" |
|
|
|
size="small" |
|
|
|
:color="colors" |
|
|
|
:color="colors" |
|
|
|
@ -190,23 +229,33 @@ |
|
|
|
</datav-card> |
|
|
|
</datav-card> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-col :span="8"> |
|
|
|
<datav-card title="协辅警"> |
|
|
|
<datav-card> |
|
|
|
|
|
|
|
<div class="card-header"> |
|
|
|
|
|
|
|
<span class="card-title">民警</span> |
|
|
|
|
|
|
|
<div class="select-container"> |
|
|
|
|
|
|
|
<el-select v-model="selectedMetricMJ" placeholder="请选择指标"> |
|
|
|
|
|
|
|
<el-option label="派出所" value="paichusuo"></el-option> |
|
|
|
|
|
|
|
<el-option label="交警" value="jiaojing"></el-option> |
|
|
|
|
|
|
|
<el-option label="平均数" value="avgProblemNumber"></el-option> |
|
|
|
|
|
|
|
</el-select> |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
</div> |
|
|
|
<datav-tabs |
|
|
|
<datav-tabs |
|
|
|
type="bottom-button" |
|
|
|
type="bottom-button" |
|
|
|
> |
|
|
|
> |
|
|
|
<datav-tab-item label="风险值" name="12"> |
|
|
|
<datav-tab-item label="问题数" name="10"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
:data="policeBRiskList" |
|
|
|
:data="policeARiskList" |
|
|
|
size="small" |
|
|
|
size="small" |
|
|
|
:color="colors" |
|
|
|
:color="colors" |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-scrollbar> |
|
|
|
</el-scrollbar> |
|
|
|
</datav-tab-item> |
|
|
|
</datav-tab-item> |
|
|
|
<datav-tab-item label="问题数" name="13"> |
|
|
|
<datav-tab-item label="问题发生率" name="11"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
:data="policeBNegativeList" |
|
|
|
:data="policeANegativeList" |
|
|
|
:max="11" |
|
|
|
:max="11" |
|
|
|
size="small" |
|
|
|
size="small" |
|
|
|
:color="colors" |
|
|
|
:color="colors" |
|
|
|
@ -217,30 +266,31 @@ |
|
|
|
</datav-card> |
|
|
|
</datav-card> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-col :span="8"> |
|
|
|
<datav-card title="领导"> |
|
|
|
<datav-card> |
|
|
|
<!-- <datav-tabs--> |
|
|
|
<div class="card-header"> |
|
|
|
<!-- type="bottom-button"--> |
|
|
|
<span class="card-title">协辅警</span> |
|
|
|
<!-- >--> |
|
|
|
<div class="select-container"> |
|
|
|
<!-- <datav-tab-item label="风险值" name="14">--> |
|
|
|
<el-select v-model="selectedMetricXFJ" placeholder="请选择指标"> |
|
|
|
<!-- <el-scrollbar height="200px">--> |
|
|
|
<el-option label="派出所" value="paichusuo"></el-option> |
|
|
|
<!-- <datav-chart-bar--> |
|
|
|
<el-option label="交警" value="jiaojing"></el-option> |
|
|
|
<!-- :data="leaderRiskList"--> |
|
|
|
<el-option label="平均数" value="avgProblemNumber"></el-option> |
|
|
|
<!-- size="small"--> |
|
|
|
</el-select> |
|
|
|
<!-- :color="colors"--> |
|
|
|
</div> |
|
|
|
<!-- />--> |
|
|
|
</div> |
|
|
|
<!-- </el-scrollbar>--> |
|
|
|
<datav-tabs |
|
|
|
<!-- </datav-tab-item>--> |
|
|
|
type="bottom-button" |
|
|
|
<!-- <datav-tab-item label="问题涉及人数" name="15">--> |
|
|
|
> |
|
|
|
<el-scrollbar height="240px"> |
|
|
|
<datav-tab-item label="问题数" name="12"> |
|
|
|
|
|
|
|
<el-scrollbar height="200px"> |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
<datav-chart-bar-fixbug |
|
|
|
:data="leaderNegativeList" |
|
|
|
:data="policeBRiskList" |
|
|
|
:max="11" |
|
|
|
|
|
|
|
size="small" |
|
|
|
size="small" |
|
|
|
:color="colors" |
|
|
|
:color="colors" |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-scrollbar> |
|
|
|
</el-scrollbar> |
|
|
|
<!-- </datav-tab-item>--> |
|
|
|
</datav-tab-item> |
|
|
|
<!-- </datav-tabs>--> |
|
|
|
|
|
|
|
|
|
|
|
</datav-tabs> |
|
|
|
</datav-card> |
|
|
|
</datav-card> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-row> |
|
|
|
@ -267,8 +317,13 @@ import { |
|
|
|
orgRateStatistics, |
|
|
|
orgRateStatistics, |
|
|
|
orgCarRateStatistics |
|
|
|
orgCarRateStatistics |
|
|
|
} from '@/api/data/risk'; |
|
|
|
} from '@/api/data/risk'; |
|
|
|
|
|
|
|
import moment from "moment"; |
|
|
|
|
|
|
|
let selectedMetric = ref('problemNumber'); |
|
|
|
|
|
|
|
let selectedMetricPCS = ref('problemNumber'); |
|
|
|
|
|
|
|
let selectedMetricJJDD = ref('problemNumber'); |
|
|
|
|
|
|
|
let selectedMetricLD = ref('paichusuo'); |
|
|
|
|
|
|
|
let selectedMetricMJ = ref('paichusuo'); |
|
|
|
|
|
|
|
let selectedMetricXFJ = ref('paichusuo'); |
|
|
|
let statisticsTotal = ref({ |
|
|
|
let statisticsTotal = ref({ |
|
|
|
caseTotal: 0, |
|
|
|
caseTotal: 0, |
|
|
|
aTotal: 0, |
|
|
|
aTotal: 0, |
|
|
|
@ -288,38 +343,57 @@ let orgNegativeList = ref([]) |
|
|
|
let orgCarNegativeList = ref([]) |
|
|
|
let orgCarNegativeList = ref([]) |
|
|
|
let policeANegativeList = ref([]) |
|
|
|
let policeANegativeList = ref([]) |
|
|
|
let policeBNegativeList = ref([]) |
|
|
|
let policeBNegativeList = ref([]) |
|
|
|
let leaderNegativeList = ref([ |
|
|
|
let leaderNegativeList = ref([]) |
|
|
|
{label: '1', value:123}, |
|
|
|
|
|
|
|
{label: '2', value:42}, |
|
|
|
|
|
|
|
{label: '3', value:33}, |
|
|
|
|
|
|
|
{label: '4', value:12} |
|
|
|
|
|
|
|
]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let areaRateList = ref([]) |
|
|
|
let areaRateList = ref([]) |
|
|
|
let orgRateList = ref([]) |
|
|
|
let orgRateList = ref([]) |
|
|
|
let orgCarRateList = ref([]) |
|
|
|
let orgCarRateList = ref([]) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const time = ref([ |
|
|
|
|
|
|
|
moment().startOf("year").format("YYYY-MM-DD"), |
|
|
|
|
|
|
|
moment().format("YYYY-MM-DD"), |
|
|
|
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
watch([time, selectedMetric, selectedMetricPCS, selectedMetricJJDD, selectedMetricLD, selectedMetricMJ, selectedMetricXFJ], () => { |
|
|
|
|
|
|
|
getTotalData();//数量统计 /total/statistics |
|
|
|
|
|
|
|
getAreaRiskData(selectedMetric.value); // 【分县市局 高业务量】 |
|
|
|
|
|
|
|
getAreaNegativeData(selectedMetric.value);// 分县 /area/negative/statistics 【分县市局 中业务量】 |
|
|
|
|
|
|
|
getAreaRateData(selectedMetric.value);// /area/rate/statistics 【分县市局 低业务量】 |
|
|
|
|
|
|
|
getPCSRiskData(selectedMetricPCS.value);//分机构统计风险分 派出所 /risk/org/statistics 【派出所 高业务量】 |
|
|
|
|
|
|
|
getOrgNegativeData(selectedMetricPCS.value);// 派出所 /org/negative/statistics 【派出所 中业务量】 |
|
|
|
|
|
|
|
getOrgRateData(selectedMetricPCS.value);// 派出所 /org/rate/statistics 【派出所 低业务量】 |
|
|
|
|
|
|
|
getCarRiskData(selectedMetricJJDD.value);//分机构统计风险分 交警大队 【交警大队 高业务量】 |
|
|
|
|
|
|
|
getCarOrgNegativeData(selectedMetricJJDD.value);// /org/car/negative/statistics 【交警大队 中业务量】 |
|
|
|
|
|
|
|
getCarOrgRateData(selectedMetricJJDD.value);// 交警人均率 /org/car/rate/statistics 【交警大队 低业务量】 |
|
|
|
|
|
|
|
getLeaderNegativeData(selectedMetricLD.value);// 【领导 问题数】 |
|
|
|
|
|
|
|
getLeaderRiskData(selectedMetricLD.value);// 【领导 问题涉及人数】 |
|
|
|
|
|
|
|
getPoliceANegativeData(selectedMetricMJ.value);// 【民警 问题数】 |
|
|
|
|
|
|
|
getPoliceARiskData(selectedMetricMJ.value);// 【民警 问题发生率】 |
|
|
|
|
|
|
|
// getPoliceBNegativeData(selectedMetricXFJ.value);//【辅警/协警 问题数】 |
|
|
|
|
|
|
|
// getPoliceBRiskData(selectedMetricXFJ.value);//【辅警/协警 问题发生率】 |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
onMounted(() => { |
|
|
|
onMounted(() => { |
|
|
|
// getTotalData(); |
|
|
|
getTotalData();//数量统计 /total/statistics |
|
|
|
// getAreaRiskData(); |
|
|
|
getAreaRiskData(selectedMetric.value); // 【分县市局 高业务量】 |
|
|
|
// getPCSRiskData(); |
|
|
|
getAreaNegativeData(selectedMetric.value);// 分县 /area/negative/statistics 【分县市局 中业务量】 |
|
|
|
// getCarRiskData() |
|
|
|
getAreaRateData(selectedMetric.value);// /area/rate/statistics 【分县市局 低业务量】 |
|
|
|
// getPoliceARiskData(); |
|
|
|
getPCSRiskData(selectedMetricPCS.value);//分机构统计风险分 派出所 /risk/org/statistics 【派出所 高业务量】 |
|
|
|
// getPoliceBRiskData(); |
|
|
|
getOrgNegativeData(selectedMetricPCS.value);// 派出所 /org/negative/statistics 【派出所 中业务量】 |
|
|
|
// getLeaderRiskData(); |
|
|
|
getOrgRateData(selectedMetricPCS.value);// 派出所 /org/rate/statistics 【派出所 低业务量】 |
|
|
|
// getLeaderNegativeData(); |
|
|
|
getCarRiskData(selectedMetricJJDD.value);//分机构统计风险分 交警大队 【交警大队 高业务量】 |
|
|
|
// getPoliceBNegativeData(); |
|
|
|
getCarOrgNegativeData(selectedMetricJJDD.value);// /org/car/negative/statistics 【交警大队 中业务量】 |
|
|
|
// getPoliceANegativeData(); |
|
|
|
getCarOrgRateData(selectedMetricJJDD.value);// 交警人均率 /org/car/rate/statistics 【交警大队 低业务量】 |
|
|
|
// getAreaNegativeData(); |
|
|
|
getLeaderNegativeData(selectedMetricLD.value);// 【领导 问题数】 |
|
|
|
// getCarOrgNegativeData(); |
|
|
|
getLeaderRiskData(selectedMetricLD.value);// 【领导 问题涉及人数】 |
|
|
|
// getOrgNegativeData(); |
|
|
|
getPoliceANegativeData(selectedMetricMJ.value);// 【民警 问题数】 |
|
|
|
// getAreaRateData(); |
|
|
|
getPoliceARiskData(selectedMetricMJ.value);// 【民警 问题发生率】 |
|
|
|
// getOrgRateData(); |
|
|
|
// getPoliceBNegativeData(selectedMetricXFJ.value);//【辅警/协警 问题数】 |
|
|
|
// getCarOrgRateData(); |
|
|
|
// getPoliceBRiskData(selectedMetricXFJ.value);//【辅警/协警 问题发生率】 |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
const getTotalData = () => { |
|
|
|
const getTotalData = () => { |
|
|
|
totalStatistics().then(res => { |
|
|
|
totalStatistics(time.value).then(res => { |
|
|
|
statisticsTotal.value.aTotal = res.atotal == undefined ? 0 : res.atotal; |
|
|
|
statisticsTotal.value.aTotal = res.atotal == undefined ? 0 : res.atotal; |
|
|
|
statisticsTotal.value.caseTotal = res.caseTotal == undefined ? 0 : res.caseTotal; |
|
|
|
statisticsTotal.value.caseTotal = res.caseTotal == undefined ? 0 : res.caseTotal; |
|
|
|
statisticsTotal.value.negativeTotal = res.negativeTotal == undefined ? 0 : res.negativeTotal; |
|
|
|
statisticsTotal.value.negativeTotal = res.negativeTotal == undefined ? 0 : res.negativeTotal; |
|
|
|
@ -328,104 +402,104 @@ const getTotalData = () => { |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const getAreaRiskData = () => { |
|
|
|
const getAreaRiskData = (type) => { |
|
|
|
areaRiskStatistics().then(res => { |
|
|
|
areaRiskStatistics(time.value, type).then(res => { |
|
|
|
areaRiskList.value = eachData(res) |
|
|
|
areaRiskList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const getPCSRiskData = () => { |
|
|
|
const getPCSRiskData = (type) => { |
|
|
|
orgRiskStatistics().then(res => { |
|
|
|
orgRiskStatistics(time.value, type).then(res => { |
|
|
|
pcsRiskList.value = eachData(res) |
|
|
|
pcsRiskList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const getCarRiskData = () => { |
|
|
|
const getCarRiskData = (type) => { |
|
|
|
orgCarRiskStatistics().then(res => { |
|
|
|
orgCarRiskStatistics(time.value, type).then(res => { |
|
|
|
carRiskList.value = eachData(res) |
|
|
|
carRiskList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const getPoliceARiskData = () => { |
|
|
|
const getPoliceARiskData = (type) => { |
|
|
|
policeARiskStatistics().then(res => { |
|
|
|
policeARiskStatistics(time.value, type).then(res => { |
|
|
|
policeARiskList.value = eachData(res) |
|
|
|
policeARiskList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const getPoliceBRiskData = () => { |
|
|
|
const getPoliceBRiskData = (type) => { |
|
|
|
policeBRiskStatistics().then(res => { |
|
|
|
policeBRiskStatistics(time.value, type).then(res => { |
|
|
|
policeBRiskList.value = eachData(res) |
|
|
|
policeBRiskList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const getLeaderRiskData = () => { |
|
|
|
const getLeaderRiskData = (type) => { |
|
|
|
leaderRiskStatistics().then(res => { |
|
|
|
leaderRiskStatistics(time.value, type).then(res => { |
|
|
|
leaderRiskList.value = eachData(res) |
|
|
|
leaderRiskList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
const getAreaNegativeData = () => { |
|
|
|
const getAreaNegativeData = (type) => { |
|
|
|
areaNegativeStatistics().then(res => { |
|
|
|
areaNegativeStatistics(time.value, type).then(res => { |
|
|
|
areaNegativeList.value = res |
|
|
|
areaNegativeList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const getOrgNegativeData = () => { |
|
|
|
const getOrgNegativeData = (type) => { |
|
|
|
orgNegativeStatistics().then(res => { |
|
|
|
orgNegativeStatistics(time.value, type).then(res => { |
|
|
|
orgNegativeList.value = res |
|
|
|
orgNegativeList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const getCarOrgNegativeData = () => { |
|
|
|
const getCarOrgNegativeData = (type) => { |
|
|
|
orgCarNegativeStatistics().then(res => { |
|
|
|
orgCarNegativeStatistics(time.value, type).then(res => { |
|
|
|
orgCarNegativeList.value = res |
|
|
|
orgCarNegativeList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const getPoliceANegativeData = () => { |
|
|
|
const getPoliceANegativeData = (type) => { |
|
|
|
policeANegativeStatistics().then(res => { |
|
|
|
policeANegativeStatistics(time.value, type).then(res => { |
|
|
|
policeANegativeList.value = res |
|
|
|
policeANegativeList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const getPoliceBNegativeData = () => { |
|
|
|
const getPoliceBNegativeData = (type) => { |
|
|
|
policeBNegativeStatistics().then(res => { |
|
|
|
policeBNegativeStatistics(time.value, type).then(res => { |
|
|
|
policeBNegativeList.value = res |
|
|
|
policeBNegativeList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const getLeaderNegativeData = () => { |
|
|
|
const getLeaderNegativeData = (type) => { |
|
|
|
policeLeaderNegativeStatistics().then(res => { |
|
|
|
policeLeaderNegativeStatistics(time.value, type).then(res => { |
|
|
|
leaderNegativeList.value = res |
|
|
|
leaderNegativeList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const getAreaRateData = () => { |
|
|
|
const getAreaRateData = (type) => { |
|
|
|
areaRateStatistics().then(res => { |
|
|
|
areaRateStatistics(time.value, type).then(res => { |
|
|
|
areaRateList.value = eachData(res) |
|
|
|
areaRateList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const getOrgRateData = () => { |
|
|
|
const getOrgRateData = (type) => { |
|
|
|
orgRateStatistics().then(res => { |
|
|
|
orgRateStatistics(time.value, type).then(res => { |
|
|
|
orgRateList.value = eachData(res) |
|
|
|
orgRateList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const getCarOrgRateData = () => { |
|
|
|
const getCarOrgRateData = (type) => { |
|
|
|
orgCarRateStatistics().then(res => { |
|
|
|
orgCarRateStatistics(time.value, type).then(res => { |
|
|
|
orgCarRateList.value = eachData(res) |
|
|
|
orgCarRateList.value = eachData(res) |
|
|
|
}) |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const eachData = (data) => { |
|
|
|
const eachData = (data) => { |
|
|
|
let arr = [] |
|
|
|
let arr = []; |
|
|
|
data.forEach(item => { |
|
|
|
data.forEach(item => { |
|
|
|
arr.push({ |
|
|
|
arr.push({ |
|
|
|
label: item.name, |
|
|
|
label: item.name, |
|
|
|
value: item.score |
|
|
|
value: 'score' in item ? Number(item.score) : Number(item.value) |
|
|
|
}) |
|
|
|
}); |
|
|
|
}) |
|
|
|
}); |
|
|
|
return arr; |
|
|
|
return arr; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -446,4 +520,25 @@ const colors = [ |
|
|
|
</script> |
|
|
|
</script> |
|
|
|
<style lang="scss" scoped> |
|
|
|
<style lang="scss" scoped> |
|
|
|
@import "@/style/datav.scss"; |
|
|
|
@import "@/style/datav.scss"; |
|
|
|
|
|
|
|
.card-header { |
|
|
|
|
|
|
|
display: flex; |
|
|
|
|
|
|
|
justify-content: space-between; |
|
|
|
|
|
|
|
align-items: center; |
|
|
|
|
|
|
|
padding: 10px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
.card-title { |
|
|
|
|
|
|
|
font-size: 23px; |
|
|
|
|
|
|
|
font-weight: bold; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
.select-container { |
|
|
|
|
|
|
|
width: 150px; |
|
|
|
|
|
|
|
margin-left: auto; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
:deep(.el-select__wrapper) { |
|
|
|
|
|
|
|
background-color: #041a75; |
|
|
|
|
|
|
|
box-shadow: #0a113b 0px 0px 0px 1px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
:deep(.el-select__placeholder ) { |
|
|
|
|
|
|
|
color: #fff; |
|
|
|
|
|
|
|
} |
|
|
|
</style> |
|
|
|
</style> |
|
|
|
|