Merge pull request '“我的”图标修改,解析二维码字节数组' (#1) from 相关图标和页面图片的上传 into master
Reviewed-on: #1
This commit is contained in:
commit
f38de5eb50
|
|
@ -34,7 +34,7 @@ export function getMajorList() {
|
|||
}
|
||||
|
||||
export function getTeacherInfo(data: any) {
|
||||
return request.post({ url: 'frontapi/teacher/getTeacherInfo', data: data }, { urlPrefix: '' })
|
||||
return request.post({ url: 'frontapi/teacher/getTeacherInfo', data: data }, { urlPrefix: '', isTransformResponse: false })
|
||||
}
|
||||
|
||||
export function addStudent(data: any) {
|
||||
|
|
@ -50,7 +50,7 @@ export function getTeacherQrcode(data: any) {
|
|||
|
||||
export function getTeacherQrcodeImage(teacherId: number) {
|
||||
return request.get(
|
||||
{ url: `frontapi/teacher/qrcode/image?id=${teacherId}` },
|
||||
{ url: `frontapi/teacher/qrcode/image?id=${teacherId}`, responseType: 'arraybuffer' },
|
||||
{ urlPrefix: '', isReturnDefaultResponse: true }
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@
|
|||
},
|
||||
{
|
||||
"iconPath": "static/images/tabbar/user.png",
|
||||
"selectedIconPath": "static/images/tabbar/user_s.png",
|
||||
"selectedIconPath": "static/yubaoming/my_icon_active.png",
|
||||
"pagePath": "pages/user/user",
|
||||
"text": "我的"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -207,8 +207,8 @@ const formData = reactive({
|
|||
shoeSize: '',
|
||||
major: '',
|
||||
majorId: 0,
|
||||
teacher: '李四',
|
||||
recruitmentTeacherId: 1
|
||||
teacher: '',
|
||||
recruitmentTeacherId: 0
|
||||
})
|
||||
|
||||
const submitting = ref(false)
|
||||
|
|
|
|||
|
|
@ -212,6 +212,7 @@ import cache from '@/utils/cache'
|
|||
|
||||
const qrcodeUrl = ref('')
|
||||
const showQrcodeModal = ref(false)
|
||||
const currentTeacherId = ref<number | undefined>(undefined)
|
||||
const recruitmentStats = ref({
|
||||
total: 0,
|
||||
today: 0,
|
||||
|
|
@ -236,27 +237,52 @@ const progressPercent = computed(() => {
|
|||
return Math.min(Math.round((current / target) * 100), 100)
|
||||
})
|
||||
|
||||
const getQrcode = async () => {
|
||||
const getQrcode = async (teacherId?: number) => {
|
||||
console.log('=== getQrcode 开始执行 ===')
|
||||
console.log('传入的 teacherId:', teacherId)
|
||||
console.log('userInfo:', userInfo.value)
|
||||
console.log('teacherId:', userInfo.value?.teacherId)
|
||||
console.log('userInfo 中的 teacherId:', userInfo.value?.teacherId)
|
||||
|
||||
if (userInfo.value?.teacherId) {
|
||||
const finalTeacherId = teacherId || userInfo.value?.teacherId
|
||||
console.log('最终使用的 teacherId:', finalTeacherId)
|
||||
|
||||
if (finalTeacherId) {
|
||||
try {
|
||||
console.log('正在调用 getTeacherQrcodeImage, teacherId:', userInfo.value.teacherId)
|
||||
const response = await getTeacherQrcodeImage(userInfo.value.teacherId)
|
||||
console.log('正在调用 getTeacherQrcodeImage, teacherId:', finalTeacherId)
|
||||
const response = await getTeacherQrcodeImage(finalTeacherId)
|
||||
console.log('二维码接口返回:', response)
|
||||
console.log('statusCode:', response.statusCode)
|
||||
console.log('data类型:', typeof response.data)
|
||||
console.log('data长度:', response.data?.byteLength || response.data?.length)
|
||||
|
||||
if (response.statusCode === 200) {
|
||||
console.log('response.data 类型:', typeof response.data)
|
||||
console.log('response.data 内容:', response.data)
|
||||
console.log('response.data 是否为 ArrayBuffer:', response.data instanceof ArrayBuffer)
|
||||
|
||||
// 检查返回的是否是图片流(ArrayBuffer)
|
||||
if (response.data instanceof ArrayBuffer) {
|
||||
const arrayBuffer = response.data
|
||||
console.log('arrayBuffer:', arrayBuffer)
|
||||
console.log('arrayBuffer 长度:', arrayBuffer.byteLength)
|
||||
const base64 = uni.arrayBufferToBase64(arrayBuffer)
|
||||
console.log('base64 长度:', base64.length)
|
||||
qrcodeUrl.value = `data:image/png;base64,${base64}`
|
||||
console.log('qrcodeUrl已设置:', qrcodeUrl.value.substring(0, 50) + '...')
|
||||
console.log('qrcodeUrl 已设置:', qrcodeUrl.value.substring(0, 100) + '...')
|
||||
} else if (typeof response.data === 'string') {
|
||||
// 如果返回的是字符串(可能是 base64 或图片 URL)
|
||||
console.log('返回的是字符串,长度:', response.data.length)
|
||||
if (response.data.startsWith('data:image')) {
|
||||
qrcodeUrl.value = response.data
|
||||
} else if (response.data.startsWith('http')) {
|
||||
qrcodeUrl.value = response.data
|
||||
} else {
|
||||
// 假设是 base64
|
||||
qrcodeUrl.value = `data:image/png;base64,${response.data}`
|
||||
}
|
||||
console.log('qrcodeUrl 已设置:', qrcodeUrl.value.substring(0, 100) + '...')
|
||||
} else {
|
||||
console.log('返回的数据格式不支持:', response.data)
|
||||
}
|
||||
} else {
|
||||
console.log('接口返回非200状态码:', response.statusCode)
|
||||
}
|
||||
|
|
@ -297,10 +323,12 @@ const getStats = async () => {
|
|||
console.log('=== getStats 执行结束 ===')
|
||||
}
|
||||
|
||||
const openQrcodeModal = () => {
|
||||
const openQrcodeModal = async () => {
|
||||
showQrcodeModal.value = true
|
||||
if (!qrcodeUrl.value) {
|
||||
getQrcode()
|
||||
console.log('openQrcodeModal: 使用默认 teacherId = 8 获取二维码')
|
||||
const defaultTeacherId = 8
|
||||
await getQrcode(defaultTeacherId)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -424,22 +452,41 @@ onShow(async () => {
|
|||
|
||||
if (isLogin.value && userInfo.value) {
|
||||
console.log('条件满足,开始获取教师信息')
|
||||
console.log('userInfo.value.id:', userInfo.value.id)
|
||||
// 获取教师信息
|
||||
let teacherIdForQrcode: number | undefined = undefined
|
||||
try {
|
||||
console.log('准备调用 getTeacherInfo, 参数:', { id: userInfo.value.id })
|
||||
const teacherRes = await getTeacherInfo({ id: userInfo.value.id })
|
||||
console.log('getTeacherInfo 返回:', teacherRes)
|
||||
if (teacherRes && teacherRes.id) {
|
||||
console.log('teacherRes 类型:', typeof teacherRes)
|
||||
console.log('teacherRes.code:', teacherRes?.code)
|
||||
console.log('teacherRes.data:', teacherRes?.data)
|
||||
// 后端返回格式: { code: 1, msg: '成功', data: { teacherId, teacherName, ... } }
|
||||
if (teacherRes && teacherRes.code === 1 && teacherRes.data) {
|
||||
const teacherData = teacherRes.data
|
||||
console.log('teacherData:', teacherData)
|
||||
console.log('teacherData.teacherId:', teacherData.teacherId)
|
||||
// 将教师信息合并到 userInfo
|
||||
userInfo.value.teacherId = teacherRes.id
|
||||
console.log('设置 teacherId:', teacherRes.id)
|
||||
userInfo.value.teacherId = teacherData.teacherId
|
||||
teacherIdForQrcode = teacherData.teacherId
|
||||
currentTeacherId.value = teacherData.teacherId
|
||||
console.log('设置 teacherId:', teacherData.teacherId)
|
||||
console.log('教师姓名:', teacherData.teacherName)
|
||||
console.log('学院:', teacherData.collegeName)
|
||||
console.log('二维码URL:', teacherData.qrcodeUrl)
|
||||
} else {
|
||||
console.log('获取教师信息失败或返回格式异常:', teacherRes)
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('获取教师信息失败:', error)
|
||||
}
|
||||
|
||||
console.log('开始调用 getQrcode 和 getStats')
|
||||
getQrcode()
|
||||
getStats()
|
||||
console.log('开始调用 getQrcode 和 getStats, teacherIdForQrcode:', teacherIdForQrcode)
|
||||
console.log('userInfo 中的 teacherId:', userInfo.value?.teacherId)
|
||||
// 使用本地变量传递teacherId,避免响应式延迟问题
|
||||
await getQrcode(teacherIdForQrcode)
|
||||
await getStats()
|
||||
} else {
|
||||
console.log('条件不满足,跳过数据获取')
|
||||
console.log('isLogin:', isLogin.value)
|
||||
|
|
|
|||
Loading…
Reference in New Issue