This commit is contained in:
lcw
2026-01-26 17:35:04 +08:00
24 changed files with 454 additions and 908 deletions

View File

@ -36,14 +36,10 @@
<div class="grid-item flex just-between" style="" v-for="(item, index) in srcList" :key="index">
<div class="names">{{ item.name }}</div>
<div class="icon"><a :href="setAddress(item.id)" download><el-icon><Download /></el-icon></a></div>
</div>
</div>
</el-card>
</div>
</template>
<script setup>
@ -116,7 +112,6 @@ const route = useRoute()
onMounted(() => {
const id = route.query.id
getDataById(id)
})
// const onSubmit = async (val) => {
// const data = []

View File

@ -65,7 +65,7 @@
<DictTag :tag="false" :value="row.zdrRyjb" :options="D_GS_ZDR_RYJB" />
</template>
<template #zdrBkZt="{ row }">
<DictTag :tag="false" :value="row.zdrBkZt" :options="D_GS_ZDR_BK_ZT" />
<DictTag :tag="false" :value="row.zdrBkZt" :options="D_ZDRGK_GKZT" />
</template>
<template #zdrCzzt="{ row }">
<DictTag :tag="false" :value="row.zdrCzzt" :options="D_GS_ZDR_CZZT" />
@ -120,8 +120,8 @@ import { useRouter, useRoute } from 'vue-router'
const router = useRouter()
const route = useRoute()
const { proxy } = getCurrentInstance();
const { D_GS_ZDQT_ZT, D_GS_ZDR_RYJB, D_BZ_XB, D_BZ_MZ, D_BZ_XZQHDM, D_GS_ZDR_BK_ZT, D_GS_ZDR_CZZT, D_GS_BQ_ZL, D_GS_BQ_LB, D_GS_BQ_LX, D_GS_ZDR_YJDJ, D_GS_BK_SSJZ, D_GS_BK_SQLX, D_BZ_SF, D_GS_XS_LY, D_BZ_SSZT, D_GS_XS_LX, D_GS_XS_QTLX } =
proxy.$dict("D_GS_ZDQT_ZT", "D_GS_ZDR_RYJB", "D_BZ_XB", "D_BZ_MZ", "D_BZ_XZQHDM", "D_GS_ZDR_BK_ZT", "D_GS_ZDR_CZZT", "D_GS_BQ_ZL", "D_GS_BQ_LB", "D_GS_BQ_LX", "D_GS_ZDR_YJDJ", "D_GS_BK_SSJZ", "D_GS_BK_SQLX", "D_BZ_SF", "D_GS_XS_LY", "D_BZ_SSZT", "D_GS_XS_LX", "D_GS_XS_QTLX");
const { D_ZDRGK_GKZT,D_GS_ZDQT_ZT, D_GS_ZDR_RYJB, D_BZ_XB, D_BZ_MZ, D_BZ_XZQHDM, D_GS_ZDR_BK_ZT, D_GS_ZDR_CZZT, D_GS_BQ_ZL, D_GS_BQ_LB, D_GS_BQ_LX, D_GS_ZDR_YJDJ, D_GS_BK_SSJZ, D_GS_BK_SQLX, D_BZ_SF, D_GS_XS_LY, D_BZ_SSZT, D_GS_XS_LX, D_GS_XS_QTLX } =
proxy.$dict('D_ZDRGK_GKZT',"D_GS_ZDQT_ZT", "D_GS_ZDR_RYJB", "D_BZ_XB", "D_BZ_MZ", "D_BZ_XZQHDM", "D_GS_ZDR_BK_ZT", "D_GS_ZDR_CZZT", "D_GS_BQ_ZL", "D_GS_BQ_LB", "D_GS_BQ_LX", "D_GS_ZDR_YJDJ", "D_GS_BK_SSJZ", "D_GS_BK_SQLX", "D_BZ_SF", "D_GS_XS_LY", "D_BZ_SSZT", "D_GS_XS_LX", "D_GS_XS_QTLX");
const obj = ref({});
const showzxs = ref(false);
const zxsDilof = ref();
@ -176,22 +176,16 @@ const pageData = reactive({
},
controlsWidth: 250,
tableColumn: [
{ label: "姓名", prop: "ryXm", width: 150 },
{ label: "性别", prop: "ryXb", showSolt: true, width: 100 },
{ label: "籍贯", prop: "ryJg", showSolt: true, width: 100 },
{ label: "身份证", prop: "rySfzh", width: 200 },
{ label: "民族", prop: "ryMz", showSolt: true, width: 100 },
{ label: "户籍地区划", prop: "hjdQh", showSolt: true, width: 150 },
{ label: "户籍派出所", prop: "hjdPcsmc", width: 200 },
{ label: "户籍地详址", prop: "hjdXz", width: 200 },
{ label: "标签", prop: "bqList", showSolt: true, width: 400, showOverflowTooltip: true },
{ label: "管辖单位", prop: "gxSsbmmc", width: 200 },
{ label: "人员级别", prop: "zdrRyjb", showSolt: true, width: 130 },
{ label: "管控原因", prop: "zdrLkyy", width: 200, showOverflowTooltip: true },
{ label: "管控状态", prop: "zdrBkZt", width: 200, showOverflowTooltip: true },
{ label: "处置状态", prop: "zdrCzzt", showSolt: true },
{ label: "审核状态", prop: "zdrZt", showSolt: true },
{ label: "状态", prop: "xtSjzt", showSolt: true },
{ label: "姓名", prop: "ryXm",width: 100 },
{ label: "性别", prop: "ryXb", showSolt: true, width: 80 },
{ label: "身份证", prop: "rySfzh", width: 170 },
{ label: "民族", prop: "ryMz", showSolt: true, width: 80 },
{ label: "户籍派出所", prop: "hjdPcsmc" },
{ label: "标签", prop: "bqList", showSolt: true, showOverflowTooltip: true },
{ label: "管辖单位", prop: "gxSsbmmc" },
{ label: "管控状态", prop: "zdrBkZt", showOverflowTooltip: true,showSolt: true, width: 100 },
{ label: "审核状态", prop: "zdrZt", showSolt: true, width: 100 },
{ label: "入库时间", prop: "zdrRkkssj", },
]
});

View File

