更新代码
This commit is contained in:
BIN
src/assets/images/17.mp3
Normal file
BIN
src/assets/images/17.mp3
Normal file
Binary file not shown.
BIN
src/assets/images/18.mp3
Normal file
BIN
src/assets/images/18.mp3
Normal file
Binary file not shown.
BIN
src/assets/images/19.mp3
Normal file
BIN
src/assets/images/19.mp3
Normal file
Binary file not shown.
@ -64,7 +64,10 @@ const audioPaths = {
|
||||
"13": require("@/assets/images/13.mp3"), //有新的研判约稿通知
|
||||
"14": require("@/assets/images/14.mp3"), //有新的公文发布
|
||||
"15": require("@/assets/images/15.mp3"), //有新的警情监测预警,请注意查收
|
||||
"16": require("@/assets/images/16.mp3") //有新的一级临控预警,请及时签收处理!
|
||||
"16": require("@/assets/images/16.mp3"), //有新的一级临控预警,请及时签收处理!
|
||||
"17": require("@/assets/images/17.mp3"), //有新的紧急预警信息,请及时签收处理!
|
||||
"18": require("@/assets/images/18.mp3"), //滴滴滴~~~叮~~~~
|
||||
"19": require("@/assets/images/19.mp3"), //有新的预警信息,请您注意查收
|
||||
};
|
||||
|
||||
// 初始化音频播放器
|
||||
@ -88,24 +91,30 @@ const playAudioByType = (val) => {
|
||||
case "01":
|
||||
switch (val.yjJb) {
|
||||
case "01":
|
||||
audioPlayers.value["01"].play();
|
||||
audioPlayers.value["06"].play();
|
||||
audioPlayers.value["18"].play();
|
||||
audioPlayers.value["17"].play();
|
||||
// audioPlayers.value["01"].play();
|
||||
// audioPlayers.value["06"].play();
|
||||
break;
|
||||
default:
|
||||
audioPlayers.value["02"].play();
|
||||
audioPlayers.value["07"].play();
|
||||
audioPlayers.value["19"].play();
|
||||
// audioPlayers.value["02"].play();
|
||||
// audioPlayers.value["07"].play();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case "02":
|
||||
switch (val.yjJb) {
|
||||
case "01":
|
||||
audioPlayers.value["01"].play();
|
||||
audioPlayers.value["04"].play();
|
||||
audioPlayers.value["18"].play();
|
||||
audioPlayers.value["17"].play();
|
||||
// audioPlayers.value["01"].play();
|
||||
// audioPlayers.value["04"].play();
|
||||
break;
|
||||
default:
|
||||
audioPlayers.value["02"].play();
|
||||
audioPlayers.value["05"].play();
|
||||
audioPlayers.value["19"].play();
|
||||
// audioPlayers.value["02"].play();
|
||||
// audioPlayers.value["05"].play();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
@ -129,9 +138,18 @@ const playAudioByType = (val) => {
|
||||
audioPlayers.value["03"].play();
|
||||
audioPlayers.value["11"].play();
|
||||
break;
|
||||
case "06": //监测
|
||||
audioPlayers.value["02"].play();
|
||||
audioPlayers.value["15"].play();
|
||||
case "06": //检测警情
|
||||
switch (val.jqdjdm) {
|
||||
case "01":
|
||||
audioPlayers.value["18"].play();
|
||||
audioPlayers.value["17"].play();
|
||||
break;
|
||||
default:
|
||||
audioPlayers.value["19"].play();
|
||||
break;
|
||||
}
|
||||
// audioPlayers.value["02"].play();
|
||||
// audioPlayers.value["15"].play();
|
||||
break;
|
||||
// case '07':
|
||||
// audioPlayers.value['07'].play()
|
||||
|
||||
@ -57,6 +57,12 @@
|
||||
<template #zdrZt="{ row }">
|
||||
<DictTag :tag="false" :value="row.zdrZt" :options="D_GS_ZDQT_ZT" />
|
||||
</template>
|
||||
<template #zdrSsjz="{ row }">
|
||||
<DictTag :tag="false" :value="row.zdrSsjz" :options="D_GS_BK_SSJZ" />
|
||||
</template>
|
||||
<template #zdrSjjz="{ row }">
|
||||
<DictTag :tag="false" :value="row.zdrSjjz" :options="D_GS_BK_SSJZ" />
|
||||
</template>
|
||||
|
||||
<template #xtSjzt="{ row }">
|
||||
<div>
|
||||
@ -242,7 +248,21 @@ const searchConfiger = ref([
|
||||
placeholder: "请输入人员级别",
|
||||
showType: "select",
|
||||
options: D_GS_ZDR_RYJB
|
||||
}
|
||||
},
|
||||
{
|
||||
label: "所属警种",
|
||||
prop: "zdrSsjz",
|
||||
placeholder: "请选择所属警种",
|
||||
showType: "select",
|
||||
options: D_GS_BK_SSJZ
|
||||
},
|
||||
{
|
||||
label: "涉及警种",
|
||||
prop: "zdrSjjz",
|
||||
placeholder: "请选择涉及警种",
|
||||
showType: "select",
|
||||
options: D_GS_BK_SSJZ
|
||||
},
|
||||
]);
|
||||
const queryFrom = ref({});
|
||||
const pageData = reactive({
|
||||
@ -280,6 +300,8 @@ const pageData = reactive({
|
||||
},
|
||||
{ label: "审核状态", prop: "zdrZt", slotName: "zdrZt", width: 100 },
|
||||
{ label: "入库时间", prop: "zdrRkkssj" },
|
||||
{ label: "所属警种", prop: "zdrSsjz",slotName: "zdrSsjz", },
|
||||
{ label: "涉及警种", prop: "zdrSjjz",slotName: "zdrSjjz", },
|
||||
{
|
||||
label: "操作",
|
||||
prop: "controls",
|
||||
|
||||
@ -9,23 +9,14 @@
|
||||
</div>
|
||||
<div class="form_cnt">
|
||||
<FormMessage v-model="listQuery" :formList="formData" ref="elform" :rules="rules" :disabled="title == '详情'">
|
||||
<template #bkyj>
|
||||
<el-divider content-position="left"><span style="color: blue;">布控预警</span></el-divider>
|
||||
<template #yjNum>
|
||||
<el-divider content-position="left"><span style="color: blue;">预警</span></el-divider>
|
||||
</template>
|
||||
<template #clyj>
|
||||
<el-divider content-position="left"><span style="color: blue;">车辆预警</span></el-divider>
|
||||
<template #csfs>
|
||||
<el-divider content-position="left"><span style="color: blue;">信息</span></el-divider>
|
||||
</template>
|
||||
<template #qlry>
|
||||
<el-divider content-position="left"><span style="color: blue;">7类重点人员预警</span></el-divider>
|
||||
</template>
|
||||
<template #rxyj>
|
||||
<el-divider content-position="left"><span style="color: blue;">人像预警</span></el-divider>
|
||||
</template>
|
||||
<template #zbyj>
|
||||
<el-divider content-position="left"><span style="color: blue;">政保预警</span></el-divider>
|
||||
</template>
|
||||
<template #fs>
|
||||
<el-divider content-position="left"><span style="color: blue;">考核分数</span></el-divider>
|
||||
<template #ypNum>
|
||||
<el-divider content-position="left"><span style="color: blue;">研判</span></el-divider>
|
||||
</template>
|
||||
</FormMessage>
|
||||
</div>
|
||||
@ -62,25 +53,21 @@ const formData = ref([
|
||||
{ label: "考核开始日期", prop: "ksrq", type: "date" },
|
||||
{ label: "考核结束日期", prop: "jsrq", type: "date" },
|
||||
{ label: "考核描述", prop: "khzbms", type: "textarea", width: "100%" },
|
||||
{ prop: "fs", type: "slot", width: "100%" },
|
||||
{ label: "采集分数", prop: "cjfs", type: "number", min: 0, max: 100, step: 1 },
|
||||
{ label: "研判分数", prop: "ypfs", type: "number", min: 0, max: 100, step: 1 },
|
||||
{ prop: "bkyj", type: "slot", width: "100%" },
|
||||
{ prop: "yjNum", type: "slot", width: "100%" },
|
||||
{ label: "布控预警反馈率", prop: "bkyjFkl", type: "number", min: 0, max: 100, step: 0.01 },
|
||||
{ label: "布控预警签收率", prop: "bkyjQsl", type: "number", min: 0, max: 100, step: 0.01 },
|
||||
{ prop: "clyj", type: "slot", width: "100%" },
|
||||
{ label: "车辆预警反馈率", prop: "clyjFkl", type: "number", min: 0, max: 100, step: 0.01 },
|
||||
{ label: "车辆预警签收率", prop: "clyjQsl", type: "number", min: 0, max: 100, step: 0.01 },
|
||||
{ prop: "qlry", type: "slot", width: "100%" },
|
||||
{ label: "7类重点人员反馈率", prop: "qlryFkl", type: "number", min: 0, max: 100, step: 0.01 },
|
||||
{ label: "7类重点人员签收率", prop: "qlryQsl", type: "number", min: 0, max: 100, step: 0.01 },
|
||||
{ prop: "rxyj", type: "slot", width: "100%" },
|
||||
{ label: "人像预警反馈率", prop: "rxyjFkl", type: "number", min: 0, max: 100, step: 0.01 },
|
||||
{ label: "7类重点人员反馈率", prop: "qlryFkl", type: "number", min: 0, max: 100, step: 0.01 },
|
||||
{ label: "人像预警签收率", prop: "rxyjQsl", type: "number", min: 0, max: 100, step: 0.01 },
|
||||
{ prop: "zbyj", type: "slot", width: "100%" },
|
||||
{ label: "政保预警反馈率", prop: "zbyjFkl", type: "number", min: 0, max: 100, step: 0.01 },
|
||||
{ label: "人像预警反馈率", prop: "rxyjFkl", type: "number", min: 0, max: 100, step: 0.01 },
|
||||
{ label: "政保预警签收率", prop: "zbyjQsl", type: "number", min: 0, max: 100, step: 0.01 },
|
||||
|
||||
{ label: "政保预警反馈率", prop: "zbyjFkl", type: "number", min: 0, max: 100, step: 0.01 },
|
||||
{ prop: "csfs", type: "slot", width: "100%" },
|
||||
{ label: "采集分数", prop: "cjfs", type: "number", min: 0, max: 100, step: 1 },
|
||||
{ prop: "ypNum", type: "slot", width: "100%" },
|
||||
{ label: "研判分数", prop: "ypfs", type: "number", min: 0, max: 100, step: 1 },
|
||||
]);
|
||||
|
||||
const loading = ref(false);
|
||||
|
||||
@ -28,10 +28,10 @@
|
||||
</el-icon>
|
||||
<span class="vertical-middle">删除</span>
|
||||
</el-button>
|
||||
<el-button type="primary" size="small" @click="handleReport">
|
||||
<!-- <el-button type="primary" size="small" @click="handleReport">
|
||||
<el-icon class="vertical-middle"><Edit /></el-icon>
|
||||
<span class="vertical-middle">情报信息报告</span>
|
||||
</el-button>
|
||||
</el-button> -->
|
||||
</Searchs>
|
||||
</div>
|
||||
|
||||
|
||||
@ -92,7 +92,7 @@ const searchConfiger = ref([
|
||||
},
|
||||
{
|
||||
label: "监测时间",
|
||||
prop: "startTime",
|
||||
prop: "datatime",
|
||||
placeholder: "请选择监测时间",
|
||||
showType: "datetimerange"
|
||||
},
|
||||
@ -120,23 +120,15 @@ const pageData = reactive({
|
||||
}, //分页
|
||||
controlsWidth: 250, //操作栏宽度
|
||||
tableColumn: [
|
||||
{ label: "规则描述", prop: "gzms", showOverflowTooltip: true },
|
||||
{ label: "内容关键字", prop: "jqgjz", showOverflowTooltip: true },
|
||||
{
|
||||
label: "警情等级",
|
||||
prop: "jqdjdm",
|
||||
showOverflowTooltip: true,
|
||||
showSolt: true
|
||||
},
|
||||
{
|
||||
label: "警情类型",
|
||||
prop: "jqzldm",
|
||||
showOverflowTooltip: true,
|
||||
showSolt: true
|
||||
},
|
||||
{ label: "警情等级", prop: "jqdjdm", showOverflowTooltip: true, showSolt: true },
|
||||
{ label: "警情类型", prop: "jqzldm", showOverflowTooltip: true, showSolt: true },
|
||||
{ label: "录入人姓名", prop: "lrrXm", showOverflowTooltip: true },
|
||||
{ label: "录入人身份证号", prop: "lrrSfzh", showOverflowTooltip: true },
|
||||
{ label: "所属部门", prop: "ssbm" }
|
||||
{ label: "监测开始时间", prop: "kssj", showOverflowTooltip: true },
|
||||
{ label: "监测结束时间", prop: "jssj", showOverflowTooltip: true },
|
||||
{ label: "所属部门", prop: "ssbm" },
|
||||
{ label: "规则描述", prop: "gzms", showOverflowTooltip: true },
|
||||
]
|
||||
});
|
||||
|
||||
@ -150,8 +142,8 @@ onMounted(() => {
|
||||
const onSearch = (val) => {
|
||||
queryFrom.value = {
|
||||
...val,
|
||||
kssj: val.startTime ? val.startTime[0] : "",
|
||||
jssj: val.startTime ? val.startTime[1] : ""
|
||||
startTime: val.datatime ? val.datatime[0] : "",
|
||||
endTime: val.datatime ? val.datatime[1] : ""
|
||||
};
|
||||
pageData.pageConfiger.pageCurrent = 1;
|
||||
getList();
|
||||
@ -172,6 +164,7 @@ const getList = () => {
|
||||
...pageData.pageConfiger,
|
||||
...queryFrom.value
|
||||
};
|
||||
delete promes.datatime;
|
||||
qcckGet(promes, "/mosty-gsxt/jqjczg/getPageList")
|
||||
.then((res) => {
|
||||
pageData.tableData = res.records || [];
|
||||
|
||||
@ -131,12 +131,18 @@ const props = defineProps({
|
||||
searchArr: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
const emit = defineEmits(["search", "submit", "reset"]);
|
||||
|
||||
const emit = defineEmits(['update:modelValue',"search", "submit", "reset"]);
|
||||
const formState = reactive({});
|
||||
|
||||
watch(()=>formState,val=>{
|
||||
emit('update:modelValue',val)
|
||||
},{immediate:true})
|
||||
|
||||
|
||||
const renderFields = computed(() => {
|
||||
const source = props.searchArr.length ? props.searchArr : props.fields;
|
||||
return source
|
||||
|
||||
@ -8,15 +8,10 @@
|
||||
@search="onSearch"
|
||||
>
|
||||
<template #but>
|
||||
<el-button type="primary" @click="exportExl" size="small"
|
||||
>导出</el-button
|
||||
>
|
||||
<el-button type="primary" size="small" @click="handleQs"
|
||||
>签收</el-button
|
||||
>
|
||||
<el-button type="primary" size="small" @click="handleRelatedWarning"
|
||||
>关联预警</el-button
|
||||
>
|
||||
<el-button type="primary" @click="exportExl" size="small">导出</el-button>
|
||||
<el-button type="primary" :loading="btnLoading" size="small" @click="exportExcelAll">筛选导出</el-button>
|
||||
<el-button type="primary" size="small" @click="handleQs">签收</el-button>
|
||||
<el-button type="primary" size="small" @click="handleRelatedWarning">关联预警</el-button>
|
||||
</template>
|
||||
</QueryFormPanel>
|
||||
</div>
|
||||
@ -204,7 +199,7 @@ const searchConfiger = ref([
|
||||
},
|
||||
{
|
||||
label: "预警时间",
|
||||
prop: "startTime",
|
||||
prop: "datetime",
|
||||
showType: "datetimerange",
|
||||
placeholder: "请选择预警时间"
|
||||
},
|
||||
@ -279,6 +274,7 @@ const ORDIMG = "https://89.40.7.122:38496/image";
|
||||
const IMGYM = "https://sg.lz.dsj.xz/dhimage";
|
||||
const permission_sfqs = ref(false);
|
||||
const roleCode = ref(false);
|
||||
const btnLoading = ref(false);
|
||||
|
||||
const queryFrom = ref({});
|
||||
|
||||
@ -349,8 +345,8 @@ const onSearch = (val) => {
|
||||
queryFrom.value = {
|
||||
...queryFrom.value,
|
||||
...val,
|
||||
startTime: val.startTime ? val.startTime[0] : "",
|
||||
endTime: val.startTime ? val.startTime[1] : "",
|
||||
startTime: val.datetime ? val.datetime[0] : "",
|
||||
endTime: val.datetime ? val.datetime[1] : "",
|
||||
bkkssj: val.bksj ? val.bksj[0] : "",
|
||||
bkjssj: val.bksj ? val.bksj[1] : "",
|
||||
yjJb: val.yjJb?.join(",") || ""
|
||||
@ -383,15 +379,16 @@ const getList = () => {
|
||||
pageSize: pageData.pageConfiger.pageSize,
|
||||
yjlb: "01"
|
||||
};
|
||||
qcckPost(params, "/mosty-gsxt/tbYjxx/getPageList")
|
||||
.then((res) => {
|
||||
pageData.tableData = res?.records || [];
|
||||
pageData.total = res?.total || 0;
|
||||
pageData.tableConfiger.loading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
});
|
||||
delete params.datetime;
|
||||
delete params.bksj;
|
||||
qcckPost(params, "/mosty-gsxt/tbYjxx/getPageList").then((res) => {
|
||||
pageData.tableData = res?.records || [];
|
||||
pageData.total = res?.total || 0;
|
||||
pageData.tableConfiger.loading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
pageData.tableConfiger.loading = false;
|
||||
});
|
||||
};
|
||||
|
||||
// 处理签收
|
||||
@ -468,6 +465,31 @@ const handleChooseData = (val) => {
|
||||
selectRows.value = val;
|
||||
};
|
||||
const exportExl = () => {
|
||||
|
||||
/** 导出【选中】的数据 (没有就全部)*/
|
||||
const needArr = selectRows.value?.length > 0 ? selectRows.value : pageData.tableData;
|
||||
handleExportData(needArr)
|
||||
};
|
||||
|
||||
|
||||
const exportExcelAll = () =>{
|
||||
btnLoading.value = true;
|
||||
let params = { ...queryFrom.value,yjlb:'01' }
|
||||
params.startTime = queryFrom.value.datetime ? queryFrom.value.datetime[0] : "";
|
||||
params.endTime = queryFrom.value.datetime ? queryFrom.value.datetime[1] : "";
|
||||
params.bkkssj = queryFrom.value.bksj ? queryFrom.value.bksj[0] : "";
|
||||
params.bkjssj = queryFrom.value.bksj ? queryFrom.value.bksj[1] : "";
|
||||
params.yjJb = queryFrom.value.yjJb ? queryFrom.value.yjJb.join(',') : "";
|
||||
delete params.datetime;
|
||||
delete params.bksj;
|
||||
qcckGet(params,'/mosty-gsxt/tbYjxx/getList').then(res=>{
|
||||
btnLoading.value = false;
|
||||
handleExportData(res || []);
|
||||
})
|
||||
}
|
||||
|
||||
// 导出处理数据
|
||||
const handleExportData = (arr) =>{
|
||||
const titleObj = {
|
||||
index: "序号",
|
||||
czzt_name: "处置状态",
|
||||
@ -487,10 +509,7 @@ const exportExl = () => {
|
||||
cszt_name: "超时状态",
|
||||
zkzt_name: "在控状态"
|
||||
};
|
||||
/** 导出【选中】的数据 (没有就全部)*/
|
||||
const needArr =
|
||||
selectRows.value?.length > 0 ? selectRows.value : pageData.tableData;
|
||||
const data = needArr.map((item, index) => {
|
||||
const data = arr.map((item, index) => {
|
||||
return {
|
||||
index: index + 1,
|
||||
czzt_name: getMultiDictVal(item.czzt, D_GSXT_YJXX_CZZT),
|
||||
@ -506,7 +525,9 @@ const exportExl = () => {
|
||||
};
|
||||
});
|
||||
exportExlByObj(titleObj, data, "预警布控");
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
|
||||
const handleQs = () => {
|
||||
if (selectRows.value?.length === 0)
|
||||
|
||||
@ -12,57 +12,22 @@
|
||||
>
|
||||
<template #yjCs>
|
||||
<div>
|
||||
<el-input
|
||||
v-model="queryFrom.yjkscs"
|
||||
type="number"
|
||||
placeholder="开始次数"
|
||||
style="width: 130px"
|
||||
clearable
|
||||
:min="0"
|
||||
></el-input>
|
||||
<el-input
|
||||
v-model="queryFrom.yjjscs"
|
||||
type="number"
|
||||
placeholder="结束次数"
|
||||
style="width: 130px"
|
||||
clearable
|
||||
:min="0"
|
||||
></el-input>
|
||||
<el-input v-model="queryFrom.yjkscs" type="number" placeholder="开始次数" style="width: 130px" clearable :min="0" ></el-input>
|
||||
<el-input v-model="queryFrom.yjjscs" type="number" placeholder="结束次数" style="width: 130px" clearable :min="0"></el-input>
|
||||
</div>
|
||||
</template>
|
||||
<template #nl>
|
||||
<div>
|
||||
<el-input
|
||||
v-model="queryFrom.ksnl"
|
||||
type="number"
|
||||
placeholder="开始年龄"
|
||||
style="width: 130px"
|
||||
clearable
|
||||
:min="0"
|
||||
></el-input>
|
||||
<el-input
|
||||
v-model="queryFrom.jsnl"
|
||||
type="number"
|
||||
placeholder="结束年龄"
|
||||
style="width: 130px"
|
||||
clearable
|
||||
:min="0"
|
||||
></el-input>
|
||||
<el-input v-model="queryFrom.ksnl" type="number" placeholder="开始年龄" style="width: 130px" clearable :min="0" ></el-input>
|
||||
<el-input v-model="queryFrom.jsnl" type="number" placeholder="结束年龄" style="width: 130px" clearable :min="0" ></el-input>
|
||||
</div>
|
||||
</template>
|
||||
<template #but>
|
||||
<el-button type="primary" size="small" @click="exportExl"
|
||||
>批量导出</el-button
|
||||
>
|
||||
<el-button type="primary" size="small" @click="handleQs"
|
||||
>批量签收</el-button
|
||||
>
|
||||
<el-button type="primary" size="small" @click="handleQs"
|
||||
>批量分析</el-button
|
||||
>
|
||||
<el-button type="primary" size="small" @click="countPeople"
|
||||
>计算人数</el-button
|
||||
>
|
||||
<el-button type="primary" size="small" @click="exportExl">批量导出</el-button>
|
||||
<el-button type="primary" :loading="btnLoading" size="small" @click="exportExcelAll">筛选导出</el-button>
|
||||
<el-button type="primary" size="small" @click="handleQs">批量签收</el-button>
|
||||
<el-button type="primary" size="small" @click="handleQs">批量分析</el-button>
|
||||
<el-button type="primary" size="small" @click="countPeople">计算人数</el-button>
|
||||
</template>
|
||||
</QueryFormPanel>
|
||||
</div>
|
||||
@ -73,7 +38,7 @@
|
||||
<el-button type="primary" size="small" @click="handleQs">批量分析</el-button>
|
||||
<el-button type="primary" size="small" @click="countPeople">计算人数</el-button>
|
||||
</template>
|
||||
</PageTitle> -->
|
||||
</PageTitle> -->
|
||||
<!-- 表格 -->
|
||||
<div style="background-color: #fff">
|
||||
<WarnDataTable
|
||||
@ -85,24 +50,14 @@
|
||||
@selectionChange="handleChooseData"
|
||||
>
|
||||
<template #status="{ row }">
|
||||
<DictTag
|
||||
:value="row.czzt"
|
||||
:color="row.czzt === '01' ? '#ff2424' : '#1d72e8'"
|
||||
:tag="false"
|
||||
:options="D_GSXT_YJXX_CZZT"
|
||||
/>
|
||||
<DictTag :value="row.czzt" :color="row.czzt === '01' ? '#ff2424' : '#1d72e8'" :tag="false" :options="D_GSXT_YJXX_CZZT"/>
|
||||
</template>
|
||||
<template #xbdm="{ row }">
|
||||
<DictTag :value="row.xbdm" :tag="false" :options="D_BZ_XB" />
|
||||
</template>
|
||||
<template #yjJb="{ row }">
|
||||
<div :style="{ 'background-color': bqYs(row.yjJb) }">
|
||||
<DictTag
|
||||
:value="row.yjJb"
|
||||
color="#fff"
|
||||
:tag="false"
|
||||
:options="D_BZ_YJJB"
|
||||
/>
|
||||
<DictTag :value="row.yjJb" color="#fff" :tag="false" :options="D_BZ_YJJB"/>
|
||||
</div>
|
||||
</template>
|
||||
<template #bqdl="{ row }">
|
||||
@ -116,31 +71,12 @@
|
||||
</template>
|
||||
<template #operation="{ row }">
|
||||
<div style="display: flex; justify-content: space-between">
|
||||
<span
|
||||
class="primary"
|
||||
@click="handleQsFk(row)"
|
||||
v-if="row.czzt == '01'"
|
||||
>签收</span
|
||||
>
|
||||
<span
|
||||
class="primary"
|
||||
@click="handleQsFk(row, '反馈')"
|
||||
v-else-if="row.czzt == '02'"
|
||||
>反馈</span
|
||||
>
|
||||
<span class="primary" @click="handleQsFk(row)" v-if="row.czzt == '01'" >签收</span>
|
||||
<span class="primary" @click="handleQsFk(row, '反馈')" v-else-if="row.czzt == '02'" >反馈</span>
|
||||
<span class="primary" @click="particularsOpen(row)">详情</span>
|
||||
<span class="warning" @click="pushWarning(row)">指派</span>
|
||||
<span
|
||||
class="warning"
|
||||
v-if="row.sfbc != '1'"
|
||||
@click="failWarning(row)"
|
||||
>报错</span
|
||||
>
|
||||
<span
|
||||
:class="row.sfgz == 0 ? 'primary' : 'danger'"
|
||||
@click="payAttention(row)"
|
||||
>{{ row.sfgz == 0 ? "关注" : "取消关注" }}
|
||||
</span>
|
||||
<span class="warning" @click="failWarning(row)" v-if="row.sfbc != '1'">报错</span>
|
||||
<span @click="payAttention(row)" :class="row.sfgz == 0 ? 'primary' : 'danger'">{{ row.sfgz == 0 ? "关注" : "取消关注" }}</span>
|
||||
</div>
|
||||
</template>
|
||||
</WarnDataTable>
|
||||
@ -189,7 +125,6 @@ const {
|
||||
D_GS_ZDR_GJLB,
|
||||
D_BZ_YJJB,
|
||||
D_GS_CSZT,
|
||||
D_GS_QLZDRYXX,
|
||||
D_BZ_XB,
|
||||
D_GSXT_YJXX_CZZT,
|
||||
D_GS_ZDR_RYJB,
|
||||
@ -198,7 +133,6 @@ const {
|
||||
"D_BZ_YJLY",
|
||||
"D_GS_QLZDRLX",
|
||||
"D_BZ_YJJB",
|
||||
"D_GS_QLZDRYXX",
|
||||
"D_BZ_XB",
|
||||
"D_GSXT_YJXX_CZZT",
|
||||
"D_GS_ZDR_RYJB",
|
||||
@ -211,7 +145,7 @@ const warningShow = ref(false);
|
||||
const dataList = ref([]);
|
||||
const searchConfiger = ref([
|
||||
{
|
||||
key: "startTime",
|
||||
key: "dateTime",
|
||||
label: "预警时间",
|
||||
type: "datetimerange",
|
||||
placeholder: "请选择预警时间"
|
||||
@ -307,7 +241,7 @@ const searchConfiger = ref([
|
||||
placeholder: "请输入人员细类"
|
||||
}
|
||||
]);
|
||||
|
||||
const btnLoading = ref(false)
|
||||
const queryFrom = ref({});
|
||||
const pageData = reactive({
|
||||
tableData: [], //表格数据
|
||||
@ -352,9 +286,9 @@ onMounted(() => {
|
||||
|
||||
// 搜索
|
||||
const onSearch = (val) => {
|
||||
queryFrom.value = { ...val, yjJb: val.yjJb?.join(",") || "" };
|
||||
queryFrom.value.startTime = val.startTime ? val.startTime[0] : "";
|
||||
queryFrom.value.endTime = val.startTime ? val.startTime[1] : "";
|
||||
queryFrom.value = { ...val};
|
||||
queryFrom.value.startTime = val.dateTime ? val.dateTime[0] : "";
|
||||
queryFrom.value.endTime = val.dateTime ? val.dateTime[1] : "";
|
||||
// queryFrom.value.sfglyj = val.sfglyj?.join(',') || ''
|
||||
// queryFrom.value.sfgz = val.sfgz?.join(',') || ''
|
||||
// queryFrom.value.sfzp = val.sfzp?.join(',') || ''
|
||||
@ -377,6 +311,9 @@ const getList = () => {
|
||||
pageSize: pageData.pageConfiger.pageSize,
|
||||
yjlb: "03"
|
||||
};
|
||||
promes.yjJb = queryFrom.value.yjJb?.join(",") || ""
|
||||
|
||||
delete promes.dateTime;
|
||||
delete promes.times;
|
||||
qcckPost(promes, "/mosty-gsxt/tbYjxx/getPageList")
|
||||
.then((res) => {
|
||||
@ -412,6 +349,28 @@ const handleChooseData = (val) => {
|
||||
selectRows.value = val;
|
||||
};
|
||||
const exportExl = () => {
|
||||
|
||||
/** 导出【选中】的数据 (没有就全部)*/
|
||||
const needArr = selectRows.value?.length > 0 ? selectRows.value : pageData.tableData;
|
||||
handleExportData(needArr)
|
||||
};
|
||||
|
||||
const exportExcelAll = () =>{
|
||||
btnLoading.value = true;
|
||||
let params = { ...queryFrom.value,yjlb:'03' }
|
||||
params.startTime = queryFrom.value.dateTime ? queryFrom.value.dateTime[0] : "";
|
||||
params.endTime = queryFrom.value.dateTime ? queryFrom.value.dateTime[1] : "";
|
||||
params.yjJb = queryFrom.value.yjJb ? queryFrom.value.yjJb.join(',') : "";
|
||||
delete params.yjCs;
|
||||
delete params.dateTime;
|
||||
qcckGet(params,'/mosty-gsxt/tbYjxx/getList').then(res=>{
|
||||
btnLoading.value = false;
|
||||
handleExportData(res || []);
|
||||
})
|
||||
}
|
||||
|
||||
// 导出处理数据
|
||||
const handleExportData = (arr) =>{
|
||||
const titleObj = {
|
||||
index: "序号",
|
||||
czzt_name: "预警状态",
|
||||
@ -429,10 +388,7 @@ const exportExl = () => {
|
||||
yjCs: "次数",
|
||||
cszt_name: "超时状态"
|
||||
};
|
||||
/** 导出【选中】的数据 (没有就全部)*/
|
||||
const needArr =
|
||||
selectRows.value?.length > 0 ? selectRows.value : pageData.tableData;
|
||||
const data = needArr.map((item, index) => {
|
||||
const data = arr.map((item, index) => {
|
||||
return {
|
||||
index: index + 1,
|
||||
czzt_name: getMultiDictVal(item.czzt, D_GSXT_YJXX_CZZT),
|
||||
@ -444,8 +400,10 @@ const exportExl = () => {
|
||||
...item
|
||||
};
|
||||
});
|
||||
exportExlByObj(titleObj, data, "七类重点");
|
||||
};
|
||||
exportExlByObj(titleObj, data, "政保预警");
|
||||
|
||||
}
|
||||
|
||||
// 批量签收
|
||||
const handleQs = () => {
|
||||
if (selectRows.value?.length === 0)
|
||||
@ -542,11 +500,11 @@ const countPeople = () => {
|
||||
const promes = {
|
||||
...searchDom.value.formState,
|
||||
yjJb: searchDom.value.formState.yjJb?.join(",") || "",
|
||||
startTime: searchDom.value.formState.startTime
|
||||
? searchDom.value.formState.startTime[0]
|
||||
startTime: searchDom.value.formState.dateTime
|
||||
? searchDom.value.formState.dateTime[0]
|
||||
: "",
|
||||
endTime: searchDom.value.formState.endTime
|
||||
? searchDom.value.formState.endTime[1]
|
||||
endTime: searchDom.value.formState.dateTime
|
||||
? searchDom.value.formState.dateTime[1]
|
||||
: ""
|
||||
};
|
||||
qcckPost(promes, "/mosty-gsxt/tbYjxx/bkyjQctj")
|
||||
|
||||
@ -54,6 +54,9 @@
|
||||
<el-button type="primary" size="small" @click="exportExl"
|
||||
>批量导出</el-button
|
||||
>
|
||||
<el-button type="primary" :loading="btnLoading" size="small" @click="exportExcelAll"
|
||||
>筛选导出</el-button
|
||||
>
|
||||
<el-button type="primary" size="small" @click="handleQs"
|
||||
>批量签收</el-button
|
||||
>
|
||||
@ -189,7 +192,6 @@ import Particulars from "./particulars.vue";
|
||||
import WarnDataTable from "@/views/backOfficeSystem/ces/components/WarnDataTable.vue";
|
||||
import QueryFormPanel from "@/views/backOfficeSystem/ces/components/QueryFormPanel.vue";
|
||||
import FkDialog from "@/views/backOfficeSystem/fourColorManage/warningControl/centerHome/components/fkDialog.vue";
|
||||
// import MyTable from "@/components/aboutTable/MyTable.vue";
|
||||
import Pages from "@/components/aboutTable/Pages.vue";
|
||||
import { qcckGet, qcckPost } from "@/api/qcckApi.js";
|
||||
import { reactive, ref, onMounted, getCurrentInstance } from "vue";
|
||||
@ -224,12 +226,13 @@ const {
|
||||
"D_BZ_QBLY",
|
||||
"D_BZ_QBLYJB"
|
||||
); //获取字典数据
|
||||
|
||||
const searchBox = ref(); //搜索框
|
||||
const warningShow = ref(false);
|
||||
const dataList = ref([]);
|
||||
const searchConfiger = ref([
|
||||
{
|
||||
key: "startTime",
|
||||
key: "dateTime",
|
||||
label: "预警时间",
|
||||
type: "datetimerange",
|
||||
placeholder: "请选择预警时间"
|
||||
@ -339,7 +342,6 @@ const searchConfiger = ref([
|
||||
placeholder: "请选择情报来源级别"
|
||||
}
|
||||
]);
|
||||
|
||||
const queryFrom = ref({});
|
||||
const pageData = reactive({
|
||||
tableData: [], //表格数据
|
||||
@ -387,8 +389,8 @@ onMounted(() => {
|
||||
// 搜索
|
||||
const onSearch = (val) => {
|
||||
queryFrom.value = { ...val, yjJb: val.yjJb?.join(",") || "" };
|
||||
queryFrom.value.startTime = val.startTime ? val.startTime[0] : "";
|
||||
queryFrom.value.endTime = val.startTime ? val.startTime[1] : "";
|
||||
queryFrom.value.startTime = val.dateTime ? val.dateTime[0] : "";
|
||||
queryFrom.value.endTime = val.dateTime ? val.dateTime[1] : "";
|
||||
// queryFrom.value.sfglyj = val.sfglyj?.join(',') || ''
|
||||
// queryFrom.value.sfgz = val.sfgz?.join(',') || ''
|
||||
// queryFrom.value.sfzp = val.sfzp?.join(',') || ''
|
||||
@ -410,7 +412,9 @@ const getList = () => {
|
||||
pageCurrent: pageData.pageConfiger.pageCurrent,
|
||||
pageSize: pageData.pageConfiger.pageSize
|
||||
};
|
||||
promes.yjJb = queryFrom.value.yjJb ? queryFrom.value.yjJb.join(',') : "";
|
||||
delete promes.times;
|
||||
delete promes.dateTime;
|
||||
qcckPost(promes, "/mosty-gsxt/tbYjxx/getQlzdrPageList")
|
||||
.then((res) => {
|
||||
pageData.total = res.total || 0;
|
||||
@ -422,41 +426,23 @@ const getList = () => {
|
||||
});
|
||||
};
|
||||
|
||||
const pushWarning = (val) => {
|
||||
warningShow.value = true;
|
||||
dataList.value = val;
|
||||
};
|
||||
const btnLoading = ref(false)
|
||||
const exportExcelAll = () =>{
|
||||
btnLoading.value = true;
|
||||
let params = { ...queryFrom.value,yjlb:'02' }
|
||||
params.startTime = queryFrom.value.dateTime ? queryFrom.value.dateTime[0] : "";
|
||||
params.endTime = queryFrom.value.dateTime ? queryFrom.value.dateTime[1] : "";
|
||||
params.yjJb = queryFrom.value.yjJb ? queryFrom.value.yjJb.join(',') : "";
|
||||
delete params.yjCs;
|
||||
delete params.dateTime;
|
||||
qcckGet(params,'/mosty-gsxt/tbYjxx/getList').then(res=>{
|
||||
btnLoading.value = false;
|
||||
handleExportData(res || []);
|
||||
})
|
||||
}
|
||||
|
||||
const failWarning = (val) => {
|
||||
let ids = [val.id];
|
||||
qcckPost({ ids }, "/mosty-gsxt/tbYjxx/yjbc")
|
||||
.then((res) => {
|
||||
proxy.$message({ type: "success", message: "成功" });
|
||||
getList();
|
||||
})
|
||||
.catch(() => {
|
||||
proxy.$message({ type: "error", message: "失败" });
|
||||
});
|
||||
};
|
||||
|
||||
// 处理签收
|
||||
const handleQsFk = (val, type) => {
|
||||
console.log(val.id, "xxxxxxxxxxxxxxxxxxxxxxxx");
|
||||
|
||||
switch (type) {
|
||||
case "反馈":
|
||||
case "查看反馈":
|
||||
emitter.emit("openFkDialog", { id: val.id, type });
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
/** 选中项 */
|
||||
const selectRows = ref([]);
|
||||
const handleChooseData = (val) => {
|
||||
selectRows.value = val;
|
||||
};
|
||||
const exportExl = () => {
|
||||
// 导出处理数据
|
||||
const handleExportData = (arr) =>{
|
||||
const titleObj = {
|
||||
index: "序号",
|
||||
czzt_name: "预警状态",
|
||||
@ -476,10 +462,7 @@ const exportExl = () => {
|
||||
yjCs: "次数",
|
||||
cszt_name: "超时状态"
|
||||
};
|
||||
/** 导出【选中】的数据 (没有就全部)*/
|
||||
const needArr =
|
||||
selectRows.value?.length > 0 ? selectRows.value : pageData.tableData;
|
||||
const data = needArr.map((item, index) => {
|
||||
const data = arr.map((item, index) => {
|
||||
return {
|
||||
index: index + 1,
|
||||
czzt_name: getMultiDictVal(item.czzt, D_GSXT_YJXX_CZZT),
|
||||
@ -494,6 +477,44 @@ const exportExl = () => {
|
||||
};
|
||||
});
|
||||
exportExlByObj(titleObj, data, "七类重点");
|
||||
|
||||
}
|
||||
|
||||
|
||||
const pushWarning = (val) => {
|
||||
warningShow.value = true;
|
||||
dataList.value = val;
|
||||
};
|
||||
|
||||
const failWarning = (val) => {
|
||||
let ids = [val.id];
|
||||
qcckPost({ ids }, "/mosty-gsxt/tbYjxx/yjbc").then((res) => {
|
||||
proxy.$message({ type: "success", message: "成功" });
|
||||
getList();
|
||||
}).catch(() => {
|
||||
proxy.$message({ type: "error", message: "失败" });
|
||||
});
|
||||
};
|
||||
|
||||
// 处理签收
|
||||
const handleQsFk = (val, type) => {
|
||||
switch (type) {
|
||||
case "反馈":
|
||||
case "查看反馈":
|
||||
emitter.emit("openFkDialog", { id: val.id, type });
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
/** 选中项 */
|
||||
const selectRows = ref([]);
|
||||
const handleChooseData = (val) => {
|
||||
selectRows.value = val;
|
||||
};
|
||||
const exportExl = () => {
|
||||
/** 导出【选中】的数据 (没有就全部)*/
|
||||
const needArr = selectRows.value?.length > 0 ? selectRows.value : pageData.tableData;
|
||||
handleExportData(needArr);
|
||||
};
|
||||
// 批量签收
|
||||
const handleQs = () => {
|
||||
@ -602,6 +623,7 @@ const handleRelatedWarning = () => {
|
||||
selectDataVisible.value = true;
|
||||
};
|
||||
|
||||
|
||||
// 确认关联预警
|
||||
const handleSelectConfirm = (selectedData) => {
|
||||
console.log("关联预警数据:", selectedData);
|
||||
@ -611,11 +633,11 @@ const countPeople = () => {
|
||||
const promes = {
|
||||
...searchDom.value.formState,
|
||||
yjJb: searchDom.value.formState.yjJb?.join(",") || "",
|
||||
startTime: searchDom.value.formState.startTime
|
||||
? searchDom.value.formState.startTime[0]
|
||||
startTime: searchDom.value.formState.dateTime
|
||||
? searchDom.value.formState.dateTime[0]
|
||||
: "",
|
||||
endTime: searchDom.value.formState.endTime
|
||||
? searchDom.value.formState.endTime[1]
|
||||
endTime: searchDom.value.formState.dateTime
|
||||
? searchDom.value.formState.dateTime[1]
|
||||
: ""
|
||||
};
|
||||
qcckPost(promes, "/mosty-gsxt/tbYjxx/bkyjQctj")
|
||||
|
||||
@ -354,9 +354,7 @@ const closeLayBack = () => {
|
||||
// 初始化音频播放器
|
||||
const initAudioPlayer = () => {
|
||||
// 使用工具类初始化音频播放器
|
||||
audioPlayer
|
||||
.init(require("@/assets/images/yjsy.mp3"))
|
||||
.then(() => {
|
||||
audioPlayer.init(require("@/assets/images/yjsy.mp3")).then(() => {
|
||||
console.log("音频播放器初始化成功");
|
||||
// 只有当ispLayBack为true时才播放
|
||||
if (ispLayBack.value) {
|
||||
@ -373,11 +371,7 @@ const startPopupLoop = () => {
|
||||
popupTimer.value = setInterval(() => {
|
||||
if (!showNotification.value && allDep.value.length > 0) {
|
||||
emitter.emit("deletePointArea", "hm_pop");
|
||||
emitter.emit("makerPopup", {
|
||||
data: allDep.value[indexNum.value],
|
||||
flag: "hm_pop",
|
||||
type: "Custom"
|
||||
});
|
||||
emitter.emit("makerPopup", { data: allDep.value[indexNum.value], flag: "hm_pop", type: "Custom" });
|
||||
indexNum.value = (indexNum.value + 1) % allDep.value.length;
|
||||
}
|
||||
}, 10000);
|
||||
@ -386,10 +380,7 @@ const startPopupLoop = () => {
|
||||
// 搜索
|
||||
const handleSearch = () => {
|
||||
if (!searchText.value) return proxy.$message.warning("请输入身份证号");
|
||||
qcckPost(
|
||||
{ rysfzh: searchText.value },
|
||||
"/mosty-gsxt/tbYjxx/getPageAllList"
|
||||
).then((res) => {
|
||||
qcckPost({ rysfzh: searchText.value },"/mosty-gsxt/tbYjxx/getPageAllList").then((res) => {
|
||||
peoDialogRef.value.init(res.records || []);
|
||||
});
|
||||
};
|
||||
@ -398,22 +389,8 @@ const handleSearch = () => {
|
||||
const getTbYjxxGetList = () => {
|
||||
// 设置为当天时间范围: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 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)
|
||||
@ -434,12 +411,7 @@ const getTbYjxxGetList = () => {
|
||||
};
|
||||
});
|
||||
const icon = require("@/assets/point/yj.png");
|
||||
emitter.emit("addPoint", {
|
||||
coords: coords,
|
||||
icon: icon,
|
||||
flag: "yj",
|
||||
fontColor: "#FF0000"
|
||||
});
|
||||
emitter.emit("addPoint", { coords: coords, icon: icon, flag: "yj", fontColor: "#FF0000"});
|
||||
});
|
||||
};
|
||||
|
||||
@ -490,14 +462,11 @@ onMounted(() => {
|
||||
emitter.on("openYp", (newsDate) => {
|
||||
// 使用工具类播放音频,自动处理静音切换
|
||||
if (ispLayBack.value) {
|
||||
audioPlayer
|
||||
.play()
|
||||
.then(() => {
|
||||
console.log("WebSocket触发音频播放成功");
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error("WebSocket触发音频播放失败:", error);
|
||||
});
|
||||
audioPlayer.play().then(() => {
|
||||
console.log("WebSocket触发音频播放成功");
|
||||
}).catch((error) => {
|
||||
console.error("WebSocket触发音频播放失败:", error);
|
||||
});
|
||||
const coords = {
|
||||
id: newsDate.id,
|
||||
jd: newsDate.jd,
|
||||
|
||||
@ -66,6 +66,9 @@ const getList = (type) => {
|
||||
let arr = Array.isArray(res?.records) ? res.records : [];
|
||||
personList.value = pageNum.value == 1 ? arr : personList.value.concat(arr);
|
||||
total.value = res?.total || 0;
|
||||
if(pageNum.value == 1 && total.value > 3 ){
|
||||
startAutoScroll();
|
||||
}
|
||||
}).catch(() => {
|
||||
loading.value = false;
|
||||
loadingMore.value = false;
|
||||
@ -94,12 +97,11 @@ const autoScroll = () => {
|
||||
|
||||
// 开始自动滚动
|
||||
const startAutoScroll = () => {
|
||||
if(total.value < 3) return;
|
||||
if (isAutoScrolling.value || !carouselList.value) return;
|
||||
isAutoScrolling.value = true;
|
||||
// 清除可能存在的定时器
|
||||
if (scrollTimer) {
|
||||
clearInterval(scrollTimer);
|
||||
}
|
||||
if (scrollTimer) clearInterval(scrollTimer);
|
||||
// 设置新的定时器,控制滚动速度
|
||||
scrollTimer = setInterval(autoScroll, 30);
|
||||
};
|
||||
@ -118,29 +120,14 @@ const chooseItem = (item) => {
|
||||
stopAutoScroll(); // 点击时停止自动滚动
|
||||
const path = props.bglx === '01' ? '/tacticalResearch' : '/strategicResearch'
|
||||
router.push({
|
||||
// path: '/forumPost',
|
||||
path: path,
|
||||
query: { id: item.id }
|
||||
})
|
||||
};
|
||||
|
||||
// 添加跳转
|
||||
const chooseForumPost = () => {
|
||||
stopAutoScroll(); // 点击时停止自动滚动
|
||||
const path = props.bglx === '01' ? '/tacticalResearch' : '/strategicResearch'
|
||||
|
||||
router.push({ path: path })
|
||||
};
|
||||
|
||||
// 生命周期
|
||||
onMounted(() => {
|
||||
getList();
|
||||
// 数据加载完成后启动自动滚动
|
||||
setTimeout(() => {
|
||||
if (personList.value.length > 0) {
|
||||
startAutoScroll();
|
||||
}
|
||||
}, 1000);
|
||||
});
|
||||
|
||||
// 组件卸载前清除定时器
|
||||
|
||||
Reference in New Issue
Block a user