GithubHelp home page GithubHelp logo

pengxiaotian / datav-vue Goto Github PK

View Code? Open in Web Editor NEW
703.0 24.0 196.0 103.01 MB

A Powerful Data Visualization Tool. Uses TypeScript And Vue3. Scenario-specific templates. User-friendly interfaces. 一款数据可视化应用搭建工具

Home Page: https://datav.pengxiaotian.com

License: MIT License

Shell 0.06% JavaScript 1.48% HTML 0.09% Vue 66.74% SCSS 5.07% TypeScript 25.12% Handlebars 1.44%
vue3 vue echarts echarts5 typescript datav data-visualization visualization big-data pinia

datav-vue's Introduction

DataV Vue


一款数据可视化应用搭建工具

  • 💪 Vue 3.0+
  • ⚡ Vite 3.0+
  • 🍍 Pinia 2.0+
  • 🔥 TypeScript 4.0+
  • 🔥 ECharts 5.0+

关于贡献

在完成第一个可用版本之前只接受 fixbug PR,不接受 feature PR

简介

预览

RAP2 只支持 HTTP, 所以只在开发环境中使用

生产环境使用 Mockjs 代替

示例

登录页 可视化列表
模板列表 编辑器

CheckList

- 页面功能
- [x] 登录页
  * [x] 看板娘
- [x] 首页
  * [x] 可视化管理
    - [x] 模板
  * [ ] 数据管理
  * [ ] 组件管理
  * [ ] 示例&教程
- [x] 编辑器
  * [x] 图层面板
  * [x] 组件面板
  * [x] 配置面板
    - [x] 画布属性面板
    - [x] 组件属性面板
    - [x] 组件数据面板
    - [x] 组件交互面板
  * [x] 画布/右键菜单/快捷键
    - [x] 截屏/标尺/参考线/组件拖拽/缩放布局
    - [x] 置顶/置底/上移一层/下移一层/解锁/锁定/显示/隐藏/重命名/复制/删除
    - [x] 撤销/恢复
    - [x] 框选组件/组合/拆分
  * [x] 其他
    - [x] 滤镜配置
    - [x] 保存/预览/发布

- 基础组件库
- [ ] 柱图
  * [x] 基本柱状图
  * [ ] 弧形柱图
  * [ ] 折线柱图
  * [ ] 水平基本柱状图
- [ ] 折线
  * [x] 基本折线图
  * [ ] 区域图
- [ ] 饼图
  * [ ] 基本饼图
  * [ ] 指标占比图
- [ ] 关系
  * [ ] 树图
- [ ] 地图
  * [x] 基础平面**地图
    - [x] 区域热力层
    - [x] 动态气泡层
    - [x] 飞线层
  * [ ] 基础平面地图
  * [ ] 3D平面地图
  * [ ] 3D地球
- [x] 文本标题
  * [x] 通用标题
  * [x] 数字翻牌器
  * [x] 跑马灯
  * [x] 多行文本
  * [x] 时间器
  * [x] 词云
- [x] 列表
  * [x] 轮播列表
  * [x] 轮播列表柱状图
- [x] 媒体
  * [x] 单张图片
  * [x] 装饰
  * [x] 边框
  * [x] 自定义背景
- [ ] 控件
  * [x] 全屏切换
  * [ ] Tab列表
  * [ ] 进度条
- [x] 其他
  * [x] 日期选择器

安装与使用

# 初始化项目
pnpm run bootstrap

# 跑起来!
pnpm run dev

# 构建发布
pnpm run build

# 本地预览,需要先执行 build
pnpm run serve

新建可视化组件

pnpm run new datav

配置可视化组件

目录结构 (如: main-title):

main-title
├── index.ts             # 组件入口
└── src
    ├── index.vue        # 组件入口
    ├── main-title.ts    # 组件声明类
    ├── config.vue       # 组件属性配置
    └── config.json      # 用于生成 config.vue 的配置文件

使用组件

打开文件 src/data/system-components.ts, 找到或新增对应组件节点:

{
  name: '',
  alias: '',
  used: true, // 启用需改为 true
  // ...
}

使用 DataV-CLI-UI 工具

其中 config.vueconfig.json 文件,可以通过 datav-cli-ui 工具进行配置,更多详情 »

  • 工具预览 prop-config

更多新建选项

  • 通过选项模式
# 创建组件
pnpm run new component

# 创建 Store
pnpm run new store

# 创建 Icon
pnpm run new icons

国际化

目前只有 登录页 进行了国际化设置,有需要可自行添加。

添加多语言

多语言文件位置:@/locales/lang/*.js

使用

  • Options API:
<template>
  ...
    {{ $t('xxx') }}
  ...
</template>
  • Componsition API:
import { useI18n } from 'vue-i18n'

...
setup() {
  const { t } = useI18n({ useScope: 'global' })

  t('xxx')

  return { t }
}
...

Donate

如果你觉得这个项目帮助到了你,你可以帮作者买一杯奶茶或点心表示鼓励 💝

Alipay Wechat
donate-Alipay donate-Wechat

许可

DataV Vue 使用 MIT license 许可证书。

注意

本项目主要用来研究与学习,如果商用请注意:项目里含有一些第三方付费素材。

datav-vue's People

Contributors

ggymm avatar pengxiaotian avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

datav-vue's Issues

增加页面级数据源配置

每一个小组件都需要配置一个动态请求的接口,当页面组件比较多的时候,请求接口超过20个,页面就会直接卡死。

但是很多时候我们可以一个接口返回同一类型的多个数据,然后渲染到多个组件上。

标尺问题

default.mp4

注意看两个箭头指的位置,拖动时会有虚线在0的位置显示

image

撤销重做功能

您好:

关于编辑器的撤销重做功能,我看有这部分的代码,但是标记了弃用,
想问下这个功能有计划优化吗?对于配置人员来说,这个功能太重要了;

image

期待回复,非常感谢

画布缩放自适应的BUG

autoCanvasScale函数的offsetX,offsetY参数应该随着window.onresize每次实时获取,否则后续计算会有BUG

拖拽组件不显示

image
你好,我在测试新建一个模板,我拖拽一个组件,不显示。不知道是不是我操作哪里有没有问题?

太牛了,什么时候能把数据源和数据集的功能加上呢,大佬?

刚刚使用了大佬的更新,地图功能真的很棒。
1、但是发现一个问题:飞线层---耀斑样式----设置“类型“不起作用,需要每次打开、关闭“耀斑样式”按钮才起作用,希望能修复一下。
2、什么时候能把数据源和数据集的功能加上呢?
期待大佬的回复,静候中。。。

建议组件与结构分离

store中的com为带有children 的结构数据,建议整理成单数组形式也就是之前那样
原因如下:考虑到有些组件带有层级结构可考虑在screen中增加zIndexList字段来决定组件层级结构,因为这样数组在删除时候,后端可以更快找到该组件,且若后端是mongodb一个组件保存为一个文档,后期在查询组件的时候,无法保证组件的顺序,整存整取除外
image

组件的获取、删除、新增、复制是用在什么地方呢?

export function getComs(projectId: number) {
return request.get('/coms', { params: { projectId } })
}

export function deleteCom(id: string) {
return request.delete(/coms/${id})
}

export function addCom(data: any) {
return request.post('/coms', data)
}

export function copyCom(id: string) {
return request.post(/coms/${id}/copy)
}

我看代码中有组件的相关请求,主要是怎么运用的,因为操作时不依赖后端数据,大屏保存的时候将最终的数据存在库了就行了吧。

@Module 语法无法识别

大佬请教下 ,我模仿你的写法 ,去安装vuex-module-decorators 这个库,
但是 @module({ dynamic: true, store, name: 'toolbar' })
这一行 提示我报错 此语法需要一个导入的帮助程序,但找不到模块“tslib”。ts(2354) ,这个我是缺少引入什么吗

websocket实时更新

你好,我想加个websocket实时更新的,
image
框住的方法是借鉴右边工具栏配置数据源失焦的方法写的,没生效

过滤器保存功能有问题

老大,过滤器保存功能有问题,具体如下:
1、过滤器名称改过,但是传到后端后名称还是“新建过滤器”
2、projectId一直为0,不是所在的项目id
请老大有空时看一下,谢谢。

image

未来迭代计划

后期迭代计划是继续升级基础功能还是完善各类组件呢,老大

组合、拆分

一直在关注这个项目,卡在组合和拆分这里了。有下一步开发计划吗?希望大神提供下这个功能的开发思路,感谢!

拖拽框的问题

使用右上角锚点进行拖拽时是不是有点问题 选择的参考点不是左下角的点 不知道是不是刻意为之

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.