于添 3 месяцев назад
Родитель
Сommit
539f40497e

+ 14 - 0
.env.production22

@@ -0,0 +1,14 @@
+# 生产环境
+NODE_ENV = production
+
+# 标题
+VITE_TITLE = 飞行学院
+
+# 接口地址
+VITE_API_BASEURL = http://22.120.128.109:19003
+VITE_FILEURL = http://22.120.128.108:10005/education/
+# 本地端口
+VITE_PORT = 9000
+
+# 开启设置抽屉
+VITE_SET_DRAWER = false

+ 1 - 0
package.json

@@ -14,6 +14,7 @@
 		"build": "shx rm -rf dist && vite build --mode production && node scripts/build-zip.cjs",
 		"build245": "shx rm -rf dist && vite build --mode production245 && node scripts/build-zip.cjs",
 		"build49": "shx rm -rf dist && vite build --mode production49 && node scripts/build-zip.cjs",
+		"build22": "shx rm -rf dist && vite build --mode production22 && node scripts/build-zip.cjs",
 		"prod": "vite  --mode production && node scripts/build-zip.cjs"
 	},
 	"dependencies": {

+ 8 - 3
src/components/UpLoadBreakPoint/index.vue

@@ -338,7 +338,8 @@
 			md5: uploadFile.md5,
 			chunkSize: uploadFile.chunks.length,
 			fileName: uploadFile.name,
-			fileSuffix: uploadFile.fileSuffix
+			fileSuffix: uploadFile.fileSuffix,
+			affiliationFuncType : 1
 		}
 		md5List.push(element)
 
