myInterview.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <!-- 我的面试 -->
  2. <template>
  3. <view class="interview">
  4. <z-paging
  5. ref="paging"
  6. v-model="interviewList"
  7. @query="queryList"
  8. >
  9. <view class="interview-list">
  10. <view class="interview-list-item" v-for="(item, index) in interviewList" :key="index">
  11. <view class="interview-list-item-title">
  12. <view>{{ getDictLabel(item.status, 'deliveryStatusList') }}</view>
  13. <view>
  14. <image src="../../static/img/shijian.png"/>
  15. </view>
  16. </view>
  17. <view class="interview-list-item-date">{{ item.interviewTime }}</view>
  18. <view class="interview-list-item-way">{{ item.interviewAddress }}</view>
  19. <view class="interview-list-item-position">
  20. <view class="left">
  21. <view>
  22. <image :src="item.companyLogoUrl"/>
  23. </view>
  24. <view class="info">
  25. <view>{{ item.postName }}</view>
  26. <view>{{ `${item.workPlace} | 经验${item.workYear}年 | ${item.educationBg}` }}</view>
  27. <view>{{ item.companyName }}</view>
  28. </view>
  29. </view>
  30. <view class="right">
  31. <view>{{ `${item.lowestSalary}k ~ ${item.highestSalary}k` }}</view>
  32. <view v-if="item.updateTime">{{ item.updateTime.split(' ')[0] }}</view>
  33. <view v-else>{{ item.createTime.split(' ')[0] }}</view>
  34. </view>
  35. </view>
  36. <view class="interview-list-item-button" v-if="Number(item.status) === 20 && new Date('2021-10-29 10:00').valueOf() > new Date().valueOf()">
  37. <view class="submit btn">发起视频面试</view>
  38. </view>
  39. <view class="interview-list-item-button" v-else-if="Number(item.status) === 20 && new Date('2021-10-29 10:00').valueOf() <= new Date().valueOf()">
  40. <view class="not btn">未到视频面试</view>
  41. </view>
  42. <view class="interview-list-item-button double" v-else-if="Number(item.status) === 50">
  43. <view class="btn">接受</view>
  44. <view class="btn">拒绝</view>
  45. </view>
  46. </view>
  47. </view>
  48. </z-paging>
  49. <u-toast ref="uToast" />
  50. </view>
  51. </template>
  52. <script>
  53. export default {
  54. data() {
  55. return {
  56. // 面试列表
  57. interviewList: [],
  58. // 面试状态
  59. deliveryStatusList: []
  60. }
  61. },
  62. onLoad() {
  63. this.getDict('delivery_status')
  64. },
  65. methods: {
  66. /**
  67. * 获取我的面试列表
  68. * @param { Number } pageNum
  69. * @param { Number } pageSize
  70. */
  71. getInterviewList(pageNum, pageSize) {
  72. this.$u.api.interview.getInterviewList({ pageNum, pageSize }).then(res => {
  73. if (res.code === 200) {
  74. this.$refs.paging.complete(res.rows)
  75. } else {
  76. this.$refs.paging.complete([])
  77. this.$refs.uToast.show({
  78. title: res.msg,
  79. type: 'error'
  80. })
  81. }
  82. }).catch(err => {
  83. this.$refs.uToast.show({
  84. title: '系统异常!',
  85. type: 'error'
  86. })
  87. })
  88. },
  89. /**
  90. * 组件下拉加载触发
  91. * @param { Number } pageNo
  92. * @param { Number } pageSize
  93. */
  94. queryList(pageNo, pageSize) {
  95. this.getInterviewList(pageNo, pageSize);
  96. },
  97. /**
  98. * 获取数据字典
  99. * @param { String } key
  100. */
  101. getDict(key) {
  102. this.$u.api.getDictdataUrl({ key }).then(res => {
  103. if (res.code === 200) {
  104. switch(key) {
  105. case 'delivery_status':
  106. this.deliveryStatusList = res.data;
  107. break;
  108. }
  109. }
  110. })
  111. },
  112. /**
  113. * 获取字典名称
  114. * @param { String } val
  115. * @param { String } key
  116. */
  117. getDictLabel(val, key) {
  118. let label;
  119. this[key].forEach(item => {
  120. if (Number(item.text) === Number(val)) {
  121. label = item.label
  122. }
  123. })
  124. return label;
  125. }
  126. }
  127. }
  128. </script>
  129. <style lang="scss" scoped>
  130. @import './myInterview.scss';
  131. </style>