<template>
  <div class="pb_content" style="height: auto">
    <div class="pb_head top ">
      <div>
        <span class="sub_head">项目管理</span>
        <span
            @click="
              goTo(
                '/tcStudent?userid='+
                  userid +
                  '&oid=' +
                  oid+'&org=' +
                  org
              )
            "
            >学生管理</span
          >
      </div>
      <div class="student_button">
        <!-- <el-button type="primary" class="bgColor" @click="goToCourse()">添加项目</el-button> -->
      </div>
    </div>
    <div class="pb_content_body" style="height: 100%">
      <div class="student_head">
        <div class="choose">
          <div class="all_choose" v-for="(item, index) in CourseType[0]" :key="index">
            <span>{{ item.name }}</span>
            <el-select v-model="courseTypeId[item.id]" placeholder="请选择" @change="getTypeName">
              <el-option label="全部" value="1">全部</el-option>
              <el-option v-for="item1 in CourseTypeJson[item.id]" :key="item1.id" :label="item1.name" :value="item1.id">
              </el-option>
            </el-select>
          </div>
          <div @click="clear" class="clear">重置</div>
        </div>

        <div class="student_right">
          <div class="head_left">
            <el-input v-model="courseName" class="student_input" placeholder="请输入项目名称"></el-input>
            <el-button class="course_button" @click="searchCourse">查询</el-button>
          </div>
        </div>
      </div>
      <div class="student_table" v-loading="isLoading">
        <div class="course_box">
          <div class="out_box" v-for="(item, index) in course" :key="index">
            <div class="myCourse" v-if="item.isCourseType == 1 && groupA == 0">
              我的项目
            </div>
            <div class="myCourse" v-else-if="groupA == 1">
              他人项目
            </div>
            <div class="xtCourse" v-else>协同项目</div>
            <div class="tup">
              <img :src="
                item.cover != null && item.cover != ''
                  ? JSON.parse(item.cover).length > 0
                    ? JSON.parse(item.cover)[0].url
                    : mr
                  : mr
              " alt />
            </div>
            <!-- <div class="bottom_box">
              <div>{{ item.title }}</div>
              <div class="kc_t" v-if="groupA == '1'">
                创建老师：{{ item.uname }}
              </div>
              <div class="kc_time">{{ item.time }}</div>
            </div> -->
            <div class="bottom_box">
              <div>{{ item.title }}</div>
              <div class="kc_t">
                负责人：{{ item.uname }}
              </div>
              <div class="kc_time">
                <span style="color: #4b4b4b">创建日期:</span>{{ item.time }}
              </div>
              <div class="kc_time">
                <span style="color: #4b4b4b">修改日期:</span>{{ item.utime }}
              </div>
            </div>
            <div class="three_bottom">
              <div @click="get(item.courseId)">预览</div>
              <div @click="getA(item.courseId)">项目进展</div>
            </div>
          </div>
          <div class="course_empty" v-if="course.length == 0">暂无数据</div>
        </div>
      </div>
    </div>
    <div class="student_page">
      <el-pagination background layout="prev, pager, next" :page-size="10" :total="total" v-if="page && course.length"
        style="padding-bottom: 20px" @current-change="handleCurrentChange"></el-pagination>
    </div>
  </div>
</template>