@@ -483,6 +484,7 @@
 					chunkPromises.push(
 						await uploadFilesChunk(
 							{
+								affiliationFuncType : 1,
 								md5,
 								chunk,
 								chunkIndex: i + 1,
@@ -532,7 +534,7 @@
 			if (uploadFileList.value[i].chunks.length === chunksUploadedList[i]) {
 				const mergeResult = await axios.post(
 					// `/api/webapp/disk/minio/merge?md5=${uploadFileList.value[i].md5}&fileSuffix=${uploadFileList.value[i].fileSuffix}&chunkTotal=${chunksUploadedList[i]}`
-					sysConfig.API_URL+`/api/webapp/minio/merge?md5=${uploadFileList.value[i].md5}&fileSuffix=${uploadFileList.value[i].fileSuffix}&chunkTotal=${chunksUploadedList[i]}&fileName=${uploadFileList.value[i].name}&fileSize=${uploadFileList.value[i].size}`,
+					sysConfig.API_URL+`/api/webapp/minio/merge?md5=${uploadFileList.value[i].md5}&fileSuffix=${uploadFileList.value[i].fileSuffix}&chunkTotal=${chunksUploadedList[i]}&fileName=${uploadFileList.value[i].name}&fileSize=${uploadFileList.value[i].size}&affiliationFuncType=1`,
 					null,
 					{ headers: { Token: tool.data.get('TOKEN') } }
 				)
@@ -579,6 +581,7 @@
 		formData.append('chunkSize', data.chunkSize)
 		formData.append('fileSuffix', data.fileSuffix)
 		formData.append('fileName', data.fileName)
+		formData.append('affiliationFuncType', data.affiliationFuncType)
 		return axios
 			.post(sysConfig.API_URL+'/api/webapp/minio/upload', formData, {
 				headers: { 'Content-Type': 'multipart/form-data', Token: tool.data.get('TOKEN') }
@@ -605,6 +608,7 @@
 		formData.append('chunkSize', data.chunkSize)
 		formData.append('fileSuffix', data.fileSuffix)
 		formData.append('fileName', data.fileName)
+		formData.append('affiliationFuncType', data.affiliationFuncType)
 		return axios
 			.post(sysConfig.API_URL+'/api/webapp/minio/upload', formData, {
 				headers: { 'Content-Type': 'multipart/form-data', Token: tool.data.get('TOKEN') }
@@ -705,6 +709,7 @@
 			chunkPromises.push(
 				await uploadFilesChunk(
 					{
+						affiliationFuncType : 1,
 						md5,
 						chunk,
 						chunkIndex: i + 1,
@@ -736,7 +741,7 @@
 
 		// 合并分片
 		const mergeResult = await axios.post(
-			sysConfig.API_URL+`/api/webapp/minio/merge?md5=${md5}&fileSuffix=${item.fileSuffix}&chunkTotal=${item.chunks.length}&fileName=${item.name}&fileSize=${item.size}`,
+			sysConfig.API_URL+`/api/webapp/minio/merge?md5=${md5}&fileSuffix=${item.fileSuffix}&chunkTotal=${item.chunks.length}&fileName=${item.name}&fileSize=${item.size}&affiliationFuncType=1`,
 			null,
 			{ headers: { Token: tool.data.get('TOKEN') } }
 		)

+ 2 - 2
src/views/courseAdd/components/courseProduction/userSelection.vue

@@ -1,6 +1,6 @@
 <template>
 	<a-drawer
-		v-model:visible="visible"
+		v-model:visible="props.visible"
 		title="选择可见成员"
 		placement="right"
 		width="50%"
@@ -169,7 +169,7 @@
 	// 替换原来的onSelect方法
 	const onCheck = (checkedKeysValue, { checked, node, checkedNodes }) => {
 		// 过滤掉非叶子节点
-		const leafNodes = checkedNodes.filter((node) => node.isLeaf)
+		const leafNodes = checkedNodes.filter((node) => node.isLeaf&& node.infoType=="user")
 		checkedKeys.value = leafNodes.map((node) => node.id)
 		selectedUsers.value = leafNodes.map((node) => ({
 			id: node.id,

+ 5 - 9
src/views/courseManagement/components/ListView.vue

@@ -102,17 +102,13 @@
 			title: '状态',
 			dataIndex: 'putawayStatusName'
 		},
-		{
-			title: '院系',
-			dataIndex: 'collegeTwoIdName'
-		},
 		{
 			title: '客观题练习人数',
-			dataIndex: 'thereCount'
+			dataIndex: 'externalQuesCount'
 		},
 		{
 			title: '主观题练习人数',
-			dataIndex: 'mainCount'
+			dataIndex: 'subjectiveQuesCount'
 		},
 		{
 			title: '课程类型',
@@ -223,8 +219,8 @@
 				...item,
 				coursesNumber: Math.floor(Math.random() * 10) + 1, // 1-10之间的随机数
 				NumberCoursesOffered: Math.floor(Math.random() * 5) + 1, // 1-5之间的随机数
-				thereCount: Math.floor(Math.random() * 5) + 1, // 1-5之间的随机数
-				mainCount: Math.floor(Math.random() * 5) + 1, // 1-5之间的随机数
+				// thereCount: Math.floor(Math.random() * 5) + 1, // 1-5之间的随机数
+				// mainCount: Math.floor(Math.random() * 5) + 1, // 1-5之间的随机数
 				CourseSelectionInformation: `已选${Math.floor(Math.random() * 100)}人/限选${
 					Math.floor(Math.random() * 100) + 50
 				}人`
@@ -233,7 +229,7 @@
 	}
 
 	const getList = () => {
-		list({ ...pagination.value }).then((data) => {
+		list({ ...pagination.value,...{needQuesCount: 1} }).then((data) => {
 			if (data.code == 200) {
 				dataSources.value = []
 				// 使用假数据方法处理返回的数据

+ 3 - 2
src/views/courseOpen/components/QueryView.vue

@@ -3,7 +3,7 @@
 		<div>
 			<a-form layout="inline" :model="formState">
 				<a-form-item label="" style="width: 300px">
-					<a-input v-model:value="formState.gradesName" placeholder="请输入班级名称" allowClear />
+					<a-input v-model:value="formState.gradeName" placeholder="请输入班级名称" allowClear />
 				</a-form-item>
 				<!--				<a-form-item label="" style="width: 300px">-->
 				<!--&lt;!&ndash;					<a-cascader&ndash;&gt;-->
@@ -66,7 +66,7 @@
 	const loading = ref(false) // 列表loading
 	const COURSE_TYPE = tool.dictTypeList('COURSE_TYPE')
 	const formState = ref({
-		gradesName: undefined,
+		gradeName: undefined,
 		collegeId: undefined,
 		majorId: undefined,
 		courseType: undefined,
@@ -184,6 +184,7 @@
 	// 重置按钮点击事件
 	const handleReset = () => {
 		formState.value = {
+			gradeName: undefined,
 			courseName: undefined,
 			collegeId: undefined,
 			majorId: undefined,

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

@@ -105,6 +105,7 @@
 	import forumApi from '@/api/forum/forumApi'
 	import XnEditor from '@/components/Editor/index.vue'
 	import Bowser from 'bowser'
+	import {message} from "ant-design-vue";
 	// 抽屉状态
 	const visible = ref(false)
 	const emit = defineEmits({ successful: null })
@@ -199,11 +200,31 @@
 		return option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0
 	}
 	// 默认要校验的
-	const formRules = {}
+	const formRules = {
+		postTitle: [{required: true, message: '请输入标题'}],
+		postType: [{required: true, message: '请选择帖子类型'}],
+		typeId: [{required: true, message: '请选择分类'}],
+		postContent: [{required: true, message: '请输入内容'}],
+		userId: [{required: true, message: '请选择用户'}],
+	}
 	// 验证并提交数据
 	const onSubmit = () => {
+		if(formData.postType==2 && formData.contentCorrectionParam.resourceType == null){
+			message.error('请选择纠错类型')
+			return
+		}
+		if (formData.postType==2 && formData.contentCorrectionParam.resourceId == null){
+			message.error('请选择目标')
+			return
+		}
+
+
 		formRef.value.validate().then(() => {
+
+
 			submitLoading.value = true
+
+
 			if (formData.value.postType == 1) {
 				formData.value = Object.assign(formData.value, browserObj.value)
 			}

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

@@ -1,6 +1,6 @@
 <template>
 	<a-drawer
-		v-model:visible="visible"
+		v-model:visible="props.visible"
 		title="选择可见成员"
 		placement="right"
 		width="50%"
@@ -169,7 +169,7 @@
 	// 替换原来的onSelect方法
 	const onCheck = (checkedKeysValue, { checked, node, checkedNodes }) => {
 		// 过滤掉非叶子节点
-		const leafNodes = checkedNodes.filter((node) => node.isLeaf)
+		const leafNodes = checkedNodes.filter((node) => node.isLeaf&& node.infoType=="user")
 		checkedKeys.value = leafNodes.map((node) => node.id)
 		selectedUsers.value = leafNodes.map((node) => ({
 			id: node.id,

+ 1 - 1
src/views/statisticalAnalysis/analysisLearningBehaviors/index.vue

@@ -2,7 +2,7 @@
 	<div class="learning-behavior-analysis">
 		<!-- 页面头部 -->
 		<div class="header">
-			<h1>📊 在线学习统计分析报告</h1>
+			<h1>📊 学习行为分析</h1>
 			<p>系统不定期生成在线学习统计分析报告</p>
 		</div>
 

+ 2 - 0
src/views/statisticalAnalysis/platformStatusOverview/index.vue

@@ -241,6 +241,8 @@
 		chartInstance = echarts.init(visitChart.value)
 
 		const { visitData, dateRange } = data
+		visitData.reverse();
+		console.log('时间和数据', ' visitData ',visitData, ' dateRange ',dateRange,' data ',data)
 
 		const option = {
 			title: {