mirror of
https://gitee.com/baidu/amis.git
synced 2024-11-29 18:48:45 +08:00
* 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>
This commit is contained in:
parent
2d9066ab17
commit
3a7daf0f90
@ -30,7 +30,7 @@ order: 23
|
||||
```schema: scope="body"
|
||||
{
|
||||
"type": "office-viewer",
|
||||
"src": "../../../examples/static/example.docx"
|
||||
"src": "/examples/static/example.docx"
|
||||
}
|
||||
```
|
||||
|
||||
@ -111,7 +111,7 @@ order: 23
|
||||
{
|
||||
"type": "office-viewer",
|
||||
"id": "office-viewer",
|
||||
"src": "../../../examples/static/info.docx",
|
||||
"src": "/examples/static/info.docx",
|
||||
"wordOptions": {
|
||||
"enableVar": true,
|
||||
"padding": "8px"
|
||||
@ -127,7 +127,7 @@ order: 23
|
||||
{
|
||||
"type": "office-viewer",
|
||||
"id": "office-viewer",
|
||||
"src": "../../../examples/static/info.docx",
|
||||
"src": "/examples/static/info.docx",
|
||||
"wordOptions": {
|
||||
"padding": "8px"
|
||||
}
|
||||
@ -168,7 +168,7 @@ order: 23
|
||||
"type": "office-viewer",
|
||||
"id": "office-viewer-download",
|
||||
"display": false,
|
||||
"src": "../../../examples/static/example.docx"
|
||||
"src": "/examples/static/example.docx"
|
||||
}
|
||||
]
|
||||
```
|
||||
@ -197,7 +197,7 @@ order: 23
|
||||
"type": "office-viewer",
|
||||
"id": "office-viewer-print",
|
||||
"display": false,
|
||||
"src": "../../../examples/static/example.docx"
|
||||
"src": "/examples/static/example.docx"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
@ -13,6 +13,7 @@
|
||||
'classnames': __moduleId('classnames'),
|
||||
'axios': __moduleId('axios'),
|
||||
'exceljs': __moduleId('exceljs'),
|
||||
'office-viewer': __moduleId('office-viewer'),
|
||||
'moment': __moduleId('moment'),
|
||||
'mobx': __moduleId('mobx'),
|
||||
'mobx-state-tree': __moduleId('mobx-state-tree'),
|
||||
|
14
fis-conf.js
14
fis-conf.js
@ -68,6 +68,7 @@ fis.set('project.files', [
|
||||
'/examples/static/*.svg',
|
||||
'/examples/static/*.jpg',
|
||||
'/examples/static/*.jpeg',
|
||||
'/examples/static/*.docx',
|
||||
'/examples/static/photo/*.jpeg',
|
||||
'/examples/static/photo/*.png',
|
||||
'/examples/static/audio/*.mp3',
|
||||
@ -485,7 +486,9 @@ if (fis.project.currentMedia() === 'publish-sdk') {
|
||||
'!uc.micro/**',
|
||||
'!markdown-it/**',
|
||||
'!markdown-it-html5-media/**',
|
||||
'!punycode/**'
|
||||
'!punycode/**',
|
||||
'!office-viewer/**',
|
||||
'!fflate/**'
|
||||
],
|
||||
|
||||
'rich-text.js': [
|
||||
@ -526,6 +529,8 @@ if (fis.project.currentMedia() === 'publish-sdk') {
|
||||
|
||||
'charts.js': ['zrender/**', 'echarts/**', 'echarts-stat/**'],
|
||||
|
||||
'office-viewer.js': ['office-viewer/**', 'fflate/**'],
|
||||
|
||||
'rest.js': [
|
||||
'*.js',
|
||||
'!monaco-editor/**',
|
||||
@ -546,7 +551,9 @@ if (fis.project.currentMedia() === 'publish-sdk') {
|
||||
'!mdurl/**',
|
||||
'!uc.micro/**',
|
||||
'!markdown-it/**',
|
||||
'!markdown-it-html5-media/**'
|
||||
'!markdown-it-html5-media/**',
|
||||
'!office-viewer/**',
|
||||
'!fflate/**'
|
||||
]
|
||||
}),
|
||||
postpackager: [
|
||||
@ -773,6 +780,7 @@ if (fis.project.currentMedia() === 'publish-sdk') {
|
||||
'!markdown-it-html5-media/**',
|
||||
'!punycode/**',
|
||||
'!amis-formula/**',
|
||||
'!fflate/**',
|
||||
'!office-viewer/**',
|
||||
'!amis-core/**',
|
||||
'!amis-ui/**',
|
||||
@ -832,6 +840,8 @@ if (fis.project.currentMedia() === 'publish-sdk') {
|
||||
'!/examples/components/EChartsEditor/Common.tsx'
|
||||
],
|
||||
|
||||
'pkg/office-viewer.js': ['office-viewer/**', 'fflate/**'],
|
||||
|
||||
'pkg/rest.js': [
|
||||
'**.{js,jsx,ts,tsx}',
|
||||
'!monaco-editor/**',
|
||||
|
@ -101,6 +101,7 @@
|
||||
"^amis\\-ui$": "<rootDir>/packages/amis-ui/src/index.tsx",
|
||||
"^amis\\-core$": "<rootDir>/packages/amis-core/src/index.tsx",
|
||||
"^amis\\-formula$": "<rootDir>/packages/amis-formula/src/index.ts",
|
||||
"^office\\-viewer$": "<rootDir>/packages/office-viewer/src/index.ts",
|
||||
"^amis$": "<rootDir>/packages/amis/src/index.tsx"
|
||||
},
|
||||
"setupFilesAfterEnv": [
|
||||
|
@ -4,15 +4,15 @@
|
||||
|
||||
用法:`IF(condition, consequent, alternate)`
|
||||
|
||||
- `condition:expression` 条件表达式.
|
||||
- `consequent:any` 条件判断通过的返回结果
|
||||
- `alternate:any` 条件判断不通过的返回结果
|
||||
* `condition:expression` 条件表达式.
|
||||
* `consequent:any` 条件判断通过的返回结果
|
||||
* `alternate:any` 条件判断不通过的返回结果
|
||||
|
||||
返回:`any` 根据条件返回不同的结果
|
||||
|
||||
示例:IF(A, B, C)
|
||||
|
||||
如果满足条件 A,则返回 B,否则返回 C,支持多层嵌套 IF 函数。
|
||||
如果满足条件A,则返回B,否则返回C,支持多层嵌套IF函数。
|
||||
|
||||
也可以用表达式如:A ? B : C
|
||||
|
||||
@ -20,9 +20,9 @@
|
||||
|
||||
用法:`AND(expression1, expression2, ...expressionN)`
|
||||
|
||||
- `conditions:...expression` 条件表达式.
|
||||
* `conditions:...expression` 条件表达式.
|
||||
|
||||
返回:`boolean`
|
||||
返回:`boolean`
|
||||
|
||||
条件全部符合,返回 true,否则返回 false
|
||||
|
||||
@ -36,9 +36,9 @@
|
||||
|
||||
用法:`OR(expression1, expression2, ...expressionN)`
|
||||
|
||||
- `conditions:...expression` 条件表达式.
|
||||
* `conditions:...expression` 条件表达式.
|
||||
|
||||
返回:`boolean`
|
||||
返回:`boolean`
|
||||
|
||||
条件任意一个满足条件,返回 true,否则返回 false
|
||||
|
||||
@ -52,10 +52,10 @@
|
||||
|
||||
用法:`XOR(condition1, condition2)`
|
||||
|
||||
- `condition1:expression` 条件表达式 1
|
||||
- `condition2:expression` 条件表达式 2
|
||||
* `condition1:expression` 条件表达式1
|
||||
* `condition2:expression` 条件表达式2
|
||||
|
||||
返回:`boolean`
|
||||
返回:`boolean`
|
||||
|
||||
异或处理,多个表达式组中存在奇数个真时认为真。
|
||||
|
||||
@ -63,7 +63,7 @@
|
||||
|
||||
用法:`IFS(condition1, result1, condition2, result2,...conditionN, resultN)`
|
||||
|
||||
- `args:...any` 条件,返回值集合
|
||||
* `args:...any` 条件,返回值集合
|
||||
|
||||
返回:`any` 第一个满足条件的结果,没有命中的返回 false。
|
||||
|
||||
@ -79,7 +79,7 @@
|
||||
|
||||
用法:`ABS(num)`
|
||||
|
||||
- `num:number` 数值
|
||||
* `num:number` 数值
|
||||
|
||||
返回:`number` 传入数值的绝对值
|
||||
|
||||
@ -89,7 +89,7 @@
|
||||
|
||||
用法:`MAX(num1, num2, ...numN)`
|
||||
|
||||
- `num:...number` 数值
|
||||
* `num:...number` 数值
|
||||
|
||||
返回:`number` 所有传入值中最大的那个
|
||||
|
||||
@ -99,7 +99,7 @@
|
||||
|
||||
用法:`MIN(num1, num2, ...numN)`
|
||||
|
||||
- `num:...number` 数值
|
||||
* `num:...number` 数值
|
||||
|
||||
返回:`number` 所有传入值中最小的那个
|
||||
|
||||
@ -109,7 +109,7 @@
|
||||
|
||||
用法:`SUM(num1, num2, ...numN)`
|
||||
|
||||
- `num:...number` 数值
|
||||
* `num:...number` 数值
|
||||
|
||||
返回:`number` 所有传入数值的总和
|
||||
|
||||
@ -119,7 +119,7 @@
|
||||
|
||||
用法:`INT(num)`
|
||||
|
||||
- `num:number` 数值
|
||||
* `num:number` 数值
|
||||
|
||||
返回:`number` 数值对应的整形
|
||||
|
||||
@ -129,8 +129,8 @@
|
||||
|
||||
用法:`MOD(num, divisor)`
|
||||
|
||||
- `num:number` 被除数
|
||||
- `divisor:number` 除数
|
||||
* `num:number` 被除数
|
||||
* `divisor:number` 除数
|
||||
|
||||
返回:`number` 两数相除的余数
|
||||
|
||||
@ -146,8 +146,8 @@
|
||||
|
||||
用法:`ROUND(num[, numDigits = 2])`
|
||||
|
||||
- `num:number` 要处理的数字
|
||||
- `numDigits:number` 小数位数
|
||||
* `num:number` 要处理的数字
|
||||
* `numDigits:number` 小数位数
|
||||
|
||||
返回:`number` 传入数值四舍五入后的结果
|
||||
|
||||
@ -157,8 +157,8 @@
|
||||
|
||||
用法:`FLOOR(num[, numDigits=2])`
|
||||
|
||||
- `num:number` 要处理的数字
|
||||
- `numDigits:number` 小数位数
|
||||
* `num:number` 要处理的数字
|
||||
* `numDigits:number` 小数位数
|
||||
|
||||
返回:`number` 传入数值向下取整后的结果
|
||||
|
||||
@ -168,8 +168,8 @@
|
||||
|
||||
用法:`CEIL(num[, numDigits=2])`
|
||||
|
||||
- `num:number` 要处理的数字
|
||||
- `numDigits:number` 小数位数
|
||||
* `num:number` 要处理的数字
|
||||
* `numDigits:number` 小数位数
|
||||
|
||||
返回:`number` 传入数值向上取整后的结果
|
||||
|
||||
@ -179,7 +179,7 @@
|
||||
|
||||
用法:`SQRT(num)`
|
||||
|
||||
- `num:number` 要处理的数字
|
||||
* `num:number` 要处理的数字
|
||||
|
||||
返回:`number` 开平方的结果
|
||||
|
||||
@ -189,7 +189,7 @@
|
||||
|
||||
用法:`AVG(num1, num2, ...numN)`
|
||||
|
||||
- `num:...number` 要处理的数字
|
||||
* `num:...number` 要处理的数字
|
||||
|
||||
返回:`number` 所有数值的平均值
|
||||
|
||||
@ -199,7 +199,7 @@
|
||||
|
||||
用法:`DEVSQ(num1, num2, ...numN)`
|
||||
|
||||
- `num:...number` 要处理的数字
|
||||
* `num:...number` 要处理的数字
|
||||
|
||||
返回:`number` 所有数值的平均值
|
||||
|
||||
@ -209,7 +209,7 @@
|
||||
|
||||
用法:`AVEDEV(num1, num2, ...numN)`
|
||||
|
||||
- `num:...number` 要处理的数字
|
||||
* `num:...number` 要处理的数字
|
||||
|
||||
返回:`number` 所有数值的平均值
|
||||
|
||||
@ -219,7 +219,7 @@
|
||||
|
||||
用法:`HARMEAN(num1, num2, ...numN)`
|
||||
|
||||
- `num:...number` 要处理的数字
|
||||
* `num:...number` 要处理的数字
|
||||
|
||||
返回:`number` 所有数值的平均值
|
||||
|
||||
@ -229,8 +229,8 @@
|
||||
|
||||
用法:`LARGE(array, k)`
|
||||
|
||||
- `nums:array` 要处理的数字
|
||||
- `k:number` 第几大
|
||||
* `nums:array` 要处理的数字
|
||||
* `k:number` 第几大
|
||||
|
||||
返回:`number` 所有数值的平均值
|
||||
|
||||
@ -240,7 +240,7 @@
|
||||
|
||||
用法:`UPPERMONEY(num)`
|
||||
|
||||
- `num:number` 要处理的数字
|
||||
* `num:number` 要处理的数字
|
||||
|
||||
返回:`string` 数值中文大写字符
|
||||
|
||||
@ -260,7 +260,7 @@
|
||||
|
||||
用法:`LAST(array)`
|
||||
|
||||
- `arr:...number` 要处理的数组
|
||||
* `arr:...number` 要处理的数组
|
||||
|
||||
返回:`any` 最后一个值
|
||||
|
||||
@ -272,8 +272,8 @@
|
||||
|
||||
用法:`LEFT(text, len)`
|
||||
|
||||
- `text:string` 要处理的文本
|
||||
- `len:number` 要处理的长度
|
||||
* `text:string` 要处理的文本
|
||||
* `len:number` 要处理的长度
|
||||
|
||||
返回:`string` 对应字符串
|
||||
|
||||
@ -283,8 +283,8 @@
|
||||
|
||||
用法:`RIGHT(text, len)`
|
||||
|
||||
- `text:string` 要处理的文本
|
||||
- `len:number` 要处理的长度
|
||||
* `text:string` 要处理的文本
|
||||
* `len:number` 要处理的长度
|
||||
|
||||
返回:`string` 对应字符串
|
||||
|
||||
@ -294,7 +294,7 @@
|
||||
|
||||
用法:`LEN(text)`
|
||||
|
||||
- `text:string` 要处理的文本
|
||||
* `text:string` 要处理的文本
|
||||
|
||||
返回:`number` 长度
|
||||
|
||||
@ -304,7 +304,7 @@
|
||||
|
||||
用法:`LENGTH(textArr)`
|
||||
|
||||
- `textArr:Array<string>` 要处理的文本集合
|
||||
* `textArr:Array<string>` 要处理的文本集合
|
||||
|
||||
返回:`Array<number>` 长度集合
|
||||
|
||||
@ -314,7 +314,7 @@
|
||||
|
||||
用法:`ISEMPTY(text)`
|
||||
|
||||
- `text:string` 要处理的文本
|
||||
* `text:string` 要处理的文本
|
||||
|
||||
返回:`boolean` 判断结果
|
||||
|
||||
@ -324,7 +324,7 @@
|
||||
|
||||
用法:`CONCATENATE(text1, text2, ...textN)`
|
||||
|
||||
- `text:...string` 文本集合
|
||||
* `text:...string` 文本集合
|
||||
|
||||
返回:`string` 连接后的文本
|
||||
|
||||
@ -334,7 +334,7 @@
|
||||
|
||||
用法:`CHAR(code)`
|
||||
|
||||
- `code:number` 编码值
|
||||
* `code:number` 编码值
|
||||
|
||||
返回:`string` 指定位置的字符
|
||||
|
||||
@ -346,7 +346,7 @@
|
||||
|
||||
用法:`LOWER(text)`
|
||||
|
||||
- `text:string` 文本
|
||||
* `text:string` 文本
|
||||
|
||||
返回:`string` 结果文本
|
||||
|
||||
@ -356,7 +356,7 @@
|
||||
|
||||
用法:`UPPER(text)`
|
||||
|
||||
- `text:string` 文本
|
||||
* `text:string` 文本
|
||||
|
||||
返回:`string` 结果文本
|
||||
|
||||
@ -366,7 +366,7 @@
|
||||
|
||||
用法:`UPPERFIRST(text)`
|
||||
|
||||
- `text:string` 文本
|
||||
* `text:string` 文本
|
||||
|
||||
返回:`string` 结果文本
|
||||
|
||||
@ -376,9 +376,9 @@
|
||||
|
||||
用法:`PADSTART(text)`
|
||||
|
||||
- `text:string` 文本
|
||||
- `num:number` 目标长度
|
||||
- `pad:string` 用于补齐的文本
|
||||
* `text:string` 文本
|
||||
* `num:number` 目标长度
|
||||
* `pad:string` 用于补齐的文本
|
||||
|
||||
返回:`string` 结果文本
|
||||
|
||||
@ -392,7 +392,7 @@
|
||||
|
||||
用法:`CAPITALIZE(text)`
|
||||
|
||||
- `text:string` 文本
|
||||
* `text:string` 文本
|
||||
|
||||
返回:`string` 结果文本
|
||||
|
||||
@ -406,7 +406,7 @@
|
||||
|
||||
用法:`ESCAPE(text)`
|
||||
|
||||
- `text:string` 文本
|
||||
* `text:string` 文本
|
||||
|
||||
返回:`string` 结果文本
|
||||
|
||||
@ -420,8 +420,8 @@
|
||||
|
||||
用法:`TRUNCATE(text, 6)`
|
||||
|
||||
- `text:string` 文本
|
||||
- `text:number` 最长长度
|
||||
* `text:string` 文本
|
||||
* `text:number` 最长长度
|
||||
|
||||
返回:`string` 结果文本
|
||||
|
||||
@ -435,8 +435,8 @@
|
||||
|
||||
用法:`BEFORELAST(text, '.')`
|
||||
|
||||
- `text:string` 文本
|
||||
- `delimiter:string` 结束文本
|
||||
* `text:string` 文本
|
||||
* `delimiter:string` 结束文本
|
||||
|
||||
返回:`string` 判断结果
|
||||
|
||||
@ -446,8 +446,8 @@
|
||||
|
||||
用法:`SPLIT(text, ',')`
|
||||
|
||||
- `text:string` 文本
|
||||
- `delimiter:string` 文本片段
|
||||
* `text:string` 文本
|
||||
* `delimiter:string` 文本片段
|
||||
|
||||
返回:`Array<string>` 文本集
|
||||
|
||||
@ -461,7 +461,7 @@
|
||||
|
||||
用法:`TRIM(text)`
|
||||
|
||||
- `text:string` 文本
|
||||
* `text:string` 文本
|
||||
|
||||
返回:`string` 处理后的文本
|
||||
|
||||
@ -471,7 +471,7 @@
|
||||
|
||||
用法:`STRIPTAG(text)`
|
||||
|
||||
- `text:string` 文本
|
||||
* `text:string` 文本
|
||||
|
||||
返回:`string` 处理后的文本
|
||||
|
||||
@ -485,7 +485,7 @@
|
||||
|
||||
用法:`LINEBREAK(text)`
|
||||
|
||||
- `text:string` 文本
|
||||
* `text:string` 文本
|
||||
|
||||
返回:`string` 处理后的文本
|
||||
|
||||
@ -499,8 +499,8 @@
|
||||
|
||||
用法:`STARTSWITH(text, '片段')`
|
||||
|
||||
- `text:string` 文本
|
||||
- `startString:string` 起始文本
|
||||
* `text:string` 文本
|
||||
* `startString:string` 起始文本
|
||||
|
||||
返回:`string` 判断结果
|
||||
|
||||
@ -510,8 +510,8 @@
|
||||
|
||||
用法:`ENDSWITH(text, '片段')`
|
||||
|
||||
- `text:string` 文本
|
||||
- `endString:string` 结束文本
|
||||
* `text:string` 文本
|
||||
* `endString:string` 结束文本
|
||||
|
||||
返回:`string` 判断结果
|
||||
|
||||
@ -521,8 +521,8 @@
|
||||
|
||||
用法:`CONTAINS(text, searchText)`
|
||||
|
||||
- `text:string` 文本
|
||||
- `searchText:string` 搜索文本
|
||||
* `text:string` 文本
|
||||
* `searchText:string` 搜索文本
|
||||
|
||||
返回:`string` 判断结果
|
||||
|
||||
@ -532,9 +532,9 @@
|
||||
|
||||
用法:`REPLACE(text, search, replace)`
|
||||
|
||||
- `text:string` 要处理的文本
|
||||
- `search:string` 要被替换的文本
|
||||
- `replace:string` 要替换的文本
|
||||
* `text:string` 要处理的文本
|
||||
* `search:string` 要被替换的文本
|
||||
* `replace:string` 要替换的文本
|
||||
|
||||
返回:`string` 处理结果
|
||||
|
||||
@ -544,9 +544,9 @@
|
||||
|
||||
用法:`SEARCH(text, search, 0)`
|
||||
|
||||
- `text:string` 要处理的文本
|
||||
- `search:string` 用来搜索的文本
|
||||
- `start:number` 起始位置
|
||||
* `text:string` 要处理的文本
|
||||
* `search:string` 用来搜索的文本
|
||||
* `start:number` 起始位置
|
||||
|
||||
返回:`number` 命中的位置
|
||||
|
||||
@ -556,9 +556,9 @@
|
||||
|
||||
用法:`MID(text, from, len)`
|
||||
|
||||
- `text:string` 要处理的文本
|
||||
- `from:number` 起始位置
|
||||
- `len:number` 处理长度
|
||||
* `text:string` 要处理的文本
|
||||
* `from:number` 起始位置
|
||||
* `len:number` 处理长度
|
||||
|
||||
返回:`number` 命中的位置
|
||||
|
||||
@ -568,7 +568,7 @@
|
||||
|
||||
用法:`BASENAME(text)`
|
||||
|
||||
- `text:string` 要处理的文本
|
||||
* `text:string` 要处理的文本
|
||||
|
||||
返回:`string` 文件名
|
||||
|
||||
@ -586,15 +586,15 @@
|
||||
|
||||
创建日期对象,可以通过特定格式的字符串,或者数值。
|
||||
|
||||
需要注意的是,其中月份的数值是从 0 开始的,也就是说,
|
||||
如果是 12 月份,你应该传入数值 11。
|
||||
需要注意的是,其中月份的数值是从0开始的,也就是说,
|
||||
如果是12月份,你应该传入数值11。
|
||||
|
||||
### TIMESTAMP
|
||||
|
||||
用法:`TIMESTAMP(date, 'x')`
|
||||
|
||||
- `date:date` 日期对象
|
||||
- `format:string` 时间戳格式,带毫秒传入 'x'。默认为 'X' 不带毫秒的。
|
||||
* `date:date` 日期对象
|
||||
* `format:string` 时间戳格式,带毫秒传入 'x'。默认为 'X' 不带毫秒的。
|
||||
|
||||
返回:`number` 时间戳
|
||||
|
||||
@ -616,8 +616,8 @@
|
||||
|
||||
用法:`WEEKDAY(date)`
|
||||
|
||||
- `date:any` 日期
|
||||
- `type:number` 星期定义类型,默认为 1,1 表示 0 至 6 代表星期一到星期日,2 表示 1 至 7 代表星期一到星期日
|
||||
* `date:any` 日期
|
||||
* `type:number` 星期定义类型,默认为1,1表示0至6代表星期一到星期日,2表示1至7代表星期一到星期日
|
||||
|
||||
返回:`number` 星期几的数字标识
|
||||
|
||||
@ -631,8 +631,8 @@ WEEKDAY('2023-02-27') 得到 1
|
||||
|
||||
用法:`WEEK(date)`
|
||||
|
||||
- `date:any` 日期
|
||||
- `isISO:boolean` 是否 ISO 星期
|
||||
* `date:any` 日期
|
||||
* `isISO:boolean` 是否ISO星期
|
||||
|
||||
返回:`number` 星期几的数字标识
|
||||
|
||||
@ -646,8 +646,8 @@ WEEK('2023-03-05') 得到 10
|
||||
|
||||
用法:`DATETOSTR(date, 'YYYY-MM-DD')`
|
||||
|
||||
- `date:any` 日期对象、日期字符串、时间戳
|
||||
- `format:string` 日期格式,默认为 "YYYY-MM-DD HH:mm:ss"
|
||||
* `date:any` 日期对象、日期字符串、时间戳
|
||||
* `format:string` 日期格式,默认为 "YYYY-MM-DD HH:mm:ss"
|
||||
|
||||
返回:`string` 日期字符串
|
||||
|
||||
@ -664,10 +664,10 @@ DATETOSTR(DATE('2021-12-21'), 'YYYY.MM.DD hh:mm:ss') 得到 '2021.12.21 08:00:00
|
||||
|
||||
用法:`DATERANGESPLIT(date, 'YYYY-MM-DD')`
|
||||
|
||||
- `date:string` 日期范围字符串
|
||||
- `key:string` 取值标识,0 或'start'表示获取开始时间,1 或'end'表示获取结束时间
|
||||
- `format:string` 日期格式,可选
|
||||
- `delimiter:string` 分隔符,可选,默认为','
|
||||
* `date:string` 日期范围字符串
|
||||
* `key:string` 取值标识,0或'start'表示获取开始时间,1或'end'表示获取结束时间
|
||||
* `format:string` 日期格式,可选
|
||||
* `delimiter:string` 分隔符,可选,默认为','
|
||||
|
||||
返回:`string` 日期字符串
|
||||
|
||||
@ -686,9 +686,9 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
||||
|
||||
用法:`STARTOF(date[unit = "day"])`
|
||||
|
||||
- `date:date` 日期对象
|
||||
- `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
|
||||
- `format:string` 日期格式,可选
|
||||
* `date:date` 日期对象
|
||||
* `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
|
||||
* `format:string` 日期格式,可选
|
||||
|
||||
返回:`date` 新的日期对象
|
||||
|
||||
@ -698,9 +698,9 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
||||
|
||||
用法:`ENDOF(date[unit = "day"])`
|
||||
|
||||
- `date:date` 日期对象
|
||||
- `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
|
||||
- `format:string` 日期格式,可选
|
||||
* `date:date` 日期对象
|
||||
* `unit:string` 比如可以传入 'day'、'month'、'year' 或者 `week` 等等
|
||||
* `format:string` 日期格式,可选
|
||||
|
||||
返回:`date` 新的日期对象
|
||||
|
||||
@ -710,7 +710,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
||||
|
||||
用法:`YEAR(date)`
|
||||
|
||||
- `date:date` 日期对象
|
||||
* `date:date` 日期对象
|
||||
|
||||
返回:`number` 数值
|
||||
|
||||
@ -720,7 +720,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
||||
|
||||
用法:`MONTH(date)`
|
||||
|
||||
- `date:date` 日期对象
|
||||
* `date:date` 日期对象
|
||||
|
||||
返回:`number` 数值
|
||||
|
||||
@ -730,7 +730,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
||||
|
||||
用法:`DAY(date)`
|
||||
|
||||
- `date:date` 日期对象
|
||||
* `date:date` 日期对象
|
||||
|
||||
返回:`number` 数值
|
||||
|
||||
@ -740,7 +740,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
||||
|
||||
用法:`HOUR(date)`
|
||||
|
||||
- `date:date` 日期对象
|
||||
* `date:date` 日期对象
|
||||
|
||||
返回:`number` 数值
|
||||
|
||||
@ -750,7 +750,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
||||
|
||||
用法:`MINUTE(date)`
|
||||
|
||||
- `date:date` 日期对象
|
||||
* `date:date` 日期对象
|
||||
|
||||
返回:`number` 数值
|
||||
|
||||
@ -760,7 +760,7 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
||||
|
||||
用法:`SECOND(date)`
|
||||
|
||||
- `date:date` 日期对象
|
||||
* `date:date` 日期对象
|
||||
|
||||
返回:`number` 数值
|
||||
|
||||
@ -770,8 +770,8 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
||||
|
||||
用法:`YEARS(endDate, startDate)`
|
||||
|
||||
- `endDate:date` 日期对象
|
||||
- `startDate:date` 日期对象
|
||||
* `endDate:date` 日期对象
|
||||
* `startDate:date` 日期对象
|
||||
|
||||
返回:`number` 数值
|
||||
|
||||
@ -781,8 +781,8 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
||||
|
||||
用法:`MINUTES(endDate, startDate)`
|
||||
|
||||
- `endDate:date` 日期对象
|
||||
- `startDate:date` 日期对象
|
||||
* `endDate:date` 日期对象
|
||||
* `startDate:date` 日期对象
|
||||
|
||||
返回:`number` 数值
|
||||
|
||||
@ -792,8 +792,8 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
||||
|
||||
用法:`DAYS(endDate, startDate)`
|
||||
|
||||
- `endDate:date` 日期对象
|
||||
- `startDate:date` 日期对象
|
||||
* `endDate:date` 日期对象
|
||||
* `startDate:date` 日期对象
|
||||
|
||||
返回:`number` 数值
|
||||
|
||||
@ -803,8 +803,8 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
||||
|
||||
用法:`HOURS(endDate, startDate)`
|
||||
|
||||
- `endDate:date` 日期对象
|
||||
- `startDate:date` 日期对象
|
||||
* `endDate:date` 日期对象
|
||||
* `startDate:date` 日期对象
|
||||
|
||||
返回:`number` 数值
|
||||
|
||||
@ -814,9 +814,9 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
||||
|
||||
用法:`DATEMODIFY(date, 2, 'days')`
|
||||
|
||||
- `date:date` 日期对象
|
||||
- `num:number` 数值
|
||||
- `unit:string` 单位:支持年、月、天等等
|
||||
* `date:date` 日期对象
|
||||
* `num:number` 数值
|
||||
* `unit:string` 单位:支持年、月、天等等
|
||||
|
||||
返回:`date` 日期对象
|
||||
|
||||
@ -826,14 +826,14 @@ DATERANGESPLIT('1676563200, 1676735999', 'end' , 'YYYY.MM.DD hh:mm:ss') 得到 '
|
||||
|
||||
DATEMODIFY(A, -2, 'month')
|
||||
|
||||
对日期 A 进行往前减 2 月的操作。
|
||||
对日期 A 进行往前减2月的操作。
|
||||
|
||||
### STRTODATE
|
||||
|
||||
用法:`STRTODATE(value[, format=""])`
|
||||
|
||||
- `value:string` 日期字符
|
||||
- `format:string` 日期格式
|
||||
* `value:string` 日期字符
|
||||
* `format:string` 日期格式
|
||||
|
||||
返回:`date` 日期对象
|
||||
|
||||
@ -845,9 +845,9 @@ DATEMODIFY(A, -2, 'month')
|
||||
|
||||
用法:`ISBEFORE(a, b)`
|
||||
|
||||
- `a:date` 第一个日期
|
||||
- `b:date` 第二个日期
|
||||
- `unit:string` 单位,默认是 'day', 即之比较到天
|
||||
* `a:date` 第一个日期
|
||||
* `b:date` 第二个日期
|
||||
* `unit:string` 单位,默认是 'day', 即之比较到天
|
||||
|
||||
返回:`boolean` 判断结果
|
||||
|
||||
@ -857,9 +857,9 @@ DATEMODIFY(A, -2, 'month')
|
||||
|
||||
用法:`ISAFTER(a, b)`
|
||||
|
||||
- `a:date` 第一个日期
|
||||
- `b:date` 第二个日期
|
||||
- `unit:string` 单位,默认是 'day', 即之比较到天
|
||||
* `a:date` 第一个日期
|
||||
* `b:date` 第二个日期
|
||||
* `unit:string` 单位,默认是 'day', 即之比较到天
|
||||
|
||||
返回:`boolean` 判断结果
|
||||
|
||||
@ -869,10 +869,10 @@ DATEMODIFY(A, -2, 'month')
|
||||
|
||||
用法:`BETWEENRANGE(date, [start, end])`
|
||||
|
||||
- `date:any` 第一个日期
|
||||
- `daterange:Array<any>` 日期范围
|
||||
- `unit:string` 单位,默认是 'day', 即之比较到天
|
||||
- `inclusivity:string` 包容性规则,默认为'[]'。[ 表示包含、( 表示排除,如果使用包容性参数,则必须传入两个指示符,如'()'表示左右范围都排除
|
||||
* `date:any` 第一个日期
|
||||
* `daterange:Array<any>` 日期范围
|
||||
* `unit:string` 单位,默认是 'day', 即之比较到天
|
||||
* `inclusivity:string` 包容性规则,默认为'[]'。[ 表示包含、( 表示排除,如果使用包容性参数,则必须传入两个指示符,如'()'表示左右范围都排除
|
||||
|
||||
返回:`boolean` 判断结果
|
||||
|
||||
@ -884,9 +884,9 @@ DATEMODIFY(A, -2, 'month')
|
||||
|
||||
用法:`ISSAMEORBEFORE(a, b)`
|
||||
|
||||
- `a:date` 第一个日期
|
||||
- `b:date` 第二个日期
|
||||
- `unit:string` 单位,默认是 'day', 即之比较到天
|
||||
* `a:date` 第一个日期
|
||||
* `b:date` 第二个日期
|
||||
* `unit:string` 单位,默认是 'day', 即之比较到天
|
||||
|
||||
返回:`boolean` 判断结果
|
||||
|
||||
@ -896,9 +896,9 @@ DATEMODIFY(A, -2, 'month')
|
||||
|
||||
用法:`ISSAMEORAFTER(a, b)`
|
||||
|
||||
- `a:date` 第一个日期
|
||||
- `b:date` 第二个日期
|
||||
- `unit:string` 单位,默认是 'day', 即之比较到天
|
||||
* `a:date` 第一个日期
|
||||
* `b:date` 第二个日期
|
||||
* `unit:string` 单位,默认是 'day', 即之比较到天
|
||||
|
||||
返回:`boolean` 判断结果
|
||||
|
||||
@ -910,7 +910,7 @@ DATEMODIFY(A, -2, 'month')
|
||||
|
||||
用法:`COUNT(arr)`
|
||||
|
||||
- `arr:Array<any>` 数组
|
||||
* `arr:Array<any>` 数组
|
||||
|
||||
返回:`boolean` 结果
|
||||
|
||||
@ -920,8 +920,8 @@ DATEMODIFY(A, -2, 'month')
|
||||
|
||||
用法:`ARRAYMAP(arr, item => item)`
|
||||
|
||||
- `arr:Array<any>` 数组
|
||||
- `iterator:Array<any>` 箭头函数
|
||||
* `arr:Array<any>` 数组
|
||||
* `iterator:Array<any>` 箭头函数
|
||||
|
||||
返回:`boolean` 结果
|
||||
|
||||
@ -931,8 +931,8 @@ DATEMODIFY(A, -2, 'month')
|
||||
|
||||
用法:`ARRAYFILTER(arr, item => item)`
|
||||
|
||||
- `arr:Array<any>` 数组
|
||||
- `iterator:Array<any>` 箭头函数
|
||||
* `arr:Array<any>` 数组
|
||||
* `iterator:Array<any>` 箭头函数
|
||||
|
||||
返回:`boolean` 结果
|
||||
|
||||
@ -943,8 +943,8 @@ DATEMODIFY(A, -2, 'month')
|
||||
|
||||
用法:`ARRAYFINDINDEX(arr, item => item === 2)`
|
||||
|
||||
- `arr:Array<any>` 数组
|
||||
- `iterator:Array<any>` 箭头函数
|
||||
* `arr:Array<any>` 数组
|
||||
* `iterator:Array<any>` 箭头函数
|
||||
|
||||
返回:`number` 结果
|
||||
|
||||
@ -959,8 +959,8 @@ ARRAYFINDINDEX([0, 2, false], item => item === 2) 得到 1
|
||||
|
||||
用法:`ARRAYFIND(arr, item => item === 2)`
|
||||
|
||||
- `arr:Array<any>` 数组
|
||||
- `iterator:Array<any>` 箭头函数
|
||||
* `arr:Array<any>` 数组
|
||||
* `iterator:Array<any>` 箭头函数
|
||||
|
||||
返回:`any` 结果
|
||||
|
||||
@ -975,8 +975,8 @@ ARRAYFIND([0, 2, false], item => item === 2) 得到 2
|
||||
|
||||
用法:`ARRAYSOME(arr, item => item === 2)`
|
||||
|
||||
- `arr:Array<any>` 数组
|
||||
- `iterator:Array<any>` 箭头函数
|
||||
* `arr:Array<any>` 数组
|
||||
* `iterator:Array<any>` 箭头函数
|
||||
|
||||
返回:`boolean` 结果
|
||||
|
||||
@ -991,8 +991,8 @@ ARRAYSOME([0, 2, false], item => item === 2) 得到 true
|
||||
|
||||
用法:`ARRAYEVERY(arr, item => item === 2)`
|
||||
|
||||
- `arr:Array<any>` 数组
|
||||
- `iterator:Array<any>` 箭头函数
|
||||
* `arr:Array<any>` 数组
|
||||
* `iterator:Array<any>` 箭头函数
|
||||
|
||||
返回:`boolean` 结果
|
||||
|
||||
@ -1007,8 +1007,8 @@ ARRAYEVERY([0, 2, false], item => item === 2) 得到 false
|
||||
|
||||
用法:`ARRAYINCLUDES(arr, 2)`
|
||||
|
||||
- `arr:Array<any>` 数组
|
||||
- `item:any` 元素
|
||||
* `arr:Array<any>` 数组
|
||||
* `item:any` 元素
|
||||
|
||||
返回:`any` 结果
|
||||
|
||||
@ -1022,7 +1022,7 @@ ARRAYINCLUDES([0, 2, false], 2) 得到 true
|
||||
|
||||
用法:`COMPACT(arr)`
|
||||
|
||||
- `arr:Array<any>` 数组
|
||||
* `arr:Array<any>` 数组
|
||||
|
||||
返回:`Array<any>` 结果
|
||||
|
||||
@ -1036,8 +1036,8 @@ COMPACT([0, 1, false, 2, '', 3]) 得到 [1, 2, 3]
|
||||
|
||||
用法:`JOIN(arr, string)`
|
||||
|
||||
- `arr:Array<any>` 数组
|
||||
- `separator:String` 分隔符
|
||||
* `arr:Array<any>` 数组
|
||||
* `separator:String` 分隔符
|
||||
|
||||
返回:`String` 结果
|
||||
|
||||
@ -1051,7 +1051,7 @@ JOIN(['a', 'b', 'c'], '=') 得到 'a=b=c'
|
||||
|
||||
用法:`CONCAT(['a', 'b', 'c'], ['1'], ['3'])`
|
||||
|
||||
- `arr:Array<any>` 数组
|
||||
* `arr:Array<any>` 数组
|
||||
|
||||
返回:`Array<any>` 结果
|
||||
|
||||
@ -1065,8 +1065,8 @@ CONCAT(['a', 'b', 'c'], ['1'], ['3']) 得到 ['a', 'b', 'c', '1', '3']
|
||||
|
||||
用法:`UNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'x')`
|
||||
|
||||
- `arr:Array<any>` 数组
|
||||
- `field:string` 字段
|
||||
* `arr:Array<any>` 数组
|
||||
* `field:string` 字段
|
||||
|
||||
返回:`Array<any>` 结果
|
||||
|
||||
@ -1082,11 +1082,11 @@ UNIQ([{a: '1'}, {b: '2'}, {a: '1'}], 'id')
|
||||
|
||||
用法:`ENCODEJSON({name: 'amis'})`
|
||||
|
||||
- `obj:object` JS 对象
|
||||
* `obj:object` JS对象
|
||||
|
||||
返回:`string` 结果
|
||||
|
||||
将 JS 对象转换成 JSON 字符串
|
||||
将JS对象转换成JSON字符串
|
||||
|
||||
示例:
|
||||
|
||||
@ -1096,11 +1096,11 @@ ENCODEJSON({name: 'amis'}) 得到 '{"name":"amis"}'
|
||||
|
||||
用法:`DECODEJSON('{\"name\": "amis"}')`
|
||||
|
||||
- `str:string` 字符串
|
||||
* `str:string` 字符串
|
||||
|
||||
返回:`object` 结果
|
||||
|
||||
解析 JSON 编码数据,返回 JS 对象
|
||||
解析JSON编码数据,返回JS对象
|
||||
|
||||
示例:
|
||||
|
||||
@ -1112,13 +1112,13 @@ DECODEJSON('{\"name\": "amis"}') 得到 {name: 'amis'}
|
||||
|
||||
用法:`GET(arr, 2)`
|
||||
|
||||
- `obj:any` 对象或数组
|
||||
- `path:string` 路径
|
||||
- `defaultValue:any` 如果解析不到则返回该值
|
||||
* `obj:any` 对象或数组
|
||||
* `path:string` 路径
|
||||
* `defaultValue:any` 如果解析不到则返回该值
|
||||
|
||||
返回:`any` 结果
|
||||
|
||||
根据对象或者数组的 path 路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代
|
||||
根据对象或者数组的path路径获取值。 如果解析 value 是 undefined 会以 defaultValue 取代
|
||||
|
||||
示例:
|
||||
|
||||
@ -1132,8 +1132,9 @@ GET({arr: [{name: 'amis', age: 18}]}, 'arr.1.name', 'not-found') 得到 'not-fou
|
||||
|
||||
用法:`ISTYPE([{a: '1'}, {b: '2'}, {a: '1'}], 'array')`
|
||||
|
||||
- `判断对象:string` null
|
||||
* `判断对象:string` null
|
||||
|
||||
返回:`boolean` 结果
|
||||
|
||||
判断是否为类型支持:string, number, array, date, plain-object。
|
||||
|
||||
|
@ -233,8 +233,9 @@
|
||||
"peerDependencies": {
|
||||
"amis-core": "*",
|
||||
"amis-ui": "*",
|
||||
"office-viewer": "*",
|
||||
"react": ">=16.8.6",
|
||||
"react-dom": ">=16.8.6"
|
||||
},
|
||||
"gitHead": "37d23b4a8eb1c663bc38e8dd9040889ea1526ec4"
|
||||
}
|
||||
}
|
@ -29,6 +29,7 @@ const external = id => {
|
||||
'react-dom',
|
||||
'rc-input-number',
|
||||
'@rc-component/mini-decimal',
|
||||
'fflate',
|
||||
'@babel/runtime'
|
||||
])
|
||||
.map(value =>
|
||||
@ -115,7 +116,12 @@ function transpileDynamicImportForCJS(options) {
|
||||
}
|
||||
|
||||
function getPlugins(format = 'esm') {
|
||||
const overridePaths = ['amis-formula', 'amis-core', 'amis-ui'].reduce(
|
||||
const overridePaths = [
|
||||
'amis-formula',
|
||||
'amis-core',
|
||||
'amis-ui',
|
||||
'office-viewer'
|
||||
].reduce(
|
||||
(prev, current) => ({
|
||||
...prev,
|
||||
[current]: [getCompiledEntryPath(current, format)]
|
||||
|
@ -4,8 +4,6 @@
|
||||
|
||||
import React from 'react';
|
||||
import {BaseSchema} from '../Schema';
|
||||
import {evaluate} from 'amis-formula';
|
||||
import {Word} from 'office-viewer';
|
||||
import {
|
||||
ActionObject,
|
||||
isApiOutdated,
|
||||
@ -128,16 +126,20 @@ export default class OfficeViewer extends React.Component<
|
||||
const response = await env.fetcher(finalSrc, data, {
|
||||
responseType: 'arraybuffer'
|
||||
});
|
||||
const word = new Word(response.data, {
|
||||
...wordOptions,
|
||||
replaceText: this.replaceText.bind(this)
|
||||
|
||||
import('office-viewer').then(async (officeViewer: any) => {
|
||||
const Word = officeViewer.Word;
|
||||
const word = new Word(response.data, {
|
||||
...wordOptions,
|
||||
replaceText: this.replaceText.bind(this)
|
||||
});
|
||||
|
||||
if (display !== false) {
|
||||
word.render(this.rootElement?.current!);
|
||||
}
|
||||
|
||||
this.word = word;
|
||||
});
|
||||
|
||||
if (display !== false) {
|
||||
word.render(this.rootElement?.current!);
|
||||
}
|
||||
|
||||
this.word = word;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -150,13 +152,17 @@ export default class OfficeViewer extends React.Component<
|
||||
const reader = new FileReader();
|
||||
reader.onload = _e => {
|
||||
const data = reader.result as ArrayBuffer;
|
||||
const word = new Word(data, {
|
||||
...wordOptions,
|
||||
replaceText: this.replaceText.bind(this)
|
||||
|
||||
import('office-viewer').then(async (officeViewer: any) => {
|
||||
const word = new Word(data, {
|
||||
...wordOptions,
|
||||
replaceText: this.replaceText.bind(this)
|
||||
});
|
||||
if (display !== false) {
|
||||
word.render(this.rootElement?.current!);
|
||||
}
|
||||
});
|
||||
if (display !== false) {
|
||||
word.render(this.rootElement?.current!);
|
||||
}
|
||||
|
||||
};
|
||||
reader.readAsArrayBuffer(file);
|
||||
}
|
||||
|
9
packages/office-viewer/.gitignore
vendored
Normal file
9
packages/office-viewer/.gitignore
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
/dist
|
||||
lib
|
||||
sdk
|
||||
/public
|
||||
/gh-pages
|
||||
/output
|
||||
/coverage
|
||||
/npm
|
||||
/esm
|
Loading…
Reference in New Issue
Block a user