Skip to main content

v1.15.0

1. 发布情况

发布日期:2022.7.1

发布包名称下载链接
前端包(新版本)sino-intellisense-form-v1.15.0.zip
后端包(新版本)sino-intellisense-form-v1.15.0.jar
字体服务dynamic-font-server-v1.13.0.zip

2. 平滑升级

可以从任何版本平滑升级到 v1.15.0。

3. sinomatrix 依赖变更

sinomatrix针对当前版本的智能表单修复了一些缺陷,需要同步升级 sinomatrix 到 1.6.49 。(注意:访问此地址时可能会出现 ERR_UNSAFE_PORT 的情况,请参看这篇帖子配置一下浏览器。)

4. 主要变更

  • feat: 表单意见支持默认值

  • feat: 表单项中新增按钮控件

  • feat: 弹窗子表单添加必填校验

  • feat: 支持列表的数据列渲染定制

  • feat: 支持无流程表单详情页按钮定制

  • feat: 表单意见支持额外的意见输入框

  • feat: 表单意见文本框支持设置字数限制

  • feat: 调整表单校验失败的错误信息提示

  • feat: 添加监听弹窗子表单值变化的钩子

  • feat: 新增弹出表单起草界面的帮助方法

  • feat: 数据联动支持查询子表单的表单项

  • feat: 添加获取弹窗子表单默认值的方法

  • feat: 序号支持双花括号方式的插值表达式

  • feat: 意见表单项支持通过插件来控制可见性

  • feat: 详情页上自定义按钮支持异步可见性控制

  • feat: 列表和列表行上的按钮支持异步权限判定

  • feat(app-core): 支持异步表单项默认值函数

  • feat(plugin): 详情页 hook 添加当前用户数据

  • feat: 查询列表和无流程列表支持默认查询条件定制

  • feat: 单应用首页、单表单首页支持集成第三方页面

  • feat: 添加月份选择基础组件,支持日期只选择年月

  • feat: 支持通过插件方式定制表单项布局配置的选项

  • feat(idea): 意见字段支持不显示同意、不同意单选按钮组

  • feat: 弹窗子表单支持通过自定义 CSS 的方式修改其 UI 样式

  • feat: 草稿数据包含创建人部门路径 id(creatorDeptPath)

  • feat(form-fields): 支持在创建表单数据时强制获取序号值

  • feat(helper-export-excel): 新增导出列表数据的辅助函数

  • feat: 提供二开使用的保存流程表单的方法saveFormData

  • feat: 新增保存无流程表单数据的简单方法saveNoFlowFormData

  • feat: 保存数据时,新增填报人单位类型字段值creatorUnitType

  • feat: 为定制按钮添加 order 配置,用于调整按钮显示的优先级

  • feat: 分组标签添加调色板,可以通过调色板来设置分组标签的背景色

  • feat(form-fields): 弹窗子表单和子表单新增和删除按钮支持隐藏

  • feat(flow-control-expression): 优化流程控制公式的解析模型

  • feat: 列表页的列表项配置添加 availability 过滤选择配置项

  • feat: 序号新增生成时机的配置,控制可以在办结的同时自动生成序号

  • feat: 流程控制公式,表单项可见性、可编辑性控制公式中新增以下固定字段:

    • 填报人单位类型(等于表单值中的 creatorUnitType)
    • 流程发起人单位类型(等于 currentUserInfo.unitType)
  • feat: 部门选择、用户选择部门范围支持设置为创建人部门且支持指定级别

  • feat: 添加重启流程按钮(只可重启通过办结按钮办结的流程,需要项目组按需配置)

  • feat(app-setting): 新增 authForbidden 钩子,可以用二开的方式定义登录状态失效之后的处理逻辑

  • feat: 列表定制按钮权限参数扩展,添加当前登录人currentUser和表单配置formDesignSetting数据

  • feat: 支持表单项标签对齐方式定制,包括右对齐、左对齐和两端对齐,其中两端对齐支持设置对齐字宽

  • feat: 支持通过field.select.allowClear:false配置禁用下拉选择的清除按钮

  • feat: 添加隐藏无流程列表新建按钮的 i18n 配置noflow.listpage.createButton.hidden.ids

  • feat: 主题一详情页表单标题支持通过 i18N 的方式隐藏,名称为theme1.detailPage.form.title.hidden

  • feat: 添加控制自带的导出 Excel 按钮隐藏的 i8n 配置list.button.export.hidden.ids

  • feat(i18n): 通过 i18n 控制是否在查询列表中默认展示子表单统计列(list.search.columns.subform.disabled

  • feat: 添加查询列表资源显示名称 i18n 配置list.search.resource.name

  • feat: 列表页查询按钮支持通过 i18N 的list.search.button.title配置修改名称

  • feat: i18N 中新增data-status-doing-title设置流转中的状态渲染名称

  • feat: 查询列表已撤办状态支持通过 i18N 中的data-status-cancel-title改变名称

  • feat: 支持定制内置的新建按钮的显示位置list.button.create.position

  • feat: 支持定制内置的自定义列和导出按钮的显示位置list.button.default.position

  • feat: 支持通过 i18n 定制应用的日期时间显示格式(app.datetime.formatflow.idea.time.format

  • feat(form-fields): 日期时间选择组件支持 YYYY-MM-DD HH:mm:ss 只读展示

  • feat: 表单内置按钮添加 updateBuildInButtonOrder 方法来修改 order 配置

  • feat(form-fields): 部门选择组件支持选择按照部门级别定义“全组织机构”选择范围

  • feat: 单选按钮组、复选按钮组类型的表单项作为查询条件时,查询关系为等于或不等于时,查询项修改为下拉选择

  • feat: 扩展列表页、查询列表页支持禁用默认的数据权限过滤规则配置项(禁用之后,所有有权限打开此查询页用户都可以查看到数据)

  • feat(hooks): 新增流程提交前钩子,在此钩子中可以直接修改流程提交请求

  • feat(app-setting): 新增 appSetting.listPageConfig.transformDataList 配置项,转换列表数据

  • feat(app-setting): 可通过 appSetting.listPageConfig.setInRowButtonVisible 控制无流程表单列表页中编辑和查看按钮的可见性(beforeSendWorkflow

  • feat: 级联选择支持用户选择任意级别的数据字典。

    破坏性变更提醒:数据源由下拉选择改为组织树弹窗选择。表单项配置新增dictionaryName属性用于展示,旧版本的表单配置由于没有这个字段,无法显示已选择的数据源。只是影响字段属性配置面板中的数据源显示,并不影响级联选择的功能。

  • feat: 工作流选人节点的可选人员支持定制appSetting.flowconfig.addFlowCandidates

  • feat(form-fields): 支持在创建表单数据时强制获取序号值(autoGenSnWhenInitautoGenSnWhenInit

  • feat(app-setting): 支持通过插件的方式自定义表单默认值生成规则 自定义表单默认值

  • feat(form-fields): 支持二开的方式添加下拉框组件选项 自定义下拉框组件选项

  • feat(app-settings): 支持以插件的方式定义表单字段的选项列表 定义表单字段的选项列表

  • feat(app-setting): 新增数据行内按钮权限控制 appSetting.listPageConfig.setInRowButtonVisible()

  • feat: 添加导入数据的辅助函数导入方法说明

  • improve: 支持禁用查询列表

  • improve: 无流程表单支持打印输出

  • improve: 无流程表单支持自定义使用范围

  • improve: 默认主题下,列表查询条件支持收缩

  • improve: 优化数据联动功能的配置,扩展其逻辑比较支持“包含”

  • improve: 默认的列表扩展字段时间相关的均显示到时分秒

  • improve: 表单上的意见字段需要添加公式控制可见性

  • improve(form-fields): 数字输入框添加自然数的校验规则

  • improve: 子表单和弹窗子表单内的表单项支持控制公式

  • improve: 数据字典分级管理员支持设置部门或者角色

  • improve: 加载插件的链接上,加上时间戳,以防止浏览器端的缓存

  • improve: 调整单应用首页获取默认页面的规则:广度优先改为深度优先

  • improve: 如果列表展示项中不包含默认排序字段,则去掉默认排序字段

  • improve: PageModal 添加区分草稿页、详情页、无流程详情页的 class 名称

  • improve(helper-permission): 二开中的权限判定允许使用 fieldName

  • improve: 流程发送弹窗,添加多个 class 以支持通过 css 的方式直接自定义样式

  • improve(comp-tree-modal): 人员部门选择,只读时添加相关 class 名称

  • improve: 异步加载解析 sql 的模块,以减少应用首屏加载的代码量

  • improve(helper-get-todo-title): 自定义待办标题支持扩展字段

  • improve: 查询列表条数超过 1000 条时总条数显示 1000+条,支持精确查询

  • improve: 自定义列表查询条件,如果查询逻辑是区间,则需要校验区间是否合规

  • improve: 水平布局模式下,如果表单项隐藏标题,渲染时添加左边距(值为 label 宽度)

  • improve(helper-export-excel): exceljs 降低版本至 3.5.0 以支持在 IE11 使用

  • improve(flow-buttons): 通过 i18N 修改按钮名称后,按钮操作提示要与按钮名称一致

  • improve: 输入框字段默认值公式支持COUNT函数,只能用于统计子表单或弹窗子表单数据条数

  • improve: 优化演示系统首页布局(左侧导航栏固定显示,即使内容发生滚动,左侧导航栏也不滚动)

  • improve: 列表页支持自定义默认排序字段,具体规则参考默认排序字段定制

  • improve: 表单项控制公式解析方法中添加 currentUser(当前登录人)、passNodes(已途经节点)

  • improve: 子表单必填校验改为当一条数据所有子项均为填写时才提示必填,并调整校验提示信息弹窗

  • improve: 给表单意见的额外意见输入框添加 class 名称sinoform-form-idea__extra-content

  • improve(form-fields): 调整部门选择、用户选择的 formatRender 配置,使其与页面显示的 format 保持一致

  • improve(plugin): appSetting.defaultFormValueAsync(formId) 支持以 * 的方式代表给所有表单添加默认值规则

  • improve(helper-permission): 更改权限合并规则:由只要有一个只读或隐藏该字段就只读或隐藏修改为 自定义权限优先级最高。流程节点字段权限、选项关联设置的权限、通过可见性/可编辑性公式控制的权限 三者只要有一个权限是隐藏的,则此字段就是隐藏的。

  • fix: 修复查询列表打不开的缺陷

  • fix: 修复起草页默认值未参与到权限计算的 bug

  • fix: 修复无流程表单列表丢失编辑按钮的缺陷

  • fix: 起草时保存多次,一直调用 post 接口的缺陷

  • fix(plugin): 修复 vue3 插件项目打包失败的缺陷

  • fix: 修复点击层级很深的资源时,资源列表收缩的 bug

  • fix: 修复部门管理员选择人数过多时,显示错乱的样式问题

  • fix: 修复日期时间选择框值在列表中显示格式不正确的缺陷

  • fix(flow-designer): 修复未发布表单无法修改流程配置的缺陷

  • fix: 修复组件重绘产生新的默认值后,导致表单状态被重置的缺陷

  • fix: 修复表单保存时因请求中缺少 workflowid 导致失败的缺陷

  • fix: 修复默认查询条件为空或者解析失败导致查询页打开失败的缺陷

  • fix(use-pagination-table): 修复待办列表标题显示错误的 bug

  • fix(workflow): 修复节点选择部门作为候选人,部门变成可选的缺陷

  • fix: 修复子表单中设置表单项必填之后,表单校验引起的页面空白的缺陷

  • fix: 修复可见性控制公式和可编辑性控制公式在表单值变化时无效的缺陷

  • fix: 修复表单导入之后,因位置信息类型错误导致流程节点无法拖拽的 bug

  • fix(comp-table): 修复表格列数特别多时,排序按钮显示位置不对的 bug

  • fix(workflow): 修复流程候选人中有一人多岗时重复显示人员节点的问题

  • fix(workfow): 修复隐式返回路由判断错误,导致发送给申请人失败的缺陷

  • fix: 修复查询列表点击重置按钮后,列表请求参数中默认查询条件数据丢失的缺陷

  • fix: 修复说明文字类型的表单项之间切换,字段属性中富文本内容没有更新的 bug

  • fix: 修复流程草稿页起草时,第一次异步数据关联计算的结果同步不到表单中的缺陷

  • fix(workflow): 修复流程的第二个节点配置了表单字段负责人,流程启动失败的缺陷

  • fix(workflow): 修复路由控制条件解析不了不包含不等于任意一个操作符的缺陷

  • fix(app-core): 修复复用功能未能成功带入单选按钮组、复选按钮组、子表单值的缺陷

  • fix(workflow): 修复节点候选人选择的是人员时,默认多个候选人都是选中状态的缺陷

  • fix(flow-design): 修复因缺失 flowConfigId 字段导致无法修改流程配置的缺陷

  • fix(app-core): 修复无流程表单列表无论设不设置提交并管理本人数据都能编辑自己数据的 bug

  • fix(form): 修复用户选择组件配置上“来源于部门选择”或者“创建人部门”用户范围时,顶级部门可以选择的缺陷

  • fix: 修复节点上配置了表单字段负责人,但是没有指定负责人或者指定了负责人为顶级部门,流程无法发送的缺陷

  • fix(hooks): 修复详情页 hooks 与权限计算时机不正确的缺陷,此缺陷会阻止在初始化时不计算自定义权限的问题

  • fix(flow-control-expression): 修复线上环境无法识别 nullemptytruefalse 等关键字的缺陷(代码编译造成)

  • fix: 修复演示系统中 FormAppContext 上下文中 formId 和 formDesignSetting 值不匹配导致的同类型列表切换查询条件不正确的 bug

  • fix: 流程结束后,保存表单数据报错

  • fix: 修复 oracle 数据库表字段全部是 varchar2(4000)的问题

  • fix: 兼容低版本 minio

  • fix: 上传同名附件会覆盖的问题

  • fix: 分页对象每页最大值默认限制为 2000,在导出数据时最多只能导出 2000 条数据

  • fix: 扩展字段长度发生变化时,将变化同步到数据库

  • feat: 增加表单发布的最大个数限制

  • feat: 优化查询列表 和 起草列表的查询效率

  • feat: 无流程表单支持使用范围的配置

  • feat: 数据字典管理员支持设置成部门和角色

  • feat: 添加数据清除接口

  • feat: 支持通过 i18n 配置,修改导出 excel 中日期时间格式

  • feat: 列表查询接口,支持自定义 sql 查询

  • feat: 新增 data-status-doing-title i18n 配置项,支持查询列表导出的状态列流转中的显示定制

  • feat: 新增 data-status-cancel-title i18n 配置项,支持查询列表导出的状态列已撤办的显示定制

  • feat: 添加禁用查询列表菜单的配置

  • feat: 用户信息接口增加 unitType

  • feat: 添加票据保活机制

  • feat: 支持通过 sinoform.public-paths 配置自定义公共路径

  • feat: 无流程表单支持禁用默认权限参数 disableDefaultAuthConditions

  • feat: 查询列表支持 post 请求

  • improve: 优化远程事件发布时,无效接口地址可能造成的内存问题

  • improve: 优化删除应用时,应删除该应用的菜单

  • improve: 单表单首页菜单由本地获取修改为从 uias 获取

  • improve: 在不启用审计日志时,不调用 LogAspect 切面

  • improve: 部门数据管理员在推送资源时,明确指定管理员所在部门的部门 id

  • improve: 将操作记录保存至关系型数据库中,并添加 msg 字段

  • improve: 自定义列表角色名称添加前缀(表单设计的标题)

  • improve: 减少不必要的日志输出

  • improve: 下载文件时,若文件不存在则返回 404

默认排序字段定制

自定义默认排序字段的应用规则如下:

  1. 如果设置了默认排序字段,则以设置的默认排序字段进行排序
  2. 如果没有设置默认排序字段,草稿列表、查询列表、自定义列表以创建时间倒序排;待办列表以接收时间倒序排;已办列表以办理时间倒序排
  3. 如果点击列表其他可排序字段时,将会过滤掉默认排序字段中不在列表中展示字段的排序规则

导入方法说明

parseImportExcel

解析 Excel 文件并返回列表数据 dataList 和表头信息 columns。此方法最多接收四个参数:

  • file:Excel 文件信息。必选
  • formDesignSetting:表单设计配置数据。必选
  • isDataInOneSheet:是否主表单和子表单数据在一个 sheet 页中。可选,默认为 true
  • titleRow:标题所在行。可选,默认为 1

transformExcelColumns

将原始的标题列转换成对应字段的 fieldName,返回处理后的列表数据。此方法接收两个参数:

  • dataList: 上一个方法中获取到的列表数据。必选
  • columns: 上个方法中获取到的表头信息。必选

importDataList

将列表数据封装成正确的表单数据,请求后端接口,保存或修改表单数据。此方法接收四个参数:

  • dataList: 上一个方法获取到的列表数据。必选
  • columns:parseImportExcel方法获取到的表头配置。必选
  • formDesignSetting:表单设计配置数据。必选
  • currentUser:当前登录人信息。必选

autoGenSnWhenInit

可以通过插件的方式将 autoGenSnWhenInit 设置为

appSetting.formConfig.addField({
type: 'serialNumber',
defaultConfig() {
return {
genType: '1',
autoGenSnWhenInit: '1',
labelAlign: 'right',
};
},
} as any);

自定义表单默认值

import appSetting from '@sinoform/app-setting';

const formId = '625e4f0081b95c1aff6f41ff';

// 简单值
appSetting.defaultFormValueAsync(formId, async (currentUser) => {
const defaultCreatorDeptName = {
field_10: currentUser.deptName,
};
});

// 从远程获取值
appSetting.defaultFormValueAsync(formId, async (currentUser) => {
const userInfo = await http.get('/custom-api/user-info', {
params: { userId: currentUser.userId },
});

return {
field_11: userInfo.telephone,
};
});

自定义下拉框组件选项

import appSetting from '@sinoform/app-setting';
import range from 'lodash/range';

appSetting.formConfig.addSelectOption('年度', () => {
const currentYear = new Date().getFullYear();

return range(0, 15)
.map((index) => currentYear - 8 + index)
.map((year) => ({
id: `${year}`,
title: `${year}`,
}));
});

定义表单字段的选项列表

import appSetting from '@sinoform/app-setting';

appSetting.detailPageConfig.addFormItemOptionConfig(
'表单id',
'表单字段名',
async (currentUser, formItem, detailPageContext) => {
return [
{
id: '1',
title: '专业技术职责',
},
{
id: '2',
title: '职责调整',
},
];
}
);

设置默认数据行内按钮权限控制

示例:

import appSetting from '@sinoform/app-setting';

// 隐藏所有表单草稿页中的删除按钮
appSetting.listPageConfig.setInRowButtonVisible(
'*',
'DRAFT_LIST_PAGE',
'deleteButton',
() => false
);

// 隐藏所有表单的查询列表中复用按钮
appSetting.listPageConfig.setInRowButtonVisible(
'*',
'SEARCH_LIST_PAGE',
'copyButton',
() => false
);

目前内置的数据行内按钮包括:

按钮名称按钮编号可能出现的页面
删除deleteButton草稿列表页(DRAFT_LIST_PAGE)、无流程列表页(NOFLOW_LIST_PAGE
复用copyButton查询页(SEARCH_LIST_PAGE