Compare commits

..

562 Commits

Author SHA1 Message Date
奔跑的面条
a8bcc93aed fix: 修改500展示文案 2022-11-05 21:45:48 +08:00
奔跑的面条
b6903a777a Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch-dev 2022-11-05 21:34:39 +08:00
奔跑的面条
32762aa8a7 fix: 修改预览页面的报错问题 2022-11-05 21:31:42 +08:00
奔跑的面条
c35dd6fad9 fix: 解决锁定时,修改模块隐藏展示,标尺不会自适应的问题 2022-11-05 21:16:34 +08:00
奔跑的面条
8d05953b8b chore: 修改路径地址 2022-11-05 15:45:29 +08:00
奔跑的面条
afed1cb6b3 fix: 处理切换语言,UI框架不会变的问题 2022-11-05 15:23:01 +08:00
奔跑的面条
f6a4e87e05 style: 优化提示文案 2022-11-03 09:27:09 +08:00
奔跑的面条
f7cbc75e22 fix: 修改地址 2022-11-02 21:33:20 +08:00
奔跑的面条
e36265a2f4 style: 修改 iframe默认地址 2022-11-02 20:03:32 +08:00
奔跑的面条
0e1ae71b78 fix: 修改类型错误的问题 2022-11-02 19:30:47 +08:00
奔跑的面条
7fcfb953bd build: 修改版本到2.1.1 2022-11-02 19:07:18 +08:00
奔跑的面条
a76ad93600 Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch-dev 2022-11-02 19:06:49 +08:00
奔跑的面条
3dd94fb408 feat: 新增点击事件案例 2022-11-02 16:35:08 +08:00
奔跑的面条
f9ed391c81 chore: 修改上传地址的接口和图片的展示地址拼接 2022-11-01 21:17:24 +08:00
奔跑的面条
8ab64846d4 fix: 处理更换背景图内容不会更新的问题 2022-10-31 10:40:58 +08:00
奔跑的面条
bb46050bb3 style: 优化代码结构 2022-10-31 09:52:02 +08:00
奔跑的面条
b50620ec2c style: 优化代码结构 2022-10-31 09:30:35 +08:00
奔跑的面条
7bef69af92 style: 修改翻牌器全局引用的目录 2022-10-31 09:29:22 +08:00
奔跑的面条
ae8fcd640b perf: 优化 iframe 组件 2022-10-29 19:10:47 +08:00
奔跑的面条
455f3ff09a perf: 优化iframe 2022-10-29 17:55:14 +08:00
奔跑的面条
e4afaded36 !92 新增Iframe组件
Merge pull request !92 from 自由/dev-wu-20221027
2022-10-29 09:27:15 +00:00
奔跑的面条
a10409f829 perf: 优化 mock 列表的快捷写法 2022-10-29 17:15:14 +08:00
奔跑的面条
112138fdc5 perf: 优化高德地图 2022-10-29 17:14:47 +08:00
wuyuting1
73e5ca59df feat: 增加iframe组件 2022-10-28 11:38:39 +08:00
奔跑的面条
38f92febb7 feat: 优化胶囊图,新增配置 2022-10-28 11:13:52 +08:00
奔跑的面条
cd6f1e0438 perf: 优化版权声明的UI 2022-10-28 09:49:35 +08:00
奔跑的面条
1d73f71aaf fix: 优化在线编辑JSON的代码和交互 2022-10-27 21:10:58 +08:00
奔跑的面条
e4e77cd141 !91 增加胶囊柱图
Merge pull request !91 from daidai/dev
2022-10-27 12:30:58 +00:00
奔跑的面条
e0e7270623 !87 feat:新增高德地图
Merge pull request !87 from jiangcheng/dev
2022-10-27 12:27:22 +00:00
奔跑的面条
885c376e2a !85 feat: 新增JSON编辑页面 以及 保存跨窗口同步视图更新
Merge pull request !85 from 潘潘/dev
2022-10-27 12:27:01 +00:00
奔跑的面条
2845e9829d fix: 修改工作台不去除监听的问题 2022-10-27 19:38:58 +08:00
刘嘉威
36b82de301 style: remove console.log 2022-10-27 11:41:53 +08:00
刘嘉威
a2ac99e7cb feat: 胶囊柱图增加mock数据源 2022-10-27 11:40:53 +08:00
刘嘉威
d037e1ff36 feat: 增加胶囊柱图 2022-10-27 11:01:41 +08:00
潘潘
9d4424356d feat: 定时、失焦、保存同步 2022-10-26 12:10:19 +08:00
奔跑的面条
a82cc840b5 fix: 修改发布API错误调用 2022-10-26 10:51:10 +08:00
奔跑的面条
f087a0766b !89 解决编译混淆的警告和i18n的控制台警告
Merge pull request !89 from unidmr/dev
2022-10-25 04:50:31 +00:00
xushihao
0bb7400755 chore:解决控制台关于vue-i18n的告警 2022-10-25 09:55:18 +08:00
xushihao
6460c475b6 build:用terser混淆时会出现警告,需要配置minify为terser,或者用esbuild 2022-10-25 09:52:12 +08:00
蒋承
f8b645f867 feat: 添加点标记 2022-10-24 10:20:06 +08:00
panjianhua
834b330bc8 style: 修改UI 2022-10-22 21:16:37 +08:00
潘潘
a4b4ce57bd feat: 预览页\JSON编辑页\图表页保存同步更新 2022-10-20 15:38:15 +08:00
蒋承
ff7a0830d0 feat: 高德地图新增属性 2022-10-19 10:21:48 +08:00
蒋承
ff43d0c2d8 feat: 新增高德地图 2022-10-19 09:29:50 +08:00
奔跑的面条
bad4b5d7b3 fix: 去除单独颜色设置 2022-10-18 21:23:18 +08:00
奔跑的面条
adaf30dd3b perf: 优化弹幕图片 2022-10-18 21:00:41 +08:00
奔跑的面条
c0fc84061e !81 feat:新增弹幕文字组件
Merge pull request !81 from jiangcheng/dev
2022-10-18 12:58:35 +00:00
蒋承
b84ad0f598 feat: 弹幕文字 2022-10-18 11:24:57 +08:00
奔跑的面条
aa0569ef4b fix: 修改列表图偏移的问题 2022-10-17 09:42:56 +08:00
奔跑的面条
b88d90cb80 perf: 优化文案描述 2022-10-17 09:26:19 +08:00
奔跑的面条
c055129309 perf: 优化标题 2022-10-16 20:49:48 +08:00
奔跑的面条
30351cecb5 feat: 新增案例说明 2022-10-16 20:46:01 +08:00
奔跑的面条
4f6757fff2 perf: 优化事件编辑页面 2022-10-16 16:27:15 +08:00
奔跑的面条
284fdb8e05 perf: 修改事件文件位置,修改图标 2022-10-16 10:41:12 +08:00
奔跑的面条
738bcae563 fix: 去除 setPosition 2022-10-16 10:29:01 +08:00
奔跑的面条
987a68a6d1 !76 新增组件生命周期事件
Merge pull request !76 from 潘潘/dev
2022-10-16 02:28:09 +00:00
奔跑的面条
2171843c61 build: 修改版本号为2.1.0 2022-10-15 17:28:23 +08:00
奔跑的面条
934bac7201 fix: 修改版本号到2.0.10 2022-10-15 17:22:06 +08:00
奔跑的面条
ed2a46a3ef Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch-dev 2022-10-15 17:20:05 +08:00
奔跑的面条
59cb5d609d perf: 去除grid多余配置,添加散点图、热力图的grid 2022-10-15 16:51:16 +08:00
奔跑的面条
4add9ce4c6 !80 feat: 折线图和柱状图添加网格配置,xy轴标签偏移量
Merge pull request !80 from jiangcheng/dev
2022-10-15 02:09:47 +00:00
蒋承
c75d9f7a59 feat: x,y轴标签偏移量 2022-10-14 17:09:26 +08:00
蒋承
2d94085c54 feat: 网格容器配置 2022-10-14 16:50:06 +08:00
蒋承
2a6e5915f5 feat: 柱状图折线图添加网格配置 2022-10-14 16:46:41 +08:00
潘潘
656532e43d Merge branch 'dev' of gitee.com:dromara/go-view into dev
Signed-off-by: 潘潘 <97274247@qq.com>
2022-10-14 07:01:47 +00:00
奔跑的面条
d835a904c9 fix: 解决导入时顺序不对的问题 2022-10-14 14:33:14 +08:00
奔跑的面条
a5bf0e9f6a perf: 优化导入失败提示 2022-10-14 09:37:31 +08:00
奔跑的面条
7e3efa46ee perf: 优化亮色模式图层提示 2022-10-14 09:37:12 +08:00
奔跑的面条
ce68910e48 fix: 解决 分组复制 id 会重复的问题 2022-10-13 21:10:32 +08:00
奔跑的面条
6dce639a0e perf: 优化按下文案tishi 2022-10-13 20:48:12 +08:00
奔跑的面条
c738103fec perf: 优化键盘按下的提示 2022-10-13 20:45:51 +08:00
奔跑的面条
801f298448 perf: 优化报错信息捕获,去除setPosition自带函数 2022-10-13 20:21:33 +08:00
奔跑的面条
e08a7723b6 perf: 优化格式 2022-10-13 19:52:41 +08:00
奔跑的面条
166b5b98e8 !78 feat: 过滤方法增加api返回顶级对象作为参数,增强过滤器兼容性
Merge pull request !78 from dodu/dev-api-filter
2022-10-13 10:05:39 +00:00
奔跑的面条
07e56631da perf: 优化异常处理 2022-10-12 21:57:30 +08:00
奔跑的面条
1435789a6c !77 feat: 折线图和柱状图配置label选项
Merge pull request !77 from jiangcheng/dev
2022-10-12 13:35:36 +00:00
奔跑的面条
7c5fa7610d fix: 新增三维组件限制 2022-10-12 21:30:08 +08:00
奔跑的面条
084e680e12 perf: 优化三维地球内存泄漏 2022-10-12 21:15:08 +08:00
奔跑的面条
380a6b95b7 feat: 新增三维地球 2022-10-12 21:08:24 +08:00
tnt group
9467feff23 fix: 移除开发标记 2022-10-12 16:50:25 +08:00
tnt group
a6f4267915 feat: 过滤方法增加api返回顶级对象作为参数,增强过滤器兼容性 2022-10-12 16:41:49 +08:00
jiangcheng
cfe9efd4dd Merge branch 'dev' of https://gitee.com/jiang_cheng_1/go-view into dev 2022-10-12 11:31:05 +08:00
jiangcheng
971b03620a fix: 格式问题 2022-10-12 11:30:54 +08:00
潘潘
92339dae28 feat: 组件生命周期事件 2022-10-11 18:31:29 +08:00
奔跑的面条
c84f6d9c33 perf: 优化补丁的判单方式 2022-10-11 16:02:43 +08:00
奔跑的面条
e187c012cc perf: 修改ctrl默认值 2022-10-11 15:15:03 +08:00
奔跑的面条
af1c280f28 perf: 优化 ctrl 监听 2022-10-10 18:47:07 +08:00
奔跑的面条
766a3a8ede fix: 修复导入组件数据会错乱的问题 2022-10-09 16:39:10 +08:00
蒋承
016e48cc69 feat: 折线图和柱状图配置label 2022-10-09 16:04:29 +08:00
蒋承
6dcd39983f feat: 更新 2022-10-09 15:50:46 +08:00
蒋承
b055b6c511 Merge branch 'dev' of https://gitee.com/jiang_cheng_1/go-view into dev 2022-10-09 15:36:00 +08:00
奔跑的面条
293259a97d !72 在框选结束时,勿操作鼠标往选框内移动,选框不消失
Merge pull request !72 from 关宏荣/dev
2022-10-09 07:33:45 +00:00
奔跑的面条
7584c79519 build: 新增小版本1.1.11 2022-10-09 15:25:40 +08:00
奔跑的面条
d9bb0bf61d build: 修改版本1.1.1 2022-10-09 15:24:34 +08:00
奔跑的面条
cbb401840c fix: 修复导入组件数据会错乱的问题 2022-10-09 15:23:51 +08:00
蒋承
1d18c86dc7 feat: 动态数据维度不同,导致整合维度bug 2022-10-09 13:58:29 +08:00
hguan
f8b8624244 fix: 🐛 修复框选选框不消失问题
鼠标抬起的时候,结束节流函数
2022-10-09 10:34:09 +08:00
奔跑的面条
f3ec85050e Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch-dev 2022-10-09 09:29:40 +08:00
奔跑的面条
785a4d97f7 build: 升级naive-ui到2.33.4 2022-10-09 09:27:51 +08:00
奔跑的面条
ba54d934a2 build: 修改正确版本到 2.0.8 2022-10-08 21:27:21 +08:00
奔跑的面条
d6ecad6467 build: 升级版本到 2.0.9 2022-10-08 21:09:47 +08:00
奔跑的面条
74cab1e9af Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch-dev 2022-10-08 21:06:06 +08:00
奔跑的面条
9da073e838 style: 修改错误注释 2022-10-08 21:05:32 +08:00
奔跑的面条
a823851541 feat: 合并1.1.1 2022-10-08 21:04:41 +08:00
奔跑的面条
1764c0de08 perf: 优化混合提示的展示方式 2022-10-08 20:58:48 +08:00
奔跑的面条
79fd809993 style: 优化代码 2022-10-08 20:49:08 +08:00
奔跑的面条
d3a0d36c92 fix: 解决右键解锁无法使用的问题 2022-10-08 20:48:52 +08:00
奔跑的面条
0841e632c2 perf: 优化首页样式 2022-10-08 20:32:36 +08:00
奔跑的面条
d8f8ef032d !68 feat: 组件公共属性滤镜中增添混合模式设置
Merge pull request !68 from dodu/dev-commet
2022-10-08 11:38:12 +00:00
奔跑的面条
b7f84dbb0d !71 地图南海群岛bug
Merge pull request !71 from daidai/dev
2022-10-08 09:46:13 +00:00
刘嘉威
17f1a7ce9d fix: 解决地图编辑不显示南海群岛 预览时仍显示 2022-10-08 14:52:56 +08:00
tnt group
ca69331286 fix: 修复分组未应用混合模式 2022-10-08 12:56:07 +08:00
tnt group
8258ad21d7 fix: 修复画布不使用旋转属性配置 2022-10-08 11:54:54 +08:00
tnt group
2a129d0ee3 fix: 修复因画布未默认设置背景色或背景图片导致预览时的混合状态未生效问题 2022-10-08 11:44:56 +08:00
tnt group
e391520ce3 fix: 替换 BLEND_MODE 2022-10-08 11:43:38 +08:00
奔跑的面条
3e8329c31f perf: 优化超时时间 2022-10-08 09:17:42 +08:00
奔跑的面条
19d7b1be77 fix: 优化Naive编译之后页面不对的bug 2022-10-07 18:56:31 +08:00
tnt group
ee8a05b6e6 feat: 组件公共属性滤镜中增添混合模式设置 2022-10-05 21:56:43 +08:00
奔跑的面条
111f5bdcfb fix: 修改切换轮播表格配置不会变的问题 2022-10-05 17:08:52 +08:00
奔跑的面条
4c1b955bd5 !67 feat: 新增 数字翻牌 和 倒计时(翻牌效果) 组件
Merge pull request !67 from dodu/dev-countdown
2022-10-03 08:40:10 +00:00
tnt group
ad6614e338 fix: 修复倒计时组件 Extraneous non-props attributes 问题 2022-10-02 23:06:23 +08:00
奔跑的面条
57c730a7eb perf: 修改图层类型图标 2022-10-02 20:28:21 +08:00
tnt group
e1ec5d15ee fix: 移除多余注释 2022-10-01 22:50:17 +08:00
tnt group
4496e17d45 fix: 修复 naive-ui 引用版本造成倒计时异常 2022-10-01 22:49:27 +08:00
奔跑的面条
28668f2acb feat: 新增图层展示类型持久化存储 2022-10-01 21:10:06 +08:00
奔跑的面条
87440362ac perf: 修改颜色默认展示,格式化代码 2022-10-01 20:34:24 +08:00
奔跑的面条
f470817c01 fix: 解决前进撤回中锁定/隐藏无法正常实现的问题 2022-10-01 19:59:57 +08:00
奔跑的面条
4d9330983a style: 去除多余代码 2022-10-01 17:27:06 +08:00
奔跑的面条
edecfc7116 perf: 去除屏幕大小处理 2022-10-01 17:26:52 +08:00
tnt group
d4f3b97b3d style: 调整缩略图和默认颜色配置 2022-10-01 10:27:11 +08:00
tnt group
48d17f9244 style: 调整翻牌默认大小 2022-09-30 22:25:08 +08:00
奔跑的面条
a96fa8f4b7 perf: 无数据时候的禁止下载和导入 2022-09-30 16:21:52 +08:00
奔跑的面条
a81c6e1756 perf: 优化部分组件接口返回错误数据,页面会卡死的问题 2022-09-30 16:03:35 +08:00
奔跑的面条
b3255ab28b fix: 修改饼图环形数值不出现的问题 2022-09-30 15:43:58 +08:00
tnt group
75b5103637 style: 优化调整属性分类 2022-09-30 12:18:46 +08:00
tnt group
ddee71fc0d feat: 加入缩略图,完成倒计时功能 2022-09-30 11:39:41 +08:00
tnt group
18ea1a575c feat: 完成数字翻牌组件 2022-09-30 09:22:56 +08:00
tnt group
3e4cc376f9 chore: 基本完成翻牌器 2022-09-30 01:29:48 +08:00
tnt group
f17c22793b fix: 修复中 2022-09-29 19:25:29 +08:00
tnt group
965f734618 perf: 优化翻牌组件 2022-09-29 19:11:54 +08:00
奔跑的面条
fc1258319e !66 fix: 丰富地图配置
Merge pull request !66 from jiangcheng/dev
2022-09-29 09:19:32 +00:00
蒋承
7d17e2b332 feat: 丰富地图配置 2022-09-29 15:23:32 +08:00
tnt group
5a79fc4f2d chore: 调整倒计时组件 2022-09-29 15:21:22 +08:00
tnt group
db8fd7582b fix: 引入 naiveui NCountdown 组件 2022-09-29 15:21:04 +08:00
tnt group
daa6458a26 fix: 调整翻牌器样式控制 2022-09-29 15:20:23 +08:00
奔跑的面条
b6ac93ae63 !64 fix: 修复隐藏组件预览状态下的异常
Merge pull request !64 from dodu/dev-commet
2022-09-29 06:59:34 +00:00
蒋承
87e7c4bee2 feat: 丰富地图配置 2022-09-29 12:37:19 +08:00
tnt group
4adc46dd79 fix: 调整预览状态下控制状态样式 2022-09-29 11:35:35 +08:00
奔跑的面条
73f6d6a622 feat: 新增锁定/隐藏快捷键处理 2022-09-29 10:47:07 +08:00
tnt group
b98c3166f2 feat: 增加倒计时组件(测试中) 2022-09-29 10:34:29 +08:00
tnt group
b7503a841a feat: 增加通用翻牌器组件 2022-09-29 10:32:17 +08:00
奔跑的面条
0eb3123848 style: 优化代码 2022-09-29 10:10:54 +08:00
奔跑的面条
a637cd783c perf: 优化层级展示, 优化失焦隐藏代码 2022-09-29 09:55:11 +08:00
奔跑的面条
8530e9bc5e perf: 优化层级UI展示 2022-09-29 09:12:05 +08:00
tnt group
f18c05519d fix: 修复隐藏组件预览状态下的异常 2022-09-28 22:16:08 +08:00
奔跑的面条
cbeddb2460 feat: 新增锁定和隐藏失焦 2022-09-28 21:39:31 +08:00
奔跑的面条
be84e64f00 perf: 优化层级的 UI 样式,支持点击图标完成功能 2022-09-28 21:31:41 +08:00
奔跑的面条
34210104d4 !63 feat: 增加图层隐藏锁定功能,图层列表模式控制
Merge pull request !63 from dodu/dev-layers
2022-09-28 13:30:35 +00:00
tnt group
035586c9ef feat: 隐藏锁定操作,支持历史记录回退和前进 2022-09-28 18:43:55 +08:00
tnt group
7f52ef9843 feat: 锁定组件不能选中和拖动 2022-09-28 17:51:59 +08:00
tnt group
ca9b33da88 feat: 锁定和隐藏组件不能被框选 2022-09-28 17:38:15 +08:00
tnt group
c7f64ceb00 feat: 增加 锁定组件 hover 和 select 样式控制 2022-09-28 17:37:09 +08:00
tnt group
11d4f86551 fix: 隐藏后,立即取消选中组件 2022-09-28 17:34:11 +08:00
tnt group
00aaf3427a feat: 增加右键菜单功能及处理逻辑 2022-09-28 16:47:12 +08:00
tnt group
3e72a0e440 chore: 完成锁定及隐藏,列表方式功能占位 2022-09-28 11:21:29 +08:00
奔跑的面条
618d1d77cb feat: 合并1.1.1,升级版本到2.0.8 2022-09-27 20:28:47 +08:00
tnt group
0a1023f795 feat: 添加图层模式控制选项 2022-09-27 20:14:00 +08:00
奔跑的面条
71471bac27 perf: 去除不生效的配置代码 2022-09-27 20:08:43 +08:00
奔跑的面条
972c92519c perf: 优化性能,去除组件中多余注册内容 2022-09-27 20:02:35 +08:00
奔跑的面条
17c48608ec style: 去除无用代码,设置默认值 2022-09-27 19:53:55 +08:00
奔跑的面条
617b940d64 !62 fix: 文本组件新增字体加粗选项
Merge pull request !62 from jiangcheng/dev
2022-09-27 03:32:12 +00:00
蒋承
8d36a857eb feat: 新增文本字体加粗 2022-09-27 10:56:26 +08:00
奔跑的面条
6d5dfbced0 perf: 优化用户体验,完成接口配置后调用保存接口 2022-09-27 10:33:30 +08:00
奔跑的面条
59ff14aec4 perf: 打印错误ri'zrizhi 2022-09-27 10:18:20 +08:00
奔跑的面条
3c39d5db9d Merge branch 'dev' of https://gitee.com/MTrun/go-view into dev 2022-09-27 10:03:32 +08:00
奔跑的面条
3980cc584f fix: 处理文字预览不更新的问题 2022-09-27 10:01:43 +08:00
奔跑的面条
2167525312 !61 fix: 修复文本设置链接时,字体样式丢失问题,并增加水平对齐配置
Merge pull request !61 from dodu/dev-commet
2022-09-27 01:46:33 +00:00
tnt group
e724822198 fix: 修复文本设置链接时,字体样式丢失问题,并增加水平对齐配置 2022-09-27 08:56:49 +08:00
奔跑的面条
0d1abd00a1 feat: 新增基础树图 2022-09-26 21:18:01 +08:00
奔跑的面条
62aec195ea !60 饼图新增类型可修改
Merge pull request !60 from jiangcheng/dev
2022-09-26 12:38:22 +00:00
奔跑的面条
9692945716 perf: 优化 lock 2022-09-26 20:32:27 +08:00
奔跑的面条
b8dab8c87d !59 feat: 新增 标题装饰 和 时钟 组件
Merge pull request !59 from dodu/dev-clock
2022-09-26 12:25:09 +00:00
奔跑的面条
a6646be66b perf: 词云优化 2022-09-26 20:00:39 +08:00
奔跑的面条
8cfb54aab1 !57 feat: 添加词云组件
Merge pull request !57 from dodu/dev-commet
2022-09-26 11:59:53 +00:00
奔跑的面条
960f3aa3cf perf: 去除组件默认滤镜和变换,避免模糊问题 2022-09-26 19:40:46 +08:00
蒋承
43f35de27a feat: 饼图新增类型 2022-09-26 17:34:33 +08:00
tnt group
d39ce294b8 perf: 强化chartConfig类型 2022-09-26 17:12:16 +08:00
tnt group
e7349bfae9 perf: 优化时钟,移除无用元素 2022-09-26 17:07:12 +08:00
tnt group
ad1ff249aa perf: 调整装饰3的默认大小 2022-09-26 16:44:19 +08:00
tnt group
3fed2bb5e0 feat: 新增装饰6组件 2022-09-26 16:44:02 +08:00
tnt group
67995ac461 feat: 新增 clock 小组件 2022-09-26 15:00:47 +08:00
蒋承
39d9aa1896 feat: 饼图类型新增可选 2022-09-26 11:17:00 +08:00
tnt group
895fd25627 perf: 移除文件内eslint注释 2022-09-25 22:18:42 +08:00
tnt group
7582cac69a fix: 修复合并时遗漏的冲突 2022-09-25 22:10:42 +08:00
tnt group
790917eaf2 Merge branch 'dev-wordcloud' into dev-commet 2022-09-25 22:06:29 +08:00
奔跑的面条
18d83f161e !54 fix: 添加lint规则运行脚本,修复lint错误
Merge pull request !54 from dodu/dev-lint-commet
2022-09-25 10:47:34 +00:00
奔跑的面条
42e9e5edce perf: 优化新地图组件 2022-09-25 17:48:51 +08:00
奔跑的面条
31450e0eac !56 新增可选省份地图组件
Merge pull request !56 from daidai/dev
2022-09-25 09:40:37 +00:00
daidai
34d799049d perf: 可选省份地图组件异步加载geojson 2022-09-24 18:54:05 +08:00
奔跑的面条
92bf26ced5 !51 1、接口请求参数js动态获取
Merge pull request !51 from 潘潘/dev
2022-09-22 11:47:00 +00:00
奔跑的面条
6214c17903 perf: 优化视频组件 2022-09-22 19:38:35 +08:00
奔跑的面条
f1e801340f !50 feat: 新增视频组件
Merge pull request !50 from dodu/dev-video
2022-09-22 11:30:40 +00:00
奔跑的面条
4105883ab6 feat: 新增文本跳转功能 2022-09-22 19:17:26 +08:00
奔跑的面条
feb39bde44 !52 文本组件添加链接功能
Merge pull request !52 from 自由/wu
2022-09-22 11:16:25 +00:00
刘嘉威
ae4ae074d8 feat: 增加可选省份地图(异步会有问题) 2022-09-22 17:16:54 +08:00
刘嘉威
2ed1b4bf23 feat: 增加可选省份地图 2022-09-22 17:09:26 +08:00
奔跑的面条
c773bd8010 Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch-dev 2022-09-22 14:15:18 +08:00
奔跑的面条
e4ed2392bb build: 修改依赖 2022-09-22 14:13:14 +08:00
tnt group
ae32b9838b Merge branch 'dev-lint' into dev-lint-commet 2022-09-22 10:08:25 +08:00
tnt group
f126fc3d04 fix: 修复默认值冲突,导致旋转属性不生效的问题 2022-09-22 09:27:06 +08:00
tnt group
3ac03973fb fix: 修复自定义属性异常 2022-09-22 09:20:36 +08:00
tnt group
96384d7b39 fix: 增加 mock api,修复预览模式下动态数据更新问题 2022-09-22 09:01:19 +08:00
tnt group
20f720bf27 feat: 初步添加词云组件 2022-09-22 01:01:54 +08:00
奔跑的面条
5746da73dd Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch-dev 2022-09-21 19:56:56 +08:00
奔跑的面条
642de9a78c perf: 去除多余图片,修改展示图 2022-09-21 19:46:02 +08:00
wuyuting1
b8a1fd904b feat: 文字组件添加链接功能 2022-09-21 17:27:50 +08:00
wuyuting1
31c63130d6 feat: text组件增加点击链接弹框 2022-09-20 17:51:41 +08:00
panjianhua
6a7c2bca9a feat: 请求参数动态配置 2022-09-19 23:26:14 +08:00
奔跑的面条
60bbfd9c92 Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch-dev 2022-09-19 20:46:53 +08:00
奔跑的面条
369a8ade42 fix: 解决组件数据配置会互相影响的问题 2022-09-19 20:46:13 +08:00
奔跑的面条
6e19ed2dce fix: 解决修改完配置会调用两次接口的问题 2022-09-19 20:39:30 +08:00
奔跑的面条
12d92f3aa4 Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch-dev 2022-09-19 20:14:40 +08:00
奔跑的面条
ed5dd5e122 fix: 解决图表组件直接切换,请求配置信息未更新的bug 2022-09-19 19:49:49 +08:00
奔跑的面条
854ff4b888 perf: 优化工具栏样式 2022-09-19 19:34:32 +08:00
奔跑的面条
2edb1caf18 perf: 优化滤镜模糊问题,默认不开启 2022-09-19 17:51:12 +08:00
tnt group
9bdf42a057 fix: 去掉示例资源,默认使用本地资源,增加属性 2022-09-19 17:43:15 +08:00
奔跑的面条
ad60b7b44c perf: 优化滤镜模糊问题,默认不开启 2022-09-19 17:32:19 +08:00
tnt group
58033530c1 fix: 修复使用视频组件时保存画板缩略图的异常 2022-09-19 16:12:35 +08:00
tnt group
fa0c570f90 fix: 修复预览模式下组件的混合模式 2022-09-19 12:33:14 +08:00
tnt group
73bb93f166 fix: 完成视频组件,并支持属性实时控制video状态 2022-09-19 12:32:27 +08:00
奔跑的面条
75067221da fix: 修改请求接口 token 名称 2022-09-18 17:45:59 +08:00
奔跑的面条
3358e164a1 build: 升级版本到2.0.7 2022-09-18 17:23:16 +08:00
奔跑的面条
696a363591 feat: 新增映射组件颜色配置 2022-09-18 16:47:50 +08:00
奔跑的面条
94cde3f517 !47 修复在编辑项目之前加载数据异常,自动保存导致项目数据清空问题。
Merge pull request !47 from 秋名山路霸/master-fetch
2022-09-18 07:53:47 +00:00
奔跑的面条
45737c8f7a !46 fix: 组件ChartsItemBox支持双击添加图表到画布
Merge pull request !46 from dodu/dev-temp
2022-09-18 07:38:28 +00:00
tnt group
25077b91ca feat: 新增视频组件(支持混合模式视频背景透明) 2022-09-18 13:07:44 +08:00
秋名山路霸
a2c8827a35 fix: 修复在编辑项目之前加载数据异常,自动保存导致项目数据清空问题。 2022-09-18 11:56:26 +08:00
奔跑的面条
8487a1b159 perf: 优化工具栏图标展示方式 2022-09-17 22:45:36 +08:00
奔跑的面条
4141d00409 perf: 优化工具栏展示方式 2022-09-17 22:40:24 +08:00
奔跑的面条
924a173d6b fix: 解决配置接口点击确定会立即调用两次接口的bug 2022-09-17 21:54:10 +08:00
奔跑的面条
368ae13db6 perf: 优化散点图,新增数据mock 2022-09-17 21:43:20 +08:00
奔跑的面条
5c5c0b02df perf: 补充列表的分类 2022-09-17 16:11:26 +08:00
奔跑的面条
888ad61cf2 !42 feat: 增加多个散点图,散点图单独作为分类从More提出
Merge pull request !42 from dodu/dev-commet
2022-09-17 08:10:28 +00:00
奔跑的面条
cfa7f59b0b feat: 新增热力图mock,解决热力图无法响应式更新的问题 2022-09-17 12:12:22 +08:00
奔跑的面条
3fc6012145 perf: 优化热力图展示,新增全局映射配置 2022-09-17 11:18:57 +08:00
tnt group
463b14736f Merge branch 'dev-commet' into dev-temp 2022-09-16 12:58:41 +08:00
tnt group
d37034cb52 Merge branch 'dev-commet' into dev-lint 2022-09-16 12:55:07 +08:00
tnt group
c9d61128bf fix: 修复 ecStat.transform 编译错误 2022-09-16 12:52:44 +08:00
tnt group
810f4d8e6d fix: 添加lint规则运行脚本,修复lint错误 2022-09-16 12:26:12 +08:00
tnt group
1bd0f516e2 feat: 组件ChartsItemBox支持双击添加图标 2022-09-16 10:30:53 +08:00
tnt group
336ef369cc chore: 调整属性名称 2022-09-16 09:46:49 +08:00
奔跑的面条
efcb25153e !43 feat: 提交热力图
Merge pull request !43 from Furoe/dev
2022-09-16 01:35:25 +00:00
tnt group
f8aafd0e0b fix: 调整散点图的tooltip配置 2022-09-16 08:41:27 +08:00
yangwq7
fdb19fb310 fix: 修复热力图默认X、Y轴显示问题 2022-09-15 20:25:18 +08:00
yangwq7
d497e17a7d feat: 提交热力图 2022-09-15 20:01:07 +08:00
tnt group
287097ceed Merge branch 'dev-echarts-scatter' into dev-commet 2022-09-15 18:52:17 +08:00
tnt group
789f24d89d feat: 完成散点图的属性及配置优化 2022-09-15 18:41:17 +08:00
tnt group
8c370c550e feat: 添加多种的散点图支持 2022-09-15 12:07:01 +08:00
奔跑的面条
d8fa5784bf fix: 修改非 window 环境打包路径报错的问题 2022-09-15 11:48:39 +08:00
tnt group
1baa18888f fix: 完成基本内容 2022-09-15 01:28:57 +08:00
tnt group
9644b22896 feat: 初步创建散点图 2022-09-14 19:09:59 +08:00
奔跑的面条
5312ba5a45 perf: 修改展示图片 2022-09-14 16:22:13 +08:00
奔跑的面条
545e9f6571 fix: 修改双折线渐变图编辑问题 2022-09-14 15:31:56 +08:00
奔跑的面条
172a3163aa build: 升级依赖,锁定TS 版本 2022-09-12 01:20:27 +08:00
奔跑的面条
42093e2a32 build: 升级依赖,锁定TS版本 2022-09-12 01:14:15 +08:00
奔跑的面条
f7d23ff830 build: 升级版本到 1.0.9 2022-09-12 01:05:19 +08:00
奔跑的面条
4d189e954c feat: 升级版本到 2.0.6 2022-09-12 00:49:22 +08:00
奔跑的面条
8a1f3ac2ef fix: 合并1.0.9 2022-09-12 00:31:52 +08:00
奔跑的面条
049d3fb911 style: 优化类命名,格式化代码结构,优化注释 2022-09-12 00:28:13 +08:00
奔跑的面条
18947db22b perf: 优化图标展示,修复 dataset 的问题(我TM就不该相信这个半成品),优化性能监听 2022-09-11 22:53:00 +08:00
奔跑的面条
dbd49a05bd fix: 解决部分图表改成层级丢失响应式的 bug 2022-09-11 01:26:55 +08:00
奔跑的面条
df07169005 fix: 修复雷达图预览无法更新的问题 2022-09-10 18:50:20 +08:00
奔跑的面条
21fe89adf6 fix: 修改水球图类型 2022-09-08 21:23:23 +08:00
奔跑的面条
49956d32cc perf: 优化页面交互操作 2022-09-08 21:04:13 +08:00
奔跑的面条
b75667d92c fix: 优化漏斗图使用,解决预览数据变更页面的问题 2022-09-08 20:47:34 +08:00
奔跑的面条
c9848e7b01 perf: 新增单数据mock接口,优化漏斗图展示 2022-09-08 20:23:01 +08:00
奔跑的面条
e2cda9140b fix: 处理打包TS报错 2022-09-08 17:33:46 +08:00
奔跑的面条
e091eb7b64 fix: 修复生成组件时 toRef 报错的问题 2022-09-08 17:33:31 +08:00
奔跑的面条
aa3a5fbf84 fix: 修改雷达预览不会更新数据的问题 2022-09-08 17:01:43 +08:00
奔跑的面条
f1ed9c848a feat: 新增雷达mock 2022-09-08 17:01:21 +08:00
奔跑的面条
c2bcc51797 fix: 修改打包TS报错 2022-09-08 16:34:55 +08:00
奔跑的面条
2c7192b40c perf: 优化漏斗代码 2022-09-08 16:31:26 +08:00
奔跑的面条
6b81559d4c !41 feat: 完善漏斗图组件
Merge pull request !41 from dodu/dev-commet
2022-09-08 08:18:40 +00:00
奔跑的面条
15e9a0c0f5 perf: 优化雷达图展示 2022-09-08 16:07:16 +08:00
tnt group
8085640ea6 Merge branch 'dev-echarts-funnel' into dev-commet 2022-09-07 19:27:07 +08:00
tnt group
5eb851fc82 feat: 完善漏斗图组件 2022-09-07 18:31:22 +08:00
奔跑的面条
24ede6ac4f !40 feat: 完善雷达组件
Merge pull request !40 from dodu/dev-commet
2022-09-07 09:54:14 +00:00
tnt group
d39a8c293f Merge branch 'dev-echarts' into dev-commet 2022-09-07 12:31:52 +08:00
奔跑的面条
c44dd111db perf: 优化无数据源数据展示 2022-09-07 11:46:14 +08:00
tnt group
5763ff0d57 fix: 完成数据监控,更新图表 2022-09-07 11:22:13 +08:00
奔跑的面条
76f4a73525 perf: 优化通用时间图案 2022-09-07 11:05:43 +08:00
奔跑的面条
bf45cd607d !39 通用时间控件
Merge pull request !39 from jiangcheng/dev
2022-09-07 03:01:06 +00:00
tnt group
9c0f1f793f fix: 完成属性面板功能 2022-09-07 10:44:01 +08:00
奔跑的面条
674131a0ae !38 fix: 中国地图组件支持配置是否显示海南群岛
Merge pull request !38 from dodu/dev
2022-09-07 01:49:13 +00:00
蒋承
43438594d2 feat: 通用时间控件 2022-09-06 16:19:54 +08:00
蒋承
5af0b60644 Merge branch 'dev' of https://gitee.com/jiang_cheng_1/go-view into dev 2022-09-06 16:12:48 +08:00
tnt group
35313f2ce8 chore: 尝试雷达图组件开发 2022-09-06 15:52:41 +08:00
tnt group
d01b8b2b15 chore: 回复与线上dev文件同步 2022-09-06 15:01:44 +08:00
tnt group
8f061e5c3b fix: 修复不显示南海群岛时的小方块 2022-09-06 12:49:25 +08:00
tnt group
0c596c69cf chore: 回复与线上dev文件同步 2022-09-05 17:54:12 +08:00
tnt group
390eec99a2 fix: 中国地图组件支持配置是否显示海南群岛 2022-09-05 17:44:40 +08:00
tnt group
fe77d88936 Merge branch 'dev' of https://gitee.com/dodu/go-view into dev 2022-09-05 15:15:05 +08:00
奔跑的面条
e4bc388faa !35 修复 computed 定义 isFull 的错误使用
Merge pull request !35 from dodu/dev-back
2022-09-05 01:20:19 +00:00
奔跑的面条
255c47a8e1 perf: 处理地图数据更新 2022-09-03 21:57:26 +08:00
奔跑的面条
03f8dee9d4 feat: 新增无热力图覆盖的中国地图组件 2022-09-03 21:44:21 +08:00
tnt group
2b34a01845 fix: 修复 computed 定义 isFull 的错误使用 2022-09-03 16:45:46 +08:00
tnt group
4e435d4f29 fix: eslint-plugin-vue v8.0+ 模式下统一处理 lint 报 defineProps 未定义问题 2022-09-03 16:44:35 +08:00
奔跑的面条
89a6e5db20 !34 地图控件
Merge pull request !34 from jiangcheng/dev-jc
2022-09-03 06:22:23 +00:00
tnt group
f43f744c3e fix: eslint-plugin-vue v8.0+ 模式下统一处理 lint 报 defineProps 未定义问题 2022-09-01 17:46:46 +08:00
tnt group
7b9ca460a6 chore: 添加 lint/lint:fix 命令 2022-09-01 17:43:20 +08:00
tnt group
1c0a923771 fix: 修复几处 eslint 的报错 2022-09-01 17:41:10 +08:00
蒋承
76112345f2 feat: 打包报错 2022-09-01 17:26:39 +08:00
奔跑的面条
7985db16f1 style: 修改提示 2022-09-01 11:23:33 +08:00
蒋承
bec5868068 Merge remote-tracking branch 'origin/dev-jc' into dev 2022-09-01 11:05:24 +08:00
蒋承
ac8d77a53f feat: 地图控件添加点标记 2022-09-01 10:52:09 +08:00
奔跑的面条
826d294690 perf: 优化出现弹窗后会复制图表的交互 2022-08-31 17:15:33 +08:00
蒋承
23075b7bdd feat: 地图控件 2022-08-31 16:37:00 +08:00
奔跑的面条
096d63cbac !30 编辑项目标题,支持回车
Merge pull request !30 from dodu/dev
2022-08-31 06:53:15 +00:00
tnt group
acc9dc7751 fix: 编辑项目标题,支持回车 2022-08-31 14:27:06 +08:00
奔跑的面条
68dbf3e9ef feat: 新增移动撤回 2022-08-30 19:14:52 +08:00
奔跑的面条
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
奔跑的面条
0aece46d91 build: 升级版本到 2.0.5 2022-08-30 15:04:29 +08:00
奔跑的面条
094c7ed392 perf: 完善首页预览功能 2022-08-30 15:03:25 +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
奔跑的面条
c48517a89b Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch 2022-08-30 12:19:57 +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
奔跑的面条
68c68e96b1 fix: 尝试解决背景图片无法截图的问题 2022-08-29 21:35:51 +08:00
奔跑的面条
130e4a3659 update LICENSE.
Signed-off-by: 奔跑的面条 <1262327911@qq.com>
2022-08-29 12:19:15 +00:00
奔跑的面条
36b1f37f3f update LICENSE.
Signed-off-by: 奔跑的面条 <1262327911@qq.com>
2022-08-29 10:13:37 +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
奔跑的面条
51e5c756a7 perf: 优化参考线的展示方式 2022-08-21 14:52:30 +08:00
奔跑的面条
8df951992e Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch 2022-08-21 14:49:32 +08:00
奔跑的面条
558512220e perf: 优化标尺的展示方式 2022-08-21 14:42:31 +08:00
奔跑的面条
1a00993ee8 Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch 2022-08-19 14:46:49 +08:00
奔跑的面条
177fa6bfbe fix: 处理注册之后,位置错误的问题 2022-08-19 14:44:40 +08:00
奔跑的面条
cb7e887c36 fix: 补充代码合并丢失的枚举 2022-08-19 11:43:23 +08:00
奔跑的面条
255b14a597 perf: 优化500错误页重定向 2022-08-19 11:34:38 +08:00
奔跑的面条
3f462c1bee feat: 合并多选功能,解决冲突,升级版本到2.0.4 2022-08-19 10:44:44 +08:00
奔跑的面条
a6d1baec3e fix: 解决动态变更颜色,部分组件不会更新的问题 2022-08-19 10:02:09 +08:00
奔跑的面条
8ddc85738a perf: 优化拖拽的节流大小 2022-08-18 22:45:30 +08:00
奔跑的面条
52c1eabf1e feat: 新增框选功能 2022-08-18 22:41:34 +08:00
奔跑的面条
6cd30283e7 fix: 解决对其线消失的bug 2022-08-18 22:16:23 +08:00
奔跑的面条
2380c6ec60 fix: 修改快捷键说明 2022-08-18 20:40:18 +08:00
奔跑的面条
f02e92a58e feat: 新增页面框选效果 2022-08-18 20:30:02 +08:00
奔跑的面条
a54a007c5a build: 升级版本到1.0.7 2022-08-17 18:02:13 +08:00
奔跑的面条
2ad3677fdc perf: 优化层级中分组的右键功能 2022-08-17 17:56:20 +08:00
奔跑的面条
d09d1b96be style: 修改代码样式 2022-08-17 17:49:04 +08:00
奔跑的面条
e4e1fee8b4 Merge branch 'dev-feat-multi-select' of https://gitee.com/MTrun/go-view into dev 2022-08-17 17:12:38 +08:00
奔跑的面条
e348caaa0c feat: 处理数据导入,ID更新的可控功能 2022-08-17 16:56:58 +08:00
奔跑的面条
1ee76efeb8 fix: 处理分组前进后退的问题 2022-08-17 16:18:00 +08:00
奔跑的面条
716379fc9f fix: 处理无数据删除会报错的bug 2022-08-16 21:06:55 +08:00
奔跑的面条
01c2a20a0f feat: 新增多选的历史记录处理 2022-08-16 20:41:41 +08:00
奔跑的面条
4c353136d5 fix: 处理历史记录无法展示多组件的bug 2022-08-15 20:39:30 +08:00
奔跑的面条
c293c43862 fix: 处理层级右键拖拽的问题 2022-08-15 20:11:04 +08:00
奔跑的面条
45dcd1885d style: 优化枚举代码 2022-08-15 17:37:16 +08:00
奔跑的面条
a4690c21cf feat: 新增多选删除功能 2022-08-15 16:50:52 +08:00
奔跑的面条
0ca908c8d5 feat: 新增多选组件同时移动 2022-08-15 16:19:36 +08:00
奔跑的面条
e40a1f87f9 style: 修改注释写反的问题 2022-08-15 14:42:31 +08:00
奔跑的面条
09ebd67c37 fix: 处理 TS 报错 2022-08-15 11:43:32 +08:00
奔跑的面条
bad7e37f5a fix: 修复右键会出现对其线条的bug 2022-08-14 14:19:21 +08:00
奔跑的面条
99b344bdef feat: 处理层级区域分组右键,多选等 2022-08-14 02:36:48 +08:00
奔跑的面条
3b7f9e5dec fix: 处理右键不统一的问题 2022-08-14 01:04:03 +08:00
奔跑的面条
2928eaa4ae fix: 修改右键类型操作 2022-08-14 00:20:21 +08:00
奔跑的面条
77ef4c05b9 fix: 处理层级右键多选的问题 2022-08-13 18:38:36 +08:00
奔跑的面条
f55a2b94e7 feat: 处理分组与其它单组件/分组之间的成组 2022-08-12 21:41:42 +08:00
奔跑的面条
5fba293245 fix: 处理ts类型错误 2022-08-12 20:46:17 +08:00
奔跑的面条
e380ead651 fix: 处理分组预览和动态引入的问题 2022-08-12 20:39:20 +08:00
奔跑的面条
57798b9000 fix: 处理分组编辑会选择数据上的问题 2022-08-12 17:09:28 +08:00
奔跑的面条
eb774f9d41 docs: 修改 readme 图片展示 2022-08-10 16:05:34 +08:00
奔跑的面条
e2a0478357 fix: 新增分组的动画 2022-08-10 16:01:46 +08:00
奔跑的面条
0bd5587e65 perf: 处理分组属性的展示 2022-08-09 21:08:25 +08:00
奔跑的面条
96d8cb0006 perf: 处理注册时的分组场景 2022-08-09 21:06:09 +08:00
奔跑的面条
b0e4383a43 feat: 新增多选快捷键处理 2022-08-09 20:12:44 +08:00
奔跑的面条
5cadcc8259 feat: 新增多选的右键处理 2022-08-09 19:50:03 +08:00
奔跑的面条
fbc689b235 feat: 新增解除组件还原位置 2022-08-08 00:02:58 +08:00
奔跑的面条
0779aeca6a feat: 新增多选的选中框 2022-08-07 17:24:05 +08:00
奔跑的面条
9aca371e9c perf: 新增异常兜底处理 2022-08-06 18:21:50 +08:00
奔跑的面条
9ea4858770 feat: 处理分组展示,多选右键展示 2022-08-06 18:16:48 +08:00
奔跑的面条
d7b74ed90d feat: 新增成组,解组,图层处理 2022-08-06 17:20:56 +08:00
奔跑的面条
ffb6b2f68c fix: 新增 isGroup 标识 2022-08-06 13:04:25 +08:00
奔跑的面条
4d560ab937 fix: 新增多选的全部列表添加, 结构设计 2022-08-05 21:12:05 +08:00
奔跑的面条
857f811685 fix: 处理右键多选的问题 2022-08-05 10:58:46 +08:00
奔跑的面条
0bce64c867 Merge branch 'dev' into dev-feat-multi-select 2022-08-05 08:42:47 +08:00
奔跑的面条
cacc99683d Merge branch 'dev' into master-fetch 2022-08-05 08:42:22 +08:00
奔跑的面条
0998fc5376 fix: 处理预览背景图展示问题 2022-08-05 08:32:21 +08:00
奔跑的面条
d3a9f7d60f Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch 2022-07-26 16:12:31 +08:00
奔跑的面条
ba52c55158 fix: 修改背景图覆盖不全的问题 2022-07-26 15:35:23 +08:00
奔跑的面条
27d78c6b4d perf: 修改错误单词 2022-07-21 14:38:32 +08:00
奔跑的面条
8d4dd3160d Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch 2022-07-21 11:46:54 +08:00
奔跑的面条
1b68c39d5d fix: 处理打包 ts 类型错误 2022-07-21 11:43:42 +08:00
奔跑的面条
6847f7d966 feat: 合并 1.0.6 版本代码 2022-07-21 11:03:04 +08:00
奔跑的面条
8c01974494 build: 升级版本到 1.0.6 2022-07-21 10:35:16 +08:00
奔跑的面条
c74322e783 fix: 解决编辑器失焦报错的问题 2022-07-21 10:33:41 +08:00
奔跑的面条
b7d8225dbd style: 去除多余icon代码 2022-07-20 21:44:48 +08:00
奔跑的面条
48e9165483 perf: 去除全局设置中的数据配置 2022-07-20 21:44:17 +08:00
奔跑的面条
b37c8114d8 fix: 解决预览请求错误问题 2022-07-20 21:30:32 +08:00
奔跑的面条
997790e653 perf: 修改tag的圆角 2022-07-20 21:10:04 +08:00
奔跑的面条
3b12503e77 fix: 修改数据内容二次过滤的问题 2022-07-20 20:55:45 +08:00
奔跑的面条
f6d605da62 perf: 修改复制提示 2022-07-20 20:42:24 +08:00
奔跑的面条
35fda2b9a9 fix: 解决组件聚焦数据就会报错的问题 2022-07-20 20:34:28 +08:00
奔跑的面条
2d76991d27 perf: 修改输入URL的文案 2022-07-20 20:09:22 +08:00
奔跑的面条
c9b2fc2674 fix: 去除 status校验 2022-07-20 18:36:22 +08:00
奔跑的面条
6c65e419e2 fix: 修复请求间隔问题 2022-07-20 18:14:11 +08:00
奔跑的面条
288bb264e0 perf: 修改编辑文字说明 2022-07-20 12:57:04 +08:00
奔跑的面条
33a741ca0e Merge branch 'dev-feat-request' of https://gitee.com/MTrun/go-view into dev 2022-07-20 12:26:15 +08:00
奔跑的面条
5f80fa8aa4 feat: 完成自定义请求功能 2022-07-20 12:19:24 +08:00
奔跑的面条
506412175e style: 删除多余文件 2022-07-19 19:11:30 +08:00
奔跑的面条
06c3765d9d style: 修改注释 2022-07-19 17:54:43 +08:00
奔跑的面条
66f22551c4 build: 升级axios版本到0.27.2 2022-07-19 17:53:04 +08:00
奔跑的面条
d30f60a972 !26 小组件数字翻牌颜色前缀变量绑定错修复
Merge pull request !26 from daidai/dev
2022-07-17 14:01:16 +00:00
奔跑的面条
bf69ba91d5 style: 新增自定义http函数定义 2022-07-17 21:51:28 +08:00
奔跑的面条
15ff1d2912 perf: 优化请求展示区域 2022-07-16 21:02:32 +08:00
奔跑的面条
740f471ff4 feat: 处理请求展示的位置 2022-07-16 20:57:01 +08:00
奔跑的面条
d1de5f0c4c perf: 全局内容默认不展示 2022-07-16 19:01:53 +08:00
奔跑的面条
f178b0e0ca feat: 新增全局请求数据处理 2022-07-16 19:01:05 +08:00
奔跑的面条
d4bfdd1e91 feat: 新增请求编辑页面 2022-07-15 00:11:42 +08:00
wei
539db3c56b fix: 小组件数字翻牌颜色前缀问题 2022-07-13 15:01:43 +08:00
奔跑的面条
2ac2d79966 !24 docs: update README
Merge pull request !24 from daidai/dev
2022-07-13 06:14:04 +00:00
wei
4db0ba4714 docs: update README 2022-07-13 11:06:42 +08:00
wei
6b0df75357 docs: update README 2022-07-13 11:00:14 +08:00
奔跑的面条
e9c2ca0989 feat: 编写请求配置页 2022-07-11 09:01:19 +08:00
奔跑的面条
35204898fc Merge branch 'dev' into master-fetch 2022-07-08 18:12:33 +08:00
奔跑的面条
bb32edf264 Merge branch 'dev' 2022-07-08 18:11:26 +08:00
奔跑的面条
db00fcf372 Merge branch 'dev' into dev-feat-multi-select 2022-07-08 18:08:58 +08:00
奔跑的面条
801f6e8d18 feat: 新增组件更新单独设置功能 2022-07-08 17:53:52 +08:00
奔跑的面条
88abcf8a4a feat: 新增组件单独请求时间配置 2022-07-08 11:45:39 +08:00
奔跑的面条
410dc4fc58 style: 修改请求键名 data 为 request 2022-07-08 11:43:49 +08:00
奔跑的面条
ddee396cea Merge branch 'dev' into dev-feat-multi-select 2022-07-07 19:56:12 +08:00
奔跑的面条
7fe743d624 fix: 合并编辑功能的修改 2022-07-07 19:54:53 +08:00
奔跑的面条
2cb65c623e Merge branch 'dev' 2022-07-07 19:45:30 +08:00
奔跑的面条
f612b62b0a perf: 优化编辑器内容 2022-07-07 19:42:35 +08:00
奔跑的面条
84fd1b2181 Merge branch 'dev' into dev-feat-multi-select 2022-07-07 13:15:13 +08:00
奔跑的面条
6a285f610c Merge branch 'dev' into master-fetch 2022-07-07 13:14:53 +08:00
奔跑的面条
ce925e0f45 Merge branch 'dev' 2022-07-07 13:14:02 +08:00
奔跑的面条
67da33931a perf: 优化编辑器按钮展示 2022-07-07 13:13:26 +08:00
奔跑的面条
a4c0450f7a fix: 补充合并代码丢失的icon图标 2022-07-06 22:12:24 +08:00
奔跑的面条
a81f016e3f build: 合并dev 1.0.5 版本, 修改fetch分支为2.0.2 2022-07-06 21:58:28 +08:00
奔跑的面条
a58eb4a53c Merge branch 'dev' into dev-feat-multi-select 2022-07-06 21:51:11 +08:00
奔跑的面条
3f3caae4fc Merge branch 'dev' 2022-07-06 21:49:05 +08:00
奔跑的面条
417821b72d style: 还原请求间隔 2022-07-06 21:48:41 +08:00
奔跑的面条
b1ae4c3712 build: 升级版本到1.0.5 2022-07-06 21:42:24 +08:00
奔跑的面条
0705fb8b0f Merge branch 'dev' 2022-07-06 21:41:56 +08:00
奔跑的面条
6a90d1a043 perf: 优化编辑器的页面 2022-07-06 20:48:59 +08:00
奔跑的面条
74e30390cf fix: 解决过滤器的错误处理 2022-07-06 20:14:41 +08:00
奔跑的面条
4ba3d8803a style: 去除环形图多余引入 2022-07-06 17:25:59 +08:00
奔跑的面条
f53f4d57f2 perf: 修改数据展示为动态获取 2022-07-06 17:18:38 +08:00
奔跑的面条
33d78ffcda fix: 解决编辑器不能正常执行worker的问题 2022-07-06 14:40:35 +08:00
奔跑的面条
9e6873e1da fix: 解决编辑器的问题 2022-07-06 14:13:27 +08:00
奔跑的面条
47f6fc87c7 feat: 新增动态接口过滤器功能 2022-07-05 21:44:16 +08:00
奔跑的面条
2ee2783a9c style: 修改单词拼写错误 2022-06-29 09:55:44 +08:00
奔跑的面条
3a066fc9bb feat: 新增组件多选和右键成组按钮 2022-06-28 21:57:29 +08:00
奔跑的面条
ee5fed4cd0 Merge branch 'dev' into master-fetch 2022-06-27 21:42:24 +08:00
奔跑的面条
16b703f317 Merge branch 'dev' 2022-06-27 21:42:06 +08:00
奔跑的面条
3537427846 fix: 修改数字翻牌错误 2022-06-27 21:41:48 +08:00
奔跑的面条
3fb0fe43bb Merge branch 'dev' into master-fetch 2022-06-27 21:38:27 +08:00
奔跑的面条
8693a11a32 Merge branch 'dev' 2022-06-27 21:36:37 +08:00
奔跑的面条
2259545094 feat: 新增 X轴 / Y轴 字体大小、单位编辑 2022-06-27 21:35:27 +08:00
奔跑的面条
f1f5f9cca9 fix: 修改合并冲突错误的代码 2022-06-27 20:42:17 +08:00
奔跑的面条
2ce17c3974 perf: 合并dev分支,解决组件无法更新数据的问题 2022-06-27 20:37:26 +08:00
奔跑的面条
e09d014fa6 Merge branch 'dev' 2022-06-27 20:28:56 +08:00
奔跑的面条
8c74b8e8df fix: 修改NaiveUI环形组件图片 2022-06-27 20:26:54 +08:00
奔跑的面条
c3b6bcec65 fix: 解决组件数据无法更新的问题 2022-06-27 20:26:24 +08:00
奔跑的面条
633bf987ab fix: 修改图片组件不能动态更新的问题 2022-06-26 15:35:40 +08:00
奔跑的面条
bf1b81e554 feat: 新增图片 mock 地址 2022-06-26 15:26:57 +08:00
奔跑的面条
729021f37c docs: update README 2022-06-26 15:11:52 +08:00
奔跑的面条
bde2634ef3 feat: 添加组件的框架属性分类 2022-06-25 20:55:41 +08:00
奔跑的面条
d6da6f759d fix: 解决环形组件不会自动更新的问题 2022-06-25 20:34:50 +08:00
奔跑的面条
32f851e57b perf: 修改请求hook逻辑 2022-06-25 20:29:42 +08:00
奔跑的面条
30e7e7ab7c feat: 添加组件分类标识 2022-06-25 17:44:21 +08:00
奔跑的面条
cfa69baaa3 style: 去除多余代码 2022-06-25 17:30:46 +08:00
奔跑的面条
78626b3c04 perf: 优化获取数据 hooks 函数 2022-06-25 17:03:03 +08:00
奔跑的面条
340492f784 fix: 解决渐变文本不能换行的问题 2022-06-25 15:52:04 +08:00
奔跑的面条
6cecbb6ec2 feat: 新增进度条多个配置项 2022-06-25 15:51:38 +08:00
奔跑的面条
665ebd7b17 feat: 新增mock接口 2022-06-25 15:51:03 +08:00
奔跑的面条
c07d7c7c28 style: 修改错误备注 2022-06-25 11:18:04 +08:00
奔跑的面条
1d7e40950f style: 去除多余代码 2022-06-24 11:44:26 +08:00
奔跑的面条
91bda457e7 docs: 修改文档 2022-06-23 09:53:01 +08:00
奔跑的面条
68aeea70cf feat: 新增保存按钮 2022-06-22 18:50:15 +08:00
奔跑的面条
a0c8bc7fe5 feat: 新增键盘按键记录功能 2022-06-22 14:31:53 +08:00
奔跑的面条
0f73536ce0 feat: 新增多选中的前置处理,选中存储对象修改成数组形式 2022-06-21 17:39:16 +08:00
奔跑的面条
455e387a62 style: 去除多余代码 2022-06-21 11:01:01 +08:00
奔跑的面条
99467f87ff style: 修改错误单词 2022-06-21 10:54:05 +08:00
奔跑的面条
f7d3a0b499 perf: 修改导入合并代码位置,优化结构 2022-06-20 15:35:03 +08:00
奔跑的面条
7a19346700 build: 升级依赖 2022-06-20 15:13:50 +08:00
奔跑的面条
8d2269df78 build: 合并dev分支 2022-06-20 15:11:13 +08:00
奔跑的面条
1c54b81212 perf:优化http请求代码 2022-06-20 14:35:19 +08:00
奔跑的面条
b133cbdfea feat: 新增排名列表字体大小控制功能 2022-06-17 14:13:14 +08:00
奔跑的面条
6d6fa04a4b docs: 更新 READE.ME 图表说明 2022-06-17 14:11:13 +08:00
奔跑的面条
954de6d58b fix: 解决滚动排名列表预览之后数据无法变更的问题 2022-06-17 11:42:57 +08:00
奔跑的面条
a0ecfa7264 feat: 新增滚动排名列表增加设置字体大小配置
Merge pull request !21 from 王志强/master
2022-06-17 01:25:36 +00:00
wangzhiqiang
54f9c065c8 滚动排名列表增加设置字体大小配置 2022-06-16 14:57:34 +08:00
奔跑的面条
b8705c4f31 build: 修改版本号到1.0.4 2022-06-16 10:47:23 +08:00
奔跑的面条
588cc380cd fix: 解决 login 背景打包后消失的问题 2022-06-15 17:36:06 +08:00
奔跑的面条
5eca551271 feat: 新增 preview 模式 2022-06-15 17:30:24 +08:00
奔跑的面条
5522837b00 feat: 新增 commitlint,修改部分规则 2022-06-15 17:09:40 +08:00
奔跑的面条
29fd85254b docs: 修改说明文档 2022-06-15 16:15:49 +08:00
奔跑的面条
61af1674b9 fix: 修改npm,yarn打包问题,升级依赖文件 2022-06-15 16:01:31 +08:00
奔跑的面条
d8ccff8de5 fix: 解决 npm ,yarn 安装依赖报错的问题 2022-06-15 15:45:55 +08:00
奔跑的面条
e29c427f8d chore: 优化渐变文本展示图 2022-06-15 09:46:53 +08:00
Ryker
b8d0d1a2ff feat: 新增信息-文字-新增【渐变文字】组件
feat: 新增信息-文字-新增【渐变文字】组件
2022-06-15 01:43:07 +00:00
奔跑的面条
ffa127593a fix: 修改滚动表格组件TS报错问题 2022-06-14 12:14:44 +08:00
奔跑的面条
f9c17c732a Merge pull request !19 from 王志强/master 2022-06-14 03:27:49 +00:00
wangzhiqiang
427c5589b2 修改小组件边框-04下边框缺失bug 2022-06-14 11:02:58 +08:00
王志强
b618f9e865 新增滚动列表
新增滚动列表
2022-06-14 02:46:52 +00:00
wangzhiqiang
2182c7d34a Merge branch 'master' of https://gitee.com/assxy/go-view 2022-06-14 09:13:28 +08:00
wangzhiqiang
9482e9aba3 Merge branch 'master' of https://gitee.com/MTrun/go-view
# Conflicts:
#	src/packages/components/Decorates/Mores/Number/index.vue
2022-06-14 09:12:46 +08:00
奔跑的面条
6d5651fd1d !17 fit: 数字翻牌-动态数据
Merge pull request !17 from Ryker/number
2022-06-14 01:02:55 +00:00
13050022537
c195b69003 添加滚动列表 2022-06-13 20:51:15 +08:00
wangzhiqiang
8216cd7604 增加轮播表--未完成 2022-06-13 20:51:12 +08:00
ryker
8d691f2d69 数字翻牌动态数据 2022-06-13 18:04:01 +08:00
奔跑的面条
09d8c58e73 style: 优化水球图代码结构 2022-06-13 17:30:17 +08:00
Ryker
0823bf1d9c feat:新增水球图的形状、文字大小配置
水球图的形状、文字大小配置
2022-06-13 09:09:28 +00:00
王志强
43e8b9939b feat:小组件-数字翻牌-增加精度参数
小组件-数字翻牌-增加精度参数
2022-06-13 05:12:24 +00:00
奔跑的面条
c792482c60 chore: 优化进度条组件内容 2022-06-13 13:05:41 +08:00
奔跑的面条
e48ca421d8 chore: 优化【饼图-环形】展示图 2022-06-13 12:02:43 +08:00
alex
ac23d4c8dc feat: PieCircle
新增饼图环形
2022-06-13 03:59:29 +00:00
wangzhiqiang
68b49ea710 小组件-数字翻牌-增加精度参数 2022-06-13 11:55:13 +08:00
wangzhiqiang
99287497cc Merge branch 'master' of https://gitee.com/MTrun/go-view 2022-06-13 09:07:13 +08:00
奔跑的面条
70f9df7650 fix: 解决缩放比例展示不全的问题 2022-06-12 18:44:53 +08:00
奔跑的面条
8b39ec2773 style: 优化进度条组件 2022-06-12 18:25:44 +08:00
奔跑的面条
eafbcb2cde 新增Naive UI 进度条
Merge pull request !11 from alex/chart
2022-06-12 09:39:08 +00:00
alex li
f8f5bc7688 添加naive ui的进度条 2022-06-11 23:53:01 +08:00
wangzhiqiang
0335b379ea Merge branch 'master' of https://gitee.com/MTrun/go-view 2022-06-11 15:54:23 +08:00
奔跑的面条
3c221345dd chore: 优化拖拽锚点 2022-06-11 15:09:42 +08:00
wangzhiqiang
13bcf3c649 修改gitgnore 2022-06-11 15:05:21 +08:00
奔跑的面条
58fee4a86f fix:修改请求地址为null时引起的异常bug 2022-06-11 14:36:19 +08:00
奔跑的面条
a22e4b814b fix: 修改双折线图X轴无法变化的问题 2022-06-11 14:08:25 +08:00
奔跑的面条
c249c120c1 build: 升级NaiveUI到2.30.3 2022-06-11 14:03:41 +08:00
奔跑的面条
c8d016e1b4 Merge branch 'master' into dev 2022-06-10 16:28:07 +08:00
奔跑的面条
2e6d87ab80 update README.md. 2022-06-10 08:27:34 +00:00
奔跑的面条
5c07885a4e fix: 解决列表页布局问题 2022-06-09 09:07:39 +08:00
奔跑的面条
5f8db36888 fix: 解决列表页布局错误问题 2022-06-09 09:00:39 +08:00
奔跑的面条
ce34a7ed2a fix: 解决导出图片白边的问题 2022-06-09 08:59:36 +08:00
奔跑的面条
b3422eaede chore: 优化搜索结果列表UI 2022-06-05 11:40:32 +08:00
奔跑的面条
8b57ffa124 chore: 修改发布文案提示,修改 dialog 全局封装 2022-06-04 16:17:11 +08:00
奔跑的面条
dcbaf37a69 Merge branch 'dev' 2022-06-03 20:11:07 +08:00
奔跑的面条
741ba1a039 style: 优化类名,页面UI细节 2022-06-03 20:10:52 +08:00
奔跑的面条
80176e5737 docs: 更新md说明 2022-06-03 19:56:03 +08:00
奔跑的面条
04ed5d354d Merge branch 'dev' 2022-06-01 23:08:54 +08:00
奔跑的面条
fa678e1089 fix: 修改列表页标题过长的展示问题 2022-06-01 23:08:36 +08:00
奔跑的面条
8575d27504 Merge branch 'dev' 2022-06-01 22:28:10 +08:00
奔跑的面条
fa6ef30cd8 build: 修改版本为1.0.3 2022-06-01 22:27:59 +08:00
奔跑的面条
14402e6674 Merge branch 'dev' 2022-06-01 22:27:14 +08:00
奔跑的面条
0915e162fd fix: 解决导入组件后控制组件不会出现的bug 2022-06-01 22:26:52 +08:00
奔跑的面条
fffe49cd0f update README.md. 2022-05-31 09:01:51 +00:00
奔跑的面条
94fc6138a0 docs: 修改MD说明 2022-05-31 11:40:06 +08:00
奔跑的面条
4f248e57c8 docs: 修改首页说明 2022-05-31 11:36:26 +08:00
奔跑的面条
e5bf08f709 docs: 更新说明文档 2022-05-29 15:45:45 +08:00
504 changed files with 48446 additions and 9757 deletions

