yangyuxuan 2 месяцев назад
Родитель
Сommit
c226d6a155

+ 2 - 2
src/api/duty/eventing.ts

@@ -30,8 +30,8 @@ export function getListActive(data) {
 export function editEvent(params) {
   return request({
     url: '/api/event_management/event/edit',
-    method: 'get',
-    params: params
+    method: 'post',
+    data: params
   });
 }
 

+ 1 - 1
src/router/routes.ts

@@ -144,7 +144,7 @@ export const constantRoutes: Array<RouteRecordRaw> = [
     component: () =>
       import("@/views/disasterRiskMonitor/hazardousChemicalEnterprises.vue"),
     meta: {
-      title: "危化企业雨量详情",
+      title: "危化企业雨量",
       noCache: true
     }
   },

+ 5 - 1
src/views/disasterRiskMonitor/typhoonPath.vue

@@ -1,6 +1,10 @@
 <template>
   <div class="container">
-    <iframe width="100%" scrolling='no' height="100%" src="https://wxc.gd121.cn/html/qxfw/typhoon/typhoon2/dist/#/main?from=yzy_445100" />
+    <iframe
+      width="100%"
+      height="100%"
+      src="https://wxc.gd121.cn/html/qxfw/typhoon/typhoon2/dist/#/main?from=yzy_445100"
+    />
   </div>
 </template>
 

+ 324 - 293
src/views/event/add.vue

@@ -1,320 +1,348 @@
 <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="form2.event_type_text"
-                label="事件类型"
-                placeholder="请选择事件类型"
-                :rules="[{ required: true, message: '请选择事件类型'  }]"
-                readonly
-                @click="picker.showPicker_event_type = true"
-            />
-
-            <van-field style="padding-top:0;padding-bottom:0;padding-left:0;"
-                right-icon="warning-o"
-                @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="form2.event_status_text"
-                label="事件状态"
-                placeholder="请选择事件状态"
-                :rules="[{ required: true, message: '请选择事件状态'  }]"
-                readonly
-                @click="picker.showPicker_event_status = true"
-            />
-
-            <van-field
-                required
-                v-model="form.event_time"
-                label="事发时间"
-                placeholder="请选择事发时间"
-                :rules="[{ required: true, message: '请选择事发时间'  }]"
-                readonly
-                @click="picker.showPicker_event_time = true"
-            />
-
-            <van-field
-                required
-                v-model="form.report_time"
-                label="上报时间"
-                placeholder="请选择上报时间"
-                :rules="[{ required: true, message: '请选择上报时间'  }]"
-                readonly
-                @click="picker.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="handleShowPosition">地图定位</van-button>
-                </template>
-            </van-field>
-
-            <van-field
-                required
-                v-model="form.contact"
-                label="联系方式"
-                placeholder="请填写联系方式"
-                :rules="[{ required: false, message: '请填写联系方式'  }]"
-            />
-
-            <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="picker.showPicker_event_type" round position="bottom">
-        <van-picker
-            :columns="opt_event_type"
-            @cancel="picker.showPicker_event_type = false"
-            @confirm="onConfirm_event_type"
-        />
-    </van-popup>
-    
-    <van-popup v-model:show="picker.showPicker_event_level" round position="bottom">
-        <van-picker
-            :columns="opt_event_level"
-            @cancel="picker.showPicker_event_level = false"
-            @confirm="onConfirm_event_level"
-        />
-    </van-popup>
-    
-    <van-popup v-model:show="picker.showPicker_event_status" round position="bottom">
-        <van-picker
-            :columns="opt_event_status"
-            @cancel="picker.showPicker_event_status = false"
-            @confirm="onConfirm_event_status"
-        />
-    </van-popup>
-
-    <van-popup v-model:show="picker.showPicker_event_time" round position="bottom">
-        <van-picker-group
-            title="事发时间"
-            :tabs="['选择日期', '选择时间']"
-            @confirm="onConfirm_event_time"
-            @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="picker.showPicker_report_time" round position="bottom">
-        <van-picker-group
-            title="上报时间"
-            :tabs="['选择日期', '选择时间']"
-            @confirm="onConfirm_report_time"
-            @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>
+  <van-form @submit="on_submit">
+    <div style="padding-top: 8px; background: #fff">
+      <van-field
+        v-model="form.event_title"
+        required
+        label="事件标题"
+        placeholder="请填写事件标题"
+        :rules="[{ required: true, message: '请填写事件标题' }]"
+      />
+
+      <van-field
+        v-model="form2.event_type_text"
+        required
+        label="事件类型"
+        placeholder="请选择事件类型"
+        :rules="[{ required: true, message: '请选择事件类型' }]"
+        readonly
+        @click="picker.showPicker_event_type = true"
+      />
+
+      <van-field
+        style="padding-top: 0; padding-bottom: 0; padding-left: 0"
+        right-icon="warning-o"
+        @click-right-icon="handleEventLevel"
+      >
+        <template #input>
+          <van-field
+            v-model="form2.event_level_text"
+            required
+            label="事件等级"
+            placeholder="请选择事件等级"
+            :rules="[{ required: true, message: '请选择事件等级' }]"
+            readonly
+            @click="picker.showPicker_event_level = true"
+          />
+        </template>
+      </van-field>
+
+      <van-field
+        v-model="form2.event_status_text"
+        required
+        label="事件状态"
+        placeholder="请选择事件状态"
+        :rules="[{ required: true, message: '请选择事件状态' }]"
+        readonly
+        @click="picker.showPicker_event_status = true"
+      />
+
+      <van-field
+        v-model="form.event_time"
+        required
+        label="事发时间"
+        placeholder="请选择事发时间"
+        :rules="[{ required: true, message: '请选择事发时间' }]"
+        readonly
+        @click="picker.showPicker_event_time = true"
+      />
+
+      <van-field
+        v-model="form.report_time"
+        required
+        label="上报时间"
+        placeholder="请选择上报时间"
+        :rules="[{ required: true, message: '请选择上报时间' }]"
+        readonly
+        @click="picker.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
+        v-model="form.event_source"
+        required
+        label="事件来源"
+        placeholder="请填写事件来源"
+        :rules="[{ required: false, message: '请填写事件来源' }]"
+      />
+
+      <van-field
+        v-model="form.address"
+        center
+        required
+        label="事发地点"
+        placeholder="请填写事发地点"
+        :rules="[{ required: false, message: '请填写事发地点' }]"
+        readonly
+      >
+        <template #button>
+          <van-button size="small" type="primary" @click="handleShowPosition"
+            >地图定位</van-button
+          >
+        </template>
+      </van-field>
+
+      <van-field
+        v-model="form.contact"
+        required
+        label="联系方式"
+        placeholder="请填写联系方式"
+        :rules="[{ required: false, message: '请填写联系方式' }]"
+      />
+
+      <van-field
+        v-model="form.event_description"
+        required
+        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 class="cancel-btn" @click="handleCancel()">取 消</van-button>
+      <van-button type="primary" native-type="submit" class="confirm-btn"
+        >确 定</van-button
+      >
+    </div>
+  </van-form>
+
+  <van-popup
+    v-model:show="picker.showPicker_event_type"
+    round
+    position="bottom"
+  >
+    <van-picker
+      :columns="opt_event_type"
+      @cancel="picker.showPicker_event_type = false"
+      @confirm="onConfirm_event_type"
+    />
+  </van-popup>
+
+  <van-popup
+    v-model:show="picker.showPicker_event_level"
+    round
+    position="bottom"
+  >
+    <van-picker
+      :columns="opt_event_level"
+      @cancel="picker.showPicker_event_level = false"
+      @confirm="onConfirm_event_level"
+    />
+  </van-popup>
+
+  <van-popup
+    v-model:show="picker.showPicker_event_status"
+    round
+    position="bottom"
+  >
+    <van-picker
+      :columns="opt_event_status"
+      @cancel="picker.showPicker_event_status = false"
+      @confirm="onConfirm_event_status"
+    />
+  </van-popup>
+
+  <van-popup
+    v-model:show="picker.showPicker_event_time"
+    round
+    position="bottom"
+  >
+    <van-picker-group
+      title="事发时间"
+      :tabs="['选择日期', '选择时间']"
+      @confirm="onConfirm_event_time"
+      @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="picker.showPicker_report_time"
+    round
+    position="bottom"
+  >
+    <van-picker-group
+      title="上报时间"
+      :tabs="['选择日期', '选择时间']"
+      @confirm="onConfirm_report_time"
+      @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>
+      </p>
+      <p>
         <strong>重大突发事故:</strong
         >是指造成10人以上30人以下死亡(含失踪),或者50人以上100人以下重伤,或者5000万元以上1亿元以下直接经济损失,或产生重大社会影响的。
-        </p>
-        <p>
+      </p>
+      <p>
         <strong>特别重大突发事故:</strong
         >是指造成30人以上死亡(含失踪),或者100人以上重伤(包括急性工业中毒),或者1亿元以上直接经济损失,或产生特别重大社会影响的。
-        </p>
+      </p>
     </div>
-    </van-dialog>
+  </van-dialog>
 
-    <!--地点选择-->
-    <PositionSelect
-      v-model:visible="showPositionSelect"
-      @confirm="handleEnterCommand"
-    />
+  <!--地点选择-->
+  <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 { addEvent } from '@/api/emergencyCommandMap/JointDuty';
+import { reactive, ref, toRefs, getCurrentInstance } from "vue";
+import { useRouter } from "vue-router";
+import { addEvent } from "@/api/emergencyCommandMap/JointDuty";
 import PositionSelect from "./PositionSelect.vue"; // 本组件是从mobilecontrol里面复制过来用,因为不需要先addevent,所以不能复用组件
-import { showToast } from 'vant';
+import { showToast } from "vant";
 
 const proxy = getCurrentInstance()?.proxy;
-const { mm_event_type } = toRefs<any>(proxy?.useDict( 'mm_event_type' ));
+const { mm_event_type } = toRefs<any>(proxy?.useDict("mm_event_type"));
 
 const router = useRouter();
-const maxDate =  new Date();
+const maxDate = new Date();
 const date_1 = ref();
 const time_1 = ref();
 
 const data = reactive({
-    form: {
-        event_title: '',
-        event_type: '',
-        event_level: '',
-        event_status: '',
-        event_time: '',
-        report_time: '',
-        event_source: '',
-        event_description: '',
-        deaths: '',
-        injuries: '',
-        missing: '',
-        casualties: '1',
-        address: '',
-        latitude: '',
-        longitude: '',
-        contact: ''
-    },
-    form2: {
-        event_type_text: '',
-        event_level_text: '',
-        event_status_text: '',
-    },
-    picker: {
-        showPicker_event_type: false,
-        showPicker_event_level: false,
-        showPicker_event_status: false,
-        showPicker_event_time: false,
-        showPicker_report_time: false,
-    }
+  form: {
+    event_title: "",
+    event_type: "",
+    event_level: "",
+    event_status: "",
+    event_time: "",
+    report_time: "",
+    event_source: "",
+    event_description: "",
+    deaths: "",
+    injuries: "",
+    missing: "",
+    casualties: "1",
+    address: "",
+    latitude: "",
+    longitude: "",
+    contact: ""
+  },
+  form2: {
+    event_type_text: "",
+    event_level_text: "",
+    event_status_text: ""
+  },
+  picker: {
+    showPicker_event_type: false,
+    showPicker_event_level: false,
+    showPicker_event_status: false,
+    showPicker_event_time: false,
+    showPicker_report_time: false
+  }
 });
-const {form, form2, picker} = toRefs(data);
+const { form, form2, picker } = toRefs(data);
 
 const opt_event_type = [
-    { text: '自然灾害', value: '0' },
-    { text: '事故灾害', value: '1' },
-    { text: '公共卫生事件', value: '2' },
-    { text: '社会安全事件', value: '3' }
+  { 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' },
+  { 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' }
+  { text: "已登记", value: "0" },
+  { text: "指挥中", value: "1" },
+  { text: "指挥结束", value: "2" },
+  { text: "已关闭", value: "3" }
 ];
 
-const onConfirm_event_type = ({selectedOptions}) => {
-    picker.value.showPicker_event_type = false
-    form.value.event_type = selectedOptions[0].value;
-    form2.value.event_type_text = selectedOptions[0].text;
-}
+const onConfirm_event_type = ({ selectedOptions }) => {
+  picker.value.showPicker_event_type = false;
+  form.value.event_type = selectedOptions[0].value;
+  form2.value.event_type_text = selectedOptions[0].text;
+};
 
-const onConfirm_event_level = ({selectedOptions}) => {
-    picker.value.showPicker_event_level = false
-    form.value.event_level = selectedOptions[0].value;
-    form2.value.event_level_text = selectedOptions[0].text;
-}
+const onConfirm_event_level = ({ selectedOptions }) => {
+  picker.value.showPicker_event_level = false;
+  form.value.event_level = selectedOptions[0].value;
+  form2.value.event_level_text = selectedOptions[0].text;
+};
 
-const onConfirm_event_status = ({selectedOptions}) => {
-    picker.value.showPicker_event_status = false
-    form.value.event_status = selectedOptions[0].value;
-    form2.value.event_status_text = selectedOptions[0].text;
-}
+const onConfirm_event_status = ({ selectedOptions }) => {
+  picker.value.showPicker_event_status = false;
+  form.value.event_status = selectedOptions[0].value;
+  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);
-    picker.value.showPicker_event_time = false;
-}
+  form.value.event_time = `${date_1.value.join("-")} ${time_1.value.join(":")}`;
+  console.log("form.value.event_time:", form.value.event_time);
+  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);
-    picker.value.showPicker_report_time = false;
-}
+  form.value.report_time = `${date_1.value.join("-")} ${time_1.value.join(":")}`;
+  console.log("form.value.event_time:", form.value.report_time);
+  picker.value.showPicker_report_time = false;
+};
 
 const showDlg = ref(false);
 const handleEventLevel = () => {
-    showDlg.value = true;
+  showDlg.value = true;
 };
 
 let showPositionSelect = ref(false);