<script>
import "../../../common/aws-sdk-2.235.1.min";
import EditorBar from "../../../components/tools/wangEnduit";
import CourseProblem from "../components/courseProblem";
export default {
  components: { EditorBar, CourseProblem },
  data() {
    return {
      itemCount: 1,
      courseTitle: "",
      courseText: "",
      courseTime: "",
      isLoading: false,
      fileList: [],
      fileList1: [],
      homeworkList: [{ name: "" }],
      formLabelWidth: "100px",
      dialogVisible: false,
      dialogVisible1: false,
      dialogVisibleCourse: false,
      dialogImageUrl: "",
      group: "",
      tuserid: this.$route.query.tuserid,
      userid: this.$route.query.userid,
      oid: this.$route.query.oid,
      org: this.$route.query.org,
      Juri: "",
      groupList: [],
      JuriList: [],
      page: 1,
      total: 0,
      tableData: [],
      now: "",
      courseDetail: {},
      addCourse: {},
      groupA: "0",
      classX: "",
      course: [],
      courseName: "",
      mr: require("../../../assets/icon/kc1.png"),
      CourseType: [],
      CourseTypeJson: {},
      courseTypeId: {},
      courseTypeSon: [],
      isChoose: 0,
      problemCourse: null, //查看提问的项目
      courseTeam: [],
    };
  },
  methods: {
    change(val) {
      console.log(val);
    },
    time() {
      if (!this.now) {
        this.now = new Date().getTime();
        return true;
      } else {
        let time = new Date().getTime();
        if (time - this.now > 3000) {
          this.now = time;
          return true;
        } else {
          return false;
        }
      }
    },
    addHomeworkBox() {
      this.homeworkList.push({ name: "" });
      this.itemCount++;
    },
    reduceHomeworkBox() {
      var a = this.homeworkList;
      a.splice(a.length - 1);
      this.itemCount--;
    },
    goTo(path) {
      this.$router.push(path);
    },
    goToCourse(courseId) {
      if (courseId) {
        this.$router.push(
          "/studentAddCourse?cid=" +
          courseId +
          "&userid=" +
          this.userid +
          "&oid=" +
          this.oid +
          "&org=" +
          this.org
        );
      } else {
        this.$router.push(
          "/studentAddCourse?userid=" +
          this.userid +
          "&oid=" +
          this.oid +
          "&org=" +
          this.org
        );
      }
      // this.$router.push(path);
    },
    tableRowClassName({ row, rowIndex }) {
      if ((rowIndex + 1) % 2 === 0) {
        return "even_row";
      } else {
        return "";
      }
    },
    jump(cid) {
      // window.open(
      //   "//pbl.cocorobo.cn/pbl-student-table/dist/#/courseDetail?courseId=" +
      //     cid +
      //     "&userid=" +
      //     this.userid
      // );
      window.parent.postMessage({ cid: cid, screenType: "2" }, "*");
    },
    get(cid) {
      window.parent.postMessage({ cid: cid, screenType: "3s" }, "*");
    },
    getA(cid) {
      this.$router.push("/courseProgress?cid=" + cid + "&userid=" +
        this.tuserid +
        "&oid=" +
        this.oid +
        "&org=" +
        this.org)
    },
    handle_remove(file, fileList) {
      var _tmp = this.fileList;
      for (var i = 0, len = _tmp.length; i < len; i++) {
        if (_tmp[i].uid == file.uid) {
          _tmp.splice(i, 1);
          break;
        }
        this.fileList = _tmp;
      }
    },
    handle_remove1(file, fileList) {
      var _tmp = this.fileList1;
      for (var i = 0, len = _tmp.length; i < len; i++) {
        if (_tmp[i].uid == file.uid) {
          _tmp.splice(i, 1);
          break;
        }
        this.fileList1 = _tmp;
      }
    },
    handleCurrentChange(val) {
      // console.log(`当前页: ${val}`);
      this.page = val;
      this.getCourse();
    },
    init() { },
    handleClose(done) {
      done();
    },
    handleRemove(file, fileList) {
      console.log(file, fileList);
    },
    handlePictureCardPreview(file) {
      this.dialogImageUrl = file.url;
      this.dialogVisible1 = true;
    },
    onExceed() {
      this.$message.error("项目海报仅支持上传一张，请删除后再进行上传");
    },
    //uuid生成
    guid() {
      return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(
        /[xy]/g,
        function (c) {
          var r = (Math.random() * 16) | 0,
            v = c == "x" ? r : (r & 0x3) | 0x8;
          return v.toString(16);
        }
      );
    },
    time() {
      if (!this.now) {
        this.now = new Date().getTime();
        return true;
      } else {
        let time = new Date().getTime();
        if (time - this.now > 3000) {
          this.now = time;
          return true;
        } else {
          return false;
        }
      }
    },
    searchCourse() {
      this.page = 1;
      this.getCourse();
    },
    clear() {
      for (var i = 0; i < this.CourseType[0].length; i++) {
        this.courseTypeId[this.CourseType[0][i].id] = "";
      }
      this.getCourse();
    },
    getCourse() {
      var typeE = [];
      var typea, typeb, typec, typed;
      if (this.isChoose == 1) {
        for (var i = 0; i < this.CourseType[0].length; i++) {
          if (this.courseTypeId[this.CourseType[0][i].id] == "1") {
            typeE.push(this.CourseType[0][i].id);
          } else if (this.courseTypeId[this.CourseType[0][i].id] != "") {
            if (this.CourseType[0][i].name == "年级") {
              typea = this.courseTypeId[this.CourseType[0][i].id];
            } else if (this.CourseType[0][i].name == "专栏") {
              typeb = this.courseTypeId[this.CourseType[0][i].id];
            } else if (this.CourseType[0][i].name == "栏目") {
              typeb = this.courseTypeId[this.CourseType[0][i].id];
            } else if (this.CourseType[0][i].name == "学院") {
              typeb = this.courseTypeId[this.CourseType[0][i].id];
            } else if (this.CourseType[0][i].name == "新技能") {
              typec = this.courseTypeId[this.CourseType[0][i].id];
            } else if (this.CourseType[0][i].name == "学科") {
              typed = this.courseTypeId[this.CourseType[0][i].id];
            }
            this.courseTypeSon.push(
              this.courseTypeId[this.CourseType[0][i].id]
            );
          }
        }
      }
      this.isLoading = true;
      let params = {
        type: this.groupA,
        uid: this.tuserid,
        oid: this.oid,
        org: this.org,
        typea: typea != undefined ? typea : "",
        typeb: typeb != undefined ? typeb : "",
        typec: typec != undefined ? typec : "",
        typed: typed != undefined ? typed : "",
        typeE: typeE.join(","),
        cu: "",
        cn: this.courseName,
        page: this.page,
      };
      this.ajax
        .get(this.$store.state.api + "selectStudentCourseNew2", params)
        .then((res) => {
          this.isLoading = false;
          this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
          this.course = res.data[0];
        })
        .catch((err) => {
          console.error(err);
        });
    },
    getTypeName() {
      this.$forceUpdate();
      this.page = 1;
      this.isChoose = 1;
      this.getCourse();
    },
    // searchCourse() {
    //   this.isLoading = true;
    //   let params = {
    //     cu: "",
    //     cn: this.courseName,
    //     page: this.page,
    //   };
    //   this.ajax
    //     .get(this.$store.state.api + "searchCourse", params)
    //     .then((res) => {
    //       this.isLoading = false;
    //       this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
    //       this.course = res.data[0];
    //     })
    //     .catch((err) => {
    //       this.isLoading = false;
    //       console.error(err);
    //     });
    // },
    deleteCourse(cid) {
      // if (this.time()) {
      this.$confirm("确定删除此项目吗?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          this.isLoading = true;
          let params = {
            cid: cid,
          };
          this.ajax
            .get(this.$store.state.api + "deleteStudentCourse", params)
            .then((res) => {
              this.isLoading = false;
              this.$message.success("删除成功");
              this.getCourse();
            })
            .catch((err) => {
              console.error(err);
            });
        })
        .catch(() => {
          loading.close();
          this.isLoading = false;
          return;
        });
      // }
    },
    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] = "";
            }
            if (this.oid == "69893dca-1d47-11ed-8c78-005056b86db5") {
              if (res.data[0][i].name == "栏目") {
                this.CourseType[0][i].name = "主题";
              }
            }
            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]); //去除公共分类
              }
            }
          }
          this.selectTypeByOid();
          this.selectTypeByOrg();
        })
        .catch((err) => {
          console.error(err);
        });
    },
    selectTypeByOid() {
      let params = {
        oid: this.oid,
      };
      this.ajax
        .get(this.$store.state.api + "selectTypeByOid", params)
        .then((res) => {
          for (var i = 0; i < res.data[0].length; i++) {
            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]);
              }
            }
          }
          this.$forceUpdate();
        })
        .catch((err) => {
          console.error(err);
        });
    },
    selectTypeByOrg() {
      let params = {
        oid: this.org,
      };
      this.ajax
        .get(this.$store.state.api + "selectTypeByOrg", params)
        .then((res) => {
          for (var i = 0; i < res.data[0].length; i++) {
            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]);
              }
            }
          }
          this.$forceUpdate();
        })
        .catch((err) => {
          console.error(err);
        });
    },
    openCourse() {
      this.dialogVisibleCourse = true;
      this.getTeamCourse();
    },
    getTeamCourse() {
      let params = {
        uid: this.tuserid,
        oid: this.oid,
      };
      this.ajax
        .get(this.$store.state.api + "selectCourseTeam", params)
        .then((res) => {
          this.courseTeam = res.data[0];
        })
        .catch((err) => {
          console.error(err);
        });
    },
    search() {
      this.page = 1;
      this.getCourse();
    },
    checkProblem(res) {
      this.problemCourse = res;
      this.dialogVisible = true;
    },
    copyCourse(cid) {
      let params = [{
        cid: cid,
        uid: this.userid
      }]
      this.ajax
        .post(this.$store.state.api + "copyCourse", params)
        .then((res) => {
          this.page = 1
          this.groupA = '0'
          this.clear()
        })
        .catch((err) => {
          console.error(err);
        });
    }
  },
  created() {
    this.page = 1;
    this.selectType();
    this.getCourse();
  },
};
</script>

