wangtao 3 éve
szülő
commit
6bdc52d47a
31 módosított fájl, 2220 hozzáadás és 913 törlés
  1. 3 0
      j接口.md
  2. 4 0
      src/App.vue
  3. 50 1
      src/api/business/OM/workMange/index.js
  4. 1 2
      src/api/business/ba/lateralPosition.js
  5. 14 9
      src/views/business/OM/MochaITOM/crew/index.vue
  6. 6 7
      src/views/business/OM/MochaITOM/plan/index.vue
  7. 4 3
      src/views/business/OM/MochaITOM/point/index.vue
  8. 11 2
      src/views/business/OM/MochaITOM/record/index.vue
  9. 307 108
      src/views/business/OM/eventCenter/alarm/index.vue
  10. 322 110
      src/views/business/OM/eventCenter/event/index.vue
  11. 123 10
      src/views/business/OM/eventCenter/hiddenDanger/index.vue
  12. 161 43
      src/views/business/OM/workMange/index.vue
  13. 42 15
      src/views/business/ba/lateralPosition/index.vue
  14. 1 1
      src/views/business/buildMange/floor/index.vue
  15. 34 10
      src/views/business/deviceMange/deviceApi/index.vue
  16. 19 23
      src/views/business/deviceMange/deviceList/index.vue
  17. 25 46
      src/views/business/deviceMange/devicePassageWay/index.vue
  18. 2 1
      src/views/business/deviceMange/deviceType/index.vue
  19. 107 4
      src/views/business/fireInternet/deviceMonitoring/SSMonitoring/index.vue
  20. 102 1
      src/views/business/fireInternet/deviceMonitoring/fireMonitoring/index.vue
  21. 9 1
      src/views/business/fireInternet/deviceMonitoring/waterMonitoring/device/index.vue
  22. 102 1
      src/views/business/fireInternet/deviceMonitoring/waterMonitoring/offLine/index.vue
  23. 537 329
      src/views/business/fireInternet/fireAlarm/fireMonitoring/index.vue
  24. 105 150
      src/views/business/fireInternet/fireAlarm/waterAlarm/index.vue
  25. 101 3
      src/views/business/fireInternet/hiddenDanger/index.vue
  26. 11 15
      src/views/business/fireInternet/monthReport/index.vue
  27. 3 5
      src/views/business/propertyMange/index.vue
  28. 1 1
      src/views/components/fireInternetInfo/index3.vue
  29. 5 5
      src/views/components/index/index2.vue
  30. 5 4
      src/views/components/monthReport/index.vue
  31. 3 3
      vue.config.js

+ 3 - 0
j接口.md

@@ -0,0 +1,3 @@
+1.dmapi/device/list   返回建筑名称
+2./workOrder/list   返回处理人
+3./dxtop/order/list 新增id查询

+ 4 - 0
src/App.vue

@@ -143,5 +143,9 @@ export default  {
 .time .el-form-item__label{
   width:auto !important;
 }
+.el-form-item__content span{
+  font-weight: 700;
+  /* color:#1890ff; */
+}
 </style>
 

+ 50 - 1
src/api/business/OM/workMange/index.js

@@ -51,4 +51,53 @@ export function workOrderOne(data) { //查看工单详情
         method: 'get',
         params: data
     })
-}
+}
+
+export function baCwInfoUpdate(data) { //ba厕位工单处理
+    return request({
+        url: "/baCwInfo/checkAlert",
+        method: 'put',
+        data
+    })
+}
+export function maintianLogUpdate(data) { //维保工单处理
+    return request({
+        url: "/maintianLog/checkWorkOrder",
+        method: 'put',
+        data
+    })
+}
+// export function tbAlarmUpdate(data) { //消防告警工单处理
+//     return request({
+//         url: "/tbAlarm/checkWorkOrder",
+//         method: 'put',
+//         data
+//     })
+// }
+export function tbAlarmId(data) { //消防告警工单处理
+    return request({
+        url: "/tbAlarm/" + data,
+        method: 'get',
+    })
+}
+export function tbAlarmDG(data) { //消防告警单个工单处理
+    return request({
+        url: "/tbAlarm/checkWorkOrder",
+        method: 'put',
+        data
+    })
+}
+export function tbAlarmPL(data) { //消防告警批量工单处理
+    return request({
+        url: "/tbAlarm/list",
+        method: 'put',
+        data
+    })
+}
+// export function workOrderOne(data) { //消防告警批量工单处理
+//     return request({
+//         url: "/workOrder/oneByType",
+//         method: 'put',
+//         data
+//     })
+// }

+ 1 - 2
src/api/business/ba/lateralPosition.js

@@ -14,5 +14,4 @@ export function exportLateralPosition(data) {
         method: 'post',
         data: data
     })
-}
-
+}

+ 14 - 9
src/views/business/OM/MochaITOM/crew/index.vue

@@ -181,7 +181,7 @@ export default {
         ],
       },
       rules2: {
-        
+
         name: [
           { required: true, message: "姓名不能为空",  trigger: "blur"  }
         ],
@@ -247,7 +247,7 @@ export default {
         if(i != index){
           this.list[i].label = 1
           this.list[i].switch = 1
-        } 
+        }
       }
     },
     //强制el-input刷新
