zengyicheng 2 gadi atpakaļ
vecāks
revīzija
d31afb788b

+ 1 - 1
dist/index.html

@@ -1 +1 @@
-<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>pbl-student</title><link href=./static/css/app.0ad20062ff3a40d05708d216b85fd738.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.35062edb107d42aa0826.js></script><script type=text/javascript src=./static/js/app.bf79ba6cbc442535786e.js></script></body></html>
+<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>pbl-student</title><link href=./static/css/app.afe0f28d45d472d7cf651a4ea99dc023.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=./static/js/manifest.3ad1d5771e9b13dbdad2.js></script><script type=text/javascript src=./static/js/vendor.35062edb107d42aa0826.js></script><script type=text/javascript src=./static/js/app.1b2285282686fc969ecd.js></script></body></html>

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/css/app.0ad20062ff3a40d05708d216b85fd738.css.map


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/css/app.afe0f28d45d472d7cf651a4ea99dc023.css


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/css/app.afe0f28d45d472d7cf651a4ea99dc023.css.map


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/app.1b2285282686fc969ecd.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/app.1b2285282686fc969ecd.js.map


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/app.bf79ba6cbc442535786e.js


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/app.bf79ba6cbc442535786e.js.map


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 0
dist/static/js/manifest.3ad1d5771e9b13dbdad2.js.map


BIN
src/assets/icon/nav.png


BIN
src/assets/icon/navActive.png


BIN
src/assets/icon/video.png


BIN
src/assets/icon/videoActive.png


BIN
src/assets/icon/word.png


BIN
src/assets/icon/wordActive.png


BIN
src/assets/icon/work.png


BIN
src/assets/icon/workActive.png


+ 406 - 374
src/components/courseDetail.vue

@@ -1,72 +1,89 @@
 <template>
-	<div class="pb_content">
-		<div class="pb_content_body" style="height: 100%">
-			<div class="body_student">
-				<div class="student_head">
-					<div class="box_course">
-						<div class="wheel">
-							<img
-								:src="
-									this.courseDetail.cover != null &&
-									this.courseDetail.cover != ''
-										? JSON.parse(this.courseDetail.cover).length > 0
-											? JSON.parse(this.courseDetail.cover)[0].url
-											: mr
-										: mr
-								"
-								alt=""
-							/>
-						</div>
-						<div class="right_box">
-							<div class="right_box_title">
-								{{ courseDetail.title }}
-							</div>
-							<div class="people">
-								<div class="man">
-									<img src="../assets/people.png" alt="" />
-								</div>
-								<div class="person">
-									{{ courseDetail.vcount != null ? courseDetail.vcount : 0 }}人
-								</div>
-							</div>
-							<div class="now_study" @click="dialogVisible = true">
-								立即学习
-							</div>
-						</div>
-					</div>
-					<div class="choose_who">
-						<div
-							class="who_choose"
-							:class="choose == 0 ? 'choose' : ''"
-							@click="choose = 0"
-						>
-							项目详情
-						</div>
-						<div
-							class="who_choose"
-							:class="choose == 1 ? 'choose' : ''"
-							@click="choose = 1"
-						>
-							项目学员
-						</div>
-					</div>
-				</div>
-				<div class="student_body" v-if="choose == 0">
-					<div class="nav">
-						{{
-							courseDetail.brief != null ? courseDetail.brief : "暂无课程简介"
-						}}
-					</div>
-				</div>
-				<div class="student_body_one" v-else>
-					<div class="student" v-if="aStudentName.length > 0">
-						<div v-for="(item, index) in aStudentName" :key="index">
-							{{ item.name }}
-						</div>
-					</div>
-					<div class="student" v-else>暂无课程学员</div>
-				</div>
-				<!-- <div
+  <div class="pb_content">
+    <div class="pb_content_body" style="height: 100%">
+      <div class="body_student">
+        <div class="student_head">
+          <div class="box_course">
+            <div class="wheel">
+              <img
+                :src="
+                  this.courseDetail.cover != null &&
+                  this.courseDetail.cover != ''
+                    ? JSON.parse(this.courseDetail.cover).length > 0
+                      ? JSON.parse(this.courseDetail.cover)[0].url
+                      : mr
+                    : mr
+                "
+                alt=""
+              />
+            </div>
+            <div class="right_box">
+              <div class="right_box_title">
+                {{ courseDetail.title }}
+              </div>
+              <div class="people">
+                <div class="man">
+                  <img src="../assets/people.png" alt="" />
+                </div>
+                <div class="person">
+                  {{ courseDetail.vcount != null ? courseDetail.vcount : 0 }}人
+                </div>
+              </div>
+              <div class="now_study" @click="dialogVisible = true">
+                立即学习
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="student_body">
+          <div style="width: 20%; margin-right: 10px; background: #fff">
+            <div
+              class="blue_box_one"
+              v-for="(item, index) in chapInfo"
+              :key="index"
+            >
+              <div>第{{ index + 1 }}阶段</div>
+              <div>{{ item.dyName }}</div>
+            </div>
+          </div>
+          <div style="width: 80%; background: #fff">
+            <div class="choose_who">
+              <div
+                class="who_choose"
+                :class="choose == 0 ? 'choose' : ''"
+                @click="choose = 0"
+              >
+                项目详情
+              </div>
+              <div
+                class="who_choose"
+                :class="choose == 1 ? 'choose' : ''"
+                @click="choose = 1"
+              >
+                项目学员
+              </div>
+            </div>
+            <div class="right" v-if="choose == 0">
+              <div class="nav">
+                {{
+                  courseDetail.brief != null
+                    ? courseDetail.brief
+                    : "暂无课程简介"
+                }}
+              </div>
+            </div>
+            <div class="right_one" v-else>
+              <div class="student" v-if="aStudentName.length > 0">
+                <div v-for="(item, index) in aStudentName" :key="index">
+                  {{ item.name }}
+                </div>
+              </div>
+              <div class="student" v-else>暂无课程学员</div>
+            </div>
+          </div>
+        </div>
+
+        <!-- <div
           style="
             text-align: center;
             padding: 30px 0 20px 0;
@@ -75,316 +92,331 @@
         >
           此处滚动加载..
         </div> -->
