<template>
  <div class="pb_content">
    <div class="pb_content_body">
      <div class="student_head">
        <!-- <img src="../assets/banner.png" alt="" /> -->
        <el-carousel trigger="click" style="width: 100%; height: 300px">
          <el-carousel-item v-for="item in bannerList" :key="item.id">
            <!-- <h3 class="small">{{ item }}</h3> -->
            <img
              class="imgS"
              :src="item.poster"
              alt=""
              @click.stop="
                goTo(
                  '/courseDetail?courseId=' +
                    item.url +
                    '&userid=' +
                    userid +
                    '&oid=' +
                    oid +
                    '&tType=' +
                    tType
                )
              "
            />
          </el-carousel-item>
        </el-carousel>
      </div>
      <div class="reBox">
        <div class="reTop">
          <div>课程</div>
          <div>
            <div class="search" @click="selectAll">
              <img src="../assets/icon/search.png" alt="" />
            </div>
            <input
              class="sInput"
              type="text"
              placeholder="请输入关键字"
              v-model="sCourse"
            />
          </div>
        </div>
        <div class="choose">
          <div
            class="all_choose"
            v-for="(item, index) in CourseType[0]"
            :key="index"
          >
            <span>{{ item.name }}:</span>
            <div
              class="cName"
              @click="getCourse(item.name, '', item.id, 1)"
              :class="typeE.indexOf(item.id) != -1 ? 'isCType' : ''"
            >
              全部
            </div>
            <div
              v-for="item1 in CourseTypeJson[item.id]"
              :key="item1.id"
              :label="item1.id"
              @click="getCourse(item.name, item.id, item1.id, 2)"
            >
              <div
                class="cName"
                :class="
                  typea == item1.id || typeb == item1.id || typed == item1.id
                    ? 'isCType'
                    : ''
                "
              >
                {{ item1.name }}
              </div>
            </div>
          </div>
        </div>
      </div>
      <div class="body_student">
        <!-- <div class="top">
            <div :class="{ active: 0 == zoneListId }" @click="selectAll()">
              所有课程
            </div>
            <div
              :class="{ active: item.id == zoneListId }"
              v-for="(item, index) in zoneList"
              :key="index"
              @click="checkZone(item.id)"
            >
              {{ item.name }}
            </div>
          </div> -->
        <div>
          <div class="main_box">
            <div
              class="box_course"
              v-for="(item, index) in zoneClass"
              :key="index"
            >
              <div class="wheel">
                <img
                  :src="
                    item.cover
                      ? JSON.parse(item.cover)[0].url
                      : require('../assets/wheel.png')
                  "
                  alt=""
                />
              </div>
              <div class="middle_white">
                <div class="textOverflow">{{ item.title }}</div>
                <div class="nameAndLength">
                  <el-tooltip
                    class="typeN"
                    effect="light"
                    :content="item.typename"
                    placement="top"
                  >
                    <div>{{ item.typename }}</div>
                  </el-tooltip>

                  <div style="padding-right: 10px;min-width: 55px;">
                    {{ JSON.parse(item.chapters).length }}阶段
                  </div>
                </div>
                <div class="people">
                  <div class="man">
                    <img src="../assets/people.png" alt="" />
                  </div>
                  <div>
                    {{
                      item.pNum != null && item.pNum != "" ? item.pNum : "0"
                    }}人学习
                  </div>
                </div>
              </div>
              <div
                class="now_study"
                @click="
                  goTo(
                    '/courseDetail?courseId=' +
                      item.courseId +
                      '&userid=' +
                      userid +
                      '&oid=' +
                      oid +
                      '&cid=' +
                      classId +
                      '&tType=' +
                      tType
                  )
                "
              >
                立即学习
              </div>
            </div>
            <div class="course_empty" v-if="zoneClass.length == 0">
              暂无课程
            </div>
          </div>
        </div>
        <div
          class="student_page"
          style="margin: 15px 0 0"
          v-if="zoneClass.length > 0"
        >
          <el-pagination
            background
            layout="prev, pager, next"
            :page-size="10"
            :total="total"
            v-if="page && zoneListId != 0"
            @current-change="handleCurrentChange"
          >
          </el-pagination>
          <el-pagination
            background
            layout="prev, pager, next"
            :page-size="10"
            :total="total"
            v-if="page && zoneListId == 0"
            @current-change="handleCurrentChange1"
          >
          </el-pagination>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      zoneList: [],
      zoneClass: [],
      page: 1,
      total: 0,
      isListAjax: false,
      zoneListId: "",
      bannerList: [],
      userid: this.$route.query.userid,
      oid: this.$route.query.oid,
      classId: this.$route.query.cid,
      tType: this.$route.query.tType,
      CourseType: [],
      CourseTypeJson: {},
      courseTypeId: {},
      sCourse: "",
      isCType: "",
      typea: "",
      typeb: "",
      typed: "",
      typeE: [],
    };
  },
  methods: {
    goTo(path) {
      this.$router.push(path);
    },
    // getZone() {
    //   this.ajax
    //     .get(this.$store.state.api + "getZone", "")
    //     .then((res) => {
    //       this.zoneList = res.data[0];
    //       // this.zoneListId = this.zoneList[0].id;
    //       // this.getZoneClass(this.zoneList[0].id);
    //       this.selectAll();
    //     })
    //     .catch((err) => {
    //       console.error(err);
    //     });
    // },
    //获取专区下的课程
    getZoneClass(zid) {
      this.isListAjax = true;
      const loading = this.openLoading(document.querySelector(".main_box"));
      let params = {
        bid: zid,
        oid: this.oid,
        page: this.page,
      };
      this.ajax
        .get(this.$store.state.api + "getZoneClassStudent", params)
        .then((res) => {
          loading.close();
          this.isListAjax = false;
          this.zoneClass = res.data[0];
          this.total = res.data[0].length ? res.data[0][0].num : 0;
        })
        .catch((err) => {
          console.error(err);
        });
    },
    getCourse(typeName, ftypeId, typeid, type) {
      if (typeName == "年级") {
        if (type == 1) {
          if (this.typeE.indexOf(typeid) != -1) {
            this.typeE.splice(this.typeE.indexOf(typeid), 1);
          } else {
            this.typeE.push(typeid);
            if(this.typea != ""){
              this.typea = "";
            }
          }
        } else {
          if (this.typea == typeid) {
            this.typea = "";
          } else {
            this.typea = typeid;
            if (this.typeE.indexOf(ftypeId) != -1) {
              this.typeE.splice(this.typeE.indexOf(ftypeId), 1);
            }
          }
        }
      } else if (typeName == "专栏") {
        if (type == 1) {
          if (this.typeE.indexOf(typeid) != -1) {
            this.typeE.splice(this.typeE.indexOf(typeid), 1);
          } else {
            this.typeE.push(typeid);
            if(this.typeb != ""){
              this.typeb = "";
            }
          }
        } else {
          if (this.typeb == typeid) {
            this.typeb = "";
          } else {
            this.typeb = typeid;
            if (this.typeE.indexOf(ftypeId) != -1) {
              this.typeE.splice(this.typeE.indexOf(ftypeId), 1);
            }
          }
        }
      } else if (typeName == "学科") {
        if (type == 1) {
          if (this.typeE.indexOf(typeid) != -1) {
            this.typeE.splice(this.typeE.indexOf(typeid), 1);
          } else {
            this.typeE.push(typeid);
            if(this.typed != ""){
              this.typed = "";
            }
          }
        } else {
          if (this.typed == typeid) {
            this.typed = "";
          } else {
            this.typed = typeid;
            if (this.typeE.indexOf(ftypeId) != -1) {
              this.typeE.splice(this.typeE.indexOf(ftypeId), 1);
            }
          }
        }
      }
      this.selectAll();
    },
    selectAll() {
      this.zoneListId = 0;
      this.isListAjax = true;
      const loading = this.openLoading(document.querySelector(".main_box"));
      let params = {
        uid: this.userid,
        oid: this.oid,
        typea: this.typea != undefined ? this.typea : "",
        typeb: this.typeb != undefined ? this.typeb : "",
        typec: "",
        typed: this.typed != undefined ? this.typed : "",
        typeE: this.typeE.join(","),
        cu: "",
        cn: this.sCourse,
        classid: this.classId,
        page: this.page,
      };
      this.ajax
        .get(this.$store.state.api + "selectTypeCourse", params)
        .then((res) => {
          loading.close();
          this.isListAjax = false;
          this.zoneClass = res.data[0];
          this.total = res.data[0].length ? res.data[0][0].num : 0;
        })
        .catch((err) => {
          console.error(err);
        });
    },
    checkZone(id) {
      this.page = 1;
      this.zoneListId = id;
      this.getZoneClass(id);
    },
    handleCurrentChange(val) {
      this.page = val;
      this.getZoneClass(this.zoneListId);
    },
    handleCurrentChange1(val) {
      this.page = val;
      this.selectAll();
    },
    //获取banner
    getBanner() {
      this.ajax
        .get(this.$store.state.api + "getBanner", "")
        .then((res) => {
          this.bannerList = res.data[0];
          console.log(this.bannerList);
        })
        .catch((err) => {
          console.error(err);
        });
    },
    selectType() {
      this.ajax
        .get(this.$store.state.api + "selectType")
        .then((res) => {
          this.CourseType = res.data;
          for (var i = 0; i < res.data[0].length; i++) {
            if (!this.cid) {
              this.courseTypeId[res.data[0][i].id] = "";
            }
            for (var j = 0; j < res.data[1].length; j++) {
              if (res.data[0][i].id == res.data[1][j].pid) {
                if (!this.CourseTypeJson[res.data[0][i].id]) {
                  this.CourseTypeJson[res.data[0][i].id] = [];
                }
                this.CourseTypeJson[res.data[0][i].id].push(res.data[1][j]);
              }
            }
          }
        })
        .catch((err) => {
          console.error(err);
        });
    },
  },
  created() {
    this.selectType();
    this.selectAll();
    this.getBanner();
    document.scrollingElement.scrollTop = 0;
  },
};
</script>

<style scoped>
.student_head .imgS {
  width: 100%;
  height: 100%;
  cursor: pointer;
}

.top {
  padding: 20px 30px 20px 1%;
  box-sizing: border-box;
  display: flex;
  align-items: center;
}

.top div {
  cursor: pointer;
  box-sizing: border-box;
  height: 35px;
  line-height: 35px;
  margin: 0 10px 0 0;
  padding-bottom: 5px;
  width: 80px;
  text-align: center;
}

.top .active {
  border-bottom: 3px solid #0e71e6;
}

.isactive {
  border-bottom: 3px solid #0e71e6;
}

.box_fk {
  width: 8px;
  height: 21px;
  background: #0e71e6;
  margin-right: 5px;
}
.wheel {
  width: 100%;
  height: 140px;
}
.man {
  width: 16px;
  height: 16px;
}
.wheel > img,
.man > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.box_course {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  margin: 0px 1% 20px;
  width: 16%;
  /*border: 1px solid #cecece; */
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0px 1px 3px 0px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%),
    0px 2px 1px -1px rgb(0 0 0 / 12%);
  justify-content: space-between;
}
.middle_white {
  font-size: 14px;
  margin: 5px 0 5px 10px;
}
.people {
  display: flex;
  align-items: center;
}
.people > div:nth-child(2) {
  margin-left: 10px;
}
.now_study {
  width: 100%;
  height: 40px;
  color: #fff;
  background: #4a9eed;
  text-align: center;
  line-height: 40px;
  font-size: 13px;
  cursor: pointer;
}
.now_study:hover {
  background: #205cc6;
}
.main_box {
  width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin: 0 auto;
}
.right_bottom_flex {
  width: 219px;
  height: 144px;
  margin: auto 0;
}
.right_bottom_flex > img {
  width: 100%;
  height: 100%;
}
.body_student {
  margin: 10px auto;
  width: 92%;
  height: 100%;
}
.student_head {
  width: 100%;
  height: 30%;
}

