fix: 优化工作人员重复信息提示

This commit is contained in:
czl231
2026-08-11 13:37:44 +08:00
parent 5738a43f3e
commit 4d79a4917e
12 changed files with 440 additions and 9 deletions

View File

@@ -0,0 +1,35 @@
/**
* 功能:缓存一次资源保存流程中已经完成的头像上传结果。
* 版本v1.0.0
*/
export type AvatarUpload = (file: File) => Promise<{ uri: string }>;
/** 创建头像上传缓存;选择新文件或清除头像时由调用方主动重置。 */
export function createAvatarUploadCache(upload: AvatarUpload) {
let cachedFile: File | undefined;
let cachedURI: Promise<string> | undefined;
/** 返回当前文件的受控资源地址;同一文件重试时复用首次成功结果。 */
async function resolve(file: File) {
if (cachedFile !== file || !cachedURI) {
cachedFile = file;
cachedURI = upload(file)
.then((result) => result.uri)
.catch((error) => {
// 上传本身失败时清空缓存,允许用户直接重试。
if (cachedFile === file) cachedURI = undefined;
throw error;
});
}
return cachedURI;
}
/** 清空已上传地址,确保新选择的文件不会错误复用旧头像。 */
function reset() {
cachedFile = undefined;
cachedURI = undefined;
}
return { resolve, reset };
}