新增营销系统、分销系统、会员功能、门店、提现功能

This commit is contained in:
Shaw
2024-02-08 21:01:37 +08:00
parent 68b3f2dcc3
commit 17c043348a
1398 changed files with 81279 additions and 56269 deletions

View File

@ -25,7 +25,129 @@ export function useImage() {
})
}
/**
* 获取图片信息
* @param src
* @returns {Promise<GetImageInfoSuccessData>}
*/
function getImageInfo(src) {
return new Promise((resolve, reject) => {
uni.getImageInfo({
src,
success: (res) => {
resolve(res)
},
fail: (error) => {
reject(error)
}
})
})
}
/**
* base64转换为path
* @param base64Data
* @returns {Promise<unknown>}
*/
function base64ToUrl(base64Data) {
return new Promise((resolve, reject) => {
// #ifdef H5
// 构建blob对象 data:image/png;base64,
const indexOf = base64Data.indexOf('base64,');
base64Data = base64Data.slice(indexOf + 7)
const byteCharacters = atob(base64Data);
const byteNumbers = new Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
const blob = new Blob([byteArray], {type: 'image/png'});
// 创建一个链接指向这个blob
const url = URL.createObjectURL(blob);
resolve(url)
// #endif
// #ifdef MP-WEIXIN
const time = new Date().getTime();
const imgPath = wx.env.USER_DATA_PATH + "/poster" + time + "share" + ".png";
//如果图片字符串不含要清空的前缀,可以不执行下行代码.
const imageData = base64Data.replace(/^data:image\/\w+;base64,/, "");
const file = wx.getFileSystemManager();
file.writeFileSync(imgPath, imageData, "base64");
resolve(imgPath)
// #endif
// #ifdef APP-PLUS
const bitmap = new plus.nativeObj.Bitmap('test');
bitmap.loadBase64Data(
base64Data,
function () {
const url = '_doc/' + new Date() + '.png'; // url建议用时间戳命名方式
console.log('url:', url);
bitmap.save(
url,
{
overwrite: true // 是否覆盖
// quality: 'quality' // 图片清晰度
},
i => {
resolve(url)
},
e => {
bitmap.clear();
reject(e)
}
);
},
e => {
bitmap.clear();
reject(e)
}
);
// #endif
})
}
/**
* 保存图片到相册
* @param filePath
* @param name h5海报名称
* @returns {Promise<unknown>}
*/
function saveImageToPhotosAlbum(filePath, name = '') {
return new Promise((resolve, reject) => {
// #ifndef H5
uni.authorize({
scope: 'scope.writePhotosAlbum',
success() {
uni.saveImageToPhotosAlbum({
filePath,
success() {
resolve(true)
}
})
}
})
// #endif
// #ifdef H5
// 创建一个下载链接
const link = document.createElement('a');
link.href = filePath;
link.download = name;
// 添加它到DOM并触发点击
document.body.appendChild(link);
link.click();
// 确保我们释放这个URL以防止内存泄漏
document.body.removeChild(link);
window.URL.revokeObjectURL(filePath);
resolve(true)
// #endif
})
}
return {
preview
preview,
getImageInfo,
base64ToUrl,
saveImageToPhotosAlbum
}
}