.textOverflow {
  padding: 0 5px 0 0px;
  width: 95%;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: bold;
  font-size: 16px;
}

.student_page {
  margin-top: 10px;
}
.course_empty {
  width: 100%;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.choose > div:nth-child(3) > span {
  letter-spacing: 0 !important;
}

.choose {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  height: 100%;
  justify-content: space-evenly;
  align-items: flex-start;
  padding: 10px 0;
}

.all_choose {
  display: flex;
  flex-direction: row;
  align-items: baseline;
  margin: 10px 0;
  width: 100%;
}

.all_choose > span {
  min-width: 80px;
  display: block;
  letter-spacing: 14px;
}
.all_choose > span:nth-child(1) {
  font-weight: bold;
}
.all_choose >>> .el-checkbox-group {
  display: flex;
  flex-direction: row;
  width: 820px;
  flex-wrap: wrap;
  align-content: center;
  justify-content: flex-start;
  align-items: center;
  margin-top: 3px;
}
.all_choose > .el-checkbox-group >>> .el-checkbox {
  margin-bottom: 10px;
  display: flex;
  flex-direction: row;
  align-items: center;
}
.all_choose > .el-checkbox-group > .el-checkbox >>> .el-checkbox__label {
  min-width: 80px;
  overflow: hidden;
  width: 80px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.all_choose > .el-checkbox-group > .el-checkbox >>> .el-checkbox__label:hover {
  width: auto;
}

.cName {
  cursor: pointer;
  margin: 0 10px;
  color: #c3c1c3;
}

.reBox {
  position: relative;
  top: -25px;
  z-index: 999;
  left: 5%;
  background: #fff;
  width: 90%;
  border-radius: 5px;
  padding-left: 20px;
  min-width: 1050px;
}
.reTop {
  padding: 20px 0 0 0;
  border-bottom: 1px solid #eee;
  width: 98%;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
}
.reTop > div:nth-child(1) {
  font-weight: bold;
  width: 40px;
  border-bottom: 1px solid #205cc6;
  padding-bottom: 20px;
  color: #205cc6;
  font-size: 20px;
}
.reTop > div:nth-child(2) {
  display: flex;
  flex-direction: row;
  align-items: center;
  border: 1px solid #ccced3;
  width: 300px;
  border-radius: 8px;
  padding: 5px 0;
  margin-bottom: 10px;
}
.search {
  width: 20px;
  padding: 0 5px;
}
.search > img {
  width: 100%;
  height: 100%;
}
.sInput {
  border: none;
  width: 85%;
}
.sInput:focus-visible {
  outline: none;
}
.nameAndLength {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: space-between;
  margin: 5px 0;
}
.typeN {
  width: 200px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.isCType {
  color: #6282c2;
}
</style>
