This commit is contained in:
lcw
2026-01-16 12:40:42 +08:00
parent 2ea84f248c
commit 10853312f2
120 changed files with 23881 additions and 617 deletions

View File

@ -0,0 +1,115 @@
<template>
<!-- 数据整理 -->
<div class="dialog" v-if="dialogForm">
<div class="head_box">
<span class="title">上报信息详情 </span>
<div><el-button size="small" @click="close">关闭</el-button></div>
</div>
<div style="padding-bottom: 40px;" class="form_cnt">
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :disabled="true">
</FormMessage>
</div>
</div>
</template>
<script setup>
import FormMessage from "@/components/aboutTable/FormMessage.vue";
import { ref, defineExpose, reactive, defineEmits, getCurrentInstance, watch, computed } from "vue";
import { dataLx } from './info'
import { qcckGet ,qcckPost} from "@/api/qcckApi.js";
const emit = defineEmits(["updateDate", "getList"]);
const props = defineProps({
dict: Object
});
const { proxy } = getCurrentInstance();
const dialogForm = ref(false); //弹窗
const formData = ref([]);
// 初始化数据
const init = ( row) => {
console.log(row);
dialogForm.value = true;
formData.value = dataLx[row.typeId]
getDetail(row.typeId,row.id)
};
const listQuery = ref({})
const loading = ref(false)
// 数据详情
const getDetail = (val, baseId) => {
let url = ''
switch (val) {
case '2001':
url = '/important/base/selectSwjfByBaseId'
break;
case '2002':
url = '/important/base/selectXsajByBaseId'
break;
case '2003':
url = '/important/base/selectJtsgByBaseId'
break;
case '2004':
url = '/important/base/selectAqscByBaseId'
break;
case '2005':
url = '/important/base/selectGgwsByBaseId'
break;
case '2006':
url = '/important/base/selectFzswByBaseId'
break;
case '2007':
url = '/important/base/selectZzrzhByBaseId'
break;
case '2008':
url = '/important/base/selectOtherByBaseId'
break;
}
loading.value = true;
qcckGet({
baseId: baseId
}, '/mosty-gsxt' + url).then(res => {
listQuery.value = res || {}
}).finally(() => {
loading.value = false;
})
}
// 关闭
const close = () => {
listQuery.value = {};
dialogForm.value = false;
loading.value = false;
};
defineExpose({ init });
</script>
<style lang="scss" scoped>
@import "~@/assets/css/layout.scss";
@import "~@/assets/css/element-plus.scss";
::v-deep .form-item-box {
width: 100% !important;
}
.bottom-actions {
position: absolute;
bottom: 0;
left: 50%;
display: flex;
justify-content: center;
gap: 10px;
width: 100%;
transform: translateX(-50%);
padding: 10px 20px;
border-radius: 4px;
background: white;
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
// z-index: 1000;
}
.table-box {
// width: calc(100% - 2px);
width: 100%;
}
</style>

View File

@ -0,0 +1,161 @@
<template>
<div>
<div class="titleBox">
<PageTitle title="蜂群信息上报"/>
</div>
<!-- 搜索 -->
<div ref="searchBox">
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
</div>
<!-- 表格 -->
<div class="tabBox">
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
<template #jflx="{ row }">
<DictTag :tag="false" :value="row.jflx" :options="jflxArr" />
</template>
<!-- 操作 -->
<template #controls="{ row }">
<el-link type="primary" @click="addEdit( row)">详情</el-link>
</template>
</MyTable>
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"></Pages>
</div>
<!-- 编辑详情 -->
<!-- <EditAddForm v-if="show" ref="detailDiloag" :dic="{ JQLB,JQLX,JQXL,JQZL,D_BZ_JQLY,D_BZ_JQFL,JQLB_DP,D_BZ_JQBQ,D_GS_SSYJ }"
@updateDate="getList" /> -->
</div>
<AddForm ref="addForm" />
</template>
<script setup>
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 EditAddForm from "./components/editAddForm.vue";
import { importantBaseSelectPage } from '@/api/HumanIntelligence/integralList.js'
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
import AddForm from "./addForm.vue";
const { proxy } = getCurrentInstance();
// const { D_GS_JFLX, } = proxy.$dict("D_GS_JFLX",); //获取字典数据
const { D_GS_JFLX, } = proxy.$fzdict("BD_D_SJLB",); //获取字典数据
const detailDiloag = ref();
const show = ref(false)
const jflxArr = [{ label: '优秀信息员', value: '01' }, { label: '优秀研判员', value: '02' }] // jflx
const searchConfiger = ref([
{
label: "姓名",
prop: "xm",
placeholder: "请输入姓名",
showType: "input"
},
// {
// label: "身份证号",
// prop: "sfzh",
// placeholder: "请输入身份证号",
// showType: "input"
// },
{
label: "积分类型",
prop: "jflx",
placeholder: "请选择积分类型",
showType: "select",
options: jflxArr
},
{
label: "积分来源类型",
prop: "jflylx",
placeholder: "请选择积分来源类型",
showType: "select",
// options: Object.keys(jflylxTypes).map(key => ({ label: jflylxTypes[key], value: key }))
},
]);
const searchBox = 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: "baseNo" },
{ label: "信息类型名称", prop: "typeName" },
{ label: "信息类别名称", prop: "categoryName" },
{ label: "接收单位", prop: "receiveUnit" },
{ label: "上报单位名称", prop: "reportUnitName" },
{ label: "信息专报日期类型", prop: "timeTypeName" },
{ label: "标题", prop: "title" },
{ label: "状态名称", prop: "ztmc" },
]
});
onMounted(() => {
tabHeightFn();
getList()
});
const listQuery = ref({})
// 搜索
const onSearch = (val) => {
listQuery.value = { ...val };
pageData.pageConfiger.pageCurrent = 1;
getList()
}
//获取数据
const getList = () => {
pageData.tableConfiger.loading = true;
const params = {
pageCurrent: pageData.pageConfiger.pageCurrent,
pageSize: pageData.pageConfiger.pageSize,
...listQuery.value
}
importantBaseSelectPage(params).then(res => {
pageData.tableData = res.records || [];
pageData.total = res.total;
}).finally(() => {
pageData.tableConfiger.loading = false;
})
}
// 分页
const changeNo = (val) => {
pageData.pageConfiger.pageCurrent = val;
getList()
}
// 每页条数
const changeSize = (val) => {
pageData.pageConfiger.pageSize = val;
getList()
}
const addForm=ref()
// 查看详情
const addEdit = (type, row) => {
addForm.value.init(type, row,);
};
// 表格高度计算
const tabHeightFn = () => {
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
window.onresize = function() {
tabHeightFn();
};
};
</script>
<style>
.el-loading-mask {
background: rgba(0, 0, 0, 0.5) !important;
}
</style>

