canghailong 6 月之前
父節點
當前提交
5508264e6d

+ 44 - 44
src/views/courseCenter/components/ResourceList.vue

@@ -19,56 +19,56 @@
 				:maxlength="30"
 			/>
 		</div>
-		<a-row :gutter="[16, 16]">
-			<a-col :span="8" v-for="(item, index) in resources" :key="index">
-				<a-card hoverable :bordered="false" class="boxShadow cardBox" @click="handleItem(item)">
-					<div style="display: flex; position: relative">
-						<div
-							class="resource"
-							:style="{
-								backgroundSize: 'cover',
-								backgroundPosition: 'center',
-								backgroundImage:
-									'url(' +
-									(item.coverImagePath != '' && sysConfig.FILE_URL + item.coverImagePath
-										? sysConfig.FILE_URL + item.coverImagePath
-										: '') +
-									')'
-							}"
-						>
-							<PlayCircleOutlined
-								:style="{ fontSize: '40px', color: 'white' }"
-								style="position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%)"
-							/>
+		<a-spin :spinning="spinning">
+			<a-row :gutter="[16, 16]">
+				<a-col :span="8" v-for="(item, index) in resources" :key="index">
+					<a-card hoverable :bordered="false" class="boxShadow cardBox" @click="handleItem(item)">
+						<div style="display: flex; position: relative">
 							<div
-								style="
-									position: absolute;
-									bottom: 0;
-									right: 0;
-									background-color: #40a0ff;
-									color: white;
-									padding: 5px 20px;
-									border-radius: 4px;
-								"
+								class="resource"
+								:style="{
+									backgroundSize: 'cover',
+									backgroundPosition: 'center',
+									backgroundImage:
+										'url(' +
+										(item.coverImagePath != '' && sysConfig.FILE_URL + item.coverImagePath
+											? sysConfig.FILE_URL + item.coverImagePath
+											: '') +
+										')'
+								}"
 							>
-								共{{ item.hourCount }}节课
+								<PlayCircleOutlined
+									:style="{ fontSize: '40px', color: 'white' }"
+									style="position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%)"
+								/>
+								<div
+									style="
+										position: absolute;
+										bottom: 0;
+										right: 0;
+										background-color: #40a0ff;
+										color: white;
+										padding: 5px 20px;
+										border-radius: 4px;
+									"
+								>
+									共{{ item.hourCount }}节课
+								</div>
 							</div>
 						</div>
-					</div>
-					<div style="display: flex; flex-direction: column; padding: 5px 10px">
-						<span style="font-size: 16px; font-weight: bold">{{ item.courseName || '-' }}</span>
-						<div>
-							<div>学习进度</div>
-							<a-progress :percent="item.progressVal" />
+						<div style="display: flex; flex-direction: column; padding: 5px 10px">
+							<span style="font-size: 16px; font-weight: bold">{{ item.courseName || '-' }}</span>
+							<div>
+								<div>学习进度</div>
+								<a-progress :percent="item.progressVal" />
+							</div>
+							<span style="font-size: 12px">{{ item.teacherIdName || '-' }}</span>
 						</div>
-						<span style="font-size: 12px">{{ item.teacherIdName || '-' }}</span>
-					</div>
-				</a-card>
-			</a-col>
-		</a-row>
+					</a-card>
+				</a-col>
+			</a-row>
+			<div style="height: 20px"></div>
 
-		<div style="height: 20px"></div>
-		<a-spin :spinning="spinning">
 			<a-empty v-if="resources.length <= 0" />
 		</a-spin>
 		<div style="display: flex; width: 100%; align-items: center; justify-content: center" v-if="resources.length > 0">

+ 39 - 37
src/views/resourceCenter/components/Correlation.vue

@@ -9,47 +9,49 @@
 				</div>
 			</div>
 			<a-spin :spinning="spinning">
-				<a-empty v-if="recommendations.length <= 0" />
-			</a-spin>
-			<div
-				v-for="(item, index) in recommendations"
-				:key="index"
-				class="recommend-item"
-				:class="recommendations.length - 1 > index ? 'borderBottom' : ''"
-				@click="handlerItem(item)"
-			>
 				<div
