index.vue 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <!-- 购买套餐 -->
  2. <template>
  3. <div class="default-width py-3">
  4. <div class="white-bgc resume-box">
  5. <div class="resume-header">
  6. <div class="resume-title">购买会员</div>
  7. </div>
  8. <div class="d-flex align-center justify-center my-5">
  9. <div
  10. v-for="(item, index) in packList"
  11. :key="index"
  12. :elevation="tab === (index+1) ? 3 : 2"
  13. class="packagesItem cursor-pointer mx-3"
  14. :class="{'active': tab === (index+1)}"
  15. style="width: 200px;"
  16. @click="tab = index + 1"
  17. >
  18. <div class="d-flex flex-column align-center pb-5">
  19. <div class="mt-4 font16 fontBold titleColor">{{ item.title }}</div>
  20. <div class="mt-2 fontBold priceBox">
  21. <span>¥</span>
  22. <span class="font28">{{ item.price }}</span>
  23. </div>
  24. <div class="dailyPrice font13 mt-2">开通会员</div>
  25. </div>
  26. </div>
  27. </div>
  28. <v-data-table
  29. :items="!type ? personalItems : enterpriseItems"
  30. :headers="headers"
  31. >
  32. <template v-slot:[`item.equity`]="{ item }">
  33. <span class="font-weight-bold font-size-14">{{ item.equity }}</span>
  34. </template>
  35. <template #bottom></template>
  36. </v-data-table>
  37. </div>
  38. </div>
  39. </template>
  40. <script setup>
  41. defineOptions({name: 'purchasePackage'})
  42. import { ref } from 'vue'
  43. const tab = ref(1)
  44. defineProps({
  45. type: {
  46. type: Number,
  47. default: 0 // 0个人 1企业
  48. }
  49. })
  50. const packList = [
  51. { title: '14天双周卡', price: 38 },
  52. { title: '30天月卡', price: 58 },
  53. { title: '60天月卡', price: 78 },
  54. { title: '季度卡', price: 108 },
  55. { title: '年度卡', price: 388 }
  56. ]
  57. const headers = [
  58. { title: '权益', key: 'equity', value: 'equity', sortable: false },
  59. { title: '14天双周卡', key: 'weeklyCard', sortable: false },
  60. { title: '30天月卡', key: 'thirtyCard', sortable: false },
  61. { title: '60天月卡', key: 'sixtyCard', sortable: false },
  62. { title: '季度卡', key: 'seasonCard', sortable: false },
  63. { title: '年度卡', key: 'yearCard', sortable: false }
  64. ]
  65. const personalItems = [
  66. { equity: '简历刷新pro', weeklyCard: '5次/天', thirtyCard: '5次/天', sixtyCard: '15次/天', seasonCard: '40次/天', yearCard: '40次/天' },
  67. { equity: '竞争力分析', weeklyCard: '20次/天', thirtyCard: '25次/天', sixtyCard: '35次/天', seasonCard: '无限', yearCard: '无限' },
  68. { equity: '谁对我有兴趣', weeklyCard: '3次/天', thirtyCard: '无限查看', sixtyCard: '无限查看', seasonCard: '无限查看', yearCard: '无限查看' },
  69. { equity: '投递优先查看', weeklyCard: '✓', thirtyCard: '✓', sixtyCard: '✓', seasonCard: '✓', yearCard: '✓' },
  70. { equity: 'VIP会员标识', weeklyCard: '✓', thirtyCard: '✓', sixtyCard: '✓', seasonCard: '✓', yearCard: '✓' },
  71. { equity: 'VIP专属折扣', weeklyCard: '✓', thirtyCard: '✓', sixtyCard: '✓', seasonCard: '✓', yearCard: '✓' },
  72. { equity: '简历内容范例', weeklyCard: '×', thirtyCard: '×', sixtyCard: '×', seasonCard: '5条', yearCard: '✓' },
  73. { equity: '会员简历模版', weeklyCard: '×', thirtyCard: '×', sixtyCard: '×', seasonCard: '3次', yearCard: '✓' },
  74. { equity: '一键润色简历', weeklyCard: '×', thirtyCard: '×', sixtyCard: '×', seasonCard: '10次/天', yearCard: '无限' },
  75. { equity: '导入解析简历', weeklyCard: '×', thirtyCard: '×', sixtyCard: '×', seasonCard: '10次/天', yearCard: '无限' },
  76. { equity: '简历草稿数', weeklyCard: '×', thirtyCard: '×', sixtyCard: '×', seasonCard: '5份', yearCard: '20份' },
  77. { equity: '全年简历回收', weeklyCard: '×', thirtyCard: '×', sixtyCard: '×', seasonCard: '×', yearCard: '✓' },
  78. { equity: '会员求职大礼包', weeklyCard: '×', thirtyCard: '×', sixtyCard: '×', seasonCard: '×', yearCard: '✓' },
  79. ]
  80. const enterpriseItems = [
  81. { equity: '职位发布', weeklyCard: '3个', thirtyCard: '5个', sixtyCard: '10个', seasonCard: '15个', yearCard: '20个' },
  82. { equity: '发布岗位置顶', weeklyCard: '1次/天', thirtyCard: '3次/天', sixtyCard: '5次/天', seasonCard: '10次/天', yearCard: '无限' },
  83. { equity: '优质人才搜索', weeklyCard: '3次/天', thirtyCard: '5次/天', sixtyCard: '10次/天', seasonCard: '20次/天', yearCard: '无限' },
  84. { equity: '专属职位推荐', weeklyCard: '×', thirtyCard: '×', sixtyCard: '1次/天', seasonCard: '10次/天', yearCard: '25次/天' },
  85. { equity: '候选推荐', weeklyCard: '×', thirtyCard: '×', sixtyCard: '2次/天', seasonCard: '10次/天', yearCard: '无限' },
  86. { equity: '背景调查及报告', weeklyCard: '×', thirtyCard: '×', sixtyCard: '×', seasonCard: '×', yearCard: '赠送2次' },
  87. { equity: '保入职服务', weeklyCard: '×', thirtyCard: '×', sixtyCard: '×', seasonCard: '✓', yearCard: '✓' },
  88. { equity: '主页轮播广告', weeklyCard: '×', thirtyCard: '×', sixtyCard: '×', seasonCard: '×', yearCard: '✓' },
  89. { equity: 'AI分析简历', weeklyCard: '×', thirtyCard: '×', sixtyCard: '×', seasonCard: '2次', yearCard: '✓' }
  90. ]
  91. </script>
  92. <style lang="scss" scoped>
  93. :deep(.v-data-table-header__content) {
  94. color: #883a19;
  95. font-size: 16px;
  96. font-weight: 700;
  97. }
  98. .font13 { font-size: 13px; }
  99. .font16 { font-size: 16px; }
  100. .font28 { font-size: 28px; }
  101. .fontBold { font-weight: bold; }
  102. .titleColor { color: #883a19; }
  103. .packagesItem {
  104. border: 1px solid var(--color-f3);
  105. border-radius: 8px;
  106. background-color: var(--color-f2f4f742);
  107. }
  108. .dailyPrice {
  109. border-radius: 14px;
  110. background-color: #dde3e94f;
  111. padding: 2px 18px;
  112. color: var(--color-666);
  113. }
  114. .active {
  115. padding: 4px 8px;
  116. border: 1px solid #cf990c;
  117. background-color: #fff;
  118. .titleColor {
  119. color: #cf990c;
  120. }
  121. .priceBox {
  122. color: #ff4747;
  123. }
  124. .dailyPrice {
  125. color: #ff4747;
  126. background-color: #fff4e7;
  127. }
  128. }
  129. </style>