|
@@ -53,9 +53,9 @@
|
|
|
|
|
|
<div v-if="!readonly">
|
|
|
<span class="price">
|
|
|
- ¥ {{ CourseData.price }}
|
|
|
- <span class="price_1" v-text="changePrice('1', CourseData.price)"></span>
|
|
|
- <span class="price_2" v-text="changePrice('2', CourseData.price)"></span>
|
|
|
+ ¥
|
|
|
+ <span class="price_1" v-text="changePrice('1', CourseData.price)" />
|
|
|
+ <span class="price_2" v-text="changePrice('2', CourseData.price)" />
|
|
|
</span>
|
|
|
<button class="get" @click="getPurchase">
|
|
|
{{ is_buy ? '去学习' : '获取课程' }}
|
|
@@ -77,15 +77,11 @@
|
|
|
<p>{{ item.book_author }}</p>
|
|
|
<div class="operation">
|
|
|
<span class="price">
|
|
|
- ¥ {{ item.book_price }}
|
|
|
- <span class="price_1" v-text="changePrice('1', item.book_price)"></span>
|
|
|
- <span class="price_2" v-text="changePrice('2', item.book_price)"></span>
|
|
|
+ ¥
|
|
|
+ <span class="price_1" v-text="changePrice('1', item.book_price)" />
|
|
|
+ <span class="price_2" v-text="changePrice('2', item.book_price)" />
|
|
|
</span>
|
|
|
- <button
|
|
|
- v-if="!readonly"
|
|
|
- :class="['get', is_buy ? 'acquired' : '']"
|
|
|
- @click="goBook(item.book_id)"
|
|
|
- >
|
|
|
+ <button v-if="!readonly" :class="['get', is_buy ? 'acquired' : '']" @click="goBook(item.book_id)">
|
|
|
{{ is_buy ? '已' : '' }}购买
|
|
|
</button>
|
|
|
</div>
|
|
@@ -110,213 +106,83 @@
|
|
|
</div>
|
|
|
<div class="course-arrangement">
|
|
|
<div class="moreTitle">课程安排</div>
|
|
|
- <div v-for="(item, i) in CourseData.cs_item_list" :key="i" class="angement">
|
|
|
+ <div v-for="(item, i) in CourseData.cs_item_list" :key="i" class="course-list">
|
|
|
<div class="courseOne">
|
|
|
<div class="title">
|
|
|
<div>
|
|
|
<span>{{ i + 1 }}.</span>
|
|
|
<span>{{ item.name }}</span>
|
|
|
</div>
|
|
|
- <div style="color: #737373">{{ item.begin_time }} ~ {{ item.end_time }}</div>
|
|
|
+ <div class="courseOne-time">{{ item.begin_time }} ~ {{ item.end_time }}</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="content" style="width: 670px">
|
|
|
- <el-collapse @change="handleChange">
|
|
|
+ <el-collapse @change="handleChange(item.id)">
|
|
|
<el-collapse-item :name="item.id">
|
|
|
<div slot="title" class="Coursetasks">
|
|
|
课程任务
|
|
|
<img
|
|
|
- v-show="openList.indexOf(item.id) !== -1"
|
|
|
- class="open1"
|
|
|
- src="../../assets/course_details/open1.png"
|
|
|
- />
|
|
|
- <img
|
|
|
- v-show="openList.indexOf(item.id) === -1"
|
|
|
- class="open2"
|
|
|
- src="../../assets/course_details/open2.png"
|
|
|
+ class="arrow"
|
|
|
+ :src="
|
|
|
+ openList.includes(item.id)
|
|
|
+ ? require('../../assets/course_details/open1.png')
|
|
|
+ : require('../../assets/course_details/open2.png')
|
|
|
+ "
|
|
|
/>
|
|
|
</div>
|
|
|
<div class="courseContent">
|
|
|
- <div class="tasks">
|
|
|
- <div class="title">
|
|
|
- <span></span>
|
|
|
- 课前任务
|
|
|
- </div>
|
|
|
- <div class="content">
|
|
|
- <el-collapse-item
|
|
|
- v-for="(it, it_i) in item.pre_task_list"
|
|
|
- :key="it_i"
|
|
|
- :name="it.id"
|
|
|
- >
|
|
|
- <div
|
|
|
- slot="title"
|
|
|
- :class="
|
|
|
- openList.indexOf(it.id) !== -1 ? 'contenttitle2' : 'contenttitle'
|
|
|
- "
|
|
|
- >
|
|
|
- <span>{{ it.name }}</span>
|
|
|
- <span>
|
|
|
- <span class="gray">{{ it.begin_time }} ~ {{ it.end_time }}</span>
|
|
|
- <span class="gray">···</span>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- <div class="detail">
|
|
|
- <div>
|
|
|
- <span>说明</span>
|
|
|
- <p>
|
|
|
- {{ it.content }}
|
|
|
- </p>
|
|
|
+ <template v-for="li in courseContentList">
|
|
|
+ <div v-if="item[li.id].length > 0" :key="li.id" class="tasks">
|
|
|
+ <div class="title">
|
|
|
+ <span class="red-circle"></span><span>{{ li.name }}任务</span>
|
|
|
+ </div>
|
|
|
+ <div class="content">
|
|
|
+ <el-collapse-item v-for="(it, it_i) in item[li.id]" :key="it_i" :name="it.id">
|
|
|
+ <div slot="title" :class="openList.includes(it.id) ? 'contenttitle2' : 'contenttitle'">
|
|
|
+ <span :title="it.name">{{ it.name }}</span>
|
|
|
+ <span>
|
|
|
+ <span class="gray">{{ it.begin_time }} ~ {{ it.end_time }}</span>
|
|
|
+ <span class="gray">···</span>
|
|
|
+ </span>
|
|
|
</div>
|
|
|
- <div v-if="it.courseware_list.length > 0">
|
|
|
- <span>课件</span>
|
|
|
+ <div class="detail">
|
|
|
<div>
|
|
|
- <div
|
|
|
- v-for="(courseware, courseware_i) in it.courseware_list"
|
|
|
- :key="courseware_i"
|
|
|
- class="btn"
|
|
|
- >
|
|
|
- <img src="../../assets/course_details/file.png" alt="" />
|
|
|
- <span> {{ courseware.courseware_name }} </span>
|
|
|
- </div>
|
|
|
+ <span>说明</span>
|
|
|
+ <p>
|
|
|
+ {{ it.content }}
|
|
|
+ </p>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div v-if="it.accessory_list.length > 0">
|
|
|
- <span>附件</span>
|
|
|
- <div>
|
|
|
- <div
|
|
|
- v-for="(accessory, accessory_i) in it.accessory_list"
|
|
|
- :key="accessory_i"
|
|
|
- class="btn"
|
|
|
- >
|
|
|
- <img src="../../assets/course_details/fileType1.png" alt="" />
|
|
|
- <span> {{ accessory.file_name }} </span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-collapse-item>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="tasks">
|
|
|
- <div class="title">
|
|
|
- <span></span>
|
|
|
- 课中任务
|
|
|
- </div>
|
|
|
- <div class="content">
|
|
|
- <el-collapse-item
|
|
|
- v-for="(it, it_i) in item.mid_task_list"
|
|
|
- :key="it_i"
|
|
|
- :name="it.id"
|
|
|
- >
|
|
|
- <div
|
|
|
- slot="title"
|
|
|
- :class="
|
|
|
- openList.indexOf(it.id) !== -1 ? 'contenttitle2' : 'contenttitle'
|
|
|
- "
|
|
|
- >
|
|
|
- <span>{{ it.name }}</span>
|
|
|
- <span>
|
|
|
- <span class="gray">{{ it.begin_time }} ~ {{ it.end_time }}</span>
|
|
|
- <span class="gray">···</span>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- <div class="detail">
|
|
|
- <div>
|
|
|
- <span>说明</span>
|
|
|
- <p>
|
|
|
- {{ it.content }}
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- <div v-if="it.courseware_list.length > 0">
|
|
|
- <span>课件</span>
|
|
|
- <div>
|
|
|
- <div
|
|
|
- v-for="(courseware, courseware_i) in it.courseware_list"
|
|
|
- :key="courseware_i"
|
|
|
- class="btn"
|
|
|
- >
|
|
|
- <img src="../../assets/course_details/file.png" alt="" />
|
|
|
- <span> {{ courseware.courseware_name }} </span>
|
|
|
+ <div v-if="it.courseware_list.length > 0">
|
|
|
+ <span>课件</span>
|
|
|
+ <div>
|
|
|
+ <div
|
|
|
+ v-for="(courseware, courseware_i) in it.courseware_list"
|
|
|
+ :key="courseware_i"
|
|
|
+ class="btn"
|
|
|
+ >
|
|
|
+ <img src="../../assets/course_details/file.png" alt="" />
|
|
|
+ <span> {{ courseware.courseware_name }} </span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <div v-if="it.accessory_list.length > 0">
|
|
|
- <span>附件</span>
|
|
|
- <div>
|
|
|
- <div
|
|
|
- v-for="(accessory, accessory_i) in it.accessory_list"
|
|
|
- :key="accessory_i"
|
|
|
- class="btn"
|
|
|
- >
|
|
|
- <img src="../../assets/course_details/fileType1.png" alt="" />
|
|
|
- <span> {{ accessory.file_name }} </span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-collapse-item>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-if="item.after_task_list.length > 0" class="tasks">
|
|
|
- <div class="title">
|
|
|
- <span></span>
|
|
|
- 课后任务
|
|
|
- </div>
|
|
|
- <div class="content">
|
|
|
- <el-collapse-item
|
|
|
- v-for="(it, it_i) in item.after_task_list"
|
|
|
- :key="it_i"
|
|
|
- :name="it.id"
|
|
|
- >
|
|
|
- <div
|
|
|
- slot="title"
|
|
|
- :class="
|
|
|
- openList.indexOf(it.id) !== -1 ? 'contenttitle2' : 'contenttitle'
|
|
|
- "
|
|
|
- >
|
|
|
- <span>{{ it.name }}</span>
|
|
|
- <span>
|
|
|
- <span class="gray">{{ it.begin_time }} ~ {{ it.end_time }}</span>
|
|
|
- <span class="gray">···</span>
|
|
|
- </span>
|
|
|
- </div>
|
|
|
- <div class="detail">
|
|
|
- <div>
|
|
|
- <span>说明</span>
|
|
|
- <p>
|
|
|
- {{ it.content }}
|
|
|
- </p>
|
|
|
- </div>
|
|
|
- <div v-if="it.courseware_list.length > 0">
|
|
|
- <span>课件</span>
|
|
|
- <div>
|
|
|
- <div
|
|
|
- v-for="(courseware, courseware_i) in it.courseware_list"
|
|
|
- :key="courseware_i"
|
|
|
- class="btn"
|
|
|
- >
|
|
|
- <img src="../../assets/course_details/file.png" alt="" />
|
|
|
- <span> {{ courseware.courseware_name }} </span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div v-if="it.accessory_list.length > 0">
|
|
|
- <span>附件</span>
|
|
|
- <div>
|
|
|
- <div
|
|
|
- v-for="(accessory, courseware_i) in it.accessory_list"
|
|
|
- :key="courseware_i"
|
|
|
- class="btn"
|
|
|
- >
|
|
|
- <img src="../../assets/course_details/fileType1.png" alt="" />
|
|
|
- <span> {{ accessory.file_name }} </span>
|
|
|
+ <div v-if="it.accessory_list.length > 0">
|
|
|
+ <span>附件</span>
|
|
|
+ <div>
|
|
|
+ <div
|
|
|
+ v-for="(accessory, accessory_i) in it.accessory_list"
|
|
|
+ :key="accessory_i"
|
|
|
+ class="btn"
|
|
|
+ >
|
|
|
+ <img src="../../assets/course_details/fileType1.png" alt="" />
|
|
|
+ <span> {{ accessory.file_name }} </span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </el-collapse-item>
|
|
|
+ </el-collapse-item>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
</el-collapse-item>
|
|
|
</el-collapse>
|
|
@@ -335,6 +201,7 @@
|
|
|
</el-dialog>
|
|
|
</div>
|
|
|
</div>
|
|
|
+
|
|
|
<div v-else-if="!loading" class="non-existent">
|
|
|
<h1>该课程已下架</h1>
|
|
|
</div>
|
|
@@ -356,8 +223,7 @@ export default {
|
|
|
goods_id: query.goods_id,
|
|
|
goods_type: query.goods_type,
|
|
|
readonly: 'readonly' in query ? query.readonly : false,
|
|
|
- enshrine: false,
|
|
|
- SelectShow: '1', // 选择展示课程资源还是下载
|
|
|
+ collection: false,
|
|
|
openList: [],
|
|
|
timer: null, // 获取倒计时
|
|
|
backTime: new Date(),
|
|
@@ -365,17 +231,20 @@ export default {
|
|
|
loading: false,
|
|
|
is_buy: false,
|
|
|
CourseData: null,
|
|
|
- isData: false
|
|
|
+ isData: false,
|
|
|
+ courseContentList: [
|
|
|
+ { id: 'pre_task_list', name: '课前' },
|
|
|
+ { id: 'mid_task_list', name: '课中' },
|
|
|
+ { id: 'after_task_list', name: '课后' }
|
|
|
+ ]
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
// 获取课程详情
|
|
|
this.loading = true;
|
|
|
- CheckMyGoodsBuyStatus({ goods_type: Number(this.goods_type), goods_id: this.goods_id }).then(
|
|
|
- ({ is_buy }) => {
|
|
|
- this.is_buy = is_buy === 'true';
|
|
|
- }
|
|
|
- );
|
|
|
+ CheckMyGoodsBuyStatus({ goods_type: Number(this.goods_type), goods_id: this.goods_id }).then(({ is_buy }) => {
|
|
|
+ this.is_buy = is_buy === 'true';
|
|
|
+ });
|
|
|
GetCourseInfoBox({ id: this.goods_id })
|
|
|
.then(res => {
|
|
|
this.CourseData = res;
|
|
@@ -387,15 +256,15 @@ export default {
|
|
|
this.loading = false;
|
|
|
});
|
|
|
},
|
|
|
+ beforeDestroy() {
|
|
|
+ // 清空定时器
|
|
|
+ clearInterval(this.timer);
|
|
|
+ },
|
|
|
// 方法集合
|
|
|
methods: {
|
|
|
// 课程任务的打开和关闭
|
|
|
handleChange(val) {
|
|
|
- this.openList = val;
|
|
|
- },
|
|
|
- // 选择课程资源还是下载
|
|
|
- SelectShowEvent(num) {
|
|
|
- this.SelectShow = num;
|
|
|
+ this.openList.includes(val) ? this.openList.splice(this.openList.indexOf(val), 1) : this.openList.push(val);
|
|
|
},
|
|
|
goBook(book_id) {
|
|
|
if (!this.is_buy) {
|
|
@@ -404,22 +273,20 @@ export default {
|
|
|
},
|
|
|
// 处理价格
|
|
|
changePrice(type, item) {
|
|
|
- if (item) {
|
|
|
- let str = String(item);
|
|
|
- if (str.indexOf('.') !== -1) {
|
|
|
- if (type === 1) {
|
|
|
- return str.split('.')[0];
|
|
|
- } else if (type === 2) {
|
|
|
- return '.' + str.split('.')[1];
|
|
|
- }
|
|
|
- } else if (type === 1) {
|
|
|
- return str;
|
|
|
+ if (!item) return;
|
|
|
+ let str = String(item);
|
|
|
+ if (str.includes('.')) {
|
|
|
+ if (type === '1') {
|
|
|
+ return str.split('.')[0];
|
|
|
}
|
|
|
+ return '.' + str.split('.')[1];
|
|
|
+ } else if (type === 1) {
|
|
|
+ return str;
|
|
|
}
|
|
|
},
|
|
|
// 收藏
|
|
|
enshrineEvent() {
|
|
|
- this.enshrine = !this.enshrine;
|
|
|
+ this.collection = !this.collection;
|
|
|
},
|
|
|
// 购买 需要先加入课程 审核 审核通过之后才能购买课程
|
|
|
getPurchase() {
|
|
@@ -463,11 +330,6 @@ export default {
|
|
|
seconds
|
|
|
};
|
|
|
}
|
|
|
- },
|
|
|
- beforeDestory() {
|
|
|
- // 清空定时器
|
|
|
- clearInterval(this.timer);
|
|
|
- this.timer = null;
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
@@ -476,41 +338,40 @@ export default {
|
|
|
.CourseDetail {
|
|
|
.main {
|
|
|
min-height: 100%;
|
|
|
- padding-top: 52px;
|
|
|
+ padding: 52px 0 20px;
|
|
|
background: #e5e5e5;
|
|
|
- padding-bottom: 20px;
|
|
|
|
|
|
.bookDetail {
|
|
|
+ position: relative;
|
|
|
+ display: flex;
|
|
|
width: 1200px;
|
|
|
height: 524px;
|
|
|
padding: 64px;
|
|
|
margin: 0 auto;
|
|
|
+ overflow: hidden;
|
|
|
background: url('../../assets/course_details/Rectangle113.png');
|
|
|
border-radius: 8px;
|
|
|
- display: flex;
|
|
|
- position: relative;
|
|
|
- overflow: hidden;
|
|
|
|
|
|
.rightUp {
|
|
|
+ position: absolute;
|
|
|
+ top: 0;
|
|
|
+ right: 0;
|
|
|
width: 72px;
|
|
|
height: 72px;
|
|
|
background: url('../../assets/course_details/Rectangle903.png');
|
|
|
- position: absolute;
|
|
|
- right: 0;
|
|
|
- top: 0;
|
|
|
|
|
|
span {
|
|
|
- color: #fff;
|
|
|
- transform: translateX(4px) translateY(4px) rotateZ(45deg);
|
|
|
position: absolute;
|
|
|
- left: 30px;
|
|
|
top: 10px;
|
|
|
+ left: 30px;
|
|
|
+ color: #fff;
|
|
|
+ transform: translateX(4px) translateY(4px) rotateZ(45deg);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.text {
|
|
|
width: 1100px;
|
|
|
- color: white;
|
|
|
+ color: #fff;
|
|
|
|
|
|
.tip:not(.p1) {
|
|
|
margin-top: 36px;
|
|
@@ -521,17 +382,17 @@ export default {
|
|
|
}
|
|
|
|
|
|
.p1 {
|
|
|
- font-size: 40px;
|
|
|
margin-top: 16px;
|
|
|
+ font-size: 40px;
|
|
|
}
|
|
|
|
|
|
.intro {
|
|
|
- height: 36px;
|
|
|
display: -webkit-box;
|
|
|
+ height: 36px;
|
|
|
-webkit-box-orient: vertical;
|
|
|
-webkit-line-clamp: 2;
|
|
|
- text-overflow: ellipsis;
|
|
|
overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
}
|
|
|
|
|
|
> :not(.p1) {
|
|
@@ -570,8 +431,8 @@ export default {
|
|
|
}
|
|
|
|
|
|
&-name {
|
|
|
- font-size: 24px;
|
|
|
margin-top: 12px;
|
|
|
+ font-size: 24px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -580,30 +441,30 @@ export default {
|
|
|
.get {
|
|
|
width: 200px;
|
|
|
height: 56px;
|
|
|
+ margin-left: 30px;
|
|
|
+ font-size: 20px;
|
|
|
+ color: #fff;
|
|
|
+ cursor: pointer;
|
|
|
background: $basicColor;
|
|
|
+ border-style: none;
|
|
|
border-radius: 4px;
|
|
|
- border: none;
|
|
|
outline: none;
|
|
|
- color: #fff;
|
|
|
- font-size: 20px;
|
|
|
- margin-left: 30px;
|
|
|
- cursor: pointer;
|
|
|
}
|
|
|
|
|
|
.acquired {
|
|
|
width: 120px;
|
|
|
height: 40px;
|
|
|
+ margin-left: 30px;
|
|
|
+ font-size: 16px;
|
|
|
+ color: #fff;
|
|
|
+ cursor: pointer;
|
|
|
background: #d5d5d5;
|
|
|
+ border-style: none;
|
|
|
border-radius: 4px;
|
|
|
- border: none;
|
|
|
outline: none;
|
|
|
- color: white;
|
|
|
- font-size: 16px;
|
|
|
- margin-left: 30px;
|
|
|
- cursor: pointer;
|
|
|
}
|
|
|
|
|
|
- .enshrine {
|
|
|
+ .collection {
|
|
|
margin-left: 30px;
|
|
|
|
|
|
img {
|
|
@@ -620,36 +481,36 @@ export default {
|
|
|
margin-top: 30px;
|
|
|
|
|
|
.moreTitle {
|
|
|
- font-weight: 600;
|
|
|
font-size: 20px;
|
|
|
+ font-weight: 600;
|
|
|
color: #000;
|
|
|
}
|
|
|
|
|
|
.moreTitle::before {
|
|
|
+ margin-right: 16px;
|
|
|
+ color: $basicColor;
|
|
|
content: '|';
|
|
|
background: $basicColor;
|
|
|
- color: $basicColor;
|
|
|
- margin-right: 16px;
|
|
|
}
|
|
|
|
|
|
.moreList {
|
|
|
- width: 1300px;
|
|
|
- margin: 0 auto;
|
|
|
display: flex;
|
|
|
flex-wrap: wrap;
|
|
|
+ width: 1300px;
|
|
|
+ margin: 0 auto;
|
|
|
|
|
|
.moreOne {
|
|
|
- margin-right: 20px;
|
|
|
- margin-top: 20px;
|
|
|
+ display: flex;
|
|
|
width: 598px;
|
|
|
height: 236px;
|
|
|
+ margin-top: 20px;
|
|
|
+ margin-right: 20px;
|
|
|
background: #fff;
|
|
|
border-radius: 8px;
|
|
|
- display: flex;
|
|
|
|
|
|
> div {
|
|
|
- margin-left: 32px;
|
|
|
margin-top: 32px;
|
|
|
+ margin-left: 32px;
|
|
|
|
|
|
img {
|
|
|
width: 120px;
|
|
@@ -662,15 +523,15 @@ export default {
|
|
|
margin-right: 23px;
|
|
|
|
|
|
> p:not(.p1) {
|
|
|
+ margin-top: 10px;
|
|
|
font-size: 16px;
|
|
|
color: #2c2c2c;
|
|
|
opacity: 0.7;
|
|
|
- margin-top: 10px;
|
|
|
}
|
|
|
|
|
|
.p1 {
|
|
|
- font-weight: 600;
|
|
|
font-size: 20px;
|
|
|
+ font-weight: 600;
|
|
|
color: #2c2c2c;
|
|
|
}
|
|
|
|
|
@@ -682,14 +543,14 @@ export default {
|
|
|
.get {
|
|
|
width: 120px;
|
|
|
height: 40px;
|
|
|
+ margin-left: 30px;
|
|
|
+ font-size: 20px;
|
|
|
+ color: #fff;
|
|
|
+ cursor: pointer;
|
|
|
background: $basicColor;
|
|
|
+ border-style: none;
|
|
|
border-radius: 4px;
|
|
|
- border: none;
|
|
|
outline: none;
|
|
|
- color: white;
|
|
|
- font-size: 20px;
|
|
|
- margin-left: 30px;
|
|
|
- cursor: pointer;
|
|
|
}
|
|
|
|
|
|
.acquired {
|
|
@@ -728,24 +589,24 @@ export default {
|
|
|
margin-top: 30px;
|
|
|
|
|
|
.moreTitle {
|
|
|
- font-weight: 600;
|
|
|
font-size: 20px;
|
|
|
+ font-weight: 600;
|
|
|
color: #000;
|
|
|
}
|
|
|
|
|
|
.moreTitle::before {
|
|
|
+ margin-right: 16px;
|
|
|
+ color: $basicColor;
|
|
|
content: '|';
|
|
|
background: $basicColor;
|
|
|
- color: $basicColor;
|
|
|
- margin-right: 16px;
|
|
|
}
|
|
|
|
|
|
- .angement {
|
|
|
- margin-top: 30px;
|
|
|
+ .course-list {
|
|
|
width: 1200px;
|
|
|
- background: #fff;
|
|
|
padding: 40px 68px 40px 40px;
|
|
|
+ margin-top: 30px;
|
|
|
font-size: 18px;
|
|
|
+ background: #fff;
|
|
|
|
|
|
> :not(.courseOne) {
|
|
|
padding-left: 40px;
|
|
@@ -766,15 +627,19 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ &-time {
|
|
|
+ color: #737373;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.Coursetasks {
|
|
|
- cursor: pointer;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
font-size: 16px;
|
|
|
+ cursor: pointer;
|
|
|
|
|
|
- img {
|
|
|
+ .arrow {
|
|
|
width: 24px;
|
|
|
margin-left: 8px;
|
|
|
}
|
|
@@ -788,35 +653,35 @@ export default {
|
|
|
font-size: 16px;
|
|
|
color: #2c2c2c;
|
|
|
|
|
|
- span {
|
|
|
+ .red-circle {
|
|
|
+ position: relative;
|
|
|
+ right: 3px;
|
|
|
display: inline-block;
|
|
|
width: 8px;
|
|
|
height: 8px;
|
|
|
+ margin-right: 16px;
|
|
|
background: #fe6d68;
|
|
|
border-radius: 50%;
|
|
|
- position: relative;
|
|
|
- right: 3px;
|
|
|
- margin-right: 16px;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.content {
|
|
|
- border-left: 1px solid #fe6d68;
|
|
|
+ padding-bottom: 10px;
|
|
|
padding-left: 20px;
|
|
|
margin-top: 16px;
|
|
|
- padding-bottom: 10px;
|
|
|
+ border-left: 1px solid #fe6d68;
|
|
|
|
|
|
.contenttitle {
|
|
|
- padding: 0 10px;
|
|
|
- width: 670px;
|
|
|
- background: #fff;
|
|
|
- border: 1px solid #e6e6e6;
|
|
|
- border-radius: 8px;
|
|
|
display: flex;
|
|
|
- justify-content: space-between;
|
|
|
align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ width: 670px;
|
|
|
+ padding: 0 10px;
|
|
|
font-size: 16px;
|
|
|
cursor: pointer;
|
|
|
+ background: #fff;
|
|
|
+ border: 1px solid #e6e6e6;
|
|
|
+ border-radius: 8px;
|
|
|
|
|
|
img {
|
|
|
width: 16px;
|
|
@@ -827,6 +692,13 @@ export default {
|
|
|
margin-left: 16px;
|
|
|
}
|
|
|
|
|
|
+ > span:first-child {
|
|
|
+ width: 180px;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+
|
|
|
.gray {
|
|
|
opacity: 0.5;
|
|
|
}
|
|
@@ -836,30 +708,30 @@ export default {
|
|
|
@extend .contenttitle;
|
|
|
|
|
|
background: #f9f9f9;
|
|
|
- border-bottom-left-radius: 0;
|
|
|
border-bottom-right-radius: 0;
|
|
|
+ border-bottom-left-radius: 0;
|
|
|
}
|
|
|
|
|
|
.detail {
|
|
|
width: 599px;
|
|
|
+ padding-bottom: 24px;
|
|
|
background: #fff;
|
|
|
border: 1px solid #e7e7e7;
|
|
|
- border-bottom-left-radius: 8px;
|
|
|
border-bottom-right-radius: 8px;
|
|
|
+ border-bottom-left-radius: 8px;
|
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
|
- padding-bottom: 24px;
|
|
|
|
|
|
> div {
|
|
|
- margin-top: 24px;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
+ margin-top: 24px;
|
|
|
|
|
|
> :nth-child(1) {
|
|
|
width: 78px;
|
|
|
min-width: 78px;
|
|
|
+ margin-left: 24px;
|
|
|
font-size: 16px;
|
|
|
color: #000;
|
|
|
- margin-left: 24px;
|
|
|
}
|
|
|
|
|
|
> :nth-child(2) {
|
|
@@ -870,18 +742,18 @@ export default {
|
|
|
}
|
|
|
|
|
|
.btn {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
width: 270px;
|
|
|
height: 40px;
|
|
|
+ cursor: pointer;
|
|
|
background: #fff;
|
|
|
border: 1px solid #dbdbdb;
|
|
|
border-radius: 4px;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- cursor: pointer;
|
|
|
|
|
|
img {
|
|
|
- margin-left: 16px;
|
|
|
margin-right: 8px;
|
|
|
+ margin-left: 16px;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -903,38 +775,38 @@ export default {
|
|
|
margin-top: 24px;
|
|
|
|
|
|
.sele {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
width: 318px;
|
|
|
height: 48px;
|
|
|
+ font-size: 20px;
|
|
|
+ color: #9f9f9f;
|
|
|
background: #ebebeb;
|
|
|
border-radius: 30px;
|
|
|
- color: #9f9f9f;
|
|
|
- font-size: 20px;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
|
|
|
> div {
|
|
|
width: 158px;
|
|
|
height: 48px;
|
|
|
- border-radius: 30px;
|
|
|
line-height: 48px;
|
|
|
text-align: center;
|
|
|
cursor: pointer;
|
|
|
+ border-radius: 30px;
|
|
|
}
|
|
|
|
|
|
.select {
|
|
|
+ color: #fff;
|
|
|
background: $basicColor;
|
|
|
- color: white;
|
|
|
box-shadow: 0 2px 8px rgba(255, 153, 0, 0.15);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.Catalogue {
|
|
|
- margin: 24px auto;
|
|
|
+ display: flex;
|
|
|
width: 1200px;
|
|
|
height: 710px;
|
|
|
+ margin: 24px auto;
|
|
|
background: #fff;
|
|
|
- display: flex;
|
|
|
|
|
|
.left {
|
|
|
width: 340px;
|
|
@@ -944,8 +816,8 @@ export default {
|
|
|
.title {
|
|
|
width: 80%;
|
|
|
margin: 29px auto;
|
|
|
- font-weight: 600;
|
|
|
font-size: 24px;
|
|
|
+ font-weight: 600;
|
|
|
color: #000;
|
|
|
}
|
|
|
}
|
|
@@ -957,23 +829,22 @@ export default {
|
|
|
}
|
|
|
|
|
|
.Resources {
|
|
|
- margin: 24px auto;
|
|
|
+ display: flex;
|
|
|
width: 1200px;
|
|
|
height: 710px;
|
|
|
+ margin: 24px auto;
|
|
|
background: #fff;
|
|
|
- display: flex;
|
|
|
|
|
|
div {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
height: 40px;
|
|
|
+ padding: 0 10px;
|
|
|
margin: 10px;
|
|
|
+ cursor: pointer;
|
|
|
border: 1px solid rgba(44, 44, 44, 0.15);
|
|
|
border-radius: 4px;
|
|
|
- padding: 0 10px;
|
|
|
- margin-left: 10px;
|
|
|
- display: flex;
|
|
|
- justify-content: center;
|
|
|
- align-items: center;
|
|
|
- cursor: pointer;
|
|
|
|
|
|
img {
|
|
|
width: 24px;
|
|
@@ -992,17 +863,21 @@ export default {
|
|
|
}
|
|
|
|
|
|
.non-existent {
|
|
|
- text-align: center;
|
|
|
margin-top: 15vh;
|
|
|
+ text-align: center;
|
|
|
}
|
|
|
</style>
|
|
|
|
|
|
<style lang="scss">
|
|
|
.el-collapse {
|
|
|
- border: none;
|
|
|
+ border-style: none;
|
|
|
+
|
|
|
+ &-item + &-item {
|
|
|
+ margin-top: 12px;
|
|
|
+ }
|
|
|
|
|
|
.el-collapse-item__header {
|
|
|
- border: none;
|
|
|
+ border-style: none;
|
|
|
|
|
|
.l-collapse-item__arrow,
|
|
|
.el-icon-arrow-right {
|
|
@@ -1011,7 +886,7 @@ export default {
|
|
|
}
|
|
|
|
|
|
.el-collapse-item__wrap {
|
|
|
- border: none;
|
|
|
+ border-style: none;
|
|
|
}
|
|
|
|
|
|
.el-collapse-item__content {
|
|
@@ -1024,14 +899,14 @@ export default {
|
|
|
padding: 32px 20px 24px 32px;
|
|
|
|
|
|
.el-dialog__title {
|
|
|
- line-height: 150%;
|
|
|
font-size: 20px;
|
|
|
+ line-height: 150%;
|
|
|
color: #000;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.el-dialog__body {
|
|
|
- padding: 0 32px 32px 32px;
|
|
|
+ padding: 0 32px 32px;
|
|
|
}
|
|
|
}
|
|
|
</style>
|