Browse Source

问题线索关联问题预警

main
kami 1 year ago
parent
commit
a1548e4d5b
  1. 12
      src/api/work/alarm.ts
  2. 110
      src/views/sensitivePerception/ModelClue.vue
  3. 134
      src/views/work/Alarm.vue

12
src/api/work/alarm.ts

@ -21,3 +21,15 @@ export function alarmNotificationCommit(data) {
});
}
export function alarmFiles(id) {
return request.get({
url: `/alarm/notification/files?alarmId=${id}`
});
}
export function alarmDetails(id) {
return request.get({
url: `/alarm/notification/details?alarmId=${id}`
});
}

110
src/views/sensitivePerception/ModelClue.vue

@ -54,7 +54,8 @@
<template #icon>
<icon name="el-icon-Search"/>
</template>
查询</el-button
查询
</el-button
>
<el-button @click="reset">重置</el-button>
</div>
@ -79,7 +80,8 @@
width="200"
>
<template #default="{ row }">
<span>{{ row.involveParentDepartName }}</span><span v-if="row.involveDepartName"><br>{{ row.involveDepartName }}</span>
<span>{{ row.involveParentDepartName }}</span><span
v-if="row.involveDepartName"><br>{{ row.involveDepartName }}</span>
</template>
</el-table-column>
<el-table-column
@ -90,7 +92,9 @@
<template #default="{ row }">
<div v-if="row.involvePoliceName">
<div v-for="item in row.involvePoliceName.split(' ')" class="text-nowrap">{{
item }}</div>
item
}}
</div>
</div>
<div v-else></div>
</template>
@ -120,14 +124,24 @@
type="primary"
link
@click="handleShowDetail(row)"
>查看详情</el-button
>查看详情
</el-button
>
<el-button
v-if="row.negativeId"
type="primary"
link
@click="handleAction(row)"
>处理详情</el-button
>处理详情
</el-button
>
<el-button
type="primary"
link
:disabled="row.distributionState!='1'"
@click="handleClue(row)"
>查看提醒
</el-button
>
</template>
</el-table-column>
@ -165,7 +179,11 @@
<div class="col col-6">
<label>涉及单位</label>
<span>
<span>{{ activeModelClue.involveParentDepartName }}</span><span>{{ activeModelClue.involveDepartName ? '/' + activeModelClue.involveDepartName : '' }}</span>
<span>{{
activeModelClue.involveParentDepartName
}}</span><span>{{
activeModelClue.involveDepartName ? '/' + activeModelClue.involveDepartName : ''
}}</span>
</span>
</div>
<div class="col col-6">
@ -197,6 +215,75 @@
</div>
</el-dialog>
<el-dialog
title="查看详情"
v-model="dialogShow"
width="800"
>
<el-form :model="showData" :label-width="120" ref="fomrRef">
<el-row>
<el-col :span="12">
<el-form-item
label="提醒类型"
>
<div>{{ showData.alarmType }}</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="提醒时间"
>
<el-text>{{ showData.alarmTime }}</el-text>
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 5px;">
<el-col :span="12">
<el-form-item
label="被通知单位"
>
<el-text>{{ showData.notificationDepartName }}</el-text>
</el-form-item>
</el-col>
<el-col :span="12" v-if="showData.policeName != undefined">
<el-form-item
label="被通知民警"
>
<el-text>{{ showData.policeName }}</el-text>
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 5px;">
<el-form-item
label="提醒内容"
>
<el-text style="width: 588px;">{{ showData.alarmContent }}</el-text>
</el-form-item>
</el-row>
<el-row style="margin-top: 5px;" v-if="showData.replyState == 1">
<el-form-item
label="回复内容"
>
<el-text style="width: 588px;">{{ showData.replyResultContent }}</el-text>
</el-form-item>
</el-row>
<el-row style="margin-top: 10px;" v-if="showData.files != undefined && showData.files.length > 0">
<el-form-item
label="问题附件"
>
<div v-for="(item, index) in showData.files" :key="index" style="margin-top: 10px;">
<el-image style="width: 100px; height: 100px;margin-right: 8px" :src="item.path" fit="cover"
:hide-on-click-modal="true" :lazy="true" :z-index="index"/>
</div>
</el-form-item>
</el-row>
</el-form>
<footer class="flex end">
<el-button @click="dialogShow = false">关闭</el-button>
</footer>
</el-dialog>
<negative-dialog
v-model="negativeShow"
:id="activeNegativeId"
@ -205,6 +292,7 @@
</template>
<script lang="ts" setup>
import {listModelClue} from "@/api/sensitivePerception/modelClue";
import {alarmDetails} from "@/api/work/alarm"
import useCatchStore from "@/stores/modules/catch";
import {getDictLable} from "@/utils/util";
@ -216,6 +304,16 @@ const query = ref({});
const list = ref([]);
const total = ref(0);
let showData = ref({})
let dialogShow = ref(false)
const handleClue = (row) => {
alarmDetails(row.notificationId).then(res => {
showData.value = res
dialogShow.value = true
})
}
onMounted(() => {
getList();
});

