yusheng vor 5 Monaten
Ursprung
Commit
1324cd0e9a

+ 59 - 11
src/views/alarmConfiguration/alarmDialog.vue

@@ -1,7 +1,7 @@
 <template>
   <ele-modal
     :visible.sync="visible"
-    :title="isEdit ? '编辑告警配置' : '新增告警配置'"
+    title="告警配置"
     width="70%"
     append-to-body
     :maxable="true"
@@ -23,6 +23,7 @@
               v-model="form.level"
               placeholder="请选择"
               style="width: 100%"
+              :disabled="type == 'view'"
             >
               <el-option
                 v-for="item in options.alarmLevel"
@@ -35,7 +36,11 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="告警名称:" prop="name">
-            <el-input v-model="form.name" placeholder="请输入" />
+            <el-input
+              v-model="form.name"
+              placeholder="请输入"
+              :disabled="type == 'view'"
+            />
           </el-form-item>
         </el-col>
         <el-col :span="8">
@@ -44,6 +49,7 @@
               v-model="form.energyTypeCode"
               placeholder="请选择"
               style="width: 100%"
+              :disabled="type == 'view'"
             >
               <el-option
                 v-for="item in energyClassificationList"
@@ -64,6 +70,7 @@
               placeholder="请选择(可多选,为空则统计全部)"
               readonly
               @click.native="openAreaIds"
+              :disabled="type == 'view'"
             />
             <!-- <areaSelect
               v-model="form.areaIds"
@@ -88,7 +95,11 @@
         </el-col>
         <el-col :span="8">
           <el-form-item label="告警描述:" prop="description">
-            <el-input v-model="form.description" placeholder="请输入" />
+            <el-input
+              v-model="form.description"
+              placeholder="请输入"
+              :disabled="type == 'view'"
+            />
           </el-form-item>
         </el-col>
         <!-- <el-col :span="8">
@@ -107,6 +118,7 @@
               v-model="form.triggerLogic"
               placeholder="请选择"
               style="width: 100%"
+              :disabled="type == 'view'"
             >
               <el-option
                 v-for="item in options.triggerLogic"
@@ -127,7 +139,11 @@
           class="condition-row"
         >
           <div class="condition-item">
-            <el-select v-model="item.attribute" placeholder="请选择">
+            <el-select
+              v-model="item.attribute"
+              placeholder="请选择"
+              :disabled="type == 'view'"
+            >
               <el-option
                 v-for="field in options.conditionField"
                 :key="field.value"
@@ -137,7 +153,11 @@
             </el-select>
           </div>
           <div class="condition-item">
-            <el-select v-model="item.operator" placeholder="=">
+            <el-select
+              v-model="item.operator"
+              placeholder="="
+              :disabled="type == 'view'"
+            >
               <el-option
                 v-for="op in options.conditionOperator"
                 :key="op.value"
@@ -150,6 +170,7 @@
             <el-input
               type="number"
               v-model="item.thresholdValue"
+              :disabled="type == 'view'"
               placeholder="请输入"
             >
               <template slot="append">{{ getCurrentUnit() }}</template>
@@ -167,11 +188,17 @@
           <el-button
             type="text"
             class="danger-text"
+            v-if="type != 'view'"
             @click="removeCondition(index)"
             >删除</el-button
           >
         </div>
-        <el-button type="text" class="add-condition-btn" @click="addCondition">
+        <el-button
+          type="text"
+          class="add-condition-btn"
+          @click="addCondition"
+          v-if="type != 'view'"
+        >
           <i class="el-icon-plus"></i> 增加条件
         </el-button>
       </div>
@@ -179,7 +206,11 @@
       <!-- 第三部分:通知设置 -->
       <header-title title="通知设置"></header-title>
       <div class="table-header">
-        <el-button type="primary" size="small" @click="addNotifyPerson"
+        <el-button
+          type="primary"
+          size="small"
+          @click="addNotifyPerson"
+          v-if="type != 'view'"
           >添加</el-button
         >
       </div>
