fix: 设备能力信息

master
李小林 8 months ago
parent f50aa032b3
commit c12893d077
  1. 2
      src/api/remote/types.ts
  2. 1
      src/api/resources-equipment/types.ts
  3. 8
      src/api/type-ver-ext/index.ts
  4. 2
      src/router/index.ts
  5. 12
      src/utils/index.ts
  6. 169
      src/views/family/operate/remote-operation/components/DeviceAbility.vue
  7. 43
      src/views/family/operate/remote-operation/components/DeviceStatus.vue
  8. 24
      src/views/family/operate/remote-operation/components/OperateTabs.vue
  9. 664
      src/views/family/operate/remote-operation/components/RemoteOperateInfo.vue
  10. 6
      src/views/family/operate/remote-operation/index.vue

@ -1,6 +1,8 @@
export interface RemoteDevInfoVO { export interface RemoteDevInfoVO {
devId?: number; devId?: number;
typeAndVerId?: number;
devAdNo?: string; devAdNo?: string;
devSno?: string; devSno?: string;

@ -98,6 +98,7 @@ export interface PrivateProfile {
export interface RemoteEquipmentTable { export interface RemoteEquipmentTable {
devId?: number; devId?: number;
devSno?: string; devSno?: string;
typeAndVerId?: number;
devAdNo?: string; devAdNo?: string;
devPppoe?: string; devPppoe?: string;
devStatus?: string; devStatus?: string;

@ -10,6 +10,14 @@ export function getCapabilityForm(
method: "GET", method: "GET",
}); });
} }
export function getCapabilityVO(
typeAndVerId: number
): AxiosPromise<CapabilityForm> {
return request({
url: `/api/type-ver-ext/v1//remote/capability/${typeAndVerId}`,
method: "GET",
});
}
export function editCapabilityForm(data: CapabilityForm) { export function editCapabilityForm(data: CapabilityForm) {
return request({ return request({
url: `/api/type-ver-ext/v1/edit`, url: `/api/type-ver-ext/v1/edit`,

@ -218,7 +218,7 @@ export const constantRoutes: RouteRecordRaw[] = [
}, },
}, },
{ {
path: "/resources/remote-info/:devId", path: "/resources/remote-info/:devId/:typeAndVerId",
name: "RemoteOperateInfo", name: "RemoteOperateInfo",
component: () => component: () =>
import( import(

@ -78,3 +78,15 @@ export function downloadHook(res: AxiosResponse) {
// 释放掉blob对象 // 释放掉blob对象
window.URL.revokeObjectURL(href); window.URL.revokeObjectURL(href);
} }
export function getLabelByValue(options: OptionType[], value: string): string {
// 遍历选项数组,查找与给定值匹配的项
for (const option of options) {
if (option.value === value) {
// 如果找到匹配项,返回其标签
return option.label;
}
}
// 如果没有找到匹配项,返回null
return "";
}

@ -0,0 +1,169 @@
<template>
<div style="margin-top: 10px">
<el-descriptions
title="设备能力信息"
v-loading="loadingCapability"
:column="3"
border
>
<el-descriptions-item
label="LAN口数量"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="180px"
>
{{ ability.lanNumber }}
</el-descriptions-item>
<el-descriptions-item
label="VOIP端口数量"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="180px"
>
{{ ability.voipPortNumber }}
</el-descriptions-item>
<el-descriptions-item
label="GE端口数"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="180px"
>
{{ ability.gePortNumber }}
</el-descriptions-item>
<el-descriptions-item
label="FE端口数"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="180px"
>
{{ ability.fePortNumber }}
</el-descriptions-item>
<el-descriptions-item
label="WIFI类型"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="180px"
>
{{ ability.wifiType }}
</el-descriptions-item>
<el-descriptions-item
label="WIFI配置"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="180px"
>
{{ ability.wifiConfig }}
</el-descriptions-item>
<el-descriptions-item
label="语音协议"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="180px"
>
{{ ability.voipProtocol }}
</el-descriptions-item>
<el-descriptions-item
label="设备能力"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="180px"
>
{{ ability.capability }}
</el-descriptions-item>
<el-descriptions-item
label="是否支持MESH组网"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="180px"
>
{{ ability.mesh }}
</el-descriptions-item>
<el-descriptions-item
label="是否支持云网关"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="180px"
>
{{ ability.ywg }}
</el-descriptions-item>
<el-descriptions-item
label="是否支持测速"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="180px"
>
{{ ability.tr143 }}
</el-descriptions-item>
<el-descriptions-item
label="是否支持IPV6"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="180px"
>
{{ ability.ipv6Enable }}
</el-descriptions-item>
<el-descriptions-item
label="是否重启生效"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="180px"
>
{{ ability.reboot }}
</el-descriptions-item>
</el-descriptions>
</div>
</template>
<script setup lang="ts">
import { CapabilityForm } from "@/api/type-ver-ext/types";
import { getCapabilityVO } from "@/api/type-ver-ext";
const prop = defineProps<{
typeAndVerId: number;
}>();
const loadingCapability = ref<boolean>(false);
const ability = ref<CapabilityForm>({});
const loadCapabilityVO = async () => {
loadingCapability.value = true;
await getCapabilityVO(prop.typeAndVerId)
.then(({ data }) => {
if (data != null) {
ability.value = data;
}
})
.finally(() => {
loadingCapability.value = false;
});
};
onMounted(() => {
loadCapabilityVO();
});
</script>
<style scoped></style>

@ -0,0 +1,43 @@
<template>
<el-descriptions title="设备状态" :column="3" border>
<template #extra>
<el-button type="primary">获取设备链路信息</el-button>
</template>
<el-descriptions-item
label="设备在线状态"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
/>
<el-descriptions-item
label="设备在线时间"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
/>
<el-descriptions-item
label="设备创建时间"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
/>
</el-descriptions>
<device-ability :type-and-ver-id="typeAndVerId" />
</template>
<script setup lang="ts">
import DeviceAbility from "@/views/family/operate/remote-operation/components/DeviceAbility.vue";
const prop = defineProps<{
devId: number;
typeAndVerId: number;
}>();
</script>
<style scoped></style>

@ -0,0 +1,24 @@
<template>
<div style="margin-top: 10px">
<el-tabs type="border-card">
<el-tab-pane label="设备状态信息">
<device-status :dev-id="devId" :type-and-ver-id="prop.typeAndVerId" />
</el-tab-pane>
<el-tab-pane :label="label" v-for="(label, index) in tabs" :key="index">{{
label
}}</el-tab-pane>
</el-tabs>
</div>
</template>
<script setup lang="ts">
import DeviceStatus from "@/views/family/operate/remote-operation/components/DeviceStatus.vue";
const prop = defineProps<{
devId: number;
typeAndVerId: number;
}>();
const tabs = ref<string[]>([]);
</script>
<style scoped></style>

@ -1,331 +1,344 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-card shadow="never" v-loading="loading"> <el-scrollbar height="600">
<el-descriptions title="设备信息" :column="2" border> <el-card shadow="never" v-loading="loading">
<template <el-descriptions title="设备信息" :column="2" border>
#extra <template
v-if=" #extra
remote.devRemark4 != null && v-if="
remote.devStatus != '预解绑' && remote.devRemark4 != null &&
remote.devStatus != '预拆机' remote.devStatus != '预解绑' &&
" remote.devStatus != '预拆机'
> "
<el-popconfirm
width="220"
confirm-button-text="确认"
cancel-button-text="取消"
:icon="InfoFilled"
@confirm="unbindingLogicId"
icon-color="#626AEF"
title="确定解绑逻辑ID吗?"
> >
<template #reference> <el-popconfirm
<el-button type="primary">解绑逻辑ID</el-button> width="220"
</template> confirm-button-text="确认"
</el-popconfirm> cancel-button-text="取消"
</template> :icon="InfoFilled"
<el-descriptions-item @confirm="unbindingLogicId"
label="AD编号" icon-color="#626AEF"
label-align="left" title="确定解绑逻辑ID吗?"
align="center" >
label-class-name="my-label" <template #reference>
class-name="my-content" <el-button type="primary">解绑逻辑ID</el-button>
width="150px"
>
{{ remote.devAdNo }}
</el-descriptions-item>
<el-descriptions-item
label="设备PPPoE帐号"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devPppoe }}
</el-descriptions-item>
<el-descriptions-item
label="设备序列号"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devVendorOui }}-{{ remote.devSno }}
</el-descriptions-item>
<el-descriptions-item
label="设备类型和软件版本"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devVendorName }}&nbsp;{{ remote.devTypeName }}&nbsp;{{
remote.devHardVer
}}&nbsp;{{ remote.softVer }}
</el-descriptions-item>
<el-descriptions-item
label="设备系统管理域"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.domain }}
</el-descriptions-item>
<el-descriptions-item
label="黑名单状态"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.blacklist }}
</el-descriptions-item>
<el-descriptions-item
label="电信维护帐号密码"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devRemark1 }}
</el-descriptions-item>
<el-descriptions-item
label="逻辑ID"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.userSnNo }}
</el-descriptions-item>
<el-descriptions-item
label="安装次数"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.useState }}
</el-descriptions-item>
<el-descriptions-item
label="IP"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devIp }}
</el-descriptions-item>
<el-descriptions-item
label="设备当前状态"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devStatus }}
</el-descriptions-item>
<el-descriptions-item
label="客户类型"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.customType }}
</el-descriptions-item>
<el-descriptions-item
label="拨号方式"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.conType }}
</el-descriptions-item>
<el-descriptions-item
label="最近一次开机时间"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devOnlineTime }}
</el-descriptions-item>
<el-descriptions-item
label="设备网络侧接口"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devAccessType }}
</el-descriptions-item>
<el-descriptions-item
label="设备类型"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devTypeNameDetail }}
</el-descriptions-item>
<el-descriptions-item
label="远程操作"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
<div>
<el-dropdown split-button placement="right">
远程操作列表
<template #dropdown>
<el-dropdown-menu>
<el-scrollbar height="300">
<div v-hasPerm="['family:remote:parameter:tree']">
<el-dropdown-item>设备参数树浏览</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:ping:test']">
<el-dropdown-item divided>设备Ping测试</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:profiles:upload']">
<el-dropdown-item divided
>设备配置文件上传</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:terminal:log_file']">
<el-dropdown-item divided
>获取设备终端日志文件</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:dev:change']">
<el-dropdown-item divided>设备更换</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:dev:reload']">
<el-dropdown-item divided>设备远程重启</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:profiles:issued']">
<el-dropdown-item divided
>设备厂商配置文件下发</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:full_service:issued']">
<el-dropdown-item divided
>设备全业务配置下发</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:soft_ver:upgrade']">
<el-dropdown-item divided
>设备软件版本升级</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:loop_back:diagnosis']">
<el-dropdown-item divided
>ATMF5Loopback诊断</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:dsl_loop:diagnosis']">
<el-dropdown-item divided>DslLoop诊断</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:dev:monitor']">
<el-dropdown-item divided>设备监控</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:ida:diagnosis']">
<el-dropdown-item divided>IAD诊断</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:service_port:binding']">
<el-dropdown-item divided
>修改业务端口绑定</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:terminal:registration']">
<el-dropdown-item divided
>开启终端注册页面</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:speed:operation']">
<el-dropdown-item divided>测速操作</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:reset:graphs']">
<el-dropdown-item divided>终端重置数图</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:iptv:multicast']">
<el-dropdown-item divided>重置IPTV组播</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:node:customize']">
<el-dropdown-item divided
>自定义节点定制</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:broadband_1_4:itv_2_3']">
<el-dropdown-item divided
>宽带14;ITV 23</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:broadband_3_4:itv_1_2']">
<el-dropdown-item divided
>宽带34;ITV 12</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:broadband_1:itv_2_3_4']">
<el-dropdown-item divided
>宽带1口;ITV 234</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:broadband_1_3_4:itv_2']">
<el-dropdown-item divided
>宽带134;ITV 2</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:broadband_1_2_3_4']">
<el-dropdown-item divided
>宽带1 234</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:broadband_1_3:itv_2']">
<el-dropdown-item divided
>三合一终端宽带13;ITV 2</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:info:update']">
<el-dropdown-item divided>通用信息修改</el-dropdown-item>
</div>
</el-scrollbar>
</el-dropdown-menu>
</template> </template>
</el-dropdown> </el-popconfirm>
</div> </template>
</el-descriptions-item> <el-descriptions-item
<el-descriptions-item label="AD编号"
label="其他操作" label-align="left"
label-align="left" align="center"
align="center" label-class-name="my-label"
label-class-name="my-label" class-name="my-content"
class-name="my-content" width="150px"
width="150px" >
> {{ remote.devAdNo }}
{{ remote.devTypeNameDetail }} </el-descriptions-item>
</el-descriptions-item> <el-descriptions-item
</el-descriptions> label="设备PPPoE帐号"
</el-card> label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devPppoe }}
</el-descriptions-item>
<el-descriptions-item
label="设备序列号"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devVendorOui }}-{{ remote.devSno }}
</el-descriptions-item>
<el-descriptions-item
label="设备类型和软件版本"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devVendorName }}&nbsp;{{ remote.devTypeName }}&nbsp;{{
remote.devHardVer
}}&nbsp;{{ remote.softVer }}
</el-descriptions-item>
<el-descriptions-item
label="设备系统管理域"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.domain }}
</el-descriptions-item>
<el-descriptions-item
label="黑名单状态"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.blacklist }}
</el-descriptions-item>
<el-descriptions-item
label="电信维护帐号密码"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devRemark1 }}
</el-descriptions-item>
<el-descriptions-item
label="逻辑ID"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.userSnNo }}
</el-descriptions-item>
<el-descriptions-item
label="安装次数"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.useState }}
</el-descriptions-item>
<el-descriptions-item
label="IP"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devIp }}
</el-descriptions-item>
<el-descriptions-item
label="设备当前状态"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devStatus }}
</el-descriptions-item>
<el-descriptions-item
label="客户类型"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.customType }}
</el-descriptions-item>
<el-descriptions-item
label="拨号方式"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.conType }}
</el-descriptions-item>
<el-descriptions-item
label="最近一次开机时间"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devOnlineTime }}
</el-descriptions-item>
<el-descriptions-item
label="设备网络侧接口"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devAccessType }}
</el-descriptions-item>
<el-descriptions-item
label="设备类型"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devTypeNameDetail }}
</el-descriptions-item>
<el-descriptions-item
label="远程操作"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
<div>
<el-dropdown split-button placement="right">
远程操作列表
<template #dropdown>
<el-dropdown-menu>
<el-scrollbar height="300">
<div v-hasPerm="['family:remote:parameter:tree']">
<el-dropdown-item>设备参数树浏览</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:ping:test']">
<el-dropdown-item divided
>设备Ping测试</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:profiles:upload']">
<el-dropdown-item divided
>设备配置文件上传
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:terminal:log_file']">
<el-dropdown-item divided
>获取设备终端日志文件
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:dev:change']">
<el-dropdown-item divided>设备更换</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:dev:reload']">
<el-dropdown-item divided
>设备远程重启</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:profiles:issued']">
<el-dropdown-item divided
>设备厂商配置文件下发
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:full_service:issued']">
<el-dropdown-item divided
>设备全业务配置下发
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:soft_ver:upgrade']">
<el-dropdown-item divided
>设备软件版本升级
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:loop_back:diagnosis']">
<el-dropdown-item divided
>ATMF5Loopback诊断
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:dsl_loop:diagnosis']">
<el-dropdown-item divided>DslLoop诊断</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:dev:monitor']">
<el-dropdown-item divided>设备监控</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:ida:diagnosis']">
<el-dropdown-item divided>IAD诊断</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:service_port:binding']">
<el-dropdown-item divided
>修改业务端口绑定
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:terminal:registration']">
<el-dropdown-item divided
>开启终端注册页面
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:speed:operation']">
<el-dropdown-item divided>测速操作</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:reset:graphs']">
<el-dropdown-item divided
>终端重置数图</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:iptv:multicast']">
<el-dropdown-item divided
>重置IPTV组播</el-dropdown-item
>
</div>
<div v-hasPerm="['family:remote:node:customize']">
<el-dropdown-item divided
>自定义节点定制
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:broadband_1_4:itv_2_3']">
<el-dropdown-item divided
>宽带14;ITV 23
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:broadband_3_4:itv_1_2']">
<el-dropdown-item divided
>宽带34;ITV 12
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:broadband_1:itv_2_3_4']">
<el-dropdown-item divided
>宽带1口;ITV 234
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:broadband_1_3_4:itv_2']">
<el-dropdown-item divided
>宽带134;ITV 2
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:broadband_1_2_3_4']">
<el-dropdown-item divided
>宽带1 234
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:broadband_1_3:itv_2']">
<el-dropdown-item divided
>三合一终端宽带13;ITV 2
</el-dropdown-item>
</div>
<div v-hasPerm="['family:remote:info:update']">
<el-dropdown-item divided
>通用信息修改</el-dropdown-item
>
</div>
</el-scrollbar>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
</el-descriptions-item>
<el-descriptions-item
label="其他操作"
label-align="left"
align="center"
label-class-name="my-label"
class-name="my-content"
width="150px"
>
{{ remote.devTypeNameDetail }}
</el-descriptions-item>
</el-descriptions>
</el-card>
<operate-tabs :dev-id="devId" :type-and-ver-id="typeAndVerId" />
</el-scrollbar>
</div> </div>
</template> </template>
@ -333,9 +346,12 @@
import { RemoteDevInfoVO, UnBindingForm } from "@/api/remote/types"; import { RemoteDevInfoVO, UnBindingForm } from "@/api/remote/types";
import { remoteDevInfo, remoteUnbindingLogicId } from "@/api/remote"; import { remoteDevInfo, remoteUnbindingLogicId } from "@/api/remote";
import { InfoFilled } from "@element-plus/icons-vue"; import { InfoFilled } from "@element-plus/icons-vue";
import OperateTabs from "@/views/family/operate/remote-operation/components/OperateTabs.vue";
const route = useRoute(); const route = useRoute();
let devId: number = parseInt(<string>route.params.devId); let devId: number = parseInt(<string>route.params.devId);
let typeAndVerId: number = parseInt(<string>route.params.typeAndVerId);
const remote = ref<RemoteDevInfoVO>({}); const remote = ref<RemoteDevInfoVO>({});
const unbindingForm = ref<UnBindingForm>({}); const unbindingForm = ref<UnBindingForm>({});
const loading = ref<boolean>(false); const loading = ref<boolean>(false);

@ -65,7 +65,7 @@
<el-button <el-button
type="primary" type="primary"
link link
@click="skipRemoteInfo(scope.row.devId)" @click="skipRemoteInfo(scope.row)"
>{{ scope.row.devVendorOui }}-{{ scope.row.devSno }}</el-button >{{ scope.row.devVendorOui }}-{{ scope.row.devSno }}</el-button
> >
</template> </template>
@ -220,8 +220,8 @@ const handleQuery = () => {
loading.value = false; loading.value = false;
}); });
}; };
const skipRemoteInfo = (devId: number) => { const skipRemoteInfo = (row: RemoteEquipmentTable) => {
router.push({ path: `/resources/remote-info/${devId}` }); router.push({ path: `/resources/remote-info/${row.devId}/${row.typeAndVerId}` });
}; };
</script> </script>

Loading…
Cancel
Save