<style scoped>
.sub_head {
  position: relative;
}
.sub_head::after {
  content: "";
  width: 100%;
  background: #5a9cea;
  height: 2px;
  position: absolute;
  left: 0;
  bottom: -18px;
}

.pb_head > div:nth-child(1) > span:nth-child(2) {
  /* font-size: 16px; */
  font-size: 26px;
  cursor: pointer;
  margin-left: 10px;
  /* color: #ab582f; */
  /* color: #409eff; */
  color: #999;
}
.pb_head > div:nth-child(1) > span:nth-child(2):hover{
  color:#000
}
.dialog_diy>>>.el-dialog__header {
  background: #3d67bc !important;
  padding: 15px 20px;
}

.dialog_diy>>>.el-dialog__title {
  color: #fff;
}

.dialog_diy>>>.el-dialog__headerbtn {
  top: 19px;
}

.dialog_diy>>>.el-dialog__headerbtn .el-dialog__close {
  color: #fff;
}

.dialog_diy>>>.el-dialog__headerbtn .el-dialog__close:hover {
  color: #fff;
}

.student_head>>>.el-button--primary {
  background-color: #2268bc;
}

.xls_button {
  font-size: 14px;
  cursor: pointer;
  text-decoration: underline;
  color: rgb(34, 104, 188);
}

