更新需求

This commit is contained in:
2026-04-16 17:14:19 +08:00
parent f09a8a0083
commit a3464a53cb
7 changed files with 105 additions and 70 deletions

View File

@ -1,5 +1,15 @@
import request from "@/utils/request"; import request from "@/utils/request";
const api = "/mosty-api/mosty-gsxt"; const api = "/mosty-api/mosty-gsxt";
// 情报采集关注
export const xxcjCare = (data) => {
return request({
url: api + "/xxcj/cjgz",
method: "POST",
data
});
}
// 情报采集新增 // 情报采集新增
export const xxcjAddEntity = (data) => { export const xxcjAddEntity = (data) => {
return request({ return request({

View File

@ -110,23 +110,25 @@
</div> </div>
<div class="ml50 mr50 timeline-container" v-if="disabled"> <div class="ml50 mr50 timeline-container" v-if="disabled">
<div class="timeline-title">信息流程展示</div> <div class="timeline-title">信息流程展示</div>
<el-timeline class="timeline-full-width"> <div class="timeline-content">
<el-timeline-item :timestamp="item.czsj" placement="top" v-for="(item, index) in lcList" :key="index"> <el-timeline class="timeline-full-width">
<el-card class="process-card"> <el-timeline-item :timestamp="item.czsj" placement="top" v-for="(item, index) in lcList" :key="index">
<div class="process-info"> <el-card class="process-card">
<div class="info-label">处置人</div> <div class="process-info">
<div class="info-value">{{ item.czrxm || '未记录' }}</div> <div class="info-label">处置人</div>
</div> <div class="info-value">{{ item.czrxm || '未记录' }}</div>
<div class="process-info">
<div class="info-label">处置结果</div>
<div class="info-value">
<DictTag :tag="false" :value="item.czzt" :options="dict.D_BZ_LCZT" />
</div> </div>
</div> <div class="process-info">
</el-card> <div class="info-label">处置结果</div>
</el-timeline-item> <div class="info-value">
</el-timeline> <DictTag :tag="false" :value="item.czzt" :options="dict.D_BZ_LCZT" />
<MOSTY.Empty :show="lcList.length == 0" :imgSize="100"></MOSTY.Empty> </div>
</div>
</el-card>
</el-timeline-item>
</el-timeline>
<MOSTY.Empty :show="lcList.length == 0" :imgSize="100"></MOSTY.Empty>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -511,6 +513,7 @@ defineExpose({ init });
transition: all 0.3s ease; transition: all 0.3s ease;
margin-bottom: 16px; margin-bottom: 16px;
border-left: 3px solid #409EFF; border-left: 3px solid #409EFF;
background: #fff;
} }
.process-card:hover { .process-card:hover {
@ -579,13 +582,20 @@ defineExpose({ init });
.timeline-container { .timeline-container {
width: 400px; width: 400px;
padding-right: 10px;
box-sizing: border-box;
border: 1px solid #ebeef5; border: 1px solid #ebeef5;
margin: 0 10px; margin: 0 10px;
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
overflow-y: auto; overflow-y: auto;
.timeline-content{
width: 100%;
padding: 0 10px;
box-sizing: border-box;
::v-deep .el-timeline-item__wrapper{
padding-left: 21px;
box-sizing: border-box;
}
}
} }
/* 时间线宽度 */ /* 时间线宽度 */
@ -732,4 +742,8 @@ defineExpose({ init });
font-size: 14px; font-size: 14px;
font-style: italic; font-style: italic;
} }
::v-deep .el-textarea.is-disabled .el-textarea__inner{
color: #333 !important;
}
</style> </style>

View File

@ -52,6 +52,11 @@
<template #lczt="{ row }"> <template #lczt="{ row }">
<DictTag :tag="false" :value="row.lczt" :options="D_BZ_LCZT" /> <DictTag :tag="false" :value="row.lczt" :options="D_BZ_LCZT" />
</template> </template>
<template #glbqList="{ row }">
<div>
<el-tag v-for="(item,idx) in row.glbqList" :key="idx">{{ item.bqmc }}</el-tag>
</div>
</template>
<template #cyqk="{ row }"> <template #cyqk="{ row }">
<el-link v-if="isShowBtn('采纳')" size="small" type="danger" @click="cnMsg(row)" <el-link v-if="isShowBtn('采纳')" size="small" type="danger" @click="cnMsg(row)"
:disabled="butcontroll('04', row.lczt)">采纳</el-link> :disabled="butcontroll('04', row.lczt)">采纳</el-link>
@ -102,9 +107,10 @@
<!-- 所有状态都能进行转会商 --> <!-- 所有状态都能进行转会商 -->
<!-- <el-link v-if="isShowBtn('转会商')" size="small" type="primary" @click="handleTransferMerchant(row)" :disabled="butcontroll('01', row.lczt)">转会商</el-link> --> <!-- <el-link v-if="isShowBtn('转会商')" size="small" type="primary" @click="handleTransferMerchant(row)" :disabled="butcontroll('01', row.lczt)">转会商</el-link> -->
<el-link v-if="isShowBtn('关注部门') && row.qbjb=='01'" :disabled="row.sldshzt != '02'" size="small" type="primary" @click="FollowUpOnDept(row)">关注</el-link> <el-link v-if="isShowBtn('关注部门') && row.qbjb=='01'" :disabled="row.sldshzt != '02'" size="small" type="primary" @click="FollowUpOnDept(row)">定向关注</el-link>
<!-- 市局能给所有数据创建标签 --> <!-- 市局能给所有数据创建标签 -->
<el-link v-if="isShowBtn('打标签')" size="small" type="primary" @click="openCustomTag(row)" :disabled="row.sldshzt != '02'">打标签</el-link> <el-link v-if="isShowBtn('打标签')" size="small" type="primary" @click="openCustomTag(row)" :disabled="row.sldshzt != '02'">打标签</el-link>
<el-link size="small" type="primary" @click="handleAttention(row)">{{ row.sfgz == '1' ? '取消关注':'关注'}}</el-link>
</template> </template>
</MyTable> </MyTable>
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{ <Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@ -171,7 +177,7 @@ import Searchs from "@/components/aboutTable/Search.vue";
import AddForm from "./components/addForm.vue"; import AddForm from "./components/addForm.vue";
import { useRouter, useRoute } from 'vue-router' import { useRouter, useRoute } from 'vue-router'
import { qbcjSelectQbsbPage, qbcjDeletes, qbcjCzzt, qbcjPlsb } from "@/api/Intelligence.js"; import { qbcjSelectQbsbPage, qbcjDeletes, qbcjCzzt, qbcjPlsb } from "@/api/Intelligence.js";
import { xxcjSelectXxsbPage, xxcjDeletes, xxcjXxzsx, xxcjUpdateCzlc, xxcjXxqd, xxcjXxcjTjsh } from '@/api/xxcj.js' import { xxcjSelectXxsbPage, xxcjDeletes, xxcjXxzsx, xxcjUpdateCzlc, xxcjXxqd, xxcjXxcjTjsh ,xxcjCare} from '@/api/xxcj.js'
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue"; import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
import MakeTag from '../components/maketag.vue' import MakeTag from '../components/maketag.vue'
import ExportFile from './components/exportFile.vue' import ExportFile from './components/exportFile.vue'
@ -238,6 +244,7 @@ const pageData = reactive({
{ label: "上报单位", prop: "ssbm" }, { label: "上报单位", prop: "ssbm" },
{ label: "流程状态", prop: "lczt", showSolt: true }, { label: "流程状态", prop: "lczt", showSolt: true },
{ label: "采用情况", prop: "cyqk", showSolt: true }, { label: "采用情况", prop: "cyqk", showSolt: true },
{ label: "关联标签", prop: "glbqList", showSolt: true },
] ]
}); });
// 导出数据 // 导出数据
@ -271,6 +278,20 @@ const handleReport = () => {
if(tableList.value.length == 0) return proxy.$message({ type: "warning", message: "请选择情报信息" }); if(tableList.value.length == 0) return proxy.$message({ type: "warning", message: "请选择情报信息" });
inforReportShow.value = true inforReportShow.value = true
} }
// 关注
const handleAttention = (val) =>{
let data = { id:val.id, sfgz:val.sfgz == '1' ? '0':'1' }
xxcjCare(data).then(res=>{
let text = data.sfgz == '1' ? '关注成功' :'已取消'
proxy.$message({ type: "success", message: text });
getList();
}).catch(()=>{
let text = data.sfgz == '1' ? '关注失败' :'取消失败'
proxy.$message({ type: "error", message: text });
})
}
// 回退 // 回退
const rollbackNewspapers = (item) => { const rollbackNewspapers = (item) => {
// if (item.lczt == '04') { // if (item.lczt == '04') {
@ -436,7 +457,10 @@ const getList = () => {
pageData.tableConfiger.loading = true; pageData.tableConfiger.loading = true;
let data = { ...pageData.pageConfiger, ...queryFrom.value }; let data = { ...pageData.pageConfiger, ...queryFrom.value };
xxcjSelectXxsbPage(data).then(res => { xxcjSelectXxsbPage(data).then(res => {
pageData.tableData = res.records || []; pageData.tableData = (res.records || []).map(item=>{
item.glbqList = item.glbqList || [];
return item;
});
pageData.total = res.total; pageData.total = res.total;
pageData.tableConfiger.loading = false; pageData.tableConfiger.loading = false;
}).catch(() => { pageData.tableConfiger.loading = false; }) }).catch(() => { pageData.tableConfiger.loading = false; })

View File

@ -54,6 +54,7 @@ const init = (type, row) => {
formData.value = [ formData.value = [
{ label: "警情等级", prop: "jqdjdm", type: "select", options: props.dict.D_BZ_JQDJ || [] }, { label: "警情等级", prop: "jqdjdm", type: "select", options: props.dict.D_BZ_JQDJ || [] },
{ label: "警情子类", prop: "jqzldm", type: "slot" }, { label: "警情子类", prop: "jqzldm", type: "slot" },
{ label: "监测时间", prop: "Times", type: "datetimerange" },
{ label: "内容关键字", prop: "jqgjz", type: "textarea", width: "100%" }, { label: "内容关键字", prop: "jqgjz", type: "textarea", width: "100%" },
{ label: "规则描述", prop: "gzms", type: "textarea", width: "100%" }, { label: "规则描述", prop: "gzms", type: "textarea", width: "100%" },
] ]
@ -102,8 +103,11 @@ const submit = () => {
// 处理级联选择器的值,只提交最后一个值 // 处理级联选择器的值,只提交最后一个值
const promes = { const promes = {
...listQuery.value, ...listQuery.value,
kssj:listQuery.value.Times ? listQuery.value.Times[0] : '',
jssj:listQuery.value.Times ? listQuery.value.Times[1] : '',
jqzldm: Array.isArray(listQuery.value.jqzldm) ? listQuery.value.jqzldm[listQuery.value.jqzldm.length - 1] : listQuery.value.jqzldm jqzldm: Array.isArray(listQuery.value.jqzldm) ? listQuery.value.jqzldm[listQuery.value.jqzldm.length - 1] : listQuery.value.jqzldm
} }
delete promes.Times;
elform.value.submit((data) => { elform.value.submit((data) => {
loading.value = true; loading.value = true;
if (title.value == "新增") { if (title.value == "新增") {
@ -135,11 +139,6 @@ const close = () => {
loading.value = false; loading.value = false;
}; };
onUnmounted(() => {
})
defineExpose({ init }); defineExpose({ init });
</script> </script>
@ -184,4 +183,8 @@ defineExpose({ init });
height: 520px; height: 520px;
margin-top: 10px; margin-top: 10px;
} }
::v-deep .el-date-editor .el-range-separator{
color: #333;
}
</style> </style>

View File

@ -41,7 +41,7 @@
</div> </div>
<div class="main-box" style="background: #fff"> <div class="main-box" style="background: #fff">
<div class="treeBox" :style="{ height: treeHeight }" > <div class="treeBox" :style="{ height: treeHeight }" >
<MOSTY.DepartmentTree width="280px" placeholder="管理部门ID" clearable filterable :isBmId="true" <MOSTY.DepartmentTree width="340px" placeholder="管理部门ID" clearable filterable :isBmId="true"
v-model="listQuery.deptId" /> v-model="listQuery.deptId" />
</div> </div>
<div class="tabBox"> <div class="tabBox">
@ -83,7 +83,7 @@
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div class="fenye" :style="{ top: tableHeight + 'px' }"> <div class="fenye" :style="{ top: tableHeight+10 + 'px' }">
<el-pagination class="pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange" <el-pagination class="pagination" @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="listQuery.page" :page-sizes="[10, 20, 50, 100]" :page-size="listQuery.size" :current-page="listQuery.page" :page-sizes="[10, 20, 50, 100]" :page-size="listQuery.size"
layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination> layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
@ -485,8 +485,11 @@ watch(
); );
// 表格高度计算 // 表格高度计算
const tabHeightFn = () => { const tabHeightFn = () => {
tableHeight.value = tableHeight.value = window.innerHeight - searchBox.value.offsetHeight - 270;
window.innerHeight - searchBox.value.offsetHeight - 250; window.onresize = function () {
treeHeightFn();
tabHeightFn();
};
}; };
// 树高度计算 // 树高度计算
const treeHeightFn = () => { const treeHeightFn = () => {
@ -495,10 +498,6 @@ const treeHeightFn = () => {
onMounted(() => { onMounted(() => {
tabHeightFn(); tabHeightFn();
treeHeightFn(); treeHeightFn();
window.onresize = function () {
treeHeightFn();
tabHeightFn();
};
proxy.mittBus.on("mittFn", (data) => { proxy.mittBus.on("mittFn", (data) => {
keyCount.value = data; keyCount.value = data;
}); });
@ -511,38 +510,21 @@ onUnmounted(() => {
<style lang="scss" scoped> <style lang="scss" scoped>
@import "~@/assets/css/layout.scss"; @import "~@/assets/css/layout.scss";
@import "~@/assets/css/element-plus.scss"; @import "~@/assets/css/element-plus.scss";
// .user-list-page { ::v-deep .main-box .treeBox{
// .userListDialog { border: none;
// .el-input__inner { padding: 10px 4px;
// min-width: 260px; box-sizing: border-box;
// } }
// } ::v-deep .depar_foot{
height: calc(100% - 36px);
border: 1px solid #e9e9e9 !important;
border-radius: 4px;
margin-top: 4px;
}
// .table-header-wrap { ::v-deep .fenye{
// margin-bottom: 22px; border: 1px solid #e9e9e9 !important;
// } border-top: none !important;;
margin: 0 10px !important;;
// ::v-deep .avatar { }
// width: 60px; </style>
// height: 60px;
// border-radius: 50%;
// }
// ::v-deep .el-tag {
// margin-right: 6px;
// }
// .pagination {
// margin-top: 20px;
// }
// .twoLine {
// display: flex;
// align-items: flex-start;
// flex-flow: wrap;
// .el-form-item {
// width: 380px;
// }
// }
// }</style>

View File

@ -1,7 +1,7 @@
<template> <template>
<div class="comom-title"> <div class="comom-title">
<div class="title" style="width: 70%"> <div class="title" style="width: 70%">
警种统计 <span class="switchover" @click.stop="reversalPush">切换</span> 重点人员统计 <span class="switchover" @click.stop="reversalPush">切换</span>
</div> </div>
<div class="title titleFz" @click="visible = true">查看列表</div> <div class="title titleFz" @click="visible = true">查看列表</div>
</div> </div>

View File

@ -1,6 +1,8 @@
<template> <template>
<div class="comom-title"> <div class="comom-title">
<span class="title">情报上报统计<span class="titleFz ml18" @click.stop="reversalPush">切换</span></span> <span class="title">情报上报统计
<!-- <span class="titleFz ml18" @click.stop="reversalPush">切换</span> -->
</span>
<div class="title titleFz" @click="lookList">查看列表</div> <div class="title titleFz" @click="lookList">查看列表</div>
</div> </div>
<div class="comom-cnt qxsbBox"> <div class="comom-cnt qxsbBox">