|
|
|
@ -6,12 +6,30 @@ |
|
|
|
<el-col :span="6"> |
|
|
|
<el-col :span="6"> |
|
|
|
<el-form-item label="单位分组"> |
|
|
|
<el-form-item label="单位分组"> |
|
|
|
<el-select v-model="query.departGroupId" clearable> |
|
|
|
<el-select v-model="query.departGroupId" clearable> |
|
|
|
<el-option value="10" label="派出所"></el-option> |
|
|
|
<el-option |
|
|
|
<el-option value="11" label="交警大队"></el-option> |
|
|
|
value="10" |
|
|
|
<el-option value="13" label="刑侦大队"></el-option> |
|
|
|
label="派出所" |
|
|
|
<el-option value="14" label="禁毒大队"></el-option> |
|
|
|
></el-option> |
|
|
|
<el-option value="15" label="治安大队"></el-option> |
|
|
|
<el-option |
|
|
|
<el-option value="16" label="人境大队"></el-option> |
|
|
|
value="11" |
|
|
|
|
|
|
|
label="交警大队" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
value="13" |
|
|
|
|
|
|
|
label="刑侦大队" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
value="14" |
|
|
|
|
|
|
|
label="禁毒大队" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
value="15" |
|
|
|
|
|
|
|
label="治安大队" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
|
|
|
|
<el-option |
|
|
|
|
|
|
|
value="16" |
|
|
|
|
|
|
|
label="人境大队" |
|
|
|
|
|
|
|
></el-option> |
|
|
|
<el-option value="12" label="其他"></el-option> |
|
|
|
<el-option value="12" label="其他"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
@ -104,7 +122,11 @@ |
|
|
|
/> |
|
|
|
/> |
|
|
|
<el-table-column label="风险指数" align="center" width="160"> |
|
|
|
<el-table-column label="风险指数" align="center" width="160"> |
|
|
|
<template #default="{ row }"> |
|
|
|
<template #default="{ row }"> |
|
|
|
<span :type="getType(score)" class="score-theme" v-if="row.score">{{ Math.round(row.score) }}</span> |
|
|
|
<span |
|
|
|
|
|
|
|
:style="{color: getColor(score)}" |
|
|
|
|
|
|
|
v-if="row.score" |
|
|
|
|
|
|
|
>{{ Math.round(row.score) }}</span |
|
|
|
|
|
|
|
> |
|
|
|
<span v-else>-</span> |
|
|
|
<span v-else>-</span> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table-column> |
|
|
|
@ -200,6 +222,10 @@ |
|
|
|
<label>警号</label> |
|
|
|
<label>警号</label> |
|
|
|
<span>{{ policeInfo.empNo }}</span> |
|
|
|
<span>{{ policeInfo.empNo }}</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div class="col col-12"> |
|
|
|
|
|
|
|
<label>身份证号</label> |
|
|
|
|
|
|
|
<span>{{ policeInfo.idCode }}</span> |
|
|
|
|
|
|
|
</div> |
|
|
|
<div class="col col-12"> |
|
|
|
<div class="col col-12"> |
|
|
|
<label>入职时间</label> |
|
|
|
<label>入职时间</label> |
|
|
|
<span>{{ |
|
|
|
<span>{{ |
|
|
|
@ -227,9 +253,16 @@ |
|
|
|
class="text-primary" |
|
|
|
class="text-primary" |
|
|
|
style="font-size: 34px" |
|
|
|
style="font-size: 34px" |
|
|
|
> |
|
|
|
> |
|
|
|
{{ activeRow.verifySize }} |
|
|
|
{{ negativeInfo.size }} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div>问题总数</div> |
|
|
|
<div class="mb-10">问题总数</div> |
|
|
|
|
|
|
|
<div |
|
|
|
|
|
|
|
class="text-danger" |
|
|
|
|
|
|
|
style="font-size: 34px" |
|
|
|
|
|
|
|
> |
|
|
|
|
|
|
|
{{ negativeInfo.score }} |
|
|
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
<div>风险值</div> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="18"> |
|
|
|
<el-col :span="18"> |
|
|
|
<el-row> |
|
|
|
<el-row> |
|
|
|
@ -242,8 +275,9 @@ |
|
|
|
" |
|
|
|
" |
|
|
|
> |
|
|
|
> |
|
|
|
<description-pair |
|
|
|
<description-pair |
|
|
|
label1="110接处警量" |
|
|
|
label="110接处警" |
|
|
|
label2="110接处警问题数" |
|
|
|
label1="量" |
|
|
|
|
|
|
|
label2="问题数" |
|
|
|
:value1=" |
|
|
|
:value1=" |
|
|
|
negativeInfo.jcj110BusinessSize |
|
|
|
negativeInfo.jcj110BusinessSize |
|
|
|
" |
|
|
|
" |
|
|
|
@ -258,8 +292,9 @@ |
|
|
|
" |
|
|
|
" |
|
|
|
> |
|
|
|
> |
|
|
|
<description-pair |
|
|
|
<description-pair |
|
|
|
label1="122接处警量" |
|
|
|
label="122接处警" |
|
|
|
label2="122接处警问题数" |
|
|
|
label1="量" |
|
|
|
|
|
|
|
label2="问题数" |
|
|
|
:value1=" |
|
|
|
:value1=" |
|
|
|
negativeInfo.jcj122BusinessSize |
|
|
|
negativeInfo.jcj122BusinessSize |
|
|
|
" |
|
|
|
" |
|
|
|
@ -268,8 +303,8 @@ |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="12"> |
|
|
|
<el-col :span="12"> |
|
|
|
<description-pair |
|
|
|
<description-pair |
|
|
|
label1="执法办案" |
|
|
|
label="执法办案" |
|
|
|
label2="执法办案问题数" |
|
|
|
label2="问题数" |
|
|
|
:value1=" |
|
|
|
:value1=" |
|
|
|
negativeInfo.zfbaBusinessSize |
|
|
|
negativeInfo.zfbaBusinessSize |
|
|
|
" |
|
|
|
" |
|
|
|
@ -304,7 +339,7 @@ |
|
|
|
style="font-size: 14px" |
|
|
|
style="font-size: 14px" |
|
|
|
class="mb-16" |
|
|
|
class="mb-16" |
|
|
|
> |
|
|
|
> |
|
|
|
分险指标值 |
|
|
|
风险指数 |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div |
|
|
|
<div |
|
|
|
@ -338,20 +373,22 @@ |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-col :span="8"> |
|
|
|
<h5>业务类型占比</h5> |
|
|
|
<h5>问题类型占比</h5> |
|
|
|
<v-charts |
|
|
|
<v-charts |
|
|
|
style="height: 320px" |
|
|
|
style="height: 320px" |
|
|
|
:option="businessTypePieOptions" |
|
|
|
:option="problemTypePieOptions" |
|
|
|
autoresize |
|
|
|
autoresize |
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-col :span="8"> |
|
|
|
<h5>风险构成</h5> |
|
|
|
<h5 style="margin-bottom: 0">风险构成</h5> |
|
|
|
<v-charts |
|
|
|
<div class="flex center"> |
|
|
|
style="height: 320px" |
|
|
|
<v-charts |
|
|
|
:option="radarOption" |
|
|
|
style="height: 340px; width: 280px" |
|
|
|
autoresize |
|
|
|
:option="radarOption" |
|
|
|
/> |
|
|
|
autoresize |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-row> |
|
|
|
|
|
|
|
|
|
|
|
@ -410,7 +447,6 @@ |
|
|
|
:id="activeNegativeId" |
|
|
|
:id="activeNegativeId" |
|
|
|
@close="negativeShow = false" |
|
|
|
@close="negativeShow = false" |
|
|
|
/> |
|
|
|
/> |
|
|
|
|
|
|
|
|
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<script lang="ts" setup> |
|
|
|
<script lang="ts" setup> |
|
|
|
import vCharts from "vue-echarts"; |
|
|
|
import vCharts from "vue-echarts"; |
|
|
|
@ -435,7 +471,6 @@ const query = ref({ |
|
|
|
moment().startOf("year").format("YYYY-MM-DD HH:mm:ss"), |
|
|
|
moment().startOf("year").format("YYYY-MM-DD HH:mm:ss"), |
|
|
|
moment().format("YYYY-MM-DD HH:mm:ss"), |
|
|
|
moment().format("YYYY-MM-DD HH:mm:ss"), |
|
|
|
], |
|
|
|
], |
|
|
|
departGroupId: '10' |
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
const list = ref<any[]>([]); |
|
|
|
const list = ref<any[]>([]); |
|
|
|
const total = ref(0); |
|
|
|
const total = ref(0); |
|
|
|
@ -458,7 +493,6 @@ function reset() { |
|
|
|
moment().startOf("year").format("YYYY-MM-DD HH:mm:ss"), |
|
|
|
moment().startOf("year").format("YYYY-MM-DD HH:mm:ss"), |
|
|
|
moment().format("YYYY-MM-DD HH:mm:ss"), |
|
|
|
moment().format("YYYY-MM-DD HH:mm:ss"), |
|
|
|
], |
|
|
|
], |
|
|
|
departGroupId: '10' |
|
|
|
|
|
|
|
}; |
|
|
|
}; |
|
|
|
getList(); |
|
|
|
getList(); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -491,7 +525,7 @@ const problemSourcesPieOptions = ref({ |
|
|
|
}, |
|
|
|
}, |
|
|
|
], |
|
|
|
], |
|
|
|
}); |
|
|
|
}); |
|
|
|
const businessTypePieOptions = ref({ |
|
|
|
const problemTypePieOptions = ref({ |
|
|
|
tooltip: { |
|
|
|
tooltip: { |
|
|
|
trigger: "item", |
|
|
|
trigger: "item", |
|
|
|
}, |
|
|
|
}, |
|
|
|
@ -541,6 +575,10 @@ watch(activeRow, async () => { |
|
|
|
const time = ref([]); |
|
|
|
const time = ref([]); |
|
|
|
|
|
|
|
|
|
|
|
const radarOption = ref({ |
|
|
|
const radarOption = ref({ |
|
|
|
|
|
|
|
color: ["#F60000", "#162582"], |
|
|
|
|
|
|
|
legend: { |
|
|
|
|
|
|
|
data: ["风险指数", "权重"], |
|
|
|
|
|
|
|
}, |
|
|
|
radar: { |
|
|
|
radar: { |
|
|
|
indicator: [ |
|
|
|
indicator: [ |
|
|
|
{ name: "110接处警", max: 100 }, |
|
|
|
{ name: "110接处警", max: 100 }, |
|
|
|
@ -551,28 +589,27 @@ const radarOption = ref({ |
|
|
|
{ name: "执法办案", max: 100 }, |
|
|
|
{ name: "执法办案", max: 100 }, |
|
|
|
{ name: "专项工作", max: 100 }, |
|
|
|
{ name: "专项工作", max: 100 }, |
|
|
|
{ name: "安保维稳", max: 100 }, |
|
|
|
{ name: "安保维稳", max: 100 }, |
|
|
|
{ name: "治安防控", max: 100 }, |
|
|
|
|
|
|
|
{ name: "行政管理", max: 100 }, |
|
|
|
|
|
|
|
{ name: "服务基层", max: 100 }, |
|
|
|
|
|
|
|
{ name: "队伍管理", max: 100 }, |
|
|
|
|
|
|
|
{ name: "其他", max: 100 }, |
|
|
|
|
|
|
|
], |
|
|
|
], |
|
|
|
|
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
series: [ |
|
|
|
series: [ |
|
|
|
{ |
|
|
|
{ |
|
|
|
type: "radar", |
|
|
|
type: "radar", |
|
|
|
data: [ |
|
|
|
data: [ |
|
|
|
{ |
|
|
|
{ |
|
|
|
value: [0, 0, 80, 31, 0, 0, 31, 0, 0], |
|
|
|
value: [], |
|
|
|
|
|
|
|
name: "风险指数", |
|
|
|
|
|
|
|
label: { |
|
|
|
|
|
|
|
show: true, |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
{ |
|
|
|
value: [0, 0, 61, 21, 0, 0, 10, 0, 0], |
|
|
|
value: [], |
|
|
|
|
|
|
|
name: "权重", |
|
|
|
|
|
|
|
label: { |
|
|
|
|
|
|
|
show: true, |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
], |
|
|
|
], |
|
|
|
label: { |
|
|
|
|
|
|
|
show: true, |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
], |
|
|
|
], |
|
|
|
}); |
|
|
|
}); |
|
|
|
@ -592,10 +629,12 @@ async function getProfileData() { |
|
|
|
policeInfo.value = data.policeInfo; |
|
|
|
policeInfo.value = data.policeInfo; |
|
|
|
negativeInfo.value = data.negativeInfo; |
|
|
|
negativeInfo.value = data.negativeInfo; |
|
|
|
problemSourcesPieOptions.value.series[0].data = data.problemSourcesList; |
|
|
|
problemSourcesPieOptions.value.series[0].data = data.problemSourcesList; |
|
|
|
businessTypePieOptions.value.series[0].data = data.businessTypeList; |
|
|
|
problemTypePieOptions.value.series[0].data = data.problemTypeList; |
|
|
|
|
|
|
|
|
|
|
|
// radarOption.value.radar.indicator = data.problemTypeRadarIndicator; |
|
|
|
radarOption.value.radar.indicator = data.businessTypeRadarIndicator; |
|
|
|
// radarOption.value.series[0].data[0].value = data.problemTypeRadarData; |
|
|
|
radarOption.value.series[0].data[0].value = data.businessTypeScoreRadarData; |
|
|
|
|
|
|
|
radarOption.value.series[0].data[1].value = |
|
|
|
|
|
|
|
data.businessTypeWeightRadarData; |
|
|
|
loading.value = false; |
|
|
|
loading.value = false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -635,6 +674,17 @@ function getType(val) { |
|
|
|
} |
|
|
|
} |
|
|
|
return "danger"; |
|
|
|
return "danger"; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function getColor(val) { |
|
|
|
|
|
|
|
if (val < 60) { |
|
|
|
|
|
|
|
return "var(--success-color)"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (val < 80) { |
|
|
|
|
|
|
|
return "#e87749"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return "var(--danger-color)"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function getScoreLabel() { |
|
|
|
function getScoreLabel() { |
|
|
|
if (score.value === 0) { |
|
|
|
if (score.value === 0) { |
|
|
|
return "无法预测"; |
|
|
|
return "无法预测"; |
|
|
|
|