mirror of
https://gitee.com/baidu/amis.git
synced 2024-12-02 11:58:10 +08:00
3a7daf0f90
* init * theme * 基础文本渲染 * 基础文本样式 * 支持简单链接和图片 * 修复 jc 解析不正确问题 * 解析和渲染分离 * 初步支持列表渲染 * 完善样式表的实现 * 表格解析初步 * 避免解析顺序不一致 * 避免解析顺序不一致导致的问题 * 基于 DOMParser 来实现解析; 初步实现表格渲染 * 修复行高解析不正确问题 * 修复变量替换不正确问题 * 补充注释 * 用 fflate 替换 jszip, 支持同步使用 * 支持渲染 tab * 支持表格条件渲染 * 优化表格样式适配 * 完善背景色支持 * 支持 ruby * 支持简单 inserttext * 修复表格合并不正确问题 * amis 渲染初步 * 整合 amis 初步 * 支持 input-file 上传预览 * styles: 优化button组件单icon情况的样式 (#6269) * fix: Badge设置overflowCount不生效问题修复 (#6267) * feat: InputGroup报错展示优化 (#5803) * feat:增加DATETOWEEK表达式 * feat:增加DATETOWEEK表达式 * feat:增加WEEKDAY和WEEK表达式 * feat:增加WEEKDAY和WEEK表达式 * feat:增加WEEKDAY和WEEK表达式 * feat:增加WEEKDAY和WEEK表达式 * feat:增加WEEKDAY和WEEK表达式 * chore: 2.7.3版本改为2.8.0 (#6272) * styles: 输入框附加组件样式 (#6271) * styles: 优化checkbox组件选中态样式 (#6277) * feat:增加判断日期范围的表达式BETWEENRANGE&&优化STARTOF和ENDOF * docs:表达式文档 (#6282) * fix: Nav样式问题、性能优化 (#6280) * chore: 还原几个 antd 导航及表格的颜色 (#6276) * chore: Action倒计时key添加id避免冲突 (#5943) * fix: nav同层拖拽问题修复 (#6285) * v2.8.0 * chore: 删除在 ts 编译后永远都不会成立的代码 (#6291) * styles: 将组件透明背景颜色改为白色 (#6289) * styles: 将组件透明背景颜色改为白色 * styles: 将组件透明背景颜色改为白色 --------- * fix: Select组件overlay属性在popOverContainer时宽度错误问题 (#6284) * fix:Select组件overlay属性在popOverContainer时宽度错误问题 * 问题修改 * styles: 优化link组件svg图标样式 (#6292) * chore: Tree 组件中使用 value 替换 key (#6194) * fix: 单选选项值包含逗号时获取选项错误问题 (#6258) * fix: 单选选项值包含逗号时获取选项错误问题 * 加个单测 * 单测问题 * 在WrapControl 中使渲染器默认 multiple 生效 * 修改 * fix: select 各种模式支持 checkAll (#5941) * feat(页面交互行为跟踪): 新增pageLoaded事件 (#6299) * fix: nav拖拽卡顿、更多操作打开定位等问题修复 (#6304) * fix: toast组件css变量拼错 (#6302) * fix: CRUD2 加载更多时接口page传参始终为1 (#6298) * fix: 日期范围底部按钮居中 (#6301) * 调整 saveAs fileName 优先级 * feat: 移动端人员选择增加确定按钮 * Update UserSelect.tsx * fix: 人员选择ts 类型错误 * fix: 城市选择组件移动端回显问题 * fix: 移动端级联选择器选中值bug修复 * Update Cascader.tsx * fix: 城市选择香港、澳门不能选择市 * fix: 删除错误城市数据 * feat: 移动端人员选择支持字段配置 * feat: 人员选择组件支持字段配置 * Update UserSelect.tsx * fix: 移动端人员选择静态展示头像url回显 * fix: 日期时间选择器底部按钮居中 --------- * fix: table2全选、嵌套展开等问题修复 (#6313) * docs(API 适配器): 调整文档细节 (#6314) * styles: 优化清除图标样式 (#6312) * fix: 修复 Tree 在传入 pathSeparator 时,非根节点无法选中 (#6315) * Update README.md * fix: 解决因部分组件默认配置,导致编辑器配置面板宽度溢出问题 (#6328) * chore: svg 瘦身 (#6320) * chore: svg 瘦身 * chore: svg 瘦身 * chore: svg 瘦身 * feat: mapping 的 source 接口支持 select 选项类接口 (#6326) * fix: 调整 spinner-overlay 和 dialog 的 z-index,使关闭按钮不会被 spinner 遮挡 (#6321) * feat: 新增 number 组件用来展示数字 (#6330) * feat: 新增 number 组件用来展示数字 * feat: 新增 number 组件用来展示数字 * chore: tableCell 内部属性换个名字,以免跟已有其他组件组合使用时冲突 * fix: 注销renderer问题 (#6327) * feat: InputExcel支持placeholder (#6295) * feat: button-group-select支持角标 (#6309) * chore: 暴露 InputBoxWithSuggestion (#6337) * fix: 注销renderer问题 (#6338) * docs: 补充trackExpression用法示例 (#6286) * fix: 解决monaco环境变量和monaco插件的冲突 (#6283) * fix: Cards嵌套List组件时, props透传导致Schema不生效问题 (#6110) * styles: 优化带单位的number组件样式 (#6054) * styles: 优化待单位的number组件样式 * 更新快照 --------- * fix(Table): #2978 嵌套表格如何设置默认全部展开 (#6028) * fix(Table): #2978 嵌套表格如何设置默认全部展开 * fix(Table): #2978 更改函数命名 * fix: now表达式作为form组件默认值时,增加特殊逻辑,处理数据更新 (#5783) * fix: 解决公式编辑器 搜索变量失效bug (#6345) * fix: nav角标、悬浮展开子菜单、更多操作不可点击等问题修复 (#6346) * feat:config动作优化 * fix: 修复卡片的 checkOnItemClick 配置问题 (#6365) * fix: 修复弹窗中 form 配置 closeDialogOnSubmit 无效的问题 (#6368) * fix: Transfer tree mode 支持 onlyChildren;两个值为undefined的Option不相等 (#6342) * fix:transfer tree 支持 onlyChildren;两个值为undefined的Option不相等 * 修改 * 修改 * feat:carousel支持卡片动画模式 (#6354) * feat:carousel支持多图配置 * Update carousel.md --------- * fix: inputTable 组件value依赖别的字段时,不同步数据域的问题 (#6360) * fix: inputTable 组件value依赖别的字段时,不同步数据域的问题 * 修改 * 修改 * feat: 添加input-table子表单校验 (#6357) * feat: 添加input-table子表单校验 * feat: 添加input-table snapshots更新 * feat: 添加input-table子表单校验 * feat: 添加input-table子表单校验 * feat: 添加input-table子表单校验 * feat: input-table snapshots更新 * feat: 添加input-table子表单校验 * feat: 添加input-table子表单校验 * feat: Steps source支持动态获取value status (#6370) * fix: 修复 drawer reload 目标可能找不到的问题 (#6373) * fix: 修复 crud 嵌套会触发多次快速保存接口问题 (#6374) * fix: 修复 this.model.validated 可能读取不到的报错 (#6375) * chore: alert 支持多个实例 * feat: Tag支持事件动作 (#6325) * feat: reload 支持动态目标, 解决目标在循环中场景 (#6372) * chore: Select组件checkAllBySearch默认为true (#6347) * fix: Nav切换数据源实时更新、点击分组卡顿、横向模式排序等问题修复 (#6371) * fix: table单元格支持自定义样式、crud支持本地数据快速过滤 (#6353) * fix: 修改角标样式 (#6383) * fix: 图标选择器,如果图标不属于saas项目中的,则默认显示schema配置的内容 (#6394) * feat: icon支持自定义样式 (#6379) * fix: 解决input-table某些场景下无法新增的bug (#6400) * fix: 解决input-table某些场景下无法新增的bug (#6404) * fix: input-table内columns为下拉框时,删掉下拉框的选中值,发现input-table的数据域更新错误 (#6402) * fix: input-table内columns为下拉框时,删掉下拉框的选中值,发现input-table的数据域更新错误 * fix: input-table内columns为下拉框时,删掉下拉框的选中值,发现input-table的数据域更新错误 * 修复示例文档错误 * 修复用例报错 * 修复 fis 报错 --------- Co-authored-by: qkiroc <30946345+qkiroc@users.noreply.github.com> Co-authored-by: qinhaoyan <30946345+qinhaoyan@users.noreply.github.com> Co-authored-by: wanglinfang2014 <w.l.fang@foxmail.com> Co-authored-by: wanglinfang <wanglinfang@baidu.com> Co-authored-by: RUNZE LU <36724300+lurunze1226@users.noreply.github.com> Co-authored-by: lvxiaojiao <lvxiaojiao@baidu.com> Co-authored-by: hsm-lv <80095014+hsm-lv@users.noreply.github.com> Co-authored-by: lurunze1226 <lurunze1226@foxmail.com> Co-authored-by: liaoxuezhi <2betop.cn@gmail.com> Co-authored-by: sansiro <sansiro@sansiro.me> Co-authored-by: meerkat <kit_hack@outlook.com> Co-authored-by: 刘丹 <365533093@qq.com> Co-authored-by: backpast <agileago@gmail.com> Co-authored-by: renjianhua <renjianhua@zuoshouyisheng.com> Co-authored-by: ls <1769057083@qq.com> Co-authored-by: zhangxulong <zhangxulong@baidu.com> Co-authored-by: zhangzhulei <30931358+DynaZhang@users.noreply.github.com> Co-authored-by: zhangzhulei <zhangzhulei@baidu.com> Co-authored-by: gooolh <57032082+gooolh@users.noreply.github.com> Co-authored-by: liujintao03 <liujintao03@baidu.com> Co-authored-by: Dora <53067150+Dora-boots@users.noreply.github.com> Co-authored-by: yanglu19 <yanglu19@baidu.com> Co-authored-by: TommyShao <tomieric@gmail.com> Co-authored-by: pianruijie <13522335863@163.com> Co-authored-by: xiangwaner <1186355501@qq.com> Co-authored-by: zhaowenli <zhaowenli@baidu.com> Co-authored-by: zhou999 <zhousq809@163.com> Co-authored-by: Allen <yupeng.fe@qq.com> Co-authored-by: sarding <37691952+sarding@users.noreply.github.com> Co-authored-by: sarding <hongfuquan@baidu.com>
6.0 KiB
6.0 KiB
title | description | type | group | menuName | icon | order |
---|---|---|---|---|---|---|
Office Viewer | 0 | ⚙ 组件 | OfficeViewer 文档渲染 | 23 |
用于渲染 office 文档,目前只支持 docx 格式,通过前端转成 HTML 的方式进行渲染,支持以下功能:
- 基础文本样式
- 表格及表格样式
- 内嵌图片
- 列表
- 注音
- 链接
不支持的功能:
- 分页符
- 形状
- 艺术字
- 域
- 对象
基本用法
{
"type": "office-viewer",
"src": "/examples/static/example.docx"
}
渲染配置项
目前只支持 Word 文档,所以只有 word 的配置项,放在 wordOptions
下
word 渲染配置属性表
{
"type": "office-viewer",
"wordOptions": {
"padding": "8px",
"classPrefix": "docx"
}
}
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
classPrefix | string |
'docx-viewer' | 渲染的 class 类前缀 |
bulletUseFont | boolean |
true | 列表使用字体渲染,请参考下面的乱码说明 |
fontMapping | object |
字体映射,是个键值对,用于替换文档中的字体 | |
forceLineHeight | string |
设置段落行高,忽略文档中的设置 | |
padding | string |
设置页面间距,忽略文档中的设置 | |
enableReplaceText | boolean |
true | 是否开启变量替换功能 |
列表符号出现乱码问题
默认情况下列表左侧的符号使用字体渲染,这样能做到最接近 Word 渲染效果,但如果用户的系统中没有这些字体就会显示乱码,为了解决这个问题需要手动在 amis 渲染的页面里导入对应的字体,比如
<style>
@font-face {
font-family: Wingdings;
src: url(./static/font/wingding.ttf);
}
@font-face {
font-family: Symbol;
src: url(./static/font/symbol.ttf);
}
</style>
目前已知会有 Wingdings
和 Symbol
两个字体,可能还有别的
如果不想嵌入这两个字体,就只能在前面的 wordOptions
里设置 bulletUseFont: false
。
变量替换
文档可以预先定义变量,通过配置 enableVar
来开启这个功能,在实际渲染时根据上下文数据来渲染变量,比如
{
"type": "form",
"title": "",
"mode": "inline",
"wrapWithPanel": false,
"body": [
{
"type": "input-text",
"name": "name",
"value": "amis",
"label": "姓名"
},
{
"type": "input-email",
"name": "email",
"label": "邮箱"
},
{
"type": "input-text",
"name": "phone",
"label": "手机号"
},
{
"type": "office-viewer",
"id": "office-viewer",
"src": "/examples/static/info.docx",
"wordOptions": {
"enableVar": true,
"padding": "8px"
}
}
]
}
如果关闭将显示原始文档
{
"type": "office-viewer",
"id": "office-viewer",
"src": "/examples/static/info.docx",
"wordOptions": {
"padding": "8px"
}
}
变量详细说明
目前变量使用的写法是 {{name}}
,其中 name
代表变量名,另外这里可以是 amis 表达式,比如前面示例的 {{DATETOSTR(TODAY(), 'YYYY-MM-DD')}}
为了避免 Word 自作主张添加额外标签,对于复杂的变量建议先在记事本之类的纯文本编辑器里编辑,再粘贴进 Word 里。
不渲染模式
通过配置 display: false
可以让文档不渲染,虽然不渲染,但还是可以使用后面的下载及打印功能
下载文档
基于事件动作实现
[
{
"type": "action",
"label": "下载文档",
"onEvent": {
"click": {
"actions": [
{
"actionType": "saveAs",
"componentId": "office-viewer-download"
}
]
}
}
},
{
"type": "office-viewer",
"id": "office-viewer-download",
"display": false,
"src": "/examples/static/example.docx"
}
]
打印文档
基于事件动作实现
[
{
"type": "action",
"label": "打印",
"onEvent": {
"click": {
"actions": [
{
"actionType": "print",
"componentId": "office-viewer-print"
}
]
}
}
},
{
"type": "office-viewer",
"id": "office-viewer-print",
"display": false,
"src": "/examples/static/example.docx"
}
]
配合文件上传实现预览功能
配置和 input-file
相同的 name
即可
{
"type": "form",
"title": "",
"wrapWithPanel": false,
"body": [
{
"type": "input-file",
"name": "file",
"label": "File",
"asBlob": true,
"accept": ".docx"
},
{
"type": "office-viewer",
"id": "office-viewer",
"name": "file"
}
]
}
属性表
属性名 | 类型 | 默认值 | 说明 |
---|---|---|---|
src | Api | 文档地址 | |
enableVar | boolean |
是否开启变量替换功能 | |
wordOptions | object |
Word 渲染配置 |
动作表
当前组件对外暴露以下特性动作,其他组件可以通过指定actionType: 动作名称
、componentId: 该组件id
来触发这些动作,动作配置可以通过args: {动作配置项名称: xxx}
来配置具体的参数,详细请查看事件动作。
动作名称 | 动作配置 | 说明 |
---|---|---|
saveAs | name?: string 文件名 |
下载文档 |
- | 打印文档 |