前端服务
- 在 src/theme/Root.js 配置 React 组件滚动,使得外部访问带锚点的链接可以直接滚动跳转
打包配置
vite.config.js 打包路径设置为:
../lrobot/web/frontend/dist,即自动打包进 lrobot 的前端文件夹内
后端路径配置
vite.config.js 将调试时的 "/hjd" 路径转换为 localhost:5922/hjd,即使调试使用的是 5173 端口也可以成功访问后端
全局脚本配置
main.js // 注册交互适配器 registerInteractions(app) // 注册布局自动管理系统 registerLayouts(app)
连接管理
api.js http 和 websocket 连接,可直接引用
路由管理
router/index.js 路径配置
- index 中配置各页面路径
- 未匹配路径转到 NotFound.vue 配置cookie验证:
- /firefly:存在 account
- /cab:存在 account 且不以花火开头
- 其他:不限制
模板容器
layout
交互适配器
layout.js
- 统一触摸和点击事件
- 统一电脑右键和手机长按事件为 rightClick
- 统一电脑鼠标移动、手机滑动事件为 dragStart,dragMove,dragEnd
- 统一电脑 ctrl+- 缩放、手机双指缩放事件为 zoom(zoomStart,zoomEnd)
- 统一电脑窗口变化(缩放/改变窗口大小)、手机窗口变化(缩放,横屏-竖屏)事件为 viewportChange
布局注册器
registier.js
- 初始化页面所有容器(若存在
.layoutxx-container则调用注册函数LayoutxxScale)- 监听新增节点,若存在
.layoutxx-container则调用注册函数LayoutxxScale
- 监听新增节点,若存在
- 绑定窗口事件,监听 zoom,zoomEnd,viewportChange 事件,若出现则调用注册函数
LayoutxxScale
layout1 布局
layout1.js,layout1.css
Layout1Scale 方法
- 保证 layout1-content 存在
- 获取当前可视高度
- 根据比例切换模式(>9/16 宽屏模式,<9/16 窄屏模式)
- 不同模式具有不同样式
- 容器占满可视区域
- 内容区 layout1-content
- 宽屏下高度为可视高度,宽度为 16/9*高度,居中,两侧留白
- 窄屏下高度为可视高度,宽度为 16/9*高度,出现滚动条
- 使用 align-items 保证 layout1-content 不被挤到手机浏览器上方地址栏处
layout2布局
layout2.js,layout2.css
Layout2Scale 方法
- 根据屏幕可视宽度切换模式(>767 宽屏,<767 窄屏)
- 若窄屏则添加窄屏布局方法
- 监听 dragEnd 事件
- 判断左滑右滑
- 出现对应侧边栏
- 监听点击事件
- 隐藏所有侧边栏
- 监听 dragEnd 事件
- 不同模式具有不同布局样式
- 宽屏
- 左栏:中栏:右栏=1:2:1
- 窄屏
- 初始只出现中栏,出现左右栏时占屏幕 2/3
- 宽屏