Hwf 6 miesięcy temu
rodzic
commit
b8171629cc

+ 0 - 16
src/types/components.d.ts

@@ -29,13 +29,9 @@ declare module 'vue' {
     ElButton: typeof import('element-plus/es')['ElButton']
     ElCard: typeof import('element-plus/es')['ElCard']
     ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
-    ElCheckboxGroup: typeof import('element-plus/es')['ElCheckboxGroup']
     ElCol: typeof import('element-plus/es')['ElCol']
-    ElCollapse: typeof import('element-plus/es')['ElCollapse']
-    ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
     ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
-    ElContainer: typeof import('element-plus/es')['ElContainer']
     ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
     ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
     ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
@@ -48,31 +44,23 @@ declare module 'vue' {
     ElEmpty: typeof import('element-plus/es')['ElEmpty']
     ElForm: typeof import('element-plus/es')['ElForm']
     ElFormItem: typeof import('element-plus/es')['ElFormItem']
-    ElHeader: typeof import('element-plus/es')['ElHeader']
     ElIcon: typeof import('element-plus/es')['ElIcon']
     ElImage: typeof import('element-plus/es')['ElImage']
     ElInput: typeof import('element-plus/es')['ElInput']
-    ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
     ElLink: typeof import('element-plus/es')['ElLink']
-    ElMain: typeof import('element-plus/es')['ElMain']
     ElMenu: typeof import('element-plus/es')['ElMenu']
     ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
     ElOption: typeof import('element-plus/es')['ElOption']
     ElPagination: typeof import('element-plus/es')['ElPagination']
     ElPopover: typeof import('element-plus/es')['ElPopover']
     ElRadio: typeof import('element-plus/es')['ElRadio']
-    ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
     ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
     ElRow: typeof import('element-plus/es')['ElRow']
     ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
-    ElSegmented: typeof import('element-plus/es')['ElSegmented']
     ElSelect: typeof import('element-plus/es')['ElSelect']
     ElSkeleton: typeof import('element-plus/es')['ElSkeleton']
     ElSkeletonItem: typeof import('element-plus/es')['ElSkeletonItem']
     ElSlider: typeof import('element-plus/es')['ElSlider']
-    ElSpace: typeof import('element-plus/es')['ElSpace']
-    ElStep: typeof import('element-plus/es')['ElStep']
-    ElSteps: typeof import('element-plus/es')['ElSteps']
     ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
     ElSwitch: typeof import('element-plus/es')['ElSwitch']
     ElTable: typeof import('element-plus/es')['ElTable']
@@ -85,7 +73,6 @@ declare module 'vue' {
     ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem']
     ElTooltip: typeof import('element-plus/es')['ElTooltip']
     ElTree: typeof import('element-plus/es')['ElTree']
-    ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect']
     ElUpload: typeof import('element-plus/es')['ElUpload']
     ExcelEditor: typeof import('./../components/ExcelEditor/index.vue')['default']
     FileUpload: typeof import('./../components/FileUpload/index.vue')['default']
@@ -97,9 +84,6 @@ declare module 'vue' {
     HikvisionPlayer: typeof import('./../components/HKVideo/hikvision-player.vue')['default']
     HKVideo: typeof import('./../components/HKVideo/index.vue')['default']
     IconSelect: typeof import('./../components/IconSelect/index.vue')['default']
-    IEpCaretBottom: typeof import('~icons/ep/caret-bottom')['default']
-    IEpCaretTop: typeof import('~icons/ep/caret-top')['default']
-    IEpUploadFilled: typeof import('~icons/ep/upload-filled')['default']
     IFrame: typeof import('./../components/iFrame/index.vue')['default']
     ImagePreview: typeof import('./../components/ImagePreview/index.vue')['default']
     ImageUpload: typeof import('./../components/ImageUpload/index.vue')['default']

+ 50 - 29
src/views/emergencyCommandMap/RightSection/RenWuGengXin.vue

@@ -5,64 +5,71 @@
         <el-form ref="taskFormRef" :model="newTask" :rules="rules">
           <el-row :gutter="20">
             <el-col :span="24">
-              <el-form-item label="任务描述:" label-width="90px" >
+              <el-form-item label="任务描述:" label-width="90px">
                 <div class="display-field">{{ newTask.task_description }}</div>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="任务类型:" label-width="90px" >
+              <el-form-item label="任务类型:" label-width="90px">
                 <div class="display-field">{{ get_task_type_text(newTask.task_type) }}</div>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="登记人:" label-width="90px" >
+              <el-form-item label="登记人:" label-width="90px">
                 <div class="display-field">{{ newTask.registrar }}</div>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="执行人:" label-width="90px" >
+              <el-form-item label="执行人:" label-width="90px">
                 <div class="display-field">{{ newTask.executor }}</div>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="执行单位:" label-width="90px" >
+              <el-form-item label="执行单位:" label-width="90px">
                 <div class="display-field">{{ newTask.unit_name }}</div>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="联系电话:" label-width="90px" >
+              <el-form-item label="联系电话:" label-width="90px">
                 <div class="display-field">{{ newTask.contact_phone }}</div>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="完成时限:" label-width="90px" >
+              <el-form-item label="完成时限:" label-width="90px">
                 <div class="display-field">{{ newTask.expire_time }}</div>
               </el-form-item>
             </el-col>
-            <!--
             <el-col :span="24">
-              <el-form-item label="图片:">
-                <div class="display-field">{{ newTask.complete_time }}</div>
+              <el-form-item label="图片:" label-width="90px">
+                <el-image
+                  v-for="(item, index) in newTask.imgList"
+                  :key="index"
+                  class="custom-image"
+                  :src="baseUrl + downLoadApi + item.url"
+                  :preview-teleported="true"
+                  fit="cover"
+                />
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="文件:">
-                <div class="display-field">{{ newTask.complete_time }}</div>
+              <el-form-item label="文件:" label-width="90px">
+                <a v-for="(item, index) in newTask.fileList" :key="index" :href="baseUrl + downLoadApi + item.url" target="_blank">
+                  <el-text type="primary">{{ item.name }}</el-text>
+                </a>
               </el-form-item>
             </el-col>
-            -->
             <el-col :span="24">
-              <el-form-item label="反馈人:" label-width="90px" >
+              <el-form-item label="反馈人:" label-width="90px">
                 <div class="display-field">{{ newTask.registrar }}</div>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="反馈内容:" label-width="90px"  prop="feedback_content">
+              <el-form-item label="反馈内容:" label-width="90px" prop="feedback_content">
                 <el-input v-model="newTask.feedback_content" class="custom-input2" clearable placeholder="请输入反馈内容"></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="24">
-              <el-form-item label="完成进度:" label-width="90px"  prop="processing_status">
+              <el-form-item label="完成进度:" label-width="90px" prop="processing_status">
                 <el-select
                   v-model="newTask.processing_status"
                   class="custom-select"
@@ -86,7 +93,6 @@
         <div class="flex">
           <div class="common-btn" @click="closeDialog">取消</div>
           <div class="common-btn-primary" :disabled="!isFormValid" @click="confirmRegister">确定</div>
-          
         </div>
       </div>
     </div>
@@ -100,23 +106,26 @@ const proxy = getCurrentInstance()?.proxy;
 
 const props = defineProps({
   modelValue: { type: Boolean, required: true },
-  task: { type: Object, default: () => (
-    { task_id: '', task_description: '', unit_name: '', registrar: '', processing_status: '', feedback_content: '', attachList: [] }) 
+  task: {
+    type: Object,
+    default: () => ({ task_id: '', task_description: '', unit_name: '', registrar: '', processing_status: '', feedback_content: '', attachList: [] })
   },
   eventId: { type: String, required: true }
 });
 
 const taskFormRef = ref();
+const baseUrl = import.meta.env.VITE_APP_BASE_API;
+const downLoadApi = import.meta.env.VITE_APP_BASE_DOWNLOAD_API;
 const emit = defineEmits(['update:modelValue', 'update-success']);
 const newTask = reactive({ ...props.task });
 const units = ref(['待处理', '已完成']);
 
 const opt_task_type = [
-  { text: "全部", value: "" },
-  { text: "事件处置", value: "0" },
-  { text: "防范措施", value: "1" },
-  { text: "险情处理", value: "2" },
-  { text: "督办任务", value: "3" }
+  { text: '全部', value: '' },
+  { text: '事件处置', value: '0' },
+  { text: '防范措施', value: '1' },
+  { text: '险情处理', value: '2' },
+  { text: '督办任务', value: '3' }
 ];
 
 const rules = ref({
@@ -125,8 +134,8 @@ const rules = ref({
 });
 
 const get_task_type_text = (val) => {
-  return opt_task_type.find(item => item.value == val).text
-}
+  return opt_task_type.find((item) => item.value == val).text;
+};
 
 const visible = computed({
   get: () => props.modelValue,
@@ -156,7 +165,7 @@ const confirmRegister = () => {
         feedback_content: newTask.feedback_content,
         attachList: newTask.attachList,
         event_code: props.eventId
-      }).then((response)=>{
+      }).then((response) => {
         if (response.code === 200) {
           proxy?.$modal.msgSuccess('任务进度更新成功');
           emit('update-success', newTask);
@@ -164,7 +173,7 @@ const confirmRegister = () => {
         } else {
           console.error('任务进度更新失败:', response.msg);
         }
-      })
+      });
     }
   });
 };
@@ -186,7 +195,14 @@ watch(
 .custom-select {
   //width: 500px !important; // 使用 !important 强制覆盖默认样式
 }
-
+.custom-image {
+  width: 100px;
+  height: 100px;
+  margin-left: 10px;
+  &:first-child {
+    margin-left: 0;
+  }
+}
 .dialog-body {
   padding: 20px;
   :deep(.el-form-item__label) {
@@ -225,4 +241,9 @@ watch(
     }
   }
 }
+.upload-box {
+  :deep(.el-upload__tip) {
+    color: #ffffff !important;
+  }
+}
 </style>

+ 8 - 0
src/views/emergencyCommandMap/RightSection/RightTop.vue

@@ -32,6 +32,7 @@
                 -->
               </div>
               <div class="box-content">{{ notification.content }}</div>
+              <div v-if="!!notification.comment" class="box-content2">领导批示:{{ notification.comment }}</div>
             </div>
           </div>
         </div>
@@ -268,6 +269,13 @@ watch(
           line-height: 1.5;
           margin-top: 10px;
         }
+        .box-content2 {
+          color: #ff4d4f;
+          width: 100%;
+          font-size: 38px;
+          line-height: 1.5;
+          margin-top: 10px;
+        }
       }
     }
   }

+ 1 - 1
src/views/emergencyCommandMap/RightSection/TaskDelivery.vue

@@ -15,7 +15,7 @@
               <div class="common-btn-primary2" @click="handleShowApprove(task)">领导批示</div>
             </div>
             <p class="task-description">{{ task.content }}</p>
-            <p class="task-text">{{ task.comment }}</p>
+            <p v-if="!!task.comment" class="task-text">领导批示:{{ task.comment }}</p>
             <div v-if="task.show" class="form-box">
               <el-input v-model="task.content2" class="custom-input" placeholder="请输入领导审批意见" />
               <div class="form-footer">