@@ -296,13 +296,18 @@ export default {
       getDevopsTeam(this.queryParams).then(response => {
         if(response.data.records.length>0){
           this.adminList = response.data.records;
-          let arr = []
-          for(let i=0;i<this.adminList.length;i++){
-            arr[i] = {name:undefined,id:undefined}
-            arr[i].name = this.adminList[i].dutyName
-            arr[i].id = this.adminList[i].id
+          if(this.zrr.length>0){
+
+          }else{
+            let arr = []
+            for(let i=0;i<this.adminList.length;i++){
+              arr[i] = {name:undefined,id:undefined}
+              arr[i].name = this.adminList[i].dutyName
+              arr[i].id = this.adminList[i].id
+            }
+            this.zrr = arr
           }
-          this.zrr = arr
+
           this.total = response.data.total;
           this.loading = false;
         }else{
@@ -310,7 +315,7 @@ export default {
           this.total = response.data.total;
           this.loading = false;
         }
-        
+
       });
       /* 公司列表 */
       listChannel(this.queryParams).then(response => {

+ 6 - 7
src/views/business/OM/MochaITOM/plan/index.vue

@@ -36,7 +36,6 @@
 
     <el-table v-loading="loading" :data="adminList" height="calc(100vh - 28vh)">
       <el-table-column label="计划名称" align="center" prop="planName"  show-overflow-tooltip />
-      <!-- <el-table-column label="周期" align="center" prop="cycle"  show-overflow-tooltip /> -->
       <el-table-column label="周期" align="center" prop="cycle"  show-overflow-tooltip >
         <template slot-scope="scope">
           <span>{{scope.row.cycle == 1 ? "日" : scope.row.cycle == 2 ? "周" : "月"}}</span>
@@ -181,7 +180,7 @@
               </el-select>
             </el-form-item>
           </el-col>
-          
+
           <el-col style="font-size:16px;font-weight:700;margin:10px 0 20px;">巡更路线</el-col>
           <el-table v-loading="loading2" :data="adminList2" height="200"   @select="dialogCheck" ref="dataTable">
             <el-table-column type="selection" />
@@ -283,9 +282,9 @@ export default {
       companyList: [],
       zrr:[],
       cycleList:[
-        {dictValue:1,dictLabel:"日"},
-        {dictValue:2,dictLabel:"周"},
-        {dictValue:3,dictLabel:"月"},
+        {dictValue:"1",dictLabel:"日"},
+        {dictValue:"2",dictLabel:"周"},
+        {dictValue:"3",dictLabel:"月"},
       ],
       inspectTimeList:[],
 
@@ -299,8 +298,8 @@ export default {
     this.zxtime()//执行时间
   },
   methods: {
-    
-   
+
+
     //强制el-input刷新
     onInput(){
         this.$forceUpdate();

+ 4 - 3
src/views/business/OM/MochaITOM/point/index.vue

@@ -132,7 +132,7 @@
               <el-input v-model="form.remarks" placeholder="请填写备注" @input="onInput()" maxlength="30" show-word-limit />
             </el-form-item>
           </el-col>
-          
+
           <!-- <el-col :span="12">
             <el-form-item label="设备类型" prop="dwtype">
               <el-select v-model="form.dwtype"   placeholder="请选择设备类型">
@@ -220,7 +220,7 @@ export default {
         data1: [
           { required: true, message: "设备编号不能为空",  trigger: "blur"  }
         ],
-        
+
         companyCode: [
           { required: true, message: "单位名称不能为空",  trigger: ["blur",'change']}
         ],
@@ -286,6 +286,7 @@ export default {
         fileUpload(formData).then(response => {
           this.msgSuccess("上传成功");
           this.form.pictureRoute = response.data
+           this.$refs.form.clearValidate('pictureRoute')
         });
       }
     },
@@ -425,7 +426,7 @@ export default {
         document.getElementById("xz").click()
       })
     }
-    
+
   }
 };
 </script>

+ 11 - 2
src/views/business/OM/MochaITOM/record/index.vue

@@ -45,7 +45,7 @@
       </el-col>
       <el-col :span="2.4" >
         <el-col class="event">
-            超时任务<span class="color3 colorc">{{collectList.todayTimeOutCount}}</span>
+            今日超时任务<span class="color3 colorc">{{collectList.todayTimeOutCount}}</span>
         </el-col>
       </el-col>
       <el-col :span="2.4">
@@ -73,14 +73,23 @@
       <el-table-column label="联系电话" align="center" prop="dutyPhone" show-overflow-tooltip />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
         <template slot-scope="scope">
-          <el-button
+          <el-button v-if="scope.row.isComplete === false"
             size="mini"
             type="text"
             icon="el-icon-s-promotion"
             @click="jump(scope.row)"
             v-hasPermi="['system:admin:edit']"
           >跳转至工单</el-button>
+           <el-button v-if="scope.row.isComplete === true"
+            size="mini"
+            type="text"
+            icon="el-icon-s-promotion"
+            @click="jump(scope.row)"
+            disabled
+            v-hasPermi="['system:admin:edit']"
+          >跳转至工单</el-button>
         </template>
+
       </el-table-column>
     </el-table>
     <pagination

+ 307 - 108
src/views/business/OM/eventCenter/alarm/index.vue

@@ -1,9 +1,15 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px">
-      <el-form-item label="上报时间:" >
-         <el-date-picker
-          style="margin-top:5px;width:340px"
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      :inline="true"
+      v-show="showSearch"
+      label-width="90px"
+    >
+      <el-form-item label="上报时间:">
+        <el-date-picker
+          style="margin-top: 5px; width: 340px"
           v-model="dateRange"
           size="small"
           value-format="yyyy-MM-dd HH:mm:ss"
@@ -14,14 +20,27 @@
         ></el-date-picker>
       </el-form-item>
       <el-form-item label="处理状态:">
-        <el-select v-model.trim="queryParams.status"  size="small" style="width: 160px" placeholder="请选择处理状态">
+        <el-select
+          v-model.trim="queryParams.status"
+          size="small"
+          style="width: 160px"
+          placeholder="请选择处理状态"
+        >
           <el-option value="0" label="未处理"></el-option>
           <el-option value="1" label="已处理"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
         <el-button
           type="warning"
           plain
@@ -30,71 +49,205 @@
           :loading="exportLoading"
           @click="handleExport"
           v-hasPermi="['system:admin:export']"
-        >导出</el-button>
+          >导出</el-button
+        >
       </el-form-item>
     </el-form>
     <el-row :gutter="20" v-loading="loading2">
       <el-col :span="2.4">
         <el-col class="event">
-            事件总数<span class="color1 colorc">{{collectList.total}}</span>
+          事件总数<span class="color1 colorc">{{ collectList.total }}</span>
         </el-col>
       </el-col>
       <el-col :span="2.4">
         <el-col class="event">
-            已处理数<span class="color2 colorc">{{collectList.checkCount}}</span>
+          已处理数<span class="color2 colorc">{{
+            collectList.checkCount
+          }}</span>
         </el-col>
       </el-col>
-      <el-col :span="2.4" >
+      <el-col :span="2.4">
         <el-col class="event">
-            未处理数<span class="color3 colorc">{{collectList.noCheckCount}}</span>
+          未处理数<span class="color3 colorc">{{
+            collectList.noCheckCount
+          }}</span>
         </el-col>
       </el-col>
       <el-col :span="2.4">
         <el-col class="event">
-            处置率<span class="color4 colorc">{{((collectList.checkRadio)*100).toFixed(2)}}%</span>
+          处置率<span class="color4 colorc"
+            >{{ (collectList.checkRadio * 100).toFixed(2) }}%</span
+          >
         </el-col>
       </el-col>
     </el-row>
-    <el-table v-loading="loading" :data="adminList" style="margin-top:20px;" height="calc(100vh - 34vh)">
+    <el-table
+      v-loading="loading"
+      :data="adminList"
+      style="margin-top: 20px"
+      height="calc(100vh - 34vh)"
+    >
       <el-table-column label="事件id" align="center" prop="id" />
-      <el-table-column label="单位名称" align="center" prop="companyName" show-overflow-tooltip />
-      <el-table-column label="告警设备" align="center" prop="deviceName" show-overflow-tooltip />
-      <el-table-column label="告警内容" align="center" prop="alarmContent" show-overflow-tooltip />
-      <el-table-column label="上报时间" align="center" prop="createTime" show-overflow-tooltip />
+      <el-table-column
+        label="单位名称"
+        align="center"
+        prop="companyName"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="告警设备"
+        align="center"
+        prop="deviceName"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="报告数据"
+        align="center"
+        prop="property"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="上报时间"
+        align="center"
+        prop="createTime"
+        show-overflow-tooltip
+      />
       <!-- <el-table-column label="是否误报" align="center" prop="isAlarm" >
         <template slot-scope="scope">
           <span :class="scope.row.isAlarm == true ? 'color3' : 'color4'">{{scope.row.isAlarm == true ? "是" : "否"}}</span>
         </template>
       </el-table-column> -->
-      <el-table-column label="处理状态" align="center" prop="alarmStatus" show-overflow-tooltip >
+      <el-table-column
+        label="处理状态"
+        align="center"
+        prop="alarmStatus"
+        show-overflow-tooltip
+      >
         <template slot-scope="scope">
-          <span :class="scope.row.alarmStatus == 0 ? 'color3' : 'color4'">{{scope.row.alarmStatus == 0 ? "未处理" : "已处理"}}</span>
+          <span :class="scope.row.alarmStatus == 0 ? 'color3' : 'color4'">{{
+            scope.row.alarmStatus == 0 ? "未处理" : "已处理"
+          }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="处置内容" align="center" prop="checkContent" show-overflow-tooltip />
-      <el-table-column label="处理人" align="center" prop="updateBy" show-overflow-tooltip />
-      <el-table-column label="处理时间" align="center" prop="updateTime" show-overflow-tooltip />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
+      <el-table-column
+        label="处置内容"
+        align="center"
+        prop="checkContent"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="处理人"
+        align="center"
+        prop="updateBy"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="处理时间"
+        align="center"
+        prop="updateTime"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
         <template slot-scope="scope">
           <el-button
             size="mini"
             type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
+            icon="el-icon-view"
+            @click="getOne(scope.row)"
+            >查看详情</el-button
+          >
+          <el-button
+            v-if="scope.row.alarmStatus == '0'"
+            size="mini"
+            type="text"
+            icon="el-icon-s-promotion"
+            @click="jump(scope.row)"
             v-hasPermi="['system:admin:edit']"
-          >处置</el-button>
-          <!-- <el-button
+            >跳转至工单</el-button
+          >
+          <el-button
+            v-if="scope.row.alarmStatus == '1'"
             size="mini"
             type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:admin:remove']"
-          >删除</el-button> -->
+            icon="el-icon-s-promotion"
+            @click="jump(scope.row)"
+            disabled
+            v-hasPermi="['system:admin:edit']"
+            >跳转至工单</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
+    <!-- 详情对话框 -->
+    <el-dialog
+      :title="title"
+      :visible.sync="open"
+      width="600px"
+      append-to-body
+      :before-close="cancel"
+      :close-on-click-modal="false"
+    >
+      <el-form ref="form" :model="form" label-width="auto">
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item label="工单序号:" prop="id">
+              <span>{{ form.id }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="单位名称:" prop="companyName">
+              <span>{{ form.companyName }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="报告时间:" prop="alarmTime">
+              <span>{{ form.alarmTime }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="报告数据:" prop="property">
+              <span>{{ form.property }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="报告内容:" prop="deviceName">
+              <span>{{ form.deviceName }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="处理状态:" prop="alarmStatus">
+              <span>{{ form.alarmStatus }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="处理人:" prop="updateBy">
+              <span>{{ form.updateBy }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="处理时间:" prop="updateTime">
+              <span>{{ form.updateTime }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="处理内容:" prop="checkContent">
+              <span>{{ form.checkContent }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="误报:" prop="isAlarm">
+              <span>{{ form.isAlarm }}</span>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-dialog>
     <!-- 修改、新增对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
+    <!-- <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="auto" >
         <el-row :gutter="20">
           <el-col :span="12">
@@ -139,27 +292,39 @@
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
-    </el-dialog>
+    </el-dialog> -->
     <pagination
-      v-show="total>0"
+      v-show="total > 0"
       :total="total"
       :page.sync="queryParams.current"
       :limit.sync="queryParams.size"
       @pagination="getList"
     />
     <!-- 导出-->
-    <a href="" download="" id="xz" style="position: absolute;z-index: -1;opacity: 0;"></a>
+    <a
+      href=""
+      download=""
+      id="xz"
+      style="position: absolute; z-index: -1; opacity: 0"
+    ></a>
   </div>
 </template>
 <script>
-import { delTbAlarm, updateTbAlarm, updateTbAlarmP, getTbAlarm, exportTbAlarm, collectTbAlarm } from "@/api/business/OM/eventCenter";
+import {
+  delTbAlarm,
+  updateTbAlarm,
+  updateTbAlarmP,
+  getTbAlarm,
+  exportTbAlarm,
+  collectTbAlarm,
+} from "@/api/business/OM/eventCenter";
 import { BASEPATH } from "@/assets/js/common.js";
 export default {
   name: "TbAlarm",
   data() {
     return {
-      piliang:false,
-      exportLoading:false,
+      piliang: false,
+      exportLoading: false,
       // 显示搜索条件
       showSearch: true,
       // 总条数
@@ -175,7 +340,7 @@ export default {
         current: 1,
         size: 10,
         name: undefined,
-        type:2
+        type: 2,
       },
       // 日期范围
       dateRange: [],
@@ -184,20 +349,20 @@ export default {
       // 表单校验
       rules: {},
       //综合数据
-      collectList:[],
-      loading2:true,
+      collectList: [],
+      loading2: true,
     };
   },
   created() {
-    this.getList();//初始化table
-    this.getCollect();//初始化table
+    this.getList(); //初始化table
+    this.getCollect(); //初始化table
     // this.company();//初始化单位选项
     // this.facilityType();//初始化类别选项
   },
   methods: {
     //强制el-input刷新
-    onInput(){
-        this.$forceUpdate();
+    onInput() {
+      this.$forceUpdate();
     },
     // 取消按钮
     cancel() {
@@ -208,11 +373,11 @@ export default {
     resetQuery() {
       this.dateRange = [];
       this.queryParams = {
-        name:undefined,
-        current:1,
-        size:10,
-        type:2
-      }
+        name: undefined,
+        current: 1,
+        size: 10,
+        type: 2,
+      };
       this.resetForm("queryForm");
       this.handleQuery();
     },
@@ -229,26 +394,26 @@ export default {
     /** 查询参数列表 */
     getList() {
       this.loading = true;
-      let data = this.addDateRange(this.queryParams,this.dateRange)
-      if(JSON.stringify(data.params) == "{}"){
-        delete data.params
-      }else{
-        data.endTime = data.params.endTime
-        data.startTime = data.params.beginTime
+      let data = this.addDateRange(this.queryParams, this.dateRange);
+      if (JSON.stringify(data.params) == "{}") {
+        delete data.params;
+      } else {
+        data.endTime = data.params.endTime;
+        data.startTime = data.params.beginTime;
       }
-      getTbAlarm(data).then(response => {
+      getTbAlarm(data).then((response) => {
         this.adminList = response.data.records;
         this.total = response.data.total;
         this.loading = false;
       });
     },
     /** 综合列表列表 */
-    getCollect(){
-      collectTbAlarm({type:2}).then(response => {
-        this.collectList = response.data
+    getCollect() {
+      collectTbAlarm({ type: 2 }).then((response) => {
+        this.collectList = response.data;
         setTimeout(() => {
-          this.loading2 = false
-        },500);
+          this.loading2 = false;
+        }, 500);
       });
     },
 
@@ -256,12 +421,12 @@ export default {
     handleUpdate(row) {
       this.reset();
       this.title = "处置";
-      if(row.isAlarm === true){
-        row.isAlarm = true
-      }else{
-        row.isAlarm = false
+      if (row.isAlarm === true) {
+        row.isAlarm = true;
+      } else {
+        row.isAlarm = false;
       }
-      this.form = JSON.parse(JSON.stringify(row))
+      this.form = JSON.parse(JSON.stringify(row));
       this.open = true;
     },
     /** 新增按钮操作 */
@@ -272,32 +437,33 @@ export default {
     },
     /** 提交按钮 */
     submitForm(row) {
-      this.$refs["form"].validate(valid => {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
-          this.loading = true
+          this.loading = true;
           if (this.form.id != undefined) {
-            this.form.alarmStatus = 1
-            let data = this.form
-            if(this.piliang === true){
-              updateTbAlarmP(data).then(response => {
-                this.loading = false,
-                this.msgSuccess("修改成功");
-                this.open = false;
-                this.getList();
-              }).catch(()=>{
-                this.loading = false
-              })
-            }else{
-              updateTbAlarm(data).then(response => {
-                this.loading = false,
-                this.msgSuccess("修改成功");
-                this.open = false;
-                this.getList();
-              }).catch(()=>{
-                this.loading = false
-              })
+            this.form.alarmStatus = 1;
+            let data = this.form;
+            if (this.piliang === true) {
+              updateTbAlarmP(data)
+                .then((response) => {
+                  (this.loading = false), this.msgSuccess("修改成功");
+                  this.open = false;
+                  this.getList();
+                })
+                .catch(() => {
+                  this.loading = false;
+                });
+            } else {
+              updateTbAlarm(data)
+                .then((response) => {
+                  (this.loading = false), this.msgSuccess("修改成功");
+                  this.open = false;
+                  this.getList();
+                })
+                .catch(() => {
+                  this.loading = false;
+                });
             }
-
           }
         }
       });
@@ -305,32 +471,65 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
-      this.$confirm('是否确认删除', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
+      this.$confirm("是否确认删除", "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(function () {
           return delTbAlarm(ids);
-        }).then(() => {
+        })
+        .then(() => {
           this.getList();
           this.msgSuccess("删除成功");
-        }).catch(() => {});
+        })
+        .catch(() => {});
     },
 
-
     /** 导出按钮操作 */
     handleExport() {
-      let queryParams = {...this.queryParams};
-      delete queryParams.current
-      delete queryParams.size
+      let queryParams = { ...this.queryParams };
+      delete queryParams.current;
+      delete queryParams.size;
       this.exportLoading = true;
-      exportTbAlarm(queryParams).then(response =>{
+      exportTbAlarm(queryParams).then((response) => {
         this.exportLoading = false;
-        document.getElementById("xz").href = BASEPATH()  + response.data
-        document.getElementById("xz").download = response.data
-        document.getElementById("xz").click()
-      })
+        document.getElementById("xz").href = BASEPATH() + response.data;
+        document.getElementById("xz").download = response.data;
+        document.getElementById("xz").click();
+      });
+    },
+    //查看详情
+    getOne(row) {
+      this.title = "详情信息";
+      this.form = JSON.parse(JSON.stringify(row));
+
+      if (row.isAlarm === true) {
+        this.form.isAlarm = "是";
+      } else {
+        this.form.isAlarm = "否";
+      }
+      if (row.alarmStatus == "0") {
+        this.form.alarmStatus = "未处理";
+      } else {
+        this.form.alarmStatus = "已处理";
+      }
+      this.open = true;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+    },
+    /** 跳转至工单 */
+    jump(row) {
+      this.$router.push({
+        path: "/OM/business/OM/workMange",
+        query: {
+          id: row.id,
+          type: 1,
+        },
+      });
     },
-  }
+  },
 };
 </script>

+ 322 - 110
src/views/business/OM/eventCenter/event/index.vue

@@ -1,9 +1,15 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px">
+    <el-form
+      :model="queryParams"
+      ref="queryForm"
+      :inline="true"
+      v-show="showSearch"
+      label-width="90px"
+    >
       <el-form-item label="上报时间:">
-         <el-date-picker
-          style="margin-top:5px;;width:340px"
+        <el-date-picker
+          style="margin-top: 5px; width: 340px"
           v-model="dateRange"
           size="small"
           value-format="yyyy-MM-dd HH:mm:ss"
@@ -14,15 +20,28 @@
         ></el-date-picker>
       </el-form-item>
       <el-form-item label="事件类型:">
-        <el-select v-model.trim="queryParams.type"  size="small" style="width:160px" placeholder="请选择事件类型">
+        <el-select
+          v-model.trim="queryParams.type"
+          size="small"
+          style="width: 160px"
+          placeholder="请选择事件类型"
+        >
           <el-option value="1" label="消防隐患"></el-option>
           <el-option value="2" label="消防告警"></el-option>
           <el-option value="3" label="设备设施"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          size="mini"
+          @click="handleQuery"
+          >搜索</el-button
+        >
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+          >重置</el-button
+        >
         <el-button
           type="warning"
           plain
@@ -31,72 +50,220 @@
           :loading="exportLoading"
           @click="handleExport"
           v-hasPermi="['system:admin:export']"
-        >导出</el-button>
+          >导出</el-button
+        >
       </el-form-item>
     </el-form>
     <el-row :gutter="20" v-loading="loading2">
       <el-col :span="2.4">
         <el-col class="event">
-            事件总数<span class="color1 colorc">{{collectList.total}}</span>
+          事件总数<span class="color1 colorc">{{ collectList.total }}</span>
         </el-col>
       </el-col>
       <el-col :span="2.4">
         <el-col class="event">
-            已处理数<span class="color2 colorc">{{collectList.checkCount}}</span>
+          已处理数<span class="color2 colorc">{{
+            collectList.checkCount
+          }}</span>
         </el-col>
       </el-col>
-      <el-col :span="2.4" >
+      <el-col :span="2.4">
         <el-col class="event">
-            未处理数<span class="color3 colorc">{{collectList.noCheckCount}}</span>
+          未处理数<span class="color3 colorc">{{
+            collectList.noCheckCount
+          }}</span>
         </el-col>
       </el-col>
       <el-col :span="2.4">
         <el-col class="event">
-            处置率<span class="color4 colorc">{{((collectList.checkRadio)*100).toFixed(2)}}%</span>
+          处置率<span class="color4 colorc"
+            >{{ (collectList.checkRadio * 100).toFixed(2) }}%</span
+          >
         </el-col>
       </el-col>
     </el-row>
-    <el-table v-loading="loading" :data="adminList" style="margin-top:20px;" height="calc(100vh - 34vh)">
+    <el-table
+      v-loading="loading"
+      :data="adminList"
+      style="margin-top: 20px"
+      height="calc(100vh - 34vh)"
+    >
       <el-table-column label="事件id" align="center" prop="id" />
-      <el-table-column label="单位名称" align="center" prop="companyName" show-overflow-tooltip />
-      <el-table-column label="事件名称" align="center" prop="eventName" show-overflow-tooltip />
-      <el-table-column label="事件类型" align="center" prop="eventType" show-overflow-tooltip >
+      <el-table-column
+        label="单位名称"
+        align="center"
+        prop="companyName"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="事件名称"
+        align="center"
+        prop="eventName"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="事件类型"
+        align="center"
+        prop="eventType"
+        show-overflow-tooltip
+      >
         <template slot-scope="scope">
-          <span :class="scope.row.eventType == 1 ? 'color1' : scope.row.eventType == 2 ? 'color2' : 'color3'">{{scope.row.eventType  == 1 ? '消防隐患' : scope.row.eventType  == 2 ? '消防告警' : '设备设施'}}</span>
+          <span
+            :class="
+              scope.row.eventType == 1
+                ? 'color1'
+                : scope.row.eventType == 2
+                ? 'color2'
+                : 'color3'
+            "
+            >{{
+              scope.row.eventType == 1
+                ? "消防隐患"
+                : scope.row.eventType == 2
+                ? "消防告警"
+                : "设备设施"
+            }}</span
+          >
         </template>
       </el-table-column>
-      <el-table-column label="报告内容" align="center" prop="eventContent" show-overflow-tooltip />
-      <el-table-column label="上报时间" align="center" prop="reportingTime" show-overflow-tooltip />
-      <el-table-column label="处理状态" align="center" prop="clzt" >
+      <el-table-column
+        label="报告内容"
+        align="center"
+        prop="eventContent"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="上报时间"
+        align="center"
+        prop="reportingTime"
+        show-overflow-tooltip
+      />
+      <el-table-column label="处理状态" align="center" prop="clzt">
         <template slot-scope="scope">
-          <span :class="scope.row.clzt == 0 ? 'color3' : 'color4'">{{scope.row.clzt == 0 ? "未处理" : "已处理"}}</span>
+          <span :class="scope.row.clzt == 0 ? 'color3' : 'color4'">{{
+            scope.row.clzt == 0 ? "未处理" : "已处理"
+          }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="处置内容" align="center" prop="clContent" show-overflow-tooltip />
-      <el-table-column label="处理人" align="center" prop="clPeople" show-overflow-tooltip />
-      <el-table-column label="处理时间" align="center" prop="clTiem" show-overflow-tooltip />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
+      <el-table-column
+        label="处置内容"
+        align="center"
+        prop="clContent"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="处理人"
+        align="center"
+        prop="clPeople"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="处理时间"
+        align="center"
+        prop="clTiem"
+        show-overflow-tooltip
+      />
+      <el-table-column
+        label="操作"
+        align="center"
+        class-name="small-padding fixed-width"
+      >
         <template slot-scope="scope">
           <el-button
             size="mini"
             type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
+            icon="el-icon-view"
+            @click="getOne(scope.row)"
+            >查看详情</el-button
+          >
+          <el-button
+            v-if="scope.row.alarmStatus == '0'"
+            size="mini"
+            type="text"
+            icon="el-icon-s-promotion"
+            @click="jump(scope.row)"
             v-hasPermi="['system:admin:edit']"
-          >处置</el-button>
-          <!-- <el-button
+            >跳转至工单</el-button
+          >
+          <el-button
+            v-if="scope.row.alarmStatus == '1'"
             size="mini"
             type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:admin:remove']"
-          >删除</el-button> -->
+            icon="el-icon-s-promotion"
+            @click="jump(scope.row)"
+            disabled
+            v-hasPermi="['system:admin:edit']"
+            >跳转至工单</el-button
+          >
         </template>
       </el-table-column>
     </el-table>
-
+    <!-- 详情对话框 -->
+    <el-dialog
+      :title="title"
+      :visible.sync="open"
+      width="600px"
+      append-to-body
+      :before-close="cancel"
+      :close-on-click-modal="false"
+    >
+      <el-form ref="form" :model="form" label-width="auto">
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item label="工单序号:" prop="id">
+              <span>{{ form.id }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="单位名称:" prop="companyName">
+              <span>{{ form.companyName }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="报告时间:" prop="alarmTime">
+              <span>{{ form.alarmTime }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="报告数据:" prop="property">
+              <span>{{ form.property }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="报告内容:" prop="deviceName">
+              <span>{{ form.deviceName }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="处理状态:" prop="alarmStatus">
+              <span>{{ form.alarmStatus }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="处理人:" prop="updateBy">
+              <span>{{ form.updateBy }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="处理时间:" prop="updateTime">
+              <span>{{ form.updateTime }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="处理内容:" prop="checkContent">
+              <span>{{ form.checkContent }}</span>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="误报:" prop="isAlarm">
+              <span>{{ form.isAlarm }}</span>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+    </el-dialog>
     <!-- 修改、新增对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
+    <!-- <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="auto" >
         <el-row :gutter="20">
           <el-col :span="12">
@@ -122,26 +289,37 @@
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
-    </el-dialog>
+    </el-dialog> -->
     <pagination
-      v-show="total>0"
+      v-show="total > 0"
       :total="total"
       :page.sync="queryParams.current"
       :limit.sync="queryParams.size"
       @pagination="getList"
     />
     <!-- 导出-->
-    <a href="" download="" id="xz" style="position: absolute;z-index: -1;opacity: 0;"></a>
+    <a
+      href=""
+      download=""
+      id="xz"
+      style="position: absolute; z-index: -1; opacity: 0"
+    ></a>
   </div>
 </template>
 <script>
-import { addEventManage, updateEventManage, getEventManage, exportEventManage, collectEventManage } from "@/api/business/OM/eventCenter";
+import {
+  addEventManage,
+  updateEventManage,
+  getEventManage,
+  exportEventManage,
+  collectEventManage,
+} from "@/api/business/OM/eventCenter";
 import { BASEPATH } from "@/assets/js/common.js";
 export default {
   name: "EventManage",
   data() {
     return {
-      exportLoading:false,
+      exportLoading: false,
       // 显示搜索条件
       showSearch: true,
       // 总条数
@@ -165,22 +343,22 @@ export default {
       // 表单校验
       rules: {},
       //综合数据
-      collectList:[],
-      loading2:true,
+      collectList: [],
+      loading2: true,
       //单位列表 =>表单
-      companyList:[],
+      companyList: [],
     };
   },
   created() {
-    this.getList();//初始化table
-    this.getCollect();//初始化table
+    this.getList(); //初始化table
+    this.getCollect(); //初始化table
     // this.company();//初始化单位选项
     // this.facilityType();//初始化类别选项
   },
   methods: {
     //强制el-input刷新
-    onInput(){
-        this.$forceUpdate();
+    onInput() {
+      this.$forceUpdate();
     },
     // 取消按钮
     cancel() {
@@ -191,10 +369,10 @@ export default {
     resetQuery() {
       this.dateRange = [];
       this.queryParams = {
-        name:undefined,
-        current:1,
-        size:10,
-      }
+        name: undefined,
+        current: 1,
+        size: 10,
+      };
       this.resetForm("queryForm");
       this.handleQuery();
     },
@@ -211,26 +389,26 @@ export default {
     /** 查询参数列表 */
     getList() {
       this.loading = true;
-      let data = this.addDateRange(this.queryParams,this.dateRange)
-      if(JSON.stringify(data.params) == "{}"){
-        delete data.params
-      }else{
-        data.endTime = data.params.endTime
-        data.startTime = data.params.beginTime
+      let data = this.addDateRange(this.queryParams, this.dateRange);
+      if (JSON.stringify(data.params) == "{}") {
+        delete data.params;
+      } else {
+        data.endTime = data.params.endTime;
+        data.startTime = data.params.beginTime;
       }
-      getEventManage(data).then(response => {
+      getEventManage(data).then((response) => {
         this.adminList = response.data.records;
         this.total = response.data.total;
         this.loading = false;
       });
     },
     /** 综合列表列表 */
-    getCollect(){
-      collectEventManage().then(response => {
-        this.collectList = response.data
+    getCollect() {
+      collectEventManage().then((response) => {
+        this.collectList = response.data;
         setTimeout(() => {
-          this.loading2 = false
-        },500);
+          this.loading2 = false;
+        }, 500);
       });
     },
 
@@ -238,7 +416,7 @@ export default {
     handleUpdate(row) {
       this.reset();
       this.title = "处置";
-      this.form = JSON.parse(JSON.stringify(row))
+      this.form = JSON.parse(JSON.stringify(row));
       this.open = true;
     },
     /** 新增按钮操作 */
@@ -249,10 +427,10 @@ export default {
     },
     /** 提交按钮 */
     submitForm(row) {
-      this.$refs["form"].validate(valid => {
+      this.$refs["form"].validate((valid) => {
         if (valid) {
-          this.loading = true
-          this.form.clzt = 1
+          this.loading = true;
+          this.form.clzt = 1;
           // this.form.addr1 = this.form.data2.value
           // this.form.addr2 = this.form.data3.value
           // this.form.addr3 = this.form.data4.value
@@ -260,23 +438,25 @@ export default {
           // this.form.data3 = this.form.data3.label
           // this.form.data4 = this.form.data4.label
           if (this.form.id != undefined) {
-            updateEventManage(this.form).then(response => {
-              this.loading = false,
-              this.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            }).catch(()=>{
-              this.loading = false
-            })
+            updateEventManage(this.form)
+              .then((response) => {
+                (this.loading = false), this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              })
+              .catch(() => {
+                this.loading = false;
+              });
           } else {
-            addEventManage(this.form).then(response => {
-              this.loading = false,
-              this.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            }).catch(()=>{
-              this.loading = false
-            })
+            addEventManage(this.form)
+              .then((response) => {
+                (this.loading = false), this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              })
+              .catch(() => {
+                this.loading = false;
+              });
           }
         }
       });
@@ -284,48 +464,80 @@ export default {
     /** 删除按钮操作 */
     handleDelete(row) {
       const ids = row.id || this.ids;
-      this.$confirm('是否确认删除', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
+      this.$confirm("是否确认删除", "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(function () {
           return delTbAlarm(ids);
-        }).then(() => {
+        })
+        .then(() => {
           this.getList();
           this.msgSuccess("删除成功");
-        }).catch(() => {});
+        })
+        .catch(() => {});
     },
 
-
     /** 导出按钮操作 */
     handleExport() {
-      let queryParams = {...this.queryParams};
-      delete queryParams.current
-      delete queryParams.size
+      let queryParams = { ...this.queryParams };
+      delete queryParams.current;
+      delete queryParams.size;
       this.exportLoading = true;
-      exportEventManage(queryParams).then(response =>{
+      exportEventManage(queryParams).then((response) => {
         this.exportLoading = false;
-        document.getElementById("xz").href = BASEPATH() + response.data
-        document.getElementById("xz").download = response.data
-        document.getElementById("xz").click()
-      })
+        document.getElementById("xz").href = BASEPATH() + response.data;
+        document.getElementById("xz").download = response.data;
+        document.getElementById("xz").click();
+      });
     },
 
     /** 公司下拉列表 */
-    company(){
-      listChannel(this.queryParams).then(response => {
-        if(response.data.records.length>0){
-          this.companyList = response.data.records.map(val =>{
+    company() {
+      listChannel(this.queryParams).then((response) => {
+        if (response.data.records.length > 0) {
+          this.companyList = response.data.records.map((val) => {
             return {
-              id:val.ownerId,
-              name:val.ownerName,
-              address:val.ownerAddress,
-            }
-          })
+              id: val.ownerId,
+              name: val.ownerName,
+              address: val.ownerAddress,
+            };
+          });
         }
       });
     },
-  }
+    //查看详情
+    getOne(row) {
+      this.title = "详情信息";
+      this.form = JSON.parse(JSON.stringify(row));
+
+      if (row.isAlarm === true) {
+        this.form.isAlarm = "是";
+      } else {
+        this.form.isAlarm = "否";
+      }
+      if (row.alarmStatus == "0") {
+        this.form.alarmStatus = "未处理";
+      } else {
+        this.form.alarmStatus = "已处理";
+      }
+      this.open = true;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+    },
+    /** 跳转至工单 */
+    jump(row) {
+      this.$router.push({
+        path: "/OM/business/OM/workMange",
+        query: {
+          id: row.id,
+          type: 1,
+        },
+      });
+    },
+  },
 };
 </script>
-

+ 123 - 10
src/views/business/OM/eventCenter/hiddenDanger/index.vue

@@ -59,8 +59,7 @@
       <el-table-column label="id" align="center" prop="id" />
       <el-table-column label="单位名称" align="center" prop="companyName" show-overflow-tooltip />
       <el-table-column label="设备名称" align="center" prop="deviceName" show-overflow-tooltip />
-      <el-table-column label="报告内容" align="center" prop="alarmContent" show-overflow-tooltip />
-      <el-table-column label="隐患类型" align="center" prop="property" show-overflow-tooltip />
+      <el-table-column label="报告数据" align="center" prop="property" show-overflow-tooltip />
       <el-table-column label="上报时间" align="center" prop="createTime" show-overflow-tooltip />
       <!-- <el-table-column label="是否误报" align="center" prop="isAlarm" >
         <template slot-scope="scope">
@@ -78,17 +77,36 @@
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
         <template slot-scope="scope">
           <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['system:admin:edit']"
-          >处置</el-button>
+                  size="mini"
+                  type="text"
+                  icon="el-icon-view"
+                  @click="getOne(scope.row)"
+                  >查看详情</el-button
+                >
+                <el-button
+                  v-if="scope.row.alarmStatus == '0'"
+                  size="mini"
+                  type="text"
+                  icon="el-icon-s-promotion"
+                  @click="jump(scope.row)"
+                  v-hasPermi="['system:admin:edit']"
+                  >跳转至工单</el-button
+                >
+                <el-button
+                  v-if="scope.row.alarmStatus == '1'"
+                  size="mini"
+                  type="text"
+                  icon="el-icon-s-promotion"
+                  @click="jump(scope.row)"
+                  disabled
+                  v-hasPermi="['system:admin:edit']"
+                  >跳转至工单</el-button
+                >
         </template>
       </el-table-column>
     </el-table>
     <!-- 修改对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
+    <!-- <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="auto" >
         <el-row :gutter="20">
           <el-col :span="12">
@@ -133,7 +151,71 @@
         <el-button type="primary" @click="submitForm">确 定</el-button>
         <el-button @click="cancel">取 消</el-button>
       </div>
-    </el-dialog>
+    </el-dialog> -->
+    <!-- 详情对话框 -->
+      <el-dialog
+        :title="title"
+        :visible.sync="open"
+        width="600px"
+        append-to-body
+        :before-close="cancel"
+        :close-on-click-modal="false"
+      >
+        <el-form ref="form" :model="form" label-width="auto">
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="工单序号:" prop="id">
+                <span>{{form.id}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="单位名称:" prop="companyName">
+                <span>{{form.companyName}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告时间:" prop="alarmTime">
+                <span>{{form.alarmTime}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告数据:" prop="property">
+                <span>{{form.property}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告内容:" prop="deviceName">
+                <span>{{form.deviceName}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理状态:" prop="alarmStatus">
+                <span>{{form.alarmStatus}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理人:" prop="updateBy">
+                <span>{{form.updateBy}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理时间:" prop="updateTime">
+                <span>{{form.updateTime}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理内容:" prop="checkContent">
+                <span>{{form.checkContent}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="误报:" prop="isAlarm">
+                <span>{{form.isAlarm}}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </el-dialog>
     <pagination
       v-show="total>0"
       :total="total"
@@ -327,6 +409,37 @@ export default {
         document.getElementById("xz").click()
       })
     },
+    //查看详情
+    getOne(row) {
+      this.title = "详情信息";
+      this.form = JSON.parse(JSON.stringify(row));
+
+      if (row.isAlarm === true) {
+        this.form.isAlarm = '是';
+      } else {
+        this.form.isAlarm = '否';
+      }
+      if (row.alarmStatus  == '0') {
+        this.form.alarmStatus  = '未处理';
+      } else {
+        this.form.alarmStatus  = '已处理';
+      }
+      this.open = true;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+    },
+    /** 跳转至工单 */
+    jump(row) {
+      this.$router.push({
+        path: "/OM/business/OM/workMange",
+        query: {
+          id: row.id,
+          type: 1,
+        },
+      });
+    },
   }
 };
 </script>

+ 161 - 43
src/views/business/OM/workMange/index.vue

@@ -15,9 +15,9 @@
       </el-form-item>
       <el-form-item label="处理状态:">
         <el-select v-model.trim="queryParams.status"  size="small" style="width:160px" placeholder="请选择处理状态">
-          <el-option value="1" label="未处理"></el-option>
-          <el-option value="2" label="已处理:通过"></el-option>
-          <el-option value="3" label="已处理:未通过"></el-option>
+          <el-option value="0" label="未处理"></el-option>
+          <el-option value="1" label="已处理:通过"></el-option>
+          <el-option value="2" label="已处理:未通过"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item label="执行班组">
@@ -80,20 +80,36 @@
         </el-col>
       </el-col>
     </el-row>
-    <el-table v-loading="loading" :data="adminList" style="margin-top:20px;" height="calc(100vh - 34vh)">
+    <el-table v-loading="loading" :data="adminList" style="margin-top:20px;" height="calc(100vh - 34vh)" >
       <el-table-column label="id" align="center" prop="id"  show-overflow-tooltip />
       <el-table-column label="单位名称" align="center" prop="companyName" show-overflow-tooltip />
-      <el-table-column label="工单名称" align="center" prop="workOrderName" show-overflow-tooltip />
-      <el-table-column label="工单内容" align="center" prop="workOrderContent" show-overflow-tooltip />
-      <el-table-column label="工单类型" align="center" prop="workOrderType" show-overflow-tooltip>
+      <el-table-column label="工单名称" align="center" prop="workOrderName" show-overflow-tooltip v-if="formData.type =='1'">
+        消防隐患
+      </el-table-column>
+      <el-table-column label="工单名称" align="center" prop="workOrderName" show-overflow-tooltip v-if="formData.type !='1' || !formData.type"/>
+      <el-table-column label="工单内容" align="center" prop="deviceName" show-overflow-tooltip v-if="formData.type =='1'" />
+      <el-table-column label="工单内容" align="center" prop="workOrderName" show-overflow-tooltip v-if="formData.type !='1' || !formData.type"/>
+      <el-table-column label="工单类型" align="center" prop="workOrderName" show-overflow-tooltip v-if="formData.type =='1'">
+        <template>
+          <span class="color3">消防告警</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="工单类型" align="center" prop="workOrderName" show-overflow-tooltip v-if="formData.type !='1' || !formData.type">
         <template slot-scope="scope">
-          <span :class="scope.row.workOrderType == 1 ? 'color3' : scope.row.workOrderType == 2 ? 'color4' : 'color2'">{{scope.row.workOrderType == 1 ? "告警" : scope.row.clzt == 2 ? "故障" : "其它"}}</span>
+          <span :class="scope.row.workOrderType == 1 ? 'color3' : scope.row.workOrderType == 2 ? 'color4' : 'color2'">{{scope.row.workOrderType == 1 ? "消防告警" : scope.row.clzt == 2 ? "巡检计划" : "ba厕位故障"}}</span>
         </template>
       </el-table-column>
-      <el-table-column label="上报时间" align="center" prop="addTime" show-overflow-tooltip />
-      <el-table-column label="处理状态" align="center" prop="clzt" >
+
+      <el-table-column label="上报时间" align="center" prop="alarmTime" show-overflow-tooltip v-if="formData.type =='1'"/>
+      <el-table-column label="上报时间" align="center" prop="addTime" show-overflow-tooltip v-if="formData.type !='1' || !formData.type"/>
+      <el-table-column label="处理状态" align="center" prop="" v-if="formData.type =='1'">
+        <template>
+          <span class="color3">未处理</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="处理状态" align="center" prop="clzt" v-if="formData.type !='1' || !formData.type">
         <template slot-scope="scope">
-          <span :class="scope.row.clzt == 1 ? 'color3' : scope.row.clzt == 2 ? 'color4' : 'color2'">{{scope.row.clzt == 1 ? "未处理" : scope.row.clzt == 2 ? "已处理:通过" : "已处理:未通过"}}</span>
+          <span :class="scope.row.clzt == 0 ? 'color3' : scope.row.clzt == 1 ? 'color4' : 'color2'">{{scope.row.clzt == 0 ? "未处理" : scope.row.clzt == 1 ? "已处理:通过" : "已处理:未通过"}}</span>
         </template>
       </el-table-column>
       <el-table-column label="执行班组" align="center" prop="teamName" show-overflow-tooltip />
@@ -102,13 +118,23 @@
       <el-table-column label="处理时间" align="center" prop="czTime" show-overflow-tooltip />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
         <template slot-scope="scope">
-          <el-button
+          <el-button v-if="scope.row.clzt == '0'"
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:admin:edit']"
+          >处置</el-button>
+          <el-button v-if="scope.row.clzt != '0' "
             size="mini"
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
             v-hasPermi="['system:admin:edit']"
+            disabled
           >处置</el-button>
+
+
           <!-- <el-button
             size="mini"
             type="text"
@@ -189,11 +215,17 @@
               <el-input v-model="form.workOrderName" :disabled="true" />
             </el-form-item>
           </el-col>
-           <el-col :span="12">
-            <el-form-item label="上报时间" prop="addTime">
+          <el-col :span="12" v-if="formData.type !='1'">
+            <el-form-item label="上报时间" prop="addTime" >
               <el-input v-model="form.addTime" :disabled="true" />
             </el-form-item>
           </el-col>
+           <el-col :span="12" v-if="formData.type =='1'">
+            <el-form-item label="上报时间" prop="alarmTime">
+              <el-input v-model="form.alarmTime" :disabled="true" />
+            </el-form-item>
+          </el-col>
+
           <el-col :span="12">
             <el-form-item label="执行班组" prop="teamId">
               <el-select
@@ -211,22 +243,39 @@
               </el-select>
             </el-form-item>
           </el-col>
-
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="18" >
+          <el-col :span="12" >
             <el-form-item label="处置内容" prop="clnr">
               <el-input  type="textarea" maxlength="50" show-word-limit :rows="5" v-model="form.clnr" placeholder="请填写处理内容" @input="onInput()"/>
             </el-form-item>
           </el-col>
-        </el-row>
-        <el-row :gutter="20">
-          <el-col :span="24">
-            <el-form-item label="审批" prop="isAlarm">
-              <el-radio v-model="form.clzt" :label="2">已处理:通过</el-radio>
-              <el-radio v-model="form.clzt" :label="3">已处理:未通过</el-radio>
+          <el-col :span="12" v-if="formData.type =='1'">
+            <el-form-item label="误报" prop="isAlarm">
+              <el-radio v-model="form.isAlarm" :label="false">否</el-radio>
+              <el-radio v-model="form.isAlarm" :label="true">是</el-radio>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12" v-if="formData.type =='1'">
+            <el-form-item label="批量处理" >
+              <el-radio v-model="piliang" :label="false">否</el-radio>
+              <el-radio v-model="piliang" :label="true">是</el-radio>
             </el-form-item>
           </el-col>
+          <!-- <el-col :span="24">
+            <el-form-item label="审批" prop="clzt">
+              <el-select
+                v-model="form.clzt"
+                placeholder="请选择审批状态"
+                size="small"
+              >
+              <el-option
+                  v-for="dict in clztList"
+                  :key="dict.id"
+                  :label="dict.name"
+                  :value="dict.id"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col> -->
         </el-row>
 
       </el-form>
@@ -247,7 +296,8 @@
   </div>
 </template>
 <script>
-import { addWorkOrder, delWorkOrder, updateWorkOrder, getWorkOrder, exportWorkOrder, collectWorkOrder, workOrderOne } from "@/api/business/OM/workMange";
+import { addWorkOrder, delWorkOrder, updateWorkOrder, getWorkOrder, exportWorkOrder,
+ collectWorkOrder, workOrderOne, baCwInfoUpdate, maintianLogUpdate, tbAlarmId, tbAlarmDG, tbAlarmPL } from "@/api/business/OM/workMange";
 import { getDevopsTeam } from "@/api/business/OM/MochaITOM/crew";
 import { listChannel } from "@/api/system/product";
 import { BASEPATH } from "@/assets/js/common.js";
@@ -303,7 +353,7 @@ export default {
         clnr:[
           { required: true, message: "处置内容不能为空", trigger: "blur" }
         ],
-        isAlarm: [
+        clzt: [
           { required: true, message: "审批内容不能为空", trigger: ["blur",'change'] }
         ],
 
@@ -311,15 +361,24 @@ export default {
       //综合数据
       collectList:[],
       loading2:true,
+      loading:true,
       //班组
       teamList:[],
+      clztList:[
+        {id:1,name:"已处理:通过"},
+        {id:2,name:"已处理:未通过"},
+      ],
+      formData:[],
+      piliang:false,
     };
   },
   created() {
     this.init()//初始化
     if(JSON.stringify(this.$route.query) !="{}"){ //跳转至工单查询
+      this.formData = this.$route.query
       this.workOrderOne(this.$route.query.id,this.$route.query.type)
     }else{
+      this.formData = {}
       this.getList();//初始化table
     }
     // this.company();//初始化单位选项
@@ -386,14 +445,25 @@ export default {
     /** 工单详情查询 */
     workOrderOne(id,type){
       this.getDevopsTeam()
-      workOrderOne({"businessId":id,"type":type}).then(res=>{
-        // handleUpdate(row)
-        this.adminList.push(res.data);
-        this.loading = false;
-      })
+      // if(this.formData.type == "1"){
+        // tbAlarmId(id).then(res=>{
+        //   this.handleUpdate(res.data)
+        //   this.adminList.push(res.data);
+        //   this.adminList[0].clzt = 0
+        //   this.loading = false;
+        // })
+      // }else{
+        workOrderOne({"businessId":id,"type":type}).then(res=>{
+          this.handleUpdate(res.data)
+          this.adminList.push(res.data);
+          this.loading = false;
+        })
+      // }
+
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
+      console.log(row)
       this.reset();
       if(row.isAlarm === true){
         row.isAlarm = true
@@ -402,7 +472,21 @@ export default {
       }
       this.title = "处置";
       this.form = JSON.parse(JSON.stringify(row))
-      this.open2 = true;
+      this.form.clzt = 1
+      if(this.formData.type == "1"){
+        console.log(1)
+        this.form.workOrderName = "消防隐患"
+        this.open2 = true;
+      }else if(this.form.workOrderType == "1"){
+        console.log(2)
+        this.formData.type == "1"
+        this.workOrderOne(row.id,1)
+        this.open2 = true;
+      }else{
+        console.log(3)
+      }
+
+
     },
     /** 新增按钮操作 */
     handleAdd() {
@@ -416,15 +500,51 @@ export default {
         if (valid) {
           this.loading = true
           if (this.form.id != undefined) {
-            updateWorkOrder(this.form).then(response => {
-              this.loading = false,
-              this.msgSuccess("修改成功");
-              this.open2 = false;
-              this.getList();
-            }).catch(()=>{
-              this.loading = false,
-              this.open2 = false;
-            })
+            if(this.formData.type == "1"){
+              this.form.alarmStatus = 1
+              this.form.checkContent = this.form.clnr
+              if(this.piliang === true){
+                tbAlarmPL(this.form).then(response => {
+                  this.loading = false,
+                  this.open2 = false;
+                  this.getList();
+                })
+              }else{
+                tbAlarmDG(this.form).then(response => {
+                  this.loading = false,
+                  this.open2 = false;
+                  this.getList();
+                })
+              }
+
+
+            }else{
+              updateWorkOrder(this.form).then(response => {
+                this.loading = false,
+                this.msgSuccess("修改成功");
+                this.open2 = false;
+                if(this.formData.type){
+                  let type = this.formData.type
+
+                  if(type=="2"){
+                    maintianLogUpdate(this.form).then(response => {
+
+                    })
+                  }
+                  if(type=="3"){
+                    baCwInfoUpdate(this.form).then(response => {
+
+                    })
+                  }
+                }
+                this.getList();
+              }).catch(()=>{
+                this.loading = false,
+                this.open2 = false;
+              })
+            }
+
+
           }else{
             this.form.clzt = 1
             addWorkOrder(this.form).then(response => {
@@ -454,8 +574,6 @@ export default {
           this.msgSuccess("删除成功");
         }).catch(() => {});
     },
-
-
     /** 导出按钮操作 */
     handleExport() {
       let queryParams = {...this.queryParams};

+ 42 - 15
src/views/business/ba/lateralPosition/index.vue

@@ -1,15 +1,24 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px">
-      <!-- <el-form-item label="安装位置:" prop="name">
-        <el-input
-          v-model.trim="queryParams.name"
-          placeholder="请输入安装位置"
-          clearable
-          size="small"
-          style="width: 160px"
-          @keyup.enter.native="handleQuery"
-        />
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px" >
+
+      <el-form-item label="厕位类型:">
+        <el-select v-model.trim="queryParams.type"  size="small" style="width:160px" placeholder="请选择类型">
+          <el-option value="female" label="女厕"></el-option>
+          <el-option value="male" label="男厕"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="使用状态:">
+        <el-select v-model.trim="queryParams.status"  size="small" style="width:160px" placeholder="请选择使用状态">
+          <el-option value="0" label="空闲"></el-option>
+          <el-option value="1" label="在用"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="故障状态:">
+        <el-select v-model.trim="queryParams.isAlert"  size="small" style="width:160px" placeholder="请选择故障状态">
+          <el-option value="false" label="正常"></el-option>
+          <el-option value="true" label="故障"></el-option>
+        </el-select>
       </el-form-item>
       <el-form-item label="设备名称:" prop="name">
         <el-input
@@ -20,7 +29,7 @@
           style="width: 160px"
           @keyup.enter.native="handleQuery"
         />
-      </el-form-item> -->
+      </el-form-item>
        <el-form-item label="采集时间:" class="time">
          <el-date-picker
           style="margin-top:5px;;width:340px"
@@ -49,20 +58,38 @@
     </el-form>
     <el-table v-loading="loading" :data="adminList" height="calc(100vh - 28vh)">
       <el-table-column label="序号" align="center" prop="id"  show-overflow-tooltip />
-      <el-table-column label="设备名称" align="center" prop="deviceName"  show-overflow-tooltip />
       <el-table-column label="采集时间" align="center" prop="createTime"  show-overflow-tooltip />
-      <el-table-column label="厕位状态" align="center" prop="status"  show-overflow-tooltip >
+      <el-table-column label="设备名称" align="center" prop="deviceName"  show-overflow-tooltip />
+      <el-table-column label="厕位类型" align="center" prop="wcType"  show-overflow-tooltip >
+        <template slot-scope="scope">
+          {{scope.row.wcType == 'female' ? '女厕' : "男厕"}}
+        </template>
+      </el-table-column>
+      <el-table-column label="使用状态" align="center" prop="status"  show-overflow-tooltip >
         <template slot-scope="scope">
           <span :class="scope.row.status == 0 ? 'color3' : 'color4'">{{scope.row.status == 0 ? "空闲" : "在用"}}</span>
         </template>
       </el-table-column>
+      <el-table-column label="故障状态" align="center" prop="isAlert"  show-overflow-tooltip >
+        <template slot-scope="scope">
+          <span :class="scope.row.isAlert === true ? 'color3' : 'color4'">{{scope.row.isAlert === true ? "故障" : "正常"}}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
         <template slot-scope="scope">
-          <el-button
+          <el-button v-if="scope.row.isAlert === true"
+            size="mini"
+            type="text"
+            icon="el-icon-s-promotion"
+            @click="jump(scope.row)"
+            v-hasPermi="['system:admin:edit']"
+          >跳转至工单</el-button>
+           <el-button v-if="scope.row.isAlert === false"
             size="mini"
             type="text"
             icon="el-icon-s-promotion"
             @click="jump(scope.row)"
+            disabled
             v-hasPermi="['system:admin:edit']"
           >跳转至工单</el-button>
         </template>
@@ -172,7 +199,7 @@ export default {
       this.$router.push({
         path: '/OM/business/OM/workMange',
         query: {
-          id: row.id,
+          id: row.deviceName,
           type:3
         }
       })

+ 1 - 1
src/views/business/buildMange/floor/index.vue

@@ -126,7 +126,7 @@ export default {
       form: {},
       // 表单校验
       rules: {
-        buildName: [
+        buildId: [
           { required: true, message: "建筑名称不能为空",  trigger: ["blur",'change']  }
         ],
         floorName: [

+ 34 - 10
src/views/business/deviceMange/deviceApi/index.vue

@@ -55,7 +55,14 @@
       <el-table-column label="接口说明" align="center" prop="interfaceExplain"  show-overflow-tooltip />
       <el-table-column label="接口文档" align="center" prop="interfaceFileRoute"  show-overflow-tooltip >
         <template slot-scope="scope">
-          <span style="color:#1890ff" v-if="scope.row.interfaceFileRoute"  @click="FileDownload(`https://smartpark.caih.com/dmapi/archive/${scope.row.interfaceFileRoute}`)">下载</span>
+          <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          :loading="scope.row.loading"
+          @click="FileDownload(scope.row)"
+        >下载</el-button>
         </template>
       </el-table-column>
       <el-table-column label="厂家(商家)" align="center" prop="business"  show-overflow-tooltip />
@@ -141,7 +148,9 @@
                   action="#"
                   :limit = 1
                   :on-change="handleChange"
+                  :on-success="successUpload"
                   :file-list="fileList"
+
                   >
                   <el-button size="small" type="primary">点击上传</el-button>
                 </el-upload>
@@ -301,17 +310,16 @@ export default {
     },
     /** 查询参数列表 */
     getList() {
-      // let data = this.addDateRange(this.queryParams,this.dateRange)
-      // if(JSON.stringify(data.params) == "{}"){
-      //   delete data.params
-      // }else{
-      //   data.endTime = data.params.endTime
-      //   data.startTime = data.params.beginTime
-      // }
       getCommunicationApi(this.queryParams).then(response => {
         this.adminList = response.data.records;
+        this.adminList.map(item => {
+            //添加属性,设置默认值
+            this.$set(item, 'loading', false)
+            return item
+        })
         this.total = response.data.total;
         this.loading = false;
+
       });
     },
     /** 修改按钮操作 */
@@ -327,6 +335,14 @@ export default {
       this.open = true;
       this.title = "新增";
     },
+    successUpload(response, file, fileList) {
+    // 上传也是一个一个文件上传,每次上传成功就会执行该函数
+    // 通过对fileList进行过滤,根据文件名称删除fileList中当前已成功上传的文件
+      fileList = fileList.filter((element) => {
+        return element.name !== file.name
+      })
+      this.fileList = fileList
+    },
     /** 提交按钮 */
     submitForm(row) {
       this.$refs["form"].validate(valid => {
@@ -396,6 +412,7 @@ export default {
         }
       });
     },
+    //上传文件
     handleChange(param){
       this.num++
       if(this.num>1){
@@ -408,17 +425,24 @@ export default {
         fileUpload(formData).then(response => {
           this.msgSuccess("上传成功");
           this.form.interfaceFileRoute = response.data
+
+          //this.$refs.form.clearFiles(); //上传成功之后清除历史记录(关键代码)
+          //this.$refs.form.validateField('interfaceFileRoute');//对部分表单字段进行校验的方法,也就是手动进行表单验证(关键代码)
+          this.$refs.form.clearValidate('interfaceFileRoute')
         });
       }
     },
+
     /** 文件下载 */
-    FileDownload(url){
+    FileDownload(row){
+      row.loading = true;
       let link = document.createElement('a')
-      fetch(url).then(res => res.blob()).then(blob => { // 将链接地址字符内容转变成blob地址
+      fetch(`https://smartpark.caih.com/dmapi/archive/${row.interfaceFileRoute}`).then(res => res.blob()).then(blob => { // 将链接地址字符内容转变成blob地址
           link.href = URL.createObjectURL(blob)
           link.download = ''
           document.body.appendChild(link)
           link.click()
+          row.loading = false;
       })
     }
   }

+ 19 - 23
src/views/business/deviceMange/deviceList/index.vue

@@ -11,18 +11,6 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <!-- <el-form-item label="时间:">
-         <el-date-picker
-          style="margin-top:5px;"
-          v-model="dateRange"
-          size="small"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          type="datetimerange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </el-form-item> -->
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -88,19 +76,19 @@
     <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="auto" >
         <el-row :gutter="20">
-          <!-- <el-col :span="12" >
+          <el-col :span="12"  v-if="status">
             <el-form-item label="设备编号" prop="ownerCode" >
-              <el-input v-model="form.ownerCode" placeholder="请填写设备编号称" @input="onInput()" :disabled="true" />
+              <el-input v-model="form.ownerCode" placeholder="请填写设备编号称" @input="onInput()"   type="textarea" maxlength="30" />
             </el-form-item>
-          </el-col> -->
-          <el-col :span="12">
+          </el-col>
+          <el-col :span="12"  v-if="!status">
             <el-form-item label="设备编号" prop="ownerCode" >
-              <el-input v-model.trim="form.ownerCode" placeholder="请填写设备编号称" @input="onInput()"  maxlength="15" show-word-limit/>
+              <el-input v-model.trim="form.ownerCode" placeholder="请填写设备编号称" @input="onInput()"  type="textarea" maxlength="30" show-word-limit disabled/>
             </el-form-item>
           </el-col>
           <el-col :span="12" >
             <el-form-item label="设备名称" prop="ownerName">
-              <el-input v-model.trim="form.ownerName" placeholder="请填写设备名称" @input="onInput()" maxlength="15" show-word-limit/>
+              <el-input v-model.trim="form.ownerName" placeholder="请填写设备名称" @input="onInput()" type="textarea" maxlength="30" show-word-limit/>
             </el-form-item>
           </el-col>
         </el-row>
@@ -321,7 +309,8 @@ export default {
         // {id:128,name:"井盖",},
       ],
       companyList:[],
-      buildList :[]
+      buildList :[],
+      status:undefined//控制编辑或新增显示内容
     };
   },
   created() {
@@ -353,6 +342,7 @@ export default {
     reset() {
       this.form = {};
       this.resetForm("form");
+      this.status = undefined
     },
     /** 搜索按钮操作 */
     handleQuery() {
@@ -370,6 +360,9 @@ export default {
       }
       getDevice(data).then(response => {
         this.adminList = response.data.records;
+        for(let i = 0;i<this.adminList.length;i++){
+          this.adminList[i].dwtype = String(this.adminList[i].dwtype)
+        }
         this.total = response.data.total;
         this.loading = false;
       });
@@ -379,11 +372,13 @@ export default {
       this.reset();
       this.title = "修改";
       this.form = JSON.parse(JSON.stringify(row))
+      this.status = false
       this.open = true;
     },
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
+      this.status = true
       this.open = true;
       this.title = "新增";
     },
@@ -494,18 +489,19 @@ export default {
       getBuilding(this.queryParams).then(response => {
         this.buildList = (response.data).records.map(val =>{
           return {
-            id:val.id,
+            id:String(val.id),
             name:val.buildName
           }
         })
       });
       getDeviceType({current:1,size:100}).then(response =>{
-        this.dwtypeList = response.data.records.map(val=>{
+        this.dwtypeList = (response.data).records.map(val =>{
           return {
-            id:val.id,
+            id:val.typeValue,
             name:val.typeName
           }
-        });
+        })
+
       })
     }
   }

+ 25 - 46
src/views/business/deviceMange/devicePassageWay/index.vue

@@ -20,14 +20,6 @@
             :value="item.id"
           ></el-option>
         </el-select>
-        <!-- <el-select v-model="queryParams.dwtype"   placeholder="请选择设备类型">
-          <el-option
-            v-for="item in dwtypeList"
-            :key="item.id"
-            :label="item.name"
-            :value="item.id"
-          ></el-option>
-        </el-select> -->
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -55,7 +47,9 @@
       <el-table-column label="通道名称" align="center" prop="passagewayName"  show-overflow-tooltip />
       <el-table-column label="设备类型" align="center" prop="dwtype"  show-overflow-tooltip >
         <template slot-scope="scope">
-          <span>{{scope.row.dwtype=="2"?"喷淋水压" : scope.row.dwtype=="5"?"消防水箱液位" : scope.row.dwtype=="6" ? "RTU": scope.row.dwtype=="16" ? "消防视频监控": "" }}</span>
+          <span>{{ scope.row.dwtype=="1" ? "用户传输装置": scope.row.dwtype=="2"?"喷淋水压" : scope.row.dwtype=="3" ? "独立烟感" :
+            scope.row.dwtype=="4" ? "消火栓压力":   scope.row.dwtype=="7" ? "电器火灾监控":  scope.row.dwtype=="5" ?
+            "消防水箱液位" : scope.row.dwtype=="6" ? "RTU": scope.row.dwtype=="16" ? "消防视频监控": ""}}</span>
         </template>
       </el-table-column>
       <el-table-column label="通道类型" align="center" prop="passagewayType"  show-overflow-tooltip >
@@ -120,38 +114,25 @@
           </el-col>
         </el-row>
         <el-row :gutter="20">
-          <!-- <el-col :span="12">
-            <el-form-item label="设备编号" prop="deviceCode">
-              <el-input v-model.trim="form.deviceCode" placeholder="请填写设备编号" @input="onInput()" maxlength="15" show-word-limit/>
-            </el-form-item>
-          </el-col> -->
           <el-col :span="12">
             <el-form-item label="通道类型" prop="passagewayType">
-              <!-- <el-select v-model="form.interfaceRoute"  placeholder="请选择通道类型">
-                <el-option
-                  v-for="item in passagewayTypeList"
-                  :key="item.id"
-                  :label="item.name"
-                  :value="item.id"
-                ></el-option>
-              </el-select> -->
-              <el-select v-model="passagewayType"  placeholder="请选择系统类型" @change="selectPassagewayType">
-                  <el-option v-if="form.dwtype == 1" value="1" label="待定" />
-                  <el-option v-if="form.dwtype == 2" value="1" label="设备状态" />
-                  <el-option v-if="form.dwtype == 2" value="2" label="剩余电量" />
-                  <el-option v-if="form.dwtype == 2" value="3" label="无线信号" />
-                  <el-option v-if="form.dwtype == 2" value="4" label="压力值" />
+              <el-select v-model="form.passagewayType"  placeholder="请选择系统类型" @change="selectPassagewayType">
+                  <el-option v-if="form.dwtype == '1'" value="1" label="待定" />
+                  <el-option v-if="form.dwtype == '2'" value="1" label="设备状态" />
+                  <el-option v-if="form.dwtype == '2'" value="2" label="剩余电量" />
+                  <el-option v-if="form.dwtype == '2'" value="3" label="无线信号" />
+                  <el-option v-if="form.dwtype == '2'" value="4" label="压力值" />
 
-                  <el-option v-if="form.dwtype == 5" value="1" label="设备状态" />
-                  <el-option v-if="form.dwtype == 5" value="2" label="剩余电量" />
-                  <el-option v-if="form.dwtype == 5" value="3" label="无线信号" />
-                  <el-option v-if="form.dwtype == 5" value="4" label="液位值" />
+                  <el-option v-if="form.dwtype == '5'" value="1" label="设备状态" />
+                  <el-option v-if="form.dwtype == '5'" value="2" label="剩余电量" />
+                  <el-option v-if="form.dwtype == '5'" value="3" label="无线信号" />
+                  <el-option v-if="form.dwtype == '5'" value="4" label="液位值" />
 
-                  <el-option v-if="form.dwtype == 6" value="1" label="1~16待定" />
-                  <el-option v-if="form.dwtype == 6" value="2" label="65~72待定" />
+                  <el-option v-if="form.dwtype == '6'" value="1" label="1~16待定" />
+                  <el-option v-if="form.dwtype == '6'" value="2" label="65~72待定" />
 
-                  <el-option v-if="form.dwtype == 16" value="1" label="占到检测告警" />
-                  <el-option v-if="form.dwtype == 16" value="2" label="火点检测告警" />
+                  <el-option v-if="form.dwtype == '16'" value="1" label="占到检测告警" />
+                  <el-option v-if="form.dwtype == '16'" value="2" label="火点检测告警" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -226,7 +207,7 @@ export default {
         // deviceCode: [
         //   { required: true, message: "设备编号不能为空", trigger: "blur" }
         // ],
-        interfaceRoute: [
+        dwtype: [
           { required: true, message: "通道类型不能为空", trigger: ["blur",'change'] }
         ],
         passagewayType: [
@@ -313,15 +294,12 @@ export default {
     },
     /** 查询参数列表 */
     getList() {
-      // let data = this.addDateRange(this.queryParams,this.dateRange)
-      // if(JSON.stringify(data.params) == "{}"){
-      //   delete data.params
-      // }else{
-      //   data.endTime = data.params.endTime
-      //   data.startTime = data.params.beginTime
-      // }
       getDeviceChannel(this.queryParams).then(response => {
         this.adminList = response.data.records;
+        for(let i = 0;i<this.adminList.length;i++){
+          this.adminList[i].dwtype = String(this.adminList[i].dwtype)
+          this.adminList[i].passagewayType = String(this.adminList[i].passagewayType)
+        }
         this.total = response.data.total;
         this.loading = false;
       });
@@ -336,6 +314,7 @@ export default {
     /** 新增按钮操作 */
     handleAdd() {
       this.reset();
+      this.form = {}
       this.open = true;
       this.title = "新增";
     },
@@ -411,7 +390,7 @@ export default {
       getDeviceType({current:1,size:100}).then(response =>{
         this.dwtypeList = response.data.records.map(val=>{
           return {
-            id:Number(val.typeValue),
+            id:val.typeValue,
             name:val.typeName
           }
         });
@@ -422,7 +401,7 @@ export default {
       this.form.passagewayType = undefined
     },
     selectPassagewayType(){
-      this.form.passagewayType = this.passagewayType
+      this.form.passagewayType = this.form.passagewayType
     }
   }
 };

+ 2 - 1
src/views/business/deviceMange/deviceType/index.vue

@@ -86,7 +86,7 @@
           </el-col>
           <el-col :span="12" >
             <el-form-item label="类型参数" prop="typeValue">
-              <el-input v-model.trim="form.typeValue" placeholder="请输入类型参数" maxlength="15" show-word-limit />
+              <el-input v-model.trim="form.typeValue" placeholder="请输入类型参数" maxlength="15" show-word-limit  />
             </el-form-item>
           </el-col>
         </el-row>
@@ -235,6 +235,7 @@ export default {
     },
     /** 查询参数列表 */
     getList() {
+
       this.loading = true;
       let data = this.addDateRange(this.queryParams,this.dateRange)
       if(JSON.stringify(data.params) == "{}"){

+ 107 - 4
src/views/business/fireInternet/deviceMonitoring/SSMonitoring/index.vue

@@ -114,10 +114,12 @@
                 >导出</el-button>
               </el-form>
             </div>
-            <el-table  :data="adminList" height="calc(100vh - 67vh)" :default-sort = "{prop: 'alarmTime', order: 'descending'}">
+            <el-table  :data="adminList" height="calc(100vh - 67vh)" :default-sort = "{prop: 'createTime', order: 'descending'}">
               <el-table-column label="序号" align="center" prop="id"  show-overflow-tooltip />
-              <el-table-column label="单位名称" align="center" prop="companyName" show-overflow-tooltip />
-              <el-table-column label="报告时间" align="center" prop="alarmTime" sortable  show-overflow-tooltip />
+              <el-table-column label="单位名称" align="center" prop="companyName" show-overflow-tooltip >
+                  {{companyList[0].dictLabel}}
+              </el-table-column>
+              <el-table-column label="报告时间" align="center" prop="createTime" sortable  show-overflow-tooltip />
               <el-table-column label="报告内容" align="center" prop="deviceName"  show-overflow-tooltip />
               <el-table-column label="处理状态" align="center"  show-overflow-tooltip >
                 <template slot-scope="scope">
@@ -129,12 +131,27 @@
               <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
                 <template slot-scope="scope">
                   <el-button
+                    size="mini"
+                    type="text"
+                    icon="el-icon-view"
+                    @click="getOne(scope.row)"
+                    >查看详情</el-button
+                  >
+                  <el-button v-if="scope.row.alarmStatus == '0' "
                     size="mini"
                     type="text"
                     icon="el-icon-s-promotion"
                     @click="jump(scope.row)"
                     v-hasPermi="['system:admin:edit']"
                   >跳转至工单</el-button>
+                   <el-button v-if="scope.row.alarmStatus == '1'"
+                    size="mini"
+                    type="text"
+                    icon="el-icon-s-promotion"
+                    @click="jump(scope.row)"
+                    disabled
+                    v-hasPermi="['system:admin:edit']"
+                  >跳转至工单</el-button>
                 </template>
               </el-table-column>
             </el-table>
@@ -148,6 +165,70 @@
       :limit.sync="queryParams.size"
       @pagination="getList"
     />
+    <!-- 详情对话框 -->
+      <el-dialog
+        :title="title"
+        :visible.sync="open"
+        width="600px"
+        append-to-body
+        :before-close="cancel"
+        :close-on-click-modal="false"
+      >
+        <el-form ref="form" :model="form" label-width="auto">
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="工单序号:" prop="id">
+                <span>{{form.id}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="单位名称:" prop="companyName">
+                <span>{{companyList[0].dictLabel}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告时间:" prop="createTime">
+                <span>{{form.createTime}}</span>
+              </el-form-item>
+            </el-col>
+            <!-- <el-col :span="12">
+              <el-form-item label="报告数据:" prop="property">
+                <span>{{form.property}}</span>
+              </el-form-item>
+            </el-col> -->
+            <el-col :span="12">
+              <el-form-item label="报告内容:" prop="deviceName">
+                <span>{{form.deviceName}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理状态:" prop="alarmStatus">
+                <span>{{form.alarmStatus}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理人:" prop="updateBy">
+                <span>{{form.updateBy}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理时间:" prop="updateTime">
+                <span>{{form.updateTime}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理内容:" prop="checkContent">
+                <span>{{form.checkContent}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="误报:" prop="isAlarm">
+                <span>{{form.isAlarm}}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </el-dialog>
     <!-- 导出-->
     <a href="" download="" id="xz" style="position: absolute;z-index: -1;opacity: 0;"></a>
   </div>
@@ -205,7 +286,8 @@ export default {
       companyList: [],
       // 日期范围
       dateRange: [],
-      adminList:[]
+      adminList:[],
+      form:{}
     };
   },
   created(){
@@ -307,6 +389,27 @@ export default {
         document.getElementById("xz").click()
       })
     },
+    //查看详情
+    getOne(row) {
+      this.title = "详情信息";
+      this.form = JSON.parse(JSON.stringify(row));
+
+      if (row.isAlarm === true) {
+        this.form.isAlarm = '是';
+      } else {
+        this.form.isAlarm = '否';
+      }
+      if (row.alarmStatus  == '0') {
+        this.form.alarmStatus  = '未处理';
+      } else {
+        this.form.alarmStatus  = '已处理';
+      }
+      this.open = true;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+    },
   }
 }
 </script>

+ 102 - 1
src/views/business/fireInternet/deviceMonitoring/fireMonitoring/index.vue

@@ -130,10 +130,25 @@
               <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
                 <template slot-scope="scope">
                   <el-button
+                    size="mini"
+                    type="text"
+                    icon="el-icon-view"
+                    @click="getOne(scope.row)"
+                    >查看详情</el-button
+                  >
+                  <el-button v-if="scope.row.alarmStatus == '0' "
+                    size="mini"
+                    type="text"
+                    icon="el-icon-s-promotion"
+                    @click="jump(scope.row)"
+                    v-hasPermi="['system:admin:edit']"
+                  >跳转至工单</el-button>
+                   <el-button v-if="scope.row.alarmStatus == '1'"
                     size="mini"
                     type="text"
                     icon="el-icon-s-promotion"
                     @click="jump(scope.row)"
+                    disabled
                     v-hasPermi="['system:admin:edit']"
                   >跳转至工单</el-button>
                 </template>
@@ -149,6 +164,70 @@
       :limit.sync="queryParams.size"
       @pagination="getList"
     />
+    <!-- 详情对话框 -->
+      <el-dialog
+        :title="title"
+        :visible.sync="open"
+        width="600px"
+        append-to-body
+        :before-close="cancel"
+        :close-on-click-modal="false"
+      >
+        <el-form ref="form" :model="form" label-width="auto">
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="工单序号:" prop="id">
+                <span>{{form.id}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="单位名称:" prop="companyName">
+                <span>{{form.companyName}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告时间:" prop="alarmTime">
+                <span>{{form.alarmTime}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告数据:" prop="property">
+                <span>{{form.property}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告内容:" prop="deviceName">
+                <span>{{form.deviceName}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理状态:" prop="alarmStatus">
+                <span>{{form.alarmStatus}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理人:" prop="updateBy">
+                <span>{{form.updateBy}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理时间:" prop="updateTime">
+                <span>{{form.updateTime}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理内容:" prop="checkContent">
+                <span>{{form.checkContent}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="误报:" prop="isAlarm">
+                <span>{{form.isAlarm}}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </el-dialog>
     <!-- 导出-->
     <a href="" download="" id="xz" style="position: absolute;z-index: -1;opacity: 0;"></a>
   </div>
@@ -206,7 +285,8 @@ export default {
       companyList: [],
       // 日期范围
       dateRange: [],
-      adminList:[]
+      adminList:[],
+      form:{}
     };
   },
   created(){
@@ -311,6 +391,27 @@ export default {
         document.getElementById("xz").click()
       })
     },
+    //查看详情
+    getOne(row) {
+      this.title = "详情信息";
+      this.form = JSON.parse(JSON.stringify(row));
+
+      if (row.isAlarm === true) {
+        this.form.isAlarm = '是';
+      } else {
+        this.form.isAlarm = '否';
+      }
+      if (row.alarmStatus  == '0') {
+        this.form.alarmStatus  = '未处理';
+      } else {
+        this.form.alarmStatus  = '已处理';
+      }
+      this.open = true;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+    },
 
 
   }

+ 9 - 1
src/views/business/fireInternet/deviceMonitoring/waterMonitoring/device/index.vue

@@ -96,13 +96,21 @@
               <el-table-column label="报告时间" align="center" prop="createTime" sortable  show-overflow-tooltip />
               <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
                 <template slot-scope="scope">
-                  <el-button
+                  <el-button v-if="scope.row.alarmStatus == '0' "
                     size="mini"
                     type="text"
                     icon="el-icon-s-promotion"
                     @click="jump(scope.row)"
                     v-hasPermi="['system:admin:edit']"
                   >跳转至工单</el-button>
+                   <el-button v-if="scope.row.alarmStatus == '1'"
+                    size="mini"
+                    type="text"
+                    icon="el-icon-s-promotion"
+                    @click="jump(scope.row)"
+                    disabled
+                    v-hasPermi="['system:admin:edit']"
+                  >跳转至工单</el-button>
                 </template>
               </el-table-column>
             </el-table>

+ 102 - 1
src/views/business/fireInternet/deviceMonitoring/waterMonitoring/offLine/index.vue

@@ -130,10 +130,25 @@
               <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
                 <template slot-scope="scope">
                   <el-button
+                    size="mini"
+                    type="text"
+                    icon="el-icon-view"
+                    @click="getOne(scope.row)"
+                    >查看详情</el-button
+                  >
+                  <el-button v-if="scope.row.alarmStatus == '0' "
+                    size="mini"
+                    type="text"
+                    icon="el-icon-s-promotion"
+                    @click="jump(scope.row)"
+                    v-hasPermi="['system:admin:edit']"
+                  >跳转至工单</el-button>
+                   <el-button v-if="scope.row.alarmStatus == '1'"
                     size="mini"
                     type="text"
                     icon="el-icon-s-promotion"
                     @click="jump(scope.row)"
+                    disabled
                     v-hasPermi="['system:admin:edit']"
                   >跳转至工单</el-button>
                 </template>
@@ -149,6 +164,70 @@
       :limit.sync="queryParams.size"
       @pagination="getList"
     />
+    <!-- 详情对话框 -->
+      <el-dialog
+        :title="title"
+        :visible.sync="open"
+        width="600px"
+        append-to-body
+        :before-close="cancel"
+        :close-on-click-modal="false"
+      >
+        <el-form ref="form" :model="form" label-width="auto">
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="工单序号:" prop="id">
+                <span>{{form.id}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="单位名称:" prop="companyName">
+                <span>{{form.companyName}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告时间:" prop="alarmTime">
+                <span>{{form.alarmTime}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告数据:" prop="property">
+                <span>{{form.property}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告内容:" prop="deviceName">
+                <span>{{form.deviceName}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理状态:" prop="alarmStatus">
+                <span>{{form.alarmStatus}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理人:" prop="updateBy">
+                <span>{{form.updateBy}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理时间:" prop="updateTime">
+                <span>{{form.updateTime}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理内容:" prop="checkContent">
+                <span>{{form.checkContent}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="误报:" prop="isAlarm">
+                <span>{{form.isAlarm}}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </el-dialog>
     <!-- 导出-->
     <a href="" download="" id="xz" style="position: absolute;z-index: -1;opacity: 0;"></a>
   </div>
@@ -209,7 +288,8 @@ export default {
       companyList: [],
       // 日期范围
       dateRange: [],
-      adminList:[]
+      adminList:[],
+      form:{}
     };
   },
   created(){
@@ -313,6 +393,27 @@ export default {
         document.getElementById("xz").click()
       })
     },
+    //查看详情
+    getOne(row) {
+      this.title = "详情信息";
+      this.form = JSON.parse(JSON.stringify(row));
+
+      if (row.isAlarm === true) {
+        this.form.isAlarm = '是';
+      } else {
+        this.form.isAlarm = '否';
+      }
+      if (row.alarmStatus  == '0') {
+        this.form.alarmStatus  = '未处理';
+      } else {
+        this.form.alarmStatus  = '已处理';
+      }
+      this.open = true;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+    },
 
 
   }

+ 537 - 329
src/views/business/fireInternet/fireAlarm/fireMonitoring/index.vue

@@ -1,177 +1,364 @@
 <template>
-  <div class="app-container home" >
-    <div id="main" >
+  <div class="app-container home">
+    <div id="main">
       <el-row :gutter="4">
-          <el-col :span="12" v-loading="loading1">
-            <div class="card_left">
-              <el-col :span="24">
+        <el-col :span="12" v-loading="loading1">
+          <div class="card_left">
+            <el-col :span="24">
               <el-card class="box-card card1">
                 <span class="title">
-                  <el-image
-                    class="imgTitle"
-                    :src="img"
-                    ></el-image>
-                  <p>{{title}}</p>
+                  <el-image class="imgTitle" :src="img"></el-image>
+                  <p>{{ title }}</p>
                 </span>
                 <div class="contain">
+                  <div>
+                    <span>总数</span>
                     <div>
-                      <span>总数</span>
-                      <div>
-                        <p>{{index1Data.total}}</p>
-                      </div>
+                      <p>{{ index1Data.total }}</p>
                     </div>
+                  </div>
+                  <div>
+                    <span>已处理</span>
                     <div>
-                      <span>已处理</span>
-                      <div>
-                        <p>{{index1Data.checkCount}}</p>
-                      </div>
+                      <p>{{ index1Data.checkCount }}</p>
                     </div>
+                  </div>
+                  <div>
+                    <span>未处理</span>
                     <div>
-                      <span>未处理</span>
-                      <div>
-                        <p>{{index1Data.noCheckCount}}</p>
-                      </div>
+                      <p>{{ index1Data.noCheckCount }}</p>
                     </div>
+                  </div>
+                  <div>
+                    <span>处置率</span>
                     <div>
-                      <span>处置率</span>
-                      <div>
-                        <p v-loading="loading1">{{index1Data.checkRadio ? Number((index1Data.checkRadio)*100).toFixed(2) : '0'}}%</p>
-                      </div>
+                      <p v-loading="loading1">
+                        {{
+                          index1Data.checkRadio
+                            ? Number(index1Data.checkRadio * 100).toFixed(2)
+                            : "0"
+                        }}%
+                      </p>
                     </div>
+                  </div>
                 </div>
                 <div class="contain2">
                   <div class="wrap">
-                    <index1 :resData="index1Data.checkRadio"
+                    <index1
+                      :resData="index1Data.checkRadio"
                       :dataMap="index1Data.checkRadio"
                       color="#80FFA5"
                       :size="21"
                       :with="16"
-                      :tick="false" style="width:100%;" alt="饼图" />
+                      :tick="false"
+                      style="width: 100%"
+                      alt="饼图"
+                    />
                     <p>处置率</p>
                   </div>
                 </div>
               </el-card>
-              </el-col>
-            </div>
-          </el-col>
-          <el-col :span="12">
-            <div class="card_right">
-              <el-card class="box-card card2"  v-loading="loading2">
-                <div class="contain">
-                  <index2
+            </el-col>
+          </div>
+        </el-col>
+        <el-col :span="12">
+          <div class="card_right">
+            <el-card class="box-card card2" v-loading="loading2">
+              <div class="contain">
+                <index2
                   :resData="index2Data"
-                  style="width:100%;height:40vh;" alt="折线图" />
-                </div>
-              </el-card>
-            </div>
-          </el-col>
-          <el-col :span="24" v-loading="loading3">
-            <div class="card_bottom">
-              <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px">
-                <el-form-item label="单位名称:" prop="companyCode">
-                  <el-select
-                    v-model="queryParams.companyCode"
-                    placeholder="请选择单位名称"
-                    clearable
-                    size="small"
-                    style="width: 160px"
-                  >
-                    <el-option
-                      v-for="dict in companyList"
-                      :key="dict.dictValue"
-                      :label="dict.dictLabel"
-                      :value="dict.dictValue"
-                    />
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="处理状态:" >
-                  <el-select v-model="queryParams.status" style="width: 160px" placeholder="请选择处理状态" clearable size="small">
-                    <el-option label="未处理" :value="0"/>
-                    <el-option label="已处理" :value="1"/>
-                  </el-select>
-                </el-form-item>
-                <el-form-item label="时间:" label-width="50px">
-                  <el-date-picker style="vertical-align: middle;width:340px"
-                    v-model="dateRange"
-                    size="small"
-                    value-format="yyyy-MM-dd HH:mm:ss"
-                    type="datetimerange"
-                    range-separator="-"
-                    start-placeholder="开始日期"
-                    end-placeholder="结束日期"
-                  ></el-date-picker>
-                </el-form-item>
-                <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery" style="margin-top:4px">搜索</el-button>
-                <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+                  style="width: 100%; height: 40vh"
+                  alt="折线图"
+                />
+              </div>
+            </el-card>
+          </div>
+        </el-col>
+        <el-col :span="24" v-loading="loading3">
+          <div class="card_bottom">
+            <el-form
+              :model="queryParams"
+              ref="queryForm"
+              :inline="true"
+              v-show="showSearch"
+              label-width="90px"
+            >
+              <el-form-item label="单位名称:" prop="companyCode">
+                <el-select
+                  v-model="queryParams.companyCode"
+                  placeholder="请选择单位名称"
+                  clearable
+                  size="small"
+                  style="width: 160px"
+                >
+                  <el-option
+                    v-for="dict in companyList"
+                    :key="dict.dictValue"
+                    :label="dict.dictLabel"
+                    :value="dict.dictValue"
+                  />
+                </el-select>
+              </el-form-item>
+              <el-form-item label="处理状态:">
+                <el-select
+                  v-model="queryParams.status"
+                  style="width: 160px"
+                  placeholder="请选择处理状态"
+                  clearable
+                  size="small"
+                >
+                  <el-option label="未处理" :value="0" />
+                  <el-option label="已处理" :value="1" />
+                </el-select>
+              </el-form-item>
+              <el-form-item label="时间:" label-width="50px">
+                <el-date-picker
+                  style="vertical-align: middle; width: 340px"
+                  v-model="dateRange"
+                  size="small"
+                  value-format="yyyy-MM-dd HH:mm:ss"
+                  type="datetimerange"
+                  range-separator="-"
+                  start-placeholder="开始日期"
+                  end-placeholder="结束日期"
+                ></el-date-picker>
+              </el-form-item>
+              <el-button
+                type="primary"
+                icon="el-icon-search"
+                size="mini"
+                @click="handleQuery"
+                style="margin-top: 4px"
+                >搜索</el-button
+              >
+              <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+                >重置</el-button
+              >
+              <el-button
+                type="warning"
+                plain
+                icon="el-icon-download"
+                size="mini"
+                :loading="exportLoading"
+                @click="handleExport"
+                v-hasPermi="['system:admin:export']"
+                >导出</el-button
+              >
+            </el-form>
+          </div>
+          <el-table
+            :data="adminList"
+            height="calc(100vh - 67vh)"
+            :default-sort="{ prop: 'alarmTime', order: 'descending' }"
+          >
+            <el-table-column
+              label="工单序号"
+              align="center"
+              prop="id"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              label="单位名称"
+              align="center"
+              prop="companyName"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              label="报告时间"
+              align="center"
+              prop="alarmTime"
+              sortable
+              show-overflow-tooltip
+            />
+            <el-table-column
+              label="报告数据"
+              align="center"
+              prop="property"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              label="报告内容"
+              align="center"
+              prop="deviceName"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              label="处理状态"
+              align="center"
+              show-overflow-tooltip
+            >
+              <template slot-scope="scope">
+                <span
+                  :class="
+                    scope.row.alarmStatus == '0' ? 'color-red' : 'color-green'
+                  "
+                  >{{
+                    scope.row.alarmStatus == "0"
+                      ? "未处理"
+                      : scope.row.alarmStatus == "1"
+                      ? "已处理"
+                      : "" }}</span
+                >
+              </template>
+            </el-table-column>
+            <el-table-column
+              label="处理人"
+              align="center"
+              prop="updateBy"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              label="处理时间"
+              align="center"
+              prop="updateTime"
+              show-overflow-tooltip
+            />
+            <el-table-column
+              label="操作"
+              align="center"
+              class-name="small-padding fixed-width"
+            >
+              <template slot-scope="scope">
                 <el-button
-                  type="warning"
-                  plain
-                  icon="el-icon-download"
                   size="mini"
-                  :loading="exportLoading"
-                  @click="handleExport"
-                  v-hasPermi="['system:admin:export']"
-                >导出</el-button>
-              </el-form>
-            </div>
-            <el-table :data="adminList" height="calc(100vh - 67vh)" :default-sort = "{prop: 'alarmTime', order: 'descending'}">
-              <el-table-column label="序号" align="center" prop="id"  show-overflow-tooltip />
-              <el-table-column label="单位名称" align="center" prop="companyName" show-overflow-tooltip />
-              <el-table-column label="报告时间" align="center" prop="alarmTime" sortable  show-overflow-tooltip />
-              <el-table-column label="报告数据" align="center" prop="property"  show-overflow-tooltip />
-              <el-table-column label="报告内容" align="center" prop="deviceName"  show-overflow-tooltip />
-              <!-- <el-table-column label="处理状态" align="center"  show-overflow-tooltip >
-                <template slot-scope="scope">
-                  <span :class="scope.row.alarmStatus == 0 ? 'color-red' : 'color-green'">{{ scope.row.alarmStatus == 0 ? '未处理':scope.row.alarmStatus ==1 ? '已处理':'' }}</span>
-                </template>
-              </el-table-column> -->
-              <el-table-column label="处理人" align="center" prop="updateBy"  show-overflow-tooltip />
-              <el-table-column label="处理时间" align="center" prop="updateTime"  show-overflow-tooltip />
-              <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
-                <template slot-scope="scope">
-                  <el-button
-                    size="mini"
-                    type="text"
-                    icon="el-icon-s-promotion"
-                    @click="jump(scope.row)"
-                    v-hasPermi="['system:admin:edit']"
-                  >跳转至工单</el-button>
-                </template>
-              </el-table-column>
-            </el-table>
-          </el-col>
+                  type="text"
+                  icon="el-icon-view"
+                  @click="getOne(scope.row)"
+                  >查看详情</el-button
+                >
+                <el-button
+                  v-if="scope.row.alarmStatus == '0'"
+                  size="mini"
+                  type="text"
+                  icon="el-icon-s-promotion"
+                  @click="jump(scope.row)"
+                  v-hasPermi="['system:admin:edit']"
+                  >跳转至工单</el-button
+                >
+                <el-button
+                  v-if="scope.row.alarmStatus == '1'"
+                  size="mini"
+                  type="text"
+                  icon="el-icon-s-promotion"
+                  @click="jump(scope.row)"
+                  disabled
+                  v-hasPermi="['system:admin:edit']"
+                  >跳转至工单</el-button
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-col>
       </el-row>
+      <!-- 详情对话框 -->
+      <el-dialog
+        :title="title"
+        :visible.sync="open"
+        width="600px"
+        append-to-body
+        :before-close="cancel"
+        :close-on-click-modal="false"
+      >
+        <el-form ref="form" :model="form" label-width="auto">
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="工单序号:" prop="id">
+                <span>{{form.id}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="单位名称:" prop="companyName">
+                <span>{{form.companyName}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告时间:" prop="alarmTime">
+                <span>{{form.alarmTime}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告数据:" prop="property">
+                <span>{{form.property}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告内容:" prop="deviceName">
+                <span>{{form.deviceName}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理状态:" prop="alarmStatus">
+                <span>{{form.alarmStatus}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理人:" prop="updateBy">
+                <span>{{form.updateBy}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理时间:" prop="updateTime">
+                <span>{{form.updateTime}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理内容:" prop="checkContent">
+                <span>{{form.checkContent}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="误报:" prop="isAlarm">
+                <span>{{form.isAlarm}}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </el-dialog>
     </div>
     <pagination
-      v-show="total>0"
+      v-show="total > 0"
       :total="total"
       :page.sync="queryParams.current"
       :limit.sync="queryParams.size"
       @pagination="getList"
     />
     <!-- 导出-->
-    <a href="" download="" id="xz" style="position: absolute;z-index: -1;opacity: 0;"></a>
+    <a
+      href=""
+      download=""
+      id="xz"
+      style="position: absolute; z-index: -1; opacity: 0"
+    ></a>
   </div>
 </template>
 <script>
-import {  getTbAlarmCollectIcoDetail, exportTbAlarm ,getTbAlarm, collectTbAlarm } from "@/api/business/OM/eventCenter";
+import {
+  getTbAlarmCollectIcoDetail,
+  exportTbAlarm,
+  getTbAlarm,
+  collectTbAlarm,
+} from "@/api/business/OM/eventCenter";
 import { listChannel } from "@/api/system/product";
 import index1 from "@/views/components/fireInternetInfo/index1";
 import index2 from "@/views/components/fireInternetInfo/index2";
 import { BASEPATH } from "@/assets/js/common.js";
-import { getThisDateBeforMonth, YearMonthDate } from "@/assets/js/dataFormate.js";
+import {
+  getThisDateBeforMonth,
+  YearMonthDate,
+} from "@/assets/js/dataFormate.js";
 export default {
   name: "index",
   components: {
-		index1,index2
+    index1,
+    index2,
   },
   data() {
     return {
-      img:require('@/assets/images/1.gif'),
-      title:"火警监控告警处理情况",
-      index1Data:{},//饼图
-      index2Data:[],//折线图
-      index3Data:[],//table
+      img: require("@/assets/images/1.gif"),
+      title: "火警监控告警处理情况",
+      index1Data: {}, //饼图
+      index2Data: [], //折线图
+      index3Data: [], //table
       // 遮罩层
       loading1: true,
       loading2: true,
@@ -183,104 +370,111 @@ export default {
       // 总条数
       total: 0,
       open: false,
-      t:null,
-      timeList:[],
-      queryParams:{
-        bigDeviceType:1,
-        current:1,
-        size:10,
-        companyCode:undefined,
-        status:undefined,
+      t: null,
+      timeList: [],
+      queryParams: {
+        bigDeviceType: 1,
+        current: 1,
+        size: 10,
+        companyCode: undefined,
+        status: undefined,
       },
-      queryParams2:{
-        type:2,
-        bigDeviceType:1,
-        current:1,
-        size:10,
+      queryParams2: {
+        type: 2,
+        bigDeviceType: 1,
+        current: 1,
+        size: 10,
         // startTime:"2022-01-18 00:00:00",
         // endTime:"2022-04-18 00:00:00",
-        startTime:getThisDateBeforMonth(),
-        endTime:YearMonthDate(),
+        startTime: getThisDateBeforMonth(),
+        endTime: YearMonthDate(),
       },
-      dataZ:[],//折线图
+      dataZ: [], //折线图
       // 公司列表
       companyList: [],
       // 日期范围
       dateRange: [],
-      adminList:[]
+      adminList: [],
+      form: {},
     };
   },
-  created(){
-    this.init()
-    this.getList()
+  created() {
+    this.init();
+    this.getList();
   },
-   /* type=2&bigDeviceType=1&isLine=1
+  /* type=2&bigDeviceType=1&isLine=1
    type 1隐患2告警
    bigDeviceType1火系统 2 水系统 3rtu 4电气火灾 5 视频监控
     */
   methods: {
-    init(){
-        /* 饼图 */
-        collectTbAlarm(this.queryParams).then(response =>{
-          this.index1Data = response.data
-          this.loading1 = false
-        })
-        /* 折线图 */
-        getTbAlarmCollectIcoDetail(this.queryParams2).then(response =>{
-          let data = response.data
-          let lineData = []
-          let total = []
-          let checkCount = []
-          total[0] = {data:[],name:undefined}
-          checkCount[0] = {data:[],name:undefined}
-          if(data){
-            for (let i = 0; i < data.length; i++) {
-              lineData.push(data[i].time);
-              total[0].data.push(data[i].list.checkCount + data[i].list.noCheckCount)
-              checkCount[0].data.push(data[i].list.checkCount)
-            }
-            total[0].name = "告警总数"
-            checkCount[0].name = "处理次数"
-            this.index2Data.push(total[0],checkCount[0],lineData)
-            this.index2Data.push({name:"火警监控告警处理情况跟踪",color:"#FF2416"})
-            this.loading2 = false
-          }
-        })
-        /* 公司列表 */
-        listChannel(this.queryParams).then(response => {
-          if(response.data.records.length>0){
-            this.companyList = response.data.records.map(val =>{
-              return {
-                dictValue:val.ownerId,
-                dictLabel:val.ownerName,
-                address:val.ownerAddress,
-              }
-            })
+    init() {
+      /* 饼图 */
+      collectTbAlarm(this.queryParams).then((response) => {
+        this.index1Data = response.data;
+        this.loading1 = false;
+      });
+      /* 折线图 */
+      getTbAlarmCollectIcoDetail(this.queryParams2).then((response) => {
+        let data = response.data;
+        let lineData = [];
+        let total = [];
+        let checkCount = [];
+        total[0] = { data: [], name: undefined };
+        checkCount[0] = { data: [], name: undefined };
+        if (data) {
+          for (let i = 0; i < data.length; i++) {
+            lineData.push(data[i].time);
+            total[0].data.push(
+              data[i].list.checkCount + data[i].list.noCheckCount
+            );
+            checkCount[0].data.push(data[i].list.checkCount);
           }
-        });
+          total[0].name = "告警总数";
+          checkCount[0].name = "处理次数";
+          this.index2Data.push(total[0], checkCount[0], lineData);
+          this.index2Data.push({
+            name: "火警监控告警处理情况跟踪",
+            color: "#FF2416",
+          });
+          this.loading2 = false;
+        }
+      });
+      /* 公司列表 */
+      listChannel(this.queryParams).then((response) => {
+        if (response.data.records.length > 0) {
+          this.companyList = response.data.records.map((val) => {
+            return {
+              dictValue: val.ownerId,
+              dictLabel: val.ownerName,
+              address: val.ownerAddress,
+            };
+          });
+        }
+      });
     },
     /** 初始化table */
-    getList(){
-      this.loading3 = true
-      if(this.dateRange.length>0){
-        this.queryParams.startTime = this.dateRange[0]
-        this.queryParams.endTime = this.dateRange[1]
+    getList() {
+      this.loading3 = true;
+      if (this.dateRange.length > 0) {
+        this.queryParams.startTime = this.dateRange[0];
+        this.queryParams.endTime = this.dateRange[1];
       }
-      getTbAlarm(this.queryParams).then(response =>{
-        this.adminList = response.data.records
+      getTbAlarm(this.queryParams).then((response) => {
+        console.log(response.data.records);
+        this.adminList = response.data.records;
         this.total = response.data.total;
         this.loading3 = false;
-      })
+      });
     },
     /** 跳转至工单 */
-    jump(row){
+    jump(row) {
       this.$router.push({
-        path: '/OM/business/OM/workMange',
+        path: "/OM/business/OM/workMange",
         query: {
           id: row.id,
-          type:1
-        }
-      })
+          type: 1,
+        },
+      });
     },
     /** 搜索按钮操作 */
     handleQuery() {
@@ -300,162 +494,176 @@ export default {
     },
     /** 导出按钮操作 */
     handleExport() {
-      let queryParams = {...this.queryParams};
-      delete queryParams.current
-      delete queryParams.size
+      let queryParams = { ...this.queryParams };
+      delete queryParams.current;
+      delete queryParams.size;
       this.exportLoading = true;
-      exportTbAlarm(queryParams).then(response =>{
+      exportTbAlarm(queryParams).then((response) => {
         this.exportLoading = false;
-        document.getElementById("xz").href = BASEPATH() + response.data
-        document.getElementById("xz").download = response.data
-        document.getElementById("xz").click()
-      })
+        document.getElementById("xz").href = BASEPATH() + response.data;
+        document.getElementById("xz").download = response.data;
+        document.getElementById("xz").click();
+      });
     },
+    //查看详情
+    getOne(row) {
+      this.title = "详情信息";
+      this.form = JSON.parse(JSON.stringify(row));
 
-
-  }
-}
+      if (row.isAlarm === true) {
+        this.form.isAlarm = '是';
+      } else {
+        this.form.isAlarm = '否';
+      }
+      if (row.alarmStatus  == '0') {
+        this.form.alarmStatus  = '未处理';
+      } else {
+        this.form.alarmStatus  = '已处理';
+      }
+      this.open = true;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+    },
+  },
+};
 </script>
 
-<style scoped lang="scss">
-  ::-webkit-scrollbar-track
-  {
-    background: #fff;
-    border-radius: 0;
-
-  }
+<style  lang="scss">
+::-webkit-scrollbar-track {
+  background: #fff;
+  border-radius: 0;
+}
 
-  ::-webkit-scrollbar
-  {
-    -webkit-appearance: none;
-    width: 4px;
-    height: 4px;
-  }
+::-webkit-scrollbar {
+  -webkit-appearance: none;
+  width: 4px;
+  height: 4px;
+}
 
-  ::-webkit-scrollbar-thumb
-  {
-      cursor: pointer;
-      border-radius: 5px;
-      background: rgba(0,0,0,.25);
-      transition: color .2s ease;
-  }
-  .text {
-    font-size: 14px;
-  }
-  .item {
-    margin-bottom: 18px;
-  }
-  .clearfix:before,
-  .clearfix:after {
-    display: table;
-    content: "";
-  }
-  .clearfix:after {
-    clear: both
-  }
+::-webkit-scrollbar-thumb {
+  cursor: pointer;
+  border-radius: 5px;
+  background: rgba(0, 0, 0, 0.25);
+  transition: color 0.2s ease;
+}
+.text {
+  font-size: 14px;
+}
+.item {
+  margin-bottom: 18px;
+}
+.clearfix:before,
+.clearfix:after {
+  display: table;
+  content: "";
+}
+.clearfix:after {
+  clear: both;
+}
+.box-card {
+  margin-top: 20px;
+}
+#main {
+  margin-top: -20px;
   .box-card {
-    margin-top:20px;
+    .h2 {
+      text-align: center;
+      margin: 0 auto;
+      display: block;
+      font-size: 1.2em;
+      background-image: -webkit-linear-gradient(bottom, #00adce, #000);
+      -webkit-background-clip: text;
+      -webkit-text-fill-color: transparent;
+    }
   }
-  #main{
-    margin-top:-20px;
-    .box-card{
-      .h2{
-        text-align: center;
-        margin:0 auto;
+  .card_left {
+    .card1 {
+      height: 43vh;
+      .title {
+        width: 100%;
         display: block;
-        font-size: 1.2em;
-        background-image: -webkit-linear-gradient(bottom, #00adce, #000);
-        -webkit-background-clip: text;
-        -webkit-text-fill-color: transparent;
-
+        text-align: left !important;
+        .imgTitle {
+          width: 5%;
+          display: inline-block;
+          vertical-align: middle;
+        }
+        p {
+          display: inline-block;
+          vertical-align: middle;
+          margin-left: 2%;
+          font-size: 1.4vw;
+        }
       }
-    }
-    .card_left{
-      .card1{
-        height:43vh;
-        .title{
-          width:100%;
-          display: block;
-          text-align: left !important;
-          .imgTitle{
-            width:5%;
-            display: inline-block;
+      .contain {
+        margin-top: 0.5vh;
+        width: 58%;
+        display: inline-block;
+        vertical-align: top;
+        div {
+          height: 7.8vh;
+          span {
+            font-size: 1vw;
             vertical-align: middle;
-          }
-          p{
+            width: 4vw;
+            text-align: left;
             display: inline-block;
-            vertical-align: middle;
-            margin-left:2%;
-            font-size:1.4vw;
           }
-        }
-        .contain{
-          margin-top:0.5vh;
-          width:58%;
-          display: inline-block;
-          vertical-align: top;
-          div{
-            height:7.8vh;
-            span{
-              font-size: 1vw;
-              vertical-align: middle;
-              width:4vw;
-              text-align: left;
-              display: inline-block;
-            }
-            div{
-              width:212px;
-              height:6vh;
-              vertical-align: middle;
-              background:url("../../../../../assets/images/operation_item.png") no-repeat right center;
-              display: inline-block;
-              p{
-                font-size: 1.4vw;
-                vertical-align: top;
-                margin:1vh 0 0 3vh;
-              }
+          div {
+            width: 212px;
+            height: 6vh;
+            vertical-align: middle;
+            background: url("../../../../../assets/images/operation_item.png")
+              no-repeat right center;
+            display: inline-block;
+            p {
+              font-size: 1.4vw;
+              vertical-align: top;
+              margin: 1vh 0 0 3vh;
             }
           }
         }
-        .contain2{
-          margin-top:-2.5rem;
-          vertical-align: top;
-          width:42%;
-          display: inline-block;
-          p{
-            text-align: center;
-            font-size: 1.4rem;
-            margin:-2vh 0 0 0%;
-          }
-        }
       }
-    }
-    .card_right{
-      .card2{
-        height:43vh;
+      .contain2 {
+        margin-top: -2.5rem;
+        vertical-align: top;
+        width: 42%;
+        display: inline-block;
+        p {
+          text-align: center;
+          font-size: 1.4rem;
+          margin: -2vh 0 0 0%;
+        }
       }
     }
-    .card_bottom{
-      padding-top:10px;
-      margin-bottom:-10px
-    }
   }
-
- ::v-deep {
-    .el-table__body-wrapper::-webkit-scrollbar {
-      /*width: 0;宽度为0隐藏*/
-      width: 4px;
-    }
-    .el-table__body-wrapper::-webkit-scrollbar-thumb {
-      border-radius: 6px;
-      height: 50px;
-      background: rgba(40, 190, 252, .6);//滚动条颜色
-    }
-    .el-table__body-wrapper::-webkit-scrollbar-track {
-      box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
-      border-radius: 6px;
-      background: #eee;//滚动条背景色
+  .card_right {
+    .card2 {
+      height: 43vh;
     }
+  }
+  .card_bottom {
+    padding-top: 10px;
+    margin-bottom: -10px;
+  }
 }
 
+::v-deep {
+  .el-table__body-wrapper::-webkit-scrollbar {
+    /*width: 0;宽度为0隐藏*/
+    width: 4px;
+  }
+  .el-table__body-wrapper::-webkit-scrollbar-thumb {
+    border-radius: 6px;
+    height: 50px;
+    background: rgba(40, 190, 252, 0.6); //滚动条颜色
+  }
+  .el-table__body-wrapper::-webkit-scrollbar-track {
+    box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
+    border-radius: 6px;
+    background: #eee; //滚动条背景色
+  }
+}
 </style>

+ 105 - 150
src/views/business/fireInternet/fireAlarm/waterAlarm/index.vue

@@ -115,25 +115,40 @@
               </el-form>
             </div>
             <el-table :data="adminList" height="calc(100vh - 67vh)" :default-sort = "{prop: 'alarmTime', order: 'descending'}">
-              <el-table-column label="序号" align="center" prop="id"  show-overflow-tooltip />
+              <el-table-column label="工单序号" align="center" prop="id"  show-overflow-tooltip />
               <el-table-column label="单位名称" align="center" prop="companyName" show-overflow-tooltip />
               <el-table-column label="报告时间" align="center" prop="alarmTime" sortable show-overflow-tooltip />
               <el-table-column label="报告数据" align="center" prop="property"  show-overflow-tooltip />
               <el-table-column label="报告内容" align="center" prop="deviceName"  show-overflow-tooltip />
-              <!-- <el-table-column label="处理状态" align="center"  show-overflow-tooltip >
+              <el-table-column label="处理状态" align="center"  show-overflow-tooltip >
                 <template slot-scope="scope">
                   <span :class="scope.row.alarmStatus == 0 ? 'color-red' : 'color-green'">{{ scope.row.alarmStatus == 0 ? '未处理':scope.row.alarmStatus ==1 ? '已处理':'' }}</span>
                 </template>
-              </el-table-column> -->
+              </el-table-column>
               <el-table-column label="处理人" align="center" prop="updateBy"  show-overflow-tooltip />
               <el-table-column label="处理时间" align="center" prop="updateTime"  show-overflow-tooltip />
               <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
                 <template slot-scope="scope">
                   <el-button
+                    size="mini"
+                    type="text"
+                    icon="el-icon-view"
+                    @click="getOne(scope.row)"
+                    >查看详情</el-button
+                  >
+                  <el-button v-if="scope.row.alarmStatus == '0' "
+                    size="mini"
+                    type="text"
+                    icon="el-icon-s-promotion"
+                    @click="jump(scope.row)"
+                    v-hasPermi="['system:admin:edit']"
+                  >跳转至工单</el-button>
+                   <el-button v-if="scope.row.alarmStatus == '1'"
                     size="mini"
                     type="text"
                     icon="el-icon-s-promotion"
                     @click="jump(scope.row)"
+                    disabled
                     v-hasPermi="['system:admin:edit']"
                   >跳转至工单</el-button>
                 </template>
@@ -142,6 +157,70 @@
           </el-col>
       </el-row>
     </div>
+    <!-- 详情对话框 -->
+      <el-dialog
+        :title="title"
+        :visible.sync="open"
+        width="600px"
+        append-to-body
+        :before-close="cancel"
+        :close-on-click-modal="false"
+      >
+        <el-form ref="form" :model="form" label-width="auto">
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="工单序号:" prop="id">
+                <span>{{form.id}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="单位名称:" prop="companyName">
+                <span>{{form.companyName}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告时间:" prop="alarmTime">
+                <span>{{form.alarmTime}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告数据:" prop="property">
+                <span>{{form.property}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告内容:" prop="deviceName">
+                <span>{{form.deviceName}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理状态:" prop="alarmStatus">
+                <span>{{form.alarmStatus}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理人:" prop="updateBy">
+                <span>{{form.updateBy}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理时间:" prop="updateTime">
+                <span>{{form.updateTime}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理内容:" prop="checkContent">
+                <span>{{form.checkContent}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="误报:" prop="isAlarm">
+                <span>{{form.isAlarm}}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </el-dialog>
     <pagination
       v-show="total>0"
       :total="total"
@@ -207,7 +286,8 @@ export default {
       companyList: [],
       // 日期范围
       dateRange: [],
-      adminList:[]
+      adminList:[],
+      form:{}
     };
   },
   created(){
@@ -311,155 +391,30 @@ export default {
         document.getElementById("xz").click()
       })
     },
+    //查看详情
+    getOne(row) {
+      this.title = "详情信息";
+      this.form = JSON.parse(JSON.stringify(row));
 
-
-  }
-}
-</script>
-
-<style scoped lang="scss">
-  ::-webkit-scrollbar-track
-  {
-    background: #fff;
-    border-radius: 0;
-  }
-
-  ::-webkit-scrollbar
-  {
-    -webkit-appearance: none;
-    width: 4px;
-    height: 4px;
-  }
-
-  ::-webkit-scrollbar-thumb
-  {
-      cursor: pointer;
-      border-radius: 5px;
-      background: rgba(0,0,0,.25);
-      transition: color .2s ease;
-  }
-  .text {
-    font-size: 14px;
-  }
-  .item {
-    margin-bottom: 18px;
-  }
-  .clearfix:before,
-  .clearfix:after {
-    display: table;
-    content: "";
-  }
-  .clearfix:after {
-    clear: both
-  }
-  .box-card {
-    margin-top:20px;
-  }
-  #main{
-    margin-top:-20px;
-    .box-card{
-      .h2{
-        text-align: center;
-        margin:0 auto;
-        display: block;
-        font-size: 1.2em;
-        background-image: -webkit-linear-gradient(bottom, #00adce, #000);
-        -webkit-background-clip: text;
-        -webkit-text-fill-color: transparent;
-
+      if (row.isAlarm === true) {
+        this.form.isAlarm = '是';
+      } else {
+        this.form.isAlarm = '否';
       }
-    }
-    .card_left{
-      .card1{
-        height:43vh;
-        .title{
-          width:100%;
-          display: block;
-          text-align: left !important;
-          .imgTitle{
-            width:5%;
-            display: inline-block;
-            vertical-align: middle;
-          }
-          p{
-            display: inline-block;
-            vertical-align: middle;
-            margin-left:2%;
-            font-size:1.4vw;
-          }
-        }
-        .contain{
-          margin-top:0.5vh;
-          width:58%;
-          display: inline-block;
-          vertical-align: top;
-          div{
-            height:7.8vh;
-            span{
-              font-size: 1vw;
-              vertical-align: middle;
-              width:4vw;
-              text-align: left;
-              display: inline-block;
-            }
-            div{
-              width:212px;
-              height:6vh;
-              vertical-align: middle;
-              background:url("../../../../../assets/images/operation_item.png") no-repeat right center;
-              display: inline-block;
-              p{
-                font-size: 1.4vw;
-                vertical-align: top;
-                margin:1vh 0 0 3vh;
-              }
-            }
-          }
-        }
-        .contain2{
-          margin-top:-2.5rem;
-          vertical-align: top;
-          width:42%;
-          display: inline-block;
-          p{
-            text-align: center;
-            font-size: 1.4rem;
-            margin:-2vh 0 0 0%;
-          }
-        }
-      }
-    }
-    .card_right{
-      .card2{
-        height:43vh;
+      if (row.alarmStatus  == '0') {
+        this.form.alarmStatus  = '未处理';
+      } else {
+        this.form.alarmStatus  = '已处理';
       }
-    }
-    .card_bottom{
-      padding-top:10px;
-      margin-bottom:-10px
-    }
-  }
-
- ::v-deep {
-    .el-table__body-wrapper::-webkit-scrollbar {
-      /*width: 0;宽度为0隐藏*/
-      width: 4px;
-    }
-    .el-table__body-wrapper::-webkit-scrollbar-thumb {
-      border-radius: 6px;
-      height: 50px;
-      background: rgba(40, 190, 252, .6);//滚动条颜色
-    }
-    .el-table__body-wrapper::-webkit-scrollbar-track {
-      box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
-      border-radius: 6px;
-      background: #eee;//滚动条背景色
-    }
-  }
-
-</style>
-<style>
+      this.open = true;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+    },
 
 
-</style>
+  }
+}
+</script>
 

+ 101 - 3
src/views/business/fireInternet/hiddenDanger/index.vue

@@ -130,12 +130,27 @@
               <el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
                 <template slot-scope="scope">
                   <el-button
+                    size="mini"
+                    type="text"
+                    icon="el-icon-view"
+                    @click="getOne(scope.row)"
+                    >查看详情</el-button
+                  >
+                  <el-button v-if="scope.row.alarmStatus == '0' "
                     size="mini"
                     type="text"
                     icon="el-icon-s-promotion"
                     @click="jump(scope.row)"
                     v-hasPermi="['system:admin:edit']"
                   >跳转至工单</el-button>
+                   <el-button v-if="scope.row.alarmStatus == '1'"
+                    size="mini"
+                    type="text"
+                    icon="el-icon-s-promotion"
+                    @click="jump(scope.row)"
+                    disabled
+                    v-hasPermi="['system:admin:edit']"
+                  >跳转至工单</el-button>
                 </template>
               </el-table-column>
             </el-table>
@@ -149,6 +164,70 @@
           </el-col>
       </el-row>
     </div>
+    <!-- 详情对话框 -->
+      <el-dialog
+        :title="title"
+        :visible.sync="open"
+        width="600px"
+        append-to-body
+        :before-close="cancel"
+        :close-on-click-modal="false"
+      >
+        <el-form ref="form" :model="form" label-width="auto">
+          <el-row :gutter="20">
+            <el-col :span="12">
+              <el-form-item label="工单序号:" prop="id">
+                <span>{{form.id}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="单位名称:" prop="companyName">
+                <span>{{form.companyName}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告时间:" prop="alarmTime">
+                <span>{{form.alarmTime}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告数据:" prop="property">
+                <span>{{form.property}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="报告内容:" prop="deviceName">
+                <span>{{form.deviceName}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理状态:" prop="alarmStatus">
+                <span>{{form.alarmStatus}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理人:" prop="updateBy">
+                <span>{{form.updateBy}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理时间:" prop="updateTime">
+                <span>{{form.updateTime}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="处理内容:" prop="checkContent">
+                <span>{{form.checkContent}}</span>
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="误报:" prop="isAlarm">
+                <span>{{form.isAlarm}}</span>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-form>
+      </el-dialog>
 
     <!-- 导出-->
     <a href="" download="" id="xz" style="position: absolute;z-index: -1;opacity: 0;"></a>
@@ -207,7 +286,8 @@ export default {
       companyList: [],
       // 日期范围
       dateRange: [],
-      adminList:[]
+      adminList:[],
+      form:{}
     };
   },
   created(){
@@ -311,8 +391,27 @@ export default {
         document.getElementById("xz").click()
       })
     },
+    //查看详情
+    getOne(row) {
+      this.title = "详情信息";
+      this.form = JSON.parse(JSON.stringify(row));
 
-
+      if (row.isAlarm === true) {
+        this.form.isAlarm = '是';
+      } else {
+        this.form.isAlarm = '否';
+      }
+      if (row.alarmStatus  == '0') {
+        this.form.alarmStatus  = '未处理';
+      } else {
+        this.form.alarmStatus  = '已处理';
+      }
+      this.open = true;
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+    },
   }
 }
 </script>
@@ -462,4 +561,3 @@ export default {
 
 
 </style>
-

+ 11 - 15
src/views/business/fireInternet/monthReport/index.vue

@@ -4,7 +4,7 @@
     <el-dialog :title="title" :visible.sync="open1" width="600px" append-to-body :before-close="cancel" :close-on-click-modal="false">
       <el-form ref="form" :model="form" :rules="rules" label-width="120px" >
         <el-row>
-          <el-col :span="24">
+          <el-col :span="14">
             <el-form-item label="开始日期" prop="startTime">
               <el-date-picker
                 v-model="form.startTime"
@@ -22,7 +22,7 @@
           </el-col>
         </el-row>
         <el-row>
-          <el-col :span="16">
+          <el-col :span="14">
             <el-form-item label="使用单位" prop="companyCode">
               <el-select v-model="form.companyCode"  placeholder="请选择使用单位">
                 <el-option
@@ -68,8 +68,6 @@
                   </table>
                   <p class="table-sub" style="text-align:center">表1:单位信息统计表</p>
               </section>
-
-
               <section class="section">
                   <h4 class="big-tit"><strong>2.设备类型统计信息</strong></h4>
                   <div>
@@ -77,8 +75,6 @@
                           <tr>
                               <td>设备类型名称</td>
                               <td>数量</td>
-                              <!-- <td>传输类型</td>
-                              <td>厂家名称</td> -->
                           </tr>
                           <tbody id="typeList">
                             <tr v-for="(item,index) in DeviceTypeCollectList" :key="index">
@@ -464,7 +460,7 @@ export default {
       setTimeout(()=>{
         params.bigDeviceType = 3
         this.DeviceTypeStatusTongji(params)
-      },3000)
+      },5000)
     },
     /* 设备类型统计  以下接口参数
         type 1隐患2告警
@@ -530,11 +526,14 @@ export default {
             let lineData = [];
             let date = new Date();
             for (let i = 0; i < data.length; i++) {
+              // lineData.push(
+              //   date.getFullYear() +
+              //     "-" +
+              //     Number(date.getMonth() + 1) +
+              //     "-" +
+              //     data[i].time
+              // );
               lineData.push(
-                date.getFullYear() +
-                  "-" +
-                  Number(date.getMonth() + 1) +
-                  "-" +
                   data[i].time
               );
             }
@@ -575,10 +574,7 @@ export default {
             let date = new Date();
             for (let i = 0; i < data.length; i++) {
               lineData.push(
-                date.getFullYear() +
-                  "-" +
-                  Number(date.getMonth() + 1) +
-                  "-" +
+
                   data[i].time
               );
             }

+ 3 - 5
src/views/business/propertyMange/index.vue

@@ -202,15 +202,13 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="维修天数" prop="warranty">
-              <el-input type="text" onkeyup="this.value=this.value.replace(/^\.+|[^\d\.]/g,'')"
-              onblur="if(this.value ==0||!/^\d+(\.\d{1,2})?$/.test(this.value))this.value=''"
-              v-model.trim="form.warranty" placeholder="请填写维修天数" @input="onInput()" maxlength="4" show-word-limit />
+              <el-input  type="number"
+              v-model.trim="form.warranty" placeholder="请填写维修天数" @input="onInput()"  show-word-limit oninput="if(value.length > 4) value = value.slice(0,4)"/>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="已使用年限" prop="usedData">
-              <el-input type="text" onkeyup="this.value=this.value.replace(/^\.+|[^\d\.]/g,'')"
-              onblur="if(this.value ==0||!/^\d+(\.\d{1,2})?$/.test(this.value))this.value=''" maxlength="2" show-word-limit
+              <el-input type="number" oninput="if(value.length > 2) value = value.slice(0,2)" show-word-limit
               v-model.trim="form.usedData" placeholder="请填写使用年限" @input="onInput()"/>
             </el-form-item>
           </el-col>

+ 1 - 1
src/views/components/fireInternetInfo/index3.vue

@@ -84,7 +84,7 @@ export default {
           myChart.resize();
         });
         this.loading = false
-      },2000)
+      },3000)
     },
 
   }

+ 5 - 5
src/views/components/index/index2.vue

@@ -61,11 +61,11 @@ export default {
           color: ['#FF0087', '#00DDFF', '#37A2FF', '#FF5801', '#FFBF00']
       };
       option && myChart.setOption(option);
-      setTimeout(function (){
-          window.onresize = function () {
-            myChart.resize();
-          }
-      },200)
+      // setTimeout(function (){
+      //     window.onresize = function () {
+      //       myChart.resize();
+      //     }
+      // },200)
 
     },
   }

+ 5 - 4
src/views/components/monthReport/index.vue

@@ -27,6 +27,7 @@ export default {
     getData() {
       let myChart = echarts.init(document.getElementById(this.time));
       let data = this.resData1;
+      // data[0].data[3]=150
       let series = []; //定义一个数组变量用于存放配置
       for (var i = 0; i < data.length -1; i++) {
         series.push({
@@ -56,7 +57,7 @@ export default {
                     false
                 ),
                 // 影子效果
-                shadowColor: "rgba(0, 0, 0, 0.1)",
+                shadowColor: "rgba(0, 0, 0, 1)",
             },
             // 设置拐点形状
             symbol: "circle",
@@ -99,7 +100,7 @@ export default {
             data: data[1],
             axisLabel: {
                 textStyle: {
-                    color: "rgba(255, 255, 255, .3)",
+                    color: "#aaa",
                     fontSize: 12,
                 },
                 axisLine: {
@@ -118,14 +119,14 @@ export default {
             // y轴的线颜色
             axisLine: {
                 lineStyle: {
-                    color: "#444",
+                    color: "#aaa",
                     opacity: .3
                 },
             },
             // 文字的颜色
             axisLabel: {
                 textStyle: {
-                    color: "rgba(255, 255, 255, .6)",
+                    color: "#aaa",
                     fontSize: 12,
                 },
             },

+ 3 - 3
vue.config.js

@@ -33,8 +33,8 @@ module.exports = {
         proxy: {
             // detail: https://cli.vuejs.org/config/#devserver-proxy
             [process.env.VUE_APP_BASE_API]: {
-                //target: `http://172.16.120.213:8084/`, //本地
-                target: 'https://smartpark.caih.com/dmapi/', //东信
+                target: `http://172.16.120.213:8084/`, //本地
+                //target: 'https://smartpark.caih.com/dmapi/', //东信
                 changeOrigin: true,
                 pathRewrite: {
                     ['^' + process.env.VUE_APP_BASE_API]: ''
@@ -125,4 +125,4 @@ module.exports = {
                 }
             )
     }
-}
+}