<template>
  <div class="contentBody" v-if="learnChildList.length > 0">
    <van-tabs
      :active="active"
      type="line"
      line-height="0px"
      @click="childChange"
    >
      <!-- 子目录 -->
      <van-tab
        v-for="(tabItem, tabIndex) in learnChildList"
        :key="tabIndex"
        :title="tabItem.name"
        :title-style="titleStyle"
      >
        <van-list
          v-model="loading"
          :finished="finished"
          finished-text="没有更多了"
          @load="onLoad"
        >
          <van-cell
            v-for="(contentItem, contentIndex) in contentList"
            :key="contentIndex"
            @click="chooseContent(contentIndex)"
          >
            <div slot="default" class="contentItemDiv">
              <div class="contentItemTitleTitleRow">
                <div class="contentItemTitle">{{ contentItem.name }}</div>
                <div
                  v-if="contentItem.isNeedStudyToday"
                  class="contentItemstates"
                >
                  今日必学
                </div>
              </div>
              <div class="contentItemDescription">
                <div class="contentItemDescriptionTime">
                  {{
                    formateDatesFun(contentItem.createdTime) ||
                      contentItem.createdTime
                  }}
                </div>
                <div class="contentItemDescriptionStudyNeedTime">
                  所需学习时间：{{
                    getTimeHoursMinuteSecondsFun(contentItem.readTimeInSec)
                  }}
                </div>
              </div>
            </div>
          </van-cell>
        </van-list>
      </van-tab>
    </van-tabs>
  </div>
</template>

<script>
import { Toast } from "vant";
import { getTodayStr } from "@/utils/date";
import { mapState } from "vuex";
export default {
  name: "page-learn-child",
  components: {},
  props: {
    // 分组的数据列表
    parentId: {
      type: String,
      default: ""
    }
  },
  data() {
    return {
      active: 0,
      titleStyle: {
        fontSize: "10px"
      },
      choosedChildIndex: 0,
      contentList: [],
      loading: false,
      finished: false,
      learnChildList: [],
      learnPage: 0,
      learnSize: 10
    };
  },
  computed: {
    ...mapState({
      chooseEngneeringWork: state => state.user.chooseEngneeringWork
    })
  },
  created() {},
  mounted() {
    this.getChildList();
  },
  destroyed() {},
  watch: {
    // 监听：工种
    chooseEngneeringWork(value) {
      if (value.value) {
        this.getContentList(); // 查询：考试的场次列表信息
      }
    }
  },
  methods: {
    //   查询子目录
    getChildList() {
      this.$store.commit("toggleLoading", true);
      let path = {
        categoryId: this.parentId
      };
      this.$_http
        .get(this.$pathParams(this.$_API.JTXT_GET_CATEGORIES_CATEGROYID, path))
        .then(res => {
          this.learnChildList = res.data;
          this.$store.commit("toggleLoading", false);
          this.learnPage = 0;
        })
        .catch(() => {
          this.$store.commit("toggleLoading", false);
        });
    },
    childChange(index) {
      this.choosedChildIndex = index;
      this.learnPage = 0;
      this.getContentList();
    },
    //   查询子目录
    getContentList() {
      this.$store.commit("toggleLoading", true);
      let path = {
        categoryId: this.learnChildList[this.choosedChildIndex].id
      };
      let params = {
        engineertypeid: this.chooseEngneeringWork.id,
        page: this.learnPage,
        size: this.learnSize
      };
      this.$_http
        .get(
          this.$pathParams(
            this.$_API.JTXT_GET_CATEGORIES_CATEGROYID_MATERIALS,
            path
          ),
          { params }
        )
        .then(res => {
          this.formatNeedStudyTodayFun(res.data.content);
          // 分页到底了
          this.finished = res.data.last;
          this.learnPage++;
          this.$store.commit("toggleLoading", false);
        })
        .catch(() => {
          Toast("系统异常");
          this.$store.commit("toggleLoading", false);
        });
    },
    // 判断是否今日必学
    formatNeedStudyTodayFun(datas) {
      let todayStr = getTodayStr();
      datas.forEach(item => {
        item.tags.forEach(itemChild => {
          if (itemChild === todayStr) {
            item.isNeedStudyToday = true;
          }
        });
      });
      this.contentList = datas;
    },
    onLoad() {
      this.getContentList();
    },
    chooseContent(index) {
      this.$router.push({
        name: "learn-content",
        params: { materialId: this.contentList[index].id }
      });
    }
  }
};
</script>

<style lang="scss" scoped>
@import "~@/styles/mixin";
.contentBody {
  background-color: #fff;
  .contentItemDiv {
    width: 100%;
    .contentItemTitle {
      font-size: 0.65rem;
    }

    .contentItemTitleTitleRow {
      width: 100%;
      display: flex;
      justify-content: space-between;
      align-items: center;
      .contentItemTitle {
        text-align: center;
        font-size: 0.65rem;
        color: #000;
        white-space: nowrap;
        text-overflow: ellipsis;
        overflow: hidden;
      }
      .contentItemstates {
        font-size: 0.6rem;
        color: #f56c6c;
        border-radius: 0.2rem;
        margin-left: 0.5rem;
        flex-wrap: nowrap;
        white-space: nowrap;
      }
    }
    .contentItemDescription {
      margin-top: 0.5rem;
      display: flex;
      justify-content: space-between;
      align-items: center;
      .contentItemDescriptionTime {
        color: #696969;
        font-size: 0.55rem;
      }
      .contentItemDescriptionStudyNeedTime {
        color: #0088e9;
        font-size: 0.55rem;
      }
    }
  }
  .my-swipe .van-swipe-item {
    background-color: #7cc8ff;
    height: 10rem;
  }
}
</style>
