index.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <template>
  2. <view class="main">
  3. <!--搜索-->
  4. <view class="search">
  5. <view class="usearch">
  6. <u-search placeholder="搜索工作" :disabled="true" bgColor="white" :showAction="false" @click="go('/pages/job/search')"></u-search>
  7. </view>
  8. <view class="address">
  9. <text class="icon">&#xe62e;</text>
  10. <text>南宁市</text>
  11. </view>
  12. </view>
  13. <!--轮播图-->
  14. <view class="banner">
  15. <u-swiper circular :radius="5" :indicator="true" keyName="pic" :list="bannerList" :height="160" class="uni-swiper" @click="click"></u-swiper>
  16. </view>
  17. <!--菜单-->
  18. <view class="menu">
  19. <view class="cd" @click="go('/pages/job/map')">
  20. <view class="out">
  21. <view class="int">
  22. <view class="icon" style="background-color: #03a9f4">&#xe647;</view>
  23. <view class="title">地图找工</view>
  24. </view>
  25. </view>
  26. </view>
  27. <view class="cd" @click="go('/pages/job/list?type=0')">
  28. <view class="out">
  29. <view class="int">
  30. <view class="icon" style="background-color: #4581fb">&#xe9d9;</view>
  31. <view class="title">全职</view>
  32. </view>
  33. </view>
  34. </view>
  35. <view class="cd" @click="go('/pages/job/list?type=1')">
  36. <view class="out">
  37. <view class="int">
  38. <view class="icon" style="background-color: #ff5722">&#xe62a;</view>
  39. <view class="title">兼职</view>
  40. </view>
  41. </view>
  42. </view>
  43. <view class="cd" @click="go('/pages/index/index')">
  44. <view class="out">
  45. <view class="int">
  46. <view class="icon" style="background-color: #03a9f4">&#xe725;</view>
  47. <view class="title">结算广场</view>
  48. </view>
  49. </view>
  50. </view>
  51. </view>
  52. <view class="tab">
  53. <u-tabs :list="tab" @click="click"></u-tabs>
  54. <view class="filters" @click="show = true">
  55. <text class="icon">&#xe68c;</text>
  56. <text>更多</text>
  57. </view>
  58. </view>
  59. <view class="list">
  60. <job :list="list"></job>
  61. </view>
  62. </view>
  63. </template>
  64. <script>
  65. export default {
  66. data() {
  67. return {
  68. tab: [{ name: '推荐' }, { name: '最新' }, { name: '附近' }],
  69. list: [],
  70. param: { pageNum: 1, pageSize: 20, orderBy: 'id', type: 0 },
  71. bannerList: [],
  72. noticeList: []
  73. };
  74. },
  75. onShow() {},
  76. onLoad() {
  77. this.initData();
  78. this.getData();
  79. },
  80. methods: {
  81. initData() {
  82. //首页数据
  83. this.http.request({
  84. url: '/app/home/index',
  85. success: (res) => {
  86. this.contract = res.data.data.contract;
  87. this.bannerList = res.data.data.bannerList;
  88. res.data.data.noticeList.forEach((item) => {
  89. this.noticeList.push(item.title);
  90. });
  91. }
  92. });
  93. //初始化所有地区
  94. this.http.request({
  95. url: '/app/common/column/city/all',
  96. success: (res) => {
  97. uni.setStorageSync('city_all', res.data.data);
  98. }
  99. });
  100. // #ifdef MP-WEIXIN
  101. //授权获取位置
  102. uni.authorize({
  103. scope: 'scope.userLocation',
  104. success: (s) => {
  105. uni.getLocation({
  106. type: 'wgs84',
  107. success: (res) => {
  108. uni.setStorageSync('location', res);
  109. }
  110. });
  111. },
  112. fail(res) {
  113. uni.showModal({ title: '提示', content: '定位失败,请检查是否允许定位', showCancel: false });
  114. }
  115. });
  116. // #endif
  117. },
  118. getData() {
  119. this.http.request({
  120. url: '/app/position/list',
  121. data: this.param,
  122. success: (res) => {
  123. this.list.push(...res.data.rows);
  124. }
  125. });
  126. },
  127. click(e) {
  128. this.current = e.index;
  129. },
  130. go(url) {
  131. uni.navigateTo({ url: url });
  132. }
  133. }
  134. };
  135. </script>
  136. <style lang="scss">
  137. @import './index.scss';
  138. </style>