更新大屏跳转路由

This commit is contained in:
zy_zr 2025-04-24 11:54:38 +08:00
parent 7d0498eee3
commit 30e85cfdd3
6 changed files with 140 additions and 105 deletions

View File

@ -111,16 +111,18 @@
} }
.leftBtn-yjbtn{ .leftBtn-yjbtn{
position: absolute; position: absolute;
left: 430px; left: 360px;
top: 20px; top: 20px;
width: 155px; .leftBtn-item{
height: 38px; width: 155px;
line-height: 38px; height: 38px;
text-align: center; line-height: 38px;
background: url("~@/assets/images/home_btns.png") no-repeat center center; text-align: center;
background-size: 100% 100%; background: url("~@/assets/images/home_btns.png") no-repeat center center;
font-size: 16px; background-size: 100% 100%;
font-family: "YSBTH"; font-size: 16px;
font-family: "YSBTH";
}
.btms{ .btms{
@include textColor(#a1d6ff, #ffffff); @include textColor(#a1d6ff, #ffffff);
} }

View File

@ -0,0 +1,60 @@
<template>
<div class="deepIn-box">
<el-dialog v-model="modelValue" custom-class="zdy_sdyp_dialog" width="100%" :modal="false" :show-close="false">
<template #title>
<div class="topHead flex just-between align-center">
<span class="f30">深度研判</span>
<el-icon class="pointer" @click="handleClose" size="30px"><Close/></el-icon>
</div>
<div class="deepIn-cnt"></div>
</template>
</el-dialog>
</div>
</template>
<script setup>
import { ref,defineEmits } from "vue";
const emit = defineEmits(['update:modelValue']);
const props = defineProps({
modelValue: {
type: Boolean,
default: false,
}
});
//
const handleClose = () => {
emit('update:modelValue', false);
};
</script>
<style lang="scss" scoped>
.deepIn-box {
width: 100%;
height: 100vh;
.topHead{
color: #000;
height: 60px;
background: pink;
padding: 10px;
box-sizing: border-box;
}
.deepIn-cnt{
height: calc(100vh - 60px);
background: #000;
overflow: hidden;
overflow-y: auto;
}
::v-deep .el-dialog{
margin: 0;
}
::v-deep .el-dialog__body{
padding: 0;
}
::v-deep .el-dialog__header{
padding: 0;
}
}
</style>
<style lang="scss">
.zdy_sdyp_dialog{}
</style>

View File

@ -54,53 +54,8 @@
<div class="tableCnt mb10 pl10 pr10"> <div class="tableCnt mb10 pl10 pr10">
<PageTitle title="模型智能识别/LP解析结果" style="color:#333;"></PageTitle> <PageTitle title="模型智能识别/LP解析结果" style="color:#333;"></PageTitle>
<div ref="searchBox" class="mb8"> <div ref="searchBox" class="mb8">
<el-button type="primary" size="small" @click="addEdit('add', '')"> <el-button v-for="(it,idx) in btns" :key="idx" :type="it.type" :icon="it.icon" size="small" @click="importData">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon> {{ it.label }}
<span style="vertical-align: middle">新增</span>
</el-button>
<el-button type="primary" size="small" @click="importData">
<el-icon style="vertical-align: middle"><Upload /></el-icon>
<span style="vertical-align: middle">一件布控</span>
</el-button>
<el-button type="primary" size="small" @click="importData">
<el-icon style="vertical-align: middle"><Upload /></el-icon>
<span style="vertical-align: middle">级别变更</span>
</el-button>
<el-button type="primary" size="small" @click="importData">
<el-icon style="vertical-align: middle"><Upload /></el-icon>
<span style="vertical-align: middle">警种变更</span>
</el-button>
<el-button type="primary" size="small" @click="importData">
<el-icon style="vertical-align: middle"><Upload /></el-icon>
<span style="vertical-align: middle">指定分配</span>
</el-button>
<el-button type="primary" size="small" @click="importData">
<el-icon style="vertical-align: middle"><Upload /></el-icon>
<span style="vertical-align: middle">添加标签</span>
</el-button>
<el-button type="primary" size="small" @click="importData">
<el-icon style="vertical-align: middle"><Upload /></el-icon>
<span style="vertical-align: middle">协控申请</span>
</el-button>
<el-button type="primary" size="small" @click="importData">
<el-icon style="vertical-align: middle"><Upload /></el-icon>
<span style="vertical-align: middle">撤控申请</span>
</el-button>
<el-button type="primary" size="small" @click="importData">
<el-icon style="vertical-align: middle"><Upload /></el-icon>
<span style="vertical-align: middle">移交管控</span>
</el-button>
<el-button type="primary" size="small" @click="importData">
<el-icon style="vertical-align: middle"><Upload /></el-icon>
<span style="vertical-align: middle">批量导入</span>
</el-button>
<el-button type="primary" size="small" @click="importData">
<el-icon style="vertical-align: middle"><Upload /></el-icon>
<span style="vertical-align: middle">导出</span>
</el-button>
<el-button type="danger" size="small" @click="exportData">
<el-icon style="vertical-align: middle"><Delete /></el-icon>
<span style="vertical-align: middle">批量删除</span>
</el-button> </el-button>
</div> </div>
<div> <div>
@ -110,12 +65,14 @@
:tableHeight="pageData.tableHeight2" :tableHeight="pageData.tableHeight2"
:key="pageData.keyCount" :key="pageData.keyCount"
:tableConfiger="pageData.tableConfiger2" :tableConfiger="pageData.tableConfiger2"
:controlsWidth="pageData.controlsWidth" :controlsWidth="pageData.controlsWidth2"
@chooseData="chooseData"> @chooseData="chooseData">
<!-- 操作 --> <!-- 操作 -->
<template #controls="{ row }"> <template #controls="{ row }">
<el-link size="small" type="danger" @click="deleteRow(row)">删除</el-link> <el-link size="small" type="primary" @click="handleDeepIn(row.id)">深度研判</el-link>
<el-link size="small" type="primary" @click="viewDetails(row)">查看</el-link> <el-link size="small" type="primary" @click="viewDetails(row)">查看</el-link>
<el-link size="small" type="primary" @click="viewDetails(row)">修改</el-link>
<el-link size="small" type="danger" @click="deleteRow(row)">删除</el-link>
</template> </template>
</MyTable> </MyTable>
<Pages <Pages
@ -131,9 +88,14 @@
</div> </div>
</div> </div>
</div> </div>
<teleport to="#app" v-if="showScreen">
<!-- 深度研判 -->
<DeepIn v-model="showScreen"></DeepIn>
</teleport>
</template> </template>
<script setup> <script setup>
import DeepIn from './components/deepIn.vue'
import CheckBox from "@/components/checkBox/index.vue"; import CheckBox from "@/components/checkBox/index.vue";
import PageTitle from "@/components/aboutTable/PageTitle.vue"; import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue"; import MyTable from "@/components/aboutTable/MyTable.vue";
@ -141,8 +103,7 @@ import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue"; import Search from "@/components/aboutTable/Search.vue";
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js"; import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue"; import { reactive, ref, onMounted, getCurrentInstance } from "vue";
import { Delete } from "@element-plus/icons"; const showScreen = ref(false);
import { fa } from "element-plus/es/locale.mjs";
const searchConfiger = ref([ const searchConfiger = ref([
{ label: "管辖部门", prop: 'department', placeholder: "请选择管辖部门", showType: "select" }, { label: "管辖部门", prop: 'department', placeholder: "请选择管辖部门", showType: "select" },
{ label: "是否关注", prop: 'sfgz', showType: "defaultSlot" }, { label: "是否关注", prop: 'sfgz', showType: "defaultSlot" },
@ -151,13 +112,14 @@ const checkData = reactive({
list: ["是", "否"], list: ["是", "否"],
hasChoose: ["是", "否"] hasChoose: ["是", "否"]
}); });
const searchBox = ref();
const pageData = reactive({ const pageData = reactive({
tableData: [ tableData: [
{nrbh:'测试内容',lx:'1',nr:'测试内容'}, {nrbh:'测试内容',lx:'1',nr:'测试内容'},
{nrbh:'测试内容',lx:'1',nr:'测试内容'}, {nrbh:'测试内容',lx:'1',nr:'测试内容'},
], ],
tableData2: [], tableData2: [
{pm:'1',lx:'1',zp:'xx',xm:'张三',sfzh:'12345619900101001X',jzdz:'浙江省杭州市西湖区',rylb:'xx',bkyy:'xx',fxdj:'xx',fxjf:'xx',mxbq:'xx',sfgz:'是'},
],
keyCount: 0, keyCount: 0,
tableConfiger: { tableConfiger: {
rowHieght: 61, rowHieght: 61,
@ -177,26 +139,42 @@ const pageData = reactive({
pageCurrent: 1 pageCurrent: 1
}, },
controlsWidth: 120, controlsWidth: 120,
controlsWidth2:220,
tableColumn: [ tableColumn: [
{ label: "内容编号", prop: "nrbh" }, { label: "内容编号", prop: "nrbh" },
{ label: "类型", prop: "lx" }, { label: "类型", prop: "lx" },
{ label: "内容", prop: "nr" }, { label: "内容", prop: "nr" },
], ],
tableColumn2: [ tableColumn2: [
{ label: "积分排名", prop: "nrbh" }, { label: "积分排名", prop: "pm" },
{ label: "照片", prop: "lx" }, { label: "照片", prop: "zp" },
{ label: "姓名", prop: "nr" }, { label: "姓名", prop: "xm" },
{ label: "身份证号", prop: "nr" }, { label: "身份证号", prop: "sfzh" ,showOverflowTooltip:true},
{ label: "居住地址", prop: "nr" }, { label: "居住地址", prop: "jzdz" ,showOverflowTooltip:true},
{ label: "人员类别", prop: "nr" }, { label: "人员类别", prop: "rylb" ,showOverflowTooltip:true},
{ label: "布控原因", prop: "nr" }, { label: "布控原因", prop: "bkyy" ,showOverflowTooltip:true},
{ label: "风险等级", prop: "nr" }, { label: "风险等级", prop: "fxdj" ,showOverflowTooltip:true},
{ label: "风险积分", prop: "nr" }, { label: "风险积分", prop: "fxjf" ,showOverflowTooltip:true},
{ label: "模型标签", prop: "nr" }, { label: "模型标签", prop: "mxbq" ,showOverflowTooltip:true},
{ label: "是否关注", prop: "nr" }, { label: "是否关注", prop: "sfgz" ,showOverflowTooltip:true},
], ],
}) })
const btns = reactive([
{ label: "新增", type: "primary", icon: "CirclePlus" },
{ label: "一件布控", type: "primary"},
{ label: "级别变更", type: "primary"},
{ label: "警种变更", type: "primary"},
{ label: "指定分配", type: "primary"},
{ label: "添加标签", type: "primary"},
{ label: "协控申请", type: "primary"},
{ label: "撤控申请", type: "primary"},
{ label: "移交管控", type: "primary"},
{ label: "批量导入", type: "primary"},
{ label: "导出", type: "primary"},
{ label: "批量删除", type: "danger", icon: "Delete"},
])
const searchBox = ref();
// //
const treeData = ref([ const treeData = ref([
@ -210,25 +188,21 @@ const treeData = ref([
] ]
} }
]); ]);
const defaultProps = { const defaultProps = {
children: "children", children: "children",
label: "label" label: "label"
}; };
// //
const handleNodeClick = (data) => { const handleNodeClick = (data) => {
console.log(data); console.log(data);
}; };
const handleDateChange = () => { //
// const handleDeepIn = (id) => {
showScreen.value = true;
}; };
const handleExport = () => {
//
};
const tabHeightFn = () => { const tabHeightFn = () => {
pageData.tableHeight2 = window.innerHeight - searchBox.value.offsetHeight - 690; pageData.tableHeight2 = window.innerHeight - searchBox.value.offsetHeight - 690;

View File

@ -1,27 +1,23 @@
<template> <template>
<div class="personCard relative flex mb10 pointer"> <div class="personCard relative flex mb10 pointer">
<div class="cxbq absolute">已完成</div> <div class="cxbq f14 lh50 tc absolute">已完成</div>
<div class="avatarBox relative"> <div class="avatarBox relative">
<div class="marks f12 absolute" :class="changeBg(props.item.yjjb)"> <div class="marks f12 absolute" :class="changeBg(props.item.yjjb)">
处置 处置
</div> </div>
<div><img width="80" height="120" :src="pro" alt=""></div> <div><img width="76" height="96" :src="pro" alt=""></div>
<span class="smallbtn">全息档案</span> <span class="smallbtn">全息档案</span>
</div> </div>
<div class="infoBox"> <div class="infoBox">
<div class="basicInfo"> <div class="basicInfo mb10">
<span class="name">{{ props.item.name }}</span> <span class="name f16 mr15">{{ props.item.name }}</span>
<span class="idCard">{{ props.item.idCard }}</span> <span class="idCard f14">{{ props.item.idCard }}</span>
<span class="bqbox">{{ props.item.yjbq }}</span> <span class="bqbox f12 ml10">{{ props.item.yjbq }}</span>
</div> </div>
<div class="detailInfo"> <div class="detailInfo">
<div class="infoItem"> <div class="infoItem">
<span class="label">性别</span> <span class="label">性别<span class="value">{{ props.item.gender }}</span></span>
<span class="value">{{ props.item.gender }}</span> <span class="label ml20">年龄<span class="value">{{ props.item.age }} </span></span>
</div>
<div class="infoItem">
<span class="label">年龄</span>
<span class="value">{{ props.item.age }}</span>
</div> </div>
<div class="infoItem"> <div class="infoItem">
<span class="label">住址</span> <span class="label">住址</span>
@ -83,10 +79,6 @@ const changeBg = (type) => {
top: 5px; top: 5px;
width: 50px; width: 50px;
height: 50px; height: 50px;
text-align: center;
line-height: 50px;
font-size: 14px;
box-sizing: border-box;
border-radius: 50%; border-radius: 50%;
background: rgba(0, 255, 255, 0.3); background: rgba(0, 255, 255, 0.3);
border: 1px solid #00ffff; border: 1px solid #00ffff;
@ -120,27 +112,21 @@ const changeBg = (type) => {
} }
} }
.bqbox { .bqbox {
font-size: 12px;
color: #ff0000; color: #ff0000;
padding: 4px 6px; padding: 4px 6px;
background: rgba(255, 0, 0, 0.3); background: rgba(255, 0, 0, 0.3);
border-radius: 1px 1px 1px 1px; border-radius: 1px 1px 1px 1px;
border: 1px solid #ff0000; border: 1px solid #ff0000;
border-radius: 4px; border-radius: 4px;
margin-left: 10px;
} }
.infoBox { .infoBox {
flex: 1; flex: 1;
.basicInfo { .basicInfo {
margin-bottom: 10px;
.name { .name {
font-size: 16px;
color: #fff; color: #fff;
margin-right: 15px;
} }
.idCard { .idCard {
color: #89afcf; color: #89afcf;
font-size: 14px;
} }
} }
.detailInfo { .detailInfo {
@ -151,6 +137,9 @@ const changeBg = (type) => {
.label { .label {
color: #fff; color: #fff;
} }
.value {
color: #89afcf;
}
} }
} }
} }

View File

@ -132,6 +132,7 @@ const personList = ref([
address: "xxxx上城区", address: "xxxx上城区",
yjjb: "10", yjjb: "10",
yjbq: "吸贩毒", yjbq: "吸贩毒",
age:20,
yy: "2023-01-01 12:00:00" yy: "2023-01-01 12:00:00"
}, },
{ {
@ -141,6 +142,7 @@ const personList = ref([
sspcs: "xxx上城区派出所", sspcs: "xxx上城区派出所",
address: "xxxx上城区", address: "xxxx上城区",
yjjb: "40", yjjb: "40",
age:20,
yjbq: "吸贩毒", yjbq: "吸贩毒",
yy: "2023-01-01 12:00:00" yy: "2023-01-01 12:00:00"
}, },
@ -148,6 +150,7 @@ const personList = ref([
name: "张三", name: "张三",
idCard: "330102199001011234", idCard: "330102199001011234",
gender: "男", gender: "男",
age:20,
sspcs: "xxx上城区派出所", sspcs: "xxx上城区派出所",
address: "xxxx上城区", address: "xxxx上城区",
yjjb: "20", yjjb: "20",
@ -158,6 +161,7 @@ const personList = ref([
name: "张三", name: "张三",
idCard: "330102199001011234", idCard: "330102199001011234",
gender: "男", gender: "男",
age:20,
sspcs: "xxx上城区派出所", sspcs: "xxx上城区派出所",
address: "xxxx上城区", address: "xxxx上城区",
yjjb: "30", yjjb: "30",

View File

@ -52,8 +52,11 @@
</ul> </ul>
</el-popover> </el-popover>
<div v-if="!props.type" class="leftBtn-yjbtn" @click.stop="handleBtns('预警布控')" :class="btnsActive == '预警布控' ? 'yjbtnActive' : ''"><span class="btms">预警布控</span></div> <ul class="leftBtn-yjbtn flex">
<li class="leftBtn-item" @click.stop="handleBtns(it)" :class="btnsActive == it ? 'yjbtnActive' : ''" v-for="it in btns.leftBtn" :key="it">
<span class="btms">{{ it }}</span>
</li>
</ul>
<div class="top-center pointer">{{ props.title }}</div> <div class="top-center pointer">{{ props.title }}</div>
<!-- 右边 --> <!-- 右边 -->
<ul class="topBtn topBtn-right" v-if="!props.type"> <ul class="topBtn topBtn-right" v-if="!props.type">
@ -123,7 +126,7 @@ const router = useRouter();
const route = useRoute(); const route = useRoute();
const btns = reactive({ const btns = reactive({
rightBtn: ["四色预警", "重点人群"], rightBtn: ["四色预警", "重点人群"],
leftBtn: ["预警布控"], leftBtn: ["预警布控",'网上会议室'],
moreBtn:['退出登录',] moreBtn:['退出登录',]
}); });
const btnsActive = ref(""); const btnsActive = ref("");
@ -156,6 +159,9 @@ const handleBtns = (val) => {
case "四色预警": case "四色预警":
router.push("/IdentityManage"); router.push("/IdentityManage");
break; break;
case "网上会议室":
router.push("/MeetingRoom");
break;
case "后台": case "后台":
router.push("/editPassword"); router.push("/editPassword");
break; break;