Jelajahi Sumber

站内信/课程公告/已读未读对接

canghailong 6 bulan lalu
induk
melakukan
f2f7522f14

+ 31 - 24
src/api/student/classCentre.js

@@ -1,94 +1,101 @@
 import { baseRequest } from '@/utils/request'
 
-const request = (url, ...arg) => baseRequest(`/api/webapp/disk/${url}`, ...arg)
-const requestStudent = (url, ...arg) => baseRequest(`/api/webapp/api/student/${url}`, ...arg)
+const request = (url, ...arg) => baseRequest(`/api/webapp/${url}`, ...arg)
 export default {
 	//课程中心-学习进度-新增
 	classPlanAdd(data) {
-		return request('coursestudentburialpoint/add', data)
+		return request('disk/coursestudentburialpoint/add', data)
 	},
 	//课程中心-学习进度-查询最近一次进度
 	theLastDetail(data) {
-		return request('coursestudentburialpoint/theLastDetail', data, 'get')
+		return request('disk/coursestudentburialpoint/theLastDetail', data, 'get')
 	},
 	//课程中心-课程-详情(增加点击次数)
 	addViewCount(data) {
-		return request('coursecentry/addViewCount', data)
+		return request('disk/coursecentry/addViewCount', data)
 	},
 	//课程中心-课程-详情(学生端)
 	courseDetail(data) {
-		return request('coursecentry/detail', data, 'get')
+		return request('disk/coursecentry/detail', data, 'get')
 	},
 	//课程中心-课程-详情(学生端)
 	coursechapterList(data) {
-		return request('coursecentry/coursechapterList', data, 'get')
+		return request('disk/coursecentry/coursechapterList', data, 'get')
 	},
 	//课程中心-课时-详情
 	courseTimeDetail(data) {
-		return request('coursecentry/hourDetail', data, 'get')
+		return request('disk/coursecentry/hourDetail', data, 'get')
 	},
 	//课程中心-课时-详情-试卷-获取当前登录人员的参与状态
 	classGetStatus(data) {
-		return requestStudent('exampaper/answer/getStatus', data, 'get')
+		return request('api/student/exampaper/answer/getStatus', data, 'get')
 	},
 	//课程中心-笔记/笔记本-添加
 	notesSubmitForm(data, edit = false) {
-		return request(`courseNotes/${edit ? 'edit' : 'add'}`, data)
+		return request(`disk/courseNotes/${edit ? 'edit' : 'add'}`, data)
 	},
 	//课程中心-笔记-分页列表
 	notesList(data) {
-		return request('courseNotes/page', data, 'get')
+		return request('disk/courseNotes/page', data, 'get')
 	},
 	//课程中心-笔记-删除
 	notesEdit(data) {
-		return request('courseNotes/delete', data)
+		return request('disk/courseNotes/delete', data)
 	},
 	//课程中心-问答-添加/编辑
 	askSubmitForm(data, edit = false) {
-		return request(`answer/${edit ? 'edit' : 'add'}`, data)
+		return request(`disk/answer/${edit ? 'edit' : 'add'}`, data)
 	},
 	//课程中心-问答-删除
 	askDel(data) {
-		return request('answer/delete', data)
+		return request('disk/answer/delete', data)
 	},
 	//课程中心-问答-列表
 	askList(data) {
-		return request('answer/page', data, 'get')
+		return request('disk/answer/page', data, 'get')
 	},
 	//课程中心-问答-点赞/取消赞
 	askLike(data, like = false) {
-		return request(`answer/${edit ? 'giveCancel' : 'give'}`, data, 'get')
+		return request(`disk/answer/${edit ? 'giveCancel' : 'give'}`, data, 'get')
 	},
 	//课程-收藏-添加
 	classCollectAdd(data, isLike = false) {
-		return request(`coursestudentcollect/${isLike ? 'notCollect' : 'add'}`, data)
+		return request(`disk/coursestudentcollect/${isLike ? 'notCollect' : 'add'}`, data)
 	},
 	//课程-收藏-列表
 	classCollectList(data) {
-		return request('coursestudentcollect/page', data, 'get')
+		return request('disk/coursestudentcollect/page', data, 'get')
 	},
 	//学习足迹-添加
 	footprintAdd(data) {
-		return request('footprint/add', data)
+		return request('disk/footprint/add', data)
 	},
 	//学习足迹-列表
 	footprintList(data) {
-		return request('footprint/page', data, 'get')
+		return request('disk/footprint/page', data, 'get')
 	},
 	//课程公告-列表
 	classNotice(data) {
-		return request('notice/page', data, 'get')
+		return request('disk/notice/readPage', data, 'get')
 	},
 	//课程公告-详情
 	classNoticeDetail(data) {
-		return request('notice/detail', data, 'get')
+		return request('disk/notice/detail', data, 'get')
 	},
 	//学习足迹埋点
 	footprintClassAdd(data) {
-		return request('courselog/add', data)
+		return request('disk/courselog/add', data)
 	},
 	//学习足迹
 	footprintClassList(data) {
-		return request('courselog/page', data, 'get')
+		return request('disk/courselog/page', data, 'get')
+	},
+	//课程公告已读
+	readAdd(data) {
+		return request('disk/userread/add', data)
+	},
+	//未读数查询
+	UnreadNum(data) {
+		return request('disk/userread/getCount', data, 'get')
 	}
 }

