瀏覽代碼

职位详情:生成分享二维码改为点击分享按钮时再请求

Xiao_123 2 月之前
父節點
當前提交
5f58348ff5

+ 9 - 2
src/views/recruit/personal/position/components/details.vue

@@ -295,7 +295,6 @@ const share = ref()
 // 生成图片
 const generateAndDownloadImage = async () => {
   if (!share.value) return
-  loading.value = true
   try {  
     const canvas = await html2canvas(share.value.$el, { scale: DPR(), useCORS: true })
     const image = canvas.toDataURL().replace(/^data:image\/(png|jpg);base64,/, '')
@@ -307,6 +306,7 @@ const generateAndDownloadImage = async () => {
     }
     showPreview.value = true
   } catch (error) {
+    loading.value = false
     console.error('Error generating image:', error)
     Snackbar.error('图片生成失败')
   }
@@ -375,7 +375,14 @@ const handleShare = async () => {
     })
     return
   }
-  generateAndDownloadImage() // 生成海报
+  
+  loading.value = true
+  try {
+    await share.value.getQrCode()
+    generateAndDownloadImage() // 生成海报
+  } catch {
+    loading.value = false
+  }
 }
 
 // 收藏&取消收藏职位

+ 5 - 1
src/views/recruit/personal/position/components/poster.vue

@@ -121,13 +121,17 @@ const getQrCode = async () => {
   const data = await getJobAdvertisedShareQrcode(query)
   url.value = 'data:image/png;base64,' + data
 }
-getQrCode()
+// getQrCode()
 
 const desc = [
   { value: 'areaName' },
   { value: 'expName' },
   { value: 'eduName' }
 ]
+
+defineExpose({
+  getQrCode
+})
 </script>
 
 <style lang="scss" scoped>