From c1148d6e513876291808f9f308ffa55df2ba95e6 Mon Sep 17 00:00:00 2001 From: kron Date: Sat, 21 Jun 2025 03:34:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90canvas=E7=94=9F=E6=88=90?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Header.vue | 1 + src/pages.json | 113 ++++++--------------------- src/pages/image-share.vue | 136 +++++++++++++++++++++++++++++++++ src/static/device-icon.png | Bin 8553 -> 8748 bytes src/static/first-try-title.png | Bin 0 -> 8778 bytes src/static/qr-code.png | Bin 0 -> 21346 bytes src/util.js | 51 +++++++++++++ 7 files changed, 213 insertions(+), 88 deletions(-) create mode 100644 src/pages/image-share.vue create mode 100644 src/static/first-try-title.png create mode 100644 src/static/qr-code.png create mode 100644 src/util.js diff --git a/src/components/Header.vue b/src/components/Header.vue index de2c4f3..38d63aa 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -52,6 +52,7 @@ onMounted(() => { align-items: center; width: 72vw; height: 60px; + /* margin-top: var(--status-bar-height); */ padding-left: 15px; } .back-btn { diff --git a/src/pages.json b/src/pages.json index 9ef883e..91a4cb3 100644 --- a/src/pages.json +++ b/src/pages.json @@ -1,136 +1,73 @@ { "pages": [ { - "path": "pages/index", - "style": { - "navigationBarTitleText": "首页" - } + "path": "pages/index" }, { - "path": "pages/my-device", - "style": { - "navigationBarTitleText": "我的设备" - } + "path": "pages/image-share" }, { - "path": "pages/device-intro", - "style": { - "navigationBarTitleText": "智能弓箭" - } + "path": "pages/my-device" }, { - "path": "pages/user", - "style": { - "navigationBarTitleText": "用户信息" - } + "path": "pages/device-intro" }, { - "path": "pages/orders", - "style": { - "navigationBarTitleText": "订单" - } + "path": "pages/user" }, { - "path": "pages/order-detail", - "style": { - "navigationBarTitleText": "订单详情" - } + "path": "pages/orders" }, { - "path": "pages/be-vip", - "style": { - "navigationBarTitleText": "会员" - } + "path": "pages/order-detail" }, { - "path": "pages/grade-intro", - "style": { - "navigationBarTitleText": "等级介绍" - } + "path": "pages/be-vip" }, { - "path": "pages/rank-intro", - "style": { - "navigationBarTitleText": "段位介绍" - } + "path": "pages/grade-intro" }, { - "path": "pages/my-growth", - "style": { - "navigationBarTitleText": "我的成长" - } + "path": "pages/rank-intro" }, { - "path": "pages/first-try", - "style": { - "navigationBarTitleText": "新手试炼" - } + "path": "pages/my-growth" }, { - "path": "pages/practise", - "style": { - "navigationBarTitleText": "个人练习" - } + "path": "pages/first-try" }, { - "path": "pages/practise-one", - "style": { - "navigationBarTitleText": "个人单组练习" - } + "path": "pages/practise" }, { - "path": "pages/practise-two", - "style": { - "navigationBarTitleText": "个人耐力挑战" - } + "path": "pages/practise-one" }, { - "path": "pages/friend-battle", - "style": { - "navigationBarTitleText": "好友约战" - } + "path": "pages/practise-two" }, { - "path": "pages/battle-room", - "style": { - "navigationBarTitleText": "对战房间" - } + "path": "pages/friend-battle" }, { - "path": "pages/ranking", - "style": { - "navigationBarTitleText": "排行赛" - } + "path": "pages/battle-room" }, { - "path": "pages/rank-list", - "style": { - "navigationBarTitleText": "排行榜" - } + "path": "pages/ranking" }, { - "path": "pages/team-match", - "style": { - "navigationBarTitleText": "排位赛" - } + "path": "pages/rank-list" }, { - "path": "pages/melee-match", - "style": { - "navigationBarTitleText": "排位赛" - } + "path": "pages/team-match" }, { - "path": "pages/match-detail", - "style": { - "navigationBarTitleText": "排位赛" - } + "path": "pages/melee-match" }, { - "path": "pages/battle-result", - "style": { - "navigationBarTitleText": "对战结果" - } + "path": "pages/match-detail" + }, + { + "path": "pages/battle-result" } ], "globalStyle": { diff --git a/src/pages/image-share.vue b/src/pages/image-share.vue new file mode 100644 index 0000000..f91d280 --- /dev/null +++ b/src/pages/image-share.vue @@ -0,0 +1,136 @@ + + + + + diff --git a/src/static/device-icon.png b/src/static/device-icon.png index 37e65f420f0639a086bb64973b83300f8ef12239..065eaf1ec0653ceeb0a4b74d378b4dc09d7f66f5 100644 GIT binary patch literal 8748 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 diff --git a/src/static/first-try-title.png b/src/static/first-try-title.png new file mode 100644 index 0000000000000000000000000000000000000000..55df35fcc18538963084a7d0ba3b52ebfea7100a GIT binary patch literal 8778 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 literal 0 HcmV?d00001 diff --git a/src/util.js b/src/util.js new file mode 100644 index 0000000..ad227cf --- /dev/null +++ b/src/util.js @@ -0,0 +1,51 @@ +export function renderLine(ctx, from) { + ctx.beginPath(); + ctx.lineWidth = 1; + ctx.strokeStyle = "rgba(255, 255, 255, 0.3)"; + const length = 35; + ctx.moveTo(from, 293); + ctx.lineTo(from + length, 293); + ctx.stroke(); +} + +export function renderText(ctx, text, size, color, x, y) { + ctx.setFontSize(size); + ctx.setFillStyle(color); + ctx.fillText(text, x, y); +} + +export function renderRankTitle(ctx, text) { + const fontSize = 10; + const textWidth = ctx.measureText(text).width; + const padding = 8; // 文字与背景边缘的间距 + const radius = 10; // 圆角半径 + const textX = 75; + const textY = 55; + const x = textX - padding; // 文字 x 坐标减去内边距 + const y = textY - fontSize - padding / 2 + 1; // 文字 y 坐标减去字体大小和内边距 + const width = textWidth + padding * 2 - 15; // 背景宽度 + const height = fontSize + padding + 1; // 背景高度 + + // 开始绘制圆角矩形 + ctx.beginPath(); + ctx.moveTo(x + radius, y); + // 上边框 + ctx.lineTo(x + width - radius, y); + ctx.arcTo(x + width, y, x + width, y + radius, radius); + // 右边框 + ctx.lineTo(x + width, y + height - radius); + ctx.arcTo(x + width, y + height, x + width - radius, y + height, radius); + // 下边框 + ctx.lineTo(x + radius, y + height); + ctx.arcTo(x, y + height, x, y + height - radius, radius); + // 左边框 + ctx.lineTo(x, y + radius); + ctx.arcTo(x, y, x + radius, y, radius); + + // 设置背景颜色并填充 + ctx.fillStyle = "#5F51FF"; + ctx.fill(); + ctx.setFontSize(fontSize); + ctx.setFillStyle("rgba(255, 255, 255, 0.9)"); + ctx.fillText(text, textX, textY); // 绘制文字 +}