+ 1 - 1
src/utils/request.js

@@ -27,7 +27,7 @@ const service = axios.create({
 	baseURL: '/api', // api base_url
 	timeout: sysConfig.TIMEOUT // 请求超时时间
 })
-const whiteList = ['footprint/add', 'coursestudentburialpoint/add', 'coursecentry/addViewCount','courselog/add']
+const whiteList = ['footprint/add', 'coursestudentburialpoint/add', 'coursecentry/addViewCount','courselog/add','userread/add']
 function urlStr(str) {
 	const last = str.lastIndexOf('/')
 	const secondLast = str.lastIndexOf('/', last - 1)

+ 9 - 17
src/views/portal/components/headerIcon.vue

@@ -8,36 +8,28 @@
 </template>
 
 <script setup>
-	import userCenterApi from '@/api/sys/userCenterApi'
 	import classCentre from '@/api/student/classCentre'
 	import { useRouter, useRoute } from 'vue-router'
+	import EventBus from '@/utils/EventBus'
 	const router = useRouter()
 	const route = useRoute()
 	const bellNum = ref(0)
 	const notiNum = ref(0)
 	function getList() {
-		userCenterApi
-			.userLoginUnreadMessagePage({
-				current: 1,
-				size: 9999
-			})
-			.then((res) => {
-				bellNum.value = res.records.filter((r) => !r.read).length
-			})
-		classCentre
-			.classNotice({
-				current: 1,
-				size: 9999
-			})
-			.then((res) => {
-				notiNum.value = res.records.filter((r) => !r.read).length
-			})
+		classCentre.UnreadNum({ funcType: 1 }).then((res) => {
+			bellNum.value = res.unreadCount
+		})
+		classCentre.UnreadNum({ funcType: 2 }).then((res) => {
+			notiNum.value = res.unreadCount
+		})
 	}
 	const jump = (url) => {
 		router.push({
 			path: url
 		})
 	}
+	EventBus.off('getReadList', getList)
+	EventBus.on('getReadList', getList)
 	onMounted(() => {
 		getList()
 	})

+ 0 - 3
src/views/resourceDetails/components/TallItem.vue

@@ -191,9 +191,6 @@
 		color: white;
 	}
 
-	.tab-switcher div:not(:last-child) {
-	}
-
 	.user-info {
 		display: flex;
 		align-items: center;

+ 2 - 0
src/views/student/In-site-message/detail.vue

@@ -33,6 +33,7 @@
 
 <script setup name="inSiteMessageDetail">
 	import userCenterApi from '@/api/sys/userCenterApi'
+	import EventBus from '@/utils/EventBus'
 	const emits = defineEmits(['refresh'])
 	const receiveInfoList = ref([])
 
@@ -80,6 +81,7 @@
 		receiveInfoList.value = []
 		visible = false
 		emits('refresh')
+		EventBus.emit('getReadList')
 	}
 	// 调用这个函数将子组件的一些数据和方法暴露出去
 	defineExpose({

+ 10 - 1
src/views/student/classNotice/detail.vue

@@ -16,14 +16,16 @@
 
 <script setup name="inSiteMessageDetail">
 	import classCentre from '@/api/student/classCentre'
+	import EventBus from '@/utils/EventBus'
 	const emits = defineEmits(['refresh'])
-
+	const detailObj = ref()
 	// 默认是关闭状态
 	let visible = $ref(false)
 	const formData = ref({})
 	// 打开抽屉
 	const onOpen = (record) => {
 		visible = true
+		detailObj.value = record
 		getMessageList(record)
 	}
 	// 获取站内信列表
@@ -35,11 +37,18 @@
 			Object.assign(record, data)
 			formData.value = record
 		})
+		if(!formData.value.read){
+			addRead()
+		}
+	}
+	const addRead =()=>{
+		classCentre.readAdd({funcType:2,mainId:detailObj.value.noticeId})
 	}
 	// 关闭抽屉
 	const onClose = () => {
 		visible = false
 		emits('refresh')
+		EventBus.emit('getReadList')
 	}
 	// 调用这个函数将子组件的一些数据和方法暴露出去
 	defineExpose({