index.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <template>
  2. <div class="resume-box" style="position: relative; height: 100%;">
  3. <div class="resume-header">
  4. <div class="resume-title">简历模板下载</div>
  5. </div>
  6. <div style="height: calc(100% - 58px); width: 100%;" class="mt-3">
  7. <div v-if="vip" class="mt-5">
  8. <CtTable
  9. :items="list"
  10. :headers="headers"
  11. :loading="false"
  12. :elevation="0"
  13. :isTools="false"
  14. :showPage="false"
  15. >
  16. <template #actions="{ item }">
  17. <v-btn variant="text" color="primary" prepend-icon="mdi-eye-outline" @click="previewFile(item.url)">预览</v-btn>
  18. <v-btn variant="text" color="primary" prepend-icon="mdi-square-edit-outline" @click="handleDownload(item)">下载</v-btn>
  19. </template>
  20. </CtTable>
  21. </div>
  22. <div v-else class="mt-8">
  23. <span class="color-error">
  24. 简历模板为会员福利内容,<span class="text-decoration-underline cursor-pointer" @click="goBuy">去购买</span>
  25. </span>
  26. </div>
  27. </div>
  28. </div>
  29. </template>
  30. <script setup>
  31. defineOptions({name: 'resume-template'})
  32. import { ref, computed } from 'vue'
  33. import { previewFile, getBlob, saveAs } from '@/utils'
  34. import { useRouter } from 'vue-router'
  35. import { useUserStore } from '@/store/user'
  36. const router = useRouter()
  37. const userStore = useUserStore()
  38. // 简历模板列表
  39. const list = ref([
  40. { active: false, title: '创新精英简历模板', url: 'https://minio.menduner.com/dev/menduner/resumeTemplate/%E5%88%9B%E6%96%B0%E7%B2%BE%E8%8B%B1%E7%AE%80%E5%8E%86%E6%A8%A1%E6%9D%BF.docx' },
  41. { active: false, title: '顶尖人才简历模板', url: 'https://minio.menduner.com/dev/menduner/resumeTemplate/%E9%A1%B6%E5%B0%96%E4%BA%BA%E6%89%8D%E7%AE%80%E5%8E%86%E6%A8%A1%E6%9D%BF.docx' },
  42. { active: false, title: '高级职业经理人简历模板', url: 'https://minio.menduner.com/dev/menduner/resumeTemplate/%E9%AB%98%E7%BA%A7%E8%81%8C%E4%B8%9A%E7%BB%8F%E7%90%86%E4%BA%BA%E7%AE%80%E5%8E%86%E6%A8%A1%E6%9D%BF.docx' },
  43. { active: false, title: '高效职场精英简历模板', url: 'https://minio.menduner.com/dev/menduner/resumeTemplate/%E9%AB%98%E6%95%88%E8%81%8C%E5%9C%BA%E7%B2%BE%E8%8B%B1%E7%AE%80%E5%8E%86%E6%A8%A1%E6%9D%BF.doc' },
  44. { active: false, title: '领导力简历模板', url: 'https://minio.menduner.com/dev/menduner/resumeTemplate/%E9%A2%86%E5%AF%BC%E5%8A%9B%E7%AE%80%E5%8E%86%E6%A8%A1%E6%9D%BF.docx' },
  45. { active: false, title: '行业精英专属简历模板', url: 'https://minio.menduner.com/dev/menduner/resumeTemplate/%E8%A1%8C%E4%B8%9A%E7%B2%BE%E8%8B%B1%E4%B8%93%E5%B1%9E%E7%AE%80%E5%8E%86%E6%A8%A1%E6%9D%BF.docx' },
  46. { active: false, title: '行业领袖简历模板', url: 'https://minio.menduner.com/dev/menduner/resumeTemplate/%E8%A1%8C%E4%B8%9A%E9%A2%86%E8%A2%96%E7%AE%80%E5%8E%86%E6%A8%A1%E6%9D%BF.docx' },
  47. { active: false, title: '专业卓越简历模板', url: 'https://minio.menduner.com/dev/menduner/resumeTemplate/%E4%B8%93%E4%B8%9A%E5%8D%93%E8%B6%8A%E7%AE%80%E5%8E%86%E6%A8%A1%E6%9D%BF.doc' },
  48. { active: false, title: '卓越成就简历模板', url: 'https://minio.menduner.com/dev/menduner/resumeTemplate/%E5%8D%93%E8%B6%8A%E6%88%90%E5%B0%B1%E7%AE%80%E5%8E%86%E6%A8%A1%E6%9D%BF.docx' },
  49. { active: false, title: '卓越职业轨迹简历模板', url: 'https://minio.menduner.com/dev/menduner/resumeTemplate/%E5%8D%93%E8%B6%8A%E8%81%8C%E4%B8%9A%E8%BD%A8%E8%BF%B9%E7%AE%80%E5%8E%86%E6%A8%A1%E6%9D%BF.docx' },
  50. ])
  51. const headers = [
  52. { title: '简历模板名称', key: 'title', sortable: false },
  53. { title: '操作', key: 'actions', sortable: false, align: 'center' }
  54. ]
  55. const vip = computed(() => {
  56. return new Date().getTime() < userStore.userInfo?.vipExpireDate
  57. })
  58. // 下载附件
  59. const handleDownload = (k) => {
  60. getBlob(k.url).then(blob => {
  61. saveAs(blob, k.title)
  62. })
  63. }
  64. const goBuy = () => {
  65. router.push('/recruit/personal/personalCenter/memberBenefits/membershipPackage')
  66. }
  67. </script>
  68. <style lang="scss" scoped>
  69. </style>