1
This commit is contained in:
@@ -140,9 +140,13 @@ class HttpService {
|
|||||||
this.hideLoadingTimer = null
|
this.hideLoadingTimer = null
|
||||||
}
|
}
|
||||||
|
|
||||||
// 延时300ms后隐藏loading,避免频繁切换
|
// 延时 800ms 后隐藏 loading,避免频繁切换;捕获 hideLoading 失败(如 toast 已被关闭)避免报错打断流程
|
||||||
this.hideLoadingTimer = setTimeout(() => {
|
this.hideLoadingTimer = setTimeout(() => {
|
||||||
Taro.hideLoading()
|
try {
|
||||||
|
Taro.hideLoading()
|
||||||
|
} catch (e) {
|
||||||
|
// 忽略 "toast can't be found" 等,避免发布后分享等流程报错
|
||||||
|
}
|
||||||
this.currentLoadingText = ''
|
this.currentLoadingText = ''
|
||||||
this.hideLoadingTimer = null
|
this.hideLoadingTimer = null
|
||||||
}, 800)
|
}, 800)
|
||||||
|
|||||||
@@ -7,6 +7,12 @@ const dateIcon = `${OSS_BASE}/front/ball/images/1b49476e-0eda-42ff-b08c-002ce510
|
|||||||
const mapIcon = `${OSS_BASE}/front/ball/images/06b994fa-9227-4708-8555-8a07af8d0c3b.jpg`;
|
const mapIcon = `${OSS_BASE}/front/ball/images/06b994fa-9227-4708-8555-8a07af8d0c3b.jpg`;
|
||||||
const logoText = `${OSS_BASE}/system/youchang_tip_text.png`;
|
const logoText = `${OSS_BASE}/system/youchang_tip_text.png`;
|
||||||
|
|
||||||
|
/** 给图片 URL 加随机参数,避免同一链接二次加载不触发 onload */
|
||||||
|
function with_cache_bust(url: string): string {
|
||||||
|
const sep = url.includes('?') ? '&' : '?';
|
||||||
|
return `${url}${sep}_t=${Date.now()}_${Math.random().toString(36).slice(2)}`;
|
||||||
|
}
|
||||||
|
|
||||||
export function base64ToTempFilePath(base64Data: string): Promise<string> {
|
export function base64ToTempFilePath(base64Data: string): Promise<string> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const fsm = Taro.getFileSystemManager();
|
const fsm = Taro.getFileSystemManager();
|
||||||
@@ -332,7 +338,7 @@ export async function generatePosterImage(data: any): Promise<string> {
|
|||||||
roundRectGradient(ctx, 0, 0, width, height, 24, "#BFFFEF", "#F2FFFC");
|
roundRectGradient(ctx, 0, 0, width, height, 24, "#BFFFEF", "#F2FFFC");
|
||||||
|
|
||||||
console.log('bgUrl', bgUrl)
|
console.log('bgUrl', bgUrl)
|
||||||
const bgImg = await loadImage(canvas, bgUrl, 'bgUrl');
|
const bgImg = await loadImage(canvas, with_cache_bust(bgUrl), 'bgUrl');
|
||||||
ctx.drawImage(bgImg, 0, 0, width, height);
|
ctx.drawImage(bgImg, 0, 0, width, height);
|
||||||
console.log('bgUrlend',)
|
console.log('bgUrlend',)
|
||||||
|
|
||||||
@@ -341,7 +347,7 @@ export async function generatePosterImage(data: any): Promise<string> {
|
|||||||
|
|
||||||
|
|
||||||
// 顶部图片
|
// 顶部图片
|
||||||
const mainImg = await loadImage(canvas, data.mainCoursal, 'mainCoursal');
|
const mainImg = await loadImage(canvas, with_cache_bust(data.mainCoursal), 'mainCoursal');
|
||||||
console.log('mainCoursal', data.mainCoursal)
|
console.log('mainCoursal', data.mainCoursal)
|
||||||
await drawRotateCoverImage(
|
await drawRotateCoverImage(
|
||||||
ctx,
|
ctx,
|
||||||
@@ -375,7 +381,7 @@ export async function generatePosterImage(data: any): Promise<string> {
|
|||||||
left = 20;
|
left = 20;
|
||||||
|
|
||||||
// 用户头像
|
// 用户头像
|
||||||
const avatarImg = await loadImage(canvas, data.avatarUrl, 'avatar');
|
const avatarImg = await loadImage(canvas, with_cache_bust(data.avatarUrl), 'avatar');
|
||||||
ctx.save();
|
ctx.save();
|
||||||
ctx.beginPath();
|
ctx.beginPath();
|
||||||
ctx.arc(left + 30, top + 30, 30, 0, Math.PI * 2);
|
ctx.arc(left + 30, top + 30, 30, 0, Math.PI * 2);
|
||||||
@@ -396,7 +402,7 @@ export async function generatePosterImage(data: any): Promise<string> {
|
|||||||
ctx.fillStyle = "#00B578";
|
ctx.fillStyle = "#00B578";
|
||||||
ctx.fillText("球局", left, top);
|
ctx.fillText("球局", left, top);
|
||||||
|
|
||||||
const ringImg = await loadImage(canvas, ringUrl, 'ring');
|
const ringImg = await loadImage(canvas, with_cache_bust(ringUrl), 'ring');
|
||||||
ctx.drawImage(ringImg, left - 10, top - 30, 80, 36);
|
ctx.drawImage(ringImg, left - 10, top - 30, 80, 36);
|
||||||
|
|
||||||
left = 20;
|
left = 20;
|
||||||
@@ -410,7 +416,7 @@ export async function generatePosterImage(data: any): Promise<string> {
|
|||||||
top = r.top + 30;
|
top = r.top + 30;
|
||||||
left = 20;
|
left = 20;
|
||||||
|
|
||||||
const dateImg = await loadImage(canvas, dateIcon, 'date');
|
const dateImg = await loadImage(canvas, with_cache_bust(dateIcon), 'date');
|
||||||
|
|
||||||
console.log('dateIcon', dateIcon)
|
console.log('dateIcon', dateIcon)
|
||||||
await drawCoverImage(
|
await drawCoverImage(
|
||||||
@@ -440,7 +446,7 @@ export async function generatePosterImage(data: any): Promise<string> {
|
|||||||
top += 24;
|
top += 24;
|
||||||
|
|
||||||
|
|
||||||
const mapImg = await loadImage(canvas, mapIcon, 'map');
|
const mapImg = await loadImage(canvas, with_cache_bust(mapIcon), 'map');
|
||||||
await drawCoverImage(ctx, canvas, mapIcon, mapImg, left, top, 40, 40, 12);
|
await drawCoverImage(ctx, canvas, mapIcon, mapImg, left, top, 40, 40, 12);
|
||||||
|
|
||||||
left += 40 + 16;
|
left += 40 + 16;
|
||||||
@@ -454,7 +460,7 @@ export async function generatePosterImage(data: any): Promise<string> {
|
|||||||
top = r.top + 60;
|
top = r.top + 60;
|
||||||
|
|
||||||
const logoWh = await getImageWh(logoText);
|
const logoWh = await getImageWh(logoText);
|
||||||
const logoTextImg = await loadImage(canvas, logoText, 'logo');
|
const logoTextImg = await loadImage(canvas, with_cache_bust(logoText), 'logo');
|
||||||
ctx.drawImage(
|
ctx.drawImage(
|
||||||
logoTextImg,
|
logoTextImg,
|
||||||
left,
|
left,
|
||||||
@@ -464,7 +470,7 @@ export async function generatePosterImage(data: any): Promise<string> {
|
|||||||
400 / (logoWh.width / logoWh.height)
|
400 / (logoWh.width / logoWh.height)
|
||||||
);
|
);
|
||||||
|
|
||||||
const qrImg = await loadImage(canvas, data.qrCodeUrl, 'qrcode');
|
const qrImg = await loadImage(canvas, with_cache_bust(data.qrCodeUrl), 'qrcode');
|
||||||
|
|
||||||
// roundRectGradient(ctx, width - 12 - 150, height - 22 - 140, 140, 140, 20, "#fff", "#fff")
|
// roundRectGradient(ctx, width - 12 - 150, height - 22 - 140, 140, 140, 20, "#fff", "#fff")
|
||||||
ctx.drawImage(qrImg, width - 22 - 100, height - 22 - 100 - 2, 100, 100);
|
ctx.drawImage(qrImg, width - 22 - 100, height - 22 - 100 - 2, 100, 100);
|
||||||
|
|||||||
Reference in New Issue
Block a user