95 lines
2.3 KiB
JavaScript
95 lines
2.3 KiB
JavaScript
import { getDeviceInfo } from "@/utils/system";
|
|
import { saveRecord, viewRecord, createShareToken } from "@/api/system";
|
|
|
|
export const generateObjectId = (
|
|
m = Math,
|
|
d = Date,
|
|
h = 16,
|
|
s = (s) => m.floor(s).toString(h),
|
|
) => s(d.now() / 1000) + " ".repeat(h).replace(/./g, () => s(m.random() * h));
|
|
|
|
export const uploadImage = (filePath) => {
|
|
return new Promise((resolve, reject) => {
|
|
uni.uploadFile({
|
|
url: "https://api.ai-meng.com/api/common/upload",
|
|
filePath: filePath,
|
|
name: "file",
|
|
header: {
|
|
"x-app-id": "69665538a49b8ae3be50fe5d",
|
|
},
|
|
success: (res) => {
|
|
if (res.statusCode < 400) {
|
|
try {
|
|
const keyJson = JSON.parse(res.data);
|
|
const url = `https://file.lihailezzc.com/${keyJson?.data.key}`;
|
|
resolve(url);
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
} else {
|
|
reject(new Error("Upload failed"));
|
|
}
|
|
},
|
|
fail: (err) => {
|
|
reject(err);
|
|
},
|
|
});
|
|
});
|
|
};
|
|
|
|
export const saveRecordRequest = async (path, targetId, scene, imageUrl) => {
|
|
if (!imageUrl) {
|
|
imageUrl = await uploadImage(path);
|
|
}
|
|
const deviceInfo = getDeviceInfo();
|
|
saveRecord({
|
|
scene,
|
|
targetId,
|
|
imageUrl,
|
|
deviceInfo,
|
|
});
|
|
};
|
|
|
|
export const saveViewRequest = async (shareToken, scene, targetId) => {
|
|
const deviceInfo = getDeviceInfo();
|
|
viewRecord({
|
|
shareToken,
|
|
scene,
|
|
targetId,
|
|
deviceInfo,
|
|
});
|
|
};
|
|
|
|
export const saveRemoteImageToLocal = (imageUrl) => {
|
|
uni.downloadFile({
|
|
url: imageUrl,
|
|
success: (res) => {
|
|
if (res.statusCode === 200) {
|
|
uni.saveImageToPhotosAlbum({
|
|
filePath: res.tempFilePath,
|
|
success: () => {
|
|
uni.hideLoading();
|
|
uni.showToast({ title: "已保存到相册" });
|
|
},
|
|
fail: () => {
|
|
uni.hideLoading();
|
|
uni.showToast({ title: "保存失败", icon: "none" });
|
|
},
|
|
});
|
|
} else {
|
|
uni.hideLoading();
|
|
uni.showToast({ title: "下载失败", icon: "none" });
|
|
}
|
|
},
|
|
fail: () => {
|
|
uni.hideLoading();
|
|
uni.showToast({ title: "下载失败", icon: "none" });
|
|
},
|
|
});
|
|
};
|
|
|
|
export const getShareToken = async (scene, targetId) => {
|
|
const deviceInfo = getDeviceInfo();
|
|
return await createShareToken({ scene, targetId, ...deviceInfo });
|
|
};
|