@ -65,7 +65,7 @@
<DictTag :tag="false" :value="row.zdrRyjb" :options="D_GS_ZDR_RYJB" />
</template>
<template #zdrBkZt="{ row }">
<DictTag :tag="false" :value="row.zdrBkZt" :options="D_GS_ZDR_BK_ZT" />
<DictTag :tag="false" :value="row.zdrBkZt" :options="D_ZDRGK_GKZT" />
</template>
<template #zdrCzzt="{ row }">
<DictTag :tag="false" :value="row.zdrCzzt" :options="D_GS_ZDR_CZZT" />
@ -96,7 +96,7 @@
</div>
<!-- 详情 -->
<AddForm ref="addFormDiloag" @updateDate="getList"
:dic="{ D_GS_ZDR_RYJB, D_BZ_XB, D_BZ_MZ, D_BZ_XZQHDM, D_GS_ZDR_BK_ZT, D_GS_ZDR_CZZT, D_GS_BQ_ZL, D_GS_BQ_LB, D_GS_BQ_LX, D_GS_ZDR_YJDJ, D_GS_BK_SSJZ }" />
:dic="{ D_GS_ZDR_RYJB, D_BZ_XB, D_BZ_MZ, D_BZ_XZQHDM, D_ZDRGK_GKZT, D_GS_ZDR_CZZT, D_GS_BQ_ZL, D_GS_BQ_LB, D_GS_BQ_LX, D_GS_ZDR_YJDJ, D_GS_BK_SSJZ }" />
<!-- 选择用户 -->
<ChooseUser v-model="chooseUserVisible" @choosedUsers="handleUserSelected" :roleIds="roleIds" />
<!-- 转线索 -->
@ -120,8 +120,8 @@ import { useRouter, useRoute } from 'vue-router'
const router = useRouter()
const route = useRoute()
const { proxy } = getCurrentInstance();
const { D_GS_ZDQT_ZT, D_GS_ZDR_RYJB, D_BZ_XB, D_BZ_MZ, D_BZ_XZQHDM, D_GS_ZDR_BK_ZT, D_GS_ZDR_CZZT, D_GS_BQ_ZL, D_GS_BQ_LB, D_GS_BQ_LX, D_GS_ZDR_YJDJ, D_GS_BK_SSJZ, D_GS_BK_SQLX, D_BZ_SF, D_GS_XS_LY, D_BZ_SSZT, D_GS_XS_LX, D_GS_XS_QTLX } =
proxy.$dict("D_GS_ZDQT_ZT", "D_GS_ZDR_RYJB", "D_BZ_XB", "D_BZ_MZ", "D_BZ_XZQHDM", "D_GS_ZDR_BK_ZT", "D_GS_ZDR_CZZT", "D_GS_BQ_ZL", "D_GS_BQ_LB", "D_GS_BQ_LX", "D_GS_ZDR_YJDJ", "D_GS_BK_SSJZ", "D_GS_BK_SQLX", "D_BZ_SF", "D_GS_XS_LY", "D_BZ_SSZT", "D_GS_XS_LX", "D_GS_XS_QTLX");
const { D_GS_ZDQT_ZT, D_GS_ZDR_RYJB, D_BZ_XB, D_BZ_MZ, D_BZ_XZQHDM, D_ZDRGK_GKZT, D_GS_ZDR_CZZT, D_GS_BQ_ZL, D_GS_BQ_LB, D_GS_BQ_LX, D_GS_ZDR_YJDJ, D_GS_BK_SSJZ, D_GS_BK_SQLX, D_BZ_SF, D_GS_XS_LY, D_BZ_SSZT, D_GS_XS_LX, D_GS_XS_QTLX } =
proxy.$dict("D_GS_ZDQT_ZT", "D_GS_ZDR_RYJB", "D_BZ_XB", "D_BZ_MZ", "D_BZ_XZQHDM", "D_ZDRGK_GKZT", "D_GS_ZDR_CZZT", "D_GS_BQ_ZL", "D_GS_BQ_LB", "D_GS_BQ_LX", "D_GS_ZDR_YJDJ", "D_GS_BK_SSJZ", "D_GS_BK_SQLX", "D_BZ_SF", "D_GS_XS_LY", "D_BZ_SSZT", "D_GS_XS_LX", "D_GS_XS_QTLX");
const obj = ref({});
const showzxs = ref(false);
const zxsDilof = ref();
@ -176,22 +176,16 @@ const pageData = reactive({
},
controlsWidth: 250,
tableColumn: [
{ label: "姓名", prop: "ryXm", width: 150 },
{ label: "性别", prop: "ryXb", showSolt: true, width: 100 },
{ label: "籍贯", prop: "ryJg", showSolt: true, width: 100 },
{ label: "身份证", prop: "rySfzh", width: 200 },
{ label: "民族", prop: "ryMz", showSolt: true, width: 100 },
{ label: "户籍地区划", prop: "hjdQh", showSolt: true, width: 150 },
{ label: "户籍派出所", prop: "hjdPcsmc", width: 200 },
{ label: "户籍地详址", prop: "hjdXz", width: 200 },
{ label: "标签", prop: "bqList", showSolt: true, width: 400, showOverflowTooltip: true },
{ label: "管辖单位", prop: "gxSsbmmc", width: 200 },
{ label: "人员级别", prop: "zdrRyjb", showSolt: true, width: 130 },
{ label: "管控原因", prop: "zdrLkyy", width: 200, showOverflowTooltip: true },
{ label: "管控状态", prop: "zdrBkZt", width: 200, showOverflowTooltip: true },
{ label: "处置状态", prop: "zdrCzzt", showSolt: true },
{ label: "审核状态", prop: "zdrZt", showSolt: true },
{ label: "状态", prop: "xtSjzt", showSolt: true },
{ label: "姓名", prop: "ryXm",width: 100 },
{ label: "性别", prop: "ryXb", showSolt: true, width: 80 },
{ label: "身份证", prop: "rySfzh", width: 170 },
{ label: "民族", prop: "ryMz", showSolt: true, width: 80 },
{ label: "户籍派出所", prop: "hjdPcsmc" },
{ label: "标签", prop: "bqList", showSolt: true, showOverflowTooltip: true },
{ label: "管辖单位", prop: "gxSsbmmc" },
{ label: "管控状态", prop: "zdrBkZt", showOverflowTooltip: true,showSolt: true, width: 100 },
{ label: "审核状态", prop: "zdrZt", showSolt: true, width: 100 },
{ label: "入库时间", prop: "zdrRkkssj", },
]
});

View File