-				<el-dialog
-					title="阶段选择"
-					:visible.sync="dialogVisible"
-					:append-to-body="true"
-					width="700px"
-					:before-close="handleClose"
-					class="dialog_change"
-				>
-					<div style="font-size: 20px">请选择阶段</div>
-					<div
-						style="
-							padding: 20px 30px;
-							display: flex;
-							flex-direction: row;
-							flex-wrap: wrap;
-						"
-					>
-						<div
-							class="blue_box"
-							v-for="(item, index) in chapInfo"
-							:key="index"
-							@click="addUserRate(index)"
-						>
-							<div>第{{ index + 1 }}阶段</div>
-							<div>{{ item.dyName }}</div>
-						</div>
-					</div>
-				</el-dialog>
-			</div>
-		</div>
-	</div>
+        <el-dialog
+          title="阶段选择"
+          :visible.sync="dialogVisible"
+          :append-to-body="true"
+          width="700px"
+          :before-close="handleClose"
+          class="dialog_change"
+        >
+          <div style="font-size: 20px">请选择阶段</div>
+          <div
+            style="
+              padding: 20px 30px;
+              display: flex;
+              flex-direction: row;
+              flex-wrap: wrap;
+            "
+          >
+            <div
+              class="blue_box"
+              v-for="(item, index) in chapInfo"
+              :key="index"
+              @click="addUserRate(index)"
+            >
+              <div>第{{ index + 1 }}阶段</div>
+              <div>{{ item.dyName }}</div>
+            </div>
+          </div>
+        </el-dialog>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				choose: 0,
-				dialogVisible: false,
-				id: this.$route.query.courseId,
-				userid: this.$route.query.userid,
-				courseDetail: {},
-				aStudentName: [],
-				chapInfo: [],
-				mr: require("../assets/icon/wheel.png"),
-			};
-		},
-		methods: {
-			handleClose(done) {
-				done();
-			},
-			goTo(path) {
-				this.$router.push(path);
-			},
-			addUserRate(i) {
-				var suid = this.userid;
-				// if (
-				//   JSON.parse(this.courseDetail.course_student).indexOf(suid) == -1 &&
-				//   JSON.parse(this.courseDetail.userid) != suid
-				// ) {
-				//   this.$message.error("你没有该权限");
-				//   return;
-				// }
-				if (this.courseDetail.userid != suid) {
-					if (JSON.parse(this.courseDetail.course_student).indexOf(suid) == -1) {
-						this.$message.error("你没有该权限");
-						return;
-					}
-				}
-				let params = {
-					uid: this.userid,
-					cid: this.id,
-				};
-				this.ajax
-					.get(this.$store.state.api + "addUserR", params)
-					.then((res) => {
-						console.log(res.data);
-						this.updateVc();
-						this.goTo(
-							"/study?type=" +
-								i +
-								"&courseId=" +
-								this.id +
-								"&userid=" +
-								this.userid
-						);
-					})
-					.catch((err) => {
-						console.error(err);
-					});
-			},
-			updateVc() {
-				let params = {
-					cid: this.id,
-				};
-				this.ajax
-					.get(this.$store.state.api + "updateVc", params)
-					.then((res) => {
-						console.log(res.data);
-					})
-					.catch((err) => {
-						console.error(err);
-					});
-			},
-			getCourseDetail() {
-				const loading = this.$loading.service({
-					background: "rgba(255, 255, 255, 0.7)",
-					target: document.querySelector(".student_table"),
-				});
-				let params = {
-					courseId: this.id,
-				};
-				this.ajax
-					.get(this.$store.state.api + "selectCourseDetail", params)
-					.then((res) => {
-						loading.close();
-						// this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
-						this.courseDetail = res.data[0][0];
-						this.aStudentName = res.data[1];
-						this.chapInfo = JSON.parse(this.courseDetail.chapters);
-					})
-					.catch((err) => {
-						loading.close();
-						console.error(err);
-					});
-			},
-			// getSName() {
-			// 	let params = {
-			// 		uid: JSON.stringify(this.courseDetail.course_student),
-			// 	};
-			// 	this.ajax
-			// 		.get(this.$store.state.api + "selectSName", params)
-			// 		.then((res) => {
-			// 			this.aStudentName = res.data[0];
-			// 		})
-			// 		.catch((err) => {
-			// 			console.error(err);
-			// 		});
-			// },
-		},
-		created() {
-			this.getCourseDetail();
-			document.scrollingElement.scrollTop = 0;
-			// this.getSName();
-		},
-	};
+export default {
+  data() {
+    return {
+      choose: 0,
+      dialogVisible: false,
+      id: this.$route.query.courseId,
+      userid: this.$route.query.userid,
+      courseDetail: {},
+      aStudentName: [],
+      chapInfo: [],
+      mr: require("../assets/icon/wheel.png"),
+    };
+  },
+  methods: {
+    handleClose(done) {
+      done();
+    },
+    goTo(path) {
+      this.$router.push(path);
+    },
+    addUserRate(i) {
+      var suid = this.userid;
+      // if (
+      //   JSON.parse(this.courseDetail.course_student).indexOf(suid) == -1 &&
+      //   JSON.parse(this.courseDetail.userid) != suid
+      // ) {
+      //   this.$message.error("你没有该权限");
+      //   return;
+      // }
+      if (this.courseDetail.userid != suid) {
+        if (JSON.parse(this.courseDetail.course_student).indexOf(suid) == -1) {
+          this.$message.error("你没有该权限");
+          return;
+        }
+      }
+      let params = {
+        uid: this.userid,
+        cid: this.id,
+      };
+      this.ajax
+        .get(this.$store.state.api + "addUserR", params)
+        .then((res) => {
+          console.log(res.data);
+          this.updateVc();
+          this.goTo(
+            "/study?type=" +
+              i +
+              "&courseId=" +
+              this.id +
+              "&userid=" +
+              this.userid
+          );
+        })
+        .catch((err) => {
+          console.error(err);
+        });
+    },
+    updateVc() {
+      let params = {
+        cid: this.id,
+      };
+      this.ajax
+        .get(this.$store.state.api + "updateVc", params)
+        .then((res) => {
+          console.log(res.data);
+        })
+        .catch((err) => {
+          console.error(err);
+        });
+    },
+    getCourseDetail() {
+      const loading = this.$loading.service({
+        background: "rgba(255, 255, 255, 0.7)",
+        target: document.querySelector(".student_table"),
+      });
+      let params = {
+        courseId: this.id,
+      };
+      this.ajax
+        .get(this.$store.state.api + "selectCourseDetail", params)
+        .then((res) => {
+          loading.close();
+          // this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
+          this.courseDetail = res.data[0][0];
+          this.aStudentName = res.data[1];
+          this.chapInfo = JSON.parse(this.courseDetail.chapters);
+        })
+        .catch((err) => {
+          loading.close();
+          console.error(err);
+        });
+    },
+    // getSName() {
+    // 	let params = {
+    // 		uid: JSON.stringify(this.courseDetail.course_student),
+    // 	};
+    // 	this.ajax
+    // 		.get(this.$store.state.api + "selectSName", params)
+    // 		.then((res) => {
+    // 			this.aStudentName = res.data[0];
+    // 		})
+    // 		.catch((err) => {
+    // 			console.error(err);
+    // 		});
+    // },
+  },
+  created() {
+    this.getCourseDetail();
+    document.scrollingElement.scrollTop = 0;
+    // this.getSName();
+  },
+};
 </script>
 
 <style scoped>
