Newer
Older
smartwell_app_front / unpackage / resources / H58F8F36D / www / src / page / index.vue
StephanieGitHub on 6 Aug 2019 4 KB first commit
<template>
  <div class="index">
    <mt-tabbar v-model="tabConf.activeTab" :fixed="tabConf.fixed">
      <mt-tab-item id="MAIN">
        首页
      </mt-tab-item>
      <mt-tab-item id="UI">
        UI
      </mt-tab-item>
      <mt-tab-item id="PLUS">
        PLUS
      </mt-tab-item>
      <mt-tab-item id="INTRODUCE">
        INTRODUCE
      </mt-tab-item>
    </mt-tabbar>
    <mt-tab-container v-model="tabConf.activeTab" :swipeable="tabConf.isSwiper">
      <mt-tab-container-item id="MAIN">
        <index-main></index-main>
      </mt-tab-container-item>
      <mt-tab-container-item id="UI">
        <index-ui></index-ui>
      </mt-tab-container-item>
      <mt-tab-container-item id="PLUS">
        <index-plus></index-plus>
      </mt-tab-container-item>
      <mt-tab-container-item id="INTRODUCE">
        <index-mine></index-mine>
      </mt-tab-container-item>
    </mt-tab-container>
  </div>
</template>

<script type="text/ecmascript-6">
  import indexMain from 'page/indexTab/indexMain'
  import indexUi from 'page/indexTab/indexUi'
  import indexPlus from 'page/indexTab/indexPlus'
  import indexMine from 'page/indexTab/indexMine'
  import { plusReady } from 'assets/js/plusReady'
  import { Tabbar, TabItem, Toast, Cell } from 'mint-ui'
  import { MyLocalStorage, checkADFlag, checkLoginFlag } from 'assets/js/utils'
  import { LOGIN_FLAG, AD_FLAG, INDEX_ACTIVETAB } from 'assets/js/storageConst'

  export default {
    components: {
      indexMain,
      indexUi,
      indexPlus,
      indexMine
    },
    data () {
      return {
        tabConf: {
          activeTab: 'MAIN',  // 当前tab
          isSwiper: true, // 是否开启swiper模式
          fixed: true,  // 是否固定在底部
        },
      }
    },
    created () {
      console.log("created")
      plusReady(this.plusReady)
      this.setLocalStorage()  // 储存本地存储
    },
    activated () {
      console.log("activated1")
      let activeTab = localStorage.getItem(INDEX_ACTIVETAB)
      this.tabConf.activeTab = activeTab
      console.log(this.tabConf.activeTab)
    },
    methods: {
      plusReady () {
        let self = this
        plus.key.addEventListener('backbutton', function () {
          self.$router.back()
        }, false)
        document.addEventListener("resume", self.resumeCallback, false); // 运行环境从后台切换到前台事件
        document.addEventListener("pause", self.pauseCallback, false);
      },
      setLocalStorage () {
        localStorage.setItem(INDEX_ACTIVETAB, this.tabConf.activeTab)
      },
      resumeCallback () {
        Toast({
          message: '欢迎回来',
          position: 'bottom',
          duration: 3000
        })
        let AD_flag = checkADFlag()
        if (AD_flag) {
          this.adShow()
        }
        let login_flag = checkLoginFlag()
        if (login_flag) {
          this.login()
        } else {
          MyLocalStorage.Cache.set(LOGIN_FLAG, true, 999999) // 切换回来登陆保持时长无限
        }
      },
      pauseCallback () {
        setTimeout(() => {
          MyLocalStorage.Cache.set(LOGIN_FLAG, true, 600) // 切换至后台登陆保持10分钟
        }, 1000)
      },
      adShow () {
        setTimeout(() => {
          this.$router.push({
            name: 'advertisement'
          })
        }, 1000)
      },
      login () {
        this.$router.push({
          name: 'login'
        })
      }
    },
    watch: {
      'tabConf.activeTab' (newVal, oldVal) {
        localStorage.setItem(INDEX_ACTIVETAB, this.tabConf.activeTab)
      }
    }
  }
</script>

<style scoped lang="stylus" rel="stylesheet/stylus">
  @import "~assets/css/variable.styl"
  .index {
    position absolute
    z-index 0
    top 0
    left 0
    right 0
    bottom 0
    .mint-tabbar {
      height 50px
      a {
        padding 0
      }
    }
    .mint-tab-container {
      padding-bottom 50px
    }
  }
</style>
<style lang="stylus" rel="stylesheet/stylus">
  .index {
    .mint-tabbar {
      a .mint-tab-item-label {
        line-height 50px
      }
    }
    .mint-tab-container {
      .mint-cell-wrapper {
        background-image none
      }
      .mint-cell:last-child {
        background-image none
      }
    }
  }
</style>