.student_head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  flex-direction: row;
  flex-wrap: wrap;
}

.top {
  display: flex;
  justify-content: space-between;
}

.bgColor {
  background: #466b99;
}

.student_search {
  display: flex;
  align-items: center;
  width: calc(100% / 3);
}

.student_search span {
  margin: 0 10px 0 0;
  min-width: 65px;
}

.student_button {
  display: flex;
  overflow: hidden;
  height: 40px;
}

.upload-demo {
  display: flex;
  flex-direction: column;
  align-items: end;
  /* position: relative; */
  width: 100px;
  overflow: hidden;
}

.student_table {
  padding: 20px 0;
  height: 100%;
  /* overflow: auto; */
  min-height: 360px;
}

.student_empty {
  display: flex;
  justify-content: center;
  align-items: center;
}

.el-table>>>.even_row {
  background-color: #f1f1f1;
}

.time {
  font-size: 13px;
  color: #999;
}

.course_button {
  padding: 10px 20px;
}

.course_button_box {
  display: flex;
  margin-top: 5px;
  justify-content: space-between;
}

.course_rate {
  margin-top: 5px;
}

.course_view {
  display: flex;
  align-items: center;
  margin: 5px 0 0 0;
}

.course_view i {
  background-image: url("../../../assets/liulan.png");
  width: 25px;
  height: 25px;
  background-size: 100% 100%;
  /* margin-top: 1px; */
  line-height: 25px;
  vertical-align: text-top;
  background-repeat: no-repeat;
}

.image {
  width: 100%;
  height: 150px;
  display: block;
}

.course_box {
  display: flex;
  flex-wrap: wrap;
}

.student_page {
  width: 95%;
  margin: 0 auto;
}

.course_create_box {
  font-size: 18px;
}

.course_name {
  margin-top: 10px;
}

.course_name span {
  margin-bottom: 10px;
  display: block;
}

