├── .env ├── .gitignore ├── README.md ├── config-overrides.js ├── package.json ├── public ├── config.js ├── favicon.ico ├── iframe.html ├── index.html ├── robots.txt └── static │ └── font │ ├── FZBeiWeiKaiShu-S19S_8a9c28a.woff │ ├── FZBeiWeiKaiShu-Z15T_d19ba06.woff │ ├── FZBoYaSongS-GB_73c639f.woff │ ├── FZBoYaSongT-GB_f66865d.woff │ ├── FZChaoCuHei-M10S_ac7ca24.woff │ ├── FZCuHeiSongS-B-GB_c9c9631.woff │ ├── FZCuYuan-M03S_4f8023c.woff │ ├── FZCuYuan-M03T_5ef09db.woff │ ├── FZFangSong-Z02S_5536860.woff │ ├── FZHanZhenGuangBiaoS-GB_b3e184d.woff │ ├── FZHei-B01S_d83f0dd.woff │ ├── FZHei-B01T_a57116f.woff │ ├── FZJianZhi-M23S_16251fa.woff │ ├── FZJingLeiS-R-GB_0bccc2a.woff │ ├── FZKai-Z03S_10cd3cc.woff │ ├── FZLanTingHei-DB-GBK_685283f.woff │ ├── FZLanTingHeiS-H-GB_b8a39cd.woff │ ├── FZLanTingHeiS-R-GB_d3b0303.woff │ ├── FZLanTingHeiT-B-GB_bf40be3.woff │ ├── FZLanTingHeiT-DB-GBK_ad5ffd8.woff │ ├── FZLanTingHeiT-EL-GB_273f895.woff │ ├── FZLanTingHeiT-R-GB_0a8eb2d.woff │ ├── FZLanTingKanHei-R-GBK_767962f.woff │ ├── FZMiaoWuS-GB_70ba06f.woff │ ├── FZNewXiuLi-Z11T_552e119.woff │ ├── FZShouJinShu-S10S_62b4ce5.woff │ ├── FZShuSong-Z01S_9270257.woff │ ├── FZTeCuGuangHuiS-R-GB_8b24d1e.woff │ ├── FZTieJinLiShu-S17S_ec1ee6d.woff │ ├── FZYingBiKaiShu-S15S_1daee58.woff │ ├── FZYingBiKaiShu-S15T_43da3a0.woff │ ├── FZYingBiXingShu-S16S_2235873.woff │ ├── FZZJ-LJDFONT_68fc050.woff │ ├── FZZhengHeiS-EB-GB_c4a4f3b.woff │ ├── FZZhengHeiS-R-GB_0189d78.woff │ ├── FZZhunYuan-M02S_dcec285.woff │ ├── FZZhunYuan-M02T_1a44311.woff │ ├── FZZongYi-M05S_1abdabb.woff │ ├── HappyZcool_a5e333f.woff │ ├── NotoSansSC-Black_22de1ba.woff │ ├── NotoSansSC-Bold_f586a36.woff │ ├── NotoSansSC-DemiLight_290d222.woff │ ├── NotoSansSC-Light_aba6b6d.woff │ ├── NotoSansSC-Medium_16ba8f1.woff │ ├── NotoSansSC-Regular_5fc590d.woff │ ├── NotoSansSC-Thin_cc42e5e.woff │ ├── iconfont_8b24bbe.eot │ ├── iconfont_c13423f.woff2 │ ├── iconfont_db8e36d.svg │ ├── iconfont_f88e236.woff │ ├── iconfont_fbd5055.ttf │ └── zcool-gdh_9a4f1b1.woff ├── src ├── App.js ├── __mocks__ │ ├── echarts.js │ └── index.js ├── api │ └── index.js ├── assets │ ├── TB143rolQL0gK0jSZFxXXXWHVXa-160-116.png │ ├── TB19PPllUz1gK0jSZLeXXb9kVXa-332-144.png │ ├── TB1IhfqlUY1gK0jSZFCXXcwqXXa-334-144.png │ ├── TB1cjHmlQP2gK0jSZPxXXacQpXa-332-144.png │ ├── TB1d4nolO_1gK0jSZFqXXcpaXXa-332-144.png │ ├── TB1hHjllFT7gK0jSZFpXXaTkpXa-332-144.png │ ├── TB1qFDllFT7gK0jSZFpXXaTkpXa-332-144.png │ ├── attrtable.png │ ├── banner.jpg │ ├── banner_video.mp4 │ ├── bar-alien.png │ ├── bar-bothway.png │ ├── bar-contrast.png │ ├── bar-crosswise.png │ ├── bar-heap.png │ ├── bar-series.png │ ├── bar.png │ ├── barpolar.png │ ├── bg.jpg │ ├── border-box.png │ ├── bubble.png │ ├── calendar-heatmap.png │ ├── cartesian-heatmap.png │ ├── china-map.png │ ├── earth-night.png │ ├── funnel.png │ ├── gauge.png │ ├── kline.png │ ├── line-bar.png │ ├── line-middle.png │ ├── line.png │ ├── liquid-fill.png │ ├── map-province.png │ ├── pie-nested.png │ ├── pie-play.png │ ├── pie-rose.png │ ├── pie.png │ ├── radar.png │ ├── sankey.png │ ├── scatter.png │ ├── stack-ba.png │ ├── step-line.png │ ├── tableplay.png │ ├── treemap_07eb65e.png │ └── word-cloud.png ├── components │ ├── auto-breadcrumb │ │ └── index.js │ ├── auto-container │ │ ├── index.js │ │ └── style.less │ ├── auto-loading │ │ ├── index.js │ │ └── style.less │ ├── iconfont │ │ └── index.js │ ├── iframe │ │ ├── index.js │ │ └── style.less │ ├── index.js │ ├── monaco-editor │ │ └── index.js │ ├── scrollbar │ │ └── index.js │ ├── sketch-ruler │ │ ├── canvas-ruler.js │ │ ├── index.js │ │ ├── line.js │ │ ├── ruler-context-menu.js │ │ ├── ruler-wrapper.js │ │ ├── styles.js │ │ └── utils.js │ ├── typing │ │ ├── core.js │ │ └── index.js │ ├── vcharts │ │ ├── core.js │ │ └── index.js │ └── watermark │ │ ├── core.js │ │ └── index.js ├── index.js ├── layouts │ ├── config.js │ ├── content.js │ ├── header.js │ ├── index.js │ └── sider.js ├── packages │ ├── border │ │ ├── index.js │ │ └── src │ │ │ ├── border1.js │ │ │ ├── border2.js │ │ │ ├── border3.js │ │ │ ├── border4.js │ │ │ ├── border5.js │ │ │ ├── border6.js │ │ │ ├── border7.js │ │ │ ├── border8.js │ │ │ └── border9.js │ ├── checkbox │ │ ├── group.js │ │ └── index.js │ ├── color-picker │ │ └── index.js │ ├── constants.js │ ├── data-source │ │ └── index.js │ ├── date-picker │ │ ├── index.js │ │ └── range.js │ ├── decoration │ │ ├── index.js │ │ └── src │ │ │ ├── decoration1.js │ │ │ ├── decoration2.js │ │ │ ├── decoration3.js │ │ │ └── decoration4.js │ ├── dialog │ │ ├── index.js │ │ └── schema │ │ │ ├── bar.js │ │ │ ├── default.js │ │ │ ├── index.js │ │ │ ├── line.js │ │ │ ├── map.js │ │ │ ├── other.js │ │ │ └── pie.js │ ├── html │ │ └── index.js │ ├── index.js │ ├── input │ │ └── index.js │ ├── map │ │ └── index.js │ ├── materials.js │ ├── number │ │ └── index.js │ ├── radio │ │ └── index.js │ ├── select │ │ ├── compoents │ │ │ ├── bar.js │ │ │ ├── default.js │ │ │ ├── index.js │ │ │ ├── line.js │ │ │ ├── map.js │ │ │ ├── other.js │ │ │ └── pie.js │ │ ├── dependence-item.js │ │ ├── drill-down-item.js │ │ ├── index.js │ │ └── multi.js │ ├── slider │ │ └── index.js │ ├── switch │ │ └── index.js │ ├── textarea │ │ └── index.js │ ├── upload │ │ ├── crop.js │ │ ├── excel.js │ │ ├── index.js │ │ └── util.js │ ├── vcharts │ │ ├── index.js │ │ ├── options │ │ │ ├── bar.js │ │ │ ├── barpolar.js │ │ │ ├── funnel.js │ │ │ ├── gauge.js │ │ │ ├── heatmap.js │ │ │ ├── line.js │ │ │ ├── liquidfill.js │ │ │ ├── map.js │ │ │ ├── mapcity.js │ │ │ ├── pie.js │ │ │ ├── radar.js │ │ │ ├── sankey.js │ │ │ ├── scatter.js │ │ │ ├── treemap.js │ │ │ └── wordcloud.js │ │ ├── src │ │ │ ├── bar.js │ │ │ ├── barpolar.js │ │ │ ├── funnel.js │ │ │ ├── gauge.js │ │ │ ├── heatmap.js │ │ │ ├── line.js │ │ │ ├── liquidfill.js │ │ │ ├── map.js │ │ │ ├── mapcity.js │ │ │ ├── pie.js │ │ │ ├── radar.js │ │ │ ├── sankey.js │ │ │ ├── scatter.js │ │ │ ├── treemap.js │ │ │ └── wordcloud.js │ │ ├── theme.js │ │ └── util.js │ └── vshape │ │ ├── countdown.js │ │ ├── digital-flop.js │ │ ├── indicator.js │ │ ├── rank-panel.js │ │ └── scroll-panel.js ├── pages │ ├── 404.js │ ├── account │ │ └── index.js │ ├── dashboard │ │ ├── factory.js │ │ ├── hooks.js │ │ ├── iframe.js │ │ ├── index.js │ │ └── sketchRuler.js │ ├── design-report │ │ ├── data │ │ │ ├── bar.js │ │ │ ├── datav.js │ │ │ ├── default.js │ │ │ ├── index.js │ │ │ ├── line.js │ │ │ ├── map.js │ │ │ └── pie.js │ │ ├── index.js │ │ ├── preview.js │ │ ├── schema │ │ │ ├── bar.js │ │ │ ├── datav.js │ │ │ ├── default.js │ │ │ ├── index.js │ │ │ ├── line.js │ │ │ ├── page.js │ │ │ └── pie.js │ │ └── src │ │ │ ├── aside.js │ │ │ ├── header.js │ │ │ ├── page.js │ │ │ ├── setting.js │ │ │ └── wrapper.js │ └── design-screen │ │ ├── bigscreen │ │ └── configs │ │ │ ├── datav.js │ │ │ ├── other.js │ │ │ └── pie.js │ │ ├── data │ │ ├── bar.js │ │ ├── datav.js │ │ ├── default.js │ │ ├── index.js │ │ ├── line.js │ │ ├── map.js │ │ ├── other.js │ │ └── pie.js │ │ ├── index.js │ │ ├── preview.js │ │ ├── schema │ │ ├── bar.js │ │ ├── datav.js │ │ ├── default.js │ │ ├── form.json │ │ ├── index.js │ │ ├── line.js │ │ ├── map.js │ │ ├── other.js │ │ ├── page.js │ │ └── pie.js │ │ └── src │ │ ├── aside.js │ │ ├── header.js │ │ ├── page.js │ │ ├── setting.js │ │ └── wrapper.js ├── polyfills.js ├── renderer │ ├── common │ │ ├── constants.js │ │ ├── context.js │ │ └── hooks.js │ ├── factory │ │ ├── asField.js │ │ ├── atom.less │ │ ├── factory.js │ │ ├── getField.js │ │ ├── index.js │ │ ├── parser.js │ │ ├── resolve.js │ │ └── subFieldGenerator.js │ ├── index.js │ ├── src │ │ ├── core-grid.js │ │ ├── core-resolve.js │ │ ├── core.js │ │ ├── datav.less │ │ ├── generator.js │ │ ├── parser-grid.js │ │ ├── parser.js │ │ └── renderer.less │ └── utils.js ├── router │ ├── history.js │ ├── index.js │ └── router-map.js ├── store │ ├── index.js │ └── modules │ │ ├── app.js │ │ ├── component.js │ │ └── index.js ├── styles │ ├── account.less │ ├── antd-design.less │ ├── format.less │ └── layout.less └── utils │ ├── RAFrame.js │ ├── helper.js │ ├── http.js │ ├── index.js │ └── storage.js └── yarn.lock /.env: -------------------------------------------------------------------------------- 1 | ## 请求地址 base api 本地开发需proxy 2 | REACT_APP_API=https://www.mockjs.com/api 3 | ## 端口号 4 | PORT=9527 5 | ## 版本号 6 | VERSION=2.0.1 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | 6 | # production 7 | /dist 8 | 9 | # misc 10 | .DS_Store 11 | .env.local 12 | .env.development.local 13 | .env.test.local 14 | .env.production.local 15 | 16 | npm-debug.log* 17 | yarn-debug.log* 18 | yarn-error.log* 19 | 20 | # Editor directories and files 21 | .idea* 22 | .vscode 23 | *.suo 24 | *.ntvs* 25 | *.njsproj 26 | *.sln 27 | *.sw* -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # data-visual 2 | 3 | #### 介绍 4 | 5 | 🎉 基于 reactjs 开发的可视化大屏设计器项目 [演示demo](https://wuli-admin.gitee.io/react-wuli-admin/#/dashboard) 6 | 7 | ### 设计目标 8 | 类似阿里系的DataV、华为系的DLV、腾讯系的RayData。data-visual能保证自身足够的简单和易用、利于开发可视化项目基础应用搭建。 9 | -------------------------------------------------------------------------------- /config-overrides.js: -------------------------------------------------------------------------------- 1 | /* 脚手架基础配置项 */ 2 | const path = require("path"); 3 | const paths = require("react-scripts/config/paths"); 4 | const { 5 | override, 6 | disableEsLint, 7 | adjustWorkbox, 8 | addLessLoader, 9 | fixBabelImports, 10 | addWebpackAlias, 11 | overrideDevServer 12 | } = require("customize-cra"); 13 | const { getThemeVariables } = require("antd/dist/theme"); 14 | const CompressionWebpackPlugin = require("compression-webpack-plugin"); 15 | 16 | const resolve = (dir) => path.join(__dirname, dir); 17 | 18 | // 打包自定义配置 19 | const buildCustomize = () => (config) => { 20 | if (config.mode === "development") { 21 | console.log("evn is development, skip build path change..."); 22 | } else if (config.mode === "production") { 23 | console.log("evn is production, change build path..."); 24 | // 关闭sourceMap 25 | config.devtool = false; 26 | // 配置打包后的文件位置修改path目录 27 | paths.appBuild = path.join(path.dirname(paths.appBuild), "dist"); 28 | config.output.path = path.join(path.dirname(config.output.path), "./dist"); 29 | // 添加js打包gzip配置 30 | config.plugins.push( 31 | new CompressionWebpackPlugin({ 32 | test: /\.js$|\.css$/, 33 | threshold: 1024 34 | }) 35 | ); 36 | } 37 | 38 | return config; 39 | }; 40 | 41 | // 跨域配置 42 | const devServerConfig = () => (config) => { 43 | return { 44 | ...config, 45 | proxy: { 46 | "/api": { 47 | target: process.env.REACT_APP_API, 48 | changeOrigin: true, 49 | pathRewrite: { 50 | "^/api": "/" 51 | } 52 | } 53 | } 54 | }; 55 | }; 56 | 57 | module.exports = { 58 | webpack: override( 59 | // do stuff with the webpack config... 60 | disableEsLint(), 61 | // 按需加载 62 | fixBabelImports("import", { 63 | libraryName: "antd", 64 | libraryDirectory: "es", 65 | style: true 66 | }), 67 | // 配置别名 68 | addWebpackAlias({ 69 | "@": resolve("src"), 70 | "~components": resolve("src/components"), 71 | "~packages": resolve("src/packages"), 72 | "~renderer": resolve("src/renderer") 73 | }), 74 | adjustWorkbox((wb) => 75 | Object.assign(wb, { 76 | skipWaiting: true, 77 | exclude: (wb.exclude || []).concat("index.html") 78 | }) 79 | ), 80 | addLessLoader({ 81 | localIdentName: "[local]--[hash:base64:5]", 82 | modifyVars: getThemeVariables({ 83 | dark: true, // 开启暗黑模式 84 | compact: true // 开启紧凑模式 85 | }), 86 | javascriptEnabled: true 87 | }), 88 | buildCustomize() 89 | ), 90 | devServer: overrideDevServer(devServerConfig()) 91 | }; 92 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "datav-pro", 3 | "version": "1.0.0", 4 | "private": true, 5 | "homepage": ".", 6 | "dependencies": { 7 | "@testing-library/jest-dom": "^4.2.4", 8 | "@testing-library/react": "^9.3.2", 9 | "@testing-library/user-event": "^7.1.2", 10 | "antd": "^4.6.2", 11 | "antd-img-crop": "^3.9.0", 12 | "axios": "^0.19.2", 13 | "copy-text-to-clipboard": "^2.2.0", 14 | "crypto-js": "^4.0.0", 15 | "echarts": "^4.8.0", 16 | "echarts-liquidfill": "^2.0.6", 17 | "echarts-wordcloud": "^1.1.3", 18 | "mockjs": "^1.1.0", 19 | "rc-color-picker": "^1.2.6", 20 | "react": "^16.13.1", 21 | "react-custom-scrollbars": "^4.2.1", 22 | "react-dom": "^16.13.1", 23 | "react-grid-layout": "^1.0.0", 24 | "react-redux": "^7.2.0", 25 | "react-rnd": "^10.1.10", 26 | "react-router-dom": "^5.1.2", 27 | "react-scripts": "3.4.1", 28 | "redux": "^4.0.5", 29 | "redux-persist": "^6.0.0", 30 | "redux-thunk": "^2.3.0", 31 | "size-sensor": "^1.0.1", 32 | "xlsx": "^0.16.9" 33 | }, 34 | "scripts": { 35 | "start": "react-app-rewired start", 36 | "build": "react-app-rewired build", 37 | "test": "react-app-rewired test", 38 | "clean": "npm cache clean --force" 39 | }, 40 | "eslintConfig": { 41 | "extends": "react-app" 42 | }, 43 | "browserslist": { 44 | "production": [ 45 | ">0.2%", 46 | "not dead", 47 | "not op_mini all", 48 | "ie 11" 49 | ], 50 | "development": [ 51 | "last 1 chrome version", 52 | "last 1 firefox version", 53 | "last 1 safari version", 54 | "ie 11" 55 | ] 56 | }, 57 | "devDependencies": { 58 | "@monaco-editor/react": "^3.3.1", 59 | "babel-plugin-import": "^1.13.0", 60 | "compression-webpack-plugin": "^4.0.0", 61 | "customize-cra": "^0.9.1", 62 | "less": "^3.11.1", 63 | "less-loader": "5.0.0", 64 | "react-app-polyfill": "^1.0.6", 65 | "react-app-rewired": "^2.1.6", 66 | "styled-components": "^5.1.1" 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /public/config.js: -------------------------------------------------------------------------------- 1 | window.appConfig = { 2 | // 后端接口地址 3 | APP_SERVER_API: "https://www.mock-api.com/api" 4 | }; 5 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/favicon.ico -------------------------------------------------------------------------------- /public/iframe.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | iframe Window 6 | 12 | 13 | 14 |

