bug
闫增涛
2024-09-09 606018855ad2d5ad55f527b76e9652fdb58ed982
pages/home/home.js
@@ -1,44 +1,56 @@
import { fetchHome } from '../../services/home/home';
import {
  fetchHome
} from '../../services/home/home';
import moment from 'moment'
import { checkLoginInfo } from '../../assets/js/login';
import {
  loginInfo
} from '../../assets/js/login';
const app = getApp()
Page({
  data: {
    barHeight: '',
    navBarHeight: '',
    searchVal: '',
    scoll: false,
    isWhite: false,
    backUrl: null,
    userInfo: {},
    tabList: [], //目录
    current: 1,//轮播图参数
    current: 1, //轮播图参数
    autoplay: true, //轮播图参数
    duration: '500',//轮播图参数
    interval: 5000,//轮播图参数
    navigation: { type: 'dots' },//轮播图参数
    duration: '500', //轮播图参数
    interval: 5000, //轮播图参数
    navigation: {
      type: 'dots'
    }, //轮播图参数
    bannerList: [], //轮播图列表
    specialSubjectList: [],//专题讨论
    activeItem: 0,//精选课程默认选中
    courseTypeList: [],//精选课程分类
    specialSubjectList: [], //专题讨论
    activeItem: 0, //精选课程默认选中
    courseTypeList: [], //精选课程分类
    courseList: [],
    bookTypeList: [],//图书类型
    courseTypeActive: [],
    bookTypeList: [], //图书类型
    activeItem1: 0,
    bookTypeData: {},
    booksList: [],
    readBookList: [], //数字阅读
    textbookList: [], //数字教材
    rankingList: [],//排行榜
    rankingList: [], //排行榜
    shoppingCartGetId: [],
    baseRefresh: {
      value: false
    }
    },
    loading: true
  },
  onShow() {
    this.setData({
      searchVal: "",
    });
    console.log(this.data.searchVal)
    this.loadHomePage();
    this.getBannerList()
  },
  onLoad(options) {
  onLoad() {
    this.getBannerList()
    const systInfo = wx.getSystemInfoSync();
    const menu = wx.getMenuButtonBoundingClientRect(); // 胶囊信息
    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 导航栏高度
@@ -46,33 +58,32 @@
      barHeight: systInfo.statusBarHeight,
      navBarHeight: navBarHeight,
    });
    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}&`
    // 首页测试登录功能,后续注释
    // 检查登录状态
    const token = wx.getStorageSync(app.config.tokenKey)
    if (!token) {
      loginInfo(app, (data) => {
        // 如果不是第一次登录,会执行回调
        if (data) {
          // 登录成功,自动记录token和用户信息,并返回true
        } else {
          // 出现错误,返回false
        }
      }
      this.setData({
        backUrl: backUrl.backUrl
      })
    } else {
      // 如果是第一次登录,会跳转至绑定用户信息页面,填写完用户信息后进行登录并储存token和用户信息,结束后跳转回当前页面(携带页面参数)
    }
    // checkLoginInfo(app, (data) => {
    //   if (data) {
    //     this.getCurrentUserInfo();
    //   }
    // })
    this.registe()
    this.init();
  },
  onReachBottom() {
  },
  onReachBottom() {},
  onPullDownRefresh() {
    this.setData({
      'baseRefresh.value': true,
      isWhite: false
    })
    this.getBannerList();
    this.init();
  },
  init() {
@@ -90,64 +101,54 @@
    }, 500);
  },
  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'
        })
      }
    });
  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 }
      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
          link: item.jsek_link,
        })
      }
      this.setData({
        bannerList: list
        bannerList: list,
        loading: false
      })
    })
    console.log('轮播图', this.data.bannerList);
  },
  navToActivityDetail(e) {
    let {
      info
    } = e.currentTarget.dataset
    console.log(info)
    if (info.link) {
      wx.navigateTo({
        url: info.link,
      });
    }
  },
  loadHomePage() {
    fetchHome().then(({ tabList }) => {
    fetchHome().then(({
      tabList
    }) => {
      this.setData({
        tabList,
      });
@@ -156,6 +157,7 @@
  //点击目录
  toPages(item) {
    let info = item.target.dataset.info
    console.log(info);
    if (info.url) {
      if (info.text == "图书服务") {
        wx.switchTab({
@@ -186,6 +188,10 @@
        start: 0,
        size: 4
      },
      filterList: [{
        value: 'Normal',
        field: 'state'
      }],
      fields: {
        liveTime: [],
        lecturer: [],
@@ -211,13 +217,19 @@
  getCourseTypeListList() {
    const data = {
      path: 'jsek_homepageDigitalCourses',
      filterList: [],
      queryType: '\\',
      searchList: [],
      size: '20',
      start: '0',
      storeRefCode: app.config.digitalCourses,
      sort: { type: 'Asc', field: 'LinkOrder' }
      sort: {
        type: 'Asc',
        field: 'LinkOrder'
      },
      filterList: [{
        value: 'Normal',
        field: 'state'
      }]
    }
    app.MG.store.getStoreChannelList(data).then((res) => {
      if (res.datas && res.datas.length > 0) {
@@ -236,13 +248,17 @@
    const obj = {
      storeInfo: "app.config.goodsStore",
      path: item.pathList + '\\' + item.id,
      coverSize: {
        width: 260
      },
      // coverSize: {
      //   height: 205
      // },
      paging: {
        start: 0,
        size: 4
      },
      filterList: [{
        value: 'Normal',
        field: 'state'
      }],
      fields: {
        courseLeader: [],
        affiliatedUnit: [],
@@ -261,19 +277,29 @@
  },
  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: [],
      filterList: [{
        value: 'Normal',
        field: 'state'
      }],
      queryType: '\\',
      searchList: [],
      size: '20',
      start: '0',
      storeRefCode: app.config.goodsStore,
      sort: { type: 'Asc', field: 'LinkOrder' }
      sort: {
        type: 'Asc',
        field: 'LinkOrder'
      }
    }
    app.MG.store.getStoreChannelList(data).then((res) => {
      if (res.datas && res.datas.length > 0) {
@@ -281,7 +307,8 @@
        dataList.push(...res.datas)
        this.setData({
          bookTypeList: dataList,
          activeItem1: 0
          activeItem1: 0,
          bookTypeData: dataList[0],
        })
        this.getBooksList(dataList[0])
      }
@@ -300,6 +327,10 @@
        start: 0,
        size: 6
      },
      filterList: [{
        value: 'Normal',
        field: 'state'
      }],
      fields: {
        author: []
      }
@@ -313,14 +344,16 @@
  //图书服务
  tabBookClick(item) {
    let info = this.data.bookTypeList[item.detail.value]
    console.log(info, 123)
    this.setData({
      bookTypeData: info,
    })
    this.getBooksList(info)
  },
  //数字阅读
  getReadBookList() {
    const obj = {
      storeInfo: app.config.digitalTextbooks,
      path: 'jsek_homepageDigitalTextbooks',
      storeInfo: app.config.digitalRead,
      path: 'jsek_homepageDigitalReading',
      coverSize: {
        width: 150
      },
@@ -328,6 +361,10 @@
        start: 0,
        size: 3
      },
      filterList: [{
        value: 'Normal',
        field: 'state'
      }],
      fields: {
        author: []
      }
@@ -350,6 +387,10 @@
        start: 0,
        size: 6
      },
      filterList: [{
        value: 'Normal',
        field: 'state'
      }],
      fields: {
        author: [],
      }
@@ -379,12 +420,10 @@
      fields: {
        author: [],
      },
      filterList: [
        {
          value: 'Normal',
          field: 'state'
        }
      ],
      filterList: [{
        value: 'Normal',
        field: 'state'
      }],
      sort: {
        Name: 'Asc',
        BaseType: ''
@@ -399,42 +438,55 @@
  },
  // 跳转图书详情
  goDetail(e) {
    const { book } = e.currentTarget.dataset;
    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
    })
    // 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) {
    const { book } = e.currentTarget.dataset;
    wx.showToast({
      title: "建设中",
      icon: 'none',
      duration: 2000
    })
    // 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.showToast({
      title: "建设中",
      icon: 'none',
      duration: 2000
    })
    const {
      book
    } = e.currentTarget.dataset;
    wx.navigateTo({
      url: '/pages/home/digitalRead/index?productId=' + book.id,
    });
  },
  goTextBookDetail(e) {
    const { book } = e.currentTarget.dataset;
    wx.showToast({
      title: "建设中",
      icon: 'none',
      duration: 2000
    })
    const {
      book
    } = e.currentTarget.dataset;
    wx.navigateTo({
      url: '/pages/digitalTextbooks/digitalTextbooksDetails/index?id=' + book.id,
    });
  },
@@ -456,8 +508,9 @@
    })
  },
  addCart(e) {
    const { info } = e.currentTarget.dataset;
    console.log(info)
    const {
      info
    } = e.currentTarget.dataset;
    if (wx.getStorageSync(app.config.tokenKey)) {
      let query = {
        start: 0,
@@ -478,13 +531,11 @@
          })
        } else {
          let query = {
            requests: [
              {
                saleMethodId: info.defaultSaleMethodId,
                storeEventId: null,
                agentCode: '电子书'
              }
            ]
            requests: [{
              saleMethodId: info.defaultSaleMethodId,
              storeEventId: null,
              agentCode: '电子书'
            }]
          }
          const addRes = app.MG.store.addShoppingCart(query)
          if (addRes) {
@@ -504,32 +555,135 @@
  },
  onMoreGuide(e) {
    let type = e.currentTarget.dataset.info
    console.log(e, 1)
    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'
        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: 2000
        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: e.detail.scrollTop > 10 ? true : false
      isWhite: data
    })
  },
  onRetrievalPage() {
    console.log(this.data.searchVal);
    wx.navigateTo({
      url: '/pages/retrievalPage/index?searchVal=' + this.data.searchVal
    })
    // 首页测试登录功能,后续注释
    // 检查登录状态
    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
      })
    }
  },
});
});