@@ -197,7 +228,12 @@
         ></el-table-column>
         <el-table-column label="通知人" min-width="200" align="center">
           <template slot-scope="scope">
-            <el-select filterable v-model="scope.row.receiverIds" size="small">
+            <el-select
+              filterable
+              v-model="scope.row.receiverIds"
+              size="small"
+              :disabled="type == 'view'"
+            >
               <el-option
                 v-for="item in alarmNotifierList"
                 :key="item.id"
@@ -213,7 +249,13 @@
             <el-tag size="small" type="primary">系统</el-tag>
           </template>
         </el-table-column>
-        <el-table-column label="操作" width="80" align="center" fixed="right">
+        <el-table-column
+          label="操作"
+          width="80"
+          align="center"
+          fixed="right"
+          v-if="type != 'view'"
+        >
           <template slot-scope="scope">
             <el-button
               type="text"
@@ -227,7 +269,11 @@
     </el-form>
 
     <template v-slot:footer>
-      <el-button type="primary" @click="save()" v-loading="loading"
+      <el-button
+        type="primary"
+        @click="save()"
+        v-loading="loading"
+        v-if="type != 'view'"
         >确定</el-button
       >
       <el-button @click="cancel">取消</el-button>
@@ -308,6 +354,7 @@
         visible: false,
         visible1: false,
         loading: false,
+        type: 'add',
         isEdit: false,
         energyConsumingUnitList,
         energyClassificationList: [],
