invite.vue 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <template>
  2. <view class="main">
  3. <view class="item_job" v-for="(item, index) in list" :key="index" @click="go('/pages/job/detail?id=' + item.positionId)">
  4. <view class="top">
  5. <view class="title omit">{{ item.title }}</view>
  6. <view class="salary">{{ item.salary }}</view>
  7. </view>
  8. <view class="bot bt">
  9. <view class="address omit">您好,邀请您过来面试。</view>
  10. <view class="distance">{{ item.createTime }}</view>
  11. </view>
  12. <view class="flex">
  13. <view class="f br agree" @click.stop="agree(item, 1)" v-if="item.isAccept == 0">同意</view>
  14. <view class="f danger" @click.stop="agree(item, 2)" v-if="item.isAccept == 0">拒绝</view>
  15. <view class="f danger" v-if="item.isAccept == 2">已拒绝</view>
  16. <view class="f br agree" v-if="item.isAccept == 1">已同意</view>
  17. <view class="f br agree" v-if="item.isAccept == 3">面试完成</view>
  18. <view class="f" @click.stop="navigation(item)" v-if="item.isAccept == 1">导航去面试</view>
  19. </view>
  20. </view>
  21. <view class="loading" v-if="loadMore"><u-loadmore :status="loadMore ? 'loading' : 'nomore'" /></view>
  22. <u-empty v-if="!loadMore && list.length == 0"></u-empty>
  23. </view>
  24. </template>
  25. <script>
  26. export default {
  27. data() {
  28. return {
  29. list: [],
  30. param: { pageNum: 1, pageSize: 10, state: 1, type: 0 },
  31. loadMore: true
  32. };
  33. },
  34. onLoad(e) {
  35. this.getData();
  36. },
  37. methods: {
  38. getData() {
  39. this.http.request({
  40. url: '/app/deliver/user/list',
  41. data: this.param,
  42. loading: 'false',
  43. success: (res) => {
  44. this.loadMore = res.data.pages > this.param.pageNum ? true : false;
  45. res.data.rows.forEach((item) => {
  46. item.createTime = uni.$u.timeFrom(Date.parse(item.createTime));
  47. this.list.push(item);
  48. });
  49. }
  50. });
  51. },
  52. go(url) {
  53. uni.navigateTo({ url: url });
  54. },
  55. navigation(item) {
  56. wx.openLocation({
  57. latitude: Number(item.latitude),
  58. longitude: Number(item.longitude),
  59. scale: 18, // 缩放比例
  60. success: (res) => {
  61. console.log('导航成功');
  62. },
  63. fail: (res) => {
  64. console.error('导航失败', res);
  65. }
  66. });
  67. },
  68. agree(item, isAccept) {
  69. uni.showModal({
  70. title: '提示',
  71. content: isAccept == 1 ? '确定同意去面试' : '确定拒绝该邀请',
  72. success: (res) => {
  73. if (res.confirm) {
  74. this.http.request({
  75. url: '/app/deliver/agree',
  76. data: { id: item.id, isAccept: isAccept },
  77. method: 'POST',
  78. success: (res) => {
  79. uni.showToast({ title: '操作成功' });
  80. item.isAccept = isAccept;
  81. }
  82. });
  83. }
  84. }
  85. });
  86. },
  87. //刷新数据
  88. refresh() {
  89. this.loadMore = true;
  90. this.param.pageNum = 1;
  91. this.list = [];
  92. this.getData();
  93. }
  94. },
  95. //下拉刷新
  96. onPullDownRefresh() {
  97. setTimeout(() => {
  98. this.refresh();
  99. uni.stopPullDownRefresh();
  100. }, 1000);
  101. },
  102. //上拉加载
  103. onReachBottom() {
  104. if (this.loadMore) {
  105. this.param.pageNum++;
  106. this.getData();
  107. }
  108. }
  109. };
  110. </script>
  111. <style lang="scss"></style>