4
.env
View File

@@ -2,7 +2,7 @@
VITE_DEV_PORT = '8080'
# development path
VITE_DEV_PATH = 'http://1.117.240.165:8080'
VITE_DEV_PATH = 'https://demo.mtruning.club'
# production path
VITE_PRO_PATH = 'http://1.117.240.165:8080'
VITE_PRO_PATH = 'https://demo.mtruning.club'

View File

@@ -9,16 +9,22 @@ module.exports = {
sourceType: 'module',
ecmaFeatures: {
jsx: true,
tsx: true,
},
tsx: true
}
},
env: {
node: true,
// The Follow config only works with eslint-plugin-vue v8.0.0+
'vue/setup-compiler-macros': true
},
extends: ["plugin:vue/vue3-essential", "eslint:recommended"],
extends: ['plugin:vue/vue3-essential', 'eslint:recommended'],
rules: {
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
},
};
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-unused-vars': 'off',
'vue/no-unused-vars': 'off',
'vue/multi-word-component-names': 'off',
'vue/valid-template-root': 'off',
'vue/no-mutating-props': 'off'
}
}

2
.gitignore vendored
View File

@@ -2,3 +2,5 @@ node_modules
.DS_Store
dist
dist-ssr
*.local
.vscode

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

@@ -1,4 +1,5 @@
## 总览
![logo](readme/logo-t-y.png)
**`master-fetch` 分支是带有后端接口请求的分支**
@@ -13,6 +14,12 @@
接口地址修改:`.env`
### 🤯 后端项目
后端项目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)
```shell
# port
VITE_DEV_PORT = '8080'
@@ -28,7 +35,7 @@ VITE_PRO_PATH = 'http://127.0.0.1:8080'
```shell
// 请求前缀
export const axiosPre = '/goview'
export const axiosPre = '/api/goview'
```
接口封装:`src\api\http.ts`
@@ -115,6 +122,6 @@ export const http = (type?: RequestHttpEnum) => {
QQ 群1030129384
![QQ群](readme/goView-QQ.png)
![QQ群](readme/go-view-qq.png)
![渲染海报](readme/logo-poster.png)

View File

@@ -1,6 +1,8 @@
// 打包路径
export const OUTPUT_DIR = 'dist'
// monaco-editor 路径
export const prefix = `monaco-editor/esm/vs`
// chunk 警告大小
export const chunkSizeWarningLimit = 2000
@@ -12,7 +14,14 @@ export const rollupOptions = {
output: {
chunkFileNames: 'static/js/[name]-[hash].js',
entryFileNames: 'static/js/[name]-[hash].js',
assetFileNames: 'static/[ext]/[name]-[hash].[ext]'
assetFileNames: 'static/[ext]/[name]-[hash].[ext]',
manualChunks: {
jsonWorker: [`${prefix}/language/json/json.worker`],
cssWorker: [`${prefix}/language/css/css.worker`],
htmlWorker: [`${prefix}/language/html/html.worker`],
tsWorker: [`${prefix}/language/typescript/ts.worker`],
editorWorker: [`${prefix}/editor/editor.worker`]
}
}
}
@@ -23,4 +32,4 @@ export const terserOptions = {
drop_console: true,
drop_debugger: true
}
}
}

View File

@@ -82,25 +82,4 @@
to {
opacity: 1;
}
}
/* 小屏处理 0~1000*/
.mobile-terminal {
display: none;
}
@media (max-width: 1000px) {
#app {
display: none;
}
.mobile-terminal {
display: flex;
align-items: center;
justify-content: center;
width: 100vw;
height: 100vh;
text-align: center;
font-size: 24px;
font-weight: 200;
background-image: linear-gradient(to top, #fff1eb 0%, #ace0f9 100%);
}
}

View File

@@ -24,9 +24,6 @@
</div>
</div>
</div>
<div class="mobile-terminal">
<p>请使用 Web 端进行查看</p>
</div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

View File

@@ -1,28 +1,38 @@
{
"name": "go-view",
"version": "2.0.1",
"version": "2.1.1",
"scripts": {
"dev": "vite --host",
"build": "vue-tsc --noEmit && vite build",
"preview": "vite preview",
"new": "plop --plopfile ./plop/plopfile.js",
"postinstall": "husky install"
"postinstall": "husky install",
"lint": "eslint --ext .js,.jsx,.ts,.tsx,.vue src",
"lint:fix": "eslint --ext .js,.jsx,.ts,.tsx,.vue src --fix"
},
"dependencies": {
"@amap/amap-jsapi-loader": "^1.0.1",
"@amap/amap-jsapi-types": "^0.0.8",
"@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.23.0",
"axios": "^0.27.2",
"color": "^4.2.3",
"crypto-js": "^4.1.1",
"echarts-liquidfill": "^3.1.0",
"echarts-stat": "^1.2.0",
"echarts-wordcloud": "^2.0.0",
"gsap": "^3.11.3",
"highlight.js": "^11.5.0",
"html2canvas": "^1.4.1",
"keymaster": "^1.6.2",
"naive-ui": "^2.30.3",
"monaco-editor": "^0.33.0",
"naive-ui": "2.33.4",
"pinia": "^2.0.13",
"screenfull": "^6.0.1",
"three": "^0.145.0",
"vue": "^3.2.31",
"vue-demi": "^0.13.1",
"vue-i18n": "9.1.10",
@@ -35,6 +45,7 @@
"@commitlint/cli": "^17.0.2",
"@commitlint/config-conventional": "^17.0.2",
"@types/node": "^16.11.26",
"@types/three": "^0.144.0",
"@typescript-eslint/eslint-plugin": "^5.18.0",
"@typescript-eslint/parser": "^5.18.0",
"@vicons/carbon": "^0.12.0",
@@ -58,11 +69,12 @@
"prettier": "^2.6.2",
"sass": "^1.49.11",
"sass-loader": "^12.6.0",
"typescript": "^4.6.3",
"vite": "2.9.5",
"typescript": "4.6.3",
"vite": "2.9.9",
"vite-plugin-compression": "^0.5.1",
"vite-plugin-importer": "^0.2.5",
"vite-plugin-mock": "^2.9.6",
"vite-plugin-monaco-editor": "^1.1.0",
"vue-echarts": "^6.0.2",
"vue-tsc": "^0.28.10"
}

1635
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 398 KiB

After

Width:  |  Height:  |  Size: 398 KiB

BIN
readme/go-view-color.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

BIN
readme/go-view-fetch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

BIN
readme/go-view-filter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 KiB

View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -1,9 +1,9 @@
<template>
<n-config-provider
:locale="zhCN"
:theme="darkTheme"
:hljs="hljsTheme"
:date-locale="dateZhCN"
:locale="locale"
:date-locale="dateLocale"
:theme-overrides="overridesTheme"
>
<go-app-provider>
@@ -14,11 +14,10 @@
</template>
<script lang="ts" setup>
import { zhCN, dateZhCN, NConfigProvider } from 'naive-ui'
import { NConfigProvider } from 'naive-ui'
import { GoAppProvider } from '@/components/GoAppProvider'
import { I18n } from '@/components/I18n'
import { useSystemInit, useDarkThemeHook, useThemeOverridesHook, useCode } from '@/hooks'
import { useSystemInit, useDarkThemeHook, useThemeOverridesHook, useCode, useLang } from '@/hooks'
// 暗黑主题
const darkTheme = useDarkThemeHook()
@@ -31,4 +30,8 @@ const hljsTheme = useCode()
// 系统全局数据初始化
useSystemInit()
// 全局语言
const { locale, dateLocale } = useLang()
</script>

View File

@@ -1,5 +1,5 @@
import axios, { AxiosResponse, AxiosRequestConfig } from 'axios'
import { ResultEnum, RequestHttpHeaderEnum } from "@/enums/httpEnum"
import { ResultEnum } from "@/enums/httpEnum"
import { PageEnum, ErrorPageNameMap } from "@/enums/pageEnum"
import { StorageEnum } from '@/enums/storageEnum'
import { axiosPre } from '@/settings/httpSetting'
@@ -23,9 +23,11 @@ axiosInstance.interceptors.request.use(
if (!info) {
routerTurnByName(PageEnum.BASE_LOGIN_NAME)
return config
}
}
const userInfo = info[SystemStoreEnum.USER_INFO]
config.headers = {
[RequestHttpHeaderEnum.TOKEN]: info[SystemStoreEnum.USER_INFO][SystemStoreUserInfoEnum.USER_TOKEN] || ''
...config.headers,
[userInfo[SystemStoreUserInfoEnum.TOKEN_NAME] || 'token']: userInfo[SystemStoreUserInfoEnum.USER_TOKEN] || ''
}
return config
},
@@ -62,7 +64,6 @@ axiosInstance.interceptors.response.use(
return Promise.resolve(res.data)
},
(err: AxiosResponse) => {
httpErrorHandle()
Promise.reject(err)
}
)

View File

@@ -1,5 +1,13 @@
import axiosInstance from './axios'
import { RequestHttpEnum, ContentTypeEnum } from '@/enums/httpEnum'
import {
RequestHttpEnum,
ContentTypeEnum,
RequestBodyEnum,
RequestDataTypeEnum,
RequestContentTypeEnum,
RequestParamsObjType
} from '@/enums/httpEnum'
import type { RequestGlobalConfigType, RequestConfigType } from '@/store/modules/chartEditStore/chartEditStore.d'
export const get = (url: string, params?: object) => {
return axiosInstance({
@@ -20,6 +28,17 @@ export const post = (url: string, data?: object, headersType?: string) => {
})
}
export const patch = (url: string, data?: object, headersType?: string) => {
return axiosInstance({
url: url,
method: RequestHttpEnum.PATCH,
data: data,
headers: {
'Content-Type': headersType || ContentTypeEnum.JSON
}
})
}
export const put = (url: string, data?: object, headersType?: ContentTypeEnum) => {
return axiosInstance({
url: url,
@@ -48,6 +67,9 @@ export const http = (type?: RequestHttpEnum) => {
case RequestHttpEnum.POST:
return post
case RequestHttpEnum.PATCH:
return patch
case RequestHttpEnum.PUT:
return put
@@ -58,3 +80,147 @@ export const http = (type?: RequestHttpEnum) => {
return get
}
}
const prefix = 'javascript:'
// 对输入字符进行转义处理
export const translateStr = (target: string | object) => {
if (typeof target === 'string') {
if (target.startsWith(prefix)) {
const funcStr = target.split(prefix)[1]
let result;
try {
result = new Function(`${funcStr}`)()
} catch (error) {
console.log(error)
window['$message'].error('js内容解析有误')
}
return result
} else {
return target
}
}
for (const key in target) {
if (Object.prototype.hasOwnProperty.call(target, key)) {
const subTarget = (target as any)[key];
(target as any)[key] = translateStr(subTarget)
}
}
return target
}
/**
* * 自定义请求
* @param targetParams 当前组件参数
* @param globalParams 全局参数
*/
export const customizeHttp = (targetParams: RequestConfigType, globalParams: RequestGlobalConfigType) => {
if (!targetParams || !globalParams) {
return
}
// 全局
const {
// 全局请求源地址
requestOriginUrl,
// 全局请求内容
requestParams: globalRequestParams
} = globalParams
// 目标组件(优先级 > 全局组件)
const {
// 请求地址
requestUrl,
// 普通 / sql
requestContentType,
// 获取数据的方式
requestDataType,
// 请求方式 get/post/del/put/patch
requestHttpType,
// 请求体类型 none / form-data / x-www-form-urlencoded / json /xml
requestParamsBodyType,
// SQL 请求对象
requestSQLContent,
// 请求内容 params / cookie / header / body: 同 requestParamsBodyType
requestParams: targetRequestParams
} = targetParams
// 静态排除
if (requestDataType === RequestDataTypeEnum.STATIC) return
if (!requestUrl) {
return
}
// 处理头部
let headers: RequestParamsObjType = {
...globalRequestParams.Header,
...targetRequestParams.Header
}
headers = translateStr(headers)
// data 参数
let data: RequestParamsObjType | FormData | string = {}
// params 参数
let params: RequestParamsObjType = { ...targetRequestParams.Params }
params = translateStr(params)
// form 类型处理
let formData: FormData = new FormData()
formData.set('default', 'defaultData')
// 类型处理
switch (requestParamsBodyType) {
case RequestBodyEnum.NONE:
break
case RequestBodyEnum.JSON:
headers['Content-Type'] = ContentTypeEnum.JSON
data = translateStr(JSON.parse(targetRequestParams.Body['json']))
// json 赋值给 data
break
case RequestBodyEnum.XML:
headers['Content-Type'] = ContentTypeEnum.XML
// xml 字符串赋值给 data
data = translateStr(targetRequestParams.Body['xml'])
break
case RequestBodyEnum.X_WWW_FORM_URLENCODED: {
headers['Content-Type'] = ContentTypeEnum.FORM_URLENCODED
const bodyFormData = targetRequestParams.Body['x-www-form-urlencoded']
for (const i in bodyFormData) formData.set(i, translateStr(bodyFormData[i]))
// FormData 赋值给 data
data = formData
break
}
case RequestBodyEnum.FORM_DATA: {
headers['Content-Type'] = ContentTypeEnum.FORM_DATA
const bodyFormUrlencoded = targetRequestParams.Body['form-data']
for (const i in bodyFormUrlencoded) {
formData.set(i, translateStr(bodyFormUrlencoded[i]))
}
// FormData 赋值给 data
data = formData
break
}
}
// sql 处理
if (requestContentType === RequestContentTypeEnum.SQL) {
headers['Content-Type'] = ContentTypeEnum.JSON
data = requestSQLContent
}
try {
const url = (new Function("return `" + `${requestOriginUrl}${requestUrl}`.trim() + "`"))();
return axiosInstance({
url,
method: requestHttpType,
data,
params,
headers
})
} catch (error) {
console.log(error)
window['$message'].error('URL地址格式有误')
}
}

View File

@@ -0,0 +1,199 @@
{
"xAxis": [
"12a",
"1a",
"2a",
"3a",
"4a",
"5a",
"6a",
"7a",
"8a",
"9a",
"10a",
"11a",
"12p",
"1p",
"2p",
"3p",
"4p",
"5p",
"6p",
"7p",
"8p",
"9p",
"10p",
"11p"
],
"yAxis": ["Saturday", "Friday", "Thursday", "Wednesday", "Tuesday", "Monday", "Sunday"],
"seriesData": [
[0, 0, "@integer(0, 10)"],
[1, 0, "@integer(0, 10)"],
[2, 0, "-"],
[3, 0, "-"],
[4, 0, "-"],
[5, 0, "-"],
[6, 0, "-"],
[7, 0, "-"],
[8, 0, "-"],
[9, 0, "-"],
[10, 0, "-"],
[11, 0, "@integer(0, 10)"],
[12, 0, "@integer(0, 10)"],
[13, 0, "@integer(0, 10)"],
[14, 0, "@integer(0, 10)"],
[15, 0, "@integer(0, 10)"],
[16, 0, "@integer(0, 10)"],
[17, 0, "@integer(0, 10)"],
[18, 0, "@integer(0, 10)"],
[19, 0, "@integer(0, 10)"],
[20, 0, "@integer(0, 10)"],
[21, 0, "@integer(0, 10)"],
[22, 0, "@integer(0, 10)"],
[23, 0, "@integer(0, 10)"],
[0, 1, 7],
[1, 1, "-"],
[2, 1, "-"],
[3, 1, "-"],
[4, 1, "-"],
[5, 1, "-"],
[6, 1, "-"],
[7, 1, "-"],
[8, 1, "-"],
[9, 1, "-"],
[10, 1, "@integer(0, 10)"],
[11, 1, "@integer(0, 10)"],
[12, 1, "@integer(0, 10)"],
[13, 1, "@integer(0, 10)"],
[14, 1, "@integer(0, 10)"],
[15, 1, "@integer(0, 10)"],
[16, 1, "@integer(0, 10)"],
[17, 1, "@integer(0, 10)"],
[18, 1, "@integer(0, 10)"],
[19, 1, "@integer(0, 10)"],
[20, 1, "@integer(0, 10)"],
[21, 1, "@integer(0, 10)"],
[22, 1, "@integer(0, 10)"],
[23, 1, "@integer(0, 10)"],
[0, 2, 1],
[1, 2, 1],
[2, 2, "-"],
[3, 2, "-"],
[4, 2, "-"],
[5, 2, "-"],
[6, 2, "-"],
[7, 2, "-"],
[8, 2, "-"],
[9, 2, "-"],
[10, 2, "@integer(0, 10)"],
[11, 2, "@integer(0, 10)"],
[12, 2, "@integer(0, 10)"],
[13, 2, "@integer(0, 10)"],
[14, 2, "@integer(0, 10)"],
[15, 2, "@integer(0, 10)"],
[16, 2, "@integer(0, 10)"],
[17, 2, "@integer(0, 10)"],
[18, 2, "@integer(0, 10)"],
[19, 2, "@integer(0, 10)"],
[20, 2, "@integer(0, 10)"],
[21, 2, "@integer(0, 10)"],
[22, 2, "@integer(0, 10)"],
[23, 2, "@integer(0, 10)"],
[0, 3, 7],
[1, 3, 3],
[2, 3, "-"],
[3, 3, "-"],
[4, 3, "-"],
[5, 3, "-"],
[6, 3, "-"],
[7, 3, "-"],
[8, 3, 1],
[9, 3, "-"],
[10, 3, "@integer(0, 10)"],
[11, 3, "@integer(0, 10)"],
[12, 3, "@integer(0, 10)"],
[13, 3, "@integer(0, 10)"],
[14, 3, "@integer(0, 10)"],
[15, 3, "@integer(0, 10)"],
[16, 3, "@integer(0, 10)"],
[17, 3, "@integer(0, 10)"],
[18, 3, "@integer(0, 10)"],
[19, 3, "@integer(0, 10)"],
[20, 3, "@integer(0, 10)"],
[21, 3, "@integer(0, 10)"],
[22, 3, "@integer(0, 10)"],
[23, 3, "@integer(0, 10)"],
[0, 4, "@integer(0, 10)"],
[1, 4, "@integer(0, 10)"],
[2, 4, "-"],
[3, 4, "-"],
[4, 4, "-"],
[5, 4, "@integer(0, 10)"],
[6, 4, "-"],
[7, 4, "-"],
[8, 4, "-"],
[9, 4, "@integer(0, 10)"],
[10, 4, "@integer(0, 10)"],
[11, 4, "@integer(0, 10)"],
[12, 4, "@integer(0, 10)"],
[13, 4, "@integer(0, 10)"],
[14, 4, "@integer(0, 10)"],
[15, 4, "@integer(0, 10)"],
[16, 4, "@integer(0, 10)"],
[17, 4, "@integer(0, 10)"],
[18, 4, "@integer(0, 10)"],
[19, 4, "@integer(0, 10)"],
[20, 4, "@integer(0, 10)"],
[21, 4, "@integer(0, 10)"],
[22, 4, "@integer(0, 10)"],
[23, 4, "-"],
[0, 5, "@integer(0, 10)"],
[1, 5, "@integer(0, 10)"],
[2, 5, "-"],
[3, 5, "@integer(0, 10)"],
[4, 5, "-"],
[5, 5, "-"],
[6, 5, "-"],
[7, 5, "-"],
[8, 5, "@integer(0, 10)"],
[9, 5, "-"],
[10, 5, "@integer(0, 10)"],
[11, 5, "@integer(0, 10)"],
[12, 5, "@integer(0, 10)"],
[13, 5, "@integer(0, 10)"],
[14, 5, "@integer(0, 10)"],
[15, 5, "@integer(0, 10)"],
[16, 5, "@integer(0, 10)"],
[17, 5, "@integer(0, 10)"],
[18, 5, "-"],
[19, 5, "@integer(0, 10)"],
[20, 5, "@integer(0, 10)"],
[21, 5, "@integer(0, 10)"],
[22, 5, "@integer(0, 10)"],
[23, 5, "-"],
[0, 6, "@integer(0, 10)"],
[1, 6, "-"],
[2, 6, "-"],
[3, 6, "-"],
[4, 6, "-"],
[5, 6, "-"],
[6, 6, "-"],
[7, 6, "-"],
[8, 6, "-"],
[9, 6, "-"],
[10, 6, "@integer(0, 10)"],
[11, 6, "-"],
[12, 6, "@integer(0, 10)"],
[13, 6, "@integer(0, 10)"],
[14, 6, "@integer(0, 10)"],
[15, 6, "@integer(0, 10)"],
[16, 6, "-"],
[17, 6, "-"],
[18, 6, "-"],
[19, 6, "-"],
[20, 6, "@integer(0, 10)"],
[21, 6, "@integer(0, 10)"],
[22, 6, "@integer(0, 10)"],
[23, 6, "@integer(0, 10)"]
]
}

View File

@@ -4,26 +4,104 @@ import { RequestHttpEnum } from '@/enums/httpEnum'
// 单个X数据
export const chartDataUrl = '/mock/chartData'
export const rankListUrl = '/mock/RankList'
export const numberUrl = '/mock/number'
export const chartSingleDataUrl = '/mock/chartSingleData'
export const numberFloatUrl = '/mock/number/float'
export const numberIntUrl = '/mock/number/int'
export const textUrl = '/mock/text'
export const imageUrl = '/mock/image'
export const rankListUrl = '/mock/rankList'
export const scrollBoardUrl = '/mock/scrollBoard'
export const radarUrl = '/mock/radarData'
export const heatMapUrl = '/mock/heatMapData'
export const scatterBasicUrl = '/mock/scatterBasic'
export const mapUrl = '/mock/map'
export const capsuleUrl = '/mock/capsule'
export const wordCloudUrl = '/mock/wordCloud'
export const treemapUrl = '/mock/treemap'
export const threeEarth01Url = '/mock/threeEarth01Data'
const mockObject: MockMethod[] = [
{
// 正则
// url: /\/mock\/mockData(|\?\S*)$/,
url: '/mock/chartData',
url: chartDataUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchMockData,
response: () => test.fetchMockData
},
{
url: '/mock/rankList',
url: chartSingleDataUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchRankList,
response: () => test.fetchMockSingleData
},
{
url: '/mock/number',
url: numberFloatUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchNumber,
response: () => test.fetchNumberFloat
},
{
url: numberIntUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchNumberInt
},
{
url: textUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchText
},
{
url: imageUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchImage(Math.round(Math.random() * 10))
},
{
url: rankListUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchRankList
},
{
url: scrollBoardUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchScrollBoard
},
{
url: radarUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchRadar
},
{
url: heatMapUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchHeatmap
},
{
url: scatterBasicUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchScatterBasic
},
{
url: mapUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchMap
},
{
url: capsuleUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchCapsule
},
{
url: wordCloudUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchWordCloud
},
{
url: treemapUrl,
method: RequestHttpEnum.GET,
response: () => test.fetchTreemap
},
{
url: threeEarth01Url,
method: RequestHttpEnum.GET,
response: () => test.threeEarth01Data
},
]

9
src/api/mock/map.json Normal file
View File

@@ -0,0 +1,9 @@
{
"markers|50": [
{
"name": "某某地市",
"value": "@integer(2, 20)",
"position": ["@float(115, 117, 1, 6)", "@float(38, 40, 1, 6)"]
}
]
}

56
src/api/mock/scatter.json Normal file
View File

@@ -0,0 +1,56 @@
[
{
"dimensions": ["data1"],
"source": [
[10.0, "@integer(0, 100)"],
[8.07, "@integer(0, 100)"],
[13.0, "@integer(0, 100)"],
[9.05, "@integer(0, 100)"],
[11.0, "@integer(0, 100)"],
[14.0, "@integer(0, 100)"],
[13.4, "@integer(0, 100)"],
[10.0, "@integer(0, 100)"],
[14.0, "@integer(0, 100)"],
[12.5, "@integer(0, 100)"],
[9.15, "@integer(0, 100)"],
[11.5, "@integer(0, 100)"],
[3.03, "@integer(0, 100)"],
[12.2, "@integer(0, 100)"],
[2.02, "@integer(0, 100)"],
[1.05, "@integer(0, 100)"],
[4.05, "@integer(0, 100)"],
[6.03, "@integer(0, 100)"],
[12.0, "@integer(0, 100)"],
[12.0, "@integer(0, 100)"],
[7.08, "@integer(0, 100)"],
[5.02, "@integer(0, 100)"]
]
},
{
"dimensions": ["data2"],
"source": [
[10.0, "@integer(0, 70)"],
[8.07, "@integer(0, 70)"],
[13.0, "@integer(0, 70)"],
[9.05, "@integer(0, 70)"],
[11.0, "@integer(0, 70)"],
[14.0, "@integer(0, 70)"],
[13.4, "@integer(0, 70)"],
[10.0, "@integer(0, 70)"],
[14.0, "@integer(0, 70)"],
[12.5, "@integer(0, 70)"],
[9.15, "@integer(0, 70)"],
[11.5, "@integer(0, 70)"],
[3.03, "@integer(0, 70)"],
[12.2, "@integer(0, 70)"],
[2.02, "@integer(0, 70)"],
[1.05, "@integer(0, 70)"],
[4.05, "@integer(0, 70)"],
[6.03, "@integer(0, 70)"],
[12.0, "@integer(0, 70)"],
[12.0, "@integer(0, 70)"],
[7.08, "@integer(0, 70)"],
[5.02, "@integer(0, 70)"]
]
}
]

View File

@@ -1,4 +1,40 @@
import heatmapJson from './heatMapData.json'
import scatterJson from './scatter.json'
import mapJson from './map.json'
import tTreemapJson from './treemap.json'
export default {
// 单图表
fetchMockSingleData: {
code: 0,
status: 200,
msg: '请求成功',
data: {
dimensions: ['product', 'dataOne'],
'source|50': [
{
product: '@name',
'dataOne|0-900': 3
}
]
}
},
// 胶囊图
fetchCapsule: {
code: 0,
status: 200,
msg: '请求成功',
data: {
dimensions: ['name', 'value'],
source: [
{ name: '厦门', 'value|0-40': 20 },
{ name: '南阳', 'value|20-60': 40 },
{ name: '北京', 'value|40-80': 60 },
{ name: '上海', 'value|60-100': 80 },
{ name: '新疆', value: 100 }
]
}
},
// 图表
fetchMockData: {
code: 0,
@@ -6,66 +42,185 @@ export default {
msg: '请求成功',
data: {
dimensions: ['product', 'dataOne', 'dataTwo'],
source: [
'source|50': [
{
product: '@name',
'dataOne|100-900': 3,
'dataTwo|100-900': 3,
},
{
product: '@name',
'dataOne|100-900': 3,
'dataTwo|100-900': 3,
},
{
product: '@name',
'dataOne|100-900': 3,
'dataTwo|100-900': 3,
},
{
product: '@name',
'dataOne|100-900': 3,
'dataTwo|100-900': 3,
},
{
product: '@name',
'dataOne|100-900': 3,
'dataTwo|100-900': 3,
},
{
product: '@name',
'dataOne|100-900': 3,
'dataTwo|100-900': 3,
},
],
},
'dataTwo|100-900': 3
}
]
}
},
// 排名列表
fetchRankList: {
code: 0,
status: 200,
msg: '请求成功',
data: [
{ name: '@name', 'value|100-900': 5 },
{ name: '@name', 'value|100-900': 5 },
{ name: '@name', 'value|100-900': 5 },
{ name: '@name', 'value|100-900': 5 },
{ name: '@name', 'value|100-900': 5 },
{ name: '@name', 'value|100-900': 5 },
{ name: '@name', 'value|100-900': 5 },
{ name: '@name', 'value|100-900': 5 },
{ name: '@name', 'value|100-900': 5 },
{ name: '@name', 'value|100-900': 5 },
{ name: '@name', 'value|100-900': 5 },
{ name: '@name', 'value|100-900': 5 },
{ name: '@name', 'value|100-900': 5 },
],
'data|50': [{ name: '@name', 'value|100-900': 5 }]
},
// 获取数字
fetchNumber: {
// 轮播表格
fetchScrollBoard: {
code: 0,
status: 200,
msg: '请求成功',
data: '@float(0, 0.99)',
data: [
['行1列1', '行1列2', '1'],
['行2列1', '行2列2', '2'],
['行3列1', '行3列2', '3'],
['行4列1', '行4列2', '4'],
['行5列1', '行5列2', '5'],
['行6列1', '行6列2', '6'],
['行7列1', '行7列2', '行7列3'],
['行8列1', '行8列2', '行8列3'],
['行9列1', '行9列2', '行9列3'],
['行10列1', '行10列2', '行10列3']
]
},
// 获取数字-浮点型
fetchNumberFloat: {
code: 0,
status: 200,
msg: '请求成功',
data: '@float(0, 0.99, 1, 4)'
},
// 获取数字-整型
fetchNumberInt: {
code: 0,
status: 200,
msg: '请求成功',
data: '@integer(0, 100)'
},
// 文字
fetchText: {
code: 0,
status: 200,
msg: '请求成功',
data: '@paragraph(1, 10)'
},
// 图片
fetchImage: (num: number) => ({
code: 0,
status: 200,
msg: '请求成功',
data: `https://robohash.org/${num}`
}),
// 雷达
fetchRadar: {
code: 0,
status: 200,
msg: '请求成功',
data: {
radarIndicator: [
{ name: '@name', max: 10000 },
{ name: '@name', max: 10000 },
{ name: '@name', max: 10000 },
{ name: '@name', max: 10000 },
{ name: '@name', max: 10000 },
{ name: '@name', max: 10000 }
],
seriesData: [
{
value: [
'@integer(0, 10000)',
'@integer(0, 10000)',
'@integer(0, 10000)',
'@integer(0, 10000)',
'@integer(0, 10000)',
'@integer(0, 10000)'
],
name: 'data1'
},
{
value: [
'@integer(0, 10000)',
'@integer(0, 10000)',
'@integer(0, 10000)',
'@integer(0, 10000)',
'@integer(0, 10000)',
'@integer(0, 10000)'
],
name: 'data2'
}
]
}
},
// 热力图
fetchHeatmap: {
code: 0,
status: 200,
msg: '请求成功',
data: heatmapJson
},
// 散点图
fetchScatterBasic: {
code: 0,
status: 200,
msg: '请求成功',
data: scatterJson
},
// 中国地图
fetchMap: {
code: 0,
status: 200,
msg: '请求成功',
data: mapJson
},
// 词云
fetchWordCloud: {
code: 0,
status: 200,
msg: '请求成功',
data: [
{
name: '@name',
value: 8000,
textStyle: {
color: '#78fbb2'
},
emphasis: {
textStyle: {
color: 'red'
}
}
},
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' },
{ name: '@name', value: '@integer(10, 8000)' }
]
},
// 树图
fetchTreemap: {
code: 0,
status: 200,
msg: '请求成功',
data: tTreemapJson
},
// 三维地球
threeEarth01Data: {
code: 0,
status: 200,
msg: '请求成功',
data: [
{
startArray: { name: '@name', N: '@integer(10, 100)', E: '@integer(10, 100)' },
'endArray|10': [{ name: '@name', N: '@integer(10, 100)', E: '@integer(10, 100)' }]
}
]
}
}

