Ver código fonte

人才地图展示

Xiao_123 6 meses atrás
pai
commit
8342171fd2

+ 8 - 0
src/api/integral.js

@@ -35,4 +35,12 @@ export const getTaskList = async (params) => {
     url: '/admin-api/menduner/reward/event-track/get/mark/task',
     params
   })
+}
+
+// 二维码拉新记录
+export const getInviteRecord = async (params) => {
+  return await request.get({
+    url: '/app-api/menduner/system/person/get/invite/person/page',
+    params
+  })
 }

+ 6 - 0
src/layout/company/side.vue

@@ -51,6 +51,7 @@ const list = computed(() => {
   return getList(enterpriseRoute)
 })
 
+const info = localStorage.getItem('entBaseInfo') ? JSON.parse(localStorage.getItem('entBaseInfo')) : {}
 const getList = (arr, obj = []) => {
   // 是否为企业管理员
   const isAdmin = localStorage.getItem('isAdmin')
@@ -69,6 +70,9 @@ const getList = (arr, obj = []) => {
     if (element?.meta?.isAdmin) {
       data.isAdmin = true
     }
+    if (element?.meta?.isPersonMap) {
+      data.isPersonMap = true
+    }
     if (element?.children) {
       getList(element.children, data.children)
     }
@@ -80,6 +84,8 @@ const getList = (arr, obj = []) => {
       e.children = e.children.filter(val => !val.isAdmin)
     })
   }
+  // 人才地图是否可看
+  if (info && Object.keys(info).length && !info?.entitlement?.personMap) obj = obj.filter(e => !e.isPersonMap)
   return obj
 }
 

+ 2 - 1
src/router/modules/components/recruit/enterprise.js

@@ -172,7 +172,8 @@ const enterprise = [
     meta: {
       title: '人才地图',
       enName: 'Talent Map',
-      icon: 'mdi-map-check'
+      icon: 'mdi-map-check',
+      isPersonMap: true
     },
     children: [
       {

+ 11 - 0
src/router/modules/components/recruit/personCenter.js

@@ -104,6 +104,17 @@ const personCenter = [
               icon: 'mdi-order-bool-ascending-variant'
             }
           },
+          // 邀请记录
+          {
+            path: '/recruit/personal/personalCenter/inviteRecord',
+            name: 'Invite Record',
+            component: () => import('@/views/recruit/personal/PersonalCenter/inviteRecord/index.vue'),
+            meta: {
+              title: '邀请记录',
+              enName: 'Invite Record',
+              icon: 'mdi-format-list-numbered-rtl'
+            }
+          },
           // 会员福利
           {
             path: '/recruit/personal/personalCenter/memberBenefits',

+ 9 - 3
src/views/recruit/enterprise/resume/components/table.vue

@@ -170,9 +170,15 @@ const handleCancelEliminate = async (item) => {
 // 查看简历
 const handlePreviewResume = async ({ url, id }) => {
   if (!url || !id) return
-  await personJobCvLook(id)
-  emit('refresh')
-  previewFile(url)
+  try {
+    const res = await personJobCvLook(id)
+    if (res) {
+      emit('refresh')
+      previewFile(url)
+    }
+  } catch (err) {
+    console.log(err)
+  }
 }
 
 // 邀请面试

+ 58 - 0
src/views/recruit/personal/PersonalCenter/inviteRecord/index.vue

@@ -0,0 +1,58 @@
+<template>
+  <div class="resume-box">
+    <div class="resume-header mb-3">
+      <div class="resume-title">邀请新用户注册记录</div>
+    </div>
+    <CtTable
+      class="mt-3"
+      :items="items"
+      :headers="headers"
+      :loading="false"
+      :elevation="0"
+      :isTools="false"
+      :showPage="true"
+      :total="total"
+      :page-info="query"
+      itemKey="id"
+      @pageHandleChange="handleChangePage"
+    >
+    </CtTable>
+  </div>
+</template>
+
+<script setup>
+defineOptions({ name: 'inviteRecord'})
+import { ref } from 'vue'
+import { getInviteRecord } from '@/api/integral.js'
+
+const total = ref(0)
+const items = ref([])
+const query = ref({
+  pageNo: 1,
+  pageSize: 10
+})
+const headers = [
+  { title: '用户名', key: 'name', sortable: false },
+  { title: '用户名', key: 'name', sortable: false },
+  { title: '性别', key: 'sex', sortable: false },
+  { title: '求职状态', key: 'jobStatus', sortable: false },
+  { title: '工作经验', key: 'expType', sortable: false },
+  { title: '学历', key: 'eduType', sortable: false }
+]
+
+
+const getData = async () => {
+  const res = await getInviteRecord(query.value)
+  console.log(res, 'getData')
+}
+// getData()
+
+const handleChangePage = (e) => {
+  query.value.pageNo = e.page
+  getData()
+}
+</script>
+
+<style scoped lang="scss">
+
+</style>