Pārlūkot izejas kodu

更新202111031855

fanghuisheng 3 gadi atpakaļ
vecāks
revīzija
fec545b4a1

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

@@ -18,7 +18,15 @@ export function alarmGradeList(params) {
     })
 }
 
-//巡检管理-巡检计划-计划列表详情
+//巡检管理-巡检计划-计划列表弹窗详情
+export function alarmPower1(params) {
+    return request({
+        url: '/alarmPower/' + params,
+        method: 'GET',
+    })
+}
+
+//巡检管理-巡检计划-计划列表详情-修改
 export function alarmPower(params) {
     return request({
         url: '/alarmPower/',

+ 6 - 3
src/assets/css/index.scss

@@ -401,10 +401,13 @@ ul li {
     }
     .topInfo {
         position: relative;
+        overflow: hidden;
         .lubo {
-            position: absolute;
-            right: 0px;
-            bottom: 20px;
+            // position: absolute;
+            // right: 0px;
+            // bottom: 20px;
+            float: right;
+            margin-bottom: 20px;
         }
         .handleStatus {
             position: absolute;

+ 6 - 2
src/main.js

@@ -44,5 +44,9 @@ app
 /**
  * @需添加路由拦截 --登录后执行
  */
-store.commit("publicSiteList");
-store.commit('publicDeviceList')
+router.beforeEach((to) => {
+  if (to.path != '/login') {
+    store.commit("publicSiteList");
+    store.commit('publicDeviceList')
+  }
+})

+ 1 - 1
src/store/modules/user.js

@@ -111,7 +111,7 @@ const actions = {
     // let { username, avatar, roles, ability } = data
     let { permissions, roles, user, ability } = data
     permissions
-    let { avatar , userName} = user
+    let { avatar, userName } = user
 
     if (userName && roles && Array.isArray(roles)) {
       dispatch('acl/setRole', roles, { root: true })

+ 47 - 18
src/views/alarmManage/dialogComponent.vue

@@ -4,6 +4,7 @@
     v-model="showDialog"
     width="640px"
     @close="closeDialog"
+    @open="open"
   >
     <el-form
       ref="formInfo"
@@ -15,12 +16,12 @@
         <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">
+        <!-- <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-form-item> -->
+        <!-- <div class="deviceTit"></div> -->
+        <el-button type="success" class="lubo" style="margin-bottom: 15px">
           {{ itemInfo.measDesc }}
         </el-button>
         <div
@@ -50,9 +51,15 @@
 
       <div class="basicTit">基本信息</div>
 
-      <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="pointNum">
+        {{ form.siteName }}
+      </el-form-item>
+      <el-form-item label="台区展示:" prop="deviceNum">
+        {{ form.stationArea }}
+      </el-form-item>
+      <el-form-item label="线路:" prop="deviceNum">
+        {{ form.route }}
+      </el-form-item>
       <el-form-item label="告警信息:" prop="deviceNum">
         {{ itemInfo.measDesc.split(itemInfo.measDesc.slice(-2))[0] }}
       </el-form-item>
@@ -60,14 +67,16 @@
         {{ itemInfo.measDesc.slice(-2) }}
       </el-form-item>
       <el-form-item label="采集终端:" prop="deviceNum">
-        {{ itemInfo.deviceCode }}
+        {{ form.deviceCode }}
       </el-form-item>
       <el-form-item label="站点地址:" prop="deviceNum">
-        沪太路8786弄155号
+        {{ form.siteAddress }}
+      </el-form-item>
+      <el-form-item label="联系人:" prop="deviceNum">
+        {{ form.sparUserName }}
       </el-form-item>
-      <el-form-item label="联系人:" prop="deviceNum">张三</el-form-item>
       <el-form-item label="联系方式:" prop="deviceNum">
-        {{ itemInfo.handlerPhone }}
+        {{ form.handlerPhone }}
       </el-form-item>
 
       <div class="basicTit">处理信息</div>
@@ -110,7 +119,7 @@
             style="width: 100%"
             :src="
               itemInfo.handlingStatus == 1
-                ? fileImages + 'chart3-1.png'
+                ? fileImages + form.image
                 : dialogImageUrl
             "
             alt=""
@@ -120,7 +129,7 @@
           @click="handlePictureCardPreview"
           v-if="itemInfo.handlingStatus == 1"
           style="width: 90px"
-          :src="fileImages + 'chart3-1.png'"
+          :src="fileImages + form.image"
           alt=""
         />
       </el-form-item>
@@ -161,13 +170,14 @@ export default defineComponent({
     const store = useStore()
     const showDialog = ref(false)
     const formInfo = ref(null)
-    const form = JSON.parse(JSON.stringify(props.itemInfo))
+    const form = ref([])
     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 imageFile = ref([])
 
     const dataSet = reactive({
       uploadUrl:
@@ -194,9 +204,8 @@ export default defineComponent({
     }
 
     const handleUpAvatar = (res, file) => {
-      // console.log(res, file)
-      file
       image.value = res.data
+      imageFile.value = file
     }
 
     const handlePictureCardPreview = (file) => {
@@ -223,13 +232,19 @@ export default defineComponent({
     // 保存操作
     const submitForm = () => {
       api
-        .alarmPower({ id: props.itemInfo.id, handlingContent: textarea.value })
+        .alarmPower({
+          id: props.itemInfo.id,
+          handlingContent: textarea.value,
+          image: image.value,
+          handlingStatus: 1,
+        })
         .then((requset) => {
           if (requset.status === 'SUCCESS') {
             ElMessage({
               message: '操作成功!',
               type: 'success',
             })
+            textarea.value = ''
             closeDialog()
             emit('listSelect')
           } else {
@@ -238,6 +253,15 @@ export default defineComponent({
         })
     }
 
+    const open = () => {
+      api.alarmPower1(props.itemInfo.id).then((requset) => {
+        if (requset.status === 'SUCCESS') {
+          form.value = requset.data
+        } else {
+          ElMessage.error(requset.msg)
+        }
+      })
+    }
     // 关闭弹框
     const closeDialog = () => {
       showDialog.value = false
@@ -250,6 +274,7 @@ export default defineComponent({
     })
 
     return {
+      open,
       handleUpAvatar,
       handleRemove,
       handlePictureCardPreview,
@@ -305,4 +330,8 @@ export default defineComponent({
 .el-form-item {
   margin-left: 0 !important;
 }
+</style>
+<style>
+.alarmStatusDialog .el-form-item:not(.user-layout .el-form-item) {
+}
 </style>

+ 19 - 7
src/views/deviceManage/powerEquip/communicateEquip/dialog/cloneDialog.vue

@@ -48,10 +48,16 @@
         </el-form-item>
         <el-form-item label="选择设备:" v-if="form.type != 1">
           <el-select
-            v-model="from.oldDeviceCode"
+            filterable
+            v-model="form.oldDeviceCode"
             placeholder="请选择所需克隆设备(可输入)"
           >
-            <el-option label="区域一" value="shanghai"></el-option>
+            <el-option
+              v-for="list in deviceList"
+              :key="list"
+              :label="list.deviceName"
+              :value="list.deviceCode"
+            ></el-option>
           </el-select>
         </el-form-item>
       </el-form>
@@ -96,7 +102,7 @@ import { ElMessage } from 'element-plus'
 export default defineComponent({
   name: 'powerEquip',
   components: {},
-  emits: ['closeNo'],
+  emits: ['closeNo', 'select'],
   props: {
     clone_Dialog: Boolean,
     DialogArray: Object,
@@ -121,16 +127,18 @@ export default defineComponent({
 
     const clone = () => {
       let list = {}
-      if (form.value.cloneInputCode == 1) {
+      if (form.value.type == 1) {
         list = {
           type: form.value.type,
+          oldDeviceCode: props.DialogArray.deviceCode,
           newDeviceCode: form.value.cloneInputCode,
           deviceName: form.value.cloneInputName,
         }
       } else {
         list = {
           type: form.value.type,
-          oldDeviceCode: form.value.oldDeviceCode,
+          newDeviceCode: form.value.oldDeviceCode,
+          oldDeviceCode: props.DialogArray.deviceCode,
         }
       }
       ruleForm.value.validate((valid) => {
@@ -141,6 +149,8 @@ export default defineComponent({
                 message: '克隆成功',
                 type: 'success',
               })
+              close()
+              context.emit('Select')
             } else {
               ElMessage.error(requset.msg)
             }
@@ -159,6 +169,9 @@ export default defineComponent({
 
     // close(): Dialog弹窗关闭之后做的事
     const close = () => {
+      form.value.cloneInputName = ''
+      form.value.cloneInputCode = ''
+      form.value.oldDeviceCode = ''
       context.emit('closeNo', false)
       cloneDialog.value = false
     }
@@ -170,8 +183,7 @@ export default defineComponent({
         })
         .then((requset) => {
           if (requset.status === 'SUCCESS') {
-            console.log(requset.data)
-            // deviceList.value =
+            deviceList.value = requset.data
           } else {
             ElMessage.error(requset.msg)
           }

+ 58 - 1
src/views/deviceManage/powerEquip/communicateEquip/index.vue

@@ -23,7 +23,21 @@
       </div>
 
       <div class="comRight">
-        <el-button type="primary">导入</el-button>
+        <el-upload
+          class="upload-demo"
+          :action="fileUrl + 'device/deviceImport'"
+          :on-progress="handleProgress"
+          :on-success="handleUpAvatar"
+          multiple
+          :limit="1"
+          :headers="{
+            accessToken: [accessToken],
+          }"
+          :file-list="fileList"
+          style="float: right"
+        >
+          <el-button size="small" type="primary">导入</el-button>
+        </el-upload>
         <el-button type="primary" @click="DataReportExport()">导出</el-button>
       </div>
     </div>
@@ -157,6 +171,7 @@
       <clone-Dialog
         :clone_Dialog="cloneDialogBool"
         @closeNo="closeNo"
+        @Select="Select"
         :DialogArray="DialogArray"
       ></clone-Dialog>
     </div>
@@ -197,6 +212,39 @@ export default defineComponent({
     const cloneDialogBool = ref(false)
     const DialogArray = ref([])
 
+    const fileUrl = ref(window.PLATFROM_CONFIG.baseUrl)
+    const fileList = ref([])
+    const accessToken = ref(store.state.user.accessToken)
+
+    const handleProgress = (file, fileList) => {
+      file
+      if (
+        !(
+          fileList.raw.type ===
+            'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ||
+          fileList.raw.type === 'application/vnd.ms-excel'
+        )
+      ) {
+        ElMessage({
+          message: '上传文件只能是 xls 和 xlsx 格式!',
+          type: 'error',
+        })
+        return false
+      } else {
+        return true
+      }
+    }
+
+    const handleUpAvatar = (res, file) => {
+      console.log(res, file)
+      fileList.value = []
+      ElMessage.success({
+        message: '导入成功',
+        type: 'success',
+      })
+      Select()
+    }
+
     //导出
     const DataReportExport = () => {
       api
@@ -221,6 +269,7 @@ export default defineComponent({
       DialogArray.value = row
       cloneDialogBool.value = true
     }
+
     //克隆弹窗关闭
     const closeNo = (value) => {
       cloneDialogBool.value = value
@@ -245,6 +294,7 @@ export default defineComponent({
           }
         })
     }
+
     //新增
     const Insert = () => {
       dialogBool.value = true
@@ -259,6 +309,7 @@ export default defineComponent({
         sim: '',
       }
     }
+
     //修改
     const Update = (row) => {
       dialogBool.value = true
@@ -349,6 +400,12 @@ export default defineComponent({
       dialogTitle,
       dataList,
       loading,
+
+      fileList,
+      fileUrl,
+      accessToken,
+      handleProgress,
+      handleUpAvatar,
     }
   },
 })