-	.body_student {
-		margin: 10px auto;
-		width: 98%;
-		height: 100%;
-	}
-	.student_head {
-		width: 100%;
-		background: #fff;
-		height: 30%;
-	}
-	.wheel {
-		width: 210px;
-	}
-	.man {
-		width: 16px;
-		height: 16px;
-	}
-	.wheel > img,
-	.man > img {
-		width: 100%;
-		height: 100%;
-	}
-	.box_course {
-		display: flex;
-		padding: 35px 0 0 60px;
-	}
-	.right_box {
-		display: flex;
-		flex-direction: column;
-		margin-left: 30px;
-		align-items: flex-start;
-	}
-	.right_box_title {
-		font-size: 23px;
-	}
-	.people {
-		display: flex;
-		margin-top: 20px;
-	}
-	.person {
-		margin-left: 10px;
-		line-height: 18px;
-	}
-	.now_study {
-		width: 150px;
-		height: 35px;
-		color: #fff;
-		background: #41cda6;
-		text-align: center;
-		line-height: 35px;
-		border-radius: 5px;
-		font-size: 13px;
-		cursor: pointer;
-		margin-top: 30px;
-	}
-	.choose_who {
-		display: flex;
-		margin: 30px 0 0 60px;
-	}
-	.who_choose {
-		height: 28px;
-		cursor: pointer;
-	}
-	.choose_who > div:nth-child(2) {
-		margin-left: 35px;
-	}
-	.choose {
-		border-bottom: 5px solid #3ec6a0;
-		color: #57cdac;
-	}
-	.student_body {
-		width: 100%;
-		margin: 0 auto;
-		background: #fff;
-		margin-top: 20px;
-		padding: 0 0 20px;
-		min-height: 1000px;
-	}
-	.nav {
-		margin: 0 auto;
-		width: 80%;
-		padding-top: 20px;
-		text-indent: 25px;
-	}
-	.pic {
-		width: 100%;
-		display: flex;
-		flex-direction: row;
-		flex-wrap: wrap;
-		height: 100%;
-		justify-content: space-evenly;
-	}
-	.Img {
-		/*width: 30%; */
-		width: 300px;
-		margin: 20px 50px;
-		margin: 20px 10px;
-		border: 1px solid #dbdbdb;
-		border-radius: 5px;
-		overflow: hidden;
-	}
-	.Img > img {
-		width: 100%;
-		height: 100%;
-	}
-	.student_body_one {
-		width: 100%;
-		margin: 0 auto;
-		background: #fff;
-		height: 100%;
-		margin-top: 20px;
-		min-height: 1000px;
-	}
-	.student {
-		width: 85%;
-		display: flex;
-		flex-direction: row;
-		flex-wrap: wrap;
-		justify-content: flex-start;
-		margin: 0 auto;
-		padding: 20px 0;
-	}
-	.student > div {
-		width: 12%;
-		height: 35px;
-		background: #e3759a;
-		text-align: center;
-		border: 1px solid #e3759a;
-		border-radius: 5px;
-		color: #fff;
-		line-height: 35px;
-		margin: 10px;
-	}
-	.dialog_change >>> .el-dialog {
-		border-radius: 5px;
-	}
-	.dialog_change >>> .el-dialog__header {
-		background: #537bb8;
-	}
-	.dialog_change >>> .el-dialog__title {
-		color: #fff;
-		line-height: 5px;
-	}
-	.dialog_change >>> .el-dialog__body {
-		background: #f5f5f5;
-	}
-	.blue_box {
-		width: 30%;
-		height: 100px;
-		text-align: center;
-		color: #fff;
-		background-image: linear-gradient(to right, #30c499, #75ceba);
-		border-radius: 7px;
-		margin: 10px;
-		cursor: pointer;
-	}
-	.blue_box > div:nth-child(1) {
-		font-size: 17px;
-		line-height: 65px;
-	}
-	.blue_box > div:nth-child(2) {
-		line-height: 0px;
-	}
+.body_student {
+  margin: 10px auto;
+  width: 98%;
+  height: 100%;
+}
+.student_head {
+  width: 100%;
+  background: #fff;
+  height: 30%;
+}
+.wheel {
+  width: 210px;
+}
+.man {
+  width: 16px;
+  height: 16px;
+}
+.wheel > img,
+.man > img {
+  width: 100%;
+  height: 100%;
+}
+.box_course {
+  display: flex;
+  padding: 35px 0 20px 60px;
+}
+.right_box {
+  display: flex;
+  flex-direction: column;
+  margin-left: 30px;
+  align-items: flex-start;
+}
+.right_box_title {
+  font-size: 23px;
+}
+.people {
+  display: flex;
+  margin-top: 20px;
+}
+.person {
+  margin-left: 10px;
+  line-height: 18px;
+}
+.now_study {
+  width: 150px;
+  height: 35px;
+  color: #fff;
+  background: #41cda6;
+  text-align: center;
+  line-height: 35px;
+  border-radius: 5px;
+  font-size: 13px;
+  cursor: pointer;
+  margin-top: 30px;
+}
+.choose_who {
+  display: flex;
+  margin: 15px 0 0 25px;
+}
+.who_choose {
+  height: 28px;
+  cursor: pointer;
+}
+.choose_who > div:nth-child(2) {
+  margin-left: 35px;
+}
+.choose {
+  border-bottom: 5px solid #3ec6a0;
+  color: #57cdac;
+}
+.student_body {
+  display: flex;
+}
+.student_body,
+.right {
+  width: 100%;
+  margin: 0 auto;
+  margin-top: 10px;
+  padding: 0 0 20px;
+  min-height: 688px;
+}
+.nav {
+  margin: auto 25px;
+  width: 80%;
+  padding-top: 5px;
+  text-indent: 25px;
+}
+.pic {
+  width: 100%;
+  display: flex;
+  flex-direction: row;
+  flex-wrap: wrap;
+  height: 100%;
+  justify-content: space-evenly;
+}
+.Img {
+  /*width: 30%; */
+  width: 300px;
+  margin: 20px 50px;
+  margin: 20px 10px;
+  border: 1px solid #dbdbdb;
+  border-radius: 5px;
+  overflow: hidden;
+}
+.Img > img {
+  width: 100%;
+  height: 100%;
+}
+.student_body_one,
+.right_one {
+  width: 100%;
+  margin: 0 auto;
+  background: #fff;
+  margin-top: 10px;
+  min-height: 688px;
+}
+.student {
+  width: 85%;
+  display: flex;
+  flex-direction: row;
+  flex-wrap: wrap;
+  justify-content: flex-start;
+  margin: auto 10px;
+}
+.student > div {
+  width: 12%;
+  height: 35px;
+  background: #e3759a;
+  text-align: center;
+  border: 1px solid #e3759a;
+  border-radius: 5px;
+  color: #fff;
+  line-height: 35px;
+  margin: 10px;
+}
+.dialog_change >>> .el-dialog {
+  border-radius: 5px;
+}
+.dialog_change >>> .el-dialog__header {
+  background: #537bb8;
+}
+.dialog_change >>> .el-dialog__title {
+  color: #fff;
+  line-height: 5px;
+}
+.dialog_change >>> .el-dialog__body {
+  background: #f5f5f5;
+}
+.blue_box,
+.blue_box_one {
+  width: 30%;
+  height: 100px;
+  text-align: center;
+  color: #fff;
+  background-image: linear-gradient(to right, #30c499, #75ceba);
+  border-radius: 7px;
+  margin: 10px;
+  cursor: pointer;
+}
+.blue_box_one {
+  width: 95% !important;
+  height: 45px !important;
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-start;
+  align-items: center;
+}
+.blue_box > div:nth-child(1),
+.blue_box_one > div:nth-child(1) {
+  font-size: 17px;
+  line-height: 65px;
+}
+.blue_box_one > div:nth-child(1) {
+  margin: 0 10px;
+}
+.blue_box > div:nth-child(2) {
+  line-height: 0px;
+}
 </style>

+ 897 - 769
src/components/study.vue

@@ -1,27 +1,88 @@
 <template>
-	<div class="pb_content">
-		<div class="pb_content_body">
-			<div class="body_student">
-				<div class="student_head">
-					<div class="box_course">
-						<div class="wheel">
-							<div class="workd_media">
-								<!-- <el-image
+  <div class="pb_content">
+    <div class="pb_content_body" style="display: flex">
+      <div style="width: 20%; margin-right: 10px; background: #fff">
+        <div class="courseTitle">
+          {{ courseDetail.title }}
+        </div>
+        <div class="ml">目录</div>
+        <div
+          class="blue_box_one"
+          v-for="(item, index) in chapInfoList"
+          :key="index"
+        >
+          <div>第{{ index + 1 }}阶段</div>
+          <div>{{ item.dyName }}</div>
+        </div>
+      </div>
+      <div class="body_student">
+        <div class="study_top">
+          <div class="checkbox">
+            <div
+              class="check"
+              :class="{ checked: type == 1 }"
+              @click="type = 1"
+            >
+              <div v-if="type == 1">
+                <img src="../assets/icon/videoActive.png" alt="" />
+              </div>
+              <div v-else><img src="../assets/icon/video.png" alt="" /></div>
+              视频
+            </div>
+            <div
+              class="check"
+              :class="{ checked: type == 2 }"
+              @click="type = 2"
+            >
+              <div v-if="type == 2">
+                <img src="../assets/icon/navActive.png" alt="" />
+              </div>
+              <div v-else><img src="../assets/icon/nav.png" alt="" /></div>
+              文档资料
+            </div>
+
+            <div
+              class="check"
+              :class="{ checked: type == 3 }"
+              @click="type = 3"
+            >
+              <div v-if="type == 3">
+                <img src="../assets/icon/wordActive.png" alt="" />
+              </div>
+              <div v-else><img src="../assets/icon/word.png" alt="" /></div>
+              附件
+            </div>
+            <div
+              class="check"
+              :class="{ checked: type == 4 }"
+              @click="type = 4"
+            >
+              <div v-if="type == 4">
+                <img src="../assets/icon/workActive.png" alt="" />
+              </div>
+              <div v-else><img src="../assets/icon/work.png" alt="" /></div>
+              作业与测验
+            </div>
+          </div>
+        </div>
+        <div class="student_head" v-if="type == 1">
+          <div class="box_course">
+            <div class="wheel">
+              <div class="workd_media">
+                <!-- <el-image
                 style="width: 100%; height: 300px"
                 :src="require('../../assets/tu4.png')"
               ></el-image> -->
-								<video-player
-									class="video-player vjs-custom-skin"
-									ref="videoPlayer"
-									:playsinline="true"
-									:options="playerO"
-									@play="onPlayerPlay($event)"
-									style="width: 50%;
-    height: 100%;
-    margin: 20px auto;"
-								></video-player>
-							</div>
-							<!-- <div class="cd_content_steps">
+                <video-player
+                  class="video-player vjs-custom-skin"
+                  ref="videoPlayer"
+                  :playsinline="true"
+                  :options="playerO"
+                  @play="onPlayerPlay($event)"
+                  style="width: 65%; height: 100%; margin: 20px auto"
+                ></video-player>
+              </div>
+              <!-- <div class="cd_content_steps">
 								<div
 									class="cd_steps_box"
 									v-for="(media, index) in vedio"
@@ -29,167 +90,169 @@
 									@click="switchVideo(media, index)"
 								>
 									 <i :class="{ active: index < 1 }"></i> -->
-							<!-- <i
+              <!-- <i
 										:class="{
 											active: playerOptions.sources[0].src == media,
 										}"
 									></i>
 									<span>视频{{ index + 1 }}</span> -->
-							<!-- </div>
+              <!-- </div>
 							</div> -->
-							<!-- <img src="../assets/sp2.png" alt="" /> -->
-						</div>
-						<div style="font-size: 18px; margin: 15px">
-							{{ chapInfo.dyName }}
-						</div>
-					</div>
-				</div>
-				<div class="student_body">
-					<div class="study_top">
-						<div class="checkbox">
-							<div
-								class="check"
-								:class="{ checked: type == 1 }"
-								@click="type = 1"
-							>
-								文档资料
-							</div>
-							<div
-								class="check"
-								:class="{ checked: type == 2 }"
-								@click="type = 2"
-							>
-								视频
-							</div>
-							<div
-								class="check"
-								:class="{ checked: type == 3 }"
-								@click="type = 3"
-							>
-								附件
-							</div>
-						</div>
-						<div @click="openAddWork" class="btn">提交实践作业</div>
-					</div>
-					<div class="project_box" v-if="type == 1">
-						<div class="detail_content_top">
-							<div class="detail_title">{{ chapInfo.dyName }}</div>
-							<div class="detail_time">{{ courseDetail.time }}</div>
-						</div>
-						<div class="detail_content" v-html="courseDetail.template"></div>
-					</div>
-					<div class="project_box" v-if="type == 2">
-						<div class="filebox">
-							<div class="media" v-for="(media, index) in vedio" :key="index">
-								<img
-									:src="
-										media.cover != null && media.cover != ''
-											? JSON.parse(media.cover).length > 0
-												? JSON.parse(media.cover)[0].url
-												: mr
-											: mr
-									"
-									alt=""
-								/>
-								<div class="title">{{ media.name }}</div>
-								<div class="btn" @click="lookVedio(media.url)">点击播放</div>
-							</div>
-						</div>
-					</div>
-					<div class="project_box" v-if="type == 3">
-						<div class="filebox">
-							<div
-								class="file"
-								v-for="(f, index) in file"
-								:key="index"
-								@click="downFile(index)"
-							>
-								<img :src="require('../assets/file.png')" alt="" />
-								<div>{{ f.name }}</div>
-							</div>
-						</div>
-					</div>
-				</div>
-				<el-dialog
-					title="提交实践作业"
-					:visible.sync="dialogVisible"
-					:append-to-body="true"
-					width="500px"
-					:before-close="handleClose"
-					class="dialog_change"
-				>
-					<div class="first">
-						<div>作业名称:</div>
-						<div>{{ chapInfo.dyName }}</div>
-					</div>
-					<div style="font-size: 20px; margin-bottom: 10px">上传作业</div>
-					<el-input
-						type="textarea"
-						resize="none"
-						rows="7"
-						placeholder="输入文字描述..."
-						v-model="studyJuri[0].content"
-					>
-					</el-input>
-					<div class="marginT">
-						<div>上传图片</div>
-						<div
-							class="chapter_add"
-							v-if="studyJuri[0].cover.length == 0"
-							@click="addImg($event)"
-						>
-							<div class="up_photo">
-								<img src="../assets/photo.png" alt="" />
-							</div>
-							<input
-								type="file"
-								accept="image/png,image/gif,image/jpeg"
-								style="display: none"
-								@change="beforeUpload1($event, 1)"
-							/>
-						</div>
-						<div class="chapter_add" v-else>
-							<img
-								:src="
-									studyJuri[0].cover[0].url != null &&
-									studyJuri[0].cover[0].url != ''
-										? studyJuri[0].cover[0].url
-										: mr
-								"
-								alt=""
-							/>
-							<span>{{ studyJuri[0].cover[0].name }}</span>
-							<div class="deleteWord" @click="clean(1)">
-								<img src="../assets/icon/delete.png" alt="" />
-							</div>
-						</div>
-					</div>
-					<div class="marginT">
-						<div>上传视频</div>
-						<div
-							class="chapter_add"
-							v-if="studyJuri[0].upVedio.length == 0"
-							@click="addImg($event)"
-						>
-							<div class="up_photo">
-								<img src="../assets/vidio.png" alt="" />
-							</div>
-							<input
-								type="file"
-								accept="video/mp4,video/quicktime,video/x-msvideo"
-								style="display: none"
-								@change="beforeUpload2($event, 2)"
-							/>
-						</div>
-						<div class="chapter_add" v-else>
-							<img :src="mr" alt="" />
-							<span>{{ studyJuri[0].upVedio[0].name }}</span>
-							<div class="deleteWord" @click="clean(2)">
-								<img src="../assets/icon/delete.png" alt="" />
-							</div>
-						</div>
-					</div>
-					<!-- <div class="marginT">
+              <!-- <img src="../assets/sp2.png" alt="" /> -->
+            </div>
+            <div style="font-size: 18px; margin: 15px">
+              {{ chapInfo.dyName }}
+            </div>
+          </div>
+        </div>
+        <div class="student_body">
+          <div class="videoTop">
+            <div v-if="type == 1">视频列表</div>
+            <div v-if="type == 3">{{ chapInfo.dyName }}</div>
+            <div v-else></div>
+            <div
+              @click="openAddWork"
+              class="upbtn"
+              v-if="type == 1 || type == 2"
+            >
+              提交实践作业
+            </div>
+          </div>
+          <div class="project_box" v-if="type == 2">
+            <div class="detail_content_top">
+              <div class="detail_title">{{ chapInfo.dyName }}</div>
+              <div class="detail_time">{{ courseDetail.time }}</div>
+            </div>
+            <div class="detail_content" v-html="courseDetail.template"></div>
+          </div>
+          <div class="project_box" v-if="type == 1">
+            <div class="filebox">
+              <div class="media" v-for="(media, index) in vedio" :key="index">
+                <img
+                  :src="
+                    media.cover != null && media.cover != ''
+                      ? JSON.parse(media.cover).length > 0
+                        ? JSON.parse(media.cover)[0].url
+                        : mr
+                      : mr
+                  "
+                  alt=""
+                />
+                <div class="title">{{ media.name }}</div>
+                <div class="btn" @click="lookVedio(media.url)">点击播放</div>
+              </div>
+            </div>
+          </div>
+          <div class="project_box" v-if="type == 3">
+            <div class="filebox">
+              <div
+                class="file"
+                v-for="(f, index) in file"
+                :key="index"
+                @click="downFile(index)"
+              >
+                <img :src="require('../assets/file.png')" alt="" />
+                <div>{{ f.name }}</div>
+              </div>
+            </div>
+            <div class="upFile" v-if="type == 3 || type == 4">提交</div>
+          </div>
+          <div class="project_box" v-if="type == 4">
+            <div class="filebox">
+              暂无数据
+              <!-- <div
+                class="file"
+                v-for="(f, index) in file"
+                :key="index"
+                @click="downFile(index)"
+              >
+                <img :src="require('../assets/file.png')" alt="" />
+                <div>{{ f.name }}</div>
+              </div> -->
+            </div>
+            <div class="upFile" v-if="type == 3 || type == 4">提交</div>
+          </div>
+        </div>
+        <el-dialog
+          title="提交实践作业"
+          :visible.sync="dialogVisible"
+          :append-to-body="true"
+          width="500px"
+          :before-close="handleClose"
+          class="dialog_change"
+        >
+          <div class="first">
+            <div>作业名称:</div>
+            <div>{{ chapInfo.dyName }}</div>
+          </div>
+          <div style="font-size: 20px; margin-bottom: 10px">上传作业</div>
+          <el-input
+            type="textarea"
+            resize="none"
+            rows="7"
+            placeholder="输入文字描述..."
+            v-model="studyJuri[0].content"
+          >
+          </el-input>
+          <div class="marginT">
+            <div>上传图片</div>
+            <div
+              class="chapter_add"
+              v-if="studyJuri[0].cover.length == 0"
+              @click="addImg($event)"
+            >
+              <div class="up_photo">
+                <img src="../assets/photo.png" alt="" />
+              </div>
+              <input
+                type="file"
+                accept="image/png,image/gif,image/jpeg"
+                style="display: none"
+                @change="beforeUpload1($event, 1)"
+              />
+            </div>
+            <div class="chapter_add" v-else>
+              <img
+                :src="
+                  studyJuri[0].cover[0].url != null &&
+                  studyJuri[0].cover[0].url != ''
+                    ? studyJuri[0].cover[0].url
+                    : mr
+                "
+                alt=""
+              />
+              <span>{{ studyJuri[0].cover[0].name }}</span>
+              <div class="deleteWord" @click="clean(1)">
+                <img src="../assets/icon/delete.png" alt="" />
+              </div>
+            </div>
+          </div>
+          <div class="marginT">
+            <div>上传视频</div>
+            <div
+              class="chapter_add"
+              v-if="studyJuri[0].upVedio.length == 0"
+              @click="addImg($event)"
+            >
+              <div class="up_photo">
+                <img src="../assets/vidio.png" alt="" />
+              </div>
+              <input
+                type="file"
+                accept="video/mp4,video/quicktime,video/x-msvideo"
+                style="display: none"
+                @change="beforeUpload2($event, 2)"
+              />
+            </div>
+            <div class="chapter_add" v-else>
+              <img :src="mr" alt="" />
+              <span>{{ studyJuri[0].upVedio[0].name }}</span>
+              <div class="deleteWord" @click="clean(2)">
+                <img src="../assets/icon/delete.png" alt="" />
+              </div>
+            </div>
+          </div>
+          <!-- <div class="marginT">
 						<div>附件上传</div>
 						<div
 							class="chapter_add"
@@ -218,613 +281,678 @@
 							</div>
 						</div>
 					</div> -->
-					<div class="upload_send" @click="addWork">提交</div>
-				</el-dialog>
-			</div>
-		</div>
-	</div>
+          <div class="upload_send" @click="addWork">提交</div>
+        </el-dialog>
+      </div>
+    </div>
+  </div>
 </template>
 
 <script>
-	import "../common/aws-sdk-2.235.1.min.js";
-	export default {
-		data() {
-			return {
-				dialogVisible: false,
-				id: this.$route.query.courseId,
-				userid: this.$route.query.userid,
-				courseType: this.$route.query.type,
-				type: 1,
-				vedio: [],
-				file: [],
-				rateList: {
-					ca: 0,
-				},
-				rateParams: [],
-				colors: ["#000", "#000", "#000"],
-				studyJuri: [
-					{
-						content: "",
-						cover: [],
-						upVedio: [],
-						upFile: [],
-					},
-				],
-				mr: require("../assets/tu4.png"),
-				courseDetail: {},
-				chapInfo: [],
-				playerOptions: {
-					playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
-					autoplay: false, //如果true,浏览器准备好时开始回放。
-					muted: false, // 默认情况下将会消除任何音频。
-					loop: false, // 导致视频一结束就重新开始。
-					preload: "auto", // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
-					language: "zh-CN",
-					aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
-					fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
-					sources: [
-						{
-							type: "video/mp4", //这里的种类支持很多种:基本视频格式、直播、流媒体等,具体可以参看git网址项目   || "video/ogg"|| "video/webm"
-							src: "", //url地址require("../../assets/media/aaa.mp4")
-						},
-					],
-					// poster: require("../../assets/tu31.png"), //你的封面地址
-					// poster: dataRes.imgUrl, //你的封面地址
-					notSupportedMessage: "此视频暂无法播放,请稍后再试", //允许覆盖Video.js无法播放媒体源时显示的默认信息。
-					controlBar: {
-						timeDivider: true, //当前时间和持续时间的分隔符
-						durationDisplay: true, //显示持续时间
-						remainingTimeDisplay: false, //是否显示剩余时间功能
-						fullscreenToggle: true, //全屏按钮
-					},
-				},
-				playerO: {},
-				noneBtnImg: false,
-			};
-		},
-		methods: {
-			clean(type) {
-				if (type == 1) {
-					this.studyJuri[0].cover.splice(0, 1);
-				} else if (type == 2) {
-					this.studyJuri[0].upVedio.splice(0, 1);
-				} else {
-					this.studyJuri[0].upFile.splice(0, 1);
-				}
-			},
-			handleClose(done) {
-				done();
-				// this.studyJuri[0].push([
-				// 	{
-				// 		content: "",
-				// 		cover: [],
-				// 		upVedio: [],
-				// 		upFile: [],
-				// 	},
-				// ]);
-			},
-			imgChange(file, fileList, type) {
-				if (type == 1) {
-					var _tmp = this.studyJuri[0].cover;
-				} else if (type == 2) {
-					var _tmp = this.studyJuri[0].upVedio;
-				} else {
-					var _tmp = this.studyJuri[0].upFile;
-				}
-				this.noneBtnImg = _tmp.length >= 1;
-			},
-			addImg(e) {
-				var el = e.currentTarget;
-				el.getElementsByTagName("input")[0].click();
-			},
-			beforeUpload1(event, type) {
-				var file = event.target.files[0];
-				var credentials = {
-					accessKeyId: "AKIATLPEDU37QV5CHLMH",
-					secretAccessKey: "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",
-				}; //秘钥形式的登录上传
-				window.AWS.config.update(credentials);
-				window.AWS.config.region = "cn-northwest-1"; //设置区域
+import "../common/aws-sdk-2.235.1.min.js";
+export default {
+  data() {
+    return {
+      dialogVisible: false,
+      id: this.$route.query.courseId,
+      userid: this.$route.query.userid,
+      courseType: this.$route.query.type,
+      type: 1,
+      vedio: [],
+      file: [],
+      rateList: {
+        ca: 0,
+      },
+      rateParams: [],
+      colors: ["#000", "#000", "#000"],
+      studyJuri: [
+        {
+          content: "",
+          cover: [],
+          upVedio: [],
+          upFile: [],
+        },
+      ],
+      mr: require("../assets/tu4.png"),
+      courseDetail: {},
+      chapInfo: [],
+      chapInfoList: [],
+      playerOptions: {
+        playbackRates: [0.7, 1.0, 1.5, 2.0], //播放速度
+        autoplay: false, //如果true,浏览器准备好时开始回放。
+        muted: false, // 默认情况下将会消除任何音频。
+        loop: false, // 导致视频一结束就重新开始。
+        preload: "auto", // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
+        language: "zh-CN",
+        aspectRatio: "16:9", // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
+        fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
+        sources: [
+          {
+            type: "video/mp4", //这里的种类支持很多种:基本视频格式、直播、流媒体等,具体可以参看git网址项目   || "video/ogg"|| "video/webm"
+            src: "", //url地址require("../../assets/media/aaa.mp4")
+          },
+        ],
+        // poster: require("../../assets/tu31.png"), //你的封面地址
+        // poster: dataRes.imgUrl, //你的封面地址
+        notSupportedMessage: "此视频暂无法播放,请稍后再试", //允许覆盖Video.js无法播放媒体源时显示的默认信息。
+        controlBar: {
+          timeDivider: true, //当前时间和持续时间的分隔符
+          durationDisplay: true, //显示持续时间
+          remainingTimeDisplay: false, //是否显示剩余时间功能
+          fullscreenToggle: true, //全屏按钮
+        },
+      },
+      playerO: {},
+      noneBtnImg: false,
+    };
+  },
+  methods: {
+    clean(type) {
+      if (type == 1) {
+        this.studyJuri[0].cover.splice(0, 1);
+      } else if (type == 2) {
+        this.studyJuri[0].upVedio.splice(0, 1);
+      } else {
+        this.studyJuri[0].upFile.splice(0, 1);
+      }
+    },
+    handleClose(done) {
+      done();
+      // this.studyJuri[0].push([
+      // 	{
+      // 		content: "",
+      // 		cover: [],
+      // 		upVedio: [],
+      // 		upFile: [],
+      // 	},
+      // ]);
+    },
+    imgChange(file, fileList, type) {
+      if (type == 1) {
+        var _tmp = this.studyJuri[0].cover;
+      } else if (type == 2) {
+        var _tmp = this.studyJuri[0].upVedio;
+      } else {
+        var _tmp = this.studyJuri[0].upFile;
+      }
+      this.noneBtnImg = _tmp.length >= 1;
+    },
+    addImg(e) {
+      var el = e.currentTarget;
+      el.getElementsByTagName("input")[0].click();
+    },
+    beforeUpload1(event, type) {
+      var file = event.target.files[0];
+      var credentials = {
+        accessKeyId: "AKIATLPEDU37QV5CHLMH",
+        secretAccessKey: "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",
+      }; //秘钥形式的登录上传
+      window.AWS.config.update(credentials);
+      window.AWS.config.region = "cn-northwest-1"; //设置区域
 
-				var bucket = new window.AWS.S3({ params: { Bucket: "ccrb" } }); //选择桶
-				var _this = this;
+      var bucket = new window.AWS.S3({ params: { Bucket: "ccrb" } }); //选择桶
+      var _this = this;
 
-				if (file) {
-					var params = {
-						Key:
-							file.name.split(".")[0] +
-							new Date().getTime() +
-							"." +
-							file.name.split(".")[1],
-						ContentType: file.type,
-						Body: file,
-						"Access-Control-Allow-Credentials": "*",
-						ACL: "public-read",
-					}; //key可以设置为桶的相抵路径,Body为文件, ACL最好要设置
-					var options = {
-						partSize: 2048 * 1024 * 1024,
-						queueSize: 2,
-						leavePartsOnError: true,
-					};
-					bucket
-						.upload(params, options)
-						.on("httpUploadProgress", function (evt) {
-							//这里可以写进度条
-							// console.log("Uploaded : " + parseInt((evt.loaded * 80) / evt.total) + '%');
-						})
-						.send(function (err, data) {
-							if (err) {
-								var a = _this.$refs.upload1.uploadFiles;
-								a.splice(a.length - 1, a.length);
-								_this.$message.error("上传失败");
-							} else {
-								_this.studyJuri[0].cover.push({
-									name: file.name,
-									url: data.Location,
-									uid: file.uid,
-								});
-								_this.imgChange(null, null, type);
-								console.log(data.Location);
-							}
-						});
-				}
-			},
-			beforeUpload2(event, type) {
-				var file = event.target.files[0];
-				var credentials = {
-					accessKeyId: "AKIATLPEDU37QV5CHLMH",
-					secretAccessKey: "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",
-				}; //秘钥形式的登录上传
-				window.AWS.config.update(credentials);
-				window.AWS.config.region = "cn-northwest-1"; //设置区域
+      if (file) {
+        var params = {
+          Key:
+            file.name.split(".")[0] +
+            new Date().getTime() +
+            "." +
+            file.name.split(".")[1],
+          ContentType: file.type,
+          Body: file,
+          "Access-Control-Allow-Credentials": "*",
+          ACL: "public-read",
+        }; //key可以设置为桶的相抵路径,Body为文件, ACL最好要设置
+        var options = {
+          partSize: 2048 * 1024 * 1024,
+          queueSize: 2,
+          leavePartsOnError: true,
+        };
+        bucket
+          .upload(params, options)
+          .on("httpUploadProgress", function (evt) {
+            //这里可以写进度条
+            // console.log("Uploaded : " + parseInt((evt.loaded * 80) / evt.total) + '%');
+          })
+          .send(function (err, data) {
+            if (err) {
+              var a = _this.$refs.upload1.uploadFiles;
+              a.splice(a.length - 1, a.length);
+              _this.$message.error("上传失败");
+            } else {
+              _this.studyJuri[0].cover.push({
+                name: file.name,
+                url: data.Location,
+                uid: file.uid,
+              });
+              _this.imgChange(null, null, type);
+              console.log(data.Location);
+            }
+          });
+      }
+    },
+    beforeUpload2(event, type) {
+      var file = event.target.files[0];
+      var credentials = {
+        accessKeyId: "AKIATLPEDU37QV5CHLMH",
+        secretAccessKey: "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",
+      }; //秘钥形式的登录上传
+      window.AWS.config.update(credentials);
+      window.AWS.config.region = "cn-northwest-1"; //设置区域
 
-				var bucket = new window.AWS.S3({ params: { Bucket: "ccrb" } }); //选择桶
-				var _this = this;
+      var bucket = new window.AWS.S3({ params: { Bucket: "ccrb" } }); //选择桶
+      var _this = this;
 
-				if (file) {
-					var params = {
-						Key:
-							file.name.split(".")[0] +
-							new Date().getTime() +
-							"." +
-							file.name.split(".")[1],
-						ContentType: file.type,
-						Body: file,
-						"Access-Control-Allow-Credentials": "*",
-						ACL: "public-read",
-					}; //key可以设置为桶的相抵路径,Body为文件, ACL最好要设置
-					var options = {
-						partSize: 2048 * 1024 * 1024,
-						queueSize: 2,
-						leavePartsOnError: true,
-					};
-					bucket
-						.upload(params, options)
-						.on("httpUploadProgress", function (evt) {
-							//这里可以写进度条
-							// console.log("Uploaded : " + parseInt((evt.loaded * 80) / evt.total) + '%');
-						})
-						.send(function (err, data) {
-							if (err) {
-								var a = _this.$refs.upload1.uploadFiles;
-								a.splice(a.length - 1, a.length);
-								_this.$message.error("上传失败");
-							} else {
-								if (type == 2) {
-									_this.studyJuri[0].upVedio.push({
-										name: file.name,
-										url: data.Location,
-										uid: file.uid,
-									});
-									_this.imgChange(null, null, type);
-								} else if (type == 3) {
-									_this.studyJuri[0].upFile.push({
-										name: file.name,
-										url: data.Location,
-										uid: file.uid,
-									});
-									_this.imgChange(null, null, type);
-								}
-								console.log(data.Location);
-							}
-						});
-				}
-			},
-			getCourseDetail() {
-				const loading = this.$loading.service({
-					background: "rgba(255, 255, 255, 0.7)",
-					target: document.querySelector(".student_table"),
-				});
-				var t = this.courseType;
-				let params = {
-					courseId: this.id,
-				};
-				this.ajax
-					.get(this.$store.state.api + "selectCourseDetail", params)
-					.then((res) => {
-						loading.close();
-						// element.imgUrl = JSON.parse(element.chapters).poster;
-						var a = JSON.parse(res.data[0][0].chapters)[t].chapterInfo[0]
-							.chapterData;
-						var b = [
-							"AVI",
-							"NAVI",
-							"MPEG",
-							"ASF",
-							"MOV",
-							"WMV",
-							"3GP",
-							"RM",
-							"RMVB",
-							"FLV",
-							"F4V",
-							"H.264",
-							"H.265",
-							"REAL VIDEO",
-							"MKV",
-							"WebM",
-							"HDDVD",
-							"MP4",
-							"MPG",
-							"M4V",
-							"MGV",
-							"OGV",
-							"QTM",
-							"STR",
-							"AMC",
-							"DVX",
-							"EVO",
-							"DAT",
-							"OGG",
-							"OGM",
-						];
-						for (var i = 0; i < a.length; i++) {
-							if (
-								b.indexOf(
-									a[i].url
-										.split(".")
-										[a[i].url.split(".").length - 1].toLocaleUpperCase()
-								) != -1
-							) {
-								this.vedio.push(a[i]);
-							} else {
-								this.file.push(a[i]);
-							}
-						}
-						// element.mediaList = JSON.parse(element.chapters)[0].chapterInfo[t].chapterData;
-						console.log(this.vedio);
-						console.log(this.file);
-						// this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
-						this.courseDetail = res.data[0][0];
-						this.chapInfo = JSON.parse(this.courseDetail.chapters)[t];
-						// this.playerOptions.poster = this.course.imgUrl;
-						this.playerOptions.sources[0].src =
-							this.vedio.length > 0
-								? this.vedio[0].url
-								: require("../assets/icon/wheel.png");
-						console.log(this.playerOptions.sources[0].src);
-						this.playerO = this.playerOptions;
-					})
-					.catch((err) => {
-						loading.close();
-						console.error(err);
-					});
-			},
-			switchVideo(media, index) {
-				this.playerO = {};
-				this.playerOptions.poster = "";
-				this.playerOptions.sources[0].src = media;
-				this.playerO = this.playerOptions;
-			},
-			onPlayerPlay() {},
-			lookVedio(u) {
-				this.playerOptions.sources[0].src = u;
-				this.playerO = this.playerOptions;
-			},
-			downFile(i) {
-				window.open(this.file[i].url);
-			},
-			openAddWork() {
-				this.dialogVisible = true;
-				this.studyJuri = [
-					{
-						content: "",
-						cover: [],
-						upVedio: [],
-						upFile: [],
-					},
-				];
-			},
-			addWork() {
-				let params = [
-					{
-						uid: this.userid,
-						cid: this.id,
-						stage: this.courseType,
-						content: JSON.stringify(this.studyJuri),
-					},
-				];
-				this.ajax
-					.post(this.$store.state.api + "addWorks", params)
-					.then((res) => {
-						this.$message({
-							message: "提交成功",
-							type: "success",
-						});
-						this.dialogVisible = false;
-						// this.studyJuri.push([
-						// 	{
-						// 		content: "",
-						// 		cover: [],
-						// 		upVedio: [],
-						// 		upFile: [],
-						// 	},
-						// ]);
-					})
-					.catch((err) => {
-						this.$message.error("提交失败");
-						console.error(err);
-					});
-			},
-		},
-		created() {
-			this.getCourseDetail();
-			document.scrollingElement.scrollTop = 0;
-		},
-	};
+      if (file) {
+        var params = {
+          Key:
+            file.name.split(".")[0] +
+            new Date().getTime() +
+            "." +
+            file.name.split(".")[1],
+          ContentType: file.type,
+          Body: file,
+          "Access-Control-Allow-Credentials": "*",
+          ACL: "public-read",
+        }; //key可以设置为桶的相抵路径,Body为文件, ACL最好要设置
+        var options = {
+          partSize: 2048 * 1024 * 1024,
+          queueSize: 2,
+          leavePartsOnError: true,
+        };
+        bucket
+          .upload(params, options)
+          .on("httpUploadProgress", function (evt) {
+            //这里可以写进度条
+            // console.log("Uploaded : " + parseInt((evt.loaded * 80) / evt.total) + '%');
+          })
+          .send(function (err, data) {
+            if (err) {
+              var a = _this.$refs.upload1.uploadFiles;
+              a.splice(a.length - 1, a.length);
+              _this.$message.error("上传失败");
+            } else {
+              if (type == 2) {
+                _this.studyJuri[0].upVedio.push({
+                  name: file.name,
+                  url: data.Location,
+                  uid: file.uid,
+                });
+                _this.imgChange(null, null, type);
+              } else if (type == 3) {
+                _this.studyJuri[0].upFile.push({
+                  name: file.name,
+                  url: data.Location,
+                  uid: file.uid,
+                });
+                _this.imgChange(null, null, type);
+              }
+              console.log(data.Location);
+            }
+          });
+      }
+    },
+    getCourseDetail() {
+      const loading = this.$loading.service({
+        background: "rgba(255, 255, 255, 0.7)",
+        target: document.querySelector(".student_table"),
+      });
+      var t = this.courseType;
+      let params = {
+        courseId: this.id,
+      };
+      this.ajax
+        .get(this.$store.state.api + "selectCourseDetail", params)
+        .then((res) => {
+          loading.close();
+          // element.imgUrl = JSON.parse(element.chapters).poster;
+          var a = JSON.parse(res.data[0][0].chapters)[t].chapterInfo[0]
+            .chapterData;
+          var b = [
+            "AVI",
+            "NAVI",
+            "MPEG",
+            "ASF",
+            "MOV",
+            "WMV",
+            "3GP",
+            "RM",
+            "RMVB",
+            "FLV",
+            "F4V",
+            "H.264",
+            "H.265",
+            "REAL VIDEO",
+            "MKV",
+            "WebM",
+            "HDDVD",
+            "MP4",
+            "MPG",
+            "M4V",
+            "MGV",
+            "OGV",
+            "QTM",
+            "STR",
+            "AMC",
+            "DVX",
+            "EVO",
+            "DAT",
+            "OGG",
+            "OGM",
+          ];
+          for (var i = 0; i < a.length; i++) {
+            if (
+              b.indexOf(
+                a[i].url
+                  .split(".")
+                  [a[i].url.split(".").length - 1].toLocaleUpperCase()
+              ) != -1
+            ) {
+              this.vedio.push(a[i]);
+            } else {
+              this.file.push(a[i]);
+            }
+          }
+          // element.mediaList = JSON.parse(element.chapters)[0].chapterInfo[t].chapterData;
+          console.log(this.vedio);
+          console.log(this.file);
+          // this.total = res.data[0].length > 0 ? res.data[0][0].num : 0;
+          this.courseDetail = res.data[0][0];
+          this.chapInfo = JSON.parse(this.courseDetail.chapters)[t];
+          this.chapInfoList = JSON.parse(this.courseDetail.chapters);
+          // this.playerOptions.poster = this.course.imgUrl;
+          this.playerOptions.sources[0].src =
+            this.vedio.length > 0
+              ? this.vedio[0].url
+              : require("../assets/icon/wheel.png");
+          console.log(this.playerOptions.sources[0].src);
+          this.playerO = this.playerOptions;
+        })
+        .catch((err) => {
+          loading.close();
+          console.error(err);
+        });
+    },
+    switchVideo(media, index) {
+      this.playerO = {};
+      this.playerOptions.poster = "";
+      this.playerOptions.sources[0].src = media;
+      this.playerO = this.playerOptions;
+    },
+    onPlayerPlay() {},
+    lookVedio(u) {
+      this.playerOptions.sources[0].src = u;
+      this.playerO = this.playerOptions;
+    },
+    downFile(i) {
+      window.open(this.file[i].url);
+    },
+    openAddWork() {
+      this.dialogVisible = true;
+      this.studyJuri = [
+        {
+          content: "",
+          cover: [],
+          upVedio: [],
+          upFile: [],
+        },
+      ];
+    },
+    addWork() {
+      let params = [
+        {
+          uid: this.userid,
+          cid: this.id,
+          stage: this.courseType,
+          content: JSON.stringify(this.studyJuri),
+        },
+      ];
+      this.ajax
+        .post(this.$store.state.api + "addWorks", params)
+        .then((res) => {
+          this.$message({
+            message: "提交成功",
+            type: "success",
+          });
+          this.dialogVisible = false;
+          // this.studyJuri.push([
+          // 	{
+          // 		content: "",
+          // 		cover: [],
+          // 		upVedio: [],
+          // 		upFile: [],
+          // 	},
+          // ]);
+        })
+        .catch((err) => {
+          this.$message.error("提交失败");
+          console.error(err);
+        });
+    },
+  },
+  created() {
+    this.getCourseDetail();
+    document.scrollingElement.scrollTop = 0;
+  },
+};
 </script>
 
 <style scoped>
-	.body_student {
-		margin: 0px auto;
-		width: 98%;
-		height: 100%;
-	}
-	.student_head {
-		width: 100%;
-		margin: 0 auto;
-		background: #fff;
-	}
-	.wheel > img,
-	.project > img,
-	.star > img,
-	.evaluate > img,
-	.up_photo > img,
-	.chapter_add > img,
-	.deleteWord > img {
-		width: 100%;
-		height: 100%;
-	}
-	.chapter_add {
-		width: 120px;
-		margin-top: 20px;
-		position: relative;
-		text-align: center;
-	}
-	.deleteWord {
-		width: 22px;
-		height: 22px;
-		position: absolute;
-		right: -10px;
-		top: -10px;
-		cursor: pointer;
-	}
-	.box_course {
-		display: flex;
-		flex-direction: column;
-	}
-	.wheel {
-		width: 100%;
-	}
-	.right_box {
-		display: flex;
-		flex-direction: column;
-		margin-left: 30px;
-		justify-content: space-around;
-	}
-	.right_box_title {
-		font-size: 23px;
-	}
-	.people {
-		display: flex;
-	}
-	.student_body {
-		width: 100%;
-		margin: 0 auto;
-		background: #fff;
-		margin-top: 20px;
-		padding: 0 0 20px;
-	}
-	.study_top {
-		display: flex;
-		flex-direction: row;
-		justify-content: space-between;
-	}
-	.study_top .checkbox {
-		display: flex;
-		align-items: center;
-		margin-left: 25px;
-	}
-	.study_top .check {
-		margin: 0 10px 0 0;
-		/* border-bottom: 4px solid #ccc; */
-		padding-bottom: 5px;
-		width: 80px;
-		text-align: center;
-		color: rgb(170, 170, 170);
-		cursor: pointer;
-		height: 30px;
-		box-sizing: border-box;
-	}
-	.study_top .checked {
-		border-bottom: 4px solid #3FC6A0;
-		padding-bottom: 5px;
-		color: #3FC6A0;
-	}
-	.study_top .btn {
-		margin: 25px;
-		background: #41CDA6;
-		color: #fff;
-		width: 120px;
-		text-align: center;
-		height: 30px;
-		line-height: 30px;
-		font-size: 13px;
-		border-radius: 5px;
-		cursor: pointer;
-	}
-	.project_box {
-		padding: 0 30px 10px 30px;
-	}
+.body_student {
+  margin: 0px auto;
+  width: 80%;
+  height: 100%;
+}
+.student_head {
+  width: 100%;
+  margin: 0 auto;
+  background: #fff;
+}
+.wheel > img,
+.project > img,
+.star > img,
+.evaluate > img,
+.up_photo > img,
+.chapter_add > img,
+.deleteWord > img {
+  width: 100%;
+  height: 100%;
+}
+.chapter_add {
+  width: 120px;
+  margin-top: 20px;
+  position: relative;
+  text-align: center;
+}
+.deleteWord {
+  width: 22px;
+  height: 22px;
+  position: absolute;
+  right: -10px;
+  top: -10px;
+  cursor: pointer;
+}
+.box_course {
+  display: flex;
+  flex-direction: column;
+}
+.wheel {
+  width: 100%;
+}
+.right_box {
+  display: flex;
+  flex-direction: column;
+  margin-left: 30px;
+  justify-content: space-around;
+}
+.right_box_title {
+  font-size: 23px;
+}
+.people {
+  display: flex;
+}
+.student_body {
+  width: 100%;
+  margin: 0 auto;
+  background: #fff;
+  margin-top: 20px;
+  padding: 0 0 20px;
+}
+.study_top {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+  background: #fff;
+  margin: 10px 0;
+  height: 60px;
+}
+.study_top .checkbox {
+  display: flex;
+  align-items: center;
+  margin-left: 25px;
+}
+.study_top .check {
+  margin: 0 15px 0 0;
+  /* border-bottom: 4px solid #ccc; */
+  padding-bottom: 5px;
+  text-align: center;
+  color: rgb(170, 170, 170);
+  cursor: pointer;
+  height: 30px;
+  box-sizing: border-box;
+  display: flex;
+}
+.study_top .checked {
+  border-bottom: 4px solid #3fc6a0;
+  padding-bottom: 5px;
+  color: #3fc6a0;
+  display: flex;
+}
+.study_top .checked > div,
+.study_top .check > div {
+  margin-right: 10px;
+}
+.videoTop {
+  display: flex;
+  flex-direction: row;
+  justify-content: space-between;
+  background: #fff;
+  height: 60px;
+  align-items: center;
+  width: 95%;
+  margin: 10px auto;
+  border-bottom: 2px solid #ededed;
+}
+.upbtn {
+  margin: 25px;
+  background: #70afdb;
+  color: #fff;
+  width: 120px;
+  text-align: center;
+  height: 30px;
+  line-height: 30px;
+  font-size: 13px;
+  border-radius: 5px;
+  cursor: pointer;
+}
+.project_box {
+  padding: 0 30px 10px 30px;
+}
 
-	.filebox {
-		display: flex;
-		flex-wrap: wrap;
-	}
+.filebox {
+  display: flex;
+  flex-wrap: wrap;
+}
 
-	.file {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-		margin: 0 20px 20px 0;
-		cursor: pointer;
-	}
+.file {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  margin: 0 20px 20px 0;
+  cursor: pointer;
+}
 
-	.file div {
-		margin-top: 10px;
-		width: 150px;
-		text-align: center;
-		overflow: hidden;
-		white-space: nowrap;
-		text-overflow: ellipsis;
-	}
+.file div {
+  margin-top: 10px;
+  width: 150px;
+  text-align: center;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+}
 
-	.media {
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-		margin: 0 20px 20px 0;
-		cursor: pointer;
-		width: 250px;
-		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%);
-		border-radius: 0 0 5px 5px;
-		/* border: 1px solid #cecece; */
-		box-sizing: border-box;
-	}
-	.media img {
-		width: 250px;
-		height: 150px;
-		object-fit: cover;
-	}
-	.media .title {
-		padding: 5px 10px;
-		text-align: left;
-		width: 100%;
-		box-sizing: border-box;
-	}
-	.media .btn {
-		width: 100%;
-		height: 35px;
-		line-height: 35px;
-		color: #fff;
-		background: #41CDA6;
-		text-align: center;
-		overflow: hidden;
-		white-space: nowrap;
-		text-overflow: ellipsis;
-	}
+.media {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  margin: 0 20px 20px 0;
+  cursor: pointer;
+  width: 250px;
+  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%);
+  border-radius: 0 0 5px 5px;
+  /* border: 1px solid #cecece; */
+  box-sizing: border-box;
+}
+.media img {
+  width: 250px;
+  height: 150px;
+  object-fit: cover;
+}
+.media .title {
+  padding: 5px;
+  text-align: left;
+  width: 100%;
+  box-sizing: border-box;
+}
+.media .btn {
+  width: 100%;
+  height: 35px;
+  line-height: 35px;
+  color: #fff;
+  background: #606060;
+  text-align: center;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+}
 
