低代码表单搭建 · 工作流自动化 · AI智能助手
打开平台首页,输入手机号和密码即可登录。
子账号使用用户名(不是手机号)和密码登录。子账号的权限由管理员在「成员管理」中设置。
访问 /admin.html 进入管理后台,使用超级管理员账号登录。管理后台可以管理所有客户。
表单是平台的核心概念。每个表单相当于一个独立的数据采集表单,有自己的字段、脚本和数据。
1 点击首页的 「搭建新表单」 按钮
2 进入搭建器页面,设计表单
3 点击 「保存」 完成创建
| 类型 | 说明 | 适用场景 |
|---|---|---|
| 普通表单 | 标准数据采集表单 | 报名、签到、订单、调查问卷 |
| 仪表盘 | 数据可视化展示 | 数据分析、经营看板 |
| 数据池 | 大批量数据存储 | 生产排期、Excel大表读写 |
在表单卡片上点击 「查看数据」,进入独立数据页面。支持:
主表单会在客户首页直接显示。点击表单卡片的 「设为主表单」 即可。
在 /files.html 页面可以管理表单上传的附件文件。
搭建器是一个可视化的表单设计器,通过拖拽组件来设计表单。
| 组件 | 说明 | 用途 |
|---|---|---|
| 文本输入 | 单行文本输入框 | 姓名、手机号、编号 |
| 数字输入 | 数值输入框 | 数量、金额、年龄 |
| 下拉选择 | 选项列表 | 分类、状态选择 |
| 日期选择 | 日期选择器 | 生日、截止日期 |
| 多行文本 | 多行文本区域 | 备注、详细描述 |
| 成员选择 | 从组织成员中选择 | 审批人、负责人 |
| 子表单 | 可增删行的明细表格 | 订单明细、考勤记录 |
| 标签 | 纯文字说明 | 标题、提示信息 |
| 按钮 | 操作按钮 | 提交、重置、自定义操作 |
| 弹窗 | 弹出提示框 | 确认、警告、成功提示 |
| 图片上传 | 图片/文件上传 | 照片、附件、凭证 |
| 扫码输入 | 扫描二维码/条码 | 设备编号、产品追溯 |
| 定位 | 获取地理位置 | 签到打卡、巡检定位 |
| 签名 | 手写签名 | 确认签字、验收签名 |
| 柱状图 | 柱状图组件(仪表盘用) | 数据对比 |
| 折线图 | 折线图组件(仪表盘用) | 趋势展示 |
| 饼图 | 饼图组件(仪表盘用) | 占比分析 |
1 从左栏拖拽组件到画布
2 在画布上调整组件位置(拖拽)和大小(拖拽边框)
3 点击组件,在右栏编辑属性(标签、字段名、必填等)
4 点击 「保存」 按钮保存
data.字段名),建议使用英文或拼音点击搭建器顶部的 「整体设置」 按钮,可以设置:
计算脚本可以在用户填写表单时自动执行计算,输出结果到指定字段。
在搭建器中点击 「计算脚本」 按钮,打开脚本编辑器。
每个脚本由三部分组成:
使用 data.字段名 获取表单字段的值:
var 名字 = data.姓名; // 获取文本值
var 价格 = toNum(data.单价); // 获取数字值
var 日期 = data.下单日期; // 获取日期值
使用 result.字段名 = 值 设置输出:
result.总价 = toNum(data.单价) * toNum(data.数量);
result.状态 = '已完成';
result.备注 = data.姓名 + ' 的订单';
设置脚本在什么条件下执行:
| 条件类型 | 说明 |
|---|---|
| 值变化 | 当字段值发生变化时触发 |
| 等于 | 字段值等于指定值 |
| 不等于 | 字段值不等于指定值 |
| 大于/小于 | 数值比较 |
| 为空/非空 | 字段是否有值 |
多个条件可以设置为「全部满足」(AND)或「任一满足」(OR)。
| 函数 | 说明 | 示例 |
|---|---|---|
toNum(v) | 转为数字,失败返回0 | toNum(data.数量) |
toStr(v) | 转为文本 | toStr(data.编号) |
toPct(v, d) | 转为百分数 | toPct(0.85, 1) → "85.0%" |
toFixed(v, d) | 保留d位小数 | toFixed(3.14159, 2) → "3.14" |
splitStr(v, sep) | 按分隔符拆分文本 | splitStr("a,b,c", ",") → ["a","b","c"] |
joinStr(arr, sep) | 用分隔符拼接数组 | joinStr([1,2,3], "-") → "1-2-3" |
showPopup(id) | 显示弹窗组件 | showPopup('popup_提示') |
closePopup(id) | 关闭弹窗组件 | closePopup('popup_提示') |
setSfRows(key, n) | 设置子表单行数 | setSfRows('明细', 5) |
scanDecode() | 触发扫码解码 | 配合扫码输入组件使用 |
printForm(tplId) | 打印表单 | 配合打印模板使用 |
你可以在脚本中定义自己的函数,然后调用它:
// 定义一个折扣计算函数
function 计算折扣(原价, 折扣率) {
var p = toNum(原价);
var r = toNum(折扣率);
if (r <= 0 || r > 1) r = 1;
return p * r;
}
// 调用函数
result.折后价 = 计算折扣(data.原价, data.折扣率);
子表单的每一列在脚本中表现为数组:
// 假设子表单字段名是「明细」,有「数量」和「单价」两列
var 总金额 = 0;
for (var i = 0; i < 明细_数量.length; i++) {
总金额 += toNum(明细_数量[i]) * toNum(明细_单价[i]);
}
result.总金额 = toFixed(总金额, 2);
设置子表单行数可以用简写:
明细=5行 // 等价于 setSfRows('明细', 5)
子表单=10行 // 等价于 setSfRows('子表单', 10)
多个触发条件的脚本可以共享变量。在一个脚本中定义的变量,其他脚本可以读取。这允许你将复杂逻辑拆分为多个小脚本,各自负责不同的计算。
脚本支持定时轮询执行,无需用户操作。在脚本设置中开启「静默轮询」,设置间隔时间(秒),脚本会自动周期性执行。适用于实时计算、定时校验等场景。
Math - 数学运算:Math.round(), Math.max(), Math.min(), Math.abs() 等Date - 日期时间:new Date(), getFullYear(), getMonth()+1 等JSON - JSON处理:JSON.parse(), JSON.stringify()parseInt() / parseFloat() - 数值解析String - 文本操作:.trim(), .replace(), .includes() 等Array - 数组操作:.length, .push(), .indexOf() 等RegExp - 正则表达式:/^\d+$/.test(value)var 金额 = toNum(data.金额);
if (金额 >= 1000) {
result.等级 = 'VIP客户';
result.折扣 = 0.8;
} else if (金额 >= 500) {
result.等级 = '高级客户';
result.折扣 = 0.9;
} else {
result.等级 = '普通客户';
result.折扣 = 1;
}
// 定义计算单行金额的函数
function 行金额(数量, 单价) {
return toNum(数量) * toNum(单价);
}
var 总数量 = 0;
var 总金额 = 0;
for (var i = 0; i < 明细_数量.length; i++) {
总数量 += toNum(明细_数量[i]);
总金额 += 行金额(明细_数量[i], 明细_单价[i]);
}
result.总数量 = 总数量;
result.总金额 = toFixed(总金额, 2);
var errors = [];
// 检查手机号格式
if (data.手机号 && !/^1\d{10}$/.test(data.手机号)) {
errors.push('手机号格式不正确');
}
// 检查年龄范围
var 年龄 = toNum(data.年龄);
if (年龄 < 0 || 年龄 > 150) {
errors.push('年龄应在0-150之间');
}
if (errors.length > 0) {
result.校验结果 = '错误: ' + joinStr(errors, '; ');
} else {
result.校验结果 = '校验通过';
}
管理员可以在「成员管理」中添加和管理子账号。
1 点击 「添加成员」
2 填写用户名和密码
3 设置角色和权限
4 保存
每个成员可以维护个人信息:
通过角色管理权限,每个角色可配置菜单权限和按钮权限:
支持树形部门结构,成员可归属到不同部门。部门可用于审批流程中的通知范围筛选。
平台采用5层权限体系,从粗到细精确控制访问。
| 层级 | 说明 | 示例 |
|---|---|---|
| 菜单权限 | 控制能否看到某个功能菜单 | 搭建器、工作流、数据工厂 |
| 按钮权限 | 控制能否执行某个操作 | 新增、删除、导出 |
| 表单权限 | 按表单控制操作权限 | 打印、查看、导出、导入 |
| 字段权限 | 控制字段是否可见/可编辑 | 成本价、利润字段 |
| 行级权限 | 控制只能看到自己提交的数据 | 普通成员只看自己的记录 |
权限组用于批量管理成员权限:
打印、查看、导出、导入等操作支持按表单单独配置。在搭建器的「权限设置」标签页中,可以指定哪些角色/成员可以在该表单中执行这些操作。
工作流用于定义跨表单的数据流转逻辑。通过可视化的节点连线,定义数据从一个环节到另一个环节的流转。
| 节点 | 说明 |
|---|---|
| 触发器 | 工作流的起点,监听表单提交事件 |
| 查询数据 | 从表单中查询数据 |
| 设置变量 | 定义和赋值变量 |
| 计算脚本 | 执行数据计算 |
| 发送API | 调用外部接口 |
| 修改数据 | 更新已有数据 |
| 添加数据 | 向表单中添加新数据 |
| 条件判断 | 根据条件走不同分支 |
| 通知 | 发送通知给指定成员 |
| 结束 | 工作流终点 |
1 从左栏拖拽节点到画布
2 点击节点,在右栏配置属性
3 从一个节点的输出端口拖线到下一个节点的输入端口
4 保存并启用工作流
工作流支持配置预警规则。当数据达到预警条件时,自动发送通知给指定人员:
审批流程用于需要人工审批的业务场景,如请假审批、报销审批等。
在搭建器的「审批流程」标签页中,通过画布编辑器设计审批流程:
在首页点击 「审批」 标签,可以看到:
数据工厂用于跨表单的数据整合和分析,通过管道式处理流程,将多个数据源合并、转换、输出。
| 节点 | 说明 |
|---|---|
| 数据源 | 从表单中获取数据 |
| 过滤 | 按条件筛选数据 |
| 映射 | 字段计算和转换 |
| 分组聚合 | 按字段分组并计算汇总 |
| 排序 | 按字段排序 |
| 连接 | 关联两个数据源(类似SQL JOIN) |
| 合并 | 将多个数据源合并(UNION) |
| 限制 | 限制输出行数 |
| 输出 | 将结果保存到数据库或生成报表 |
数据工厂支持定时执行。在配置中设置 cron 表达式,如:
0 9 * * * - 每天上午9点执行*/30 * * * * - 每30分钟执行一次0 0 * * 1 - 每周一零点执行设备终端功能可以将表单打包为独立应用,部署到设备上运行,实现数据自动采集。
| 协议 | 说明 |
|---|---|
| TCP | 通过TCP连接接收设备数据 |
| UDP | 通过UDP接收设备数据 |
| 串口 | 通过串口(COM口)接收数据 |
| HTTP | 通过HTTP接口接收数据推送 |
1 在搭建器的「设备配置」标签页中配置
2 选择协议类型
3 设置数据格式(JSON/分隔符/定长)
4 配置字段映射(设备字段 → 表单字段)
5 保存后可以通过打包功能导出独立HTML
设备配置页面内嵌脚本编辑器,可以为设备数据编写处理脚本,实现数据校验、转换和自动计算。
平台内置AI助手,可以通过自然语言对话来查询数据、分析业务、生成报表。
在「系统设置」中配置AI功能:
在搭建器和数据查看页面,点击右侧的AI助手图标打开侧边栏,直接对话操作。
平台支持钉钉、飞书机器人推送消息,以及通讯录同步。
通知dingxxxxxxxxxx。
如需从钉钉同步组织架构和成员:
contact:department.base:readonly — 读取部门contact:user.base:readonly — 读取用户https://你的域名/api/feishu/eventim.message.receive_v1(接收消息)左侧菜单 「权限管理」,搜索并开通以下权限:
| 权限名 | 说明 | 用途 |
|---|---|---|
im:message:send_as_bot | 以机器人身份发送消息 | 推送通知 |
im:message:receive_v1 | 接收消息事件 | 接收用户@机器人消息 |
contact:user.base:readonly | 读取用户基本信息 | 通讯录同步 |
contact:department.base:readonly | 读取部门基本信息 | 通讯录同步 |
contact:user.base:readonly,不是 contact:user:readonly!写错了会返回 40004 错误。在平台 「成员管理」 页面,点击 「同步通讯录」:
+8613379300835),平台会自动去除 +86 前缀进行匹配。配置好机器人后,可以在 「通知设置」 中配置通知规则:
支持的通知触发事件:
A: 检查以下几点:
https://oapi.dingtalk.com/robot/send?access_token= 开头)A: 检查以下几点:
im:message:send_as_bot 权限A: 检查以下几点:
contact:user.base:readonly 和 contact:department.base:readonlyA: 检查以下几点:
https://你的域名/api/feishu/event打印模板用于将表单数据格式化输出,支持打印和导出PDF。
在搭建器的「打印模板」标签页中:
${字段名}在数据查看页面,选中记录后点击「打印」按钮,选择模板即可打印或导出PDF。
模块商城提供预制的业务模块模板,可以一键安装使用。
在首页点击「模块商城」,可以浏览可用的模块模板:
1 选择需要的模块
2 点击「预览」查看模块内容
3 点击「安装」导入到你的平台
4 安装后可自行修改调整
A: 检查以下几点:
A: 子表单的每一列在脚本中是一个数组。例如子表单字段名是「明细」,有「数量」列,则用 明细_数量 获取该列的所有值(数组)。也可以用简写语法 明细=5行 设置行数。
A: 表单字段的值默认是文本类型,在计算前必须用 toNum() 转为数字。例如 toNum(data.单价) * toNum(data.数量)。
A: 在「成员管理」中创建角色,为角色分配菜单权限和按钮权限。然后将成员关联到角色。表单级权限(打印/导出等)在搭建器的「权限设置」中按表单配置。
A: 在表单的「查看数据」页面,支持CSV导出。选中记录后点击「导出」按钮。也可以通过数据工厂生成定时报表。
A: 检查以下几点:
A: 检查以下几点:
A: 如果启动时提示端口被占用,运行以下命令找到并关闭占用端口的进程:
netstat -ano | findstr :3000
taskkill /PID <进程ID> /F