Commit Graph

836 Commits

Author SHA1 Message Date
“chenhuachun”
1c0fdea2da ci: 👷commit 2026-08-08 10:29:59 +08:00
“chenhuachun”
613d5f8734 fix(provider): 优化区块文件加载错误处理机制
- 调整异步加载区块文件逻辑,改为统一使用 await
- 添加获取文件失败时的错误处理,调用 errorHandler 并传入错误信息
- 增强区块不存在时的提示,明确指出具体区块 ID
- 保持原有调用链与返回类型不变,提高代码鲁棒性
2026-08-05 22:35:55 +08:00
“chenhuachun”
1c8f88e507 fix(renderer): 修正 scoped CSS 中无父选择器的编译行为
- 当无父选择器时,按 Vue 官方 scoped 语义将 :deep(.child) 转换为 [scopeId] .child,
  使 scopeId 作为前缀匹配组件根元素内部目标元素
- 修改 compileScoped 以支持上述行为,确保样式正确作用于子元素
- 增加单元测试校验无父选择器的 scoped CSS 转换结果
- 增加运行时集成测试,验证组件根元素携带 scope 属性,
  内部元素不携带且样式选择器匹配正确
- 优化部分测试代码格式,提升一致性和可读性
2026-08-05 11:27:49 +08:00
“chenhuachun”
7fa3e1ffbd ci: 👷commit 2026-08-01 14:30:58 +08:00
“chenhuachun”
d0b3091b2a ci: 👷commit 2026-08-01 12:40:02 +08:00
“chenhuachun”
eb891ed6ce feat(designer): 支持组合式函数名称解析与显示
- 新增 getComposableNames 方法,用于获取组合式函数及其解构名称
- useBinder 钩子中增加组合式函数选项展示
- defined 组件中添加组合式函数信息的展示逻辑
- 为 getComposableNames 添加单元测试,确保正确解析组合式函数名称
- useBinder 添加单元测试,验证组合式函数展示项包含正确名称

fix(renderer): 支持组件默认值深克隆与空属性处理

