index.js 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. // pages/yuezhan/search/index.js
  2. const { request, serverName } = require('../../../utils/services');
  3. const {
  4. newRequestFns,
  5. newServerName
  6. } = require('../../../utils/newServices.js');
  7. const { Toast, removeArrItem } = require('../../../utils/util.js');
  8. const { defaultImg, noExhibitionImg, noCollectionImg } = require('../../../utils/images');
  9. const app = getApp();
  10. Page({
  11. /**
  12. * 页面的初始数据
  13. */
  14. data: {
  15. testImg: '../../../imgs/testImg/fdkz.png',
  16. avatar: '../../../imgs/testImg/1.jpg',
  17. isLike: false,
  18. likeNum: 526,
  19. myCollected:[],
  20. noCollectionImg
  21. },
  22. /**
  23. * 生命周期函数--监听页面加载
  24. */
  25. onLoad: function (options) {
  26. // 检查 globalData 是否已有位置信息
  27. if (app.globalData.latitude && app.globalData.longitude) {
  28. // 使用 globalData 中的经纬度
  29. this.setData({
  30. latitude: app.globalData.latitude,
  31. longitude: app.globalData.longitude
  32. });
  33. // 处理 city 设置
  34. if (app.globalData.locationName) {
  35. app.globalData.city = app.globalData.locationName;
  36. } else {
  37. app.globalData.city = "北京";
  38. }
  39. this.getCollectedExhibitions();
  40. }
  41. // else {
  42. // // 没有位置信息,获取位置
  43. // wx.getLocation({
  44. // type: 'wgs84',
  45. // success: (res) => {
  46. // // 保存到 globalData
  47. // app.globalData.latitude = res.latitude;
  48. // app.globalData.longitude = res.longitude;
  49. // this.setData({
  50. // latitude: res.latitude||0,
  51. // longitude: res.longitude||0
  52. // })
  53. // },
  54. // complete:()=>{
  55. // this.getCollectedExhibitions()
  56. // }
  57. // })
  58. // }
  59. this.setData({
  60. serverName,
  61. defaultImg,
  62. noExhibitionImg
  63. })
  64. },
  65. tapToDetail:function(e){
  66. console.log(e);
  67. let id = e.currentTarget.dataset.id
  68. wx.navigateTo({
  69. url: `../../zl_detail/index?id=${id}`,
  70. success: function(res) {},
  71. fail: function(res) {},
  72. complete: function(res) {},
  73. })
  74. },
  75. onPullDownRefresh: function () {
  76. this.setData({
  77. myCollected: [],
  78. });
  79. this.getCollectedExhibitions()
  80. },
  81. addLike: function (e) {
  82. let { type, id, idx } = e.currentTarget.dataset;
  83. let { myCollected } = this.data;
  84. let { collectedArr, collectedChange } = app.globalData, hasItem = true;
  85. console.log('type', type)
  86. if (type==true){
  87. wx.showModal({
  88. title: '提示',
  89. content: '确定取消收藏吗?',
  90. showCancel: true,
  91. cancelText: '关闭',
  92. cancelColor: '',
  93. confirmText: '确定',
  94. confirmColor: '',
  95. success: res=> {
  96. if (res.cancel) {
  97. return;
  98. }
  99. if (res.confirm) {
  100. Toast.showToast2('loading');
  101. let loginSessionKey = wx.getStorageSync('token') || "";
  102. // if (loginSessionKey){
  103. newRequestFns['isCollect']({
  104. loginSessionKey,
  105. exhibitionId: id,
  106. type: Number(type),
  107. }, "post", res => {
  108. if (res.data.code > -1) {
  109. for (let i = 0; i < collectedArr.length; i++) {
  110. if (collectedArr[i].collectedId && id == collectedArr[i].collectedId) {
  111. console.log("true")
  112. collectedArr[i] = {
  113. collectedId: id,
  114. status: res.data.data.hasCollect,
  115. }
  116. hasItem = false;
  117. }
  118. }
  119. if (hasItem) {
  120. collectedArr.push({
  121. collectedId: id,
  122. status: res.data.data.hasCollect,
  123. })
  124. }
  125. app.globalData.collectedArr = collectedArr;
  126. app.globalData.collectedChange = true;
  127. myCollected[idx].hasCollect = res.data.data.hasCollect
  128. this.setData({
  129. myCollected: myCollected
  130. })
  131. }
  132. }, err => {
  133. }, complete => {
  134. Toast.hideLoading();
  135. this.getCollectedExhibitions()
  136. })
  137. // }
  138. console.log(this.data.myCollected)
  139. }
  140. },
  141. fail: function(res) {},
  142. complete: function(res) {},
  143. })
  144. }else{
  145. Toast.showToast2('loading');
  146. let loginSessionKey = wx.getStorageSync('token') || "";
  147. // if (loginSessionKey){
  148. newRequestFns['isCollect']({
  149. loginSessionKey,
  150. exhibitionId: id,
  151. type: Number(type),
  152. }, "post", res => {
  153. if (res.data.code > -1) {
  154. console.log("sdwdwd", myCollected[idx].hasCollect);
  155. console.log('asd', res.data.data.hasCollect)
  156. myCollected[idx].hasCollect = res.data.data.hasCollect
  157. this.setData({
  158. myCollected: myCollected
  159. })
  160. }
  161. }, err => {
  162. }, complete => {
  163. Toast.hideLoading();
  164. })
  165. // }
  166. console.log(this.data.myCollected)
  167. }
  168. },
  169. getCollectedExhibitions:function(){
  170. let loginSessionKey = wx.getStorageSync("token")||"";
  171. let { latitude: lat, longitude: lng } = this.data;
  172. newRequestFns["collectExhibitions"]({
  173. lat,
  174. lng,
  175. loginSessionKey
  176. },"",res=>{
  177. if(res.data.code>-1){
  178. let { data:myCollected} = res.data;
  179. for (let i = 0; i <myCollected.length;i++){
  180. // myCollected[i].createTime =myCollected[i].createTime.substring(5, 10)
  181. }
  182. this.setData({
  183. myCollected
  184. })
  185. console.log(myCollected)
  186. }
  187. }, err => {
  188. },
  189. complete=>{
  190. wx.stopPullDownRefresh();
  191. })
  192. },
  193. /**
  194. * 生命周期函数--监听页面初次渲染完成
  195. */
  196. onReady: function () {
  197. },
  198. /**
  199. * 生命周期函数--监听页面显示
  200. */
  201. onShow: function () {
  202. let { collectedArr, collectedChange } = app.globalData;
  203. let { myCollected } = this.data
  204. let isLogin = app.globalData.isLogin;
  205. // this.setData({
  206. // myCollected: []
  207. // });
  208. // this.getBanner();
  209. // this.getList(1);
  210. console.log('dwdwasda', isLogin)
  211. this.setData({
  212. isLogin
  213. })
  214. if (collectedChange) {
  215. for (let i = 0; i < myCollected.length; i++) {
  216. for (let j = 0; j < collectedArr.length; j++) {
  217. if (collectedArr[j].collectedId == myCollected[i].id) {
  218. myCollected[i].hasCollect = collectedArr[j].status
  219. if (myCollected[i].hasCollect) {
  220. myCollected[i].collectionsCount += 1;
  221. }
  222. else {
  223. myCollected[i].collectionsCount -= 1;
  224. myCollected = removeArrItem(myCollected, myCollected[i])
  225. }
  226. }
  227. }
  228. }
  229. this.setData({
  230. myCollected,
  231. })
  232. }
  233. },
  234. /**
  235. * 生命周期函数--监听页面隐藏
  236. */
  237. onHide: function () {
  238. },
  239. /**
  240. * 生命周期函数--监听页面卸载
  241. */
  242. onUnload: function () {
  243. },
  244. /**
  245. * 页面相关事件处理函数--监听用户下拉动作
  246. */
  247. /**
  248. * 页面上拉触底事件的处理函数
  249. */
  250. onReachBottom: function () {
  251. },
  252. /**
  253. * 用户点击右上角分享
  254. */
  255. onShareAppMessage: function () {
  256. }
  257. })