Hello there, i'm an iframe. 通信见控制台

15 |

16 | 25 | 26 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | DataV Pro 实验室 14 | 15 | 16 | 17 |
18 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /public/static/font/FZBeiWeiKaiShu-S19S_8a9c28a.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZBeiWeiKaiShu-S19S_8a9c28a.woff -------------------------------------------------------------------------------- /public/static/font/FZBeiWeiKaiShu-Z15T_d19ba06.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZBeiWeiKaiShu-Z15T_d19ba06.woff -------------------------------------------------------------------------------- /public/static/font/FZBoYaSongS-GB_73c639f.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZBoYaSongS-GB_73c639f.woff -------------------------------------------------------------------------------- /public/static/font/FZBoYaSongT-GB_f66865d.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZBoYaSongT-GB_f66865d.woff -------------------------------------------------------------------------------- /public/static/font/FZChaoCuHei-M10S_ac7ca24.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZChaoCuHei-M10S_ac7ca24.woff -------------------------------------------------------------------------------- /public/static/font/FZCuHeiSongS-B-GB_c9c9631.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZCuHeiSongS-B-GB_c9c9631.woff -------------------------------------------------------------------------------- /public/static/font/FZCuYuan-M03S_4f8023c.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZCuYuan-M03S_4f8023c.woff -------------------------------------------------------------------------------- /public/static/font/FZCuYuan-M03T_5ef09db.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZCuYuan-M03T_5ef09db.woff -------------------------------------------------------------------------------- /public/static/font/FZFangSong-Z02S_5536860.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZFangSong-Z02S_5536860.woff -------------------------------------------------------------------------------- /public/static/font/FZHanZhenGuangBiaoS-GB_b3e184d.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZHanZhenGuangBiaoS-GB_b3e184d.woff -------------------------------------------------------------------------------- /public/static/font/FZHei-B01S_d83f0dd.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZHei-B01S_d83f0dd.woff -------------------------------------------------------------------------------- /public/static/font/FZHei-B01T_a57116f.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZHei-B01T_a57116f.woff -------------------------------------------------------------------------------- /public/static/font/FZJianZhi-M23S_16251fa.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZJianZhi-M23S_16251fa.woff -------------------------------------------------------------------------------- /public/static/font/FZJingLeiS-R-GB_0bccc2a.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZJingLeiS-R-GB_0bccc2a.woff -------------------------------------------------------------------------------- /public/static/font/FZKai-Z03S_10cd3cc.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZKai-Z03S_10cd3cc.woff -------------------------------------------------------------------------------- /public/static/font/FZLanTingHei-DB-GBK_685283f.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZLanTingHei-DB-GBK_685283f.woff -------------------------------------------------------------------------------- /public/static/font/FZLanTingHeiS-H-GB_b8a39cd.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZLanTingHeiS-H-GB_b8a39cd.woff -------------------------------------------------------------------------------- /public/static/font/FZLanTingHeiS-R-GB_d3b0303.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZLanTingHeiS-R-GB_d3b0303.woff -------------------------------------------------------------------------------- /public/static/font/FZLanTingHeiT-B-GB_bf40be3.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZLanTingHeiT-B-GB_bf40be3.woff -------------------------------------------------------------------------------- /public/static/font/FZLanTingHeiT-DB-GBK_ad5ffd8.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZLanTingHeiT-DB-GBK_ad5ffd8.woff -------------------------------------------------------------------------------- /public/static/font/FZLanTingHeiT-EL-GB_273f895.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZLanTingHeiT-EL-GB_273f895.woff -------------------------------------------------------------------------------- /public/static/font/FZLanTingHeiT-R-GB_0a8eb2d.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZLanTingHeiT-R-GB_0a8eb2d.woff -------------------------------------------------------------------------------- /public/static/font/FZLanTingKanHei-R-GBK_767962f.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZLanTingKanHei-R-GBK_767962f.woff -------------------------------------------------------------------------------- /public/static/font/FZMiaoWuS-GB_70ba06f.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZMiaoWuS-GB_70ba06f.woff -------------------------------------------------------------------------------- /public/static/font/FZNewXiuLi-Z11T_552e119.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZNewXiuLi-Z11T_552e119.woff -------------------------------------------------------------------------------- /public/static/font/FZShouJinShu-S10S_62b4ce5.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZShouJinShu-S10S_62b4ce5.woff -------------------------------------------------------------------------------- /public/static/font/FZShuSong-Z01S_9270257.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZShuSong-Z01S_9270257.woff -------------------------------------------------------------------------------- /public/static/font/FZTeCuGuangHuiS-R-GB_8b24d1e.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZTeCuGuangHuiS-R-GB_8b24d1e.woff -------------------------------------------------------------------------------- /public/static/font/FZTieJinLiShu-S17S_ec1ee6d.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZTieJinLiShu-S17S_ec1ee6d.woff -------------------------------------------------------------------------------- /public/static/font/FZYingBiKaiShu-S15S_1daee58.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZYingBiKaiShu-S15S_1daee58.woff -------------------------------------------------------------------------------- /public/static/font/FZYingBiKaiShu-S15T_43da3a0.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZYingBiKaiShu-S15T_43da3a0.woff -------------------------------------------------------------------------------- /public/static/font/FZYingBiXingShu-S16S_2235873.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZYingBiXingShu-S16S_2235873.woff -------------------------------------------------------------------------------- /public/static/font/FZZJ-LJDFONT_68fc050.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZZJ-LJDFONT_68fc050.woff -------------------------------------------------------------------------------- /public/static/font/FZZhengHeiS-EB-GB_c4a4f3b.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZZhengHeiS-EB-GB_c4a4f3b.woff -------------------------------------------------------------------------------- /public/static/font/FZZhengHeiS-R-GB_0189d78.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZZhengHeiS-R-GB_0189d78.woff -------------------------------------------------------------------------------- /public/static/font/FZZhunYuan-M02S_dcec285.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZZhunYuan-M02S_dcec285.woff -------------------------------------------------------------------------------- /public/static/font/FZZhunYuan-M02T_1a44311.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZZhunYuan-M02T_1a44311.woff -------------------------------------------------------------------------------- /public/static/font/FZZongYi-M05S_1abdabb.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/FZZongYi-M05S_1abdabb.woff -------------------------------------------------------------------------------- /public/static/font/HappyZcool_a5e333f.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/HappyZcool_a5e333f.woff -------------------------------------------------------------------------------- /public/static/font/NotoSansSC-Black_22de1ba.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/NotoSansSC-Black_22de1ba.woff -------------------------------------------------------------------------------- /public/static/font/NotoSansSC-Bold_f586a36.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/NotoSansSC-Bold_f586a36.woff -------------------------------------------------------------------------------- /public/static/font/NotoSansSC-DemiLight_290d222.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/NotoSansSC-DemiLight_290d222.woff -------------------------------------------------------------------------------- /public/static/font/NotoSansSC-Light_aba6b6d.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/NotoSansSC-Light_aba6b6d.woff -------------------------------------------------------------------------------- /public/static/font/NotoSansSC-Medium_16ba8f1.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/NotoSansSC-Medium_16ba8f1.woff -------------------------------------------------------------------------------- /public/static/font/NotoSansSC-Regular_5fc590d.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/NotoSansSC-Regular_5fc590d.woff -------------------------------------------------------------------------------- /public/static/font/NotoSansSC-Thin_cc42e5e.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/NotoSansSC-Thin_cc42e5e.woff -------------------------------------------------------------------------------- /public/static/font/iconfont_8b24bbe.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/iconfont_8b24bbe.eot -------------------------------------------------------------------------------- /public/static/font/iconfont_c13423f.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/iconfont_c13423f.woff2 -------------------------------------------------------------------------------- /public/static/font/iconfont_f88e236.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/iconfont_f88e236.woff -------------------------------------------------------------------------------- /public/static/font/iconfont_fbd5055.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/iconfont_fbd5055.ttf -------------------------------------------------------------------------------- /public/static/font/zcool-gdh_9a4f1b1.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/public/static/font/zcool-gdh_9a4f1b1.woff -------------------------------------------------------------------------------- /src/App.js: -------------------------------------------------------------------------------- 1 | import React, { PureComponent } from "react"; 2 | import { ConfigProvider } from "antd"; 3 | import zhCN from "antd/es/locale/zh_CN"; 4 | import { Provider } from "react-redux"; 5 | import { PersistGate } from "redux-persist/es/integration/react"; 6 | 7 | import store, { persistor } from "./store"; 8 | import Router from "./router"; 9 | 10 | import "./styles/format.less"; 11 | 12 | class App extends PureComponent { 13 | render() { 14 | return ( 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | ); 23 | } 24 | } 25 | 26 | export default App; 27 | -------------------------------------------------------------------------------- /src/api/index.js: -------------------------------------------------------------------------------- 1 | import fetch from "@/utils/http"; 2 | 3 | /** 4 | * @description 账户登录 5 | */ 6 | export function accountIn(param) { 7 | return fetch({ 8 | url: "/user/login", 9 | method: "post", 10 | data: param 11 | }); 12 | } 13 | 14 | export function echartBarAPI() { 15 | return fetch({ 16 | url: "/echart/bar", 17 | method: "get" 18 | }); 19 | } 20 | 21 | export function echartPieAPI() { 22 | return fetch({ 23 | url: "/echart/pie", 24 | method: "get" 25 | }); 26 | } 27 | 28 | export function echartScatterAPI() { 29 | return fetch({ 30 | url: "/echart/scatter", 31 | method: "get" 32 | }); 33 | } 34 | 35 | export function echartRadarAPI() { 36 | return fetch({ 37 | url: "/echart/radar", 38 | method: "get" 39 | }); 40 | } 41 | 42 | export function dataVScreen() { 43 | return fetch({ 44 | url: "/datav/screen", 45 | method: "post" 46 | }); 47 | } 48 | 49 | export function dataVGrid() { 50 | return fetch({ 51 | url: "/datav/grid", 52 | method: "post" 53 | }); 54 | } 55 | 56 | export function dataVApiList() { 57 | return fetch({ 58 | url: "/datav/api", 59 | method: "get" 60 | }); 61 | } 62 | 63 | export function dataVSqlList() { 64 | return fetch({ 65 | url: "/datav/sql", 66 | method: "get" 67 | }); 68 | } 69 | 70 | export function dataVTableList() { 71 | return fetch({ 72 | url: "/component/table", 73 | method: "get" 74 | }); 75 | } 76 | 77 | export function dataVTables() { 78 | return fetch({ 79 | url: "/component/tables", 80 | method: "get" 81 | }); 82 | } 83 | -------------------------------------------------------------------------------- /src/assets/TB143rolQL0gK0jSZFxXXXWHVXa-160-116.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/TB143rolQL0gK0jSZFxXXXWHVXa-160-116.png -------------------------------------------------------------------------------- /src/assets/TB19PPllUz1gK0jSZLeXXb9kVXa-332-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/TB19PPllUz1gK0jSZLeXXb9kVXa-332-144.png -------------------------------------------------------------------------------- /src/assets/TB1IhfqlUY1gK0jSZFCXXcwqXXa-334-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/TB1IhfqlUY1gK0jSZFCXXcwqXXa-334-144.png -------------------------------------------------------------------------------- /src/assets/TB1cjHmlQP2gK0jSZPxXXacQpXa-332-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/TB1cjHmlQP2gK0jSZPxXXacQpXa-332-144.png -------------------------------------------------------------------------------- /src/assets/TB1d4nolO_1gK0jSZFqXXcpaXXa-332-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/TB1d4nolO_1gK0jSZFqXXcpaXXa-332-144.png -------------------------------------------------------------------------------- /src/assets/TB1hHjllFT7gK0jSZFpXXaTkpXa-332-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/TB1hHjllFT7gK0jSZFpXXaTkpXa-332-144.png -------------------------------------------------------------------------------- /src/assets/TB1qFDllFT7gK0jSZFpXXaTkpXa-332-144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/TB1qFDllFT7gK0jSZFpXXaTkpXa-332-144.png -------------------------------------------------------------------------------- /src/assets/attrtable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/attrtable.png -------------------------------------------------------------------------------- /src/assets/banner.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/banner.jpg -------------------------------------------------------------------------------- /src/assets/banner_video.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/banner_video.mp4 -------------------------------------------------------------------------------- /src/assets/bar-alien.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/bar-alien.png -------------------------------------------------------------------------------- /src/assets/bar-bothway.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/bar-bothway.png -------------------------------------------------------------------------------- /src/assets/bar-contrast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/bar-contrast.png -------------------------------------------------------------------------------- /src/assets/bar-crosswise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/bar-crosswise.png -------------------------------------------------------------------------------- /src/assets/bar-heap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/bar-heap.png -------------------------------------------------------------------------------- /src/assets/bar-series.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/bar-series.png -------------------------------------------------------------------------------- /src/assets/bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/bar.png -------------------------------------------------------------------------------- /src/assets/barpolar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/barpolar.png -------------------------------------------------------------------------------- /src/assets/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/bg.jpg -------------------------------------------------------------------------------- /src/assets/border-box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/border-box.png -------------------------------------------------------------------------------- /src/assets/bubble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/bubble.png -------------------------------------------------------------------------------- /src/assets/calendar-heatmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/calendar-heatmap.png -------------------------------------------------------------------------------- /src/assets/cartesian-heatmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/cartesian-heatmap.png -------------------------------------------------------------------------------- /src/assets/china-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/china-map.png -------------------------------------------------------------------------------- /src/assets/earth-night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/earth-night.png -------------------------------------------------------------------------------- /src/assets/funnel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/funnel.png -------------------------------------------------------------------------------- /src/assets/gauge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/gauge.png -------------------------------------------------------------------------------- /src/assets/kline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/kline.png -------------------------------------------------------------------------------- /src/assets/line-bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/line-bar.png -------------------------------------------------------------------------------- /src/assets/line-middle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/line-middle.png -------------------------------------------------------------------------------- /src/assets/line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/line.png -------------------------------------------------------------------------------- /src/assets/liquid-fill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/liquid-fill.png -------------------------------------------------------------------------------- /src/assets/map-province.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/map-province.png -------------------------------------------------------------------------------- /src/assets/pie-nested.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/pie-nested.png -------------------------------------------------------------------------------- /src/assets/pie-play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/pie-play.png -------------------------------------------------------------------------------- /src/assets/pie-rose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/pie-rose.png -------------------------------------------------------------------------------- /src/assets/pie.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/pie.png -------------------------------------------------------------------------------- /src/assets/radar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/radar.png -------------------------------------------------------------------------------- /src/assets/sankey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/sankey.png -------------------------------------------------------------------------------- /src/assets/scatter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/scatter.png -------------------------------------------------------------------------------- /src/assets/stack-ba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/stack-ba.png -------------------------------------------------------------------------------- /src/assets/step-line.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/step-line.png -------------------------------------------------------------------------------- /src/assets/tableplay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/tableplay.png -------------------------------------------------------------------------------- /src/assets/treemap_07eb65e.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/treemap_07eb65e.png -------------------------------------------------------------------------------- /src/assets/word-cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/arraycto/data-visual/d48dee0fe2b6e683a2548a5dc6961097d7b141e8/src/assets/word-cloud.png -------------------------------------------------------------------------------- /src/components/auto-breadcrumb/index.js: -------------------------------------------------------------------------------- 1 | import React, { useState, useEffect } from "react"; 2 | import { withRouter } from "react-router-dom"; 3 | import { connect } from "react-redux"; 4 | 5 | import { Breadcrumb } from "antd"; 6 | import menuList from "@/layouts/config"; 7 | 8 | /** 9 | * 根据当前浏览器地址栏的路由地址,在menuConfig中查找路由跳转的路径 10 | * 如路由地址为/dashboard,则查找到的路径为[{title: "首页",...}] 11 | */ 12 | const getPath = (menuList, pathname) => { 13 | let temppath = []; 14 | try { 15 | function getNodePath(node) { 16 | temppath.push(node); 17 | // 找到符合条件的节点,通过throw终止掉递归 18 | if (node.path === pathname) { 19 | throw new Error("GOT IT!"); 20 | } 21 | if (node.children && node.children.length > 0) { 22 | for (let i = 0; i < node.children.length; i++) { 23 | getNodePath(node.children[i]); 24 | } 25 | // 当前节点的子节点遍历完依旧没找到,则删除路径中的该节点 26 | temppath.pop(); 27 | } else { 28 | // 找到叶子节点时,删除路径当中的该叶子节点 29 | temppath.pop(); 30 | } 31 | } 32 | for (let i = 0; i < menuList.length; i++) { 33 | getNodePath(menuList[i]); 34 | } 35 | } catch (e) { 36 | return temppath; 37 | } 38 | }; 39 | 40 | const autoBreadcrumb = (props) => { 41 | const { location, dispatch } = props; 42 | const { pathname } = location; 43 | const [curPath, setCurPath] = useState(null); 44 | 45 | useEffect(() => { 46 | let path = getPath(menuList, pathname); 47 | const first = path && path[0]; 48 | 49 | if (first && first.title.trim() !== "可视化设计器") { 50 | path = [{ title: "可视化设计器", path: "/dashboard" }].concat(path); 51 | } 52 | setCurPath(path); 53 | }, [pathname]); 54 | 55 | return ( 56 | 57 | {curPath && 58 | curPath.map((item) => 59 | item.title === "可视化设计器" ? ( 60 | { 64 | dispatch({ type: "ROUTER_PATH", data: item.path }); 65 | }} 66 | > 67 | {item.title} 68 | 69 | ) : ( 70 | {item.title} 71 | ) 72 | )} 73 | 74 | ); 75 | }; 76 | 77 | export default connect()(withRouter(autoBreadcrumb)); 78 | -------------------------------------------------------------------------------- /src/components/auto-container/index.js: -------------------------------------------------------------------------------- 1 | import React, { useState, useLayoutEffect, forwardRef } from "react"; 2 | import PropTypes from "prop-types"; 3 | import { useAutoResize } from "~renderer/common/hooks"; 4 | 5 | import "./style.less"; 6 | import { useEffect } from "react"; 7 | 8 | /** 9 | * 根据屏幕尺寸缩放 10 | * @param zoom scaleX(等比例缩放高度铺满)、scaleY(等比例缩放宽度铺满)、cover(全屏铺满), 11 | * @param style 屏幕尺寸配置 12 | * par 13 | */ 14 | const FullScreenContainer = forwardRef(({ children, className, style, zoom = "cover" }, ref) => { 15 | const { domRef } = useAutoResize(ref); 16 | const [scale, setScale] = useState(""); 17 | const { width, height } = style; 18 | const { clientHeight, clientWidth } = document.body; 19 | 20 | useEffect(() => { 21 | if (zoom === "scaleY") { 22 | setScale(`scale(${clientHeight / height})`); 23 | } else if (zoom === "scaleX") { 24 | setScale(`scale(${clientWidth / width})`); 25 | } else { 26 | setScale(`scale(${clientWidth / width}, ${clientHeight / height})`); 27 | } 28 | }); 29 | 30 | useLayoutEffect(() => { 31 | Object.assign(domRef.current.style, { 32 | width: `${width}px`, 33 | height: `${height}px`, 34 | transform: scale 35 | }); 36 | if (zoom === "scaleY") { 37 | const clientLeft = +((clientWidth - (width * clientHeight) / height) / 2).toFixed(3); 38 | domRef.current.style.left = `${clientLeft}px`; 39 | } 40 | }); 41 | 42 | return ( 43 |
44 | {children} 45 |
46 | ); 47 | }); 48 | 49 | FullScreenContainer.propTypes = { 50 | children: PropTypes.node, 51 | style: PropTypes.object 52 | }; 53 | 54 | export default FullScreenContainer; 55 | -------------------------------------------------------------------------------- /src/components/auto-container/style.less: -------------------------------------------------------------------------------- 1 | #gc-fullscreen-container { 2 | position: absolute; 3 | top: 0; 4 | left: 0; 5 | transform-origin: left top; 6 | background-repeat: no-repeat; 7 | overflow: hidden; 8 | ::-webkit-scrollbar, 9 | .preview-wrapper ::-webkit-scrollbar { 10 | width: 0; 11 | height: 0; 12 | color: transparent; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/components/auto-loading/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { Spin } from "antd"; 3 | import "./style.less"; 4 | 5 | const AutoLoading = () => { 6 | return ( 7 |
8 | 9 |
10 | ); 11 | }; 12 | 13 | export default AutoLoading; 14 | -------------------------------------------------------------------------------- /src/components/auto-loading/style.less: -------------------------------------------------------------------------------- 1 | .loading-container { 2 | position: absolute; 3 | top: 50%; 4 | left: 50%; 5 | text-align: center; 6 | margin: -20px 0 0 -20px; 7 | width: 40px; 8 | height: 40px; 9 | } -------------------------------------------------------------------------------- /src/components/iconfont/index.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | import { createFromIconfontCN } from "@ant-design/icons"; 3 | 4 | const Iconfont = (props) => { 5 | const { antd = false, type, ...rest } = props; 6 | const IconFonts = createFromIconfontCN({ 7 | scriptUrl: ["//at.alicdn.com/t/font_908589_jybcb6d47pq.js"] 8 | }); 9 | if (antd) { 10 | const Icons = require("@ant-design/icons")[type]; 11 | return ; 12 | } else { 13 | return ; 14 | } 15 | }; 16 | 17 | export default Iconfont; 18 | -------------------------------------------------------------------------------- /src/components/iframe/index.js: -------------------------------------------------------------------------------- 1 | import React, { useState, useEffect, forwardRef } from "react"; 2 | import { Spin } from "antd"; 3 | import { converLayout } from "~renderer/utils"; 4 | import { onEvent, offEvent } from "@/utils"; 5 | 6 | import "./style.less"; 7 | 8 | const VIframe = forwardRef((props, ref) => { 9 | let { 10 | className = "", 11 | style = { 12 | width: "100%", 13 | height: "100%" 14 | }, 15 | frameBorder = 0, 16 | src = "", 17 | data, 18 | events, 19 | onAction = () => {} 20 | } = props; 21 | const [loading, setLoading] = useState(true); 22 | const [tempStyle, setTempStyle] = useState({}); 23 | 24 | useEffect(() => { 25 | onEvent(window, "message", onMessage); 26 | 27 | postMessage("update", data); 28 | return () => { 29 | setLoading(false); 30 | offEvent(window, "message", onMessage); 31 | }; 32 | }, []); 33 | 34 | const onMessage = (e) => { 35 | if (!e.data || e.data === "" || !events) { 36 | return; 37 | } 38 | 39 | const [prefix, type] = e.data.type.split(":"); 40 | 41 | if (prefix !== "iframe" || !type) { 42 | return; 43 | } 44 | 45 | if (type === "resize" && e.data.data) { 46 | setTempStyle({ 47 | width: converLayout(e.data.data.width), 48 | height: converLayout(e.data.data.height) 49 | }); 50 | } else { 51 | const action = events[type]; 52 | action && onAction(e, action, Object.assign(data, e.data.data)); 53 | } 54 | }; 55 | 56 | const postMessage = (type, data) => { 57 | ref.current.contentWindow?.postMessage( 58 | { 59 | type: `iframe:${type}`, 60 | data 61 | }, 62 | "*" 63 | ); 64 | }; 65 | 66 | const onLoad = () => { 67 | setLoading(false); 68 | src && postMessage("init", data); 69 | }; 70 | 71 | // TODO:组件通知iframe reload 72 | const reload = (query) => { 73 | if (query) { 74 | return receive(query); 75 | } 76 | 77 | if (src) { 78 | // const enCodeUrl = decodeURIComponent(src); enCodeUrl.startsWith("http") ? enCodeUrl : `http://${enCodeUrl}`; 79 | ref.current.src = src; 80 | } 81 | }; 82 | 83 | // 当别的组件把数据发给 iframe 里面的时候执行。 84 | const receive = (values) => { 85 | if (src) { 86 | ref.current.src = src; 87 | postMessage("receive", Object.assign(data, values)); 88 | } 89 | }; 90 | 91 | return ( 92 | 93 |