hookehuyr

refactor(PosterPage): 重构海报页面代码并优化图片处理

- 将API导入路径从recall改为recall_users
- 移除未使用的title状态
- 添加图片处理参数优化加载性能
- 重构路由参数处理方式
- 确保编辑API调用时包含必要参数
<!--
* @Date: 2025-12-23 15:50:59
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2025-12-24 17:47:23
* @LastEditTime: 2025-12-24 20:35:33
* @FilePath: /mlaj/src/views/recall/PosterPage.vue
* @Description: 分享海报页面
-->
......@@ -42,7 +42,7 @@ import { showToast, showLoadingToast } from 'vant'
import { qiniuFileHash } from '@/utils/qiniuFileHash'
import { useAuth } from '@/contexts/auth'
import { getPosterAPI, editPosterAPI } from '@/api/recall'
import { getPosterAPI, editPosterAPI } from '@/api/recall_users'
const $route = useRoute();
const $router = useRouter();
......@@ -56,7 +56,6 @@ const qrCodeUrl = 'https://cdn.ipadbiz.cn/mlaj/recall/poster/%E4%BA%8C%E7%BB%B4%
// State
const posterBg = ref(defaultBg)
const title = ref('')
/**
* 获取文件哈希(与七牛云ETag一致)
......@@ -104,9 +103,11 @@ const afterRead = async (file) => {
// 文件已存在,直接使用
if (tokenResult.data) {
posterBg.value = tokenResult.data.src;
posterBg.value = tokenResult.data.src + '?imageMogr2/thumbnail/800x/strip/quality/80';
// 编辑海报配置
await editPosterAPI({
stu_uid: stu_uid.value,
campaign_id: campaign_id.value,
background_image: tokenResult.data.src
})
showToast('图片上传成功');
......@@ -137,9 +138,11 @@ const afterRead = async (file) => {
})
if (data) {
posterBg.value = data.src;
posterBg.value = data.src + '?imageMogr2/thumbnail/800x/strip/quality/80';
// 编辑海报配置
await editPosterAPI({
stu_uid: stu_uid.value,
campaign_id: campaign_id.value,
background_image: data.src
})
showToast('图片上传成功');
......@@ -154,19 +157,19 @@ const afterRead = async (file) => {
}
}
onMounted(async () => {
const stu_uid = $route.query.stu_uid
const campaign_id = $route.query.campaign_id
const stu_uid = ref($route.query.stu_uid || '')
const campaign_id = ref($route.query.campaign_id || '')
const title = ref($route.query.title || '活动海报')
if (stu_uid && campaign_id) {
onMounted(async () => {
if (stu_uid.value && campaign_id.value) {
const { data } = await getPosterAPI({
stu_uid,
campaign_id
stu_uid: stu_uid.value,
campaign_id: campaign_id.value
})
if (data) {
title.value = $route.query.title || '活动海报'
posterBg.value = data.background_image || defaultBg
posterBg.value = data.background_image + '?imageMogr2/thumbnail/800x/strip/quality/80' || defaultBg
qrCodeUrl.value = data.qrcode
}
}
......