Bladeren bron

更新202111021431

fanghuisheng 3 jaren geleden
bovenliggende
commit
29b4792aa7

+ 1 - 0
public/static/config.js

@@ -4,6 +4,7 @@ var PLATFROM_CONFIG = {};
 // PLATFROM_CONFIG.baseUrl = "http://172.16.1.196:8010/"  //超博本地
 
 PLATFROM_CONFIG.baseUrl = "https://qhome.usky.cn/fivapi/" //线上
+PLATFROM_CONFIG.images = "https://qhome.usky.cn/file/" //线上图片
 // PLATFROM_CONFIG.fileUrl = "https://wx.ewoogi.com/file/" //xlsx文件访问路径
 
 // 本地json文件请求路径

+ 9 - 0
src/api/alarmManage/index.js

@@ -16,4 +16,13 @@ export function alarmGradeList(params) {
         method: 'GET',
         params,
     })
+}
+
+//巡检管理-巡检计划-计划列表详情
+export function alarmPower(params) {
+    return request({
+        url: '/alarmPower/',
+        method: 'PUT',
+        data: params,
+    })
 }

+ 7 - 29
src/views/alarmManage/alarmTotal.vue

@@ -48,7 +48,7 @@
       ></el-table-column>
       <el-table-column prop="check" label="详情" width="">
         <template #default="scope">
-          <span @click="addItem(scope.row)">查看</span>
+          <span @click="checkItem_addItem(scope.row)">查看</span>
         </template>
       </el-table-column>
       <el-table-column prop="eddl" label="状态" width="">
@@ -100,6 +100,7 @@
       :dialog-title="dialogTitle"
       :item-info="tableItem"
       @closeDialog="closeDialog"
+      @listSelect="listSelect"
     ></dialog-component>
     <!--弹框组件开始-----------------------end-->
   </div>