@@ -330,9 +377,10 @@
       };
     },
     methods: {
-      async open(row) {
+      async open(row, type) {
         this.getUserList();
         this.visible = true;
+        this.type = type;
         this.loadEnergyClassificationList();
         if (row && row.id) {
           this.isEdit = true;

+ 17 - 5
src/views/alarmConfiguration/index.vue

@@ -22,6 +22,15 @@
           height="calc(100vh - 350px)"
           @columns-change="handleColumnChange"
         >
+          <template v-slot:code="{ row }">
+            <el-link
+              type="primary"
+              :underline="false"
+              @click="handleEdit(row, 'view')"
+            >
+              {{ row.code }}
+            </el-link>
+          </template>
           <template v-slot:toolbar
             ><el-button
               type="primary"
@@ -49,7 +58,10 @@
             </el-tag>
           </template>
           <template v-slot:action="{ row }">
-            <el-link type="primary" :underline="false" @click="handleEdit(row)"
+            <el-link
+              type="primary"
+              :underline="false"
+              @click="handleEdit(row, 'edit')"
               >编辑</el-link
             >
             <el-link
@@ -134,7 +146,7 @@
             showOverflowTooltip: true,
             minWidth: 150
           },
-     {
+          {
             prop: 'energyTypeName',
             label: '能源名称',
             align: 'center',
@@ -189,11 +201,11 @@
     methods: {
       // 新增
       handleAdd() {
-        this.$refs.alarmDialogRef.open();
+        this.$refs.alarmDialogRef.open('', 'add');
       },
       // 编辑
-      handleEdit(row) {
-        this.$refs.alarmDialogRef.open(row);
+      handleEdit(row, type) {
+        this.$refs.alarmDialogRef.open(row, type);
       },
       remove(row) {
         remove([row.id]).then((res) => {

+ 12 - 8
src/views/useEnergyWarning/index.vue

@@ -87,11 +87,15 @@
           autoAmendPage
           height="calc(100vh - 350px)"
         >
-          <!-- <template v-slot:toolbar>
-            <el-button type="success" size="small" icon="el-icon-download"
-              >导出</el-button
-            ></template
-          > -->
+          <template v-slot:code="{ row }">
+            <el-link
+              type="primary"
+              :underline="false"
+              @click="handleProcess(row, 'view')"
+            >
+              {{ row.code }}
+            </el-link>
+          </template>
           <template v-slot:warningLevel="{ row }">
             <el-tag
               :type="getWarningLevelType(row.warningLevel)"
@@ -112,7 +116,7 @@
               type="primary"
               :underline="false"
               v-if="row.handleStatus != 2"
-              @click="handleProcess(row)"
+              @click="handleProcess(row, 'edit')"
               >处理</el-link
             >
             <!-- <el-link
@@ -364,8 +368,8 @@
         });
       },
       // 处理
-      handleProcess(row) {
-        this.$refs.processDialogRef.open(row);
+      handleProcess(row,type) {
+        this.$refs.processDialogRef.open(row,type);
       },
       // 转派
       handleTransfer(row) {

+ 31 - 11
src/views/useEnergyWarning/processDialog.vue

@@ -61,6 +61,7 @@
               style="width: 100%"
               format="yyyy-MM-dd HH:mm:ss"
               value-format="yyyy-MM-dd HH:mm:ss"
+              :disabled="type == 'view'"
             ></el-date-picker>
           </el-form-item>
         </el-col>
@@ -69,6 +70,7 @@
             <el-select
               v-model="form.handleType"
               placeholder="请选择"
+              :disabled="type == 'view'"
               style="width: 100%"
             >
               <el-option label="现场处理" :value="1"></el-option>
@@ -91,6 +93,7 @@
           <el-form-item label="处理意见:">
             <el-input
               v-model="form.handleOpinion"
+              :disabled="type == 'view'"
               type="textarea"
               :rows="4"
               placeholder="请输入"
@@ -101,7 +104,10 @@
       <el-row>
         <el-col :span="24">
           <el-form-item label="处理定性:">
-            <el-radio-group v-model="form.qualitativeProcessing">
+            <el-radio-group
+              v-model="form.qualitativeProcessing"
+              :disabled="type == 'view'"
+            >
               <el-radio :label="1">已核查,没问题</el-radio>
               <el-radio :label="2">请现场核查确定</el-radio>
             </el-radio-group>
@@ -111,14 +117,21 @@
       <el-row>
         <el-col :span="24">
           <el-form-item label="处理照片:">
-            <fileMain v-model="handleImg"></fileMain>
+            <fileMain
+              v-model="handleImg"
+              :type="type == 'view' ? 'view' : 'add'"
+            ></fileMain>
           </el-form-item>
         </el-col>
       </el-row>
     </el-form>
 
     <template v-slot:footer>
-      <el-button type="primary" @click="save()" v-loading="loading"
+      <el-button
+        type="primary"
+        @click="save()"
+        v-loading="loading"
+        v-if="type != 'view'"
         >保存</el-button
       >
       <el-button @click="cancel">关闭</el-button>
@@ -127,7 +140,10 @@
 </template>
 
 <script>
-  import { powerusagealarmlogsheetGetById,powerusagealarmlogsheetHandle } from '@/api/alarmConfiguration/index.js';
+  import {
+    powerusagealarmlogsheetGetById,
+    powerusagealarmlogsheetHandle
+  } from '@/api/alarmConfiguration/index.js';
 
   const defForm = {
     name: '',
@@ -150,6 +166,7 @@
         visible: false,
         loading: false,
         form: { ...defForm },
+        type: 'edit',
         fileList: [],
         rules: {
           processTime: [
@@ -162,8 +179,9 @@
       };
     },
     methods: {
-      async open(row) {
+      async open(row, type) {
         this.visible = true;
+        this.type = type;
         if (row) {
           this.form = await powerusagealarmlogsheetGetById(row.id);
         }
@@ -181,12 +199,14 @@
           if (valid) {
             this.loading = true;
             // let api = this.form.id ? update : save;
-            powerusagealarmlogsheetHandle(this.form).then((res) => {
-              this.loading = false;
-              this.$message.success('操作成功');
-              this.cancel();
-              this.$emit('reload');
-            }).finally(() => {
+            powerusagealarmlogsheetHandle(this.form)
+              .then((res) => {
+                this.loading = false;
+                this.$message.success('操作成功');
+                this.cancel();
+                this.$emit('reload');
+              })
+              .finally(() => {
                 this.loading = false;
               });
           }