|
@@ -11,35 +11,39 @@
|
|
|
|
|
|
<van-field
|
|
|
required
|
|
|
- v-model="form.event_type_text"
|
|
|
+ v-model="form2.event_type_text"
|
|
|
label="事件类型"
|
|
|
placeholder="请选择事件类型"
|
|
|
:rules="[{ required: true, message: '请选择事件类型' }]"
|
|
|
readonly
|
|
|
- @click="form.showPicker_event_type = true"
|
|
|
+ @click="picker.showPicker_event_type = true"
|
|
|
/>
|
|
|
|
|
|
- <van-field
|
|
|
- required
|
|
|
- v-model="form.event_level_text"
|
|
|
- label="事件等级"
|
|
|
- placeholder="请选择事件等级"
|
|
|
- :rules="[{ required: true, message: '请选择事件等级' }]"
|
|
|
- readonly
|
|
|
+ <van-field style="padding-top:0;padding-bottom:0;padding-left:0;"
|
|
|
right-icon="warning-o"
|
|
|
- @click="form.showPicker_event_level = true"
|
|
|
- @click-right-icon="handleEventLevel"
|
|
|
- >
|
|
|
+ @click-right-icon="handleEventLevel">
|
|
|
+ <template #input>
|
|
|
+ <van-field
|
|
|
+ required
|
|
|
+ v-model="form2.event_level_text"
|
|
|
+ label="事件等级"
|
|
|
+ placeholder="请选择事件等级"
|
|
|
+ :rules="[{ required: true, message: '请选择事件等级' }]"
|
|
|
+ readonly
|
|
|
+ @click="picker.showPicker_event_level = true"
|
|
|
+ >
|
|
|
+ </van-field>
|
|
|
+ </template>
|
|
|
</van-field>
|
|
|
-
|
|
|
+
|
|
|
<van-field
|
|
|
required
|
|
|
- v-model="form.event_status_text"
|
|
|
+ v-model="form2.event_status_text"
|
|
|
label="事件状态"
|
|
|
placeholder="请选择事件状态"
|
|
|
:rules="[{ required: true, message: '请选择事件状态' }]"
|
|
|
readonly
|
|
|
- @click="form.showPicker_event_status = true"
|
|
|
+ @click="picker.showPicker_event_status = true"
|
|
|
/>
|
|
|
|
|
|
<van-field
|
|
@@ -49,7 +53,7 @@
|
|
|
placeholder="请选择事发时间"
|
|
|
:rules="[{ required: true, message: '请选择事发时间' }]"
|
|
|
readonly
|
|
|
- @click="form.showPicker_event_time = true"
|
|
|
+ @click="picker.showPicker_event_time = true"
|
|
|
/>
|
|
|
|
|
|
<van-field
|
|
@@ -59,7 +63,7 @@
|
|
|
placeholder="请选择上报时间"
|
|
|
:rules="[{ required: true, message: '请选择上报时间' }]"
|
|
|
readonly
|
|
|
- @click="form.showPicker_report_time = true"
|
|
|
+ @click="picker.showPicker_report_time = true"
|
|
|
/>
|
|
|
|
|
|
<van-field
|
|
@@ -103,7 +107,7 @@
|
|
|
readonly
|
|
|
>
|
|
|
<template #button>
|
|
|
- <van-button size="small" type="primary" @click="handleMap">地图定位</van-button>
|
|
|
+ <van-button size="small" type="primary" @click="handleShowPosition">地图定位</van-button>
|
|
|
</template>
|
|
|
</van-field>
|
|
|
|
|
@@ -127,58 +131,83 @@
|
|
|
</div>
|
|
|
</van-form>
|
|
|
|
|
|
- <van-popup v-model:show="form.showPicker_event_type" round position="bottom">
|
|
|
+ <van-popup v-model:show="picker.showPicker_event_type" round position="bottom">
|
|
|
<van-picker
|
|
|
:columns="opt_event_type"
|
|
|
- @cancel="form.showPicker_event_type = false"
|
|
|
+ @cancel="picker.showPicker_event_type = false"
|
|
|
@confirm="onConfirm_event_type"
|
|
|
/>
|
|
|
</van-popup>
|
|
|
|
|
|
- <van-popup v-model:show="form.showPicker_event_level" round position="bottom">
|
|
|
+ <van-popup v-model:show="picker.showPicker_event_level" round position="bottom">
|
|
|
<van-picker
|
|
|
:columns="opt_event_level"
|
|
|
- @cancel="form.showPicker_event_level = false"
|
|
|
+ @cancel="picker.showPicker_event_level = false"
|
|
|
@confirm="onConfirm_event_level"
|
|
|
/>
|
|
|
</van-popup>
|
|
|
|
|
|
- <van-popup v-model:show="form.showPicker_event_status" round position="bottom">
|
|
|
+ <van-popup v-model:show="picker.showPicker_event_status" round position="bottom">
|
|
|
<van-picker
|
|
|
:columns="opt_event_status"
|
|
|
- @cancel="form.showPicker_event_status = false"
|
|
|
+ @cancel="picker.showPicker_event_status = false"
|
|
|
@confirm="onConfirm_event_status"
|
|
|
/>
|
|
|
</van-popup>
|
|
|
|
|
|
- <van-popup v-model:show="form.showPicker_event_time" round position="bottom">
|
|
|
+ <van-popup v-model:show="picker.showPicker_event_time" round position="bottom">
|
|
|
<van-picker-group
|
|
|
title="事发时间"
|
|
|
:tabs="['选择日期', '选择时间']"
|
|
|
@confirm="onConfirm_event_time"
|
|
|
- @cancel="form.showPicker_event_time = false"
|
|
|
+ @cancel="picker.showPicker_event_time = false"
|
|
|
>
|
|
|
<van-date-picker v-model="date_1" :max-date="maxDate" />
|
|
|
<van-time-picker v-model="time_1" />
|
|
|
</van-picker-group>
|
|
|
</van-popup>
|
|
|
|
|
|
- <van-popup v-model:show="form.showPicker_report_time" round position="bottom">
|
|
|
+ <van-popup v-model:show="picker.showPicker_report_time" round position="bottom">
|
|
|
<van-picker-group
|
|
|
title="上报时间"
|
|
|
:tabs="['选择日期', '选择时间']"
|
|
|
@confirm="onConfirm_report_time"
|
|
|
- @cancel="form.showPicker_report_time = false"
|
|
|
+ @cancel="picker.showPicker_report_time = false"
|
|
|
>
|
|
|
<van-date-picker v-model="date_1" :max-date="maxDate" />
|
|
|
<van-time-picker v-model="time_1" />
|
|
|
</van-picker-group>
|
|
|
</van-popup>
|
|
|
+
|
|
|
+ <van-dialog v-model:show="showDlg" title="突发事故分级标准">
|
|
|
+ <div style="padding:16px 16px 0 16px;">
|
|
|
+ <p><strong>一般突发事故:</strong>是指造成3人以下死亡(含失踪),或者10人以下重伤,或者1000万元以下直接经济损失,或产生一定社会影响的。</p>
|
|
|
+ <p>
|
|
|
+ <strong>较大突发事故:</strong
|
|
|
+ >是指造成3人以上10人以下死亡(含失踪),或者10人以上50人以下重伤,或者1000万元以上5000万元以下直接经济损失,或产生较大社会影响的。
|
|
|
+ </p>
|
|
|
+ <p>
|
|
|
+ <strong>重大突发事故:</strong
|
|
|
+ >是指造成10人以上30人以下死亡(含失踪),或者50人以上100人以下重伤,或者5000万元以上1亿元以下直接经济损失,或产生重大社会影响的。
|
|
|
+ </p>
|
|
|
+ <p>
|
|
|
+ <strong>特别重大突发事故:</strong
|
|
|
+ >是指造成30人以上死亡(含失踪),或者100人以上重伤(包括急性工业中毒),或者1亿元以上直接经济损失,或产生特别重大社会影响的。
|
|
|
+ </p>
|
|
|
+ </div>
|
|
|
+ </van-dialog>
|
|
|
+
|
|
|
+ <!--地点选择-->
|
|
|
+ <PositionSelect
|
|
|
+ v-model:visible="showPositionSelect"
|
|
|
+ @confirm="handleEnterCommand"
|
|
|
+ />
|
|
|
</template>
|
|
|
<script lang="ts" setup>
|
|
|
import {reactive, ref, toRefs, getCurrentInstance} from 'vue';
|
|
|
import {useRouter} from "vue-router";
|
|
|
-import { addTaskResult } from "@/api/riskManagement";
|
|
|
+import { addEvent } from '@/api/emergencyCommandMap/JointDuty';
|
|
|
+import PositionSelect from "./PositionSelect.vue"; // 本组件是从mobilecontrol里面复制过来用,因为不需要先addevent,所以不能复用组件
|
|
|
import { showToast } from 'vant';
|
|
|
|
|
|
const proxy = getCurrentInstance()?.proxy;
|
|
@@ -193,11 +222,8 @@ const data = reactive({
|
|
|
form: {
|
|
|
event_title: '',
|
|
|
event_type: '',
|
|
|
- event_type_text: '',
|
|
|
event_level: '',
|
|
|
- event_level_text: '',
|
|
|
event_status: '',
|
|
|
- event_status_text: '',
|
|
|
event_time: '',
|
|
|
report_time: '',
|
|
|
event_source: '',
|
|
@@ -205,8 +231,17 @@ const data = reactive({
|
|
|
deaths: '',
|
|
|
injuries: '',
|
|
|
missing: '',
|
|
|
+ casualties: '1',
|
|
|
address: '',
|
|
|
-
|
|
|
+ latitude: '',
|
|
|
+ longitude: ''
|
|
|
+ },
|
|
|
+ form2: {
|
|
|
+ event_type_text: '',
|
|
|
+ event_level_text: '',
|
|
|
+ event_status_text: '',
|
|
|
+ },
|
|
|
+ picker: {
|
|
|
showPicker_event_type: false,
|
|
|
showPicker_event_level: false,
|
|
|
showPicker_event_status: false,
|
|
@@ -214,7 +249,7 @@ const data = reactive({
|
|
|
showPicker_report_time: false,
|
|
|
}
|
|
|
});
|
|
|
-const {form} = toRefs(data);
|
|
|
+const {form, form2, picker} = toRefs(data);
|
|
|
|
|
|
const opt_event_type = [
|
|
|
{ text: '自然灾害', value: '0' },
|
|
@@ -239,48 +274,56 @@ const opt_event_status = [
|
|
|
];
|
|
|
|
|
|
const onConfirm_event_type = ({selectedOptions}) => {
|
|
|
- form.value.showPicker_event_type = false
|
|
|
+ picker.value.showPicker_event_type = false
|
|
|
form.value.event_type = selectedOptions[0].value;
|
|
|
- form.value.event_type_text = selectedOptions[0].text;
|
|
|
+ form2.value.event_type_text = selectedOptions[0].text;
|
|
|
}
|
|
|
|
|
|
const onConfirm_event_level = ({selectedOptions}) => {
|
|
|
- form.value.showPicker_event_level = false
|
|
|
+ picker.value.showPicker_event_level = false
|
|
|
form.value.event_level = selectedOptions[0].value;
|
|
|
- form.value.event_level_text = selectedOptions[0].text;
|
|
|
+ form2.value.event_level_text = selectedOptions[0].text;
|
|
|
}
|
|
|
|
|
|
const onConfirm_event_status = ({selectedOptions}) => {
|
|
|
- form.value.showPicker_event_status = false
|
|
|
+ picker.value.showPicker_event_status = false
|
|
|
form.value.event_status = selectedOptions[0].value;
|
|
|
- form.value.event_status_text = selectedOptions[0].text;
|
|
|
+ form2.value.event_status_text = selectedOptions[0].text;
|
|
|
}
|
|
|
|
|
|
const onConfirm_event_time = () => {
|
|
|
form.value.event_time = `${date_1.value.join('-')} ${time_1.value.join(':')}`;
|
|
|
console.log('form.value.event_time:', form.value.event_time);
|
|
|
- form.value.showPicker_event_time = false;
|
|
|
+ picker.value.showPicker_event_time = false;
|
|
|
}
|
|
|
|
|
|
const onConfirm_report_time = () => {
|
|
|
form.value.report_time = `${date_1.value.join('-')} ${time_1.value.join(':')}`;
|
|
|
console.log('form.value.event_time:', form.value.report_time);
|
|
|
- form.value.showPicker_report_time = false;
|
|
|
+ picker.value.showPicker_report_time = false;
|
|
|
}
|
|
|
|
|
|
+const showDlg = ref(false);
|
|
|
const handleEventLevel = () => {
|
|
|
-
|
|
|
+ showDlg.value = true;
|
|
|
};
|
|
|
-const handleMap = () => {
|
|
|
|
|
|
+let showPositionSelect = ref(false);
|
|
|
+const handleShowPosition = () => {
|
|
|
+ showPositionSelect.value = true;
|
|
|
+};
|
|
|
+const handleEnterCommand = res => {
|
|
|
+ form.value.address = res.address;
|
|
|
+ form.value.latitude = res.latitude;
|
|
|
+ form.value.longitude = res.longitude;
|
|
|
};
|
|
|
|
|
|
const on_submit = () => {
|
|
|
- console.log('on_submit', {});
|
|
|
- addTaskResult({
|
|
|
-
|
|
|
- }).then((res)=>{
|
|
|
- router.back();
|
|
|
+ console.log('on_submit', form.value);
|
|
|
+ addEvent(form.value).then((res)=>{
|
|
|
+ showToast({type: 'success', message: res.msg, onClose:()=>{
|
|
|
+ router.back();
|
|
|
+ }});
|
|
|
});
|
|
|
};
|
|
|
|