.homework_box {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.course_homework {
  width: 130px;
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
  margin: 0 10px 10px 0;
}

.course_type {
  margin-top: 10px;
  display: flex;
}

.course_type1 span {
  margin-bottom: 10px;
  display: block;
}

.course_type2 {
  margin-left: 20px;
}

.course_type2 span {
  margin-bottom: 10px;
  display: block;
}

.course_empty {
  color: rgb(110, 110, 110);
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.el_cards>>>.el-card__body {
  height: 100%;
}

.courseBtnBox {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: calc(100% - 170px);
  padding: 10px;
}

.wordUpload {
  display: flex;
}

.wordUpload>.buttonUp {
  margin-right: 5px;
}

.out_box {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  width: 250px;
  background: #fff;
  margin-right: 25px;
  border: 1px solid #ccc;
  height: fit-content;
  box-sizing: border-box;
  border-radius: 0px 0px 5px 5px;
  /* overflow: hidden; */
  margin-bottom: 15px;
  position: relative;
}

.bottom_box {
  display: flex;
  padding: 10px 0 10px 10px;
  flex-direction: column;
  box-sizing: border-box;
  height: 121px;
  flex-wrap: nowrap;
  justify-content: space-evenly;
}

.bottom_box>div:nth-child(1) {
  width: 230px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tup {
  width: 100%;
  height: 141.06px;
  margin: 0 auto;
  overflow: hidden;
  display: flex;
  align-items: center;
}

.tup>img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.kc_time {
  margin-top: 8px;
  font-size: 14px;
  color: #999;
}

.kc_t {
  margin-top: 5px;
  width: 100%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.three_bottom {
  display: flex;
  flex-direction: row;
  justify-content: space-around;
  height: 40px;
  align-items: center;
  background: #f5f4f4;
  font-size: 14px;
}

.three_bottom>div {
  cursor: pointer;
}

.three_bottom>div:hover {
  color: #79a2ff;
}

.head_left {
  display: flex;
}

.student_input>>>.el-input__inner {
  height: 40px;
  width: 190px;
  font-size: 13px;
  padding: 0 10px;
}

.course_button {
  color: #fff;
  background: #2268bc;
  width: 75px;
  height: 40px;
  padding: 0 !important;
  font-size: 12px;
  line-height: 40px;
}

.all_choose {
  margin: 15px 0 10px;
  height: 20%;
  display: flex;
  flex-direction: row;
  align-items: center;
  width: calc(100% / 3 - 50px);
}

.all_choose>span {
  width: 50px;
  display: block;
}

.choose {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: space-between;
  height: 100%;
  justify-content: flex-start;
  width: 60%;
  min-width: 868px;
  align-items: center;
}

.choose>div:nth-child(2) {
  margin-left: 1%;
  width: 32.33333%;
}

/* .choose>div:nth-child(4) {
  margin-right: 1%;
  width: 32.33333%;
} */

.choose>div:nth-child(5) {
  margin: 5px 0 0 1%;
}

.choose>div:nth-child(4)>span {
  width: 74px !important;
  min-width: 74px;
}

.choose>div:nth-child(4)>>>.el-select {
  width: 217.5px;
  min-width: 215.06px;
}

.clear {
  width: 70px;
  height: 35px;
  background: #2268bc;
  color: #fff;
  text-align: center;
  border-radius: 5px;
  line-height: 35px;
  cursor: pointer;
  margin-left: 20px;
}

.ct_box {
  height: 500px;
  overflow: auto;
  display: flex;
  flex-wrap: wrap;
}

.myCourse {
  position: absolute;
  background: #3c3c3c;
  width: 70px;
  height: 30px;
  border-radius: 30px;
  color: #fff;
  font-size: 14px;
  text-align: center;
  line-height: 30px;
  top: 5px;
  left: 5px;
}

.xtCourse {
  position: absolute;
  background: #41a5f0;
  width: 70px;
  height: 30px;
  border-radius: 30px;
  color: #fff;
  font-size: 14px;
  text-align: center;
  line-height: 30px;
  top: 5px;
  left: 5px;
}

.subClick {
  font-size: 16px;
  cursor: pointer;
  margin-left: 10px;
  /* color: #ab582f; */
  color: #409eff;
}

.more {
  position: relative;

}

.more:hover div {
  display: block;
  color: #000;
}

.more div {
  position: absolute;
  bottom: 0px;
  transform: translate(-50%, 100%);
  background: #f5f4f4;
  padding: 10px 20px;
  z-index: 99;
  width: 40px;
  border-radius: 5px;
  box-shadow: 0 0 3px 3px #80808020;
  display: none;
}

.more div>span+span {
  margin-top: 10px;
}

.more div>span {
  display: block;
  width: 100%;
  text-align: center;
}

.more div>span:hover {
  color: #79a2ff;
}
</style>
