liling před 1 rokem
rodič
revize
e7552900e9

+ 3 - 3
src/layout/components/Sidebar/Logo.vue

@@ -33,7 +33,7 @@ export default {
       // title: '边缘检测',
       title: defaultSettings.title || '边代检测',
       subTitle: '边代检测版本 V2.0.1',
-      logo: require('@/assets/index/logo.png')
+      logo: null // require('@/assets/index/logo.png')
     }
   }
 }
@@ -63,10 +63,10 @@ export default {
     width: 100%;
 
     & .sidebar-logo {
-      width: 50px;
+      width: 0px;
       height: 50px;
       vertical-align: middle;
-      margin: 10px 20px;
+      margin: 10px;
       float: left;
     }
 

+ 96 - 27
src/views/device/components/ModelFormCommandOpt104.vue

@@ -73,6 +73,19 @@
     </div>
     <div v-if="isYaoTiao" class="model-form">
       <div style="text-align: center;">
+        <div style="font-size: 1.2rem;">
+          <span>*设定遥调值:</span>
+          <el-input
+            v-model="modelYaoTiaoOpt.value"
+            class=""
+            clearable
+            placeholder="请输入"
+            type="number"
+            maxlength="5"
+            :disabled="inputvalueFlag"
+            style="width:180px;margin-right: 2rem;"
+          />
+        </div>
         <div class="submit" style="padding-top: 2%;">
           <el-button
             style="padding: 1rem 3rem;"
@@ -85,19 +98,6 @@
         </div>
         <div style=" font-weight: bold;margin: 1rem 0;">操作结果:<span :class="`yaokong_pre_result${yaoTiaoCommnad.result}`">{{ yaoTiaoCommnad.resultText }}</span></div>
         <div style="border: 1px solid #ccc;padding: 3rem 5rem;">
-          <div style="font-size: 1.2rem;">
-            <span>*设定遥调值:</span>
-            <el-input
-              v-model="modelYaoTiaoOpt.value"
-              class=""
-              clearable
-              placeholder="请输入"
-              type="number"
-              maxlength="5"
-              :disabled="yaoTiaoCommnad.result!==1"
-              style="width:180px;margin-right: 2rem;"
-            />
-          </div>
           <div style="margin: 2rem 0;">
             <el-button
               style="padding: 1rem 5rem;"
@@ -108,6 +108,14 @@
               @click="commitYaoTiaoExecute"
             >执行</el-button>
           </div>
+          <div style="margin: 2rem 0;">
+            <el-button
+              style="padding: 1rem 5rem;"
+              size="big"
+              :disabled="yaoTiaoCommnad.result!==1"
+              @click="commitYaoTiaoCancel"
+            >撤消</el-button>
+          </div>
           <div style=" font-weight: bold;margin: 1rem 0;">操作结果:<span :class="`yaokong_pre_result${yaoTiaoCommnad.result2}`">{{ yaoTiaoCommnad.result2Text }}</span></div>
         </div>
       </div>
@@ -157,6 +165,7 @@ export default {
       modelYaoTiaoOpt: {
         value: ''
       },
+      inputvalueFlag: false, // 遥调值输入框状态
       isYaoKong: false,
       isYaoTiao: false,
       yaoKongCommand: {
@@ -190,7 +199,6 @@ export default {
     // 初始化
     this.$nextTick(() => {
       this.initFunctions()
-      console.log('modelParames:', this.modelParames)
     })
   },
   methods: {
@@ -199,15 +207,14 @@ export default {
       //  初始化 值类型 下拉框选项
       this.valueTypeOptions = JSON.parse(localStorage.getItem('valueTypeOptions'))
       // 因为 this.modelForm 在前面已经赋值过了,所以这里必须使用 set 的方式赋值,否则无法更新选项
-
       //  初始化 功能码 下拉框选项
       this.checkPointFuctionOptions = JSON.parse(localStorage.getItem('checkPointFuctionOptions'))
       if (this.modelParames.modelFormData.range === 'COIL_STATUS') {
-        this.comonentVar.modelTitle = `遥控操作 ${this.modelParames.deviceName}-${this.modelParames.modelFormData.name}`
+        this.comonentVar.modelTitle = `遥控操作 ${this.modelParames.modelFormData.name}`
         this.isYaoKong = true
         this.isYaoTiao = false
       } else {
-        this.comonentVar.modelTitle = `遥调操作 ${this.modelParames.deviceName}-${this.modelParames.modelFormData.name}`
+        this.comonentVar.modelTitle = `遥调操作 ${this.modelParames.modelFormData.name}`
         this.isYaoKong = false
         this.isYaoTiao = true
       }
@@ -224,7 +231,7 @@ export default {
       var urlencoded = new URLSearchParams()
       urlencoded.append('stage', 'execute')
       urlencoded.append('tag', this.modelParames.modelFormData.iec104)
-      urlencoded.append('v1', this.modelYaoKongOpt.p1 === '1')
+      urlencoded.append('value', this.modelYaoKongOpt.p1 !== '1')
       postData(`/iec104/master/${this.modelParames.curPlanId}/ctrl`, urlencoded).then((res) => {
         this.yaoKongCommand.result3 = 1
         this.yaoKongCommand.result3Text = '执行成功'
@@ -247,7 +254,7 @@ export default {
       var urlencoded = new URLSearchParams()
       urlencoded.append('stage', 'select')
       urlencoded.append('tag', this.modelParames.modelFormData.iec104)
-      urlencoded.append('v1', this.modelYaoKongOpt.p1 === '1')
+      urlencoded.append('value', this.modelYaoKongOpt.p1 !== '1')
       postData(`/iec104/master/${this.modelParames.curPlanId}/ctrl`, urlencoded).then((res) => {
         this.yaoKongCommand.result = 1 // 可进行遥控
         this.yaoKongCommand.resultText = '执行成功'
@@ -267,9 +274,9 @@ export default {
       this.yaoKongCommand.result2Text = '进行中...'
       this.yaoKongCommand.result = -1 // 禁用预控及遥控
       var urlencoded = new URLSearchParams()
-      urlencoded.append('stage', 'select')
+      urlencoded.append('stage', 'execute')
       urlencoded.append('tag', this.modelParames.modelFormData.iec104)
-      urlencoded.append('v1', this.modelYaoKongOpt.p1 === '1')
+      urlencoded.append('value', this.modelYaoKongOpt.p1 !== '1')
       postData(`/iec104/master/${this.modelParames.curPlanId}/ctrl`, urlencoded).then((res) => {
         // 操作成功
         this.yaoKongCommand.result = -1
@@ -287,27 +294,61 @@ export default {
       // 遥控撤消
       this.yaoKongCommand.result2 = 0
       this.yaoKongCommand.result2Text = '进行中...'
-      // 操作成功
-      this.yaoKongCommand.result = -1
-      this.yaoKongCommand.resultText = '未执行'
-      this.yaoKongCommand.result2 = -1
-      this.yaoKongCommand.result2Text = '需先进行预控'
+      var urlencoded = new URLSearchParams()
+      urlencoded.append('stage', 'cancel')
+      urlencoded.append('tag', this.modelParames.modelFormData.iec104)
+      urlencoded.append('value', this.modelYaoKongOpt.p1 !== '1')
+      postData(`/iec104/master/${this.modelParames.curPlanId}/ctrl`, urlencoded).then((res) => {
+        // 操作成功
+        this.yaoKongCommand.result = -1
+        this.yaoKongCommand.resultText = '未执行'
+        this.yaoKongCommand.result2 = -1
+        this.yaoKongCommand.result2Text = '需先进行预控'
+      }).catch((_err) => {
+        this.yaoKongCommand.result2 = 2 // 恢复本身
+        this.yaoKongCommand.result2Text = '执行失败!'
+        this.yaoKongCommand.result = -1 // 恢复预控
+        this.yaoKongCommand.resultText = '未执行'
+      })
     },
     commitYaoTiaoSelect() {
+      const v = this.modelYaoTiaoOpt.value.replace(/ /gi, '')
+      if (v === '') {
+        Message({
+          message: '遥调值不能为空!',
+          type: 'error',
+          duration: 3 * 1000,
+          offset: window.screen.height / 3
+        })
+        return
+      }
+      if (isNaN(v)) {
+        Message({
+          message: '遥调值只能为数字!',
+          type: 'error',
+          duration: 3 * 1000,
+          offset: window.screen.height / 3
+        })
+        return
+      }
       // 遥调选择
       this.yaoTiaoCommnad.result = -1 // 禁用本身
       this.yaoTiaoCommnad.resultText = '进行中...'
       this.yaoTiaoCommnad.result2 = -1 // 禁用遥控
-      this.modelYaoTiaoOpt.value = ''
+      this.inputvalueFlag = true
       var urlencoded = new URLSearchParams()
+      urlencoded.append('stage', 'select')
       urlencoded.append('tag', this.modelParames.modelFormData.iec104)
+      urlencoded.append('value', v)
       postData(`/iec104/master/${this.modelParames.curPlanId}/normalized`, urlencoded).then((res) => {
         // 操作成功
+        // this.inputvalueFlag = false
         this.yaoTiaoCommnad.result2 = -1
         this.yaoTiaoCommnad.result2Text = '未执行'
         this.yaoTiaoCommnad.result = 1
         this.yaoTiaoCommnad.resultText = '执行成功!'
       }).catch((_err) => {
+        this.inputvalueFlag = false
         // 禁用 选择 按钮
         this.yaoTiaoCommnad.result = 2
         this.yaoTiaoCommnad.resultText = '执行失败!'
@@ -322,6 +363,30 @@ export default {
         }, 3000)
       })
     },
+    commitYaoTiaoCancel() {
+      // 遥调撤消
+      const v = this.modelYaoTiaoOpt.value.replace(/ /gi, '')
+      this.yaoTiaoCommnad.result2 = 0
+      this.yaoTiaoCommnad.result2Text = '进行中...'
+      var urlencoded = new URLSearchParams()
+      urlencoded.append('stage', 'cancel')
+      urlencoded.append('tag', this.modelParames.modelFormData.iec104)
+      urlencoded.append('value', v)
+      postData(`/iec104/master/${this.modelParames.curPlanId}/normalized`, urlencoded).then((res) => {
+        // 操作成功
+        this.inputvalueFlag = false
+        this.yaoTiaoCommnad.result = -1
+        this.yaoTiaoCommnad.resultText = '未执行'
+        this.yaoTiaoCommnad.result2 = -1
+        this.yaoTiaoCommnad.result2Text = '需先进行选择'
+      }).catch((_err) => {
+        this.inputvalueFlag = false
+        this.yaoTiaoCommnad.result2 = 2 // 恢复本身
+        this.yaoTiaoCommnad.result2Text = '执行失败!'
+        this.yaoTiaoCommnad.result = -1 // 恢复预控
+        this.yaoTiaoCommnad.resultText = '未执行'
+      })
+    },
     commitYaoTiaoExecute() {
       // 遥调执行
       const v = this.modelYaoTiaoOpt.value.replace(/ /gi, '')
@@ -346,14 +411,18 @@ export default {
       this.yaoTiaoCommnad.result2 = 0
       this.yaoTiaoCommnad.result2Text = '执行中'
       this.yaoTiaoCommnad.result = -1
+      this.inputvalueFlag = true
       var urlencoded = new URLSearchParams()
+      urlencoded.append('stage', 'execute')
       urlencoded.append('tag', this.modelParames.modelFormData.iec104)
       urlencoded.append('value', v)
       postData(`/iec104/master/${this.modelParames.curPlanId}/normalized`, urlencoded).then((res) => {
         // 操作成功
+        this.inputvalueFlag = false
         this.yaoTiaoCommnad.result2 = 1
         this.yaoTiaoCommnad.result2Text = '执行成功!'
       }).catch((_err) => {
+        this.inputvalueFlag = false
         // 禁用 执行 按钮
         this.yaoTiaoCommnad.result2 = 2
         this.yaoTiaoCommnad.result2Text = '执行失败!'

+ 17 - 15
src/views/device/components/ModelReport_master104.vue

@@ -58,12 +58,22 @@
               </template>
             </el-table-column>
           </el-table>
+          <el-col :span="20">
+            <pagination
+              background
+              layout="pager"
+              :limit="pageLimit"
+              :total="paginationTotalElements"
+              :current-page.sync="paginationNumber"
+              @pagination="refreshReport"
+            />
+          </el-col>
         </div>
       </el-col>
       <el-col :span="6">
         <div class="right-report">
           <!-- 解析结果显示 -->
-          <div class="analysis-result">
+          <div class="analysis-result" :height="tableHeight">
             <div v-if="comonentVar.analysisResult.length<=0" class="empty-result">暂无解析结果</div>
             <div v-else>
               <ul
@@ -83,18 +93,6 @@
         </div>
       </el-col>
     </el-row>
-    <el-row>
-      <el-col>
-        <pagination
-          background
-          layout="pager"
-          :limit="pageLimit"
-          :total="paginationTotalElements"
-          :current-page.sync="paginationNumber"
-          @pagination="refreshReport"
-        />
-      </el-col>
-    </el-row>
   </div>
 </template>
 <script>
@@ -171,7 +169,7 @@ export default {
     // 报文查询 接口 /test/execute/:runner/message
     // 猜测 runner 应该是 planId
     // 动态设置表格高度
-    const marginBottom = 440
+    const marginBottom = 340
     this.tableHeight = window.innerHeight - marginBottom
 
     this.refreshReport()
@@ -196,13 +194,14 @@ export default {
     // swagger 接口 删除通信日志 /test/execute/{id}/message
     // id 3200000252
     clearReport() {
+      this.comonentVar.analysisResult = ''
       const delUrl = `/test/execute/${this.reportParames.curPlanId}/message`
       delRecord(delUrl).then(res => {
         // 删除成功
         // 刷新表格
         this.refreshReport()
         this.$message({
-          message: '清空成功',
+          message: '清空操作成功',
           type: 'success',
           duration: 1500,
           offset: window.screen.height / 3
@@ -276,6 +275,7 @@ export default {
       // 报文解析接口 /test/message/:id
       // 猜测 这个id 应该是前面 报文查询 接口 返回的id
       httpGet(`/test/message/${row.id}`).then(res => {
+        this.comonentVar.analysisResult = ''
         if (res.items && res.items.length > 0) {
           this.comonentVar.analysisResult = res.items
         }
@@ -347,6 +347,7 @@ export default {
     width: 100%;
     height: 100%;
     padding: 0;
+    overflow-y: auto;
     // display: flex;
     // justify-content: center;
     // align-items: flex-start;
@@ -385,6 +386,7 @@ export default {
     .empty-result {
       text-align: center;
       color: #ccc;
+      line-height: 5rem;
     }
   }
 }

+ 1 - 1
src/views/device/tables/Example.vue

@@ -73,8 +73,8 @@
               <span :style="{'color':scope.row.stateStyle}">{{ scope.row.state }}</span>
             </template>
           </el-table-column>
-          <el-table-column v-if="false" prop="ruleId" label="测试规则ID" width="175px" />
           <el-table-column prop="ruleName" label="测试规则" width="135px" />
+          <el-table-column prop="duration" label="执行时间" width="135px" />
           <!-- 鲜总说不要了 06.测试/20230704/设备检测用例相关改动.png
           <el-table-column prop="not" label="规则取反" width="75px" :formatter="formatBool" />
           <el-table-column prop="value" label="期望值" width="75px" />

+ 3 - 4
src/views/device/tables/Sample_master104.vue

@@ -21,7 +21,6 @@
       <div class="title-container">
         <div class="title-main">采样值</div>
         <div class="title-right">
-          <!--
           <div class="check-resaults">
             <el-button
               icon="el-icon-refresh-left"
@@ -30,7 +29,6 @@
               @click="refreshManual(true)"
             >刷新</el-button>
           </div>
-          -->
           <div class="check-resaults">
             <!-- 导入即是上传文件 -->
             <el-upload
@@ -139,7 +137,7 @@
         <el-table :key="tableIsUpdate" v-loading="vLoading" :data="tableData.filter((r) => r.isshow)" stripe max-height="300">
           <el-table-column prop="iec104" label="104点号" width="100px" />
           <el-table-column prop="name" label="测点名称" />
-          <el-table-column prop="groupingName" label="设备名称" />
+          <el-table-column prop="groupingName" label="设备分组" />
           <el-table-column prop="rangeName" label="点号类型" width="175px">
             <template slot-scope="scope">
               <span class="range">{{ scope.row.rangeName }}</span>
@@ -640,11 +638,12 @@ export default {
 }
 .card-label>li{
   white-space: nowrap;
+  list-style-position:inside;
   // text-overflow: ellipsis;
   // overflow: hidden;
 }
 .card-label-linkline{
-    margin-left: 12.5px;
+    margin-left: 1.45rem;
     height: 31px;
     width: 1px;
     left: 0;

+ 8 - 20
src/views/plan/components/PlanCheckPoint_master104.vue

@@ -84,7 +84,7 @@
             />
           </template>
         </el-table-column>
-        <el-table-column prop="name" label="* 设备名称" width="200">
+        <el-table-column prop="name" label="设备分组" width="200">
           <template slot-scope="scope">
             <el-input
               v-model="scope.row.groupingName"
@@ -124,8 +124,7 @@
             />
           </template>
         </el-table-column>
-        <el-table-column prop="offset" label="关联遥信点号(仅遥控可关联)">
-          <!-- rs.offset -->
+        <el-table-column v-if="false" prop="relationTag" label="关联遥信点号(仅遥控可关联)">
           <template slot-scope="scope">
             <el-input
               v-if="scope.row.range=='COIL_STATUS'"
@@ -136,8 +135,7 @@
             />
           </template>
         </el-table-column>
-        <el-table-column prop="offset" label="关联遥测点号(仅遥调可关联)">
-          <!-- rs.offset -->
+        <el-table-column v-if="false" prop="relationTag" label="关联遥测点号(仅遥调可关联)">
           <template slot-scope="scope">
             <el-input
               v-if="scope.row.range=='HOLDING_REGISTER'"
@@ -206,8 +204,8 @@
         <el-form-item label="*测点名称" :label-width="formLabelWidth">
           <el-input v-model="form.name" autocomplete="off" maxlength="32" placeholder="请输入测点名称" />
         </el-form-item>
-        <el-form-item label="*设备名称" :label-width="formLabelWidth">
-          <el-input v-model="form.groupingName" maxlength="20" placeholder="请输入设备名称" />
+        <el-form-item label="设备分组" :label-width="formLabelWidth">
+          <el-input v-model="form.groupingName" maxlength="20" placeholder="请输入设备分组" />
         </el-form-item>
         <el-form-item class="modelInput" label="*点号类型" :label-width="formLabelWidth">
           <template slot-scope="scope">
@@ -229,11 +227,11 @@
         <el-form-item label="*点号" :label-width="formLabelWidth">
           <el-input v-model="form.offset" maxlength="6" />
         </el-form-item>
-        <el-form-item label="关联遥信点号 (仅遥控可关联)" :label-width="formLabelWidth">
+        <el-form-item v-if="false" label="关联遥信点号 (仅遥控可关联)" :label-width="formLabelWidth">
           <el-input v-if="form.range=='COIL_STATUS'" v-model="form.relationTag" maxlength="6" placeholder="请输入遥信点号" />
           <el-input v-else v-model="form.relationTag" disabled />
         </el-form-item>
-        <el-form-item label="关联遥测点号 (仅遥调可关联)" :label-width="formLabelWidth">
+        <el-form-item v-if="false" label="关联遥测点号 (仅遥调可关联)" :label-width="formLabelWidth">
           <el-input v-if="form.range=='HOLDING_REGISTER'" v-model="form.relationTag" maxlength="6" placeholder="请输入遥测点号" />
           <el-input v-else v-model="form.relationTag" disabled />
         </el-form-item>
@@ -550,11 +548,6 @@ export default {
       if (v === '') {
         isNotPassMesage = '必填项(测点名称)不能为空'
       }
-      v = editData.groupingName || ''
-      v = v.toString().replace(/ /gi, '')
-      if (v === '') {
-        isNotPassMesage = '必填项(设备名称)不能为空'
-      }
       v = editData.range == null ? '' : editData.range
       v = v.toString().replace(/ /gi, '')
       if (v === '') {
@@ -631,7 +624,7 @@ export default {
     submitPlan() {
       // console.log(`this.tmpTableData=`, this.tmpTableData)
       let currentStep = this.currentStep
-      const noName = this.tableData.some(item => (!item.groupingName) || (!item.name) || (!item.range) || (!item.offset.toString()))
+      const noName = this.tableData.some(item => ((!item.name) || (!item.range) || (!item.offset.toString())))
       if (noName) {
         this.$message({
           type: 'error',
@@ -789,11 +782,6 @@ export default {
         if (v === '') {
           isNotPassMesage = '必填项(测点名称)不能为空'
         }
-        v = this.form.groupingName || ''
-        v = v.toString().replace(/ /gi, '')
-        if (v === '') {
-          isNotPassMesage = '必填项(设备名称)不能为空'
-        }
         v = this.form.range || ''
         v = v.toString().replace(/ /gi, '')
         if (v === '') {

+ 0 - 1
src/views/plan/components/PlanList.vue

@@ -170,7 +170,6 @@
           <el-table-column property="groupingName" label="设备名称" />
           <el-table-column property="range" label="测点类型" />
           <el-table-column property="offset" label="点号" />
-          <el-table-column property="relationTag" label="关联点号" />
         </el-table>
         <!-- 分页 -->
         <div class="page-bar">