Files
front/src/views/help/index.vue

1154 lines
36 KiB
Vue
Raw Normal View History

2026-03-21 10:26:44 +08:00
<template>
<div class="help-page">
<!-- 顶部导航 -->
<header class="navbar">
<div class="navbar-content">
<div class="logo" @click="goToHome">
2026-03-28 15:44:57 +08:00
<img src="@/assets/logo.png" alt="Logo" />
2026-03-21 10:26:44 +08:00
<span class="logo-text">智能运维管理系统</span>
</div>
<nav class="nav-links">
<a href="#" @click.prevent="goToHome">首页</a>
<a href="#help">帮助中心</a>
<a-button type="primary" @click="goToLogin">登录系统</a-button>
</nav>
</div>
</header>
<!-- Banner 区域 -->
<section class="help-banner">
2026-03-28 15:44:57 +08:00
<img src="@/assets/images/home1.jpg" alt="Banner" class="banner-image" />
<div class="banner-overlay"></div>
2026-03-21 10:26:44 +08:00
<div class="banner-content">
<h1>帮助中心</h1>
2026-03-28 17:51:21 +08:00
<p>智能运维管理系统使用指南助您快速掌握系统功能</p>
<!-- <div class="search-box">
2026-03-21 10:26:44 +08:00
<a-input
v-model="searchQuery"
placeholder="搜索帮助文档..."
size="large"
allow-clear
@press-enter="handleSearch"
>
<template #prefix>
2026-03-28 15:44:57 +08:00
<IconSearch />
2026-03-21 10:26:44 +08:00
</template>
</a-input>
2026-03-28 17:51:21 +08:00
</div> -->
2026-03-21 10:26:44 +08:00
</div>
</section>
<!-- 主要内容区 -->
<main class="help-content">
<div class="content-container">
<!-- 左侧目录 -->
<aside class="help-sidebar">
<a-menu :default-selected-keys="[activeCategory]" @menu-item-click="handleCategoryClick">
<a-menu-item key="all">
2026-03-28 15:44:57 +08:00
<template #icon><IconList /></template>
2026-03-21 10:26:44 +08:00
全部文档
</a-menu-item>
<a-menu-item key="quickstart">
2026-03-28 15:44:57 +08:00
<template #icon><IconRocket /></template>
2026-03-21 10:26:44 +08:00
快速入门
</a-menu-item>
2026-03-28 17:51:21 +08:00
<a-menu-item key="monitor">
<template #icon><IconDesk /></template>
综合监控
2026-03-21 10:26:44 +08:00
</a-menu-item>
<a-menu-item key="alert">
2026-03-28 15:44:57 +08:00
<template #icon><IconAlertCircle /></template>
2026-03-21 10:26:44 +08:00
告警管理
</a-menu-item>
<a-menu-item key="datacenter">
2026-03-28 17:51:21 +08:00
<template #icon><IconBuilding /></template>
2026-03-21 10:26:44 +08:00
数据中心
</a-menu-item>
2026-03-28 17:51:21 +08:00
<a-menu-item key="netarch">
<template #icon><IconNetwork /></template>
网络架构
</a-menu-item>
<a-menu-item key="asset">
<template #icon><IconPackage /></template>
资产管理
2026-03-21 10:26:44 +08:00
</a-menu-item>
2026-03-28 17:51:21 +08:00
<a-menu-item key="ticket">
<template #icon><IconTicket /></template>
工单管理
2026-03-21 10:26:44 +08:00
</a-menu-item>
</a-menu>
</aside>
<!-- 右侧内容 -->
<div class="help-main">
<!-- FAQ 常见问题 -->
<section id="faq" class="help-section">
<h2 class="section-title">
2026-03-28 15:44:57 +08:00
<IconHelp />
2026-03-21 10:26:44 +08:00
常见问题
</h2>
<div class="faq-list">
<a-collapse>
<a-collapse-item
v-for="(item, index) in filteredFaqs"
:key="index"
:header="item.question"
>
<div class="faq-answer">
{{ item.answer }}
</div>
</a-collapse-item>
</a-collapse>
</div>
</section>
<!-- 使用指南 -->
<section id="guides" class="help-section">
<h2 class="section-title">
2026-03-28 15:44:57 +08:00
<IconBook />
2026-03-21 10:26:44 +08:00
使用指南
</h2>
<div class="guide-grid">
<div
v-for="guide in filteredGuides"
:key="guide.id"
class="guide-card"
2026-03-28 17:51:21 +08:00
@click="openGuideDetail(guide)"
2026-03-21 10:26:44 +08:00
>
<div class="guide-icon">
<component :is="guide.icon" />
</div>
<h3>{{ guide.title }}</h3>
<p>{{ guide.description }}</p>
<div class="guide-meta">
<span class="guide-category">{{ guide.categoryName }}</span>
<span class="guide-updated">{{ guide.updatedAt }}</span>
</div>
2026-03-28 17:51:21 +08:00
<div class="guide-action">
<span class="view-link">点击查看详情 </span>
2026-03-21 10:26:44 +08:00
</div>
</div>
</div>
</section>
<!-- 联系我们 -->
<section class="help-section contact-section">
<h2 class="section-title">
2026-03-28 15:44:57 +08:00
<IconHeadset />
2026-03-21 10:26:44 +08:00
需要更多帮助
</h2>
2026-03-28 15:44:57 +08:00
<p class="section-desc">我们提供多种联系方式随时为您解答疑问</p>
2026-03-21 10:26:44 +08:00
<div class="contact-cards">
<div class="contact-card">
<div class="contact-icon">
2026-03-28 15:44:57 +08:00
<IconPhone />
</div>
<div class="contact-content">
2026-03-28 17:51:21 +08:00
<h3>技术支持热线</h3>
2026-03-28 15:44:57 +08:00
<p class="contact-time">工作日 9:00-18:00</p>
2026-03-28 17:51:21 +08:00
<p class="contact-value">400-888-8888</p>
2026-03-21 10:26:44 +08:00
</div>
</div>
2026-03-28 15:44:57 +08:00
2026-03-21 10:26:44 +08:00
<div class="contact-card">
<div class="contact-icon">
2026-03-28 15:44:57 +08:00
<IconMail />
</div>
<div class="contact-content">
<h3>邮件咨询</h3>
<p class="contact-time">我们会在 24 小时内回复</p>
2026-03-28 17:51:21 +08:00
<p class="contact-value">david.yan@qq.com</p>
2026-03-21 10:26:44 +08:00
</div>
</div>
2026-03-28 15:44:57 +08:00
2026-03-21 10:26:44 +08:00
<div class="contact-card">
<div class="contact-icon">
2026-03-28 15:44:57 +08:00
<IconMessage />
</div>
<div class="contact-content">
<h3>在线客服</h3>
<p class="contact-time">实时在线解答</p>
<a-button type="primary" @click="openChat">
开始聊天
</a-button>
2026-03-21 10:26:44 +08:00
</div>
</div>
</div>
</section>
</div>
</div>
</main>
<!-- 页脚 -->
<footer class="footer">
<div class="footer-content">
<p>&copy; 2026 智能运维管理系统All rights reserved.</p>
</div>
</footer>
2026-03-28 17:51:21 +08:00
<!-- 使用指南详情弹窗 -->
<a-modal
v-model:visible="guideModalVisible"
:title="currentGuide?.title"
:width="800"
:footer="false"
unmount-on-close
>
<div class="guide-detail-content">
<div class="guide-detail-header">
<div class="guide-detail-meta">
<a-tag color="arcoblue">{{ currentGuide?.categoryName }}</a-tag>
<span class="guide-detail-date">更新时间{{ currentGuide?.updatedAt }}</span>
</div>
</div>
<div class="guide-detail-body">
<div v-if="currentGuide?.content" class="guide-content">
<div v-for="(section, idx) in currentGuide.content" :key="idx" class="content-section">
<h3>{{ section.title }}</h3>
<p>{{ section.text }}</p>
<ul v-if="section.items">
<li v-for="(item, i) in section.items" :key="i">{{ item }}</li>
</ul>
</div>
</div>
<div v-else class="guide-placeholder">
<a-empty description="文档内容正在编写中,敬请期待" />
</div>
</div>
</div>
</a-modal>
2026-03-21 10:26:44 +08:00
</div>
</template>
<script lang="ts" setup>
import { ref, computed } from 'vue'
import { useRouter } from 'vue-router'
2026-03-28 17:51:21 +08:00
import { Message } from '@arco-design/web-vue'
2026-03-28 15:44:57 +08:00
import {
IconSearch,
IconList,
IconRocket,
2026-03-28 17:51:21 +08:00
IconDesk,
2026-03-28 15:44:57 +08:00
IconAlertCircle,
2026-03-28 17:51:21 +08:00
IconBuilding,
IconNetwork,
IconPackage,
IconTicket,
2026-03-28 15:44:57 +08:00
IconHelp,
IconBook,
IconHeadset,
IconPhone,
IconMail,
IconMessage,
} from '@tabler/icons-vue'
2026-03-21 10:26:44 +08:00
const router = useRouter()
const searchQuery = ref('')
const activeCategory = ref('all')
2026-03-28 17:51:21 +08:00
// 弹窗状态
const guideModalVisible = ref(false)
const currentGuide = ref<any>(null)
// FAQ 数据 - 智能运维管理系统相关
2026-03-21 10:26:44 +08:00
const faqs = ref([
{
2026-03-28 17:51:21 +08:00
question: '如何登录智能运维管理系统?',
answer: '在登录页面输入您的用户名和密码,点击登录按钮即可。如果忘记密码,可以点击"忘记密码"链接进行重置,或联系系统管理员协助重置密码。',
category: 'quickstart'
},
{
question: '如何查看服务器和PC设备的运行状态',
answer: '登录系统后,进入"服务器及PC管理"菜单可以查看服务器管理和办公PC管理两个子模块。在列表中可以查看设备的在线状态、资源使用情况等详细信息。',
2026-03-21 10:26:44 +08:00
category: 'quickstart'
},
{
2026-03-28 17:51:21 +08:00
question: '如何配置监控告警策略?',
answer: '进入"告警管理" -> "告警策略管理"页面,点击"新建策略"按钮,选择监控对象类型、设置告警条件、通知方式和接收人员,保存后即可生效。系统支持多种告警通知渠道,包括邮件、短信、企业微信等。',
category: 'alert'
2026-03-21 10:26:44 +08:00
},
{
2026-03-28 17:51:21 +08:00
question: '告警触发后如何处理?',
answer: '当告警触发时,进入"告警管理" -> "告警受理处理"页面,可以查看待处理的告警列表。点击具体告警记录,可以查看详细信息并进行受理、转派或关闭操作。处理完成后,告警记录会保存在告警历史中供后续查询。',
2026-03-21 10:26:44 +08:00
category: 'alert'
},
{
2026-03-28 17:51:21 +08:00
question: '如何查看网络设备的监控数据?',
answer: '进入"综合监控" -> "网络设备监控"页面可以查看所有网络设备的实时监控数据包括设备状态、端口流量、CPU/内存使用率等。支持按设备类型、IP地址等条件筛选也可以设置监控阈值。',
category: 'monitor'
},
{
question: '如何查看存储设备的运行状态?',
answer: '进入"综合监控" -> "存储设备监控"页面可以查看存储设备的容量使用情况、IOPS、吞吐量等关键指标。系统支持多种存储品牌和型号的自动发现和监控。',
category: 'monitor'
},
{
question: '如何管理数据中心的机柜信息?',
answer: '进入"数据中心管理" -> "机柜管理"页面可以添加、编辑、删除机柜信息。支持查看机柜内的设备分布、U位使用情况以及机柜的电力和制冷状态。还可以通过可视化界面查看机柜布局。',
category: 'datacenter'
},
{
question: '如何添加新的数据中心和楼层?',
answer: '在"数据中心管理"模块中,先在"数据中心"页面添加数据中心基本信息,然后在"楼层管理"页面添加该数据中心的楼层信息。添加完成后,可以在机柜管理中关联具体位置。',
2026-03-21 10:26:44 +08:00
category: 'datacenter'
},
{
2026-03-28 17:51:21 +08:00
question: '如何查看网络拓扑图?',
answer: '进入"网络架构管理" -> "拓扑管理"页面,可以查看和管理网络拓扑图。系统支持自动发现网络设备并生成拓扑图,也可以手动编辑拓扑结构。"自动感知拓扑图"功能可以实时更新网络拓扑变化。',
category: 'netarch'
2026-03-21 10:26:44 +08:00
},
{
2026-03-28 17:51:21 +08:00
question: '如何进行IP地址管理',
answer: '进入"网络架构管理" -> "IP地址管理"页面可以查看和管理IP地址池。支持IP地址分配、回收、冲突检测等功能可以按子网、VLAN等维度进行管理。',
category: 'netarch'
2026-03-21 10:26:44 +08:00
},
{
2026-03-28 17:51:21 +08:00
question: '如何添加新的资产设备?',
answer: '进入"资产管理" -> "设备管理"页面,点击"新增设备"按钮填写设备基本信息名称、型号、IP地址等、选择设备分类、关联供应商信息保存后即可完成添加。也可以通过批量导入功能一次性添加多台设备。',
category: 'asset'
},
{
question: '如何管理设备供应商信息?',
answer: '在"资产管理" -> "供应商管理"页面,可以添加和维护供应商信息,包括供应商名称、联系方式、服务范围等。设备管理时可以关联供应商,便于后续的维保管理。',
category: 'asset'
},
{
question: '如何创建和处理工单?',
answer: '进入"工单管理"模块,可以创建新工单或处理待办工单。在"我的工单"中查看分配给自己的工单,在"所有工单"中查看全部工单。支持工单的创建、分配、处理、转派、关闭等完整流程。',
category: 'ticket'
},
{
question: '如何配置数据库和中间件的采集?',
answer: '进入"集群采集控制中心"模块,在"数据库采集管理"或"中间件采集管理"页面,可以配置需要监控的数据库和中间件实例。填写连接信息后,系统会自动采集性能指标和运行状态。',
category: 'monitor'
},
{
question: '如何查看可视化大屏?',
answer: '进入"可视化大屏管理"模块,可以查看和管理运维大屏。在"大屏管理"中创建和编辑大屏,在"已发布大屏列表"中查看已发布的大屏。大屏可以展示监控概览、告警统计、资源使用等关键指标。',
category: 'quickstart'
2026-03-21 10:26:44 +08:00
},
{
2026-03-28 17:51:21 +08:00
question: '系统支持哪些浏览器?',
answer: '智能运维管理系统支持主流的现代浏览器,包括 Chrome推荐、Firefox、Edge、Safari 等。建议使用最新版本的浏览器以获得最佳体验,屏幕分辨率建议 1920x1080 及以上。',
category: 'quickstart'
2026-03-21 10:26:44 +08:00
}
])
2026-03-28 17:51:21 +08:00
// 使用指南数据 - 包含详细内容
2026-03-21 10:26:44 +08:00
const guides = ref([
{
id: 1,
2026-03-28 17:51:21 +08:00
title: '系统快速入门指南',
description: '帮助您快速了解智能运维管理系统的基本功能和操作流程',
2026-03-28 15:44:57 +08:00
icon: IconRocket,
2026-03-21 10:26:44 +08:00
category: 'quickstart',
categoryName: '快速入门',
2026-03-28 17:51:21 +08:00
updatedAt: '2026-03-15',
content: [
{
title: '系统概述',
text: '智能运维管理系统是一套集监控、告警、资产管理、工单处理于一体的综合运维平台旨在帮助运维人员高效管理IT基础设施。'
},
{
title: '登录系统',
text: '打开浏览器访问系统地址,输入用户名和密码登录。首次登录建议修改默认密码,确保账户安全。',
items: ['支持多种认证方式', '支持单点登录(SSO)', '支持密码找回功能']
},
{
title: '主要功能模块',
text: '系统包含以下核心功能模块:',
items: [
'系统概况:查看整体运维状态概览',
'可视化大屏管理:创建和管理运维展示大屏',
'服务器及PC管理管理服务器和办公电脑',
'集群采集控制中心:配置数据库、中间件、网络设备采集',
'综合监控监控各类IT设备和环境',
'网络架构管理拓扑管理、流量分析、IP管理',
'告警管理:告警策略、告警处理、告警历史',
'工单管理:创建和处理运维工单',
'数据中心管理:机房、楼层、机柜管理',
'资产管理:设备分类、设备信息、供应商管理'
]
},
{
title: '界面导航',
text: '左侧为功能菜单,点击展开子菜单;顶部显示当前页面标题和用户信息;右侧为内容区域,展示具体功能页面。'
}
]
2026-03-21 10:26:44 +08:00
},
{
id: 2,
2026-03-28 17:51:21 +08:00
title: '综合监控使用手册',
description: '详细介绍网络设备、存储、安全设备、虚拟化等各类监控功能的使用方法',
icon: IconDesk,
category: 'monitor',
categoryName: '综合监控',
updatedAt: '2026-03-18',
content: [
{
title: '监控概述',
text: '综合监控模块提供对IT基础设施的全方位监控包括网络设备、存储设备、安全设备、虚拟化平台、环境动力等。'
},
{
title: '网络设备监控',
text: '进入"综合监控" -> "网络设备监控",可以查看路由器、交换机、防火墙等网络设备的运行状态。',
items: ['实时查看设备在线状态', '监控端口流量和带宽使用', '查看CPU、内存使用率', '配置监控阈值和告警']
},
{
title: '存储设备监控',
text: '进入"综合监控" -> "存储设备监控"监控存储阵列、NAS等存储设备。',
items: ['查看存储容量和使用率', '监控IOPS和吞吐量', '查看磁盘健康状态', '支持主流存储品牌']
},
{
title: '虚拟化监控',
text: '进入"综合监控" -> "虚拟化监控"监控VMware、Hyper-V等虚拟化平台。',
items: ['查看虚拟机运行状态', '监控资源分配和使用', '查看宿主机性能指标']
},
{
title: '环境动力监控',
text: '进入"综合监控" -> "电力/UPS/空调/温湿度",监控机房环境。',
items: ['UPS状态和电池容量', '空调运行状态', '温湿度实时数据', '电力负载情况']
}
]
2026-03-21 10:26:44 +08:00
},
{
id: 3,
2026-03-28 17:51:21 +08:00
title: '告警配置与管理指南',
description: '从告警策略配置到告警处理的全流程操作说明',
2026-03-28 15:44:57 +08:00
icon: IconAlertCircle,
2026-03-21 10:26:44 +08:00
category: 'alert',
categoryName: '告警管理',
2026-03-28 17:51:21 +08:00
updatedAt: '2026-03-20',
content: [
{
title: '告警体系概述',
text: '告警管理模块提供完整的告警生命周期管理,从告警策略配置、告警触发、告警通知到告警处理和归档。'
},
{
title: '告警级别管理',
text: '系统预设多个告警级别(紧急、重要、一般、提示),可在"告警级别管理"中自定义级别名称和颜色标识。'
},
{
title: '告警模版配置',
text: '在"告警模版"中创建告警规则模版,定义监控指标、阈值条件、告警级别等。',
items: ['选择监控对象类型', '设置指标和阈值条件', '配置告警级别', '设置静默时间']
},
{
title: '告警策略管理',
text: '在"告警策略管理"中将模版应用到具体设备或设备组,并配置通知方式。',
items: ['选择告警模版', '指定监控对象', '配置通知渠道', '设置通知接收人']
},
{
title: '告警受理处理',
text: '在"告警受理处理"中查看和处理触发的告警。',
items: ['查看告警详情', '受理告警并标记处理状态', '转派给其他人员', '添加处理备注', '关闭告警']
},
{
title: '告警历史查询',
text: '在"告警历史"中查询历史告警记录,支持按时间、设备、级别等条件筛选。'
}
]
2026-03-21 10:26:44 +08:00
},
{
id: 4,
2026-03-28 17:51:21 +08:00
title: '数据中心管理手册',
description: '数据中心、楼层、机柜等基础设施的管理方法',
icon: IconBuilding,
2026-03-21 10:26:44 +08:00
category: 'datacenter',
categoryName: '数据中心',
2026-03-28 17:51:21 +08:00
updatedAt: '2026-03-19',
content: [
{
title: '数据中心管理概述',
text: '数据中心管理模块用于管理机房基础设施信息,包括数据中心、楼层、机柜的层级管理。'
},
{
title: '数据中心信息管理',
text: '在"数据中心"页面管理数据中心基本信息。',
items: ['数据中心名称和编码', '地理位置和地址', '总面积和可用面积', '负责人和联系方式']
},
{
title: '楼层管理',
text: '在"楼层管理"页面添加数据中心下的楼层信息。',
items: ['楼层编号和名称', '楼层面积', '功能区域划分']
},
{
title: '机柜管理',
text: '在"机柜管理"页面管理机柜信息,支持可视化机柜布局。',
items: ['机柜编号和位置', '机柜规格(高度、宽度)', 'U位使用情况', '机柜内设备列表', '电力和制冷状态']
},
{
title: '机柜可视化',
text: '点击机柜可查看机柜内部设备分布图直观展示U位占用情况支持设备上架、下架操作。'
}
]
2026-03-21 10:26:44 +08:00
},
{
id: 5,
2026-03-28 17:51:21 +08:00
title: '网络架构管理指南',
description: '拓扑管理、流量分析、IP地址管理等网络运维功能详解',
icon: IconNetwork,
category: 'netarch',
categoryName: '网络架构',
updatedAt: '2026-03-17',
content: [
{
title: '网络架构管理概述',
text: '网络架构管理模块提供网络拓扑可视化、流量分析、IP地址管理等功能帮助运维人员全面掌握网络架构。'
},
{
title: '拓扑管理',
text: '在"拓扑管理"中创建和管理网络拓扑图。',
items: ['手动创建拓扑图', '自动发现网络拓扑', '编辑设备连接关系', '设置拓扑图展示样式']
},
{
title: '自动感知拓扑图',
text: '系统可自动发现网络设备及其连接关系,生成动态拓扑图,实时反映网络架构变化。'
},
{
title: '流量分析管理',
text: '在"流量分析管理"中查看网络流量数据。',
items: ['查看端口流量统计', '分析流量趋势', '识别流量异常', '生成流量报表']
},
{
title: 'IP地址管理',
text: '在"IP地址管理"中管理IP地址资源。',
items: ['IP地址池管理', 'IP分配和回收', 'IP冲突检测', '子网划分管理']
}
]
2026-03-21 10:26:44 +08:00
},
{
id: 6,
2026-03-28 17:51:21 +08:00
title: '资产管理操作手册',
description: '设备分类、设备信息、供应商等资产管理功能说明',
icon: IconPackage,
category: 'asset',
categoryName: '资产管理',
updatedAt: '2026-03-16',
content: [
{
title: '资产管理概述',
text: '资产管理模块用于管理IT资产的全生命周期包括设备分类、设备信息、供应商管理等。'
},
{
title: '设备分类管理',
text: '在"设备分类管理"中建立设备分类体系。',
items: ['创建分类树形结构', '设置分类属性模板', '关联监控类型']
},
{
title: '设备管理',
text: '在"设备管理"中维护设备资产信息。',
items: [
'设备基本信息:名称、型号、序列号',
'设备位置数据中心、楼层、机柜、U位',
'设备配置IP地址、操作系统、配置参数',
'维保信息:购买日期、保修期限、供应商',
'设备状态:运行状态、健康状态'
]
},
{
title: '供应商管理',
text: '在"供应商管理"中维护供应商信息。',
items: ['供应商名称和编码', '联系方式和地址', '服务范围和产品线', '合同和保修信息']
},
{
title: '批量导入',
text: '支持通过Excel批量导入设备信息提高数据录入效率。'
}
]
2026-03-21 10:26:44 +08:00
},
{
2026-03-28 17:51:21 +08:00
id: 7,
title: '工单管理使用指南',
description: '工单创建、分配、处理、关闭等完整流程说明',
icon: IconTicket,
category: 'ticket',
categoryName: '工单管理',
updatedAt: '2026-03-14',
content: [
{
title: '工单管理概述',
text: '工单管理模块提供运维工单的全流程管理,支持故障处理、服务请求、变更管理等场景。'
},
{
title: '创建工单',
text: '点击"新建工单"按钮,填写工单信息。',
items: ['选择工单类型', '填写工单标题和描述', '设置优先级', '指定处理人', '关联设备或告警']
},
{
title: '我的工单',
text: '在"我的工单"中查看分配给当前用户的待处理工单,支持按状态、优先级筛选。'
},
{
title: '所有工单',
text: '在"所有工单"中查看系统中的全部工单,管理员可进行工单分配和监督。'
},
{
title: '处理工单',
text: '工单处理流程包括:',
items: ['查看工单详情', '更新处理进度', '添加处理记录', '转派给其他人员', '关闭工单并填写处理结果']
}
]
2026-03-21 10:26:44 +08:00
},
{
2026-03-28 17:51:21 +08:00
id: 8,
title: '集群采集配置指南',
description: '数据库、中间件、网络设备采集配置方法',
icon: IconDesk,
category: 'monitor',
categoryName: '综合监控',
updatedAt: '2026-03-12',
content: [
{
title: '采集控制中心概述',
text: '集群采集控制中心用于配置各类IT组件的数据采集包括数据库、中间件、网络设备等。'
},
{
title: '数据库采集管理',
text: '在"数据库采集管理"中配置数据库监控采集。',
items: [
'支持MySQL、Oracle、SQL Server、PostgreSQL等',
'配置数据库连接信息',
'设置采集频率',
'选择采集指标'
]
},
{
title: '中间件采集管理',
text: '在"中间件采集管理"中配置中间件监控采集。',
items: [
'支持Tomcat、Nginx、Redis、Kafka等',
'配置访问地址和认证信息',
'设置采集参数'
]
},
{
title: '网络设备采集管理',
text: '在"网络设备采集管理"中配置网络设备采集。',
items: [
'支持SNMP、SSH等采集方式',
'配置设备IP和认证信息',
'设置采集协议和频率'
]
}
]
2026-03-21 10:26:44 +08:00
}
])
// 计算属性
const filteredFaqs = computed(() => {
if (activeCategory.value === 'all') {
return faqs.value
}
return faqs.value.filter(faq => faq.category === activeCategory.value)
})
const filteredGuides = computed(() => {
if (activeCategory.value === 'all') {
return guides.value
}
return guides.value.filter(guide => guide.category === activeCategory.value)
})
// 方法
const goToHome = () => {
router.push('/')
}
const goToLogin = () => {
router.push('/login')
}
const handleCategoryClick = (key: string) => {
activeCategory.value = key
}
const handleSearch = () => {
2026-03-28 17:51:21 +08:00
if (searchQuery.value) {
Message.info(`搜索关键词:${searchQuery.value}`)
}
2026-03-21 10:26:44 +08:00
}
2026-03-28 17:51:21 +08:00
const openGuideDetail = (guide: any) => {
currentGuide.value = guide
guideModalVisible.value = true
2026-03-21 10:26:44 +08:00
}
const openChat = () => {
2026-03-28 17:51:21 +08:00
Message.info('在线客服功能即将上线')
2026-03-21 10:26:44 +08:00
}
2026-03-28 17:51:21 +08:00
defineExpose({
guideModalVisible,
currentGuide
})
2026-03-21 10:26:44 +08:00
</script>
<style scoped lang="less">
.help-page {
min-height: 100vh;
background: #f5f7fa;
// 顶部导航
.navbar {
position: fixed;
top: 0;
left: 0;
right: 0;
height: 60px;
background: rgba(255, 255, 255, 0.95);
backdrop-filter: blur(10px);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
z-index: 1000;
.navbar-content {
max-width: 1400px;
margin: 0 auto;
padding: 0 24px;
height: 100%;
display: flex;
justify-content: space-between;
align-items: center;
.logo {
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
img {
height: 32px;
width: auto;
}
.logo-text {
font-size: 20px;
font-weight: 600;
color: var(--color-text-1);
}
}
.nav-links {
display: flex;
align-items: center;
gap: 24px;
a {
color: var(--color-text-2);
text-decoration: none;
font-size: 14px;
transition: color 0.3s;
&:hover {
color: rgb(var(--primary-6));
}
}
}
}
}
// Banner 区域
.help-banner {
2026-03-28 15:44:57 +08:00
position: relative;
2026-03-21 10:26:44 +08:00
padding: 140px 24px 80px;
text-align: center;
color: #fff;
2026-03-28 17:51:21 +08:00
2026-03-28 15:44:57 +08:00
.banner-image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
}
2026-03-28 17:51:21 +08:00
2026-03-28 15:44:57 +08:00
.banner-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
2026-03-28 17:51:21 +08:00
2026-03-21 10:26:44 +08:00
.banner-content {
2026-03-28 15:44:57 +08:00
position: relative;
2026-03-28 17:51:21 +08:00
z-index: 1;
2026-03-21 10:26:44 +08:00
h1 {
2026-03-28 17:51:21 +08:00
font-size: 42px;
font-weight: 600;
2026-03-21 10:26:44 +08:00
margin-bottom: 16px;
}
2026-03-28 17:51:21 +08:00
2026-03-21 10:26:44 +08:00
p {
font-size: 18px;
2026-03-28 17:51:21 +08:00
opacity: 0.9;
margin-bottom: 32px;
2026-03-21 10:26:44 +08:00
}
2026-03-28 17:51:21 +08:00
2026-03-21 10:26:44 +08:00
.search-box {
max-width: 600px;
margin: 0 auto;
2026-03-28 17:51:21 +08:00
:deep(.arco-input-wrapper) {
background: rgba(255, 255, 255, 0.95);
2026-03-21 10:26:44 +08:00
border: none;
2026-03-28 17:51:21 +08:00
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
.arco-input {
font-size: 16px;
padding: 12px 16px;
&::placeholder {
color: #86909c;
}
2026-03-21 10:26:44 +08:00
}
}
}
}
}
// 主要内容区
.help-content {
padding: 40px 24px;
.content-container {
max-width: 1400px;
margin: 0 auto;
2026-03-28 17:51:21 +08:00
display: flex;
2026-03-21 10:26:44 +08:00
gap: 32px;
2026-03-28 17:51:21 +08:00
@media (max-width: 992px) {
flex-direction: column;
}
2026-03-21 10:26:44 +08:00
}
2026-03-28 17:51:21 +08:00
// 左侧目录
2026-03-21 10:26:44 +08:00
.help-sidebar {
2026-03-28 17:51:21 +08:00
width: 240px;
flex-shrink: 0;
@media (max-width: 992px) {
width: 100%;
}
2026-03-21 10:26:44 +08:00
:deep(.arco-menu) {
2026-03-28 17:51:21 +08:00
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
padding: 12px 0;
2026-03-21 10:26:44 +08:00
.arco-menu-item {
2026-03-28 17:51:21 +08:00
margin: 4px 8px;
border-radius: 6px;
2026-03-21 10:26:44 +08:00
&.arco-menu-selected {
background: rgb(var(--primary-1));
color: rgb(var(--primary-6));
}
2026-03-28 17:51:21 +08:00
}
}
}
// 右侧内容
.help-main {
flex: 1;
min-width: 0;
}
}
// 帮助区块
.help-section {
background: #fff;
border-radius: 8px;
padding: 32px;
margin-bottom: 24px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
.section-title {
display: flex;
align-items: center;
gap: 12px;
font-size: 20px;
font-weight: 600;
color: var(--color-text-1);
margin-bottom: 24px;
padding-bottom: 16px;
border-bottom: 1px solid var(--color-border-2);
svg {
width: 24px;
height: 24px;
color: rgb(var(--primary-6));
}
}
.section-desc {
color: var(--color-text-3);
margin-bottom: 24px;
}
}
// FAQ 列表
.faq-list {
:deep(.arco-collapse) {
border: none;
background: transparent;
.arco-collapse-item {
margin-bottom: 12px;
border: 1px solid var(--color-border-2);
border-radius: 8px;
overflow: hidden;
.arco-collapse-item-header {
background: #fafbfc;
padding: 16px 20px;
font-weight: 500;
2026-03-21 10:26:44 +08:00
2026-03-28 17:51:21 +08:00
&:hover {
background: #f2f3f5;
2026-03-21 10:26:44 +08:00
}
}
2026-03-28 17:51:21 +08:00
.arco-collapse-item-content {
padding: 20px;
background: #fff;
}
2026-03-21 10:26:44 +08:00
}
}
2026-03-28 17:51:21 +08:00
.faq-answer {
color: var(--color-text-2);
line-height: 1.8;
}
}
// 使用指南网格
.guide-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 20px;
.guide-card {
background: #fafbfc;
border: 1px solid var(--color-border-2);
border-radius: 8px;
padding: 24px;
cursor: pointer;
transition: all 0.3s;
&:hover {
border-color: rgb(var(--primary-6));
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
transform: translateY(-2px);
2026-03-21 10:26:44 +08:00
2026-03-28 17:51:21 +08:00
.view-link {
color: rgb(var(--primary-6));
2026-03-21 10:26:44 +08:00
}
2026-03-28 17:51:21 +08:00
}
.guide-icon {
width: 48px;
height: 48px;
background: rgb(var(--primary-1));
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 16px;
2026-03-21 10:26:44 +08:00
2026-03-28 17:51:21 +08:00
svg {
width: 24px;
height: 24px;
color: rgb(var(--primary-6));
2026-03-21 10:26:44 +08:00
}
2026-03-28 17:51:21 +08:00
}
h3 {
font-size: 16px;
font-weight: 600;
color: var(--color-text-1);
margin-bottom: 8px;
}
p {
font-size: 14px;
color: var(--color-text-3);
line-height: 1.6;
margin-bottom: 16px;
}
.guide-meta {
display: flex;
justify-content: space-between;
font-size: 12px;
color: var(--color-text-4);
margin-bottom: 12px;
2026-03-21 10:26:44 +08:00
2026-03-28 17:51:21 +08:00
.guide-category {
background: rgb(var(--primary-1));
color: rgb(var(--primary-6));
padding: 2px 8px;
border-radius: 4px;
}
}
.guide-action {
.view-link {
font-size: 13px;
color: var(--color-text-3);
transition: color 0.3s;
2026-03-21 10:26:44 +08:00
}
2026-03-28 17:51:21 +08:00
}
}
}
// 联系我们
.contact-section {
background: linear-gradient(135deg, #f8f9ff 0%, #f0f4ff 100%);
}
.contact-cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 20px;
.contact-card {
background: #fff;
border-radius: 12px;
padding: 24px;
display: flex;
align-items: flex-start;
gap: 16px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
transition: all 0.3s;
&:hover {
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
transform: translateY(-2px);
}
.contact-icon {
width: 48px;
height: 48px;
background: rgb(var(--primary-1));
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
2026-03-21 10:26:44 +08:00
2026-03-28 17:51:21 +08:00
svg {
width: 24px;
height: 24px;
color: rgb(var(--primary-6));
2026-03-21 10:26:44 +08:00
}
2026-03-28 17:51:21 +08:00
}
.contact-content {
flex: 1;
2026-03-21 10:26:44 +08:00
2026-03-28 17:51:21 +08:00
h3 {
font-size: 16px;
font-weight: 600;
color: var(--color-text-1);
margin-bottom: 4px;
}
.contact-time {
font-size: 13px;
color: var(--color-text-3);
margin-bottom: 8px;
}
.contact-value {
font-size: 15px;
font-weight: 500;
color: rgb(var(--primary-6));
2026-03-21 10:26:44 +08:00
}
}
}
}
// 页脚
.footer {
2026-03-28 17:51:21 +08:00
background: #1d2129;
2026-03-21 10:26:44 +08:00
padding: 24px;
text-align: center;
.footer-content {
max-width: 1400px;
margin: 0 auto;
p {
2026-03-28 17:51:21 +08:00
color: #86909c;
2026-03-21 10:26:44 +08:00
font-size: 14px;
}
}
}
2026-03-28 17:51:21 +08:00
// 使用指南详情弹窗
.guide-detail-content {
.guide-detail-header {
margin-bottom: 24px;
2026-03-21 10:26:44 +08:00
2026-03-28 17:51:21 +08:00
.guide-detail-meta {
display: flex;
align-items: center;
gap: 12px;
.guide-detail-date {
font-size: 13px;
color: var(--color-text-3);
2026-03-21 10:26:44 +08:00
}
}
}
2026-03-28 17:51:21 +08:00
.guide-detail-body {
.content-section {
margin-bottom: 24px;
h3 {
font-size: 16px;
font-weight: 600;
color: var(--color-text-1);
margin-bottom: 12px;
padding-left: 12px;
border-left: 3px solid rgb(var(--primary-6));
2026-03-21 10:26:44 +08:00
}
p {
2026-03-28 17:51:21 +08:00
font-size: 14px;
color: var(--color-text-2);
line-height: 1.8;
margin-bottom: 12px;
2026-03-21 10:26:44 +08:00
}
2026-03-28 17:51:21 +08:00
ul {
margin: 0;
padding-left: 24px;
li {
font-size: 14px;
color: var(--color-text-2);
line-height: 1.8;
margin-bottom: 4px;
2026-03-28 15:44:57 +08:00
}
}
2026-03-21 10:26:44 +08:00
}
2026-03-28 17:51:21 +08:00
.guide-placeholder {
padding: 40px 0;
text-align: center;
}
2026-03-21 10:26:44 +08:00
}
}
}
</style>