# hf-rule-engine **Repository Path**: nm-gc/hf-rule-engine ## Basic Information - **Project Name**: hf-rule-engine - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-19 - **Last Updated**: 2025-10-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HF Rule Engine 一个基于 Vue3 + TypeScript + Element Plus 的规则引擎项目,提供可视化的规则构建和测试功能。 ## 功能特性 - 🎯 **可视化规则构建** - 通过拖拽和点击的方式构建复杂的业务规则 - 🔧 **丰富的函数库** - 内置逻辑、数值、字符串、日期等常用函数 - 📝 **表单字段管理** - 支持多种类型的表单字段定义和管理 - 🧪 **规则测试** - 提供完整的规则测试和验证功能 - 📊 **规则管理** - 支持规则的增删改查和版本管理 - 🎨 **现代化UI** - 基于 Element Plus 的美观界面设计 ## 技术栈 - **前端框架**: Vue 3.4+ - **开发语言**: TypeScript 5.3+ - **UI组件库**: Element Plus 2.4+ - **状态管理**: Pinia 2.1+ - **构建工具**: Vite 5.0+ - **包管理器**: pnpm - **样式预处理**: Sass ## 项目结构 ``` hf-rule-engine/ ├── src/ │ ├── components/ # 组件目录 │ │ ├── RuleBuilder.vue # 规则构建器 │ │ ├── RuleNodeComponent.vue # 规则节点组件 │ │ ├── FormFieldManager.vue # 表单字段管理 │ │ ├── RuleList.vue # 规则列表 │ │ └── RuleTest.vue # 规则测试 │ ├── views/ # 页面目录 │ │ └── Home.vue # 主页面 │ ├── stores/ # 状态管理 │ │ └── ruleStore.ts # 规则状态管理 │ ├── types/ # 类型定义 │ │ └── index.ts # 通用类型 │ ├── utils/ # 工具函数 │ │ ├── ruleEngine.ts # 规则引擎核心 │ │ └── functions.ts # 预定义函数库 │ ├── assets/ # 静态资源 │ │ └── styles/ # 样式文件 │ ├── router/ # 路由配置 │ ├── App.vue # 根组件 │ └── main.ts # 入口文件 ├── package.json # 项目配置 ├── vite.config.ts # Vite配置 ├── tsconfig.json # TypeScript配置 └── README.md # 项目说明 ``` ## 快速开始 ### 环境要求 - Node.js 18.0+ (推荐使用 22.16.0) - pnpm 8.0+ ### 安装依赖 ```bash # 使用 pnpm 安装依赖 pnpm install ``` ### 开发运行 ```bash # 启动开发服务器 pnpm dev ``` 访问 http://localhost:3000 查看应用 ### 构建部署 ```bash # 构建生产版本 pnpm build # 预览构建结果 pnpm preview ``` ## 使用指南 ### 1. 字段管理 在"字段管理"页面中,您可以: - 添加各种类型的表单字段(文本、数值、日期、布尔、选择) - 配置字段的属性和验证规则 - 管理字段的默认值和选项 ### 2. 规则构建 在"规则构建"页面中,您可以: - 从左侧函数面板选择需要的函数 - 通过拖拽和点击的方式构建规则表达式 - 为函数参数选择表单字段或常量 - 实时预览规则表达式 ### 3. 规则管理 在"规则列表"页面中,您可以: - 查看所有已创建的规则 - 编辑和删除现有规则 - 测试单个规则的执行效果 ### 4. 规则测试 在"规则测试"页面中,您可以: - 输入测试数据 - 选择要测试的规则 - 批量执行规则并查看结果 ## 内置函数 ### 逻辑函数 - `IF` - 条件判断 - `AND` - 逻辑与 - `OR` - 逻辑或 - `NOT` - 逻辑非 ### 数值函数 - `SUM` - 求和 - `SUBTRACT` - 减法 - `MULTIPLY` - 乘法 - `DIVIDE` - 除法 - `MAX` - 最大值 - `MIN` - 最小值 ### 字符串函数 - `SUBSTR` - 截取字符串 - `CONCAT` - 连接字符串 - `LENGTH` - 字符串长度 - `UPPER` - 转大写 - `LOWER` - 转小写 ### 日期函数 - `GETDATE` - 当前日期 - `DATEDIFF` - 日期差 - `DATEADD` - 日期加法 ### 条件函数 - `EQUALS` - 等于 - `GREATER_THAN` - 大于 - `LESS_THAN` - 小于 - `CONTAINS` - 包含 ## 开发说明 ### 添加新函数 1. 在 `src/utils/functions.ts` 中定义新函数 2. 在 `src/utils/ruleEngine.ts` 中实现函数逻辑 3. 更新函数类型定义 ### 自定义组件 所有组件都使用 TypeScript 编写,支持完整的类型检查。组件间通过 props 和 emit 进行通信。 ### 状态管理 使用 Pinia 进行状态管理,所有状态变更都通过 store 进行。 ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request 来改进这个项目。 ## 更新日志 ### v1.0.0 - 初始版本发布 - 支持基本的规则构建和测试功能 - 内置常用函数库 - 提供完整的UI界面