Browse Source

update code

yb 1 week ago
parent
commit
79594b6e27
2 changed files with 31 additions and 12 deletions
  1. 19 1
      src/types/index.ts
  2. 12 11
      src/views/lss/index.vue

+ 19 - 1
src/types/index.ts

@@ -359,6 +359,23 @@ export interface RecordItem {
 export type LssNodeStatus = 'hold' | 'active' | 'dead'
 export type LssNodeStatus = 'hold' | 'active' | 'dead'
 
 
 // LSS 节点信息 (新 API)
 // LSS 节点信息 (新 API)
+export interface IAblyChannels {
+  registry: string
+  commandPrefix: string
+  commandSuffix: string
+  statusSuffix: string
+  taskPrefix: string
+  taskSuffix: string
+}
+export interface IAblyHeartbeat {
+  intervalMs: number
+}
+export interface IAbly {
+  apiKey: string
+  channels: IAblyChannels
+  heartbeat: IAblyHeartbeat
+}
+
 export interface LssNodeDTO {
 export interface LssNodeDTO {
   id: number
   id: number
   lssId: string
   lssId: string
@@ -371,7 +388,8 @@ export interface LssNodeDTO {
   status: LssNodeStatus
   status: LssNodeStatus
   heartbeat?: LssHeartbeatStatus
   heartbeat?: LssHeartbeatStatus
   heartbeatTime?: string
   heartbeatTime?: string
-  ablyInfo?: string
+  ably?: IAbly
+  ablyClientId?: string
   ffmpegVersion?: string
   ffmpegVersion?: string
   systemInfo?: string
   systemInfo?: string
   enabled: boolean
   enabled: boolean

+ 12 - 11
src/views/lss/index.vue

@@ -78,7 +78,7 @@
         </el-table-column>
         </el-table-column>
         <el-table-column :label="t('ably')" align="center" fixed="right">
         <el-table-column :label="t('ably')" align="center" fixed="right">
           <template #default="{ row }">
           <template #default="{ row }">
-            {{ row.ablyInfo || '-' }}
+            {{ row.ablyClientId }}
           </template>
           </template>
         </el-table-column>
         </el-table-column>
         <!-- <el-table-column prop="status" :label="t('状态')" min-width="100" sortable="custom">
         <!-- <el-table-column prop="status" :label="t('状态')" min-width="100" sortable="custom">
@@ -180,7 +180,7 @@
                 <el-input v-model="lssEditForm.address" placeholder="请输入地址" />
                 <el-input v-model="lssEditForm.address" placeholder="请输入地址" />
               </el-form-item>
               </el-form-item>
               <el-form-item :label="t('IP') + ':'">
               <el-form-item :label="t('IP') + ':'">
-                <span class="form-value">{{ lssEditForm?.ip }}</span>
+                <span class="form-value">{{ currentLss?.ip }}</span>
               </el-form-item>
               </el-form-item>
               <el-form-item :label="t('心跳') + ':'">
               <el-form-item :label="t('心跳') + ':'">
                 <span class="heartbeat-status" :class="getHeartbeatClass(currentLss?.heartbeat)">
                 <span class="heartbeat-status" :class="getHeartbeatClass(currentLss?.heartbeat)">
@@ -203,12 +203,13 @@
                   </el-icon>
                   </el-icon>
                 </el-tooltip>
                 </el-tooltip>
               </el-form-item>
               </el-form-item>
-              <el-form-item label="ably信息:" prop="ablyInfo">
+              <el-form-item :label="t('ably') + ':'" prop="ably">
                 <div class="textarea-wrapper">
                 <div class="textarea-wrapper">
                   <el-input
                   <el-input
+                    disabled
                     type="textarea"
                     type="textarea"
                     :rows="8"
                     :rows="8"
-                    v-model="lssEditForm.ablyInfo"
+                    v-model="lssEditForm.ably"
                     placeholder="请输入ably信息"
                     placeholder="请输入ably信息"
                     maxlength="1000"
                     maxlength="1000"
                     show-word-limit
                     show-word-limit
@@ -248,8 +249,8 @@
             <el-empty v-if="!cameraLoading && cameraList.length === 0" description="暂无关联设备" />
             <el-empty v-if="!cameraLoading && cameraList.length === 0" description="暂无关联设备" />
             <el-table v-else :data="cameraList" stripe size="small" border>
             <el-table v-else :data="cameraList" stripe size="small" border>
               <!-- <el-table-column prop="ip" label="本地IP" min-width="110" /> -->
               <!-- <el-table-column prop="ip" label="本地IP" min-width="110" /> -->
-              <el-table-column prop="cameraId" label="设备ID" min-width="100" show-overflow-tooltip />
-              <el-table-column prop="name" label="名称" min-width="100" show-overflow-tooltip />
+              <el-table-column prop="cameraId" :label="t('设备ID')" min-width="100" show-overflow-tooltip />
+              <el-table-column prop="cameraName" :label="t('名称')" min-width="100" show-overflow-tooltip />
               <el-table-column :label="t('状态(心跳)')" min-width="140">
               <el-table-column :label="t('状态(心跳)')" min-width="140">
                 <template #default="{ row }">
                 <template #default="{ row }">
                   <span :class="['status-text', row.status === 'ONLINE' ? 'status-active' : 'status-dead']">
                   <span :class="['status-text', row.status === 'ONLINE' ? 'status-active' : 'status-dead']">
@@ -267,7 +268,7 @@
                   <el-button type="primary" link @click="handleViewRunParams(row)">查看</el-button>
                   <el-button type="primary" link @click="handleViewRunParams(row)">查看</el-button>
                 </template>
                 </template>
               </el-table-column>
               </el-table-column>
-              <el-table-column prop="brand" label="厂商" min-width="90">
+              <el-table-column prop="vendorName" :label="t('厂商')" min-width="90">
                 <template #default="{ row }">
                 <template #default="{ row }">
                   {{ formatBrand(row.vendorName) }}
                   {{ formatBrand(row.vendorName) }}
                 </template>
                 </template>
@@ -569,7 +570,8 @@ import type {
   CameraInfoDTO,
   CameraInfoDTO,
   CameraAddRequest,
   CameraAddRequest,
   CameraUpdateRequest,
   CameraUpdateRequest,
-  CameraVendorDTO
+  CameraVendorDTO,
+  IAbly
 } from '@/types'
 } from '@/types'
 import type { FormInstance, FormRules } from 'element-plus'
 import type { FormInstance, FormRules } from 'element-plus'
 import dayjs from 'dayjs'
 import dayjs from 'dayjs'
@@ -757,7 +759,7 @@ const lssEditForm = reactive({
   lssName: '',
   lssName: '',
   address: '',
   address: '',
   ip: '',
   ip: '',
-  ablyInfo: ''
+  ably: ''
 })
 })
 
 
 // 根据当前 tab 计算抽屉宽度
 // 根据当前 tab 计算抽屉宽度
@@ -927,8 +929,7 @@ function handleEdit(row: LssNodeDTO) {
   currentLss.value = row
   currentLss.value = row
   lssEditForm.lssName = row.lssName || ''
   lssEditForm.lssName = row.lssName || ''
   lssEditForm.address = row.address || ''
   lssEditForm.address = row.address || ''
-  lssEditForm.ip = row.ip || ''
-  lssEditForm.ablyInfo = row.ablyInfo || ''
+  lssEditForm.ably = JSON.stringify(row.ably)
   editActiveTab.value = 'detail'
   editActiveTab.value = 'detail'
   lssEditDrawerVisible.value = true
   lssEditDrawerVisible.value = true
 }
 }