- render block 组件属性默认值支持深度克隆,避免引用共享问题
- render node 深度解析 props 时,增加 null 值判断,正确处理空属性
- 增加运行时集成测试,验证 null 值 prop 能够被正确传递和渲染
- 增加测试确保每个组件实例的对象与数组 prop 默认值相互独立,避免状态污染
2026-08-01 12:24:17 +08:00
“chenhuachun”
4c6ee2b76c Merge remote-tracking branch 'origin/next' into dev-renderer
# Conflicts:
#	packages/designer/src/utils.ts
2026-08-01 10:40:32 +08:00
“chenhuachun”
7f6134fbb6 ci: 👷commit 2026-07-23 20:15:00 +08:00
“chenhuachun”
3e245ea6b6 ci: 👷commit 2026-07-20 21:01:20 +08:00
“chenhuachun”
529878f243 fix(renderer): 优化Composition模式与v-model实现并增强样式处理
- 修复Provider中getDslByUrl请求失败缓存清理问题及重试逻辑
- 重构block渲染逻辑,延后执行composables以确保refs和reactives可用
- 在setup中优先注册provide和Composition生命周期钩子,支持生命周期异步执行
- 修改vNativeModelRender,支持checkbox、radio、select的v-model修饰符处理
- 调整vModelRender支持自定义组件并传递有效的modifiers作为props
- 优化样式模块adoptedStyleSheets,避免重复构建并支持replaceSync能力检测
- 移除block渲染时不必要的响应式访问以提升性能
- 增加多个单元测试覆盖v-model修饰符、Provider重试以及样式处理边界情况
- 修正节点渲染时事件与props分离逻辑,保证事件处理器上下文正确绑定
- 增强Runtime集成测试,覆盖provide/inject生命周期及composable参数解析场景
2026-07-19 22:37:14 +08:00
“chenhuachun”
afd0788bd8 feat(renderer): 支持可写计算属性绑定上下文
- 在解析表达式时,绑定 computed 的 get 和 set 方法到上下文对象
- 确保可写计算属性的 getter/setter 被正确绑定和调用
- 添加运行时集成测试,验证计算属性的读写和事件触发功能
- 测试中模拟输入控件双向绑定,实现对计算属性的动态赋值和监听
2026-07-19 13:29:38 +08:00
“chenhuachun”
caf78bf48f chore(core): 升级版本至0.13.5并完善加载器缓存管理
- 将版本号从0.13.4更新到0.13.5
- Renderer类中新增loader属性并在渲染流程中处理loader缓存
- 调用clearLoaderCache时传入当前loader实例并在适当时机清空loader
- 在page.ts中修正缓存meta读取逻辑,确保route.meta正常访问
- Provider中修正项目平台访问方式,避免项目平台判断错误
- block.ts中渲染返回对象新增loader字段
- utils中优化模块加载逻辑,移除重复查找过程
- 新增loader实例缓存清理测试用例,验证clearLoaderCache调用clear方法
- page-route.spec.ts和provider-components.spec.ts中新增激活缓存相关测试覆盖
- provider.spec.ts中新增基于项目平台决定路由初始化测试
- util.test.ts新增依赖脚本加载测试,确保资源二次加载行为正确
2026-07-19 13:01:43 +08:00
“chenhuachun”
882a35df83 refactor(renderer): 优化上下文缓存和加载器管理逻辑
- 替换 binder.vue 中的缓存清理,改用 context.__cache.clear()
- 将 RendererMenuDataItem 类型替换原 MenuDataItem,优化菜单数据结构及过滤逻辑
- 修改 access 插件存储,支持 session 类型存储并完善测试覆盖
- PageContainer 组件支持路由变化自动加载和更新页面组件及标题
- Provider 初始化流程添加 initialization Promise,支持异步初始化状态查询
- NodeCache 改为导出类,context 中添加独立缓存实例保证隔离
- loader 模块重构,局部维护插件和异步组件缓存,新增 clear 方法支持缓存清理
- nodeRender 中事件绑定改进,完整支持 Vue 事件修饰符映射
- parseExpression 调整,支持返回函数时正确绑定上下文
- 动态脚本加载改为顺序等待加载并复用加载状态,避免重复加载
- memory 服务修复删除历史数据时同步清理字典错误
- 新增多项测试覆盖,包括 context 缓存隔离、加载器缓存隔离、事件修饰符映射和路由组件刷新
- 修正多处测试中对依赖的模拟与用法,提升测试可靠性和准确性
2026-07-19 11:52:30 +08:00
“chenhuachun”
d7ecf513d1 ci: 👷commit 2026-07-18 21:31:47 +08:00
“chenhuachun”
8fef119fc4 chore(parser): 优化 Vue 组件 computed 支持及脚本解析容错
- 支持 computed 选项中对象字面量(get/set)形式的表达式解析
- script 解析失败时,增加表达式上下文包裹尝试,提升对复杂语法的兼容
- scriptSetup 中 computed 支持 JSFunction 和 JSExpression 两种类型
- 调整方法、监听器、生命周期函数类型定义,支持 JSExpression
- 优化 methods 和 watchers 的类型断言
- 将版本号升级到 0.13.4

fix(renderer): 同步上下文属性时避免共享不应共享状态

