feat: 1.对接全域布控下菜单的增删查改功能,以及用户操作流程优化。2.对接人力情报采集系统采集流转列表,搜索,新增接口

This commit is contained in:
jy
2025-06-04 17:27:57 +08:00
parent 2b3da38702
commit d8bee57f6b
44 changed files with 8479 additions and 594 deletions

View File

@ -2,7 +2,9 @@
<div>
<div class="titleBox">
<PageTitle title="重点群体管理">
<el-button type="primary" size="small" v-for="it in btns" :key="it"> {{ it }}</el-button>
<el-button type="primary" size="small" v-for="it in btns" :key="it">
{{ it }}</el-button
>
<el-button type="primary" size="small" @click="addEdit('add', '')">
<el-icon style="vertical-align: middle"><CirclePlus /></el-icon>
<span style="vertical-align: middle">新增</span>
@ -32,44 +34,63 @@
:controlsWidth="pageData.controlsWidth"
@chooseData="chooseData"
>
<template #jbxx>
<div>
<img src="" alt="">
<ul>
<li>群体名称</li>
<li>所属辖区</li>
<li>群体级别</li>
<li>风险等级</li>
</ul>
</div>
<div class="flex">
<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>
</template>
<template #bgxx="{row}">
<div>背景资料</div>
<div>创建单位</div>
<div>风险监测</div>
<div>一般监测</div>
<div>重点监测</div>
</template>
<template #gkxx="{row}">
<div>群体标签</div>
<div>管辖单位</div>
<div>列控原因</div>
<div>开始时间</div>
<div>截至时间</div>
</template>
<template #wkrs="{row}">
<span style="color:#0072ff">{{ row.wkrs }}</span>
</template>
<template #jbxx="{ row }">
<div>
<img src="" alt="" />
<ul>
<li>群体名称{{ row.qtMc }}</li>
<!-- <li>所属辖区</li> -->
<li class="rowClass">
风险等级
<DictTag
:tag="false"
:value="row.qtFxdj"
:options="D_GS_ZDQT_FXDJ"
/>
</li>
<li>创建时间{{ row.xtCjsj }}</li>
</ul>
</div>
<div class="flex">
<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>
</template>
<template #bgxx="{ row }">
<div>背景资料{{ row.qtBjzl }}</div>
<div>创建单位{{ row.xtCjbmmc }}</div>
</template>
<template #gkxx="{ row }">
<!-- <div>群体标签{{ }}</div> -->
<div>管辖单位{{ row.gxSsdwmc }}</div>
<div>列控原因{{ row.zdrLkyy }}</div>
<div>开始时间{{ row.startTime }}</div>
<div>截至时间{{ row.endTime }}</div>
</template>
<template #wkrs="{ row }">
<span style="color: #0072ff">{{ row.wkrs }}</span>
</template>
<template #qtZt="{ row }">
<DictTag :tag="false" :value="row.qtZt" :options="D_GS_ZDQT_ZT" />
</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>
<el-link
v-if="row.qtZt == '01' || row.qtZt == '03' || row.qtZt == '06'"
@click="openDetail(row)"
>送审</el-link
>
<el-link size="small" type="success" @click="addEdit('edit', row)"
>编辑</el-link
>
<el-link size="small" type="primary" @click="infoList('info', row)"
>查看</el-link
>
<el-link size="small" type="danger" @click="deleteRow(row)"
>删除</el-link
>
</template>
</MyTable>
<Pages
@ -82,75 +103,164 @@
}"
></Pages>
</div>
<el-dialog
v-model="dialogVisible"
title="发起送审"
width="500px"
:before-close="handleClose"
>
<span>是否要发起送审</span>
<template #footer>
<div class="dialog-footer">
<el-button @click="dialogVisible = false">取消</el-button>
<el-button type="primary" @click="autoEdit()"> 确定 </el-button>
</div>
</template>
</el-dialog>
<!-- 编辑 -->
<EditForm @updateDate="updateDate" ref="editFormDiloag" />
<!-- 详情 -->
<DetailForm ref="detailDiloag" />
</div>
</template>
<script setup>
<script setup>
import DetailForm from "./components/infoForm.vue";
import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue";
import DetailForm from "./components/addForm.vue";
import EditForm from "./components/addForm.vue";
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
import { ElMessage } from "element-plus";
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
const { proxy } = getCurrentInstance();
const {
D_GS_ZDQT_FXDJ,
D_GS_ZDR_RYJB,
D_GS_ZDQT_LB,
D_GS_ZDR_BK_ZT,
D_GS_BQ_LX,
D_GS_ZDQT_ZT
} = proxy.$dict(
"D_GS_ZDQT_FXDJ",
"D_GS_ZDR_RYJB",
"D_GS_ZDQT_LB",
"D_GS_ZDR_BK_ZT",
"D_GS_BQ_LX",
"D_GS_ZDQT_ZT"
); //获取字典数据
const editFormDiloag = ref();
const detailDiloag = ref();
const searchBox = ref(); //搜索框
const btns = reactive(['一键布控','维护群体','矛盾化解','转指令','转线索','转督导','转合成','移交管控','批量导入','导出'])
const autoId = ref();
const dialogVisible = ref(false);
const btns = reactive([
"一键布控",
"维护群体",
"矛盾化解",
"转指令",
"转线索",
"转督导",
"转合成",
"移交管控",
"批量导入",
"导出"
]);
const searchConfiger = ref([
{
label: "群体名称",
prop: "groupName",
prop: "qtMc",
placeholder: "请输入群体名称",
showType: "input"
},
{
label: "群体风险等级",
prop: "riskLevel",
prop: "qtFxdj",
placeholder: "请选择群体风险等级",
showType: "select"
showType: "select",
options: D_GS_ZDQT_FXDJ
},
{
label: "监测级别",
prop: "monitorLevel",
placeholder: "请选择监测级别",
showType: "select"
label: "重点人人员级别",
prop: "zdrRyjb",
placeholder: "请选择重点人人员级别",
showType: "select",
options: D_GS_ZDR_RYJB
},
{
label: "成员姓名",
prop: "memberName",
prop: "cyXm ",
placeholder: "请输入成员姓名",
showType: "input"
},
{
label: "时间敏感词",
prop: "timeSensitive",
placeholder: "请输入时间敏感词",
label: "群体类别",
prop: "qtLb",
placeholder: "请选择群体类别",
showType: "select",
options: D_GS_ZDQT_LB
},
{
label: "成员身份证号",
prop: "cySfzh",
placeholder: "请输入成员身份证号",
showType: "input"
},
{
label: "群体类",
prop: "groupType",
placeholder: "请选择群体类别",
showType: "select"
label: "群体类",
prop: "qtDl",
placeholder: "请输入群体大类",
showType: "input"
},
{
label: "群体细类",
prop: "qtXl",
placeholder: "请输入群体细类",
showType: "input"
},
{
label: "管辖单位名称",
prop: "gxSsdwmc",
placeholder: "请输入管辖单位名称",
showType: "input"
},
{
label: "开始时间",
prop: "startTime",
placeholder: "请输入开始时间",
showType: "date"
},
{
label: "截至时间",
prop: "endTime",
placeholder: "请输入截至时间",
showType: "date"
},
{
label: "布控状态",
prop: "bkzt",
placeholder: "请选择布控态",
showType: "select"
prop: "zdrBkZt",
placeholder: "请输入布控态",
showType: "select",
options: D_GS_ZDR_BK_ZT
},
{
label: "布控类型",
prop: "bkzt",
placeholder: "请输入布控类型",
showType: "select",
options: D_GS_BQ_LX
}
]);
const pageData = reactive({
tableData: [
{
img:'',
img: "",
jbxx: "",
wkrs:'1/5'
},
wkrs: "1/5"
}
],
keyCount: 0,
tableConfiger: {
@ -165,11 +275,11 @@ const pageData = reactive({
},
controlsWidth: 220,
tableColumn: [
{ label: "群体基本信息", prop: "jbxx",showSolt: true },
{ label: "背景信息", prop: "bgxx",showSolt: true },
{ label: "管控信息", prop: "gkxx" ,showSolt: true },
{ label: "稳控人数", prop: "wkrs" ,showSolt: true,width:80 },
{ label: "状态", prop: "status" }
{ label: "群体基本信息", prop: "jbxx", showSolt: true },
{ label: "背景信息", prop: "bgxx", showSolt: true },
{ label: "管控信息", prop: "gkxx", showSolt: true },
{ label: "稳控人数", prop: "wkrs", showSolt: true, width: 80 },
{ label: "状态", prop: "qtZt", showSolt: true }
]
});
@ -180,6 +290,26 @@ onMounted(() => {
tabHeightFn();
});
const openDetail = (row) => {
autoId.value = row.id;
dialogVisible.value = true;
};
//送审
const autoEdit = () => {
dialogVisible.value = false;
let url = `/mosty-gsxt/tbGsxtZdqt/subExamine/${autoId.value}`;
qcckPost({}, url)
.then((res) => {
ElMessage.success("提交成功");
getList();
})
.catch(() => {
ElMessage.error("提交失败");
});
};
const updateDate = () => {
getList();
};
//选择类型
const handleType = (val) => {
pageData.keyCount++;
@ -192,7 +322,10 @@ const onSearch = (val) => {
pageData.pageConfiger.pageCurrent = 1;
getList();
};
// 详情
const infoList = (type, row) => {
detailDiloag.value.init(type, row);
};
const changeNo = (val) => {
pageData.pageConfiger.pageNum = val;
getList();
@ -204,19 +337,23 @@ const changeSize = (val) => {
// 获取列表
const getList = (val) => {
// pageData.tableConfiger.loading = true;
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; })
let url = "/mosty-gsxt/tbGsxtZdqt/selectPage";
qcckGet(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);
editFormDiloag.value.init(type, row);
};
// 表格高度计算
@ -227,13 +364,16 @@ const tabHeightFn = () => {
tabHeightFn();
};
};
defineExpose({ infoList });
</script>
<style>
<style>
.el-loading-mask {
background: rgba(0, 0, 0, 0.5) !important;
}
.rowClass {
display: flex;
align-items: center;
justify-content: center;
}
</style>