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); if (keyJson?.data?.result === "auditFailed") { reject("图片不符合发布规范,请稍作修改后再试"); } else { 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(); const shareTokenRes = await createShareToken({ scene, targetId, ...deviceInfo, }); return shareTokenRes?.shareToken || ""; };