// pages/index/components/listDetails/Details.js const app = getApp() const $request = require('../../../../utils/request.js'); const $util = require('../../../../utils/util.js'); Page({ /** * 页面的初始数据 */ data: { // 页面Loading pageLoading: true, // 路由接受的参数 currentData: {}, // 感兴趣的需求---- // item行加载 itemLoading: false, // 数据是否加载完成 isFinished: false, listData: [], page: 1, size: 10, total: 0, // 是否加载数据,true加载,false不加载 onRefresh: true, currentIndex: -1, // 当前登录器用户登录ID customerId: null, businessCommunicationDemandId: "", // 热门加载loading hotLoading: false, }, /** * 生命周期函数--监听页面加载 */ onLoad(option) { this.setData({ businessCommunicationDemandId: option.businessCommunicationDemandId }) }, onShow() { this.setData({ pageLoading: true, }) const businessCommunicationCustomer = wx.getStorageSync('businessCommunicationCustomer') || null; if (businessCommunicationCustomer) { this.setData({ customerId: businessCommunicationCustomer.customerId }) } // 获取当前数据 this.getCurrentData(); // 设置当前访问量 this.setDemandCollect(); }, setDemandCollect() { let businessCommunicationDemandId = this.data.businessCommunicationDemandId; $request.post('/statisticsBusinessCommunicationDemand/saveDemandCollect.action', { businessCommunicationDemandId } ).then(res => { }).catch(err => { console.log(err) }) $request.post('/statisticsBusinessCommunicationDemand/demandPageView.action', { businessCommunicationDemandId, customerId: this.data.customerId } ).then(res => { }).catch(err => { console.log(err) }) }, // 热门详情点击 goDetails(e) { this.setData({ currentData: null, type: [], pageLoading: true, listData: [], page: 1, onRefresh: true, isCollect: false, businessCommunicationDemandId: e.detail }) this.getCurrentData(); wx.pageScrollTo({ scrollTop: 0, }); }, getCurrentData() { let { businessCommunicationDemandId, customerId } = this.data; let paramCustomerId = customerId ? customerId * 1 : null; console.log(paramCustomerId, 'paramCustomerId') $request.get('/businessCommunicationDemand/getDemandByDemandId.action', { demandId: businessCommunicationDemandId, customerId: paramCustomerId } ).then(res => { if (res.status == 0) { let listDetail = res.data.demandByDemandId; listDetail.createdOn = $util.formatTime(new Date(listDetail.createdOn), true); listDetail.createdOn = listDetail.createdOn.replaceAll('/', '-'); if (typeof listDetail.type == 'string') { listDetail.type = listDetail.type.split(','); } this.setData({ currentData: listDetail, type: listDetail.type, pageLoading: false, isCollect: res.data.booleanIsCollect == 0 ? false : true, }) if (this.data.currentData.customerId != this.data.userCustomerId) { this.setData({ hotLoading: true, }) this.getListData(); } } }).catch(err => { console.log(err, 'error appletLogin') }) }, // 切换收藏 changeCollect() { let { currentData, customerId, isCollect } = this.data; if (!customerId) { app.goLogin(); return } let url = ""; let msg = ""; // 如果已收藏就取消收藏 else 反之 if (isCollect) { url = "/businessCommunicationCollect/deleteCollect.action", msg = "取消收藏成功" } else { url = "/businessCommunicationCollect/saveCollect.action", msg = "收藏成功" } wx.showLoading({ title: '操作中...', mask: true }) $request.post(url, { customerId, businessCommunicationDemandId: currentData.businessCommunicationDemandId } ).then(res => { wx.hideLoading() if (res.status == 0) { this.setData({ isCollect: !isCollect }) wx.showToast({ title: msg, icon: 'success', duration: 2000 }) } }).catch(err => { console.log(error, 'error appletLogin') }) }, // 获取list数据 getListData() { let { page, size, type, currentData } = this.data; if (typeof type == 'object') { type = type.join(','); } $request.get('/businessCommunicationDemand/getDemandByKeywordOrType.action', { page, size, type, isInterest: 1, demandId: currentData.businessCommunicationDemandId } ).then(res => { let tempListData = this.data.listData; if (res.status == 0) { let datas = res.data; // 先push数据 tempListData.push(...datas.demandList); tempListData.forEach(el => { el.createdOn = $util.formatTime(new Date(el.createdOn), true); el.createdOn = el.createdOn.replaceAll('/', '-'); if (typeof el.type == 'string') { el.type = el.type.split(','); } }) // 设置总数 this.setData({ listData: tempListData, total: res.data.total, }) // 如果数据大于了返回的总数 if (tempListData.length >= this.data.total) { // 停止累加数据 this.setData({ onRefresh: false, itemLoading: false, isFinished: true, }) } else { this.setData({ onRefresh: true, itemLoading: false, isFinished: false, page: page + 1 }) } } this.setData({ hotLoading: false, }) }).catch(error => { console.log(error, 'error appletLogin') this.setData({ hotLoading: false, }) }) }, /* * 页面上拉触底事件的处理函数 */ onReachBottom() { if (this.data.onRefresh) { this.setData({ itemLoading: true }) this.getListData(); } }, /** * 用户点击右上角分享 */ onShareAppMessage() { return { title: "发现了一个适合你的需求!推荐你一起来关注~", imageUrl: '/images/home/ShareApp-details.png', path: 'pages/index/components/listDetails/Details?businessCommunicationDemandId=' + this.data.businessCommunicationDemandId } }, })