recruit.vue 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <template>
  2. <div id="recruit">
  3. <el-row>
  4. <el-col :span="24">
  5. <el-tabs v-model="activeName" type="border-card">
  6. <el-tab-pane :label="`${$site === 'master' ? '宣讲会' : '校外宣讲'}`" name="talkOut">
  7. <el-col :span="24">
  8. <el-col :span="12" v-for="(item, index) in talksoutList" :key="index" class="talksList">
  9. <el-col :span="18">
  10. <el-col :span="24" class="title textOver">
  11. <el-link :underline="false" @click.native="$router.push({ path: '/talk/detail', query: { id: item.id } })">{{ item.title }}</el-link>
  12. </el-col>
  13. <el-col :span="24" class="schname textOver">
  14. {{ item.schname }}
  15. </el-col>
  16. <el-col :span="24" class="address textOver">
  17. {{ item.address }}
  18. </el-col>
  19. </el-col>
  20. <el-col :span="6">
  21. <el-col :span="24" class="time">{{ item.time }}</el-col>
  22. <el-col :span="24" class="timedian">{{ item.timedian }}</el-col>
  23. <el-col :span="24" class="size"><i class="el-icon-view"></i>{{ item.team_size }}</el-col>
  24. </el-col>
  25. </el-col>
  26. </el-col>
  27. </el-tab-pane>
  28. <el-tab-pane label="校内宣讲" name="talkIn" v-if="$site !== 'master'">
  29. <el-col :span="24">
  30. <el-col :span="12" v-for="(item, index) in talksList" :key="index" class="talksList">
  31. <el-col :span="18">
  32. <el-col :span="24" class="title textOver">
  33. <el-link :underline="false" @click.native="$router.push({ path: '/talk/detail', query: { id: item.id } })"> {{ item.title }}</el-link>
  34. </el-col>
  35. <el-col :span="24" class="schname textOver">
  36. {{ item.schname }}
  37. </el-col>
  38. <el-col :span="24" class="address textOver">
  39. {{ item.address }}
  40. </el-col>
  41. </el-col>
  42. <el-col :span="6">
  43. <el-col :span="24" class="time">{{ item.time }}</el-col>
  44. <el-col :span="24" class="timedian">{{ item.timedian }}</el-col>
  45. <el-col :span="24" class="size"><i class="el-icon-view"></i>{{ item.team_size }}</el-col>
  46. </el-col>
  47. </el-col>
  48. </el-col>
  49. </el-tab-pane>
  50. <el-tab-pane label="招聘会" name="jobfair">
  51. <el-col :span="24" v-for="(item, index) in fairsList" :key="index" class="fairsList">
  52. <el-col :span="19">
  53. <el-col :span="24" class="title textOver">
  54. <el-link :underline="false" @click.native="$router.push({ path: '/jobfair/detail', query: { id: item.id } })">{{ item.title }}</el-link>
  55. </el-col>
  56. <el-col :span="24" class="schname textOver">主办方:{{ item.schname }}</el-col>
  57. <el-col :span="24" class="address textOver">{{ item.address }}</el-col>
  58. </el-col>
  59. <el-col :span="5" class="time">{{ item.time }}&nbsp;{{ item.timedian }}</el-col>
  60. </el-col>
  61. </el-tab-pane>
  62. <el-tab-pane label="招聘快讯" name="jobinfo">
  63. <el-col :span="24" v-for="(item, index) in infoList" :key="index" class="fairsList">
  64. <el-col :span="24" class="title textOver">
  65. <el-link :underline="false" @click.native="$router.push({ path: '/jobinfo/detail', query: { id: item.id } })">{{ item.title }}</el-link>
  66. </el-col>
  67. <el-col :span="24" class="schname textOver">主办方:{{ item.schname }}</el-col>
  68. <el-col :span="24" class="address textOver">{{ item.corpname }}</el-col>
  69. </el-col>
  70. </el-tab-pane>
  71. </el-tabs>
  72. <el-link :inderline="false" class="moreLink" :style="`color:${Color}`" @click="toMore()">MORE<i class="el-icon-video-play"></i> </el-link>
  73. </el-col>
  74. </el-row>
  75. </div>
  76. </template>
  77. <script>
  78. export default {
  79. name: 'recruit',
  80. props: {
  81. talksList: null,
  82. fairsList: null,
  83. talksoutList: null,
  84. infoList: null,
  85. },
  86. components: {},
  87. data: () => ({
  88. activeName: 'jobinfo',
  89. Color: '#850000',
  90. }),
  91. created() {},
  92. computed: {},
  93. methods: {
  94. toMore() {
  95. if (this.activeName === 'talkIn') this.$router.push({ path: '/talk/list/in' });
  96. if (this.activeName === 'talkOut') this.$router.push({ path: '/talk/list/out' });
  97. if (this.activeName === 'jobfair') this.$router.push({ path: '/jobfair/list/in' });
  98. if (this.activeName === 'jobinfo') this.$router.push({ path: '/jobinfo/list' });
  99. },
  100. },
  101. };
  102. </script>
  103. <style lang="less" scoped>
  104. .moreLink {
  105. position: absolute;
  106. top: 10px;
  107. right: 10px;
  108. color: #850000;
  109. }
  110. /deep/.el-tabs__header {
  111. margin: 0;
  112. }
  113. /deep/.el-tabs--border-card > .el-tabs__content {
  114. padding: 0;
  115. }
  116. .talksList {
  117. padding: 12px 10px;
  118. border-bottom: 1px dashed #ccc;
  119. }
  120. .talksList .title .el-link {
  121. font-size: 18px;
  122. }
  123. .talksList .schname {
  124. font-size: 16px;
  125. color: #999;
  126. padding: 4px 0;
  127. }
  128. .talksList .address {
  129. font-size: 16px;
  130. color: #999;
  131. }
  132. .talksList .time {
  133. font-size: 16px;
  134. color: red;
  135. }
  136. .talksList .timedian {
  137. font-size: 16px;
  138. color: red;
  139. padding: 4px 0;
  140. }
  141. .textOver {
  142. overflow: hidden;
  143. text-overflow: ellipsis;
  144. white-space: nowrap;
  145. }
  146. .fairsList {
  147. padding: 10px;
  148. border-bottom: 1px dashed #ccc;
  149. }
  150. .fairsList .title .el-link {
  151. font-size: 18px;
  152. }
  153. .fairsList .schname {
  154. font-size: 16px;
  155. color: #999;
  156. padding: 6px 0;
  157. }
  158. .fairsList .address {
  159. font-size: 16px;
  160. color: #999;
  161. }
  162. .fairsList .time {
  163. font-size: 16px;
  164. color: red;
  165. }
  166. </style>