View File

@ -0,0 +1,139 @@
export const dataLx = {
// 涉稳上访聚集
"2001": [
{ label: "事件类别", prop: "xm", type: 'input' },
{ label: "聚集时间", prop: "gatherTime", type: 'input' },
{ label: "散离时间", prop: "disperseTime", type: 'input' },
{ label: "群体类型", prop: "groupType", type: 'input' },
{ label: "聚集人数", prop: "gatherCount", type: 'input' },
{ label: "现场秩序", prop: "sceneOrder", type: 'input' },
{ label: "主要诉求", prop: "mainClaim", type: 'textarea', width: '100%' },
{ label: "所属辖区", prop: "policeStation", type: 'textarea', width: '100%' },
{ label: "事发地点", prop: "incidentLocation", type: 'textarea', width: '100%' },
{ label: "标题", prop: "title", type: 'input', width: '100%' },
{ label: "标签", prop: "tags", type: 'textarea', width: '100%' },
{ label: "内容", prop: "content", type: 'textarea', width: '100%' },
{ label: "接收单位", prop: "receiveUnit", type: 'input' },
{ label: "拟稿人", prop: "drafter", type: 'input' },
{ label: "联系电话", prop: "contactTel", type: 'input' },
{ label: "签发人", prop: "issuer", type: 'input' },
],
// 刑事案件
"2002": [
{ label: "事件类型", prop: "xm", type: 'input' },
{ label: "案发时间", prop: "caseTime", type: 'input' },
{ label: "案件类型", prop: "caseType", type: 'input' },
{ label: "受伤人数", prop: "injuredNum", type: 'input' },
{ label: "死亡人数", prop: "deathNum", type: 'input' },
{ label: "所属辖区", prop: "policeStation", type: 'input' },
{ label: "案发地址", prop: "location", type: 'input' },
{ label: "标题", prop: "title", type: 'input', width: '100%' },
{ label: "标签", prop: "tags", type: 'textarea', width: '100%' },
{ label: "内容", prop: "content", type: 'textarea', width: '100%' },
{ label: "接收单位", prop: "receiveUnit", type: 'input' },
{ label: "拟稿人", prop: "drafter", type: 'input' },
{ label: "联系电话", prop: "contactTel", type: 'input' },
{ label: "签发人", prop: "issuer", type: 'input' },
],
// 交通事故
"2003": [
{ label: "事件类型", prop: "xm", type: 'input' },
{ label: "事发时间", prop: "caseTime", type: 'input' },
{ label: "路段", prop: "roadSection", type: 'input' },
{ label: "受伤人数", prop: "injuredNum", type: 'input' },
{ label: "死亡人数", prop: "deathNum", type: 'input' },
{ label: "涉车数量", prop: "carNum", type: 'input' },
{ label: "事故类型", prop: "sjnr", type: 'input' },
{ label: "所属辖区", prop: "policeStation", type: 'input' },
{ label: "事发地点", prop: "sj", type: 'input' },
{ label: "标题", prop: "title", type: 'input', width: '100%' },
{ label: "标签", prop: "tags", type: 'textarea', width: '100%' },
{ label: "内容", prop: "content", type: 'textarea', width: '100%' },
{ label: "接收单位", prop: "receiveUnit", type: 'input' },
{ label: "拟稿人", prop: "drafter", type: 'input' },
{ label: "联系电话", prop: "contactTel", type: 'input' },
{ label: "签发人", prop: "issuer", type: 'input' },
],
// 安全生产事故
"2004": [
{ label: "事件类型", prop: "xm", type: 'input' },
{ label: "事发时间", prop: "caseTime", type: 'input' },
{ label: "涉事企业", prop: "involvedEnterprise", type: 'input' },
{ label: "受伤人数", prop: "injuredNum", type: 'input' },
{ label: "死亡人数", prop: "deathNum", type: 'input' },
{ label: "所属辖区", prop: "policeStation", type: 'input' },
{ label: "事发地点", prop: "incidentLocation", type: 'input' },
{ label: "标题", prop: "title", type: 'input', width: '100%' },
{ label: "标签", prop: "tags", type: 'textarea', width: '100%' },
{ label: "内容", prop: "content", type: 'textarea', width: '100%' },
{ label: "接收单位", prop: "receiveUnit", type: 'input' },
{ label: "拟稿人", prop: "drafter", type: 'input' },
{ label: "联系电话", prop: "contactTel", type: 'input' },
{ label: "签发人", prop: "issuer", type: 'input' },
],
// 公共卫生事件
"2005": [
{ label: "事件类型", prop: "xm", type: 'input' },
{ label: "事发时间", prop: "sfzh", type: 'input' },
{ label: "涉事人数", prop: "xb", type: 'input' },
{ label: "场所类型", prop: "venueType", type: 'input' },
{ label: "所属辖区", prop: "policeStation", type: 'input' },
{ label: "事发地点", prop: "incidentLocation", type: 'input' },
{ label: "标题", prop: "title", type: 'input', width: '100%' },
{ label: "标签", prop: "tags", type: 'textarea', width: '100%' },
{ label: "内容", prop: "content", type: 'textarea', width: '100%' },
{ label: "接收单位", prop: "receiveUnit", type: 'input' },
{ label: "拟稿人", prop: "drafter", type: 'input' },
{ label: "联系电话", prop: "contactTel", type: 'input' },
{ label: "签发人", prop: "issuer", type: 'input' },
],
// 非正常死亡事件
"2006": [
{ label: "事件类型", prop: "xm", type: 'input' },
{ label: "事发时间", prop: "caseTime", type: 'input' },
{ label: "死亡人数", prop: "deathNum", type: 'input' },
{ label: "死亡类型", prop: "deathType", type: 'input' },
{ label: "所属辖区", prop: "policeStation", type: 'input' },
{ label: "案发地点", prop: "incidentLocation", type: 'input' },
{ label: "标题", prop: "title", type: 'input', width: '100%' },
{ label: "标签", prop: "tags", type: 'textarea', width: '100%' },
{ label: "内容", prop: "content", type: 'textarea', width: '100%' },
{ label: "接收单位", prop: "receiveUnit", type: 'input' },
{ label: "拟稿人", prop: "drafter", type: 'input' },
{ label: "联系电话", prop: "contactTel", type: 'input' },
{ label: "签发人", prop: "issuer", type: 'input' },
],
// 重大自然灾害类
"2007": [
{ label: "事件类型", prop: "xm", type: 'input' },
{ label: "灾害类型", prop: "disasterType", type: 'input' },
{ label: "发生时间", prop: "caseTime", type: 'input' },
{ label: "死亡人数", prop: "deathNum", type: 'input' },
{ label: "受伤人数", prop: "injuredNum", type: 'input' },
{ label: "灾害级别", prop: "disasterLevel", type: 'input' },
{ label: "所属辖区", prop: "policeStation", type: 'input' },
{ label: "事发地点", prop: "sj", type: 'input' },
{ label: "标题", prop: "title", type: 'input', width: '100%' },
{ label: "标签", prop: "tags", type: 'textarea', width: '100%' },
{ label: "内容", prop: "content", type: 'textarea', width: '100%' },
{ label: "接收单位", prop: "receiveUnit", type: 'input' },
{ label: "拟稿人", prop: "drafter", type: 'input' },
{ label: "联系电话", prop: "contactTel", type: 'input' },
{ label: "签发人", prop: "issuer", type: 'input' },
],
// 其他
"2008": [
{ label: "事件类型", prop: "eventType", type: 'input' },
{ label: "时间", prop: "caseTime", type: 'input' },
{ label: "所属辖区", prop: "policeStation", type: 'input' },
{ label: "事发地点", prop: "incidentLocation", type: 'input' },
{ label: "标题", prop: "title", type: 'input', width: '100%' },
{ label: "标签", prop: "tags", type: 'textarea', width: '100%' },
{ label: "内容", prop: "content", type: 'textarea', width: '100%' },
{ label: "接收单位", prop: "receiveUnit", type: 'input' },
{ label: "拟稿人", prop: "drafter", type: 'input' },
{ label: "联系电话", prop: "contactTel", type: 'input' },
{ label: "签发人", prop: "issuer", type: 'input' },
],
}