YM
2024-03-26 1c64c10f8dd88018c0d30de79237f3128173f118
pages/home/home.js
@@ -1,13 +1,16 @@
import { fetchHome } from '../../services/home/home';
import moment from 'moment'
import { setSessionGuid } from "../../assets/js/userAction"
import { checkLoginInfo } from '../../assets/js/login';
const app = getApp()
Page({
  data: {
    barHeight: '',
    navBarHeight: '',
    searchVal: '',
    isWhite: false,
    backUrl: null,
    userInfo: {},
    tabList: [], //目录
    pageLoading: false,
    current: 1,//轮播图参数
    autoplay: true, //轮播图参数
    duration: '500',//轮播图参数
@@ -23,15 +26,26 @@
    booksList: [],
    readBookList: [], //数字阅读
    textbookList: [], //数字教材
    rankingList: []//排行榜
    rankingList: [],//排行榜
    shoppingCartGetId: [],
    baseRefresh: {
      value: false
    }
  },
  onShow() {
    this.getTabBar().init();
    this.loadHomePage();
    this.getBannerList()
  },
  onLoad(options) {
    const systInfo = wx.getSystemInfoSync();
    const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
    this.setData({
      barHeight: systInfo.statusBarHeight,
      navBarHeight: navBarHeight,
    });
    if (options.backUrl) {
      let backUrl = JSON.parse(decodeURIComponent(options.backUrl));
      if (backUrl.options) {
@@ -44,12 +58,21 @@
        backUrl: backUrl.backUrl
      })
    }
    this.getTestLoginInfo()
    // checkLoginInfo(app, (data) => {
    //   if (data) {
    //     this.getCurrentUserInfo();
    //   }
    // })
    this.init();
  },
  onReachBottom() {
  },
  onPullDownRefresh() {
    this.setData({
      'baseRefresh.value': true,
    })
    this.init();
  },
  init() {
@@ -58,52 +81,13 @@
    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()
                        }
                      })
                    },
                  })
                }
              })
            }
          })
    this.getRankingList();
        },
    setTimeout(() => {
      this.setData({
        'baseRefresh.value': false,
      })
    }
    }, 500);
  },
  getCurrentUserInfo() {
@@ -138,13 +122,12 @@
          url: '/pages/home/home'
        })
      }
    });
  },
  getBannerList() {
    const list = []
    app.MG.resource.getItem({
      path: 'jsek_banner\\jsek_homeBanner',
      path: 'jsek_banner\\jsek_homeBannerApplet',
      fields: { jsek_link: [] },
      paging: { start: 0, size: 9 }
    }).then(res => {
@@ -161,29 +144,12 @@
    })
    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,
      });
    });
  },
@@ -191,9 +157,15 @@
  toPages(item) {
    let info = item.target.dataset.info
    if (info.url) {
      wx.navigateTo({
        url: info.url
      })
      if (info.text == "图书服务") {
        wx.switchTab({
          url: info.url
        })
      } else {
        wx.navigateTo({
          url: info.url
        })
      }
    } else {
      wx.showToast({
        title: "建设中",
@@ -218,7 +190,8 @@
        liveTime: [],
        lecturer: [],
        startTime: [],
        jsek_link: []
        jsek_link: [],
        position: []
      }
    }
    app.MG.store.getProductList(obj).then((res) => {
@@ -232,6 +205,7 @@
      })
    })
  },
  //精选课程分类
  getCourseTypeListList() {
@@ -339,6 +313,7 @@
  //图书服务
  tabBookClick(item) {
    let info = this.data.bookTypeList[item.detail.value]
    console.log(info, 123)
    this.getBooksList(info)
  },
  //数字阅读
@@ -380,6 +355,9 @@
      }
    }
    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
      })
@@ -388,17 +366,29 @@
  //获取排行榜
  getRankingList() {
    const obj = {
      storeInfo: app.config.digitalTextbooks,
      path: 'jsek_homepageDigitalTextbooks',
      storeInfo: app.config.goodsStore,
      path: '*',
      queryType: '*',
      coverSize: {
        width: 150
      },
      paging: {
        start: 0,
        size: 6
        size: 10
      },
      fields: {
        author: [],
      },
      filterList: [
        {
          value: 'Normal',
          field: 'state'
        }
      ],
      sort: {
        Name: 'Asc',
        BaseType: ''
      }
    }
    app.MG.store.getProductList(obj).then((res) => {
@@ -406,6 +396,140 @@
        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: 2000
    })
  },
  goCourseDetail(e) {
    const { book } = e.currentTarget.dataset;
    wx.showToast({
      title: "建设中",
      icon: 'none',
      duration: 2000
    })
  },
  goReadBookDetail(e) {
    const { book } = e.currentTarget.dataset;
    wx.showToast({
      title: "建设中",
      icon: 'none',
      duration: 2000
    })
  },
  goTextBookDetail(e) {
    const { book } = e.currentTarget.dataset;
    wx.showToast({
      title: "建设中",
      icon: 'none',
      duration: 2000
    })
  },
  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;
    console.log(info)
    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
    console.log(e, 1)
    if (type == "tushufuwu") {
      wx.navigateTo({
        url: '/packageBookService/pages/bookServices/list/index'
      })
    } else {
      wx.showToast({
        title: "建设中",
        icon: 'none',
        duration: 2000
      })
    }
  },
  // 监听滚动条
  onScroll(e) {
    this.setData({
      isWhite: e.detail.scrollTop > 10 ? true : false
    })
  },
  onRetrievalPage() {
    console.log(this.data.searchVal);
    wx.navigateTo({
      url: '/pages/retrievalPage/index?searchVal=' + this.data.searchVal
    })
  },
});