index.js 6.1 KB

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