瀏覽代碼

no message

libushang 11 月之前
父節點
當前提交
51e37b74ec
共有 3 個文件被更改,包括 63 次插入10 次删除
  1. 1 0
      .env.development
  2. 15 1
      src/types/components.d.ts
  3. 47 9
      src/views/duty/eventing/index.vue

+ 1 - 0
.env.development

@@ -6,6 +6,7 @@ VITE_APP_ENV = 'development'
 
 # 开发环境
 VITE_APP_BASE_API = 'http://10.181.7.236:9988'
+# VITE_APP_BASE_API = 'http://127.0.0.1:9988'
 
 # 应用访问路径 例如使用前缀 /admin/
 VITE_APP_CONTEXT_PATH = '/'

+ 15 - 1
src/types/components.d.ts

@@ -21,6 +21,8 @@ declare module 'vue' {
     ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
     ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
     ElButton: typeof import('element-plus/es')['ElButton']
+    ElCard: typeof import('element-plus/es')['ElCard']
+    ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
     ElCol: typeof import('element-plus/es')['ElCol']
     ElColorPicker: typeof import('element-plus/es')['ElColorPicker']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
@@ -37,27 +39,39 @@ declare module 'vue' {
     ElIcon: typeof import('element-plus/es')['ElIcon']
     ElImage: typeof import('element-plus/es')['ElImage']
     ElInput: typeof import('element-plus/es')['ElInput']
-    ElLink: typeof import('element-plus/es')['ElLink']
+    ElInputNumber: typeof import('element-plus/es')['ElInputNumber']
     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']
     ElProgress: typeof import('element-plus/es')['ElProgress']
+    ElRadio: typeof import('element-plus/es')['ElRadio']
+    ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
     ElRow: typeof import('element-plus/es')['ElRow']
     ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
     ElSelect: typeof import('element-plus/es')['ElSelect']
+    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']
     ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
+    ElTabPane: typeof import('element-plus/es')['ElTabPane']
+    ElTabs: typeof import('element-plus/es')['ElTabs']
     ElTag: typeof import('element-plus/es')['ElTag']
+    ElTimeline: typeof import('element-plus/es')['ElTimeline']
+    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']
     FileUpload: typeof import('./../components/FileUpload/index.vue')['default']
     Hamburger: typeof import('./../components/Hamburger/index.vue')['default']
     HeaderSearch: typeof import('./../components/HeaderSearch/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']
     IFrame: typeof import('./../components/iFrame/index.vue')['default']
     ImagePreview: typeof import('./../components/ImagePreview/index.vue')['default']
     ImageUpload: typeof import('./../components/ImageUpload/index.vue')['default']

+ 47 - 9
src/views/duty/eventing/index.vue

@@ -112,30 +112,31 @@
     <pagination v-show="total > 0" v-model:page="queryParams.page" v-model:limit="queryParams.pageSize" :total="total" @pagination="getList" />
 
     <!-- 新增/修改弹窗 -->
-    <el-dialog v-model="dialog.visible" :title="dialog.title" width="650px" append-to-body>
+    <el-dialog v-model="dialog.visible" :title="dialog.title" width="750px" append-to-body>
       <el-form ref="eventFormRef" :model="form" :rules="rules" label-width="80px">
+        
         <el-form-item label="事件标题" prop="eventTitle">
           <el-input v-model="form.eventTitle" placeholder="请输入事件标题" />
         </el-form-item>
+        
         <el-form-item label="事件类型" prop="eventType">
           <el-select v-model="form.eventType" placeholder="请选择事件类型" clearable>
             <el-option v-for="item in data.eventTypeSelection" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"></el-option>
           </el-select>
         </el-form-item>
+
         <el-form-item label="事件等级" prop="eventLevel">
-          <el-select v-model="form.eventLevel" placeholder="请选择事件等级" clearable>
-            <el-option v-for="item in data.eventLevelSelection" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"></el-option>
+          <el-select v-model="form.eventLevel" placeholder="请选择事件等级" clearable style="width:calc(100% - 30px)">
+            <el-option @click.native v-for="item in data.eventLevelSelection" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"></el-option>
           </el-select>
+          <el-icon @click="eventLevelDialogVisible = true" size="large" style="margin-left:8px"><WarningFilled /></el-icon>
         </el-form-item>
+        
         <el-form-item label="事件状态" prop="eventStatus">
           <el-select v-model="form.eventStatus" placeholder="请选择事件状态" clearable>
             <el-option v-for="item in data.eventStatusSelection" :key="item.dictValue" :label="item.dictLabel" :value="item.dictValue"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="事件地点" prop="address">
-          <el-button type="primary" @click="openMapDialog">地图定位</el-button>
-          <el-input v-model="form.address" placeholder="请输入事件地点" readonly />
-        </el-form-item>
         <el-form-item label="事发时间" prop="eventTime">
           <el-date-picker v-model="form.eventTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="选择事发时间"></el-date-picker>
         </el-form-item>
@@ -144,6 +145,15 @@
         </el-form-item>
         <el-form-item label="伤亡情况">
           <el-row :gutter="10">
+            <el-col :span="3">
+              <el-switch
+                size="large"
+                v-model="form.casualty"
+                inline-prompt
+                active-text="已上报"
+                inactive-text="未上报"
+              />
+            </el-col>
             <el-col :span="6">
               <el-input v-model="form.deaths" placeholder="死亡">
                 <template #suffix>人</template>
@@ -164,6 +174,17 @@
         <el-form-item label="事件来源" prop="eventSource">
           <el-input v-model="form.eventSource" placeholder="请输入事件来源" />
         </el-form-item>
+        <el-form-item label="事件地点" prop="address">
+          <el-input v-model="form.address" placeholder="请输入事件地点" readonly >
+            <template #append>
+            <el-button @click="openMapDialog">地图定位</el-button>
+          </template>
+          </el-input> 
+          
+        </el-form-item>
+        <el-form-item label="事件概要" prop="event_description">
+          <el-input v-model="form.event_description" placeholder="请输入事件概要描述" type="textarea" :rows="5" />
+        </el-form-item>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
@@ -175,6 +196,18 @@
 
     <!-- 地图弹窗 -->
     <company-map v-model:visible="mapDialogVisible" :address="form.address" @confirm="handleMapChange"></company-map>
+
+    <el-dialog v-model="eventLevelDialogVisible" title="突发事故分级标准" width="450px" append-to-body>
+      <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>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="eventLevelDialogVisible = false">关闭</el-button>
+        </div>
+      </template>
+    </el-dialog>
   </div>
 </template>
 
@@ -182,6 +215,7 @@
 import { ref, reactive, toRefs, onMounted } from 'vue';
 import { getDicts } from '@/api/system/dict/data';
 import { addEvent, getEvent } from '@/api/duty/eventing';
+import { WarningFilled } from '@element-plus/icons-vue';
 
 const router = useRouter();
 const eventList = ref([]);
@@ -213,10 +247,12 @@ const initFormData = {
   latitude: '',
   eventTime: '',
   reportTime: '',
+  casualty: false,
   deaths: '',
   injuries: '',
   missing: '',
-  eventSource: ''
+  eventSource: '',
+  event_description: ''
 };
 
 const data = reactive({
@@ -239,7 +275,8 @@ const data = reactive({
     address: [{ required: true, message: '事件地点不能为空', trigger: 'blur' }],
     eventTime: [{ required: true, message: '事发时间不能为空', trigger: 'blur' }],
     reportTime: [{ required: true, message: '上报时间不能为空', trigger: 'blur' }],
-    eventSource: [{ required: true, message: '事件来源不能为空', trigger: 'blur' }]
+    eventSource: [{ required: true, message: '事件来源不能为空', trigger: 'blur' }],
+    event_description: [{ required: true, message: '事件概要不能为空', trigger: 'blur' }]
   },
   eventTypeSelection: [],
   eventLevelSelection: [],
@@ -356,6 +393,7 @@ const handleView = (row) => {
 
 // 地图定位
 const mapDialogVisible = ref(false);
+const eventLevelDialogVisible = ref(false);
 
 const openMapDialog = () => {
   mapDialogVisible.value = true;