50
src/api/mock/treemap.json Normal file
View File

@@ -0,0 +1,50 @@
[
{
"name": "@name",
"value": "@integer(0, 1000)",
"children": [
{
"name": "@name",
"value": "@integer(0, 500)"
},
{
"name": "@name",
"value": "@integer(0, 500)"
}
]
},
{
"name": "@name",
"value": "@integer(0, 1000)",
"children": [
{
"name": "@name",
"value": "@integer(0, 00)"
},
{
"name": "@name",
"value": "@integer(0, 500)"
}
]
},
{
"name": "@name",
"value": "@integer(0, 1000)",
"children": [
{
"name": "@name",
"value": "@integer(0, 1000)"
}
]
},
{
"name": "@name",
"value": "@integer(0, 1000)",
"children": [
{
"name": "@name",
"value": "@integer(0, 1000)"
}
]
}
]

View File

@@ -74,9 +74,9 @@ export const changeProjectReleaseApi = async (data: object) => {
}
// * 上传文件
export const uploadFile = async (url:string, data: object) => {
export const uploadFile = async (data: object) => {
try {
const res = await http(RequestHttpEnum.POST)(url, data, ContentTypeEnum.FORM_DATA);
const res = await http(RequestHttpEnum.POST)(`${ModuleTypeEnum.PROJECT}/upload`, data, ContentTypeEnum.FORM_DATA);
return res;
} catch {
httpErrorHandle();

View File

@@ -12,15 +12,6 @@ export const loginApi = async (data: object) => {
}
}
// * 新接口
export const newApi = async (data: object) => {
try {
const resonse = await http(RequestHttpEnum.POST)(`新接口的路劲/xxx/xxx`, data)
} catch (error) {
httpErrorHandle();
}
}
// * 登出
export const logoutApi = async () => {
try {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

View File

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

View File

@@ -0,0 +1,74 @@
<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 class="go-my-2" :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-space class="go-my-2" :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-space class="go-mt-2" :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

@@ -115,6 +115,13 @@ const list = reactive<ListType[]>([
desc: '',
value: ''
},
{
key: SettingStoreEnums.CHART_TOOLS_STATUS_HIDE,
value: settingStore.getChartToolsStatusHide,
type: 'switch',
name: '隐藏工具栏',
desc: '鼠标移入时,会展示切换到展开模式',
},
{
key: SettingStoreEnums.CHART_TOOLS_STATUS,
value: settingStore.getChartToolsStatus,
@@ -183,11 +190,14 @@ const handleChange = (e: MouseEvent, item: ListType) => {
width: 100px;
}
.select-min-width {
width: 110px;
width: 115px;
}
@include deep() {
.n-list-item:not(:last-child) {
border-bottom: 0;
.n-list-item {
border-bottom: 0!important;
}
.n-list-item__divider {
display: none!important;
}
}
}

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

@@ -1,3 +1,4 @@
<!-- eslint-disable vue/valid-template-root -->
<template></template>
<script lang="ts" setup>

View File

@@ -1,134 +1,124 @@
<template>
<collapse-item v-if="title" name="标题">
<template #header>
<n-switch
v-show="inChart"
v-model:value="title.show"
size="small"
></n-switch>
<n-switch v-model:value="title.show" size="small"></n-switch>
</template>
<setting-item-box name="标题">
<setting-item name="颜色">
<n-color-picker
v-model:value="title.textStyle.color"
size="small"
></n-color-picker>
<n-color-picker v-model:value="title.textStyle.color" size="small"></n-color-picker>
</setting-item>
<setting-item name="大小">
<n-input-number
v-model:value="title.textStyle.fontSize"
:min="1"
size="small"
></n-input-number>
<n-input-number v-model:value="title.textStyle.fontSize" :min="1" size="small"></n-input-number>
</setting-item>
</setting-item-box>
<setting-item-box name="副标题">
<setting-item name="颜色">
<n-color-picker
size="small"
v-model:value="title.subtextStyle.color"
></n-color-picker>
<n-color-picker size="small" v-model:value="title.subtextStyle.color"></n-color-picker>
</setting-item>
<setting-item name="大小">
<n-input-number
v-model:value="title.subtextStyle.fontSize"
:min="1"
size="small"
></n-input-number>
<n-input-number v-model:value="title.subtextStyle.fontSize" :min="1" size="small"></n-input-number>
</setting-item>
</setting-item-box>
</collapse-item>
<collapse-item v-if="grid" name="容器">
<setting-item-box name="距离">
<setting-item name="左侧距离">
<n-input v-model:value="grid.left" size="small"></n-input>
</setting-item>
<setting-item name="右侧距离">
<n-input v-model:value="grid.right" size="small"></n-input>
</setting-item>
<setting-item name="上侧距离">
<n-input v-model:value="grid.top" size="small"></n-input>
</setting-item>
<setting-item name="下侧距离">
<n-input v-model:value="grid.bottom" size="small"></n-input>
</setting-item>
</setting-item-box>
</collapse-item>
<collapse-item v-if="xAxis" name="X轴">
<template #header>
<n-switch
v-show="inChart"
v-model:value="xAxis.show"
size="small"
></n-switch>
<n-switch v-model:value="xAxis.show" size="small"></n-switch>
</template>
<setting-item-box name="名称">
<setting-item-box name="单位">
<setting-item name="名称">
<n-input v-model:value="xAxis.name" size="small"></n-input>
</setting-item>
<setting-item name="颜色">
<n-color-picker
size="small"
v-model:value="xAxis.nameTextStyle.color"
></n-color-picker>
<n-color-picker size="small" v-model:value="xAxis.nameTextStyle.color"></n-color-picker>
</setting-item>
<setting-item name="大小">
<n-input-number v-model:value="xAxis.nameTextStyle.fontSize" :min="12" size="small"></n-input-number>
</setting-item>
<setting-item name="偏移量">
<n-input-number v-model:value="xAxis.nameGap" :min="5" size="small"></n-input-number>
</setting-item>
</setting-item-box>
<setting-item-box name="标签">
<setting-item v-show="inChart" name="展示">
<setting-item name="展示">
<n-space>
<n-switch
v-model:value="xAxis.axisLabel.show"
size="small"
></n-switch>
<n-switch v-model:value="xAxis.axisLabel.show" size="small"></n-switch>
</n-space>
</setting-item>
<setting-item name="颜色">
<n-color-picker
size="small"
v-model:value="xAxis.axisLabel.color"
></n-color-picker>
<n-color-picker size="small" v-model:value="xAxis.axisLabel.color"></n-color-picker>
</setting-item>
<setting-item name="大小">
<n-input-number v-model:value="xAxis.axisLabel.fontSize" :min="8" size="small"></n-input-number>
</setting-item>
<setting-item name="偏移量">
<n-input-number v-model:value="xAxis.axisLabel.rotate" :min="-90" :max="90" size="small"></n-input-number>
</setting-item>
</setting-item-box>
<setting-item-box name="轴线">
<setting-item name="展示">
<n-space>
<n-switch v-model:value="xAxis.axisLine.show" size="small"></n-switch>
</n-space>
</setting-item>
<setting-item name="颜色">
<n-color-picker
v-model:value="xAxis.axisLine.lineStyle.color"
size="small"
></n-color-picker>
<n-color-picker v-model:value="xAxis.axisLine.lineStyle.color" size="small"></n-color-picker>
</setting-item>
<setting-item name="粗细">
<n-input-number
v-model:value="xAxis.axisLine.lineStyle.width"
:min="1"
size="small"
></n-input-number>
<n-input-number v-model:value="xAxis.axisLine.lineStyle.width" :min="1" size="small"></n-input-number>
</setting-item>
<setting-item name="位置">
<n-select v-model:value="xAxis.position" size="small" :options="axisConfig.xposition"></n-select>
</setting-item>
<setting-item name="对齐零">
<n-space>
<n-switch
v-model:value="xAxis.axisLine.onZero"
size="small"
></n-switch>
<n-switch v-model:value="xAxis.axisLine.onZero" size="small"></n-switch>
</n-space>
</setting-item>
<setting-item name="反向">
<n-space>
<n-switch v-model:value="xAxis.inverse" size="small"></n-switch>
</n-space>
</setting-item>
</setting-item-box>
<setting-item-box name="刻度">
<setting-item v-show="inChart" name="展示">
<setting-item name="展示">
<n-space>
<n-switch v-model:value="xAxis.axisTick.show" size="small"></n-switch>
</n-space>
</setting-item>
<setting-item name="长度">
<n-input-number
v-model:value="xAxis.axisTick.length"
:min="1"
size="small"
></n-input-number>
<n-input-number v-model:value="xAxis.axisTick.length" :min="1" size="small"></n-input-number>
</setting-item>
</setting-item-box>
<setting-item-box name="分割线">
<setting-item v-show="inChart" name="展示">
<setting-item name="展示">
<n-space>
<n-switch
v-model:value="xAxis.splitLine.show"
size="small"
></n-switch>
<n-switch v-model:value="xAxis.splitLine.show" size="small"></n-switch>
</n-space>
</setting-item>
<setting-item name="颜色">
<n-color-picker
v-model:value="xAxis.splitLine.lineStyle.color"
size="small"
></n-color-picker>
<n-color-picker v-model:value="xAxis.splitLine.lineStyle.color" size="small"></n-color-picker>
</setting-item>
<setting-item name="粗细">
<n-input-number
v-model:value="xAxis.splitLine.lineStyle.width"
:min="1"
size="small"
></n-input-number>
<n-input-number v-model:value="xAxis.splitLine.lineStyle.width" :min="1" size="small"></n-input-number>
</setting-item>
<setting-item name="类型">
<n-select
@@ -137,111 +127,90 @@
:options="axisConfig.splitLint.lineStyle.type"
></n-select>
</setting-item>
<setting-item name="位置">
<n-select
v-model:value="xAxis.position"
size="small"
:options="axisConfig.xposition"
></n-select>
</setting-item>
</setting-item-box>
</collapse-item>
<collapse-item v-if="yAxis" name="Y轴">
<template #header>
<n-switch
v-show="inChart"
v-model:value="yAxis.show"
size="small"
></n-switch>
<n-switch v-model:value="yAxis.show" size="small"></n-switch>
</template>
<setting-item-box name="名称">
<setting-item-box name="单位">
<setting-item name="名称">
<n-input v-model:value="yAxis.name" size="small"></n-input>
</setting-item>
<setting-item name="颜色">
<n-color-picker
size="small"
v-model:value="yAxis.nameTextStyle.color"
></n-color-picker>
<n-color-picker size="small" v-model:value="yAxis.nameTextStyle.color"></n-color-picker>
</setting-item>
<setting-item name="大小">
<n-input-number v-model:value="yAxis.nameTextStyle.fontSize" :min="8" size="small"></n-input-number>
</setting-item>
<setting-item name="偏移量">
<n-input-number v-model:value="yAxis.nameGap" :min="5" size="small"></n-input-number>
</setting-item>
</setting-item-box>
<setting-item-box name="标签">
<setting-item v-show="inChart" name="展示">
<setting-item name="展示">
<n-space>
<n-switch
v-model:value="yAxis.axisLabel.show"
size="small"
></n-switch>
<n-switch v-model:value="yAxis.axisLabel.show" size="small"></n-switch>
</n-space>
</setting-item>
<setting-item name="颜色">
<n-color-picker
size="small"
v-model:value="yAxis.axisLabel.color"
></n-color-picker>
<n-color-picker size="small" v-model:value="yAxis.axisLabel.color"></n-color-picker>
</setting-item>
<setting-item name="大小">
<n-input-number v-model:value="yAxis.axisLabel.fontSize" :min="8" size="small"></n-input-number>
</setting-item>
<setting-item name="偏移量">
<n-input-number v-model:value="yAxis.axisLabel.rotate" :min="-90" :max="90" size="small"></n-input-number>
</setting-item>
</setting-item-box>
<setting-item-box name="轴线">
<setting-item v-show="inChart" name="展示">
<setting-item name="展示">
<n-space>
<n-switch v-model:value="yAxis.axisLine.show" size="small"></n-switch>
</n-space>
</setting-item>
<setting-item name="颜色">
<n-color-picker
v-model:value="yAxis.axisLine.lineStyle.color"
size="small"
></n-color-picker>
<n-color-picker v-model:value="yAxis.axisLine.lineStyle.color" size="small"></n-color-picker>
</setting-item>
<setting-item name="粗细">
<n-input-number
v-model:value="yAxis.axisLine.lineStyle.width"
:min="1"
size="small"
></n-input-number>
<n-input-number v-model:value="yAxis.axisLine.lineStyle.width" :min="1" size="small"></n-input-number>
</setting-item>
<setting-item name="位置">
<n-select v-model:value="yAxis.position" size="small" :options="axisConfig.yposition"></n-select>
</setting-item>
<setting-item name="对齐零">
<n-space>
<n-switch
v-model:value="yAxis.axisLine.onZero"
size="small"
></n-switch>
<n-switch v-model:value="yAxis.axisLine.onZero" size="small"></n-switch>
</n-space>
</setting-item>
<setting-item name="反向">
<n-space>
<n-switch v-model:value="yAxis.inverse" size="small"></n-switch>
</n-space>
</setting-item>
</setting-item-box>
<setting-item-box name="刻度">
<setting-item v-show="inChart" name="展示">
<setting-item name="展示">
<n-space>
<n-switch v-model:value="yAxis.axisTick.show" size="small"></n-switch>
</n-space>
</setting-item>
<setting-item name="长度">
<n-input-number
v-model:value="yAxis.axisTick.length"
:min="1"
size="small"
></n-input-number>
<n-input-number v-model:value="yAxis.axisTick.length" :min="1" size="small"></n-input-number>
</setting-item>
</setting-item-box>
<setting-item-box name="分割线">
<setting-item v-show="inChart" name="展示">
<setting-item name="展示">
<n-space>
<n-switch
v-model:value="yAxis.splitLine.show"
size="small"
></n-switch>
<n-switch v-model:value="yAxis.splitLine.show" size="small"></n-switch>
</n-space>
</setting-item>
<setting-item name="颜色">
<n-color-picker
v-model:value="yAxis.splitLine.lineStyle.color"
size="small"
></n-color-picker>
<n-color-picker v-model:value="yAxis.splitLine.lineStyle.color" size="small"></n-color-picker>
</setting-item>
<setting-item name="粗细">
<n-input-number
v-model:value="yAxis.splitLine.lineStyle.width"
:min="1"
size="small"
></n-input-number>
<n-input-number v-model:value="yAxis.splitLine.lineStyle.width" :min="1" size="small"></n-input-number>
</setting-item>
<setting-item name="类型">
<n-select
@@ -250,44 +219,70 @@
:options="axisConfig.splitLint.lineStyle.type"
></n-select>
</setting-item>
<setting-item name="位置">
<n-select
v-model:value="yAxis.position"
size="small"
:options="axisConfig.yposition"
></n-select>
</setting-item>
</setting-item-box>
</collapse-item>
<collapse-item v-if="legend" name="图例">
<template #header>
<n-switch
v-show="inChart"
v-model:value="legend.show"
size="small"
></n-switch>
<n-switch v-model:value="legend.show" size="small"></n-switch>
</template>
<setting-item-box name="图例文字">
<setting-item>
<n-color-picker
size="small"
v-model:value="legend.textStyle.color"
></n-color-picker>
<n-color-picker size="small" v-model:value="legend.textStyle.color"></n-color-picker>
</setting-item>
</setting-item-box>
</collapse-item>
<collapse-item v-if="visualMap" name="视觉映射">
<template #header>
<n-switch v-model:value="visualMap.show" size="small"></n-switch>
</template>
<setting-item-box name="范围">
<setting-item name="最小值">
<n-input-number v-model:value="visualMap.min" size="small"></n-input-number>
</setting-item>
<setting-item name="最大值">
<n-input-number v-model:value="visualMap.max" size="small"></n-input-number>
</setting-item>
</setting-item-box>
<setting-item-box name="颜色">
<setting-item :name="`层级-${index + 1}`" v-for="(item, index) in visualMap.inRange.color" :key="index">
<n-color-picker v-model:value="visualMap.inRange.color[index]" size="small"></n-color-picker>
</setting-item>
</setting-item-box>
<setting-item-box name="控制块">
<setting-item name="放置方向">
<n-select v-model:value="visualMap.orient" size="small" :options="axisConfig.visualMap.orient"></n-select>
</setting-item>
<setting-item name="宽度">
<n-input-number v-model:value="visualMap.itemWidth" :min="5" size="small"></n-input-number>
</setting-item>
<setting-item name="高度">
<n-input-number v-model:value="visualMap.itemHeight" :min="5" size="small"></n-input-number>
</setting-item>
<setting-item name="反转">
<n-space>
<n-switch v-model:value="visualMap.inverse" size="small"></n-switch>
</n-space>
</setting-item>
<setting-item name="拖拽组件实时更新">
<n-space>
<n-switch v-model:value="visualMap.realtime" size="small"></n-switch>
</n-space>
</setting-item>
</setting-item-box>
<global-setting-position :targetData="visualMap"></global-setting-position>
</collapse-item>
</template>
<script setup lang="ts">
import { PropType, computed } from 'vue'
import { GlobalThemeJsonType } from '@/settings/chartThemes/index'
import { axisConfig } from '@/packages/chartConfiguration/echarts/index'
import {
CollapseItem,
SettingItemBox,
SettingItem
} from '@/components/Pages/ChartItemSetting'
import { CollapseItem, SettingItemBox, SettingItem, GlobalSettingPosition } from '@/components/Pages/ChartItemSetting'
const props = defineProps({
optionData: {
@@ -316,4 +311,12 @@ const yAxis = computed(() => {
const legend = computed(() => {
return props.optionData.legend
})
const grid = computed(() => {
return props.optionData.grid
})
const visualMap = computed(() => {
return props.optionData.visualMap
})
</script>

View File

@@ -0,0 +1,29 @@
<template>
<setting-item-box v-if="targetData" name="位置">
<setting-item :name="`偏移 X${targetData.left || 0}px`">
<n-input-number v-model:value="targetData.left" size="small" step="10"></n-input-number>
</setting-item>
<setting-item :name="`偏移 Y${targetData.top || 0}px`">
<n-input-number v-model:value="targetData.top" size="small" step="10"></n-input-number>
</setting-item>
</setting-item-box>
</template>
<script setup lang="ts">
import { PropType, reactive } from 'vue'
import { CollapseItem, SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting'
type positionType = {
top?: number | string | null
left?: number | string | null
right?: number | string | null
bottom?: number | string | null
}
const props = defineProps({
targetData: {
type: Object as PropType<positionType>,
required: true
}
})
</script>

View File

@@ -8,9 +8,9 @@
</n-text>
<div
class="item-right"
justify="space-between"
:style="{
gridTemplateColumns: alone ? '1fr' : '1fr 1fr'
gridTemplateColumns: alone ? '1fr' : '1fr 1fr',
...itemRightStyle
}"
>
<slot></slot>
@@ -28,6 +28,11 @@ defineProps({
type: Boolean,
default: false,
required: false
},
itemRightStyle: {
type: Object,
default: () => {},
required: false
}
})
</script>
@@ -48,7 +53,6 @@ $leftWidth: 60px;
.item-right {
display: grid;
grid-column-gap: 10px;
grid-template-columns: 1fr 1fr;
width: calc(100% - #{$leftWidth});
}
}

View File

@@ -3,6 +3,7 @@
<n-input-number
v-model:value="chartAttr.w"
:min="50"
:disabled="isGroup"
size="small"
placeholder="px"
>
@@ -13,6 +14,7 @@
<n-input-number
v-model:value="chartAttr.h"
:min="50"
:disabled="isGroup"
size="small"
placeholder="px"
>
@@ -32,6 +34,10 @@ const props = defineProps({
chartAttr: {
type: Object as PropType<Omit<PickCreateComponentType<'attr'>, 'node' | 'conNode'>>,
required: true
},
isGroup: {
type: Boolean,
required: false
}
})
</script>

View File

@@ -1,5 +1,13 @@
<template>
<div v-show="isGroup">
<n-divider n-divider style="margin: 10px 0"></n-divider>
<n-tag type="warning"> 解散分组 {{ isCanvas ? '滤镜' : '滤镜 / 变换' }} 也将消失!</n-tag>
</div>
<collapse-item :name="isCanvas ? '滤镜' : '滤镜 / 变换'">
<template #header>
<n-switch v-model:value="chartStyles.filterShow" size="small"></n-switch>
</template>
<setting-item-box name="色相" :alone="true">
<setting-item :name="`值:${chartStyles.hueRotate}deg`">
<!-- 透明度 -->
@@ -13,9 +21,7 @@
</setting-item>
</setting-item-box>
<setting-item-box name="饱和度" :alone="true">
<setting-item
:name="`值:${(parseFloat(String(chartStyles.saturate)) * 100).toFixed(0)}%`"
>
<setting-item :name="`值:${(parseFloat(String(chartStyles.saturate)) * 100).toFixed(0)}%`">
<!-- 透明度 -->
<n-slider
v-model:value="chartStyles.saturate"
@@ -27,9 +33,7 @@
</setting-item>
</setting-item-box>
<setting-item-box name="对比度" :alone="true">
<setting-item
:name="`值:${(parseFloat(String(chartStyles.contrast)) * 100).toFixed(0)}%`"
>
<setting-item :name="`值:${(parseFloat(String(chartStyles.contrast)) * 100).toFixed(0)}%`">
<!-- 透明度 -->
<n-slider
v-model:value="chartStyles.contrast"
@@ -41,9 +45,7 @@
</setting-item>
</setting-item-box>
<setting-item-box name="亮度" :alone="true">
<setting-item
:name="`值:${(parseFloat(String(chartStyles.brightness)) * 100).toFixed(0)}%`"
>
<setting-item :name="`值:${(parseFloat(String(chartStyles.brightness)) * 100).toFixed(0)}%`">
<!-- 透明度 -->
<n-slider
v-model:value="chartStyles.brightness"
@@ -55,9 +57,7 @@
</setting-item>
</setting-item-box>
<setting-item-box name="透明度" :alone="true">
<setting-item
:name="`值:${(parseFloat(String(chartStyles.opacity)) * 100).toFixed(0)}%`"
>
<setting-item :name="`值:${(parseFloat(String(chartStyles.opacity)) * 100).toFixed(0)}%`">
<!-- 透明度 -->
<n-slider
v-model:value="chartStyles.opacity"
@@ -68,7 +68,25 @@
></n-slider>
</setting-item>
</setting-item-box>
<!-- 混合模式 -->
<setting-item-box v-if="!isCanvas" :alone="true">
<template #name>
<n-text>混合</n-text>
<n-tooltip trigger="hover">
<template #trigger>
<n-icon size="21" :depth="3">
<help-outline-icon></help-outline-icon>
</n-icon>
</template>
<n-text>视频组件需要底色透明一般选中滤色</n-text>
</n-tooltip>
</template>
<setting-item>
<n-select v-model:value="chartStyles.blendMode" size="small" filterable :options="BlendModeEnumList"></n-select>
</setting-item>
</setting-item-box>
<!-- 变换 -->
<setting-item-box v-if="!isCanvas" name="旋转°">
<setting-item name="Z轴(平面) - 旋转">
@@ -124,37 +142,41 @@
></n-input-number>
</setting-item>
</setting-item-box>
<!-- 提示 -->
<n-tag type="warning"> 若预览时大屏模糊可以尝试关闭滤镜进行修复 </n-tag>
</collapse-item>
</template>
<script setup lang="ts">
import { PropType } from 'vue'
import { PickCreateComponentType } from '@/packages/index.d'
import {
SettingItemBox,
SettingItem,
CollapseItem,
} from '@/components/Pages/ChartItemSetting'
import { PickCreateComponentType, BlendModeEnumList } from '@/packages/index.d'
import { SettingItemBox, SettingItem, CollapseItem } from '@/components/Pages/ChartItemSetting'
import { icon } from '@/plugins'
const props = defineProps({
isGroup: {
type: Boolean,
required: false
},
isCanvas: {
type: Boolean,
default: false
},
chartStyles: {
type: Object as PropType<Omit<PickCreateComponentType<'styles'>, 'animations'>>,
required: true,
},
required: true
}
})
// 百分比格式化persen
const { HelpOutlineIcon } = icon.ionicons5
// 百分比格式化 person
const sliderFormatTooltip = (v: string) => {
// @ts-ignore
return `${(parseFloat(v) * 100).toFixed(0)}%`
}
// 角度格式化
const degFormatTooltip = (v: string) => {
// @ts-ignore
return `${v}deg`
}
</script>

View File

@@ -5,6 +5,9 @@ import CollapseItem from './CollapseItem.vue'
// 全局配置属性
import GlobalSetting from './GlobalSetting.vue'
// 全局配置属性-位置
import GlobalSettingPosition from './GlobalSettingPosition.vue'
// 名称
import NameSetting from './NameSetting.vue'
// 方向
@@ -14,4 +17,4 @@ import SizeSetting from './SizeSetting.vue'
// 样式
import StylesSetting from './StylesSetting.vue'
export { CollapseItem, SettingItemBox, SettingItem, GlobalSetting, NameSetting, PositionSetting, SizeSetting, StylesSetting }
export { CollapseItem, SettingItemBox, SettingItem, GlobalSetting, GlobalSettingPosition, NameSetting, PositionSetting, SizeSetting, StylesSetting }

View File

@@ -0,0 +1,5 @@
import Flipper from './index.vue'
type FlipType = 'up' | 'down'
export { Flipper, FlipType }

View File

@@ -0,0 +1,218 @@
<template>
<div class="go-Flipper" :class="[flipType, { go: isFlipping }]">
<div class="digital front" :data-front="frontTextFromData"></div>
<div class="digital back" :data-back="backTextFromData"></div>
</div>
</template>
<script lang="ts" setup>
import { ref, PropType, watch } from 'vue'
import { FlipType } from './index'
const props = defineProps({
flipType: {
type: String as PropType<FlipType>,
default: () => {
return 'down'
}
},
count: {
type: [Number, String],
default: 0
},
duration: {
type: Number,
default: 600
},
width: {
type: Number,
default: 60
},
height: {
type: Number,
default: 100
},
radius: {
type: Number,
default: 10
},
frontColor: {
type: String,
default: '#ffffff'
},
backColor: {
type: String,
default: '#000000'
}
})
const isFlipping = ref(false)
const frontTextFromData = ref(props.count || 0)
const backTextFromData = ref(props.count || 0)
// 翻牌
const flip = (front: string | number, back: string | number) => {
// 如果处于翻转中,则不执行
if (isFlipping.value) return
// 设置翻盘前后数据
backTextFromData.value = back
frontTextFromData.value = front
// 设置翻转状态为true
isFlipping.value = true
// 翻牌结束的行为
setTimeout(() => {
isFlipping.value = false // 设置翻转状态为false
frontTextFromData.value = back
}, props.duration)
}
watch(
() => props.count,
(newVal, oldVal) => {
flip(oldVal as string | number, newVal as string | number)
},
{
immediate: true
}
)
</script>
<style lang="scss" scoped>
$frontColor: v-bind('props.frontColor');
$backColor: v-bind('props.backColor');
$radius: v-bind('`${props.radius}px`');
$width: v-bind('`${props.width}px`');
$height: v-bind('`${props.height}px`');
$perspective: v-bind('`${props.height * 2}px`');
$speed: v-bind('`${props.duration / 1000}s`');
$shadowColor: #000000;
$lineColor: #4a9ef8;
// #region 动画效果
@keyframes frontFlipDown {
0% {
transform: perspective($perspective) rotateX(0deg);
}
100% {
transform: perspective($perspective) rotateX(-180deg);
}
}
@keyframes backFlipDown {
0% {
transform: perspective($perspective) rotateX(180deg);
}
100% {
transform: perspective($perspective) rotateX(0deg);
}
}
@keyframes frontFlipUp {
0% {
transform: perspective($perspective) rotateX(0deg);
}
100% {
transform: perspective($perspective) rotateX(180deg);
}
}
@keyframes backFlipUp {
0% {
transform: perspective($perspective) rotateX(-180deg);
}
100% {
transform: perspective($perspective) rotateX(0deg);
}
}
// #endregion
.go-Flipper {
display: inline-block;
position: relative;
width: $width;
height: $height;
line-height: $height;
border: solid 1px $backColor;
border-radius: $radius;
background: $frontColor;
font-size: $width;
color: $frontColor;
box-shadow: 0 0 6px rgba($color: $shadowColor, $alpha: 0.5); // 阴影部分
text-align: center;
// font-family: 'Helvetica Neue';
.digital:before,
.digital:after {
content: '';
position: absolute;
left: 0;
right: 0;
background: $backColor;
overflow: hidden;
box-sizing: border-box;
}
.digital.front:before,
.digital.front:after {
content: attr(data-front) !important;
}
.digital.back:before,
.digital.back:after {
content: attr(data-back) !important;
}
.digital:before {
top: 0;
bottom: 50%;
border-radius: $radius $radius 0 0;
border-bottom: solid 1px rgba($color: $lineColor, $alpha: 0.3); // 中间线颜色
}
.digital:after {
top: 50%;
bottom: 0;
border-radius: 0 0 $radius $radius;
line-height: 0;
}
/*向下翻*/
&.down .front:before {
z-index: 3;
}
&.down .back:after {
z-index: 2;
transform-origin: 50% 0%;
transform: perspective($perspective) rotateX(180deg);
}
&.down .front:after,
&.down .back:before {
z-index: 1;
}
&.down.go .front:before {
transform-origin: 50% 100%;
animation: frontFlipDown $speed ease-in-out both;
box-shadow: 0 -2px 6px rgba($color: $lineColor, $alpha: 0.3);
backface-visibility: hidden;
}
&.down.go .back:after {
animation: backFlipDown $speed ease-in-out both;
}
/*向上翻*/
&.up .front:after {
z-index: 3;
}
&.up .back:before {
z-index: 2;
transform-origin: 50% 100%;
transform: perspective($perspective) rotateX(-180deg);
}
&.up .front:before,
&.up .back:after {
z-index: 1;
}
&.up.go .front:after {
transform-origin: 50% 0;
animation: frontFlipUp $speed ease-in-out both;
box-shadow: 0 2px 6px rgba($color: $lineColor, $alpha: 0.3);
backface-visibility: hidden;
}
&.up.go .back:before {
animation: backFlipUp $speed ease-in-out both;
}
}
</style>

View File

@@ -0,0 +1,24 @@
<template></template>
<script setup>
import * as monaco from 'monaco-editor'
import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'
import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'
import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'
import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker'
self.MonacoEnvironment = {
getWorker(workerId, label) {
if (label === 'json') {
return new jsonWorker()
}
if (label === 'typescript' || label === 'javascript') {
return new tsWorker()
}
if (label === 'html') {
return new htmlWorker()
}
return new editorWorker()
}
}
</script>

View File

@@ -0,0 +1,76 @@
import { ref, onBeforeUnmount, nextTick } from 'vue'
import { useDesignStore } from '@/store/modules/designStore/designStore'
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js'
export const useMonacoEditor = (language = 'javascript') => {
const designStore = useDesignStore()
let monacoEditor: monaco.editor.IStandaloneCodeEditor | null = null
let initReadOnly = false
const el = ref<HTMLElement | null>(null)
// 格式化
const onFormatDoc = async () => {
await monacoEditor?.getAction('monacoEditor.action.formatDocument')?.run()
}
// 更新
const updateVal = (val: string) => {
nextTick(async () => {
monacoEditor?.setValue(val)
initReadOnly && monacoEditor?.updateOptions({ readOnly: false })
await onFormatDoc()
initReadOnly && monacoEditor?.updateOptions({ readOnly: true })
})
}
// 创建实例
const createEditor = (editorOption: monaco.editor.IStandaloneEditorConstructionOptions = {}) => {
if (!el.value) return
const javascriptModel = monaco.editor.createModel('', language)
initReadOnly = !!editorOption.readOnly
// 创建
monacoEditor = monaco.editor.create(el.value, {
model: javascriptModel,
// 是否启用预览图
minimap: { enabled: false },
// 圆角
roundedSelection: true,
// 主题
theme: designStore.getDarkTheme ? 'vs-dark' : 'vs',
// 主键
multiCursorModifier: 'ctrlCmd',
// 滚动条
scrollbar: {
verticalScrollbarSize: 8,
horizontalScrollbarSize: 8
},
// 行号
lineNumbers: 'off',
// tab大小
tabSize: 2,
//字体大小
fontSize: 16,
// 控制编辑器在用户键入、粘贴、移动或缩进行时是否应自动调整缩进
autoIndent: 'advanced',
// 自动布局
automaticLayout: true,
...editorOption
})
return monacoEditor
}
// 卸载
onBeforeUnmount(() => {
if (monacoEditor) monacoEditor.dispose()
})
return {
el,
updateVal,
getEditor: () => monacoEditor,
createEditor,
onFormatDoc
}
}

View File

@@ -0,0 +1,4 @@
import MonacoEditor from './index.vue';
import EditorWorker from './EditorWorker.vue';
export { MonacoEditor, EditorWorker };

View File

@@ -0,0 +1,92 @@
<template>
<div ref="el" class="go-editor-area" :style="{ width, height }"></div>
<EditorWorker></EditorWorker>
</template>
<script lang="ts" setup>
import { onMounted, watch, PropType } from 'vue'
import { useMonacoEditor } from './index.hook'
import { EditorWorker } from './index'
const props = defineProps({
width: {
type: String as PropType<string>,
default: '100%'
},
height: {
type: String as PropType<string>,
default: '90vh'
},
language: {
type: String as PropType<string>,
default: 'typescript'
},
preComment: {
type: String as PropType<string>,
default: ''
},
modelValue: {
type: String as PropType<string>,
default: ''
},
editorOptions: {
type: Object as PropType<object>,
default: () => ({})
}
})
const emits = defineEmits(['blur', 'update:modelValue'])
const { el, updateVal, getEditor, createEditor } = useMonacoEditor(props.language)
const updateMonacoVal = (_val?: string) => {
const { modelValue, preComment } = props
const val = preComment ? `${preComment}\n${_val || modelValue}` : _val || modelValue
updateVal(val)
}
onMounted(() => {
const monacoEditor = createEditor(props.editorOptions)
monacoEditor!.onDidChangeModelContent(() => {
emits('update:modelValue', monacoEditor!.getValue())
})
monacoEditor!.onDidBlurEditorText(() => {
emits('blur')
})
updateMonacoVal()
})
watch(
() => props.modelValue,
(val: string) => {
val !== getEditor()?.getValue() && updateMonacoVal(val)
}
)
</script>
<style lang="scss" scoped>
.go-editor-area {
position: relative;
border-radius: 4px;
overflow: hidden;
padding: 5px;
padding-left: 0;
box-sizing: border-box;
background-color: rgba(0, 0, 0, 0);
@include deep() {
.margin,
.monaco-editor,
.inputarea.ime-input {
background-color: rgba(0, 0, 0, 0);
}
.monaco-editor-background {
background-color: rgba(0, 0, 0, 0);
@include fetch-bg-color('filter-color-shallow');
}
.margin {
@include fetch-bg-color('filter-color-shallow');
}
}
}
</style>

View File

@@ -20,7 +20,7 @@
<div class="content-right">
<div class="color-name-detail">
<n-text v-if="appThemeDetail" class="color-name">{{ appThemeDetail.name }}</n-text>
<n-text v-else="appThemeDetail" class="color-name">中国色</n-text>
<n-text v-else class="color-name">中国色</n-text>
<n-text
v-if="appThemeDetail"
class="color-name-Pinyin"

View File

@@ -1,6 +1,7 @@
<!-- eslint-disable vue/valid-template-root -->
<template></template>
<script lang="ts" setup>
import { useDialog } from 'naive-ui';
import { useDialog } from 'naive-ui'
//挂载在 window 方便与在js中使用
window['$dialog'] = useDialog();
window['$dialog'] = useDialog()
</script>

View File

@@ -1,3 +1,4 @@
<!-- eslint-disable vue/valid-template-root -->
<template></template>
<script lang="ts" setup>

View File

@@ -1,7 +1,8 @@
<!-- eslint-disable vue/valid-template-root -->
<template></template>
<script lang="ts" setup>
import { useMessage } from 'naive-ui';
import { useMessage } from 'naive-ui'
//挂载在 window 方便与在js中使用
window['$message'] = useMessage();
window['$message'] = useMessage()
</script>

View File

@@ -37,7 +37,9 @@ const props = defineProps({
hidden: {
request: false,
type: Array,
default: []
default() {
return []
}
},
// 使用全屏功能
narrow: {
@@ -76,7 +78,7 @@ const btnList: {
icon: RemoveIcon
},
{
title: isFull ? '缩小' : '放大',
title: isFull.value ? '缩小' : '放大',
key: props.narrow ? 'fullResize' : 'resize',
icon: ResizeIcon
}

View File

@@ -1,26 +1,62 @@
// 页面拖拽键名
export enum DragKeyEnum {
DROG_KEY = 'ChartData'
// 鼠标点击左右键
export enum MouseEventButton {
LEFT = 1,
RIGHT = 2
}
// 右键枚举
// 页面拖拽键名
export enum DragKeyEnum {
DRAG_KEY = 'ChartData'
}
// 不同页面保存操作
export enum SavePageEnum {
CHART = 'SaveChart',
JSON = 'SaveJSON'
}
// 操作枚举
export enum MenuEnum {
// 移动
ARROW_UP = 'up',
ARROW_RIGHT = 'right',
ARROW_DOWN = 'down',
ARROW_LEFT = 'left',
// 删除
DELETE = 'delete',
// 复制
COPY = 'copy',
// 剪切
CUT = 'cut',
// 粘贴
PARSE = 'parse',
// 置顶
TOP = 'top',
// 置底
BOTTOM = 'bottom',
// 上移
UP = 'up',
// 下移
DOWN = 'down',
// 清空剪贴板
CLEAR = 'clear',
// 成组
GROUP = 'group',
// 解组
UN_GROUP = 'unGroup',
// 后退
BACK = 'back',
FORWORD = 'forward',
SAVE = 'save'
// 保存
SAVE = 'save',
// 锁定
LOCK = 'lock',
// 解除锁定
UNLOCK = 'unLock',
// 隐藏
HIDE = 'hide',
// 显示
SHOW = 'show'
}
// Win 键盘枚举
@@ -28,6 +64,9 @@ export enum WinKeyboard {
CTRL = 'ctrl',
SHIFT = 'shift',
ALT = ' alt',
CTRL_SOURCE_KEY = 'control',
SHIFT_SOURCE_KEY = 'shift',
ALT_SOURCE_KEY = 'alt'
}
// Mac 键盘枚举
@@ -36,6 +75,9 @@ export enum MacKeyboard {
CTRL = '⌘',
SHIFT = '⇧',
ALT = '⌥',
CTRL_SOURCE_KEY = '⌘',
SHIFT_SOURCE_KEY = '⇧',
ALT_SOURCE_KEY = '⌥'
}
// 同步状态枚举
@@ -48,4 +90,4 @@ export enum SyncEnum {
SUCCESS,
// 失败
FAILURE
}
}

View File

@@ -12,7 +12,7 @@ export enum ResultEnum {
SERVER_FORBIDDEN = 403,
NOT_FOUND = 404,
TOKEN_OVERDUE = 886,
TIMEOUT = 10042,
TIMEOUT = 60000,
}
// 数据相关
@@ -20,7 +20,15 @@ export enum RequestDataTypeEnum {
// 静态数据
STATIC = 0,
// 请求数据
AJAX = 1,
AJAX = 1
}
// 请求主体类型
export enum RequestContentTypeEnum {
// 普通请求
DEFAULT = 0,
// SQL请求
SQL = 1
}
// 头部
@@ -35,17 +43,91 @@ export enum RequestHttpEnum {
POST = 'post',
PATCH = 'patch',
PUT = 'put',
DELETE = 'delete',
DELETE = 'delete'
}
/**
* @description: 请求间隔
*/
export enum RequestHttpIntervalEnum {
// 秒
SECOND = 'second',
// 分
MINUTE = 'minute',
// 时
HOUR = 'hour',
// 天
DAY = 'day'
}
/**
* @description: 请求间隔名称
*/
export const SelectHttpTimeNameObj = {
[RequestHttpIntervalEnum.SECOND]: '秒',
[RequestHttpIntervalEnum.MINUTE]: '分',
[RequestHttpIntervalEnum.HOUR]: '时',
[RequestHttpIntervalEnum.DAY]: '天'
}
/**
* @description: 请求头部类型
*/
export enum RequestBodyEnum {
NONE = 'none',
FORM_DATA = 'form-data',
X_WWW_FORM_URLENCODED = 'x-www-form-urlencoded',
JSON = 'json',
XML = 'xml'
}
/**
* @description: 请求头部类型数组
*/
export const RequestBodyEnumList = [
RequestBodyEnum.NONE,
RequestBodyEnum.FORM_DATA,
RequestBodyEnum.X_WWW_FORM_URLENCODED,
RequestBodyEnum.JSON,
RequestBodyEnum.XML
]
/**
* @description: 请求参数类型
*/
export enum RequestParamsTypeEnum {
PARAMS = 'Params',
BODY = 'Body',
HEADER = 'Header',
}
/**
* @description: 请求参数主体
*/
export type RequestParamsObjType = {
[T: string]: string
}
export type RequestParams = {
[RequestParamsTypeEnum.PARAMS]: RequestParamsObjType
[RequestParamsTypeEnum.HEADER]: RequestParamsObjType
[RequestParamsTypeEnum.BODY]: {
[RequestBodyEnum.FORM_DATA]: RequestParamsObjType
[RequestBodyEnum.X_WWW_FORM_URLENCODED]: RequestParamsObjType
[RequestBodyEnum.JSON]: string
[RequestBodyEnum.XML]: string
}
}
// 常用的contentTyp类型
export enum ContentTypeEnum {
// json
JSON = 'application/json; charset=UTF-8',
JSON = 'application/json;charset=UTF-8',
// text
TEXT = 'text/plain; charset=UTF-8',
// form-data 一般配合qs
FORM_URLENCODED = 'application/x-www-form-urlencoded; charset=UTF-8',
TEXT = 'text/plain;charset=UTF-8',
// xml
XML = 'application/xml;charset=UTF-8',
// application/x-www-form-urlencoded 一般配合qs
FORM_URLENCODED = 'application/x-www-form-urlencoded;charset=UTF-8',
// form-data 上传
FORM_DATA = 'multipart/form-data; charset=UTF-8',
FORM_DATA = 'multipart/form-data;charset=UTF-8'
}

View File

@@ -12,6 +12,12 @@ export enum PreviewEnum {
CHART_PREVIEW_NAME = 'ChartPreview',
}
export enum EditEnum {
// 图表JSON编辑
CHART_EDIT = '/chart/edit/:id(.*)*',
CHART_EDIT_NAME = 'ChartEdit',
}
export enum PageEnum {
// 登录
BASE_LOGIN = '/login',

View File

@@ -2,4 +2,6 @@ export * from '@/hooks/useTheme.hook'
export * from '@/hooks/usePreviewScale.hook'
export * from '@/hooks/useCode.hook'
export * from '@/hooks/useChartDataFetch.hook'
export * from '@/hooks/useSystemInit.hook'
export * from '@/hooks/useSystemInit.hook'
export * from '@/hooks/useLifeHandler.hook'
export * from '@/hooks/useLang.hook'

View File

@@ -1,10 +1,10 @@
import { ref, toRefs, watchEffect, nextTick } from 'vue'
import { ref, toRefs, toRaw } from 'vue'
import type VChart from 'vue-echarts'
import { http } from '@/api/http'
import { CreateComponentType, PackagesCategoryEnum } from '@/packages/index.d'
import { customizeHttp } from '@/api/http'
import { CreateComponentType, ChartFrameEnum } from '@/packages/index.d'
import { useChartEditStore } from '@/store/modules/chartEditStore/chartEditStore'
import { RequestDataTypeEnum } from '@/enums/httpEnum'
import { isPreview } from '@/utils'
import { isPreview, newFunctionHandle, intervalUnitHandle } from '@/utils'
// 获取类型
type ChartEditStoreType = typeof useChartEditStore
@@ -17,60 +17,83 @@ type ChartEditStoreType = typeof useChartEditStore
*/
export const useChartDataFetch = (
targetComponent: CreateComponentType,
useChartEditStore: ChartEditStoreType,
useChartEditStore: ChartEditStoreType,
updateCallback?: (...args: any) => any
) => {
const vChartRef = ref<typeof VChart | null>(null)
let fetchInterval: any = 0
isPreview() &&
watchEffect(() => {
clearInterval(fetchInterval)
const requestIntervalFn = () => {
const chartEditStore = useChartEditStore()
const chartEditStore = useChartEditStore()
const { requestOriginUrl, requestInterval } = toRefs(
chartEditStore.getRequestGlobalConfig
)
const { requestDataType, requestHttpType, requestUrl } = toRefs(
targetComponent.data
)
if (requestDataType.value !== RequestDataTypeEnum.AJAX) return
// 全局数据
const {
requestOriginUrl,
requestIntervalUnit: globalUnit,
requestInterval: globalRequestInterval
} = toRefs(chartEditStore.getRequestGlobalConfig)
// 目标组件
const {
requestDataType,
requestUrl,
requestIntervalUnit: targetUnit,
requestInterval: targetInterval
} = toRefs(targetComponent.request)
// 组件类型
const { chartFrame } = targetComponent.chartConfig
// 非请求类型
if (requestDataType.value !== RequestDataTypeEnum.AJAX) return
try {
// 处理地址
if (requestUrl?.value && requestInterval.value > 0) {
// @ts-ignore
if (requestUrl?.value) {
// requestOriginUrl 允许为空
const completePath =
requestOriginUrl && requestOriginUrl.value + requestUrl.value
const completePath = requestOriginUrl && requestOriginUrl.value + requestUrl.value
if (!completePath) return
fetchInterval = setInterval(async () => {
const res = await http(requestHttpType.value)(completePath || '', {}) as unknown as MyResponseType
if (res.data) {
// 是否是 Echarts 组件
const isECharts =
targetComponent.chartConfig.package ===
PackagesCategoryEnum.CHARTS
clearInterval(fetchInterval)
const fetchFn = async () => {
const res = await customizeHttp(toRaw(targetComponent.request), toRaw(chartEditStore.requestGlobalConfig))
if (res) {
try {
if (isECharts && vChartRef?.value?.setOption) {
nextTick(() => {
if (vChartRef.value) {
vChartRef.value.setOption({ dataset: res.data })
}
})
} else {
// 若遵守规范使用 datase 作为数据 key则省自动赋值数据
targetComponent.option.dataset && (targetComponent.option.dataset = res.data)
const filter = targetComponent.filter
// eCharts 组件配合 vChart 库更新方式
if (chartFrame === ChartFrameEnum.ECHARTS) {
if (vChartRef.value) {
vChartRef.value.setOption({ dataset: newFunctionHandle(res?.data, res, filter) })
}
}
// 更新回调函数
if (updateCallback) {
updateCallback(res.data)
updateCallback(newFunctionHandle(res?.data, res, filter))
}
} catch (error) {
console.error(error)
}
}
}, requestInterval.value * 1000)
}
})
}
// 立即调用
fetchFn()
// 定时时间
const time = targetInterval && targetInterval.value ? targetInterval.value : globalRequestInterval.value
// 单位
const unit = targetInterval && targetInterval.value ? targetUnit.value : globalUnit.value
// 开启轮询
if (time) fetchInterval = setInterval(fetchFn, intervalUnitHandle(time, unit))
}
// eslint-disable-next-line no-empty
} catch (error) {
console.log(error)
}
}
isPreview() && requestIntervalFn()
return { vChartRef }
}

Some files were not shown because too many files have changed in this diff Show More