You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
vue-webtopo-svgeditor/README.md

97 lines
401 KiB
Markdown

5 years ago
# vue-webtopo-svgeditor
4 years ago
> 纯vue3实现的svg可视化web组态编辑器。可无需修改代码动态添加组件
5 years ago
4 years ago
当前主分支版本为2.0
## [版本1.0请点此](https://svg.yaolunmao.top)
4 years ago
5 years ago
## 预览地址
[https://svg.yaolunmao.top](https://svg.yaolunmao.top)
## 如何使用
```
# 克隆项目
git clone https://github.com/yaolunmao/vue-webtopo-svgeditor.git
# 进入项目目录
cd vue-webtopo-svgeditor
# 安装依赖
yarn install
# 启动服务
yarn serve
```
## 操作
点击载入模板 进入预览页点击模拟硬件 等待两秒钟即可看到动态效果
- 鼠标左键选中组件 按住可拖动至画布
- 鼠标双击画布取消选中组件
- 右侧工具栏调整选中组件样式
- 键盘↑↓←→可移动选中组件
- ctrl+c复制当前选中组件
- deleted删除当前选中组件
- 鼠标滚轮放大缩小选中组件
4 years ago
## 动态添加组件
可使用任意生成svg代码的工具我这里使用在线编译器进行模拟
点击[这里](https://svgedit.yaolunmao.top/)进行svg图像绘制我这里以心形为例
![绘制心形图片][insert1]
将svg代码复制下来双引号进行转义删除无用属性比如id你也可以直接使用我下面的代码
```
<path fill=\"#FF0000\" stroke=\"#000000\" stroke-width=\"5\" style=\"pointer-events:inherit\" d=\"m143.72081869586242,163.35565803158485 c14.617751633754164,-41.93617271978648 71.89058180534832,0 0,53.91793635401125 c-71.89058180534832,-53.91793635401125 -14.617751633754164,-95.85410907379776 0,-53.91793635401125 z\" fill-opacity=\"1\" stroke-opacity=\"1\"></path>
```
将拓展字段进行双向绑定 我目前只做了颜色
```
<path :fill=\"svg_color\" :stroke=\"svg_color\" stroke-width=\"5\" style=\"pointer-events:inherit\" d=\"m143.72081869586242,163.35565803158485 c14.617751633754164,-41.93617271978648 71.89058180534832,0 0,53.91793635401125 c-71.89058180534832,-53.91793635401125 -14.617751633754164,-95.85410907379776 0,-53.91793635401125 z\" fill-opacity=\"1\" stroke-opacity=\"1\"></path>
```
修改项目文件夹pubilc下的模拟接口返回的json新增一项
```
{
"type": "TestAddSvg",
"title": "测试新增组件",
"template": "<path :fill=\"svg_color\" :stroke=\"svg_color\" stroke-width=\"5\" style=\"pointer-events:inherit\" d=\"m143.72081869586242,163.35565803158485 c14.617751633754164,-41.93617271978648 71.89058180534832,0 0,53.91793635401125 c-71.89058180534832,-53.91793635401125 -14.617751633754164,-95.85410907379776 0,-53.91793635401125 z\" fill-opacity=\"1\" stroke-opacity=\"1\"></path>",
"props": ["svg_color"],
"default_color":"#FF0000",
"priview_img":"https://svg.yaolunmao.top/test.png"
}
```
![修改json][insert2]
5 years ago
4 years ago
启动项目,就可以看到刚才添加的组件了
![预览界面][insert3]
ps目前中心辅助线的坐标取决于svg组件的中心坐标请自行添加transform属性调整svg组件中心坐标
5 years ago
## 截图
![编辑器页面](https://p.130014.xyz/2021/03/19/svgedit.png)
5 years ago
![预览界面](https://p.130014.xyz/2021/03/21/svgview.png)
5 years ago
## License
4 years ago
[MIT](http://opensource.org/licenses/MIT)
[insert1]:data:image/png;base64,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
[insert2]:data:image/png;base64,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
[insert3]:data:image/png;base64,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