- 使用 Object.assign 代替逐个属性赋值,确保全局注入属性同步
- 清理 sharedContext 中不应共享的 per-instance 内部状态字段
- 修正测试用例中 onMounted 调用次数,匹配实际调用逻辑
2026-07-18 21:22:35 +08:00
“chenhuachun”
49ee33e721 ci: 👷commit 2026-07-15 20:34:46 +08:00
“chenhuachun”
ed1f601816 ci: 👷commit 2026-07-15 20:32:08 +08:00
“chenhuachun”
f36d070530 fix(renderer): 同步运行时上下文及排除无意义属性
- 扩展排除列表,过滤掉 Vue 组件上下文中用户无意义的 Object.prototype 方法
- 在实例挂载后同步 $el 等延迟生成的属性到 sharedContext
- 实现 syncContextFields 函数,将 per-instance context 关键字段同步回 sharedContext
- 保证设计器 Viewer 和相关功能能立即且完整地获取最新的运行时上下文
- 同步 CONTEXT_HOST 中定义的 Vue 组件实例属性,提升上下文一致性
2026-07-14 20:54:11 +08:00
“chenhuachun”
75928d1844 ci: 👷commit 2026-07-11 18:22:29 +08:00
“chenhuachun”
483cbb051f fix(renderer): 修复 v-if 条件链处理逻辑
- 新增对 v-if 指令的检测,避免跨条件链匹配 v-else
- 遇到新的 v-if 时停止当前遍历,防止错误关联后续 v-else
- 保持对 v-else-if 表达式的正确解析和渲染调用
- 改进条件链判断提升渲染准确性和稳定性
2026-07-11 18:19:14 +08:00
“chenhuachun”
b13982dcc5 ci: 👷commit 2026-07-11 16:44:07 +08:00
“chenhuachun”
496dbd94eb feat(renderer): 修复props响应式追踪问题
- 为组合式API中每个prop定义响应式getter,代理到context.$props
- 解决props展开为纯值后watch无法追踪变化的issue
- 忽略props setter,保证只读属性行为
- 在inject处理逻辑中通过代理访问props,建立响应式依赖追踪
- 优化子组件props响应式更新,确保watch能够正确触发
2026-07-11 16:39:38 +08:00
“chenhuachun”
32536fa33b ci: 👷commit 2026-07-10 22:03:12 +08:00
“chenhuachun”
c6c71a3ca7 fix(renderer): 修复事件处理器缓存导致上下文错用问题
- 分离事件处理器属性(onXxx)避免纳入缓存
- 防止 scoped slot 场景下复用旧事件处理器造成上下文错误
- 只缓存非事件处理器及非 ref 的属性,确保事件处理器通过闭包绑定正确上下文
- 保持原有 ref 处理逻辑不变
- 优化 vnode 创建时事件属性的合并逻辑
2026-07-10 20:17:20 +08:00
“chenhuachun”
1168f4a97b ci: 👷commit 2026-07-10 17:40:24 +08:00
“chenhuachun”
634bdf277d fix(renderer): 修复 Context 同步以支持 vFor 等指令
- 修改节点渲染逻辑,避免提前返回,确保统一处理
- 添加实例级 Context 的 __contextRefs 回写至 sharedContext
- 确保设计器 useBinder 正确读取运行时上下文变量
- 优化多节点渲染时的 Vue VNode 创建流程
2026-07-10 17:37:04 +08:00
“chenhuachun”
3343db06e8 ci: 👷commit 2026-07-09 15:23:24 +08:00
“chenhuachun”
81c0ed0733 ci: 👷commit 2026-07-09 15:00:56 +08:00
“chenhuachun”
c9d291e9a4 ci: 👷commit 2026-07-07 20:12:56 +08:00
“chenhuachun”
5ec0019a7d ci: 👷commit 2026-07-05 17:56:52 +08:00
“chenhuachun”
cfdd771d22 fix(renderer): 修复 ref 回调缓存导致的旧回调覆盖问题
- 新增 ref 代次生成机制,避免旧异步回调误删新 ref 的 $refs 条目
- 在 context 中重置 ref 代次计数器,确保状态清晰
- 在生成 ref 函数时检查代次,旧回调失效后不执行卸载操作
- render 节点渲染时剥离 ref,避免缓存导致旧 ref 复用
- 保证每次 render 都应用最新的 ref 回调,防止 Vue 丢失 $refs
2026-07-05 17:40:28 +08:00
“chenhuachun”
88d0428a8f ci: 👷commit 2026-07-04 11:58:54 +08:00
“chenhuachun”
714b3af2e8 fix(renderer): 防止多实例共享 Context 导致 props 覆盖问题
- 为每个组件实例在 setup 中创建独立 Context,避免多实例间 props 和 state 互相覆盖
- 保留共享 Context 用于组件定义时的初始解析(如 props 默认值)
- 生命周期调用优先使用实例级 Context,防止状态错乱
- 渲染函数中使用实例级 Context,setup 未执行时回退到共享 Context
- 新增单元测试验证多实例渲染时 props 隔离性,确保上下文独立性
2026-07-04 11:54:41 +08:00
“chenhuachun”
dd966cb548 ci: 👷commit 2026-07-02 12:02:17 +08:00
“chenhuachun”
a9ddf244d9 fix(renderer): 修复 parseExpression 中作用域变量名错误问题
- 将渲染器解析代码中 __self 变量赋值由 arguments[0] 修改为 $scope,避免与 arguments 对象冲突
- 添加单元测试,验证当上下文包含 arguments 属性时,parseExpression 正确使用 this 指向和作用域访问
- 测试覆盖空表达式返回 undefined 的情况保持不变,确保无副作用
2026-07-02 11:56:09 +08:00
“chenhuachun”
5af1cdb94a ci: 👷commit 2026-07-01 16:26:11 +08:00
“chenhuachun”
63695405f7 feat(renderer): 增加区块循环引用检测机制
- 在渲染链中引入区块 ID 的 provide/inject 机制,用于传递渲染路径上的区块集合
- 实现检测当前区块是否已存在于祖先链中,避免循环引用导致浏览器崩溃
- 对检测到循环引用的区块,中断渲染并返回特殊标记 __vtjCircular
- 在渲染函数中判断该标记,若存在则不渲染内容,防止无限递归
- 新增单元测试覆盖区块循环引用检测逻辑和相关渲染行为
- 升级版本号至 0.13.1
2026-07-01 16:22:29 +08:00
“chenhuachun”
542de85947 ci: 👷commit 2026-06-28 20:47:54 +08:00
“chenhuachun”
1baafd05e4 fix(renderer): 修复全局属性初始化和状态引用问题
- 在designer框架中将全局属性$pinia初始化为null,防止未定义错误
- 修正block渲染模块中状态对象引用,统一使用context.$state替代context.state
- 保持状态对象一致性,防止潜在状态同步问题
2026-06-28 20:43:28 +08:00
“chenhuachun”
de5645775f ci: 👷commit 2026-06-28 15:33:51 +08:00
“chenhuachun”
e456bfb99c ci: 👷commit 2026-06-28 15:31:03 +08:00
“chenhuachun”
d7857e78d0 fix: prevent duplicate Pinia initialization in runtime globals
Check if Pinia is already installed on the app before creating a new instance. This avoids conflicts when `createStore` is called multiple times or when Pinia has been set up externally.
2026-06-28 15:27:19 +08:00
“chenhuachun”
821b24b5bd fix(renderer): 在解析表达式错误时附加错误信息
- 捕获解析表达式时的异常
- 在错误对象中添加原始表达式内容作为错误信息
- 保持现有的错误日志记录和错误触发功能
2026-06-24 13:35:23 +08:00
“chenhuachun”
73b7cc7dd2 ci: 👷commit 2026-06-24 12:42:13 +08:00
“chenhuachun”
4bacf93607 ci: 👷commit 2026-06-24 11:50:28 +08:00
“chenhuachun”
23d5d90f1a refactor(renderer): 调整响应式依赖访问顺序和模板结构
- 调整模板中 state 的插入位置,确保顺序正确
- 重新排序响应式依赖访问代码块,优化对 state 与 computed 的处理顺序
- 保留对 reactives 的访问,完善依赖收集逻辑
- 注释调整,增强代码可读性与维护性
2026-06-23 19:42:22 +08:00
“chenhuachun”
8f77eece51 ci: 👷commit 2026-06-22 20:38:24 +08:00
“chenhuachun”
546c1ca120 fix(renderer): 修复响应式依赖与 props 同步问题
- 强制遍历 DSL 中数据源确保建立响应式依赖,解决表达式响应更新问题
- 在渲染上下文中同步最新 props 到 context,保证表达式获取最新属性值
- 移除无用的版本测试代码
- 更新库版本号至 0.13.0
2026-06-22 20:34:17 +08:00
“chenhuachun”
592bb400ec ci: 👷commit 2026-06-22 17:30:41 +08:00
“chenhuachun”
1c3f8767ea ci: 👷commit 2026-06-22 16:46:27 +08:00