This commit is contained in:
2026-01-26 14:38:32 +08:00
parent 1a3c4f0ea9
commit 5998eea6b1
7 changed files with 269 additions and 6 deletions

View File

@ -518,6 +518,15 @@ export const publicRoutes = [
icon: "article-create"
}
},
{
path: "/ReviewList",
name: "ReviewList",
component: () => import("@/views/backOfficeSystem/JudgmentHome/ReviewList/index.vue"),
meta: {
title: "审核列表",
icon: "article-create"
}
},
{
path: "/judgmentCommand",
name: "judgmentCommand",
@ -1146,6 +1155,7 @@ export const publicRoutes = [
icon: "article-create"
}
},
{
path: "/strategicResearch",
name: "strategicResearch",

View File

@ -27,7 +27,7 @@
<div class="mid">
<div class="left">
<!-- <div class="title ellipsis">参会人员{{ item.chry }}</div> -->
<div class="desc">
<div class="desc noScollLine">
<div class="info ellipsis" v-for="(el, i) in item.xsplList" :key="i">{{ i + 1 }}{{ el.plnr }}</div>
</div>
</div>

View File

@ -0,0 +1,228 @@
<template>
<div>
<!-- 搜索 -->
<div ref="searchBox" class="mt10 mb10">
<Search :searchArr="searchConfiger" @submit="onSearch" />
</div>
<!-- 表格 -->
<div class="tabBox" :style="{height: pageData.tableHeight + 10 +'px'}">
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight" :key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
<template #bglx="{ row }">
<DictTag :tag="false" :value="row.bglx" :options="D_BZ_YPLX" />
</template>
<template #shzt="{ row }">
<DictTag :tag="false" :value="row.shzt" :options="D_BZ_XSSHZT" />
</template>
<!-- 操作 -->
<template #controls="{ row }">
<el-link type="primary" @click="addEdit('detail', row)">详情</el-link>
<el-link type="danger" ref="buttonRef" @click="showPopover(row)">审核</el-link>
</template>
</MyTable>
<Pages
@changeNo="changeNo"
@changeSize="changeSize"
:tableHeight="pageData.tableHeight"
:pageConfiger="{ ...pageData.pageConfiger, total: pageData.total }"
/>
</div>
<!-- 详情 -->
<Detail bglx="02" ref="detailDiloag" :dict="{ D_BZ_YPFS, D_BZ_YPLX }"/>
<el-popover ref="popoverRef" :visible="isShowVisble" :width="400" :virtual-ref="buttonRef" placement="left"trigger="click" title="审核" virtual-triggering >
<el-form :model="shForm" :rules="rules" ref="formRef">
<el-form-item label="审核状态" prop="shzt">
<el-radio-group v-model="shForm.shzt" @change="handleChange">
<el-radio label="0">审核通过</el-radio>
<el-radio label="1">审核不通过</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="驳回原因" prop="bhyy" v-if="shForm.shzt === '1'">
<el-input v-model="shForm.bhyy" type="textarea" placeholder="请输入驳回原因"></el-input>
</el-form-item>
<div class="tc">
<el-button @click.stop="closePopover">取消</el-button>
<el-button type="primary" @click.stop="submitForm">确定</el-button>
</div>
</el-form>
</el-popover>
</div>
</template>
<script setup>
import Detail from "@/views/backOfficeSystem/JudgmentHome/strategicResearch/addReport.vue";
import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue";
import Search from "@/components/aboutTable/Search.vue";
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
const { proxy } = getCurrentInstance();
const { D_GZL_SHZT,D_BZ_YPFS,D_BZ_YPLX ,D_BZ_XSSHZT } = proxy.$dict('D_GZL_SHZT','D_BZ_YPFS',"D_BZ_YPLX" ,'D_BZ_XSSHZT')
const detailDiloag = ref();
const searchBox = ref(); //搜索框
const searchConfiger = ref([
{
label: "研判名称",
prop: "ypmc",
placeholder: "请输入研判名称",
showType: "input"
},
{
label: "报告名称",
prop: "bgmc",
placeholder: "请输入报告名称",
showType: "input"
},
{
label: "所属部门",
prop: "ssbmdm",
placeholder: "请选择所属部门",
showType: "department",
},
{
label: "报告类型",
prop: "bglx",
placeholder: "请选择报告类型",
showType: "select",
options: D_BZ_YPLX
},
{
label: "审核状态",
prop: "shzt",
placeholder: "请选择审核状态",
showType: "select",
options: D_BZ_XSSHZT
},
]);
const queryFrom = ref({});
const pageData = reactive({
tableData: [], //表格数据
keyCount: 0,
tableConfiger: {
rowHieght: 61,
showSelectType: "null",
loading: false
},
total: 0,
pageConfiger: {
pageSize: 20,
pageCurrent: 1
}, //分页
controlsWidth: 160, //操作栏宽度
tableColumn: [
{
label: "研判名称",
prop: "ypmc"
},
{
label: "报告名称",
prop: "bgmc"
},{
label: "所属部门",
prop: "ssbm"
},
{
label: "报告类型",
prop: "bglx",
showSolt: true,
},
{
label: "审核状态",
prop: "shzt",
showSolt: true,
},
]
});
const btnloading = ref(false)
const isShowVisble = ref(false)
const buttonRef = ref()
const formRef = ref()
const shForm = ref({})
const rules = ref({
shzt: [{ required: true, message: "请选择审核状态", trigger: ['blur','change'] }],
bhyy: [{ required: true, message: "请输入驳回原因", trigger: ['blur','change'] }],
})
onMounted(() => {
tabHeightFn();
getList();
});
// 搜索
const onSearch = (val) => {
queryFrom.value = { ...val };
pageData.pageConfiger.pageCurrent = 1;
getList();
};
const changeNo = (val) => {
pageData.pageConfiger.pageCurrent = val;
getList();
};
const changeSize = (val) => {
pageData.pageConfiger.pageSize = val;
getList();
};
const getList = () => {
pageData.tableConfiger.loading = true;
let params = {
...queryFrom.value,
pageCurrent:pageData.pageConfiger.pageCurrent,
pageSize:pageData.pageConfiger.pageSize
}
qcckGet(params, "/mosty-gsxt/gsxtYpbg/queryShList").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 showPopover = (row) => {
isShowVisble.value = true
shForm.value = { id: row.id }
}
const closePopover = () => {
isShowVisble.value = false;
formRef.value.resetFields()
}
const submitForm = () => {
console.log(shForm.value,'===shForm.value,');
formRef.value.validate((valid) => {
if (!valid) return false;
// btnloading.value = true
// qcckPost(shForm.value, "/mosty-gsxt/gsxtYpbg/updateShzt").then((res) => {
// btnloading.value = false
// closePopover()
// proxy.$message({ type: "success", message: "操作成功" });
// getList();
// });
});
}
// 表格高度计算
const tabHeightFn = () => {
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 210;
window.onresize = function () {
tabHeightFn();
};
};
</script>
<style>
.el-loading-mask {
background: rgba(0, 0, 0, 0.5) !important;
}
</style>

View File

@ -8,7 +8,7 @@
</div>
</div>
<div class="form_cnt">
<FormMessage :formList="formData" v-model="listQuery" ref="elform" :rules="rules">
<FormMessage :formList="formData" :disabled="title=='详情'" v-model="listQuery" ref="elform" :rules="rules">
<template #fj><el-button type="primary" @click="showText = true">附件上传</el-button></template>
</FormMessage>
<div class="cntBox">

View File

@ -29,7 +29,8 @@
<template #controls="{ row }">
<!-- <el-link size="small" type="primary" @click="getDataById('edit', row)">修改</el-link> -->
<!-- <el-link size="small" type="danger" @click="getypbgSjzlTjspId(row.id)">提交申请</el-link> -->
<el-link size="small" type="primary" @click="createReport('edit', row)">编辑</el-link>
<el-link size="small" type="warning" @click="handleRow(row)">送审</el-link>
<el-link size="small" type="primary" @click="createReport('edit', row)">编辑</el-link>
<el-link size="small" type="primary" @click="createReport('detail', row)">详情</el-link>
<!-- <el-link size="small" type="success" @click="createMeeting(row)">创建会议</el-link>-->
@ -51,6 +52,7 @@
</template>
<script setup>
import { qcckGet } from "@/api/qcckApi";
import PageTitle from "@/components/aboutTable/PageTitle.vue";
import MyTable from "@/components/aboutTable/MyTable.vue";
import Pages from "@/components/aboutTable/Pages.vue";
@ -84,6 +86,22 @@ onMounted(() => {
}
getList()
});
// 提交审核
const handleRow = (row) => {
proxy.$confirm('确定提交审核?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning'}).then(() => {
qcckGet({},'/mosty-gsxt/gsxtYpbg/tjsp/'+row.id).then(res => {
proxy.$message.success('提交成功');
getList();
}).catch(() => {
proxy.$message.error('提交失败');
});
})
}
/** 是否市情报指挥中心 */
const isShiQingBaoZhongXin = computed(() => {
const Jb = deptLevel[0] == '2' ? '01' : deptLevel[0] == '3' ? '02' : '03'

View File

@ -171,6 +171,7 @@ const getDataById = (type, row) => {
addForm.value.init(type, row, '01');
}
const deleteFile = (row) => {
proxy.$confirm('确定删除选中数据吗?', '提示', {
confirmButtonText: '确定',

View File

@ -4,7 +4,13 @@
<div class="mr10"><img :src="item.icon" alt=""></div>
<div class="vountItem">
<div style="color:#ffffff" class="f16 lh20">{{ item.label }}</div>
<div class="mt4 f12" style="color: #ffffff;font-size: 24px;">{{ item.value }}</div>
<div v-if="!item.isChild" class="mt4 f12" style="color: #ffffff;font-size: 24px;">{{ item.value }}</div>
<div v-else class="mt4 flex align-center just-between" style="color: #ffffff;">
<!-- 未处置 -->
<span class="f24" style="color: #ff0000;" title="未处置">0</span>
<!-- 已处置 -->
<span class="f24" style="color: #4cf35d;" title="已处置">0</span>
</div>
</div>
</div>
</div>
@ -24,9 +30,9 @@ import keyGroups from "@/views/home/components/keyGroups.vue";
const contentItem = ref([
{ type:"jqzs", label: "今日警情", value: "0" ,icon:require('@/assets/images/top-1.png')},
{ type:"yjzs", label: "今日预警", value: "0",icon:require('@/assets/images/top-2.png') },
{ type:"zdry", label: "重点人员总数", value: "0",icon:require('@/assets/images/top-3.png') },
{ type:"zdqt", label: "重点群体总数", value: "0" ,icon:require('@/assets/images/top-4.png')},
{ type:"yjzs", label: "今日预警", value: "0",isChild:true,icon:require('@/assets/images/top-2.png') },
]);
onMounted(() => {