@@ -328,18 +356,21 @@ const handleEnterCommand = res => {
 };
 
 const on_submit = () => {
-    console.log('on_submit', form.value);
-    addEvent(form.value).then((res)=>{
-        showToast({type: 'success', message: res.msg, onClose:()=>{
-            router.back();
-        }});
+  console.log("on_submit", form.value);
+  addEvent(form.value).then(res => {
+    showToast({
+      type: "success",
+      message: res.msg,
+      onClose: () => {
+        router.back();
+      }
     });
+  });
 };
 
 const handleCancel = () => {
-    router.back();
-}
-
+  router.back();
+};
 </script>
 
 <style lang="scss" scoped>
@@ -349,15 +380,15 @@ const handleCancel = () => {
   padding: 0 6vmin;
   font-size: 4.6vmin;
   font-weight: 600;
-  line-height: 6.0vmin;
+  line-height: 6vmin;
 }
 
 .van-doc-block__sub_title {
-    margin: 0px;
-    padding: 0 6vmin;
-    font-size: 3.6vmin;
-    font-weight: 400;
-    line-height: 6.0vmin;
-    color: #1989fa;
+  margin: 0px;
+  padding: 0 6vmin;
+  font-size: 3.6vmin;
+  font-weight: 400;
+  line-height: 6vmin;
+  color: #1989fa;
 }
-</style>
+</style>

+ 13 - 21
src/views/mobileControl/Briefing.vue

@@ -25,8 +25,13 @@
             <div class="unitname">{{ item.report_dept }}</div>
             <div style="color: black">{{ item.create_time }}</div>
           </div>
-          <div style="color: black; text-align: left">{{ item.briefing_content }}</div>
-          <div style="color: black; text-align: left" v-if="item.files.length > 0">
+          <div style="color: black; text-align: left">
+            {{ item.briefing_content }}
+          </div>
+          <div
+            v-if="item.files.length > 0"
+            style="color: black; text-align: left"
+          >
             图片:
             <img
               v-for="file in item.files"
@@ -62,30 +67,17 @@ const downLoadApi = import.meta.env.VITE_BASE_DOWNLOAD_API;
 const get_img_url = url => {
   return baseUrl + downLoadApi + url;
 };
-const list = ref([
-  {
-    report_dept: "单位名称",
-    briefing_content: "简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报",
-    create_time: "2025-1-2 08:23:22",
-    files: [
-      {
-        uid: "8bf8c488-a191-11ef-9d8e-fa163e4bf12e",
-        url: "852860d8-a190-11ef-a379-fa163e4bf12e.jpeg"
-      }
-    ]
-  }
-]);
+const list = ref([]);
 const loading = ref(false);
 const finished = ref(false);
 const refreshing = ref(false);
 const onLoad = () => {
   // console.log('onRefresh:', props.eventId);
-  getEventBriefingList({event_id: props.eventId})
-    .then(res => {
-      list.value = res.data;
-      loading.value = false;
-      finished.value = true;
-    });
+  getEventBriefingList({ event_id: props.eventId }).then(res => {
+    list.value = res.data;
+    loading.value = false;
+    finished.value = true;
+  });
 };
 const onRefresh = () => {
   // 清空列表数据

+ 34 - 3
src/views/mobileControl/EventInfo.vue

@@ -13,6 +13,7 @@
           @click="handleStartEvent"
           >开始指挥</van-button
         >
+        <div style="display: flex; flex-direction: column" />
         <van-button
           v-if="eventDetails.event_status == '1'"
           type="danger"
@@ -22,9 +23,18 @@
         >
       </div>
     </div>
-    <div class="info-data">
-      <div class="info-data-label">持续时长:</div>
-      <div class="info-data-value">{{ eventDetails.keep_time }}</div>
+    <div style="display: flex; justify-content: space-between">
+      <div class="info-data">
+        <div class="info-data-label">持续时长:</div>
+        <div class="info-data-value">{{ eventDetails.keep_time }}</div>
+      </div>
+      <van-button
+        v-if="eventDetails.event_status == '1'"
+        type="default"
+        class="btn3"
+        @click="changeAddress"
+        >修改定位</van-button
+      >
     </div>
     <div class="info-data">
       <div class="info-data-label">事件类型:</div>
@@ -59,6 +69,11 @@
       <div class="info-data-label">事发来源:</div>
       <div class="info-data-value">{{ eventDetails.event_source }}</div>
     </div>
+    <PositionSelect
+      v-if="isChangeAddress"
+      :id="props.eventDetails.event_id"
+      v-model:visible="isChangeAddress"
+    />
   </div>
 </template>
 
@@ -68,6 +83,8 @@ import { reactive, ref, toRefs, watch } from "vue";
 import { useDict } from "@/utils/dict";
 import { useRouter } from "vue-router";
 import { showConfirmDialog, showSuccessToast } from "vant";
+import PositionSelect from "@/views/mobileControl/PositionSelect.vue";
+
 interface EventDetails {
   event_id: String;
   event_title: String;
@@ -90,6 +107,11 @@ const { mm_event_type, mm_event_level, mm_event_state } = toRefs<any>(
   useDict("mm_event_type", "mm_event_level", "mm_event_state")
 );
 
+const isChangeAddress = ref(false);
+const changeAddress = () => {
+  isChangeAddress.value = true;
+};
+
 const handleStartEvent = () => {};
 
 const handleCloseEvent = () => {
@@ -176,4 +198,13 @@ const handleCloseEvent = () => {
   justify-content: center;
   align-items: center;
 }
+.btn3 {
+  min-width: 73px;
+  height: 24px;
+  border-radius: 2px;
+  padding: 0 11px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
 </style>

+ 233 - 115
src/views/mobileControl/PositionSelect.vue

@@ -1,21 +1,49 @@
 <template>
-  <van-dialog v-model:show="showPositionSelect" title="请选择事发地点" show-cancel-button @close="handleClose" @confirm="submit">
+  <van-dialog
+    v-model:show="showPositionSelect"
+    :title="!!id ? '修改定位' : '请选择事发地点'"
+    show-cancel-button
+    @close="handleClose"
+    @confirm="submit"
+  >
     <div class="position-container">
       <div style="position: relative">
         <div class="box">
           <van-search
-              v-model="form.address"
-              show-action
-              label="详细地址"
-              left-icon="none"
-              placeholder="请输入"
-              @search="handleInput"
+            v-model="form.address"
+            show-action
+            label="详细地址"
+            left-icon="none"
+            placeholder="请输入"
+            @search="handleInput"
           >
             <template #action>
               <div @click="handleInput">搜索</div>
             </template>
           </van-search>
         </div>
+        <van-field
+          v-model="form.event_title"
+          label="灾害事件"
+          placeholder="请输入"
+        />
+        <div class="custom-vant-field">
+          <div class="van-field__label">事件级别</div>
+          <el-select
+            v-model="form.event_level"
+            :teleported="false"
+            placeholder="请选择"
+            class="van-style-select"
+          >
+            <el-option
+              v-for="item in mm_event_level"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            />
+          </el-select>
+        </div>
+        <div class="custom-line" />
         <div v-if="searchPop" class="scroll_box">
           <div class="scroll-header">
             <span>搜索结果列表</span>
@@ -23,31 +51,60 @@
           </div>
 
           <div class="scroll">
-            <div v-for="(item, index) in searchList" v-show="searchList.length" :key="index" class="item" @click="handlePanTo(index)">
-              <van-image width="50" height="50" fit="fill" :src="item.img" style="flex-shrink: 0; margin-right: 8px;" />
+            <div
+              v-for="(item, index) in searchList"
+              v-show="searchList.length"
+              :key="index"
+              class="item"
+              @click="handlePanTo(index)"
+            >
+              <van-image
+                width="50"
+                height="50"
+                fit="fill"
+                :src="item.img"
+                style="flex-shrink: 0; margin-right: 8px"
+              />
               <div>
                 <div class="text">{{ item.name }}</div>
                 <div>{{ item.address }}</div>
               </div>
             </div>
-            <div v-show="!searchList.length" class="empty" style="text-align: center">没有搜索到内容</div>
+            <div
+              v-show="!searchList.length"
+              class="empty"
+              style="text-align: center"
+            >
+              没有搜索到内容
+            </div>
           </div>
         </div>
       </div>
-      <van-field v-model="form.longitude" label="经度" placeholder="请输入" />
-      <van-field v-model="form.latitude" label="纬度" placeholder="请输入" />
+      <van-field
+        v-model="form.longitude"
+        label="经&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp度"
+        placeholder="请输入"
+      />
+      <van-field
+        v-model="form.latitude"
+        label="纬&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp度"
+        placeholder="请输入"
+      />
       <div id="map" class="map" />
     </div>
   </van-dialog>
-
 </template>
 
-<script  lang="ts" setup name="PositionSelect">
-import AMapLoader from '@amap/amap-jsapi-loader';
-import { useRouter } from 'vue-router';
-import { addEvent } from '@/api/emergencyCommandMap/JointDuty';
-import {nextTick, onUnmounted, reactive, ref, watch} from "vue";
-import {showFailToast} from "vant";
+<script lang="ts" setup name="PositionSelect">
+import AMapLoader from "@amap/amap-jsapi-loader";
+import { useRouter } from "vue-router";
+import { addEvent } from "@/api/emergencyCommandMap/JointDuty";
+import { nextTick, onUnmounted, reactive, ref, watch } from "vue";
+import { showFailToast } from "vant";
+import { ElOption, ElSelect } from "element-plus";
+import { getEventDetail } from "@/api/event";
+import {editEvent} from "@/api/duty/eventing";
+import {deepClone} from "@/utils";
 
 const props = defineProps({
   visible: {
@@ -58,9 +115,10 @@ const props = defineProps({
   },
   lnglat: {
     type: Number
-  }
+  },
+  id: String
 });
-const emits = defineEmits(['update:visible', 'confirm']);
+const emits = defineEmits(["update:visible", "confirm"]);
 let showPositionSelect = ref(false);
 // 地图对象
 let map = null;
@@ -69,9 +127,9 @@ let marker = null; //地图上的点标记
 let contextMenu = null;
 let lnglatPosition = ref([]); //选中的新坐标
 let rules = reactive({
-  address: [{ required: true, message: '详细地址不能为空', trigger: 'blur' }],
-  longitude: [{ required: true, message: '经度不能为空', trigger: 'blur' }],
-  latitude: [{ required: true, message: '纬度不能为空', trigger: 'blur' }]
+  address: [{ required: true, message: "详细地址不能为空", trigger: "blur" }],
+  longitude: [{ required: true, message: "经度不能为空", trigger: "blur" }],
+  latitude: [{ required: true, message: "纬度不能为空", trigger: "blur" }]
 });
 let pageNum = ref(1);
 let pageSize = ref(10);
@@ -83,56 +141,66 @@ let placeSearch;
 // 提交事件时间改为当前时间currentTime
 const now = new Date();
 const year = now.getFullYear();
-const month = String(now.getMonth() + 1).padStart(2, '0');
-const day = String(now.getDate()).padStart(2, '0');
-const hours = String(now.getHours()).padStart(2, '0');
-const minutes = String(now.getMinutes()).padStart(2, '0');
-const seconds = String(now.getSeconds()).padStart(2, '0');
+const month = String(now.getMonth() + 1).padStart(2, "0");
+const day = String(now.getDate()).padStart(2, "0");
+const hours = String(now.getHours()).padStart(2, "0");
+const minutes = String(now.getMinutes()).padStart(2, "0");
+const seconds = String(now.getSeconds()).padStart(2, "0");
 const currentTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
-let form = reactive({
-  address: '',
-  longitude: '',
-  latitude: '',
-  event_title: '',
-  event_type: '',
-  event_level: '',
-  event_status: '1',
+const proxy = getCurrentInstance()?.proxy;
+const { mm_event_level } = toRefs<any>(proxy?.useDict("mm_event_level"));
+
+let form = ref({
+  address: "",
+  longitude: "",
+  latitude: "",
+  event_title: "",
+  event_type: "",
+  event_level: "",
+  event_status: "1",
   event_time: currentTime,
-  report_time: '1970-01-01 00:00:00',
-  deaths: '0',
-  injuries: '0',
-  missing: '0',
-  event_source: '',
-  event_description: '',
-  casualties: '',
-  del_flag: '9' // 临时事件
+  report_time: "1970-01-01 00:00:00",
+  deaths: "0",
+  injuries: "0",
+  missing: "0",
+  event_source: "",
+  event_description: "",
+  casualties: "",
+  del_flag: "9" // 临时事件
 });
 let geocoder = {};
-let width = ref('100%');
-let height = ref('100%');
+let width = ref("100%");
+let height = ref("100%");
 watch(
-    () => props.visible,
-    (n) => {
-      if (n) {
-        showPositionSelect.value = n;
-        nextTick(() => {
+  () => props.visible,
+  n => {
+    if (n) {
+      showPositionSelect.value = n;
+      nextTick(() => {
+        if (!!props.id) {
+          getEventDetail({ event_id: props.id }).then(res => {
+            form.value = res.data;
+            initMap();
+          });
+        } else {
           initMap();
-        });
-      }
-    },
-    {
-      immediate: true
+        }
+      });
     }
+  },
+  {
+    immediate: true
+  }
 );
 onUnmounted(() => {
   if (!!map) {
-    map.off('rightclick');
+    map.off("rightclick");
     map.destroy();
     map = null;
   }
 });
 function handleInput(flag?: any) {
-  if (!form.address) return;
+  if (!form.value.address) return;
 
   if (!flag) {
     //搜索
@@ -144,19 +212,23 @@ function handleInput(flag?: any) {
     placeSearch = new amap.PlaceSearch({
       pageSize: pageSize.value, // 每页条数,默认10,范围1-50
       pageIndex: pageNum.value, // 页码
-      extensions: 'all' // 默认base,返回基本地址信息;all:返回详细信息
+      extensions: "all" // 默认base,返回基本地址信息;all:返回详细信息
     });
   }
 
   searchPop.value = true;
   placeSearch.setPageIndex(pageNum.value);
-  placeSearch.search(form.address, (status, result) => {
+  placeSearch.search(form.value.address, (status, result) => {
     // console.log(result.poiList.pois, 'result')
-    if (!!result.poiList && result.poiList.pois && result.poiList.pois.length > 0) {
+    if (
+      !!result.poiList &&
+      result.poiList.pois &&
+      result.poiList.pois.length > 0
+    ) {
       let arr = [];
       const pois = result.poiList.pois;
       total.value = result.poiList ? result.poiList.count : 0;
-      arr = pois.map((item) => {
+      arr = pois.map(item => {
         return {
           name: item.name,
           address: item.address,
@@ -185,47 +257,58 @@ function closeSearchList() {
 // 地图中心的平移至指定点位置
 function handlePanTo(index) {
   let lnglat = searchList.value[index].lnglat;
-  form.address = searchList.value[index].name + '(' + searchList.value[index].address + ')';
-  form.longitude = lnglat[0];
-  form.latitude = lnglat[1];
+  form.value.address =
+    searchList.value[index].name + "(" + searchList.value[index].address + ")";
+  form.value.longitude = lnglat[0];
+  form.value.latitude = lnglat[1];
 
   map.panTo(lnglat);
   setMarks(lnglat);
   closeSearchList();
 }
-const updateForm = (position) => {
-  form.longitude = position[0];
-  form.latitude = position[1];
+const updateForm = position => {
+  form.value.longitude = position[0];
+  form.value.latitude = position[1];
   geocoder.getAddress(position, (status, result) => {
-    if (status === 'complete' && result.info === 'OK') {
-      form.address = result.regeocode.formattedAddress;
+    if (status === "complete" && result.info === "OK") {
+      form.value.address = result.regeocode.formattedAddress;
     }
   });
 };
+
 const initMap = async () => {
   let position = [110.925175, 21.678955];
+  if (!!props.id) {
+    position = [form.value.longitude, form.value.latitude];
+  }
   window._AMapSecurityConfig = {
-    securityJsCode: '4868bc1b8fac7d9e54e7279ed556879a'
+    securityJsCode: "4868bc1b8fac7d9e54e7279ed556879a"
   };
   const AMap = await AMapLoader.load({
-    key: '9c5041381e5e824f9ee324d8f7a40150', // 申请好的Web端开发者Key,首次调用 load 时必填
-    version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
-    plugins: ['AMap.PlaceSearch', 'AMap.ContextMenu', 'AMap.PolygonEditor', 'AMap.Geocoder', 'AMap.Geolocation'] // 插件列表
+    key: "9c5041381e5e824f9ee324d8f7a40150", // 申请好的Web端开发者Key,首次调用 load 时必填
+    version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
+    plugins: [
+      "AMap.PlaceSearch",
+      "AMap.ContextMenu",
+      "AMap.PolygonEditor",
+      "AMap.Geocoder",
+      "AMap.Geolocation"
+    ] // 插件列表
   });
-  map = new AMap.Map('map', {
-    viewMode: '3D', //是否为3D地图模式
+  map = new AMap.Map("map", {
+    viewMode: "3D", //是否为3D地图模式
     center: position,
     zoom: 15
   });
   amap = AMap;
   geocoder = new AMap.Geocoder({
     // city 指定进行编码查询的城市,支持传入城市名、adcode 和 citycode
-    city: '010'
+    city: "010"
   });
   // 创建右键菜单
   ContextMenu();
-  map.on('rightclick', handleRightclick);
-  map.on('complete', () => {
+  map.on("rightclick", handleRightclick);
+  map.on("complete", () => {
     updateForm(position);
     setMarks(position);
   });
@@ -233,21 +316,21 @@ const initMap = async () => {
 function ContextMenu() {
   contextMenu = new AMap.ContextMenu();
   contextMenu.addItem(
-      '选择标点',
-      () => {
-        form.longitude = lnglatPosition.value[0];
-        form.latitude = lnglatPosition.value[1];
-        contextMenu.close();
-        let lnglat = [form.longitude, form.latitude];
-        geocoder.getAddress(lnglat, (status, result) => {
-          if (status === 'complete' && result.info === 'OK') {
-            form.address = result.regeocode.formattedAddress;
-          }
-        });
-        updateForm(lnglat);
-        setMarks(lnglat);
-      },
-      1
+    "选择标点",
+    () => {
+      form.value.longitude = lnglatPosition.value[0];
+      form.value.latitude = lnglatPosition.value[1];
+      contextMenu.close();
+      let lnglat = [form.value.longitude, form.value.latitude];
+      geocoder.getAddress(lnglat, (status, result) => {
+        if (status === "complete" && result.info === "OK") {
+          form.value.address = result.regeocode.formattedAddress;
+        }
+      });
+      updateForm(lnglat);
+      setMarks(lnglat);
+    },
+    1
   );
 }
 // 右键事件
@@ -264,44 +347,55 @@ function setMarks(lnglat) {
     icon: new AMap.Icon({
       size: new AMap.Size(22, 28), //图标所处区域大小
       imageSize: new AMap.Size(22, 28), //图标大小
-      image: '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png'
+      image:
+        "//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png"
     }),
     draggable: true,
-    anchor: 'bottom-center',
+    anchor: "bottom-center",
     offset: new AMap.Pixel(0, 0)
   });
-  marker.on('dragend', (e) => {
+  marker.on("dragend", e => {
     updateForm([e.lnglat.lng, e.lnglat.lat]);
   });
   marker.setMap(map);
 }
 function handleClose() {
-  emits('update:visible', false);
+  emits("update:visible", false);
 }
 let queryFormRef = ref();
 
 function submit() {
-  if (!form.address) {
-    showFailToast('详细地址不能为空');
-  } else if (!form.longitude) {
-    showFailToast('经度不能为空');
-  } else if (!form.latitude) {
-    showFailToast('纬度不能为空');
+  if (!!props.id){
+    let temp = deepClone(form.value);
+    temp.eventId = temp.event_id;
+    temp.event_description = "iii6";
+    temp.event_code = temp.eventId;
+    temp.region_code = "4409";
+    temp.response_level = "";
+    editEvent(temp);
   } else {
-    addEvent(form).then((res) => {
-      emits('confirm', {
-        event_id: res.data,
-        address: form.address,
-        latitude: form.latitude,
-        longitude: form.longitude
+    if (!form.value.address) {
+      showFailToast("详细地址不能为空");
+    } else if (!form.value.longitude) {
+      showFailToast("经度不能为空");
+    } else if (!form.value.latitude) {
+      showFailToast("纬度不能为空");
+    } else {
+      addEvent(form.value).then(res => {
+        emits("confirm", {
+          event_id: res.data,
+          address: form.value.address,
+          latitude: form.value.latitude,
+          longitude: form.value.longitude
+        });
+        handleClose();
       });
-      handleClose();
-    });
+    }
   }
 }
 </script>
 
-<style  lang="scss"scoped>
+<style lang="scss" scoped>
 .position-container {
   height: calc(100vh - 250px);
   min-height: 60%;
@@ -343,7 +437,7 @@ function submit() {
     font-size: 20px;
     width: 30px;
     height: 30px;
-    background: url('@/assets/images/close.png') no-repeat;
+    background: url("@/assets/images/close.png") no-repeat;
     background-size: 100% 100%;
   }
 }
@@ -366,4 +460,28 @@ function submit() {
 .box {
   border-bottom: 1px solid #eeeeee;
 }
+.custom-line {
+  border: 0; /* 清除默认边框 */
+  height: 1px; /* 线的高度(粗细) */
+  background: #fbfafa; /* 颜色 */
+  width: 100%; /* 宽度(百分比或固定值) */
+}
+
+.custom-vant-field {
+  display: flex;
+  align-items: center;
+  padding: 10px 16px;
+  font-size: 14px;
+}
+.van-field__label {
+  width: 70px;
+  color: #373738;
+  margin-right: 12px;
+}
+:deep(.el-select__wrapper) {
+  box-shadow: none !important;
+}
+.van-style-select {
+  margin-left: 5px;
+}
 </style>

+ 49 - 40
src/views/mobileControl/index.vue

@@ -59,7 +59,11 @@
           <i class="plot-btn" />
           <div>协同标绘</div>
         </div>
-        <div v-if="!!onlinePlottingId" class="button2" @click="closeOnlinePlotting">
+        <div
+          v-if="!!onlinePlottingId"
+          class="button2"
+          @click="closeOnlinePlotting"
+        >
           <div>关闭协同标绘</div>
         </div>
       </div>
@@ -86,6 +90,7 @@
     </van-popup>
     <!--地点选择-->
     <PositionSelect
+      :id="endEventState.event_id"
       v-model:visible="showPositionSelect"
       @confirm="handleEnterCommand"
     />
@@ -125,20 +130,25 @@
     <!--协同标绘-->
     <van-popup v-model:show="showOnlinePlotting" round position="bottom">
       <van-picker
-          :columns="columns"
-          :columns-field-names="{text: 'pattern_name', value: 'pattern_id'}"
-          title="请选择协同标绘的预案"
-          @cancel="onCancel"
-          @confirm="onConfirm"
+        :columns="columns"
+        :columns-field-names="{ text: 'pattern_name', value: 'pattern_id' }"
+        title="请选择协同标绘的预案"
+        @cancel="onCancel"
+        @confirm="onConfirm"
       />
     </van-popup>
-    <OnlinePlotting ref="onlinePlotting" v-model="showOnlinePlotting2" :onlinePlottingId="onlinePlottingId" @handleSendData="handleSendData" />
+    <OnlinePlotting
+      ref="onlinePlotting"
+      v-model="showOnlinePlotting2"
+      :onlinePlottingId="onlinePlottingId"
+      @handleSendData="handleSendData"
+    />
     <MaterialManage v-model="materialManageHeight" />
   </div>
 </template>
 
 <script lang="ts" setup name="mobileControl">
-import {nextTick, onMounted, provide, reactive, ref} from "vue";
+import { nextTick, onMounted, provide, reactive, ref } from "vue";
 import { useRoute, useRouter } from "vue-router";
 import EventBox from "./EventBox.vue";
 import SearchBtn from "./SearchBtn.vue";
@@ -151,9 +161,9 @@ import { closeEvent, getEventDetail } from "@/api/event";
 import LayerBox from "./LayerBox.vue";
 import OnlinePlotting from "./OnlinePlotting/index.vue";
 import MaterialManage from "@/views/mobileControl/MaterialManage.vue";
-import {createWebSocket} from "@/utils/websocket";
-import {getPatternList2} from "@/api/globalMap/onlinePlotting";
-import {closeCollaboration} from "@/api/onlineRollCall";
+import { createWebSocket } from "@/utils/websocket";
+import { getPatternList2 } from "@/api/globalMap/onlinePlotting";
+import { closeCollaboration } from "@/api/onlineRollCall";
 
 const router = useRouter();
 const route = useRoute();
@@ -182,7 +192,7 @@ let endEventState = reactive({
   address: "",
   latitude: "",
   longitude: "",
-  event_id: []
+  event_id: ""
 });
 
 const toIndex = () => {
@@ -240,8 +250,8 @@ const handleShowPosition = () => {
   showPositionSelect.value = true;
 };
 const handleJumpEvent = () => {
-  router.push({ name: 'EventList' });
-}
+  router.push({ name: "EventList" });
+};
 const handleEnterCommand = res => {
   temp.value = true;
   eventId.value = res.event_id;
@@ -300,46 +310,46 @@ const endProcess = () => {
 let onlinePlotting = ref();
 let showOnlinePlotting = ref(false);
 let showOnlinePlotting2 = ref(false);
-let onlinePlottingId = ref('');
+let onlinePlottingId = ref("");
 let columns = ref([]);
 let webSock;
 const onCancel = () => {
   showOnlinePlotting2.value = false;
-}
-const getWebSocketData = (data) => {
+};
+const getWebSocketData = data => {
   onlinePlotting.value.getWebSocketData(data);
-  console.log('接收数据', data);
+  console.log("接收数据", data);
 };
-const onConfirm = (data) => {
+const onConfirm = data => {
   onlinePlottingId.value = data.selectedValues[0];
   nextTick(() => {
     webSock = createWebSocket(onlinePlottingId.value, getWebSocketData);
     showOnlinePlotting.value = false;
     showOnlinePlotting2.value = true;
-  })
-}
+  });
+};
 const handleShowOnlinePlotting = () => {
   if (!!onlinePlottingId.value) {
     showOnlinePlotting2.value = true;
   } else {
     showOnlinePlotting.value = true;
   }
-}
+};
 const closeOnlinePlotting = () => {
   // closeCollaboration({ pattern_id: onlinePlottingId.value }).then(() => {
-    onlinePlottingId.value = '';
+  onlinePlottingId.value = "";
   // });
-}
+};
 const getOnlinePlotting = () => {
-  getPatternList2().then((res) => {
+  getPatternList2().then(res => {
     columns.value = res.data;
-  })
-}
+  });
+};
 //
 let materialManageHeight = ref(0);
 const handleShowMaterialManage = () => {
   materialManageHeight.value = 300;
-}
+};
 onMounted(() => {
   eventId.value = route.query.event_id as string;
   selectEventId.value = [route.query.event_id as string];
@@ -361,35 +371,34 @@ onMounted(() => {
 });
 // 获取地图元素操作
 const getMap = () => {
-  if (['imageMap', 'satellite2', 'satellite3'].includes(activeMap.value)) {
+  if (["imageMap", "satellite2", "satellite3"].includes(activeMap.value)) {
     return map2Ref.value.getMap();
-  } else if (['vectorgraph', 'satellite'].includes(activeMap.value)) {
+  } else if (["vectorgraph", "satellite"].includes(activeMap.value)) {
     return mapRef.value.getMap();
   }
   return {};
 };
 const getDrawTool = () => {
-  if (['imageMap', 'satellite2', 'satellite3'].includes(activeMap.value)) {
+  if (["imageMap", "satellite2", "satellite3"].includes(activeMap.value)) {
     return map2Ref.value.drawTool;
-  } else if (['vectorgraph', 'satellite'].includes(activeMap.value)) {
+  } else if (["vectorgraph", "satellite"].includes(activeMap.value)) {
     return mapRef.value.drawTool;
   }
   return {};
 };
 const getMapUtils = () => {
-  if (['imageMap', 'satellite2', 'satellite3'].includes(activeMap.value)) {
-
-  } else if (['vectorgraph', 'satellite'].includes(activeMap.value)) {
+  if (["imageMap", "satellite2", "satellite3"].includes(activeMap.value)) {
+  } else if (["vectorgraph", "satellite"].includes(activeMap.value)) {
     return mapRef.value.getMapUtils();
   }
   return {};
 };
-const handleSendData = (data) => {
+const handleSendData = data => {
   webSock.send(data);
-}
-provide('getMapUtils', getMapUtils);
-provide('getMap', getMap);
-provide('getDrawTool', getDrawTool);
+};
+provide("getMapUtils", getMapUtils);
+provide("getMap", getMap);
+provide("getDrawTool", getDrawTool);
 </script>
 
 <style lang="scss" scoped>

+ 2 - 3
src/views/workApproval/approvalList.vue

@@ -46,7 +46,6 @@
           v-for="(item, index) in info_list"
           :key="item.id"
           class="event-list-item"
-          
         >
             <div class="item-title">
               <div class="item-title-text">
@@ -76,7 +75,7 @@
         v-model="confirmDialogState.show"
         :data="confirmDialogState.form"
         @update:model-value="onConfirmDialogClose"
-      ></ConfirmDialog>
+      />
     </div>
   </template>
   
@@ -249,7 +248,7 @@
   
   <style lang="scss" scoped>
   .list {
-    height: calc(100vh - 102px);
+    height: calc(100vh - 54px - 48px - 36px);
     overflow-y: auto;
   }
   .van-doc-block__title {