favorite.vue 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. <template>
  2. <view class="main pt0">
  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">{{ item.address }}</view>
  10. <view class="distance">{{ item.createTime }}</view>
  11. </view>
  12. <view class="flex">
  13. <view class="f danger" @click.stop="del(item)">删除</view>
  14. </view>
  15. </view>
  16. <view class="loading" v-if="loadMore"><u-loadmore :status="loadMore ? 'loading' : 'nomore'" /></view>
  17. <u-empty v-if="!loadMore && list.length == 0"></u-empty>
  18. </view>
  19. </template>
  20. <script>
  21. export default {
  22. data() {
  23. return {
  24. list: [],
  25. param: { pageNum: 1, pageSize: 10 },
  26. loadMore: true
  27. };
  28. },
  29. onLoad(e) {
  30. this.getData();
  31. },
  32. methods: {
  33. getData() {
  34. this.http.request({
  35. url: '/app/favorite/list',
  36. data: this.param,
  37. loading: 'false',
  38. success: (res) => {
  39. this.loadMore = res.data.pages > this.param.pageNum ? true : false;
  40. res.data.rows.forEach((item) => {
  41. item.createTime = uni.$u.timeFrom(Date.parse(item.createTime));
  42. this.list.push(item);
  43. });
  44. }
  45. });
  46. },
  47. go(url) {
  48. uni.navigateTo({ url: url });
  49. },
  50. del(item) {
  51. uni.showModal({
  52. title: '提示',
  53. content: '确定删除该收藏',
  54. success: (res) => {
  55. if (res.confirm) {
  56. this.http.request({
  57. url: '/app/favorite/remove/' + item.id,
  58. success: (res) => {
  59. uni.showToast({ title: '删除成功' });
  60. this.list.splice(this.list.indexOf(item), 1);
  61. }
  62. });
  63. }
  64. }
  65. });
  66. },
  67. //刷新数据
  68. refresh() {
  69. this.loadMore = true;
  70. this.param.pageNum = 1;
  71. this.list = [];
  72. this.getData();
  73. }
  74. },
  75. //下拉刷新
  76. onPullDownRefresh() {
  77. setTimeout(() => {
  78. this.refresh();
  79. uni.stopPullDownRefresh();
  80. }, 1000);
  81. },
  82. //上拉加载
  83. onReachBottom() {
  84. if (this.loadMore) {
  85. this.param.pageNum++;
  86. this.getData();
  87. }
  88. }
  89. };
  90. </script>
  91. <style lang="scss"></style>