@@ -153,41 +154,18 @@ export default defineComponent({
     }
 
     // 查看操作
-    const checkItem = () => {
-      tableItem.value = {
-        id: '',
-        stationName: '',
-        stationCode: '',
-        stationAddress: '',
-        siteList: [],
-        done: '',
-        guaZai: '',
-      }
+    const checkItem_addItem = (row) => {
+      tableItem.value = row
       dialogTitle.value = '告警详情'
       showDialog.value = true
     }
 
-    //查看
+    //查看///添加操作
     const handleClick = (row) => {
       alert('查看对应站点(页面跳转)')
       console.log(row)
     }
 
-    // 添加操作
-    const addItem = () => {
-      tableItem.value = {
-        id: '',
-        happenTime: '',
-        alarmDes: '',
-        deviceName: '',
-        siteList: [],
-        done: '',
-        guaZai: '',
-      }
-      dialogTitle.value = '告警详情'
-      showDialog.value = true
-    }
-
     onMounted(() => {
       listSelect()
     })
@@ -196,6 +174,7 @@ export default defineComponent({
     const closeDialog = (flag) => {
       showDialog.value = flag
     }
+    
     //返回
     const goBack = () => {
       emit('func')
@@ -228,11 +207,10 @@ export default defineComponent({
       handleSizeChange,
       handleCurrentChange,
       goBack,
-      checkItem,
+      checkItem_addItem,
       headClass,
       cellStyle,
       handleClick,
-      addItem,
       listSelect,
       closeDialog,
 

+ 135 - 78
src/views/alarmManage/dialogComponent.vue

@@ -3,26 +3,49 @@
     :title="dialogTitle"
     v-model="showDialog"
     width="640px"
-    @close="closeDialog()"
+    @close="closeDialog"
   >
     <el-form
       ref="formInfo"
       :model="form"
       class="demo-form-inline alarmStatusDialog"
       label-width="100px"
-      :rules="rules"
     >
       <div class="topInfo underline">
-        <el-form-item label="卡号:" prop="stationName">
-          2021-09-14 14:53:28
+        <el-form-item label="告警时间:" prop="soeTime">
+          {{ itemInfo.soeTime }}
         </el-form-item>
         <el-form-item label="告警历时:" prop="stationCode">3分钟</el-form-item>
         <el-form-item label="关联告警:" prop="stationAddress">
           2021-09-14 14:54:59
         </el-form-item>
-        <div class="deviceTit">【测试站点主线】设备低压 复归:</div>
-        <el-button type="success" class="lubo">故障录播</el-button>
-        <div class="handleStatus">未处理</div>
+        <div class="deviceTit"></div>
+        <el-button type="success" class="lubo">
+          {{ itemInfo.measDesc }}
+        </el-button>
+        <div
+          class="handleStatus"
+          :style="{
+            color:
+              itemInfo.handlingStatus == 1
+                ? '#8DCF6E'
+                : itemInfo.handlingStatus == 2
+                ? '#FF747B'
+                : '#5c88fa',
+          }"
+        >
+          {{
+            itemInfo.handlingStatus == 0
+              ? '未处理'
+              : itemInfo.handlingStatus == 1
+              ? '已处理'
+              : itemInfo.handlingStatus == 2
+              ? '待确认'
+              : itemInfo.handlingStatus == 3
+              ? '自动恢复'
+              : '过期失效'
+          }}
+        </div>
       </div>
 
       <div class="basicTit">基本信息</div>
@@ -30,24 +53,28 @@
       <el-form-item label="站点名称:" prop="pointNum">测试站点1</el-form-item>
       <el-form-item label="台区展示:" prop="deviceNum">测试台区1</el-form-item>
       <el-form-item label="线路:" prop="deviceNum">进线二</el-form-item>
-      <el-form-item label="告警信息:" prop="deviceNum">低压</el-form-item>
-      <el-form-item label="告警状态:" prop="deviceNum">动作</el-form-item>
+      <el-form-item label="告警信息:" prop="deviceNum">
+        {{ itemInfo.measDesc.split(itemInfo.measDesc.slice(-2))[0] }}
+      </el-form-item>
+      <el-form-item label="告警状态:" prop="deviceNum">
+        {{ itemInfo.measDesc.slice(-2) }}
+      </el-form-item>
       <el-form-item label="采集终端:" prop="deviceNum">
-        DA00013433
+        {{ itemInfo.deviceCode }}
       </el-form-item>
       <el-form-item label="站点地址:" prop="deviceNum">
         沪太路8786弄155号
       </el-form-item>
       <el-form-item label="联系人:" prop="deviceNum">张三</el-form-item>
       <el-form-item label="联系方式:" prop="deviceNum">
-        12345675223
+        {{ itemInfo.handlerPhone }}
       </el-form-item>
 
       <div class="basicTit">处理信息</div>
 
       <el-form-item
-        label="处理内容"
-        prop="handleCont"
+        label="处理内容"
+        prop="handlingContent"
         style="margin-bottom: 20px"
       >
         <el-input
@@ -55,50 +82,52 @@
           :rows="2"
           type="textarea"
           placeholder="Please input"
+          v-if="itemInfo.handlingStatus != 1"
         />
+        <span v-if="itemInfo.handlingStatus == 1">
+          {{
+            itemInfo.handlingContent === '' ? '无' : itemInfo.handlingContent
+          }}
+        </span>
       </el-form-item>
 
-      <el-form-item label="现场照片" prop="deviceNum">
+      <el-form-item label="现场照片" prop="deviceNum">
         <el-upload
-          action="#"
+          :action="uploadUrl"
+          :on-success="handleUpAvatar"
+          :on-remove="handleRemove"
+          :show-file-list="true"
           list-type="picture-card"
-          :auto-upload="false"
           :limit="3"
+          :on-preview="handlePictureCardPreview"
+          :headers="{ accessToken: [accessToken] }"
+          v-if="itemInfo.handlingStatus != 1"
         >
-          <!-- slot="default" -->
           <i class="el-icon-plus"></i>
-          <!-- :default-slot="{ file }" -->
-          <div>
-            <!-- <img
-                      class="el-upload-list__item-thumbnail"
-                      :src="file.url"
-                      alt=""
-                    /> -->
-            <span class="el-upload-list__item-actions">
-              <span
-                class="el-upload-list__item-preview"
-                @click="handlePictureCardPreview(file)"
-              >
-                <!-- <i class="el-icon-zoom-in"></i> -->
-              </span>
-              <span
-                v-if="!disabled"
-                class="el-upload-list__item-delete"
-                @click="handleRemove(file)"
-              >
-                <i class="el-icon-delete"></i>
-              </span>
-            </span>
-          </div>
         </el-upload>
-        <el-dialog v-model="dialogVisible">
-          <img width="100%" :src="dialogImageUrl" alt="" />
+        <el-dialog title="查看图片" v-model="dialogVisible" width="400px">
+          <img
+            style="width: 100%"
+            :src="
+              itemInfo.handlingStatus == 1
+                ? fileImages + 'chart3-1.png'
+                : dialogImageUrl
+            "
+            alt=""
+          />
         </el-dialog>
+        <img
+          @click="handlePictureCardPreview"
+          v-if="itemInfo.handlingStatus == 1"
+          style="width: 90px"
+          :src="fileImages + 'chart3-1.png'"
+          alt=""
+        />
       </el-form-item>
       <br />
       <br />
       <br />
-      <div style="text-align: right">
+      <div style="text-align: right" v-if="itemInfo.handlingStatus != 1">
         <el-button @click="closeDialog()">取消</el-button>
         <el-button type="primary" @click="submitForm()">确定</el-button>
       </div>
@@ -107,14 +136,14 @@
 </template>
 
 <script>
-// import { useStore } from 'vuex'
-import { defineComponent, ref, watchEffect } from 'vue'
-// import * as api from '@/api/alarmManage/index'
+import { useStore } from 'vuex'
+import { defineComponent, ref, watchEffect, reactive, toRefs } from 'vue'
+import * as api from '@/api/alarmManage/index'
 import { ElMessage } from 'element-plus'
 
 export default defineComponent({
   name: 'DialogComponent',
-  emits: ['closeDialog'],
+  emits: ['closeDialog', 'listSelect'],
   props: {
     show_Dialog: Boolean,
     dialogTitle: {
@@ -129,16 +158,49 @@ export default defineComponent({
     },
   },
   setup(props, { emit }) {
+    const store = useStore()
     const showDialog = ref(false)
     const formInfo = ref(null)
     const form = JSON.parse(JSON.stringify(props.itemInfo))
+    const textarea = ref('')
     const dialogVisible = ref(false)
+    const accessToken = ref(store.state.user.accessToken)
+    const dialogImageUrl = ref('')
+    const fileImages = ref(window.PLATFROM_CONFIG.images)
+    const image = ref('')
+
+    const dataSet = reactive({
+      uploadUrl:
+        window.PLATFROM_CONFIG.baseUrl +
+        '/patrolInspectionDevice/pictureUpload',
+      fileList: [],
+    })
+
+    //删除照片
+    function handleRemove(res) {
+      Array.prototype.indexOf = function (val) {
+        for (var i = 0; i < this.length; i++) {
+          if (this[i] == val) return i
+        }
+        return -1
+      }
+      Array.prototype.remove = function (val) {
+        var index = this.indexOf(val)
+        if (index > -1) {
+          this.splice(index, 1)
+        }
+      }
+      dataSet.fileList.remove(res.name)
+    }
 
-    const handleRemove = (file) => {
-      console.log(file)
+    const handleUpAvatar = (res, file) => {
+      // console.log(res, file)
+      file
+      image.value = res.data
     }
+
     const handlePictureCardPreview = (file) => {
-      this.dialogImageUrl = file.url
+      dialogImageUrl.value = file.url
       dialogVisible.value = true
     }
 
@@ -160,26 +222,26 @@ export default defineComponent({
     // },
     // 保存操作
     const submitForm = () => {
-      const params = Object.assign(form.value, {})
-      console.log(params)
-      formInfo.value.validate((valid) => {
-        if (valid) {
-          // 走保存请求
-          ElMessage({
-            message: '操作成功!',
-            type: 'success',
-          })
-          closeDialog()
-        } else {
-          return false
-        }
-      })
+      api
+        .alarmPower({ id: props.itemInfo.id, handlingContent: textarea.value })
+        .then((requset) => {
+          if (requset.status === 'SUCCESS') {
+            ElMessage({
+              message: '操作成功!',
+              type: 'success',
+            })
+            closeDialog()
+            emit('listSelect')
+          } else {
+            ElMessage.error(requset.msg)
+          }
+        })
     }
 
     // 关闭弹框
-    const closeDialog = (flag) => {
+    const closeDialog = () => {
       showDialog.value = false
-      emit('closeDialog', flag)
+      emit('closeDialog', false)
     }
 
     watchEffect((fn, options) => {
@@ -188,6 +250,7 @@ export default defineComponent({
     })
 
     return {
+      handleUpAvatar,
       handleRemove,
       handlePictureCardPreview,
       resetForm,
@@ -195,9 +258,14 @@ export default defineComponent({
       submitForm,
       closeDialog,
 
+      ...toRefs(dataSet),
+      accessToken,
+      dialogImageUrl,
+      fileImages,
+      image,
       disabled: false,
       dialogVisible,
-      textarea: '请输入',
+      textarea,
       showDialog,
       form,
       formInfo,
@@ -223,17 +291,6 @@ export default defineComponent({
           label: '站点五',
         },
       ],
-
-      rules: {
-        handleCont: [
-          { required: true, message: '请输入处理内容', trigger: 'blur' },
-          { trigger: 'blur' },
-        ],
-        unloadImg: [
-          { required: true, message: '请上传图片', trigger: 'blur' },
-          { trigger: 'blur' },
-        ],
-      },
     }
   },
 })

+ 90 - 87
src/views/siteManage/basicInfo/index.vue

@@ -65,15 +65,15 @@
             </el-form-item>
 
             <el-form-item label="所属台区:" prop="stationAreaId">
-             <el-select v-model="ruleForm.stationAreaId" placeholder="请选择">
-              <el-option
-                v-for="(item, index) in platFormData"
-                :key="index"
-                :label="item.platformAreaName"
-                :value="item.id"
-              ></el-option>
-            </el-select>
-          </el-form-item>
+              <el-select v-model="ruleForm.stationAreaId" placeholder="请选择">
+                <el-option
+                  v-for="(item, index) in platFormData"
+                  :key="index"
+                  :label="item.platformAreaName"
+                  :value="item.id"
+                ></el-option>
+              </el-select>
+            </el-form-item>
 
             <el-form-item label="站点坐标:" prop="longitude">
               <el-input v-model="ruleForm.longitude" placeholder="请输入经度">
@@ -115,7 +115,7 @@
             <el-input v-model="ruleForm.rheologicalChange"></el-input>
           </el-form-item>
           <el-form-item label="所属线路" prop="routeId">
-             <el-select v-model="ruleForm.routeId" placeholder="请选择">
+            <el-select v-model="ruleForm.routeId" placeholder="请选择">
               <el-option
                 v-for="(item, index) in dropData"
                 :key="index"
@@ -239,9 +239,7 @@ export default defineComponent({
     const dialogImageUrl = ref('')
     const dialogVisible = ref(false)
     const disabled = ref(false)
-    const accessToken = ref(  // 请求头字段待写活
-      'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjFkNzIxMzA2LTVkMmYtNDE0MS1hMmI0LWIxMjgyMzVhZDM1ZCJ9.GpQLs96TH00EvUE4S5XsaYgFaL7gH5uabDpiFOHwDCxus0jdcB_gQu3XPB0BgJwNiFI8DA5JuQhSnnTezBbdyw'
-    )
+    const accessToken = ref(store.state.user.accessToken)
     const dropData = ref([])
     const dropData2 = ref([])
     const platFormData = ref([])
@@ -258,12 +256,12 @@ export default defineComponent({
       longitude: '',
       latitude: '',
       region: '1',
-      stationAreaId:'',
+      stationAreaId: '',
 
       demolitionStandardCoal1: '',
       demolitionStandardCoal: '1',
-      rheologicalChange:'',
-      routeId:'',
+      rheologicalChange: '',
+      routeId: '',
 
       faultStatus: '',
       realTimeLoad: '',
@@ -275,9 +273,9 @@ export default defineComponent({
       spareUserName: '',
       sparePhone: '',
 
-      sitePictureOne:'',
-      sitePictureTwo:'',
-      sitePictureThree:''
+      sitePictureOne: '',
+      sitePictureTwo: '',
+      sitePictureThree: '',
     })
 
     function handlePictureCardPreview(file) {
@@ -289,7 +287,8 @@ export default defineComponent({
 
     const dataSet = reactive({
       uploadUrl:
-        'http://172.16.1.196:8010/patrolInspectionDevice/pictureUpload',
+        window.PLATFROM_CONFIG.baseUrl +
+        '/patrolInspectionDevice/pictureUpload',
       // uploadUrl:'https://wx.ewoogi.com/USKYOF/USKYOF.php/Home/MonitoringReporting/setUpload',
       fileList: [],
     })
@@ -325,12 +324,20 @@ export default defineComponent({
 
     //表单提交
     function submitForm() {
-      ruleForm.value.sitePictureOne =  dataSet.fileList[0]
-      ruleForm.value.sitePictureTwo =  dataSet.fileList[1]
-      ruleForm.value.sitePictureThree =  dataSet.fileList[2]
-     
-      ruleForm.value.operationTime?ruleForm.value.operationTime = parseTime(ruleForm.value.operationTime):''
-      ruleForm.value.serviceDeadline?ruleForm.value.serviceDeadline = parseTime(ruleForm.value.serviceDeadline):''
+      ruleForm.value.sitePictureOne = dataSet.fileList[0]
+      ruleForm.value.sitePictureTwo = dataSet.fileList[1]
+      ruleForm.value.sitePictureThree = dataSet.fileList[2]
+
+      ruleForm.value.operationTime
+        ? (ruleForm.value.operationTime = parseTime(
+            ruleForm.value.operationTime
+          ))
+        : ''
+      ruleForm.value.serviceDeadline
+        ? (ruleForm.value.serviceDeadline = parseTime(
+            ruleForm.value.serviceDeadline
+          ))
+        : ''
 
       formInfo.value.validate((valid) => {
         if (valid) {
@@ -340,63 +347,63 @@ export default defineComponent({
           // ruleForm.value.operationTime = time[0]
           // ruleForm.value.serviceDeadline = time[1]
 
-          api.siteAdd(
-            {
-              site:{
-                "siteName":ruleForm.value.siteName,
-                "installedCapacity":ruleForm.value.installedCapacity,
-                "siteAddress":ruleForm.value.siteAddress,
-                "region":ruleForm.value.region,  
-                "stationAreaId":ruleForm.value.stationAreaId,
-                "longitude":ruleForm.value.longitude,
-                "latitude":ruleForm.value.latitude,
-                "userName":ruleForm.value.userName,
-                "phone":ruleForm.value.phone,
-                "spareUserName":ruleForm.value.spareUserName,
-                "sparePhone":ruleForm.value.sparePhone,
-                "rheologicalChange":ruleForm.value.rheologicalChange,
-                "routeId":ruleForm.value.routeId,
-                "groupingId":'1'   //字段值待写活
+          api
+            .siteAdd({
+              site: {
+                siteName: ruleForm.value.siteName,
+                installedCapacity: ruleForm.value.installedCapacity,
+                siteAddress: ruleForm.value.siteAddress,
+                region: ruleForm.value.region,
+                stationAreaId: ruleForm.value.stationAreaId,
+                longitude: ruleForm.value.longitude,
+                latitude: ruleForm.value.latitude,
+                userName: ruleForm.value.userName,
+                phone: ruleForm.value.phone,
+                spareUserName: ruleForm.value.spareUserName,
+                sparePhone: ruleForm.value.sparePhone,
+                rheologicalChange: ruleForm.value.rheologicalChange,
+                routeId: ruleForm.value.routeId,
+                groupingId: '1', //字段值待写活
+              },
+              siteDynamicProperties: {
+                siteType: ruleForm.value.siteType,
+                userCompany: ruleForm.value.userCompany,
+                operationTime: ruleForm.value.operationTime,
+                serviceDeadline: ruleForm.value.serviceDeadline,
+                powerSupplyType: ruleForm.value.powerSupplyType,
+                voltageLevel: ruleForm.value.voltageLevel,
+                demolitionStandardCoal: ruleForm.value.demolitionStandardCoal,
+                demolitionStandardCoal1: ruleForm.value.demolitionStandardCoal1,
+                faultStatus: ruleForm.value.faultStatus,
+                realTimeLoad: ruleForm.value.realTimeLoad,
+                totalElectricity: ruleForm.value.totalElectricity,
+                powerFactor: ruleForm.value.powerFactor,
+                sitePictureOne: ruleForm.value.sitePictureOne,
+                sitePictureTwo: ruleForm.value.sitePictureTwo,
+                sitePictureThree: ruleForm.value.sitePictureThree,
+              },
+            })
+            .then((requset) => {
+              if (requset.status === 'SUCCESS') {
+                ElMessage.success({
+                  message: '新增成功',
+                  type: 'success',
+                })
+                // if (props.dialogTitle === '新增') {
+                //   ElMessage.success({
+                //     message: '新增成功',
+                //     type: 'success',
+                //   })
+                // } else {
+                //   ElMessage.success({
+                //     message: '修改成功',
+                //     type: 'success',
+                //   })
+                // }
+              } else {
+                ElMessage.error(requset.msg)
               }
-              ,
-              siteDynamicProperties:{
-                "siteType":ruleForm.value.siteType,
-                "userCompany":ruleForm.value.userCompany,
-                "operationTime":ruleForm.value.operationTime,
-                "serviceDeadline":ruleForm.value.serviceDeadline,
-                "powerSupplyType":ruleForm.value.powerSupplyType,
-                "voltageLevel":ruleForm.value.voltageLevel,
-                "demolitionStandardCoal":ruleForm.value.demolitionStandardCoal,
-                "demolitionStandardCoal1":ruleForm.value.demolitionStandardCoal1,
-                "faultStatus":ruleForm.value.faultStatus,
-                "realTimeLoad":ruleForm.value.realTimeLoad,
-                "totalElectricity":ruleForm.value.totalElectricity,
-                "powerFactor":ruleForm.value.powerFactor,
-                "sitePictureOne":ruleForm.value.sitePictureOne,
-                "sitePictureTwo":ruleForm.value.sitePictureTwo,
-                "sitePictureThree":ruleForm.value.sitePictureThree,
-              }
-            }).then((requset) => {
-            if (requset.status === 'SUCCESS') {
-              ElMessage.success({
-                message: '新增成功',
-                type: 'success',
-              })
-              // if (props.dialogTitle === '新增') {
-              //   ElMessage.success({
-              //     message: '新增成功',
-              //     type: 'success',
-              //   })
-              // } else {
-              //   ElMessage.success({
-              //     message: '修改成功',
-              //     type: 'success',
-              //   })
-              // }
-            } else {
-              ElMessage.error(requset.msg)
-            }
-          })
+            })
         } else {
           console.log('error submit!!')
           return false
@@ -447,10 +454,6 @@ export default defineComponent({
       })
     }
 
-
-
-
-
     onMounted(() => {
       platformList()
       dynamicPropertiesDroplist(2)
@@ -519,7 +522,7 @@ export default defineComponent({
             trigger: 'blur',
           },
         ],
-        stationAreaId:[
+        stationAreaId: [
           { required: true, message: '请选择所属台区', trigger: 'change' },
         ],
         longitude: [{ required: true, message: '请输入经度', trigger: 'blur' }],