Go to file
奔跑的面条 fa84ee778c
!88 feat-unify-test 试验后端工厂和事件机制
Merge pull request !88 from Kenjjj201377/feat-unify-test
2022-10-25 02:23:17 +00:00
.husky feat: 新增commitlint 2022-06-15 17:18:39 +08:00
build build: 合并dev 1.0.5 版本, 修改fetch分支为2.0.2 2022-07-06 21:58:28 +08:00
plop fix: 修改plop的问题 2022-05-20 16:12:09 +08:00
public docs: 修改文档路径 2022-05-06 20:23:08 +08:00
readme docs: 修改 readme 图片展示 2022-08-10 16:05:34 +08:00
src fix: 整理文档 2022-10-25 00:05:52 +08:00
types Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch-dev 2022-10-15 17:20:05 +08:00
.commitlintrc.js feat: 新增commitlint 2022-06-15 17:18:39 +08:00
.env build: 修改请求地址 2022-05-31 11:19:17 +08:00
.eslintignore fix:路由处理,CSS处理,样式处理,全局变量处理 2021-12-14 15:53:30 +08:00
.eslintrc.js feat: 添加图层模式控制选项 2022-09-27 20:14:00 +08:00
.gitignore feat: 新增commitlint 2022-06-15 17:18:39 +08:00
index.css perf: 去除屏幕大小处理 2022-10-01 17:26:52 +08:00
index.html perf: 去除屏幕大小处理 2022-10-01 17:26:52 +08:00
LICENSE update LICENSE. 2022-08-29 12:19:15 +00:00
Makefile feat: 新增 preview 模式,修改打包后路径指向 2022-06-15 17:48:16 +08:00
package.json build: 修改版本号为2.1.0 2022-10-15 17:28:23 +08:00
pnpm-lock.yaml Merge branch 'dev' of https://gitee.com/MTrun/go-view into master-fetch-dev 2022-10-15 17:20:05 +08:00
prettier.config.js feat: 新增commitlint 2022-06-15 17:18:39 +08:00
README.md fix: 整理文档 2022-10-25 00:05:52 +08:00
tsconfig.json fix: 添加lint规则运行脚本,修复lint错误 2022-09-16 12:26:12 +08:00
vite.config.ts build: 升级版本到2.0.7 2022-09-18 17:23:16 +08:00
yarn.lock feat: 通用时间控件 2022-09-06 16:19:54 +08:00

总览

logo

master-fetch 分支是带有后端接口请求的分支

feat-unify-test 分支目标

  • 实现 backend 后端工厂 将后端业务逻辑集中到 backend 了,控制 BackEndFactory 就可以适配不同的后端。 伪代码如下: export const BackEndFactory = ():IBackend=>{ switch(项目后端配置){ case "无数据库": return new MockBackend() // 等同: -master ,没有存储 case "indexdb": return new IndexDbBackend() // 这次开发的,用 indexdb 做测试 case "java": return new JavaBackend() // 等同: -fetch 没 java 环境,还没做 case "python": return new PythonBackend() // 自定义开发的后端 。。。 其他 oss 、云平台的后端 。。。 }} 意义: 1 unify 统一 -fetch 和 master 分支,消除分支之间的差异。 2 方便接入不同的自定义后端平台。 3 前端存储功能让测试工作更加方便

  • 完善事件处理机制 在事件中修改图表配置 在事件中修改图表数据 在事件中调用图表 exposed 函数 数据驱动界面

试验功能1Backend 后端工厂

  • 对比 -fetch 分支,梳理后端逻辑到 backend 目录的 ibackend 接口
    • 登录 - login
    • 登出 - logout
    • 预览token 注入或单点登陆 - checkToken
    • 显示项目列表和分页 - projectList
    • 保存、发布、修改名称 - updateProject
    • 复制项目 - copyProject
    • 图表内的图片上传 - uploadFile
    • 上传图片显示处理 - getFileUrl
  • IndexDbBackend 用indexdb浏览器数据库实现了 project 相关所有功能。
  • Todo: 统一后端错误处理
  • Todo开发 javabackend适配现有的后端

试验功能2事件处理机制

  • 实现最常用的互动:找到图表元素、显示或隐藏、修改数据

  • 核心代码useLifeHandler.hook.ts

  • 在事件代码中通过 runtime 实现运行时刻的图表管理,提供基础函数:

    • selectComponents 选择多个图表
    • selectOneComponent 选择一个图表
    • getChartConfig 读取图表
    • setChartConfig 设置图表
    • callExposed 调用图表 exposed 的函数
  • 以下例子可以在点击事件中加入代码并预览,测试效果。

  • 例子1 切换显示名称为 饼图 和 柱状图 的图表: const range = runtime.fn.selectComponents("饼图 柱状图") const h = runtime.fn.getChartConfig(range, "hide") runtime.fn.setChartConfig(range, "hide", !h)

  • 例子2 修改一个名称 柱状图001 组件id 2wolqibrx3c000 的图表数据,以下两句等效 runtime.fn.setChartConfig("柱状图001", "dataset", {"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":130}]}) runtime.fn.setChartConfig("#2wolqibrx3c000", "dataset", {"dimensions":["product","data1","data2"],"source":[{"product":"Mon","data1":120,"data2":230}]})

  • 例子3 找到一个组并隐藏 const c = runtime.fn.selectOneComponent("分组") if(c){ console.log(runtime.fn.getChartConfig(c, "isGroup" )) runtime.fn.setChartConfig(c, "hide", true) }