于添 пре 5 месеци
родитељ
комит
c0e980cbed

+ 161 - 0
public/html/loginJump.html

@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html lang="zh-CN">
+<head>
+	<meta charset="UTF-8">
+	<meta name="viewport" content="width=device-width, initial-scale=1.0">
+	<title>教育平台登录</title>
+	<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
+	<style>
+		body {
+			font-family: Arial, sans-serif;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			height: 100vh;
+			margin: 0;
+			background-color: #f0f2f5;
+		}
+
+		.login-container {
+			text-align: center;
+			background: white;
+			padding: 2rem;
+			border-radius: 8px;
+			box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
+		}
+
+		.login-btn {
+			display: block;
+			width: 200px;
+			padding: 12px;
+			margin: 20px auto;
+			border: none;
+			border-radius: 4px;
+			color: white;
+			font-size: 16px;
+			cursor: pointer;
+			transition: background-color 0.3s;
+		}
+
+		.student-btn {
+			background-color: #1890ff;
+		}
+
+		.teacher-btn {
+			background-color: #52c41a;
+		}
+
+		.login-btn:hover {
+			opacity: 0.9;
+		}
+	</style>
+</head>
+<body>
+<!--<div class="login-container">-->
+<!--	<h1>在线教育平台</h1>-->
+<!--	<button class="login-btn student-btn" onclick="login()">登录</button>-->
+<!--</div>-->
+<!--http://localhost:63342/onlineEducation-front/public/html/loginJump.html?_ijt=eqdbr9d1k5uh8if53et5u8j8su&_ij_reload=RELOAD_ON_SAVE&code=126345&type=1&id=1958766027408039938-->
+<script>
+
+	let baseUrl = 'http://192.168.1.213:9003'
+	let baseUrlt = 'http://192.168.1.202:9000'
+	let baseUrls = 'http://192.168.1.202:9000'
+	// 创建axios实例,参考request.js中的配置
+	const service = axios.create({
+		baseURL: '/api',
+		timeout: 5000
+	});
+
+	// 登录函数
+	const login = async () => {
+		const urlParams = new URLSearchParams(window.location.search);
+		let code = urlParams.get('code');
+		let type = urlParams.get('type');
+		let id = urlParams.get('id');
+		if (code == undefined || type == undefined) {
+			alert('数据参数不对');
+			return
+		}
+		if (type != 1 && id == undefined) {
+			alert('数据参数不对 没有id');
+			return
+		}
+		console.log('什么数值呢', code)
+		// 这里需要替换为实际的登录接口URL
+		const loginUrl = baseUrl+'/api/webapp/disk/CollegeUser/getUser';
+
+		let res = await service.get(loginUrl, {
+			params: {
+				code
+			},
+			headers: {
+				'account': 'admin',
+			}
+		})
+		console.log('登录状况:', res.data);
+		if (res.data.code === 200) {
+
+
+				let url =  baseUrl+'/api/webapp/auth/b/getLoginUser'
+			let ress = await service.get(url, {
+				headers: {
+					'token': res.data.msg,
+				}
+			})
+			console.log('获取人员信息:', ress);
+			if(ress.data.code == 200 && ress.data.data.eduIdentity == 1){
+				//去教师段
+				// 构建带参数的URL
+				const params = new URLSearchParams({
+					token: res.data.msg,
+					type,
+					id
+				});
+				const redirectUrl = `${baseUrlt}/jump?${params.toString()}`;
+				window.location.href = redirectUrl;
+			}
+
+		}
+		// .then(response => {
+		//
+		// 	// 	alert('登录成功');
+		// 	// 	// 保存token等操作
+		// 	// 	console.log('登录成功:', response.data);
+		// 	// } else {
+		// 	// 	alert(`登录失败: ${response.data.msg}`);
+		// 	// }
+		// })
+		// .catch(error => {
+		// 	console.error('登录请求失败:', error);
+		// 	alert('登录请求失败,请检查网络连接');
+		// });
+		// // 发送登录请求
+		// service.post(loginUrl, loginData)
+		// 	.then(response => {
+		// 		if (response.data.code === 200) {
+		// 			alert(`${userType === 'student' ? '学生' : '教师'}端登录成功`);
+		// 			// 保存token等操作
+		// 			console.log('登录成功:', response.data);
+		// 		} else {
+		// 			alert(`登录失败: ${response.data.msg}`);
+		// 		}
+		// 	})
+		// 	.catch(error => {
+		// 		console.error('登录请求失败:', error);
+		// 		alert('登录请求失败,请检查网络连接');
+		// 	});
+	}
+
+	// 在<script>标签内添加
+	window.onload = function() {
+		console.log('页面加载完成');
+		login()
+		// 在这里可以执行初始化操作
+		// 比如自动登录等
+		// login(); // 如果需要自动执行登录
+	};
+
+</script>
+</body>
+</html>

