import { fetchHome } from '../../services/home/home'; 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, showStateMenu: false, // 新年公告弹窗 }, onShow() { this.setData({ searchVal: "", }); this.loadHomePage(); const token = wx.getStorageSync(app.config.tokenKey) if (token) { this.getShoppingCartList() } this.init(); // const stateMenu = wx.getStorageSync('stateMenu') // if (stateMenu == 'true') { // this.setData({ // showStateMenu: true // }) // wx.setStorageSync('stateMenu', 'false') // } }, closeStateMenu() { this.setData({ showStateMenu: false }) }, 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) { // this.init(); // this.registe() // } else { // 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: [] }, coverSize: { width: 400 }, 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 ? item.liveTime.substring(5) : ''; item.startTime = item.startTime ? item.startTime.substring(5) : ''; 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; item.isbuy = item.purchasedSaleMethodIdList.indexOf(item.defaultSaleMethodId) > -1 }); 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; item.isbuy = item.purchasedSaleMethodIdList.indexOf(item.defaultSaleMethodId) > -1 }); 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 // 网页类型跳转到网址复制页,因为url传参不能传 带参数的网络地址,所以此处要把网络地址里的传参摘出来,放到url里 let urlData = '' const flags = item.jsek_link.indexOf("?") if (flags > -1) { urlData = item.jsek_link.slice(flags + 1, item.jsek_link.length) } let url = '/packageBookService/pages/bookServices/linkPage/index' wx.navigateTo({ url: urlData ? url + `?path=${item.jsek_link.slice(0,flags)}` + '&' + urlData : url + `?path=${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; const token = wx.getStorageSync(app.config.tokenKey) if (token) { this.addCartFun(info) } else { if (!token) { loginInfo(app, (data) => { // 如果不是第一次登录,会执行回调 if (data) { this.addCartFun(info) this.registe() } }) } } }, // 剥离加入购物车方法登陆前后公用 addCartFun(info) { if (info.isbuy) { wx.showToast({ title: "该商品已购买", icon: 'none', duration: 1000 }) } else { 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: '电子书' }] } app.MG.store.addShoppingCart(query).then(res => { if (res) 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) { if (res.path) { let path = res.path || res.result wx.redirectTo({ url: '/' + path, }) } else { wx.redirectTo({ url: '/pages/scanResult/index?result=' + res.result, }) } } } }) }, // 监听滚动条 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() { wx.navigateTo({ url: '/pages/retrievalPage/index?searchVal=' + this.data.searchVal }) }, /** * 用户点击右上角分享 */ onShareAppMessage() {}, onShareTimeline() {} });