Files
sgxt_web/src/views/backOfficeSystem/ExcavationResearch/ZdryFjyp/index.vue

406 lines
13 KiB
Vue
Raw Normal View History

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 }">
<div>姓名{{ row.ryXm }} &nbsp;</div>
<div>电话{{ row.rySjhm }} &nbsp;</div>
<div>身份证{{ row.rySfzh }} </div>
</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>
<template #czfs="{ row }">
<div>关注<DictTag :tag="false" style="display: inline;" :value="row.sfGz" :options="D_BZ_SF" /> &nbsp;</div>
<div>布控人员<DictTag :tag="false" style="display: inline;" :value="row.sfZbkry" :options="D_BZ_SF" />&nbsp;</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>
<ul class="cntBox">
<li class="step" v-for="(item, index) in stepList" :key="index">
<div style="color: #000;">{{ item.time }}</div>
<div class="desc">
<div class="ellipsis mb5">事由{{ item.sy }}</div>
<div class="ellipsis mb5">数据来源{{ item.sjly }}</div>
<div class="ellipsis">所在地址{{ item.szdz }}</div>
</div>
</li>
</ul>
</div>
2025-07-03 21:15:39 +08:00
<Model v-model="isShow" :type="chooselx" :ids="ids" @change="getList" :dic="{D_BZ_SF}"></Model>
2025-04-17 14:09:09 +08:00
</div>
</template>
<script setup>
2025-07-03 21:15:39 +08:00
import { ElMessage,ElMessageBox } from "element-plus";
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-03 21:15:39 +08:00
const {D_BZ_SF, D_GS_RQFJ_FXDJ, D_GS_RQFJ_FXLB } = proxy.$dict("D_BZ_SF","D_GS_RQFJ_FXDJ","D_GS_RQFJ_FXLB"); //获取字典数据
const btnsList = reactive(['布控','是否关注','移交管控'])
const chooselx = ref('')
const isShow = ref(false)
const ids = ref([])
2025-06-17 20:04:43 +08:00
const pageData = reactive({
tableData: [
2025-04-25 17:06:47 +08:00
{
2025-07-03 17:47:01 +08:00
tpzy: "GBJD01",
dwmc: "工布江达重点人",
zylyxz: "涉稳",
cjhx: "系统新增",
ytp: "低级",
rxxsd: "2025/05/05"
},
{
tpzy: "GBJD01",
dwmc: "工布江达重点人",
zylyxz: "涉稳",
cjhx: "系统新增",
ytp: "低级",
rxxsd: "2025/05/05"
},
{
tpzy: "GBJD01",
dwmc: "工布江达重点人",
zylyxz: "涉稳",
cjhx: "系统新增",
ytp: "低级",
rxxsd: "2025/05/05"
},
{
tpzy: "GBJD01",
dwmc: "工布江达重点人",
zylyxz: "涉稳",
cjhx: "系统新增",
ytp: "低级",
rxxsd: "2025/05/05"
},
{
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},
{ 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-03 17:47:01 +08:00
const stepList = ref([
2025-06-17 20:04:43 +08:00
{
2025-07-03 17:47:01 +08:00
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
},
{
time: "2025-4-25 16:40",
sy: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
sjly: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高",
szdz: "乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高铁到站乘坐高"
2025-06-17 20:04:43 +08:00
}
]);
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-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) =>{
if(Array.isArray(val)) ids.value = val.map(item=>item.id);
}
const chooseType = (val)=>{
chooselx.value = val;
switch(val){
case '布控':
if(ids.value.length == 0) return ElMessage.warning("请选择对应的数据");
ElMessageBox.confirm('是否确定布控?','Warning',{ confirmButtonText: 'OK', cancelButtonText: 'Cancel', type: 'warning' }).then(() => {
let params = { ids:ids.value, sfbk:'1' }
qcckPost(params,'/mosty-gsxt/tbGsxtRqfjRy/updateBySfbkpz').then(res=>{
ElMessage.success("成功");
getList()
})
}).catch(() => {
ElMessage({ type: 'info', message: '取消' })
})
break;
case '是否关注':
case '移交管控':
2025-07-04 10:09:13 +08:00
if(ids.value.length == 0) return ElMessage.warning("请选择对应的数据");
isShow.value = true;
2025-07-03 21:15:39 +08:00
break;
}
}
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>