import {
|
fetchHome
|
} from '../../services/home/home';
|
import moment from 'moment'
|
import {
|
loginInfo
|
} from '../../assets/js/login';
|
const app = getApp()
|
Page({
|
data: {
|
barHeight: '',
|
navBarHeight: '',
|
searchVal: '',
|
scoll: false,
|
isWhite: false,
|
userInfo: {},
|
tabList: [], //目录
|
current: 1, //轮播图参数
|
autoplay: true, //轮播图参数
|
duration: '500', //轮播图参数
|
interval: 5000, //轮播图参数
|
navigation: {
|
type: 'dots'
|
}, //轮播图参数
|
bannerList: [], //轮播图列表
|
specialSubjectList: [], //专题讨论
|
activeItem: 0, //精选课程默认选中
|
courseTypeList: [], //精选课程分类
|
courseList: [],
|
courseTypeActive: [],
|
bookTypeList: [], //图书类型
|
activeItem1: 0,
|
bookTypeData: {},
|
booksList: [],
|
readBookList: [], //数字阅读
|
textbookList: [], //数字教材
|
rankingList: [], //排行榜
|
shoppingCartGetId: [],
|
baseRefresh: {
|
value: false
|
},
|
loading: true
|
},
|
onShow() {
|
this.setData({
|
searchVal: "",
|
});
|
console.log(this.data.searchVal)
|
this.loadHomePage();
|
},
|
|
onLoad() {
|
this.getBannerList()
|
const systInfo = wx.getSystemInfoSync();
|
const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
|
const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
|
this.setData({
|
barHeight: systInfo.statusBarHeight,
|
navBarHeight: navBarHeight,
|
});
|
|
// 首页测试登录功能,后续注释
|
// 检查登录状态
|
const token = wx.getStorageSync(app.config.tokenKey)
|
if (!token) {
|
loginInfo(app, (data) => {
|
// 如果不是第一次登录,会执行回调
|
if (data) {
|
// 登录成功,自动记录token和用户信息,并返回true
|
} else {
|
// 出现错误,返回false
|
}
|
})
|
} else {
|
// 如果是第一次登录,会跳转至绑定用户信息页面,填写完用户信息后进行登录并储存token和用户信息,结束后跳转回当前页面(携带页面参数)
|
}
|
this.registe()
|
this.init();
|
},
|
onReachBottom() {},
|
onPullDownRefresh() {
|
this.setData({
|
'baseRefresh.value': true,
|
isWhite: false
|
})
|
this.getBannerList();
|
this.init();
|
},
|
init() {
|
this.getSubjectList();
|
this.getCourseTypeListList();
|
this.getBookTypeList();
|
this.getReadBookList();
|
this.getTextbookListList();
|
this.getRankingList();
|
|
setTimeout(() => {
|
this.setData({
|
'baseRefresh.value': false,
|
})
|
}, 500);
|
},
|
|
registe() {
|
app.MG.app.creatUserBehavior({
|
refCode: "sign"
|
}).then(res => {});
|
},
|
|
getBannerList() {
|
const list = []
|
app.MG.resource.getItem({
|
path: 'jsek_banner\\jsek_homeBannerApplet',
|
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,
|
loading: false
|
})
|
})
|
},
|
navToActivityDetail(e) {
|
let {
|
info
|
} = e.currentTarget.dataset
|
console.log(info)
|
if (info.link) {
|
wx.navigateTo({
|
url: info.link,
|
});
|
}
|
},
|
|
loadHomePage() {
|
fetchHome().then(({
|
tabList
|
}) => {
|
this.setData({
|
tabList,
|
});
|
});
|
},
|
//点击目录
|
toPages(item) {
|
let info = item.target.dataset.info
|
console.log(info);
|
if (info.url) {
|
if (info.text == "图书服务") {
|
wx.switchTab({
|
url: info.url
|
})
|
} else {
|
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
|
},
|
filterList: [{
|
value: 'Normal',
|
field: 'state'
|
}],
|
fields: {
|
liveTime: [],
|
lecturer: [],
|
startTime: [],
|
jsek_link: [],
|
position: []
|
}
|
}
|
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',
|
queryType: '\\',
|
searchList: [],
|
size: '20',
|
start: '0',
|
storeRefCode: app.config.digitalCourses,
|
sort: {
|
type: 'Asc',
|
field: 'LinkOrder'
|
},
|
filterList: [{
|
value: 'Normal',
|
field: 'state'
|
}]
|
}
|
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: {
|
// height: 205
|
// },
|
paging: {
|
start: 0,
|
size: 4
|
},
|
filterList: [{
|
value: 'Normal',
|
field: 'state'
|
}],
|
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.setData({
|
courseList: [],
|
courseTypeActive: item.detail.value
|
})
|
this.getCourseList(info)
|
},
|
//图书服务分类
|
getBookTypeList() {
|
const data = {
|
path: 'jsek_homepageBookService',
|
filterList: [{
|
value: 'Normal',
|
field: 'state'
|
}],
|
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,
|
bookTypeData: dataList[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
|
},
|
filterList: [{
|
value: 'Normal',
|
field: 'state'
|
}],
|
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.setData({
|
bookTypeData: info,
|
})
|
this.getBooksList(info)
|
},
|
//数字阅读
|
getReadBookList() {
|
const obj = {
|
storeInfo: app.config.digitalRead,
|
path: 'jsek_homepageDigitalReading',
|
coverSize: {
|
width: 150
|
},
|
paging: {
|
start: 0,
|
size: 3
|
},
|
filterList: [{
|
value: 'Normal',
|
field: 'state'
|
}],
|
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
|
},
|
filterList: [{
|
value: 'Normal',
|
field: 'state'
|
}],
|
fields: {
|
author: [],
|
}
|
}
|
app.MG.store.getProductList(obj).then((res) => {
|
res.datas.forEach((item) => {
|
item.price = item.price ? item.price.toFixed(2) : item.price;
|
});
|
this.setData({
|
textbookList: res.datas
|
})
|
})
|
},
|
//获取排行榜
|
getRankingList() {
|
const obj = {
|
storeInfo: app.config.goodsStore,
|
path: '*',
|
queryType: '*',
|
coverSize: {
|
width: 150
|
},
|
paging: {
|
start: 0,
|
size: 10
|
},
|
fields: {
|
author: [],
|
},
|
filterList: [{
|
value: 'Normal',
|
field: 'state'
|
}],
|
sort: {
|
Name: 'Asc',
|
BaseType: ''
|
|
}
|
}
|
app.MG.store.getProductList(obj).then((res) => {
|
this.setData({
|
rankingList: res.datas
|
})
|
})
|
},
|
// 跳转图书详情
|
goDetail(e) {
|
const {
|
book
|
} = e.currentTarget.dataset;
|
wx.navigateTo({
|
url: `/packageBookService/pages/bookServices/detail/index?id=${book.id}&name=${book.name}`,
|
});
|
},
|
goSubjectDetail(e) {
|
// return wx.showToast({
|
// title: "建设中",
|
// icon: 'none',
|
// duration: 1000
|
// })
|
const item = e.currentTarget.dataset.book
|
console.log(item);
|
wx.navigateTo({
|
url: '/pages/specialDiscussion/webView/index?link=' + item.jsek_link
|
});
|
},
|
goCourseDetail(e) {
|
// return wx.showToast({
|
// title: "建设中",
|
// icon: 'none',
|
// duration: 1000
|
// })
|
|
const {
|
book
|
} = e.currentTarget.dataset;
|
console.log(book);
|
wx.navigateTo({
|
url: '/pages/digitalCourses/digitalCoursesDetails/index?id=' + book.id + '&path=' + book.idPath,
|
});
|
},
|
goReadBookDetail(e) {
|
const {
|
book
|
} = e.currentTarget.dataset;
|
wx.navigateTo({
|
url: '/pages/home/digitalRead/index?productId=' + book.id,
|
});
|
},
|
goTextBookDetail(e) {
|
const {
|
book
|
} = e.currentTarget.dataset;
|
wx.navigateTo({
|
url: '/pages/digitalTextbooks/digitalTextbooksDetails/index?id=' + book.id,
|
});
|
},
|
|
|
getShoppingCartList() {
|
let query = {
|
start: 0,
|
size: 999,
|
filterList: [],
|
searchList: []
|
}
|
app.MG.store.getShoppingCartProductList(query).then((res) => {
|
let idList = [];
|
res.datas.forEach((item) => {
|
idList.push(item.saleMethod.id)
|
})
|
this.setData({
|
shoppingCartGetId: idList
|
})
|
})
|
},
|
addCart(e) {
|
const {
|
info
|
} = e.currentTarget.dataset;
|
if (wx.getStorageSync(app.config.tokenKey)) {
|
let query = {
|
start: 0,
|
size: 999,
|
filterList: [],
|
searchList: []
|
}
|
try {
|
if (
|
this.data.shoppingCartGetId.includes(
|
info.defaultSaleMethodId
|
)
|
) {
|
wx.showToast({
|
title: "该书已在购物车,请勿重复添加空",
|
icon: 'none',
|
duration: 1000
|
})
|
} else {
|
let query = {
|
requests: [{
|
saleMethodId: info.defaultSaleMethodId,
|
storeEventId: null,
|
agentCode: '电子书'
|
}]
|
}
|
const addRes = app.MG.store.addShoppingCart(query)
|
if (addRes) {
|
wx.showToast({
|
title: "添加成功",
|
icon: 'success',
|
duration: 1000
|
})
|
}
|
this.getShoppingCartList()
|
}
|
} catch (error) {
|
console.error('出错了:', error)
|
}
|
}
|
|
},
|
onMoreGuide(e) {
|
let type = e.currentTarget.dataset.info
|
if (type == "tushufuwu") {
|
let assortCode = "";
|
if (this.data.bookTypeData.name == '高等教育') {
|
assortCode = "jsek_higherEducation"
|
}
|
if (this.data.bookTypeData.name == '职业教育') {
|
assortCode = "jsek_vocationalEducation"
|
}
|
if (this.data.bookTypeData.name == '教师教育') {
|
assortCode = "jsek_teacherEducation"
|
}
|
if (this.data.bookTypeData.name == '少儿教育') {
|
assortCode = "jsek_childrenEducation"
|
}
|
if (this.data.bookTypeData.name == '考试培训') {
|
assortCode = "jsek_examTraining"
|
}
|
if (this.data.bookTypeData.name == '主题出版') {
|
assortCode = "jsek_themePublishing"
|
}
|
if (this.data.bookTypeData.name == '学术著作') {
|
assortCode = "jsek_academicWorks"
|
}
|
if (this.data.bookTypeData.name == '大众读物') {
|
assortCode = "jsek_popularReadingMaterials"
|
}
|
wx.navigateTo({
|
url: '/packageBookService/pages/bookServices/list/index?assorName=' + this.data.bookTypeData.name + '&assortCode=' + assortCode
|
})
|
} else if (type == "shuziyuedu") {
|
wx.navigateTo({
|
url: '/pages/home/digitalRead/index'
|
})
|
} else if (type == "zhuantitaolun") {
|
// return wx.showToast({
|
// title: "建设中",
|
// icon: 'none',
|
// duration: 1000
|
// })
|
wx.navigateTo({
|
url: '/pages/specialDiscussion/index'
|
})
|
|
} else if (type == "jingxuankecheng") {
|
// return wx.showToast({
|
// title: "建设中",
|
// icon: 'none',
|
// duration: 1000
|
// })
|
wx.navigateTo({
|
url: '/pages/digitalCourses/index?courseTypeActive=' + this.data.courseTypeActive
|
})
|
} else if (type == "shuzijiaocai") {
|
wx.navigateTo({
|
url: '/pages/digitalTextbooks/index'
|
})
|
} else {
|
wx.showToast({
|
title: "建设中",
|
icon: 'none',
|
duration: 1000
|
})
|
}
|
|
},
|
|
// 扫一扫
|
onIconScanTap() {
|
wx.scanCode({
|
success(res) {
|
console.log(res);
|
if (res.errMsg == "scanCode:ok" && res.path || res.result) {
|
let path = res.path || res.result
|
wx.redirectTo({
|
url: '/' + path,
|
})
|
}
|
}
|
})
|
},
|
|
|
|
// 监听滚动条
|
onScroll(e) {
|
if (this.data.scoll) {
|
if (e.detail.scrollTop < 20) {
|
this.data.scoll = false
|
// 避免频繁调用 setData
|
if (this.data.isWhite)
|
this.isChange(false);
|
}
|
} else {
|
if (e.detail.scrollTop > 20) {
|
this.data.scoll = true
|
// 避免频繁调用 setData
|
if (!this.data.isWhite)
|
this.isChange(true);
|
}
|
}
|
},
|
isChange(data) {
|
this.setData({
|
isWhite: data
|
})
|
},
|
|
onRetrievalPage() {
|
|
// 首页测试登录功能,后续注释
|
// 检查登录状态
|
const token = wx.getStorageSync(app.config.tokenKey)
|
if (!token) {
|
loginInfo(app, (data) => {
|
// 如果不是第一次登录,会执行回调
|
if (data) {
|
wx.navigateTo({
|
url: '/pages/retrievalPage/index?searchVal=' + this.data.searchVal
|
})
|
} else {
|
// 出现错误,返回false
|
}
|
})
|
} else {
|
wx.navigateTo({
|
url: '/pages/retrievalPage/index?searchVal=' + this.data.searchVal
|
})
|
}
|
|
|
},
|
|
/**
|
* 用户点击右上角分享
|
*/
|
onShareAppMessage() {},
|
onShareTimeline() {}
|
});
|