invite.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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>
  18. </view>
  19. <view class="loading" v-if="loadMore"><u-loadmore :status="loadMore ? 'loading' : 'nomore'" /></view>
  20. <u-empty v-if="!loadMore && list.length == 0"></u-empty>
  21. </view>
  22. </template>
  23. <script>
  24. export default {
  25. data() {
  26. return {
  27. list: [],
  28. param: { pageNum: 1, pageSize: 10, state: 1, type: 1 },
  29. loadMore: true
  30. };
  31. },
  32. onLoad(e) {
  33. this.getData();
  34. },
  35. methods: {
  36. getData() {
  37. this.http.request({
  38. url: '/app/deliver/user/list',
  39. data: this.param,
  40. loading: 'false',
  41. success: (res) => {
  42. this.loadMore = res.data.pages > this.param.pageNum ? true : false;
  43. res.data.rows.forEach((item) => {
  44. item.createTime = uni.$u.timeFrom(Date.parse(item.createTime));
  45. this.list.push(item);
  46. });
  47. }
  48. });
  49. },
  50. go(url) {
  51. uni.navigateTo({ url: url });
  52. },
  53. navigation(item) {
  54. wx.openLocation({
  55. latitude: Number(item.latitude),
  56. longitude: Number(item.longitude),
  57. scale: 18, // 缩放比例
  58. success: (res) => {
  59. console.log('导航成功');
  60. },
  61. fail: (res) => {
  62. console.error('导航失败', res);
  63. }
  64. });
  65. },
  66. agree(item, isAccept) {
  67. uni.showModal({
  68. title: '提示',
  69. content: isAccept == 1 ? '确定同意接受这个兼职工作' : '确定拒绝该邀请',
  70. success: (res) => {
  71. if (res.confirm) {
  72. this.http.request({
  73. url: '/app/deliver/agree',
  74. data: { id: item.id, isAccept: isAccept },
  75. method: 'POST',
  76. success: (res) => {
  77. uni.showToast({ title: '操作成功' });
  78. item.isAccept = isAccept;
  79. }
  80. });
  81. }
  82. }
  83. });
  84. },
  85. //刷新数据
  86. refresh() {
  87. this.loadMore = true;
  88. this.param.pageNum = 1;
  89. this.list = [];
  90. this.getData();
  91. }
  92. },
  93. //下拉刷新
  94. onPullDownRefresh() {
  95. setTimeout(() => {
  96. this.refresh();
  97. uni.stopPullDownRefresh();
  98. }, 1000);
  99. },
  100. //上拉加载
  101. onReachBottom() {
  102. if (this.loadMore) {
  103. this.param.pageNum++;
  104. this.getData();
  105. }
  106. }
  107. };
  108. </script>
  109. <style lang="scss"></style>