lcw
This commit is contained in:
@ -111,6 +111,7 @@ import ExportFile from './components/exportFile.vue'
|
||||
import CheckProcess from '../components/checkProcess.vue'
|
||||
import { ElMessageBox } from 'element-plus'
|
||||
import { getItem } from '@//utils/storage.js'
|
||||
import {tbYjxxGetZbtj} from '@/api/yj.js'
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_GS_XS_LY, D_BZ_SSZT, D_BZ_SF, D_GS_XS_LX, D_BZ_BQJB,
|
||||
D_GS_XS_QTLX, D_GS_ZDQT_LB,
|
||||
|
||||
@ -46,7 +46,7 @@ import Footer from './footer.vue'
|
||||
// import useCallModule from '../sdk/call.js'
|
||||
const { proxy } = getCurrentInstance();
|
||||
// const Call = useCallModule()
|
||||
lemon.login.login({
|
||||
window.lemon.login.login({
|
||||
username: "linzhigongan1",
|
||||
password: "linzhigongan1",
|
||||
realm: "puc.com",
|
||||
|
||||
@ -14,20 +14,24 @@
|
||||
<!-- 表格 -->
|
||||
<div class="tabBox">
|
||||
<MyTable :tableData="pageData.tableData" :tableColumn="pageData.tableColumn" :tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger">
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||
<template #xwcs="{ row }">
|
||||
<span style="color: #0072ff;" @click="handleClick(row)">{{ row.xwcs }}</span>
|
||||
</template>
|
||||
<template #bqYs="{ row }">
|
||||
<!-- <div :style="{
|
||||
backgroundColor: bqYs(row.bqys)
|
||||
}"></div> -->
|
||||
|
||||
<DictTag :value="row.bqys" :tag="false" :color="bqYs(row.bqys)" :options="D_GS_SSYJ" />
|
||||
<DictTag :value="row.bqys" :tag="false" :color="bqYs(row.bqys)" :options="D_GS_SSYJ" />
|
||||
</template>
|
||||
<template #czzt="{ row }">
|
||||
<DictTag :value="row.czzt" :options="D_GSXT_YJXX_CZZT" />
|
||||
</template>
|
||||
<template #controls="{ row }">
|
||||
<el-link type="primary">下发指令</el-link>
|
||||
<el-link type="success">查看反馈</el-link>
|
||||
<el-link type="warning" @click="pushAssess(row)">全息档案</el-link>
|
||||
<el-link type="primary" @click="showDetail(row)">转合成</el-link>
|
||||
<el-link type="danger" @click="delDictItem(row.id)">转会商</el-link>
|
||||
<el-link type="success" @click="handleQsFk(row, '签收')" v-if="row.czzt == '01'">签收</el-link>
|
||||
<el-link type="success" @click="handleQsFk(row, '反馈')" v-else-if="row.czzt == '02'">反馈</el-link>
|
||||
<el-link type="success" @click="handleQsFk(row, '查看反馈')" v-else>查看反馈</el-link>
|
||||
<el-link type="primary" @click="delDictItem(row.id)">详情</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
@ -38,6 +42,12 @@
|
||||
</div>
|
||||
<!-- 详情 -->
|
||||
<Detail ref="detailRef"></Detail>
|
||||
<HolographicArchive v-model="assessShow" :dataList="dataList" />
|
||||
<FkDialog @change="getList" lx="02" />
|
||||
<Information v-model="showDialog" title="发送指令" @submit='submit' @close='closeFszl'>
|
||||
<SemdFqzl ref="semdFqzlRef" :itemData="itemData" @handleClose="handleClose" identification="yj"
|
||||
:tacitly="tacitly" />
|
||||
</Information>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
@ -47,11 +57,16 @@ import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import { qcckGet } from "@/api/qcckApi.js";
|
||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||
import HolographicArchive from '@/views/home/components/holographicArchive.vue'
|
||||
import { tbGsxtBqglSelectList } from '@/api/zdr'
|
||||
import Information from "@/views/home/model/information.vue";
|
||||
import SemdFqzl from '@/components/instructionHasBeen/sendFqzl.vue'
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
import FkDialog from "@/views/backOfficeSystem/fourColorManage/warningControl/centerHome/components/fkDialog.vue";
|
||||
import { reactive, ref, onMounted, getCurrentInstance, computed, watch } from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_GS_SSYJ } = proxy.$dict("D_GS_SSYJ"); //获取字典数据
|
||||
const { D_GS_SSYJ ,D_GSXT_YJXX_CZZT} = proxy.$dict("D_GS_SSYJ","D_GSXT_YJXX_CZZT"); //获取字典数据
|
||||
const searchBox = ref(); //搜索框
|
||||
const bqLbData = ref({
|
||||
bqXl: []
|
||||
@ -77,23 +92,26 @@ const pageData = reactive({
|
||||
rowHieght: 61,
|
||||
showSelectType: "null",
|
||||
loading: false,
|
||||
haveControls: false,
|
||||
haveControls: true
|
||||
},
|
||||
total: 0,
|
||||
pageConfiger: {
|
||||
pageSize: 20,
|
||||
pageCurrent: 1
|
||||
}, //分页
|
||||
controlsWidth: 300, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "姓名", prop: "xm" },
|
||||
{ label: "身份证号", prop: "sfzh" },
|
||||
{ label: "电话", prop: "dh" },
|
||||
{ label: "身份证号", prop: "sfzh", width: 200 },
|
||||
{ label: "电话", prop: "dh", width: 150 },
|
||||
{ label: "行为大类", prop: "xldlmc" },
|
||||
{ label: "行为子类", prop: "xwzlmc", showOverflowTooltip: true },
|
||||
{ label: "行为描述", prop: "xwms", showOverflowTooltip: true },
|
||||
{ label: "行为次数", prop: "xwcs", showSolt: true },
|
||||
{ label: "行为颜色", prop: "bqYs", showSolt: true },
|
||||
{ label: "行为分值", prop: "xwfz", },
|
||||
{ label: "处置状态", prop: "czzt", showSolt: true },
|
||||
{ label: "所属县局", prop: "ssbm" },
|
||||
]
|
||||
});
|
||||
|
||||
@ -146,7 +164,7 @@ const getList = () => {
|
||||
pageData.total = res.total || 0;
|
||||
pageData.tableConfiger.loading = false;
|
||||
pageData.tableData = res.records.map(item => {
|
||||
return {...item,bqys: '01'}
|
||||
return { ...item, bqys: '01' }
|
||||
}) || [];
|
||||
}).catch(() => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
@ -179,6 +197,60 @@ const bqYs = (val) => {
|
||||
return '#0000ff'
|
||||
}
|
||||
}
|
||||
// 全息档案
|
||||
const assessShow = ref(false)
|
||||
const dataList = ref()
|
||||
const pushAssess = (val) => {
|
||||
assessShow.value = true;
|
||||
dataList.value = val;
|
||||
}
|
||||
|
||||
|
||||
// 发送指令
|
||||
const showDialog = ref(false)
|
||||
const itemData = ref()
|
||||
const showDetail = (item) => {
|
||||
showDialog.value = true;
|
||||
itemData.value = item
|
||||
}
|
||||
const handleClose = () => {
|
||||
showDialog.value = false;
|
||||
}
|
||||
const semdFqzlRef = ref()
|
||||
const tacitly = {
|
||||
title: 'yjbt',
|
||||
instructionContent: 'yjnr'
|
||||
}
|
||||
const submit = () => {
|
||||
semdFqzlRef.value.getsendFqzl()
|
||||
}
|
||||
|
||||
const closeFszl = () => {
|
||||
semdFqzlRef.value.close()
|
||||
}
|
||||
|
||||
// 处理签收
|
||||
const handleQsFk = (val, type) => {
|
||||
switch (type) {
|
||||
case '签收':
|
||||
proxy.$confirm("是否确定要签收?", "警告", { type: "warning" }).then(() => {
|
||||
qcckPost({ id: val.id }, "/mosty-gsxt/yjzxXwyj/yjqs").then(() => {
|
||||
val.czzt = '02'
|
||||
getList()
|
||||
proxy.$message({ type: "success", message: "签收成功" });
|
||||
});
|
||||
})
|
||||
break;
|
||||
case '反馈':
|
||||
case '查看反馈':
|
||||
emitter.emit("openFkDialog", { id: val.id, type });
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 表格高度计算
|
||||
const tabHeightFn = () => {
|
||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
||||
|
||||
@ -1,21 +1,26 @@
|
||||
<template>
|
||||
<el-dialog v-model="showDialog" :append-to-body="true" :destroy-on-close="true" :title="title" :close-on-click-modal="false">
|
||||
<FormMessage v-model="listQuery" :disabled="title == '反馈' ? false : true" :formList="formData" labelWidth="160px" ref="elform" :rules="rules">
|
||||
<template #mbzrmjxm>
|
||||
<MOSTY.Other width="100%" @click="handleChoose('mbzrmjxm')" clearable v-model="listQuery.mbzrmjxm" placeholder="请选择民警" :readonly="true" />
|
||||
</template>
|
||||
<template #czzrmj>
|
||||
<MOSTY.Other width="100%" @click="handleChoose('czzrmj')" clearable v-model="listQuery.czzrmj" placeholder="请选择民警" :readonly="true" />
|
||||
</template>
|
||||
</FormMessage>
|
||||
<template #footer>
|
||||
<div class="flex just-center">
|
||||
<el-button @click="close">取消</el-button>
|
||||
<el-button type="primary" @click="submitForm" :loading="loading" v-if="title == '反馈'">确认</el-button>
|
||||
</div>
|
||||
</template>
|
||||
<el-dialog :draggable="true" v-model="showDialog" :append-to-body="true" :destroy-on-close="true" :title="title"
|
||||
:close-on-click-modal="false">
|
||||
<FormMessage v-model="listQuery" :disabled="title == '反馈' ? false : true" :formList="formData" labelWidth="160px"
|
||||
ref="elform" :rules="rules">
|
||||
<template #mbzrmjxm>
|
||||
<MOSTY.Other width="100%" @click="handleChoose('mbzrmjxm')" clearable v-model="listQuery.mbzrmjxm"
|
||||
placeholder="请选择民警" :readonly="true" />
|
||||
</template>
|
||||
<template #czzrmj>
|
||||
<MOSTY.Other width="100%" @click="handleChoose('czzrmj')" clearable v-model="listQuery.czzrmj"
|
||||
placeholder="请选择民警" :readonly="true" />
|
||||
</template>
|
||||
</FormMessage>
|
||||
<template #footer>
|
||||
<div class="flex just-center">
|
||||
<el-button @click="close">取消</el-button>
|
||||
<el-button type="primary" @click="submitForm" :loading="loading" v-if="title == '反馈'">确认</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
<ChooseUser v-model="chooseUserVisible" v-if="chooseUserVisible" @choosedUsers="handleUserSelected" :roleIds="roleIds" :Single="true" />
|
||||
<ChooseUser v-model="chooseUserVisible" v-if="chooseUserVisible" @choosedUsers="handleUserSelected" :roleIds="roleIds"
|
||||
:Single="true" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
@ -24,10 +29,16 @@ import * as MOSTY from "@/components/MyComponents/index";
|
||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
import FormMessage from "@/components/aboutTable/FormMessage.vue";
|
||||
import { onMounted, reactive, ref ,getCurrentInstance} from 'vue';
|
||||
import { onMounted, reactive, ref, getCurrentInstance,onUnmounted } from 'vue';
|
||||
const props = defineProps({
|
||||
lx: {
|
||||
type: String,
|
||||
default: '01'
|
||||
}
|
||||
})
|
||||
const emit = defineEmits(['change'])
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_BZ_SF ,D_YJXX_CZCSLX,D_YJXX_CZSSXZ,D_YJXX_CKCZJG,D_YJXX_CKZYLX } = proxy.$dict('D_YJXX_CKZYLX','D_BZ_SF','D_YJXX_CZCSLX','D_YJXX_CZSSXZ','D_YJXX_CKCZJG')
|
||||
const { D_BZ_SF, D_YJXX_CZCSLX, D_YJXX_CZSSXZ, D_YJXX_CKCZJG, D_YJXX_CKZYLX } = proxy.$dict('D_YJXX_CKZYLX', 'D_BZ_SF', 'D_YJXX_CZCSLX', 'D_YJXX_CZSSXZ', 'D_YJXX_CKCZJG')
|
||||
const chooseUserVisible = ref(false)
|
||||
const roleIds = ref([])
|
||||
const elform = ref()
|
||||
@ -36,43 +47,43 @@ const loading = ref(false)
|
||||
const choosetype = ref('')
|
||||
const listQuery = ref({})
|
||||
const formData = ref([
|
||||
{ label: "发现目标状态", prop: "mbzt", type: "select",options: D_BZ_SF },
|
||||
{ label: "发现目标责任单位", prop: "mbzrdwdm", type: "department" ,depMc:'mbzrdw'},
|
||||
{ label: "发现目标责任民警", prop: "mbzrmjxm", type: "slot"},
|
||||
{ label: "是否本人", prop: "sfbr", type: "select",options: D_BZ_SF },
|
||||
{ label: "发现目标状态", prop: "mbzt", type: "select", options: D_BZ_SF },
|
||||
{ label: "发现目标责任单位", prop: "mbzrdwdm", type: "department", depMc: 'mbzrdw' },
|
||||
{ label: "发现目标责任民警", prop: "mbzrmjxm", type: "slot" },
|
||||
{ label: "是否本人", prop: "sfbr", type: "select", options: D_BZ_SF },
|
||||
{ label: "处置时间", prop: "czsj", type: "datetime" },
|
||||
{ label: "处置地址", prop: "czdz", type: "textarea",width:'100%'},
|
||||
{ label: "详细地址", prop: "xxdz", type: "textarea",width:'100%' },
|
||||
{ label: "处置责任单位", prop: "czzrdwdm", type: "department",depMc:'czzrdw' },
|
||||
{ label: "处置地址", prop: "czdz", type: "textarea", width: '100%' },
|
||||
{ label: "详细地址", prop: "xxdz", type: "textarea", width: '100%' },
|
||||
{ label: "处置责任单位", prop: "czzrdwdm", type: "department", depMc: 'czzrdw' },
|
||||
{ label: "处置责任民警", prop: "czzrmj", type: "slot" },
|
||||
{ label: "常控处置措施类型", prop: "ckczcslx", type: "select" ,options: D_YJXX_CZCSLX},
|
||||
{ label: "常控处置措施细类", prop: "ckczcsxl", type: "select",options: D_YJXX_CZSSXZ},
|
||||
{ label: "常控处置结果", prop: "ckczjg", type: "select",options: D_YJXX_CKCZJG },
|
||||
{ label: "常控处置措施类型", prop: "ckczcslx", type: "select", options: D_YJXX_CZCSLX },
|
||||
{ label: "常控处置措施细类", prop: "ckczcsxl", type: "select", options: D_YJXX_CZSSXZ },
|
||||
{ label: "常控处置结果", prop: "ckczjg", type: "select", options: D_YJXX_CKCZJG },
|
||||
{ label: "常控立线侦察评估", prop: "cklxzcpg", type: "input" },
|
||||
{ label: "常控立线侦察依据", prop: "cklxzcpgyj", type: "input" },
|
||||
{ label: "常控从事职业类型", prop: "ckzylx", type: "select",options: D_YJXX_CKZYLX },
|
||||
{ label: "是否尿检", prop: "sfnj", type: "radio",options: D_BZ_SF },
|
||||
{ label: "常控不尿检理由", prop: "ckbnjly", type: "textarea",width:'100%' },
|
||||
{ label: "常控处置反馈补充信息", prop: "ckczbcxx", type: "textarea",width:'100%' },
|
||||
{ label: "常控从事职业类型", prop: "ckzylx", type: "select", options: D_YJXX_CKZYLX },
|
||||
{ label: "是否尿检", prop: "sfnj", type: "radio", options: D_BZ_SF },
|
||||
{ label: "常控不尿检理由", prop: "ckbnjly", type: "textarea", width: '100%' },
|
||||
{ label: "常控处置反馈补充信息", prop: "ckczbcxx", type: "textarea", width: '100%' },
|
||||
])
|
||||
|
||||
const rules = reactive({
|
||||
mbzt: [{ required: true, message: "请选择发现目标状态", trigger: "change" }],
|
||||
fxmbzedw: [{ required: true, message: "请选择发现目标责任单位", trigger: "change" }],
|
||||
mbzrmjxm: [{ required: true, message: "请选择发现目标责任民警", trigger: "change" }],
|
||||
sfbr:[{ required: true, message: "请选择是否本人", trigger: "change" }],
|
||||
czsj:[{ required: true, message: "请选择处置时间", trigger: "change" }],
|
||||
czdz:[{ required: true, message: "请选择处置地址", trigger: "blur" }],
|
||||
xxdz:[{ required: true, message: "请选择详细地址", trigger: "blur" }],
|
||||
czzrdwdm:[{ required: true, message: "请选择处置责任单位", trigger: "change" }],
|
||||
czzrmj:[{ required: true, message: "请选择处置责任民警", trigger: "change" }],
|
||||
ckczcslx:[{ required: true, message: "请选择常控处置措施类型", trigger: "change" }],
|
||||
ckczcsxl:[{ required: true, message: "请选择常控处置措施细类", trigger: "change" }],
|
||||
ckczjg:[{ required: true, message: "请输入常控处置结果", trigger: "blur" }],
|
||||
cklxzcpg:[{ required: true, message: "请输入常控立线侦察评估", trigger: "blur" }],
|
||||
cklxzcpgyj:[{ required: true, message: "请输入常控立线侦察依据", trigger: "blur" }],
|
||||
ckzylx:[{ required: true, message: "请选择常控从事职业类型", trigger: "change" }],
|
||||
sfnj:[{ required: true, message: "请选择是否尿检", trigger: "change" }],
|
||||
sfbr: [{ required: true, message: "请选择是否本人", trigger: "change" }],
|
||||
czsj: [{ required: true, message: "请选择处置时间", trigger: "change" }],
|
||||
czdz: [{ required: true, message: "请选择处置地址", trigger: "blur" }],
|
||||
xxdz: [{ required: true, message: "请选择详细地址", trigger: "blur" }],
|
||||
czzrdwdm: [{ required: true, message: "请选择处置责任单位", trigger: "change" }],
|
||||
czzrmj: [{ required: true, message: "请选择处置责任民警", trigger: "change" }],
|
||||
ckczcslx: [{ required: true, message: "请选择常控处置措施类型", trigger: "change" }],
|
||||
ckczcsxl: [{ required: true, message: "请选择常控处置措施细类", trigger: "change" }],
|
||||
ckczjg: [{ required: true, message: "请输入常控处置结果", trigger: "blur" }],
|
||||
cklxzcpg: [{ required: true, message: "请输入常控立线侦察评估", trigger: "blur" }],
|
||||
cklxzcpgyj: [{ required: true, message: "请输入常控立线侦察依据", trigger: "blur" }],
|
||||
ckzylx: [{ required: true, message: "请选择常控从事职业类型", trigger: "change" }],
|
||||
sfnj: [{ required: true, message: "请选择是否尿检", trigger: "change" }],
|
||||
})
|
||||
|
||||
const title = ref('')
|
||||
@ -80,31 +91,46 @@ onMounted(() => {
|
||||
emitter.on("openFkDialog", (val) => {
|
||||
showDialog.value = true;
|
||||
listQuery.value = { yjid: val.id }
|
||||
|
||||
let url = ''
|
||||
console.log(url);
|
||||
switch (props.lx) {
|
||||
case '01':
|
||||
url = '/mosty-gsxt/tbYjxx/getInfo/'
|
||||
break;
|
||||
case '02':
|
||||
url = '/mosty-gsxt/yjzxXwyj/'
|
||||
break;
|
||||
case '03':
|
||||
url = '/mosty-gsxt/yjzxSfyj/'
|
||||
break;
|
||||
case '04':
|
||||
url = '/mosty-gsxt/yjzxZhyj/'
|
||||
break;
|
||||
}
|
||||
title.value = val.type;
|
||||
if(val.type == '查看反馈'){
|
||||
qcckGet({}, "/mosty-gsxt/tbYjxx/getInfo/"+val.id).then((res) => {
|
||||
if (val.type == '查看反馈') {
|
||||
qcckGet({}, url + val.id).then((res) => {
|
||||
let list = res.fkList || []
|
||||
listQuery.value = list.length > 0 ? list[0] : {};
|
||||
listQuery.value = list.length > 0 ? list[0] : {};
|
||||
});
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
const handleChoose = (type)=>{
|
||||
const handleChoose = (type) => {
|
||||
chooseUserVisible.value = true,
|
||||
choosetype.value = type;
|
||||
choosetype.value = type;
|
||||
|
||||
}
|
||||
|
||||
// 选取角色
|
||||
const handleUserSelected = (val) => {
|
||||
switch(choosetype.value){
|
||||
switch (choosetype.value) {
|
||||
case 'mbzrmjxm':
|
||||
listQuery.value.mbzrmjxm = val[0].userName
|
||||
listQuery.value.mbzrmjsfzh = val[0].inDustRialId
|
||||
break;
|
||||
case 'czzrmj':
|
||||
case 'czzrmj':
|
||||
listQuery.value.czzrmj = val[0].userName
|
||||
listQuery.value.czzrmjsfzh = val[0].inDustRialId
|
||||
break;
|
||||
@ -112,13 +138,28 @@ const handleUserSelected = (val) => {
|
||||
|
||||
}
|
||||
|
||||
const submitForm = () =>{
|
||||
elform.value.submit((val)=>{
|
||||
loading.value = true;
|
||||
const prome = {
|
||||
...listQuery.value,
|
||||
const submitForm = () => {
|
||||
elform.value.submit((val) => {
|
||||
loading.value = true;
|
||||
const prome = {
|
||||
...listQuery.value,
|
||||
}
|
||||
qcckPost(prome, "/mosty-gsxt/tbYjxx/yjfk").then(() => {
|
||||
let url = ''
|
||||
switch (props.lx) {
|
||||
case '01':
|
||||
url = '/mosty-gsxt/tbYjxx/yjfk'
|
||||
break;
|
||||
case '02':
|
||||
url = '/mosty-gsxt/yjzxXwyj/yjfk'
|
||||
break;
|
||||
case '03':
|
||||
url = '/mosty-gsxt/yjzxSfyj/yjfk'
|
||||
break;
|
||||
case '04':
|
||||
url = '/mosty-gsxt/yjzxZhyj/yjfk'
|
||||
break;
|
||||
}
|
||||
qcckPost(prome, url).then(() => {
|
||||
loading.value = false;
|
||||
proxy.$message({ type: "success", message: "反馈成功" });
|
||||
emit('change')
|
||||
@ -134,12 +175,16 @@ const close = () => {
|
||||
listQuery.value = {}
|
||||
showDialog.value = false;
|
||||
}
|
||||
|
||||
onUnmounted(() => {
|
||||
emitter.off("openFkDialog")
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.el-form{
|
||||
max-height: 60vh;
|
||||
overflow: hidden;
|
||||
overflow-y: auto;
|
||||
.el-form {
|
||||
max-height: 60vh;
|
||||
overflow: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -0,0 +1,57 @@
|
||||
<template>
|
||||
<el-dialog :title="`组合预警次数详情(${pageData.tableData.length})`" v-model="dialogVisible" width="60%">
|
||||
<MyTable
|
||||
:tableData="pageData.tableData"
|
||||
:tableColumn="pageData.tableColumn"
|
||||
:tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount"
|
||||
:tableConfiger="pageData.tableConfiger"
|
||||
>
|
||||
</MyTable>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { qcckGet } from "@/api/qcckApi.js";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import { ref , reactive , defineExpose} from 'vue'
|
||||
const dialogVisible = ref(false)
|
||||
const pageData = reactive({
|
||||
tableData: [{jqbh:'JQBH-43',bjr:'张三',bjrdh:'15665255545',bjrsfzh:'510156565656525565',yjnr:'xxxxxxxxx',jsj:'2023-08-24 15:00:00'}], //表格数据
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
loading: false,
|
||||
haveControls: false,
|
||||
},
|
||||
tableHeight:600,
|
||||
total: 0,
|
||||
pageConfiger: {
|
||||
pageSize: 20,
|
||||
pageCurrent: 1
|
||||
}, //分页
|
||||
tableColumn: [
|
||||
{ label: "警情编号", prop: "jjdbh"},
|
||||
{ label: "报警人", prop: "bjrmc" },
|
||||
{ label: "报警人电话", prop: "bjdh" },
|
||||
{ label: "报警人身份证", prop: "bjrzjhm"},
|
||||
{ label: "预警内容", prop: "bjnr", showOverflowTooltip: true },
|
||||
{ label: "报警时间", prop: "bjsj", showOverflowTooltip: true },
|
||||
]
|
||||
});
|
||||
const init = (row) => {
|
||||
dialogVisible.value = true;
|
||||
pageData.tableConfiger.loading = true;
|
||||
pageData.tableData = []
|
||||
qcckGet({yjid:row.id},'/mosty-gsxt/yjzxZhyjxq/getPageList').then((res)=>{
|
||||
pageData.tableData = res || [];
|
||||
pageData.tableConfiger.loading = false;
|
||||
}).catch(()=>{
|
||||
pageData.tableConfiger.loading = false;
|
||||
})
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
init
|
||||
})
|
||||
</script>
|
||||
@ -13,26 +13,40 @@
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div class="tabBox">
|
||||
<MyTable
|
||||
:tableData="pageData.tableData"
|
||||
:tableColumn="pageData.tableColumn"
|
||||
:tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount"
|
||||
:tableConfiger="pageData.tableConfiger"
|
||||
:controlsWidth="pageData.controlsWidth"
|
||||
>
|
||||
<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>
|
||||
</template>
|
||||
<template #bqys="{ row }">
|
||||
<DictTag :value="row.bqys" :tag="false" :color="bqYs(row.bqys)" :options="D_GS_SSYJ" />
|
||||
</template>
|
||||
<template #czzt="{ row }">
|
||||
<DictTag :value="row.czzt" :options="D_GSXT_YJXX_CZZT" />
|
||||
</template>
|
||||
<template #controls="{ row }">
|
||||
<el-link type="warning" @click="pushAssess(row)">全息档案</el-link>
|
||||
<el-link type="primary" @click="showDetail(row)">转合成</el-link>
|
||||
<el-link type="danger" @click="delDictItem(row.id)">转会商</el-link>
|
||||
<el-link type="success" @click="handleQsFk(row, '签收')" v-if="row.czzt == '01'">签收</el-link>
|
||||
<el-link type="success" @click="handleQsFk(row, '反馈')" v-else-if="row.czzt == '02'">反馈</el-link>
|
||||
<el-link type="success" @click="handleQsFk(row, '查看反馈')" v-else>查看反馈</el-link>
|
||||
<el-link type="primary" @click="delDictItem(row.id)">详情</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages
|
||||
@changeNo="changeNo"
|
||||
@changeSize="changeSize"
|
||||
:tableHeight="pageData.tableHeight"
|
||||
:pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"
|
||||
></Pages>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"></Pages>
|
||||
</div>
|
||||
</div>
|
||||
<Detail ref="detailRef" />
|
||||
<HolographicArchive v-model="assessShow" :dataList="dataList" />
|
||||
<FkDialog @change="getList" lx="04" />
|
||||
<Information v-model="showDialog" title="发送指令" @submit='submit' @close='closeFszl'>
|
||||
<SemdFqzl ref="semdFqzlRef" :itemData="itemData" @handleClose="handleClose" identification="yj"
|
||||
:tacitly="tacitly" />
|
||||
</Information>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
@ -40,61 +54,65 @@ import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import { qcckGet } from "@/api/qcckApi.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
import { tbYjxxGetZbtj, tbGsxtBqzhSelectList } from '@/api/yj.js'
|
||||
import HolographicArchive from '@/views/home/components/holographicArchive.vue'
|
||||
import Information from "@/views/home/model/information.vue";
|
||||
import SemdFqzl from '@/components/instructionHasBeen/sendFqzl.vue'
|
||||
import FkDialog from "@/views/backOfficeSystem/fourColorManage/warningControl/centerHome/components/fkDialog.vue";
|
||||
import { reactive, ref, onMounted, getCurrentInstance, watch } from "vue";
|
||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||
import Detail from './components/detail.vue'
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
const searchBox = ref();
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const {D_GSXT_YJXX_CZZT} = proxy.$dict("D_GSXT_YJXX_CZZT")
|
||||
// 搜索配置
|
||||
const searchConfiger = ref([
|
||||
{ label: "姓名", prop: 'xm', placeholder: "请输入姓名", showType: "input"},
|
||||
{ label: "身份证号码", prop: 'sfzh', placeholder: "请输入身份证号码", showType: "input"},
|
||||
{ label: "预警等级", prop: 'yjdj', placeholder: "请选择预警等级", showType: "select", options: [
|
||||
{ label: "一级预警", value: "1" },
|
||||
{ label: "二级预警", value: "2" },
|
||||
{ label: "三级预警", value: "3" },
|
||||
{ label: "四级预警", value: "4" }
|
||||
]},
|
||||
{ label: "姓名", prop: 'xm', placeholder: "请输入姓名", showType: "input" },
|
||||
{ label: "身份证号码", prop: 'sfzh', placeholder: "请输入身份证号码", showType: "input" },
|
||||
]);
|
||||
|
||||
const queryFrom = ref({});
|
||||
|
||||
// 页面数据
|
||||
const pageData = reactive({
|
||||
tableData: [],
|
||||
tableData: [{ sfcs: 1 }],
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
showSelectType: "checkBox",
|
||||
loading: false,
|
||||
haveControls: false,
|
||||
haveControls: true,
|
||||
},
|
||||
total: 0,
|
||||
pageConfiger: {
|
||||
pageSize: 20,
|
||||
pageCurrent: 1
|
||||
},
|
||||
controlsWidth: 160,
|
||||
controlsWidth: 300,
|
||||
tableColumn: [
|
||||
{ label: "姓名", prop: "xm" },
|
||||
{ label: "身份证号", prop: "sfzh" },
|
||||
{ label: "身份证号", prop: "sfzh" },
|
||||
{ label: "电话", prop: "dh" },
|
||||
{ label: "组合类型", prop: "zhlx" },
|
||||
{ label: "预警等级", prop: "yjdj" },
|
||||
{ label: "预警原因", prop: "yjyy", showOverflowTooltip: true },
|
||||
{ label: "预警时间", prop: "yjsj" },
|
||||
{ label: "处理状态", prop: "clzt" },
|
||||
{ label: "组合大类", prop: "sfdlmc" },
|
||||
{ label: "组合小类", prop: "sfzlmc" },
|
||||
{ label: "组合次数", prop: "sfcs", showSolt: true },
|
||||
{ label: "标签颜色", prop: "bqys", showSolt: true },
|
||||
{ label: "预警时间", prop: "yjsj" },
|
||||
{ label: "预警分值", prop: "sffz" },
|
||||
{ label: "处置状态", prop: "czzt", showSolt: true },
|
||||
{ label: "所属县局", prop: "ssbm" },
|
||||
]
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
tabHeightFn();
|
||||
getList();
|
||||
gettbGsxtBqglSelectList()
|
||||
});
|
||||
|
||||
const onSearch = (val) => {
|
||||
queryFrom.value = {...val};
|
||||
queryFrom.value = { ...val };
|
||||
pageData.pageConfiger.pageCurrent = 1;
|
||||
getList();
|
||||
};
|
||||
@ -110,16 +128,102 @@ const changeSize = (val) => {
|
||||
};
|
||||
|
||||
const getList = () => {
|
||||
// pageData.tableConfiger.loading = true;
|
||||
pageData.tableConfiger.loading = true;
|
||||
// TODO: 替换为实际的组合预警API接口
|
||||
// qcckGet(queryFrom.value, '/mosty-gsxt/combinedWarning/selectPage').then((res) => {
|
||||
// pageData.tableData = res.records || [];
|
||||
// pageData.total = res.total || 0;
|
||||
// pageData.tableConfiger.loading = false;
|
||||
// }).catch(() => {
|
||||
// pageData.tableConfiger.loading = false;
|
||||
// });
|
||||
tbYjxxGetZbtj(queryFrom.value).then((res) => {
|
||||
pageData.tableData = res.records || [];
|
||||
pageData.total = res.total || 0;
|
||||
pageData.tableConfiger.loading = false;
|
||||
}).catch(() => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
});
|
||||
};
|
||||
const bqYs = (val) => {
|
||||
if (val == '01') {
|
||||
return '#ff0202'
|
||||
} else if (val == '02') {
|
||||
return '#ff8c00'
|
||||
} else if (val == '03') {
|
||||
return '#ffff00'
|
||||
} else if (val == '04') {
|
||||
return '#0000ff'
|
||||
}
|
||||
}
|
||||
const bqLbData = ref({
|
||||
bqXl: []
|
||||
})
|
||||
const gettbGsxtBqglSelectList = (val) => {
|
||||
tbGsxtBqzhSelectList({}).then((res) => {
|
||||
bqLbData.value.bqXl = res.map(item => {
|
||||
return {
|
||||
label: item.bqMc,
|
||||
value: item.bqDm
|
||||
}
|
||||
}) || []
|
||||
})
|
||||
}
|
||||
watch(() => bqLbData.value.bqXl, (res) => {
|
||||
searchConfiger.value.push({
|
||||
label: "组合标签", prop: 'bqmc', placeholder: "请选择组合标签",
|
||||
showType: "select", options: res
|
||||
},)
|
||||
}, { deep: true, immediate: true })
|
||||
|
||||
// 查看详情
|
||||
const detailRef = ref()
|
||||
const handleClick = (row) => {
|
||||
detailRef.value.init(row)
|
||||
}
|
||||
const assessShow = ref(false)
|
||||
const dataList = ref()
|
||||
const pushAssess = (val) => {
|
||||
assessShow.value = true;
|
||||
dataList.value = val;
|
||||
}
|
||||
|
||||
|
||||
// 发送指令
|
||||
const showDialog = ref(false)
|
||||
const itemData = ref()
|
||||
const showDetail = (item) => {
|
||||
showDialog.value = true;
|
||||
itemData.value = item
|
||||
}
|
||||
const handleClose = () => {
|
||||
showDialog.value = false;
|
||||
}
|
||||
const semdFqzlRef = ref()
|
||||
const tacitly = {
|
||||
title: 'yjbt',
|
||||
instructionContent: 'yjnr'
|
||||
}
|
||||
const submit = () => {
|
||||
semdFqzlRef.value.getsendFqzl()
|
||||
}
|
||||
|
||||
const closeFszl = () => {
|
||||
semdFqzlRef.value.close()
|
||||
}
|
||||
|
||||
// 处理签收
|
||||
const handleQsFk = (val, type) => {
|
||||
switch (type) {
|
||||
case '签收':
|
||||
proxy.$confirm("是否确定要签收?", "警告", { type: "warning" }).then(() => {
|
||||
qcckPost({ id: val.id }, "/mosty-gsxt/yjzxZhyj/yjqs").then(() => {
|
||||
val.czzt = '02'
|
||||
getList()
|
||||
proxy.$message({ type: "success", message: "签收成功" });
|
||||
});
|
||||
})
|
||||
break;
|
||||
case '反馈':
|
||||
case '查看反馈':
|
||||
emitter.emit("openFkDialog", { id: val.id, type });
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 表格高度计算
|
||||
const tabHeightFn = () => {
|
||||
|
||||
@ -0,0 +1,57 @@
|
||||
<template>
|
||||
<el-dialog :title="`组合预警次数详情(${pageData.tableData.length})`" v-model="dialogVisible" width="60%">
|
||||
<MyTable
|
||||
:tableData="pageData.tableData"
|
||||
:tableColumn="pageData.tableColumn"
|
||||
:tableHeight="pageData.tableHeight"
|
||||
:key="pageData.keyCount"
|
||||
:tableConfiger="pageData.tableConfiger"
|
||||
>
|
||||
</MyTable>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { qcckGet } from "@/api/qcckApi.js";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import { ref , reactive , defineExpose} from 'vue'
|
||||
const dialogVisible = ref(false)
|
||||
const pageData = reactive({
|
||||
tableData: [{jqbh:'JQBH-43',bjr:'张三',bjrdh:'15665255545',bjrsfzh:'510156565656525565',yjnr:'xxxxxxxxx',jsj:'2023-08-24 15:00:00'}], //表格数据
|
||||
keyCount: 0,
|
||||
tableConfiger: {
|
||||
rowHieght: 61,
|
||||
loading: false,
|
||||
haveControls: false,
|
||||
},
|
||||
tableHeight:600,
|
||||
total: 0,
|
||||
pageConfiger: {
|
||||
pageSize: 20,
|
||||
pageCurrent: 1
|
||||
}, //分页
|
||||
tableColumn: [
|
||||
{ label: "警情编号", prop: "jjdbh"},
|
||||
{ label: "报警人", prop: "bjrmc" },
|
||||
{ label: "报警人电话", prop: "bjdh" },
|
||||
{ label: "报警人身份证", prop: "bjrzjhm"},
|
||||
{ label: "预警内容", prop: "bjnr", showOverflowTooltip: true },
|
||||
{ label: "报警时间", prop: "bjsj", showOverflowTooltip: true },
|
||||
]
|
||||
});
|
||||
const init = (row) => {
|
||||
dialogVisible.value = true;
|
||||
pageData.tableConfiger.loading = true;
|
||||
pageData.tableData = []
|
||||
qcckGet({yjid:row.id},'/mosty-gsxt/yjzxSfyjxq/selectList').then((res)=>{
|
||||
pageData.tableData = res || [];
|
||||
pageData.tableConfiger.loading = false;
|
||||
}).catch(()=>{
|
||||
pageData.tableConfiger.loading = false;
|
||||
})
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
init
|
||||
})
|
||||
</script>
|
||||
@ -9,34 +9,56 @@
|
||||
</div>
|
||||
<!-- 搜索 -->
|
||||
<div ref="searchBox">
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount"></Search>
|
||||
<Search :searchArr="searchConfiger" @submit="onSearch" :key="pageData.keyCount">
|
||||
<template #defaultSlot>
|
||||
<el-select @change="gettbGsxtBqglSelectList" v-model="queryFrom.sfdl" placeholder="请选择身份类型"
|
||||
style="width: 100%">
|
||||
<el-option :label="item.label" :value="item.value" v-for="(item, index) in bqLbData.bqDl" :key="index" />
|
||||
</el-select>
|
||||
</template>
|
||||
<template #nameSlot>
|
||||
<el-select v-model="queryFrom.sfxl" placeholder="请选择身份类型" style="width: 100%">
|
||||
<el-option :label="item.label" :value="item.value" v-for="(item, index) in bqLbData.bqXl" :key="index" />
|
||||
</el-select>
|
||||
</template>
|
||||
</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 #controls="{ row }">
|
||||
<el-link type="primary">下发指令</el-link>
|
||||
<el-link type="success">查看反馈</el-link>
|
||||
<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>
|
||||
</template>
|
||||
<template #bqys="{ row }">
|
||||
<DictTag :value="row.bqys" :tag="false" :color="bqYs(row.bqys)" :options="D_GS_SSYJ" />
|
||||
</template>
|
||||
<template #czzt="{ row }">
|
||||
<DictTag :value="row.czzt" :options="D_GSXT_YJXX_CZZT" />
|
||||
</template>
|
||||
<template #controls="{ row }">
|
||||
<el-link type="warning" @click="pushAssess(row)">全息档案</el-link>
|
||||
<el-link type="primary" @click="showDetail(row)">转合成</el-link>
|
||||
<el-link type="danger" @click="handleQsFk(row)">转会商</el-link>
|
||||
<el-link type="success" @click="handleQsFk(row, '签收')" v-if="row.czzt == '01'">签收</el-link>
|
||||
<el-link type="success" @click="handleQsFk(row, '反馈')" v-else-if="row.czzt == '02'">反馈</el-link>
|
||||
<el-link type="success" @click="handleQsFk(row, '查看反馈')" v-else>查看反馈</el-link>
|
||||
<el-link type="primary" @click="delDictItem(row.id)">详情</el-link>
|
||||
</template>
|
||||
</MyTable>
|
||||
<Pages
|
||||
@changeNo="changeNo"
|
||||
@changeSize="changeSize"
|
||||
:tableHeight="pageData.tableHeight"
|
||||
:pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"
|
||||
></Pages>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
total: pageData.total
|
||||
}"></Pages>
|
||||
</div>
|
||||
</div>
|
||||
<Detail ref="detailRef" />
|
||||
<HolographicArchive v-model="assessShow" :dataList="dataList" />
|
||||
<FkDialog @change="getList" lx="03" />
|
||||
<Information v-model="showDialog" title="发送指令" @submit='submit' @close='closeFszl'>
|
||||
<SemdFqzl ref="semdFqzlRef" :itemData="itemData" @handleClose="handleClose" identification="yj"
|
||||
:tacitly="tacitly" />
|
||||
</Information>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
@ -44,22 +66,26 @@ import PageTitle from "@/components/aboutTable/PageTitle.vue";
|
||||
import Search from "@/components/aboutTable/Search.vue";
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import { qcckGet } from "@/api/qcckApi.js";
|
||||
import HolographicArchive from '@/views/home/components/holographicArchive.vue'
|
||||
import Information from "@/views/home/model/information.vue";
|
||||
import SemdFqzl from '@/components/instructionHasBeen/sendFqzl.vue'
|
||||
import FkDialog from "@/views/backOfficeSystem/fourColorManage/warningControl/centerHome/components/fkDialog.vue";
|
||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||
|
||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||
import { yjzxSfyjSelectList } from "@/api/yj.js";
|
||||
import { tbGsxtBqglSelectList } from '@/api/zdr'
|
||||
import Detail from './components/detail.vue'
|
||||
import { watch } from "vue";
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const searchBox = ref();
|
||||
|
||||
const {D_GSXT_YJXX_CZZT} = proxy.$dict("D_GSXT_YJXX_CZZT")
|
||||
// 搜索配置
|
||||
const searchConfiger = ref([
|
||||
{ label: "姓名", prop: 'xm', placeholder: "请输入姓名", showType: "input"},
|
||||
{ label: "身份证号码", prop: 'sfzh', placeholder: "请输入身份证号码", showType: "input"},
|
||||
{ label: "身份类型", prop: 'sflx', placeholder: "请选择身份类型", showType: "select", options: [
|
||||
{ label: "重点人员", value: "1" },
|
||||
{ label: "在逃人员", value: "2" },
|
||||
{ label: "涉毒人员", value: "3" },
|
||||
{ label: "涉恐人员", value: "4" }
|
||||
]},
|
||||
{ label: "姓名", prop: 'xm', placeholder: "请输入姓名", showType: "input" },
|
||||
{ label: "身份证号码", prop: 'sfzh', placeholder: "请输入身份证号码", showType: "input" },
|
||||
{ label: "标签大类", prop: 'sflx', placeholder: "请选择标签大类", showType: "defaultSlot" },
|
||||
{ label: "标签小类", prop: 'bqxl', placeholder: "请选择标签小类", showType: "nameSlot" },
|
||||
]);
|
||||
|
||||
const queryFrom = ref({});
|
||||
@ -72,33 +98,37 @@ const pageData = reactive({
|
||||
rowHieght: 61,
|
||||
showSelectType: "checkBox",
|
||||
loading: false,
|
||||
// haveControls: false,
|
||||
haveControls: true,
|
||||
},
|
||||
total: 0,
|
||||
pageConfiger: {
|
||||
pageSize: 20,
|
||||
pageCurrent: 1
|
||||
},
|
||||
controlsWidth: 160,
|
||||
controlsWidth: 300, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "姓名", prop: "xm",},
|
||||
{ label: "身份证号", prop: "sfzh", },
|
||||
{ label: "电话", prop: "dh", },
|
||||
{ label: "身份类型", prop: "sflx",},
|
||||
{ label: "身份等级", prop: "sfdj",},
|
||||
{ label: "预警原因", prop: "yjyy", showOverflowTooltip: true },
|
||||
{ label: "预警时间", prop: "yjsj",},
|
||||
{ label: "处理状态", prop: "clzt",},
|
||||
{ label: "姓名", prop: "xm" },
|
||||
{ label: "身份证号", prop: "sfzh" },
|
||||
{ label: "电话", prop: "dh" },
|
||||
{ label: "组合大类", prop: "sfdlmc" },
|
||||
{ label: "组合小类", prop: "sfzlmc" },
|
||||
{ label: "组合次数", prop: "sfcs", showSolt: true },
|
||||
{ label: "标签颜色", prop: "bqys", showSolt: true },
|
||||
{ label: "预警时间", prop: "yjsj" },
|
||||
{ label: "预警分值", prop: "sffz" },
|
||||
{ label: "处置状态", prop: "czzt", showSolt: true },
|
||||
{ label: "所属县局", prop: "ssbm" },
|
||||
]
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
gettbGsxtBqglSelectList()
|
||||
tabHeightFn();
|
||||
getList();
|
||||
});
|
||||
|
||||
const onSearch = (val) => {
|
||||
queryFrom.value = {...val};
|
||||
queryFrom.value = { ...val, ...queryFrom.value };
|
||||
pageData.pageConfiger.pageCurrent = 1;
|
||||
getList();
|
||||
};
|
||||
@ -114,17 +144,118 @@ const changeSize = (val) => {
|
||||
};
|
||||
|
||||
const getList = () => {
|
||||
// pageData.tableConfiger.loading = true;
|
||||
pageData.tableConfiger.loading = true;
|
||||
// TODO: 替换为实际的身份预警API接口
|
||||
// qcckGet(queryFrom.value, '/mosty-gsxt/identityWarning/selectPage').then((res) => {
|
||||
// pageData.tableData = res.records || [];
|
||||
// pageData.total = res.total || 0;
|
||||
// pageData.tableConfiger.loading = false;
|
||||
// }).catch(() => {
|
||||
// pageData.tableConfiger.loading = false;
|
||||
// });
|
||||
yjzxSfyjSelectList(queryFrom.value).then((res) => {
|
||||
pageData.tableData = res.records || [];
|
||||
pageData.total = res.total || 0;
|
||||
pageData.tableConfiger.loading = false;
|
||||
}).catch(() => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
});
|
||||
};
|
||||
// 标签
|
||||
const bqLbData = ref({
|
||||
bqDl: [],
|
||||
bqXl: []
|
||||
})
|
||||
const gettbGsxtBqglSelectList = (val) => {
|
||||
const promes = {
|
||||
bqLx: '01',
|
||||
bqLb: val ? '02' : "01",
|
||||
bqDlId: val ? bqLbData.value.bqDl.find(item => item.value == val)?.id : ""
|
||||
}
|
||||
tbGsxtBqglSelectList(promes).then((res) => {
|
||||
if (val) {
|
||||
queryFrom.value.bqxl = ''
|
||||
bqLbData.value.bqXl = res.data ? res.data.map(item => {
|
||||
return {
|
||||
label: item.bqMc,
|
||||
value: item.bqDm,
|
||||
}
|
||||
}) : []
|
||||
} else {
|
||||
bqLbData.value.bqDl = res ? res.map(item => {
|
||||
return {
|
||||
label: item.bqMc,
|
||||
value: item.bqDm,
|
||||
id: item.id
|
||||
}
|
||||
}) : []
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
watch(() => bqLbData.value.bqXl, (res) => {
|
||||
bqLbData.value.bqXl = res
|
||||
}, { deep: true })
|
||||
|
||||
// 查看详情
|
||||
const detailRef = ref()
|
||||
const handleClick = (row) => {
|
||||
detailRef.value.init(row)
|
||||
}
|
||||
// 处理签收
|
||||
const handleQsFk = (val, type) => {
|
||||
switch (type) {
|
||||
case '签收':
|
||||
proxy.$confirm("是否确定要签收?", "警告", { type: "warning" }).then(() => {
|
||||
qcckPost({ id: val.id }, "/mosty-gsxt//yjzxSfyj/yjqs").then(() => {
|
||||
val.czzt = '02'
|
||||
getList()
|
||||
proxy.$message({ type: "success", message: "签收成功" });
|
||||
});
|
||||
})
|
||||
break;
|
||||
case '反馈':
|
||||
case '查看反馈':
|
||||
emitter.emit("openFkDialog", { id: val.id, type });
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 全息档案
|
||||
const assessShow = ref(false)
|
||||
const dataList = ref()
|
||||
const pushAssess = (val) => {
|
||||
assessShow.value = true;
|
||||
dataList.value = val;
|
||||
}
|
||||
|
||||
// 发送指令
|
||||
const showDialog = ref(false)
|
||||
const itemData = ref()
|
||||
const showDetail = (item) => {
|
||||
showDialog.value = true;
|
||||
itemData.value = item
|
||||
}
|
||||
const handleClose = () => {
|
||||
showDialog.value = false;
|
||||
}
|
||||
const semdFqzlRef = ref()
|
||||
const tacitly = {
|
||||
title: 'yjbt',
|
||||
instructionContent: 'yjnr'
|
||||
}
|
||||
const submit = () => {
|
||||
semdFqzlRef.value.getsendFqzl()
|
||||
}
|
||||
const closeFszl = () => {
|
||||
semdFqzlRef.value.close()
|
||||
}
|
||||
const bqYs = (val) => {
|
||||
if (val == '01') {
|
||||
return '#ff0202'
|
||||
} else if (val == '02') {
|
||||
return '#ff8c00'
|
||||
} else if (val == '03') {
|
||||
return '#ffff00'
|
||||
} else if (val == '04') {
|
||||
return '#0000ff'
|
||||
}
|
||||
}
|
||||
// 表格高度计算
|
||||
const tabHeightFn = () => {
|
||||
pageData.tableHeight = window.innerHeight - searchBox.value.offsetHeight - 250;
|
||||
|
||||
@ -110,15 +110,15 @@ const changeSize = (val) => {
|
||||
};
|
||||
|
||||
const getList = () => {
|
||||
// pageData.tableConfiger.loading = true;
|
||||
pageData.tableConfiger.loading = true;
|
||||
// TODO: 替换为实际的身份预警API接口
|
||||
// qcckGet(queryFrom.value, '/mosty-gsxt/identityWarning/selectPage').then((res) => {
|
||||
// pageData.tableData = res.records || [];
|
||||
// pageData.total = res.total || 0;
|
||||
// pageData.tableConfiger.loading = false;
|
||||
// }).catch(() => {
|
||||
// pageData.tableConfiger.loading = false;
|
||||
// });
|
||||
qcckGet(queryFrom.value, '/mosty-gsxt/identityWarning/selectPage').then((res) => {
|
||||
pageData.tableData = res.records || [];
|
||||
pageData.total = res.total || 0;
|
||||
pageData.tableConfiger.loading = false;
|
||||
}).catch(() => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
});
|
||||
};
|
||||
|
||||
// 表格高度计算
|
||||
@ -134,4 +134,4 @@ const tabHeightFn = () => {
|
||||
.el-loading-mask {
|
||||
background: rgba(0, 0, 0, 0.5) !important;
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@ -20,8 +20,6 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-image>
|
||||
<!-- <el-image :preview-teleported="true" style="width: 80px; height: 110px" :src="row.yjTp"
|
||||
:preview-src-list="[row.yjTp]" /> -->
|
||||
</template>
|
||||
<template #nl="{ row }">
|
||||
{{ IdCard(row.yjRysfzh, 3) }}
|
||||
@ -30,12 +28,27 @@
|
||||
{{ IdCard(row.yjRysfzh, 2) }}
|
||||
</template>
|
||||
<template #xsd="{ row }">
|
||||
90%
|
||||
{{ row.xsd }}%
|
||||
</template>
|
||||
<template #czzt="{ row }">
|
||||
<DictTag v-model:value="row.czzt" :options="props.dict.D_GSXT_YJXX_CZZT" />
|
||||
</template>
|
||||
<template #yjJb="{ row }">
|
||||
<DictTag v-model:value="row.yjJb" :options="props.dict.D_BZ_YJJB" />
|
||||
</template>
|
||||
<!-- 操作 -->
|
||||
<template #controls="{ row }">
|
||||
<el-link type="danger" @click="delDictItem(row.id)">删除</el-link>
|
||||
<el-link type="warning" @click="pushAssess(row)">全息档案</el-link>
|
||||
<el-link type="primary" @click="showDetail(row)">转合成</el-link>
|
||||
<el-link type="danger" @click="delDictItem(row.id)">转会商</el-link>
|
||||
<el-link type="success" @click="handleQsFk(row, '签收')" v-if="row.czzt == '01'">签收</el-link>
|
||||
<el-link type="success" @click="handleQsFk(row, '反馈')" v-else-if="row.czzt == '02'">反馈</el-link>
|
||||
<el-link type="success" @click="handleQsFk(row, '查看反馈')" v-else>查看反馈</el-link>
|
||||
<el-link type="primary" @click="delDictItem(row.id)">详情</el-link>
|
||||
</template>
|
||||
<!-- <el-button type="success" @click="showFeedback(item, '签收')" v-if="item.czzt == '01'">签收</el-button>
|
||||
<el-button type="success" @click="showFeedback(item, '反馈')" v-if="item.czzt == '02'">反馈</el-button>
|
||||
<el-button type="success" @click="showFeedback(item, '查看反馈')" v-if="item.czzt == '03'">查看反馈</el-button> -->
|
||||
</MyTable>
|
||||
<Pages @changeNo="changeNo" @changeSize="changeSize" :tableHeight="pageData.tableHeight" :pageConfiger="{
|
||||
...pageData.pageConfiger,
|
||||
@ -44,19 +57,33 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<HolographicArchive v-model="assessShow" :dataList="dataList" />
|
||||
<FkDialog @change="getList" />
|
||||
<Information v-model="showDialog" title="发送指令" @submit='submit' @close='closeFszl'>
|
||||
<SemdFqzl ref="semdFqzlRef" :itemData="itemData" @handleClose="handleClose" identification="yj"
|
||||
:tacitly="tacitly" />
|
||||
</Information>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import { qcckGet, qcckPost, qcckDelete } from "@/api/qcckApi.js";
|
||||
import { IdCard } from '@/utils/validate.js'
|
||||
import { tbYjxxGetPageList } from '@/api/yj.js'
|
||||
import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||
import HolographicArchive from '@/views/home/components/holographicArchive.vue'
|
||||
import Information from "@/views/home/model/information.vue";
|
||||
import SemdFqzl from '@/components/instructionHasBeen/sendFqzl.vue'
|
||||
import FkDialog from "@/views/backOfficeSystem/fourColorManage/warningControl/centerHome/components/fkDialog.vue";
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const detailDiloag = ref();
|
||||
|
||||
const queryFrom = ref({});
|
||||
const props = defineProps({
|
||||
dict: {
|
||||
type: Object,
|
||||
default: {}
|
||||
}
|
||||
});
|
||||
const pageData = reactive({
|
||||
tableData: [], //表格数据
|
||||
keyCount: 0,
|
||||
@ -64,7 +91,7 @@ const pageData = reactive({
|
||||
rowHieght: 61,
|
||||
showSelectType: "null",
|
||||
loading: false,
|
||||
haveControls: false
|
||||
haveControls: true
|
||||
},
|
||||
|
||||
total: 0,
|
||||
@ -72,20 +99,26 @@ const pageData = reactive({
|
||||
pageSize: 20,
|
||||
pageCurrent: 1
|
||||
}, //分页
|
||||
controlsWidth: 160, //操作栏宽度
|
||||
controlsWidth: 300, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "预警图片", prop: "yjTp", showSolt: true },
|
||||
{ label: "姓名", prop: "yjRyxm" },
|
||||
{ label: "姓名", prop: "yjRyxm", width: 150, showOverflowTooltip: true },
|
||||
{ label: "年龄", prop: "nl", showSolt: true },
|
||||
{ label: "性别", prop: "xb", showSolt: true },
|
||||
{ label: "预警级别", prop: "yjJb" },
|
||||
{ label: "性别", prop: "xb", showSolt: true, width: 100 },
|
||||
{ label: "预警级别", prop: "yjJb", showSolt: true },
|
||||
{ label: "相似度", prop: "xsd", showSolt: true },
|
||||
{ label: "预警时间", prop: "yjSj", showOverflowTooltip: true },
|
||||
{ label: "预警地点", prop: "yjDz", showOverflowTooltip: true },
|
||||
{ label: "预警时间", prop: "yjSj", showOverflowTooltip: true, width: 200 },
|
||||
{ label: "预警地点", prop: "yjDz", showOverflowTooltip: true, width: 200 },
|
||||
{ label: "预警次数", prop: "yjCs", showOverflowTooltip: true },
|
||||
{ label: "布控手机号", prop: "yjRysjh", showOverflowTooltip: true },
|
||||
{ label: "布控车牌号", prop: "yjClcph", showOverflowTooltip: true },
|
||||
{ label: "身份证", prop: "yjRysfzh", showOverflowTooltip: true },
|
||||
{ label: "处置状态", prop: "czzt", showSolt: true, width: 100 },
|
||||
{ label: "布控手机号", prop: "yjRysjh", showOverflowTooltip: true, width: 100 },
|
||||
{ label: "布控车牌号", prop: "yjClcph", showOverflowTooltip: true, width: 100 },
|
||||
{ label: "身份证", prop: "yjRysfzh", showOverflowTooltip: true, width: 200 },
|
||||
|
||||
{ label: "预警标签", prop: "yjbqmc", width: 250 },
|
||||
{ label: "所属部门", prop: "ssbm", width: 100 },
|
||||
{ label: "所属县局", prop: "ssxgaj", width: 100 },
|
||||
{ label: "所属市局", prop: "sssgaj", width: 100 },
|
||||
]
|
||||
});
|
||||
|
||||
@ -96,12 +129,6 @@ const pageData = reactive({
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
tabHeightFn();
|
||||
getList()
|
||||
@ -131,10 +158,55 @@ const getList = (val) => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
})
|
||||
}
|
||||
// 全息档案
|
||||
const assessShow = ref(false)
|
||||
const dataList = ref()
|
||||
const pushAssess = (val) => {
|
||||
assessShow.value = true;
|
||||
dataList.value = val;
|
||||
}
|
||||
// 处理签收
|
||||
const handleQsFk = (val, type) => {
|
||||
switch (type) {
|
||||
case '签收':
|
||||
proxy.$confirm("是否确定要签收?", "警告", { type: "warning" }).then(() => {
|
||||
qcckPost({ id: val.id }, "/mosty-gsxt/tbYjxx/yjqs").then(() => {
|
||||
val.czzt = '02'
|
||||
getList()
|
||||
proxy.$message({ type: "success", message: "签收成功" });
|
||||
});
|
||||
})
|
||||
break;
|
||||
case '反馈':
|
||||
case '查看反馈':
|
||||
emitter.emit("openFkDialog", { id: val.id, type });
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
// 发送指令
|
||||
const showDialog = ref(false)
|
||||
const itemData = ref()
|
||||
const showDetail = (item) => {
|
||||
showDialog.value = true;
|
||||
itemData.value = item
|
||||
}
|
||||
const handleClose = () => {
|
||||
showDialog.value = false;
|
||||
}
|
||||
const semdFqzlRef = ref()
|
||||
const tacitly = {
|
||||
title: 'yjbt',
|
||||
instructionContent: 'yjnr'
|
||||
}
|
||||
const submit = () => {
|
||||
semdFqzlRef.value.getsendFqzl()
|
||||
}
|
||||
const closeFszl = () => {
|
||||
semdFqzlRef.value.close()
|
||||
}
|
||||
function close() {
|
||||
}
|
||||
// 表格高度计算
|
||||
const tabHeightFn = () => {
|
||||
pageData.tableHeight = window.innerHeight - 430;
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
<!-- 搜索 -->
|
||||
<div ref="searchBox" class="searchBox">
|
||||
<el-form :model="listQuery" label-width="auto" :inline="true" ref="searchArr">
|
||||
<el-form-item label="布控类型" prop="yjlx" >
|
||||
<el-form-item label="布控类型" prop="yjlx">
|
||||
<el-select v-model="listQuery.yjlx" placeholder="请选择预警类型">
|
||||
<el-option v-for="item in D_BZ_YJLX" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
@ -31,10 +31,11 @@
|
||||
</div>
|
||||
<!-- 表格 -->
|
||||
<div class="tabBox" :style="{ height: pageData.tableHeight + 'px' }">
|
||||
<el-tabs v-model="activeName" type="card" class="demo-tabs" @tab-click="handleClick" style="position: relative;z-index: 1;">
|
||||
<el-tabs v-model="activeName" type="card" class="demo-tabs" @tab-click="handleClick"
|
||||
style="position: relative;z-index: 1;">
|
||||
<el-tab-pane label="本地预警" name="local">
|
||||
<div style="padding:0 10px;"> <el-button type="primary" @click="exportExcel">导出</el-button></div>
|
||||
<LocalWarning ref="localWarningRef" />
|
||||
<LocalWarning ref="localWarningRef" :dict="{D_GSXT_YJXX_CZZT, D_BZ_YJJB}"/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="区厅预警" name="district">区厅预警</el-tab-pane>
|
||||
</el-tabs>
|
||||
@ -45,27 +46,33 @@
|
||||
:key="pageData.keyCount" :tableConfiger="pageData.tableConfiger" :controlsWidth="pageData.controlsWidth">
|
||||
<template #yjTp="{ row }">
|
||||
<template v-if="!row.yjTp || row.yjTp.includes('baidu')">
|
||||
<img src="@/assets/images/car.png" width="65" height="70" v-if="row.yjLx == 2" />
|
||||
<img src="@/assets/images/default_male.png" width="65" height="70" v-else />
|
||||
<img src="@/assets/images/car.png" width="65" height="70" v-if="row.yjLx == 2" />
|
||||
<img src="@/assets/images/default_male.png" width="65" height="70" v-else />
|
||||
</template>
|
||||
<el-image v-else style="width: 80px; height:120px" :src="row.yjTp" :preview-src-list="[row.yjTp]" show-progress>
|
||||
<template #error>
|
||||
<div class="image-slot error">
|
||||
<img src="@/assets/images/car.png" width="65" height="70" v-if="row.yjLx == 2" />
|
||||
<img src="@/assets/images/default_male.png" width="65" height="70" v-else />
|
||||
</div>
|
||||
</template>
|
||||
<el-image v-else style="width: 80px; height:120px" :src="row.yjTp" :preview-src-list="[row.yjTp]"
|
||||
show-progress>
|
||||
<template #error>
|
||||
<div class="image-slot error">
|
||||
<img src="@/assets/images/car.png" width="65" height="70" v-if="row.yjLx == 2" />
|
||||
<img src="@/assets/images/default_male.png" width="65" height="70" v-else />
|
||||
</div>
|
||||
</template>
|
||||
</el-image>
|
||||
</el-image>
|
||||
</template>
|
||||
<template #nl="{ row }">
|
||||
{{ IdCard(row.yjRysfzh, 3) }}
|
||||
</template>
|
||||
|
||||
<template #xb="{ row }">
|
||||
{{ IdCard(row.yjRysfzh, 2) }}
|
||||
</template>
|
||||
<template #czzt="{ row }">
|
||||
<DictTag v-model:value="row.czzt" :options="D_GSXT_YJXX_CZZT" />
|
||||
</template>
|
||||
<template #yjJb="{ row }">
|
||||
<DictTag v-model:value="row.yjJb" :options="D_BZ_YJJB" />
|
||||
</template>
|
||||
<template #xsd="{ row }">
|
||||
90%
|
||||
{{ row.xsd }}%
|
||||
</template>
|
||||
<!-- 操作 -->
|
||||
</MyTable>
|
||||
@ -94,7 +101,7 @@ import { reactive, ref, onMounted, getCurrentInstance, nextTick } from "vue";
|
||||
import FileSaver from "file-saver";
|
||||
import * as XLSX from "xlsx";
|
||||
const { proxy } = getCurrentInstance();
|
||||
const { D_BZ_YJLX } = proxy.$dict("D_BZ_YJLX")
|
||||
const { D_BZ_YJLX, D_GSXT_YJXX_CZZT, D_BZ_YJJB } = proxy.$dict("D_BZ_YJLX", "D_GSXT_YJXX_CZZT","D_BZ_YJJB")
|
||||
const searchBox = ref(); //搜索框
|
||||
const form = ref({});
|
||||
const shortcuts = [
|
||||
@ -148,7 +155,7 @@ const pageData = reactive({
|
||||
{ label: "姓名", prop: "yjRyxm" },
|
||||
{ label: "年龄", prop: "nl", showSolt: true },
|
||||
{ label: "性别", prop: "xb", showSolt: true },
|
||||
{ label: "预警级别", prop: "yjJb" },
|
||||
{ label: "预警级别", prop: "yjJb", showSolt: true },
|
||||
{ label: "相似度", prop: "xsd", showSolt: true },
|
||||
{ label: "预警时间", prop: "yjSj", showOverflowTooltip: true },
|
||||
{ label: "预警地点", prop: "yjDz", showOverflowTooltip: true },
|
||||
@ -156,6 +163,7 @@ const pageData = reactive({
|
||||
{ label: "布控手机号", prop: "yjRysjh", showOverflowTooltip: true },
|
||||
{ label: "布控车牌号", prop: "yjClcph", showOverflowTooltip: true },
|
||||
{ label: "身份证", prop: "yjRysfzh", showOverflowTooltip: true },
|
||||
{ label: "处置状态", prop: "czzt", showSolt: true },
|
||||
]
|
||||
});
|
||||
const showDc = ref(false)
|
||||
@ -249,16 +257,13 @@ const handleExport = () => {
|
||||
// 处理表格数据
|
||||
pageData.tableData.forEach((row, index) => {
|
||||
const tr = document.createElement('tr');
|
||||
|
||||
// 添加序号
|
||||
const indexTd = document.createElement('td');
|
||||
indexTd.textContent = index + 1;
|
||||
tr.appendChild(indexTd);
|
||||
|
||||
// 添加其他单元格数据
|
||||
pageData.tableColumn.forEach(column => {
|
||||
const td = document.createElement('td');
|
||||
|
||||
// 处理自定义插槽的情况
|
||||
if (column.showSolt) {
|
||||
if (column.prop === 'yjTp') {
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
<DictTag :tag="false" :value="item.qtlb" color="#fff" :options="dict.D_GS_ZDQT_LB" />
|
||||
</div>
|
||||
<div class="mt4 two_text_detail flex align-center">风险等级:
|
||||
<DictTag :tag="false" :value="item.yjJb" color="#fff" :options="dict.D_BZ_TYJB" />
|
||||
<DictTag :tag="false" :value="item.yjJb" color="#fff" :options="dict.D_BZ_YJJB" />
|
||||
</div>
|
||||
</div>
|
||||
<!-- 经验分享 -->
|
||||
|
||||
@ -49,7 +49,7 @@
|
||||
<div class="mt4 two_text_detail" v-if="buttonBox">
|
||||
<el-button type="primary" @click="pushAssess(item)">全息档案</el-button>
|
||||
<el-button color="#ef7762" @click="showDetail(item)" style="color: #fff;">转合成</el-button>
|
||||
<el-button type="warning">转基管</el-button>
|
||||
<!-- <el-button type="warning">转基管</el-button> -->
|
||||
<el-button type="danger">转会商</el-button>
|
||||
<el-button type="success" @click="showFeedback(item, '签收')" v-if="item.czzt == '01'">签收</el-button>
|
||||
<el-button type="success" @click="showFeedback(item, '反馈')" v-if="item.czzt == '02'">反馈</el-button>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<!--全息档案展示组件 -->
|
||||
<template>
|
||||
<el-dialog v-model="modelValue" :title="title" :width="width" @close="close" append-to-body>
|
||||
<el-dialog :draggable="true" v-model="modelValue" :title="title" :width="width" @close="close" append-to-body>
|
||||
<div class="archive-container">
|
||||
<!-- 基本信息卡片 -->
|
||||
<div class="basic-info-card">
|
||||
@ -235,22 +235,11 @@ watch(() => props.modelValue, (newVal, oldVal) => {
|
||||
const personData = ref({ });
|
||||
|
||||
|
||||
// 预览图片列表
|
||||
const srcList = ref([
|
||||
'https://fuss10.elemecdn.com/a/3f/3302e58f9a181d2509f3dc0fa68b0jpeg.jpeg',
|
||||
'https://fuss10.elemecdn.com/1/34/19aa98b1fcb2781c4fba33d850549jpeg.jpeg',
|
||||
'https://fuss10.elemecdn.com/0/6f/e35ff375812e6b0020b6b4e8f9583jpeg.jpeg',
|
||||
'https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg',
|
||||
'https://fuss10.elemecdn.com/d/e6/c4d93a3805b3ce3f323f7974e6f78jpeg.jpeg',
|
||||
'https://fuss10.elemecdn.com/3/28/bbf893f792f03a54408b3b7a7ebf0jpeg.jpeg',
|
||||
'https://fuss10.elemecdn.com/2/11/6535bcfb26e4c79b48ddde44f4b6fjpeg.jpeg',
|
||||
]);
|
||||
|
||||
// 定义事件
|
||||
const emit = defineEmits(['update:modelValue']);
|
||||
const getryxxJbxxSave = () => {
|
||||
ryxxJbxxSave({ sfzhm:'540402195805123219' // props.dataList.rysfzh
|
||||
}).then((res) => {
|
||||
const params = { sfzhm: props.dataList.rysfzh || props.dataList.yjRysfzh||props.dataList.sfzh };
|
||||
ryxxJbxxSave(params).then((res) => {
|
||||
personData.value = res[0]
|
||||
});
|
||||
}
|
||||
|
||||
@ -25,9 +25,8 @@ import DialogDragger from "@/views/home/layout/dialogDragger.vue";
|
||||
import deployControlItem from "@/views/home/components/deployControlItem.vue";
|
||||
import Information from "@/views/home/model/information.vue";
|
||||
import SemdFqzl from '@/components/instructionHasBeen/sendFqzl.vue'
|
||||
import { tbYjxxGsgj } from '@/api/yj'
|
||||
import FkDialog from "@/views/backOfficeSystem/fourColorManage/warningControl/centerHome/components/fkDialog.vue";
|
||||
|
||||
import { tbYjxxGsgj } from '@/api/yj'
|
||||
import { ref, defineProps, onMounted, watch, getCurrentInstance } from "vue";
|
||||
import emitter from "@/utils/eventBus.js";
|
||||
const gjyjList = ref(null); //预警列表数据
|
||||
@ -49,6 +48,7 @@ const props = defineProps({
|
||||
function close() {
|
||||
emitter.emit('deletePointArea', 'home_yj_map');
|
||||
emitter.emit("showHomeYJ", false);
|
||||
emitter.emit("closeYp")
|
||||
}
|
||||
const showMap = ref(false)
|
||||
onMounted(() => {
|
||||
@ -202,8 +202,6 @@ const plotThetrajectory = (val) => {
|
||||
}
|
||||
// 查看反馈
|
||||
const showFeedback = (val) => {
|
||||
console.log(val,"查查零xxxxxx零");
|
||||
|
||||
emitter.emit("openFkDialog",val )
|
||||
}
|
||||
// 发送指令
|
||||
@ -229,7 +227,6 @@ const closeFszl = () => {
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@ -51,17 +51,23 @@
|
||||
<Yszs />
|
||||
</div>
|
||||
<div class="flex middle-bottom mt10">
|
||||
<div
|
||||
style="width: 30px;position: absolute;z-index: 100;left: 0;background-color: #07274d;height: 30px;text-align: center;line-height:30px;">
|
||||
<el-icon :size="20" v-if="ispLayBack" @click="closeLayBack">
|
||||
<Bell />
|
||||
</el-icon>
|
||||
<!-- -->
|
||||
<el-icon :size="20" v-else @click="openLayBack">
|
||||
<MuteNotification />
|
||||
</el-icon>
|
||||
|
||||
</div>
|
||||
<div style="width: 100%;border: 1px sienna;position: relative">
|
||||
<GdMap></GdMap>
|
||||
</div>
|
||||
<div class="flex-1" style="width: 340px;position: absolute;z-index: 100;right: 0;">
|
||||
<DeployControl />
|
||||
</div>
|
||||
<!-- <div class="flex-1" style="width: 340px;position: absolute;z-index: 100;left: 0;">
|
||||
<div style="background-color: #07274d; height: 100px;">
|
||||
生份证:"xxxxxxxx"
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="flex-1" style="width: 340px;position: absolute;z-index: 100;left: 0;top: 30%;">
|
||||
<GeneralWindow />
|
||||
</div>
|
||||
@ -79,6 +85,7 @@
|
||||
<Bkcz></Bkcz>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- 左边弹窗 -->
|
||||
<LeftDialog></LeftDialog>
|
||||
@ -86,7 +93,7 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, getCurrentInstance, reactive, onMounted, onUnmounted } from 'vue'
|
||||
import { ref, onMounted, onUnmounted } from 'vue'
|
||||
import LeftDialog from './dialog/leftDialog'
|
||||
import GdMap from "@/components/GdMap/index.vue";
|
||||
import Head from './layout/head.vue'
|
||||
@ -98,7 +105,6 @@ import Bkcz from './model/bkcz.vue'
|
||||
import WarningLevels from './model/warningLevels.vue'
|
||||
import Yszs from './model/yszs.vue'
|
||||
import DeployControl from './model/deployControl.vue';
|
||||
import SituationAssessment from './model/situationAssessment.vue'
|
||||
import Experience from './model/experience.vue'
|
||||
import Calendar from './model/calendar.vue'
|
||||
import KeyPpersonneltypes from './model/keyPpersonneltypes.vue'
|
||||
@ -109,6 +115,11 @@ import { bm, centralPoint } from '@/views/backOfficeSystem/IntelligentControl/De
|
||||
import Judgment from './model/judgment.vue'
|
||||
import { tbYjxxGetList } from '@/api/zdr.js'
|
||||
import GeneralWindow from './model/generalWindow.vue'
|
||||
import WebSoketClass from '@/utils/webSocket.js'
|
||||
import {timeValidate} from '@/utils/tools.js'
|
||||
// 导入音频播放器工具类
|
||||
import audioPlayer from '@/utils/audioPlayer'
|
||||
const webSoket = new WebSoketClass()
|
||||
const changeXzqh = (val, trg) => {
|
||||
setTimeout(() => {
|
||||
// 先移除已有的边界
|
||||
@ -204,12 +215,89 @@ const makerCenter = () => {
|
||||
})
|
||||
emitter.emit("addPointArea", { coords, icon: dw, flag: "hm", size: '14px', showTitle: true, offset: [0, -25] });
|
||||
}
|
||||
//播放音频
|
||||
const ispLayBack = ref(true)
|
||||
|
||||
// 打开播放
|
||||
const openLayBack = () => {
|
||||
ispLayBack.value = true
|
||||
}
|
||||
|
||||
// 关闭播放
|
||||
const closeLayBack = () => {
|
||||
ispLayBack.value = false
|
||||
audioPlayer.pause()
|
||||
}
|
||||
|
||||
// 初始化音频播放器
|
||||
const initAudioPlayer = () => {
|
||||
// 使用工具类初始化音频播放器
|
||||
audioPlayer.init(require('@/assets/images/yjsy.mp3'))
|
||||
.then(() => {
|
||||
console.log('音频播放器初始化成功');
|
||||
// 只有当ispLayBack为true时才播放
|
||||
if (ispLayBack.value) {
|
||||
audioPlayer.muted = false
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('初始化音频播放器失败:', error);
|
||||
})
|
||||
}
|
||||
// 组件挂载时初始化音频播放器
|
||||
onMounted(() => {
|
||||
|
||||
getDepId()
|
||||
makerCenter()
|
||||
mouseLeave()
|
||||
getTbYjxxGetList()
|
||||
// 初始化音频播放器
|
||||
initAudioPlayer()
|
||||
webSoket.connect()
|
||||
// 监听音频播放事件,获取WebSocket消息数据
|
||||
emitter.on("openYp", (newsDate) => {
|
||||
// 使用工具类播放音频,自动处理静音切换
|
||||
if (ispLayBack.value) {
|
||||
audioPlayer.play()
|
||||
.then(() => {
|
||||
console.log('WebSocket触发音频播放成功');
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('WebSocket触发音频播放失败:', error);
|
||||
})
|
||||
const coords = {
|
||||
id: newsDate.id,
|
||||
jd: newsDate.jd,
|
||||
wd: newsDate.wd,
|
||||
yjtp: newsDate.yjTp,
|
||||
yjnr: newsDate.yjNr,
|
||||
yjLx: newsDate.yjlx,
|
||||
yjlx: '01',
|
||||
yjsj: newsDate.yjSj,
|
||||
rysfzh: newsDate.yjRysfzh,
|
||||
ryxm: newsDate.yjRyxm,
|
||||
}
|
||||
const icons = require("@/assets/point/jq.png")
|
||||
emitter.emit('addPointArea', { coords: [{ jd: coords.jd, wd: coords.wd }], icon: icons, flag: 'yjs' })
|
||||
emitter.emit('yjDetail', coords)
|
||||
}
|
||||
})
|
||||
emitter.on("closeYp", () => {
|
||||
audioPlayer.pause()
|
||||
})
|
||||
})
|
||||
|
||||
const timeRef = ref('')
|
||||
let bj=ref(0)
|
||||
// 布控预警上图
|
||||
const getTbYjxxGetList = () => {
|
||||
tbYjxxGetList().then(res => {
|
||||
// 设置为当天时间范围:00:00:00 到 23:59:59
|
||||
const today = new Date();
|
||||
const startTime = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0).getTime();
|
||||
const endTime = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 23, 59, 59).getTime();
|
||||
const promes = {
|
||||
startTime:timeValidate(startTime),
|
||||
endTime:timeValidate(endTime),
|
||||
}
|
||||
tbYjxxGetList(promes).then(res => {
|
||||
const coords = res.map(item => {
|
||||
return {
|
||||
id: item.id,
|
||||
@ -224,33 +312,12 @@ const getTbYjxxGetList = () => {
|
||||
ryxm: item.yjRyxm,
|
||||
}
|
||||
})
|
||||
|
||||
if (timeRef.value != coords[0].yjsj&&bj.value==1) {
|
||||
const icons = require("@/assets/point/jq.png")
|
||||
emitter.emit('addPointArea', { coords: [{ jd: coords[0].jd, wd: coords[0].wd }], icon: icons, flag: 'yjs' })
|
||||
emitter.emit('yjDetail', coords[0])
|
||||
timeRef.value = coords[0].yjsj
|
||||
}
|
||||
bj.value=1
|
||||
|
||||
const icon = require("@/assets/point/yj.png")
|
||||
emitter.emit('addPoint', { coords: coords, icon: icon, flag: 'yj', fontColor: '#FF0000' })
|
||||
})
|
||||
}
|
||||
|
||||
let timing = ref(true)
|
||||
onMounted(() => {
|
||||
getDepId()
|
||||
makerCenter()
|
||||
mouseLeave()
|
||||
getTbYjxxGetList()
|
||||
})
|
||||
const timer = setInterval(() => {
|
||||
getTbYjxxGetList()
|
||||
}, 60000)
|
||||
|
||||
|
||||
|
||||
|
||||
const reversalPushShow = ref(true)
|
||||
const reversalPush = () => {
|
||||
@ -272,7 +339,14 @@ const mouseLeave = () => {
|
||||
}
|
||||
onUnmounted(() => {
|
||||
clearInterval(timing.value)
|
||||
clearInterval(timer)
|
||||
// 组件卸载时停止音频播放并释放资源
|
||||
if (audioPlayer) {
|
||||
audioPlayer.destroy()
|
||||
}
|
||||
// 组件卸载时关闭WebSocket连接
|
||||
if (webSoket) {
|
||||
webSoket.closeConnection()
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
@ -46,7 +46,7 @@ const checkDatas = reactive({
|
||||
hasChoose: ["布控"]
|
||||
});
|
||||
const total = ref(0);
|
||||
const yjJb = ref([10, 20, 30, 40]);
|
||||
const yjJb = ref(['01', '02', '03', '04']);
|
||||
const yjLx = ref(['01']);
|
||||
const pageNum = ref(1);
|
||||
const loading = ref(false); // 加载中
|
||||
@ -73,10 +73,10 @@ function changeData(val) {
|
||||
checkData.hasChoose = val;
|
||||
let ids = [];
|
||||
val.forEach(it => {
|
||||
if (it == '一级') ids.push(10);
|
||||
if (it == '二级') ids.push(20);
|
||||
if (it == '三级') ids.push(30);
|
||||
if (it == '四级') ids.push(40);
|
||||
if (it == '一级') ids.push('01');
|
||||
if (it == '二级') ids.push('02');
|
||||
if (it == '三级') ids.push('03');
|
||||
if (it == '四级') ids.push('04');
|
||||
});
|
||||
yjJb.value = ids
|
||||
if (val.length == 0) personList.value = [];
|
||||
@ -90,7 +90,7 @@ function changeDatas(val) {
|
||||
let ids = [];
|
||||
if (val.includes('布控')) {
|
||||
typeS.value = true
|
||||
yjJb.value = [10, 20, 30, 40]
|
||||
yjJb.value = ['01', '02', '03', '04']
|
||||
} else {
|
||||
yjJb.value = []
|
||||
typeS.value = false
|
||||
@ -108,7 +108,7 @@ function changeDatas(val) {
|
||||
if (val.length == 0) personList.value = [];
|
||||
else getList();
|
||||
}
|
||||
const isExpanded = ref(true); // 控制展开/收缩状态
|
||||
const isExpanded = ref(false); // 控制展开/收缩状态
|
||||
|
||||
const changeTab = () => {
|
||||
// 切换展开/收缩状态
|
||||
@ -244,9 +244,35 @@ const chooseItem = (item) => {
|
||||
emitter.emit('showHomeYJ', [content.value]);
|
||||
})
|
||||
break;
|
||||
case '':
|
||||
case '03':
|
||||
content.value = {
|
||||
id: item.id,
|
||||
ryxm: res.xm || '',
|
||||
rysfzh: res.sfzh,
|
||||
yjsj: res.yjsj || '',
|
||||
yjdz: "",
|
||||
yjtp: "",
|
||||
yjbq: res.xwms || '',
|
||||
yjlb: item.yjlb || '',
|
||||
czzt: res.czzt || '',
|
||||
yjbt: res.yjBt || '',
|
||||
}
|
||||
emitter.emit('showHomeYJ', [content.value]);
|
||||
break;
|
||||
case '04':
|
||||
content.value = {
|
||||
id: item.id,
|
||||
ryxm: res.xm || '',
|
||||
rysfzh: res.sfzh,
|
||||
yjsj: res.yjsj || '',
|
||||
yjdz: "",
|
||||
yjtp: "",
|
||||
yjbq: res.xwms || '',
|
||||
yjlb: item.yjlb || '',
|
||||
czzt: res.czzt || '',
|
||||
yjbt: res.yjBt || '',
|
||||
}
|
||||
emitter.emit('showHomeYJ', [content.value]);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<div class="comom-cnt zdryBox">
|
||||
<!-- <ul class="ryBox" v-loading="loading" v-infinite-scroll="loadList" style="overflow: auto">
|
||||
<li v-for="item in personList" :key="item.id" >
|
||||
<Assessment :item="item" :dict="{D_GS_ZDQT_LB,D_BZ_TYJB}" :lx="3"/>
|
||||
<Assessment :item="item" :dict="{D_GS_ZDQT_LB,D_BZ_YJJB}" :lx="3"/>
|
||||
</li>
|
||||
<MOSTY.Empty :show="!loading && personList.length <= 0" :imgSize="100"></MOSTY.Empty>
|
||||
</ul> -->
|
||||
@ -20,7 +20,7 @@ import * as MOSTY from "@/components/MyComponents/index";
|
||||
import CheckBox from "@/components/checkBox/index.vue";
|
||||
import { ref ,reactive, onMounted,getCurrentInstance} from 'vue';
|
||||
const { proxy } = getCurrentInstance();
|
||||
const {D_GS_ZDQT_LB,D_BZ_TYJB} =proxy.$dict('D_GS_ZDQT_LB','D_BZ_TYJB')
|
||||
const {D_GS_ZDQT_LB,D_BZ_YJJB} =proxy.$dict('D_GS_ZDQT_LB','D_BZ_YJJB')
|
||||
const checkData = reactive({
|
||||
list: ["人员", "车辆"],
|
||||
hasChoose: ["人员", "车辆"],
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
<div class="comom-cnt zdryBox">
|
||||
<ul class="ryBox" v-loading="loading" v-infinite-scroll="loadList" style="overflow: auto">
|
||||
<li v-for="item in personList" :key="item.id" >
|
||||
<Assessment :item="item" :dict="{D_GS_ZDQT_LB,D_BZ_TYJB}" :lx="2"/>
|
||||
<Assessment :item="item" :dict="{D_GS_ZDQT_LB,D_BZ_YJJB}" :lx="2"/>
|
||||
</li>
|
||||
<MOSTY.Empty :show="!loading && personList.length <= 0" :imgSize="100"></MOSTY.Empty>
|
||||
</ul>
|
||||
@ -20,7 +20,7 @@ import * as MOSTY from "@/components/MyComponents/index";
|
||||
import CheckBox from "@/components/checkBox/index.vue";
|
||||
import { ref ,reactive, onMounted,getCurrentInstance} from 'vue';
|
||||
const { proxy } = getCurrentInstance();
|
||||
const {D_GS_ZDQT_LB,D_BZ_TYJB} =proxy.$dict('D_GS_ZDQT_LB','D_BZ_TYJB')
|
||||
const {D_GS_ZDQT_LB,D_BZ_YJJB} =proxy.$dict('D_GS_ZDQT_LB','D_BZ_YJJB')
|
||||
const checkData = reactive({
|
||||
list: ["人员", "车辆"],
|
||||
hasChoose: ["人员", "车辆"],
|
||||
|
||||
Reference in New Issue
Block a user