## WEB组态
基于vue+quasar的web组态,核心代码基于vue,quasar仅仅是为了方便构建
预览地址:http://42.192.126.212/WebTopo/dist/spa/
github预览地址:https://phynos.github.io/WebTopo/dist/spa
## 更新日志
[更新日志](CHANGELOG.md)
## 后续重点TODO
- 完善撤销和恢复
- 折线箭头(思路:增加控制锚点作为转折点)
- 属性元数据设计和属性编辑UI生成(思路:仿造winform的属性面板)
## 功能清单
| 功能 | 状态 |
| - | -: |
| 面板标尺 | 完成 |
| 拖曳添加组件 | 完成 |
| 位置移动-鼠标 | 完成 |
| 位置移动-方向键 | 完成 |
| 位置移动-批量 | 完成 |
| 拖动位置磁性吸附 | 未完成 |
| 尺寸锚点(8个) | 完成 |
| 旋转锚点 | 未完成 |
| 选中效果 | 完成 |
| 层叠控制 | 完成 |
| 面板比例缩放 | 完成 |
| CTRL+C/V复制黏贴 | 完成 |
| CTRL+A多选 | 完成 |
| 鼠标框选 | 完成 |
| DELETE删除(支持删除多个) | 完成 |
| 样式配置(文字、大小、位置、边框、颜色、旋转) | 完成 |
| 组件继承体系 | 完成 |
| DOM组件(文字、图片) | 完成 |
| canvas组件(圆形、三角形、矩形、线条、箭头线条) | 完成 |
| 折线箭头 | 部分完成 |
| echarts组件 | 完成 |
| SVG组件 | 完成 |
| 组件同步/异步数据加载 | 完成 |
| 通讯机制-事件总线 | 完成 |
| 通讯机制-VUEX | 未开始 |
| 事件总线-WebSocket | 未开始 |
| 事件总线-MQTT | 未开始 |
| VUEX-WebSocket | 未开始 |
| VUEX-MQTT | 未开始 |
## 高级功能
| 功能 | 状态 |
| - | -: |
| 批量编辑属性 | 未完成 |
| 对齐工具 | 未完成 |
| 撤销和恢复 | 有限支持 |
| 容器组件 | 未完成 |
| 动画 | 未完成 |
## 撤销和恢复支持操作列表
| 命令码 | 操作 | 撤销 | 恢复 |
| - | - | - | -: |
| add | 新增 | 支持 | 支持|
| del | 删除 | 支持 | 不支持|
| move | 移动 | 支持 | 支持|
| select | 选择 | 未完成 | 未完成|
| -- | 反选 | 未完成 | 未完成|
| resize | 形变 | 未完成 | 未完成|
| copy-add | 多项复制 | 未完成 | 未完成|
| -- | 属性修改 | 未完成 | 未完成|
## 存在问题
1. 目前的属性面板的鼠标编辑是硬编码的,这样初期拓展简单但是维护麻烦,更好的方法是每个属性定义完整的属性元数据,属性面板根据每个属性的元数据动态生成编辑,并支持属性分组
## 如何拓展控件
1. 定义数据文件(参见 \src\components\topo\data-toolbox下的json文件)
2. 新增控件,根据数据文件的数据自己实现显示方式(在\src\components\topo\control下新增控件,继承组件,可参考其他组件实现方式,整个思想就是利用第一步的数据绘制dom节点或canvas图像)
3. 注册控件到工具栏(在TopoToolbox.vue中)
4. 注册控件(在TopoBase.vue中)
其实整体思想很简单,就是定义一些数据,然后自己新增vue组件根据这些数据控制渲染和行为,其他的一些组态编辑操作是公共的。
## 组件和服务器通讯
3种机制:独立http、VUEX、事件总线(基于一个消息中心,订阅和发布消息的模式)
### 独立通讯-http
每个组件独立使用http接口和定时器实现,适用于少量组件的应用(组件太多会导致过多连接和定时器)
### 通讯机制-事件总线-演示
参见/src/assets/libs/simpleEventBus.js和ViewRect.vue组件的演示代码(直接进入预览可看见矩形变色)
### 通知机制-VUEX-演示
未开始
### VUEX通讯-WebSocket
未开始
### VUEX通讯-MQTT
未开始
### 事件总线-WebSocket
准备中
### 事件总线-MQTT
未开始
## 构建过程
- 安装NodeJs
- 安装vue-cli:npm install -g @vue/cli
- 安装quasar-cli:npm install -g @quasar/cli
- 进入根目录,执行安装npm install(建议使用cnpm安装)
- 启动项目:quasar dev
更多构建功能请参考quasar官网,以下是一些常用的构建命令
### 运行开发服务器
$ quasar dev
### 运行在特定端口
$ quasar dev -p 9090
### PWA模式
$ quasar dev -m pwa
### 手机App
$ quasar dev -m cordova
### Electron应用
$ quasar dev -m electron
注意:Electron应用等请参考官网配置相应的开发环境
安装yarn:npm install -g yarn
设置yarn镜像:yarn config set registry http://registry.npm.taobao.org/
安装electron:yarn add --dev electron@^7.0.0 electron-debug@^3.0.0 electron-devtools-installer@^2.2.4 devtron@^1.4.0
安装环境:cnpm install --global windows-build-tools
在打包过程中会从github下载文件,如果下载不了,可以直接百度网盘下载,网盘地址:
https://pan.baidu.com/s/1RiHHBDJMeiXLubaFzryTAw
## 如何打包
1. 编辑quasar.conf.js下的publicPath,修改为实际的名称
2. 去编译后(使用命令quasar build)的dist文件夹将文件拷贝到web服务器即可
3. 目前publicPath默认为WebTopo,所以构建后访问http://127.0.0.1/WebTopo/即可
注意:由于VUE使用history模式,使用nginx等服务器需要解决路径404问题(本项目只有2个url)
## 构建命令参考
### build for production
quasar build
### Electron App
quasar build -m electron
## 运行截图
![avatar](/doc/shot.png)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
基于VUE的web组态(组态,拓扑图,拓扑编辑器).zip (239个子文件)
app.e0f1ca08.css 174KB
4f201d3c.70b9d4ca.css 7KB
4b158788.484bb54c.css 472B
243bf772.e3a0afda.css 343B
电力图符定义.doc 5.2MB
.editorconfig 147B
.eslintignore 10B
.gitignore 268B
.gitkeep 0B
.gitkeep 0B
4b158788.dc2f5c9a.js.gz 284KB
vendor.9bb01ffe.js.gz 139KB
app.e0f1ca08.css.gz 30KB
4f201d3c.4bd1085f.js.gz 10KB
app.31900840.js.gz 4KB
4b47640d.b4a4a9a8.js.gz 4KB
index.html 2KB
index.template.html 1KB
icon.icns 186KB
icon.ico 361KB
ground.jpg 43KB
ground.jpg 43KB
4b158788.dc2f5c9a.js 827KB
vendor.9bb01ffe.js 449KB
4f201d3c.4bd1085f.js 50KB
app.31900840.js 13KB
4b47640d.b4a4a9a8.js 12KB
mutations.js 7KB
utils.js 4KB
quasar.conf.js 4KB
runtime.7dea347e.js 3KB
243bf772.bf255146.js 3KB
base64.js 3KB
topo.js 2KB
simpleEventBus.js 1KB
topo-util.js 1KB
.eslintrc.js 1KB
electron-main.js 1KB
websocket.js 882B
state.js 812B
electron-main.dev.js 702B
index.js 602B
routes.js 492B
index.js 393B
2d21eaa9.76267622.js 313B
i18n.js 252B
uid.js 246B
x2js.js 238B
index.js 226B
index.js 226B
.postcssrc.js 200B
EventBus.js 170B
getters.js 166B
index.js 162B
actions.js 142B
axios.js 96B
index.js 74B
babel.config.js 69B
index.js 63B
mutations.js 47B
actions.js 47B
getters.js 45B
state.js 24B
china-cities.json 1.15MB
world.json 987KB
xizang.json 670KB
package-lock.json 528KB
xinjiang.json 86KB
sichuan.json 82KB
heilongjiang.json 77KB
guangdong.json 70KB
yunnan.json 61KB
china.json 60KB
neimenggu.json 56KB
zhejiang.json 50KB
shandong.json 49KB
liaoning.json 49KB
chongqing.json 47KB
gansu.json 46KB
guangxi.json 46KB
hunan.json 44KB
qinghai.json 43KB
fujian.json 42KB
jilin.json 40KB
hebei.json 38KB
hubei.json 38KB
henan.json 35KB
taiwan.json 31KB
guizhou.json 31KB
jiangxi.json 31KB
shanxi1.json 30KB
anhui.json 30KB
hainan.json 28KB
jiangsu.json 23KB
shanxi.json 22KB
beijing.json 21KB
material-icon.json 14KB
shanghai.json 12KB
ningxia.json 12KB
xianggang.json 12KB
共 239 条
- 1
- 2
- 3
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于图像的三维模型重建C++源代码+文档说明(高分课程设计)
- 基于聚焦法的工件立体测量方案,根据数据进行三维重建 使用HALCON处理图像,MATLAB拟合数据+源代码+数据集+效果图
- 锄战三国村 修改:货币使用不减 v1.10(2) 原创 (中文).apk
- 基于python实现的单目双目视觉三维重建+源代码+图像图片(高分课程设计)
- 基于C+++OPENCV的全景图像拼接源码(课程设计)
- 基于Python+OpenCV对多张图片进行全景图像拼接,消除鬼影,消除裂缝+源代码+文档说明+界面截图(高分课程设计)
- 基于C++实现的全景图像拼接源码(课程设计)
- 基于SIFT特征点提取和RASIC算法实现全景图像拼接python源码+文档说明+界面截图+详细注释(95分以上课程大作业)
- 基于matlab实现眼部判别的疲劳检测系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
- 基于Matlab的异常姿势识别系统+源代码+全部数据+文档说明+详细注释+使用说明+截图(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功