|
@@ -1,2 +1,311 @@
|
|
|
<template>
|
|
|
-</template>
|
|
|
+ <van-form @submit="on_submit">
|
|
|
+ <div style="padding-top: 8px;background: #fff">
|
|
|
+ <van-field
|
|
|
+ required
|
|
|
+ v-model="form.event_title"
|
|
|
+ label="事件标题"
|
|
|
+ placeholder="请填写事件标题"
|
|
|
+ :rules="[{ required: true, message: '请填写事件标题' }]"
|
|
|
+ />
|
|
|
+
|
|
|
+ <van-field
|
|
|
+ required
|
|
|
+ v-model="form.event_type_text"
|
|
|
+ label="事件类型"
|
|
|
+ placeholder="请选择事件类型"
|
|
|
+ :rules="[{ required: true, message: '请选择事件类型' }]"
|
|
|
+ readonly
|
|
|
+ @click="form.showPicker_event_type = true"
|
|
|
+ />
|
|
|
+
|
|
|
+ <van-field
|
|
|
+ required
|
|
|
+ v-model="form.event_level_text"
|
|
|
+ label="事件等级"
|
|
|
+ placeholder="请选择事件等级"
|
|
|
+ :rules="[{ required: true, message: '请选择事件等级' }]"
|
|
|
+ readonly
|
|
|
+ right-icon="warning-o"
|
|
|
+ @click="form.showPicker_event_level = true"
|
|
|
+ @click-right-icon="handleEventLevel"
|
|
|
+ >
|
|
|
+ </van-field>
|
|
|
+
|
|
|
+ <van-field
|
|
|
+ required
|
|
|
+ v-model="form.event_status_text"
|
|
|
+ label="事件状态"
|
|
|
+ placeholder="请选择事件状态"
|
|
|
+ :rules="[{ required: true, message: '请选择事件状态' }]"
|
|
|
+ readonly
|
|
|
+ @click="form.showPicker_event_status = true"
|
|
|
+ />
|
|
|
+
|
|
|
+ <van-field
|
|
|
+ required
|
|
|
+ v-model="form.event_time"
|
|
|
+ label="事发时间"
|
|
|
+ placeholder="请选择事发时间"
|
|
|
+ :rules="[{ required: true, message: '请选择事发时间' }]"
|
|
|
+ readonly
|
|
|
+ @click="form.showPicker_event_time = true"
|
|
|
+ />
|
|
|
+
|
|
|
+ <van-field
|
|
|
+ required
|
|
|
+ v-model="form.report_time"
|
|
|
+ label="上报时间"
|
|
|
+ placeholder="请选择上报时间"
|
|
|
+ :rules="[{ required: true, message: '请选择上报时间' }]"
|
|
|
+ readonly
|
|
|
+ @click="form.showPicker_report_time = true"
|
|
|
+ />
|
|
|
+
|
|
|
+ <van-field
|
|
|
+ v-model="form.deaths"
|
|
|
+ label="死亡人数"
|
|
|
+ placeholder="请填写死亡人数"
|
|
|
+ :rules="[{ required: true, message: '请填写死亡人数' }]"
|
|
|
+ />
|
|
|
+
|
|
|
+ <van-field
|
|
|
+ v-model="form.injuries"
|
|
|
+ label="受伤人数"
|
|
|
+ placeholder="请填写受伤人数"
|
|
|
+ :rules="[{ required: false, message: '请填写受伤人数' }]"
|
|
|
+ type="digit"
|
|
|
+ />
|
|
|
+
|
|
|
+ <van-field
|
|
|
+ v-model="form.missing"
|
|
|
+ label="失联人数"
|
|
|
+ placeholder="请填写失联人数"
|
|
|
+ :rules="[{ required: false, message: '请填写失联人数' }]"
|
|
|
+ type="digit"
|
|
|
+ />
|
|
|
+
|
|
|
+ <van-field
|
|
|
+ required
|
|
|
+ v-model="form.event_source"
|
|
|
+ label="事件来源"
|
|
|
+ placeholder="请填写事件来源"
|
|
|
+ :rules="[{ required: false, message: '请填写事件来源' }]"
|
|
|
+ />
|
|
|
+
|
|
|
+ <van-field
|
|
|
+ center
|
|
|
+ required
|
|
|
+ v-model="form.address"
|
|
|
+ label="事发地点"
|
|
|
+ placeholder="请填写事发地点"
|
|
|
+ :rules="[{ required: false, message: '请填写事发地点' }]"
|
|
|
+ readonly
|
|
|
+ >
|
|
|
+ <template #button>
|
|
|
+ <van-button size="small" type="primary" @click="handleMap">地图定位</van-button>
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+
|
|
|
+ <van-field
|
|
|
+ required
|
|
|
+ v-model="form.event_description"
|
|
|
+ label="事件概要"
|
|
|
+ placeholder="请填写事件概要"
|
|
|
+ :rules="[{ required: true, message: '请填写事件概要' }]"
|
|
|
+ rows="3"
|
|
|
+ autosize
|
|
|
+ type="textarea"
|
|
|
+ maxlength="250"
|
|
|
+ show-word-limit
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="popup-footer" style="padding-bottom:16px;">
|
|
|
+ <van-button @click="handleCancel()" class="cancel-btn">取 消</van-button>
|
|
|
+ <van-button type="primary" native-type="submit" class="confirm-btn">确 定</van-button>
|
|
|
+ </div>
|
|
|
+ </van-form>
|
|
|
+
|
|
|
+ <van-popup v-model:show="form.showPicker_event_type" round position="bottom">
|
|
|
+ <van-picker
|
|
|
+ :columns="opt_event_type"
|
|
|
+ @cancel="form.showPicker_event_type = false"
|
|
|
+ @confirm="onConfirm_event_type"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+
|
|
|
+ <van-popup v-model:show="form.showPicker_event_level" round position="bottom">
|
|
|
+ <van-picker
|
|
|
+ :columns="opt_event_level"
|
|
|
+ @cancel="form.showPicker_event_level = false"
|
|
|
+ @confirm="onConfirm_event_level"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+
|
|
|
+ <van-popup v-model:show="form.showPicker_event_status" round position="bottom">
|
|
|
+ <van-picker
|
|
|
+ :columns="opt_event_status"
|
|
|
+ @cancel="form.showPicker_event_status = false"
|
|
|
+ @confirm="onConfirm_event_status"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+
|
|
|
+ <van-popup v-model:show="form.showPicker_event_time" round position="bottom">
|
|
|
+ <van-picker-group
|
|
|
+ title="事发时间"
|
|
|
+ :tabs="['选择日期', '选择时间']"
|
|
|
+ @confirm="onConfirm_event_time"
|
|
|
+ @cancel="form.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-picker-group
|
|
|
+ title="上报时间"
|
|
|
+ :tabs="['选择日期', '选择时间']"
|
|
|
+ @confirm="onConfirm_report_time"
|
|
|
+ @cancel="form.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>
|
|
|
+</template>
|
|
|
+<script lang="ts" setup>
|
|
|
+import {reactive, ref, toRefs, getCurrentInstance} from 'vue';
|
|
|
+import {useRouter} from "vue-router";
|
|
|
+import { addTaskResult } from "@/api/riskManagement";
|
|
|
+import { showToast } from 'vant';
|
|
|
+
|
|
|
+const proxy = getCurrentInstance()?.proxy;
|
|
|
+const { mm_event_type } = toRefs<any>(proxy?.useDict( 'mm_event_type' ));
|
|
|
+
|
|
|
+const router = useRouter();
|
|
|
+const maxDate = new Date();
|
|
|
+const date_1 = ref();
|
|
|
+const time_1 = ref();
|
|
|
+
|
|
|
+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: '',
|
|
|
+ event_description: '',
|
|
|
+ deaths: '',
|
|
|
+ injuries: '',
|
|
|
+ missing: '',
|
|
|
+ address: '',
|
|
|
+
|
|
|
+ showPicker_event_type: false,
|
|
|
+ showPicker_event_level: false,
|
|
|
+ showPicker_event_status: false,
|
|
|
+ showPicker_event_time: false,
|
|
|
+ showPicker_report_time: false,
|
|
|
+ }
|
|
|
+});
|
|
|
+const {form} = toRefs(data);
|
|
|
+
|
|
|
+const opt_event_type = [
|
|
|
+ { text: '自然灾害', value: '0' },
|
|
|
+ { text: '事故灾害', value: '1' },
|
|
|
+ { text: '公共卫生事件', value: '2' },
|
|
|
+ { text: '社会安全事件', value: '3' }
|
|
|
+];
|
|
|
+
|
|
|
+const opt_event_level = [
|
|
|
+ { text: '一般', value: '1' },
|
|
|
+ { text: '较大', value: '2' },
|
|
|
+ { text: '重大', value: '3' },
|
|
|
+ { text: '特别重大', value: '4' },
|
|
|
+ { text: '其他', value: '0' },
|
|
|
+];
|
|
|
+
|
|
|
+const opt_event_status = [
|
|
|
+ { text: '已登记', value: '0' },
|
|
|
+ { text: '指挥中', value: '1' },
|
|
|
+ { text: '指挥结束', value: '2' },
|
|
|
+ { text: '已关闭', value: '3' }
|
|
|
+];
|
|
|
+
|
|
|
+const onConfirm_event_type = ({selectedOptions}) => {
|
|
|
+ form.value.showPicker_event_type = false
|
|
|
+ form.value.event_type = selectedOptions[0].value;
|
|
|
+ form.value.event_type_text = selectedOptions[0].text;
|
|
|
+}
|
|
|
+
|
|
|
+const onConfirm_event_level = ({selectedOptions}) => {
|
|
|
+ form.value.showPicker_event_level = false
|
|
|
+ form.value.event_level = selectedOptions[0].value;
|
|
|
+ form.value.event_level_text = selectedOptions[0].text;
|
|
|
+}
|
|
|
+
|
|
|
+const onConfirm_event_status = ({selectedOptions}) => {
|
|
|
+ form.value.showPicker_event_status = false
|
|
|
+ form.value.event_status = selectedOptions[0].value;
|
|
|
+ form.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;
|
|
|
+}
|
|
|
+
|
|
|
+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;
|
|
|
+}
|
|
|
+
|
|
|
+const handleEventLevel = () => {
|
|
|
+
|
|
|
+};
|
|
|
+const handleMap = () => {
|
|
|
+
|
|
|
+};
|
|
|
+
|
|
|
+const on_submit = () => {
|
|
|
+ console.log('on_submit', {});
|
|
|
+ addTaskResult({
|
|
|
+
|
|
|
+ }).then((res)=>{
|
|
|
+ router.back();
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+const handleCancel = () => {
|
|
|
+ router.back();
|
|
|
+}
|
|
|
+
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.van-doc-block__title {
|
|
|
+ color: var(--van-doc-text-color-4);
|
|
|
+ margin: 0px;
|
|
|
+ padding: 0 6vmin;
|
|
|
+ font-size: 4.6vmin;
|
|
|
+ font-weight: 600;
|
|
|
+ line-height: 6.0vmin;
|
|
|
+}
|
|
|
+
|
|
|
+.van-doc-block__sub_title {
|
|
|
+ margin: 0px;
|
|
|
+ padding: 0 6vmin;
|
|
|
+ font-size: 3.6vmin;
|
|
|
+ font-weight: 400;
|
|
|
+ line-height: 6.0vmin;
|
|
|
+ color: #1989fa;
|
|
|
+}
|
|
|
+</style>
|