mirror of
https://gitee.com/beijing_hongye_huicheng/lilishop-uniapp.git
synced 2026-06-21 17:30:13 +08:00
62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
import storage from "@/utils/storage.js";
|
|
import { upload as uploadUrl } from "@/api/common.js";
|
|
|
|
export function getUploadHeader() {
|
|
return { accessToken: storage.getAccessToken() };
|
|
}
|
|
|
|
export function getUploadedUrls(fileList) {
|
|
return fileList
|
|
.filter((item) => item.status === "success" && item.url)
|
|
.map((item) => item.url);
|
|
}
|
|
|
|
/**
|
|
* uView Plus u-upload @afterRead handler for lilishop upload API.
|
|
* Backend returns { result: "fileUrl", ... }.
|
|
*/
|
|
export function handleUploadAfterRead(event, fileList, onSuccess) {
|
|
const files = [].concat(event.file);
|
|
files.forEach((file) => {
|
|
const index = fileList.length;
|
|
fileList.push({
|
|
...file,
|
|
status: "uploading",
|
|
message: "上传中",
|
|
});
|
|
uni.uploadFile({
|
|
url: uploadUrl,
|
|
filePath: file.url,
|
|
name: "file",
|
|
header: getUploadHeader(),
|
|
success: (res) => {
|
|
try {
|
|
const data = JSON.parse(res.data);
|
|
fileList.splice(index, 1, {
|
|
...fileList[index],
|
|
status: "success",
|
|
message: "",
|
|
url: data.result,
|
|
});
|
|
if (onSuccess) {
|
|
onSuccess(getUploadedUrls(fileList));
|
|
}
|
|
} catch (e) {
|
|
fileList.splice(index, 1, {
|
|
...fileList[index],
|
|
status: "failed",
|
|
message: "上传失败",
|
|
});
|
|
}
|
|
},
|
|
fail: () => {
|
|
fileList.splice(index, 1, {
|
|
...fileList[index],
|
|
status: "failed",
|
|
message: "上传失败",
|
|
});
|
|
},
|
|
});
|
|
});
|
|
}
|