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