更新需求

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";
const api = "/mosty-api/mosty-gsxt";
// 情报采集关注
export const xxcjCare = (data) => {
return request({
url: api + "/xxcj/cjgz",
method: "POST",
data
});
}
// 情报采集新增
export const xxcjAddEntity = (data) => {
return request({

View File

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

View File

@ -52,6 +52,11 @@
<template #lczt="{ row }">
<DictTag :tag="false" :value="row.lczt" :options="D_BZ_LCZT" />
</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 }">
<el-link v-if="isShowBtn('采纳')" size="small" type="danger" @click="cnMsg(row)"
: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('关注部门') && 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 size="small" type="primary" @click="handleAttention(row)">{{ row.sfgz == '1' ? '取消关注':'关注'}}</el-link>
</template>
</MyTable>
<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 { useRouter, useRoute } from 'vue-router'
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 MakeTag from '../components/maketag.vue'
import ExportFile from './components/exportFile.vue'
@ -238,6 +244,7 @@ const pageData = reactive({
{ label: "上报单位", prop: "ssbm" },
{ label: "流程状态", prop: "lczt", 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: "请选择情报信息" });
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) => {
// if (item.lczt == '04') {
@ -436,7 +457,10 @@ const getList = () => {
pageData.tableConfiger.loading = true;
let data = { ...pageData.pageConfiger, ...queryFrom.value };
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.tableConfiger.loading = false;
}).catch(() => { pageData.tableConfiger.loading = false; })

View File

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

View File

@ -41,7 +41,7 @@
</div>
<div class="main-box" style="background: #fff">
<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" />
</div>
<div class="tabBox">
@ -83,7 +83,7 @@
</template>
</el-table-column>
</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"
: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>
@ -485,8 +485,11 @@ watch(
);
// 表格高度计算
const tabHeightFn = () => {
tableHeight.value =
window.innerHeight - searchBox.value.offsetHeight - 250;
tableHeight.value = window.innerHeight - searchBox.value.offsetHeight - 270;
window.onresize = function () {
treeHeightFn();
tabHeightFn();
};
};
// 树高度计算
const treeHeightFn = () => {
@ -495,10 +498,6 @@ const treeHeightFn = () => {
onMounted(() => {
tabHeightFn();
treeHeightFn();
window.onresize = function () {
treeHeightFn();
tabHeightFn();
};
proxy.mittBus.on("mittFn", (data) => {
keyCount.value = data;
});
@ -511,38 +510,21 @@ onUnmounted(() => {
<style lang="scss" scoped>
@import "~@/assets/css/layout.scss";
@import "~@/assets/css/element-plus.scss";
// .user-list-page {
// .userListDialog {
// .el-input__inner {
// min-width: 260px;
// }
// }
::v-deep .main-box .treeBox{
border: none;
padding: 10px 4px;
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 {
// margin-bottom: 22px;
// }
// ::v-deep .avatar {
// width: 60px;
// 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>
::v-deep .fenye{
border: 1px solid #e9e9e9 !important;
border-top: none !important;;
margin: 0 10px !important;;
}
</style>

View File

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

View File

@ -1,6 +1,8 @@
<template>
<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>
<div class="comom-cnt qxsbBox">