# valuation **Repository Path**: stringlxd/valuation ## Basic Information - **Project Name**: valuation - **Description**: Valuation Editor是一个不含任何业务绑定的 计价编辑器,它可以通过扩展进行定制和扩展。 它的无业务绑定本质意味着它没有固定的业务约束,提供了完全的设计自由。可以根据业务需求进行定制。 设计思想是,通过扩展的方式,将编辑器与业务解耦,让编辑器可以支持任何业务,并且可以支持任何业务需求。 - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-06 - **Last Updated**: 2025-03-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Valuation Editor Valuation Editor是一个不含任何业务绑定的 计价编辑器,它可以通过扩展进行定制和扩展。 它的无业务绑定本质意味着它没有固定的业务约束,提供了完全的设计自由。可以根据业务需求进行定制。 设计思想是,通过扩展的方式,将编辑器与业务解耦,让编辑器可以支持任何业务,并且可以支持任何业务需求。 ### Valuation(计价)编辑器是如何工作的? - **框架兼容:** Valuation编辑器旨在跨不同的前端框架工作。也可以使用在nodejs deno 中运行, Valuation集成其他任何框架时都不会出现兼容性问题。. - **工作方式:** 定义基础节点和标记和约束,然后定义扩展添加行为。 - **rivet/model:** 基础数据的定义,包括节点(Node),标记(Mark),约束(Schema),片段(Fragment)等。 - **rivet/state:** 状态管理,主要负责状态的更新,插件的调度。 - **rivet/transform:** 事务的实现,类似java 的DB事务。保证操作的原子性,保证数据的一致性。可以扩展最小的操作单元。 - **valuation/core:** 组合model,state,transform 进一步实现编辑器的核心功能,添加并收集扩展. ### Valuation使用了哪些技术框架? - **immerjs:** Valuation编辑器使用immerjs进行基础数据定义,保证数据的不可变。 - **reselect:** Valuation编辑器使用reselect进行数据查询管理,保证数据的可预测性,添加查询缓存。 ### Valuation 框架设计思路 - **可扩展性:** Valuation设计为高度可扩展,允许开发者根据需求自定义编辑器的功能和行为。这包括插件系统,使得添加新功能变得简单,任何功能都可以扩展.例如:历史记录,撤销,重做。 - **模块化:** 整个框架被分解成多个独立的模块,每个模块负责编辑器的一个特定方面,如模型、状态管理、命令执行等。这种设计使得开发者可以根据项目需求选择性地引入所需模块。 - **命令模式:** 使用命令模式来处理编辑操作。每个编辑操作都被封装成一个命令对象,这样可以方便地撤销或重做操作,同时也有助于实现复杂的编辑逻辑。 - **状态管理:** 编辑器的状态被集中管理,所有对文档的修改都会触发状态的变化。这种设计有助于保持数据的一致性和可预测性。 ## 关于Valuation Valuation Editor,是基于当前计价软件延伸出来的,因此它与 计价 的业务无关,它只是 个大型的 的编辑器。 使用时 请安装TreeInfotip插件 ## License 计价软件内部团队使用请勿泄露。