Преглед на файлове

Merge branch 'develop3.0-tmd' of http://106.12.23.251:10080/TEAMMODEL/TEAMModelOS into develop3.0-tmd

liqk преди 4 години
родител
ревизия
06770289d7

+ 4 - 4
TEAMModelFunction/TriggerExam.cs

@@ -188,8 +188,8 @@ namespace TEAMModelFunction
                                 if (info.scope.Equals("private", StringComparison.OrdinalIgnoreCase))
                                 {                                                                                                        
                                     var stuResponse = await client.GetContainer("TEAMModelOS", "Teacher").ReadItemStreamAsync(cla, new Azure.Cosmos.PartitionKey($"StuList"));
-                                    if (sresponse.Status == 200) {
-                                        using var json = await JsonDocument.ParseAsync(sresponse.ContentStream);
+                                    if (stuResponse.Status == 200) {
+                                        using var json = await JsonDocument.ParseAsync(stuResponse.ContentStream);
                                         StuList stuList = json.ToObject<StuList>();
                                         //result.info.id = stuList.id;
                                         result.info.name = stuList.name;
@@ -220,9 +220,9 @@ namespace TEAMModelFunction
                                 }
                                 else {                                                                                                                                                                                                                       
                                     var stuResponse = await client.GetContainer("TEAMModelOS", "School").ReadItemStreamAsync(cla, new Azure.Cosmos.PartitionKey($"StuList-{info.school}"));
-                                    if (sresponse.Status == 200)
+                                    if (stuResponse.Status == 200)
                                     {
-                                        using var json = await JsonDocument.ParseAsync(sresponse.ContentStream);
+                                        using var json = await JsonDocument.ParseAsync(stuResponse.ContentStream);
                                         StuList stuList = json.ToObject<StuList>();
                                         //result.info.id = stuList.id;
                                         result.info.name = stuList.name;

+ 11 - 2
TEAMModelOS/ClientApp/src/components/questionnaire/BaseQnForm.vue

@@ -203,7 +203,13 @@
 						code: this.$store.state.userInfo.schoolCode
 					}).then(res => {
 						if (!res.error && res.courses) {
-							r(res.courses)
+							this.$store.dispatch('user/getSchoolProfile').then(schoolProfile => {
+							    let schoolClasses =  schoolProfile.school_classes
+								console.log(schoolClasses)
+								r([...res.courses,...schoolClasses])
+							}).catch(err => {
+								r([])
+							})
 						} else {
 							j(500)
 							this.$Message.error(this.$t('survey.getDataFailTip'))
@@ -255,8 +261,11 @@
 			 * 回显问卷详情
 			 * @param item
 			 */
-			doRender(item) {
+			async doRender(item) {
 				console.log(item)
+				if(!this.classRooms.length){
+					this.classRooms = await this.getClassrooms(this.userInfo.TEAMModelId)
+				}
 				this.qnForm = {
 					name: item.name,
 					classes: item.classes || [],

+ 2 - 3
TEAMModelOS/ClientApp/src/components/student-web/HomeView/MissionListCard.vue

@@ -75,7 +75,7 @@
             };
         },
         created() {
-            this.getPaperData()
+            this.getActivityInfo()
         },
         mounted() {
             //初始化抓取卡牌頭兩項項目高度,回傳給清單顯示範圍高度,解決原本寫死高度造成清單顯示範圍截斷在項目中間
@@ -93,7 +93,7 @@
                         listblockHeight += document.querySelectorAll(".mission-list-card .list-item")[i].offsetHeight;
                     }
                 }
-                this.getPaperData()
+                this.getActivityInfo()
                 this.listblockHeight = listblockHeight;
             }
         },
@@ -118,7 +118,6 @@
                         this.testData = data.sort(function (a, b) {
                             return b.startTime - a.startTime //时间正序
                         });
-                        this.getActivityInfo()
 
                     })
                 }

+ 17 - 3
TEAMModelOS/ClientApp/src/components/vote/BaseVoteForm.vue