-					class="item"
-					:style="{
-						backgroundSize: 'cover',
-						backgroundPosition: 'center',
-						borderRadius: '4px',
-						overflow: 'hidden',
-						backgroundImage:
-							'url(' +
-							(item.coverImagePath != '' && sysConfig.FILE_URL + item.coverImagePath
-								? sysConfig.FILE_URL + item.coverImagePath
-								: '') +
-							')'
-					}"
-				></div>
-				<div style="display: flex; flex-direction: column; justify-content: space-between; margin-left: 10px; flex: 1">
-					<span style="font-weight: bold; margin-top: 5px" class="single-line">{{ item.fileName }}</span>
-					<div style="display: flex; justify-content: space-between; align-items: space-between">
-						<div style="display: flex; justify-content: center; align-items: center">
-							<FieldTimeOutlined class="fzcoloe" />
-							<div style="width: 5px"></div>
-							<span class="f12 fzcoloe">{{ item.uploadTime.slice(0, 10) }}</span>
-						</div>
-						<div style="width: 20px"></div>
-						<div style="display: flex; justify-content: center; align-items: center">
-							<EyeOutlined class="fzcoloe" />
-							<div style="width: 5px"></div>
-							<span class="f12 fzcoloe">{{ item.viewCount }}</span>
+					v-for="(item, index) in recommendations"
+					:key="index"
+					class="recommend-item"
+					:class="recommendations.length - 1 > index ? 'borderBottom' : ''"
+					@click="handlerItem(item)"
+				>
+					<div
+						class="item"
+						:style="{
+							backgroundSize: 'cover',
+							backgroundPosition: 'center',
+							borderRadius: '4px',
+							overflow: 'hidden',
+							backgroundImage:
+								'url(' +
+								(item.coverImagePath != '' && sysConfig.FILE_URL + item.coverImagePath
+									? sysConfig.FILE_URL + item.coverImagePath
+									: '') +
+								')'
+						}"
+					></div>
+					<div
+						style="display: flex; flex-direction: column; justify-content: space-between; margin-left: 10px; flex: 1"
+					>
+						<span style="font-weight: bold; margin-top: 5px" class="single-line">{{ item.fileName }}</span>
+						<div style="display: flex; justify-content: space-between; align-items: space-between">
+							<div style="display: flex; justify-content: center; align-items: center">
+								<FieldTimeOutlined class="fzcoloe" />
+								<div style="width: 5px"></div>
+								<span class="f12 fzcoloe">{{ item.uploadTime.slice(0, 10) }}</span>
+							</div>
+							<div style="width: 20px"></div>
+							<div style="display: flex; justify-content: center; align-items: center">
+								<EyeOutlined class="fzcoloe" />
+								<div style="width: 5px"></div>
+								<span class="f12 fzcoloe">{{ item.viewCount }}</span>
+							</div>
 						</div>
 					</div>
 				</div>
-			</div>
+				<a-empty v-if="recommendations.length <= 0" />
+			</a-spin>
 		</div>
 	</div>
 </template>

+ 0 - 5
src/views/resourceCenter/components/ResourceList.vue

@@ -82,8 +82,6 @@
 					</a-card>
 				</a-col>
 			</a-row>
-		</a-spin>
-		<a-spin :spinning="spinning">
 			<a-empty v-if="resources.length <= 0" />
 		</a-spin>
 		<div style="height: 20px"></div>
@@ -120,7 +118,6 @@
 	const searchKeyword = ref('')
 	const resources = ref([])
 	const timeArr = ref()
-	const spinning = ref(false)
 	const dateChange = (e, d) => {
 		currentPage.startTime = d[0]
 		currentPage.endTime = d[1]
@@ -151,7 +148,6 @@
 
 	const getList = () => {
 		loading.value = true
-		spinning.value = true
 		list({ ...currentPage, ...queryData.value })
 			.then((res) => {
 				if (res.code == 200) {
@@ -163,7 +159,6 @@
 			})
 			.finally(() => {
 				loading.value = false
-				spinning.value = false
 			})
 	}
 

+ 39 - 37
src/views/resourceCenter/components/SidebarRecommend.vue

@@ -9,47 +9,49 @@
 				</div>
 			</div>
 			<a-spin :spinning="spinning">
-				<a-empty v-if="recommendations.length <= 0" />
-			</a-spin>
-			<div
-				v-for="(item, index) in recommendations"
-				:key="index"
-				class="recommend-item"
-				:class="recommendations.length - 1 > index ? 'borderBottom' : ''"
-				@click="handlerItem(item)"
-			>
 				<div
-					class="item"
-					:style="{
-						backgroundSize: 'cover',
-						backgroundPosition: 'center',
-						borderRadius: '4px',
-						overflow: 'hidden',
-						backgroundImage:
-							'url(' +
-							(item.coverImagePath != '' && sysConfig.FILE_URL + item.coverImagePath
-								? sysConfig.FILE_URL + item.coverImagePath
-								: '') +
-							')'
-					}"
-				></div>
-				<div style="display: flex; flex-direction: column; justify-content: space-between; margin-left: 10px; flex: 1">
-					<span style="font-weight: bold; margin-top: 5px" class="single-line">{{ item.fileName }}</span>
-					<div style="display: flex; justify-content: space-between; align-items: space-between">
-						<div style="display: flex; justify-content: center; align-items: center">
-							<FieldTimeOutlined class="fzcoloe" />
-							<div style="width: 5px"></div>
-							<span class="f12 fzcoloe">{{ item.uploadTime.slice(0, 10) }}</span>
-						</div>
-						<div style="width: 20px"></div>
-						<div style="display: flex; justify-content: center; align-items: center">
-							<EyeOutlined class="fzcoloe" />
-							<div style="width: 5px"></div>
-							<span class="f12 fzcoloe">{{ item.viewCount }}</span>
+					v-for="(item, index) in recommendations"
+					:key="index"
+					class="recommend-item"
+					:class="recommendations.length - 1 > index ? 'borderBottom' : ''"
+					@click="handlerItem(item)"
+				>
+					<div
+						class="item"
+						:style="{
+							backgroundSize: 'cover',
+							backgroundPosition: 'center',
+							borderRadius: '4px',
+							overflow: 'hidden',
+							backgroundImage:
+								'url(' +
+								(item.coverImagePath != '' && sysConfig.FILE_URL + item.coverImagePath
+									? sysConfig.FILE_URL + item.coverImagePath
+									: '') +
+								')'
+						}"
+					></div>
+					<div
+						style="display: flex; flex-direction: column; justify-content: space-between; margin-left: 10px; flex: 1"
+					>
+						<span style="font-weight: bold; margin-top: 5px" class="single-line">{{ item.fileName }}</span>
+						<div style="display: flex; justify-content: space-between; align-items: space-between">
+							<div style="display: flex; justify-content: center; align-items: center">
+								<FieldTimeOutlined class="fzcoloe" />
+								<div style="width: 5px"></div>
+								<span class="f12 fzcoloe">{{ item.uploadTime.slice(0, 10) }}</span>
+							</div>
+							<div style="width: 20px"></div>
+							<div style="display: flex; justify-content: center; align-items: center">
+								<EyeOutlined class="fzcoloe" />
+								<div style="width: 5px"></div>
+								<span class="f12 fzcoloe">{{ item.viewCount }}</span>
+							</div>
 						</div>
 					</div>
 				</div>
-			</div>
+				<a-empty v-if="recommendations.length <= 0" />
+			</a-spin>
 		</div>
 	</div>
 </template>

+ 7 - 7
src/views/resourceDetails/components/TallList.vue

@@ -39,16 +39,16 @@
 				<div style="display: flex; align-items: center">
 					<span style="font-size: 20px; font-weight: bold">同类型资源</span>
 				</div>
-				<div style="display: flex; flex-direction: column; padding: 10px">
+				<div style="display: flex; flex-direction: column;" class="mt-2">
 					<a-spin :spinning="spinning">
+						<EqualItem
+							v-for="(item, index) in equalList"
+							:key="index"
+							:item="item"
+							:class="equalList.length == index + 1 ? '' : 'mb-2'"
+						></EqualItem>
 						<a-empty v-if="equalList.length <= 0" />
 					</a-spin>
-					<EqualItem
-						v-for="(item, index) in equalList"
-						:key="index"
-						:item="item"
-						:class="equalList.length == index + 1 ? '' : 'mb-2'"
-					></EqualItem>
 				</div>
 			</div>
 		</a-card>

+ 10 - 7
src/views/student/classCentre/index.vue

@@ -64,12 +64,22 @@
 							您的浏览器不支持 HTML5 video 标签。
 						</video>
 					</div>
+					<rightMenu
+						:idsObj="idsObj"
+						:dataList="classTimeData"
+						ref="rightNenuRef"
+						@videoSpeed="videoSpeed"
+						@videoStopTime="videoStopTime"
+					></rightMenu>
+				</a-card>
+				<a-card :bordered="false" class="mt-3">
 					<div>
 						<div>
 							<div v-for="(item,idx) in webCon" >
 								<a :href="item.href" target="_blank">{{ item.title }}</a>
 							</div>
 						</div>
+						<a-divider />
 						<div>
 							在小学和初中,我们已经接触过一些集合.例如,自然数的集合,同一平面内到一个定点的距离等于定长的点的集合(即圆)等.为了更有效地使用集合语言,我们需要进一步了解集合的有关知识.下面先从集合的含义开始.
 							看下面的例子:<br/>
@@ -83,13 +93,6 @@
 							例(2)中,把立德中学今年人学的每一位高一学生作为元素,这些元素的全体也是一个集合.
 						</div>
 					</div>
-					<rightMenu
-						:idsObj="idsObj"
-						:dataList="classTimeData"
-						ref="rightNenuRef"
-						@videoSpeed="videoSpeed"
-						@videoStopTime="videoStopTime"
-					></rightMenu>
 				</a-card>
 				<div style="display: flex; justify-content: center">
 					<a-card :bordered="false" class="mt-2" style="width: 100%">

