index.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  1. // pages/parttime/index.js
  2. import {
  3. getParttimeList
  4. } from '../../services/index.js'
  5. import {
  6. imgServerUrl} from '../../config/config.js'
  7. Page({
  8. /**
  9. * 页面的初始数据
  10. */
  11. data: {
  12. imgServerUrl: imgServerUrl,
  13. list: [],
  14. pageNo: 1, //当前分页
  15. isScroll: true, //是否可以滚动
  16. showNoMore: "没有更多信息...", //显示已无更多
  17. cityName: '无锡',
  18. cityCode: '320200',
  19. selectId: -1, //选中筛选的条件
  20. settlementMethod: [{
  21. index: -1,
  22. name: '不限'
  23. },
  24. {
  25. index: 2,
  26. name: '日结'
  27. },
  28. {
  29. index: 1,
  30. name: '周结'
  31. },
  32. {
  33. index: 0,
  34. name: '月结'
  35. },
  36. {
  37. index: 3,
  38. name: '完工结'
  39. },
  40. {
  41. index: 4,
  42. name: '其他'
  43. },
  44. ], //结算方式(1:正序;2:倒序)
  45. settleme: -1, //结算方式索引
  46. settle: '', //结算方式
  47. sort: '', //距离排序(1:正序;2:倒序)
  48. longitude: '', //经度
  49. latitude: '', //纬度
  50. canIUse: wx.canIUse('button.open-type.getUserInfo'),
  51. countryCode: ''
  52. },
  53. /**
  54. * 生命周期函数--监听页面加载
  55. */
  56. onLoad: function () {
  57. this.setData({
  58. pageNo: 1, //当前分页
  59. isScroll: true, //是否可以滚动
  60. list: [],
  61. selectId: -1, //选中筛选的条件
  62. settleme: 0, //结算方式索引
  63. settle: '', //结算方式
  64. sort: '', //距离排序(1:正序;2:倒序)
  65. longitude: "",
  66. latitude: ""
  67. }, _ => {
  68. this.start();
  69. })
  70. },
  71. /**
  72. * 生命周期函数--监听页面初次渲染完成
  73. */
  74. onReady: function () {
  75. },
  76. start() {
  77. let cityName = wx.getStorageSync('city') || '无锡';
  78. let cityCode = wx.getStorageSync('cityCode') || '320200';
  79. let areaList = wx.getStorageSync('areaList') || [];
  80. this.setData({
  81. cityName: cityName,
  82. cityCode: cityCode,
  83. areaList,
  84. }, _ => {
  85. this.parttimeList();
  86. })
  87. },
  88. /**
  89. * 生命周期函数--监听页面显示
  90. */
  91. onShow: function () {
  92. },
  93. //获取兼职列表数据
  94. parttimeList() {
  95. if (!this.data.isScroll) {
  96. return false
  97. }
  98. let paramsObj = {
  99. longitude: this.data.longitude,
  100. latitude: this.data.latitude,
  101. sort: this.data.sort,
  102. settlementMethod: this.data.settle,
  103. cityCode: this.data.cityCode,
  104. countryCode: this.data.countryCode,
  105. pageNo: this.data.pageNo
  106. }
  107. Object.assign(paramsObj);
  108. getParttimeList(paramsObj).then(data => {
  109. var pageNo = data.data.pageNo;
  110. let setData = {}
  111. // 是否可以滚动加载数据
  112. if (data.data.isLast) {
  113. setData.isScroll = false
  114. }
  115. if (data.data.parttimePosition.length != 0) {
  116. setData.list = this.data.list.concat(data.data.parttimePosition)
  117. setData.pageNo = pageNo;
  118. } else {
  119. setData.list = this.data.list;
  120. }
  121. this.setData({
  122. ...setData
  123. })
  124. })
  125. },
  126. //获取当前定位
  127. cxgps: function () {
  128. var that = this;
  129. wx.showLoading({
  130. title: 'loading',
  131. mask: true
  132. });
  133. var distance = wx.getStorageSync('distance');
  134. if (distance) {
  135. wx.hideLoading();
  136. that.setData({
  137. longitude: distance.longitude,
  138. latitude: distance.latitude
  139. })
  140. that.parttimeList();
  141. } else {
  142. wx.getLocation({
  143. success:data=>{
  144. console.log(data);
  145. wx.hideLoading();
  146. that.setData({
  147. longitude: data.longitude,
  148. latitude: data.latitude
  149. }, _ => {
  150. wx.setStorageSync('distance', data);
  151. that.fullList();
  152. })
  153. },
  154. fail:()=>{
  155. wx.hideLoading();
  156. wx.showModal({
  157. title: '授权提示',
  158. content: '当前服务需要获取您的位置信息,请确认授权',
  159. confirmText: '去授权',
  160. cancelText: '暂不授权',
  161. success: function (res) {
  162. if (res.confirm) {
  163. wx.openSetting();
  164. }
  165. }
  166. })
  167. }
  168. })
  169. }
  170. },
  171. /**
  172. * 页面相关事件处理函数--监听用户下拉动作
  173. */
  174. onPullDownRefresh: function () {
  175. this.setData({
  176. pageNo: 1, //当前分页
  177. isScroll: true, //是否可以滚动
  178. list: [],
  179. selectId: -1, //选中筛选的条件
  180. settleme: 0, //结算方式索引
  181. settle: '', //结算方式
  182. sort: '', //距离排序(1:正序;2:倒序)
  183. longitude: "",
  184. latitude: ""
  185. }, _ => {
  186. this.start();
  187. })
  188. },
  189. /**
  190. * 页面上拉触底事件的处理函数
  191. */
  192. onReachBottom: function () {
  193. var pageNo = this.data.pageNo + 1;
  194. this.setData({
  195. pageNo
  196. }, _ => {
  197. this.parttimeList();
  198. })
  199. },
  200. /**
  201. * 用户点击右上角分享
  202. */
  203. onShareAppMessage: function () {
  204. },
  205. chooseArea(e) {
  206. const { countryCode } = e.detail;
  207. this.setData({
  208. countryCode,
  209. list: [],
  210. pageNo: 1, //当前分页
  211. isScroll: true,
  212. }, _ => {
  213. this.parttimeList()
  214. })
  215. },
  216. doDistince: function (e) {
  217. const { sort, settle } = e.detail;
  218. this.setData({
  219. sort,
  220. settle, //重置
  221. pageNo: 1, //当前分页
  222. isScroll: true, //是否可以滚动
  223. list: [],
  224. showAreaList: false
  225. }, _ => {
  226. this.cxgps();
  227. })
  228. },
  229. // 结算方式
  230. doSettlemethod: function (e) {
  231. const { settle, sort } = e.detail;
  232. this.setData({
  233. settle,
  234. sort,
  235. longitude: "",
  236. latitude: "",
  237. pageNo: 1, //当前分页
  238. isScroll: true, //是否可以滚动
  239. list: [],
  240. }, _ => {
  241. this.parttimeList();
  242. })
  243. },
  244. //去详情页
  245. toDetail(e) {
  246. const {
  247. id,
  248. cate
  249. } = e.detail;
  250. wx.navigateTo({
  251. url: '../detail/index?hpPositionId=' + id + "&cate=" + cate,
  252. })
  253. },
  254. })