Compare commits

...

20 Commits

Author SHA1 Message Date
奔跑的面条
4eca4c607a Merge branch 'dev' of https://gitee.com/MTrun/go-view 2022-08-30 19:14:03 +08:00
奔跑的面条
fe22e1d330 fix: 处理多个组件选中移动无法撤回的 bug 2022-08-30 19:02:25 +08:00
奔跑的面条
085c393767 fix: 处理移动记录的类型错误bug 2022-08-30 18:48:48 +08:00
奔跑的面条
df10ae58f4 style: 格式化代,修改单词错误 2022-08-30 17:28:21 +08:00
奔跑的面条
714dac93bc !29 fix: 解决组件移动未加入历史栈
Merge pull request !29 from Furoe/dev
2022-08-30 07:27:30 +00:00
奔跑的面条
2589cad06e Merge branch 'dev' of https://gitee.com/MTrun/go-view 2022-08-30 15:05:43 +08:00
奔跑的面条
2ae3461a9c build: 升级版本到1.0.8 2022-08-30 15:05:11 +08:00
Furoe
bb16fa51d0 Merge branch 'dev' of gitee.com:MTrun/go-view into dev
Signed-off-by: Furoe <furo_yang@163.com>
2022-08-30 06:19:04 +00:00
yangwq7
36bfbf900a perf: 解耦移动相关后退、前进逻辑 2022-08-30 14:14:56 +08:00
奔跑的面条
d89b22a8f7 Merge branch 'dev' 2022-08-30 12:18:52 +08:00
奔跑的面条
159a165457 fix: 解决渐变组件预览无法更新的问题 2022-08-30 12:18:15 +08:00
奔跑的面条
199c6abcb1 perf: 优化设置 2022-08-30 12:13:58 +08:00
奔跑的面条
96a41f8ebc build: 升级依赖 vite-2.9.9 2022-08-30 11:27:16 +08:00
奔跑的面条
ac3f5567c5 update README.md.
Signed-off-by: 奔跑的面条 <1262327911@qq.com>
2022-08-30 02:02:34 +00:00
奔跑的面条
9fd85761d7 fix: 尝试处理背景图片无法截图的问题 2022-08-29 21:37:32 +08:00
奔跑的面条
130e4a3659 update LICENSE.
Signed-off-by: 奔跑的面条 <1262327911@qq.com>
2022-08-29 12:19:15 +00:00
奔跑的面条
0107643e7e update LICENSE.
Signed-off-by: 奔跑的面条 <1262327911@qq.com>
2022-08-29 10:09:45 +00:00
yangwq7
9fea20cb79 fix: 解决渐变文本组件修改内容后预览未更新 2022-08-26 09:50:46 +08:00
yangwq7
a1233aa1fe fix: 解决组件移动未加入历史栈 2022-08-25 20:27:57 +08:00
奔跑的面条
558512220e perf: 优化标尺的展示方式 2022-08-21 14:42:31 +08:00
22 changed files with 736 additions and 356 deletions

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2021-present Naive Ui Admin
Copyright (c) 2021-present GoView
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -2,7 +2,7 @@
![logo](readme/logo-t-y.png)
GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。
GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。若您需商用请添加底部的 QQ 交流群,并联系群主(即作者本人)
### 😶 纯 **前端** 分支: **`master`**

View File

@@ -1,6 +1,6 @@
{
"name": "go-view",
"version": "1.0.7",
"version": "1.0.8",
"scripts": {
"dev": "vite --host",
"build": "vue-tsc --noEmit && vite build",
@@ -12,6 +12,7 @@
"@types/color": "^3.0.3",
"@types/crypto-js": "^4.1.1",
"@types/keymaster": "^1.6.30",
"@types/lodash": "^4.14.184",
"animate.css": "^4.1.1",
"axios": "^0.27.2",
"color": "^4.2.3",
@@ -60,7 +61,7 @@
"sass": "^1.49.11",
"sass-loader": "^12.6.0",
"typescript": "^4.6.3",
"vite": "2.9.5",
"vite": "2.9.9",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-importer": "^0.2.5",
"vite-plugin-mock": "^2.9.6",

798
pnpm-lock.yaml generated
View File

@@ -16,7 +16,7 @@ specifiers:
'@vue/compiler-sfc': ^3.2.31
'@vueuse/core': ^7.7.1
animate.css: ^4.1.1
axios: 0.23.0
axios: ^0.27.2
color: ^4.2.3
commitlint: ^17.0.2
crypto-js: ^4.1.1
@@ -43,7 +43,7 @@ specifiers:
sass-loader: ^12.6.0
screenfull: ^6.0.1
typescript: ^4.6.3
vite: 2.9.5
vite: 2.9.9
vite-plugin-compression: ^0.5.1
vite-plugin-importer: ^0.2.5
vite-plugin-mock: ^2.9.6
@@ -63,7 +63,7 @@ dependencies:
'@types/crypto-js': 4.1.1
'@types/keymaster': 1.6.30
animate.css: 4.1.1
axios: 0.23.0
axios: registry.npmmirror.com/axios/0.27.2
color: 4.2.3
crypto-js: 4.1.1
echarts-liquidfill: 3.1.0_echarts@5.3.3
@@ -90,7 +90,7 @@ devDependencies:
'@typescript-eslint/parser': 5.28.0_ud6rd4xtew5bv4yhvkvu24pzm4
'@vicons/carbon': 0.12.0
'@vicons/ionicons5': 0.11.0
'@vitejs/plugin-vue': 1.10.2_vite@2.9.5
'@vitejs/plugin-vue': 1.10.2_vite@2.9.9
'@vitejs/plugin-vue-jsx': 1.3.10
'@vue/compiler-sfc': 3.2.37
'@vueuse/core': 7.7.1_vue@3.2.37
@@ -110,10 +110,10 @@ devDependencies:
sass: 1.52.3
sass-loader: 12.6.0_sass@1.52.3
typescript: 4.7.3
vite: 2.9.5_sass@1.52.3
vite-plugin-compression: 0.5.1_vite@2.9.5
vite: registry.npmmirror.com/vite/2.9.9_sass@1.52.3
vite-plugin-compression: 0.5.1_vite@2.9.9
vite-plugin-importer: 0.2.5
vite-plugin-mock: 2.9.6_mockjs@1.1.0+vite@2.9.5
vite-plugin-mock: 2.9.6_mockjs@1.1.0+vite@2.9.9
vite-plugin-monaco-editor: 1.1.0_monaco-editor@0.33.0
vue-echarts: 6.0.3_echarts@5.3.3+vue@3.2.37
vue-tsc: 0.28.10_typescript@4.7.3
@@ -1076,13 +1076,13 @@ packages:
- supports-color
dev: true
/@vitejs/plugin-vue/1.10.2_vite@2.9.5:
/@vitejs/plugin-vue/1.10.2_vite@2.9.9:
resolution: {integrity: sha512-/QJ0Z9qfhAFtKRY+r57ziY4BSbGUTGsPRMpB/Ron3QPwBZM4OZAZHdTa4a8PafCwU5DTatXG8TMDoP8z+oDqJw==}
engines: {node: '>=12.0.0'}
peerDependencies:
vite: ^2.5.10
dependencies:
vite: 2.9.5_sass@1.52.3
vite: registry.npmmirror.com/vite/2.9.9_sass@1.52.3
dev: true
/@volar/code-gen/0.28.10:
@@ -1426,14 +1426,6 @@ packages:
resolution: {integrity: sha512-p4DO/JXwjs8klJyJL8Q2oM4ks5fUTze/h5k10oPPKMiLe1fj3G1QMzPHNmN1Py4ycOk7WlO2DcGXv1qiESJCZA==}
dev: false
/axios/0.23.0:
resolution: {integrity: sha512-NmvAE4i0YAv5cKq8zlDoPd1VLKAqX5oLuZKs8xkJa4qi6RGn0uhCYFjWtHHC9EM/MwOwYWOs53W+V0aqEXq1sg==}
dependencies:
follow-redirects: 1.15.1
transitivePeerDependencies:
- debug
dev: false
/babel-plugin-import/1.13.5:
resolution: {integrity: sha512-IkqnoV+ov1hdJVofly9pXRJmeDm9EtROfrc5i6eII0Hix2xMs5FEm8FG3ExMvazbnZBbgHIt6qdO8And6lCloQ==}
dependencies:
@@ -1508,7 +1500,7 @@ packages:
electron-to-chromium: 1.4.155
escalade: 3.1.1
node-releases: 2.0.5
picocolors: 1.0.0
picocolors: registry.npmmirror.com/picocolors/1.0.0
dev: true
/buffer/5.7.1:
@@ -1533,7 +1525,7 @@ packages:
/call-bind/1.0.2:
resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
dependencies:
function-bind: 1.1.1
function-bind: registry.npmmirror.com/function-bind/1.1.1
get-intrinsic: 1.1.2
dev: true
@@ -1640,7 +1632,7 @@ packages:
normalize-path: 3.0.0
readdirp: 3.6.0
optionalDependencies:
fsevents: 2.3.2
fsevents: registry.npmmirror.com/fsevents/2.3.2
dev: true
/clean-stack/2.2.0:
@@ -2129,11 +2121,11 @@ packages:
dependencies:
call-bind: 1.0.2
es-to-primitive: 1.2.1
function-bind: 1.1.1
function-bind: registry.npmmirror.com/function-bind/1.1.1
function.prototype.name: 1.1.5
get-intrinsic: 1.1.2
get-symbol-description: 1.0.0
has: 1.0.3
has: registry.npmmirror.com/has/1.0.3
has-property-descriptors: 1.0.0
has-symbols: 1.0.3
internal-slot: 1.0.3
@@ -2155,7 +2147,7 @@ packages:
/es-shim-unscopables/1.0.0:
resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==}
dependencies:
has: 1.0.3
has: registry.npmmirror.com/has/1.0.3
dev: true
/es-to-primitive/1.2.1:
@@ -2167,220 +2159,12 @@ packages:
is-symbol: 1.0.4
dev: true
/esbuild-android-64/0.14.43:
resolution: {integrity: sha512-kqFXAS72K6cNrB6RiM7YJ5lNvmWRDSlpi7ZuRZ1hu1S3w0zlwcoCxWAyM23LQUyZSs1PbjHgdbbfYAN8IGh6xg==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
requiresBuild: true
dev: true
optional: true
/esbuild-android-arm64/0.14.43:
resolution: {integrity: sha512-bKS2BBFh+7XZY9rpjiHGRNA7LvWYbZWP87pLehggTG7tTaCDvj8qQGOU/OZSjCSKDYbgY7Q+oDw8RlYQ2Jt2BA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
/esbuild-darwin-64/0.14.43:
resolution: {integrity: sha512-/3PSilx011ttoieRGkSZ0XV8zjBf2C9enV4ScMMbCT4dpx0mFhMOpFnCHkOK0pWGB8LklykFyHrWk2z6DENVUg==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/esbuild-darwin-arm64/0.14.43:
resolution: {integrity: sha512-1HyFUKs8DMCBOvw1Qxpr5Vv/ThNcVIFb5xgXWK3pyT40WPvgYIiRTwJCvNs4l8i5qWF8/CK5bQxJVDjQvtv0Yw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/esbuild-freebsd-64/0.14.43:
resolution: {integrity: sha512-FNWc05TPHYgaXjbPZO5/rJKSBslfG6BeMSs8GhwnqAKP56eEhvmzwnIz1QcC9cRVyO+IKqWNfmHFkCa1WJTULA==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/esbuild-freebsd-arm64/0.14.43:
resolution: {integrity: sha512-amrYopclz3VohqisOPR6hA3GOWA3LZC1WDLnp21RhNmoERmJ/vLnOpnrG2P/Zao+/erKTCUqmrCIPVtj58DRoA==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-32/0.14.43:
resolution: {integrity: sha512-KoxoEra+9O3AKVvgDFvDkiuddCds6q71owSQEYwjtqRV7RwbPzKxJa6+uyzUulHcyGVq0g15K0oKG5CFBcvYDw==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-64/0.14.43:
resolution: {integrity: sha512-EwINwGMyiJMgBby5/SbMqKcUhS5AYAZ2CpEBzSowsJPNBJEdhkCTtEjk757TN/wxgbu3QklqDM6KghY660QCUw==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-arm/0.14.43:
resolution: {integrity: sha512-e6YzQUoDxxtyamuF12eVzzRC7bbEFSZohJ6igQB9tBqnNmIQY3fI6Cns3z2wxtbZ3f2o6idkD2fQnlvs2902Dg==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-arm64/0.14.43:
resolution: {integrity: sha512-UlSpjMWllAc70zYbHxWuDS3FJytyuR/gHJYBr8BICcTNb/TSOYVBg6U7b3jZ3mILTrgzwJUHwhEwK18FZDouUQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-mips64le/0.14.43:
resolution: {integrity: sha512-f+v8cInPEL1/SDP//CfSYzcDNgE4CY3xgDV81DWm3KAPWzhvxARrKxB1Pstf5mB56yAslJDxu7ryBUPX207EZA==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-ppc64le/0.14.43:
resolution: {integrity: sha512-5wZYMDGAL/K2pqkdIsW+I4IR41kyfHr/QshJcNpUfK3RjB3VQcPWOaZmc+74rm4ZjVirYrtz+jWw0SgxtxRanA==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-riscv64/0.14.43:
resolution: {integrity: sha512-lYcAOUxp85hC7lSjycJUVSmj4/9oEfSyXjb/ua9bNl8afonaduuqtw7hvKMoKuYnVwOCDw4RSfKpcnIRDWq+Bw==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-s390x/0.14.43:
resolution: {integrity: sha512-27e43ZhHvhFE4nM7HqtUbMRu37I/4eNSUbb8FGZWszV+uLzMIsHDwLoBiJmw7G9N+hrehNPeQ4F5Ujad0DrUKQ==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-netbsd-64/0.14.43:
resolution: {integrity: sha512-2mH4QF6hHBn5zzAfxEI/2eBC0mspVsZ6UVo821LpAJKMvLJPBk3XJO5xwg7paDqSqpl7p6IRrAenW999AEfJhQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
requiresBuild: true
dev: true
optional: true
/esbuild-openbsd-64/0.14.43:
resolution: {integrity: sha512-ZhQpiZjvqCqO8jKdGp9+8k9E/EHSA+zIWOg+grwZasI9RoblqJ1QiZqqi7jfd6ZrrG1UFBNGe4m0NFxCFbMVbg==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
requiresBuild: true
dev: true
optional: true
/esbuild-sunos-64/0.14.43:
resolution: {integrity: sha512-DgxSi9DaHReL9gYuul2rrQCAapgnCJkh3LSHPKsY26zytYppG0HgkgVF80zjIlvEsUbGBP/GHQzBtrezj/Zq1Q==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
requiresBuild: true
dev: true
optional: true
/esbuild-windows-32/0.14.43:
resolution: {integrity: sha512-Ih3+2O5oExiqm0mY6YYE5dR0o8+AspccQ3vIAtRodwFvhuyGLjb0Hbmzun/F3Lw19nuhPMu3sW2fqIJ5xBxByw==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/esbuild-windows-64/0.14.43:
resolution: {integrity: sha512-8NsuNfI8xwFuJbrCuI+aBqNTYkrWErejFO5aYM+yHqyHuL8mmepLS9EPzAzk8rvfaJrhN0+RvKWAcymViHOKEw==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/esbuild-windows-arm64/0.14.43:
resolution: {integrity: sha512-7ZlD7bo++kVRblJEoG+cepljkfP8bfuTPz5fIXzptwnPaFwGS6ahvfoYzY7WCf5v/1nX2X02HDraVItTgbHnKw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/esbuild/0.11.3:
resolution: {integrity: sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==}
hasBin: true
requiresBuild: true
dev: true
/esbuild/0.14.43:
resolution: {integrity: sha512-Uf94+kQmy/5jsFwKWiQB4hfo/RkM9Dh7b79p8yqd1tshULdr25G2szLz631NoH3s2ujnKEKVD16RmOxvCNKRFA==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
optionalDependencies:
esbuild-android-64: 0.14.43
esbuild-android-arm64: 0.14.43
esbuild-darwin-64: 0.14.43
esbuild-darwin-arm64: 0.14.43
esbuild-freebsd-64: 0.14.43
esbuild-freebsd-arm64: 0.14.43
esbuild-linux-32: 0.14.43
esbuild-linux-64: 0.14.43
esbuild-linux-arm: 0.14.43
esbuild-linux-arm64: 0.14.43
esbuild-linux-mips64le: 0.14.43
esbuild-linux-ppc64le: 0.14.43
esbuild-linux-riscv64: 0.14.43
esbuild-linux-s390x: 0.14.43
esbuild-netbsd-64: 0.14.43
esbuild-openbsd-64: 0.14.43
esbuild-sunos-64: 0.14.43
esbuild-windows-32: 0.14.43
esbuild-windows-64: 0.14.43
esbuild-windows-arm64: 0.14.43
dev: true
/escalade/3.1.1:
resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
engines: {node: '>=6'}
@@ -2803,16 +2587,6 @@ packages:
resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==}
dev: true
/follow-redirects/1.15.1:
resolution: {integrity: sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==}
engines: {node: '>=4.0'}
peerDependencies:
debug: '*'
peerDependenciesMeta:
debug:
optional: true
dev: false
/for-in/1.0.2:
resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
engines: {node: '>=0.10.0'}
@@ -2838,14 +2612,6 @@ packages:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
dev: true
/fsevents/2.3.2:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
requiresBuild: true
dev: true
optional: true
/function-bind/1.1.1:
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
dev: true
@@ -2881,8 +2647,8 @@ packages:
/get-intrinsic/1.1.2:
resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==}
dependencies:
function-bind: 1.1.1
has: 1.0.3
function-bind: registry.npmmirror.com/function-bind/1.1.1
has: registry.npmmirror.com/has/1.0.3
has-symbols: 1.0.3
dev: true
@@ -3012,7 +2778,7 @@ packages:
source-map: 0.6.1
wordwrap: 1.0.0
optionalDependencies:
uglify-js: 3.16.0
uglify-js: registry.npmmirror.com/uglify-js/3.16.0
dev: true
/hard-rejection/2.1.0:
@@ -3204,7 +2970,7 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
get-intrinsic: 1.1.2
has: 1.0.3
has: registry.npmmirror.com/has/1.0.3
side-channel: 1.0.4
dev: true
@@ -3532,7 +3298,7 @@ packages:
dependencies:
universalify: 2.0.0
optionalDependencies:
graceful-fs: 4.2.10
graceful-fs: registry.npmmirror.com/graceful-fs/4.2.10
dev: true
/jsonparse/1.3.1:
@@ -3852,7 +3618,7 @@ packages:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
dependencies:
hosted-git-info: 2.8.9
resolve: 1.22.0
resolve: registry.npmmirror.com/resolve/1.22.0
semver: 5.7.1
validate-npm-package-license: 3.0.4
dev: true
@@ -3862,7 +3628,7 @@ packages:
engines: {node: '>=10'}
dependencies:
hosted-git-info: 4.1.0
is-core-module: 2.9.0
is-core-module: registry.npmmirror.com/is-core-module/2.9.0
semver: 7.3.7
validate-npm-package-license: 3.0.4
dev: true
@@ -4293,7 +4059,7 @@ packages:
jstransformer: 1.0.0
pug-error: 2.0.0
pug-walk: 2.0.0
resolve: 1.22.0
resolve: registry.npmmirror.com/resolve/1.22.0
dev: true
/pug-lexer/5.0.1:
@@ -4414,7 +4180,7 @@ packages:
resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==}
engines: {node: '>= 10.13.0'}
dependencies:
resolve: 1.22.0
resolve: registry.npmmirror.com/resolve/1.22.0
dev: true
/redent/3.0.0:
@@ -4514,14 +4280,6 @@ packages:
glob: 7.2.3
dev: true
/rollup/2.75.6:
resolution: {integrity: sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==}
engines: {node: '>=10.0.0'}
hasBin: true
optionalDependencies:
fsevents: 2.3.2
dev: true
/run-async/2.4.1:
resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
engines: {node: '>=0.12.0'}
@@ -4968,14 +4726,6 @@ packages:
hasBin: true
dev: true
/uglify-js/3.16.0:
resolution: {integrity: sha512-FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw==}
engines: {node: '>=0.8.0'}
hasBin: true
requiresBuild: true
dev: true
optional: true
/unbox-primitive/1.0.2:
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
dependencies:
@@ -5067,7 +4817,7 @@ packages:
vue: 3.2.37
dev: false
/vite-plugin-compression/0.5.1_vite@2.9.5:
/vite-plugin-compression/0.5.1_vite@2.9.9:
resolution: {integrity: sha512-5QJKBDc+gNYVqL/skgFAP81Yuzo9R+EAf19d+EtsMF/i8kFUpNi3J/H01QD3Oo8zBQn+NzoCIFkpPLynoOzaJg==}
peerDependencies:
vite: '>=2.0.0'
@@ -5075,7 +4825,7 @@ packages:
chalk: 4.1.2
debug: 4.3.4
fs-extra: 10.1.0
vite: 2.9.5_sass@1.52.3
vite: registry.npmmirror.com/vite/2.9.9_sass@1.52.3
transitivePeerDependencies:
- supports-color
dev: true
@@ -5090,7 +4840,7 @@ packages:
- supports-color
dev: true
/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.9.5:
/vite-plugin-mock/2.9.6_mockjs@1.1.0+vite@2.9.9:
resolution: {integrity: sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==}
engines: {node: '>=12.0.0'}
peerDependencies:
@@ -5107,7 +4857,7 @@ packages:
fast-glob: 3.2.11
mockjs: 1.1.0
path-to-regexp: 6.2.1
vite: 2.9.5_sass@1.52.3
vite: registry.npmmirror.com/vite/2.9.9_sass@1.52.3
transitivePeerDependencies:
- rollup
- supports-color
@@ -5121,31 +4871,6 @@ packages:
monaco-editor: 0.33.0
dev: true
/vite/2.9.5_sass@1.52.3:
resolution: {integrity: sha512-dvMN64X2YEQgSXF1lYabKXw3BbN6e+BL67+P3Vy4MacnY+UzT1AfkHiioFSi9+uiDUiaDy7Ax/LQqivk6orilg==}
engines: {node: '>=12.2.0'}
hasBin: true
peerDependencies:
less: '*'
sass: '*'
stylus: '*'
peerDependenciesMeta:
less:
optional: true
sass:
optional: true
stylus:
optional: true
dependencies:
esbuild: 0.14.43
postcss: 8.4.14
resolve: 1.22.0
rollup: 2.75.6
sass: 1.52.3
optionalDependencies:
fsevents: 2.3.2
dev: true
/void-elements/3.1.0:
resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
engines: {node: '>=0.10.0'}
@@ -5547,3 +5272,470 @@ packages:
dependencies:
tslib: 2.3.0
dev: true
registry.npmmirror.com/asynckit/0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz}
name: asynckit
version: 0.4.0
dev: false
registry.npmmirror.com/axios/0.27.2:
resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/axios/-/axios-0.27.2.tgz}
name: axios
version: 0.27.2
dependencies:
follow-redirects: registry.npmmirror.com/follow-redirects/1.15.1
form-data: registry.npmmirror.com/form-data/4.0.0
transitivePeerDependencies:
- debug
dev: false
registry.npmmirror.com/combined-stream/1.0.8:
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz}
name: combined-stream
version: 1.0.8
engines: {node: '>= 0.8'}
dependencies:
delayed-stream: registry.npmmirror.com/delayed-stream/1.0.0
dev: false
registry.npmmirror.com/delayed-stream/1.0.0:
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz}
name: delayed-stream
version: 1.0.0
engines: {node: '>=0.4.0'}
dev: false
registry.npmmirror.com/esbuild-android-64/0.14.43:
resolution: {integrity: sha512-kqFXAS72K6cNrB6RiM7YJ5lNvmWRDSlpi7ZuRZ1hu1S3w0zlwcoCxWAyM23LQUyZSs1PbjHgdbbfYAN8IGh6xg==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.43.tgz}
name: esbuild-android-64
version: 0.14.43
engines: {node: '>=12'}
cpu: [x64]
os: [android]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-android-arm64/0.14.43:
resolution: {integrity: sha512-bKS2BBFh+7XZY9rpjiHGRNA7LvWYbZWP87pLehggTG7tTaCDvj8qQGOU/OZSjCSKDYbgY7Q+oDw8RlYQ2Jt2BA==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.43.tgz}
name: esbuild-android-arm64
version: 0.14.43
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-darwin-64/0.14.43:
resolution: {integrity: sha512-/3PSilx011ttoieRGkSZ0XV8zjBf2C9enV4ScMMbCT4dpx0mFhMOpFnCHkOK0pWGB8LklykFyHrWk2z6DENVUg==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.43.tgz}
name: esbuild-darwin-64
version: 0.14.43
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-darwin-arm64/0.14.43:
resolution: {integrity: sha512-1HyFUKs8DMCBOvw1Qxpr5Vv/ThNcVIFb5xgXWK3pyT40WPvgYIiRTwJCvNs4l8i5qWF8/CK5bQxJVDjQvtv0Yw==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.43.tgz}
name: esbuild-darwin-arm64
version: 0.14.43
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-freebsd-64/0.14.43:
resolution: {integrity: sha512-FNWc05TPHYgaXjbPZO5/rJKSBslfG6BeMSs8GhwnqAKP56eEhvmzwnIz1QcC9cRVyO+IKqWNfmHFkCa1WJTULA==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.43.tgz}
name: esbuild-freebsd-64
version: 0.14.43
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-freebsd-arm64/0.14.43:
resolution: {integrity: sha512-amrYopclz3VohqisOPR6hA3GOWA3LZC1WDLnp21RhNmoERmJ/vLnOpnrG2P/Zao+/erKTCUqmrCIPVtj58DRoA==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.43.tgz}
name: esbuild-freebsd-arm64
version: 0.14.43
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-linux-32/0.14.43:
resolution: {integrity: sha512-KoxoEra+9O3AKVvgDFvDkiuddCds6q71owSQEYwjtqRV7RwbPzKxJa6+uyzUulHcyGVq0g15K0oKG5CFBcvYDw==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.43.tgz}
name: esbuild-linux-32
version: 0.14.43
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-linux-64/0.14.43:
resolution: {integrity: sha512-EwINwGMyiJMgBby5/SbMqKcUhS5AYAZ2CpEBzSowsJPNBJEdhkCTtEjk757TN/wxgbu3QklqDM6KghY660QCUw==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.43.tgz}
name: esbuild-linux-64
version: 0.14.43
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-linux-arm/0.14.43:
resolution: {integrity: sha512-e6YzQUoDxxtyamuF12eVzzRC7bbEFSZohJ6igQB9tBqnNmIQY3fI6Cns3z2wxtbZ3f2o6idkD2fQnlvs2902Dg==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.43.tgz}
name: esbuild-linux-arm
version: 0.14.43
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-linux-arm64/0.14.43:
resolution: {integrity: sha512-UlSpjMWllAc70zYbHxWuDS3FJytyuR/gHJYBr8BICcTNb/TSOYVBg6U7b3jZ3mILTrgzwJUHwhEwK18FZDouUQ==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.43.tgz}
name: esbuild-linux-arm64
version: 0.14.43
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-linux-mips64le/0.14.43:
resolution: {integrity: sha512-f+v8cInPEL1/SDP//CfSYzcDNgE4CY3xgDV81DWm3KAPWzhvxARrKxB1Pstf5mB56yAslJDxu7ryBUPX207EZA==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.43.tgz}
name: esbuild-linux-mips64le
version: 0.14.43
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-linux-ppc64le/0.14.43:
resolution: {integrity: sha512-5wZYMDGAL/K2pqkdIsW+I4IR41kyfHr/QshJcNpUfK3RjB3VQcPWOaZmc+74rm4ZjVirYrtz+jWw0SgxtxRanA==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.43.tgz}
name: esbuild-linux-ppc64le
version: 0.14.43
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-linux-riscv64/0.14.43:
resolution: {integrity: sha512-lYcAOUxp85hC7lSjycJUVSmj4/9oEfSyXjb/ua9bNl8afonaduuqtw7hvKMoKuYnVwOCDw4RSfKpcnIRDWq+Bw==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.43.tgz}
name: esbuild-linux-riscv64
version: 0.14.43
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-linux-s390x/0.14.43:
resolution: {integrity: sha512-27e43ZhHvhFE4nM7HqtUbMRu37I/4eNSUbb8FGZWszV+uLzMIsHDwLoBiJmw7G9N+hrehNPeQ4F5Ujad0DrUKQ==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.43.tgz}
name: esbuild-linux-s390x
version: 0.14.43
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-netbsd-64/0.14.43:
resolution: {integrity: sha512-2mH4QF6hHBn5zzAfxEI/2eBC0mspVsZ6UVo821LpAJKMvLJPBk3XJO5xwg7paDqSqpl7p6IRrAenW999AEfJhQ==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.43.tgz}
name: esbuild-netbsd-64
version: 0.14.43
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-openbsd-64/0.14.43:
resolution: {integrity: sha512-ZhQpiZjvqCqO8jKdGp9+8k9E/EHSA+zIWOg+grwZasI9RoblqJ1QiZqqi7jfd6ZrrG1UFBNGe4m0NFxCFbMVbg==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.43.tgz}
name: esbuild-openbsd-64
version: 0.14.43
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-sunos-64/0.14.43:
resolution: {integrity: sha512-DgxSi9DaHReL9gYuul2rrQCAapgnCJkh3LSHPKsY26zytYppG0HgkgVF80zjIlvEsUbGBP/GHQzBtrezj/Zq1Q==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.43.tgz}
name: esbuild-sunos-64
version: 0.14.43
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-windows-32/0.14.43:
resolution: {integrity: sha512-Ih3+2O5oExiqm0mY6YYE5dR0o8+AspccQ3vIAtRodwFvhuyGLjb0Hbmzun/F3Lw19nuhPMu3sW2fqIJ5xBxByw==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.43.tgz}
name: esbuild-windows-32
version: 0.14.43
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-windows-64/0.14.43:
resolution: {integrity: sha512-8NsuNfI8xwFuJbrCuI+aBqNTYkrWErejFO5aYM+yHqyHuL8mmepLS9EPzAzk8rvfaJrhN0+RvKWAcymViHOKEw==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.43.tgz}
name: esbuild-windows-64
version: 0.14.43
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild-windows-arm64/0.14.43:
resolution: {integrity: sha512-7ZlD7bo++kVRblJEoG+cepljkfP8bfuTPz5fIXzptwnPaFwGS6ahvfoYzY7WCf5v/1nX2X02HDraVItTgbHnKw==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.43.tgz}
name: esbuild-windows-arm64
version: 0.14.43
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/esbuild/0.14.43:
resolution: {integrity: sha512-Uf94+kQmy/5jsFwKWiQB4hfo/RkM9Dh7b79p8yqd1tshULdr25G2szLz631NoH3s2ujnKEKVD16RmOxvCNKRFA==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.14.43.tgz}
name: esbuild
version: 0.14.43
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
optionalDependencies:
esbuild-android-64: registry.npmmirror.com/esbuild-android-64/0.14.43
esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64/0.14.43
esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64/0.14.43
esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64/0.14.43
esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64/0.14.43
esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64/0.14.43
esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32/0.14.43
esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64/0.14.43
esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm/0.14.43
esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64/0.14.43
esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le/0.14.43
esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le/0.14.43
esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64/0.14.43
esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x/0.14.43
esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64/0.14.43
esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64/0.14.43
esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64/0.14.43
esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32/0.14.43
esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64/0.14.43
esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64/0.14.43
dev: true
registry.npmmirror.com/follow-redirects/1.15.1:
resolution: {integrity: sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.1.tgz}
name: follow-redirects
version: 1.15.1
engines: {node: '>=4.0'}
peerDependencies:
debug: '*'
peerDependenciesMeta:
debug:
optional: true
dev: false
registry.npmmirror.com/form-data/4.0.0:
resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz}
name: form-data
version: 4.0.0
engines: {node: '>= 6'}
dependencies:
asynckit: registry.npmmirror.com/asynckit/0.4.0
combined-stream: registry.npmmirror.com/combined-stream/1.0.8
mime-types: registry.npmmirror.com/mime-types/2.1.35
dev: false
registry.npmmirror.com/fsevents/2.3.2:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz}
name: fsevents
version: 2.3.2
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/function-bind/1.1.1:
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz}
name: function-bind
version: 1.1.1
dev: true
registry.npmmirror.com/graceful-fs/4.2.10:
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.10.tgz}
name: graceful-fs
version: 4.2.10
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/has/1.0.3:
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/has/-/has-1.0.3.tgz}
name: has
version: 1.0.3
engines: {node: '>= 0.4.0'}
dependencies:
function-bind: registry.npmmirror.com/function-bind/1.1.1
dev: true
registry.npmmirror.com/is-core-module/2.9.0:
resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/is-core-module/-/is-core-module-2.9.0.tgz}
name: is-core-module
version: 2.9.0
dependencies:
has: registry.npmmirror.com/has/1.0.3
dev: true
registry.npmmirror.com/mime-db/1.52.0:
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz}
name: mime-db
version: 1.52.0
engines: {node: '>= 0.6'}
dev: false
registry.npmmirror.com/mime-types/2.1.35:
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz}
name: mime-types
version: 2.1.35
engines: {node: '>= 0.6'}
dependencies:
mime-db: registry.npmmirror.com/mime-db/1.52.0
dev: false
registry.npmmirror.com/nanoid/3.3.4:
resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/nanoid/-/nanoid-3.3.4.tgz}
name: nanoid
version: 3.3.4
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
dev: true
registry.npmmirror.com/path-parse/1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz}
name: path-parse
version: 1.0.7
dev: true
registry.npmmirror.com/picocolors/1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/picocolors/-/picocolors-1.0.0.tgz}
name: picocolors
version: 1.0.0
dev: true
registry.npmmirror.com/postcss/8.4.14:
resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/postcss/-/postcss-8.4.14.tgz}
name: postcss
version: 8.4.14
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: registry.npmmirror.com/nanoid/3.3.4
picocolors: registry.npmmirror.com/picocolors/1.0.0
source-map-js: registry.npmmirror.com/source-map-js/1.0.2
dev: true
registry.npmmirror.com/resolve/1.22.0:
resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/resolve/-/resolve-1.22.0.tgz}
name: resolve
version: 1.22.0
hasBin: true
dependencies:
is-core-module: registry.npmmirror.com/is-core-module/2.9.0
path-parse: registry.npmmirror.com/path-parse/1.0.7
supports-preserve-symlinks-flag: registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0
dev: true
registry.npmmirror.com/rollup/2.75.6:
resolution: {integrity: sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/rollup/-/rollup-2.75.6.tgz}
name: rollup
version: 2.75.6
engines: {node: '>=10.0.0'}
hasBin: true
optionalDependencies:
fsevents: registry.npmmirror.com/fsevents/2.3.2
dev: true
registry.npmmirror.com/source-map-js/1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/source-map-js/-/source-map-js-1.0.2.tgz}
name: source-map-js
version: 1.0.2
engines: {node: '>=0.10.0'}
dev: true
registry.npmmirror.com/supports-preserve-symlinks-flag/1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz}
name: supports-preserve-symlinks-flag
version: 1.0.0
engines: {node: '>= 0.4'}
dev: true
registry.npmmirror.com/uglify-js/3.16.0:
resolution: {integrity: sha512-FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/uglify-js/-/uglify-js-3.16.0.tgz}
name: uglify-js
version: 3.16.0
engines: {node: '>=0.8.0'}
hasBin: true
requiresBuild: true
dev: true
optional: true
registry.npmmirror.com/vite/2.9.9_sass@1.52.3:
resolution: {integrity: sha512-ffaam+NgHfbEmfw/Vuh6BHKKlI/XIAhxE5QSS7gFLIngxg171mg1P3a4LSRME0z2ZU1ScxoKzphkipcYwSD5Ew==, registry: http://npm.rongdasoft.com:7001/, tarball: https://registry.npmmirror.com/vite/-/vite-2.9.9.tgz}
id: registry.npmmirror.com/vite/2.9.9
name: vite
version: 2.9.9
engines: {node: '>=12.2.0'}
hasBin: true
peerDependencies:
less: '*'
sass: '*'
stylus: '*'
peerDependenciesMeta:
less:
optional: true
sass:
optional: true
stylus:
optional: true
dependencies:
esbuild: registry.npmmirror.com/esbuild/0.14.43
postcss: registry.npmmirror.com/postcss/8.4.14
resolve: registry.npmmirror.com/resolve/1.22.0
rollup: registry.npmmirror.com/rollup/2.75.6
sass: 1.52.3
optionalDependencies:
fsevents: registry.npmmirror.com/fsevents/2.3.2
dev: true

View File

@@ -0,0 +1,3 @@
import GoSystemInfo from './index.vue';
export { GoSystemInfo };

View File

@@ -0,0 +1,76 @@
<template>
<n-modal v-model:show="modelShow" @afterLeave="closeHandle">
<n-list bordered class="go-system-info">
<template #header>
<n-space justify="space-between">
<n-h3 class="go-mb-0">关于我们</n-h3>
<n-icon size="20" class="go-cursor-pointer" @click="closeHandle">
<close-icon></close-icon>
</n-icon>
</n-space>
</template>
<n-list-item>
<n-space :size="20">
<n-text class="item-left">版权声明</n-text>
<n-text>
GoView 版权属于
<n-a href="https://gitee.com/MTrun/go-view" target="_blank">https://gitee.com/MTrun/go-view</n-a> 项目作者
</n-text>
</n-space>
</n-list-item>
<n-list-item>
<n-divider style="margin-top: 0" />
<n-space :size="20">
<n-text class="item-left">协议备注</n-text>
<n-text>
请遵守开源 MIT 协议以上声明 <n-text type="error">不可删除</n-text>否则视作侵权行为后果自负
</n-text>
</n-space>
</n-list-item>
<n-list-item>
<n-divider style="margin-top: 0" />
<n-space :size="20">
<n-text class="item-left">商业授权</n-text>
<n-text>
若不想保留版权声明请通过仓库/交流群 联系项目作者进行授权
</n-text>
</n-space>
</n-list-item>
</n-list>
</n-modal>
</template>
<script lang="ts" setup>
import { icon } from '@/plugins'
const { HelpOutlineIcon, CloseIcon } = icon.ionicons5
const emit = defineEmits(['update:modelShow'])
defineProps({
modelShow: Boolean
})
const closeHandle = () => {
emit('update:modelShow', false)
}
</script>
<style lang="scss" scoped>
@include go('system-info') {
@extend .go-background-filter;
min-width: 100px;
max-width: 60vw;
padding-bottom: 20px;
.item-left {
width: 200px;
}
@include deep() {
.n-list-item:not(:last-child) {
border-bottom: 0;
}
}
}
</style>

View File

@@ -20,14 +20,17 @@
<!-- 系统设置 model -->
<go-system-set v-model:modelShow="modelShow"></go-system-set>
<!-- 关于软件 model -->
<go-system-info v-model:modelShow="modelShowInfo"></go-system-info>
</template>
<script lang="ts" setup>
import { h, ref } from 'vue'
import { NAvatar, NText } from 'naive-ui'
import { renderIcon } from '@/utils'
import { openDoc, logout, renderLang } from '@/utils'
import { logout, renderLang } from '@/utils'
import { GoSystemSet } from '@/components/GoSystemSet/index'
import { GoSystemInfo } from '@/components/GoSystemInfo/index'
import Person from './person.png'
import { icon } from '@/plugins'
@@ -40,6 +43,7 @@ const {
const t = window['$t']
const modelShowInfo = ref(false)
const modelShow = ref(false)
// 是否失败
@@ -77,16 +81,16 @@ const options = ref([
type: 'divider',
key: 'd1'
},
{
label: renderLang('global.contact'),
key: 'contact',
icon: renderIcon(ChatboxEllipsesIcon)
},
{
label: renderLang('global.sys_set'),
key: 'sysSet',
icon: renderIcon(SettingsSharpIcon)
},
{
label: renderLang('global.contact'),
key: 'contact',
icon: renderIcon(ChatboxEllipsesIcon)
},
{
type: 'divider',
key: 'd3'
@@ -108,10 +112,15 @@ const sysSetHandle = () => {
modelShow.value = true
}
// 系统设置
const sysInfoHandle = () => {
modelShowInfo.value = true
}
const handleSelect = (key: string) => {
switch (key) {
case 'contact':
openDoc()
sysInfoHandle()
break
case 'sysSet':
sysSetHandle()

View File

@@ -9,7 +9,7 @@ const global = {
// header
doc: 'Document',
help: 'Help',
contact: 'Contact Us',
contact: 'About Software',
logout: 'Logout',
// system setting
sys_set: 'System Setting',

View File

@@ -9,7 +9,7 @@ const global = {
// 头部
doc: '说明文档',
help: '帮助中心',
contact: '联系我们',
contact: '关于软件',
logout: '退出登录',
// 系统设置
sys_set: '系统设置',

View File

@@ -10,7 +10,7 @@ import { PropType, toRefs, shallowReactive, watch } from 'vue'
import { CreateComponentType } from '@/packages/index.d'
import { useChartDataFetch } from '@/hooks'
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
import { option as configOption } from './config'
import { option as configOption } from './config'
const props = defineProps({
chartConfig: {
@@ -26,11 +26,13 @@ const option = shallowReactive({
const { w, h } = toRefs(props.chartConfig.attr)
const { size, gradient } = toRefs(props.chartConfig.option)
watch(
() => props.chartConfig.option.dataset,
(newData: any) => {
option.dataset = newData
},
{
immediate: true
}
)

View File

@@ -63,7 +63,7 @@ export enum FilterEnum {
export interface PublicConfigType {
id: string
isGroup: boolean
attr: { x: number; y: number; w: number; h: number; zIndex: number }
attr: { x: number; y: number; w: number; h: number; zIndex: number; offsetX: number; offsetY: number; }
styles: {
[FilterEnum.OPACITY]: number
[FilterEnum.SATURATE]: number

View File

@@ -104,5 +104,5 @@ export class PublicGroupConfigClass extends publicConfig implements CreateCompon
// 标识
public id = getUUID()
// 基本信息
public attr = { w: 0, h: 0, x: 0, y: 0, zIndex: -1 }
public attr = { w: 0, h: 0, x: 0, y: 0, offsetX: 0, offsetY: 0, zIndex: -1 }
}

View File

@@ -25,7 +25,10 @@ export const chartInitConfig = {
x: 50,
y: 50,
w: 500,
h: 300
h: 300,
// 不建议动 offset
offsetX: 0,
offsetY: 0,
}
// dialog 图标的大小

View File

@@ -313,6 +313,28 @@ export const useChartEditStore = defineStore({
loadingError()
}
},
// * 重置组件位置
resetComponentPosition(item: CreateComponentType | CreateComponentGroupType, isForward: boolean): void {
const index = this.fetchTargetIndex(item.id)
if (index > -1) {
const componentInstance = this.getComponentList[index]
if (isForward) {
componentInstance.attr = Object.assign(componentInstance.attr, {
x: item.attr.x + item.attr.offsetX,
y: item.attr.y + item.attr.offsetY
})
} else {
componentInstance.attr = Object.assign(componentInstance.attr, {
x: item.attr.x,
y: item.attr.y
})
}
}
},
// * 移动组件
moveComponentList(item: Array<CreateComponentType | CreateComponentGroupType>) {
chartHistoryStore.createMoveHistory(item)
},
// * 更新组件列表某一项的值
updateComponentList(index: number, newData: CreateComponentType | CreateComponentGroupType) {
if (index < 1 && index > this.getComponentList.length) return
@@ -530,6 +552,15 @@ export const useChartEditStore = defineStore({
return
}
// 处理移动
const isMove = HistoryItem.actionType === HistoryActionTypeEnum.MOVE
if (isMove) {
historyData.forEach(item => {
this.resetComponentPosition(item, isForward)
})
return
}
// 处理层级
const isTop = HistoryItem.actionType === HistoryActionTypeEnum.TOP
const isBottom = HistoryItem.actionType === HistoryActionTypeEnum.BOTTOM
@@ -562,12 +593,12 @@ export const useChartEditStore = defineStore({
if (isGroup || isUnGroup) {
if ((isGroup && isForward) || (isUnGroup && !isForward)) {
const ids: string[] = []
if(historyData.length > 1) {
if (historyData.length > 1) {
historyData.forEach(item => {
ids.push(item.id)
})
} else {
(historyData[0] as CreateComponentGroupType).groupList.forEach(item => {
;(historyData[0] as CreateComponentGroupType).groupList.forEach(item => {
ids.push(item.id)
})
}
@@ -575,7 +606,7 @@ export const useChartEditStore = defineStore({
return
}
// 都需使用子组件的id去解组
if(historyData.length > 1) {
if (historyData.length > 1) {
this.setUnGroup([(historyData[0] as CreateComponentType).id], undefined, false)
} else {
this.setUnGroup([(historyData[0] as CreateComponentGroupType).groupList[0].id], undefined, false)

View File

@@ -177,7 +177,9 @@ export const canvasCut = (html: HTMLElement | null, callback?: Function) => {
}
html2canvas(html, {
backgroundColor: null
backgroundColor: null,
allowTaint: true,
useCORS: true
}).then((canvas: HTMLCanvasElement) => {
window['$message'].success('导出成功!')
downloadByA(canvas.toDataURL(), undefined, 'png')

View File

@@ -85,6 +85,8 @@ const canvasPositionList = computed(() => {
h: cloneDeep(chartEditStore.getEditCanvasConfig.height),
x: 0,
y: 0,
offsetX: 0,
offsetY: 0,
zIndex: 0
}
}

View File

@@ -3,8 +3,6 @@
<slot></slot>
<!-- 水印 -->
<edit-watermark></edit-watermark>
<!-- 标尺 -->
<edit-rule></edit-rule>
<!-- 拖拽时的辅助线 -->
<edit-align-line></edit-align-line>
<!-- 框选时的样式框 -->
@@ -22,7 +20,6 @@ import { mousedownBoxSelect } from '../../hooks/useDrag.hook'
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
import { EditAlignLine } from '../EditAlignLine'
import { EditWatermark } from '../EditWatermark'
import { EditRule } from '../EditRule'
import { EditSelect } from '../EditSelect'
const chartEditStore = useChartEditStore()

View File

@@ -1,9 +1,10 @@
<template>
<sketch-rule
v-if="configShow"
:thick="thick"
:scale="scale"
:width="width"
:height="height"
:width="canvasBox().width"
:height="canvasBox().height"
:startX="startX"
:startY="startY"
:lines="lines"
@@ -11,7 +12,7 @@
</template>
<script setup lang="ts">
import { toRefs, computed } from 'vue'
import { ref, toRefs, computed, watch } from 'vue'
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
import { useDesignStore } from '@/store/modules/designStore/designStore'
@@ -20,12 +21,12 @@ const designStore = useDesignStore()
const { width, height } = toRefs(chartEditStore.getEditCanvasConfig)
// 初始化标尺的缩放
const scale = 1
const configShow = ref(true)
// x轴标尺开始的坐标数值
const startX = 20
const startX = -10
// y轴标尺开始的坐标数值
const startY = 20
const startY = -10
// 标尺的厚度
const thick = 20
// 初始化水平标尺上的参考线
@@ -34,29 +35,58 @@ const lines = {
v: []
}
const canvasBox = () => {
const layoutDom = document.getElementById('go-chart-edit-layout')
if (layoutDom) {
return {
height: layoutDom.clientHeight - 40,
width: layoutDom.clientWidth
}
}
return {
width: width.value,
height: height.value
}
}
const scale = computed(() => {
return chartEditStore.getEditCanvas.scale
})
// 颜色
const themeColor = computed(() => {
return designStore.getAppTheme
})
// 处理标尺重制大小
watch(
() => scale.value,
() => {
configShow.value = false
setTimeout(() => {
configShow.value = true
})
}
)
</script>
<style>
/* 使用 SCSS 会报错,直接使用最基础的 CSS 进行修改,
此库有计划 Vue3 版本,但是开发的时候还没发布 */
#mb-ruler {
top: 0;
top: 0;
left: 0;
}
/* 适配底部的工具栏不遮盖 */
#mb-ruler .v-container {
height: calc(100% - 65px) !important;
}
/* 横线 */
#mb-ruler .v-container .lines .line {
/* 最大缩放 200% */
width: 200vw!important;
width: 200vw !important;
border-top: 1px dashed v-bind('themeColor') !important;
}
#mb-ruler .v-container .indicator {
border-bottom: 1px dashed v-bind('themeColor') !important;
@@ -64,7 +94,7 @@ const themeColor = computed(() => {
/* 竖线 */
#mb-ruler .h-container .lines .line {
/* 最大缩放 200% */
height: 200vh!important;
height: 200vh !important;
border-left: 1px dashed v-bind('themeColor') !important;
}
#mb-ruler .h-container .indicator {
@@ -82,7 +112,7 @@ const themeColor = computed(() => {
font-weight: bolder;
}
#mb-ruler .corner{
border-width: 0!important;
#mb-ruler .corner {
border-width: 0 !important;
}
</style>

View File

@@ -41,7 +41,10 @@ watch(
// 宽
w: 0,
// 高
h: 0
h: 0,
// 偏移
offsetX: 0,
offsetY: 0
}
// 处理位置

View File

@@ -17,19 +17,16 @@ export const exportHandle = () => {
)
// 导出图片
const ruler = document.getElementById('mb-ruler')
const range = document.querySelector('.go-edit-range') as HTMLElement
const watermark = document.getElementById('go-edit-watermark')
// 隐藏边距线
if (!ruler || !range || !watermark) {
if (!range || !watermark) {
window['$message'].error('导出失败!')
return
}
// 记录缩放比例
const scaleTemp = chartEditStore.getEditCanvas.scale
// 去除标尺Dom
ruler.style.display = 'none'
// 百分百展示页面
chartEditStore.setScale(1, true)
// 展示水印
@@ -39,8 +36,6 @@ export const exportHandle = () => {
canvasCut(range, () => {
// 隐藏水印
if (watermark) watermark.style.display = 'none'
// 放开边距线
if (ruler) ruler.style.display = 'block'
// 还原页面大小
chartEditStore.setScale(scaleTemp, true)
})

View File

@@ -7,7 +7,7 @@ import { useContextMenu } from '@/views/chart/hooks/useContextMenu.hook'
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
import { EditCanvasTypeEnum } from '@/store/modules/chartEditStore/chartEditStore.d'
import { loadingStart, loadingFinish, loadingError } from '@/utils'
import throttle from 'lodash/throttle'
import { throttle, cloneDeep } from 'lodash'
const chartEditStore = useChartEditStore()
const { onClickOutSide } = useContextMenu()
@@ -111,7 +111,7 @@ export const mousedownBoxSelect = (e: MouseEvent, item?: CreateComponentType | C
selectAttr.x1 = Math.round(startOffsetX - (startScreenX - moveEvent.screenX) / scale)
selectAttr.y1 = startOffsetY
selectAttr.x2 = startOffsetX
selectAttr.y2 = Math.round(startOffsetY + (moveEvent.screenY - startScreenY ) / scale)
selectAttr.y2 = Math.round(startOffsetY + (moveEvent.screenY - startScreenY) / scale)
// 左下方向
} else {
// 左上方向
@@ -222,6 +222,16 @@ export const useMouseHandle = () => {
const startX = e.screenX
const startY = e.screenY
// 记录历史位置
let prevComponentInstance: Array<CreateComponentType | CreateComponentGroupType> = []
chartEditStore.getTargetChart.selectId.forEach(id => {
if (!targetMap.has(id)) return
const index = chartEditStore.fetchTargetIndex(id)
// 拿到初始位置数据
prevComponentInstance.push(cloneDeep(chartEditStore.getComponentList[index]))
})
// 记录初始位置
chartEditStore.setMousePosition(undefined, undefined, startX, startY)
@@ -267,6 +277,24 @@ export const useMouseHandle = () => {
const mouseup = () => {
chartEditStore.setMousePosition(0, 0, 0, 0)
chartEditStore.setEditCanvas(EditCanvasTypeEnum.IS_DRAG, false)
// 加入历史栈
if (prevComponentInstance.length) {
chartEditStore.getTargetChart.selectId.forEach(id => {
if (!targetMap.has(id)) return
const index = chartEditStore.fetchTargetIndex(id)
const curComponentInstance = chartEditStore.getComponentList[index]
// 找到记录的所选组件
prevComponentInstance.forEach(preItem => {
if (preItem.id === id) {
preItem.attr = Object.assign(preItem.attr, {
offsetX: curComponentInstance.attr.x - preItem.attr.x,
offsetY: curComponentInstance.attr.y - preItem.attr.y
})
}
})
})
chartEditStore.moveComponentList(prevComponentInstance)
}
document.removeEventListener('mousemove', mousemove)
document.removeEventListener('mouseup', mouseup)
}

View File

@@ -1,4 +1,5 @@
<template>
<edit-rule></edit-rule>
<content-box
id="go-chart-edit-layout"
:flex="true"
@@ -24,8 +25,12 @@
<!-- 图表 -->
<div v-for="(item, index) in chartEditStore.getComponentList" :key="item.id">
<!-- 分组 -->
<edit-group v-if="item.isGroup" :groupData="(item as CreateComponentGroupType)" :groupIndex="index"></edit-group>
<edit-group
v-if="item.isGroup"
:groupData="(item as CreateComponentGroupType)"
:groupIndex="index"
></edit-group>
<!-- 单组件 -->
<edit-shape-box
v-else
@@ -88,6 +93,7 @@ import { useComponentStyle, useSizeStyle } from './hooks/useStyle.hook'
import { ContentBox } from '../ContentBox/index'
import { EditGroup } from './components/EditGroup'
import { EditRange } from './components/EditRange'
import { EditRule } from './components/EditRule'
import { EditBottom } from './components/EditBottom'
import { EditShapeBox } from './components/EditShapeBox'
import { EditTools } from './components/EditTools'
@@ -115,7 +121,7 @@ const optionsHandle = (
// 多选处理
if (chartEditStore.getTargetChart.selectId.length > 1) {
const list: MenuOptionsItemType[] = []
allList.forEach(item => {
// 成组
if (moreMenuEnums.includes(item.key as MenuEnum)) {
@@ -174,7 +180,7 @@ onMounted(() => {
@include background-image('background-point');
@include goId('chart-edit-content') {
border-radius: 10px;
margin: 15px;
margin: 25px;
overflow: hidden;
@extend .go-transition;
@include fetch-theme('box-shadow');