This commit is contained in:
2026-01-25 12:39:31 +08:00
parent e87494ae2e
commit 8b34dba464
4 changed files with 54 additions and 139 deletions

View File

@ -142,10 +142,11 @@ const pageData = reactive({
{ label: "处置状态", prop: "czzt", showSolt: true }, { label: "处置状态", prop: "czzt", showSolt: true },
{ label: "预警时间", prop: "yjSj", showOverflowTooltip: true, width: 200 }, { label: "预警时间", prop: "yjSj", showOverflowTooltip: true, width: 200 },
{ label: "姓名", prop: "yjRyxm" }, { label: "姓名", prop: "yjRyxm" },
{ label: "性别", prop: "xb", showSolt: true, width: 80 },
{ label: "年龄", prop: "nl", showSolt: true, width: 80 }, { label: "年龄", prop: "nl", showSolt: true, width: 80 },
{ label: "数据来源", prop: "yjLylx", showOverflowTooltip: true, showSolt: true }, { label: "数据来源", prop: "yjLylx", showOverflowTooltip: true, showSolt: true },
{ label: "身份证", prop: "yjRysfzh", showOverflowTooltip: true, width: 200 }, { label: "身份证", prop: "yjRysfzh", showOverflowTooltip: true, width: 200 },
// { label: "预警级别", prop: "yjJb", showSolt: true }, { label: "预警级别", prop: "yjJb", showSolt: true },
{ label: "相似度", prop: "xsd", showSolt: true }, { label: "相似度", prop: "xsd", showSolt: true },
// { label: "布控车牌号", prop: "yjClcph", showOverflowTooltip: true }, // { label: "布控车牌号", prop: "yjClcph", showOverflowTooltip: true },
{ label: "所属部门", prop: "ssbm", showOverflowTooltip: true }, { label: "所属部门", prop: "ssbm", showOverflowTooltip: true },
@ -156,9 +157,6 @@ const pageData = reactive({
/** 选中项 */ /** 选中项 */
const selectRows = ref([]) const selectRows = ref([])
onMounted(() => { onMounted(() => {
let str = getItem('deptId') ? getItem('deptId')[0].deptLevel : '' let str = getItem('deptId') ? getItem('deptId')[0].deptLevel : ''
permission_sfqs.value = str.startsWith('2'||'3') ? false : true; permission_sfqs.value = str.startsWith('2'||'3') ? false : true;
@ -168,7 +166,6 @@ onMounted(() => {
return ['JS_666666','JS_777777','JS_888888'].includes(item.roleCode) return ['JS_666666','JS_777777','JS_888888'].includes(item.roleCode)
}) })
roleCode.value = obj ? true : false; roleCode.value = obj ? true : false;
// tabHeightFn(); // tabHeightFn();
getList() getList()
}); });
@ -191,6 +188,7 @@ const getList = (val) => {
pageCurrent: pageData.pageConfiger.pageCurrent, pageCurrent: pageData.pageConfiger.pageCurrent,
pageSize: pageData.pageConfiger.pageSize pageSize: pageData.pageConfiger.pageSize
} }
delete promes.times;
tbYjxxGetPageList(promes).then((res) => { tbYjxxGetPageList(promes).then((res) => {
pageData.tableData = res.records.map(item => { pageData.tableData = res.records.map(item => {
return { return {

View File

@ -1,51 +1,14 @@
<template> <template>
<div> <div>
<!-- 搜索 --> <!-- 搜索 -->
<div ref="searchBox" class="searchBoxlive mt10"> <Search :searchArr="searchConfiger" @submit="onSearch" @reset="onReset" :key="pageData.keyCount">
<div class="filter-title"> <template #yjRyxms>
<span class="filter-label"><el-icon> <el-select clearable v-model="listQuery.yjRyxm" filterable remote allow-create default-first-optionreserve-keyword placeholder="请输入布控人员" :remote-method="remoteMethod" :loading="loading" style="width: 240px">
<Filter />
</el-icon>筛选条件</span>
</div>
<el-form :model="listQuery" label-width="auto" :inline="true" ref="searchArr">
<el-form-item label="布控人员" prop="yjRyxm ">
<el-select clearable v-model="listQuery.yjRyxm" :key="listQuery.yjRyxm"filterable remote allow-create default-first-optionreserve-keyword placeholder="请输入布控人员" :remote-method="remoteMethod" :loading="loading" style="width: 240px">
<el-option v-for="item in opentions" :key="item.rySfzh" :label="item.ryXm" :value="item.rySfzh" /> <el-option v-for="item in opentions" :key="item.rySfzh" :label="item.ryXm" :value="item.rySfzh" />
</el-select> </el-select>
</el-form-item> </template>
<el-form-item label="性别"> </Search>
<el-select clearable v-model="listQuery.xbdm" filterable placeholder="请选择性别" style="width: 240px">
<el-option v-for="item in D_BZ_XB" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="身份证查询">
<el-input v-model="listQuery.yjRysfzh" placeholder="请输入身份证号" style="width: 240px" />
</el-form-item>
<el-form-item label="时间筛选">
<el-date-picker v-model="listQuery.time" type="datetimerange" :shortcuts="shortcuts" range-separator="To"
start-placeholder="开始时间" end-placeholder="结束时间" value-format="YYYY-MM-DD HH:mm:ss"
format="YYYY-MM-DD HH:mm:ss" />
</el-form-item>
<el-form-item label="状态">
<el-select clearable v-model="listQuery.czzt" filterable placeholder="请选择状态" style="width: 240px">
<el-option v-for="item in D_GSXT_YJXX_CZZT" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="预警级别">
<el-select clearable v-model="listQuery.yjJb" filterable placeholder="请选择预警级别" style="width: 240px">
<el-option v-for="item in D_BZ_YJJB" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="所属部门">
<MOSTY.Department clearable v-model="listQuery.ssbmdm" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSearch">查询</el-button>
<el-button @click="resetForm(searchArr)">重置</el-button>
</el-form-item>
</el-form>
</div>
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5"> <PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
<template #left> <template #left>
<el-button type="primary" size="small" @click="exportExl">导出</el-button> <el-button type="primary" size="small" @click="exportExl">导出</el-button>
@ -108,7 +71,7 @@
<script setup> <script setup>
import * as MOSTY from "@/components/MyComponents/index"; import * as MOSTY from "@/components/MyComponents/index";
import PageTitle from "@/components/aboutTable/PageTitle.vue"; import PageTitle from "@/components/aboutTable/PageTitle.vue";
// import Search from "@/components/aboutTable/Search.vue"; import Search from "@/components/aboutTable/Search.vue";
import { IdCard } from '@/utils/validate.js' import { IdCard } from '@/utils/validate.js'
import { tbGsxtZdrySelectList } from "@/api/zdr.js" import { tbGsxtZdrySelectList } from "@/api/zdr.js"
import { tbYjxxQueryYjxx } from "@/api/yj.js"; import { tbYjxxQueryYjxx } from "@/api/yj.js";
@ -119,41 +82,21 @@ import AddFromz from './components/addFrom.vue';
import FileSaver from "file-saver"; import FileSaver from "file-saver";
import emitter from "@/utils/eventBus.js"; import emitter from "@/utils/eventBus.js";
import * as XLSX from "xlsx"; import * as XLSX from "xlsx";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { D_GSXT_YJXX_CZZT, D_BZ_YJJB, D_BZ_YJLYXT, D_BZ_YJLY, D_BZ_XB } = proxy.$dict("D_GSXT_YJXX_CZZT", "D_BZ_YJJB", "D_BZ_YJLYXT", "D_BZ_YJLY", "D_BZ_XB") const { D_GSXT_YJXX_CZZT,D_GS_QLZDRLX, D_BZ_YJJB, D_BZ_YJLYXT, D_BZ_YJLY, D_BZ_XB } = proxy.$dict("D_GSXT_YJXX_CZZT",'D_GS_QLZDRLX ', "D_BZ_YJJB", "D_BZ_YJLYXT", "D_BZ_YJLY", "D_BZ_XB")
const searchBox = ref(); //搜索框 const searchBox = ref(); //搜索框
const shortcuts = [ const searchConfiger = ref(
{ [
text: '近一周', { label: "布控人员", prop: 'yjRyxms', showType: "Slot" },
value: () => { { label: "性别", prop: 'xbdm', placeholder: "请选择性别", showType: "select", options: D_BZ_XB },
const end = new Date() { label: "身份证", prop: 'yjRysfzh', placeholder: "请输入身份证号码", showType: "input" },
const start = new Date() { label: "预警时间", prop: 'times', showType: "datetimerange" },
start.setDate(start.getDate() - 7) { label: "状态", prop: 'czzt', placeholder: "请选择状态", showType: "select", options: D_GSXT_YJXX_CZZT },
return [start, end] // { label: "人员类别", prop: 'bqdl', placeholder: "请选择人员类别", showType: "select", options: D_GS_QLZDRLX },
}, { label: "细类", prop: 'yjbqmc', placeholder: "请输入细类", showType: "input" },
}, { label: "活动发生地址", prop: 'yjDz', placeholder: "请输入活动发生地址", showType: "input" },
{ { label: "接收单位", prop: 'ssbmdm',showType: "department" },
text: '近一月', ]);
value: () => {
const end = new Date()
const start = new Date()
start.setMonth(start.getMonth() - 1)
return [start, end]
},
},
{
text: '近三月',
value: () => {
const end = new Date()
const start = new Date()
start.setMonth(start.getMonth() - 3)
return [start, end]
},
},
]
const pageData = reactive({ const pageData = reactive({
/** 表格高度 */ /** 表格高度 */
@ -203,22 +146,21 @@ onMounted(() => {
// addFromRefs.value.init('add', val) // addFromRefs.value.init('add', val)
}) })
}); });
const listQuery = ref({ const listQuery = ref({})
// yjlx: '1', // 1.人员预警
})
const opentions = ref([]) const opentions = ref([])
const localWarningRef = ref(null); const localWarningRef = ref(null);
// 搜索 // 搜索
const onReset = () => {
listQuery.value.yjRyxm = ''
}
const onSearch = (val) => {
listQuery.value = { ...listQuery.value,...val };
listQuery.value.startTime = val.times ? val.times[0] : ''
listQuery.value.endTime = val.times ? val.times[1] : ''
localWarningRef.value.getList(listQuery.value)
}
const onSearch = () => {
const promes = {
...listQuery.value,
startTime: listQuery.value.time ? listQuery.value.time[0] : '',
endTime: listQuery.value.time ? listQuery.value.time[1] : '',
}
delete promes.time;
localWarningRef.value.getList(promes)
}
const loading = ref(false) const loading = ref(false)
const remoteMethod = (query) => { const remoteMethod = (query) => {
if (!query) return opentions.value = []; if (!query) return opentions.value = [];
@ -230,11 +172,6 @@ const remoteMethod = (query) => {
loading.value = false loading.value = false
}) })
} }
const searchArr = ref()
const resetForm = (formEl) => {
listQuery.value = {}
localWarningRef.value.getList()
}
// // 表格高度计算 // // 表格高度计算
// const tabHeightFn = () => { // const tabHeightFn = () => {
// pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250; // pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;

View File

@ -136,6 +136,7 @@ const pageData = reactive({
{ label: "预警图片", prop: "yjTp", showSolt: true, width: 100 }, { label: "预警图片", prop: "yjTp", showSolt: true, width: 100 },
{ label: "布控车牌号", prop: "yjClcph", showOverflowTooltip: true }, { label: "布控车牌号", prop: "yjClcph", showOverflowTooltip: true },
{ label: "处置状态", prop: "czzt", showSolt: true }, { label: "处置状态", prop: "czzt", showSolt: true },
{ label: "预警级别", prop: "yjJb", showSolt: true },
{ label: "预警时间", prop: "yjSj", showOverflowTooltip: true }, { label: "预警时间", prop: "yjSj", showOverflowTooltip: true },
{ label: "标题", prop: "yjBt" }, { label: "标题", prop: "yjBt" },
{ label: "预警地址", prop: "yjDz", showOverflowTooltip: true }, { label: "预警地址", prop: "yjDz", showOverflowTooltip: true },
@ -183,6 +184,7 @@ const getList = (val) => {
pageCurrent: pageData.pageConfiger.pageCurrent, pageCurrent: pageData.pageConfiger.pageCurrent,
pageSize: pageData.pageConfiger.pageSize pageSize: pageData.pageConfiger.pageSize
} }
delete promes.times;
tbYjxxGetPageList(promes).then((res) => { tbYjxxGetPageList(promes).then((res) => {
pageData.tableData = res.records.map(item => { pageData.tableData = res.records.map(item => {
return { return {

View File

@ -1,34 +1,7 @@
<template> <template>
<div> <div>
<div ref="searchBox" class="searchBoxlive mt10"> <Search :searchArr="searchConfiger" @submit="onSearch" @reset="onReset" :key="pageData.keyCount">
<div class="filter-title"> </Search>
<span class="filter-label"><el-icon>
<Filter />
</el-icon>筛选条件</span>
</div>
<el-form :model="listQuery" label-width="auto" :inline="true" ref="searchArr" style="margin-left: 10px;">
<el-form-item label="时间筛选">
<el-date-picker v-model="listQuery.time" type="datetimerange" :shortcuts="shortcuts" range-separator="To"
start-placeholder="开始时间" end-placeholder="结束时间" value-format="YYYY-MM-DD HH:mm:ss"
format="YYYY-MM-DD HH:mm:ss" />
</el-form-item>
<el-form-item label="车牌号">
<el-input v-model="listQuery.yjClcph" placeholder="请输入车牌号" />
</el-form-item>
<el-form-item label="预警级别">
<el-select clearable v-model="listQuery.yjJb" filterable placeholder="请选择预警级别" style="width: 240px">
<el-option v-for="item in D_BZ_YJJB" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="所属部门">
<MOSTY.Department clearable v-model="listQuery.ssbmdm" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSearch">查询</el-button>
<el-button @click="resetForm(searchArr)">重置</el-button>
</el-form-item>
</el-form>
</div>
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5"> <PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
<template #left> <template #left>
<el-button type="primary" @click="exportExl" size="small">导出</el-button> <el-button type="primary" @click="exportExl" size="small">导出</el-button>
@ -95,7 +68,7 @@
<script setup> <script setup>
import * as MOSTY from "@/components/MyComponents/index"; import * as MOSTY from "@/components/MyComponents/index";
import PageTitle from "@/components/aboutTable/PageTitle.vue"; import PageTitle from "@/components/aboutTable/PageTitle.vue";
// import Search from "@/components/aboutTable/Search.vue"; import Search from "@/components/aboutTable/Search.vue";
import { IdCard } from '@/utils/validate.js' import { IdCard } from '@/utils/validate.js'
import { tbGsxtZdrySelectList } from "@/api/zdr.js" import { tbGsxtZdrySelectList } from "@/api/zdr.js"
import { tbYjxxQueryYjxx } from "@/api/yj.js"; import { tbYjxxQueryYjxx } from "@/api/yj.js";
@ -109,6 +82,17 @@ import * as XLSX from "xlsx";
const { proxy } = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { D_GSXT_YJXX_CZZT, D_BZ_YJJB, D_BZ_YJLY } = proxy.$dict("D_GSXT_YJXX_CZZT", "D_BZ_YJJB", "D_BZ_YJLY") const { D_GSXT_YJXX_CZZT, D_BZ_YJJB, D_BZ_YJLY } = proxy.$dict("D_GSXT_YJXX_CZZT", "D_BZ_YJJB", "D_BZ_YJLY")
const searchBox = ref(); //搜索框 const searchBox = ref(); //搜索框
const searchConfiger = ref(
[
{ label: "车牌号", prop: 'yjClcph', showType: "input", placeholder: "请输入车牌号", },
{ label: "预警时间", prop: 'times', showType: "datetimerange" },
{ label: "状态", prop: 'czzt', placeholder: "请选择状态", showType: "select", options: D_GSXT_YJXX_CZZT },
{ label: "预警级别", prop: 'yjJb', placeholder: "请选择预警级别", showType: "select", options: D_BZ_YJJB },
{ label: "细类", prop: 'yjbqmc', placeholder: "请输入细类", showType: "input" },
{ label: "活动发生地址", prop: 'yjDz', placeholder: "请输入活动发生地址", showType: "input" },
{ label: "接收单位", prop: 'ssbmdm',showType: "department" },
]);
const shortcuts = [ const shortcuts = [
{ {
text: '近一周', text: '近一周',
@ -186,19 +170,13 @@ onMounted(() => {
}); });
const listQuery = ref({ const listQuery = ref({
}) })
const opentions = ref([])
const localWarningRef = ref(null); const localWarningRef = ref(null);
// 搜索 // 搜索
const onSearch = () => { const onSearch = (val) => {
const promes = { const promes = { ...val }
...listQuery.value, promes.startTime = val.times ? val.times[0] : ''
// yjlx: listQuery.value.yjlx, promes.endTime = val.times ? val.times[1] : ''
yjClcph: listQuery.value.yjClcph,
startTime: listQuery.value.time ? listQuery.value.time[0] : '',
endTime: listQuery.value.time ? listQuery.value.time[1] : '',
}
delete promes.time;
localWarningRef.value.getList(promes) localWarningRef.value.getList(promes)
} }
const loading = ref(false) const loading = ref(false)