“我的”图标修改,解析二维码字节数组
This commit is contained in:
parent
9c3a6fc53c
commit
b51ebcb128
|
|
@ -34,7 +34,7 @@ export function getMajorList() {
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getTeacherInfo(data: any) {
|
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) {
|
export function addStudent(data: any) {
|
||||||
|
|
@ -50,7 +50,7 @@ export function getTeacherQrcode(data: any) {
|
||||||
|
|
||||||
export function getTeacherQrcodeImage(teacherId: number) {
|
export function getTeacherQrcodeImage(teacherId: number) {
|
||||||
return request.get(
|
return request.get(
|
||||||
{ url: `frontapi/teacher/qrcode/image?id=${teacherId}` },
|
{ url: `frontapi/teacher/qrcode/image?id=${teacherId}`, responseType: 'arraybuffer' },
|
||||||
{ urlPrefix: '', isReturnDefaultResponse: true }
|
{ urlPrefix: '', isReturnDefaultResponse: true }
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"iconPath": "static/images/tabbar/user.png",
|
"iconPath": "static/images/tabbar/user.png",
|
||||||
"selectedIconPath": "static/images/tabbar/user_s.png",
|
"selectedIconPath": "static/yubaoming/my_icon_active.png",
|
||||||
"pagePath": "pages/user/user",
|
"pagePath": "pages/user/user",
|
||||||
"text": "我的"
|
"text": "我的"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -207,8 +207,8 @@ const formData = reactive({
|
||||||
shoeSize: '',
|
shoeSize: '',
|
||||||
major: '',
|
major: '',
|
||||||
majorId: 0,
|
majorId: 0,
|
||||||
teacher: '李四',
|
teacher: '',
|
||||||
recruitmentTeacherId: 1
|
recruitmentTeacherId: 0
|
||||||
})
|
})
|
||||||
|
|
||||||
const submitting = ref(false)
|
const submitting = ref(false)
|
||||||
|
|
|
||||||
|
|
@ -212,6 +212,7 @@ import cache from '@/utils/cache'
|
||||||
|
|
||||||
const qrcodeUrl = ref('')
|
const qrcodeUrl = ref('')
|
||||||
const showQrcodeModal = ref(false)
|
const showQrcodeModal = ref(false)
|
||||||
|
const currentTeacherId = ref<number | undefined>(undefined)
|
||||||
const recruitmentStats = ref({
|
const recruitmentStats = ref({
|
||||||
total: 0,
|
total: 0,
|
||||||
today: 0,
|
today: 0,
|
||||||
|
|
@ -236,27 +237,52 @@ const progressPercent = computed(() => {
|
||||||
return Math.min(Math.round((current / target) * 100), 100)
|
return Math.min(Math.round((current / target) * 100), 100)
|
||||||
})
|
})
|
||||||
|
|
||||||
const getQrcode = async () => {
|
const getQrcode = async (teacherId?: number) => {
|
||||||
console.log('=== getQrcode 开始执行 ===')
|
console.log('=== getQrcode 开始执行 ===')
|
||||||
|
console.log('传入的 teacherId:', teacherId)
|
||||||
console.log('userInfo:', userInfo.value)
|
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 {
|
try {
|
||||||
console.log('正在调用 getTeacherQrcodeImage, teacherId:', userInfo.value.teacherId)
|
console.log('正在调用 getTeacherQrcodeImage, teacherId:', finalTeacherId)
|
||||||
const response = await getTeacherQrcodeImage(userInfo.value.teacherId)
|
const response = await getTeacherQrcodeImage(finalTeacherId)
|
||||||
console.log('二维码接口返回:', response)
|
console.log('二维码接口返回:', response)
|
||||||
console.log('statusCode:', response.statusCode)
|
console.log('statusCode:', response.statusCode)
|
||||||
console.log('data类型:', typeof response.data)
|
console.log('data类型:', typeof response.data)
|
||||||
console.log('data长度:', response.data?.byteLength || response.data?.length)
|
console.log('data长度:', response.data?.byteLength || response.data?.length)
|
||||||
|
|
||||||
if (response.statusCode === 200) {
|
if (response.statusCode === 200) {
|
||||||
const arrayBuffer = response.data
|
console.log('response.data 类型:', typeof response.data)
|
||||||
console.log('arrayBuffer:', arrayBuffer)
|
console.log('response.data 内容:', response.data)
|
||||||
const base64 = uni.arrayBufferToBase64(arrayBuffer)
|
console.log('response.data 是否为 ArrayBuffer:', response.data instanceof ArrayBuffer)
|
||||||
console.log('base64长度:', base64.length)
|
|
||||||
qrcodeUrl.value = `data:image/png;base64,${base64}`
|
// 检查返回的是否是图片流(ArrayBuffer)
|
||||||
console.log('qrcodeUrl已设置:', qrcodeUrl.value.substring(0, 50) + '...')
|
if (response.data instanceof ArrayBuffer) {
|
||||||
|
const arrayBuffer = response.data
|
||||||
|
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, 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 {
|
} else {
|
||||||
console.log('接口返回非200状态码:', response.statusCode)
|
console.log('接口返回非200状态码:', response.statusCode)
|
||||||
}
|
}
|
||||||
|
|
@ -297,10 +323,12 @@ const getStats = async () => {
|
||||||
console.log('=== getStats 执行结束 ===')
|
console.log('=== getStats 执行结束 ===')
|
||||||
}
|
}
|
||||||
|
|
||||||
const openQrcodeModal = () => {
|
const openQrcodeModal = async () => {
|
||||||
showQrcodeModal.value = true
|
showQrcodeModal.value = true
|
||||||
if (!qrcodeUrl.value) {
|
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) {
|
if (isLogin.value && userInfo.value) {
|
||||||
console.log('条件满足,开始获取教师信息')
|
console.log('条件满足,开始获取教师信息')
|
||||||
|
console.log('userInfo.value.id:', userInfo.value.id)
|
||||||
// 获取教师信息
|
// 获取教师信息
|
||||||
|
let teacherIdForQrcode: number | undefined = undefined
|
||||||
try {
|
try {
|
||||||
|
console.log('准备调用 getTeacherInfo, 参数:', { id: userInfo.value.id })
|
||||||
const teacherRes = await getTeacherInfo({ id: userInfo.value.id })
|
const teacherRes = await getTeacherInfo({ id: userInfo.value.id })
|
||||||
console.log('getTeacherInfo 返回:', teacherRes)
|
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
|
||||||
userInfo.value.teacherId = teacherRes.id
|
userInfo.value.teacherId = teacherData.teacherId
|
||||||
console.log('设置 teacherId:', teacherRes.id)
|
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) {
|
} catch (error) {
|
||||||
console.error('获取教师信息失败:', error)
|
console.error('获取教师信息失败:', error)
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('开始调用 getQrcode 和 getStats')
|
console.log('开始调用 getQrcode 和 getStats, teacherIdForQrcode:', teacherIdForQrcode)
|
||||||
getQrcode()
|
console.log('userInfo 中的 teacherId:', userInfo.value?.teacherId)
|
||||||
getStats()
|
// 使用本地变量传递teacherId,避免响应式延迟问题
|
||||||
|
await getQrcode(teacherIdForQrcode)
|
||||||
|
await getStats()
|
||||||
} else {
|
} else {
|
||||||
console.log('条件不满足,跳过数据获取')
|
console.log('条件不满足,跳过数据获取')
|
||||||
console.log('isLogin:', isLogin.value)
|
console.log('isLogin:', isLogin.value)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue