于添 7 місяців тому
батько
коміт
9e2392f911

+ 6 - 0
src/api/portal/index.js

@@ -37,3 +37,9 @@ export const giveCancelComment = (p) => request('disk/comment/giveCancel', p, 'g
 export const resourcecentreDetail = (p) => request('disk/resourcecentre/detail', p, 'get')
 //获取分享链接
 export const getShareLink = (p) => request('disk/courseauditrecord/getShareLink', p, 'get')
+//搜索条件
+export const getQueryTreeAll = (p) => request('disk/type/treeAll', p, 'get')
+//获取评论列表hot
+export const getTalkPageList = (p) => request('disk/comment/pageList', p, 'get')
+//筛查文件格式
+export const getAllListFileFormat = (p) => request('disk/fileformat/allList', p, 'get')

+ 6 - 2
src/views/myResources/myResources.vue

@@ -569,11 +569,15 @@
 		console.log('Selected:', value, selectedOptions)
 		if (!value) {
 			resourceName.value = ''
+			formState.resourceType = undefined
+			formState.resourceTwoType = undefined
 			return false
 		}
 		resourceName.value = selectedOptions.map((it) => it.name).join('/')
-		formState.resourceType = value[0] || null
-		formState.resourceTwoType = value[1] || null
+		formState.resourceType = value[0] || undefined
+		formState.resourceTwoType = value[1] || undefined
+
+		console.log('已经修改:', formState)
 	}
 	const getList = () => {
 		getListData()

+ 278 - 77
src/views/resourceCenter/components/ComplexChoices.vue

@@ -57,12 +57,8 @@
 		<div class="line"></div>
 		<div style="height: 10px"></div>
 		<!-- 所属课程 -->
-		<div class="filter-group">
+		<!-- <div class="filter-group">
 			<span class="filter-group-title">所选课程:</span>
-			<!-- <a-radio-group v-model:value="selectedCourse" @change="handleSelectedCourses">
-				<a-radio-button v-for="dept in selectedCourses" :key="dept" :value="dept">{{ dept }}</a-radio-button>
-				其他课程选项
-			</a-radio-group> -->
 			<MyRadioButtonGroup ref="Course" v-model="selectedCourse" @change="handleSelectedCourses1">
 				<MyRadioButton
 					v-for="(item, index) in selectedCourses"
@@ -75,7 +71,7 @@
 		</div>
 		<div style="height: 10px"></div>
 		<div class="line"></div>
-		<div style="height: 10px"></div>
+		<div style="height: 10px"></div> -->
 		<!-- 课程类型和课件格式(联动单选) -->
 		<div class="filter-group">
 			<span class="filter-group-title">资源类型:</span>
@@ -83,21 +79,31 @@
 				<a-radio-button v-for="dept in selectedTypes" :key="dept" :value="dept">{{ dept }}</a-radio-button>
 			</a-radio-group> -->
 			<div style="display: flex; flex-direction: column">
-				<MyRadioButtonGroup ref="Type" v-model="selectedTypeBig" @change="handleTypeChange">
+				<MyRadioButtonGroup
+					ref="TypeBig"
+					v-show="selectedTypesBig.length > 0"
+					v-model="selectedTypeBig"
+					@change="handleTypeChangeBig"
+				>
 					<MyRadioButton
 						v-for="(item, index) in selectedTypesBig"
 						:key="index"
-						:value="item"
-						:label="item"
+						:value="index"
+						:label="item.name"
 						:index="index"
 					></MyRadioButton>
 				</MyRadioButtonGroup>
-				<MyRadioButtonGroup ref="Type" v-model="selectedType" @change="handleTypeChange">
+				<MyRadioButtonGroup
+					ref="Type"
+					v-show="selectedTypes.length > 0"
+					v-model="selectedType"
+					@change="handleTypeChange"
+				>
 					<MyRadioButton
 						v-for="(item, index) in selectedTypes"
 						:key="index"
-						:value="item"
-						:label="item"
+						:value="index"
+						:label="item.name"
 						:index="index"
 					></MyRadioButton>
 				</MyRadioButtonGroup>
@@ -116,8 +122,8 @@
 				<MyRadioButton
 					v-for="(item, index) in selectedFormats"
 					:key="item"
-					:value="item"
-					:label="item"
+					:value="index"
+					:label="item.fileExtendName"
 					:index="index"
 				></MyRadioButton>
 			</MyRadioButtonGroup>
@@ -130,16 +136,16 @@
 			<span class="filter-group-title">已选条件:</span>
 			<div style="display: flex; align-items: center; margin-top: 7px">
 				<a-tag
-					v-for="tag in selectedTagKeys"
+					v-for="(tag, index) in selectedTagKeys"
 					style="display: flex; justify-content: center; align-items: center"
-					:key="tag"
+					:key="index"
 					closable
-					@close="handleTagClose(tag)"
+					@close="handleTagClose(tag, index)"
 				>
 					{{ tag.name }}
 				</a-tag>
 
-				<span v-if="selectedTagKeys.length > 0" class="clean" @click="handleClean">清除筛选</span>
+				<span v-if="selectedTagKeys.length > 0" class="clean" @click="handleTagCloseAll">清除筛选</span>
 			</div>
 		</div>
 	</div>
@@ -151,6 +157,19 @@
 	import MyRadioButton from '../components/MyRadioButton.vue'
 	import MyRadioButtonOffOut from '../components/MyRadioButtonOffOut.vue'
 	import collegeApi from '@/api/college'
+	import EventBus from '@/utils/EventBus'
+	import {
+		addViewCount,
+		detail,
+		add,
+		cancel,
+		queryList,
+		resourcecentreDetail,
+		getShareLink,
+		getQueryTreeAll,
+		getAllListFileFormat
+	} from '@/api/portal'
+
 	import orgApi from '@/api/resourceType/resourceType'
 	const selectedDept = ref('')
 	const selectedDeptBig = ref('')
@@ -163,40 +182,21 @@
 	const Big = ref(null)
 	const Smail = ref(null)
 	const Course = ref(null)
+	const TypeBig = ref(null)
 	const Type = ref(null)
 	const Format = ref(null)
 
 	const selectedTags = ref([])
 	const selectedTagKeys = ref([])
 
-	const selectedDepts = ref(['不限', '学校本级', '一旅', '二旅', '三旅', '四旅', '五旅', '维修厂'])
-	const selectedDeptBigs = ref([
-		'参谋部',
-		'政治工作部',
-		'保障部',
-		'理论训练系',
-		'轰运飞行人员改装系',
-		'职业教育中心',
-		'教学考评中心',
-		'教研保障中心',
-		'服务保障中心',
-		'教学评价办公室'
-	])
+	const selectedDepts = ref([])
+	const selectedDeptBigs = ref([])
 
 	const selectedDeptBigsList = ref([])
 
 	const selectedDeptSmailsList = ref([])
 
-	const selectedDeptSmails = ref([
-		'三级架构a',
-		'三级架构b',
-		'三级架构c',
-		'三级架构d',
-		'三级架构e',
-		'三级架构f',
-		'三级架构g',
-		'三级架构h'
-	])
+	const selectedDeptSmails = ref([])
 
 	const selectedCourses = ref([
 		'全部',
@@ -218,33 +218,39 @@
 		'机型改装训练',
 		'应急程序训练'
 	])
-	const selectedTypesBig = ref(['全部大', '热门资源大', '名师资源大', '必修大大', '选修大'])
-	const selectedTypes = ref(['全部', '热门资源', '名师资源', '必修', '选修'])
-	const selectedFormats = ref(['全部', 'ppt', 'word', 'excel', 'pdf', 'mp4', 'zip', 'rar'])
+	const selectedTypesBig = ref([])
+	const selectedTypes = ref([])
+	const selectedFormats = ref([])
 
+	const selectedTypesBigList = ref([])
+	const selectedTypesList = ref([])
 	const handleSelectedDept = (e) => {
 		if (e == 0) {
 			selectedDeptBigs.value = []
 		} else {
 			selectedDeptBigs.value = selectedDeptBigsList.value[e]
 		}
+		console.log('handleSelectedDept', e)
 		selectedDeptSmails.value = []
 		if (selectedDeptBigs.value.length > 0) {
 			Big.value.setClean(-1)
 		}
-
+		selectedDeptBig.value = -1
+		selectedDeptSmail.value = -1
 		updateSelectedTags()
 	}
 	const handleSelectedCourses = (e) => {
 		if (e == 0) {
 			selectedDeptSmails.value = []
 		} else {
-			selectedDeptSmails.value = selectedDeptSmailsList.value[e]
+			selectedDeptSmails.value = selectedDeptSmailsList.value[e - 1]
 		}
+		console.log('handleSelectedCourses', e, selectedDeptSmails.value)
 		if (selectedDeptSmails.value.length > 0) {
 			Smail.value.setClean(-1)
 		}
 		// selectedDeptSmails.value = selectedDeptSmailsList.value[e]
+		selectedDeptSmail.value = -1
 		updateSelectedTags()
 	}
 	const handleSelectedSmails = (e) => {
@@ -257,21 +263,40 @@
 		updateSelectedTags()
 	}
 	// 处理课程类型选择变化
+	const handleTypeChangeBig = (e) => {
+		if (e == 0) {
+			selectedTypes.value = []
+		} else {
+			selectedTypes.value = selectedTypesBigList.value[e]
+		}
+		console.log('handleTypeChangeBig', e, selectedTypes.value)
+		if (selectedTypes.value.length > 0) {
+			Type.value.setClean(-1)
+		}
+		selectedType.value = -1
+		// selectedDeptSmails.value = selectedDeptSmailsList.value[e]
+		// updateSelectedTags()
+		// selectedFormat.value = undefined // 选择课程类型时,重置课件格式
+		updateSelectedTags()
+	}
 	const handleTypeChange = (e) => {
+		console.log('handleTypeChange', ' e ', e, selectedTypes.value)
 		// selectedFormat.value = undefined // 选择课程类型时,重置课件格式
 		// updateSelectedTags()
+		updateSelectedTags()
 	}
 
 	// 处理课件格式选择变化
 	const handleFormatChange = (e) => {
 		// selectedType.value = undefined // 选择课件格式时,重置课程类型
-		// updateSelectedTags()
+		updateSelectedTags()
 	}
 
 	// 更新已选条件
 	const updateSelectedTags = () => {
 		selectedTags.value = []
 		selectedTagKeys.value = []
+		let queryData = {}
 		// selectedTags.value = [
 		// 	...(selectedDept.value !== '全部' ? { key: 'Dept', list: [selectedDept.value] } : []),
 		// 	...(selectedCourse.value !== '全部' ? { key: 'Course', list: [selectedCourse.value] } : []),
@@ -281,31 +306,116 @@
 		console.log('筛选条件第一个', selectedDept.value, selectedDepts.value)
 		console.log('筛选条件第二个', selectedDeptBig.value, selectedDeptBigs.value)
 		console.log('筛选条件第三个', selectedDeptSmail.value, selectedDeptSmails.value)
-		if (selectedDept.value !== '' && selectedDept.value !== 0) {
-			selectedTags.value.push(...[selectedDepts.value[selectedDept.value].name])
-			selectedTagKeys.value.push({
-				listType: 0,
-				index: selectedDept.value,
-				name: selectedDepts.value[selectedDept.value].name
-			})
+		if (
+			selectedDept.value !== undefined &&
+			selectedDept.value !== '' &&
+			selectedDept.value > 0 &&
+			selectedDepts.value.length > 0
+		) {
+			if (selectedDepts.value[selectedDept.value]) {
+				selectedTags.value.push(...[selectedDepts.value[selectedDept.value].fileExtendName])
+				selectedTagKeys.value.push({
+					listType: 0,
+					key: 'collegeId',
+					index: selectedDept.value,
+					name: selectedDepts.value[selectedDept.value].name,
+					id: selectedDepts.value[selectedDept.value].id
+				})
+				queryData['collegeId'] = selectedDepts.value[selectedDept.value].id
+			}
 		}
-		if (selectedDeptBig.value !== '' && selectedDeptBig.value !== 0) {
-			selectedTags.value.push(...[selectedDeptBigs.value[selectedDeptBig.value].name])
-			selectedTagKeys.value.push({
-				listType: 1,
-				index: selectedDeptBig.value,
-				name: selectedDeptBigs.value[selectedDeptBig.value].name
-			})
+		if (
+			selectedDeptBig.value !== undefined &&
+			selectedDeptBig.value !== '' &&
+			selectedDeptBig.value > 0 &&
+			selectedDeptBigs.value.length > 0
+		) {
+			if (selectedDeptBigs.value[selectedDeptBig.value]) {
+				selectedTags.value.push(...[selectedDeptBigs.value[selectedDeptBig.value].name])
+				selectedTagKeys.value.push({
+					listType: 1,
+					key: 'collegeTwoId',
+					index: selectedDeptBig.value,
+					name: selectedDeptBigs.value[selectedDeptBig.value].name,
+					id: selectedDeptBigs.value[selectedDeptBig.value].id
+				})
+				queryData['collegeTwoId'] = selectedDeptBigs.value[selectedDeptBig.value].id
+			}
 		}
-		if (selectedDeptSmail.value !== '' && selectedDeptSmail.value !== 0) {
-			selectedTags.value.push(...[selectedDeptSmails.value[selectedDeptSmail.value].name])
-			selectedTagKeys.value.push({
-				listType: 2,
-				index: selectedDeptSmail.value,
-				name: selectedDeptSmails.value[selectedDeptSmail.value].name
-			})
+		console.log('selectedDeptSmail', selectedDeptSmail.value, selectedDeptSmails.value)
+		if (
+			selectedDeptSmail.value !== undefined &&
+			selectedDeptSmail.value !== '' &&
+			selectedDeptSmail.value > 0 &&
+			selectedDeptSmails.value.length > 0
+		) {
+			if (selectedDeptSmails.value[selectedDeptSmail.value]) {
+				selectedTags.value.push(...[selectedDeptSmails.value[selectedDeptSmail.value].name])
+				selectedTagKeys.value.push({
+					listType: 2,
+					key: 'collegeThreeId',
+					index: selectedDeptSmail.value - 1,
+					name: selectedDeptSmails.value[selectedDeptSmail.value].name,
+					id: selectedDeptSmails.value[selectedDeptSmail.value].id
+				})
+				queryData['collegeThreeId'] = selectedDeptSmails.value[selectedDeptSmail.value].id
+			}
 		}
 
+		if (
+			selectedTypeBig.value !== undefined &&
+			selectedTypeBig.value !== '' &&
+			selectedTypeBig.value > 0 &&
+			selectedTypesBig.value.length > 0
+		) {
+			if (selectedTypesBig.value[selectedTypeBig.value]) {
+				selectedTags.value.push(...[selectedTypesBig.value[selectedTypeBig.value].name])
+				selectedTagKeys.value.push({
+					listType: 3,
+					key: 'resourceType',
+					index: selectedTypeBig.value,
+					name: selectedTypesBig.value[selectedTypeBig.value].name,
+					id: selectedTypesBig.value[selectedTypeBig.value].id
+				})
+				queryData['resourceType'] = selectedTypesBig.value[selectedTypeBig.value].id
+			}
+		}
+		if (
+			selectedType.value !== undefined &&
+			selectedType.value !== '' &&
+			selectedType.value > 0 &&
+			selectedTypes.value.length > 0
+		) {
+			if (selectedTypes.value[selectedType.value]) {
+				selectedTags.value.push(...[selectedTypes.value[selectedType.value].name])
+				selectedTagKeys.value.push({
+					listType: 4,
+					key: 'resourceTwoType',
+					index: selectedType.value,
+					name: selectedTypes.value[selectedType.value].name,
+					id: selectedTypes.value[selectedType.value].id
+				})
+				queryData['resourceTwoType'] = selectedTypes.value[selectedType.value].id
+			}
+		}
+		if (
+			selectedFormat.value !== undefined &&
+			selectedFormat.value !== '' &&
+			selectedFormat.value > 0 &&
+			selectedFormats.value.length > 0
+		) {
+			if (selectedFormats.value[selectedFormat.value]) {
+				selectedTags.value.push(...[selectedFormats.value[selectedFormat.value].fileExtendName])
+				selectedTagKeys.value.push({
+					listType: 5,
+					key: 'suffix',
+					index: selectedFormat.value,
+					name: selectedFormats.value[selectedFormat.value].fileExtendName,
+					id: selectedFormats.value[selectedFormat.value].id
+				})
+				queryData['suffix'] = selectedFormats.value[selectedFormat.value].fileExtendName
+			}
+		}
 		// if (selectedCourse.value !== '全部') {
 		// 	selectedTags.value.push(...[selectedCourse.value])
 		// 	selectedTagKeys.value.push('Course')
@@ -320,19 +430,92 @@
 		// 	selectedTagKeys.value.push('Format')
 		// }
 		console.log('筛选条件', selectedTags.value, selectedTagKeys.value)
+
+		EventBus.emit('upLoadList', queryData)
 	}
 
 	// 删除已选条件
-	const handleTagClose = (tag) => {
-		if (tag === selectedDept.value) {
-			selectedDept.value = '全部'
-		} else if (tag === selectedCourse.value) {
-			selectedCourse.value = '全部'
-		} else if (tag === selectedType.value) {
-			selectedType.value = '全部'
-		} else if (tag === selectedFormat.value) {
-			selectedFormat.value = '全部'
+	const handleTagClose = (tag, index) => {
+		// if (tag === selectedDept.value) {
+		// 	selectedDept.value = '全部'
+		// } else if (tag === selectedCourse.value) {
+		// 	selectedCourse.value = '全部'
+		// } else if (tag === selectedType.value) {
+		// 	selectedType.value = '全部'
+		// } else if (tag === selectedFormat.value) {
+		// 	selectedFormat.value = '全部'
+		// }
+		if (tag.key == 'suffix') {
+			Format.value.setClean(-1)
+			selectedFormat.value = -1
+		}
+		if (tag.key == 'resourceTwoType') {
+			Type.value.setClean(-1)
+			selectedType.value = -1
+		}
+		if (tag.key == 'resourceType') {
+			Type.value.setClean(-1)
+			selectedType.value = -1
+			TypeBig.value.setClean(-1)
+			selectedTypeBig.value = -1
+		}
+		if (tag.key == 'collegeThreeId') {
+			Smail.value.setClean(-1)
+			selectedDeptSmail.value = -1
 		}
+		if (tag.key == 'collegeTwoId') {
+			Smail.value.setClean(-1)
+			selectedDeptSmail.value = -1
+			Big.value.setClean(-1)
+			selectedDeptBig.value = -1
+		}
+		if (tag.key == 'collegeId') {
+			Smail.value.setClean(-1)
+			selectedDeptSmail.value = -1
+			Big.value.setClean(-1)
+			selectedDeptBig.value = -1
+			Dept.value.setClean(-1)
+			selectedDept.value = -1
+		}
+		console.log('要删除的东西', tag)
+
+		updateSelectedTags()
+	}
+	const handleTagCloseAll = () => {
+		// if (tag === selectedDept.value) {
+		// 	selectedDept.value = '全部'
+		// } else if (tag === selectedCourse.value) {
+		// 	selectedCourse.value = '全部'
+		// } else if (tag === selectedType.value) {
+		// 	selectedType.value = '全部'
+		// } else if (tag === selectedFormat.value) {
+		// 	selectedFormat.value = '全部'
+		// }
+		Format.value.setClean(-1)
+		selectedFormat.value = -1
+
+		Type.value.setClean(-1)
+		selectedType.value = -1
+
+		Type.value.setClean(-1)
+		selectedType.value = -1
+		TypeBig.value.setClean(-1)
+		selectedTypeBig.value = -1
+
+		Smail.value.setClean(-1)
+		selectedDeptSmail.value = -1
+		Smail.value.setClean(-1)
+		selectedDeptSmail.value = -1
+		Big.value.setClean(-1)
+		selectedDeptBig.value = -1
+		Smail.value.setClean(-1)
+		selectedDeptSmail.value = -1
+		Big.value.setClean(-1)
+		selectedDeptBig.value = -1
+		Dept.value.setClean(-1)
+		selectedDept.value = -1
+		// console.log('要删除的东西', tag)
+
 		updateSelectedTags()
 	}
 	const handleClean = () => {
@@ -361,10 +544,28 @@
 					})
 				}
 			})
+			console.log('看看最小的', selectedDeptSmailsList.value)
 			// Dept.value.setClean(0)
 			// handleSelectedDept(0)
 			// handleSelectedCourses(0)
 		})