+ 7 - 1
src/api/college/index.js

@@ -1,5 +1,6 @@
 import { baseRequest } from '@/utils/request'
-
+import {moduleRequest} from "@/utils/reSourceRequest";
+const requests = moduleRequest(`/api/webapp/`)
 const request = (url, ...arg) => baseRequest(`/api/webapp/disk/college/` + url, ...arg)
 
 export default {
@@ -10,5 +11,10 @@ export default {
 
 	treeAll(data) {
 		return request('treeAll', data, 'get')
+	},
+	getUser(p){
+		return requests('disk/CollegeUser/getUser', p, 'get')
 	}
+
+
 }

+ 1 - 1
src/components/UpLoadBreakPoint/index.vue

@@ -136,7 +136,7 @@
 		},
 		upLoadfileLists: {
 			type: Array,
-			default: () => ['jpg','png','pdf','mp4','docx','doc','xlsx','xls','pptx','ppt','txt','cad','zip','rar']
+			default: () => ['jpg','png','pdf','mp4','docx','doc','xlsx','xls','pptx','ppt','txt','cad','zip','rar','dwg','dxf','dwt']
 		},
 	})
 

+ 5 - 0
src/router/fullPage.js

@@ -32,6 +32,11 @@ const portal = [
 		path: '/tlogin',
 		component: () => import('@/views/tlogin/login.vue'),
 	},
+	{
+		name: 'jump',
+		path: '/jump',
+		component: () => import('@/views/jump/index.vue'),
+	},
 
 	// {
 	// 	name: 'classManagement',

+ 4 - 0
src/router/whiteList.js

