From b31713bdb2874e897bdf20ada72d5b8e06a209ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=92=AC=E8=BD=AE=E7=8C=AB?= <10928033@qq.com> Date: Mon, 25 Jul 2022 21:11:08 +0800 Subject: [PATCH 1/3] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3c38a21..c4bcc04 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,10 @@ > 基于vue3.2+ts实现的svg可视化web组态编辑器。可无需修改代码动态添加组件、自定义拓展组件参数 +重制版正在开发中,请关注分支Re-1.0,预览地址[Re-1.0](http://re.svg.yaolm.top/) + +qq交流群:209048413 + 当前主分支版本为3.0,该项目基于vue3.2+ts开发,ui使用了[naiveui](https://www.naiveui.com/zh-CN/os-theme) ## [本文图片挂了请点此查看](https://www.cnblogs.com/Hero-/p/14784744.html) @@ -280,4 +284,4 @@ Vue.use(Fragment.Plugin) ## License -[MIT](http://opensource.org/licenses/MIT) \ No newline at end of file +[MIT](http://opensource.org/licenses/MIT) From 1b375106c935538c203c89fd03b722246310a53e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=92=AC=E8=BD=AE=E7=8C=AB?= <10928033@qq.com> Date: Fri, 13 Jan 2023 21:40:06 +0800 Subject: [PATCH 2/3] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c4bcc04..367af09 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # vue-webtopo-svgeditor -> 基于vue3.2+ts实现的svg可视化web组态编辑器。可无需修改代码动态添加组件、自定义拓展组件参数 +# 重制版正在开发中,请关注分支Re-1.0,预览地址[Re-1.0](http://re.svg.yaolm.top/),目前进展顺利,不久会替换掉当前分支代码 -重制版正在开发中,请关注分支Re-1.0,预览地址[Re-1.0](http://re.svg.yaolm.top/) +> 基于vue3.2+ts实现的svg可视化web组态编辑器。可无需修改代码动态添加组件、自定义拓展组件参数 qq交流群:209048413 From d94609d1f42478cb449fdadf6bf6ad52bda48a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=92=AC=E8=BD=AE=E7=8C=AB?= <10928033@qq.com> Date: Sun, 29 Jan 2023 22:26:49 +0800 Subject: [PATCH 3/3] refactor: re1.0 --- .eslintignore | 5 + .eslintrc.js | 59 + .gitignore | 19 +- .husky/.gitignore | 1 + .husky/commit-msg | 4 + .husky/common.sh | 9 + .husky/pre-commit | 5 + .prettierignore | 3 + .vscode/extensions.json | 2 +- .vscode/settings.json | 7 + README.md | 288 +- commitlint.config.js | 1 + index.html | 2 +- package-lock.json | 1587 ------- package.json | 69 +- pnpm-lock.yaml | 4044 +++++++++++++++++ prettier.config.js | 20 + public/AlternatorSvg.png | Bin 4452 -> 0 bytes public/ArrowDownSvg.png | Bin 2190 -> 0 bytes public/ArrowUpSvg.png | Bin 2135 -> 0 bytes public/ChemicalFeederSvg.png | Bin 4332 -> 0 bytes public/CircuitBreakerSvg.png | Bin 2407 -> 0 bytes public/ConnHorizontalLineSvg.png | Bin 4084 -> 0 bytes public/CoolingTowerSvg.png | Bin 3210 -> 0 bytes public/DoubleWindingSvg.png | Bin 4526 -> 0 bytes public/DoubleWindingSvgB.png | Bin 4497 -> 0 bytes public/ECharts_BasicBar.png | Bin 3079 -> 0 bytes public/ECharts_PieSvg.png | Bin 5357 -> 0 bytes public/GGJSvg.png | Bin 4410 -> 0 bytes public/GroundGraySvg.png | Bin 3153 -> 0 bytes public/InterfaceReturn.json | 1034 ----- public/IsolatingSwitchSvg.png | Bin 3801 -> 0 bytes public/LightningArresterSvg.png | Bin 3376 -> 0 bytes public/Pipeline_H_Svg.png | Bin 1709 -> 0 bytes public/Pipeline_V_Svg.png | Bin 1759 -> 0 bytes public/PolylineSvg.png | Bin 3673 -> 0 bytes public/RectSvg.png | Bin 3495 -> 0 bytes public/RectangleSvg.png | Bin 1774 -> 0 bytes public/ReservoirSvg.png | Bin 2628 -> 0 bytes public/RightAnglePipeSvg.png | Bin 1790 -> 0 bytes public/SignalLampSvg.png | Bin 4593 -> 0 bytes public/StandardCapacitorSvg.png | Bin 3589 -> 0 bytes public/StandardReactanceSvg.png | Bin 4807 -> 0 bytes public/TextSvg.png | Bin 4377 -> 0 bytes public/TransformerTriphaseOpenSvg.png | Bin 6152 -> 0 bytes public/TransformerYSvg.png | Bin 4977 -> 0 bytes public/TwoCircleSvg.png | Bin 6415 -> 0 bytes public/VerticalLineSvg.png | Bin 4085 -> 0 bytes public/WaterPipeValveSvg.png | Bin 1891 -> 0 bytes public/WireBreakSvg.png | Bin 4476 -> 0 bytes public/example.json | 3170 ------------- public/example2.json | 1 - public/index.html | 17 - public/logo.png | Bin 6849 -> 0 bytes public/test.png | Bin 3407 -> 0 bytes readme-imgs/捐赠.jpg | Bin 0 -> 156665 bytes readme-imgs/操作.gif | Bin 0 -> 603063 bytes readme-imgs/有状态组件.gif | Bin 0 -> 50134 bytes readme-imgs/版权声明.png | Bin 0 -> 2120 bytes readme-imgs/绘画.gif | Bin 0 -> 85498 bytes readme-imgs/连线.gif | Bin 0 -> 487136 bytes src/App.vue | 158 +- src/Model.ts | 77 - src/assets/css/svgAnimation/index.css | 111 - src/assets/icons/delete.svg | 12 + src/assets/icons/export-json.svg | 4 + src/assets/icons/group.svg | 13 + src/assets/icons/import-json.svg | 4 + src/assets/icons/lock.svg | 7 + src/assets/icons/menu-fold.svg | 9 + src/assets/icons/menu-unfold.svg | 9 + src/assets/icons/preview.svg | 6 + src/assets/icons/redo.svg | 8 + src/assets/icons/return.svg | 8 + src/assets/icons/rotate.svg | 1 + src/assets/icons/save.svg | 9 + src/assets/icons/tree-list.svg | 11 + src/assets/icons/undo.svg | 7 + src/assets/icons/ungroup.svg | 16 + src/assets/icons/unlock.svg | 7 + src/assets/svgs/alternator.svg | 8 + src/assets/svgs/circuit-breaker.svg | 11 + src/assets/svgs/custom-svg-text.svg | 5 + src/assets/svgs/custom-vue-common-table.svg | 7 + src/assets/svgs/el-button.svg | 10 + src/assets/svgs/el-tag.svg | 13 + src/assets/svgs/pie-charts.svg | 10 + src/assets/svgs/reservoir.svg | 10 + src/assets/svgs/traction-transformer.svg | 11 + src/components/BottomBar.vue | 20 - src/components/LeftToolBar.vue | 155 - src/components/RightToolBar.vue | 81 - src/components/SvgDynamic.vue | 50 - src/components/SvgEditor.vue | 555 --- src/components/SvgPrview.vue | 46 - src/components/TopBar.vue | 68 - src/components/svg-analysis/index.vue | 19 + .../components/bottom-panel/index.vue | 10 + .../components/center-panel/index.vue | 874 ++++ .../components/center-panel/types.ts | 11 + .../components/component-tree/index.vue | 35 + .../components/connection-line/index.vue | 129 + .../components/connection-panel/index.vue | 177 + .../custom-svg/custom-svg-text/index.vue | 32 + .../custom-vue/common-table/index.vue | 71 + .../components/echarts/pie-charts/index.vue | 72 + .../components/export-json/index.vue | 36 + .../components/handle-panel/index.vue | 227 + .../components/import-json/index.vue | 32 + .../components/left-panel/index.vue | 116 + .../right-panel/dynamic-el-form-item.vue | 81 + .../components/right-panel/index.vue | 112 + .../components/right-panel/json-edit.vue | 44 + .../components/top-panel/index.vue | 168 + src/components/webtopo-svg-edit/index.vue | 243 + src/components/webtopo-svg-edit/types.ts | 19 + src/components/webtopo-svg-preview/index.vue | 248 + src/config-center/ace-edit/index.ts | 24 + src/config-center/index.ts | 18 + .../custom-svg/custom-svg-text/index.ts | 46 + .../svg-file/custom-svg/index.ts | 8 + .../svg-file/have-animation/index.ts | 8 + .../have-animation/reservoir/index.ts | 25 + src/config-center/svg-file/index.ts | 12 + .../stateful/circuit-breaker/index.ts | 30 + src/config-center/svg-file/stateful/index.ts | 8 + .../svg-file/stateless/alternator/index.ts | 20 + src/config-center/svg-file/stateless/index.ts | 8 + .../stateless/traction-transformer/index.ts | 20 + src/config-center/system/index.ts | 111 + src/config-center/system/types.ts | 19 + src/config-center/types.ts | 75 + .../vue/custom-vue/common-table/index.ts | 116 + src/config-center/vue/custom-vue/index.ts | 9 + src/config-center/vue/echarts/index.ts | 8 + .../vue/echarts/pie-charts/index.ts | 52 + .../vue/element-ui/button/index.ts | 49 + src/config-center/vue/element-ui/index.ts | 9 + src/config-center/vue/element-ui/tag/index.ts | 38 + src/config-center/vue/index.ts | 10 + src/env.d.ts | 6 +- src/export.ts | 9 +- src/func/HotkeyFunc.ts | 105 - src/hooks/index.ts | 42 + src/main.ts | 13 +- src/router/index.ts | 43 + src/store/config/index.ts | 26 + src/store/config/types.ts | 16 + src/store/global/index.ts | 112 + src/store/global/types.ts | 115 + src/store/svgedit-layout/index.ts | 19 + src/store/svgedit-layout/types.ts | 8 + src/store/system/index.ts | 176 + src/store/system/types.ts | 43 + src/utils/index.ts | 317 ++ src/utils/scale-core.ts | 241 + src/utils/types.ts | 4 + src/views/demo/custom-toolbar.vue | 231 + src/views/demo/edit-load.vue | 197 + src/views/demo/index.vue | 94 + src/views/demo/preview-test.vue | 1206 +++++ src/views/demo/set-node-attr.vue | 130 + src/views/edit/index.vue | 26 + src/views/preview/index.vue | 15 + tsconfig.json | 12 +- tsconfig.node.json | 9 + vite.config.ts | 82 +- 167 files changed, 11161 insertions(+), 7499 deletions(-) create mode 100644 .eslintignore create mode 100644 .eslintrc.js create mode 100644 .husky/.gitignore create mode 100644 .husky/commit-msg create mode 100644 .husky/common.sh create mode 100644 .husky/pre-commit create mode 100644 .prettierignore create mode 100644 .vscode/settings.json create mode 100644 commitlint.config.js delete mode 100644 package-lock.json create mode 100644 pnpm-lock.yaml create mode 100644 prettier.config.js delete mode 100644 public/AlternatorSvg.png delete mode 100644 public/ArrowDownSvg.png delete mode 100644 public/ArrowUpSvg.png delete mode 100644 public/ChemicalFeederSvg.png delete mode 100644 public/CircuitBreakerSvg.png delete mode 100644 public/ConnHorizontalLineSvg.png delete mode 100644 public/CoolingTowerSvg.png delete mode 100644 public/DoubleWindingSvg.png delete mode 100644 public/DoubleWindingSvgB.png delete mode 100644 public/ECharts_BasicBar.png delete mode 100644 public/ECharts_PieSvg.png delete mode 100644 public/GGJSvg.png delete mode 100644 public/GroundGraySvg.png delete mode 100644 public/InterfaceReturn.json delete mode 100644 public/IsolatingSwitchSvg.png delete mode 100644 public/LightningArresterSvg.png delete mode 100644 public/Pipeline_H_Svg.png delete mode 100644 public/Pipeline_V_Svg.png delete mode 100644 public/PolylineSvg.png delete mode 100644 public/RectSvg.png delete mode 100644 public/RectangleSvg.png delete mode 100644 public/ReservoirSvg.png delete mode 100644 public/RightAnglePipeSvg.png delete mode 100644 public/SignalLampSvg.png delete mode 100644 public/StandardCapacitorSvg.png delete mode 100644 public/StandardReactanceSvg.png delete mode 100644 public/TextSvg.png delete mode 100644 public/TransformerTriphaseOpenSvg.png delete mode 100644 public/TransformerYSvg.png delete mode 100644 public/TwoCircleSvg.png delete mode 100644 public/VerticalLineSvg.png delete mode 100644 public/WaterPipeValveSvg.png delete mode 100644 public/WireBreakSvg.png delete mode 100644 public/example.json delete mode 100644 public/example2.json delete mode 100644 public/index.html delete mode 100644 public/logo.png delete mode 100644 public/test.png create mode 100644 readme-imgs/捐赠.jpg create mode 100644 readme-imgs/操作.gif create mode 100644 readme-imgs/有状态组件.gif create mode 100644 readme-imgs/版权声明.png create mode 100644 readme-imgs/绘画.gif create mode 100644 readme-imgs/连线.gif delete mode 100644 src/Model.ts delete mode 100644 src/assets/css/svgAnimation/index.css create mode 100644 src/assets/icons/delete.svg create mode 100644 src/assets/icons/export-json.svg create mode 100644 src/assets/icons/group.svg create mode 100644 src/assets/icons/import-json.svg create mode 100644 src/assets/icons/lock.svg create mode 100644 src/assets/icons/menu-fold.svg create mode 100644 src/assets/icons/menu-unfold.svg create mode 100644 src/assets/icons/preview.svg create mode 100644 src/assets/icons/redo.svg create mode 100644 src/assets/icons/return.svg create mode 100644 src/assets/icons/rotate.svg create mode 100644 src/assets/icons/save.svg create mode 100644 src/assets/icons/tree-list.svg create mode 100644 src/assets/icons/undo.svg create mode 100644 src/assets/icons/ungroup.svg create mode 100644 src/assets/icons/unlock.svg create mode 100644 src/assets/svgs/alternator.svg create mode 100644 src/assets/svgs/circuit-breaker.svg create mode 100644 src/assets/svgs/custom-svg-text.svg create mode 100644 src/assets/svgs/custom-vue-common-table.svg create mode 100644 src/assets/svgs/el-button.svg create mode 100644 src/assets/svgs/el-tag.svg create mode 100644 src/assets/svgs/pie-charts.svg create mode 100644 src/assets/svgs/reservoir.svg create mode 100644 src/assets/svgs/traction-transformer.svg delete mode 100644 src/components/BottomBar.vue delete mode 100644 src/components/LeftToolBar.vue delete mode 100644 src/components/RightToolBar.vue delete mode 100644 src/components/SvgDynamic.vue delete mode 100644 src/components/SvgEditor.vue delete mode 100644 src/components/SvgPrview.vue delete mode 100644 src/components/TopBar.vue create mode 100644 src/components/svg-analysis/index.vue create mode 100644 src/components/webtopo-svg-edit/components/bottom-panel/index.vue create mode 100644 src/components/webtopo-svg-edit/components/center-panel/index.vue create mode 100644 src/components/webtopo-svg-edit/components/center-panel/types.ts create mode 100644 src/components/webtopo-svg-edit/components/component-tree/index.vue create mode 100644 src/components/webtopo-svg-edit/components/connection-line/index.vue create mode 100644 src/components/webtopo-svg-edit/components/connection-panel/index.vue create mode 100644 src/components/webtopo-svg-edit/components/custom-svg/custom-svg-text/index.vue create mode 100644 src/components/webtopo-svg-edit/components/custom-vue/common-table/index.vue create mode 100644 src/components/webtopo-svg-edit/components/echarts/pie-charts/index.vue create mode 100644 src/components/webtopo-svg-edit/components/export-json/index.vue create mode 100644 src/components/webtopo-svg-edit/components/handle-panel/index.vue create mode 100644 src/components/webtopo-svg-edit/components/import-json/index.vue create mode 100644 src/components/webtopo-svg-edit/components/left-panel/index.vue create mode 100644 src/components/webtopo-svg-edit/components/right-panel/dynamic-el-form-item.vue create mode 100644 src/components/webtopo-svg-edit/components/right-panel/index.vue create mode 100644 src/components/webtopo-svg-edit/components/right-panel/json-edit.vue create mode 100644 src/components/webtopo-svg-edit/components/top-panel/index.vue create mode 100644 src/components/webtopo-svg-edit/index.vue create mode 100644 src/components/webtopo-svg-edit/types.ts create mode 100644 src/components/webtopo-svg-preview/index.vue create mode 100644 src/config-center/ace-edit/index.ts create mode 100644 src/config-center/index.ts create mode 100644 src/config-center/svg-file/custom-svg/custom-svg-text/index.ts create mode 100644 src/config-center/svg-file/custom-svg/index.ts create mode 100644 src/config-center/svg-file/have-animation/index.ts create mode 100644 src/config-center/svg-file/have-animation/reservoir/index.ts create mode 100644 src/config-center/svg-file/index.ts create mode 100644 src/config-center/svg-file/stateful/circuit-breaker/index.ts create mode 100644 src/config-center/svg-file/stateful/index.ts create mode 100644 src/config-center/svg-file/stateless/alternator/index.ts create mode 100644 src/config-center/svg-file/stateless/index.ts create mode 100644 src/config-center/svg-file/stateless/traction-transformer/index.ts create mode 100644 src/config-center/system/index.ts create mode 100644 src/config-center/system/types.ts create mode 100644 src/config-center/types.ts create mode 100644 src/config-center/vue/custom-vue/common-table/index.ts create mode 100644 src/config-center/vue/custom-vue/index.ts create mode 100644 src/config-center/vue/echarts/index.ts create mode 100644 src/config-center/vue/echarts/pie-charts/index.ts create mode 100644 src/config-center/vue/element-ui/button/index.ts create mode 100644 src/config-center/vue/element-ui/index.ts create mode 100644 src/config-center/vue/element-ui/tag/index.ts create mode 100644 src/config-center/vue/index.ts delete mode 100644 src/func/HotkeyFunc.ts create mode 100644 src/hooks/index.ts create mode 100644 src/router/index.ts create mode 100644 src/store/config/index.ts create mode 100644 src/store/config/types.ts create mode 100644 src/store/global/index.ts create mode 100644 src/store/global/types.ts create mode 100644 src/store/svgedit-layout/index.ts create mode 100644 src/store/svgedit-layout/types.ts create mode 100644 src/store/system/index.ts create mode 100644 src/store/system/types.ts create mode 100644 src/utils/index.ts create mode 100644 src/utils/scale-core.ts create mode 100644 src/utils/types.ts create mode 100644 src/views/demo/custom-toolbar.vue create mode 100644 src/views/demo/edit-load.vue create mode 100644 src/views/demo/index.vue create mode 100644 src/views/demo/preview-test.vue create mode 100644 src/views/demo/set-node-attr.vue create mode 100644 src/views/edit/index.vue create mode 100644 src/views/preview/index.vue create mode 100644 tsconfig.node.json diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..0c7da02 --- /dev/null +++ b/.eslintignore @@ -0,0 +1,5 @@ +*.md +.vscode +.idea +dist +node_modules \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..682d754 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,59 @@ +module.exports = { + root: true, + env: { + browser: true, + node: true, + es6: true + }, + parser: 'vue-eslint-parser', + parserOptions: { + parser: '@typescript-eslint/parser', + ecmaVersion: 'latest', + sourceType: 'module', + jsxPragma: 'React', + ecmaFeatures: { + jsx: true + } + }, + extends: [ + 'plugin:vue/vue3-recommended', + 'plugin:@typescript-eslint/recommended', + 'prettier', + 'plugin:prettier/recommended' // 一定要放在最后。因为 extends 中后引入的规则会覆盖前面的规则。 + ], + rules: { + // @typescript-eslint + '@typescript-eslint/explicit-function-return-type': 'off', // 需要函数和类方法的显式返回类型 + '@typescript-eslint/no-explicit-any': 'off', // 禁止使用该 any 类型 + '@typescript-eslint/no-var-requires': 'off', // 不允许使用 require 语句,除了在 import 语句中 + '@typescript-eslint/no-empty-function': 'off', // 禁止空函数 + '@typescript-eslint/no-use-before-define': 'off', // 在定义之前禁止使用变量 + '@typescript-eslint/ban-ts-comment': 'off', // 禁止 @ts- 使用评论或在指令后要求描述 + '@typescript-eslint/ban-types': 'off', // 禁止使用特定类型 + '@typescript-eslint/no-non-null-assertion': 'off', // '!'不允许使用后缀运算符的非空断言 + '@typescript-eslint/explicit-module-boundary-types': 'off', // 需要导出函数和类的公共类方法的显式返回和参数类型 + '@typescript-eslint/no-unused-vars': [ + 'error', + { + argsIgnorePattern: '^_', + varsIgnorePattern: '^_' + } + ], // 禁止未使用的变量 + // vue + 'vue/custom-event-name-casing': 'off', // 为自定义事件名称强制使用特定大小写 + 'vue/attributes-order': 'off', // 强制执行属性顺序 + 'vue/one-component-per-file': 'off', // 强制每个组件都应该在自己的文件中 + 'vue/html-closing-bracket-newline': 'off', // 在标签的右括号之前要求或禁止换行 + 'vue/multiline-html-element-content-newline': 'off', // 在多行元素的内容之前和之后需要换行符 + 'vue/singleline-html-element-content-newline': 'off', // 在单行元素的内容之前和之后需要换行符 + 'vue/attribute-hyphenation': 'off', // 对模板中的自定义组件强制执行属性命名样式 + 'vue/require-default-prop': 'off', // 需要 props 的默认值 + 'vue/html-indent': ['error', 2], // 在