Skip to main content

v1.13.0-alpha.8

1. 发布情况

发布日期:2021.12.15

前端包:sino-intellisense-form-v1.13.0-alpha.8.zip

后端包:intellisense-form-v1.13.0-alpha.8.jar

字体服务包:dynamic-font-server-v1.13.0-alpha.7.zip

2. 平滑升级

可以从任何版本平滑升级到 v1.13.0-alpha.8。

3. sinomatrix 依赖变更

因 sinomatrix 缺陷影响了智能表单之前版本(v1.12.0 版本之前的版本)提供的功能,sinomatrix 已经修复,所以需要同步升级 sinomatrix 到 1.6.37 。(注意:访问此地址时可能会出现 ERR_UNSAFE_PORT 的情况,请参看这篇帖子配置一下浏览器。)

4. 主要特性

  • fix(form-designer): 修复在切换表单设计器与流程设计器后,会导致 formState 的初始值为 undefined 的缺陷

4.1 插件:简化表单值关联计算

AppSetting 中新增 listenFormChangelistenFormChangeAsync,简化表单值关联计算。

新的表单值关联计算方式

同步值关联:

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

AppSetting.listenFormChange(
'61adb754e37b48b43ee5fa36',
(prevValue, nextValue) => {
// 计算总价格
nextValue.total = nextValue.price nextValue.count;
},
);

异步值关联:

import AppSetting from "@sinoform/app-setting";

AppSetting.listenFormChange(
"61adb754e37b48b43ee5fa36",
async (prevValue, nextValue) => {
// 调用服务接口,计算总价格
nextValue.total = await calcTotalPriceFromRemoteServer(
nextValue.price,
nextValue.count
);
}
);

4.2 添加字体服务

字体服务主要是为了解决 IE 浏览器生成 pdf 过慢甚至可能导致生成失败的问题。字体服务需要单独部署。

下载并解压缩

使用下面的命令行下载并解压缩字体服务包:

# 下载智能表单字体服务包
wget
# 解压缩智能表单字体服务包
unzip -d /apps/sino-intellisense-form
# 解压后node_modules中的文件只有读写权限,需要提升文件的执行权限
cd /apps/sino-intellisense-form/dynamic-font-server && chmod -R 777 node_modules

部署字体服务

第一步:修改 nginx 配置

在 nginx 配置文件中添加关于字体服务的配置,具体内容如下:

nginx.conf

# 配置字体服务
upstream dynamic_font_server {
server 127.0.0.1:8088;
}

#字体请求转交字体服务处理

location /apis/intellisense-form/dynamic-font {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://dynamic_font_server;
}

调整完配置后,执行以下命令使 nginx 重新加载配置:

nginx -s reload
第二步:安装 nodejs

nodejs安装步骤可参考 nodejs 安装

第二步:启动字体服务

进入 /apps/sino-intellisense-form/dynamic-font-server文件夹,执行以下启动命令:

$ cd /apps/sino-intellinse-form/dynamic-font-server

# 启动字体服务
$ npm run server-start

可以执行以下命令查看服务是否成功启动:

ps -ef | grep node