@@ -201,6 +201,10 @@ const constRouters = [
 	{
 		path: '/resourceStatistics',
 		component: () => import('@/views/resourceStatistics/index.vue'),
+	},
+	{
+		path: '/jump',
+		component: () => import('@/views/jump/index.vue'),
 	}
 	// {
 	// 	path: '/answerManagement',

+ 77 - 0
src/views/jump/callback.vue

@@ -0,0 +1,77 @@
+<template>
+	<div class="login_background">
+		<div class="login_background_front"></div>
+		<div class="login_main">
+			<div class="login-form">
+				<a-card>
+					<div class="login-header">
+						<h2>三方登录</h2>
+					</div>
+					<a-spin tip="正在登录中...">
+						<div class="h-[300px]">
+							<a-skeleton />
+						</div>
+					</a-spin>
+				</a-card>
+			</div>
+		</div>
+	</div>
+</template>
+
+<script setup name="loginCallback">
+	import { message } from 'ant-design-vue'
+	import tool from '@/utils/tool'
+	import router from '@/router'
+	import thirdApi from '@/api/auth/thirdApi'
+	import loginApi from '@/api/auth/loginApi'
+	import userCenterApi from '@/api/sys/userCenterApi'
+	import dictApi from '@/api/dev/dictApi'
+	import { onMounted } from 'vue'
+
+	onMounted(() => {
+		// 获取当前url
+		const url = new URL(window.location.href)
+		let argLength = 0
+		const params = {}
+		url.searchParams.forEach((value, key) => {
+			argLength += 1
+			params[key] = value
+		})
+		// 当然了,不可能只有一个参数
+		if (argLength < 2) {
+			window.location.href = '/login'
+			return
+		}
+
+		thirdApi
+			.thirdCallback(params)
+			.then((data) => {
+				tool.data.set('TOKEN', data)
+				// 获取登录的用户信息
+				loginApi.getLoginUser().then((loginUser) => {
+					tool.data.set('USER_INFO', loginUser)
+				})
+				userCenterApi.userLoginMenu().then((menu) => {
+					const indexMenu = menu[0].children[0].path
+					tool.data.set('MENU', menu)
+					// 重置系统默认应用
+					tool.data.set('SNOWY_MENU_MODULE_ID', menu[0].id)
+					router.replace({
+						path: indexMenu
+					})
+					message.success('登录成功')
+					dictApi.dictTree().then((dictData) => {
+						// 设置字典到store中
+						tool.data.set('DICT_TYPE_TREE_DATA', dictData)
+					})
+				})
+			})
+			.catch(() => {
+				window.location.href = '/login'
+			})
+	})
+</script>
+
+<style lang="less" scoped>
+	@import 'login';
+</style>

+ 45 - 0
src/views/jump/index.vue

@@ -0,0 +1,45 @@
+<template>
+
+</template>
+
+<script setup>
+	import loginApi from '@/api/auth/loginApi'
+	import phoneLoginForm from './phoneLoginForm.vue'
+	import threeLogin from './threeLogin.vue'
+	import smCrypto from '@/utils/smCrypto'
+	import { required } from '@/utils/formRules'
+	import { afterLogin } from './util'
+	import { onMounted } from 'vue'
+	import config from '@/config'
+	import configApi from '@/api/dev/configApi'
+	import tool from '@/utils/tool'
+	import { globalStore, iframeStore, keepAliveStore, viewTagsStore } from '@/store'
+	import { mapActions, mapState } from 'pinia'
+
+	onMounted( ()=>{
+		const urlParams = new URLSearchParams(window.location.search);
+
+		let token = urlParams.get('token');
+		let type = urlParams.get('type');
+		let id = urlParams.get('id');
+		console.log('什么呢',token)
+		if (token == undefined) {
+			return
+		}
+		const params = new URLSearchParams({
+			id
+		});
+		if(type == 0){
+			afterLogin(token,'/')
+		}else{
+			console.log('什么呢路径',params.toString())
+			afterLogin(token,`/portal/resourceDetails`,{id : id})
+		}
+
+	})
+
+</script>
+
+<style lang="less">
+	@import 'login';
+</style>

+ 152 - 0
src/views/jump/login.less

@@ -0,0 +1,152 @@
+.login-icon-gray {
+  color: rgba(0, 0, 0, 0.25);
+}
+.login-validCode-img {
+  border: 1px solid var(--border-color-split);
+  cursor: pointer;
+  width: 100%;
+  height: 40px;
+}
+.login_background {
+  width: 100%;
+	min-height: 100vh;
+  overflow: hidden;
+  background-size: cover;
+  background-position: center;
+  background-image: url(/img/login_background.png);
+}
+.login_background_front {
+  width: 450px;
+  height: 450px;
+  margin-left: 100px;
+  margin-top: 15%;
+  overflow: hidden;
+  /*position: relative;*/
+  background-size: cover;
+  background-position: center;
+  background-image: url(/img/login_background_front.png);
+  animation-name: myfirst;
+  animation-duration: 5s;
+  animation-timing-function: linear;
+  animation-delay: 1s;
+  animation-iteration-count: infinite;
+  animation-direction: alternate;
+  animation-play-state: running;
+}
+@keyframes myfirst {
+  0% {
+    left: 0px;
+    top: 0px;
+  }
+  50% {
+    left: 50px;
+    top: 0px;
+  }
+  100% {
+    left: 0px;
+    top: 0px;
+  }
+}
+@-webkit-keyframes myfirst /* Safari and Chrome */ {
+  0% {
+    left: 0px;
+    top: 0px;
+  }
+  50% {
+    left: 50px;
+    top: 0px;
+  }
+  100% {
+    left: 0px;
+    top: 0px;
+  }
+}
+.login_adv__title h2 {
+  font-size: 40px;
+}
+.login_adv__title h4 {
+  font-size: 18px;
+  margin-top: 10px;
+  font-weight: normal;
+}
+.login_adv__title p {
+  font-size: 14px;
+  margin-top: 10px;
+  line-height: 1.8;
+  color: rgba(255, 255, 255, 0.6);
+}
+.login_adv__title div {
+  margin-top: 10px;
+  display: flex;
+  align-items: center;
+}
+.login_adv__title div span {
+  margin-right: 15px;
+}
+.login_adv__title div i {
+  font-size: 40px;
+}
+.login_adv__title div i.add {
+  font-size: 20px;
+  color: rgba(255, 255, 255, 0.6);
+}
+/*background-image:linear-gradient(transparent, #000);*/
+.login_main {
+  flex: 1;
+  overflow: auto;
+  display: flex;
+}
+.login-form {
+  top: 15%;
+  right: 15%;
+  position: absolute;
+  width: 450px;
+  margin-left: 10%;
+  margin-top: 20px;
+  padding: 10px 0;
+}
+.login-header {
+  margin-bottom: 20px;
+}
+.login-header .logo {
+  display: flex;
+  align-items: center;
+}
+.login-header .logo img {
+  width: 35px;
+  height: 35px;
+  vertical-align: bottom;
+  margin-right: 10px;
+}
+.login-header .logo label {
+  font-size: 24px;
+}
+.login-header h2 {
+  font-size: 24px;
+  font-weight: bold;
+  margin-top: 40px;
+}
+.login_config {
+  position: absolute;
+  top: 20px;
+  right: 20px;
+}
+@media (max-width: 1200px) {
+  .login-form {
+    width: 340px;
+  }
+}
+@media (max-width: 1000px) {
+  .login_main {
+    display: block;
+  }
+  .login_background_front {
+    display: none;
+  }
+  .login-form {
+    width: 100%;
+    padding: 20px 40px;
+    right: 0 !important;
+    top: 0 !important;
+  }
+}

+ 168 - 0
src/views/jump/phoneLoginForm.vue

@@ -0,0 +1,168 @@
+<template>
+	<a-form ref="phoneLoginFormRef" :model="phoneFormData" :rules="formRules">
+		<a-form-item name="phone">
+			<a-input v-model:value="phoneFormData.phone" :placeholder="$t('login.phonePlaceholder')" size="large">
+				<template #prefix>
+					<mobile-outlined class="text-black text-opacity-25" />
+				</template>
+			</a-input>
+		</a-form-item>
+		<a-form-item name="phoneValidCode">
+			<a-row :gutter="8">
+				<a-col :span="17">
+					<a-input
+						v-model:value="phoneFormData.phoneValidCode"
+						:placeholder="$t('login.smsCodePlaceholder')"
+						size="large"
+					>
+						<template #prefix>
+							<mail-outlined class="text-black text-opacity-25" />
+						</template>
+					</a-input>
+				</a-col>
+				<a-col :span="7">
+					<a-button size="large" style="width: 100%" @click="getPhoneValidCode" :disabled="state.smsSendBtn">
+						{{ (!state.smsSendBtn && $t('login.getSmsCode')) || state.time + ' s' }}
+					</a-button>
+				</a-col>
+			</a-row>
+		</a-form-item>
+		<a-form-item>
+			<a-button type="primary" style="width: 100%" :loading="loading" round size="large" @click="submitLogin">
+				{{ $t('login.signIn') }}
+			</a-button>
+		</a-form-item>
+	</a-form>
+	<a-modal
+		v-model:visible="visible"
+		:width="400"
+		:title="$t('login.machineValidation')"
+		@cancel="handleCancel"
+		@ok="handleOk"
+	>
+		<a-form ref="phoneLoginFormModalRef" :model="phoneFormModalData" :rules="formModalRules">
+			<a-form-item name="validCode">
+				<a-row :gutter="8">
+					<a-col :span="17">
+						<a-input
+							v-model:value="phoneFormModalData.validCode"
+							:placeholder="$t('login.validLaceholder')"
+							size="large"
+						>
+							<template #prefix>
+								<verified-outlined class="text-black text-opacity-25" />
+							</template>
+						</a-input>
+					</a-col>
+					<a-col :span="7">
+						<img
+							:src="validCodeBase64"
+							style="border: 1px solid var(--border-color-split); cursor: pointer; width: 100%; height: 40px"
+							@click="getPhonePicCaptcha"
+						/>
+					</a-col>
+				</a-row>
+			</a-form-item>
+		</a-form>
+	</a-modal>
+</template>
+
+<script setup name="smsLoginForm">
+	import { message } from 'ant-design-vue'
+	import { required, rules } from '@/utils/formRules'
+	import loginApi from '@/api/auth/loginApi'
+	import { afterLogin } from './util'
+
+	const phoneLoginFormRef = ref()
+	const phoneFormData = ref({})
+	const loading = ref(false)
+	let state = ref({
+		time: 60,
+		smsSendBtn: false
+	})
+	let formRules = ref({})
+	const phoneValidCodeReqNo = ref('')
+
+	// 点击获取短信验证码
+	const getPhoneValidCode = () => {
+		formRules.value.phone = [required('请输入11位手机号'), rules.phone]
+		delete formRules.value.phoneValidCode
+		phoneLoginFormRef.value.validate().then(() => {
+			// 显示弹框
+			visible.value = true
+			// 获取内部图片验证码
+			getPhonePicCaptcha()
+		})
+	}
+	// 点击登录按钮
+	const submitLogin = async () => {
+		formRules.value.phone = [required('请输入11位手机号'), rules.phone]
+		formRules.value.phoneValidCode = [required('请输入短信验证码'), rules.number]
+
+		const validate = await phoneLoginFormRef.value.validate().catch(() => {})
+		if (!validate) return false
+
+		phoneFormData.value.validCode = phoneFormData.value.phoneValidCode
+		// delete phoneFormData.value.phoneValidCode
+		phoneFormData.value.validCodeReqNo = phoneValidCodeReqNo.value
+
+		loading.value = true
+		try {
+			const token = await loginApi.loginByPhone(phoneFormData.value)
+			afterLogin(token)
+		} catch (err) {
+			loading.value = false
+		}
+	}
+
+	// 弹框的
+	const visible = ref(false)
+	const phoneLoginFormModalRef = ref()
+	const phoneFormModalData = ref({})
+	const validCodeBase64 = ref('')
+	const validCodeReqNo = ref('')
+	const formModalRules = {
+		validCode: [required('请输入图形验证码'), rules.lettersNum]
+	}
+	const getPhonePicCaptcha = () => {
+		loginApi.getPicCaptcha().then((data) => {
+			validCodeBase64.value = data.validCodeBase64
+			phoneFormModalData.value.validCodeReqNo = data.validCodeReqNo
+		})
+	}
+	const handleCancel = () => {
+		visible.value = false
+	}
+	const handleOk = () => {
+		// 获取到里面的验证码,并发送短信
+		phoneLoginFormModalRef.value.validate().then(() => {
+			visible.value = false
+			// 发送短信,首先拿到刚刚输入的手机号
+			phoneFormModalData.value.phone = phoneFormData.value.phone
+			// 禁用发送按钮,并设置为倒计时
+			state.value.smsSendBtn = true
+			const interval = window.setInterval(() => {
+				if (state.value.time-- <= 0) {
+					state.value.time = 60
+					state.value.smsSendBtn = false
+					window.clearInterval(interval)
+				}
+			}, 1000)
+			const hide = message.loading('验证码发送中..', 0)
+
+			loginApi
+				.getPhoneValidCode(phoneFormModalData.value)
+				.then((data) => {
+					phoneValidCodeReqNo.value = data
+					visible.value = false
+					setTimeout(hide, 500)
+					phoneFormModalData.value.validCode = ''
+				})
+				.catch(() => {
+					setTimeout(hide, 100)
+					clearInterval(interval)
+					state.value.smsSendBtn = false
+				})
+		})
+	}
+</script>

+ 24 - 0
src/views/jump/threeLogin.vue

@@ -0,0 +1,24 @@
+<template>
+	<a-divider>{{ $t('login.signInOther') }}</a-divider>
+	<div class="login-oauth layout-center">
+		<a-space align="start">
+			<a @click="getLoginRenderUrl('gitee')"><GiteeIcon /></a>
+			<a-button type="primary" shape="circle">
+				<wechat-filled />
+			</a-button>
+		</a-space>
+	</div>
+</template>
+
+<script setup name="threeLogin">
+	import thirdApi from '@/api/auth/thirdApi'
+
+	const getLoginRenderUrl = (platform) => {
+		const param = {
+			platform: platform
+		}
+		thirdApi.thirdRender(param).then((data) => {
+			window.location.href = data.authorizeUrl
+		})
+	}
+</script>

+ 59 - 0
src/views/jump/util.js

@@ -0,0 +1,59 @@
+import loginApi from '@/api/auth/loginApi'
+import userCenterApi from '@/api/sys/userCenterApi'
+import dictApi from '@/api/dev/dictApi'
+import router from '@/router'
+import tool from '@/utils/tool'
+import { message } from 'ant-design-vue'
+import { useGlobalStore, useMyResourceStore } from '@/store'
+import routerUtil from '@/utils/routerUtil'
+
+export const afterLogin = async (loginToken,path,query) => {
+	tool.data.set('TOKEN', loginToken)
+	//cookie里添加 token
+	tool.cookie.set('Token', loginToken)
+	// 获取登录的用户信息
+	const loginUser = await loginApi.getLoginUser()
+	const globalStore = useGlobalStore()
+	const myResourceStore = useMyResourceStore()
+	globalStore.setUserInfo(loginUser)
+	myResourceStore.getUserInfo()
+	tool.data.set('USER_INFO', loginUser)
+
+	// 获取用户的菜单
+	const menu = await userCenterApi.userLoginMenu()
+	let indexMenu = routerUtil.getIndexMenu(menu).path
+	tool.data.set('MENU', menu)
+	// 重置系统默认应用
+	tool.data.set('SNOWY_MENU_MODULE_ID', menu[0].id)
+	// message.success('登录成功')
+	if (!!tool.data.get('LAST_VIEWS_PATH')) {
+		// 如果有缓存,将其登录跳转到最后访问的路由
+		indexMenu = tool.data.get('LAST_VIEWS_PATH')
+	}
+	// 如果存在退出后换新账号登录,进行重新匹配,匹配无果则默认首页
+	if (menu) {
+		let routerTag = 0
+		menu.forEach((item) => {
+			if (item.children) {
+				if (JSON.stringify(item.children).indexOf(indexMenu) > -1) {
+					routerTag++
+				}
+			}
+		})
+		if (routerTag === 0) {
+			// 取首页
+			indexMenu = routerUtil.getIndexMenu(menu).path
+		}
+	}
+	dictApi.dictTree().then((data) => {
+		// 设置字典到store中
+		tool.data.set('DICT_TYPE_TREE_DATA', data)
+	})
+	console.log('转过去吗',path)
+	await router.replace({
+		path: path,
+		query: query // 保留当前的查询参数
+	})
+	// location.reload()
+
+}

+ 22 - 1
src/views/resourceDetails/components/VideoDetails.vue

@@ -54,6 +54,26 @@
 						<!-- <a-image width="200px" height="220px" :src="pdfRes" :preview="false" @click="handleDownload(resSrc)" /> -->
 						<!-- <a-button type="primary" @click="handleDownload(resSrc)">去预览</a-button> -->
 					</div>
+<!--					'jpg','png','pdf','mp4','docx','doc','xlsx','xls','pptx','ppt','txt','cad','zip','rar','dwg','dxf','dwt'-->
+					<div
+						v-if="
+						videoFormat == 'txt' ||
+						videoFormat == 'cad' ||
+						videoFormat == 'zip' ||
+						videoFormat == 'rar' ||
+						videoFormat == 'dwg' ||
+						videoFormat == 'dxf' ||
+						videoFormat == 'dwt'
+					"
+						style="width: 1206px; height: 600px; display: flex; justify-content: center; align-items: center;"
+					>
+<!--						<span style="display: block; font-weight: bold">{{resName}}</span>-->
+						<a-image :src="coverImagePath" width="400px" height="400px" ></a-image>
+						<!-- <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 class="user-info" style="display: flex; flex-direction: column">
 						<div style="display: flex; align-items: center; justify-content: space-between; width: 100%">
@@ -211,6 +231,7 @@
 	const ShareDialogRef = ref(null)
 	const resSrc = ref('')
 	const fileType = ref('')
+	const coverImagePath = ref('')
 	const resName = ref('资源名称')
 
 	const teacherName = ref('王某某')
@@ -303,7 +324,7 @@
 					// 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
+					coverImagePath.value = sysConfig.FILE_URL + itemData.value.coverImagePath
 					// imagess.value = 'http://192.168.1.245:10005/education/' + itemData.value.priviewFileUrl
 
 					// VideoDetailsRef.value.setData(res.sdata)