@ -1,645 +1,40 @@
<template>
<div>
<!-- 搜索 -->
<div ref="searchBox" class="mt10">
<Searchs :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount" />
</div>
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
<template #left>
<el-button type="primary" @click="addEdit('add')" size="small">
<el-icon class="vertical-middle">
<CirclePlus />
</el-icon>
<span class="vertical-middle">新增</span>
</el-button>
<el-button type="primary" @click="dologCancel()" size="small">
<el-icon class="vertical-middle">
<CirclePlus />
</el-icon>
<span class="vertical-middle">导出</span>
</el-button>
<el-button type="primary" :disabled="ids.length === 0" @click="handleSumbit(ids)" v-if="qxkz.deptLevel != '01'"
size="small">
<el-icon class="vertical-middle">
<CirclePlus />
</el-icon>
<span class="vertical-middle">上报</span>
</el-button>
<el-button type="primary" :disabled="ids.length === 0" @click="delDictItem(ids)" size="small">
<el-icon class="vertical-middle">
<CirclePlus />
</el-icon>
<span class="vertical-middle">删除</span>
</el-button></template>
</PageTitle>
<!-- 表格 -->
<div class="tabBox" :style="{ height: (pageData.tableHeight + 40) + 'px' }">
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth"
@chooseData="chooseData" @handleCellClick="openXxqk">
<template #qblx="{ row }">
<DictTag :tag="false" :value="row.qblx" :options="D_GS_XS_LX" />
<PageTitle :malginLeft="10" :height="35" backgroundColor="#ffff" :marginBottom="5" :marginTop="5">
<template #left>
<el-button size="small" v-for="el in tabBtn" :type="tabActive==el?'primary':''" @click="tabActive=el" :key="el">{{ el }}</el-button>
</template>
<template #qbly="{ row }">
<DictTag :tag="false" :value="row.qbly" :options="D_BZ_CJLX" />
</template>
<template #czzt="{ row }">
<DictTag :tag="false" :value="row.czzt" :options="D_BZ_QBCZZT" />
</template>
<template #lczt="{ row }">
<DictTag :tag="false" :value="row.lczt" :options="D_BZ_LCZT" />
</template>
<template #cyqk="{ row }">
<el-link v-if="isShowBtn('采纳')" size="small" type="danger" @click="cnMsg(row)"
:disabled="butcontroll('04', row.lczt)">采纳</el-link>
<!-- 只有上报状态才能回退 -->
<el-link v-if="isShowBtn('回退')" size="small" type="danger" @click="rollbackNewspapers(row)"
:disabled="butcontroll('04', row.lczt)">回退</el-link>
</template>
<!-- 操作 -->
<!-- "市情指挥人员": ["采纳", "回退", "分组", "转线索", "转合成", "转会商", "打标签", "修改", "详情", "关注部门", "送审"], -->
<!-- "县情指人员": ["上报", "回退", "修改", "详情", "送审"], -->
<template #controls="{ row }">
<el-link v-if="isShowBtn('送审', row) && qxkz.deptLevel == '01'" :disabled="row.sldshzt != '00'||row.lczt == '04'" size="small"
type="primary" @click="postXxcjXxcjTjsh(row)">送审</el-link>
<el-link v-if="isShowBtn('送审', row) && qxkz.deptLevel == '02'" :disabled="row.xldshzt != '00'||row.lczt == '04'" size="small"
type="primary" @click="postXxcjXxcjTjsh(row)">送审</el-link>
<!-- 01 提交 02 上报县局 03 上班市局 04 采纳 05 退回 06 打标签 07 转合成 08 转线索 09 转会商v-if="qxkz.deptLevel == '01'" -->
<!-- 在提交和退回得状态才能进行上报 -->
<el-link v-if="isShowBtn('上报')" size="small" type="primary" @click="appearNewspapers(row)"
:disabled="row.xldshzt != '02'||(row.lczt != '02'||row.lczt != '03')">上报</el-link>
<el-link v-if="isShowBtn('分组')" size="small" type="primary" @click="opneMsg(row)"
:disabled="row.sldshzt != '02'">分组</el-link>
<!-- 只有领导有肯定 -->
<!-- <el-link v-if="isShowBtn('肯定')" size="small" type="primary" @click="affirm(row)">肯定</el-link> -->
<el-link v-if="isShowBtn('删除')" size="small" type="primary" @clic.stopk="delDictItem(row.id)">删除</el-link>
<el-link v-if="isShowBtn('修改', row)" size="small" type="primary" @click="addEdit('edit', row)">修改</el-link>
<el-link v-if="isShowBtn('续报', row)" size="small" type="primary" @click="addEdit('followUpReport', row)">续报</el-link>
<el-link v-if="isShowBtn('详情')" size="small" type="primary" @click="addEdit('info', row)">详情</el-link>
<!-- 所有状态都能进行转线索 -->
<el-link v-if="isShowBtn('转线索')" size="small" type="primary" @click="FollowUpOnLeads(row)"
:disabled="row.sldshzt != '02' ">转线索</el-link>
<!-- 所有状态都能进行转合成 -->
<!-- <el-link v-if="isShowBtn('转合成')" size="small" type="primary" @click="openFkDialogszl(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('关注部门')" :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>
</template>
</MyTable>
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
...pageData.pageConfiger,
total: pageData.total
}"></Pages>
</div>
<!-- 新增 -->
<AddForm ref="detailDiloag" @getList="getList" :titleData="titleData" :dict="{ D_BZ_LCZT, D_BZ_SSSHZT }" />
</PageTitle>
<Infomation v-if="tabActive=='信息采集'" />
<FQXX v-else-if="tabActive=='蜂群信息'" />
</div>
<ExportFile v-model="exportFileModel" :tableColumn="tableColumn" :dict="{ D_GS_XS_LY, D_GS_XS_LX, D_GS_XS_LX }"
:dataModel="pageData.tableData" />
<MakeTag v-model="chooseRow" :dataList="dataList" :dict="{ D_BZ_CJLX, D_BZ_QBCZZT, D_GS_XS_LX, D_BZ_BQJB }"
@getList="getList" />
<Fszl v-model="fszlShow" path="/xxcj/sendFqzl" :itemData="dataList" />
<CustomTag v-model="customTagShow" :dataList="dataList" @getList="getList" :dict="{ D_XXCJ_BQLX }" />
<Configuration v-model="configurationShow" :dataList="dataList" @getList="getList" />
<!-- 转会商 -->
<transferMerchant v-if="isShowTransferMerchantTc" :row="currRow" ref="transferMerchantRef" title="转会商"
@close="isShowTransferMerchantTc = false" @ok="getList" />
</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 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 Infomation from "./infomation.vue";
import FQXX from "@/views/backOfficeSystem/InformationReporting/index.vue";
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
import MakeTag from '../components/maketag.vue'
import ExportFile from './components/exportFile.vue'
import { ElMessageBox } from 'element-plus'
import { getItem } from '@//utils/storage.js'
import Fszl from '@/views/backOfficeSystem/HumanIntelligence/components/fszl.vue'
import CustomTag from '../components/customTag.vue'
import Configuration from '../components/configuration.vue'
import transferMerchant from "./components/transferMerchant.vue";
import { isShiQingZhi } from "@/utils/auth.js"
const { proxy } = getCurrentInstance();
const { D_GS_XS_LY, D_BZ_SSSHZT, D_BZ_SSZT, D_BZ_SF, D_GS_XS_LX, D_BZ_BQJB,
D_GS_XS_QTLX, D_GS_ZDQT_LB,
D_BZ_BMJB, D_BZ_CLPP, D_BZ_CLYS, D_BZ_CLLX, D_BZ_XZQHDM, D_BZ_QBCZZT, D_BZ_CJLX, D_BZ_LCZT,
D_XXCJ_BQLX } =
proxy.$dict("D_BZ_BMJB", "D_GS_XS_LY", 'D_BZ_SSSHZT',
"D_BZ_SSZT", "D_BZ_SF", "D_GS_XS_LX", "D_GS_XS_QTLX",
"D_GS_ZDQT_LB", "D_BZ_CLPP", "D_BZ_CLYS", "D_BZ_CLLX", "D_BZ_XZQHDM", "D_BZ_QBCZZT", "D_BZ_CJLX", "D_BZ_BQJB", "D_BZ_LCZT", "D_XXCJ_BQLX"); //获取字典数据
const detailDiloag = ref();
const searchBox = ref(); //搜索框
const ids = ref([])
const tableList = ref([]);
const chooseData = (val) => {
ids.value = val.map(item => {
return item.id
})
tableList.value = val
}
/** 市情指 */
const cityIntelligenceCommand = isShiQingZhi()
const currRow = ref({})
const transferMerchantRef = ref()
const isShowTransferMerchantTc = ref(false)
const isShow = ref(false)
const searchConfiger = ref([
{ label: "录入人", prop: 'xssbr', placeholder: "请输入录入人", showType: "input" },
{ label: "录入单位", prop: "ssbmdm", placeholder: "请选择录入单位", showType: "department" },
{ label: "编号", prop: 'xsBh', placeholder: "请输入编号", showType: "input" },
{ label: "时间", prop: "startTime", placeholder: "请选择时间", showType: "daterange" },
{ label: "情报标题", prop: 'qbmc', placeholder: "请输入情报标题", showType: "input" },
{ label: "标签内容", prop: 'bqdmList', placeholder: "请选择标签内容", showType: "select", options: D_XXCJ_BQLX,multiple:true},
{ label: "标签级别", prop: 'qbjb', placeholder: "请选择标签级别", showType: "select", options: D_BZ_BQJB },
{ label: "情报处置状态", prop: 'lczt', placeholder: "请选择处置状态", showType: "select", options: D_BZ_LCZT },
{ label: "关键字", prop: 'keyword', placeholder: "请输入关键字", showType: "input" },
]);
const pageData = reactive({
tableData: [],
keyCount: 0,
tableConfiger: {
rowHieght: 61,
showSelectType: "checkBox",
loading: false
},
total: 0,
pageConfiger: {
pageSize: 20,
pageCurrent: 1
},
controlsWidth: 300,
tableColumn: [
{ label: "情报上报时间", prop: "sxsbsj" },
{ label: "情报编号", prop: "xsBh" },
{ label: "情报标题", prop: "qbmc" },
{ label: "情报来源", prop: "qbly", showSolt: true },
{ label: "上报人", prop: "xssbr" },
{ label: "上报单位", prop: "ssbm" },
{ label: "流程状态", prop: "lczt", showSolt: true },
{ label: "采用情况", prop: "cyqk", showSolt: true },
// { label: "标签内容", prop: "lczt", showSolt: true },
// { label: "消息状态", prop: "czzt", showSolt: true },
]
});
const queryFrom = ref({});
const chooseRow = ref(false)
const dataList = ref()
// 采纳
const cnMsg = (item) => {
// if ( qxkz.depBool) {
proxy.$confirm("确定要采纳", "警告", { type: "warning" }).then(() => {
xxcjUpdateCzlc({ id: item.id, lczt: '04' }).then(res => {
proxy.$message({ type: "success", message: "采纳成功" });
getList();
})
}).catch(() => { });
// }
}
// 回退
const rollbackNewspapers = (item) => {
// if (item.lczt == '04') {
// proxy.$message({
// message: '已经采纳的信息无法回退',
// type: 'warning',
// showClose: true,
// })
// return
// }
// if (item.lczt == '03') {
// proxy.$message({
// message: '无法回退市局上报信息',
// type: 'warning',
// showClose: true,
// })
// return
// }
if (item.qbjb == '00') {
ElMessageBox.prompt('请输入回退原因', '警告', {
confirmButtonText: '确定',
cancelButtonText: '取消',
})
.then(({ value }) => {
xxcjUpdateCzlc({ id: item.id, lczt: '05', czthyy: value }).then(res => {
proxy.$message({ type: "success", message: "回退成功" });
getList();
})
})
.catch(() => {
})
} else {
proxy.$message({
message: '只能回退已上报的情报',
type: 'warning',
showClose: true,
})
}
}
// 上报
const appearNewspapers = (item) => {
if ((item.lczt == '01' || item.lczt == '05' || item.lczt == '02') && item.qbjb == '00' && qxkz.deptLevel != '01') {
proxy.$confirm("确定要上报", "警告", { type: "warning" }).then(() => {
let promes = {}
if (qxkz.deptLevel == '02') {
promes = { id: item.id, lczt: '03' }
} else {
promes = { id: item.id, lczt: '02' }
}
xxcjUpdateCzlc(promes).then(res => {
proxy.$message({ type: "success", message: "上报成功" });
getList();
})
}).catch(() => { });
} else {
proxy.$message({ type: "warning", message: "市局无法进行上报" });
}
}
// 分组
const opneMsg = (item) => {
chooseRow.value = true
dataList.value = [item]
}
// 打标签
const customTagShow = ref(false)
const openCustomTag = (item) => {
if (qxkz.depBool) {
customTagShow.value = true
dataList.value = item
} else {
proxy.$message.warning('暂无权限')
}
}
// 肯定
const affirm = (item) => {
proxy.$confirm("确定要肯定吗?", "警告", { type: "warning" }).then(() => {
xxcjXxqd({ ids: item.id }).then(res => {
proxy.$message({ type: "success", message: "肯定成功" });
getList();
})
})
}
// 配置关注部门
const configurationShow = ref(false)
const FollowUpOnDept = (item) => {
if (qxkz.depBool) {
configurationShow.value = true
dataList.value = item
} else {
proxy.$message.warning('暂无权限')
}
}
// 批量分组
// const batchMark = () => {
// const listDb = tableList.value.filter(item => item.lczt != '04')
// if (listDb.length == 0) {
// chooseRow.value = true
// dataList.value = tableList.value
// } else {
// proxy.$message({
// message: '还有情报未采纳',
// type: 'warning',
// showClose: true,
// })
// }
// }
const handleSumbit = () => {
const listDb = tableList.value.filter(item => item.czzt != '01' && item.czzt != '04')
if (listDb.length == 0) {
proxy.$confirm("确定要上报", "警告", { type: "warning" }).then(() => {
qbcjPlsb({ ids: ids.value, qbjb: '00' }).then(res => {
proxy.$message({ type: "success", message: "上报成功" });
getList();
})
}).catch(() => { });
} else {
proxy.$message({
message: '请选择正确数据',
type: 'warning',
showClose: true,
})
}
}
// <!-- [04、06、07、08、09] -->打标签
// <!-- [03、05] -->采纳
// <!-- [04] -->回退
// <!-- 01 提交 02 上报县局 03 上班市局 04 采纳 05 退回 06 打标签 07 转合成 08 转线索 09 转会商v-if="qxkz.deptLevel == '01'" -->
const butcontroll = (val, zt) => {
switch (val) {
case '01':
return !(['04', '06', '07', '08', '09'].includes(zt))
case '02':
return !(['03', '05'].includes(zt))
case '03':
return !(['02', '03', '04'].includes(zt))
case '04':
return ([ '04', '05' ,'06', '07', '08', '09'].includes(zt))
}
}
// 搜索
const onSearch = (val) => {
console.log(val.bqdmList);
const promes = {
...pageData.pageConfiger,
...val,
startTime: val.startTime ? val.startTime[0] : '',
endTime: val.endTime ? val.endTime[1] : '',
bqdmList:val.bqdmList?val.bqdmList.join(','):""
}
queryFrom.value = { ...promes }
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;
console.log(pageData.pageConfiger);
let data = { ...pageData.pageConfiger, ...queryFrom.value };
xxcjSelectXxsbPage(data).then(res => {
pageData.tableData = res.records || [];
pageData.total = res.total;
pageData.tableConfiger.loading = false;
}).catch(() => { pageData.tableConfiger.loading = false; })
}
// 删除
const delDictItem = (id) => {
proxy.$confirm("确定要删除", "警告", { type: "warning" }).then(() => {
xxcjDeletes({ ids: Array.isArray(id) ? id : [id] }).then((res) => {
proxy.$message({ type: "success", message: "删除成功" });
getList();
}).catch(() => {
})
}).catch(() => { });
}
// 导出数据
const tableColumn = reactive([
{ label: "上报人姓名", prop: "xssbr" },
{ label: "情报上报时间", prop: "sxsbsj" },
{ label: "情报编号", prop: "xsBh" },
{ label: "情报标题", prop: "qbmc" },
// { label: "情报类型", prop: "qblx", showSolt: true, zd: 'D_GS_XS_LX' },
{ label: "情报来源", prop: "qbly", showSolt: true, zd: 'D_BZ_CJLX' },
// { label: "指向地点", prop: "zxdz" },
// { label: "情报内容", prop: "qbnr", showOverflowTooltip: true },
])
// 详情
const addEdit = (type, row) => {
isShow.value = true;
setTimeout(() => {
detailDiloag.value.init(type, row);
}, 500)
};
const openXxqk = (row) => {
if (row.column.property == 'qbmc' || row.column.property == 'xsBh') {
isShow.value = true;
setTimeout(() => {
detailDiloag.value.init('info', row.row);
}, 500)
}
}
const route = useRoute()
const titleData = ref()
const qxkz = reactive({
deptBizType: '',
deptLevel: '',
roleCode: false,
depBool: false
});
const qxzt = ref(false)
const tabBtn=ref(["信息采集","蜂群信息"])
const tabActive=ref('信息采集')
onMounted(() => {
const { deptBizType, deptLevel } = getItem('deptId')[0]
const Jb = deptLevel[0] == '2' ? '01' : deptLevel[0] == '3' ? '02' : '03'
qxkz.roleCode = getItem('roleList').find(item => item.roleCode == 'JS_666666') != undefined
qxkz.deptBizType = deptBizType
qxkz.deptLevel = Jb
if (deptBizType == '23' && Jb == '01') {
qxkz.depBool = true
} else {
qxkz.depBool = false
}
getRouter()
tabHeightFn()
if (route.query.id) {
detailDiloag.value.init('edit', {
id: route.query.id
});
return
}
getList()
});
const getRouter = () => {
titleData.value = route.meta.title
}
const exportFileModel = ref(false)
const dologCancel = () => {
exportFileModel.value = true;
}
// 搜索栏
// 表格高度计算
const tabHeightFn = () => {
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
window.onresize = function () {
tabHeightFn();
};
};
// 转线索
const FollowUpOnLeads = (row) => {
if (!qxkz.depBool) {
proxy.$message({
message: '权限不足',
type: 'warning',
showClose: true,
})
return
} else {
proxy.$confirm("确定要转线索吗?", "警告", { type: "warning" }).then(() => {
xxcjXxzsx({ ids: Array.isArray(row) ? row.join(',') : row.id }).then(res => {
proxy.$message({ type: "success", message: "转线索成功" });
getList();
})
})
}
}
// 发送指令
const fszlShow = ref(false)
const openFkDialogszl = (row) => {
if (!qxkz.depBool) {
proxy.$message({
message: '权限不足',
type: 'warning',
showClose: true,
})
return
} else {
fszlShow.value = true
dataList.value = row
}
}
/** 获取当前角色 */
function getRole() {
const { deptBizType, deptLevel } = getItem('deptId')[0]
/** 是否是市情指领导 */
const isShiQzLeader = getItem('roleList').find(item => item.roleCode == 'JS_666666') != undefined
if (isShiQzLeader) return '市情指领导'
/** 是否是市情指人员 */
const isShiQz = getItem('roleList').find(item => item.roleCode == 'JS_777777') != undefined
if (isShiQz) return '市情指挥人员'
/** 是否是县情指人员 */
const isXianQz = getItem('roleList').find(item => item.roleCode == 'JS_888888') != undefined
if (isXianQz) return '县情指人员'
return '部门'
}
/** 是否展示按钮 */
const isShowBtn = (btnName, row = {}) => {
/** @type {String} 流程状态01 提交 02 上报县局 03 上班市局 04 采纳 05 退回 06 打标签 08 转线索) */
const lczt = row.lczt
/** 按钮权限 */
const buttonPermissions = {
"市情指领导": ["肯定", "采纳", "回退", "分组", "转线索", "转合成", "转会商", "打标签", "修改", "详情", "关注部门"],
"市情指挥人员": ["采纳", "回退", "分组", "转线索", "转合成", "转会商", "打标签", "修改", "详情", "关注部门", "送审"],
"县情指人员": ["上报", "回退", "修改", "详情", "送审"],
"部门": ["上报", "新增", "修改", "续报", "详情"]
};
const role = getRole(); // 角色
const isHadAuth = buttonPermissions[role]?.includes(btnName) // 当前角色所有会显示的按钮
if (!isHadAuth) return false
// 拦截部分逻辑
if (role === '部门') {
if (btnName === '续报') return lczt != '01'
if (btnName === '修改') return lczt == '01'
// if(btnName === '上报') return lczt == '01'
}
return true
}
const handleTransferMerchant = (row) => {
currRow.value = row
isShowTransferMerchantTc.value = true
}
// 送审
const postXxcjXxcjTjsh = (row) => {
proxy.$confirm("确定要送审吗", "提示", { type: "warning" }).then(() => {
xxcjXxcjTjsh({ xxid: row.id }).then(res => {
proxy.$message({ type: "success", message: "送审成功" });
getList();
})
}).catch(() => { })
}
const getDisabled = (val, zt) => {
console.log(val, zt);
// switch (val) {
// case '01':
// return !(['04', '06', '07', '08', '09'].includes(zt))
// case '02':
// return !(['03', '05'].includes(zt))
// case '03':
// return !(['02', '03', '04'].includes(zt))
// case '04':
// return ([ '04', '05' ,'06', '07', '08', '09'].includes(zt))
// }
}
</script>
<style lang="scss" scoped>
.label-pop {
position: relative;
&::before {
position: absolute;
content: '*';
top: 0;
left: -7px;
color: red;
}
.marks {
padding: 0 4px;
white-space: nowrap;
background: #73acf1;
border-radius: 4px;
color: #fff;
}
</style>
<style>
.el-loading-mask {
background: rgba(0, 0, 0, 0.5) !important;
}
:v-deep .el-dialog {
width: 90% !important;
}
.zdy-model-dialogs {
/* background-color: rgb(50, 148, 214); */
background: url("~@/assets/images/bg46.png") no-repeat center center;
background-size: 100% 100%;
padding: 8px 10px;
box-sizing: border-box;
pointer-events: auto !important;
height: calc(100% - 50px);
overflow: auto;
}
.vertical-middle {
vertical-align: middle;
}
</style>

View File

@ -58,28 +58,32 @@
:disabled="butcontroll('04', row.lczt)">回退</el-link>
</template>
<!-- 操作 -->
<!-- "市情指挥人员": ["采纳", "回退", "分组", "转线索", "转合成", "转会商", "打标签", "修改", "详情", "关注部门", "送审"], -->
<!-- "县情指人员": ["上报", "回退", "修改", "详情", "送审"], -->
<template #controls="{ row }">
<el-link v-if="isShowBtn('送审', row) && qxkz.deptLevel == '01'" :disabled="row.sldshzt != '00'||row.lczt != '04'" size="small"
type="primary" @click="postXxcjXxcjTjsh(row)">送审</el-link>
<el-link v-if="isShowBtn('送审', row) && qxkz.deptLevel == '02'" :disabled="row.xldshzt != '00'||row.lczt != '04'" size="small"
type="primary" @click="postXxcjXxcjTjsh(row)">送审</el-link>
<!-- "市情指挥人员": ["采纳", "回退", "分组", "转线索", "转合成", "转会商", "打标签", "修改", "详情", "关注部门", "送审"], -->
<!-- "县情指人员": ["上报", "回退", "修改", "详情", "送审"], -->
<template #controls="{ row }">
<el-link v-if="isShowBtn('送审', row) && qxkz.deptLevel == '01'"
:disabled="row.sldshzt != '00' || row.lczt != '04'" size="small" type="primary"
@click="postXxcjXxcjTjsh(row)">送审</el-link>
<el-link v-if="isShowBtn('送审', row) && qxkz.deptLevel == '02'"
:disabled="row.xldshzt != '00' || row.lczt != '04'" size="small" type="primary"
@click="postXxcjXxcjTjsh(row)">送审</el-link>
<!-- 01 提交 02 上报县局 03 上班市局 04 采纳 05 退回 06 打标签 07 转合成 08 转线索 09 转会商v-if="qxkz.deptLevel == '01'" -->
<!-- 在提交和退回得状态才能进行上报 -->
<el-link v-if="isShowBtn('上报')" size="small" type="primary" @click="appearNewspapers(row)" :disabled="row.xldshzt != '02'">上报</el-link>
<el-link v-if="isShowBtn('上报')" size="small" type="primary" @click="appearNewspapers(row)"
:disabled="row.xldshzt != '02' || (row.lczt != '02' || row.lczt != '03')">上报</el-link>
<el-link v-if="isShowBtn('分组')" size="small" type="primary" @click="opneMsg(row)"
:disabled="row.sldshzt != '02'">分组</el-link>
<!-- 只有领导有肯定 -->
<!-- <el-link v-if="isShowBtn('肯定')" size="small" type="primary" @click="affirm(row)">肯定</el-link> -->
<el-link v-if="isShowBtn('删除')" size="small" type="primary" @clic.stopk="delDictItem(row.id)">删除</el-link>
<el-link v-if="isShowBtn('修改', row)" size="small" type="primary" @click="addEdit('edit', row)">修改</el-link>
<el-link v-if="isShowBtn('续报', row)" size="small" type="primary" @click="addEdit('followUpReport', row)">续报</el-link>
<el-link v-if="isShowBtn('续报', row)" size="small" type="primary"
@click="addEdit('followUpReport', row)">续报</el-link>
<el-link v-if="isShowBtn('详情')" size="small" type="primary" @click="addEdit('info', row)">详情</el-link>
<!-- 所有状态都能进行转线索 -->
<el-link v-if="isShowBtn('转线索')" size="small" type="primary" @click="FollowUpOnLeads(row)"
:disabled="row.sldshzt != '02' ">转线索</el-link>
:disabled="row.sldshzt != '02'">转线索</el-link>
<!-- 所有状态都能进行转合成 -->
<!-- <el-link v-if="isShowBtn('转合成')" size="small" type="primary" @click="openFkDialogszl(row)"
:disabled="butcontroll('01', row.lczt)">转合成</el-link> -->
@ -87,10 +91,11 @@
<!-- <el-link v-if="isShowBtn('转会商')" size="small" type="primary" @click="handleTransferMerchant(row)"
:disabled="butcontroll('01', row.lczt)">转会商</el-link> -->
<el-link v-if="isShowBtn('关注部门')" :disabled="row.sldshzt != '02'" size="small" type="primary" @click="FollowUpOnDept(row)">关注</el-link>
<el-link v-if="isShowBtn('关注部门')" :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>
:disabled="row.sldshzt != '02'">打标签</el-link>
</template>
</MyTable>
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
@ -166,6 +171,7 @@ const searchConfiger = ref([
{ label: "编号", prop: 'xsBh', placeholder: "请输入编号", showType: "input" },
{ label: "时间", prop: "startTime", placeholder: "请选择时间", showType: "daterange" },
{ label: "情报标题", prop: 'qbmc', placeholder: "请输入情报标题", showType: "input" },
{ label: "标签内容", prop: 'bqdmList', placeholder: "请选择标签内容", showType: "select", options: D_XXCJ_BQLX, multiple: true },
{ label: "标签级别", prop: 'qbjb', placeholder: "请选择标签级别", showType: "select", options: D_BZ_BQJB },
{ label: "情报处置状态", prop: 'lczt', placeholder: "请选择处置状态", showType: "select", options: D_BZ_LCZT },
{ label: "关键字", prop: 'keyword', placeholder: "请输入关键字", showType: "input" },
@ -354,7 +360,7 @@ const handleSumbit = () => {
// <!-- [0406070809] -->
// <!-- [0305] -->
// <!-- [04] -->退
// <!-- 01 02 03 04 05 退 06 07 08 线 09 v-if="qxkz.deptLevel == '01'" -->
// <!-- 01 02 03 04 05 退 06 07 08 线 09 v-if="qxkz.deptLevel == '01'" -->
const butcontroll = (val, zt) => {
switch (val) {
case '01':
@ -364,18 +370,20 @@ const butcontroll = (val, zt) => {
case '03':
return !(['02', '03', '04'].includes(zt))
case '04':
return ([ '04', '05' ,'06', '07', '08', '09'].includes(zt))
return (['04', '05', '06', '07', '08', '09'].includes(zt))
}
}
//
const onSearch = (val) => {
console.log(val.bqdmList);
const promes = {
...pageData.pageConfiger,
...val,
startTime: val.startTime ? val.startTime[0] : '',
endTime: val.endTime ? val.endTime[1] : '',
bqdmList: val.bqdmList ? val.bqdmList.join(',') : ""
}
queryFrom.value = { ...promes }
@ -486,7 +494,7 @@ const dologCancel = () => {
//
const tabHeightFn = () => {
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 290;
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
window.onresize = function () {
tabHeightFn();
};

View File

@ -76675,35 +76675,40 @@ export const centralPoint = [
95.7692249914358,
29.85943760031867
]
}, {
},
{
name: '察隅县',
ssbmdm: '540425000000',
point: [
97.46698612723947,
28.661228694163327
]
}, {
},
{
name: '工布江达县',
ssbmdm: '540421000000',
point: [
93.24660931130188,
29.88459424127838
]
}, {
},
{
name: '朗县',
ssbmdm: '540426000000',
point: [
93.07449497318652,
29.045416229209337
]
}, {
},
{
name: '米林县',
ssbmdm: '540422000000',
point: [
94.21305189935441,
29.21583429482142
]
}, {
},
{
name: '雅下分局',
ssbmdm: '540481450000',
point: [

View File

@ -70,15 +70,12 @@ const disabled = ref(false);
// 初始化数据
const init = (type, row) => {
title.value = type == 'edit' ? '编辑' : '新增'
dialogForm.value = true;
if(type == 'edit'){
}
};
// 根据id查询详情
const getDataById = (id) => {
// qcckGet({id}, "/mosty-gsxt/tbGsxtZdcl/selectByid").then((res) => {
// listQuery.value = res;
// listQuery.value.fjdz = listQuery.value.fjdz?.split(",");
// });
};
// 提交
const submit = () => {
@ -90,9 +87,6 @@ const submit = () => {
return { bqdl: listQuery.value.dlid, bqdm: item.bqDm, bqmc: item.bqMc, bqsm: item.bqSm, bqys: item.bqYs }
})
const promes = [...a, ...b]
// data.fjdz = data.fjdz?.join(",");
let url = title.value == "新增" ? "/mosty-gsxt/gsxt/bqbk/saveList" : "/mosty-gsxt/tbGsxtZdcl/update";
loading.value = true;

View File

@ -139,8 +139,8 @@ const getList = () => {
pageData.tableConfiger.loading = false;
});
};
const AddFrom = () => {
addForm.value.init()
const AddFrom = (type,row) => {
addForm.value.init(type,row)
}
const handleItem = (type,row) => {
proxy.$confirm('确认撤控吗?', '提示', {

View File

@ -25,9 +25,9 @@
<div class="info h20 ellipsis">会议时间{{ item.hskssj }} - {{ item.hsjssj }}</div>
</div>
<div class="mid">
<div class="left">
<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,49 @@
<template>
<div class="detail_box">
<el-descriptions title="审核详情信息" border>
<el-descriptions-item :rowspan="2" label="研判名称" >{{detail.ypmc}}</el-descriptions-item>
<el-descriptions-item label="报告名称">{{detail.bgmc}}</el-descriptions-item>
<el-descriptions-item label="所属部门">{{ detail.ssbm }}</el-descriptions-item>
<el-descriptions-item label="报告类型"><DictTag :tag="false" :value="detail.bglx" :options="D_BZ_YPLX" /></el-descriptions-item>
<el-descriptions-item label="审核状态"><DictTag :tag="false" :value="detail.shzt" :options="D_BZ_XSSHZT" /></el-descriptions-item>
<el-descriptions-item label="创建人姓名">{{ detail.cjrxm }}</el-descriptions-item>
<el-descriptions-item label="创建人身份证号">{{ detail.cjrsfzh }}</el-descriptions-item>
<el-descriptions-item label="报告内容">{{ detail.bgnr }}</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script setup>
import { ref, onMounted, getCurrentInstance } from 'vue'
import { useRoute } from 'vue-router'
import { qcckGet } from "@/api/qcckApi.js";
const { proxy } = getCurrentInstance();
const { D_BZ_YPLX ,D_BZ_XSSHZT } = proxy.$dict('D_BZ_YPFS',"D_BZ_YPLX" ,'D_BZ_XSSHZT')
const route = useRoute();
const detail = ref({});
onMounted(() => {
getDetail();
})
const getDetail = () => {
qcckGet({}, "/mosty-gsxt/gsxtYpbg/" + route.query.id).then((res) => {
detail.value = res || {};
console.log(detail.value);
})
}
</script>
<style lang="scss" scoped>
.detail_box {
padding: 20px 10vw;
box-sizing: border-box;
width: 100%;
height: 100vh;
overflow: hidden;
overflow-y: auto;
}
</style>

View File

@ -0,0 +1,186 @@
<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 }"/>
</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";
import { useRouter } from 'vue-router';
const router = useRouter();
const { proxy } = getCurrentInstance();
const { 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,
},
]
});
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) => {
const url = router.resolve({ path: '/ReviewListSH', query:{id:row.id} });
window.open(url.href, '_blank');
}
// 表格高度计算
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

@ -52,7 +52,7 @@
<!-- 底部按钮 -->
<div class="bottom-actions" v-if="title !== '新增' && listQuery.id && listQuery.ssbmdm == userInfo.deptCode">
<el-button type="primary" size="small" @click="sendNotice" :loading="noticeLoading">下发通知</el-button>
<el-button type="success" size="small" @click="confirmJudgment" :loading="confirmLoading">确认研判</el-button>
<!-- <el-button type="success" size="small" @click="confirmJudgment" :loading="confirmLoading">确认研判</el-button> -->
</div>
</div>

View File

@ -8,26 +8,27 @@
</div>
</div>
<div class="form_cnt">
<FormMessage :formList="formData" v-model="listQuery" ref="elform" :rules="rules">
<template #bgnr>
<el-input v-model="listQuery.bgnr" style="width: 100%" placeholder="请输入关键字" class="input-with-select">
<template #append>
<el-button :icon="Search" type="primary">搜索</el-button>
</template>
</el-input>
</template>
<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">
<!-- 工具栏 -->
<Toolbar style="border-bottom: 1px solid #ccc" :editor="editorRef" :defaultConfig="toolbarConfig"
<Toolbar
style="border-bottom: 1px solid #ccc"
:editor="editorRef"
:defaultConfig="toolbarConfig"
:mode="mode" />
<!-- 编辑器 -->
<Editor :style="`height: 480px; overflow-y: hidden`" :model-value="textContent" :defaultConfig="editorConfig"
:mode="mode" @onCreated="handleCreated" @onChange="handChange" />
<Editor
:style="`height: 480px; overflow-y: hidden`"
v-model="textContent"
:defaultConfig="editorConfig"
:mode="mode"
@onCreated="handleCreated"
@onChange="handChange"
/>
</div>
<div v-if="outRow.id" style="display: flex; justify-content: center;">
<div v-if="listQuery.id" style="display: flex; justify-content: center;">
<!-- <el-button style="display: block;" type="primary" @click="ConsultationShow = true">网上会商</el-button> -->
<el-button style="display: block;" type="primary" @click="downloadWithStyles(textContent)">下载</el-button>
</div>
@ -51,15 +52,12 @@ import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
import { ref, defineExpose, reactive, defineEmits, getCurrentInstance, shallowRef, onBeforeUnmount, watch } from "vue";
import { gsxtYpbgAddEntity, gsxtYpbgEditEntity, gsxtYpbgId } from "@/api/huiShangyp/strategicApi.js"
const emit = defineEmits(["updateDate", 'ok']);
const props = defineProps({
dic: Object,
});
const { proxy } = getCurrentInstance();
const { D_BZ_YPLX } = proxy.$dict("D_BZ_YPLX")
const props = defineProps({});
const ConsultationShow = ref(false)
const showText = ref(false);
const textContent = ref()
const { proxy } = getCurrentInstance();
const editorRef = shallowRef();
const dialogForm = ref(false); //弹窗
const mode = "default";
@ -107,85 +105,68 @@ const rules = reactive({
{ required: true, message: "请输入经验内容", trigger: "blur" }
]
});
const formData = ref();
watch(() =>props.dic.D_BZ_YPLX, (newVal) => {
if(newVal){
formData.value=[
const formData = ref([
{ label: "报告名称", prop: "bgmc", type: "input", width: "100%", blur: setEditorTextContent },
{
label: "报告类型", prop: "bglx", type: "select", width: "100%", options: props.dic.D_BZ_YPLX
label: "报告类型", prop: "bglx", type: "select", width: "100%", options: D_BZ_YPLX
},
{ label: "报告内容", prop: "bgnr", type: "slot", width: "100%", blur: setEditorTextContent },
]
}
})
const listQuery = ref({
bgmc: "",
bgnr: "",
fj: ""
}); //表单
]);
const listQuery = ref({}); //表单
const loading = ref(false);
const elform = ref();
const title = ref("");
/** 外面行数据 */
const outRow = ref({})
// 初始化数据
const init = (type, reportData, row) => {
listQuery.value = {
bgmc: reportData.bgmc,
bgnr: reportData.bgnr,
id: reportData.id,
bglx: reportData.bglx,
}
outRow.value = { ...row }
const init = (type, row) => {
if(row) listQuery.value = JSON.parse(JSON.stringify(row));
dialogForm.value = true;
title.value = type == "add" ? "新增" :type == "edit"? "编辑" : "详情";
setEditorTextContent()
};
const getText = (val, row = {}) => {
const getText = (val) => {
listQuery.value.fj = val.text;
setEditorTextContent()
}
function setEditorTextContent() {
let html = dataBt.value;
html += `<p style="text-align: center;"><span style="font-size: 22px;">${listQuery.value.bgmc || ''}</span></p>`
html += `<p>${listQuery.value.fj || ''}</p>`
textContent.value = html
function stripReportHeader(html) {
const source = typeof html === "string" ? html : "";
if (!source) return "";
const hrMatch = source.match(/<hr\b[^>]*\/?>/i);
if (hrMatch && typeof hrMatch.index === "number") {
return source.slice(hrMatch.index + hrMatch[0].length).trim();
}
if (typeof dataBt.value === "string" && source.startsWith(dataBt.value)) {
return source.slice(dataBt.value.length).trim();
}
return source.trim();
}
// watch(() => listQuery.value, (val) => {
function setEditorTextContent() {
let html = dataBt.value;
html += `<p style="text-align: center;"><span style="font-size: 22px;">${listQuery.value.bgnr || ''}</span></p>`
html += `<p>${listQuery.value.fj || ''}</p>`
textContent.value = html;
}
// },
// {
// deep: true, immediate: true
// })
// 提交
const submit = () => {
elform.value.submit((data) => {
// let url = title.value == "新增" ? "/mosty-gsxt/gsxt/jyfx/add" : "/mosty-gsxt/gsxt/jyfx/edit";
let params = {
elform.value.submit( async (data) => {
loading.value = true;
const params = {
...data,
ypid: outRow.value.id,
ypmc: outRow.value.ypyt
bgnr: stripReportHeader(textContent.value)
};
const apiFun = !listQuery.value.id ? gsxtYpbgAddEntity : gsxtYpbgEditEntity
if (!listQuery.value.id) delete params.id
apiFun(params).then(() => {
const apiFun = !listQuery.value.id ? gsxtYpbgAddEntity : gsxtYpbgEditEntity;
if (!listQuery.value.id) delete params.id;
try {
await apiFun(params);
loading.value = false;
proxy.$message({ type: "success", message: title.value + "成功" });
emit("ok");
close();
}).catch(() => {
} catch (e) {
loading.value = false;
})
}
});
};
//编辑器创建成功
@ -194,9 +175,8 @@ const handleCreated = (editor) => {
};
//内容发生变化
const handChange = (editor) => {
// 判断是否是一个空段落,是空就传空文本
};
onBeforeUnmount(() => {
const editor = editorRef.value;
@ -206,7 +186,6 @@ onBeforeUnmount(() => {
// 关闭
const close = () => {
listQuery.value = {};
loading.value = false;
dialogForm.value = false;
listQuery.value = {}

View File

@ -11,7 +11,7 @@
<el-icon style="vertical-align: middle">
<CirclePlus />
</el-icon>
<span style="vertical-align: middle">自建研判</span>
<span style="vertical-align: middle">创建报告</span>
</el-button>
</template>
</PageTitle>
@ -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'
@ -149,7 +167,6 @@ const getList = () => {
let data = { ...pageData.pageConfiger, ...queryFrom.value};
gsxtYpbgGetPageList(data).then(res => {
console.log(res);
pageData.tableData = res.records || [];
pageData.total = res.total;
pageData.tableConfiger.loading = false;
@ -193,7 +210,6 @@ const selfCreateResearch = (type = 'add') => {
}
/** 创建报告 */
const createReport = (type,row) => {
console.log(row);
reportTc.value.init(type, row)
// currRow.value = { ...row }
// isShowReport.value = true

View File

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

View File

@ -32,9 +32,9 @@
<DictTag :value="row.czzt" :options="D_GSXT_YJXX_CZZT" />
</template>
<template #xwfz>
<el-table-column prop="bqfz" align="center" label="标签分值" />
<el-table-column prop="pzxs" align="center" label="系数" />
<el-table-column prop="xwfz" align="center" label="计算分值"/>
<el-table-column prop="bqfz" width="80" align="center" label="标签分值" />
<el-table-column prop="pzxs" width="60" align="center" label="系数" />
<el-table-column prop="xwfz" width="90" align="center" label="计算分值"/>
</template>
<template #expand="{ props }">
<div class="expand-content" style="max-width: 100%">
@ -146,7 +146,7 @@ const pageData = reactive({
pageSize: 20,
pageCurrent: 1
}, //分页
controlsWidth: 220, //操作栏宽度
controlsWidth: 300, //操作栏宽度
tableColumn: [
{ label: "状态", prop: "czzt", showSolt: true },
{ label: "预警时间", prop: "yjsj" },
@ -154,7 +154,7 @@ const pageData = reactive({
{ label: "身份证号", prop: "sfzh" },
{ label: "标签", prop: "xwms" },
{ label: "接收单位", prop: "ssbm" },
{ label: "活动频次", prop: "xwcs", showSolt: true },
{ label: "活动频次", prop: "xwcs", showSolt: true,width: 90 },
{ label: "预警分值", prop: "xwfz",showSolt: true },
]
});

View File

@ -33,9 +33,9 @@
<DictTag :value="row.czzt" :options="D_GSXT_YJXX_CZZT" />
</template>
<template #sffz>
<el-table-column prop="bqfz" align="center" label="标签分值" />
<el-table-column prop="pzxs" align="center" label="系数" />
<el-table-column prop="sffz" align="center" label="计算分值"/>
<el-table-column prop="bqfz" width="80" align="center" label="标签分值" />
<el-table-column prop="pzxs" width="60" align="center" label="系数" />
<el-table-column prop="sffz" width="90" align="center" label="计算分值"/>
</template>
<template #expand="{ props }">
<div>
@ -119,7 +119,7 @@ const searchConfiger = ref([
{ label: "部门", prop: 'ssbmdm', placeholder: "请选择部门", showType: "department" },
{ label: "级别", prop: 'bqys', placeholder: "请选择级别", showType: "select", options: D_BZ_YJJB },
{ label: "积分段", prop: 'jfd', placeholder: "请选择积分段", showType: "Slot" },
{ label: "预警时间", prop: 'times', showType: "datetimerange" },
{ label: "预警时间", prop: 'times', showType: "datetimerange" },
]);
const queryFrom = ref({});
@ -139,7 +139,7 @@ const pageData = reactive({
pageSize: 20,
pageCurrent: 1
},
controlsWidth: 200,
controlsWidth: 300,
tableColumn: [
{ label: "状态", prop: "czzt", showSolt: true },
{ label: "预警时间", prop: "yjsj" },
@ -147,7 +147,7 @@ const pageData = reactive({
{ label: "身份证号", prop: "sfzh" },
{ label: "标签", prop: "yjbqmc" },
{ label: "接收单位", prop: "ssbm" },
{ label: "活动频次", prop: "sfcs" },
{ label: "活动频次", prop: "sfcs",width:'90' },
{ label: "预警分值", prop: "sffz",showSolt: true },
]
});

View File

@ -69,8 +69,9 @@ const searchBox = ref(); //搜索框
import { holographicProfileJump } from "@/utils/tools.js"
const searchConfiger = ref(
[
{ label: "预警级别", prop: 'yjjbList', placeholder: "请输入姓名", showType: "select", options: D_BZ_YJJB },
{ label: "来源类型", prop: 'yjlxList', placeholder: "请输入身份证号码", showType: "select", options: D_BZ_YJLY,multiple:true },
{ label: "预警级别", prop: 'yjjbList', placeholder: "请选择预警级别", showType: "select", options: D_BZ_YJJB },
{ label: "来源类型", prop: 'yjlxList', placeholder: "请选择来源类型", showType: "select", options: D_BZ_YJLY,multiple:true },
{ label: "身份证号", prop: 'rysfzh', placeholder: "请输入身份证", showType: "input",},
{ label: "部门", prop: 'ssbmdm', showType: "department"},
{ label: "时间", prop: 'timeRange', showType: "datetimerange"},
]);

View File

@ -34,9 +34,9 @@
<DictTag :value="row.czzt" :options="D_GSXT_YJXX_CZZT" />
</template>
<template #sffz>
<el-table-column prop="bqfz" align="center" label="标签分值" />
<el-table-column prop="pzxs" align="center" label="系数" />
<el-table-column prop="sffz" align="center" label="计算分值"/>
<el-table-column prop="bqfz" width="80" align="center" label="标签分值" />
<el-table-column prop="pzxs" width="60" align="center" label="系数" />
<el-table-column prop="sffz" width="90" align="center" label="计算分值"/>
</template>
<template #controls="{ row }">
<el-link type="warning" @click="pushAssess(row)">全息档案</el-link>
@ -133,7 +133,7 @@ const pageData = reactive({
pageSize: 20,
pageCurrent: 1
},
controlsWidth: 200, //操作栏宽度
controlsWidth: 300, //操作栏宽度
tableColumn: [
{ label: "状态", prop: "czzt", showSolt: true },
{ label: "预警时间", prop: "yjsj" ,width: 180},
@ -141,8 +141,8 @@ const pageData = reactive({
{ label: "身份证号", prop: "sfzh" ,width: 180},
{ label: "标签", prop: "yjbqmc" },
{ label: "接收单位", prop: "ssbm" },
{ label: "活动频次", prop: "sfcs" },
{ label: "预警分值", prop: "sffz",showSolt: true },
{ label: "活动频次", prop: "sfcs",width: 90 },
{ label: "预警分值", prop: "sffz",showSolt: true },
]
});

View File

@ -10,7 +10,7 @@
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
<template #sfcs="{ row }">
<span style="color: #0072ff;" @click="handleClick(row)">{{ row.sfcs }}</span>
<span style="color: #0072ff;">{{ row.sfcs }}</span>
</template>
<template #yjjb="{ row }">
<DictTag :value="row.yjjb" :tag="false" :color="bqYs(row.yjjb)" :options="D_BZ_YJJB" />
@ -24,10 +24,6 @@
<template #sffz="{ row }">
<span :style="row.sffz > 100 ? 'color: #ff0000;' : 'color: #0072ff;'">{{ row.sffz }}</span>
</template>
<!-- <template #yjjb="{ row }">
<DictTag :value="row.yjjb" :tag="false" :color="bqYs(row.yjjb)" :options="D_BZ_YJJB" />
</template> -->
<template #yjtp="{ row }">
<template v-if="!row.yjtp || row.yjtp.includes('baidu')">
<img src="@/assets/images/car.png" width="30" height="30" />
@ -91,14 +87,13 @@ const searchConfiger = ref([
{ label: "预警类型", prop: 'yjlxList', placeholder: "请选择预警类型", showType: "select", options: [],multiple:true },
{ label: "预警级别", prop: 'yjjbList', placeholder: "请选择预警级别", showType: "select", options: [],multiple:true },
{ label: "预警类别", prop: 'yjlbList', placeholder: "请选择预警级别", showType: "select", options: [],multiple:true },
{ label: "时间", prop: 'times', showType: "datetimerange" },
{ label: "部门", prop: 'ssbmdm', placeholder: "请选择部门", showType: "department" },
// { label: "号牌类型", prop: 'hplx', placeholder: "请选择号牌类型", showType: "select", options: [] },
]);
const queryFrom = ref({});
const bqLbData = ref({});
const listQuery = reactive({
yjlx: []
})
const pageData = reactive({
tableData: [], //表格数据
keyCount: 0,
@ -118,7 +113,7 @@ const pageData = reactive({
tableColumn: [
{ label: "身份分值", prop: "sffz", showSolt: true },
// { label: "预警图片", prop: "yjtp", showSlot: true, width: 100 },
// { label: "预警时间", prop: "yjsj", showOverflowTooltip: true, width: 150 },
{ label: "预警时间", prop: "yjsj",},
{ label: "姓名", prop: "ryxm", showOverflowTooltip: true },
// { label: "车牌号", prop: "cph", showOverflowTooltip: true },
// { label: "号牌类型", prop: "hplx", showOverflowTooltip: true },
@ -159,25 +154,16 @@ const pushAssess = (val) => {
return holographicProfileJump(val.yjlx,val) // 全息档案跳转
}
// 获取标签大类数据
const gettbGsxtBqglSelectList = (val) => {
tbGsxtBqglSelectList({ sflx: val }).then(res => {
bqLbData.value.bqXl = res
})
}
// 获取数据
const getList = (val) => {
const getList = () => {
pageData.tableConfiger.loading = true;
const promes = {
...val,
...queryFrom.value,
pageCurrent: pageData.pageConfiger.pageCurrent,
pageSize: pageData.pageConfiger.pageSize
}
if(listQuery.yjlxList?.length) promes.yjlxList = listQuery.yjlxList;
if(listQuery.yjjbList?.length) promes.yjjbList = listQuery.yjjbList;
if(listQuery.yjlbList?.length) promes.yjlbList = listQuery.yjlbList;
delete promes.times;
qcckPost(promes, '/mosty-gsxt/tbYjxx/selectYjxxFzPage').then((res) => {
pageData.tableData = res.records || [];
pageData.total = res.total;
@ -217,21 +203,6 @@ const openAddFrom = (row) => {
emitter.emit('openAddFrom', row)
}
const handleClick = (row) => {
}
// 根据身份分值设置行样式
const getRowClassName = (row) => {
if (!row.row.sffz) return '';
const score = Number(row.row.sffz);
if (score >= 90) return 'score-level-high';
if (score >= 70) return 'score-level-medium';
if (score >= 50) return 'score-level-low';
return '';
};
// 表格高度计算
const tabHeightFn = () => {
pageData.tableHeight = window.innerHeight - (searchBox.value?.offsetHeight || 0) - 200;
@ -242,9 +213,9 @@ const tabHeightFn = () => {
// 搜索
const onSearch = (obj) => {
listQuery.yjlxList = obj.yjlxList || null
listQuery.yjjbList = obj.yjjbList || null
listQuery.yjlbList = obj.yjlbList || null
queryFrom.value = {...obj }
queryFrom.value.startTime = obj.times ? obj.times[0] : ''
queryFrom.value.endTime = obj.times ? obj.times[1] : ''
getList()
}

View File

@ -90,14 +90,14 @@ const pageData = reactive({
pageSize: 20,
pageCurrent: 1
}, //分页
controlsWidth: 160, //操作栏宽度
controlsWidth: 100, //操作栏宽度
tableColumn: [
{ label: "状态", prop: "czzt", showSolt: true },
{ label: "预警时间", prop: "yjSj" },
{ label: "预警时间", prop: "yjSj",width:180 },
{ label: "人员姓名", prop: "yjRyxm", },
{ label: "身份证号", prop: "yjRysfzh", },
{ label: "性别", prop: "sex" ,showSolt: true },
{ label: "年龄", prop: "age", showSolt: true },
{ label: "身份证号", prop: "yjRysfzh",width:180 },
{ label: "性别", prop: "sex" ,showSolt: true,width:80 },
{ label: "年龄", prop: "age", showSolt: true,width:80 },
{ label: "预警级别", prop: "yjJb", showSolt: true },
{ label: "人员类别", prop: "bqdl", showSolt: true },
{ label: "细类", prop: "yjbqmc" },

View File

@ -253,73 +253,10 @@ const handleOpenNotification = () => {
}
const makerCenter = () => {
const dw = require("@/assets/point/dingwei.png")
// qcckGet({},'/mosty-gsxt/lzJcjPjdb/selectCount').then(res=>{
// // qcckGet({},'/mosty-gsxt/tbYjxx/selectSsbm').then(res=>{
// emitter.emit('deletePointArea','hm')
// let list = res || [];
// list.forEach(item => {
// (item.jqjb || []).forEach(v=>{
// v.jbmc = D_BZ_JQDJ.value.find(itm => itm.value == v.jbdm).label
// })
// let obj = centralPoint.find(i => i.name == item.ssbm || i.ssbmdm == item.ssbmdm);
// if(obj){
// item.jd = obj.point[0];
// item.wd = obj.point[1];
// }
// })
// allDep.value = list;
// console.log( allDep.value);
// emitter.emit("addPointArea", { coords:list, icon: dw, flag: "hm", size: '14px', showTitle: false, offset: [0, -25] });
// })
qcckGet({}, '/mosty-gsxt/lzJcjPjdb/selectCountNew').then(res => {
console.log(res);
let list = res || [];
list.forEach(item => {
// (item.jqjb || []).forEach(v=>{
// v.jbmc = D_BZ_JQDJ.value.find(itm => itm.value == v.jbdm).label
// })
// console.log(item);
// jbmc:item.jqjb.jbmc
let obj = centralPoint.find(i => i.name == item.ssbm || i.ssbmdm == item.ssbmdm);
if(obj){
item.jd = obj.point[0];
item.wd = obj.point[1];
}
})
let list = res || [];
allDep.value = list;
emitter.emit("addPointArea", { coords:list, icon: dw, flag: "hm", size: '14px', showTitle: false, offset: [0, -25] });
// let obj = centralPoint.find(i => i.name == item.ssbm || i.ssbmdm == item.ssbmdm);
// if(obj){
// item.jd = obj.point[0];
// item.wd = obj.point[1];
// }
// qcckGet({},'/mosty-gsxt/tbYjxx/selectSsbm').then(res=>{
// emitter.emit('deletePointArea','hm')
// let list = res || [];
// list.forEach(item => {
// (item.jqjb || []).forEach(v=>{
// v.jbmc = D_BZ_JQDJ.value.find(itm => itm.value == v.jbdm).label
// })
// let obj = centralPoint.find(i => i.name == item.ssbm || i.ssbmdm == item.ssbmdm);
// if(obj){
// item.jd = obj.point[0];
// item.wd = obj.point[1];
// }
// })
// allDep.value = list;
// console.log( allDep.value);
// emitter.emit("addPointArea", { coords:list, icon: dw, flag: "hm", size: '14px', showTitle: false, offset: [0, -25] });
emitter.emit("addPointArea", { coords:list, icon: dw, flag: "hm", size: '14px', showTitle: false, offset: [0, -25] });
})
}

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(() => {