Browse Source

职位分享跳转小程序

Xiao_123 7 tháng trước cách đây
mục cha
commit
f583a97796

+ 1 - 1
components.d.ts

@@ -30,9 +30,9 @@ declare module 'vue' {
     DatePicker: typeof import('./src/components/DatePicker/index.vue')['default']
     Details: typeof import('./src/components/Enterprise/details.vue')['default']
     Echarts: typeof import('./src/components/Echarts/index.vue')['default']
+    ElCascader: typeof import('element-plus/es')['ElCascader']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
     ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
-    ElTimePicker: typeof import('element-plus/es')['ElTimePicker']
     Empty: typeof import('./src/components/Empty/index.vue')['default']
     File: typeof import('./src/components/Upload/file.vue')['default']
     HeadSearch: typeof import('./src/components/headSearch/index.vue')['default']

+ 16 - 0
src/api/position.js

@@ -250,3 +250,19 @@ export const updatePositionExpireTime = async (data) => {
     data
   })
 }
+
+// 获取职位分享小程序二维码
+export const getJobAdvertisedShareQrcode = async (data) => {
+  return await request.post({
+    url: '/app-api/menduner/system/social-user/wxa-qrcode',
+    data
+  })
+}
+
+// 保存职位分享信息
+export const getJobAdvertisedShare = async (data) => {
+  return await request.post({
+    url: '/app-api/menduner/system/job/advertised/share',
+    data
+  })
+}

+ 22 - 7
src/views/recruit/personal/position/components/poster.vue

@@ -47,7 +47,9 @@
           </div>
 
           <div class="px-5 py-3 d-flex justify-space-evenly align-center mt-10 radius" style="background-color: #e3f2f0">
-            <QrCode :text="shareUrlTxt" :width="120" />
+            <div>
+              <img :src="url" width="150" height="150">
+            </div>
             <div style="color: #333;" class="text-center">
               长 按 识 别 二 维 码
               <div style="color: #6A6A6A">了 解 更 多 职 位 信 息</div>
@@ -65,6 +67,8 @@
 
 <script setup>
 defineOptions({name: 'recruit-personal-shareJob-index'})
+import { ref } from 'vue'
+import { getJobAdvertisedShareQrcode, getJobAdvertisedShare } from '@/api/position'
 
 // 职位详情
 const props = defineProps({
@@ -74,12 +78,23 @@ const props = defineProps({
 })
 
 const userInfo = localStorage.getItem('userInfo') ? JSON.parse(localStorage.getItem('userInfo')) : {}
-const shareUrlTxt = import.meta.env.VITE_ACCESS_BASE_URL + '/shareJob?' + new URLSearchParams({
-  jobId: props.id,
-  sharedById: userInfo?.id,
-}).toString()
-
-console.log('职位分享链接', shareUrlTxt)
+const url = ref('')
+// 获取二维码
+const getQrCode = async () => {
+  // 先将需要的参数传递给后端,后端返回一个id,再根据id获取二维码,小程序端根据scene中的id获取分享的职位id与推荐人id
+  const result = await getJobAdvertisedShare({ jobId: props.id, sharedById: userInfo?.id })
+  const query = {
+    scene: 'id=' + result,
+    path: 'pagesB/positionDetail/index',
+    width: 200,
+    autoColor: false,
+    checkPath: true,
+    hyaline: true
+  }
+  const data = await getJobAdvertisedShareQrcode(query)
+  url.value = 'data:image/png;base64,' + data
+}
+getQrCode()
 
 const desc = [
   { value: 'areaName' },