@farris/extend-file-upload v0.4.4
@farris/extend-file-upload
修改记录
| 修改日期 | 修改要点 |
|---|---|
| 2020 年 1 月 17 日 | 支持预览、下载 |
| 2020 年 1 月 9 日 | 支持通过后缀过滤 |
| 2020 年 1 月 8 日 | 初版 |
| 2020 年 2 月 10 日 | 1.支持拖拽和批量上传 2.优化交互方式 |
| 2020 年 2 月 11 日 | 预览组件支持列表、卡片展示方式以及自定义模板 |
| 2020 年 2 月 20 日 | 完善文档,修改类型问题 |
| 2020 年 3 月 2 日 | 1.统一接口,涉及预览、上传抛出事件的类型 2.附件服务器端配置修改,接口统一3.修改说明 |
| 2020年6月9日 | 可见的重置方法修改 |
| 2020年6月11日 | 图标异常问题修复 |
FFileUploadModule 附件模块
- 提供 forRoot 方法,可以预置附件服务器端配置和附件服务器端实现方法
| 方法 | 参数 | 含义 |
|---|---|---|
| forRoot | 两非必填个参数1. config:FFileUploadServerConfig,附件服务器端配置 2. uploadSer: UploadServerService 的实现类 | 提供扩展 |
UploadConfig 附件配置接口
| 方法 | 参数 | 含义 |
|---|---|---|
| url | string,可选 | 指定上传附件的服务器端路径 |
| method | string:POST 或 GET,可选 | 指定传递到服务器端内容的方式 |
| id | string,可选 | 附件 ID |
| fieldName | string,可选 | 字段,当提交服务器端表单信息时,提交文件信息至此字段,默认是 file |
| file | UploadFile,可选 | 附件信息 |
| data | 键值对像,可选 | 用于扩展传递服务器端的数据 |
| headers | 键值对像,可选 | 用于扩展传递服务器端的头部信息 |
UploadInput 附件操作事件接口
- 继承自 UploadConfig
- 构造传递给服务的事件,比如在上传附件 uploadFile 的时候需要单独扩展传递服务器端数据,在删除单个文件 remove 的时候,需要单独扩展传递服务器端的头部信息
| 方法 | 参数 | 含义 |
|---|---|---|
| type | 可选 | 事件名称:1、uploadAll,上传所有 2、uploadFile 上传单个 3、cancel 取消 4、cancelAll 取消所有 5、remove 删除单个文件 6、removeAll 删除所有文件 7、config 配置类型 |
FFileUploadServerConfig 附件服务器端配置接口
- 继承自 UploadConfig
- 针对服务器端方法,配置需要传递给服务器端的 data 或者 header
| 属性 | 类型 | 含义 |
|---|---|---|
| upload | UploadInput | 单独用于处理附件上传时,传递到服务器端的配置 |
| remove | UploadInput | 单独用于处理删除单个文件时,传递到服务器端的配置 |
UploadServerService 附件服务类抽象类
- 抽象类用于限定附件接口服务,可以用于适配第三方附件接口
- 通过实现这个类,定义在上传和删除时候的服务器端方法,在模块初始化时传入。当附件上传和删除时,走实现类的 upload 和 remove 方法
| 方法 | 参数 | 返回值 | 含义 |
|---|---|---|---|
| upload | 两个参数: 1、files:UploadFile[],附件信息 2、event: UploadInput,事件信息包括配置服务器端扩展信息 | Observable | 单个附件上传 |
| remove | 两个参数: 1、files:UploadFile[],附件信息 2、event: UploadInput,事件信息包括配置服务器端扩展信息 | Observable | 单个附件上传 |
上传组件
- 默认启用文件按钮上传方式 -
<f-file-upload [options]='上传配置项' (fUploadDoneEvent)="fUploadDoneHandler($event)" (fUploadRemovedEvent)="fUploadRemovedHandler($event)"> </f-file-upload>
属性说明
| 属性 | 值类型 | 含义 | 默认值 |
|---|---|---|---|
| disabled | boolean | 是否禁用状态 | |
| visible | boolean | 上传组件是否可见可与预览组件组合控制状态 | false |
| enableDrop | boolean | 是否启用拖拽进行上传 | false |
| dropText | string | 拖拽区域提示文字 | 拖拽文件 |
| enableSelect | boolean | 是否启用选择文件按钮 | true |
| selectText | string | 选择文件按钮文字 | 选择文件 |
| multiple | boolean | 是否启用多选 | 启用后可以一次选择多个文件 |
| options | UploaderOptions | 上传配置项:1. allowedContentTypes:允许上传的文件类型; 2.maxUploads:限制附件上传个数; 3.maxFileSize:单个文件最大 KB | 1. 允许上传任何类型; 2.不限制附件上传个数;3.单个文件最大 12MB |
| extendServerConfig | any | 每个组可以设置特殊服务参数,来覆盖默认的统一模块级配置 | null |
事件说明
| 事件 | 参数类型 | 含义 |
|---|---|---|
| fUploadDoneEvent | FUploadFileExtend[] | 附件上传完成后,抛出此事件 |
| fUploadRemovedEvent | FUploadFileExtend[] | 附件删除完成后,抛出此事件 |
预览组件
- 默认是列表(list)显示方式,内容:文件名,文档类型图标、下载按钮和预览按钮 -
<f-file-preview [fileInfos]="文件信息" [itemCls]="项上单独的class"> </f-file-preview> - 列表(list)是纵向平铺每项数据,卡片(card)是横向平铺每项数据 -
- 支持自定义模板 -
<f-file-preview [fileInfos]="文件信息" [itemCls]="项上单独的class"> <ng-template filePreviewListTypeTemplate let-data let-readonly> .... </ng-template> </f-file-preview>
属性说明
| 属性 | 值类型 | 含义 | 默认值 |
|---|---|---|---|
| type | string | 文件布局类型:1. list 列表类型 2.card 卡片类型 | list |
| itemCls | string | 空 | |
| fileInfos | FUploadFileExtend[] | 附件信息数组 | [] |
| readonly | boolean | 只读的状态,控制附件是否可删除 | true |
事件说明
| 事件 | 参数类型 | 含义 |
|---|---|---|
| filePreviewEvent | FUploadFileExtend | 点击附件预览按钮时,抛出的附件信息 |
| fileDownloadEvent | FUploadFileExtend | 点击附件下载按钮时,抛出的附件信息 |
| fileRemoveEvent | FUploadFileExtend | 点击附件删除按钮时,抛出的附件信息 |
filePreviewListTypeTemplate
- 预览组件的模板,提供预览界面自定义
- 两个属性
- data:UploadFile 类型,附件信息
- readonly:boolean 类型,只读状态
UploaderOptions 附件上传配置接口
| 属性 | 值类型 | 含义 |
|---|---|---|
| allowedContentTypes | string[] | 允许上传的文件类型,例 如'.jpg','.pdf' |
| maxUploads | number | 最大上传个数 |
| maxFileSize | number | 单个文件最大值 KB 为单位 |
FUploadFileExtend 附件文件信息扩展接口
| 属性 | 值类型 | 含义 |
|---|---|---|
| id | string | 附件标识 |
| name | string | 文件名 |
| size 非必 | number | 文件大小 |
| type非必 | string | 文件类型 |
| extend非必 | any 或 null | 记录上传从服务器端返回的数据或者用于预览扩展的信息 |
| extendStatus非必 | number | 记录上传服务器端返回的状态或者用于预览扩展状态 |
| extendHeaders非必 | 键值对象或者 null | 记录服务器端返回的头信息或者用于预览扩展 Header |
UploadFile 附件信息接口
| 属性 | 值类型 | 含义 |
|---|---|---|
| id | string | 附件上传后会自动生成 id |
| fileIndex | number | 附件在数组中的位置 |
| name | string | 文件名 |
| size | number | 文件大小,单位(B) |
| type | string | 文件类型 |
| form | FormData | 提交服务器的数据 |
| response | any 可选 | 记录返回数据 |
| responseStatus | number 可选 | 记录从服务器端返回的状态 |
| nativeFile | File,可选 | 上传的原始文件信息 |
| responseHeaders | 键值对象,可选 | 服务器传递的 Header 信息 |
This library was generated with Angular CLI version 7.2.0.
Code scaffolding
Run ng generate component component-name --project f-file-upload to generate a new component. You can also use ng generate directive|pipe|service|class|guard|interface|enum|module --project f-file-upload.
Note: Don't forget to add
--project f-file-uploador else it will be added to the default project in yourangular.jsonfile.
Build
Run ng build f-file-upload to build the project. The build artifacts will be stored in the dist/ directory.
Publishing
After building your library with ng build f-file-upload, go to the dist folder cd dist/f-file-upload and run npm publish.
Running unit tests
Run ng test f-file-upload to execute the unit tests via Karma.
Further help
To get more help on the Angular CLI use ng help or go check out the Angular CLI README.
5 months ago
5 months ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago