parent
19668bc2d6
commit
5500611fba
@ -0,0 +1,19 @@ |
|||||||
|
import { AxiosPromise } from "axios"; |
||||||
|
import { FTTRInfoVO, ServiceCompareVO } from "@/api/operate-result-args/types"; |
||||||
|
import request from "@/utils/request"; |
||||||
|
|
||||||
|
export function getServiceCompareData( |
||||||
|
devId?: number, |
||||||
|
serviceName?: string |
||||||
|
): AxiosPromise<ServiceCompareVO[]> { |
||||||
|
return request({ |
||||||
|
url: `/api/operate-result-args/v1/device-service-parameter/${devId}/${serviceName}`, |
||||||
|
method: "GET", |
||||||
|
}); |
||||||
|
} |
||||||
|
export function fttrPrimaryGateway(devId?: number): AxiosPromise<FTTRInfoVO[]> { |
||||||
|
return request({ |
||||||
|
url: `/api/operate-result-args/v1/fttr-primary-gateway/${devId}`, |
||||||
|
method: "GET", |
||||||
|
}); |
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
import { ParamInfo } from "@/api/operate-log/types"; |
||||||
|
|
||||||
|
export interface ServiceParamInfo { |
||||||
|
parameterName?: string; |
||||||
|
actualValue?: string; |
||||||
|
remarks?: string; |
||||||
|
expectationValue?: string; |
||||||
|
} |
||||||
|
export interface ServiceCompareVO { |
||||||
|
title?: string; |
||||||
|
list?: ServiceParamInfo[]; |
||||||
|
} |
||||||
|
|
||||||
|
export interface FTTRInfoVO { |
||||||
|
title?: string; |
||||||
|
|
||||||
|
list?: ParamInfo[]; |
||||||
|
} |
@ -0,0 +1,82 @@ |
|||||||
|
<template> |
||||||
|
<el-descriptions :column="3" border> |
||||||
|
<el-descriptions-item |
||||||
|
label="业务名称" |
||||||
|
label-align="left" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ service.servName }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="业务版本" |
||||||
|
label-align="left" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ service.servVerName }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="业务显示名称" |
||||||
|
label-align="left" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ service.servDisplayName }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="业务状态" |
||||||
|
label-align="left" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ service.servMapStatus }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="业务描述" |
||||||
|
label-align="left" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ service.servDesc }} |
||||||
|
</el-descriptions-item> |
||||||
|
<el-descriptions-item |
||||||
|
label="操作时间" |
||||||
|
label-align="left" |
||||||
|
align="center" |
||||||
|
label-class-name="my-label" |
||||||
|
class-name="my-content" |
||||||
|
width="150px" |
||||||
|
> |
||||||
|
{{ service.servStatusTime }} |
||||||
|
</el-descriptions-item> |
||||||
|
</el-descriptions> |
||||||
|
<service-parameter |
||||||
|
:dev-id="prop.devId" |
||||||
|
:service-name="service.servName" |
||||||
|
:service-id="service.servId" |
||||||
|
:service-ver-name="service.servVerName" |
||||||
|
/> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script setup lang="ts"> |
||||||
|
import { DeviceBusinessVO } from "@/api/service/types"; |
||||||
|
import ServiceParameter from "@/views/family/operate/remote-operation/components/ServiceParameter.vue"; |
||||||
|
|
||||||
|
const prop = defineProps<{ |
||||||
|
service: DeviceBusinessVO; |
||||||
|
devId: number; |
||||||
|
}>(); |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped></style> |
@ -0,0 +1,109 @@ |
|||||||
|
<template> |
||||||
|
<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>宽带1、4口;ITV 2、3口 </el-dropdown-item> |
||||||
|
</div> |
||||||
|
<div v-hasPerm="['family:remote:broadband_3_4:itv_1_2']"> |
||||||
|
<el-dropdown-item divided>宽带3、4口;ITV 1、2口 </el-dropdown-item> |
||||||
|
</div> |
||||||
|
<div v-hasPerm="['family:remote:broadband_1:itv_2_3_4']"> |
||||||
|
<el-dropdown-item divided>宽带1口;ITV 2、3、4口 </el-dropdown-item> |
||||||
|
</div> |
||||||
|
<div v-hasPerm="['family:remote:broadband_1_3_4:itv_2']"> |
||||||
|
<el-dropdown-item divided>宽带1、3、4口;ITV 2口 </el-dropdown-item> |
||||||
|
</div> |
||||||
|
<div v-hasPerm="['family:remote:broadband_1_2_3_4']"> |
||||||
|
<el-dropdown-item divided>宽带1、 2、3、4口 </el-dropdown-item> |
||||||
|
</div> |
||||||
|
<div v-hasPerm="['family:remote:broadband_1_3:itv_2']"> |
||||||
|
<el-dropdown-item divided |
||||||
|
>三合一终端宽带1、3口;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> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script setup lang="ts"></script> |
||||||
|
|
||||||
|
<style scoped> |
||||||
|
.button-container { |
||||||
|
display: flex; |
||||||
|
flex-wrap: wrap; |
||||||
|
border-left: 1px solid #ebeef5; |
||||||
|
} |
||||||
|
.button-wrapper { |
||||||
|
width: calc(100% / 9); /* 假设每行有6个按钮,可以根据需要调整 */ |
||||||
|
padding: 10px; |
||||||
|
box-sizing: border-box; |
||||||
|
} |
||||||
|
.button-wrapper { |
||||||
|
border-bottom: 1px solid #ebeef5; |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,108 @@ |
|||||||
|
<template> |
||||||
|
<div class="mt-4"> |
||||||
|
<el-card shadow="never"> |
||||||
|
<template #header> |
||||||
|
<div class="head-parent-right"> |
||||||
|
<el-button |
||||||
|
type="primary" |
||||||
|
@click="compareParameter" |
||||||
|
plain |
||||||
|
:disabled="disableFlag" |
||||||
|
>业务参数对照</el-button |
||||||
|
> |
||||||
|
<el-button type="primary" plain>重置业务</el-button> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<el-empty |
||||||
|
description="暂无数据" |
||||||
|
v-loading="loading" |
||||||
|
v-if="vo.length === 0" |
||||||
|
/> |
||||||
|
<el-card |
||||||
|
class="any-table" |
||||||
|
shadow="never" |
||||||
|
v-for="(item, index) in vo" |
||||||
|
:key="index" |
||||||
|
v-loading="loading" |
||||||
|
> |
||||||
|
<template #header> |
||||||
|
<span style="font-size: 14px; font-weight: 700">{{ |
||||||
|
item.title |
||||||
|
}}</span> |
||||||
|
</template> |
||||||
|
<el-table :data="item.list"> |
||||||
|
<el-table-column |
||||||
|
label="参数名称" |
||||||
|
align="left" |
||||||
|
width="200" |
||||||
|
prop="parameterName" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="期望值" |
||||||
|
align="left" |
||||||
|
width="300" |
||||||
|
prop="expectationValue" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="实际值" |
||||||
|
align="left" |
||||||
|
width="300" |
||||||
|
prop="actualValue" |
||||||
|
/> |
||||||
|
<el-table-column label="备注" align="left" prop="remarks" /> |
||||||
|
</el-table> |
||||||
|
</el-card> |
||||||
|
</el-card> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script setup lang="ts"> |
||||||
|
import { getServiceCompareData } from "@/api/operate-result-args"; |
||||||
|
import { ServiceCompareVO } from "@/api/operate-result-args/types"; |
||||||
|
import { serviceCompareParameter } from "@/api/remote"; |
||||||
|
const prop = defineProps<{ |
||||||
|
devId: number; |
||||||
|
serviceName?: string; |
||||||
|
serviceVerName?: string; |
||||||
|
serviceId?: number; |
||||||
|
}>(); |
||||||
|
const vo = ref<ServiceCompareVO[]>([]); |
||||||
|
const loading = ref<boolean>(false); |
||||||
|
const loadData = () => { |
||||||
|
loading.value = true; |
||||||
|
getServiceCompareData(prop.devId, prop.serviceName) |
||||||
|
.then(({ data }) => { |
||||||
|
vo.value = data; |
||||||
|
}) |
||||||
|
.finally(() => { |
||||||
|
loading.value = false; |
||||||
|
}); |
||||||
|
}; |
||||||
|
const disableFlag = computed(() => { |
||||||
|
return loading.value; |
||||||
|
}); |
||||||
|
const compareParameter = () => { |
||||||
|
loading.value = true; |
||||||
|
serviceCompareParameter( |
||||||
|
prop.devId, |
||||||
|
prop.serviceId, |
||||||
|
prop.serviceVerName, |
||||||
|
prop.serviceName |
||||||
|
) |
||||||
|
.then(({ data }) => { |
||||||
|
vo.value = data; |
||||||
|
}) |
||||||
|
.finally(() => { |
||||||
|
loading.value = false; |
||||||
|
}); |
||||||
|
}; |
||||||
|
onMounted(() => { |
||||||
|
loadData(); |
||||||
|
}); |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped> |
||||||
|
:deep(.el-card__body) { |
||||||
|
padding: 0 0 0 0; |
||||||
|
} |
||||||
|
</style> |
Loading…
Reference in new issue