Forráskód Böngészése

埋点数据增加/问答时间/论坛身份

canghailong 6 hónapja
szülő
commit
577ee4ee8d

+ 30 - 8
src/components/Comment/index.vue

@@ -7,12 +7,25 @@
 		>
 			<template #actions>
 				<span key="comment-basic-like">
-					<a-tooltip title="点赞">
+					<a-tooltip title="">
 						<template v-if="item.isLike == 1">
-							<HeartOutlined :style="{ color: '#fa6c8d' }" @click="like(item,0)" />
+							<HeartOutlined :style="{ color: '#fa6c8d' }" @click="like(item, 0)" />
 						</template>
 						<template v-else>
-							<HeartOutlined @click="like(item,1)" />
+							<HeartOutlined @click="like(item, 1)" />
+						</template>
+					</a-tooltip>
+					<span style="padding-left: 3px; cursor: auto">
+						{{ item.likeCount }}
+					</span>
+				</span>
+				<span key="comment-basic-like">
+					<a-tooltip title="踩">
+						<template v-if="item.isNotLike == 1">
+							<dislike-outlined :style="{ color: '#fa6c8d' }" @click="postnotlike(item, 0)" />
+						</template>
+						<template v-else>
+							<dislike-outlined @click="postnotlike(item, 1)" />
 						</template>
 					</a-tooltip>
 					<span style="padding-left: 3px; cursor: auto">
@@ -20,9 +33,7 @@
 					</span>
 				</span>
 				<a-tooltip title="编辑" v-if="item.isSelf == 1">
-					<EditOutlined
-						@click="replyFormRef.onOpen(item, props.params.targetId, item.replyId, true)"
-					/>
+					<EditOutlined @click="replyFormRef.onOpen(item, props.params.targetId, item.replyId, true)" />
 					<span style="padding-left: 3px">编辑</span>
 				</a-tooltip>
 				<a-tooltip title="删除" v-if="item.isSelf == 1">
@@ -85,7 +96,7 @@
 			default: () => {}
 		},
 		count: {
-			type: [String , Number],
+			type: [String, Number],
 			default: 0
 		}
 	})
@@ -93,7 +104,7 @@
 		if (!val) return ''
 		return parseTime(val, '{y}-{m}-{d} {h}:{i}:{s}')
 	}
