等待后端更新接口
This commit is contained in:
@@ -60,10 +60,29 @@
|
||||
return true;
|
||||
}
|
||||
|
||||
function isForbidden(error) {
|
||||
return Number(error && (error.status || error.code)) === 403;
|
||||
}
|
||||
|
||||
function query(selector, rootNode) {
|
||||
return (rootNode || documentRef).querySelector(selector);
|
||||
}
|
||||
|
||||
function queryAll(selector, rootNode) {
|
||||
return Array.prototype.slice.call((rootNode || documentRef).querySelectorAll(selector));
|
||||
}
|
||||
|
||||
function setUploadStatus(status, type, message) {
|
||||
if (!status) return;
|
||||
status.setAttribute('role', 'status');
|
||||
status.setAttribute('aria-live', 'polite');
|
||||
if (type && root.ProfileUI && root.ProfileUI.setApiState) {
|
||||
root.ProfileUI.setApiState(status, type, message);
|
||||
return;
|
||||
}
|
||||
status.textContent = message || '';
|
||||
}
|
||||
|
||||
function showMessage(message) {
|
||||
if (root.layui && root.layui.layer) {
|
||||
root.layui.layer.msg(message);
|
||||
@@ -214,22 +233,20 @@
|
||||
|
||||
try {
|
||||
for (index = 0; index < files.length; index += 1) {
|
||||
if (status) status.textContent = files[index].name + ' 正在上传...';
|
||||
setUploadStatus(status, 'loading', files[index].name + ' 正在上传…');
|
||||
result = normalizeUploadResult(await uploadFileForPage(api, files[index], {
|
||||
onProgress: function (progress) {
|
||||
if (status) {
|
||||
status.textContent = '正在上传 ' + progress.uploadedChunks + '/' + progress.totalChunks + ' 分片';
|
||||
}
|
||||
setUploadStatus(status, 'loading', '正在上传 ' + progress.uploadedChunks + '/' + progress.totalChunks + ' 分片');
|
||||
}
|
||||
}));
|
||||
if (!result.ossId) throw new Error('上传响应缺少 ossId');
|
||||
target.value = mergeUploadTargetValue(target.value, result.ossId, multiple);
|
||||
if (status) status.textContent = buildUploadStatus(result.fileName || files[index].name, result.ossId);
|
||||
setUploadStatus(status, '', buildUploadStatus(result.fileName || files[index].name, result.ossId));
|
||||
}
|
||||
} catch (error) {
|
||||
if (redirectUnauthorized(api, error)) return;
|
||||
if (status) status.textContent = error.message || '上传失败';
|
||||
showMessage(error.message || '上传失败');
|
||||
setUploadStatus(status, isForbidden(error) ? 'forbidden' : 'error', isForbidden(error) ? '当前账号无权上传文件。' : (error.message || '上传失败'));
|
||||
showMessage(isForbidden(error) ? '当前账号无权上传文件。' : (error.message || '上传失败'));
|
||||
} finally {
|
||||
input.disabled = false;
|
||||
input.value = '';
|
||||
@@ -248,6 +265,10 @@
|
||||
}
|
||||
|
||||
function init() {
|
||||
queryAll('[data-upload-status]').forEach(function (status) {
|
||||
status.setAttribute('role', 'status');
|
||||
status.setAttribute('aria-live', 'polite');
|
||||
});
|
||||
bindActions();
|
||||
}
|
||||
|
||||
@@ -259,6 +280,7 @@
|
||||
uploadFileForPage: uploadFileForPage,
|
||||
mergeUploadTargetValue: mergeUploadTargetValue,
|
||||
shouldRedirectToLogin: shouldRedirectToLogin,
|
||||
isForbidden: isForbidden,
|
||||
init: init
|
||||
};
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user