Compare commits

...

2 Commits

4 changed files with 71 additions and 24 deletions

View File

@ -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 }
) )
} }

View File

@ -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": "我的"
} }

View File

@ -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)

View File

@ -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) {
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 const arrayBuffer = response.data
console.log('arrayBuffer:', arrayBuffer) console.log('arrayBuffer 长度:', arrayBuffer.byteLength)
const base64 = uni.arrayBufferToBase64(arrayBuffer) const base64 = uni.arrayBufferToBase64(arrayBuffer)
console.log('base64 长度:', base64.length) console.log('base64 长度:', base64.length)
qrcodeUrl.value = `data:image/png;base64,${base64}` 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 { } 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)