Giter Club home page Giter Club logo

yangxiongj / bigscreen Goto Github PK

View Code? Open in Web Editor NEW

This project forked from myfirebug/bigscreen

0.0 0.0 0.0 2.03 MB

基于React的大屏拖动配置管理系统,该平台是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏。

Home Page: https://myfirebug.github.io/bigscreen/index.html

JavaScript 10.22% TypeScript 83.51% HTML 0.35% SCSS 5.92%

bigscreen's Introduction

基于 React 拖动配置大屏的后台管理系统

bigscreen 是一个高效的拖拽式低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可制作数据大屏,减少心智负担。

项目纯前端-Demo 地址:https://myfirebug.github.io/bigscreen/index.html#/login

用户名:admin, 密码:123456

工作台

RUNOOB 图标

大屏展示

RUNOOB 图标

主要依赖:

名称 版本 名称 版本
react 18.0.0 react-dom 18.0.0
typescript 4.6.3 jsoneditor 9.9.0
redux 4.1.2 react-redux 7.2.8
react-rnd 10.3.7 redux-logger 3.0.6
redux-persist 6.0.0 redux-thunk 2.4.1
react-app-rewire 2.2.1 echarts 5.3.2
echarts-wordcloud 2.0.0 axios 0.26.1
cross-env 7.0.3 customize-cra 1.0.0
antd 4.19.3

开发环境

名称 版本 名称 版本
node 16.17.0 npm 8.15.0

已完成功能

页面 是否完成(功能)
登录
首页
报表管理
大屏配置
- 新增、编辑、删除页面功能(不能编辑、删除当面页面)
- 项目配置功能
- 图层管理功能
- 组件配置功能
- 数据配置功能(组组件里面的组件可以选择是否使用组的接口数据)
- 组件坐标功能
- 组组件有联动功能(配置联动功能时,先配置组组件的数据接口地址和请求参数,另只有组组才有添加表单组件的功能)
- 分组、拆分、复制、删除、上移、下移、左移、右移、上移一层、下移一层、置顶图层、置底图标
大屏预览

已完成的组件

分类 名称 名称 名称 名称 名称 名称
文本 基础文本 时间文本 数字滚动 - - -
图片 图片 - - - - -
表格 基础表格 - - - - -
折线图 基础折线图 基础平滑折线图 基础面积图 基础纵向折线图 - -
柱状图 基础柱状图 带背景色的柱状图 坐标轴刻度与标签对齐 圆角柱状图 纵向柱状图 堆积柱状图
饼图 基础饼图 圆环饼图 南丁格尔图 - - -
雷达图 基础雷达图 圆形雷达图 - - - -
漏斗图 基础漏斗图 - - - - -
散点图 基础散点图 - - - - -
表单 单选 - - - - -
emap 基础地图(线上跨域) - - - - -
词云 基础词云 - - - - -

框架使用技术

  • 框架为create-react-app构架,搭配react-router-domreduxreact-reduxredux-thunkredux-persistredux-loggeraxios,UI 框架为[email protected]

学习文档

依赖安装、启动、打包

## 克隆

## 启动开发环境(开发调试时使用)
### `npm start`

## 构建测试项目
## `npm build:test`

## 构建正式项目
### `npm build:production`

目录结构

bigscreen
├── src
│   ├── assets                       // 静态资源
│   ├── components                   // 公共组件
│   ├── config                       // 配置文件
│   ├── mock                         // 模拟接口
│   ├── pages                        // 页面
│   │   ├── configuration            // 大屏配置页面
│   │   ├── frame                    // 框架页面
│   │   ├── home                     // 首页页面
│   │   ├── login                    // 登录页面
│   │   ├── preview                  // 大屏展示页面
│   │   └── report                   // 大屏列表页面
│   ├── service                      // 接口服务
│   ├── store                        // 状态
│   ├── theme                        // echarts主题
│   ├── types                        // ts基本类型
│   ├── utils                        // 工具
│   └── widget                       // 组件及其配置

文件路径依赖引用简写如下

如:引入 components/loading 组件方法库路径:import Loading from '@src/components/loading'

'@src': path.resolve(__dirname, 'src'),
'@assets': path.resolve(__dirname, 'src/assets'),
'@utils': path.resolve(__dirname, 'src/utils'),
'@pages': path.resolve(__dirname, 'src/pages'),
'@service': path.resolve(__dirname, 'src/service'),
'@types': path.resolve(__dirname, 'src/types'),
'@store': path.resolve(__dirname, 'src/store')

特殊规范

page 里页面文件夹命名规范

这里必须以xxx-xxx方式命令文件夹,每个文件夹里都包含index.js,index.scss即该文件夹的入口文件

比如:system-management

├─system-management
|   ├─dictionary                   // 字典模块
|   |  └index.tsx                  // 字典模块入口文件
|   |  └index.scss                 // 字典模块页面样式

页面及组件样式规范

  • 强制使用BEM方式 BEM 配置的命名空间统一为后台 简写:bg,这里可以在 src/assets/scss/mixin/config.scss 里修改,最好不要修改

菜单管理(路由)

这里请注意无子路由时,subResource:[],有子路由时components麻烦值为空

注意这里的components找的是 page 文件夹下面的文件

path 里是必须是一级一级取的,比如系统菜单/system-management,订单中心->字典管理/system-management/├─dictionary,这主要是为了设置动态面包屑使用

[{
  "components": "home",
  "isMemu": 1,
  "resIcon": "e6fa",
  "resTitle": "首页",
  "resUrl": "/home",
  "status": 1,
  "subResource": []
  },
  {
  "components": "",
  "isMemu": 2,
  "resIcon": "e6fa",
  "resTitle": "系统管理",
  "resUrl": "/system-management",
  "status": 1,
  "subResource": [{
    "components": "system-management/dictionary",
    "isMemu": 1,
    "resIcon": "",
    "resTitle": "字典管理",
    "resUrl": "/system-management/dictionary",
    "status": 1
  }]
}]

面包屑

不能自己设置面包屑上的中文

直接是根据菜单自动生成的

bigscreen's People

Contributors

myfirebug avatar

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.