diff --git a/src/views/miniapp/MiniappAssets.vue b/src/views/miniapp/MiniappAssets.vue index 3ea6a7f..4bf1360 100644 --- a/src/views/miniapp/MiniappAssets.vue +++ b/src/views/miniapp/MiniappAssets.vue @@ -408,6 +408,10 @@ async function loadPindao() { async function uploadIcon(file, iconKey) { if (!file?.raw) return + if (!iconKey) { + ElMessage.error('缺少 icon_key') + return + } uploadingKey.value = iconKey try { const fd = new FormData() @@ -415,17 +419,17 @@ async function uploadIcon(file, iconKey) { fd.append('file', file.raw) fd.append('icon_key', iconKey) fd.append('action', 'upload') - const res = await request.post(JITUAN_API.miniappIconManage, fd, { - headers: { 'Content-Type': 'multipart/form-data' }, - }) + // 不要手动设 Content-Type,否则缺 boundary,后端可能读不到 icon_key + const res = await request.post(JITUAN_API.miniappIconManage, fd) if (res.code === 0) { ElMessage.success('上传成功') await loadIcons() } else { - ElMessage.error(res.msg || '上传失败') + ElMessage.error(res.msg || `上传失败(${iconKey})`) } - } catch { - ElMessage.error('上传失败') + } catch (e) { + const msg = e?.response?.data?.msg || e?.message || '上传失败' + ElMessage.error(`${msg} [${iconKey}]`) } finally { uploadingKey.value = '' }