|
@@ -0,0 +1,150 @@
|
|
|
+const app = getApp()
|
|
|
+import {
|
|
|
+ getHotrecommendList,
|
|
|
+} from "~/api/works"
|
|
|
+import {
|
|
|
+ getBannerList
|
|
|
+} from '~/api/global'
|
|
|
+import reachBottom from '~/mixins/reachBottom'
|
|
|
+import event from '~/mixins/event'
|
|
|
+import share from '~/mixins/share'
|
|
|
+import {
|
|
|
+ createStoreBindings
|
|
|
+} from 'mobx-miniprogram-bindings'
|
|
|
+import {
|
|
|
+ store
|
|
|
+} from '~/store/index'
|
|
|
+Page({
|
|
|
+ behaviors: [reachBottom, share,event],
|
|
|
+ data: {
|
|
|
+ navBarHeight: app.globalData.navBarHeight,
|
|
|
+ background: ['demo-text-1', 'demo-text-2', 'demo-text-3'],
|
|
|
+ currentType: '3',
|
|
|
+ // 控制一级分类是否固定
|
|
|
+ isFixed: false,
|
|
|
+ desktopTips: app.globalData.desktopTips,
|
|
|
+ bannerList: []
|
|
|
+ },
|
|
|
+ onLoad(options) {
|
|
|
+ this.getLocUserInfo()
|
|
|
+ if (Object.keys(this.data.userInfo).length > 0) {
|
|
|
+ this.requestAgain()
|
|
|
+ } else {
|
|
|
+ getApp().callBack = (res) => {
|
|
|
+ this.getLocUserInfo()
|
|
|
+ this.requestAgain()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let {
|
|
|
+ desktopTips
|
|
|
+ } = app.globalData
|
|
|
+ if (desktopTips) {
|
|
|
+ setTimeout(() => {
|
|
|
+ this.setData({
|
|
|
+ desktopTips: false
|
|
|
+ })
|
|
|
+ wx.setStorage({
|
|
|
+ key: "preDesktopTime",
|
|
|
+ data: new Date()
|
|
|
+ })
|
|
|
+ }, 6000)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onShow() {
|
|
|
+ if (typeof this.getTabBar === 'function') {
|
|
|
+ this.getTabBar().setData({
|
|
|
+ selected: 2
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onUnload() {
|
|
|
+ this.storeBindings.destroyStoreBindings()
|
|
|
+ },
|
|
|
+ onReachBottom() {
|
|
|
+ this.loadMore()
|
|
|
+ },
|
|
|
+ async getLocUserInfo() {
|
|
|
+ this.storeBindings = createStoreBindings(this, {
|
|
|
+ store,
|
|
|
+ fields: {
|
|
|
+ userInfo: 'userInfo'
|
|
|
+ },
|
|
|
+ })
|
|
|
+ this.storeBindings.updateStoreBindings()
|
|
|
+ },
|
|
|
+ async loadMore() {
|
|
|
+ if (!this.data.userInfo.grade) {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if (this.data.currentType == '3') {
|
|
|
+ this.localGetData(getHotrecommendList, {
|
|
|
+ grade: this.data.userInfo.grade
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ jumpSearch() {
|
|
|
+ wx.navigateTo({
|
|
|
+ url: '/pages/childClassify/index?type=search',
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 监听页面滚动事件
|
|
|
+ */
|
|
|
+ onPageScroll(e) {
|
|
|
+ if (e.scrollTop >= 103 && !this.data.isFixed) {
|
|
|
+ this.setData({
|
|
|
+ isFixed: true
|
|
|
+ })
|
|
|
+ } else if (e.scrollTop < 103 && this.data.isFixed) {
|
|
|
+ this.setData({
|
|
|
+ isFixed: false
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ closeDesktop() {
|
|
|
+ this.setData({
|
|
|
+ desktopTips: false
|
|
|
+ })
|
|
|
+ wx.setStorage({
|
|
|
+ key: "preDesktopTime",
|
|
|
+ data: new Date()
|
|
|
+ })
|
|
|
+ },
|
|
|
+ async getBannerList() {
|
|
|
+ let bannerList = await getBannerList({
|
|
|
+ grade: this.data.userInfo.grade,
|
|
|
+ })
|
|
|
+ this.setData({
|
|
|
+ bannerList,
|
|
|
+ })
|
|
|
+ },
|
|
|
+ requestAgain() {
|
|
|
+ this.resetData()
|
|
|
+ this.getBannerList()
|
|
|
+ if (this.data.currentType != 3) {
|
|
|
+ this.selectComponent('#activityList').getActivities()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ selectType({
|
|
|
+ target
|
|
|
+ }) {
|
|
|
+ if (target.dataset.type) {
|
|
|
+ if (this.selectComponent('#worksList')) {
|
|
|
+ this.selectComponent('#worksList').resetAudio()
|
|
|
+ }
|
|
|
+ this.setData({
|
|
|
+ currentType: target.dataset.type,
|
|
|
+ })
|
|
|
+ if (target.dataset.type != 3) {
|
|
|
+ this.selectComponent('#activityList').getActivities()
|
|
|
+ }
|
|
|
+ if (target.dataset.type == '3') {
|
|
|
+ this.resetData()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ onUnload() {
|
|
|
+ this.storeBindings.destroyStoreBindings()
|
|
|
+ },
|
|
|
+})
|