添加智能设备页面

This commit is contained in:
杨侠磊 2023-09-04 15:05:22 +08:00
parent cfe59a1112
commit 67e20a73f5
62 changed files with 784 additions and 8242 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 370 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 364 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 329 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -56,7 +56,7 @@ export default {
{
index: "9",
title: "智能设备",
path: "/09"
path: "/intelligent"
},
{
index: "7",

View File

@ -92,16 +92,16 @@
<img src="@/assets/img/elder/1.png" alt="">
<div>
<div>长者总数</div>
<div><span>1761</span></div>
<div><span>1760</span></div>
</div>
</div>
<div>
<div><i class="circle"></i>男性长者</div>
<div>1761</div>
<div>980</div>
</div>
<div>
<div><i class="circle circle2"></i>女性长者</div>
<div>1761</div>
<div>780</div>
</div>
</dv-border-box-8> -->
<dv-border-box-8 :color="['#EE7C11', '#E48900']" class="box8">

View File

@ -1,954 +0,0 @@
<template>
<div class="main">
<div class="menuSearch">
<el-date-picker
v-model="date"
value-format="yyyy-MM"
@change="dateChange"
type="monthrange"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份"
:picker-options="pickerOptions"
:default-value="
new Date().getFullYear() - 1 + '-' + (new Date().getMonth() + 1)
"
>
</el-date-picker>
<el-button type="primary" round @click="search"
><i class="iconfont iconchaxun"></i>查询</el-button
>
</div>
<div class="left">
<ul class="t">
<li>
<div>
<img src="../../assets/img/intelligent/16.png" />
</div>
<div>
<p>在押罪犯</p>
<span
><i class="digifaw">{{ totalData["BE_IN_PRISON"] | formatNum }}</i
></span
>
</div>
</li>
<li>
<div>
<img src="../../assets/img/intelligent/17.png" />
</div>
<div>
<p>减刑</p>
<span
><i class="digifaw">{{
totalData["COMMUTATION_NUM"] | formatNum
}}</i
></span
>
</div>
</li>
<li>
<div>
<img src="../../assets/img/intelligent/18.png" />
</div>
<div>
<p>减刑率</p>
<span
><i class="digifaw">{{ totalData.proportion1 }}</i></span
>
</div>
</li>
<li>
<div>
<img src="../../assets/img/intelligent/19.png" />
</div>
<div>
<p>假释</p>
<span
><i class="digifaw">{{ totalData["PAROLE_NUM"] | formatNum }}</i
></span
>
</div>
</li>
<li>
<div>
<img src="../../assets/img/intelligent/20.png" />
</div>
<div>
<p>假释率</p>
<span
><i class="digifaw">{{ totalData.proportion2 }}</i></span
>
</div>
</li>
</ul>
<div class="b">
<ul>
<li>
<Echarts :key="echartObjKey1" :echartObj="echartObj1"></Echarts>
</li>
<li>
<Echarts :key="echartObjKey2" :echartObj="echartObj2"></Echarts>
</li>
</ul>
<ul>
<li>
<Echarts :key="echartObjKey3" :echartObj="echartObj3"></Echarts>
</li>
<li>
<Echarts :key="echartObjKey4" :echartObj="echartObj4"></Echarts>
</li>
</ul>
</div>
</div>
<div class="right">
<h2>北京各监狱减刑假释数量</h2>
<ul>
<li>
<div>假释人数()</div>
<div>监狱</div>
<div>减刑人数()</div>
</li>
<!-- a1监狱名 a2假释人数 a3减刑人数 a4假释长度 a5减刑长度 -->
<li v-for="(item, index) in data" :key="index">
<div>{{ item["PAROLE_NUM"] | formatNum }}</div>
<div class="line1">
<p :style="'width:' + item.width1"></p>
</div>
<div>{{ item["TYPE"] }}</div>
<div class="line2">
<p :style="'width:' + item.width2"></p>
</div>
<div>{{ item["COMMUTATION_NUM"] | formatNum }}</div>
</li>
</ul>
</div>
</div>
</template>
<script>
import Echarts from "@/components/echarts";
import {
commutationParole,
commutationParoleAnalyse,
commutationActionCaseRatio,
paroleActionCaseRatio,
prisonCommutationParole,
} from "@/api/intelligentApi";
import {createOperationLog} from "@/api/api"
export default {
data() {
return {
echartObjKey1: "echartObjKey1",
echartObjKey2: "echartObjKey2",
echartObjKey3: "echartObjKey3",
echartObjKey4: "echartObjKey5",
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now() - 8.64e6;
},
},
param: {
startYear: "",
endYear: "",
},
//
totalData: {},
date: "",
data: [],
//
echartObj1: {
title: {
text: "减刑假释数量分析",
top: "10",
left: "20",
textStyle: {
color: "#43ebf7", //
fontSize: "22",
},
},
tooltip: {
trigger: "axis",
axisPointer: {
type: "cross",
label: {
backgroundColor: "#6a7985",
},
},
},
legend: {
icon: "circle", //
top: "20",
right: 10,
textStyle: {
color: "#fff", //
},
},
grid: {
top: "70",
left: "30",
right: "40",
bottom: "30",
containLabel: true,
},
xAxis: [
{
type: "category",
boundaryGap: true,
data: [],
axisLine: {
//线
lineStyle: {
color: "#2dd4fc", //
width: 2, //
},
},
axisLabel: {
show: true,
textStyle: {
color: "#2dd4fc",
},
rotate: 50,
interval: 0,
},
},
],
yAxis: [
{
// show:false,
name: "单位(人)",
type: "value",
axisLine: {
//线
lineStyle: {
color: "#2dd4fc", //
width: 2, //
},
},
axisLabel: {
show: true,
textStyle: {
color: "#2dd4fc",
},
},
},
],
series: [
{
name: "减刑",
type: "bar",
animationDuration: 2000,
barMaxWidth: "20",
itemStyle: {
normal: {
color: "#d3e352",
label: {
show: true,
formatter: (p) => {
//
return this.formatNum(p.value);
},
position: "top",
textStyle: {
color: "#fff",
},
},
},
},
data: [],
},
{
name: "假释",
type: "bar",
animationDuration: 2000,
barMaxWidth: "20",
itemStyle: {
normal: {
color: "#34dbe0",
label: {
show: true,
formatter: (p) => {
//
return this.formatNum(p.value);
},
position: "top",
textStyle: {
color: "#fff",
},
},
},
},
data: [],
},
],
},
//
echartObj2: {
color: [
"#34dbe0",
"#2d95ff",
"#DC8AB5",
"#d3e352",
"#2ae29e",
"#af7dff",
"#e83828",
], //
title: {
text: "减刑案由占比分析",
top: "10",
left: "20",
textStyle: {
color: "#43ebf7", //
fontSize: "22",
},
},
tooltip: {
trigger: "item",
formatter: (param) => {
return (
param.seriesName +
"<br>" +
param.name +
"" +
this.formatNum(param.value) +
"人" +
"(" +
param.percent +
"%)"
);
},
},
legend: {
icon: "circle",
top: 40,
textStyle: {
color: "#fff", //
},
},
avoidLabelOverlap: false,
label: {
show: false,
position: "center",
},
labelLine: {
show: false,
},
series: [
{
name: "减刑案由占比分析",
type: "pie",
top: 50,
animationDuration: 2000,
center: ["50%", "50%"],
radius: ["30%", "60%"],
avoidLabelOverlap: false,
data: [],
label: {
//
normal: {
show: true,
position: "inner", //
color: "#fff",
formatter: "{d}%",
},
},
},
{
name: "减刑案由占比分析",
type: "pie",
top: 50,
animationDuration: 2000,
center: ["50%", "50%"],
radius: ["30%", "60%"],
itemStyle: {
normal: {
label: {
show: true,
fontSize: 14,
formatter: (param) => {
return (
param.name + "\n" + this.formatNum(param.value) + "人"
);
},
},
labelLine: { show: true },
},
},
data: [],
},
{
//
center: ["50%", "50%"],
radius: ["30%", "35%"],
type: "pie",
top: 50,
animationDuration: 2000,
animation: false,
tooltip: {
show: false,
},
data: [
{
value: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)",
},
},
],
},
],
},
//
echartObj3: {
color: [
"#34dbe0",
"#2d95ff",
"#DC8AB5",
"#d3e352",
"#2ae29e",
"#af7dff",
"#e83828",
], //
title: {
text: "不予减刑、不予假释占比分析",
top: "10",
left: "20",
textStyle: {
color: "#43ebf7", //
fontSize: "22",
},
},
tooltip: {
trigger: "item",
formatter: (param) => {
return (
param.seriesName +
"<br>" +
param.name +
"" +
this.formatNum(param.value) +
"人" +
"(" +
param.percent +
"%)"
);
},
},
legend: {
icon: "circle",
top: 40,
textStyle: {
color: "#fff", //
},
},
avoidLabelOverlap: false,
label: {
show: false,
position: "center",
},
labelLine: {
show: false,
},
series: [
{
name: "不予减刑、不予假释占比分析",
type: "pie",
animationDuration: 2000,
center: ["50%", "55%"],
radius: ["30%", "60%"],
avoidLabelOverlap: false,
data: [],
label: {
//
normal: {
show: true,
position: "inner", //
color: "#fff",
formatter: "{d}%",
},
},
},
{
name: "不予减刑、不予假释占比分析",
type: "pie",
animationDuration: 2000,
center: ["50%", "55%"],
radius: ["30%", "60%"],
itemStyle: {
normal: {
label: {
show: true,
fontSize: 14,
formatter: (param) => {
return (
param.name + "\n" + this.formatNum(param.value) + "人"
);
},
},
labelLine: { show: true },
},
},
data: [],
},
{
//
center: ["50%", "55%"],
radius: ["30%", "35%"],
type: "pie",
animationDuration: 2000,
animation: false,
tooltip: {
show: false,
},
data: [
{
value: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)",
},
},
],
},
],
},
//
echartObj4: {
color: [
"#34dbe0",
"#2d95ff",
"#DC8AB5",
"#d3e352",
"#2ae29e",
"#af7dff",
"#e83828",
], //
title: {
text: "假释案由占比分析",
top: "10",
left: "20",
textStyle: {
color: "#43ebf7", //
fontSize: "22",
},
},
tooltip: {
trigger: "item",
formatter: (param) => {
return (
param.seriesName +
"<br>" +
param.name +
"" +
this.formatNum(param.value) +
"人" +
"(" +
param.percent +
"%)"
);
},
},
legend: {
icon: "circle",
right: "0",
top: 40,
textStyle: {
color: "#fff", //
},
},
avoidLabelOverlap: false,
label: {
show: false,
position: "center",
},
labelLine: {
show: false,
},
series: [
{
name: "假释案由占比分析",
type: "pie",
top: 50,
animationDuration: 2000,
center: ["50%", "50%"],
radius: ["30%", "60%"],
avoidLabelOverlap: false,
data: [],
label: {
//
normal: {
show: true,
position: "inner", //
color: "#fff",
formatter: "{d}%",
},
},
},
{
name: "假释案由占比分析",
type: "pie",
top: 50,
animationDuration: 2000,
center: ["50%", "50%"],
radius: ["30%", "60%"],
itemStyle: {
normal: {
label: {
show: true,
fontSize: 14,
formatter: (param) => {
return (
param.name + "\n" + this.formatNum(param.value) + "人"
);
},
},
labelLine: { show: true },
},
},
data: [],
},
{
//
center: ["50%", "50%"],
radius: ["30%", "35%"],
type: "pie",
top: 50,
animationDuration: 2000,
animation: false,
tooltip: {
show: false,
},
data: [
{
value: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)",
},
},
],
},
],
},
};
},
components: {
Echarts,
},
created() {
this.param = {
startYear: "",
endYear: "",
};
this.getData();
},
methods: {
search() {
this.getData();
},
getData() {
let pointParams ={
opeLogExceptionInfo: '进入智能办案专题模块查询了减刑假释数据',//
opeLogUserAccount:this.$cookies.get('username'),//
opeLogSystem:"BJCM-DSJ",//
opeLogStatus: 1,
opeLogIp:""
}
createOperationLog(pointParams).then(res=>{
console.log(res)
})
//
commutationParole(this.param)
.then((res) => {
//
this.totalData = {
BE_IN_PRISON: 0,
COMMUTATION_NUM: 0,
proportion1: "0%",
PAROLE_NUM: 0,
proportion2: "0%",
};
this.echartObj3.series[0].data = [];
this.echartObj3.series[1].data = [];
if (JSON.stringify(res) != "{}" && res) {
this.totalData = res;
this.totalData.proportion1 =
(
(this.totalData["COMMUTATION_NUM"] /
this.totalData["BE_IN_PRISON"]) *
100
).toFixed(2) + "%"; //
this.totalData.proportion2 =
(
(this.totalData["PAROLE_NUM"] /
this.totalData["BE_IN_PRISON"]) *
100
).toFixed(2) + "%"; //
//
this.echartObj3.series[0].data = [
{ value: this.totalData["COMMUTATION_NUM"], name: "减刑" },
{
value: this.totalData["NON_COMMUTATION_NUM"],
name: "不予减刑",
},
{ value: this.totalData["PAROLE_NUM"], name: "假释" },
{ value: this.totalData["NON_PAROLE_NUM"], name: "不予假释" },
];
this.echartObj3.series[1].data = [
{ value: this.totalData["COMMUTATION_NUM"], name: "减刑" },
{
value: this.totalData["NON_COMMUTATION_NUM"],
name: "不予减刑",
},
{ value: this.totalData["PAROLE_NUM"], name: "假释" },
{ value: this.totalData["NON_PAROLE_NUM"], name: "不予假释" },
];
}
this.echartObjKey3 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
//
commutationParoleAnalyse(this.param)
.then((res) => {
this.echartObj1.xAxis[0].data = [];
this.echartObj1.series[0].data = [];
this.echartObj1.series[1].data = [];
if (res.commutationParoleAnalyse.length > 0) {
res.commutationParoleAnalyse.forEach((item) => {
this.echartObj1.xAxis[0].data.push(item["YEAR_MONTH"]);
this.echartObj1.series[0].data.push(item["COMMUTATION_NUM"]); //
this.echartObj1.series[1].data.push(item["PAROLE_NUM"]); //
});
}
this.echartObjKey1 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
//
commutationActionCaseRatio(this.param)
.then((res) => {
this.echartObj2.series[0].data = res.commutationActionCaseRatio.map(
(item) => {
return { name: item["TYPE"], value: item["NUM"] };
}
);
this.echartObj2.series[1].data = res.commutationActionCaseRatio.map(
(item) => {
return { name: item["TYPE"], value: item["NUM"] };
}
);
this.echartObjKey2 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
//
paroleActionCaseRatio(this.param)
.then((res) => {
this.echartObj4.series[0].data = res.paroleActionCaseRatio.map(
(item) => {
return { name: item["TYPE"], value: item["NUM"] };
}
);
this.echartObj4.series[1].data = res.paroleActionCaseRatio.map(
(item) => {
return { name: item["TYPE"], value: item["NUM"] };
}
);
this.echartObjKey4 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
//
prisonCommutationParole(this.param)
.then((res) => {
this.data = [
{
PAROLE_NUM: 0,
TYPE: "暂无数据",
COMMUTATION_NUM: 0,
width1: "0%",
width2: "0%",
},
];
if (res.prisonCommutationParole.length > 0) {
let arr1 = [];
let arr2 = [];
res.prisonCommutationParole.forEach((item) => {
arr1.push(item["COMMUTATION_NUM"]); //
arr2.push(item["PAROLE_NUM"]); //
});
let max1 = this.getMax(arr1); //
let max2 = this.getMax(arr2); //
res.prisonCommutationParole.forEach((item) => {
item.width1 =
((item["PAROLE_NUM"] / max2) * 100).toFixed(2) + "%"; //
item.width2 =
((item["COMMUTATION_NUM"] / max1) * 100).toFixed(2) + "%"; //
});
this.data = res.prisonCommutationParole;
}
})
.catch((res) => {
console.error(res);
});
this.echartObjKey = new Date().getTime() + 1;
},
//
dateChange(val) {
if (val) {
this.param.startYear = val[0];
this.param.endYear = val[1];
} else {
this.param.startYear = "";
this.param.endYear = "";
}
},
// X
getMax(arr) {
arr.sort(function (a, b) {
return a - b;
});
let max = arr[arr.length - 1]; //
let num = Math.floor(max / 10) * 10 + 10; // X
return num;
},
},
};
</script>
<style lang="less" scoped>
.main {
padding: 20px 30px;
display: flex;
.left,
.right {
display: flex;
flex-direction: column;
}
.left {
width: 70%;
display: flex;
flex-direction: column;
.t {
display: flex;
padding-left: 20px;
.digifaw {
color: #03bb62;
font-size: 30px;
}
li {
display: flex;
flex-direction: row;
+ li {
margin-left: 30px;
}
> div {
display: flex;
flex-direction: column;
justify-content: space-around;
+ div {
margin-left: 5px;
}
}
}
}
.b {
flex: 1;
display: flex;
> ul {
flex: 1;
display: flex;
flex-direction: column;
+ ul {
padding: 0 100px;
}
li {
flex: 1;
display: flex;
flex-direction: column;
}
}
}
}
.right {
flex: 1;
padding: 0 20px;
display: flex;
flex-direction: column;
h2 {
color: #43ebf7;
font-size: 30px;
padding: 20px 0;
}
ul {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-around;
li {
display: flex;
justify-content: space-between;
&:first-child {
div:nth-child(2) {
text-align: center;
}
div:nth-child(3) {
width: auto;
text-align: right;
}
}
div:nth-child(1) {
min-width: 60px;
}
div:nth-child(3) {
color: #27d1fc;
width: 160px;
text-align: center;
}
div:nth-child(5) {
min-width: 60px;
text-align: right;
}
&:nth-child(1) div {
color: #fff;
}
.line1,
.line2 {
padding: 0 5px;
p {
transition: width 2s ease-out;
-moz-transition: width 2s ease-out;
-webkit-transition: width 2s ease-out;
-o-transition: width 2s ease-out;
display: inline-block;
height: 10px;
border-radius: 10px 0 0 10px;
}
}
.line1 {
text-align: right;
width: 20%;
p {
background-image: linear-gradient(to right, #fff480, #f49546);
}
}
.line2 {
width: 20%;
p {
border-radius: 0 10px 10px 0;
background-image: linear-gradient(to right, #35ecfe, #fce190);
}
}
}
}
}
}
</style>

File diff suppressed because it is too large Load Diff

View File

@ -1,697 +0,0 @@
<template>
<div class="main">
<div class="menuSearch">
<el-date-picker
v-model="date"
value-format="yyyy-MM"
@change="dateChange"
type="monthrange"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份"
:picker-options="pickerOptions"
:default-value="
new Date().getFullYear() - 1 + '-' + (new Date().getMonth() + 1)
"
>
</el-date-picker>
<el-button type="primary" round @click="search"
><i class="iconfont iconchaxun"></i>查询</el-button
>
</div>
<ul class="left">
<li>
<h2>嫌疑人性别分布</h2>
<div class="sex">
<div>
<p></p>
<p class="digifaw">{{ gender["MAN_REDIO"] }}<i>%</i></p>
</div>
<ul>
<li
v-for="item in 24"
:key="item"
:class="item <= gender.proportion ? 'man' : ''"
></li>
</ul>
<div>
<p></p>
<p class="digifaw">{{ gender["FEMALE_REDIO"] }}<i>%</i></p>
</div>
</div>
</li>
<li>
<h2>嫌疑人文化程度分布</h2>
<Echarts :key="echartObjKey1" :echartObj="echartObj1"></Echarts>
</li>
</ul>
<ul class="middle">
<li>
<h2>嫌疑人身份分析</h2>
<ul class="identity">
<li v-for="(item, index) in criminalSuspectIdentity" :key="index">
<div v-if="item['TYPE'].indexOf('无业人员') != -1">
<img src="../../assets/img/intelligent/24.png" />
</div>
<div v-else-if="item['TYPE'].indexOf('农民') != -1">
<img src="../../assets/img/intelligent/25.png" />
</div>
<div v-else-if="item['TYPE'].indexOf('离退休人员') != -1">
<img src="../../assets/img/intelligent/26.png" />
</div>
<div v-else-if="item['TYPE'].indexOf('职员') != -1">
<img src="../../assets/img/intelligent/27.png" />
</div>
<div v-else-if="item['TYPE'].indexOf('学生') != -1">
<img src="../../assets/img/intelligent/28.png" />
</div>
<div v-else-if="item['TYPE'].indexOf('务工人员') != -1">
<img src="../../assets/img/intelligent/29.png" />
</div>
<div v-else-if="item['TYPE'].indexOf('工人') != -1">
<img src="../../assets/img/intelligent/30.png" />
</div>
<div v-else-if="item['TYPE'].indexOf('国家工作人员') != -1">
<img src="../../assets/img/intelligent/31.png" />
</div>
<div v-else-if="item['TYPE'].indexOf('失业人员') != -1">
<img src="../../assets/img/intelligent/32.png" />
</div>
<div v-else-if="item['TYPE'].indexOf('私营业主') != -1">
<img src="../../assets/img/intelligent/33.png" />
</div>
<div>
<span>{{ item.proportion }}</span
>%
</div>
<p>{{ item["TYPE"] }}</p>
</li>
</ul>
</li>
<li>
<h2>嫌疑人年龄分布</h2>
<Echarts :key="echartObjKey2" :echartObj="echartObj2"></Echarts>
</li>
</ul>
<ul class="right">
<li>
<h2>案由分析</h2>
<ul>
<li>
<span>案由</span>
<span>数量()</span>
</li>
<li v-for="(item, i) in data" :key="i">
<span style="color: #27d1fc">{{ item["TYPE"] }}</span>
<p><i :style="'width:' + item.width"></i></p>
<span>{{ item["CASE_NUM"] | formatNum }}</span>
</li>
</ul>
</li>
<li>
<h2>有期徒刑量刑分析</h2>
<ul>
<li>
<span>量刑</span>
<span>数量()</span>
</li>
<li v-for="(item, i) in data2" :key="i">
<span style="color: #27d1fc">{{ item["TYPE"] }}</span>
<p><i :style="'width:' + item.width"></i></p>
<span>{{ item["CASE_NUM"] | formatNum }}</span>
</li>
</ul>
</li>
</ul>
</div>
</template>
<script>
import Echarts from "@/components/echarts";
import {
criminalSuspectGender,
criminalSuspectEdu,
criminalSuspectFixedTermImprisonment,
criminalSuspectActionCause,
criminalSuspectIdentity,
criminalSuspectAge,
} from "@/api/intelligentApi";
import {createOperationLog} from "@/api/api"
export default {
data() {
return {
echartObjKey1: "echartObjKey1",
echartObjKey2: "echartObjKey2",
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now() - 8.64e6;
},
},
param: {
startYear: "",
endYear: "",
},
//
criminalSuspectIdentity: [],
//
gender: { MAN_REDIO: 0, FEMALE_REDIO: 0, proportion: 24 },
date: "",
data: [],
data2: [],
//
echartObj1: {
color: [
"#34dbe0",
"#2d95ff",
"#DC8AB5",
"#d3e352",
"#2ae29e",
"#af7dff",
"#e83828",
], //
tooltip: {
trigger: "item",
formatter: (param) => {
return (
param.seriesName +
"<br>" +
param.name +
"" +
this.formatNum(param.value) +
"人" +
"(" +
param.percent +
"%)"
);
},
},
graphic: {
elements: [
{
type: "image",
style: {
image: require("../../assets/img/cult/img7.png"),
width: 40,
height: 40,
},
left: "center", //
top: "center",
},
],
},
legend: {
icon: "circle",
top: "0",
textStyle: {
color: "#fff", //
},
},
avoidLabelOverlap: false,
label: {
show: false,
position: "center",
},
labelLine: {
show: false,
},
series: [
{
name: "嫌疑人文化程度分布",
type: "pie",
animationDuration: 2000,
center: ["50%", "50%"],
radius: ["30%", "60%"],
avoidLabelOverlap: false,
data: [],
label: {
//
normal: {
show: true,
position: "inner", //
color: "#fff",
formatter: "{d}%",
},
},
},
{
name: "嫌疑人文化程度分布",
type: "pie",
animationDuration: 2000,
center: ["50%", "50%"],
radius: ["30%", "60%"],
itemStyle: {
normal: {
label: {
show: true,
formatter: (param) => {
return (
param.name +
"\n" +
this.formatNum(param.value) +
"人"
);
},
},
labelLine: { show: true },
},
},
data: [],
},
{
//
center: ["50%", "50%"],
radius: ["30%", "35%"],
type: "pie",
animationDuration: 2000,
animation: false,
tooltip: {
show: false,
},
data: [
{
value: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)",
},
},
],
},
],
},
//
echartObj2: {
color: [
"#34dbe0",
"#2d95ff",
"#DC8AB5",
"#d3e352",
"#2ae29e",
"#af7dff",
"#e83828",
], //
tooltip: {
trigger: "item",
formatter: (param) => {
return (
param.seriesName +
"<br>" +
param.name +
"" +
this.formatNum(param.value) +
"人" +
"(" +
param.percent +
"%)"
);
},
},
legend: {
icon: "circle",
top: "0",
textStyle: {
color: "#fff", //
},
},
avoidLabelOverlap: false,
label: {
show: false,
position: "center",
},
labelLine: {
show: false,
},
series: [
{
name: "嫌疑人年龄分布",
type: "pie",
top: 20,
animationDuration: 2000,
center: ["50%", "50%"],
radius: ["30%", "60%"],
avoidLabelOverlap: false,
data: [],
label: {
//
normal: {
show: true,
position: "inner", //
color: "#fff",
formatter: "{d}%",
},
},
},
{
name: "嫌疑人年龄分布",
type: "pie",
animationDuration: 2000,
center: ["50%", "50%"],
radius: ["30%", "60%"],
top: 20,
itemStyle: {
normal: {
label: {
show: true,
formatter: (param) => {
return (
param.name +
"\n" +
this.formatNum(param.value) +
"人"
);
},
},
labelLine: { show: true },
},
},
data: [],
},
{
//
center: ["50%", "50%"],
radius: ["30%", "35%"],
type: "pie",
top: 20,
animationDuration: 2000,
animation: false,
tooltip: {
show: false,
},
data: [
{
value: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)",
},
},
],
},
],
},
};
},
components: {
Echarts,
},
created() {
this.param = {
startYear: "",
endYear: "",
};
this.getData();
},
methods: {
search() {
this.getData();
},
getData() {
let pointParams ={
opeLogExceptionInfo: '进入智能办案专题模块查询了犯罪嫌疑人数据',//
opeLogUserAccount:this.$cookies.get('username'),//
opeLogSystem:"BJCM-DSJ",//
opeLogStatus: 1,
opeLogIp:""
}
createOperationLog(pointParams).then(res=>{
console.log(res)
})
//
criminalSuspectGender(this.param)
.then((res) => {
this.gender = {
MAN_REDIO: 0,
FEMALE_REDIO: 0,
proportion: 24,
};
if (JSON.stringify(res) != "{}") {
this.gender = res;
this.gender["MAN_REDIO"] = res["MAN_REDIO"] * 100;
this.gender["FEMALE_REDIO"] = res["FEMALE_REDIO"] * 100;
this.gender.proportion = parseInt(this.gender["MAN_REDIO"] * 0.24);
}
})
.catch((res) => {
console.error(res);
});
//
criminalSuspectEdu(this.param)
.then((res) => {
this.echartObj1.series[0].data = res.criminalSuspectEdu.map(
(item) => {
return {
name: item["TYPE"],
value: item["PEOPLE_NUM"],
};
}
);
this.echartObj1.series[1].data = res.criminalSuspectEdu.map(
(item) => {
return {
name: item["TYPE"],
value: item["PEOPLE_NUM"],
};
}
);
this.echartObjKey1 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
//
criminalSuspectFixedTermImprisonment(this.param)
.then((res) => {
this.data2 = [{ width: 0, TYPE: "暂无数据", CASE_NUM: 0 }];
if (res.criminalSuspectFixedTermImprisonment.length > 0) {
let max = this.getMax([
...res.criminalSuspectFixedTermImprisonment,
]);
res.criminalSuspectFixedTermImprisonment.forEach((item) => {
item.width = ((item["CASE_NUM"] / max) * 100).toFixed(2) + "%";
});
this.data2 = res.criminalSuspectFixedTermImprisonment;
}
})
.catch((res) => {
console.error(res);
});
//
criminalSuspectActionCause(this.param)
.then((res) => {
this.data = [{ width: 0, TYPE: "暂无数据", CASE_NUM: 0 }];
if (res.criminalSuspectActionCause.length > 0) {
let max = this.getMax([...res.criminalSuspectActionCause]);
res.criminalSuspectActionCause.forEach((item) => {
item.width = ((item["CASE_NUM"] / max) * 100).toFixed(2) + "%";
});
this.data = res.criminalSuspectActionCause;
}
})
.catch((res) => {
console.error(res);
});
//
criminalSuspectIdentity(this.param)
.then((res) => {
let total = 0;
this.criminalSuspectIdentity = res.criminalSuspectIdentity;
this.criminalSuspectIdentity.forEach((item) => {
total += item["NUM"];
});
this.criminalSuspectIdentity.forEach((item) => {
item.proportion = ((item["NUM"] / total) * 100).toFixed(2);
});
})
.catch((res) => {
console.error(res);
});
//
criminalSuspectAge(this.param)
.then((res) => {
this.echartObj2.series[0].data = res.criminalSuspectAge.map(
(item) => {
return { name: item["TYPE"], value: item["NUM"] };
}
);
this.echartObj2.series[1].data = res.criminalSuspectAge.map(
(item) => {
return { name: item["TYPE"], value: item["NUM"] };
}
);
this.echartObjKey2 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
},
//
dateChange(val) {
if (val) {
this.param.startYear = val[0];
this.param.endYear = val[1];
} else {
this.param.startYear = "";
this.param.endYear = "";
}
},
// X
getMax(arr) {
arr.sort(function (a, b) {
return a["CASE_NUM"] - b["CASE_NUM"];
});
let max = arr[arr.length - 1]["CASE_NUM"]; //
let num = Math.floor(max / 10) * 10 + 10; // X
return num;
},
},
};
</script>
<style lang="less" scoped>
.main {
padding: 20px 30px;
display: flex;
.left,
.middle,
.right {
display: flex;
flex-direction: column;
> li {
flex: 1;
display: flex;
flex-direction: column;
h2 {
color: #43ebf7;
font-size: 26px;
padding: 20px 0;
}
}
}
.left {
width: 30%;
.sex {
flex: 1;
display: flex;
// align-items: center;
padding: 40px 20px;
> div {
display: flex;
flex-direction: column;
justify-content: center;
color: #41bcff;
i {
font-size: 14px;
color: #fff;
}
p {
font-size: 60px;
}
p + p {
font-size: 40px;
}
}
ul + div {
color: #fca314;
}
> ul {
flex: 1;
display: flex;
flex-wrap: wrap;
justify-content: space-around;
padding: 0 20px;
box-sizing: border-box;
> li.man {
background: url(../../assets/img/intelligent/21.png) no-repeat;
background-size: contain;
}
> li {
width: 12%;
height: 33%;
box-sizing: border-box;
background: url(../../assets/img/intelligent/22.png) no-repeat;
background-size: contain;
}
}
}
}
.middle {
flex: 1;
margin: 0 100px;
display: flex;
.identity {
flex: 1;
display: flex;
flex-wrap: wrap;
justify-content: space-around;
padding: 0 20px;
box-sizing: border-box;
> li {
display: flex;
flex-direction: column;
width: 18%;
height: 50%;
background: url(../../assets/img/intelligent/23.png) no-repeat;
background-size: contain;
position: relative;
text-align: center;
color: #5ad2ff;
div {
span {
font-size: 22px;
font-weight: 600;
}
&:nth-child(1) {
margin-top: 8px;
}
}
p {
width: 100%;
position: absolute;
top: 60%;
background: #1e4698;
border: 1px solid #60c1ff;
border-radius: 10px;
}
}
}
}
.right {
width: 30%;
li > ul {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-around;
li {
display: flex;
justify-content: space-between;
span {
width: 50%;
text-align: right;
}
span:last-child {
width: 60px;
}
p {
flex: 1;
margin: 0 5px;
i {
transition: width 2s ease-out;
-moz-transition: width 2s ease-out;
-webkit-transition: width 2s ease-out;
-o-transition: width 2s ease-out;
display: inline-block;
height: 10px;
border-radius: 15px;
background-image: linear-gradient(to right, #36ecfe, #fde191);
}
}
}
}
li:nth-child(2) > ul li p i {
background-image: linear-gradient(to right, #e05a30, #ff9c70);
}
}
}
</style>

File diff suppressed because it is too large Load Diff

View File

@ -1,61 +1,91 @@
<!-- 智能办案专题 -->
<template>
<div class="page">
<Header :headerObj="{title: '智能办案专题(机密)',}"/>
<ul class="menu">
<li v-for="(item,index) in menuList" @click="menuClick(item.path,index)" :class="menuIndex==index?'active':''" :key="index">
<i :class="'iconfont '+ item.icon"></i>
{{item.name}}
</li>
</ul>
<router-view></router-view>
<div class="main">
<!-- <userStatus />-->
<!-- <h1>首页</h1> -->
<!-- <img class="h1" src="../../assets/img/h1.png" />-->
<Header :headerObj="{title:'中科软养老大数据分析平台', index: '9'}"/>
<home></home>
<!-- <Nav />-->
<!-- <img class="b" src="../../assets/img/1.png" alt="" />-->
</div>
</template>
<script>
import Header from '@/components/header'
import home from './home.vue'
import userStatus from "@/components/userStatus";
import { Index } from "@/api/index";
export default {
data: function() {
name: "index",
data: function () {
return {
menuIndex: 0,
menuList: [
{ name: '智能办案首页', icon: 'iconshouye', path: 'home' },
{ name: '法院', icon: 'iconfayuangongzuo', path: 'court'},
{ name: '检察院', icon: 'iconjianchayuangongzuo', path: 'procuratorate'},
{ name: '公安', icon: 'icongongangongzuo', path: '/intelligent/publicSecurity'},
{ name: '司法', icon: 'iconsifagongzuo', path: 'judicial'},
{ name: '涉案财物', icon: 'iconsheancaiwu', path: 'money'},
{ name: '减刑假释', icon: 'iconjianxing', path: 'commutation'},
{ name: '犯罪嫌疑人', icon: 'iconxianyiren', path: 'criminalSuspect'},
],
}
param: {
startYear: "",
endYear: "",
},
};
},
props: {
},
mounted() {
this.menuInit()
created() {
this.param = {
startYear: "",
endYear: "",
};
// this.init();
},
components: {
Header,
home,
userStatus,
},
methods: {
menuInit: function() {
var name = this.$route.name;
if(name == 'publicSecurityDetail1' || name == 'publicSecurityDetail2'){
this.menuIndex = 1
}
this.menuList.forEach((item,index)=>{
item.path==name ? this.menuIndex = index : ''
})
init() {
this.getData();
},
menuClick: function(path, index) {
if (path && path != this.$route.name) {
this.$router.push({ path: path })
this.menuIndex = index;
}
getData() {
Index(this.param).then((res) => {
console.log(res);
});
},
},
}
};
</script>
<style scoped lang="less">
</style>
.main {
height: 100%;
background: url(../../assets/img/bigScreen/background.jpg) no-repeat;
background-size: 100% 100%;
/deep/ .modal,
/deep/ .el-icon-close {
display: none;
}
h1 {
font-size: 50px;
font-weight: 600;
padding-top: 50px;
text-align: center;
-webkit-line-clamp: 2;
background-image: -webkit-linear-gradient(bottom, #eefcff, #51dcfe);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
.h1 {
position: absolute;
left: 50%;
margin-left: -509px;
}
//.b {
// position: absolute;
// bottom: 0;
// width: 100%;
// // animation:turn 10s linear infinite;
//}
@keyframes turn {
0% {
transform: rotateX(0deg) rotateY(0deg) rotateZ(0deg);
}
100% {
transform: rotateX(0deg) rotateY(180deg) rotateZ(0deg);
}
}
}
</style>

View File

@ -1,698 +0,0 @@
<template>
<div class="main">
<div class="menuSearch">
<el-date-picker
v-model="date"
value-format="yyyy-MM"
@change="dateChange"
type="monthrange"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份"
:picker-options="pickerOptions"
:default-value="
new Date().getFullYear() - 1 + '-' + (new Date().getMonth() + 1)
"
>
</el-date-picker>
<el-button type="primary" round @click="search"
><i class="iconfont iconchaxun"></i>查询</el-button
>
</div>
<ul class="left">
<li>
<p>
<span
>减刑<i class="digifaw">{{
dataSet.commutationSentenceNum | formatNum
}}</i
></span
>
<span
>假释<i class="digifaw">{{ dataSet.parole | formatNum }}</i
></span
>
</p>
<p>
<span
>刑满释放<i class="digifaw">{{
dataSet.releaseAfterSentence | formatNum
}}</i
></span
>
</p>
<p>
<span
>社区入矫<i class="digifaw">{{
dataSet.communityCorrect | formatNum
}}</i
></span
>
<span
>解除<i class="digifaw">{{
dataSet.communityCorrectRelieve | formatNum
}}</i
></span
>
</p>
<p>
<span
>收治强制戒毒<i class="digifaw">{{
dataSet.forceDrugDetoxification | formatNum
}}</i
></span
>
<span
>解除<i class="digifaw">{{
dataSet.forceDrugDetoxificationRelieve | formatNum
}}</i
></span
>
</p>
<p>
<span
>承办法律援助<i class="digifaw">{{
dataSet.legalAid | formatNum
}}</i
></span
>
</p>
</li>
<li>
<h3 class="title">减刑假释占比分析</h3>
<Echarts :key="echartObjKey2" :echartObj="echartObj1"></Echarts>
</li>
</ul>
<ul class="middle">
<li>
<h3 class="title">罪犯收押趋势分析</h3>
<Echarts :key="echartObjKey1" :echartObj="echartObj2"></Echarts>
</li>
<li>
<h3 class="title">社区入矫强制戒毒情况分析</h3>
<Echarts :key="echartObjKey3" :echartObj="echartObj3"></Echarts>
</li>
</ul>
<div class="right">
<h3 class="title">北京各区法律援助数量</h3>
<ul>
<li>
<span></span>
<span>数量()</span>
</li>
<li v-for="(item, i) in data" :key="i">
<span>{{ item.name }}</span>
<p><i :style="'width:' + item.width"></i></p>
<span>{{ item.value | formatNum }}</span>
</li>
</ul>
</div>
</div>
</template>
<script>
import Echarts from "@/components/echarts";
import {
judicialSummary,
datainingCriminalsTend,
commutationParoleRatio,
legalAidNum,
} from "@/api/intelligentApi";
import {createOperationLog} from "@/api/api"
export default {
data() {
return {
echartObjKey1: "echartObjKey1",
echartObjKey2: "echartObjKey2",
echartObjKey3: "echartObjKey3",
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now() - 8.64e6;
},
},
param: {
startYear: "",
endYear: "",
},
//
dataSet: {},
date: "",
data: [],
//
echartObj1: {
color: [
"#ff7723",
"#29b584",
"#AF7DF3",
"#8fdd20",
"#DC8AB5",
"#35e0e3",
"#ffd200",
], //
legend: {
right: 0,
orient: "vertical",
top: 0,
icon: "circle",
itemWidth: 20, //
textStyle: {
color: "#fff", //
},
},
tooltip: {
trigger: "item",
formatter: (param) => {
return (
param.seriesName +
"<br>" +
param.name +
"" +
this.formatNum(param.value) +
"人" +
"(" +
param.percent +
"%)"
);
},
},
series: [
{
name: "减刑、假释占比分析",
type: "pie",
animationDuration: 2000,
radius: ["30%", "70%"],
center: ["50%", "50%"],
avoidLabelOverlap: false,
data: [],
label: {
//
normal: {
show: true,
position: "inner", //
color: "#fff",
formatter: "{d}%",
},
},
},
{
name: "减刑、假释占比分析",
type: "pie",
animationDuration: 2000,
radius: ["30%", "70%"],
center: ["50%", "50%"],
avoidLabelOverlap: true,
data: [],
itemStyle: {
normal: {
label: {
show: true,
fontSize: 16,
formatter: (param) => {
return (
param.name +
"" +
this.formatNum(param.value) +
"人"
);
},
},
labelLine: { show: true },
},
},
},
{
//
radius: ["30%", "40%"],
type: "pie",
animationDuration: 2000,
animation: false,
tooltip: {
show: false,
},
data: [
{
value: 0,
itemStyle: {
color: "rgba(0,0,0,0.2)",
},
},
],
},
],
},
//
echartObj2: {
tooltip: {
trigger: "axis",
},
legend: {
top: 0,
right: "20",
icon: "circle",
itemWidth: 20, //
textStyle: {
color: "#fff", //
},
},
grid: {
top: "30",
left: "3%",
right: "4%",
bottom: "3%",
containLabel: true,
},
xAxis: [
{
type: "category",
boundaryGap: true,
data: [],
axisLine: {
//线
lineStyle: {
color: "#2dd4fc", //
width: 2, //
},
},
axisLabel: {
show: true,
interval: 0,
textStyle: {
color: "#2dd4fc",
},
},
},
],
yAxis: [
{
name: "单位(人)",
type: "value",
axisLine: {
//线
lineStyle: {
color: "#2dd4fc", //
width: 2, //
},
},
axisLabel: {
show: true,
textStyle: {
color: "#2dd4fc",
},
},
splitLine: {
show: true,
lineStyle: {
color: "#355184",
width: 1,
},
},
},
],
series: [
{
name: "数量",
type: "line",
animationDuration: 2000,
smooth: true,
label: {
show: true,
},
lineStyle: {
normal: {
width: 3,
},
},
itemStyle: {
normal: {
label: {
show: true,
// formatter: '{b} : {c} ({d}%)',
formatter: (p) => {
//
return this.formatNum(p.value);
},
},
color: "#3aebd5", //
lineStyle: {
color: "#3aebd5", //线
},
},
},
symbol: "circle", //线
symbolSize: 10,
data: [],
},
{
name: "同比",
type: "line",
animationDuration: 2000,
stack: "总量",
smooth: true,
data: [],
symbol: "circle", //线
symbolSize: 10,
label: {
show: true,
},
lineStyle: {
normal: {
width: 3,
},
},
itemStyle: {
normal: {
label: {
show: true,
// formatter: '{b} : {c} ({d}%)',
formatter: (p) => {
//
return this.formatNum(p.value);
},
},
color: "#f19634", //
lineStyle: {
color: "#f19634", //线
},
},
},
},
],
},
//
echartObj3: {
color: ["#1179ff", "#f3a858", "#20f292"], //
tooltip: {
trigger: "axis",
position: "inside",
},
legend: {
icon: "circle",
top: "10",
right: "20",
textStyle: {
color: "#fff", //
},
},
grid: {
top: "40",
left: "20",
right: "40",
bottom: "10",
containLabel: true,
},
xAxis: [
{
// name: '',
type: "category",
boundaryGap: true,
data: ["社区入矫", "解除", "强制戒毒", "解除"],
axisLine: {
//线
lineStyle: {
color: "#2dd4fc", //
width: 2, //
},
},
axisLabel: {
//
show: true,
textStyle: {
color: "#2dd4fc",
},
interval: 0,
},
},
],
yAxis: [
{
name: "单位(人)",
type: "value",
axisLine: {
//线
lineStyle: {
color: "#2dd4fc", //
width: 2, //
},
},
axisLabel: {
show: true,
textStyle: {
color: "#2dd4fc",
},
},
splitLine: {
show: true,
lineStyle: {
color: "#355184",
width: 1,
},
},
},
],
series: [
{
type: "bar",
animationDuration: 2000,
barMaxWidth: "20",
data: [],
label: {
show: true,
formatter: (p) => {
//
return this.formatNum(p.value);
},
},
showBackground: true, //
// itemStyle: {
// normal: {
// barBorderRadius: [5,5,0,0]
// }
// }
},
],
},
};
},
components: {
Echarts,
},
created() {
this.param = {
startYear: "",
endYear: "",
};
this.getData();
},
methods: {
search() {
this.getData();
},
getData() {
let pointParams ={
opeLogExceptionInfo: '进入智能办案专题模块查询了司法数据',//
opeLogUserAccount:this.$cookies.get('username'),//
opeLogSystem:"BJCM-DSJ",//
opeLogStatus: 1,
opeLogIp:""
}
createOperationLog(pointParams).then(res=>{
console.log(res)
})
//
judicialSummary(this.param)
.then((res) => {
this.dataSet = res;
//
this.echartObj3.series[0].data = [
res.communityCorrect,
res.communityCorrectRelieve,
res.forceDrugDetoxification,
res.forceDrugDetoxificationRelieve,
];
this.echartObjKey3 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
//
datainingCriminalsTend(this.param)
.then((res) => {
this.echartObj2.xAxis[0].data = [];
this.echartObj2.series[0].data = []; //
this.echartObj2.series[1].data = []; //
res.datainingCriminalsTendList.forEach((item) => {
this.echartObj2.xAxis[0].data.push(item["TYPE"]);
this.echartObj2.series[0].data.push(
item["DATAINING_CRIMINALS_NUM"]
);
this.echartObj2.series[1].data.push(
item["DATAINING_CRIMINALS_SANME_PERIOD"]
);
});
this.echartObjKey1 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
// -
commutationParoleRatio(this.param)
.then((res) => {
this.echartObj1.series[0].data = [];
this.echartObj1.series[1].data = [];
if (JSON.stringify(res) != "{}" && res) {
this.echartObj1.series[0].data = [
{ value: res["DATAINING_CRIMINALS_NUM"], name: "收押犯罪" },
{ value: res["COMMUTATION_SENTENCE_NUM"], name: "减刑" },
{ value: res["PAROLE"], name: "假释" },
];
this.echartObj1.series[1].data = [
{ value: res["DATAINING_CRIMINALS_NUM"], name: "收押犯罪" },
{ value: res["COMMUTATION_SENTENCE_NUM"], name: "减刑" },
{ value: res["PAROLE"], name: "假释" },
];
}
this.echartObjKey2 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
//
legalAidNum(this.param)
.then((res) => {
let data = [],
max = 0;
if (res.legalAidNumList.length) {
max = this.getMax([...res.legalAidNumList]);
}
res.listclass.forEach((item, index) => {
data[index] = {
name: item,
value: 0,
width: "0%",
};
if (res.legalAidNumList.length > 0) {
res.legalAidNumList.forEach((i) => {
if (item == i["AREA_NAME"]) {
data[index].value = i["LEGAL_AID_NUM"];
data[index].width =
((i["LEGAL_AID_NUM"] / max) * 100).toFixed(2) + "%";
}
});
}
});
this.data = data;
})
.catch((res) => {
console.error(res);
});
},
// X
getMax(arr) {
arr.sort(function (a, b) {
return a["LEGAL_AID_NUM"] - b["LEGAL_AID_NUM"];
});
let max = arr[arr.length - 1]["LEGAL_AID_NUM"]; //
let num = Math.floor(max / 10) * 10 + 10; // X
return num;
},
//
dateChange(val) {
if (val) {
this.param.startYear = val[0];
this.param.endYear = val[1];
} else {
this.param.startYear = "";
this.param.endYear = "";
}
},
},
};
</script>
<style lang="less" scoped>
.main {
padding: 20px 30px;
display: flex;
padding: 20px 50px;
.left,
.middle {
display: flex;
flex-direction: column;
& > li {
flex: 1;
display: flex;
flex-direction: column;
padding-bottom: 50px;
}
}
.left {
width: 30%;
li:nth-child(1) {
justify-content: space-around;
p {
background: url(../../assets/img/intelligent/15.png) no-repeat center;
text-align: center;
background-size: contain;
min-height: 36px;
span + span {
margin-left: 20px;
}
.digifaw {
font-size: 22px;
color: #08d778;
margin-left: 5px;
}
}
}
}
.middle {
flex: 1;
margin: 0 100px;
}
.right {
width: 20%;
display: flex;
flex-direction: column;
ul {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-around;
li {
display: flex;
justify-content: space-between;
span {
min-width: 60px;
}
span:last-child {
text-align: right;
}
p {
flex: 1;
i {
transition: width 2s ease-out;
-moz-transition: width 2s ease-out;
-webkit-transition: width 2s ease-out;
-o-transition: width 2s ease-out;
display: inline-block;
height: 10px;
border-radius: 15px;
background-image: linear-gradient(to right, #36ecfe, #fde191);
}
}
}
}
}
h3.title {
font-size: 20px;
line-height: 40px;
color: #43ebf6;
display: flex;
justify-content: space-between;
}
}
</style>

File diff suppressed because it is too large Load Diff

View File

@ -1,999 +0,0 @@
<template>
<div class="main">
<div class="menuSearch">
<el-date-picker
v-model="date"
value-format="yyyy-MM"
@change="dateChange"
type="monthrange"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份"
:picker-options="pickerOptions"
:default-value="
new Date().getFullYear() - 1 + '-' + (new Date().getMonth() + 1)
"
>
</el-date-picker>
<el-button type="primary" @click="search" round
><i class="iconfont iconchaxun"></i>查询</el-button
>
</div>
<div class="left">
<div class="t">
<h2>审查逮捕</h2>
<ul>
<li>
<div>
<p><img src="../../assets/img/intelligent/1.png" /></p>
<p>批准逮捕</p>
</div>
<div>
<p>
<span class="digifaw" style="color: #5ad2ff">{{
approvalArrestPersonCase["REQUESTARRESTCASENUM2"] | formatNum
}}</span
>
</p>
<p>
<span class="digifaw" style="color: #5bd87b">{{
approvalArrestPersonCase["APPROVALARRESTPERSON"] | formatNum
}}</span
>
</p>
</div>
</li>
<li>
<div>
<p><img src="../../assets/img/intelligent/2.png" /></p>
<p>不捕</p>
</div>
<div>
<p>
<span class="digifaw" style="color: #ff9d47">{{
approvalArrestPersonCase["UNAPPROVALARRESTCASE"] | formatNum
}}</span
>
</p>
<p>
<span class="digifaw" style="color: #dc8ab5">{{
approvalArrestPersonCase["UNAPPROVALARRESTPERSON"] | formatNum
}}</span
>
</p>
</div>
</li>
<li>
<div>
<p><img src="../../assets/img/intelligent/3.png" /></p>
<p>监督</p>
</div>
<div>
<p>
<span class="digifaw" style="color: #5ad2ff">{{
approvalArrestPersonCase["PROCURATORATESUPERVISE"] | formatNum
}}</span
>件次
</p>
</div>
</li>
</ul>
</div>
<ul>
<li>
<p class="echart_title">
不捕数量趋势分析
<!-- <span class="detail">查看></span> -->
</p>
<Echarts :key="echartObjKey1" :echartObj="echartObj1"></Echarts>
</li>
<li>
<p class="echart_title">不捕原因分析</p>
<Echarts :key="echartObjKey3" :echartObj="echartObj2"></Echarts>
</li>
</ul>
</div>
<div class="middle">
<div class="t">
<h2>审查起诉</h2>
<ul>
<li>
<div>
<p><img src="../../assets/img/intelligent/4.png" /></p>
<p>起诉</p>
</div>
<div>
<p>
<span class="digifaw" style="color: #da9bff">{{
prosecutionPersonCase["PROSECUTIONCASE"] | formatNum
}}</span
>
</p>
<p>
<span class="digifaw" style="color: #7e7fe4">{{
prosecutionPersonCase["PROSECUTIONPERSON"] | formatNum
}}</span
>
</p>
</div>
</li>
<li>
<div>
<p><img src="../../assets/img/intelligent/5.png" /></p>
<p>未起诉</p>
</div>
<div>
<p>
<span class="digifaw" style="color: #60bdff">{{
prosecutionPersonCase["UNROSECUTIONCASE"] | formatNum
}}</span
>
</p>
<p>
<span class="digifaw" style="color: #559ae7">{{
prosecutionPersonCase["UNPROSECUTIONPSERSON"] | formatNum
}}</span
>
</p>
</div>
</li>
</ul>
</div>
<ul>
<li>
<p class="echart_title">
不起诉案件趋势分析
<!-- <span class="detail">查看></span> -->
</p>
<Echarts :key="echartObjKey2" :echartObj="echartObj3"></Echarts>
</li>
<li>
<p class="echart_title">不起诉原因分析</p>
<Echarts :key="echartObjKey4" :echartObj="echartObj4"></Echarts>
</li>
</ul>
</div>
<div class="right">
<h2 class="title">各区审查逮捕审查起诉数量()</h2>
<ul>
<li>
<div>起诉/不起诉()</div>
<div></div>
<div>逮捕/不捕数量()</div>
</li>
<li v-for="(item, index) in data" :key="index">
<div>
<span>{{ item["PROSECUTIONNUM"] | formatNum }}</span
>/{{ item["UNPROSECUTIONRNUM"] | formatNum }}
</div>
<div class="line1">
<p :style="'width:' + item.width1">
<i :style="'width:' + item.subWidth3"></i>
<i :style="'width:' + item.subWidth4"></i>
</p>
</div>
<div style="width:6em; text-align: center">{{ item.name }}</div>
<div class="line2">
<p :style="'width:' + item.width">
<i :style="'width:' + item.subWidth"></i>
<i :style="'width:' + item.subWidth2"></i>
</p>
</div>
<div>
<span>{{ item["ARRESTNUM"] | formatNum }}</span
>/{{ item["ARRESTNUM2"] | formatNum }}
</div>
</li>
</ul>
</div>
</div>
</template>
<script>
import Echarts from "@/components/echarts";
import {
approvalArrestPersonCase,
procuratorateArrestProsecutionNum,
procuratorateUnArrestReason,
procuratorateUnProsecutionReason,
prosecutionPersonCase,
unApprovalArrestPerson,
unProsecutionPserson,
} from "@/api/intelligentApi";
import {createOperationLog} from "@/api/api"
export default {
data() {
return {
echartObjKey1: "echartObjKey1",
echartObjKey2: "echartObjKey2",
echartObjKey3: "echartObjKey3",
echartObjKey4: "echartObjKey4",
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now() - 8.64e6;
},
},
param: {
startYear: "",
endYear: "",
},
date: "",
//
approvalArrestPersonCase: {},
//
prosecutionPersonCase: {},
//
data: [],
//
echartObj1: {
tooltip: {
trigger: "axis",
},
legend: {
top: "0",
right: "20",
icon: "circle",
itemWidth: 20, //
textStyle: {
color: "#ffffff", //
},
},
grid: {
top: "40",
left: "3%",
right: "4%",
bottom: "3%",
containLabel: true,
},
xAxis: [
{
type: "category",
boundaryGap: true,
data: [],
axisLine: {
//线
lineStyle: {
color: "#2dd4fc", //
width: 2, //
},
},
axisLabel: {
show: true,
rotate: 50,
interval: 0,
textStyle: {
color: "#2dd4fc",
},
},
},
],
yAxis: [
{
name: "单位(件)",
type: "value",
axisLine: {
//线
lineStyle: {
color: "#2dd4fc", //
width: 2, //
},
},
axisLabel: {
show: true,
textStyle: {
color: "#2dd4fc",
},
},
splitLine: {
show: true,
lineStyle: {
color: "#355184",
width: 1,
},
},
},
],
series: [
{
name: "当月数量",
type: "line",
animationDuration: 2000,
smooth: true,
label: {
show: true,
},
lineStyle: {
normal: {
width: 3,
},
},
itemStyle: {
normal: {
label: {
show: true,
// formatter: '{b} : {c} ({d}%)',
formatter: (p) => {
//
return this.formatNum(p.value);
},
},
color: "#3aebd5", //
lineStyle: {
color: "#3aebd5", //线
},
},
},
symbol: "circle", //线
symbolSize: 10,
data: [],
},
{
name: "同比数量",
type: "line",
animationDuration: 2000,
stack: "总量",
smooth: true,
data: [],
symbol: "circle", //线
symbolSize: 10,
label: {
show: true,
},
lineStyle: {
normal: {
width: 3,
},
},
itemStyle: {
normal: {
label: {
show: true,
// formatter: '{b} : {c} ({d}%)',
formatter: (p) => {
//
return this.formatNum(p.value);
},
},
color: "#f19634", //
lineStyle: {
color: "#f19634", //线
},
},
},
},
],
},
//
echartObj2: {
color: ["#20f292"], //
tooltip: {
trigger: "axis",
},
radar: [
{
radius: "70%",
indicator: [{ text: "", max: 0 }],
},
],
series: [
{
name: "不捕原因分析",
type: "radar",
animationDuration: 2000,
tooltip: {
trigger: "item",
},
areaStyle: {},
data: [
{
value: [],
},
],
label: {
show: true,
position: "inside",
color: "#fff",
},
itemStyle: {
normal: {
label: {
show: true,
formatter: (p) => {
//
return this.formatNum(p.value) + "件";
},
},
},
},
},
],
},
//
echartObj3: {
tooltip: {
trigger: "axis",
},
legend: {
top: "0",
right: "20",
icon: "circle",
itemWidth: 20, //
textStyle: {
color: "#ffffff", //
},
},
grid: {
top: "40",
left: "3%",
right: "4%",
bottom: "3%",
containLabel: true,
},
xAxis: [
{
type: "category",
boundaryGap: true,
data: [],
axisLine: {
//线
lineStyle: {
color: "#2dd4fc", //
width: 2, //
},
},
axisLabel: {
show: true,
rotate: 50,
interval: 0,
textStyle: {
color: "#2dd4fc",
},
},
},
],
yAxis: [
{
name: "单位(件)",
type: "value",
axisLine: {
//线
lineStyle: {
color: "#2dd4fc", //
width: 2, //
},
},
axisLabel: {
show: true,
textStyle: {
color: "#2dd4fc",
},
},
splitLine: {
show: true,
lineStyle: {
color: "#355184",
width: 1,
},
},
},
],
series: [
{
name: "当月数量",
type: "line",
animationDuration: 2000,
smooth: true,
label: {
show: true,
},
lineStyle: {
normal: {
width: 3,
},
},
itemStyle: {
normal: {
label: {
show: true,
formatter: (p) => {
//
return this.formatNum(p.value);
},
},
color: "#3aebd5", //
lineStyle: {
color: "#3aebd5", //线
},
},
},
symbol: "circle", //线
symbolSize: 10,
data: [],
},
{
name: "同比数量",
type: "line",
animationDuration: 2000,
stack: "总量",
smooth: true,
data: [],
symbol: "circle", //线
symbolSize: 10,
label: {
show: true,
},
lineStyle: {
normal: {
width: 3,
},
},
itemStyle: {
normal: {
label: {
show: true,
// formatter: '{b} : {c} ({d}%)',
formatter: (p) => {
//
return this.formatNum(p.value);
},
},
color: "#f19634", //
lineStyle: {
color: "#f19634", //线
},
},
},
},
],
},
//
echartObj4: {
color: ["#20f292"], //
tooltip: {
trigger: "axis",
},
radar: [
{
radius: "70%",
indicator: [{ text: "", max: 0 }],
},
],
series: [
{
name: "不起诉原因分析",
type: "radar",
animationDuration: 2000,
tooltip: {
trigger: "item",
},
areaStyle: {},
data: [
{
value: [],
},
],
label: {
show: true,
position: "inside",
color: "#fff",
},
itemStyle: {
normal: {
label: {
show: true,
formatter: (p) => {
//
return this.formatNum(p.value) + "件";
},
},
},
},
},
],
},
};
},
created() {
this.param = {
startYear: "",
endYear: "",
};
this.getData();
},
components: {
Echarts,
},
methods: {
search() {
this.getData();
},
getData() {
let pointParams ={
opeLogExceptionInfo: '进入智能办案专题模块查询了检察院数据',//
opeLogUserAccount:this.$cookies.get('username'),//
opeLogSystem:"BJCM-DSJ",//
opeLogStatus: 1,
opeLogIp:""
}
createOperationLog(pointParams).then(res=>{
console.log(res)
})
//
approvalArrestPersonCase(this.param)
.then((res) => {
this.approvalArrestPersonCase = {
REQUESTARRESTCASENUM2: 0,
APPROVALARRESTPERSON: 0,
UNAPPROVALARRESTCASE: 0,
UNAPPROVALARRESTPERSON: 0,
PROCURATORATESUPERVISE: 0,
};
if (
JSON.stringify(res.approvalArrestPersonCase) != "{}" &&
res.approvalArrestPersonCase
) {
this.approvalArrestPersonCase = res.approvalArrestPersonCase;
}
})
.catch((res) => {
console.error(res);
});
//
procuratorateArrestProsecutionNum(this.param)
.then((res) => {
let data = [];
res.listclass.forEach((item, index) => {
data[index] = {
name: item,
ARRESTNUM: 0,
ARRESTNUM2: 0,
PROSECUTIONNUM: 0,
UNPROSECUTIONRNUM: 0,
width: "0%",
width1: "0%",
subWidth: "0%",
subWidth2: "0%",
subWidth3: "0%",
subWidth4: "0%",
};
if (res.procuratorateArrestProsecutionNum.length > 0) {
res.procuratorateArrestProsecutionNum.forEach((i) => {
if (item == i["AREACODENAME"]) {
data[index]["ARRESTNUM"] = i["ARRESTNUM"]; //
data[index]["ARRESTNUM2"] = i["ARRESTNUM2"]; //
data[index]["PROSECUTIONNUM"] = i["PROSECUTIONNUM"]; //
data[index]["UNPROSECUTIONRNUM"] = i["UNPROSECUTIONRNUM"]; //
}
});
}
});
let arr = [],
arr1 = [];
data.forEach((item) => {
arr.push(item["ARRESTNUM"] + item["ARRESTNUM2"]);
arr1.push(item["PROSECUTIONNUM"] + item["UNPROSECUTIONRNUM"]);
});
let max = this.getMax([...arr]);
let max1 = this.getMax([...arr1]);
data.forEach((item) => {
if (max) {
item.width =
(
((item["ARRESTNUM"] + item["ARRESTNUM2"]) / max) *
100
).toFixed(2) + "%";
}
if (max1) {
item.width1 =
(
((item["PROSECUTIONNUM"] + item["UNPROSECUTIONRNUM"]) /
max1) *
100
).toFixed(2) + "%";
}
item.subWidth =
(
(item["ARRESTNUM"] / (item["ARRESTNUM"] + item["ARRESTNUM2"])) *
100
).toFixed(2) + "%";
item.subWidth2 =
(
(item["ARRESTNUM2"] /
(item["ARRESTNUM"] + item["ARRESTNUM2"])) *
100
).toFixed(2) + "%";
item.subWidth3 =
(
(item["PROSECUTIONNUM"] /
(item["PROSECUTIONNUM"] + item["UNPROSECUTIONRNUM"])) *
100
).toFixed(2) + "%";
item.subWidth4 =
(
(item["UNPROSECUTIONRNUM"] /
(item["PROSECUTIONNUM"] + item["UNPROSECUTIONRNUM"])) *
100
).toFixed(2) + "%";
});
this.data = data;
})
.catch((res) => {
console.error(res);
});
//
procuratorateUnArrestReason(this.param)
.then((res) => {
this.echartObj2.radar[0].indicator = [{ text: "暂无数据", max: 0 }];
this.echartObj2.series[0].data[0].value = [0];
if (res.procuratorateUnArrestReason.length > 0) {
let arr = [];
res.procuratorateUnArrestReason.forEach((item) => {
arr.push(item["NUM"]);
});
let max = this.getMax([...arr]);
this.echartObj2.radar[0].indicator = res.procuratorateUnArrestReason.map(
(item) => {
return { text: item["UNARRESTREASONNAME"], max: max };
}
);
this.echartObj2.series[0].data[0].value = arr;
}
this.echartObjKey3 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
//
procuratorateUnProsecutionReason(this.param)
.then((res) => {
this.echartObj4.radar[0].indicator = [{ text: "暂无数据", max: 0 }];
this.echartObj4.series[0].data[0].value = [0];
if (res.procuratorateUnProsecutionReason.length > 0) {
let arr = [];
res.procuratorateUnProsecutionReason.forEach((item) => {
arr.push(item["NUM"]);
});
let max = this.getMax([...arr]);
this.echartObj4.radar[0].indicator = res.procuratorateUnProsecutionReason.map(
(item) => {
return { text: item["UNPROSECUTIONREASONNAME"], max: max };
}
);
this.echartObj4.series[0].data[0].value = arr;
}
this.echartObjKey4 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
//
prosecutionPersonCase(this.param)
.then((res) => {
this.prosecutionPersonCase = {
PROSECUTIONCASE: 0,
PROSECUTIONPERSON: 0,
UNROSECUTIONCASE: 0,
UNPROSECUTIONPSERSON: 0,
};
if (
JSON.stringify(res.prosecutionPersonCase) != "{}" &&
res.prosecutionPersonCase
) {
this.prosecutionPersonCase = res.prosecutionPersonCase;
}
})
.catch((res) => {
console.error(res);
});
//
unApprovalArrestPerson(this.param)
.then((res) => {
this.echartObj1.xAxis[0].data = [];
this.echartObj1.series[0].data = [];
this.echartObj1.series[1].data = [];
res.unApprovalArrestPerson.forEach((item) => {
this.echartObj1.xAxis[0].data.push(item["YEARMONTH"]);
this.echartObj1.series[0].data.push(item["UNAPPROVALARRESTPERSON"]); //
this.echartObj1.series[1].data.push(
item["COLUMN1UNAPPROVALARRESTCASESAMEPERIOD"]
); //
});
this.echartObjKey1 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
//
unProsecutionPserson(this.param)
.then((res) => {
this.echartObj3.xAxis[0].data = [];
this.echartObj3.series[0].data = [];
this.echartObj3.series[1].data = [];
res.unProsecutionPserson.forEach((item) => {
this.echartObj3.xAxis[0].data.push(item["YEARMONTH"]);
this.echartObj3.series[0].data.push(item["UNPROSECUTIONPSERSON"]); //
this.echartObj3.series[1].data.push(
item["UNPROSECUTIONPSERSONSAMEPERIOD"]
); //
});
this.echartObjKey2 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
},
//
dateChange(val) {
if (val) {
this.param.startYear = val[0];
this.param.endYear = val[1];
} else {
this.param.startYear = "";
this.param.endYear = "";
}
},
// X
getMax(arr) {
arr.sort(function (a, b) {
return a - b;
});
let max = arr[arr.length - 1]; //
let num = Math.floor(max / 10) * 10 + 10; // X
return num;
},
},
};
</script>
<style lang="less" scoped>
.main {
padding: 20px 30px;
display: flex;
padding: 20px 50px;
h2 {
font-size: 26px;
color: #43ebf7;
}
.left,
.middle {
width: 30%;
display: flex;
flex-direction: column;
.t {
> ul {
display: flex;
width: 100%;
margin: 10px 0;
> li {
flex: 1;
display: flex;
align-items: center;
> div {
display: flex;
flex-direction: column;
align-items: center;
p .digifaw {
font-size: 22px;
}
}
> div + div {
margin-left: 5px;
}
}
}
}
> ul {
flex: 1;
display: flex;
flex-direction: column;
> li {
flex: 1;
display: flex;
flex-direction: column;
}
}
}
.middle {
margin: 0 50px;
}
.right {
flex: 1;
display: flex;
flex-direction: column;
ul {
width: 100%;
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-around;
li {
width: 100%;
display: flex;
justify-content: space-between;
div:nth-child(1) {
width: 18%;
color: #5999ff;
span {
color: #7e6dff;
}
}
div:nth-child(5) {
width: 18%;
text-align: right;
color: #f59c4a;
span {
color: #88febf;
}
}
&:nth-child(1) div {
color: #fff;
}
.line1,
.line2 {
width: 30%;
padding: 0 5px;
p {
display: inline-block;
transition: width 2s ease-out;
-moz-transition: width 2s ease-out;
-webkit-transition: width 2s ease-out;
-o-transition: width 2s ease-out;
i {
display: inline-block;
height: 10px;
border-radius: 10px 0 0 10px;
&:nth-child(2) {
border-radius: 0 10px 10px 0;
position: relative;
&:after {
content: "";
display: inline-block;
width: 5px;
height: 20px;
background: #0f2246;
position: absolute;
top: -5px;
left: -2px;
transform: rotate(15deg);
}
}
}
}
}
.line1 {
text-align: right;
i {
background-image: linear-gradient(to right, #7e6dff, #a99eff);
&:nth-child(2) {
background-image: linear-gradient(to right, #61c0ff, #5999ff);
&:after {
content: "";
display: inline-block;
width: 5px;
height: 20px;
background: #0f2246;
position: absolute;
top: -5px;
left: -2px;
transform: rotate(15deg);
}
}
}
}
.line2 i {
background-image: linear-gradient(to right, #36edfe, #88febf);
&:nth-child(2) {
background-image: linear-gradient(to right, #feeb7b, #f59c4a);
}
}
span:last-child {
text-align: right;
}
}
}
}
}
</style>

View File

@ -1,951 +0,0 @@
<template>
<div class="main">
<div class="menuSearch">
<el-date-picker
v-model="date"
value-format="yyyy-MM"
@change="dateChange"
type="monthrange"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份"
:picker-options="pickerOptions"
:default-value="
new Date().getFullYear() - 1 + '-' + (new Date().getMonth() + 1)
"
>
</el-date-picker>
<el-button type="primary" round @click="search"
><i class="iconfont iconchaxun"></i>查询</el-button
>
</div>
<ul class="left">
<li>
<h3 class="title">()镇发案数量TOP10</h3>
<div class="top10">
<ul>
<li>
<span>所属区</span>
<span>所属街()</span>
<span>数量()</span>
</li>
<li v-for="(item, index) in townshipCaseTop101" :key="index">
<span
><i>{{ index + 1 }}</i
>{{ item["AREACODENAME"] }}</span
>
<span>{{ item["TOWNSHIPCODENAME"] }}</span>
<span>{{ item["CASENUM"] | formatNum }}</span>
</li>
</ul>
<ul v-if="townshipCaseTop102.length>0">
<li>
<span>所属区</span>
<span>所属街()</span>
<span>数量()</span>
</li>
<li v-for="(item, index) in townshipCaseTop102" :key="index">
<span
><i>{{ index + 6 }}</i
>{{ item["AREACODENAME"] }}</span
>
<span>{{ item["TOWNSHIPCODENAME"] }}</span>
<span>{{ item["CASENUM"] | formatNum }}</span>
</li>
</ul>
</div>
</li>
<li>
<h3 class="title">
刑事案件趋势分析
<!-- <span @click="$router.push('publicSecurityDetail1')"
>查看></span
> -->
</h3>
<Echarts :key="echartObjKey1" :echartObj="echartObj1"></Echarts>
</li>
</ul>
<ul class="middle">
<li>
<h3 class="title">
案由数量TOP10
<!-- <span @click="$router.push('publicSecurityDetail1')"
>查看></span
> -->
</h3>
<div class="top10">
<ul>
<li>
<span>案由</span>
<span>发案案量()</span>
</li>
<li v-for="(item, index) in causeActionNumTop101" :key="index">
<span
><i>{{ index + 1 }}</i
>{{ item["CAUSEACTIONCODENAME"] }}</span
>
<span>{{ item["CASENUM"] | formatNum }}</span>
</li>
</ul>
<ul>
<li>
<span>案由</span>
<span>发案案量()</span>
</li>
<li v-for="(item, index) in causeActionNumTop102" :key="index">
<span
><i>{{ index + 6 }}</i
>{{ item["CAUSEACTIONCODENAME"] }}</span
>
<span>{{ item["CASENUM"] | formatNum }}</span>
</li>
</ul>
</div>
</li>
<li>
<h3 class="title">
强制措施占比分析
<!-- <span @click="$router.push('publicSecurityDetail2')"
>查看></span
> -->
</h3>
<ul class="box">
<li>
<Echarts :key="echartObjKey2" :echartObj="echartObj2"></Echarts>
</li>
<li>
<Echarts :key="echartObjKey2" :echartObj="echartObj3"></Echarts>
</li>
<li>
<Echarts :key="echartObjKey2" :echartObj="echartObj4"></Echarts>
</li>
<li>
<Echarts :key="echartObjKey2" :echartObj="echartObj5"></Echarts>
</li>
<li>
<Echarts :key="echartObjKey2" :echartObj="echartObj6"></Echarts>
</li>
</ul>
</li>
</ul>
<div class="right">
<h3 class="title">各区提请逮捕数量</h3>
<ul>
<li>
<span></span>
<span>数量()</span>
</li>
<li v-for="(item, index) in areRequestArrestNum" :key="index">
<span>{{ item.name }}</span>
<p><i :style="{ width: item.width }"></i></p>
<span>{{ item.value | formatNum }}</span>
</li>
</ul>
</div>
</div>
</template>
<script>
import Echarts from "@/components/echarts";
import {
areRequestArrestNum,
causeActionNumTop10,
coerciveMeasures,
intelligentCaseHandingCriminaCaseTrend,
townshipCaseTop10,
} from "@/api/intelligentApi";
import {createOperationLog} from "@/api/api"
export default {
data() {
return {
echartObjKey1: "echartObjKey1",
echartObjKey2: "echartObjKey2",
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now() - 8.64e6;
},
},
param: {
startYear: "",
endYear: "",
},
//
areRequestArrestNum: [],
// TOP10
causeActionNumTop101: [],
causeActionNumTop102: [],
// ()TOP10
townshipCaseTop101: [],
townshipCaseTop102: [],
date: "",
//
echartObj1: {
color: ["#149bea", "#f35a6c"], //
tooltip: {
trigger: "axis",
position: "inside",
},
legend: {
icon: "circle", //
top: "10",
right: "20",
textStyle: {
color: "#fff", //
},
},
grid: {
top: "60",
left: "10",
right: "40",
bottom: "10",
containLabel: true,
},
xAxis: [
{
type: "category",
boundaryGap: true,
data: [],
axisLine: {
//线
lineStyle: {
color: "#2dd4fc", //
width: 2, //
},
},
axisLabel: {
//
show: true,
textStyle: {
color: "#2dd4fc",
},
interval: 0,
},
},
],
yAxis: [
{
name: "单位(件)",
type: "value",
axisLine: {
//线
lineStyle: {
color: "#2dd4fc", //
width: 2, //
},
},
axisLabel: {
show: true,
textStyle: {
color: "#2dd4fc",
},
},
splitLine: {
show: true,
lineStyle: {
color: "#355184",
width: 1,
},
},
},
],
series: [
{
name: "案件数",
type: "line",
animationDuration: 2000,
smooth: true,
showBackground: true, //
data: [],
label: {
show: true,
},
itemStyle: {
normal: {
label: {
show: true,
// formatter: '{b} : {c} ({d}%)',
formatter: (p) => {
//
return this.formatNum(p.value);
},
},
},
},
},
{
name: "提请逮捕数",
type: "line",
animationDuration: 2000,
smooth: true,
showBackground: true, //
data: [],
label: {
show: true,
},
itemStyle: {
normal: {
label: {
show: true,
// formatter: '{b} : {c} ({d}%)',
formatter: (p) => {
//
return this.formatNum(p.value);
},
},
},
},
},
],
},
//
echartObj2: {
title: {
text: "",
left: "center",
bottom: 0,
textStyle: {
color: "#27d1fc",
fontSize: "14",
},
},
tooltip: {
trigger: "item",
formatter: "{b}({d}%)",
},
series: [
{
type: "pie",
animationDuration: 2000,
radius: ["40%", "60%"],
avoidLabelOverlap: false,
label: {
show: false,
},
labelLine: {
show: false,
},
data: [
{
value: 0,
name: "",
label: {
show: true,
formatter: "{d}%",
position: "center",
color: "#fff",
fontSize: 18,
fontWeight: "bold",
},
itemStyle: {
normal: {
color: new this.$echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{ offset: 0, color: "#00DDDF" },
{ offset: 1, color: "#00A7B9" },
]
),
},
},
},
{
value: 0,
name: "其他",
itemStyle: {
normal: {
color: "#004878",
},
},
},
],
},
],
},
echartObj3: {
title: {
text: "",
left: "center",
bottom: 0,
textStyle: {
color: "#27d1fc",
fontSize: "14",
},
},
tooltip: {
trigger: "item",
formatter: "{b}({d}%)",
},
series: [
{
type: "pie",
animationDuration: 2000,
radius: ["40%", "60%"],
avoidLabelOverlap: false,
label: {
show: false,
},
labelLine: {
show: false,
},
data: [
{
value: 0,
name: "",
label: {
show: true,
formatter: "{d}%",
position: "center",
color: "#fff",
fontSize: 18,
fontWeight: "bold",
},
itemStyle: {
normal: {
color: new this.$echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{ offset: 0, color: "#00DDDF" },
{ offset: 1, color: "#00A7B9" },
]
),
},
},
},
{
value: 0,
name: "其他",
itemStyle: {
normal: {
color: "#004878",
},
},
},
],
},
],
},
echartObj4: {
title: {
text: "",
left: "center",
bottom: 0,
textStyle: {
color: "#27d1fc",
fontSize: "14",
},
},
tooltip: {
trigger: "item",
formatter: "{b}({d}%)",
},
series: [
{
type: "pie",
animationDuration: 2000,
radius: ["40%", "60%"],
avoidLabelOverlap: false,
label: {
show: false,
},
labelLine: {
show: false,
},
data: [
{
value: 0,
name: "",
label: {
show: true,
formatter: "{d}%",
position: "center",
color: "#fff",
fontSize: 18,
fontWeight: "bold",
},
itemStyle: {
normal: {
color: new this.$echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{ offset: 0, color: "#00DDDF" },
{ offset: 1, color: "#00A7B9" },
]
),
},
},
},
{
value: 0,
name: "其他",
itemStyle: {
normal: {
color: "#004878",
},
},
},
],
},
],
},
echartObj5: {
title: {
text: "",
left: "center",
bottom: 0,
textStyle: {
color: "#27d1fc",
fontSize: "14",
},
},
tooltip: {
trigger: "item",
formatter: "{b}({d}%)",
},
series: [
{
type: "pie",
animationDuration: 2000,
radius: ["40%", "60%"],
avoidLabelOverlap: false,
label: {
show: false,
},
labelLine: {
show: false,
},
data: [
{
value: 0,
name: "",
label: {
show: true,
formatter: "{d}%",
position: "center",
color: "#fff",
fontSize: 18,
fontWeight: "bold",
},
itemStyle: {
normal: {
color: new this.$echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{ offset: 0, color: "#00DDDF" },
{ offset: 1, color: "#00A7B9" },
]
),
},
},
},
{
value: 0,
name: "其他",
itemStyle: {
normal: {
color: "#004878",
},
},
},
],
},
],
},
echartObj6: {
title: {
text: "",
left: "center",
bottom: 0,
textStyle: {
color: "#27d1fc",
fontSize: "14",
},
},
tooltip: {
trigger: "item",
formatter: "{b}({d}%)",
},
series: [
{
type: "pie",
animationDuration: 2000,
radius: ["40%", "60%"],
avoidLabelOverlap: false,
label: {
show: false,
},
labelLine: {
show: false,
},
data: [
{
value: 0,
name: "",
label: {
show: true,
formatter: "{d}%",
position: "center",
color: "#fff",
fontSize: 18,
fontWeight: "bold",
},
itemStyle: {
normal: {
color: new this.$echarts.graphic.LinearGradient(
0,
0,
0,
1,
[
{ offset: 0, color: "#00DDDF" },
{ offset: 1, color: "#00A7B9" },
]
),
},
},
},
{
value: 0,
name: "其他",
itemStyle: {
normal: {
color: "#004878",
},
},
},
],
},
],
},
};
},
components: {
Echarts,
},
created() {
this.param = {
startYear: "",
endYear: "",
};
this.getData();
},
methods: {
search() {
this.getData();
},
getData() {
let pointParams ={
opeLogExceptionInfo: '进入智能办案专题模块查询了公安数据',//
opeLogUserAccount:this.$cookies.get('username'),//
opeLogSystem:"BJCM-DSJ",//
opeLogStatus: 1,
opeLogIp:""
}
createOperationLog(pointParams).then(res=>{
console.log(res)
})
//
areRequestArrestNum(this.param)
.then((res) => {
let data = [];
let max;
res.listclass.forEach((item, index) => {
data[index] = {
name: item,
value: 0,
width: "0%",
};
if (res.areRequestArrestNum.length > 0) {
if (!max) {
max = this.getMax([...res.areRequestArrestNum]);
}
res.areRequestArrestNum.forEach((i) => {
if (item == i["AREACODENAME"]) {
data[index].value = i["REQUESTARREST"];
}
});
}
data.forEach((item) => {
if (max) {
item.width = ((item.value / max) * 100).toFixed(2) + "%";
}
});
});
this.areRequestArrestNum = data;
})
.catch((res) => {
console.error(res);
});
//TOP10
causeActionNumTop10(this.param)
.then((res) => {
this.causeActionNumTop101 = [];
this.causeActionNumTop102 = [];
res.causeActionNumTop10.forEach((item, index) => {
if (index < 5) {
this.causeActionNumTop101.push(item);
} else {
this.causeActionNumTop102.push(item);
}
});
})
.catch((res) => {
console.error(res);
});
//
coerciveMeasures(this.param)
.then((res) => {
for (let i = 2; i < 7; i++) {
this["echartObj" + i].title.text = "";
this["echartObj" + i].series[0].data[0].name = "";
this["echartObj" + i].series[0].data[0].value = 0;
this["echartObj" + i].series[0].data[1].value = 0;
}
if (res.coerciveMeasures.length > 0) {
let total = 0;
res.coerciveMeasures.forEach((item) => {
total += item["NUM"];
});
res.coerciveMeasures.forEach((item, index) => {
this["echartObj" + (index + 2)].title.text =
item["COERCIVEMEASURESCODENAME"] +
"" +
this.formatNum(item["NUM"]) +
"人";
this["echartObj" + (index + 2)].series[0].data[0].name =
item["COERCIVEMEASURESCODENAME"];
this["echartObj" + (index + 2)].series[0].data[0].value =
item["NUM"];
this["echartObj" + (index + 2)].series[0].data[1].value =
total - item["NUM"];
});
}
this.echartObjKey2 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
//
intelligentCaseHandingCriminaCaseTrend(this.param)
.then((res) => {
this.echartObj1.xAxis[0].data = [];
this.echartObj1.series[0].data = [];
this.echartObj1.series[1].data = [];
if (res.intelligentCaseHandingCriminaCaseTrend.length > 0) {
res.intelligentCaseHandingCriminaCaseTrend.forEach((item) => {
this.echartObj1.xAxis[0].data.push(item["YEAR_MONTH"]);
this.echartObj1.series[0].data.push(item["CASENUM"]); //
this.echartObj1.series[1].data.push(item["REQUESTARREST"]); //
});
}
this.echartObjKey1 = new Date().getTime() + 1;
})
.catch((res) => {
console.error(res);
});
// ()TOP10
townshipCaseTop10(this.param)
.then((res) => {
this.townshipCaseTop101 = [];
this.townshipCaseTop102 = [];
res.townshipCaseTop10.forEach((item, index) => {
if (index < 5) {
this.townshipCaseTop101.push(item);
} else {
this.townshipCaseTop102.push(item);
}
});
})
.catch((res) => {
console.error(res);
});
},
//
dateChange(val) {
if (val) {
this.param.startYear = val[0];
this.param.endYear = val[1];
} else {
this.param.startYear = "";
this.param.endYear = "";
}
},
// X
getMax(arr) {
arr.sort(function (a, b) {
return a["REQUESTARREST"] - b["REQUESTARREST"];
});
let max = arr[arr.length - 1]["REQUESTARREST"]; //
let num = Math.floor(max / 10) * 10 + 10; // X
return num;
},
},
};
</script>
<style lang="less" scoped>
.main {
padding: 20px 30px;
display: flex;
padding: 20px 50px;
.left,
.middle {
display: flex;
flex-direction: column;
& > li {
flex: 1;
display: flex;
flex-direction: column;
padding-bottom: 50px;
}
}
.top10 {
flex: 1;
display: flex;
> ul {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-around;
li {
display: flex;
justify-content: space-between;
&:nth-child(1) span {
color: #fff;
}
span {
width: 90px;
color: #27d1fc;
&:nth-child(2) {
flex: 1;
padding: 0 10px;
text-align: center;
}
&:nth-child(3) {
color: #fff;
text-align: right;
}
}
i {
display: inline-block;
width: 22px;
height: 22px;
line-height: 22px;
text-align: center;
color: #3cd2ff;
border: 1px solid #3cd2ff;
border-radius: 8px;
margin-right: 5px;
}
}
&:nth-child(1) {
margin-right: 40px;
li:nth-child(2) i {
color: #f72121;
border: 1px solid #f72121;
}
li:nth-child(3) i {
color: #f05613;
border: 1px solid #f05613;
}
li:nth-child(4) i {
color: #f8a925;
border: 1px solid #f8a925;
}
}
}
}
.left {
flex: 1;
}
.middle {
width: 30%;
margin: 0 100px;
.top10 > ul li span {
flex: 1;
&:nth-child(2) {
flex: 0 1 auto;
width: 80px;
color: #fff;
text-align: right;
padding: 0;
}
}
.box {
flex: 1;
display: flex;
flex-wrap: wrap;
li {
width: 33%;
height: 50%;
display: flex;
flex-direction: column;
> div {
flex: 1;
}
}
}
}
.right {
width: 20%;
display: flex;
flex-direction: column;
ul {
flex: 1;
display: flex;
flex-direction: column;
justify-content: space-around;
li {
display: flex;
justify-content: space-between;
span {
min-width: 60px;
}
span:last-child {
text-align: right;
}
p {
flex: 1;
i {
transition: width 2s ease-out;
-moz-transition: width 2s ease-out;
-webkit-transition: width 2s ease-out;
-o-transition: width 2s ease-out;
display: inline-block;
height: 10px;
border-radius: 15px;
background-image: linear-gradient(to right, #36ecfe, #fde191);
}
}
}
}
}
h3.title {
font-size: 20px;
line-height: 40px;
color: #43ebf6;
display: flex;
justify-content: space-between;
span {
font-size: 14px;
color: #0fd4f9;
cursor: pointer;
}
}
}
</style>

View File

@ -1,248 +0,0 @@
<template>
<div class="main">
<div class="search">
<div>
<label>时间</label>
<el-date-picker
v-model="value1"
type="monthrange"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份">
</el-date-picker>
</div>
<div>
<label>所属区</label>
<el-select v-model="value3" clearable placeholder="请选择">
<el-option
v-for="item in options1"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div>
<label>所属街道</label>
<el-select v-model="value4" clearable placeholder="请选择">
<el-option
v-for="item in options2"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<el-button type="primary" round><i class="iconfont iconchaxun"></i>查询</el-button>
</div>
<dv-border-box-7 :color="['#15369F','#fff']" style="padding: 20px 15px;box-sizing: border-box">
<el-table class="lh40 mgasj" :max-height="tableHeight" border :data="tableData">
<el-table-column align="center" width="60" type="index" label="序号"></el-table-column>
<el-table-column align="center" width="100" prop="a1" label="所属区"></el-table-column>
<el-table-column align="center" prop="a2" label="所属街道"></el-table-column>
<el-table-column align="center" prop="a3" label="立案量(件)"></el-table-column>
<el-table-column align="center" prop="a4" label="提请逮捕(件)"></el-table-column>
<el-table-column align="center" prop="a5" label="提请逮捕人数(人)"></el-table-column>
</el-table>
</dv-border-box-7>
</div>
</template>
<script>
export default {
data: function() {
return {
tableHeight: (window.innerHeight -76-72-10-10 - 40 -60 -40),
value1: '',
value2: '',
value3: '',
value4: '',
options1: [
{ value: '', label: '全部', },
{ value: '东城区', label: '东城区', },
{ value: '西城区', label: '西城区', },
{ value: '朝阳区', label: '朝阳区', },
{ value: '海淀区', label: '海淀区', },
{ value: '丰台区', label: '丰台区', },
{ value: '石景山区', label: '石景山区', },
{ value: '大兴区', label: '大兴区', },
{ value: '通州区', label: '通州区', },
{ value: '顺义区', label: '顺义区', },
{ value: '昌平区', label: '昌平区', },
{ value: '房山区', label: '房山区', },
{ value: '门头沟区', label: '门头沟区', },
{ value: '怀柔区', label: '怀柔区', },
{ value: '平谷区', label: '平谷区', },
{ value: '密云区', label: '密云区', },
{ value: '延庆区', label: '延庆区', },
],
options2: [
{ value: '', label: '全部'},
{ value: '1', label: '**街道'},
{ value: '2', label: '***街道'},
{ value: '3', label: '***街道'},
{ value: '4', label: '****街道'},
],
tableData: [
{
a1: '东城区',
a2: '*******街道',
a3: '3080',
a4: '3080',
a5: '3080',
},
{
a1: '西城区',
a2: '*******街道',
a3: '7000',
a4: '7000',
a5: '7000',
},
{
a1: '朝阳区',
a2: '*******街道',
a3: '12000',
a4: '12000',
a5: '12000',
},
{
a1: '海淀区',
a2: '*******街道',
a3: '8500',
a4: '8500',
a5: '8500',
},
{
a1: '丰台区',
a2: '*******街道',
a3: '1900',
a4: '1900',
a5: '1900',
},
{
a1: '石景山区',
a2: '*******街道',
a3: '6010',
a4: '6010',
a5: '6010',
},
{
a1: '大兴区',
a2: '*******街道',
a3: '1500',
a4: '1500',
a5: '1500',
},
{
a1: '通州区',
a2: '*******街道',
a3: '4020',
a4: '4020',
a5: '4020',
},
{
a1: '顺义区',
a2: '*******街道',
a3: '4500',
a4: '4500',
a5: '4500',
},
{
a1: '昌平区',
a2: '*******街道',
a3: '3800',
a4: '3800',
a5: '3800',
},
{
a1: '房山区',
a2: '*******街道',
a3: '4200',
a4: '4200',
a5: '4200',
},
{
a1: '门头沟区',
a2: '*******街道',
a3: '4800',
a4: '4800',
a5: '4800',
},
{
a1: '怀柔区',
a2: '*******街道',
a3: '1700',
a4: '1700',
a5: '1700',
},
{
a1: '平谷区',
a2: '*******街道',
a3: '1600',
a4: '1600',
a5: '1600',
},
{
a1: '密云区',
a2: '*******街道',
a3: '1500',
a4: '1500',
a5: '1500',
},
{
a1: '延庆区',
a2: '*******街道',
a3: '1900',
a4: '1900',
a5: '1900',
},
],
}
},
props: {},
mounted() {
console.log("1111111");
},
components: {
},
methods: {
handleDelete(obj){
console.log(obj);
}
},
}
</script>
<style scoped lang="less">
.main {
display: flex;
width: 100%;
height: 100%;
flex-direction: column;
.search{
display: flex;
padding: 30px 0px;
justify-content: center;
&>div{
display: flex;
label{
line-height: 40px;
margin-left: 15px;
}
.el-input{
flex: 1;
}
}
.el-button{
margin-left: 15px;
width: 120px;
.iconfont{
margin-right: 5px;
}
}
}
.el-table:before {
height: 0px;
}
}
</style>

View File

@ -1,265 +0,0 @@
<template>
<div class="main">
<div class="search">
<div>
<label>时间</label>
<el-date-picker
v-model="value1"
type="monthrange"
range-separator="至"
start-placeholder="开始月份"
end-placeholder="结束月份">
</el-date-picker>
</div>
<div>
<label>所属区</label>
<el-select v-model="value3" clearable placeholder="请选择">
<el-option
v-for="item in options1"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div>
<label>所属街道</label>
<el-select v-model="value4" clearable placeholder="请选择">
<el-option
v-for="item in options2"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<el-button type="primary" round><i class="iconfont iconchaxun"></i>查询</el-button>
</div>
<dv-border-box-7 :color="['#15369F','#fff']" style="padding: 20px 15px;box-sizing: border-box">
<el-table class="lh40 mgasj" :max-height="tableHeight" border :data="tableData">
<el-table-column align="center" width="60" type="index" label="序号"></el-table-column>
<el-table-column align="center" width="100" prop="a1" label="所属区"></el-table-column>
<el-table-column align="center" prop="a2" label="拘传(人)"></el-table-column>
<el-table-column align="center" prop="a3" label="取保候审(人)"></el-table-column>
<el-table-column align="center" prop="a4" label="监视居住(人)"></el-table-column>
<el-table-column align="center" prop="a5" label="拘留(人)"></el-table-column>
<el-table-column align="center" prop="a5" label="逮捕(人)"></el-table-column>
</el-table>
</dv-border-box-7>
</div>
</template>
<script>
export default {
data: function() {
return {
tableHeight: (window.innerHeight -76-72-10-10 - 40 -60 -40),
value1: '',
value2: '',
value3: '',
value4: '',
options1: [
{ value: '', label: '全部', },
{ value: '东城区', label: '东城区', },
{ value: '西城区', label: '西城区', },
{ value: '朝阳区', label: '朝阳区', },
{ value: '海淀区', label: '海淀区', },
{ value: '丰台区', label: '丰台区', },
{ value: '石景山区', label: '石景山区', },
{ value: '大兴区', label: '大兴区', },
{ value: '通州区', label: '通州区', },
{ value: '顺义区', label: '顺义区', },
{ value: '昌平区', label: '昌平区', },
{ value: '房山区', label: '房山区', },
{ value: '门头沟区', label: '门头沟区', },
{ value: '怀柔区', label: '怀柔区', },
{ value: '平谷区', label: '平谷区', },
{ value: '密云区', label: '密云区', },
{ value: '延庆区', label: '延庆区', },
],
options2: [
{ value: '', label: '全部'},
{ value: '1', label: '**街道'},
{ value: '2', label: '***街道'},
{ value: '3', label: '***街道'},
{ value: '4', label: '****街道'},
],
tableData: [
{
a1: '东城区',
a2: '3080',
a3: '3080',
a4: '3080',
a5: '3080',
a6: '3080',
},
{
a1: '西城区',
a2: '7000',
a3: '7000',
a4: '7000',
a5: '7000',
a6: '7000',
},
{
a1: '朝阳区',
a2: '12000',
a3: '12000',
a4: '12000',
a5: '12000',
a6: '12000',
},
{
a1: '海淀区',
a2: '8500',
a3: '8500',
a4: '8500',
a5: '8500',
a6: '8500',
},
{
a1: '丰台区',
a2: '1900',
a3: '1900',
a4: '1900',
a5: '1900',
a6: '1900',
},
{
a1: '石景山区',
a2: '6010',
a3: '6010',
a4: '6010',
a5: '6010',
a6: '6010',
},
{
a1: '大兴区',
a2: '1500',
a3: '1500',
a4: '1500',
a5: '1500',
a6: '1500',
},
{
a1: '通州区',
a2: '4020',
a3: '4020',
a4: '4020',
a5: '4020',
a6: '4020',
},
{
a1: '顺义区',
a2: '4500',
a3: '4500',
a4: '4500',
a5: '4500',
a6: '4500',
},
{
a1: '昌平区',
a2: '3800',
a3: '3800',
a4: '3800',
a5: '3800',
a6: '3800',
},
{
a1: '房山区',
a2: '4200',
a3: '4200',
a4: '4200',
a5: '4200',
a6: '4200',
},
{
a1: '门头沟区',
a2: '4800',
a3: '4800',
a4: '4800',
a5: '4800',
a6: '4800',
},
{
a1: '怀柔区',
a2: '1700',
a3: '1700',
a4: '1700',
a5: '1700',
a6: '1700',
},
{
a1: '平谷区',
a2: '1600',
a3: '1600',
a4: '1600',
a5: '1600',
a6: '1600',
},
{
a1: '密云区',
a2: '1500',
a3: '1500',
a4: '1500',
a5: '1500',
a6: '1500',
},
{
a1: '延庆区',
a2: '1900',
a3: '1900',
a4: '1900',
a5: '1900',
a6: '1900',
},
],
}
},
props: {},
mounted() {
console.log("1111111");
},
components: {
},
methods: {
handleDelete(obj){
console.log(obj);
}
},
}
</script>
<style scoped lang="less">
.main {
display: flex;
width: 100%;
height: 100%;
flex-direction: column;
.search{
display: flex;
padding: 30px 0px;
justify-content: center;
&>div{
display: flex;
label{
line-height: 40px;
margin-left: 15px;
}
.el-input{
flex: 1;
}
}
.el-button{
margin-left: 15px;
width: 120px;
.iconfont{
margin-right: 5px;
}
}
}
.el-table:before {
height: 0px;
}
}
</style>

View File

@ -88,13 +88,14 @@ export default new Router({
index: 0,
}
},
// 智能设备
{
path: '/09',
name: '09',
component: () => import('@/pages/page/09'),
path: '/intelligent',
name: 'intelligent',
component: () => import('@/pages/intelligent/index'),
meta: {
index: 0,
}
},
},
// 首页
{
@ -502,77 +503,6 @@ export default new Router({
},
]
},
// 智能办案
{
path: '/intelligent',
name: 'intelligent',
redirect: '/intelligent/home', // 设置默认路由
component: () => import('@/pages/intelligent/index'),
meta: {
index: 1,
},
children: [
{
name: 'intelligentHome',
path: 'home',
component: resolve => require(['@/pages/intelligent/home'], resolve),
},
{
// 公安
name: '/intelligent/publicSecurity',
path: 'publicSecurity',
component: resolve => require(['@/pages/intelligent/publicSecurity'], resolve),
},
{
// 公安-趋势各区量查询、案由
name: 'publicSecurityDetail1',
path: 'publicSecurityDetail1',
component: resolve => require(['@/pages/intelligent/publicSecurityDetail1'], resolve),
},
{
// 公安-强制措施
name: 'publicSecurityDetail2',
path: 'publicSecurityDetail2',
component: resolve => require(['@/pages/intelligent/publicSecurityDetail2'], resolve),
},
{
// 检察院
name: 'procuratorate',
path: 'procuratorate',
component: resolve => require(['@/pages/intelligent/procuratorate'], resolve),
},
{
// 法院
name: 'court',
path: 'court',
component: resolve => require(['@/pages/intelligent/court'], resolve),
},
{
// 司法
name: 'judicial',
path: 'judicial',
component: resolve => require(['@/pages/intelligent/judicial'], resolve),
},
{
// 涉案财物
name: 'money',
path: 'money',
component: resolve => require(['@/pages/intelligent/money'], resolve),
},
{
// 减刑假释
name: 'commutation',
path: 'commutation',
component: resolve => require(['@/pages/intelligent/commutation'], resolve),
},
{
// 犯罪嫌疑人
name: 'criminalSuspect',
path: 'criminalSuspect',
component: resolve => require(['@/pages/intelligent/criminalSuspect'], resolve),
},
]
},
// 反邪教专题
{
path: '/cult',