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
中新增 listenFormChange
和 listenFormChangeAsync
,简化表单值关联计算。
新的表单值关联计算方式
同步值关联:
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