Jelajahi Sumber

更新事件简报

libushang 5 bulan lalu
induk
melakukan
aa4efe461f
3 mengubah file dengan 60 tambahan dan 43 penghapusan
  1. 18 0
      src/api/event.ts
  2. 22 29
      src/views/mobileControl/Briefing.vue
  3. 20 14
      src/views/mobileControl/Workbenches.vue

+ 18 - 0
src/api/event.ts

@@ -68,3 +68,21 @@ export function uploadCasualties(data) {
         data: data
     });
 }
+
+// 事件简报
+export function createEventBriefing(data) {
+    return request({
+        url: '/api/event_management/event_xp/creat_event_briefing',
+        method: 'post',
+        data: data
+    });
+}
+
+// 获取事件简报列表
+export function getEventBriefingList(params) {
+    return request({
+        url: '/api/event_management/event_xp/event_briefing/list',
+        method: 'get',
+        params: params
+    });
+}

+ 22 - 29
src/views/mobileControl/Briefing.vue

@@ -22,14 +22,14 @@
           class="event-card-item"
         >
           <div class="event-card">
-            <div class="unitname">{{ item.name }}</div>
-            <div style="color: black">{{ item.time }}</div>
+            <div class="unitname">{{ item.report_dept }}</div>
+            <div style="color: black">{{ item.create_time }}</div>
           </div>
-          <div style="color: black; text-align: left">{{ item.context }}</div>
-          <div style="color: black; text-align: left">
+          <div style="color: black; text-align: left">{{ item.briefing_content }}</div>
+          <div style="color: black; text-align: left" v-if="item.files.length > 0">
             图片:
             <img
-              v-for="file in item.image"
+              v-for="file in item.files"
               :key="file.uid"
               class="image"
               :src="get_img_url(file.url)"
@@ -39,14 +39,19 @@
         </van-cell>
       </van-list>
     </van-pull-refresh>
-    <Workbenches v-if="isClick" v-model="isClick" />
+    <Workbenches v-if="isClick" v-model="isClick" :eventId="props.eventId" />
   </div>
 </template>
 
 <script setup lang="ts">
 import { ref } from "vue";
 import Workbenches from "./Workbenches.vue";
+import { getEventBriefingList } from "@/api/event";
 
+interface Props {
+  eventId: string;
+}
+const props = withDefaults(defineProps<Props>(), {});
 let isClick = ref(false);
 const onClick = () => {
   isClick.value = true;
@@ -59,29 +64,12 @@ const get_img_url = url => {
 };
 const list = ref([
   {
-    name: "单位名称",
-    context:
-      "简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容",
-    time: "2025-1-2 08:23:22",
-    image: [
-      {
-        uid: "8bf8c488-a191-11ef-9d8e-fa163e4bf12e",
-        status: "success",
-        name: "13339589652658371.jpeg",
-        url: "852860d8-a190-11ef-a379-fa163e4bf12e.jpeg"
-      }
-    ]
-  },
-  {
-    name: "单位名称2",
-    context:
-      "简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容",
-    time: "2025-1-2 08:23:22",
-    image: [
+    report_dept: "单位名称",
+    briefing_content: "简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报内容简报",
+    create_time: "2025-1-2 08:23:22",
+    files: [
       {
         uid: "8bf8c488-a191-11ef-9d8e-fa163e4bf12e",
-        status: "success",
-        name: "13339589652658371.jpeg",
         url: "852860d8-a190-11ef-a379-fa163e4bf12e.jpeg"
       }
     ]
@@ -91,8 +79,13 @@ const loading = ref(false);
 const finished = ref(false);
 const refreshing = ref(false);
 const onLoad = () => {
-  loading.value = false;
-  finished.value = true;
+  // console.log('onRefresh:', props.eventId);
+  getEventBriefingList({event_id: props.eventId})
+    .then(res => {
+      list.value = res.data;
+      loading.value = false;
+      finished.value = true;
+    });
 };
 const onRefresh = () => {
   // 清空列表数据

+ 20 - 14
src/views/mobileControl/Workbenches.vue

@@ -17,14 +17,14 @@
           <div class="common-form-content">
             <div class="common-form-item">
               <van-field
-                v-model="form.processing_status_text"
+                v-model="form.report_dept"
                 class="common-field"
                 label="报送单位"
                 placeholder="请输入报送单位"
-                :rules="rules.processing_status"
+                :rules="rules.report_dept"
               />
               <van-field
-                v-model="form.feedback_content"
+                v-model="form.briefing_content"
                 class="common-field common-textarea"
                 rows="8"
                 type="textarea"
@@ -32,7 +32,7 @@
                 maxlength="800"
                 placeholder="请描述事件"
                 show-word-limit
-                :rules="rules.feedback_content"
+                :rules="rules.briefing_content"
               />
               <van-field label="文件上传" :error-message="uploaderErrors">
                 <template #input>
@@ -98,24 +98,24 @@
 <script lang="ts" setup>
 import { useRoute, useRouter } from "vue-router";
 import { reactive, ref } from "vue";
-import { showSuccessToast } from "vant";
+import { showToast } from "vant";
 import { Numeric } from "vant/es/utils";
 import FileUpload from "@/components/FileUpload/index.vue";
 import { validateFile } from "@/utils/validate";
+import { createEventBriefing } from "@/api/event";
 
 const props = defineProps({
-  modelValue: Boolean
+  modelValue: Boolean,
+  eventId: String
 });
 const showRight = ref(true);
 const route = useRoute();
 const router = useRouter();
-let id = ref("");
 let isGetAddress = ref(false);
 // 表单数据
 const form = ref({
-  processing_status: "",
-  processing_status_text: "",
-  feedback_content: "",
+  report_dept: "",
+  briefing_content: "",
   fileList: [],
   address: "",
   lnglat: [],
@@ -125,12 +125,11 @@ const handlePositionSelect = data => {
   form.value.lnglat = data.lnglat;
   form.value.address = data.address;
 };
-const pickerValue = ref<Numeric[]>([]);
 let uploaderErrors = ref("");
 // 表单校验规则
 const rules = reactive({
-  processing_status: [{ required: true, message: "请输入报送单位" }],
-  feedback_content: [{ required: true, message: "请输入事件描述" }],
+  report_dept: [{ required: true, message: "请输入报送单位" }],
+  briefing_content: [{ required: true, message: "请输入事件描述" }],
   fileList: [{ validator: validateFile, message: "请上传文件" }],
   address: [{  required: true, message: "请选择位置信息"  }]
 });
@@ -159,15 +158,22 @@ const onSubmit = () => {
   if (!flag) return;
   uploaderErrors.value = "";
   submitting.value = true;
+  createEventBriefing({...form.value, event_id: props.eventId}).then((res)=>{
+      showToast({type: 'success', message: res.msg, onClose:()=>{
+        onCancel();
+      }});
+  });
+  /*
   setTimeout(() => {
     submitting.value = false;
     showSuccessToast("提交成功");
     onCancel();
   }, 1500);
+  */
 };
 
 onMounted(() => {
-  id.value = route.query.id;
+  // console.log('onMounted:', props.eventId);
 });
 </script>