事故日志模块

liujun0703-新项目开发
WenShiJun 2024-07-18 14:27:52 +08:00
parent 6ec2cd3f6b
commit 20082216c8
6 changed files with 458 additions and 16 deletions

View File

@ -715,7 +715,8 @@ export default {
this.dialogRescueVisible = true this.dialogRescueVisible = true
this.rescueForm = { this.rescueForm = {
FIRERESERVEPLAN_ID: '', FIRERESERVEPLAN_ID: '',
HIERARCHICALRESPONSE_ID: '' HIERARCHICALRESPONSE_ID: '',
REGISTRATION_ID: id
} }
}, },
confirmRescue() { confirmRescue() {
@ -723,12 +724,12 @@ export default {
if (valid) { if (valid) {
this.dialogRescueVisible = false this.dialogRescueVisible = false
// //
this.sendSMS(this.rescueForm.FIRERESERVEPLAN_ID, this.rescueForm.HIERARCHICALRESPONSE_ID) this.sendSMS(this.rescueForm.FIRERESERVEPLAN_ID, this.rescueForm.HIERARCHICALRESPONSE_ID, this.rescueForm.REGISTRATION_ID)
} }
}) })
}, },
sendSMS(planId, responseId) { sendSMS(planId, responseId, registrationId) {
requestFN('/major/registration/sendSMS', { planId, responseId }).then((response) => { requestFN('/major/registration/sendSMS', { planId, responseId, registrationId }).then((response) => {
}) })
}, },
handleRegionChange(value) { handleRegionChange(value) {

View File

@ -42,7 +42,6 @@
import Pagination from '@/components/Pagination' import Pagination from '@/components/Pagination'
import { requestFN } from '@/utils/request' import { requestFN } from '@/utils/request'
import { MessageBox, Message } from 'element-ui' import { MessageBox, Message } from 'element-ui'
export default { export default {
components: { Pagination }, components: { Pagination },
data() { data() {

View File

@ -0,0 +1,250 @@
<template>
<div>
<div class="app-container">
<div class="level-title">
<h1>事故详情</h1>
</div>
<div class="mb-20">
<table class="table-ui">
<tr>
<td class="tbg">事件标题</td>
<td>{{ form.EVENT_NAME }}</td>
<td class="tbg">呼入电话</td>
<td>{{ form.INCOMING_PHONE }}</td>
</tr>
<tr>
<td class="tbg">机主姓名</td>
<td>{{ form.OWNER_NAME }}</td>
<td class="tbg">主叫地址</td>
<td>{{ form.CALLER_ADDRESS }}</td>
</tr>
<tr>
<td class="tbg">接入方式</td>
<td>{{ form.ACCESS_MODE }}</td>
<td class="tbg">事件类型</td>
<td>{{ form.EVENT_TYPE }}</td>
</tr>
<tr>
<td class="tbg">姓名</td>
<td>{{ form.NAME }}</td>
<td class="tbg">联系电话</td>
<td>{{ form.CONTACT_PHONE }}</td>
</tr>
<tr>
<td class="tbg">单位名称</td>
<td>{{ form.UNIT_NAME }}</td>
<td class="tbg">所在区域</td>
<td>{{ form.REGION }}</td>
</tr>
<tr>
<td class="tbg">单位地址</td>
<td>{{ form.UNIT_ADDRESS }}</td>
<td class="tbg">行业类型</td>
<td>{{ form.INDUSTRY_TYPE }}</td>
</tr>
<tr>
<td class="tbg">经济类型</td>
<td>{{ form.ECONOMIC_TYPE }}</td>
<td class="tbg">重大危险源</td>
<td>{{ form.MAJOR_HAZARD }}</td>
</tr>
<tr>
<td class="tbg">接报时间</td>
<td>{{ form.REPORT_TIME }}</td>
<td class="tbg">发生时间</td>
<td>{{ form.OCCURRENCE_TIME }}</td>
</tr>
<tr>
<td class="tbg">所在地址</td>
<td>{{ form.LOCATION_ADDRESS }}</td>
<td class="tbg">经度</td>
<td>{{ form.LONGITUDE }}</td>
</tr>
<tr>
<td class="tbg">纬度</td>
<td>{{ form.LATITUDE }}</td>
<td class="tbg">接报类型</td>
<td>{{ form.REPORT_TYPE }}</td>
</tr>
<tr>
<td class="tbg">事故标题</td>
<td>{{ form.ACCIDENT_TITLE }}</td>
<td class="tbg">事故级别</td>
<td>{{ form.ACCIDENT_LEVEL }}</td>
</tr>
<tr>
<td class="tbg">伤害类型</td>
<td>{{ form.INJURY_TYPE }}</td>
<td class="tbg">事故类型</td>
<td>{{ form.ACCIDENT_TYPE }}</td>
</tr>
<tr>
<td class="tbg">被困人数</td>
<td>{{ form.TRAPPED_PEOPLE_COUNT }}</td>
<td class="tbg">失踪人数</td>
<td>{{ form.MISSING_PEOPLE_COUNT }}</td>
</tr>
<tr>
<td class="tbg">死亡人数</td>
<td>{{ form.DEATH_PEOPLE_COUNT }}</td>
<td class="tbg">重伤人数</td>
<td>{{ form.SERIOUS_INJURY_PEOPLE_COUNT }}</td>
</tr>
<tr>
<td class="tbg">轻伤人数</td>
<td>{{ form.MINOR_INJURY_PEOPLE_COUNT }}</td>
<td class="tbg">中毒人数</td>
<td>{{ form.POISONING_PEOPLE_COUNT }}</td>
</tr>
<tr>
<td class="tbg">直接经济损失万元</td>
<td>{{ form.DIRECT_ECONOMIC_LOSS }}</td>
</tr>
<tr>
<td class="tbg">简要经过</td>
<td colspan="3">{{ form.BRIEF_PROCESS }}</td>
</tr>
<tr>
<td class="tbg">处置情况</td>
<td colspan="3">{{ form.DISPOSAL_SITUATION }}</td>
</tr>
<tr>
<td class="tbg">指令内容</td>
<td colspan="3">{{ form.ORDER_CONTENT }}</td>
</tr>
<tr>
<td class="tbg">预案名称</td>
<td colspan="3">{{ form.PLAN_NAME }}</td>
</tr>
<tr>
<td class="tbg">响应级别名称</td>
<td colspan="3">{{ form.RESPONSE_NAME }}</td>
</tr>
</table>
</div>
</div>
<div class="ui-height" />
<div class="ui-foot">
<el-button type="primary" @click="goBack"></el-button>
</div>
</div>
</template>
<script>
import { requestFN } from '@/utils/request'
export default {
data() {
return {
form: {
EVENT_NAME: '',
INCOMING_PHONE: '',
OWNER_NAME: '',
CALLER_ADDRESS: '',
ACCESS_MODE: '',
EVENT_TYPE: '',
NAME: '',
CONTACT_PHONE: '',
UNIT_NAME: '',
REGION: '',
UNIT_ADDRESS: '',
INDUSTRY_TYPE: '',
ECONOMIC_TYPE: '',
MAJOR_HAZARD: '',
REPORT_TIME: '',
OCCURRENCE_TIME: '',
LOCATION_ADDRESS: '',
LONGITUDE: '',
LATITUDE: '',
REPORT_TYPE: '',
ACCIDENT_TITLE: '',
ACCIDENT_LEVEL: '',
INJURY_TYPE: '',
ACCIDENT_TYPE: '',
TRAPPED_PEOPLE_COUNT: '',
MISSING_PEOPLE_COUNT: '',
DEATH_PEOPLE_COUNT: '',
SERIOUS_INJURY_PEOPLE_COUNT: '',
MINOR_INJURY_PEOPLE_COUNT: '',
POISONING_PEOPLE_COUNT: '',
DIRECT_ECONOMIC_LOSS: '',
BRIEF_PROCESS: '',
ORDER_CONTENT: '',
PLAN_NAME: '',
RESPONSE_NAME: '',
DISPOSAL_SITUATION: ''
},
Id: ''
}
},
created() {
if (this.$parent.CASE_ID) {
this.Id = this.$parent.CASE_ID
this.getDetail(this.Id)
}
},
methods: {
goBack() {
this.$parent.activeName = 'list'
},
getDetail(Id) {
const params = { Id }
requestFN('/major/registration/detailLog', params).then((response) => {
const data = response.msg
this.form = {
EVENT_NAME: data.EVENT_NAME,
INCOMING_PHONE: data.INCOMING_PHONE,
OWNER_NAME: data.OWNER_NAME,
CALLER_ADDRESS: data.CALLER_ADDRESS,
ACCESS_MODE: data.ACCESS_MODE,
EVENT_TYPE: data.EVENT_TYPE,
NAME: data.NAME,
CONTACT_PHONE: data.CONTACT_PHONE,
UNIT_NAME: data.UNIT_NAME,
REGION: data.REGION,
UNIT_ADDRESS: data.UNIT_ADDRESS,
INDUSTRY_TYPE: data.INDUSTRY_TYPE,
ECONOMIC_TYPE: data.ECONOMIC_TYPE,
MAJOR_HAZARD: data.MAJOR_HAZARD,
REPORT_TIME: data.REPORT_TIME,
OCCURRENCE_TIME: data.OCCURRENCE_TIME,
LOCATION_ADDRESS: data.LOCATION_ADDRESS,
LONGITUDE: data.LONGITUDE,
LATITUDE: data.LATITUDE,
REPORT_TYPE: data.REPORT_TYPE,
ACCIDENT_TITLE: data.ACCIDENT_TITLE,
ACCIDENT_LEVEL: data.ACCIDENT_LEVEL,
INJURY_TYPE: data.INJURY_TYPE,
ACCIDENT_TYPE: data.ACCIDENT_TYPE,
TRAPPED_PEOPLE_COUNT: data.TRAPPED_PEOPLE_COUNT,
MISSING_PEOPLE_COUNT: data.MISSING_PEOPLE_COUNT,
DEATH_PEOPLE_COUNT: data.DEATH_PEOPLE_COUNT,
SERIOUS_INJURY_PEOPLE_COUNT: data.SERIOUS_INJURY_PEOPLE_COUNT,
MINOR_INJURY_PEOPLE_COUNT: data.MINOR_INJURY_PEOPLE_COUNT,
POISONING_PEOPLE_COUNT: data.POISONING_PEOPLE_COUNT,
DIRECT_ECONOMIC_LOSS: data.DIRECT_ECONOMIC_LOSS,
BRIEF_PROCESS: data.BRIEF_PROCESS,
DISPOSAL_SITUATION: data.DISPOSAL_SITUATION,
RESPONSE_NAME: data.RESPONSE_NAME,
PLAN_NAME: data.PLAN_NAME,
ORDER_CONTENT: data.ORDER_CONTENT,
Id: data.ID
}
}).catch((e) => {
console.error('获取详情数据失败', e)
})
}
}
}
</script>
<style lang="sass" scoped>
.table-ui
td
line-height: 34px
.tbg
width: 200px
.ui-foot
text-align: center
margin-top: 20px
</style>

View File

@ -0,0 +1,183 @@
<template>
<div class="app-container">
<div class="filter-container">
<el-form inline>
<el-form-item label="姓名:" prop="NAME">
<el-input v-model="NAME" placeholder="姓名" class="filter-item" style="width: 200px;" />
</el-form-item>
<el-form-item>
<el-button class="filter-item" type="primary" icon="el-icon-search" @click="getQuery"></el-button>
<el-button class="filter-item" type="default" icon="el-icon-refresh" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
</div>
<el-table ref="multipleTable" :data="varList" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row>
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="index" label="序号" width="50" align="center" />
<el-table-column prop="NAME" label="姓名" width="180" />
<el-table-column prop="PHONE" label="电话" show-overflow-tooltip="true" />
<el-table-column prop="PLAN_NAME" label="预案名称" show-overflow-tooltip="true" />
<el-table-column prop="RESPONSE_NAME" label="响应级别名称" show-overflow-tooltip="true" />
<el-table-column prop="CREATETIME" label="通知时间" show-overflow-tooltip="true" />
<el-table-column label="操作" align="center" width="300">
<template slot-scope="{ row }">
<el-button type="primary" icon="el-icon-download" size="mini" @click="confirmExport(row.ID)"></el-button>
<el-button type="primary" icon="el-icon-document" size="mini" @click="goList('detail', row.ID, '1')">查看</el-button>
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.ID, row.NAME)">删除</el-button>
</template>
</el-table-column>
</el-table>
<div class="page-btn-group">
<div>
<template>
<el-button type="danger" icon="el-icon-delete" plain @click="makeAll('0')"></el-button>
</template>
</div>
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
</div>
</div>
</template>
<script>
import Pagination from '@/components/Pagination'
import { requestFN } from '@/utils/request'
import { MessageBox, Message } from 'element-ui'
export default {
components: { Pagination },
data() {
return {
listLoading: false,
dialogFormShow: false,
dialogType: 'add',
NAME: '',
form: {
ID: '',
NAME: '',
PHONE: '',
PLAN_ID: '',
RESPONSE_ID: ''
},
total: 0,
varList: [],
KEYWORDS_NAME: '',
listQuery: {
page: 1,
limit: 10
}
}
},
created() {
this.getList()
},
methods: {
getQuery() {
this.$refs.multipleTable.clearSelection()
this.getList()
},
resetQuery() {
this.NAME = ''
this.getQuery()
},
goList(page, CASE_ID, ticketType) {
this.$parent.activeName = page
this.$parent.CASE_ID = CASE_ID
this.$parent.ticketType = ticketType
},
confirmExport(id) {
MessageBox.confirm('确定要导出数据吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.getExportExcel(id)
})
},
getExportExcel(id) {
const params = { Id: id }
requestFN('/major/dutylog/ExportExcel', params).then((response) => {
Message({
type: 'success',
message: '导出成功'
})
}).catch((e) => {
Message({
type: 'error',
message: '导出失败'
})
console.error('导出数据失败', e)
})
},
getDetail(id) {
const params = { Id: id }
requestFN('/major/dutylog/detail', params).then((response) => {
const data = response.msg
this.form = {
Id: data.ID,
NAME: data.NAME,
PHONE: data.PHONE,
PLAN_ID: data.PLAN_ID,
RESPONSE_ID: data.RESPONSE_ID
}
}).catch((e) => {
console.error('获取详情数据失败', e)
})
},
handleDelete(id, NAME) {
this.$confirm('确定要删除[' + NAME + ']吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = true
requestFN('/major/dutylog/delete', { id }).then((data) => {
if (data.result === 'success') {
this.listLoading = false
this.getList()
}
}).catch((e) => {
this.listLoading = false
})
}).catch(() => { })
},
makeAll() {
const _selectData = this.$refs.multipleTable.selection
if (!_selectData || _selectData.length === 0) {
this.$message({
message: '请选中要删除的项...',
type: 'error'
})
return false
}
const ids = _selectData.map(item => item.ID).join(',')
this.$confirm('确定要删除选中的数据吗?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.listLoading = true
requestFN('/major/dutylog/deleteAll', { ids }).then(() => {
this.listLoading = false
this.getList()
}).catch((e) => {
this.listLoading = false
})
}).catch(() => { })
},
getList() {
this.listLoading = true
requestFN('/major/notification/list?showCount=' + this.listQuery.limit + '&currentPage=' + this.listQuery.page,
{
name: this.NAME
}
).then((data) => {
this.listLoading = false
this.varList = data.varList
this.total = data.page.totalResult
}).catch((e) => {
this.listLoading = false
})
}
}
}
</script>

View File

@ -0,0 +1,19 @@
<template>
<div>
<list v-show="activeName=='list'" ref="list" />
<detail v-if="activeName=='detail'"/>
</div>
</template>
<script>
import list from './components/list.vue'
import detail from './components/detail.vue'
export default {
components: { list, detail },
data() {
return {
activeName: 'list',
CASE_ID: ''
}
}
}
</script>

View File

@ -49,10 +49,6 @@
no-children-text="暂无数据" no-children-text="暂无数据"
/> />
</el-form-item> </el-form-item>
<el-form-item label="所在位置" prop="LOCATION">
<el-input v-model="form.LOCATION" placeholder="请输入所在位置..." />
</el-form-item>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item :key="form.LONGITUDE" label="经度" prop="LONGITUDE"> <el-form-item :key="form.LONGITUDE" label="经度" prop="LONGITUDE">
@ -177,7 +173,6 @@ export default {
}, },
data() { data() {
return { return {
// //
CORPINFO_ID: this.$parent.CORPINFO_ID, CORPINFO_ID: this.$parent.CORPINFO_ID,
clientHeight: 600, clientHeight: 600,
@ -193,7 +188,6 @@ export default {
dialogFormMap: false, dialogFormMap: false,
LATITUDE: '', LATITUDE: '',
LONGITUDE: '', LONGITUDE: '',
listQuery: { listQuery: {
page: 1, page: 1,
limit: 10 limit: 10
@ -227,8 +221,6 @@ export default {
// //
CONTACT_MOBILE_TOW_PHONE: '', CONTACT_MOBILE_TOW_PHONE: '',
//
LOCATION: '',
// //
OVERVIEW: '', OVERVIEW: '',
// //
@ -284,7 +276,7 @@ export default {
getyjEquipmentFacilitiesDataList() { getyjEquipmentFacilitiesDataList() {
const params = { const params = {
PARENT_ID: 'd2d163a49a1842a99b28067eee05884b' PARENT_ID: 'd80b53993f8e46cca18bc98e1ad9304e'
} }
requestFN('/dictionaries/listTree', params).then((data) => { requestFN('/dictionaries/listTree', params).then((data) => {
this.yjEquipmentFacilitiesData = JSON.parse(data.zTreeNodes) this.yjEquipmentFacilitiesData = JSON.parse(data.zTreeNodes)
@ -476,8 +468,6 @@ export default {
// //
CONTACT_MOBILE_TOW_PHONE: data.CONTACT_MOBILE_TOW_PHONE, CONTACT_MOBILE_TOW_PHONE: data.CONTACT_MOBILE_TOW_PHONE,
//
LOCATION: data.LOCATION,
// //
OVERVIEW: data.OVERVIEW, OVERVIEW: data.OVERVIEW,
// //