附件字段
# 变更记录
| 产品版本 | 更新内容 | 更新日期 |
| --- | --- | --- |
| V5.0.024 | 新增了移动端附件支持调用app客户端的上传接口上传文的功能,满足了用户使用APP接口上传文件的需求 | 2023-07-14 |
| V5.0.025 | 新增了移动端附件通过链接下载的功能,满足了客户希望在移动端下载附件需求 | 2023-07-27 |
# 1 功能介绍
# 1 功能介绍
简洁版的附件面板,可在卡片分录与单据体中使用;也适用于空间较小的场景,例如侧边栏。
# 2 控件对象
`kd.bos.form.field.AttachmentEdit`
# 3 视觉展示
![image.webp](/download/0100a5bd816b1c0942a68e010f3e07261c4b.webp)
# 4 属性说明
## 4.1 通用属性
>通用属性包含字段和控件的一些公有的属性,如宽高,帮助文本等等。请参考[通用属性](https://vip.kingdee.com/article/215559076720798976)
## 4.2 样式属性
>样式属性是每个控件在设计器右侧样式栏可以设置的属性,请参考[样式属性](https://vip.kingdee.com/article/252017936767406336)
## 4.3 业务属性
| 属性名 | 类型 | 默认值 | 说明 |
| --- | --- | --- | --- |
| 扩展名 | 文本 | - | 配置可上传文件扩展名,例:zip,rar,详见4.3.1 |
| 最大附件大小 | 整数 | 20 | 设置单个可上传文件大小,在系统参数中可设置服务器最大附件的大小,优先级比设计器属性要高,单位为 Mb |
| 最大附件数 | 整数 | 0 | 设置附件可上传的文件数量,超出限制则不可上传 |
| 排序字段 | 下拉 | 上传时间 | 上传附件成功后,按排序字段进行排序,可排序的字段分为上传时间、文件名称、文件大小,详见4.3.2 |
| 排序方式 | 下拉 | 顺序 | 设置排序的方式,分为顺序和倒序 |
### 4.3.1 扩展名
扩展名用于设置附件字段允许上传的文件格式,如.webp,.webp等,多个文件格式使用英文逗号进行分隔
### 4.3.2 排序字段
排序字段用于指定附件的排序条件和顺序,可选择的属性有附件名称、上传时间和附件大小,根据排序字段指定顺序或者是逆序排序。
# 5 插件示例
```java
public void afterCreateNewData(EventObject e){
//案例需求:将某个已存在附件字段上的附件,设置到当前页面的附件字段上。
Object[] attachmentIds = new Object[1];
//实体bd_attachment的主键,可通过查询bd_attachment实体获取。
attachmentIds[0] = 607079090620535808L;
//第一个参数为附件字段的key
this.getModel().setValue("attachmentfield", attachmentIds);
}
```
# 6 移动附件
## 6.1 支持调用app客户端的上传接口上传文件
在苍穹移动端单据的开发过程中,会遇到需要调用APP提供的文件上传接口的场景,如选择文件、选择图片、选择相机等。开发者可以重写平台附件的方法,在重写方法中调用APP提供的接口完成文件上传。
支持重写的方法如下表,重写的方法对应选项有“金蝶云盘”,“相册”,“相机”,“本地文件”,“录像”,用户点击选项后将调用对应方法。
| **方法名** | **选项名** |
| --- | --- |
| selectAttachmentFile | 金蝶云盘 |
| choosePhotoImage | 相册 |
| chooseCarmeaImage | 相机 |
| video_startRecord | 录像 |
开发者可以在扩展js中,重写附件的选择文件、相册、相机、录像方法。用户在点击对应选项后,平台会自动调用上述方法,开发者只需将需要的数据传入callback中即可,平台接收到callback中的数据后,会将数据上传至服务器。扩展js使用请参考:[苍穹前端扩展能力之一,快来学习](https://vip.kingdee.com/article/235427929415677696)
### selectAttachmentFile(金蝶云盘)
一、如果需要引入外部js桥文件,如jsbridge.js,引入方式如下:
```
// index.js
(function () {
/**二开扩展PC端js
* 注意:扩展的js默认是在平台的js前运行,如需扩展的js在平台的js后运行,需要在写在window.afterLoaded中,如下
* window.afterLoaded = function (){
* // your code
* }
*/
window.initKDPlugin = function ({ loadjs, releaseResource }, callback) {
// load插件需要的js桥文件
loadjs('jsbridge.js', () => {
window.KDPluginExtend = {
selectAttachmentFile: function (data = {}, callback) {
// ...调用app的api后返回result数据
const result = [{
downloadUrl: "[https://xxx](https://xxx/)",
fileExt: "doc",
fileId: "6497fe85354fc40001c2c28b",
fileName: "test.doc",
fileSize: 573952,
fileTime: 1687682693642,
}]
callback(result)
}
}
callback({ success: true })//插件安装成功回调{success:false, error:'error info'}
})
//如果要支持额外多个平台不支持的app,需要根据window.navigator.userAgent类型来设置最终window.KDPlugin的值
}
})();
```
如果不需要引入外部js桥文件,则直接重写附件方法即可。
```
// index.js
(function () {
/**二开扩展PC端js
* 注意:扩展的js默认是在平台的js前运行,如需扩展的js在平台的js后运行,需要在写在window.afterLoaded中,如下
* window.afterLoaded = function (){
* // your code
* }
*/
// 这个场景不需要在平台js运行后执行,可以直接写在这里
window.KDPluginExtend = {
selectAttachmentFile: function (data = {}, callback) {
// ...调用app的api后返回result数据
const result = [{
downloadUrl: "[https://xxx](https://xxx/)",
fileExt: "doc",
fileId: "abc123",
fileName: "test.doc",
fileSize: 573952,
fileTime: 1687682693642,
}]
callback(result)
}
}
})();
```
**参数说明**
| **参数** | **类型** | **是否必传** | **说明** |
| --- | --- | --- | --- |
| downloadUrl | String | 是 | 开发者需提供文件的下载链接,平台通过下载地址将文件下载后,上传至服务器 |
| fileExt | String | 是 | 上传的文件类型,如doc、pdf等 |
| fileId | String | 否 | 上传文件id,选填,默认随机生成 |
| fileName | String | 是 | 上传文件名 |
| fileSize | Number | 是 | 上传文件大小 |
| fileTime | Number | 否 | 上传文件时间,选填,默认为当前时间 |
### choosePhotoImage(相册)
方式一:开发者提供downloadUrl下载链接,所需参数与金蝶云盘一致;
方式二:开发者提供图片File对象,支持金蝶云盘中的两种写法。这里主要展示传入参数,采用不加载外部js的写法如下
```
// index.js
(function () {
/**二开扩展PC端js
* 注意:扩展的js默认是在平台的js前运行,如需扩展的js在平台的js后运行,需要在写在window.afterLoaded中,如下
* window.afterLoaded = function (){
* // your code
* }
*/
window.KDPluginExtend = {
choosePhotoImage: function (data = {}, callback) {
// ...调用app的api后返回result数据
const result = [{
fileData: File对象,
fileExt: "image/png",
size: 573952,
}]
callback(result)
}
}
})();
```
**参数说明**
| **参数** | **类型** | **是否必传** | **说明** |
| --- | --- | --- | --- |
| fileData | File对象 | 是 | 开发者需提供图片的File对象 |
| fileExt | String | 是 | 上传的文件类型File.type,如image/png |
| size | Number | 是 | 上传文件大小 |
### chooseCarmeaImage(相机)
方式与参数和相册一致
### video_startRecord(录像)
方式与参数和金蝶云盘一致
## 6.2 附件下载功能
1、附件下载功能中,提供复制下载链接选项,需要用户将链接复制到浏览器进行下载
2、在云之家中,点击“复制下载链接”选项,会自动将下载链接复制到剪切板,用户可以直接打开浏览器粘贴下载链接进行下载
附件字段
# 变更记录| 产品版本 | 更新内容 | 更新日期 || --- | --- | --- || V5.0.024 | 新增了移动端附件支持调用app客户端的上...
点击下载文档
上一篇:条形图下一篇:单选按钮和按钮组字段
本文2024-09-23 00:41:02发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-141052.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章