+		getQueryTreeAll().then((data) => {
+			selectedTypesBig.value = data.data
+			selectedTypesBig.value.forEach((item) => {
+				selectedTypesBigList.value.push(item.children)
+				if (item.children) {
+					item.children.forEach((item) => {
+						if (item.children) {
+							selectedTypesList.value.push(item.children)
+						}
+					})
+				}
+			})
+		})
+		getAllListFileFormat().then((data) => {
+			selectedFormats.value = data.data
+		})
+
 		// selectedDepts.value.unshift({ name: '全部' })
 		// selectedDeptBigsList.value.unshift({ name: '全部' })
 		// selectedDeptSmailsList.value.unshift({ name: '全部' })

+ 15 - 43
src/views/resourceCenter/components/Correlation.vue

@@ -60,49 +60,6 @@
 					//                 "current": 1,
 					//   "pages": 1
 				}
-
-				// {
-				//     "code": 200,
-				//     "msg": "操作成功",
-				//     "data": {
-				//         "records": [
-				//             {
-				//                 "publishTime": 1750820852119,
-				//                 "courseName": "转手绢",
-				//                 "collegeIdName": "二人转研究学院",
-				//                 "teacherId": "1936984714123436034",
-				//                 "coverImageId": "1936957954687279104",
-				//                 "collegeId": "1",
-				//                 "timeLimitType": "0",
-				//                 "viewCount": 0,
-				//                 "courseId": "1937091089341124610",
-				//                 "teacherIdName": "老师"
-				//             },
-				//             {
-				//                 "publishTime": 1750820875604,
-				//                 "courseName": "胸口碎大石",
-				//                 "collegeIdName": "二人转研究学院",
-				//                 "teacherId": "1936984714123436034",
-				//                 "coverImageId": "1937056330116354050",
-				//                 "coverImagePath": "http://localhost:9003/api/webapp/dev/file/download?id=1937056330116354050",
-				//                 "collegeId": "1",
-				//                 "timeLimitType": "0",
-				//                 "viewCount": 10000,
-				//                 "courseId": "1937326992873689089",
-				//                 "teacherIdName": "老师"
-				//             }
-				//         ],
-				//         "total": 2,
-				//         "size": 20,
-				//         "current": 1,
-				//         "orders": [],
-				//         "optimizeCountSql": true,
-				//         "searchCount": true,
-				//         "maxLimit": null,
-				//         "countId": null,
-				//         "pages": 1
-				//     }
-				// }
 			})
 			.catch((err) => {
 				console.log(err)
@@ -111,10 +68,25 @@
 	onMounted(() => {
 		getList()
 	})
+	const upLoadList = (data) => {
+		let queryData = data
+		list({ ...currentPage, ...queryData })
+			.then((res) => {
+				if (res.code == 200) {
+					recommendations.value = res.data.records
+					currentPage.current = res.data.current
+				}
+			})
+			.catch((err) => {
+				console.log(err)
+			})
+	}
 	const handlerItem = (item) => {
 		// emit('handlerItem', item)
 		EventBus.emit('openResourceDetails', { id: item.id })
 	}
+	EventBus.off('upLoadList', upLoadList)
+	EventBus.on('upLoadList', upLoadList)
 </script>
 <style scoped>
 	.recommend-container {

+ 1 - 1
src/views/resourceCenter/components/MyRadioButton.vue

@@ -30,7 +30,7 @@
 	watch(
 		() => group.value.value,
 		(newVal, oldVal) => {
-			console.log('group.value changed:', newVal, oldVal)
+			// console.log('group.value changed:', newVal, oldVal)
 			isActive.value = newVal === props.value
 		}
 	)

+ 1 - 1
src/views/resourceCenter/components/MyRadioButtonOffOut.vue

@@ -30,7 +30,7 @@
 	watch(
 		() => group.value.value,
 		(newVal, oldVal) => {
-			console.log('group.value changed:', newVal, oldVal)
+			// console.log('group.value changed:', newVal, oldVal)
 			isActive.value = newVal === props.value
 		}
 	)

+ 21 - 48
src/views/resourceCenter/components/ResourceList.vue

@@ -99,7 +99,7 @@
 	import tool from '@/utils/tool'
 	import EventBus from '@/utils/EventBus'
 	import sysConfig from '@/config/index'
-
+	const queryData = ref({})
 	const total = ref(0)
 	const tabKey = ref(0)
 	const currentPage = reactive({
@@ -159,69 +159,42 @@
 	// })
 
 	const getList = () => {
-		list(currentPage)
+		list({ ...currentPage, ...queryData.value })
 			.then((res) => {
 				console.log('下面列表获取', res)
 				if (res.code == 200) {
 					resources.value = res.data.records
 					total.value = res.data.total
 					currentPage.current = res.data.current
-					// "size": 20,
-					//                 "current": 1,
-					//   "pages": 1
 				}
-
-				// {
-				//     "code": 200,
-				//     "msg": "操作成功",
-				//     "data": {
-				//         "records": [
-				//             {
-				//                 "publishTime": 1750820852119,
-				//                 "courseName": "转手绢",
-				//                 "collegeIdName": "二人转研究学院",
-				//                 "teacherId": "1936984714123436034",
-				//                 "coverImageId": "1936957954687279104",
-				//                 "collegeId": "1",
-				//                 "timeLimitType": "0",
-				//                 "viewCount": 0,
-				//                 "courseId": "1937091089341124610",
-				//                 "teacherIdName": "老师"
-				//             },
-				//             {
-				//                 "publishTime": 1750820875604,
-				//                 "courseName": "胸口碎大石",
-				//                 "collegeIdName": "二人转研究学院",
-				//                 "teacherId": "1936984714123436034",
-				//                 "coverImageId": "1937056330116354050",
-				//                 "coverImagePath": "http://localhost:9003/api/webapp/dev/file/download?id=1937056330116354050",
-				//                 "collegeId": "1",
-				//                 "timeLimitType": "0",
-				//                 "viewCount": 10000,
-				//                 "courseId": "1937326992873689089",
-				//                 "teacherIdName": "老师"
-				//             }
-				//         ],
-				//         "total": 2,
-				//         "size": 20,
-				//         "current": 1,
-				//         "orders": [],
-				//         "optimizeCountSql": true,
-				//         "searchCount": true,
-				//         "maxLimit": null,
-				//         "countId": null,
-				//         "pages": 1
-				//     }
-				// }
 			})
 			.catch((err) => {
 				console.log(err)
 			})
 	}
 
+	const upLoadList = (data) => {
+		currentPage.current = 1
+		currentPage.size = 12
+		queryData.value = data
+		list({ ...currentPage, ...queryData.value })
+			.then((res) => {
+				// console.log('外面控制的刷新列表', res)
+				if (res.code == 200) {
+					resources.value = res.data.records
+					total.value = res.data.total
+					currentPage.current = res.data.current
+				}
+			})
+			.catch((err) => {
+				console.log(err)
+			})
+	}
 	onMounted(() => {
 		getList()
 	})
+	EventBus.off('upLoadList', upLoadList)
+	EventBus.on('upLoadList', upLoadList)
 </script>
 
 <style scoped>

+ 15 - 44
src/views/resourceCenter/components/SidebarRecommend.vue

@@ -43,7 +43,6 @@
 	import tool from '@/utils/tool'
 	import sysConfig from '@/config/index'
 	import EventBus from '@/utils/EventBus'
-
 	const currentPage = reactive({
 		funcType: 1,
 		current: 1,
@@ -71,49 +70,6 @@
 					//                 "current": 1,
 					//   "pages": 1
 				}
-
-				// {
-				//     "code": 200,
-				//     "msg": "操作成功",
-				//     "data": {
-				//         "records": [
-				//             {
-				//                 "publishTime": 1750820852119,
-				//                 "courseName": "转手绢",
-				//                 "collegeIdName": "二人转研究学院",
-				//                 "teacherId": "1936984714123436034",
-				//                 "coverImageId": "1936957954687279104",
-				//                 "collegeId": "1",
-				//                 "timeLimitType": "0",
-				//                 "viewCount": 0,
-				//                 "courseId": "1937091089341124610",
-				//                 "teacherIdName": "老师"
-				//             },
-				//             {
-				//                 "publishTime": 1750820875604,
-				//                 "courseName": "胸口碎大石",
-				//                 "collegeIdName": "二人转研究学院",
-				//                 "teacherId": "1936984714123436034",
-				//                 "coverImageId": "1937056330116354050",
-				//                 "coverImagePath": "http://localhost:9003/api/webapp/dev/file/download?id=1937056330116354050",
-				//                 "collegeId": "1",
-				//                 "timeLimitType": "0",
-				//                 "viewCount": 10000,
-				//                 "courseId": "1937326992873689089",
-				//                 "teacherIdName": "老师"
-				//             }
-				//         ],
-				//         "total": 2,
-				//         "size": 20,
-				//         "current": 1,
-				//         "orders": [],
-				//         "optimizeCountSql": true,
-				//         "searchCount": true,
-				//         "maxLimit": null,
-				//         "countId": null,
-				//         "pages": 1
-				//     }
-				// }
 			})
 			.catch((err) => {
 				console.log(err)
@@ -123,10 +79,25 @@
 	onMounted(() => {
 		getList()
 	})
+	const upLoadList = (data) => {
+		let queryData = data
+		list({ ...currentPage, ...queryData })
+			.then((res) => {
+				if (res.code == 200) {
+					recommendations.value = res.data.records
+					currentPage.current = res.data.current
+				}
+			})
+			.catch((err) => {
+				console.log(err)
+			})
+	}
 	const handlerItem = (item) => {
 		// emit('handlerItem', item)
 		EventBus.emit('openResourceDetails', { id: item.id })
 	}
+	EventBus.off('upLoadList', upLoadList)
+	EventBus.on('upLoadList', upLoadList)
 </script>
 <style scoped>
 	.recommend-container {

+ 11 - 6
src/views/resourceDetails/components/EqualItem.vue

@@ -1,5 +1,5 @@
 <template>
-	<div class="itemLayou">
+	<div class="itemLayou" @click="handlerItem">
 		<div style="display: flex; flex-direction: column">
 			<div
 				class="item"
@@ -8,19 +8,19 @@
 					backgroundPosition: 'center',
 					backgroundImage:
 						'url(' +
-						(item.coverImagePath != '' && sysConfig.FILE_URL + item.coverImagePath
-							? sysConfig.FILE_URL + item.coverImagePath
+						(props.item.coverImagePath != '' && sysConfig.FILE_URL + props.item.coverImagePath
+							? sysConfig.FILE_URL + props.item.coverImagePath
 							: '') +
 						')'
 				}"
 			></div>
 
 			<div style="padding: 10px">
-				<span style="display: block">{{ props.item.title }}</span>
+				<span style="display: block">{{ props.item.fileName }}</span>
 				<div style="display: flex; align-items: center">
-					<span style="display: block; font-size: 10px; color: darkgray">{{ props.item.name }}</span>
+					<span style="display: block; font-size: 10px; color: darkgray">{{ props.item.resourceCreaterUserName }}</span>
 					<div style="width: 1px; height: 10px; margin-left: 5px; margin-right: 5px; background-color: black"></div>
-					<span style="display: block; font-size: 10px; color: darkgray">{{ props.item.follw }}</span>
+					<span style="display: block; font-size: 10px; color: darkgray">{{ props.item.viewCount }}</span>
 				</div>
 			</div>
 		</div>
@@ -70,6 +70,11 @@
 
 		// listUnpublishedView.value.setData(tableData.value)
 	}
+	const handlerItem = () => {
+		// emit('handlerItem', item)
+		EventBus.emit('openResourceDetailsInner', { id: props.item.id })
+	}
+
 	watch(
 		() => props.item,
 		(val) => {

+ 86 - 63
src/views/resourceDetails/components/TallList.vue

@@ -71,17 +71,18 @@
 			</div>
 
 			<div style="display: flex; justify-content: space-between; margin-top: 40px">
-				<div style="display: flex; align-items: center">
+				<!-- <div style="display: flex; align-items: center">
 					<span style="font-weight: bold">全部评论</span>
-					<span style="font-size: 10px; color: darkgray; margin-left: 5px">1000</span>
-				</div>
-				<TabSwitcher></TabSwitcher>
+					<span style="font-size: 10px; color: darkgray; margin-left: 5px">{{ total }}</span>
+				</div> -->
+				<div></div>
+				<TabSwitcher @selectTab="handelrSelectTab"></TabSwitcher>
 			</div>
 
 			<div class="line"></div>
 
 			<div>
-				<TallItem v-for="(item, index) in list" :key="index" :item="item" :id="id" @publish="publish"></TallItem>
+				<TallItem v-for="(item, index) in talkList" :key="index" :item="item" :id="id" @publish="publish"></TallItem>
 			</div>
 		</div>
 
@@ -90,9 +91,9 @@
 				<div class="resInfoTitile"></div>
 				<span style="font-size: 14px; font-weight: bold">同类型资源</span>
 			</div>
-			<!-- <div style="display: flex; flex-direction: column; padding: 10px">
+			<div style="display: flex; flex-direction: column; padding: 10px">
 				<EqualItem v-for="(item, index) in equalList" :key="index" :item="item"></EqualItem>
-			</div> -->
+			</div>
 		</div>
 	</div>
 </template>
@@ -102,28 +103,39 @@
 	import TabSwitcher from './TabSwitcher.vue'
 	import TallItem from './TallItem.vue'
 	import EqualItem from './EqualItem.vue'
-	import { addViewCount, detail, add, cancel, queryList, pageComment, addComment } from '@/api/portal'
+	import {
+		addViewCount,
+		detail,
+		add,
+		cancel,
+		queryList,
+		pageComment,
+		list,
+		addComment,
+		getTalkPageList
+	} from '@/api/portal'
 	import { useRoute } from 'vue-router'
 	import EventBus from '@/utils/EventBus'
-	import { list } from '@/api/portal'
 	const currentPage = reactive({
-		funcType: 1,
+		funcType: 2,
 		current: 1,
 		size: 6
 	})
 
 	const emit = defineEmits(['selectTab'])
-	const listUnpublishedView = ref(null)
+	const tabKey = ref(0)
+	const total = ref(0)
 	const route = useRoute()
 	const id = route.query.id
 	const talk = ref('')
 
-	const pagers = ref({
+	const pagers = reactive({
 		pages: 1,
 		size: 20
 	})
 
 	const equalList = ref([])
+	const talkList = ref([])
 
 	// callBackTalk: [
 	// 			{
@@ -139,55 +151,12 @@
 			.then((res) => {
 				console.log('下面列表获取', res)
 				if (res.code == 200) {
-					recommendations.value = res.data.records
+					equalList.value = res.data.records
 					currentPage.current = res.data.current
 					// "size": 20,
 					//                 "current": 1,
 					//   "pages": 1
 				}
-
-				// {
-				//     "code": 200,
-				//     "msg": "操作成功",
-				//     "data": {
-				//         "records": [
-				//             {
-				//                 "publishTime": 1750820852119,
-				//                 "courseName": "转手绢",
-				//                 "collegeIdName": "二人转研究学院",
-				//                 "teacherId": "1936984714123436034",
-				//                 "coverImageId": "1936957954687279104",
-				//                 "collegeId": "1",
-				//                 "timeLimitType": "0",
-				//                 "viewCount": 0,
-				//                 "courseId": "1937091089341124610",
-				//                 "teacherIdName": "老师"
-				//             },
-				//             {
-				//                 "publishTime": 1750820875604,
-				//                 "courseName": "胸口碎大石",
-				//                 "collegeIdName": "二人转研究学院",
-				//                 "teacherId": "1936984714123436034",
-				//                 "coverImageId": "1937056330116354050",
-				//                 "coverImagePath": "http://localhost:9003/api/webapp/dev/file/download?id=1937056330116354050",
-				//                 "collegeId": "1",
-				//                 "timeLimitType": "0",
-				//                 "viewCount": 10000,
-				//                 "courseId": "1937326992873689089",
-				//                 "teacherIdName": "老师"
-				//             }
-				//         ],
-				//         "total": 2,
-				//         "size": 20,
-				//         "current": 1,
-				//         "orders": [],
-				//         "optimizeCountSql": true,
-				//         "searchCount": true,
-				//         "maxLimit": null,
-				//         "countId": null,
-				//         "pages": 1
-				//     }
-				// }
 			})
 			.catch((err) => {
 				console.log(err)
@@ -212,7 +181,21 @@
 		// list.value = [...list.value]
 		// console.log('最后的', list.value)
 	}
-
+	const handelrSelectTab = (data) => {
+		if (data == 'latest') {
+			tabKey.value = 0
+		} else {
+			tabKey.value = 1
+		}
+		pagers.pages = 1
+		pagers.size = 20
+		// pagers.sortflag = tabKey.value
+		if (tabKey.value == 0) {
+			getPageComment()
+		} else {
+			getHotPageComment()
+		}
+	}
 	const handerPublish = () => {
 		addComment({ resourceId: id, commentName: talk.value })
 			.then((res) => {
@@ -234,13 +217,49 @@
 	}
 
 	const getPageComment = () => {
-		pageComment({ resourceId: id, ...pagers.value })
+		pageComment({ resourceId: id, ...pagers })
+			.then((res) => {
+				if (res.code == 200) {
+					talkList.value = res.data.records
+
+					pagers.pages = res.data.pages
+					pagers.size = res.data.size
+
+					total.value = res.data.total
+				}
+			})
+			.catch((err) => {
+				console.log(err)
+			})
+	}
+
+	const getPageCommentNew = (data) => {
+		list({ ...currentPage, ...data })
 			.then((res) => {
+				console.log('下面列表获取getPageCommentNew', res)
 				if (res.code == 200) {
-					list.value = res.data.records
+					equalList.value = res.data.records
+					currentPage.current = res.data.current
+					// "size": 20,
+					//                 "current": 1,
+					//   "pages": 1
+				}
+			})
+			.catch((err) => {
+				console.log(err)
+			})
+	}
+	const onGetPageCommentNew = (data) => {
+		getPageCommentNew(data)
+	}
+	const getHotPageComment = () => {
+		getTalkPageList({ resourceId: id, ...pagers })
+			.then((res) => {
+				if (res.code == 200) {
+					talkList.value = res.data.records
 
-					pagers.value.pages = res.data.pages
-					pagers.value.size = res.data.size
+					pagers.pages = res.data.pages
+					pagers.size = res.data.size
 				}
 			})
 			.catch((err) => {
@@ -249,12 +268,16 @@
 	}
 
 	onMounted(() => {
-		getList()
+		// getList()
 		getPageComment()
 	})
 
 	EventBus.off('onGetPageComment', getPageComment)
 	EventBus.on('onGetPageComment', getPageComment)
+
+	defineExpose({ onGetPageCommentNew })
+	// EventBus.off('onGetPageCommentNew', getPageCommentNew)
+	// EventBus.on('onGetPageCommentNew', getPageCommentNew)
 </script>
 
 <style scoped>
@@ -424,7 +447,7 @@
 	}
 
 	.tallListInfo {
-		color: rgba(0, 0, 0, 0.116);
+		color: rgba(0, 0, 0, 0.479);
 		font-size: 12px;
 	}
 

+ 44 - 13
src/views/resourceDetails/components/VideoDetails.vue

@@ -116,9 +116,9 @@
 					<span style="font-weight: bold; margin-right: 10px">授课老师: </span>
 					<span style="display: block">{{ teacherName }}</span>
 				</div> -->
-				<div style="display: flex; align-items: center">
+				<div style="display: flex">
 					<span style="font-weight: bold; margin-right: 10px">所属院系: </span>
-					<span style="display: block">{{ department }}</span>
+					<span style="display: block; width: 200px">{{ department }}</span>
 				</div>
 				<!-- <div style="display: flex; align-items: center">
 					<span style="font-weight: bold; margin-right: 10px">所属专业: </span>
@@ -126,11 +126,11 @@
 				</div> -->
 				<div style="display: flex; align-items: center">
 					<span style="font-weight: bold; margin-right: 10px">资源类型: </span>
-					<span style="display: block">{{ courseType }}</span>
+					<span style="display: block; width: 200px">{{ courseType }}</span>
 				</div>
 				<div style="display: flex; align-items: center">
 					<span style="font-weight: bold; margin-right: 10px">资源格式: </span>
-					<span style="display: block">{{ videoFormat }}</span>
+					<span style="display: block; width: 200px">{{ videoFormat }}</span>
 				</div>
 				<!-- <div style="display: flex; align-items: center" v-if="videoFormat != 'jpg'">
 					<span style="font-weight: bold; margin-right: 10px">视频时长: </span>
@@ -138,11 +138,11 @@
 				</div> -->
 				<div style="display: flex; align-items: center">
 					<span style="font-weight: bold; margin-right: 10px">容量大小: </span>
-					<span style="display: block">{{ videoSize }}</span>
+					<span style="display: block; width: 200px">{{ videoSize }}</span>
 				</div>
 				<div style="display: flex; align-items: center">
 					<span style="font-weight: bold; margin-right: 10px">发布时间: </span>
-					<span style="display: block">{{ releaseTime }}</span>
+					<span style="display: block; width: 200px">{{ releaseTime }}</span>
 				</div>
 				<!-- <div style="display: flex; flex-direction: column">
 					<span style="font-weight: bold; margin-right: 10px">课程介绍: </span>
@@ -166,15 +166,17 @@
 	import { Tag, Typography, Space, message } from 'ant-design-vue'
 	import ShareDialog from './ShareDialog.vue'
 	import { addViewCount, detail, add, cancel, queryList, resourcecentreDetail, getShareLink } from '@/api/portal'
-	import { useRoute } from 'vue-router'
+	import { useRoute, useRouter } from 'vue-router'
 	import sysConfig from '@/config/index'
 	import pdfRes from '@/assets/images/pdf.png'
 	import FilePreviewer from './FilePreviewer.vue'
 	import EventBus from '@/utils/EventBus'
-	import VueOfficePdf from '@vue-office/pdf'
+	import tool from '@/utils/tool'
+	// import VueOfficePdf from '@vue-office/pdf'
 	// import pdfView from 'pdfvuer'
 	// import 'pdfvuer/dist/pdfvuer.css'
-
+	const route = useRoute()
+	const router = useRouter()
 	const props = defineProps({
 		// itemData: {
 		// 	type: Object,
@@ -208,7 +210,6 @@
 	// 	'“我们正步入一个数据或许比软件更重要的新时代。——Tim O’ Reilly” 运用数据是精准刻画事物、呈现发展规律的主要手段,分析数据展示规律,把思想变得更精细!——“弹指之间·享受创新”,通过4周学习,你将掌握利用Python语言表示、清洗、统计和展示数据的能力。'
 	// )
 	const tags = ref(['标签名称1', '标签名称2', '标签名称3', '标签名称4', '标签名称5'])
-	const route = useRoute()
 	const emit = defineEmits(['selectTab'])
 	const listUnpublishedView = ref(null)
 	const handleDownload = (src) => {
@@ -264,12 +265,14 @@
 				if (res.code == 200) {
 					itemData.value = res.data
 					courseType.value = itemData.value.resourceALLTypeName.split(',').join('/')
-					department.value = itemData.value.collegeAllIdName
+					department.value = itemData.value.collegeAllIdName.split(',').join('/')
 					teacherName.value = itemData.value.resourceCreaterUserName
 					resName.value = itemData.value.fileName
 
 					videoFormat.value = itemData.value.suffix
-					releaseTime.value = itemData.value.uploadTime
+
+					releaseTime.value = tool.formatTimestamp(itemData.value.uploadTime)
+
 					videoSize.value = itemData.value.FILESIZE ? itemData.value.FILESIZE + 'b' : ''
 
 					tags.value = []
@@ -285,6 +288,11 @@
 					// imagess.value = 'http://192.168.1.245:10005/education/' + itemData.value.priviewFileUrl
 
 					// VideoDetailsRef.value.setData(res.sdata)
+					console.log('发消息去请求网卡罗')
+					emit('onGetPageCommentNew', {
+						resourceType: itemData.value.resourceType,
+						resourceTwoType: itemData.value.resourceTwoType
+					})
 				}
 			})
 			.catch((err) => {})
@@ -302,7 +310,7 @@
 			.catch((err) => {})
 	}
 
-	onMounted(() => {
+	const fetchData = () => {
 		getList()
 		const id = route.query.id
 		if (id != undefined && id != '') {
@@ -320,6 +328,17 @@
 			getData({ id: id })
 			upDataList({ id: id })
 		}
+	}
+	watch(
+		() => route,
+		(newRoute) => {
+			console.log('路由发生变化', newRoute)
+			fetchData() // 手动刷新数据的方法
+		},
+		{ deep: true, immediate: true }
+	)
+	onMounted(() => {
+		fetchData()
 	})
 
 	const upDataDetailsNum = () => {
@@ -328,13 +347,25 @@
 			upDataList({ id: id })
 		}
 	}
+	const openResourceDetailsInner = (data) => {
+		console.log('收到消息了吗', data)
 
+		router.push({
+			path: '/portal/resourceDetails',
+			query: {
+				id: data.id,
+				t: new Date().getTime()
+			}
+		})
+	}
 	defineExpose({
 		setData
 	})
 
 	EventBus.off('upDataDetailsNum', upDataDetailsNum)
 	EventBus.on('upDataDetailsNum', upDataDetailsNum)
+	EventBus.off('openResourceDetailsInner', openResourceDetailsInner)
+	EventBus.on('openResourceDetailsInner', openResourceDetailsInner)
 </script>
 
 <style scoped>

+ 7 - 4
src/views/resourceDetails/index.vue

@@ -3,9 +3,9 @@
 		<a-layout>
 			<Header @onChangeCurrent="onChangeCurrent" />
 			<div style="width: 71%; margin-left: 10%">
-				<BreadCrumb />
-				<VideoDetails :isState="isState" ref="VideoDetailsRef" />
-				<TallList v-if="!isState" />
+				<!-- <BreadCrumb /> -->
+				<VideoDetails :isState="isState" ref="VideoDetailsRef" @onGetPageCommentNew="onGetPageCommentNew" />
+				<TallList ref="tallList" v-show="!isState" />
 				<div style="display: flex; justify-content: flex-end; margin-top: 10px" v-if="isAudit && isState">
 					<a-button @click="handleAuditResult(3)" style="margin-right: 10px">不同意</a-button>
 					<a-button type="primary" @click="handleAuditResult(2)">同意</a-button>
@@ -32,6 +32,7 @@
 
 	const indexType = ref('resourceCenter')
 	const itemData = ref({})
+	const tallList = ref(null)
 	const VideoDetailsRef = ref(null)
 	const route = useRoute()
 	const isState = ref(route.query.state || null)
@@ -66,8 +67,10 @@
 	//     "collegeTwoIdName": "汽车部门",
 	//     "fileId": "1938183534250917888"
 	// }
-	const handlerItemSidebar = (item) => {
+	const onGetPageCommentNew = (item) => {
 		// emit('handlerItemSidebar', item)
+		console.log('发消息去请求网卡罗2', item)
+		tallList.value.onGetPageCommentNew(item)
 	}
 	const handleAuditResult = (val) => {
 		const params = {