-	const like = (item,l) => {
+	const like = (item, l) => {
 		forumApi
 			.postlikeSubmit(
 				{
@@ -107,6 +118,17 @@
 				emit('successful')
 			})
 	}
+	function postnotlike(item, l) {
+		forumApi
+			.postPostnotlikeSubmit(
+				{ likeType: 0, targetId:item.replyId, notLikeId:item.replyId },
+				item.isNotLike
+			)
+			.then((data) => {
+				item.isNotLike = l
+				emit('successful')
+			})
+	}
 	const showDeleteConfirm = (item) => {
 		Modal.confirm({
 			title: '确定要删除回复?',

+ 3 - 2
src/views/courseCenter/components/ResourceList.vue

@@ -56,6 +56,7 @@
 					</div>
 					<div style="display: flex; flex-direction: column; padding: 5px 10px">
 						<span style="font-size: 16px; font-weight: bold">{{ item.courseName || '-' }}</span>
+						<div><a-progress :percent="progressVal" /></div>
 						<span style="font-size: 12px">{{ item.majorIdName || '-' }}</span>
 						<span style="font-size: 12px">{{ item.teacherIdName || '-' }}</span>
 					</div>
@@ -97,7 +98,7 @@
 	})
 	const searchKeyword = ref('')
 	const resources = ref([])
-
+	const progressVal = computed(()=>30)
 	const selectTab = (key) => {
 		if (key == 'latest') {
 			tabKey.value = 0
@@ -113,7 +114,7 @@
 	const handleItem = (item) => {
 		router.push({
 			path: '/student/classCentre',
-			query:{
+			query: {
 				id: item.courseId
 			}
 		})

+ 10 - 5
src/views/forum/detail.vue

@@ -50,7 +50,7 @@
 					</div>
 					<div v-if="detailObj.userNickName" class="ml-2">
 						<a-tooltip title="踩">
-							<template v-if="detailObj.postnotlike == 1">
+							<template v-if="detailObj.isNotLike == 1">
 								<dislike-outlined :style="{ color: '#fa6c8d' }" @click="postnotlike(detailObj, 0)" />
 							</template>
 							<template v-else>
@@ -136,10 +136,15 @@
 		})
 	}
 	function postnotlike(item, l) {
-		forumApi.postPostnotlikeSubmit({ likeType: 0, targetId: route.query.postId }, item.postnotlike).then((data) => {
-			item.isLike = l
-			resetGetList()
-		})
+		forumApi
+			.postPostnotlikeSubmit(
+				{ likeType: 0, targetId: route.query.postId, notLikeId: route.query.postId },
+				item.isNotLike
+			)
+			.then((data) => {
+				item.isNotLike = l
+				resetGetList()
+			})
 	}
 	function formatDateTime(val) {
 		if (!val) return ''

+ 1 - 1
src/views/forum/form.vue

@@ -100,7 +100,7 @@
 				userTotal.value = res.total
 				let userList = res.records.map((r) => {
 					return {
-						label: r.name,
+						label: `${r.name}-${r.eduIdentityName}`,
 						value: r.id,
 						...r
 					}

+ 8 - 53
src/views/resourceDetails/components/VideoDetails.vue

@@ -8,12 +8,8 @@
 					v-if="videoFormat == 'jpg' || videoFormat == 'bmp' || videoFormat == 'png' || videoFormat == 'jpeg'"
 					style="width: 100%; height: 350px"
 				>
-					<!-- <img :src="imgs + itemData.coverImagePath" style="width: 100%; height: 100%" /> -->
-					<!-- <img :v-lazy="imagess" style="width: 100%; height: 100%" /> -->
 					<a-image width="100%" height="350px" :src="resSrc" :preview="true" />
-					<!-- <image :src="resSrc" style="object-fit: cover" /> -->
 				</div>
-				<!-- "wmv","avi","flv","mpeg","mpg","rmvb","mov","mkv" -->
 				<div
 					v-if="
 						videoFormat == 'mkv' ||
@@ -30,7 +26,6 @@
 				>
 					<video :src="resSrc" controls style="width: 100%; height: 100%" />
 				</div>
-				<!-- "doc","docx","ppt","pptx","xls","xlsx" -->
 				<div
 					v-if="
 						videoFormat == 'docx' ||
@@ -43,10 +38,7 @@
 					"
 					style="width: 100%; height: 350px"
 				>
-					<!-- <PDF :src="resSrc" :width="850" :height="350" /> -->
 					<FilePreviewer :fileUrl="resSrc" :fileName="resName" :fileType="fileType" />
-					<!-- <a-image width="200px" height="220px" :src="pdfRes" :preview="false" @click="handleDownload(resSrc)" /> -->
-					<!-- <a-button type="primary" @click="handleDownload(resSrc)">去预览</a-button> -->
 				</div>
 				<div style="height: 20px"></div>
 				<!-- 用户信息部分 -->
@@ -112,18 +104,12 @@
 				<div style="display: flex; justify-content: center; align-items: center; height: 40px">
 					<span style="display: block; font-weight: bold">{{ resName }}</span>
 				</div>
-				<!-- <div style="display: flex; align-items: center">
-					<span style="font-weight: bold; margin-right: 10px">授课老师: </span>
-					<span style="display: block">{{ teacherName }}</span>
-				</div> -->
+
 				<div style="display: flex">
 					<span style="font-weight: bold; margin-right: 10px">所属院系: </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>
-					<span style="display: block">{{ major }}</span>
-				</div> -->
+
 				<div style="display: flex; align-items: center">
 					<span style="font-weight: bold; margin-right: 10px">资源类型: </span>
 					<span style="display: block; width: 200px">{{ courseType }}</span>
@@ -132,10 +118,7 @@
 					<span style="font-weight: bold; margin-right: 10px">资源格式: </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>
-					<span style="display: block">{{ videoDuration }}</span>
-				</div> -->
+
 				<div style="display: flex; align-items: center">
 					<span style="font-weight: bold; margin-right: 10px">容量大小: </span>
 					<span style="display: block; width: 200px">{{ videoSize }}</span>
@@ -144,11 +127,7 @@
 					<span style="font-weight: bold; margin-right: 10px">发布时间: </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>
-					<br />
-					<span style="display: block">{{ courseDescription }}</span>
-				</div> -->
+
 				<br />
 				<span>资源标签</span>
 				<div style="display: flex; width: 100%; flex-wrap: wrap">
@@ -162,7 +141,6 @@
 
 <script setup>
 	import { ref } from 'vue'
-	// import PDF from 'vue-pdf'
 	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'
@@ -172,17 +150,9 @@
 	import FilePreviewer from './FilePreviewer.vue'
 	import EventBus from '@/utils/EventBus'
 	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,
-		// 	default: () => {}
-		// }
-		//是否从资源列表来 1 是 0 否
 		isState: {
 			type: Number,
 			default: () => null
@@ -206,11 +176,9 @@
 
 	const talkNum = ref(0)
 	const collectNum = ref(0)
-	// const courseDescription = ref(
-	// 	'“我们正步入一个数据或许比软件更重要的新时代。——Tim O’ Reilly” 运用数据是精准刻画事物、呈现发展规律的主要手段,分析数据展示规律,把思想变得更精细!——“弹指之间·享受创新”,通过4周学习,你将掌握利用Python语言表示、清洗、统计和展示数据的能力。'
-	// )
+
 	const tags = ref(['标签名称1', '标签名称2', '标签名称3', '标签名称4', '标签名称5'])
-	const emit = defineEmits(['selectTab','onGetPageCommentNew'])
+	const emit = defineEmits(['selectTab', 'onGetPageCommentNew'])
 	const listUnpublishedView = ref(null)
 	const handleDownload = (src) => {
 		window.open(src)
@@ -250,10 +218,6 @@
 		}
 	}
 
-	const getList = () => {
-		//....
-		// listUnpublishedView.value.setData(tableData.value)
-	}
 	const setData = (data) => {
 		itemData.value = data
 	}
@@ -269,7 +233,6 @@
 
 					videoFormat.value = itemData.value.suffix
 
-					// releaseTime.value = tool.formatTimestamp(itemData.value.uploadTime)
 					releaseTime.value = itemData.value.uploadTime
 
 					videoSize.value = itemData.value.FILESIZE ? itemData.value.FILESIZE + 'b' : ''
@@ -278,14 +241,10 @@
 					itemData.value.keywordList.forEach((item) => {
 						tags.value.push(item.wordName)
 					})
-					//关键的资源在线地址
-					// resSrc.value = sysConfig.FILE_URL + itemData.value.fileUrl
+
 					resSrc.value = sysConfig.FILE_URL + itemData.value.priviewFileUrl
 					fileType.value = itemData.value.suffix
-					// imagess.value = ''+itemData.value.coverImagePath
-					// imagess.value = 'http://192.168.1.245:10005/education/' + itemData.value.priviewFileUrl
 
-					// VideoDetailsRef.value.setData(res.sdata)
 					emit('onGetPageCommentNew', {
 						resourceType: itemData.value.resourceType,
 						resourceTwoType: itemData.value.resourceTwoType
@@ -307,12 +266,8 @@
 	}
 
 	const fetchData = () => {
-		getList()
 		const id = route.query.id
 		if (id != undefined && id != '') {
-			// isHaveAuth : 0 1
-			// checkAuth
-
 			queryList({ resourceId: id })
 				.then((res) => {
 					if (res.data == true) {
@@ -500,7 +455,7 @@
 	}
 	.video-info {
 		height: 100%; /* 确保填满容器高度 */
-		flex:1;
+		flex: 1;
 	}
 	.resInfo {
 		margin-left: 10px;

+ 65 - 58
src/views/slogin/login.vue

@@ -1,64 +1,71 @@
 <template>
 	<div class="login_background">
-		<div style="display: flex;width: 100%; height: 100%; justify-content: center; align-items: center">
-				<a-card>
-					<div style="margin-bottom: 20px">
-						<span style="font-size: 20px;">学生登录</span>
-					</div>
+		<div style="display: flex; width: 100%; height: 100%; justify-content: center; align-items: center">
+			<a-card>
+				<div style="margin-bottom: 20px">
+					<span style="font-size: 20px">学生登录</span>
+				</div>
 
-					<a-form ref="loginForm" :model="ruleForm" :rules="rules">
-						<a-form-item name="account">
-							<a-input
-								v-model:value="ruleForm.account"
-								:placeholder="$t('login.accountPlaceholder')"
-								size="large"
-								@keyup.enter="login"
-							>
-								<template #prefix>
-									<UserOutlined class="login-icon-gray" />
-								</template>
-							</a-input>
-						</a-form-item>
-						<a-form-item name="password">
-							<a-input-password
-								v-model:value="ruleForm.password"
-								:placeholder="$t('login.PWPlaceholder')"
-								size="large"
-								autocomplete="off"
-								@keyup.enter="login"
-							>
-								<template #prefix>
-									<LockOutlined class="login-icon-gray" />
-								</template>
-							</a-input-password>
-						</a-form-item>
-						<a-form-item name="validCode" v-if="captchaOpen === 'true'">
-							<a-row :gutter="8">
-								<a-col :span="17">
-									<a-input
-										v-model:value="ruleForm.validCode"
-										:placeholder="$t('login.validLaceholder')"
-										size="large"
-										@keyup.enter="login"
-									>
-										<template #prefix>
-											<verified-outlined class="login-icon-gray" />
-										</template>
-									</a-input>
-								</a-col>
-								<a-col :span="7">
-									<img :src="validCodeBase64" class="login-validCode-img" @click="loginCaptcha" />
-								</a-col>
-							</a-row>
-						</a-form-item>
+				<a-form ref="loginForm" :model="ruleForm" :rules="rules">
+					<a-form-item name="account">
+						<a-input
+							v-model:value="ruleForm.account"
+							:placeholder="$t('login.accountPlaceholder')"
+							size="large"
+							@keyup.enter="login"
+						>
+							<template #prefix>
+								<UserOutlined class="login-icon-gray" />
+							</template>
+						</a-input>
+					</a-form-item>
+					<a-form-item name="password">
+						<a-input-password
+							v-model:value="ruleForm.password"
+							:placeholder="$t('login.PWPlaceholder')"
+							size="large"
+							autocomplete="off"
+							@keyup.enter="login"
+						>
+							<template #prefix>
+								<LockOutlined class="login-icon-gray" />
+							</template>
+						</a-input-password>
+					</a-form-item>
+					<a-form-item name="validCode" v-if="captchaOpen === 'true'">
+						<a-row :gutter="8">
+							<a-col :span="17">
+								<a-input
+									v-model:value="ruleForm.validCode"
+									:placeholder="$t('login.validLaceholder')"
+									size="large"
+									@keyup.enter="login"
+								>
+									<template #prefix>
+										<verified-outlined class="login-icon-gray" />
+									</template>
+								</a-input>
+							</a-col>
+							<a-col :span="7">
+								<img :src="validCodeBase64" class="login-validCode-img" @click="loginCaptcha" />
+							</a-col>
+						</a-row>
+					</a-form-item>
 
-						<a-form-item>
-							<a-button style="position: absolute; width: 100%; buttom:0px   " type="primary"  :loading="loading" round size="large" @click="login"
+					<a-form-item>
+						<a-button
+							style="position: absolute; width: 100%; bottom: 0px;"
+							type="primary"
+							:loading="loading"
+							round
+							size="large"
+							@click="login"
 							>{{ $t('login.signIn') }}
-							</a-button>
-						</a-form-item>
-					</a-form>
-				</a-card>
+						</a-button>
+					</a-form-item>
+					<div style="color: gray;text-align: center;width: 100%;font-size: 12px;">统一身份认证平台登录(针对学院在籍学员)</div>
+				</a-form>
+			</a-card>
 		</div>
 	</div>
 </template>
@@ -116,7 +123,7 @@
 			}
 		},
 		computed: {
-			...mapState(globalStore, ['sysBaseConfig']),
+			...mapState(globalStore, ['sysBaseConfig'])
 		},
 		watch: {
 			'config.theme': function (val) {
@@ -179,7 +186,7 @@
 						validCode: this.ruleForm.validCode,
 						validCodeReqNo: this.ruleForm.validCodeReqNo,
 						//根据平台不同传不同参0后台(管理员)1老师2学生
-						eduIdentity : 2
+						eduIdentity: 2
 					}
 					// 获取token
 					try {

+ 30 - 5
src/views/student/classCentre/ask.vue

@@ -1,6 +1,17 @@
 <template>
 	<a-form ref="formRefAdd" :model="formDataAdd" :rules="formRules" layout="vertical">
 		<a-row :gutter="16">
+			<a-col :span="24">
+				<a-form-item name="askType" label="请选择类型">
+					<a-select
+						v-model:value="formDataAdd.askType"
+						placeholder="请选择类型"
+						style="width: 100%"
+						:options="typeOptions"
+						:getPopupContainer="(trigger) => trigger.parentElement"
+					></a-select>
+				</a-form-item>
+			</a-col>
 			<a-col :span="24">
 				<a-form-item name="info" label="问题">
 					<xn-editor v-model="formDataAdd.info" placeholder="请输入问题" :height="400"></xn-editor>
@@ -71,10 +82,21 @@
 			</a-list-item>
 		</template>
 	</a-list>
-	<a-modal v-model:visible="visible" title="编辑" @ok="handleOk" append-to-body>
+	<a-modal v-model:visible="visible" title="编辑" @ok="handleOk" append-to-body width="800px" :zIndex="99999">
 		<a-form ref="formRef" :model="formData" :rules="formRules" layout="vertical">
 			<a-row :gutter="16">
 				<a-col :span="24">
+					<a-col :span="24">
+						<a-form-item name="askType" label="请选择类型">
+							<a-select
+								v-model:value="formDataAdd.askType"
+								placeholder="请选择类型"
+								style="width: 100%"
+								:options="typeOptions"
+								:getPopupContainer="(trigger) => trigger.parentElement"
+							></a-select>
+						</a-form-item>
+					</a-col>
 					<a-form-item name="info" label="问题">
 						<xn-editor v-model="formDataAdd.info" placeholder="请输入问题" :height="400"></xn-editor>
 					</a-form-item>
@@ -94,6 +116,8 @@
 	import { required } from '@/utils/formRules'
 	import XnEditor from '@/components/Editor/index.vue'
 	const userInfo = tool.data.get('USER_INFO')
+	const typeOptions = tool.dictList('CLASS_DETAIL_ASK')
+
 	// 表单数据,也就是默认给一些数据
 	const visible = ref(false)
 	const formData = ref({})
@@ -103,7 +127,8 @@
 	const submitLoading = ref(false)
 	// 默认要校验的
 	const formRules = {
-		info: [required('请输入问题')]
+		info: [required('请输入问题')],
+		askType: [required('请选择类型')]
 	}
 	const props = defineProps({
 		idsObj: {
@@ -156,8 +181,8 @@
 					return {
 						...r,
 						loading: false,
-						startTime: r.videoStopTime ?? 0,
-						videoStopTime: formatTime(r.videoStopTime ?? 0)
+						startTime: r.recordTime ?? 0,
+						videoStopTime: formatTime(r.recordTime ?? 0)
 					}
 				})
 				listData.value = data.records
@@ -225,7 +250,7 @@
 						.askSubmitForm({
 							...props.idsObj,
 							...formDataAdd.value,
-							videoStopTime: videoStopTime.value
+							recordTime: videoStopTime.value
 						})
 						.then(() => {
 							formRefAdd.value.resetFields()

+ 34 - 35
src/views/student/classCentre/index.vue

@@ -78,7 +78,13 @@
 						<a-button type="link" class="mt-2" @click="jumpHref()">网址链接</a-button>
 					</div>
 
-					<rightMenu :idsObj="idsObj" :dataList="classTimeData" ref="rightNenuRef" @videoSpeed="videoSpeed" @videoStopTime="videoStopTime"></rightMenu>
+					<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: 1200px">
@@ -90,10 +96,22 @@
 								<subtitleBox :url="danmuObj.url" v-if="tabsActiveKey == 2" @videoSpeed="videoSpeed"></subtitleBox>
 							</a-tab-pane>
 							<a-tab-pane key="3" tab="笔记" style="min-height: 800px">
-								<note :idsObj="idsObj" ref="noteRef" v-if="tabsActiveKey == 3" @videoSpeed="videoSpeed" @videoStopTime="videoStopTime"></note>
+								<note
+									:idsObj="idsObj"
+									ref="noteRef"
+									v-if="tabsActiveKey == 3"
+									@videoSpeed="videoSpeed"
+									@videoStopTime="videoStopTime"
+								></note>
 							</a-tab-pane>
 							<a-tab-pane key="4" tab="问答" style="min-height: 800px">
-								<askDiv :idsObj="idsObj" ref="askDivRef" v-if="tabsActiveKey == 4" @videoSpeed="videoSpeed" @videoStopTime="videoStopTime"></askDiv>
+								<askDiv
+									:idsObj="idsObj"
+									ref="askDivRef"
+									v-if="tabsActiveKey == 4"
+									@videoSpeed="videoSpeed"
+									@videoStopTime="videoStopTime"
+								></askDiv>
 							</a-tab-pane>
 						</a-tabs>
 					</a-card>
@@ -131,7 +149,7 @@
 			courseId: route.query.id,
 			chapterId: selectedKeys.value[0],
 			hourId: classHourData.value?.id,
-			...item,
+			...item
 		}
 	})
 	function findNodeByKey(list, id, parent = null) {
@@ -257,30 +275,6 @@
 				console.log('快退了')
 			}
 			currTime.value = e.srcElement.currentTime
-			// if (videoJumpTime.value) {
-			// 	videoJumpTime.value = false
-			// 	newsschedule.value = currentTime.value
-			// } else {
-			// 	if (newsschedule.value <= currentTime.value) {
-			// 		//请求接口获取的参数就是判断当前观看的时长是否小于当前时间 小于当前时间就禁止拖动进度条
-
-			// 		if (e.srcElement.currentTime - currTime.value > 3) {
-			// 			//这里拖动进度条时间 - 当前观看的时长 > 3秒 这边判定它为拖动进度条
-			// 			e.srcElement.currentTime = currTime.value > maxTime.value ? currTime.value : maxTime.value
-			// 			let newsVal = initialtime.value
-			// 			if (newsVal) {
-			// 				videoContext.value.currentTime = newsVal
-			// 			}
-			// 			//当前用户记录观看时间 大于 实施播放时间
-			// 			if (currTime.value > newsVal) {
-			// 				videoContext.value.currentTime = currTime.value
-			// 			}
-			// 			console.log('快进了')
-			// 		}
-			// 		currTime.value = e.srcElement.currentTime
-			// 		maxTime.value = currTime.value > maxTime.value ? currTime.value : maxTime.value
-			// 	}
-			// }
 		}
 	}
 
@@ -366,7 +360,8 @@
 					hourId: classHourData.value?.id,
 					stayTime: outNowTimesStr.value - nowTimesStr,
 					type: type,
-					funcType: type
+					funcType: type,
+					...classDetailParams.value
 				})
 				.then((data) => {})
 		}
@@ -385,9 +380,8 @@
 				})
 			})
 	}
-	//足迹
-	const footprintClassAdd = () => {
-		classCentre.footprintClassAdd({
+	const classDetailParams = computed(() => {
+		return {
 			hourName: classHourData.value.name,
 			chapterName: classHourData.value.name,
 			courseName: classDetail.value.courseName,
@@ -397,9 +391,14 @@
 			fileId: classHourData.value.courseRelates.filter((r) => r.funcType == 1)[0].relateId,
 			fileName: classHourData.value.courseRelates.filter((r) => r.funcType == 1)[0].name,
 			filePath: classHourData.value.courseRelates.filter((r) => r.funcType == 1)[0].url
+		}
+	})
+	//足迹
+	const footprintClassAdd = () => {
+		classCentre.footprintClassAdd({
+			...classDetailParams.value
 		})
 	}
-
 	// 监听消息
 	const stopListening = Broadcast.on('getClassDetail', (event) => {
 		if (event.data.type == 1) {
@@ -408,9 +407,9 @@
 	})
 	//跳转三方
 	const jumpHref = () => {
-		window.open('https://www.baidu.com/')
+		window.open('https://www.baidu.com')
 	}
-	const videoStopTime = (callback) =>{
+	const videoStopTime = (callback) => {
 		videoRef.value.pause()
 		callback && callback(videoRef.value.currentTime)
 	}

+ 4 - 4
src/views/student/classCentre/note.vue

@@ -52,7 +52,7 @@
 			</a-list-item>
 		</template>
 	</a-list>
-	<a-modal v-model:visible="visible" title="编辑" @ok="handleOk" append-to-body>
+	<a-modal v-model:visible="visible" title="编辑" @ok="handleOk" append-to-body width="800px" :zIndex="99999">
 		<a-form ref="formRef" :model="formData" :rules="formRules" layout="vertical">
 			<a-row :gutter="16">
 				<a-col :span="24">
@@ -134,8 +134,8 @@
 					return {
 						...r,
 						loading: false,
-						startTime: r.videoStopTime ?? 0,
-						videoStopTime: formatTime(r.videoStopTime ?? 0)
+						startTime: r.recordTime ?? 0,
+						videoStopTime: formatTime(r.recordTime ?? 0)
 					}
 				})
 				listData.value = data.records
@@ -196,7 +196,7 @@
 						.notesSubmitForm({
 							...props.idsObj,
 							...formDataAdd.value,
-							videoStopTime: videoStopTime.value
+							recordTime: videoStopTime.value
 						})
 						.then(() => {
 							formRefAdd.value.resetFields()