-	.detail_content_top {
-		width: 100%;
-		padding: 25px 0 25px 0;
-	}
-	.detail_title {
-		text-align: center;
-		font-size: 24px;
-	}
-	.detail_time {
-		font-size: 13px;
-		padding: 15px 0 0 40px;
-	}
-	.detail_content {
-		line-height: 2pc;
-		width: 90%;
-		margin: 0 auto;
-		padding-top: 30px;
-		text-indent: 30px;
-	}
-	.score_box >>> .el-rate {
-		margin-left: 10px;
-	}
-	.dialog_change >>> .el-dialog {
-		border-radius: 5px;
-	}
-	.dialog_change >>> .el-dialog__header {
-		background: #f2f2f2;
-		text-align: center;
-	}
-	.dialog_change >>> .el-dialog__title {
-		line-height: 5px;
-	}
-	.dialog_change >>> .el-dialog__body {
-		background: #fff;
-		padding: 10px 20px;
-	}
-	.score_box {
-		display: flex;
-		align-items: center;
-		margin-bottom: 18px;
-		margin-top: 20px;
-	}
-	.up_photo {
-		width: 60px;
-		cursor: pointer;
-		margin-top: 10px;
-	}
-	.upload_send {
-		margin: 20px auto;
-		width: 60%;
-		background: #169bd6;
-		text-align: center;
-		height: 35px;
-		line-height: 35px;
-		color: #fff;
-		border-radius: 5px;
-		cursor: pointer;
-	}
-	.marginT {
-		margin-top: 20px;
-	}
-	.workd_media {
-		width: 100%;
-	}
-	.cd_content_steps {
-		display: flex;
-		width: 90%;
-		justify-content: space-around;
-		border-top: 1px solid #eeeeee;
-	}
-	.cd_steps_box {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		flex-direction: column;
-		cursor: pointer;
-	}
-	.first {
-		display: flex;
-		align-items: center;
-		margin: 15px 0 20px 0;
-		font-size: 20px;
-	}
-	.first > div:nth-child(2) {
-		font-size: 16px !important;
-		padding-left: 10px;
-		line-height: 26px;
-		box-sizing: border-box;
-	}
+.detail_content_top {
+  width: 100%;
+  padding: 25px 0 25px 0;
+}
+.detail_title {
+  text-align: center;
+  font-size: 24px;
+}
+.detail_time {
+  font-size: 13px;
+  padding: 15px 0 0 40px;
+}
+.detail_content {
+  line-height: 2pc;
+  width: 90%;
+  margin: 0 auto;
+  padding-top: 30px;
+  text-indent: 30px;
+}
+.score_box >>> .el-rate {
+  margin-left: 10px;
+}
+.dialog_change >>> .el-dialog {
+  border-radius: 5px;
+}
+.dialog_change >>> .el-dialog__header {
+  background: #f2f2f2;
+  text-align: center;
+}
+.dialog_change >>> .el-dialog__title {
+  line-height: 5px;
+}
+.dialog_change >>> .el-dialog__body {
+  background: #fff;
+  padding: 10px 20px;
+}
+.score_box {
+  display: flex;
+  align-items: center;
+  margin-bottom: 18px;
+  margin-top: 20px;
+}
+.up_photo {
+  width: 60px;
+  cursor: pointer;
+  margin-top: 10px;
+}
+.upload_send {
+  margin: 20px auto;
+  width: 60%;
+  background: #169bd6;
+  text-align: center;
+  height: 35px;
+  line-height: 35px;
+  color: #fff;
+  border-radius: 5px;
+  cursor: pointer;
+}
+.marginT {
+  margin-top: 20px;
+}
+.workd_media {
+  width: 100%;
+}
+.cd_content_steps {
+  display: flex;
+  width: 90%;
+  justify-content: space-around;
+  border-top: 1px solid #eeeeee;
+}
+.cd_steps_box {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  flex-direction: column;
+  cursor: pointer;
+}
+.first {
+  display: flex;
+  align-items: center;
+  margin: 15px 0 20px 0;
+  font-size: 20px;
+}
+.first > div:nth-child(2) {
+  font-size: 16px !important;
+  padding-left: 10px;
+  line-height: 26px;
+  box-sizing: border-box;
+}
+.blue_box_one {
+  text-align: center;
+  color: #fff;
+  background-image: linear-gradient(to right, #30c499, #75ceba);
+  border-radius: 7px;
+  margin: 10px;
+  cursor: pointer;
+  width: 95%;
+  height: 45px;
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-start;
+  align-items: center;
+}
+.blue_box_one > div:nth-child(1) {
+  font-size: 17px;
+  line-height: 65px;
+  margin: 0 10px;
+}
+.upFile {
+  margin: 0 auto;
+  width: 120px;
+  background: #70afdb;
+  color: #fff;
+  height: 30px;
+  text-align: center;
+  line-height: 30px;
+  border-radius: 5px;
+  font-size: 14px;
+  cursor: pointer;
+}
+.courseTitle {
+  background: #329c74;
+  width: 95%;
+  margin: 10px auto;
+  height: 40px;
+  color: #fff;
+  line-height: 40px;
+  text-indent: 15px;
+}
+.ml {
+  margin-left: 15px;
+  color: #d1d1d1;
+}
 </style>

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels