import { fetchHome } from '../../services/home/home'; import moment from 'moment' import { loginInfo } from '../../assets/js/login'; const app = getApp() Page({ data: { barHeight: '', navBarHeight: '', searchVal: '', isWhite: false, userInfo: {}, tabList: [], //目录 current: 1, //轮播图参数 autoplay: true, //轮播图参数 duration: '500', //轮播图参数 interval: 5000, //轮播图参数 navigation: { type: 'dots' }, //轮播图参数 bannerList: [], //轮播图列表 specialSubjectList: [], //专题讨论 activeItem: 0, //精选课程默认选中 courseTypeList: [], //精选课程分类 courseList: [], bookTypeList: [], //图书类型 activeItem1: 0, bookTypeData: {}, booksList: [], readBookList: [], //数字阅读 textbookList: [], //数字教材 rankingList: [], //排行榜 shoppingCartGetId: [], baseRefresh: { value: false } }, onShow() { this.loadHomePage(); this.getBannerList() }, onLoad() { 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.init(); }, onReachBottom() {}, onPullDownRefresh() { this.setData({ 'baseRefresh.value': true, }) this.init(); }, init() { this.getSubjectList(); this.getCourseTypeListList(); this.getBookTypeList(); this.getReadBookList(); this.getTextbookListList(); this.getRankingList(); setTimeout(() => { this.setData({ 'baseRefresh.value': false, }) }, 500); }, 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 }) }) }, loadHomePage() { fetchHome().then(({ tabList }) => { this.setData({ tabList, }); }); }, //点击目录 toPages(item) { let info = item.target.dataset.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 }, 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', 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, 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 }, 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.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) => { 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) { const { book } = e.currentTarget.dataset; wx.showToast({ title: "建设中", icon: 'none', duration: 1000 }) }, goCourseDetail(e) { const { book } = e.currentTarget.dataset; wx.showToast({ title: "建设中", icon: 'none', duration: 1000 }) }, goReadBookDetail(e) { const { book } = e.currentTarget.dataset; wx.showToast({ title: "建设中", icon: 'none', duration: 1000 }) }, goTextBookDetail(e) { const { book } = e.currentTarget.dataset; wx.showToast({ title: "建设中", icon: 'none', duration: 1000 }) }, 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; wx.showToast({ title: "建设中", icon: 'none', duration: 1000 }) return; 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") { wx.navigateTo({ url: '/packageBookService/pages/bookServices/list/index?assorName=' + this.data.bookTypeData.name }) } else { wx.showToast({ title: "建设中", icon: 'none', duration: 1000 }) } }, // 监听滚动条 onScroll(e) { this.setData({ isWhite: e.detail.scrollTop > 10 ? true : false }) }, onRetrievalPage() { wx.navigateTo({ url: '/pages/retrievalPage/index?searchVal=' + this.data.searchVal }) }, });