134
src/views/work/Alarm.vue

@ -125,7 +125,7 @@
<el-button
type="primary"
link
@click="showDetail(row)"
@click="showFiles(row)"
>查看详情
</el-button>
<el-button
@ -155,53 +155,45 @@
</main>
<el-dialog v-model="editShow" title="回复问题" width="900px">
<el-form label-width="148" :model="formData" ref="formRef">
<el-row>
<el-col :span="12">
<el-form-item
label="提醒类型"
>
<el-input
v-model="formData.alarmType"
style="width: 280px"
disabled
/>
<div >{{formData.alarmType}}</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="提醒时间"
>
<el-input
v-model="formData.alarmTime"
disabled
style="width: 280px"
/>
<el-text>{{formData.alarmTime}}</el-text>
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 5px;">
<el-col :span="12">
<el-form-item
label="被通知单位"
>
<el-input
v-model="formData.notificationDepartName"
disabled
style="width: 280px"
/>
<el-text>{{formData.notificationDepartName}}</el-text>
</el-form-item>
</el-col>
<el-col :span="12" v-if="formData.policeName != undefined">
<el-form-item
label="被通知单位"
label="被通知民警"
>
<el-input
v-model="formData.policeName"
disabled
style="width: 280px"
/>
<el-text>{{formData.policeName}}</el-text>
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 5px;">
<el-form-item
label="提醒内容"
>
<el-input
type="textarea"
v-model="formData.alarmContent"
:autosize="{ minRows: 6 }"
disabled
style="width: 280px"
/>
<el-text style="width: 588px;">{{formData.alarmContent}}</el-text>
</el-form-item>
</el-row>
<el-form-item
label="回复问题"
:rules="{
@ -230,69 +222,65 @@
<el-dialog
title="查看详情"
v-model="dialogShow"
width="600"
width="800"
>
<el-form :model="showData" :label-width="120" ref="fomrRef">
<el-row>
<el-col :span="12">
<el-form-item
label="提醒类型"
>
<el-input
v-model="showData.alarmType"
style="width: 280px"
disabled
/>
<div >{{showData.alarmType}}</div>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="提醒时间"
>
<el-input
v-model="showData.alarmTime"
disabled
style="width: 280px"
/>
<el-text>{{showData.alarmTime}}</el-text>
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 5px;">
<el-col :span="12">
<el-form-item
label="被通知单位"
>
<el-input
v-model="showData.notificationDepartName"
disabled
style="width: 280px"
/>
<el-text>{{showData.notificationDepartName}}</el-text>
</el-form-item>
</el-col>
<el-col :span="12" v-if="showData.policeName != undefined">
<el-form-item
label="被通知单位"
label="被通知民警"
>
<el-input
v-model="showData.policeName"
disabled
style="width: 280px"
/>
<el-text>{{showData.policeName}}</el-text>
</el-form-item>
</el-col>
</el-row>
<el-row style="margin-top: 5px;">
<el-form-item
label="提醒内容"
>
<el-input
type="textarea"
v-model="showData.alarmContent"
:autosize="{ minRows: 6 }"
disabled
style="width: 280px"
/>
<el-text style="width: 588px;">{{showData.alarmContent}}</el-text>
</el-form-item>
</el-row>
<el-row style="margin-top: 5px;" v-if="showData.replyState == 1">
<el-form-item
v-if="showData.replyState == 1"
label="回复内容"
>
<el-input
type="textarea"
v-model="showData.replyResultContent"
disabled
:autosize="{ minRows: 4 }"
style="width: 280px"
/>
<el-text style="width: 588px;">{{showData.replyResultContent}}</el-text>
</el-form-item>
</el-row>
<el-row style="margin-top: 10px;" v-if="showData.files != undefined && showData.files.length > 0">
<el-form-item
label="问题附件"
>
<div v-for="(item, index) in showData.files" :key="index" style="margin-top: 10px;">
<el-image style="width: 100px; height: 100px;margin-right: 8px" :src="item.path" fit="cover" :hide-on-click-modal="true" :lazy="true" :z-index="index"/>
</div>
</el-form-item>
</el-row>
</el-form>
<footer class="flex end">
<el-button @click="dialogShow = false">关闭</el-button>
@ -303,10 +291,12 @@
</template>
<script setup>
import moment from "moment";
import {ElLoading} from "element-plus";
import { Clock } from '@element-plus/icons-vue'
import {
alarmNotificationPages,
alarmNotificationReply
alarmNotificationReply,
alarmFiles
} from "@/api/work/alarm";
import feedback from "@/utils/feedback";
@ -329,9 +319,13 @@ let dialogShow = ref(false)
const loading = ref(true);
const showDetail = (data) => {
const showFiles = (data) => {
alarmFiles(data.id).then(res => {
showData.value = data;
showData.value['files'] = res;
console.log(showData.value)
dialogShow.value = true;
})
}
function getList() {

Loading…
Cancel
Save