网上会议

This commit is contained in:
wangjie 2025-04-23 17:56:15 +08:00
parent 94f20163f0
commit d027f87351
2 changed files with 723 additions and 391 deletions

View File

@ -85,8 +85,7 @@ export const privateRoutes = [
{
path: "/user/deptAllocationUser/:id",
name: "deptAllocationUser",
component: () =>
import("@/views/backOfficeSystem/systemConfig/department-list/deptAllocationUser"),
component: () => import("@/views/backOfficeSystem/systemConfig/department-list/deptAllocationUser"),
meta: {
title: "管理用户"
}
@ -94,8 +93,7 @@ export const privateRoutes = [
{
path: "/user/allocationUser/:id",
name: "allocationUser",
component: () =>
import("@/views/backOfficeSystem/systemConfig/role-list/allocationUser"),
component: () => import("@/views/backOfficeSystem/systemConfig/role-list/allocationUser"),
meta: {
title: "分配用户"
}
@ -104,35 +102,33 @@ export const privateRoutes = [
{
path: "/user/systemConfig",
name: "systemConfig",
component: () =>
import("@/views/backOfficeSystem/systemConfig/system-config-list/index"),
component: () => import("@/views/backOfficeSystem/systemConfig/system-config-list/index"),
meta: {
title: "系统配置",
icon: "article-ranking"
}
},
}
]
},
}
];
/**
* 公开路由表
*/
export const publicRoutes = [
{
path: "/login",
name:'login',
name: "login",
component: () => import("@/views/login/index")
},
{
path: "/",
name:'home',
path: "/home",
name: "home",
component: () => import("@/views/home/index") //系统登录
},
{
path: "/KeyPopulations",
name:'KeyPopulations',
name: "KeyPopulations",
component: () => import("@/views/KeyPopulations/index") //系统登录
},
{
@ -140,7 +136,6 @@ export const publicRoutes = [
component: layout,
redirect: "/IdentityManage",
children: [
{
path: "/FourColorWarning",
name: "FourColorWarning",
@ -172,8 +167,8 @@ export const publicRoutes = [
title: "标签组合管理",
icon: "article"
}
},
],
}
]
},
{
@ -207,7 +202,7 @@ export const publicRoutes = [
title: "布控审批",
icon: "article"
}
},
}
]
},
{
@ -251,7 +246,8 @@ export const publicRoutes = [
{
path: "/InformationFlow",
name: "InformationFlow",
component: () => import("@/views/backOfficeSystem/ResearchJudgment/InformationFlows/InformationFlow/index"),
component: () =>
import("@/views/backOfficeSystem/ResearchJudgment/InformationFlows/InformationFlow/index"),
meta: {
title: "情报信息流转",
icon: "article"
@ -260,7 +256,8 @@ export const publicRoutes = [
{
path: "/InstructionInformation",
name: "InstructionInformation",
component: () => import("@/views/backOfficeSystem/ResearchJudgment/InformationFlows/InstructionInformation/index"),
component: () =>
import("@/views/backOfficeSystem/ResearchJudgment/InformationFlows/InstructionInformation/index"),
meta: {
title: "指令信息",
icon: "article"
@ -269,12 +266,13 @@ export const publicRoutes = [
{
path: "/StatisticalAnalysis",
name: "StatisticalAnalysis",
component: () => import("@/views/backOfficeSystem/ResearchJudgment/InformationFlows/StatisticalAnalysis/index"),
component: () =>
import("@/views/backOfficeSystem/ResearchJudgment/InformationFlows/StatisticalAnalysis/index"),
meta: {
title: "情报统计分析",
icon: "article"
}
},
}
]
},
{
@ -285,8 +283,8 @@ export const publicRoutes = [
title: "操作记录",
icon: "article"
}
},
],
}
]
},
{
path: "/HumanIntelligence",
@ -328,8 +326,8 @@ export const publicRoutes = [
title: "社会信息人员建设管理",
icon: "article"
}
},
],
}
]
},
{
path: "/ExcavationResearch",
@ -371,13 +369,12 @@ export const publicRoutes = [
title: "重点人员预警模型",
icon: "article"
}
},
],
}
]
},
//
{
path: "/CivilExplosives",
name: "CivilExplosives",
@ -481,8 +478,8 @@ export const publicRoutes = [
title: "库房管理",
icon: "article"
}
},
],
}
]
},
{
path: "/ThriftTrading",
@ -515,13 +512,22 @@ export const publicRoutes = [
title: "旧货交易业务信息管理",
icon: "article"
}
}
]
},
],
},
]},
{
path: "/",
name: "MeetingRoom",
component: () => import("@/views/backOfficeSystem/MeetingRoom/index"),
meta: {
title: "网上会商室",
icon: "article"
}
}
]
}
];
const router = createRouter({
history: createWebHashHistory(),
routes: publicRoutes
@ -530,7 +536,7 @@ const router = createRouter({
export function resetRouter() {
if (store.getters?.routeReady && store.getters?.userInfo?.permission?.menus) {
const menus = store.getters.userInfo.permission.menus;
menus.forEach((menu) => {
menus.forEach(menu => {
router.removeRoute(menu);
});
}

View File

@ -0,0 +1,326 @@
<template>
<div>
<div class="titleBox">
<PageTitle title="网上会议室" />
</div>
<!-- 搜索 -->
<div ref="searchBox">
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
</div>
<!-- 表格 -->
<div class="tabBox">
<div class="btns">
<el-button type="primary">新增</el-button>
<el-button type="danger">新增</el-button>
</div>
<div class="list noScollLine">
<div class="list-item" v-for="(item, index) in pageData.tableData" :key="`tableData${index}`" @onmouseover="">
<div class="top">
<div class="title ellipsis">{{ item.title }}</div>
<div class="info h36 ellipsis2">会商内容{{ item.hynr }}</div>
<div class="info h36 ellipsis2">关联线索{{ item.lxxs }}</div>
<div class="info h36 ellipsis2">涉及人员{{ item.sjry }}</div>
</div>
<div class="mid">
<div class="left">
<div class="title ellipsis">参会人员{{ item.chry }}</div>
<div class="desc">
<div class="info ellipsis" v-for="(el, i) in item.cqcs" :key="`item${index}`">{{ i + 1 }}.{{ el }}</div>
<!-- <div class="info ellipsis">2.应抓捕赵某王某XXXXXXXXX王某XXXXXXXXXXXXXXXX等人</div> -->
</div>
</div>
<div class="right">
<el-button type="primary" size="small">加入会议</el-button>
<el-button type="primary" size="small">反馈情况</el-button>
<el-button type="primary" size="small">处置下发</el-button>
</div>
</div>
<div class="bottom">
<el-link type="primary">评论</el-link>
<el-link type="primary">会议回放</el-link>
<el-link type="danger">删除</el-link>
</div>
</div>
</div>
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"
></Pages>
</div>
<!-- 详情 -->
<DetailForm ref="detailDiloag" />
</div>
</template>
<script setup>
import PageTitle from "@/components/aboutTable/PageTitle.vue";
import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue";
// import DetailForm from "./components/detailForm.vue";
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
const { proxy } = getCurrentInstance();
const detailDiloag = ref();
const searchBox = ref(); //
const searchConfiger = ref([
{
label: "会议主题",
prop: "businessNo",
placeholder: "请输入会议主题",
showType: "input"
},
{
label: "关联线索",
prop: "goodsName",
placeholder: "请选择关联线索",
showType: "select"
},
{
label: "涉及人员",
prop: "businessNo",
placeholder: "请输入涉及人员",
showType: "input"
},
{
label: "会议内容",
prop: "businessNo",
placeholder: "请输入会议内容",
showType: "input"
}
]);
const queryFrom = ref({});
const pageData = reactive({
tableData: [
{
title: "林芝市XX地区发生的重大案件处理",
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
sjry: "王某、赵某、.....",
chry: "王某、赵某、赵某赵某赵某.....",
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
},
{
title: "林芝市XX地区发生的重大案件处理",
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
sjry: "王某、赵某、.....",
chry: "王某、赵某、赵某赵某赵某.....",
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
},
{
title: "林芝市XX地区发生的重大案件处理",
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
sjry: "王某、赵某、.....",
chry: "王某、赵某、赵某赵某赵某.....",
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
},
{
title: "林芝市XX地区发生的重大案件处理",
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
sjry: "王某、赵某、.....",
chry: "王某、赵某、赵某赵某赵某.....",
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
},
{
title: "林芝市XX地区发生的重大案件处理",
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
sjry: "王某、赵某、.....",
chry: "王某、赵某、赵某赵某赵某.....",
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
},
{
title: "林芝市XX地区发生的重大案件处理",
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
sjry: "王某、赵某、.....",
chry: "王某、赵某、赵某赵某赵某.....",
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
},
{
title: "林芝市XX地区发生的重大案件处理",
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
sjry: "王某、赵某、.....",
chry: "王某、赵某、赵某赵某赵某.....",
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
},
{
title: "林芝市XX地区发生的重大案件处理",
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
sjry: "王某、赵某、.....",
chry: "王某、赵某、赵某赵某赵某.....",
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
},
{
title: "林芝市XX地区发生的重大案件处理",
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
sjry: "王某、赵某、.....",
chry: "王某、赵某、赵某赵某赵某.....",
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
},
{
title: "林芝市XX地区发生的重大案件处理",
hynr: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
lxxs: "XX王某XXXXXXXXXXXXX王某XXXXXXXXXXXXXXXXXXXXXXX",
sjry: "王某、赵某、.....",
chry: "王某、赵某、赵某赵某赵某.....",
cqcs: ["应抓捕XXXXXXXXXXcccccccccc", "应抓捕XXXXXXXXXXcccccccccc"]
}
],
keyCount: 0,
tableConfiger: {
rowHieght: 61,
showSelectType: "null",
loading: false
},
total: 0,
pageConfiger: {
pageSize: 20,
pageCurrent: 1
},
controlsWidth: 120
});
onMounted(() => {
getList();
tabHeightFn();
});
//
const handleType = val => {
pageData.keyCount++;
pageData.pageConfiger.pageCurrent = 1;
getList();
};
//
const onSearch = val => {
queryFrom.value = { ...val };
pageData.pageConfiger.pageCurrent = 1;
getList();
};
const changeNo = val => {
pageData.pageConfiger.pageNum = val;
getList();
};
const changeSize = val => {
pageData.pageConfiger.pageSize = val;
getList();
};
//
const getList = val => {
// pageData.tableConfiger.loading = true;
let data = { ...pageData.pageConfiger, ...queryFrom.value };
// let url = '/mosty-lzcj/tbDwMbkf/queryList';
// qcckPost(data,url).then(res=>{
// pageData.tableData = res.records || [];
// pageData.total = res.total;
// pageData.tableConfiger.loading = false;
// }).catch(()=>{ pageData.tableConfiger.loading = false; })
};
//
const addEdit = (type, row) => {
detailDiloag.value.init(type, row);
};
//
const tabHeightFn = () => {
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
window.onresize = function () {
tabHeightFn();
};
};
</script>
<style lang="scss" scoped>
.el-loading-mask {
background: rgba(0, 0, 0, 0.5) !important;
}
.btns {
padding: 10px 20px;
}
.list {
height: calc(100% - 62px);
gap: 10px;
margin: 0 15px;
overflow: auto;
.list-item {
display: inline-block;
border: 1px solid #ccc;
height: 280px;
width: 380px;
box-sizing: border-box;
border-radius: 5px;
padding: 10px;
margin: 10px 5px;
&:hover {
border-color: rgb(124, 195, 253);
background-color: rgba(190, 233, 255, 0.582);
}
&:hover .mid {
border-color: rgb(124, 195, 253);
}
&:hover .desc {
background-color: rgb(190, 233, 255);
}
.title {
color: black;
font-size: 14px;
font-weight: 700;
// height: 24px;
// line-height: 24px;
margin-bottom: 5px;
}
.info {
color: #a5a1a1;
font-size: 12px;
line-height: 1.5;
}
.desc {
margin-top: 5px;
background-color: rgb(242, 242, 242);
width: 260px;
height: calc(100% - 25px);
padding: 10px;
}
.mid {
border: 1px dashed rgb(124, 195, 253);
border-left: 0;
border-right: 0;
padding: 10px 0;
display: flex;
justify-content: space-between;
.right {
width: 80px;
.el-button + .el-button {
margin-left: 0;
margin-top: 5px;
}
}
}
.bottom {
display: flex;
justify-content: flex-end;
}
}
}
</style>