上传组件
拦截上传
某些场景下,可能不需要所有的文件都允许上传,比如需要先通过OCR进行校验,符合规范后再进行上传,此时可以通过如下方式实现此需求:
创建扩展方法
在视图的方法中创建,具体示例如下:
async function pre_upload(file) {
// 这个 file 就是当前用户选择的文件,如果需要传给接口校验,直接把这个 file 给接口就行
console.log("用户上传的文件:", file);
// 调用接口,需要把这个地址改成对的
// let res = await ZeroCloud.util.ZcHttp.post("xxx.com/ocr");
// console.log("接口返回的数据为:", res);
// 根据ocr接口返回的res进行判断,这个1 == 1的条件是测试内容,实际开发中需要根据接口返回的数据进行判断
if (1 == 1) {
this.$message.success("成功:ocr 校验成功,允许上传")
} else {
this.$message.error('因为某些原因校验失败,拒绝继续上传');
throw new Error('这是一个错误');
}
}
配置上传组件的编辑结构
打开上传组件的编辑结构

按照如下规则进行配置即可,pre_upload即是刚才创建的扩展方法的名称

{
"tag": "zc-view-attachment",
"attrs": {
// 其他内容
"before-upload": {
"type": "expression",
"value": "this.methodSet.view.pre_upload"
},
// 其他内容
}
}