Răsfoiți Sursa

修改了 不能 发布资源的问题

于添 6 luni în urmă
părinte
comite
9b6e420aef

+ 8 - 1
src/utils/tool.js

@@ -1,4 +1,4 @@
- 
+
 /*
  * @Descripttion: 工具集
  * @version: 1.1
@@ -218,5 +218,12 @@ tool.writeText = (text) => {
 	document.execCommand('copy')
 	document.body.removeChild(copyInput)
 }
+//字符串截取 ...
+tool.truncateString = (str, maxLength) =>{
+	if (str.length > maxLength) {
+		return str.substring(0, maxLength) + '...';
+	}
+	return str;
+}
 
 export default tool

+ 1 - 0
src/views/courseAdd/components/courseProduction/resourceUpload.vue

@@ -126,6 +126,7 @@
 			></userSelection>
 		</a-form>
 		<template v-if="isState == 0">
+
 			<!-- 资源上传 -->
 			<!-- <UploadModal @success="uploadSuccess"></UploadModal> -->
 			<UpLoadBreakPoint ref="UpLoadBreakPointRef" @onSuccess="onSuccess"></UpLoadBreakPoint>

+ 3 - 3
src/views/courseAdd/index.vue

@@ -9,9 +9,9 @@
 					<a-tab-pane key="2" tab="课程制作" :disabled="courseInfoId==null">
 						<courseProduction :courseInfoId="courseInfoId" />
 					</a-tab-pane>
-<!--					<a-tab-pane key="3" tab="学员管理" :disabled="courseInfoId==null">-->
-<!--						<StudentDetails :courseInfoId="courseInfoId"></StudentDetails>-->
-<!--					</a-tab-pane>-->
+					<a-tab-pane key="3" tab="学员管理" :disabled="courseInfoId==null">
+						<StudentDetails :courseInfoId="courseInfoId"></StudentDetails>
+					</a-tab-pane>
 <!--					<a-tab-pane key="4" tab="作业布置" :disabled="courseInfoId==null">-->
 <!--						<div>这里是作业布置的内容</div>-->
 <!--					</a-tab-pane>-->

+ 2 - 2
src/views/myFavorites/index.vue

@@ -446,7 +446,7 @@
 			const params = {
 				ids: selectedRows.value.map((item) => item.id).join(','),
 				coverImage: obj.coverImageId,
-				resourceDesc: obj.resourceDesc,
+				resourceDesc: obj.courseDesc,
 				verifyStatus: 1
 			}
 			console.log(params, '批量发布参数')
@@ -455,7 +455,7 @@
 			const params = {
 				ids: publishedData.value.id,
 				coverImage: obj.coverImageId,
-				resourceDesc: obj.resourceDesc,
+				resourceDesc: obj.courseDesc,
 				verifyStatus: 1
 			}
 			console.log(params, '发布参数')

+ 2 - 1
src/views/myResources/index.vue

@@ -383,7 +383,7 @@
 	}
 	//发布确定
 	const confirm = (obj) => {
-		console.log(obj, '传回来的数据')
+		console.log('传回来的数据',obj )
 		let params = {
 			courseAuditId: publishedData.value.courseAuditId,
 			fileId: publishedData.value.fileId,
@@ -394,6 +394,7 @@
 			courseDesc: obj.courseDesc,
 			coverImageId: obj.coverImageId
 		}
+		console.log('准备去请求了',params )
 		resourceAuditApi
 			.release(params)
 			.then((res) => {

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

@@ -723,7 +723,7 @@
 			const params = {
 				ids: selectedRows.value.map((item) => item.id).join(','),
 				coverImage: obj.coverImageId,
-				resourceDesc: obj.resourceDesc,
+				resourceDesc: obj.courseDesc,
 				verifyStatus: 1
 			}
 			console.log(params, '批量发布参数')
@@ -732,7 +732,7 @@
 			const params = {
 				ids: publishedData.value.id,
 				coverImage: obj.coverImageId,
-				resourceDesc: obj.resourceDesc,
+				resourceDesc: obj.courseDesc,
 				verifyStatus: 1
 			}
 			console.log(params, '发布参数')

+ 112 - 91
src/views/myResources/releaseModal.vue

@@ -7,7 +7,11 @@
 		@ok="handleUploadOk"
 		@cancel="handleUploadCancel"
 	>
-		<a-form :model="uploadForm" :label-col="{ span: 6 }" :wrapper-col="{ span: 16 }">
+		<a-form :model="uploadForm"
+				ref="formRef"
+				:rules="formRules"
+				:label-col="{ span: 6 }"
+				:wrapper-col="{ span: 16 }">
 			<!-- <a-form-item label="资源名称" name="resourceName">
 				<a-input v-model:value="uploadForm.resourceName" placeholder="请输入资源名称" />
 			</a-form-item> -->
@@ -24,122 +28,139 @@
 			</a-form-item> -->
 
 			<a-form-item label="资源描述" name="courseDesc">
-				<a-textarea v-model:value="uploadForm.resourceDesc" placeholder="请输入资源描述" :rows="4" />
+				<a-textarea v-model:value="uploadForm.courseDesc" placeholder="请输入资源描述" :rows="4"/>
 			</a-form-item>
 
 			<a-form-item label="上传封面" name="coverImageId">
-				<coverUpload @handleChangeCover="handleChangeCover" @handleRemoveCover="handleRemoveCover"></coverUpload>
+				<coverUpload @handleChangeCover="handleChangeCover"
+							 @handleRemoveCover="handleRemoveCover"></coverUpload>
 			</a-form-item>
 		</a-form>
 	</a-modal>
 </template>
 
 <script setup>
-	import { ref, reactive } from 'vue'
-	import { Modal, Upload, message } from 'ant-design-vue'
-	import { PlusOutlined } from '@ant-design/icons-vue'
-	import coverUpload from './coverUpload/index.vue'
-	import tool from '@/utils/tool'
-	import sysConfig from "@/config";
-
-	// const props = defineProps({
-	// 	isState: {
-	// 		type: Number,
-	// 		required: true,
-	// 		default: 0
-	// 	}
-	// })
-	const headers = ref({
-		token: tool.data.get('TOKEN')
-	})
-	const action = ref(sysConfig.API_URL+'/api/webapp/dev/file/uploadMinioReturnId')
-	const emit = defineEmits(['close', 'confirm'])
-
-	// 表单数据
-	const uploadForm = reactive({
+import {ref, reactive} from 'vue'
+import {Modal, Upload, message} from 'ant-design-vue'
+import {PlusOutlined} from '@ant-design/icons-vue'
+import coverUpload from './coverUpload/index.vue'
+import tool from '@/utils/tool'
+import sysConfig from "@/config";
+import {required} from "@/utils/formRules";
+import dictApi from "@/api/dev/dictApi";
+
+// const props = defineProps({
+// 	isState: {
+// 		type: Number,
+// 		required: true,
+// 		default: 0
+// 	}
+// })
+const headers = ref({
+	token: tool.data.get('TOKEN')
+})
+const formRef = ref(null)
+
+const formRules = {
+	courseDesc: [required('请输入资源描述', 'blur')],
+	coverImageId: [required('请选择封面', 'change')],
+}
+const action = ref(sysConfig.API_URL + '/api/webapp/dev/file/uploadMinioReturnId')
+const emit = defineEmits(['close', 'confirm'])
+
+// 表单数据
+const uploadForm = reactive({
+	// resourceName: null,
+	// resourceType: null,
+	// courseName: null,
+	courseDesc: undefined,
+	coverImageId: undefined
+})
+
+// 封面文件列表
+const coverFileList = ref([])
+const fileList = ref([])
+
+const uploadModalVisible = ref(true)
+
+// 显示上传模态框
+// const showUploadModal = () => {
+//   uploadModalVisible.value = true
+// }
+
+// 关闭模态框
+const handleUploadCancel = () => {
+	// uploadModalVisible.value = false
+	Object.assign(uploadForm, {
 		// resourceName: null,
-		// resourceType: null,
+		courseDesc: undefined,
 		// courseName: null,
-		resourceDesc: null,
-		coverImageId: '123'
+		// courseDesc: null,
+		coverImageId: undefined
 	})
+	fileList.value = []
+	coverFileList.value = []
+	emit('close')
+}
 
-	// 封面文件列表
-	const coverFileList = ref([])
-	const fileList = ref([])
-
-	const uploadModalVisible = ref(true)
-
-	// 显示上传模态框
-	// const showUploadModal = () => {
-	//   uploadModalVisible.value = true
-	// }
+const handleUploadOk = () => {
+	formRef.value.validate().then(() => {
 
-	// 关闭模态框
-	const handleUploadCancel = () => {
-		// uploadModalVisible.value = false
-		Object.assign(uploadForm, {
-			// resourceName: null,
-			resourceDesc: null,
-			// courseName: null,
-			// courseDesc: null,
-			coverImageId: null
-		})
-		fileList.value = []
-		coverFileList.value = []
-		emit('close')
-	}
-
-	const handleUploadOk = () => {
 		// 这里可以添加实际的上传逻辑
-		console.log('Upload confirmed:', uploadForm.fileId, fileList.value, coverFileList.value)
-		emit('confirm', uploadForm)
+		// console.log('Upload confirmed:', uploadForm.fileId, fileList.value, coverFileList.value)
+		console.log('追一下',uploadForm)
+		let json = JSON.parse(JSON.stringify(uploadForm))
+		emit('confirm', json)
 		// uploadModalVisible.value = false
 		Object.assign(uploadForm, {
 			// resourceName: null,
 			// resourceType: null,
 			// courseName: null,
-			resourceDesc: null,
-			coverImageId: null
+			courseDesc: undefined,
+			coverImageId: undefined
 		})
 		fileList.value = []
 		coverFileList.value = []
-	}
+	})
+
+
+}
 
-	// 封面文件id
-	const handleChangeCover = (fileId) => {
-		uploadForm.coverImageId = fileId
-	}
+// 封面文件id
+const handleChangeCover = (fileId) => {
+	uploadForm.coverImageId = fileId
+}
 
-	// 移除封面文件
-	const handleRemoveCover = () => {
-		uploadForm.coverImageId = null
-	}
+// 移除封面文件
+const handleRemoveCover = () => {
+	uploadForm.coverImageId = undefined
+}
 </script>
 
 <style scoped>
-	.upload-area {
-		border: 2px dashed #3ca9f5;
-		padding: 40px;
-		text-align: center;
-	}
-
-	.upload-area p {
-		margin: 10px 0;
-	}
-
-	.file-item {
-		display: flex;
-		align-items: center;
-		margin: 10px 0;
-	}
-
-	.file-item .ant-progress {
-		flex: 1;
-		margin: 0 10px;
-	}
-	.ant-upload-picture-card-wrapper .ant-upload-list-item-info .ant-upload-list-item-filename {
-		display: block; /* 确保文件名显示为块级元素 */
-		margin-top: 8px; /* 调整文件名与图片之间的间距 */
-	}
+.upload-area {
+	border: 2px dashed #3ca9f5;
+	padding: 40px;
+	text-align: center;
+}
+
+.upload-area p {
+	margin: 10px 0;
+}
+
+.file-item {
+	display: flex;
+	align-items: center;
+	margin: 10px 0;
+}
+
+.file-item .ant-progress {
+	flex: 1;
+	margin: 0 10px;
+}
+
+.ant-upload-picture-card-wrapper .ant-upload-list-item-info .ant-upload-list-item-filename {
+	display: block; /* 确保文件名显示为块级元素 */
+	margin-top: 8px; /* 调整文件名与图片之间的间距 */
+}
 </style>