+ 73 - 63
src/views/student/classCollect/index.vue

@@ -1,68 +1,75 @@
 <template>
-	<a-card>
-		<a-row :gutter="[16, 16]">
-			<a-col :span="8" v-for="(item, index) in listData" :key="index">
-				<a-card hoverable :bordered="false" class="boxShadow cardBox" @click="jump(item)">
-					<div style="display: flex; position: relative">
-						<div
-							class="resource"
-							:style="{
-								backgroundSize: 'cover',
-								backgroundPosition: 'center',
-								backgroundImage:
-									'url(' +
-									(item.coverImagePath != '' && sysConfig.FILE_URL + item.coverImagePath
-										? sysConfig.FILE_URL + item.coverImagePath
-										: '') +
-									')'
-							}"
-						>
-							<PlayCircleOutlined
-								:style="{ fontSize: '40px', color: 'white' }"
-								style="position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%)"
-							/>
-							<div
-								style="
-									position: absolute;
-									bottom: 0;
-									right: 0;
-									background-color: #40a0ff;
-									color: white;
-									padding: 5px 20px;
-									border-radius: 4px;
-								"
-							>
-								共{{ item.hourCount }}节课
+	<div>
+		<a-card style="width: 100%" class="titleCard">
+			<div style="font-size: 18px">
+				<div>我的课程收藏</div>
+			</div>
+		</a-card>
+		<a-card class="mt-3">
+			<a-spin :spinning="spinning">
+				<a-row :gutter="[16, 16]">
+					<a-col :span="8" v-for="(item, index) in listData" :key="index">
+						<a-card hoverable :bordered="false" class="boxShadow cardBox" @click="jump(item)">
+							<div style="display: flex; position: relative">
+								<div
+									class="resource"
+									:style="{
+										backgroundSize: 'cover',
+										backgroundPosition: 'center',
+										backgroundImage:
+											'url(' +
+											(item.coverImagePath != '' && sysConfig.FILE_URL + item.coverImagePath
+												? sysConfig.FILE_URL + item.coverImagePath
+												: '') +
+											')'
+									}"
+								>
+									<PlayCircleOutlined
+										:style="{ fontSize: '40px', color: 'white' }"
+										style="position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%)"
+									/>
+									<div
+										style="
+											position: absolute;
+											bottom: 0;
+											right: 0;
+											background-color: #40a0ff;
+											color: white;
+											padding: 5px 20px;
+											border-radius: 4px;
+										"
+									>
+										共{{ item.hourCount }}节课
+									</div>
+								</div>
 							</div>
-						</div>
-					</div>
-					<div style="display: flex; flex-direction: column; padding: 5px 10px">
-						<span style="font-size: 16px; font-weight: bold">{{ item.courseName || '-' }}</span>
-						<div>
-							<div>学习进度</div>
-							<a-progress :percent="item.progressVal" />
-						</div>
-						<span style="font-size: 12px">{{ item.teacherIdName || '-' }}</span>
-					</div>
-				</a-card>
-			</a-col>
-		</a-row>
-		<a-spin :spinning="spinning">
-			<a-empty v-if="listData.length <= 0" />
-		</a-spin>
-		<div
-			style="display: flex; width: 100%; align-items: center; justify-content: center"
-			class="mt-4"
-			v-if="listData.length > 0"
-		>
-			<a-pagination
-				v-model:current="pagination.current"
-				v-model:pageSize="pagination.size"
-				:total="pagination.total"
-				@change="onChange"
-			/>
-		</div>
-	</a-card>
+							<div style="display: flex; flex-direction: column; padding: 5px 10px">
+								<span style="font-size: 16px; font-weight: bold">{{ item.courseName || '-' }}</span>
+								<div>
+									<div>学习进度</div>
+									<a-progress :percent="item.progressVal" />
+								</div>
+								<span style="font-size: 12px">{{ item.teacherIdName || '-' }}</span>
+							</div>
+						</a-card>
+					</a-col>
+				</a-row>
+				<a-empty v-if="listData.length <= 0" />
+			</a-spin>
+			<div
+				style="display: flex; width: 100%; align-items: center; justify-content: center"
+				class="mt-4"
+				v-if="listData.length > 0"
+			>
+				<a-pagination
+					v-model:current="pagination.current"
+					v-model:pageSize="pagination.size"
+					:total="pagination.total"
+					@change="onChange"
+				/>
+			</div>
+		</a-card>
+	</div>
 </template>
 <script setup name="classCollect">
 	import classCentre from '@/api/student/classCentre'
@@ -167,4 +174,7 @@
 	:deep(.cardBox .ant-card-body) {
 		padding: 0;
 	}
+	:deep(.titleCard .ant-card-body) {
+		padding: 16px 24px;
+	}
 </style>