修改 title

This commit is contained in:
mmc
2026-11-06 09:37:48 +08:00
parent 3f660c75dd
commit d43d44c502
13 changed files with 34 additions and 25 deletions

View File

@@ -14,7 +14,7 @@ from docx.oxml import OxmlElement
SCREENSHOT_DIR = r"D:\code\机器人智慧服务系统\.workbuddy\screenshots"
OUTPUT_PATH = r"D:\code\机器人智慧服务系统\用户手册-机器人智慧服务系统.docx"
TITLE = "光伏机器人环境感知服务平台"
TITLE = "机器人智慧服务系统"
SUBTITLE = "用户操作手册"
VERSION = "V1.0"
DATE = "2026年8月"
@@ -128,7 +128,7 @@ def build_doc():
# ==================== 1. 系统概述 ====================
make_heading(doc, "一、系统概述", 1)
make_body(doc, "机器人智慧服务平台(正式名称:光伏机器人环境感知服务平台)是一个面向光伏电站场景的综合性智能管理平台。系统将巡检机器人、无人机、视频监控、告警处理与运维工单整合到统一 Web 控制台中,为运维人员提供设备管理、实时监控、视频回传、状态预警、AI 诊断分析、清洗优化、报表中心与视频下载等一站式能力。")
make_body(doc, "机器人智慧服务平台(正式名称:机器人智慧服务系统)是一个面向光伏电站场景的综合性智能管理平台。系统将巡检机器人、无人机、视频监控、告警处理与运维工单整合到统一 Web 控制台中,为运维人员提供设备管理、实时监控、视频回传、状态预警、AI 诊断分析、清洗优化、报表中心与视频下载等一站式能力。")
make_heading(doc, "1.1 系统架构", 2)
make_body(doc, "系统采用前后端分离的 B/S 架构,前端基于 React 19 + TypeScript + Vite 6 构建为单页应用(SPA),通过四条独立通信通道对接后端的 API、MQTT、WebSocket 与 GeoServer 服务:")

View File

@@ -540,7 +540,7 @@ add_p(doc, "本月独立完成软件著作权申报材料撰写,覆盖系统
"并依据审核反馈持续完善。",
indent_first=True, align="justify")
ach2 = [
("软件名称", "光伏机器人环境感知服务平台"),
("软件名称", "机器人智慧服务系统"),
("软件简称", "光伏智能运维系统"),
("版本号", "V1.0"),
("源程序量", "约 53700 行"),
@@ -650,4 +650,4 @@ add_p(doc, "日期:2026 年 9 月", indent_first=False, align="right", space_a
# 保存
doc.save(OUTPUT_PATH)
print(f"OK: 生成成功 -> {OUTPUT_PATH}")
print(f"大小: {os.path.getsize(OUTPUT_PATH)} bytes")
print(f"大小: {os.path.getsize(OUTPUT_PATH)} bytes")

View File

@@ -1,7 +1,7 @@
# 2026-08-11 工作日志
## 用户手册生成
- 根据"机器人智慧服务系统"(光伏机器人环境感知服务平台)项目,生成了完整的用户操作手册 Word 文档
- 根据"机器人智慧服务系统"(机器人智慧服务系统)项目,生成了完整的用户操作手册 Word 文档
- 文档路径:`用户手册-机器人智慧服务系统.docx`
### 截图获取方案
@@ -32,5 +32,5 @@
## 软著采集表填写
- 根据项目信息,完整填写了软著采集表,保存至 `C:/Users/15563/Desktop/软著/采集表(已填写).doc`
- 填入内容涵盖 20 个字段:软件名称(光伏机器人环境感知服务平台)、简称(光伏智能运维系统)、版本V1.0、分类(应用软件)、开发/发表日期、硬件环境、编程语言、源程序量(约53700行)、开发目的、面向领域(光伏新能源/工业物联网)、主要功能(701字描述10大模块)、主要特点、软件类型(物联网软件)等
- 填入内容涵盖 20 个字段:软件名称(机器人智慧服务系统)、简称(光伏智能运维系统)、版本V1.0、分类(应用软件)、开发/发表日期、硬件环境、编程语言、源程序量(约53700行)、开发目的、面向领域(光伏新能源/工业物联网)、主要功能(701字描述10大模块)、主要特点、软件类型(物联网软件)等
- 使用 editor_sdk 的 doc_modify_table_region 工具逐行填写表格单元格

View File

@@ -1,12 +1,12 @@
# 2026-11-03
## 软著用户手册生成(机器人智慧服务系统)
- 参考 `C:\Users\15563\Desktop\软著\新建文件夹\用户手册-光伏机器人环境感知服务平台.docx` 的版式(封面居中标题/版本行、heading1=styleId 3、heading2=styleId 4、List Bullet=styleId 16、图注居中灰 10pt、正文微软雅黑/宋体 11pt、Letter 页面、上下 2cm 左右 2.54cm、页眉含页码+系统名)。
- 参考 `C:\Users\15563\Desktop\软著\新建文件夹\用户手册-机器人智慧服务系统.docx` 的版式(封面居中标题/版本行、heading1=styleId 3、heading2=styleId 4、List Bullet=styleId 16、图注居中灰 10pt、正文微软雅黑/宋体 11pt、Letter 页面、上下 2cm 左右 2.54cm、页眉含页码+系统名)。
- 生成脚本:`scripts/build_manual.py`——克隆参考 docx 包,重写 word/document.xml + document.xml.rels,替换 6 张截图到 word/media/manualN.png,页眉旧平台名替换为「机器人智慧服务系统」。
- 截图:用 Playwright(channel=msedge) 登录本地 dev(vite 3001,后端 1.95.137.212:59003,账号 admin),截 login + 装备总览/机器人任务/机器人控制/地图编辑/告警中心,存于 `shots/`。
- 产物:`C:\Users\15563\Desktop\软著\新建文件夹\用户操作手册-机器人智慧服务系统.docx`(8 章 / 34 小节 / 6 图 / 7.4MB)。
- 坑:editor_sdk 打开该 docx 后 doc_get_document_content 报 "document is not open",改用 python zipfile 直读 XML 提取样式;脚本删除输出文件触发 safe-delete 钩子,改用 zipfile 'w' 直接覆盖。
- 注意:截图顶栏系统名来自后端 systemName 配置,当前仍显示「光伏机器人环境感知服务平台」,如需一致可在系统设置-基础设置改 systemName。
- 注意:截图顶栏系统名来自后端 systemName 配置,当前仍显示「机器人智慧服务系统」,如需一致可在系统设置-基础设置改 systemName。
## 手册扩充(详版)
- 按用户要求把文字/功能描述大幅扩写:8 章 / 44 小节 / 72 条项目符号 / 16 张说明表格 / 1.27 万字(首版约 0.6 万字)。

View File

@@ -4,7 +4,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>光伏机器人环境感知服务平台 · 架构设计文档</title>
<title>机器人智慧服务系统 · 架构设计文档</title>
<style>
:root {
--bg: #ffffff;
@@ -358,7 +358,7 @@
<header>
<div><span class="tag">架构设计文档</span><span class="tag teal">React 19</span><span class="tag teal">Vite
6</span></div>
<h1>光伏机器人环境感知服务平台</h1>
<h1>机器人智慧服务系统</h1>
<div class="sub">机器人智慧服务平台 · 前端系统架构与设计说明</div>
<div class="meta">
<span>项目代号:机器人智慧服务系统</span>
@@ -383,7 +383,7 @@
<section id="s1">
<h2><span class="num">1</span>项目概述</h2>
<p>本项目(metadata 名:<code>光伏机器人环境感知服务平台</code>)是一个面向光伏电站场景的<strong>机器人智能管理平台</strong>。它将巡检机器人 /
<p>本项目(metadata 名:<code>机器人智慧服务系统</code>)是一个面向光伏电站场景的<strong>机器人智能管理平台</strong>。它将巡检机器人 /
无人机、视频监控、告警处理与运维工单整合到单一 Web 控制台,提供设备管理、实时监控、视频回传、状态预警、AI 诊断分析、清洗优化、报表中心与视频下载等一站式能力。</p>
<div class="grid">
@@ -486,7 +486,7 @@
<div class="diagram">
<svg viewBox="0 0 680 492" width="100%" role="img" aria-label="系统分层架构图">
<text x="340" y="26" text-anchor="middle" font-family="var(--sans)" font-size="15" font-weight="500"
fill="#0C447C">光伏机器人环境感知服务平台 · 分层架构</text>
fill="#0C447C">机器人智慧服务系统 · 分层架构</text>
<rect x="200" y="52" width="280" height="44" rx="8" fill="#F1EFE8" stroke="#5F5E5A"
stroke-width="0.5" />
<text x="340" y="74" text-anchor="middle" dominant-baseline="central" font-family="var(--sans)"
@@ -596,7 +596,8 @@
<h3>4.1 路由层 <code>src/router</code></h3>
<p>采用 <code>createBrowserRouter</code> + 全量 <code>lazy()</code> 懒加载,首屏只加载必要代码。路由通过 <code>routeMeta</code>
声明每个路径的 <strong>角色白名单</strong>(admin / operator / viewer)与
<code>requiresAuth</code>,<code>ProtectedRoute</code> 在进入受保护路由前校验登录态与权限,未登录跳转 <code>/login</code>。</p>
<code>requiresAuth</code>,<code>ProtectedRoute</code> 在进入受保护路由前校验登录态与权限,未登录跳转 <code>/login</code>。
</p>
<h3>4.2 页面层 <code>src/pages</code></h3>
<table>
@@ -783,7 +784,8 @@
<div class="card coral">
<h3>DeviceController 控制类</h3>
<p>封装设备控制全流程:申请控制权(<code>getControlRight</code>)→ 握手连接 → <code>sendGamepad</code> 经 lodash
<code>throttle(50ms)</code> 节流下发手柄数据 → 通过回调上抛设备信息 / 控制状态 / WS 状态变化。手柄输入 50ms 一发,兼顾流畅与带宽。</p>
<code>throttle(50ms)</code> 节流下发手柄数据 → 通过回调上抛设备信息 / 控制状态 / WS 状态变化。手柄输入 50ms 一发,兼顾流畅与带宽。
</p>
</div>
</section>
@@ -913,7 +915,7 @@
├── env.js # 环境配置(baseURL / WS_URL / mqtt_url / geoserver_url)
├── vite.config.ts # 构建配置(别名 @、Cesium 插件、CSS 分割)
├── index.html # 入口 HTML
├── metadata.json # 项目元信息(真实名称:光伏机器人环境感知服务平台)
├── metadata.json # 项目元信息(真实名称:机器人智慧服务系统)
└── src/
├── api/ # API 服务层
│ ├── request.ts # Axios 实例 + 拦截器(401 统一登出)
@@ -975,7 +977,7 @@
</section>
<footer>
光伏机器人环境感知服务平台 · 架构设计文档 · 由 WorkBuddy 基于源码静态分析生成
机器人智慧服务系统 · 架构设计文档 · 由 WorkBuddy 基于源码静态分析生成
</footer>
</div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="icon" type="image/x-icon" href="./src/assets/logo.png" />
<title>光伏机器人环境感知服务平台</title>
<title>机器人智慧服务系统</title>
<!-- 预加载关键域名(提速DNS) -->
<link rel="dns-prefetch" href="https://cdnjs.cloudflare.com">

View File

@@ -1,5 +1,5 @@
{
"name": "光伏机器人环境感知服务平台",
"name": "机器人智慧服务系统",
"description": "提供设备管理、视频监控、状态预警、警报处理及视频下载功能的一站式机器人智能管理平台。",
"requestFramePermissions": [],
"majorCapabilities": []

View File

@@ -3,7 +3,7 @@
import zipfile, re, os, struct
from xml.sax.saxutils import escape
REF = r"C:/Users/15563/Desktop/软著/新建文件夹/用户手册-光伏机器人环境感知服务平台.docx"
REF = r"C:/Users/15563/Desktop/软著/新建文件夹/用户手册-机器人智慧服务系统.docx"
OUT = r"C:/Users/15563/Desktop/软著/新建文件夹/用户操作手册-机器人智慧服务系统.docx"
SHOTS = r"D:/code/机器人智慧服务系统/shots"

View File

@@ -9,7 +9,8 @@ import { useTranslation } from 'react-i18next';
import { I18nextProvider } from 'react-i18next';
import i18n from './i18n';
import { useEffect } from 'react';
import { useAppDispatch } from './store';
import { useSelector } from 'react-redux';
import { useAppDispatch, type RootState } from './store';
import { setSettingField, setGlobalParams } from './store/basicSettingsSlice';
import { getSystemParam } from './api/global';
@@ -56,6 +57,12 @@ const AntdConfigWrapper = ({ children }: { children: React.ReactNode }) => {
export default function App() {
const dispatch = useAppDispatch();
// 系统名称与页面标题保持一致:优先使用接口下发/本地缓存的 systemName
const systemName = useSelector((state: RootState) => state.basicSettings.systemName);
useEffect(() => {
if (systemName) document.title = systemName;
}, [systemName]);
useEffect(() => {
getSystemParam()
.then((res: any) => {

View File

@@ -466,7 +466,7 @@ const BasicSettings = () => {
<Button size="small" style={{ marginLeft: 8, borderRadius: 6 }} onClick={() => {
// 只重置本地视图,不 dispatch;需点击保存才会生效
form.setFieldsValue({
systemName: '光伏机器人环境感知服务平台',
systemName: '机器人智慧服务系统',
defaultSite: stationList && stationList.length > 0
? [...stationList].sort((a, b) => (a.id || 0) - (b.id || 0))[0]?.id
: '',

View File

@@ -108,7 +108,7 @@ const zh = {
working: '作业中',
},
layout: {
systemName: '光伏机器人环境感知服务平台',
systemName: '机器人智慧服务系统',
selectStation: '请选择电站',
fullScreen: '全屏',
exitFullScreen: '退出全屏',
@@ -123,7 +123,7 @@ const zh = {
moduleDeveloping: '模块开发中',
},
login: {
systemName: '光伏机器人环境感知服务平台',
systemName: '机器人智慧服务系统',
accountPlaceholder: '请输入账号',
passwordPlaceholder: '请输入密码',
accountRequired: '请输入账号',

View File

@@ -25,7 +25,7 @@ export interface BasicSettingsState {
const STORAGE_KEY = 'basicSettings';
const defaultState: BasicSettingsState = {
systemName: '光伏机器人环境感知服务平台',
systemName: '机器人智慧服务系统',
defaultSite: '',
defaultPage: 'dashboard',
refreshRate: '5min',

View File

@@ -1,5 +1,5 @@
// ============================================================
// 光伏机器人环境感知服务平台 - 全局类型定义
// 机器人智慧服务系统 - 全局类型定义
// ============================================================
// ------------------- 通用 -------------------