// pages/homePage/index.js const $$ = require('../../utils/util'); const app = getApp(); // 热门资讯 与 视频 function getVideoAndMessageApi(param) { return $$.request({ url: 'paHotNews/listShow', type: 'get', submitData: param || {}, service: 'sys', noToken: true }); } // 调解资源 function getResourseApi(param) { return $$.request({ url: 'paCaseInfo/mediatePower', type: 'get', submitData: param || {}, service: 'mediate', noToken: true }); } // 消息提醒 function getPopupMsgApi() { return $$.request({ url: 'paCaseInfo/newsRemind', type: 'get', service: 'mediate' }); } function loginApi(submitData) { return $$.request({ url: 'paAccount/tryRegister', type: 'post', submitData, service: 'cust', noToken: true }); } function registerApi(submitData) { return $$.request({ url: 'paAccount/empower', type: 'post', submitData, service: 'cust', noToken: true }); } Page({ /** * 页面的初始数据 */ msgCheckId: null, // 已经阅读过的提示不在弹出 data: { visible: true, imgUrl: $$.url.img, agreementMsg: '', // 服务协议 popupVisible: false, banner: [`${$$.url.img}banner-1.png`, `${$$.url.img}banner-2.jpg`, `${$$.url.img}banner-3.jpg`], // 轮播图 resources: [{ icon: `${$$.url.img}case.png`, num: '0', unit: '件', title: '累计调解案件', color: '#EB4D55', type: 'case', }, { icon: `${$$.url.img}mediater.png`, num: '0', unit: '名', title: '注册调解员', color: '#D10269', type: 'mediater', }, { icon: `${$$.url.img}organizations.png`, num: '0', unit: '家', title: '入驻调解组织', color: '#02D1D1', type: 'organization', }, ], // 调解资源 video: [], // 热门视频 videoMore: false, newMessage: [], // 最新资讯 newMessageMore: false, message: [{}], // 消息通知 // 底部弹窗消息 popupMsg: [{ show: false, type: 1, // 1:实名认证提醒,2:调解中提醒,3:预约提醒,4:司法确认中提醒 title: '', subTitle: '', content: [], buttonText: '', }, ], }, // 跳转资讯链接 goSeeMessage(e) { let url = e.currentTarget.dataset.url; wx.navigateTo({ url: '../webview/index?showUrl=' + url }); }, // 校验登录 or 实名 userTest(type) { if (!app.globalData.token && (type === 'login' || type === 'all')) { $$.showModal({ content: '抱歉您未登录,是否前往登录?', success: (res) => { if (res.confirm) { wx.navigateTo({ url: '../../pages/login/index', }); } }, }); return false; } $$.hideLoading(); }, // 调解资源去看看 handleNavigateTo(e) { let type = e.currentTarget.dataset.type; if (type === 'case') { $$.showToast({ title: '功能暂未开启,敬请期待' }); } else if (type === 'register') { if ($$.userTest('all')) { wx.navigateTo({ url: '../../pages/register/index', }); } } else { if ($$.userTest('login')) { wx.navigateTo({ url: '../../pages/findAdjust/index?type=' + (type === 'mediater' ? '1' : '2'), }); } } }, // 查看更多 handleGetMore(e) { let type = e.currentTarget.dataset.type; wx.navigateTo({ url: `../../pages/homePageInfo/index?type=${type}`, }); }, // 平台协议操作 handleAgree(e) { let type = e.currentTarget.dataset.type; if (type === 'noAgree') { this.selectComponent('#tabbar-page').loginOut(); $$.loginOutClearData(); } else { // 同意协议之后退出登录后不重复弹出 wx.setStorage({ key: 'agreement', data: 1 }); } this.setData({ popupVisible: false }); }, // 跳转至我的消息 handleGoToMessageCenter() { wx.navigateTo({ url: '../../pages/messageCenter/index', }); }, // 关闭消息弹窗 handleClosePopupMsg(e) { let index = e.currentTarget.dataset.index; this.data.popupMsg[index].show = false; this.data.popupMsg[index].content?.forEach((x) => { this.msgCheckId = [...(this.msgCheckId || []), x.caseId]; }); this.setData({ popupMsg: this.data.popupMsg }); }, // 消息弹窗操作, TODO:跳转至详情页面的代码屏蔽,暂无用到,后续不用可删除 handleClickPopupMsg(e) { let value = e.currentTarget.dataset.item; // let t = e.currentTarget.dataset.t; if (e.currentTarget.dataset.type === 'more' && value.content.length === 1) { return; } this.handleClosePopupMsg(e); if (value.type === 1) { wx.navigateTo({ url: '../../pages/realNameAuthentication/index' }); return; } if (value.type === 2 || (value.type === 3 && value.content[t].meetType === '22_00020-1')) { wx.navigateTo({ url: '../../pages/myMediate/index' }); return; } if (value.type === 4 || (value.type === 3 && value.content[t].meetType === '22_00020-2')) { wx.navigateTo({ url: '../../pages/myJudicialConfirmation/index' }); return; } // let caseId = value.content[t][value.type === 2 ? 'caseId' : 'id']; // let pageType = '1'; // if (value.type === 2 || (value.type === 3 && value.content[t].meetType === '22_00020-1')) { // pageType = '1'; // 调解 // } // if (value.type === 4 || (value.type === 3 && value.content[t].meetType === '22_00020-2')) { // pageType = '2'; // 司法确认 // } }, // 获取底部弹窗消息提醒 async getPopupMsg() { const res = await getPopupMsgApi(); if (res.type) { let homePageMsgOut = []; try { let obj = wx.getStorageSync('homePageMsgOut'); if (obj.time === $$.timeFormat(new Date(), 'YYYY-MM-DD')) { homePageMsgOut = obj.value; } } catch (e) {} let meetRemind = { show: false, type: 3, title: '预约提醒', content: [], buttonText: '了解详情' }; let meetRemindVisible = false; if (res.data.meetRemind) { res.data.meetRemind.forEach((x) => { if (homePageMsgOut.includes(x.caseId)) { return; } let nowTime = $$.moment(); let startTime = $$.moment(x.orderStartTime); let diffTime = startTime.diff(nowTime, 'hours'); // 距离预约开始时间小于一个小时并且未过期的时候提醒 if (diffTime > 0 && diffTime <= 1) { meetRemind.content.push(x); meetRemindVisible = true; } }); if (meetRemindVisible) { meetRemind.show = true; } } let caseRemind = { show: false, type: 2, title: '调解中提醒', content: [], buttonText: '进入调解' }; let caseRemindVisible = false; if (res.data.caseRemind) { res.data.caseRemind.forEach((x) => { if (homePageMsgOut.includes(x.caseId)) { return; } caseRemind.content.push(x); caseRemindVisible = true; }); if (caseRemindVisible) { caseRemind.show = true; } } let judicRemind = { show: false, type: 4, title: '司法确认中提醒', content: [], buttonText: '进入司法确认' }; let judicRemindVisible = false; if (res.data.judicRemind) { res.data.judicRemind.forEach((x) => { if (homePageMsgOut.includes(x.caseId)) { return; } judicRemind.content.push(x); judicRemindVisible = true; }); if (judicRemindVisible) { judicRemind.show = true; } } this.msgCheckId = homePageMsgOut; this.setData({ popupMsg: [meetRemind, caseRemind, judicRemind] }); } }, // 获取首页视频资讯数据 async getVideoAndMessage(param) { const res = await getVideoAndMessageApi(param); if (res.type) { let hotVideoList = res.data.hotVideoList || []; let hotNewsList = res.data.hotNewsList || []; wx.setStorage({ key: 'homePageNewMsgTime', data: $$.timeFormat(new Date(), 'YYYY-MM-DD HH:mm:ss'), }); this.setData({ video: hotVideoList.filter((item, index) => index < 2), videoMore: hotVideoList.length > 2 ? true : false, newMessage: hotNewsList.filter((item, index) => index < 2), newMessageMore: hotNewsList.length > 2 ? true : false, }); } }, // 获取首页调解资源数量 async getResourse(param) { const res = await getResourseApi(param); let resources = { ...this.data.resources }; if (res.type) { resources[0].num = res.data.caseNum || 0; //累计案件 resources[1].num = res.data.mediatorNum || 0; //调解员 resources[2].num = res.data.unitNum || 0; //调解组织 this.setData({ resources }); } }, // 获取服务协议 async getAgreement() { const res = await $$.commonRequest({ url: `${$$.url.txt}agree.txt`, type: 'get' }); if (res) { this.data.popupVisible = true; this.setData({ popupVisible: true, agreementMsg: `
${res || '-'}` }); } }, // getLogin(formData) { // $$.showLoading(); // wx.login({ // async success(res) { // const submitData = { // ...formData, // code: res.code // } // const res1 = await getjumpApi(submitData) // $$.hideLoading(); // if (res1.resp_code === "000000000000") { // wx.setStorage({ // key: 'userInfo', // data: res1.data // }); // app.globalData.token = res1.data.token; // $$.showToast({ // title: '登录成功', // icon: 'success' // }); // await $$.sleep(); // wx.reLaunch({ // url: '../../pages/homePage/index', // }); // } else { // $$.showModal({ // title: '提示', // content: '您尚未注册,是否前往注册?', // cancelText: '取消', // confirmText: '前往', // success: (res) => { // if (res.confirm) { // wx.navigateTo({ // url: '../../pages/realNameAuthentication/index?backNum=2', // }); // } else { // wx.navigateBack({ // delta: 1, // }); // } // }, // }); // } // } // }) // }, async dd() { $$.showLoading(); wx.login({ async success(res) { if (res.code) { const accountInfo = wx.getAccountInfoSync(); const submitData = { appid: accountInfo.miniProgram.appId, code: res.code, } const res1 = await loginApi(submitData); if (res1.type) { console.log(res1.data, 'res1111') if (res1.data.state === '1') { $$.hideLoading(); console.log(res1, 'res1'); wx.setStorage({ key: 'userInfo', data: res1.data }); app.globalData.token = res1.data.token; $$.showToast({ title: '登录成功', icon: 'success' }); await $$.sleep(); wx.reLaunch({ url: '../../pages/homePage/index', }); } else { $$.hideLoading(); app.globalData.access_token = wx.getStorageSync('access_token'); $$.showModal({ title: '提示', content: '您尚未注册,是否前往注册?', cancelText: '取消', confirmText: '前往', success: (res) => { if (res.confirm) { $$.showLoading(); wx.getUserProfile({ desc: '完善用户信息', complete(res) { if (res.errMsg === 'getUserProfile:ok') { wx.login({ async success(res2) { if (res2.code) { const accountInfo = wx.getAccountInfoSync(); const submitData = { appid: accountInfo.miniProgram.appId, code: res2.code, avatar: res?.userInfo.avatarUrl, encryptedData: res.encryptedData, ivStr: res.iv, }; const res3 = await registerApi(submitData); $$.hideLoading(); if (res3.type) { wx.setStorage({ key: 'userInfo', data: res3.data }); app.globalData.token = res3.data.token; $$.showToast({ title: '登录成功', icon: 'success' }); await $$.sleep(); wx.reLaunch({ url: '../../pages/homePage/index', }); } } else { $$.hideLoading(); $$.showToast('登录失败,请稍后重试'); } }, }); } else { $$.hideLoading(); $$.showToast({ title: '抱歉!授权失败' }); } }, }); // wx.navigateTo({ // url: '../../pages/login/index', // }); } else { wx.navigateBack({ delta: 1, }); } }, }); } } // app.globalData.access_token = wx.getStorageSync('access_token'); // console.log(res, 'res') // console.log(app.globalData.access_token, 'app.globalData.access_token') // $$.showModal({ // title: '提示', // content: '您尚未注册,是否前往注册?', // cancelText: '取消', // confirmText: '前往', // success: (res) => { // if (res.confirm) { // wx.navigateTo({ // url: '../../pages/login/index', // }); // } else { // wx.navigateBack({ // delta: 1, // }); // } // }, // }); // const accountInfo = wx.getAccountInfoSync(); // const submitData = { // appid: accountInfo.miniProgram.appId, // code: res.code, // } // app.globalData.access_token = wx.getStorageSync('access_token'); // const res1 = await loginApi(submitData); // console.log(res1, 'res1') // $$.hideLoading(); // console.log(res1, 'res1'); // if (res1.type) { // wx.setStorage({ // key: 'userInfo', // data: res1.data // }); // app.globalData.token = res1.data.token; // $$.showToast({ // title: '登录成功', // icon: 'success' // }); // await $$.sleep(); // wx.reLaunch({ // url: '../../pages/homePage/index', // }); // } } else { $$.hideLoading(); $$.showToast('登录失败,请稍后重试'); } } }) }, aa() { wx.navigateTo({ url: '../../pages/homePage/index?access_token=2', }); }, cc() { wx.navigateTo({ url: '../../pages/realNameAuthentication/index', }); }, bb() { wx.request({ url: 'https://xcx.pinganbaiyun.cn/p_060_cs_intf/api_001/sv_002_get_paby_login_info', //仅为示例,并非真实的接口地址 data: { "access_token": "测试token", "app_id": "测试", "secret": "测试" }, method: 'post', success(res) { console.log(res.data, '平安白云') } }) }, // async handleGetUserInfo() { // $$.showLoading(); // wx.getUserProfile({ // desc: '完善用户信息', // complete(res) { // if (res.errMsg === 'getUserProfile:ok') { // wx.login({ // async success(res2) { // if (res2.code) { // const accountInfo = wx.getAccountInfoSync(); // const submitData = { // appid: accountInfo.miniProgram.appId, // code: res2.code, // avatar: res?.userInfo.avatarUrl, // encryptedData: res.encryptedData, // ivStr: res.iv, // }; // const res3 = await loginApi(submitData); // $$.hideLoading(); // if (res3.type) { // wx.setStorage({ // key: 'userInfo', // data: res3.data // }); // app.globalData.token = res3.data.token; // $$.showToast({ // title: '登录成功', // icon: 'success' // }); // await $$.sleep(); // wx.reLaunch({ // url: '../../pages/homePage/index', // }); // } // } else { // $$.hideLoading(); // $$.showToast('登录失败,请稍后重试'); // } // }, // }); // } else { // $$.hideLoading(); // $$.showToast({ // title: '抱歉!授权失败' // }); // } // }, // }); // }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { // const formData = { // access_token: options.access_token, // appid: options.appid, // secret: options.secret // // } // this.dd(); // this.handleGetUserInfo() // 当登录后返回时弹出协议 let agreement = wx.getStorageSync('agreement'); if (!agreement && app.globalData.token) this.getAgreement(); }, onShow(options) { console.log(options,'options') if (options.extraData.access_token && !app.globalData.token) { wx.setStorage({ key: 'access_token', data: options.extraData.access_token }); this.dd(); $$.showToast({ title: '已监测到平安白云传入的access_token', icon: 'success' }); } let appid = wx.getAccountInfoSync().miniProgram.appId; this.getResourse({ appid }); let that = this; wx.getStorage({ key: 'homePageNewMsgTime', complete: (res) => { if (that.data.video.length === 0 || that.data.newMessage.length == 0) { this.getVideoAndMessage({ appid }); return; } if (res.data && $$.moment().diff($$.moment(res.data), 'minute') > 60) { this.getVideoAndMessage({ appid }); } }, }); // 获取弹窗信息提醒 if (app.globalData.token) { if (!$$.userTest('realName', 'bottom')) { this.setData({ popupMsg: [{ show: true, type: 1, title: '实名认证提醒', subTitle: '您尚未通过实名认证,根据调解实名制规定,建议您尽快前往认证。', buttonText: '前往认证', }, ], }); return; } this.getPopupMsg(); } }, onHide() { if (!!this.msgCheckId) { wx.setStorage({ key: 'homePageMsgOut', data: { time: $$.timeFormat(new Date(), 'YYYY-MM-DD'), value: this.msgCheckId, }, }); } }, /** * 用户点击右上角分享 */ onShareAppMessage: function () {}, });