+ 4 - 3
src/views/myResources/resourceUpload.vue

@@ -172,7 +172,7 @@
 	const action = ref(sysConfig.API_URL+'/api/webapp/dev/file/uploadMinioReturnId')
 	const formState = reactive({
 		userfileIds: null, //资源文件id
-		coverImage: null, //封面id
+		coverImage: undefined, //封面id
 		// courseId: null, //课程
 		// majorType: null, //专业
 		resourceType: null, //资源类型一级
@@ -259,7 +259,7 @@
 
 	// 移除封面文件
 	const handleRemoveCover = () => {
-		formState.coverImage = null
+		formState.coverImage = undefined
 	}
 	const rules = {
 		// courseTypeName: [{ required: true, message: '请选择资源类型', trigger: 'change' }],
@@ -273,7 +273,8 @@
 		resourceDesc: [
 			{ required: true, message: '请输入资源描述', trigger: 'blur' },
 			{ pattern: /^[\s\S]{10,500}$/, message: '描述长度应在10-500字符之间', trigger: 'blur' }
-		]
+		],
+		coverImage: [{ required: true, message: '请上传封面', trigger: 'blur' }],
 	}
 	const newKeyword = ref('') //关键词
 	const handleAddKeyword = (e) => {

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

@@ -53,7 +53,7 @@
 							</div>
 						</div>
 						<div style="display: flex; flex-direction: column; padding: 5px 10px">
-							<span style="font-size: 16px; font-weight: bold">{{ item.fileName }}</span>
+							<span style="font-size: 16px; font-weight: bold">{{tool.truncateString(item.fileName,20)  }}</span>
 							<span style="font-size: 12px">{{ item.collegeIdName }}</span>
 							<span style="font-size: 12px">{{ item.majorIdName }}</span>
 							<div style="display: flex; justify-content: space-between">

+ 3 - 2
src/views/resourceDetails/components/VideoDetails.vue

@@ -125,8 +125,9 @@
 						<div class="resInfoTitile"></div>
 						<span style="display: block; font-weight: bold">资源信息</span>
 					</div>
-					<div style="display: flex; justify-content: center; align-items: center; height: 40px">
-						<span style="display: block; font-weight: bold">{{ resName }}</span>
+					<div style="display: flex;  align-items: center; height: 40px">
+						<span style="display: block; font-weight: bold">{{tool.truncateString(resName,20)}}</span>
+<!--						<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>