uview1.x 版本的 upload 默认在图片成功上传后,再点击右上角删除按钮时会弹出提示框,如图:
但是有时又不需要,想要直接提示删除成功即可,由于官网没有给出点击删除按钮时所调用的钩子函数,又无法操作 DOM,只有删除成功时的回调;
所以可以直接在项目中的 uview-ui 文件夹中找到 u-upload 组件来修改源码:
其中 deleteItem
函数时点击删除时调用的函数,里面的代码修改为:
if (this.beforeRemove && typeof (this.beforeRemove) === 'function') {
// 此处钩子执行 原理同before-remove参数,见上方注释
let beforeResponse = this.beforeRemove.bind(this.$u.$parent.call(this))(index,
this.lists)
// 判断是否返回了promise
if (!!beforeResponse && typeof beforeResponse.then === 'function') {
beforeResponse.then(res => {
// promise返回成功,不进行动作,继续上传
this.handlerDeleteItem(index)
}).catch(err => {
// 如果进入promise的reject,终止删除操作
this.showToast('已终止移除')
})
} else if (beforeResponse === false) {
// 返回false,终止删除
this.showToast('已终止移除')
} else {
// 如果返回true,执行删除操作
this.handlerDeleteItem(index)
}
}
else {
// 如果不存在before-remove钩子,
this.handlerDeleteItem(index)
}
即可,这样删掉 uni.showModal
就不会再弹弹窗了,只会进行删除成功的消息提示框。