Pre Merge pull request !214 from yuanmogul/fix-sketch-rule
236
README.md
@ -1,30 +1,137 @@
|
|||||||
## 总览
|
<p align="center">
|
||||||
|
<a
|
||||||
|
href="https://www.goviewlink.com?channel=mayun"
|
||||||
|
target="_blank"
|
||||||
|
style="
|
||||||
|
padding: 10px 20px;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 10px;
|
||||||
|
">
|
||||||
|
<img src="readme/GoViewPro.png" alt="go-view" />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||

|
<p align="center">
|
||||||
|
<img src="readme/logo-t-y.png" alt="go-view" />
|
||||||
|
</p>
|
||||||
|
|
||||||
GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。
|
<h4 align="center">开源、精美、便捷的「数据可视化」低代码开发平台</h4>
|
||||||
|
|
||||||
### 😶 纯 **前端** 分支: **`master`**
|
#### 长期赞助商
|
||||||
|
|
||||||
### 👻 携带 **后端** 请求分支: **`master-fetch`**
|
<div>
|
||||||
|
<div align="center" style="column-gap: 20px;">
|
||||||
|
<a
|
||||||
|
href="http://www.ccflow.org/?from=goviewGitee"
|
||||||
|
target="_blank"
|
||||||
|
style="
|
||||||
|
padding: 10px 20px;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 10px;
|
||||||
|
background: #f9f9f9;
|
||||||
|
">
|
||||||
|
<img src="readme/sponsors/ccflow-banner.png" alt="go-view" style="width: 250px;" width="250px" />
|
||||||
|
</a>
|
||||||
|
<span> </span>
|
||||||
|
<a
|
||||||
|
href="https://fastbee.cn/"
|
||||||
|
target="_blank"
|
||||||
|
style="
|
||||||
|
padding: 10px 20px;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 10px;
|
||||||
|
background: #f9f9f9;
|
||||||
|
">
|
||||||
|
<img src="readme/sponsors/fb-banner.gif" alt="go-view" style="width: 250px;" width="250px"/>
|
||||||
|
</a>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
<a
|
||||||
|
href="https://www.qeasy.cloud/"
|
||||||
|
target="_blank"
|
||||||
|
style="
|
||||||
|
padding: 10px 20px;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 10px;
|
||||||
|
background: #f9f9f9;
|
||||||
|
">
|
||||||
|
<img src="readme/sponsors/qyy-banner.png" alt="go-view" style="width: 250px;" width="250px"/>
|
||||||
|
</a>
|
||||||
|
<span> </span>
|
||||||
|
<a
|
||||||
|
href="http://doc.zyplayer.com/#/integrate/zyplayer-doc?utm=goview"
|
||||||
|
target="_blank"
|
||||||
|
style="
|
||||||
|
padding: 10px 20px;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 10px;
|
||||||
|
background: #f9f9f9;
|
||||||
|
">
|
||||||
|
<img src="readme/sponsors/zyplayer-banner.png" alt="go-view" style="width: 250px;" width="250px"/>
|
||||||
|
</a>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
<a
|
||||||
|
href="https://gitee.com/dandiankeji/icampus"
|
||||||
|
target="_blank"
|
||||||
|
style="
|
||||||
|
padding: 10px 20px;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 10px;
|
||||||
|
background: #f9f9f9;
|
||||||
|
">
|
||||||
|
<img src="readme/sponsors/dandian-banner.png" alt="go-view" style="width: 250px;" width="250px"/>
|
||||||
|
</a>
|
||||||
|
<a
|
||||||
|
href="https://www.mingdao.com?s=utm_88&utm_source=Goview&utm_medium=banner&utm_campaign=gitee&utm_content=IT%E8%B5%8B%E8%83%BD%E4%B8%9A%E5%8A%A1"
|
||||||
|
target="_blank"
|
||||||
|
style="
|
||||||
|
padding: 10px 20px;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 10px;
|
||||||
|
background: #f9f9f9;
|
||||||
|
">
|
||||||
|
<img src="readme/sponsors/mdy-banner.png" alt="go-view" style="width: 270px;" width="270px"/>
|
||||||
|
</a>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
<a
|
||||||
|
href="https://iotdoc.sagoo.cn/"
|
||||||
|
target="_blank"
|
||||||
|
style="
|
||||||
|
padding: 10px 20px;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 10px;
|
||||||
|
background: #f9f9f9;
|
||||||
|
">
|
||||||
|
<img src="readme/sponsors/shaguo-banner.png" alt="go-view" style="width: 270px;" width="270px"/>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
### 📚 GoView **文档** 地址:[http://www.mtruning.club:81/](http://www.mtruning.club:81/)
|
#### 😶 **纯前端** 分支: **`master`**
|
||||||
|
|
||||||
项目纯前端-Demo 地址:[https://www.mtruning.club](https://www.mtruning.club)
|
#### 👻 携带 **后端** 请求分支: **`master-fetch`**
|
||||||
|
|
||||||
项目带后端-Demo 地址:[后端 Demo 地址](http://1.117.240.165:8080/goview/#/login)
|
#### 📚 GoView **文档** 地址:[https://www.mtruning.club/](https://www.mtruning.club/)
|
||||||
|
|
||||||
文档-在线地址:[http://www.mtruning.club:81/](http://www.mtruning.club:81/)
|
项目纯前端-Demo 地址:[https://vue.mtruning.club/](https://vue.mtruning.club/)
|
||||||
|
|
||||||
文档-源码地址:[https://gitee.com/MTrun/go-view-doc](https://gitee.com/MTrun/go-view-doc)
|
项目带后端-Demo 地址:[https://demo.mtruning.club/](https://demo.mtruning.club/)
|
||||||
|
|
||||||
### 🤯 后端项目
|
Cloud IDE 代码在线预览地址:[https://idegitee.com/dromara/go-view](https://idegitee.com/dromara/go-view)
|
||||||
|
|
||||||
后端项目 gitee 地址:[https://gitee.com/MTrun/go-view-serve](https://gitee.com/MTrun/go-view-serve)
|
#### 🤯 后端项目看这里!
|
||||||
|
|
||||||
接口说明地址:[https://docs.apipost.cn/preview/5aa85d10a59d66ce/ddb813732007ad2b?target_id=84dbc5b0-158f-4bcb-8f74-793ac604ada3#3e053622-1e76-43f9-a039-756aee822dbb](https://docs.apipost.cn/preview/5aa85d10a59d66ce/ddb813732007ad2b?target_id=84dbc5b0-158f-4bcb-8f74-793ac604ada3#3e053622-1e76-43f9-a039-756aee822dbb)
|
后端地址(社区实现,仅供参考):
|
||||||
|
|
||||||
技术点:
|
- `JAVA` [https://gitee.com/MTrun/go-view-serve](https://gitee.com/MTrun/go-view-serve) (当前使用)
|
||||||
|
- `.NET` [https://gitee.com/sun_xiang_yu/go-view-dotnet](https://gitee.com/sun_xiang_yu/go-view-dotnet)
|
||||||
|
- `NODE` [https://gitee.com/qwdingyu/led](https://gitee.com/qwdingyu/led)
|
||||||
|
- `Docker 镜像` [https://gitee.com/AHEAD4/go-view-docker](https://gitee.com/AHEAD4/go-view-docker)
|
||||||
|
- `接口文档`[https://docs.apipost.cn](https://docs.apipost.cn/preview/5aa85d10a59d66ce/ddb813732007ad2b?target_id=84dbc5b0-158f-4bcb-8f74-793ac604ada3) (不是最新, 以前端代码为准)
|
||||||
|
|
||||||
|
#### 整体介绍
|
||||||
|
|
||||||
- 框架:基于 `Vue3` 框架编写,使用 `hooks` 写法抽离部分逻辑,使代码结构更加清晰;
|
- 框架:基于 `Vue3` 框架编写,使用 `hooks` 写法抽离部分逻辑,使代码结构更加清晰;
|
||||||
|
|
||||||
@ -36,17 +143,34 @@ GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图
|
|||||||
|
|
||||||
- 封装:项目进行了详细的工具类封装如:路由、存储、加/解密、文件处理、主题、NaiveUI 全局方法、组件等
|
- 封装:项目进行了详细的工具类封装如:路由、存储、加/解密、文件处理、主题、NaiveUI 全局方法、组件等
|
||||||
|
|
||||||
|
- 入选 NaiveUI 社区精选资源推荐:[查看 NaiveUI 推荐列表](https://www.naiveui.com/zh-CN/light/docs/community)
|
||||||
|
|
||||||
|
说明文档:
|
||||||
|

|
||||||
|
|
||||||
工作台:
|
工作台:
|
||||||

|

|
||||||
|
|
||||||
请求配置:
|
请求配置:
|
||||||

|

|
||||||
|
|
||||||
数据过滤:
|
数据过滤:
|
||||||

|

|
||||||
|
|
||||||
|
高级事件编辑:
|
||||||
|

|
||||||
|
|
||||||
|
自定义组件颜色:
|
||||||
|

|
||||||
|
|
||||||
|
快捷主页:
|
||||||
|

|
||||||
|
|
||||||
主题色:
|
主题色:
|
||||||

|

|
||||||
|
|
||||||
|
亮白主题:
|
||||||
|

|
||||||
|
|
||||||
主要技术栈为:
|
主要技术栈为:
|
||||||
|
|
||||||
@ -66,14 +190,17 @@ GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图
|
|||||||
|
|
||||||
已完成图表:
|
已完成图表:
|
||||||
|
|
||||||
| 分类 | 名称 | 名称 | 名称 |
|
| 分类 | 名称 | 名称 | 名称 | 名称 |
|
||||||
| ------ | ---------------- | ---------------- | -------- |
|
| ------ | ---------------- | ---------- | -------------- | ------------------------ |
|
||||||
| 图表 | 柱状图 | 横向柱状图 | 折线图 |
|
| 图表 | 柱状图 | 横向柱状图 | 折线图 | 单/多 折线面积图(渐变色) |
|
||||||
| \* | 单/多 折线面积图 | 饼图 | 水球图 |
|
| \* | 饼图 | 环形图 | 水球图 | 雷达图 |
|
||||||
| \* | 环形图 | NaiveUI 多种进度 | 🤠 |
|
| \* | NaiveUI 多种进度 | 散点图 | 对数回归散点图 | 热力图 |
|
||||||
| 信息 | 文字 | 图片 | 😶 |
|
| \* | 漏斗图 | 中国地图 | 高德地图 | 🦊 |
|
||||||
| 列表 | 滚动排名列表 | 滚动表格 | 🤓 |
|
| 信息 | 文字 | 渐变文字 | 词云 | 嵌套网页 |
|
||||||
| 小组件 | 边框-01~13 | 装饰-01~05 | 数字翻牌 |
|
| \* | 图片 | 视频 | 😺 | 🐯 |
|
||||||
|
| 列表 | 滚动排名列表 | 滚动表格 | 🐮 | 🐐 |
|
||||||
|
| 小组件 | 边框-01~13 | 装饰-01~05 | 数字翻牌 | 通用时间 |
|
||||||
|
| \* | 数字计数 | 倒计时 | 时钟 | 🦁 |
|
||||||
|
|
||||||
## 浏览器支持
|
## 浏览器支持
|
||||||
|
|
||||||
@ -81,52 +208,7 @@ GoView 是一个高效的拖拽式低代码数据可视化开发平台,将图
|
|||||||
|
|
||||||
## 安装
|
## 安装
|
||||||
|
|
||||||
本项目采用` pnpm` 进行包管理
|
请查看文档:[https://www.mtruning.club/](https://www.mtruning.club/)
|
||||||
|
|
||||||
```shell
|
|
||||||
#建议使用 nrm 切换到淘宝源 https://registry.npmmirror.com/
|
|
||||||
#pnpm
|
|
||||||
pnpm install
|
|
||||||
|
|
||||||
#yarn
|
|
||||||
yarn install
|
|
||||||
|
|
||||||
#npm
|
|
||||||
npm install
|
|
||||||
```
|
|
||||||
|
|
||||||
## 启动
|
|
||||||
|
|
||||||
```shell
|
|
||||||
#pnpm
|
|
||||||
pnpm dev
|
|
||||||
|
|
||||||
# npm
|
|
||||||
npm run dev
|
|
||||||
|
|
||||||
#yarn
|
|
||||||
yarn dev
|
|
||||||
|
|
||||||
#Makefile
|
|
||||||
make dev
|
|
||||||
```
|
|
||||||
|
|
||||||
## 编译
|
|
||||||
|
|
||||||
```shell
|
|
||||||
#pnpm
|
|
||||||
pnpm run build
|
|
||||||
|
|
||||||
# npm
|
|
||||||
npm run build
|
|
||||||
|
|
||||||
#yarn
|
|
||||||
yarn run build
|
|
||||||
|
|
||||||
#Makefile
|
|
||||||
make dist
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
## 代码提交
|
## 代码提交
|
||||||
|
|
||||||
@ -142,10 +224,14 @@ make dist
|
|||||||
- style: 不影响程序逻辑的代码修改
|
- style: 不影响程序逻辑的代码修改
|
||||||
- chore: 不属于以上类型的其他类型(日常事务)
|
- chore: 不属于以上类型的其他类型(日常事务)
|
||||||
|
|
||||||
## 交流
|
## 交流群
|
||||||
|
|
||||||
QQ 群:1030129384
|
QQ 群:881415392
|
||||||
|
|
||||||

|
<img width="260px" src="readme/go-view-qq.jpg" alt="QQ群" style="border-radius: 20px" />
|
||||||
|
|
||||||
|
## Pro 部分功能展示
|
||||||
|
|
||||||
|
体验地址: <a href="https://ai.goviewlink.com/" target="_blank">https://ai.goviewlink.com/</a>
|
||||||
|
|
||||||

|

|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "go-view",
|
"name": "go-view",
|
||||||
"version": "1.1.11",
|
"version": "1.2.9",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=16.14 <18.0.0"
|
"node": ">=12.0"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite --host",
|
"dev": "vite --host",
|
||||||
|
10
preview.yml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# preview.yml
|
||||||
|
autoOpen: true # 打开工作空间时是否自动开启所有应用的预览
|
||||||
|
apps:
|
||||||
|
- port: 3000 # 应用的端口
|
||||||
|
run: npm i --registry=https://registry.npmmirror.com && npm run dev # 应用的启动命令
|
||||||
|
command: # 使用此命令启动服务,且不执行run
|
||||||
|
root: ./ # 应用的启动目录
|
||||||
|
name: GoView # 应用名称
|
||||||
|
description: 开源、精美、便捷的「数据可视化」低代码开发平台 # 应用描述
|
||||||
|
autoOpen: true # 打开工作空间时是否自动开启预览(优先级高于根级 autoOpen)
|
BIN
readme/GoViewPro.png
Normal file
After Width: | Height: | Size: 239 KiB |
BIN
readme/go-view-doc.png
Normal file
After Width: | Height: | Size: 159 KiB |
BIN
readme/go-view-echarts-color.png
Normal file
After Width: | Height: | Size: 292 KiB |
BIN
readme/go-view-event.png
Normal file
After Width: | Height: | Size: 466 KiB |
BIN
readme/go-view-indexpage.png
Normal file
After Width: | Height: | Size: 167 KiB |
BIN
readme/go-view-qq.jpg
Normal file
After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 11 KiB |
BIN
readme/go-view-theme.png
Normal file
After Width: | Height: | Size: 404 KiB |
Before Width: | Height: | Size: 184 KiB After Width: | Height: | Size: 94 KiB |
BIN
readme/sponsors/ccflow-banner.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
readme/sponsors/dandian-banner.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
readme/sponsors/fb-banner.gif
Normal file
After Width: | Height: | Size: 26 KiB |
BIN
readme/sponsors/mdy-banner.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
readme/sponsors/qyy-banner.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
readme/sponsors/shaguo-banner.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
readme/sponsors/zyplayer-banner.png
Normal file
After Width: | Height: | Size: 14 KiB |
@ -35,7 +35,7 @@
|
|||||||
|
|
||||||
<!-- 弹窗 -->
|
<!-- 弹窗 -->
|
||||||
<n-modal class="go-chart-data-monaco-editor" v-model:show="showModal" :mask-closable="false" :closeOnEsc="false">
|
<n-modal class="go-chart-data-monaco-editor" v-model:show="showModal" :mask-closable="false" :closeOnEsc="false">
|
||||||
<n-card :bordered="false" role="dialog" size="small" aria-modal="true" style="width: 1000px; height: 600px">
|
<n-card :bordered="false" role="dialog" size="small" aria-modal="true" style="width: 1200px; height: 700px">
|
||||||
<template #header>
|
<template #header>
|
||||||
<n-space>
|
<n-space>
|
||||||
<n-text>过滤器函数编辑器</n-text>
|
<n-text>过滤器函数编辑器</n-text>
|
||||||
@ -49,12 +49,12 @@
|
|||||||
<n-tag type="info">
|
<n-tag type="info">
|
||||||
<span class="func-keyword">function</span> filter(data, res) {
|
<span class="func-keyword">function</span> filter(data, res) {
|
||||||
</n-tag>
|
</n-tag>
|
||||||
<monaco-editor v-model:modelValue="filter" width="460px" height="380px" language="javascript" />
|
<monaco-editor v-model:modelValue="filter" width="660px" height="500px" language="javascript" />
|
||||||
<n-tag type="info">}</n-tag>
|
<n-tag type="info">}</n-tag>
|
||||||
</n-space>
|
</n-space>
|
||||||
</div>
|
</div>
|
||||||
<n-divider vertical style="height: 480px" />
|
<n-divider vertical style="height: 580px" />
|
||||||
<n-scrollbar style="max-height: 480px">
|
<n-scrollbar style="max-height: 580px">
|
||||||
<n-space :size="15" vertical>
|
<n-space :size="15" vertical>
|
||||||
<div class="editor-data-show">
|
<div class="editor-data-show">
|
||||||
<n-space>
|
<n-space>
|
||||||
|
@ -159,11 +159,11 @@ const dragCanvas = (e: any) => {
|
|||||||
const canvasBox = () => {
|
const canvasBox = () => {
|
||||||
const layoutDom = document.getElementById('go-chart-edit-layout')
|
const layoutDom = document.getElementById('go-chart-edit-layout')
|
||||||
if (layoutDom) {
|
if (layoutDom) {
|
||||||
// 此处减去滚动条的宽度和高度
|
// 应该减去的是标尺的厚度,虽然都是20,但是这样更容易让人理解
|
||||||
const scrollW = 20
|
// 如果后面改了标尺厚度这里也不用改
|
||||||
return {
|
return {
|
||||||
height: layoutDom.clientHeight - scrollW,
|
height: layoutDom.clientHeight - thick,
|
||||||
width: layoutDom.clientWidth - scrollW
|
width: layoutDom.clientWidth - thick
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
@ -188,7 +188,12 @@ const canvasPosCenter = () => {
|
|||||||
$app.value.scrollLeft = containerWidth / 2 - width / 2
|
$app.value.scrollLeft = containerWidth / 2 - width / 2
|
||||||
$app.value.scrollTop = containerHeight / 2 - height / 2
|
$app.value.scrollTop = containerHeight / 2 - height / 2
|
||||||
}
|
}
|
||||||
|
watch(scale, () => {
|
||||||
|
// 解决首次进来标尺位置不对的问题
|
||||||
|
// 解决每次缩放后标尺位置不对的问题
|
||||||
|
// 直接监听缩放比例的变化,每次重绘标尺组件
|
||||||
|
reDraw()
|
||||||
|
}, { immediate: true })
|
||||||
// 处理主题变化
|
// 处理主题变化
|
||||||
watch(
|
watch(
|
||||||
() => designStore.getDarkTheme,
|
() => designStore.getDarkTheme,
|
||||||
|
@ -58,7 +58,7 @@ const previewHandle = () => {
|
|||||||
// 发布
|
// 发布
|
||||||
const sendHandle = () => {
|
const sendHandle = () => {
|
||||||
goDialog({
|
goDialog({
|
||||||
message: '想体验发布功能,请前往 master-fetch 分支查看: https://gitee.com/MTrun/go-view/tree/master-fetch',
|
message: '想体验发布功能,请前往查看: https://demo.mtruning.club/#/login。源码需切换到:master-fetch 分支。',
|
||||||
positiveText: '了然',
|
positiveText: '了然',
|
||||||
closeNegativeText: true,
|
closeNegativeText: true,
|
||||||
onPositiveCallback: () => {}
|
onPositiveCallback: () => {}
|
||||||
|