更新
This commit is contained in:
@ -1,12 +1,7 @@
|
||||
/** 积分类型 */
|
||||
export const jflylxTypes = {
|
||||
'01': '信息采集',
|
||||
'02': '肯定',
|
||||
'03': '转会商',
|
||||
'04': '转合成',
|
||||
'05': '转线索',
|
||||
'06': '建模型',
|
||||
'07': '战术研判',
|
||||
'08': '战略研判'
|
||||
'01': '采纳',
|
||||
'02': '转线索',
|
||||
'03': '研判',
|
||||
};
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<el-dialog :model-value="modelValue" title="预警总数" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<el-dialog :model-value="modelValue" :title="title" width="70%" @close="closeDialog" destroy-on-close append-to-body>
|
||||
<div style="height: 60vh; overflow: auto;">
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
@ -61,13 +61,16 @@ import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||
import { ref, reactive, getCurrentInstance, watch } from "vue";
|
||||
import {timeValidate} from '@/utils/tools.js'
|
||||
const { proxy } = getCurrentInstance()
|
||||
|
||||
const { D_BZ_YJJB, D_GS_ZDQT_YJLB, D_BZ_YJLX } = proxy.$dict("D_BZ_YJJB", "D_GS_ZDQT_YJLB", "D_BZ_YJLX"); //获取字典数据
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
dict: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
@ -89,6 +92,7 @@ const searchConfiger = ref([
|
||||
},
|
||||
]);
|
||||
const emit = defineEmits(['update:modelValue'])
|
||||
const title = ref('')
|
||||
let today = new Date();
|
||||
let startOfDay = new Date(today.getFullYear(), today.getMonth(), today.getDate());
|
||||
let endOfDay = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 23, 59, 59, 999);
|
||||
@ -138,6 +142,7 @@ const onSearch = (val) => {
|
||||
}
|
||||
watch(() => props.modelValue, (val) => {
|
||||
if (val) {
|
||||
title.value = props.type == 'wqs' ? '未签收预警' : props.type == 'yfk' ? '已反馈预警' : '预警总数'
|
||||
// 获取今天的开始时间和结束时间
|
||||
parameter.value = {startTime:timeValidate(startOfDay), endTime:timeValidate(endOfDay)}
|
||||
changePage()
|
||||
@ -154,6 +159,10 @@ pageData.tableConfiger.loading = true;
|
||||
pageCurrent: pageData.pageConfiger.pageCurrent,
|
||||
pageSize: pageData.pageConfiger.pageSize
|
||||
}
|
||||
|
||||
if(props.type == 'wqs') promes.czzt = '01';
|
||||
if(props.type == 'yfk') promes.czzt = '03';
|
||||
|
||||
qcckPost(promes, '/mosty-gsxt/tbYjxx/getPageAllList').then((res) => {
|
||||
pageData.total = res.total || 0;
|
||||
pageData.tableConfiger.loading = false;
|
||||
|
||||
78
src/views/home/components/peoDialog.vue
Normal file
78
src/views/home/components/peoDialog.vue
Normal file
@ -0,0 +1,78 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-dialog title="人员详情" v-model="dialogVisible" width="80%">
|
||||
<MyTable
|
||||
customClass="zdy_bkcz_table"
|
||||
:tableData="pageData.tableData"
|
||||
:tableColumn="pageData.tableColumn"
|
||||
:tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount"
|
||||
:tableConfiger="pageData.tableConfiger"
|
||||
>
|
||||
<template #yjjb="{ row }">
|
||||
<DictTag :value="row.yjjb" :tag="false" :color="bqYs(row.yjjb)" :options="D_BZ_YJJB" />
|
||||
</template>
|
||||
<template #yjLylx="{ row }">
|
||||
<DictTag :value="row.yjLylx" :tag="false" :options="D_BZ_YJLY" />
|
||||
</template>
|
||||
<template #yjlb="{ row }">
|
||||
<DictTag :value="row.yjlb" :options="D_BZ_YJLX" />
|
||||
</template>
|
||||
</MyTable>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import { ref, reactive,getCurrentInstance } from 'vue'
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_BZ_YJJB, D_BZ_YJLX,D_BZ_YJLY } = proxy.$dict("D_BZ_YJJB","D_BZ_YJLX",'D_BZ_YJLY'); //获取字典数据
|
||||
const dialogVisible = ref(false)
|
||||
const pageData = reactive({
|
||||
tableData: [],
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
loading: false,
|
||||
rowHieght: 61,
|
||||
haveControls: false,
|
||||
showSelectType: "null",
|
||||
showIndex: false,
|
||||
stripe: true
|
||||
},
|
||||
tableHeight: 500,
|
||||
tableColumn: [
|
||||
{ label: "预警标签", prop: "yjbq", width: 120 },
|
||||
{ label: "预警地址", prop: "yjdz" },
|
||||
{ label: "预警级别", prop: "yjjb", showSolt: true, width: 85 },
|
||||
{ label: "预警类别", prop: "yjlb", showSolt: true },
|
||||
{ label: "来源类型", prop: "yjLylx", showSolt: true,width: 100 },
|
||||
{ label: "预警时间", prop: "yjsj", width: 200 },
|
||||
{ label: "所属部门", prop: "ssbm" },
|
||||
{ label: "姓名", prop: "ryxm",width: 100 },
|
||||
{ label: "身份证号", prop: "rysfzh", width: 170 },
|
||||
{ label: "车牌号", prop: "cph" ,width: 100},
|
||||
]
|
||||
});
|
||||
const bqYs = (val) => {
|
||||
if (val == '01') {
|
||||
return '#ff0202'
|
||||
} else if (val == '02') {
|
||||
return '#ff8c00'
|
||||
} else if (val == '03') {
|
||||
return '#ffd325'
|
||||
} else if (val == '04') {
|
||||
return '#0000ff'
|
||||
}
|
||||
}
|
||||
|
||||
const init = (list) => {
|
||||
pageData.tableData = list || [];
|
||||
dialogVisible.value = true;
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
init
|
||||
})
|
||||
</script>
|
||||
|
||||
@ -72,6 +72,19 @@
|
||||
</el-icon>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
<div class="flex" style="position: absolute;z-index: 100;left: 70px;background-color: #07274d;height: 30px;text-align: center;line-height:30px;">
|
||||
<div style="width: 30px;">
|
||||
<el-icon :size="20" @click="showSeatch = !showSeatch" style="top: 3px;"><Search /></el-icon>
|
||||
</div>
|
||||
<div :style="{'width': showSeatch ? '270px' : '0'}" class="trnsitinForm">
|
||||
<el-input v-model="searchText" placeholder="请输入身份证" clearable>
|
||||
<template #append>
|
||||
<el-button type="primary" @click="handleSearch">搜索</el-button>
|
||||
</template>
|
||||
</el-input>
|
||||
</div>
|
||||
<!-- 搜索 -->
|
||||
</div>
|
||||
<div style="width: 100%;border: 1px sienna;position: relative">
|
||||
<GdMap></GdMap>
|
||||
</div>
|
||||
@ -108,12 +121,14 @@
|
||||
</div>
|
||||
<!-- 左边弹窗 -->
|
||||
<LeftDialog></LeftDialog>
|
||||
|
||||
<!-- 人员弹窗 -->
|
||||
<PeoDialog ref="peoDialogRef"></PeoDialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { qcckGet ,qcckPost} from "@/api/qcckApi.js";
|
||||
import { ref, onMounted, onUnmounted,getCurrentInstance } from 'vue'
|
||||
import PeoDialog from './components/peoDialog.vue'
|
||||
import LeftDialog from './dialog/leftDialog'
|
||||
import GdMap from "@/components/GdMap/index.vue";
|
||||
import Head from './layout/head.vue'
|
||||
@ -146,6 +161,9 @@ const { proxy } = getCurrentInstance();
|
||||
const { D_BZ_JQDJ } = proxy.$dict('D_BZ_JQDJ')
|
||||
const webSoket = new WebSoketClass()
|
||||
const modelWarning = ref(true)
|
||||
const searchText = ref('')
|
||||
const peoDialogRef = ref()
|
||||
const showSeatch = ref(false)
|
||||
const changeXzqh = (val, trg) => {
|
||||
setTimeout(() => {
|
||||
// 先移除已有的边界
|
||||
@ -348,6 +366,17 @@ onMounted(() => {
|
||||
})
|
||||
})
|
||||
|
||||
// 搜索
|
||||
const handleSearch = () => {
|
||||
if(!searchText.value){
|
||||
proxy.$message.warning('请输入身份证号')
|
||||
}else{
|
||||
qcckPost({ rysfzh: searchText.value },'/mosty-gsxt/tbYjxx/getPageAllList').then(res => {
|
||||
peoDialogRef.value.init(res.records || [])
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 布控预警上图
|
||||
const getTbYjxxGetList = () => {
|
||||
// 设置为当天时间范围:00:00:00 到 23:59:59
|
||||
@ -556,4 +585,9 @@ onUnmounted(() => {
|
||||
backface-visibility: hidden;
|
||||
perspective: 1000px;
|
||||
}
|
||||
|
||||
.trnsitinForm {
|
||||
overflow: hidden;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -42,8 +42,8 @@ const checkData = reactive({
|
||||
hasChoose: ["一级", "二级", "三级", "四级"]
|
||||
});
|
||||
const checkDatas = reactive({
|
||||
list: ["布控", "行为", "身份", "组合"],
|
||||
hasChoose: ["布控"]
|
||||
list: ['七类重点人','布控','无人机'],
|
||||
hasChoose: ['七类重点人']
|
||||
});
|
||||
const total = ref(0);
|
||||
const yjJb = ref(['01', '02', '03', '04']);
|
||||
@ -88,21 +88,10 @@ function changeDatas(val) {
|
||||
personList.value = [];
|
||||
checkDatas.hasChoose = val;
|
||||
let ids = [];
|
||||
if (val.includes('布控')) {
|
||||
typeS.value = true
|
||||
yjJb.value = ['01', '02', '03', '04']
|
||||
} else {
|
||||
yjJb.value = []
|
||||
typeS.value = false
|
||||
}
|
||||
val.forEach(it => {
|
||||
if (it == '布控') {
|
||||
ids.push('01')
|
||||
typeS.value = true
|
||||
};
|
||||
if (it == '行为') ids.push('02');
|
||||
if (it == '身份') ids.push('03');
|
||||
if (it == '组合') ids.push('04');
|
||||
if (it == '七类重点人') ids.push('01');
|
||||
if (it == '布控') ids.push('02');
|
||||
if (it == '无人机') ids.push('03');
|
||||
});
|
||||
yjLx.value = ids
|
||||
if (val.length == 0) personList.value = [];
|
||||
@ -169,8 +158,9 @@ const loadList = () => {
|
||||
}
|
||||
const ORDIMG = 'https://89.40.7.122:38496/image'
|
||||
const IMGYM = 'https://sg.lz.dsj.xz/dhimage'
|
||||
|
||||
const getList = (type) => {
|
||||
let data = { pageSize: 30, pageCurrent: pageNum.value, yjjbList: yjJb.value, yjlxList: yjLx.value };
|
||||
let data = { pageSize: 30, pageCurrent: pageNum.value, yjjbList: yjJb.value, lylxList: yjLx.value };
|
||||
loading.value = !type ? true : false;
|
||||
getPageAllList(data).then(res => {
|
||||
loading.value = false;
|
||||
|
||||
@ -1,38 +1,36 @@
|
||||
<template>
|
||||
<div class="ww100 h80 flex just-between align-center pl10 pr10">
|
||||
<div class="flex align-center" v-for="(item, idx) in contentItem" :key="idx" @click="openTc(item.type)">
|
||||
<div class="flex align-center" v-for="(item, idx) in contentItem" :key="idx">
|
||||
<div class="mr10"><img :src="item.icon" alt=""></div>
|
||||
<div class="vountItem">
|
||||
<div style="color:#ffffff" class="f16 lh20">{{ item.label }}</div>
|
||||
<div style="color:#ffffff" class="f16 lh20">{{ item.label }} <span @click="openTc(item.type,'zs')" v-if="item.type == 'yjzs'">{{ item.value }}</span></div>
|
||||
<div v-if="!item.isChild" class="mt4 f12" style="color: #ffffff;font-size: 24px;">{{ item.value }}</div>
|
||||
<div v-else class="mt4 flex align-center just-between" style="color: #ffffff;">
|
||||
<!-- 未处置: -->
|
||||
<span class="f24" style="color: #ff0000;" title="未处置">0</span>
|
||||
<!-- 已处置: -->
|
||||
<span class="f24" style="color: #4cf35d;" title="已处置">0</span>
|
||||
<span class="f12" style="color: #ff0000;" @click="openTc(item.type,'wqs')">未签收:{{ item.wqsyj }}</span>
|
||||
<span class="f12" style="color: #4cf35d;" @click="openTc(item.type,'yfk')">已反馈:{{ item.yfkyj }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<PoliceReports v-model="openJqzs"/>
|
||||
<NumberWarnings v-model="openYjzs"/>
|
||||
<NumberWarnings v-model="openYjzs" :type="yjType" />
|
||||
<keyPerson v-model="openZdry"/>
|
||||
<keyGroups v-model="openZdqt"/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { qcckPost } from "@/api/qcckApi.js";
|
||||
import { ref, onMounted } from "vue";
|
||||
import { ref, onMounted, reactive } from "vue";
|
||||
import PoliceReports from '@/views/home/components/policeReports.vue'
|
||||
import NumberWarnings from '@/views/home/components/numberWarnings.vue'
|
||||
import keyPerson from "@/views/home/components/keyPerson.vue";
|
||||
import keyGroups from "@/views/home/components/keyGroups.vue";
|
||||
|
||||
const contentItem = ref([
|
||||
const contentItem = reactive([
|
||||
{ type:"jqzs", label: "今日警情", value: "0" ,icon:require('@/assets/images/top-1.png')},
|
||||
{ type:"yjzs", label: "今日预警", value: "0",wqsyj:"0",yfkyj:"0",isChild:true,icon:require('@/assets/images/top-2.png') },
|
||||
{ type:"zdry", label: "重点人员总数", value: "0",icon:require('@/assets/images/top-3.png') },
|
||||
{ type:"zdqt", label: "重点群体总数", value: "0" ,icon:require('@/assets/images/top-4.png')},
|
||||
{ type:"yjzs", label: "今日预警", value: "0",isChild:true,icon:require('@/assets/images/top-2.png') },
|
||||
]);
|
||||
|
||||
onMounted(() => {
|
||||
@ -42,8 +40,12 @@ onMounted(() => {
|
||||
const getCount = () =>{
|
||||
qcckPost({},'/mosty-gsxt/qbcj/getXscjTjForZs').then(res=>{
|
||||
for(let key in res){
|
||||
let index = contentItem.value.findIndex(v=>key == v.type)
|
||||
if(index != -1) contentItem.value[index].value = res[key];
|
||||
let index = contentItem.findIndex(v=>key == v.type)
|
||||
if(index != -1) contentItem[index].value = res[key];
|
||||
if(key == 'wqsyj' || key == 'yfkyj') {
|
||||
let inx = contentItem.findIndex(v=> v.type == 'yjzs' )
|
||||
contentItem[inx][key] = res[key];
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -54,12 +56,14 @@ const openJqzs = ref(false)
|
||||
const openYjzs = ref(false)
|
||||
const openZdry = ref(false)
|
||||
const openZdqt = ref(false)
|
||||
const openTc = (val) => {
|
||||
const yjType = ref('')
|
||||
const openTc = (val,type) => {
|
||||
switch (val) {
|
||||
case 'jqzs':
|
||||
openJqzs.value = true
|
||||
break;
|
||||
case 'yjzs':
|
||||
yjType.value = type
|
||||
openYjzs.value = true
|
||||
break;
|
||||
case 'zdry':
|
||||
|
||||
Reference in New Issue
Block a user