// 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 () {},
});