2025-04-17 14:09:09 +08:00
|
|
|
|
<template>
|
|
|
|
|
<div class="statistical-analysis">
|
2025-07-03 17:47:01 +08:00
|
|
|
|
<div class="left">
|
|
|
|
|
<div style="background:#fff" class="pl10 pr10 pb10 pt10">
|
|
|
|
|
<div class="title">图像信息</div>
|
|
|
|
|
<MyTable
|
|
|
|
|
:tableData="pageData.tableData"
|
|
|
|
|
:tableColumn="pageData.tableColumn"
|
|
|
|
|
:tableHeight="pageData.tableHeight"
|
|
|
|
|
:key="pageData.keyCount"
|
|
|
|
|
:tableConfiger="pageData.tableConfiger"
|
|
|
|
|
:controlsWidth="pageData.controlsWidth"
|
|
|
|
|
@chooseData="chooseData"
|
|
|
|
|
>
|
|
|
|
|
<template #cjhx>
|
|
|
|
|
<img width="60" height="60" :src="pro" alt="" />
|
|
|
|
|
</template>
|
|
|
|
|
<template #ytp>
|
|
|
|
|
<img width="60" height="60" :src="pro" alt="" />
|
|
|
|
|
</template>
|
|
|
|
|
<template #controls="{ row }">
|
|
|
|
|
<el-link size="small" type="success" @click="addEdit('edit', row)" >研判确认</el-link >
|
|
|
|
|
<el-link size="small" type="primary">查看</el-link>
|
|
|
|
|
<el-link size="small" type="danger" @click="deleteRow(row)">删除</el-link>
|
|
|
|
|
</template>
|
|
|
|
|
</MyTable>
|
2025-04-17 14:09:09 +08:00
|
|
|
|
</div>
|
2025-07-03 17:47:01 +08:00
|
|
|
|
<div style="background:#fff" class="mt10 pl10 pr10 pb10 pt10" >
|
2025-07-03 21:15:39 +08:00
|
|
|
|
<div class="flex align-center">
|
|
|
|
|
<div class="title mr20">人员信息</div>
|
|
|
|
|
<div class="mb13">
|
|
|
|
|
<el-button size="small" v-for="it in btnsList" :key="it" @click="chooseType(it)"> {{ it }} </el-button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2025-07-03 17:47:01 +08:00
|
|
|
|
<MyTable
|
|
|
|
|
:tableData="pageData.tableDataPeople"
|
|
|
|
|
:tableColumn="pageData.tableColumnPeople"
|
|
|
|
|
:tableHeight="pageData.tableHeight1"
|
|
|
|
|
:key="pageData.keyCount"
|
|
|
|
|
:tableConfiger="pageData.tableConfiger1"
|
|
|
|
|
:controlsWidth="pageData.controlsWidth"
|
2025-07-03 21:15:39 +08:00
|
|
|
|
@chooseData="chooseDataBottom"
|
2025-07-03 17:47:01 +08:00
|
|
|
|
>
|
|
|
|
|
<template #ryXm="{ row }">
|
2025-07-16 11:45:07 +08:00
|
|
|
|
<div class="one_text_detail">姓名:{{ row.ryXm }} ;</div>
|
|
|
|
|
<div class="one_text_detail">电话:{{ row.rySjhm }} ;</div>
|
|
|
|
|
<div class="one_text_detail">身份证:{{ row.rySfzh }} </div>
|
2025-07-03 17:47:01 +08:00
|
|
|
|
</template>
|
|
|
|
|
<template #fxDj="{ row }">
|
|
|
|
|
<DictTag :tag="false" :value="row.fxDj" :options="D_GS_RQFJ_FXDJ"/>
|
|
|
|
|
</template>
|
|
|
|
|
<template #fxLb="{ row }">
|
|
|
|
|
<DictTag :tag="false" :value="row.fxLb" :options="D_GS_RQFJ_FXLB"/>
|
|
|
|
|
</template>
|
2025-07-16 11:54:27 +08:00
|
|
|
|
<template #bqList="{ row }">
|
|
|
|
|
<div v-if="row.bqList">
|
|
|
|
|
<el-tag v-for="(it,idx) in row.bqList" :key="idx">{{ it.bqMc }}、</el-tag>
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
2025-07-03 17:47:01 +08:00
|
|
|
|
<template #czfs="{ row }">
|
|
|
|
|
<div>关注:<DictTag :tag="false" style="display: inline;" :value="row.sfGz" :options="D_BZ_SF" /> ;</div>
|
|
|
|
|
<div>布控人员:<DictTag :tag="false" style="display: inline;" :value="row.sfZbkry" :options="D_BZ_SF" /> ;</div>
|
2025-07-04 10:09:13 +08:00
|
|
|
|
<div>重点人员:<DictTag :tag="false" style="display: inline;" :value="row.sfZzdry" :options="D_BZ_SF" />;</div>
|
2025-07-03 17:47:01 +08:00
|
|
|
|
</template>
|
|
|
|
|
</MyTable>
|
|
|
|
|
<Pages
|
|
|
|
|
@changeNo="changeNo"
|
|
|
|
|
@changeSize="changeSize"
|
|
|
|
|
:tableHeight="pageData.tableHeight1"
|
|
|
|
|
:pageConfiger="{ ...pageData.pageConfiger, total: pageData.total }"
|
|
|
|
|
/>
|
2025-04-17 14:09:09 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2025-07-03 17:47:01 +08:00
|
|
|
|
<div class="right">
|
|
|
|
|
<div class="title">轨迹信息</div>
|
2025-07-16 11:45:07 +08:00
|
|
|
|
<ul class="cntBox" v-loading="modelLoading">
|
2025-07-03 17:47:01 +08:00
|
|
|
|
<li class="step" v-for="(item, index) in stepList" :key="index">
|
2025-07-16 11:45:07 +08:00
|
|
|
|
<div style="color: #000;">{{ item.yjFssj }}</div>
|
2025-07-03 17:47:01 +08:00
|
|
|
|
<div class="desc">
|
2025-07-16 11:45:07 +08:00
|
|
|
|
<div class="one_text_detail mb5">事由:{{ item.yjNr }}</div>
|
|
|
|
|
<div class="one_text_detail mb5">数据来源:{{ item.yjGzymc }}</div>
|
|
|
|
|
<div class="one_text_detail">所在地址:{{ item.yjDz }}</div>
|
2025-07-03 17:47:01 +08:00
|
|
|
|
</div>
|
|
|
|
|
</li>
|
2025-07-16 11:45:07 +08:00
|
|
|
|
<MOSTY.Empty :show="!modelLoading && stepList.length <= 0"></MOSTY.Empty>
|
2025-07-03 17:47:01 +08:00
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
2025-04-17 14:09:09 +08:00
|
|
|
|
</div>
|
2025-07-16 11:10:37 +08:00
|
|
|
|
<!-- 弹窗 -->
|
2025-07-16 11:45:07 +08:00
|
|
|
|
<Model v-model="isShow" :type="chooselx" :chooseList="chooseList" :ids="ids" @change="getList" :dic="{D_BZ_SF,D_GS_ZDRFJ_SPZT}"></Model>
|
2025-07-16 11:03:44 +08:00
|
|
|
|
|
2025-04-17 14:09:09 +08:00
|
|
|
|
</template>
|
|
|
|
|
<script setup>
|
2025-07-16 11:45:07 +08:00
|
|
|
|
import * as MOSTY from "@/components/MyComponents/index";
|
2025-07-16 11:10:37 +08:00
|
|
|
|
import { ElMessage } from "element-plus";
|
2025-07-03 21:15:39 +08:00
|
|
|
|
import Model from "./model.vue";
|
2025-07-03 17:47:01 +08:00
|
|
|
|
import { qcckGet } from "@/api/qcckApi.js";
|
|
|
|
|
import { ref, reactive, onMounted, getCurrentInstance } from "vue";
|
2025-06-17 20:04:43 +08:00
|
|
|
|
import MyTable from "@/components/aboutTable/MyTable.vue";
|
|
|
|
|
import Pages from "@/components/aboutTable/Pages.vue";
|
2025-07-03 17:47:01 +08:00
|
|
|
|
import { qcckPost } from "@/api/qcckApi.js";
|
2025-06-17 20:04:43 +08:00
|
|
|
|
const { proxy } = getCurrentInstance();
|
2025-07-16 11:45:07 +08:00
|
|
|
|
const {D_GS_ZDRFJ_SPZT,D_BZ_SF, D_GS_RQFJ_FXDJ, D_GS_RQFJ_FXLB } = proxy.$dict('D_GS_ZDRFJ_SPZT',"D_BZ_SF","D_GS_RQFJ_FXDJ","D_GS_RQFJ_FXLB"); //获取字典数据
|
2025-07-16 11:10:37 +08:00
|
|
|
|
const btnsList = reactive(['是否重点人','布控','是否关注','移交管控'])
|
2025-07-03 21:15:39 +08:00
|
|
|
|
const chooselx = ref('')
|
|
|
|
|
const isShow = ref(false)
|
|
|
|
|
const ids = ref([])
|
2025-07-16 11:03:44 +08:00
|
|
|
|
const chooseList = ref([])
|
2025-06-17 20:04:43 +08:00
|
|
|
|
const pageData = reactive({
|
|
|
|
|
tableData: [
|
2025-07-03 17:47:01 +08:00
|
|
|
|
{
|
|
|
|
|
tpzy: "GBJD01",
|
|
|
|
|
dwmc: "工布江达重点人",
|
|
|
|
|
zylyxz: "涉稳",
|
|
|
|
|
cjhx: "系统新增",
|
|
|
|
|
ytp: "低级",
|
|
|
|
|
rxxsd: "2025/05/05"
|
2025-04-25 17:06:47 +08:00
|
|
|
|
}
|
2025-06-17 20:04:43 +08:00
|
|
|
|
],
|
2025-07-03 17:47:01 +08:00
|
|
|
|
tableDataPeople: [],
|
2025-06-17 20:04:43 +08:00
|
|
|
|
keyCount: 0,
|
|
|
|
|
tableConfiger: {
|
|
|
|
|
rowHieght: 61,
|
|
|
|
|
showSelectType: "checkBox",
|
|
|
|
|
loading: false
|
|
|
|
|
},
|
2025-07-03 17:47:01 +08:00
|
|
|
|
tableConfiger1: {
|
2025-06-17 20:04:43 +08:00
|
|
|
|
rowHieght: 61,
|
2025-07-03 21:15:39 +08:00
|
|
|
|
showSelectType: "checkBox",
|
2025-06-17 20:04:43 +08:00
|
|
|
|
loading: false,
|
2025-07-03 17:47:01 +08:00
|
|
|
|
haveControls:false
|
2025-06-17 20:04:43 +08:00
|
|
|
|
},
|
|
|
|
|
total: 0,
|
|
|
|
|
pageConfiger: {
|
|
|
|
|
pageSize: 20,
|
|
|
|
|
pageCurrent: 1
|
|
|
|
|
},
|
2025-07-03 17:47:01 +08:00
|
|
|
|
controlsWidth: 220,
|
2025-06-17 20:04:43 +08:00
|
|
|
|
tableColumn: [
|
2025-07-03 17:47:01 +08:00
|
|
|
|
{ label: "图片资源", prop: "tpzy" },
|
|
|
|
|
{ label: "单位名称", prop: "dwmc" },
|
|
|
|
|
{ label: "资源来源详址", prop: "zylyxz" },
|
|
|
|
|
{ label: "采集画像", prop: "cjhx", showSolt: true },
|
|
|
|
|
{ label: "原图片", prop: "ytp", showSolt: true },
|
|
|
|
|
{ label: "人像相似度", prop: "rxxsd" }
|
2025-06-17 20:04:43 +08:00
|
|
|
|
],
|
2025-07-03 17:47:01 +08:00
|
|
|
|
tableColumnPeople: [
|
|
|
|
|
{ label: "姓名", prop: "ryXm",showOverflowTooltip:true ,showSolt: true},
|
|
|
|
|
{ label: "户籍地址", prop: "ryHjdz" ,showOverflowTooltip:true},
|
|
|
|
|
{ label: "护照号码", prop: "ryHzhm" ,showOverflowTooltip:true},
|
|
|
|
|
{ label: "现住地址", prop: "ryXzdz" ,showOverflowTooltip:true},
|
|
|
|
|
{ label: "附件照片", prop: "ryFjZp" ,showOverflowTooltip:true},
|
|
|
|
|
{ label: "管辖单位", prop: "gxDwDm" ,showOverflowTooltip:true},
|
|
|
|
|
{ label: "责任部门", prop: "ssbm",showOverflowTooltip:true},
|
2025-07-16 11:54:27 +08:00
|
|
|
|
{ label: "标签", prop: "bqList",showOverflowTooltip:true,showSolt: true},
|
2025-07-16 11:45:07 +08:00
|
|
|
|
{ label: "风险积分", prop: "fxjf",showOverflowTooltip:true},
|
2025-07-03 17:47:01 +08:00
|
|
|
|
{ label: "风险等级", prop: "fxDj",showOverflowTooltip:true, showSolt: true },
|
|
|
|
|
{ label: "风险类别", prop: "fxLb",showOverflowTooltip:true, showSolt: true },
|
|
|
|
|
{ label: "处置方式", prop: "czfs",showOverflowTooltip:true, showSolt: true },
|
2025-06-17 20:04:43 +08:00
|
|
|
|
]
|
|
|
|
|
});
|
2025-07-16 11:45:07 +08:00
|
|
|
|
const modelLoading = ref(false)
|
|
|
|
|
const stepList = ref([]);
|
2025-04-17 14:09:09 +08:00
|
|
|
|
|
2025-07-03 17:47:01 +08:00
|
|
|
|
|
2025-06-17 20:04:43 +08:00
|
|
|
|
const changeNo = (val) => {
|
|
|
|
|
pageData.pageConfiger.pageCurrent = val;
|
2025-07-03 17:47:01 +08:00
|
|
|
|
getList();
|
2025-06-17 20:04:43 +08:00
|
|
|
|
};
|
|
|
|
|
const changeSize = (val) => {
|
|
|
|
|
pageData.pageConfiger.pageSize = val;
|
2025-07-03 17:47:01 +08:00
|
|
|
|
getList();
|
2025-06-17 20:04:43 +08:00
|
|
|
|
};
|
2025-07-03 17:47:01 +08:00
|
|
|
|
|
|
|
|
|
|
2025-06-17 20:04:43 +08:00
|
|
|
|
//获取模型识别列表
|
2025-07-03 17:47:01 +08:00
|
|
|
|
const getList = () => {
|
2025-06-17 20:04:43 +08:00
|
|
|
|
let data = { ...pageData.pageConfiger };
|
2025-07-03 17:47:01 +08:00
|
|
|
|
qcckGet(data, "/mosty-gsxt/tbGsxtRqfjRy/selectPage").then((res) => {
|
|
|
|
|
pageData.tableDataPeople = res.records || [];
|
|
|
|
|
pageData.total = res.total;
|
2025-07-16 11:45:07 +08:00
|
|
|
|
if(pageData.tableDataPeople.length > 0) chooseDataBottom(pageData.tableDataPeople[0])
|
2025-07-03 17:47:01 +08:00
|
|
|
|
})
|
2025-06-17 20:04:43 +08:00
|
|
|
|
};
|
2025-04-25 17:06:47 +08:00
|
|
|
|
|
2025-07-03 17:47:01 +08:00
|
|
|
|
// 表格高度计算
|
2025-06-17 20:04:43 +08:00
|
|
|
|
const tabHeightFn = () => {
|
2025-07-03 17:47:01 +08:00
|
|
|
|
pageData.tableHeight =( window.innerHeight - 280 ) / 2;
|
|
|
|
|
pageData.tableHeight1 =(( window.innerHeight - 280 ) / 2 )- 50;
|
2025-06-17 20:04:43 +08:00
|
|
|
|
window.onresize = function () {
|
2025-04-25 17:06:47 +08:00
|
|
|
|
tabHeightFn();
|
2025-06-17 20:04:43 +08:00
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
2025-07-03 21:15:39 +08:00
|
|
|
|
// 选择数据
|
|
|
|
|
const chooseDataBottom = (val) =>{
|
2025-07-16 11:03:44 +08:00
|
|
|
|
if(Array.isArray(val)) {
|
|
|
|
|
ids.value = val.map(item=>item.id);
|
|
|
|
|
chooseList.value = val;
|
2025-07-16 11:45:07 +08:00
|
|
|
|
}else{
|
|
|
|
|
if(!val.rySfzh) {
|
|
|
|
|
ElMessage.warning("该人员没有轨迹");
|
|
|
|
|
}else{
|
|
|
|
|
stepList.value = [];
|
|
|
|
|
modelLoading.value = true;
|
|
|
|
|
let params = { pageSize:1000, pageNum:1 ,yjRysfzh:val.rySfzh};
|
|
|
|
|
qcckPost(params,'/mosty-jmxf/tbYjxx/getPageList').then(res=>{
|
|
|
|
|
stepList.value = res.records || [];
|
|
|
|
|
modelLoading.value = false;
|
|
|
|
|
}).catch(()=>{
|
|
|
|
|
modelLoading.value = false;
|
|
|
|
|
})
|
|
|
|
|
}
|
2025-07-16 11:03:44 +08:00
|
|
|
|
}
|
2025-07-03 21:15:39 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const chooseType = (val)=>{
|
|
|
|
|
chooselx.value = val;
|
2025-07-16 11:03:44 +08:00
|
|
|
|
if(ids.value.length == 0) return ElMessage.warning("请选择对应的数据");
|
2025-07-03 21:15:39 +08:00
|
|
|
|
switch(val){
|
|
|
|
|
case '布控':
|
2025-07-16 11:03:44 +08:00
|
|
|
|
proxy.$confirm("确定要布控", "警告", {type: "warning"}).then(() => {
|
|
|
|
|
let params = { ids:ids.value, sfbk:'1'}
|
|
|
|
|
qcckPost(params,'/mosty-gsxt/tbGsxtRqfjRy/updateBySfbkpz').then(res=>{
|
|
|
|
|
ElMessage.success("布控成功");
|
|
|
|
|
getList()
|
2025-07-03 21:15:39 +08:00
|
|
|
|
})
|
2025-07-16 11:03:44 +08:00
|
|
|
|
}).catch(() => {});
|
2025-07-03 21:15:39 +08:00
|
|
|
|
break;
|
2025-07-16 11:10:37 +08:00
|
|
|
|
case '是否重点人':
|
2025-07-03 21:15:39 +08:00
|
|
|
|
case '是否关注':
|
|
|
|
|
case '移交管控':
|
2025-07-04 10:09:13 +08:00
|
|
|
|
isShow.value = true;
|
2025-07-03 21:15:39 +08:00
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-07-16 11:10:37 +08:00
|
|
|
|
|
2025-07-16 11:03:44 +08:00
|
|
|
|
|
2025-07-03 17:47:01 +08:00
|
|
|
|
onMounted(()=>{
|
2025-06-17 20:04:43 +08:00
|
|
|
|
tabHeightFn();
|
2025-07-03 17:47:01 +08:00
|
|
|
|
getList()
|
|
|
|
|
})
|
2025-04-17 14:09:09 +08:00
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
2025-06-17 20:04:43 +08:00
|
|
|
|
.statistical-analysis {
|
|
|
|
|
width: 100%;
|
|
|
|
|
height: 100%;
|
2025-07-03 17:47:01 +08:00
|
|
|
|
padding: 10px 10px 0 10px ;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
.title {
|
|
|
|
|
font-size: 20px;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
margin-bottom: 20px;
|
|
|
|
|
position: relative;
|
|
|
|
|
color: #333;
|
|
|
|
|
&::after {
|
|
|
|
|
content: "";
|
|
|
|
|
position: absolute;
|
|
|
|
|
bottom: -4px;
|
|
|
|
|
left: 0;
|
|
|
|
|
width: 78px;
|
|
|
|
|
height: 4px;
|
|
|
|
|
background: linear-gradient( 90deg, #3597f9c4 0%, rgba(53, 150, 249, 0) 100%);
|
|
|
|
|
border-radius: 4px 4px 4px 4px;
|
|
|
|
|
}
|
2025-06-17 20:04:43 +08:00
|
|
|
|
}
|
2025-07-03 17:47:01 +08:00
|
|
|
|
.left {
|
|
|
|
|
width: calc(100% - 410px);
|
|
|
|
|
height: 100%;
|
2025-06-17 20:04:43 +08:00
|
|
|
|
float: left;
|
2025-07-03 17:47:01 +08:00
|
|
|
|
}
|
|
|
|
|
.right {
|
|
|
|
|
width: 400px;
|
2025-04-17 14:09:09 +08:00
|
|
|
|
height: 100%;
|
2025-07-03 17:47:01 +08:00
|
|
|
|
padding: 10px 10px 0 10px;
|
2025-06-17 20:04:43 +08:00
|
|
|
|
margin-left: 10px;
|
2025-07-03 17:47:01 +08:00
|
|
|
|
float: right;
|
2025-06-17 20:04:43 +08:00
|
|
|
|
box-sizing: border-box;
|
2025-07-03 17:47:01 +08:00
|
|
|
|
background: #fff;
|
|
|
|
|
.cntBox{
|
|
|
|
|
height: calc(100% - 60px);
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
.step {
|
|
|
|
|
padding-left: 20px;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
position: relative;
|
|
|
|
|
border-left: 3px dashed #0072ff;
|
|
|
|
|
margin-left: 10px;
|
|
|
|
|
&::before{
|
|
|
|
|
position: absolute;
|
|
|
|
|
content: '';
|
|
|
|
|
width: 20px;
|
|
|
|
|
height: 20px;
|
|
|
|
|
background: #0072ff;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
left: -12px;
|
|
|
|
|
top: 0;
|
|
|
|
|
}
|
|
|
|
|
.desc {
|
|
|
|
|
margin: 5px;
|
|
|
|
|
color: #929090;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.form-row {
|
|
|
|
|
display: flex;
|
|
|
|
|
|
|
|
|
|
.el-form-item {
|
|
|
|
|
flex: 1;
|
2025-04-17 14:09:09 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2025-07-03 17:47:01 +08:00
|
|
|
|
|
|
|
|
|
.upload-group {
|
|
|
|
|
display: flex;
|
|
|
|
|
// gap: 20px;
|
|
|
|
|
|
|
|
|
|
.el-form-item {
|
|
|
|
|
flex: 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.unit {
|
|
|
|
|
margin-left: 5px;
|
|
|
|
|
}
|
|
|
|
|
::v-deep .el-input__inner {
|
|
|
|
|
height: 36px !important;
|
|
|
|
|
line-height: 36px !important;
|
|
|
|
|
border-radius: 0;
|
|
|
|
|
color: #777575;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.el-form-item--default {
|
|
|
|
|
margin-bottom: 0px;
|
2025-06-17 20:04:43 +08:00
|
|
|
|
}
|
2025-04-17 14:09:09 +08:00
|
|
|
|
</style>
|