@@ -200,7 +200,10 @@
 		},
 		created() {
 			/** 获取可选班级列表 */
-			this.getClassrooms(this.userInfo.TEAMModelId).then(res => this.classRooms = res)
+			this.getClassrooms(this.userInfo.TEAMModelId).then(res => {
+				console.log(res)
+				this.classRooms = res
+			})
 		},
 		methods: {
 			onClassTypeChange(val) {
@@ -419,7 +422,14 @@
 						code: this.$store.state.userInfo.schoolCode
 					}).then(res => {
 						if (!res.error && res.courses) {
-							r(res.courses)
+							this.$store.dispatch('user/getSchoolProfile').then(schoolProfile => {
+							    let schoolClasses =  schoolProfile.school_classes
+								console.log(schoolClasses)
+								r([...res.courses,...schoolClasses])
+							}).catch(err => {
+								r([])
+							})
+							
 						} else {
 							j(500)
 							this.$Message.error(this.$t('vote.form.getDataFailTip'))
@@ -491,8 +501,11 @@
 			 * 回显投票详情
 			 * @param item
 			 */
-			doRender(item) {
+			async doRender(item) {
 				console.log(item)
+				if(!this.classRooms.length){
+					this.classRooms = await this.getClassrooms(this.userInfo.TEAMModelId)
+				}
 				this.voteForm = null
 				this.voteOptionsContent = []
 				this.voteOptions = []
@@ -515,6 +528,7 @@
 				this.descriptionEditor.txt.html(item.description)
 				this.voteOptionsContent = item.options
 				this.voteOptions = item.options.map((item, index) => index)
+				
 				this.$nextTick(() => {
 					this.initEditors()
 					if (item.classes.length) {

+ 4 - 4
TEAMModelOS/ClientApp/src/view/evaluation/components/BasePoints.vue

@@ -162,10 +162,10 @@
 					console.log(this.defaultParams.subjectId)
 					if (this.defaultParams.periodId && this.defaultParams.subjectId){
 						this.$api.knowledge.GetSchoolPoints(this.defaultParams).then(res => {
-							if (!res.error && res.knowledges) {
-									this.schoolPointList = res.knowledges
-									this.originSchoolList = res.knowledges
-								    this.originPointList = this.originPointList.concat(res.knowledges)
+							if (!res.error && res) {
+									this.schoolPointList = res
+									this.originSchoolList = res
+								    this.originPointList = this.originPointList.concat(res)
 							} else {
 								this.$Message.warning('获取数据失败')
 							}

+ 4 - 4
TEAMModelOS/ClientApp/src/view/questionnaire/ManageQuestionnaire.vue

@@ -404,15 +404,15 @@
 					ids: surveyItem.classes,
 					scope:surveyItem.owner === this.$store.state.userInfo.schoolCode ? 'school' : 'private'
 				}).then(res => {
-					if (!res.error && res.classrooms.length) {
+					if (!res.error && res.stus.length) {
 						let list = []
-						res.classrooms.forEach(classroom => {
-							classroom.students.forEach(i => {
+						res.stus.forEach(classStus => {
+							classStus.forEach(i => {
 								list.push({
 									id: i.id,
 									name: i.name,
 									no: i.no,
-									classroomName: classroom.name
+									classroomName: i.className
 								})
 							})
 						})

+ 39 - 18
TEAMModelOS/ClientApp/src/view/vote/ManageVote.vue

@@ -241,24 +241,46 @@
 			},
 			
 			/* 获取正在进行中的投票活动的投票数据 */
-			getVoteRecord(voteItem){
-				return new Promise((r,j) => {
-					this.$api.learnActivity.FindVoteRecord({
-						id: voteItem.id,
-						code: voteItem.code,
-					}).then(res => {
-						if(!res.error){
-							r(res)
+			async getVoteRecord(voteItem){
+				return new Promise(async (r,j) => {
+					// 如果是进行中的活动 则从cosmos获取实时作答数据
+					if(voteItem.progress === 'going'){
+						this.$api.learnActivity.FindVoteRecord({
+							id: voteItem.id,
+							code: voteItem.code,
+						}).then(res => {
+							if(!res.error){
+								r(res)
+							}
+						}).catch(err => {
+							j(err)
+						})
+					}else{ // 如果是已结束的活动 则从blob读取作答数据 
+						try{
+							let curItemRecord = await this.getBlobJsonFile(voteItem.scope,voteItem.recordUrl)
+							r(curItemRecord)
+						}catch(e){
+							j(e)
 						}
-					}).catch(err => {
-						j(err)
-					})
+					}
+					
 				})
 			},
 			
 			/* 根据已结束的RecordUrl来获取投票结果数据 */
-			getRecordUrlData(){
-				
+			getBlobJsonFile(scope,url){
+				return new Promise(async (resolve,reject) => {
+					let blobHost = scope === 'private' ?  JSON.parse(decodeURIComponent(localStorage.user_profile, "utf-8")).blob_uri : JSON.parse(decodeURIComponent(localStorage.school_profile, "utf-8")).blob_uri
+					// 根据试卷的Blob地址 去读取JSON文件
+					let sasString = scope === 'private' ?  await this.$tools.getPrivateSas() : await this.$tools.getSchoolSas()
+					try{
+						let itemJson = JSON.parse(await this.$tools.getFile(blobHost + url + sasString.sas))
+						resolve(itemJson)
+					}catch(e){
+						this.$Message.error('文件获取失败!')
+						reject(e)
+					}
+				})
 			},
 			
 
@@ -325,7 +347,7 @@
 				this.isLoading = true
 				let records = await this.getVoteRecord(voteItem)
 				//  先查找 投票发布对象关联的学生清单 然后再去判断学生的作答情况
-				console.log(voteItem)
+				console.log('当前投票的作答数据======',records)
 				this.$api.schoolSetting.getClassroomStudent({
 					school_code: this.$store.state.userInfo.schoolCode,
 					ids: voteItem.classes,
@@ -339,7 +361,7 @@
 									id: i.id,
 									name: i.name,
 									no: i.no,
-									classroomName: i.classId
+									classroomName: i.className
 								})
 							})
 						})
@@ -363,16 +385,15 @@
 							console.log(this.studentsTable)
 							this.tableData = arr
 						} else {
+							this.studentsTable = []
 							this.tableData = []
 						}
-						this.isLoading = false
 					} else {
 						this.$Message.error(this.$t('vote.getDataFailTip'))
-						this.isLoading = false
 					}
 				}).catch(err => {
-					console.log(err)
 					this.$Message.error(this.$t('vote.getClassDataFailTip'))
+				}).finally(() => {
 					this.isLoading = false
 				})
 			},