From 606018855ad2d5ad55f527b76e9652fdb58ed982 Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期一, 09 九月 2024 19:50:05 +0800
Subject: [PATCH] bug

---
 pages/home/home.js |  754 +++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 644 insertions(+), 110 deletions(-)

diff --git a/pages/home/home.js b/pages/home/home.js
index 68bb735..3f7f267 100644
--- a/pages/home/home.js
+++ b/pages/home/home.js
@@ -1,155 +1,689 @@
-import { fetchHome } from '../../services/home/home';
-import { fetchGoodsList } from '../../services/good/fetchGoods';
-import Toast from 'tdesign-miniprogram/toast/index';
+import {
+  fetchHome
+} from '../../services/home/home';
+import moment from 'moment'
+import {
+  loginInfo
+} from '../../assets/js/login';
 const app = getApp()
 Page({
   data: {
-    imgSrcs: [],
-    tabList: [],
-    goodsList: [],
-    goodsListLoadStatus: 0,
-    pageLoading: false,
-    current: 1,
-    autoplay: true,
-    duration: '500',
-    interval: 5000,
-    navigation: { type: 'dots' },
-    swiperImageProps: { mode: 'scaleToFill' },
-    bannerList: [],
+    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
   },
-
-  goodListPagination: {
-    index: 0,
-    num: 20,
-  },
-
-  privateData: {
-    tabIndex: 0,
-  },
-
   onShow() {
-    this.getTabBar().init();
-    this.getBannerList()
+    this.setData({
+      searchVal: "",
+    });
+    console.log(this.data.searchVal)
+    this.loadHomePage();
   },
 
   onLoad() {
-    this.init();
-  },
+    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,
+    });
 
-  onReachBottom() {
-    if (this.data.goodsListLoadStatus === 0) {
-      this.loadGoodsList();
+    // 棣栭〉娴嬭瘯鐧诲綍鍔熻兘锛屽悗缁敞閲�
+    // 妫�鏌ョ櫥褰曠姸鎬�
+    const token = wx.getStorageSync(app.config.tokenKey)
+    if (!token) {
+      loginInfo(app, (data) => {
+        // 濡傛灉涓嶆槸绗竴娆$櫥褰曪紝浼氭墽琛屽洖璋�
+        if (data) {
+          // 鐧诲綍鎴愬姛锛岃嚜鍔ㄨ褰晅oken鍜岀敤鎴蜂俊鎭紝骞惰繑鍥瀟rue
+        } else {
+          // 鍑虹幇閿欒锛岃繑鍥瀎alse
+        }
+      })
+    } else {
+      // 濡傛灉鏄涓�娆$櫥褰曪紝浼氳烦杞嚦缁戝畾鐢ㄦ埛淇℃伅椤甸潰锛屽~鍐欏畬鐢ㄦ埛淇℃伅鍚庤繘琛岀櫥褰曞苟鍌ㄥ瓨token鍜岀敤鎴蜂俊鎭紝缁撴潫鍚庤烦杞洖褰撳墠椤甸潰锛堟惡甯﹂〉闈㈠弬鏁帮級
     }
-  },
-
-  onPullDownRefresh() {
+    this.registe()
     this.init();
   },
-
-  init() {
-    this.loadHomePage();
+  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_homeBanner',
-      fields: { jsek_link: [] },
-      paging: { start: 0, size: 9 }
+      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
+          link: item.jsek_link,
+
         })
       }
       this.setData({
-        bannerList: list
+        bannerList: list,
+        loading: false
       })
     })
-    console.log('杞挱鍥�', this.data.bannerList);
   },
-  loadHomePage() {
-    wx.stopPullDownRefresh();
+  navToActivityDetail(e) {
+    let {
+      info
+    } = e.currentTarget.dataset
+    console.log(info)
+    if (info.link) {
+      wx.navigateTo({
+        url: info.link,
+      });
+    }
+  },
 
-    this.setData({
-      pageLoading: true,
-    });
-    fetchHome().then(({ swiper, tabList }) => {
+  loadHomePage() {
+    fetchHome().then(({
+      tabList
+    }) => {
       this.setData({
         tabList,
-        imgSrcs: swiper,
-        pageLoading: false,
       });
-      this.loadGoodsList(true);
     });
   },
-
-  tabChangeHandle(e) {
-    this.privateData.tabIndex = e.detail;
-    this.loadGoodsList(true);
+  //鐐瑰嚮鐩綍
+  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
+      })
+    }
   },
-
-  onReTry() {
-    this.loadGoodsList();
-  },
-
-  async loadGoodsList(fresh = false) {
-    if (fresh) {
-      wx.pageScrollTo({
-        scrollTop: 0,
+  //涓撻璁ㄨ
+  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({ goodsListLoadStatus: 1 });
-
-    const pageSize = this.goodListPagination.num;
-    let pageIndex = this.privateData.tabIndex * pageSize + this.goodListPagination.index + 1;
-    if (fresh) {
-      pageIndex = 0;
-    }
-
-    try {
-      const nextList = await fetchGoodsList(pageIndex, pageSize);
       this.setData({
-        goodsList: fresh ? nextList : this.data.goodsList.concat(nextList),
-        goodsListLoadStatus: 0,
-      });
+        specialSubjectList: res.datas
+      })
+    })
+  },
 
-      this.goodListPagination.index = pageIndex;
-      this.goodListPagination.num = pageSize;
-    } catch (err) {
-      this.setData({ goodsListLoadStatus: 3 });
+
+  //绮鹃�夎绋嬪垎绫�
+  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);
+      }
     }
   },
-
-  goodListClickHandle(e) {
-    const { index } = e.detail;
-    const { spuId } = this.data.goodsList[index];
-    wx.navigateTo({
-      url: `/pages/goods/details/index?spuId=${spuId}`,
-    });
+  isChange(data) {
+    this.setData({
+      isWhite: data
+    })
   },
 
-  goodListAddCartHandle() {
-    Toast({
-      context: this,
-      selector: '#t-toast',
-      message: '鐐瑰嚮鍔犲叆璐墿杞�',
-    });
-  },
+  onRetrievalPage() {
 
-  navToSearchPage() {
-    wx.navigateTo({ url: '/pages/goods/search/index' });
-  },
+    // 棣栭〉娴嬭瘯鐧诲綍鍔熻兘锛屽悗缁敞閲�
+    // 妫�鏌ョ櫥褰曠姸鎬�
+    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 {
+          // 鍑虹幇閿欒锛岃繑鍥瀎alse
+        }
+      })
+    } else {
+      wx.navigateTo({
+        url: '/pages/retrievalPage/index?searchVal=' + this.data.searchVal
+      })
+    }
 
-  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}`,
-    // });
   },
-});
+});
\ No newline at end of file

--
Gitblit v1.9.1