Files
jg_app/src/pages/newTwoHome/zjq.vue

221 lines
5.8 KiB
Vue
Raw Normal View History

2026-04-10 17:10:36 +08:00
<template>
<div class="" style="padding-top: 13vw">
<TopNav navTitle="总警情分类" :showRight="false" :showLeft="true" />
<div class="jq_box">
<div class="jq_item left_item" style="padding: 0">
<div class="jq_total_item" v-for="(item, index) in Tabslist" :class="index == 0 || index == 1 ? 'jrjqzs_total' :
index == 2 || index == 3 ? 'zdjqzs_total' : 'wffzzs_total'" :key="index"
@click="onClickJqTotal(item.type)">
<span class="jmsfjq_total_title">{{ item.name }}</span>
<div style="margin: 1vw 0">
<span class="jq_num">{{ item.count }} </span>
<span style="display: inline-block; margin-left: 6vw">环比<br />
<span style="display: inline-block; margin-top: 1vw">
<img src="../../assets/images/leader/arrow-up@2x.png" class="bl_img" v-if="item.hb > 0" />
<img src="../../assets/images/leader/arrow-down@2x.png" class="bl_img" v-else />
<span :class="item.hb > 0 ? 'red' : 'green1'">{{ item.hb }}%</span>
</span>
</span>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
</script>
<script setup>
import TopNav from "../../components/topNav.vue";
import { ref, onMounted, onUnmounted, onActivated, reactive } from "vue";
import { dateFormat } from "../../utils/tools.js";
import { baseUrl2 } from "../../utils/request";
import router from "../../router";
import axios from "axios";
import { onBeforeRouteLeave } from "vue-router";
const jqTotal = ref({}); //今日警情统计
const zrjqTotal = ref(0); //昨日警情数据
const QWLX = ref([]); //勤务类型
const Tabslist = ref([
{ name: "刑事", count: 0, hb: 0, type: 5 },//4
{ name: "行政", count: 0, hb: 0, type: 4 },//3
{ name: "纠纷", count: 0, hb: 0, type: 13 },//12
{ name: "求助", count: 0, hb: 0, type: 14 },//13
{ name: "其他", count: 0, hb: 0, type: 15 },//14
])
onMounted(() => {
getCount()//// 获取统计
_getJqTotal();
_getJqTotal(true);
});
// 获取统计
function getCount() {
let data = {
orgId: JSON.parse(window.localStorage.getItem("userInfo")).deptList[0].deptCode,
startTime: `${dateFormat("z")} 16:00:00`,
endTime: `${dateFormat()} 16:00:00`,
type: 1,
keyword: "",
};
axios.post(`${baseUrl2}/xz1Api/api/alarm/count`, data).then((res) => {
if (res.data) {
Tabslist.value[0].count = res.data.data.xsCount //刑事
Tabslist.value[0].hb = res.data.data.xsHb //刑事环比
Tabslist.value[1].count = res.data.data.xzCount //行政
Tabslist.value[1].hb = res.data.data.xzHb //行政环比
Tabslist.value[2].count = res.data.data.jfCount //纠纷
Tabslist.value[2].hb = res.data.data.jfHb //纠纷环比
Tabslist.value[3].count = res.data.data.qzCount //求助
Tabslist.value[3].hb = res.data.data.qcHb //求助环比
Tabslist.value[4].count = res.data.data.qtCount //其他
Tabslist.value[4].hb = res.data.data.qtHb //其他环比
}
});
}
//点击警情统计查看列表
function onClickJqTotal(status) {
router.push(`/newTwoHome/jq/xzjqlist?status=${status}`);
}
//获取警情统计 type 是否是昨日
function _getJqTotal(type) {
let data = {
orgId: JSON.parse(window.localStorage.getItem("userInfo")).deptList[0]
.deptCode,
startTime: `${dateFormat("z")} 16:00:00`,
endTime: `${dateFormat()} 16:00:00`,
type: 1,
keyword: "",
};
if (type) {
data.startTime = `${dateFormat("z2")} 16:00:00`;
data.endTime = `${dateFormat("z")} 16:00:00`;
}
axios.post(`${baseUrl2}/xz1Api/api/alarm/count`, data).then((res) => {
if (res.data) {
if (type) {
let num =
res.data.data.lqCount +
res.data.data.qcCount +
res.data.data.ccCount +
res.data.data.pqCount +
res.data.data.dqscCount;
zrjqTotal.value = jqTotal.value.jmsfTotal - num;
} else {
jqTotal.value = res.data.data;
jqTotal.value.jmsfTotal =
res.data.data.lqCount +
res.data.data.qcCount +
res.data.data.ccCount +
res.data.data.pqCount +
res.data.data.dqscCount;
}
}
});
}
</script>
<style lang="scss" scoped>
@import "../../assets/styles/mixin.scss";
.jq_box {
display: flex;
justify-content: space-between;
@include font_size($font_medium_s);
margin: 0 3vw 3vw 3vw;
.jmsfjq_box {
background: linear-gradient(0deg, #f4f8fb 35%, #e1eeff 100%);
}
.left_item {
display: flex;
// flex-direction: column;
justify-content: space-between;
}
.jq_item {
// flex-shrink: 0;
flex-wrap: wrap;
border-radius: 2vw;
padding: 1.5vw;
.mk_jq_total_box {
margin: 5vw 0;
.jq_total {
@include font_size($font_medium);
display: flex;
justify-content: space-between;
.jq_total_unit {
@include font_size($font_medium_s);
}
}
.jqhb {
display: inline-block;
margin-top: 1vw;
color: #999;
}
}
.jq_total_item {
width: 37vw;
padding: 2.5vw;
border-radius: 2vw;
margin: 2vw;
}
.dxzp_item {
background: rgba(81, 193, 242, 0.1);
}
.zdjqzs_total {
background: url("../../assets/images/new/zdjqzs.png");
background-size: 100%;
}
.jrjqzs_total {
background: #7d9ef8;
}
.wffzzs_total {
background: #fae9e1;
.xz_xs_total {
display: flex;
justify-content: space-between;
color: #7c4e19;
.sx {
width: 1px;
background: #7c4e19;
}
}
}
}
}
.topM {
padding-top: 2vw;
}
.bl_img {
width: 2vw;
height: 2.5vw;
margin-right: 1vw;
}
.jq_num {
font-size: 6vw;
font-weight: 700;
margin: 2vw 0;
}
.green1 {
color: #57fc48;
}
</style>