import { fetchHome } from '../../services/home/home';
|
import moment from 'moment'
|
import { setSessionGuid } from "../../assets/js/userAction"
|
const app = getApp()
|
Page({
|
data: {
|
backUrl: null,
|
userInfo: {},
|
tabList: [], //目录
|
pageLoading: false,
|
current: 1,//轮播图参数
|
autoplay: true, //轮播图参数
|
duration: '500',//轮播图参数
|
interval: 5000,//轮播图参数
|
navigation: { type: 'dots' },//轮播图参数
|
bannerList: [], //轮播图列表
|
specialSubjectList: [],//专题讨论
|
activeItem: 0,//精选课程默认选中
|
courseTypeList: [],//精选课程分类
|
courseList: [],
|
bookTypeList: [],//图书类型
|
activeItem1: 0,
|
booksList: [],
|
readBookList: [], //数字阅读
|
textbookList: [], //数字教材
|
rankingList: []//排行榜
|
},
|
onShow() {
|
this.getTabBar().init();
|
this.loadHomePage();
|
this.getBannerList()
|
},
|
|
onLoad(options) {
|
if (options.backUrl) {
|
let backUrl = JSON.parse(decodeURIComponent(options.backUrl));
|
if (backUrl.options) {
|
for (let key in backUrl.options) {
|
const value = backUrl.options[key]
|
backUrl.backUrl += `${key}=${value}&`
|
}
|
}
|
this.setData({
|
backUrl: backUrl.backUrl
|
})
|
}
|
this.getTestLoginInfo()
|
this.init();
|
},
|
onReachBottom() {
|
},
|
onPullDownRefresh() {
|
this.init();
|
},
|
init() {
|
this.getSubjectList();
|
this.getCourseTypeListList();
|
this.getBookTypeList();
|
this.getReadBookList();
|
this.getTextbookListList();
|
this.getRankingList()
|
},
|
// 获取测试登录时的token
|
getTestLoginInfo() {
|
const token = wx.getStorageSync(app.config.tokenKey)
|
if (!token) {
|
wx.login({
|
success: (res) => {
|
wx.getUserInfo({
|
success: (infoRes) => {
|
app.MG.identity.checkWeChatAppAccount({
|
code: res.code,
|
appCode: app.config.appRefCode,
|
encryptedData: infoRes.encryptedData,
|
iv: infoRes.iv
|
}).then(loginRes => {
|
if (!loginRes) {
|
// wx.navigateTo({
|
// url: "/pages/index/bindInfo/index?code=" + res.code,
|
// });
|
} else {
|
wx.login({
|
success: (res) => {
|
app.MG.identity.loginByWeChatAppCode({
|
code: res.code,
|
appRefCode: app.config.appRefCode,
|
platform: "weChatApp",
|
encryptedData: infoRes.encryptedData,
|
iv: infoRes.iv
|
}).then(res => {
|
if (res && res.status == "Ok") {
|
wx.setStorageSync(app.config.tokenKey, res.token);
|
setSessionGuid()
|
this.getCurrentUserInfo()
|
}
|
})
|
},
|
})
|
}
|
})
|
}
|
})
|
|
},
|
})
|
}
|
},
|
|
getCurrentUserInfo() {
|
app.MG.identity.getCurrentAppUser().then(res => {
|
console.log(res, "userInfo");
|
// 用户信息优先级:教师认证 > 微信 > 学生(注册时默认)
|
if (res) {
|
let defaultUser = {};
|
let WeChatInfo = res.infoList.find((item) => item.type === "WeChat");
|
let phoneNumber = res.secretList.find(i => i.type == 'MobilePhone')
|
if (WeChatInfo) {
|
defaultUser = {
|
nickName: WeChatInfo.name,
|
avatarUrl: WeChatInfo.icon,
|
weChatId: WeChatInfo.id
|
}
|
}
|
if (phoneNumber) {
|
defaultUser.phoneNumber = phoneNumber.credential
|
}
|
this.setData({
|
userInfo: defaultUser,
|
})
|
wx.setStorageSync(app.config.userInfoKey, JSON.stringify(this.data.userInfo));
|
}
|
if (this.data.backUrl) {
|
wx.navigateTo({
|
url: this.data.backUrl,
|
})
|
} else {
|
wx.switchTab({
|
url: '/pages/home/home'
|
})
|
}
|
|
});
|
},
|
getBannerList() {
|
const list = []
|
app.MG.resource.getItem({
|
path: 'jsek_banner\\jsek_homeBanner',
|
fields: { jsek_link: [] },
|
paging: { start: 0, size: 9 }
|
}).then(res => {
|
for (let i = 0; i < res.datas.length; i++) {
|
const item = res.datas[i]
|
list.push({
|
value: item.icon,
|
link: item.jsek_link
|
})
|
}
|
this.setData({
|
bannerList: list
|
})
|
})
|
console.log('轮播图', this.data.bannerList);
|
},
|
//搜索
|
navToSearchPage() {
|
wx.navigateTo({ url: '/pages/goods/search/index' });
|
},
|
//轮播图跳转
|
navToActivityDetail({ detail }) {
|
const data = this.data.bannerList[detail.index]
|
console.log('跳转', data.link);
|
// const { index: promotionID = 0 } = detail || {};
|
// wx.navigateTo({
|
// url: `/pages/promotion-detail/index?promotion_id=${promotionID}`,
|
// });
|
},
|
//获取目录
|
loadHomePage() {
|
wx.stopPullDownRefresh();
|
this.setData({
|
pageLoading: true,
|
});
|
fetchHome().then(({ tabList }) => {
|
this.setData({
|
tabList,
|
pageLoading: false,
|
});
|
});
|
},
|
//点击目录
|
toPages(item) {
|
let info = item.target.dataset.info
|
if (info.url) {
|
wx.navigateTo({
|
url: info.url
|
})
|
} else {
|
wx.showToast({
|
title: "建设中",
|
icon: 'none',
|
duration: 2000
|
})
|
}
|
},
|
//专题讨论
|
getSubjectList() {
|
const obj = {
|
storeInfo: "jsek_seminar",
|
path: 'jsek_homepageSeminar',
|
coverSize: {
|
width: 400
|
},
|
paging: {
|
start: 0,
|
size: 4
|
},
|
fields: {
|
liveTime: [],
|
lecturer: [],
|
startTime: [],
|
jsek_link: []
|
}
|
}
|
app.MG.store.getProductList(obj).then((res) => {
|
res.datas.forEach((item) => {
|
item.liveTime = item.liveTime ? moment(item.liveTime).format("MM-DD HH:mm:ss") : '';
|
item.startTime = item.startTime ? moment(item.startTime).format("MM-DD HH:mm:ss") : '';
|
item.price = item.price ? item.price.toFixed(2) : item.price;
|
});
|
this.setData({
|
specialSubjectList: res.datas
|
})
|
})
|
},
|
|
//精选课程分类
|
getCourseTypeListList() {
|
const data = {
|
path: 'jsek_homepageDigitalCourses',
|
filterList: [],
|
queryType: '\\',
|
searchList: [],
|
size: '20',
|
start: '0',
|
storeRefCode: app.config.digitalCourses,
|
sort: { type: 'Asc', field: 'LinkOrder' }
|
}
|
app.MG.store.getStoreChannelList(data).then((res) => {
|
if (res.datas && res.datas.length > 0) {
|
let dataList = [];
|
dataList.push(...res.datas)
|
this.setData({
|
courseTypeList: dataList,
|
activeItem: 0
|
})
|
this.getCourseList(res.datas[0])
|
}
|
})
|
},
|
//精选课程列表
|
getCourseList(item) {
|
const obj = {
|
storeInfo: "app.config.goodsStore",
|
path: item.pathList + '\\' + item.id,
|
coverSize: {
|
width: 260
|
},
|
paging: {
|
start: 0,
|
size: 4
|
},
|
fields: {
|
courseLeader: [],
|
affiliatedUnit: [],
|
publishingUnit: [],
|
classHours: []
|
}
|
}
|
app.MG.store.getProductList(obj).then((res) => {
|
res.datas.forEach((item) => {
|
item.price = item.price ? item.price.toFixed(2) : item.price;
|
});
|
this.setData({
|
courseList: res.datas
|
})
|
})
|
},
|
tabChangeHandle(item) {
|
let info = this.data.courseTypeList[item.detail.value]
|
this.getCourseList(info)
|
},
|
//图书服务分类
|
getBookTypeList() {
|
const data = {
|
path: 'jsek_homepageBookService',
|
filterList: [],
|
queryType: '\\',
|
searchList: [],
|
size: '20',
|
start: '0',
|
storeRefCode: app.config.goodsStore,
|
sort: { type: 'Asc', field: 'LinkOrder' }
|
}
|
app.MG.store.getStoreChannelList(data).then((res) => {
|
if (res.datas && res.datas.length > 0) {
|
let dataList = [];
|
dataList.push(...res.datas)
|
this.setData({
|
bookTypeList: dataList,
|
activeItem1: 0
|
})
|
this.getBooksList(dataList[0])
|
}
|
})
|
},
|
//图书服务列表
|
getBooksList(item) {
|
const obj = {
|
storeInfo: app.config.goodsStore,
|
path: item.pathList + '\\' + item.id,
|
queryType: '*',
|
coverSize: {
|
width: 150
|
},
|
paging: {
|
start: 0,
|
size: 6
|
},
|
fields: {
|
author: []
|
}
|
}
|
app.MG.store.getProductList(obj).then((res) => {
|
this.setData({
|
booksList: res.datas,
|
})
|
})
|
},
|
//图书服务
|
tabBookClick(item) {
|
let info = this.data.bookTypeList[item.detail.value]
|
this.getBooksList(info)
|
},
|
//数字阅读
|
getReadBookList() {
|
const obj = {
|
storeInfo: app.config.digitalTextbooks,
|
path: 'jsek_homepageDigitalTextbooks',
|
coverSize: {
|
width: 150
|
},
|
paging: {
|
start: 0,
|
size: 3
|
},
|
fields: {
|
author: []
|
}
|
}
|
app.MG.store.getProductList(obj).then((res) => {
|
this.setData({
|
readBookList: res.datas
|
})
|
})
|
},
|
//数字教材
|
getTextbookListList() {
|
const obj = {
|
storeInfo: app.config.digitalTextbooks,
|
path: 'jsek_homepageDigitalTextbooks',
|
coverSize: {
|
width: 150
|
},
|
paging: {
|
start: 0,
|
size: 6
|
},
|
fields: {
|
author: [],
|
}
|
}
|
app.MG.store.getProductList(obj).then((res) => {
|
this.setData({
|
textbookList: res.datas
|
})
|
})
|
},
|
//获取排行榜
|
getRankingList() {
|
const obj = {
|
storeInfo: app.config.digitalTextbooks,
|
path: 'jsek_homepageDigitalTextbooks',
|
coverSize: {
|
width: 150
|
},
|
paging: {
|
start: 0,
|
size: 6
|
},
|
fields: {
|
author: [],
|
}
|
}
|
app.MG.store.getProductList(obj).then((res) => {
|
this.setData({
|
rankingList: res.datas
|
})
|
})
|
}
|
|
});
|