Browse Source

调整学生作答

zhousheng 4 years ago
parent
commit
f0190bb592

File diff suppressed because it is too large
+ 5 - 23
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentTypeTemplate/LessonTestPop.vue


+ 20 - 5
TEAMModelOS/ClientApp/src/components/student-web/EventView/EventContentTypeTemplate/composePaper.vue

@@ -39,11 +39,25 @@
             async getInfo() {
                 this.examInfo = []
                 await this.initEditor()
-                //console.log('87978978978978978978978998')
-                //console.log(this.$store.getters.getExamInfo)
                 if (this.textData.length > 0) {
                     this.examInfo = [...this.textData]
-                    this.editor.txt.html(this.examInfo[0])
+                    let paperInfo = []
+                    paperInfo = await this.getItem()
+                    if (paperInfo.length) {
+                        this.editor.txt.html(paperInfo[0])
+                    }
+                }
+            },
+            getItem() {
+                if (this.examInfo.length) {
+
+                    let key = this.$store.getters.getExamInfo.code.split('-')
+                    let code = {
+                        scope: this.$store.getters.getExamInfo.scope,
+                        code: key[(key.length - 1)],
+                        blob: this.examInfo[0]
+                    }
+                    return this.$evTools.getComposeItem(code)
                 }
             },
             initEditor() {
@@ -86,9 +100,10 @@
         },
         watch: {
             index() {
+                console.log('试题信息',this.textData)
                 this.getInfo()
-                deep: true;
-                //immediate:true
+                deep: true
+                immediate:true
             },
             editorContent() {
                 this.$emit("dataGet", this.editorContent, this.index)

+ 5 - 37
TEAMModelOS/ClientApp/src/utils/evTools.js

@@ -270,7 +270,8 @@ export default {
 			let splitHost = blobHost.split('/')
 			// 根据试卷的Blob地址 去读取JSON文件
 			let sasString = paper.scope === 'school' ?  await $tools.getSchoolSas(paper.code) : await $tools.getPrivateSas(paper.code)
-			try{
+			try {
+				console.log(sasString.url + '/' + paper.code + paper.blob + '/index.json' + sasString.sas)
 				let jsonInfo = await $tools.getFile(sasString.url + '/' + paper.code + paper.blob + '/index.json' + sasString.sas)
 				let jsonData = JSON.parse(jsonInfo)
 				// 获取试卷包含的试题数据并包装好
@@ -314,47 +315,14 @@ export default {
 	/* 获取完整的试卷数据 */
 	getComposeItem(paper) {
 		return new Promise(async (r, j) => {
-			let blobHost = JSON.parse(decodeURIComponent(localStorage.student_profile, "utf-8")).blob_uri
-			let splitHost = blobHost.split('/')
 			// 根据试卷的Blob地址 去读取JSON文件
 			let sasString = paper.scope === 'school' ? await $tools.getSchoolSas(paper.code) : await $tools.getPrivateSas(paper.code)
 			try {
-				let jsonInfo = await $tools.getFile(sasString.url + '/' + paper.code + paper.blob + '/index.json' + sasString.sas)
+				let jsonInfo = await $tools.getFile(paper.blob + sasString.sas)
 				let jsonData = JSON.parse(jsonInfo)
-				console.log('2354563215135131')
-				console.log(jsonData)
 				// 获取试卷包含的试题数据并包装好
-				if (jsonData.slides && jsonData.slides.length) {
-					jsonData.item = []
-					const path = sasString.url + '/' + paper.code + paper.blob
-					let promiseArr = []
-
-					//jsonData.slides.forEach((item, index) => {
-					//	promiseArr.push(new Promise(async (resolve, reject) => {
-					//		// 获取题目JSON并且包装成完整试题对象
-					//		let itemJson = JSON.parse(await $tools.getFile(path + '/' + item.url + sasString.sas))
-					//		itemJson.exercise.question = itemJson.item[0].question
-					//		itemJson.exercise.option = itemJson.item[0].option
-					//		itemJson.exercise.id = itemJson.id
-					//		itemJson.exercise.pid = itemJson.pid
-					//		itemJson.exercise.score = item.scoring ? item.scoring.score : 0,
-					//			// jsonData.item.push(itemJson.exercise)
-					//			resolve(itemJson.exercise)
-					//	}))
-					//})
-
-					//Promise.all(promiseArr).then(res => {
-					//	res.forEach((resItem, resIndex) => {
-					//		resItem.children = []
-					//		if (resItem.pid) {
-					//			let pItem = res.filter(i => i.id === resItem.pid)[0]
-					//			pItem.children.push(resItem)
-					//			pItem.score = pItem.score + resItem.score
-					//		}
-					//	})
-					//	jsonData.item = res.filter(i => !i.pid)
-					//	r(jsonData)
-					//})
+				if (jsonData.length) {
+					r(jsonData)
 				}
 			} catch (e) {
 				j(e)

+ 8 - 7
TEAMModelOS/Controllers/Common/ExamController.cs

@@ -709,7 +709,8 @@ namespace TEAMModelOS.Controllers
                 if (!requert.TryGetProperty("school", out JsonElement school)) return BadRequest();
                 var client = _azureCosmos.GetCosmosClient();
                 var query = $"select c.id,c.code,A0.id paperId,A0.code paperCode,A0.name paperName,A0.multipleRule,A0.scope,A0.blob from c join A0 in c.papers where c.id ='{id}'";
-                List<object> props = new List<object>();
+                List<object> papers = new List<object>();
+                List<object> subjects = new List<object>();
                 await foreach (var item in client.GetContainer("TEAMModelOS", "Common").GetItemQueryStreamIterator(queryText: query, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Exam-{school}") }))
                 {
                     using var json = await JsonDocument.ParseAsync(item.ContentStream);
@@ -717,11 +718,11 @@ namespace TEAMModelOS.Controllers
                     {
                         foreach (var obj in json.RootElement.GetProperty("Documents").EnumerateArray())
                         {
-                            props.Add(obj.ToObject<object>());
+                            papers.Add(obj.ToObject<object>());
                         }
                     }
                 }
-                var querySubject = $"select c.subjects from c where c.id ='{id}'";
+                var querySubject = $"select A0.id,A0.name from c join A0 in c.subjects where c.id ='{id}'";
                 //List<object> props = new List<object>();
                 await foreach (var item in client.GetContainer("TEAMModelOS", "Common").GetItemQueryStreamIterator(queryText: querySubject, requestOptions: new QueryRequestOptions() { PartitionKey = new PartitionKey($"Exam-{school}") }))
                 {
@@ -730,7 +731,7 @@ namespace TEAMModelOS.Controllers
                     {
                         foreach (var obj in json.RootElement.GetProperty("Documents").EnumerateArray())
                         {
-                            props.Add(obj.ToObject<object>());
+                            subjects.Add(obj.ToObject<object>());
                         }
                     }
                 }
@@ -748,7 +749,7 @@ namespace TEAMModelOS.Controllers
                         }
                     }
                 }
-                List<List<List<string>>> stuAns = new List<List<List<string>>>();
+                //List<List<List<string>>> stuAns = new List<List<List<string>>>();
                 List<List<double>> stuScore = new List<List<double>>();
                 List<double> total = new List<double>();
                 if (answers.Count > 0)
@@ -759,7 +760,7 @@ namespace TEAMModelOS.Controllers
                         {
                             break;
                         }
-                        stuAns.Add(result.studentAnswers[index]);
+                       // stuAns.Add(result.studentAnswers[index]);
                         stuScore.Add(result.studentScores[index]);
                         total.Add(result.sum.Where(s => s <= 59).Count());
                         total.Add(result.sum.Where(s => s > 59 && s <= 70 ).Count());
@@ -768,7 +769,7 @@ namespace TEAMModelOS.Controllers
                         total.Add(result.sum.Where(s => s > 90 && s <= 100).Count());
                     }                   
                 }
-                return Ok(new { props, stuAns ,stuScore, total });
+                return Ok(new { papers, subjects,stuScore, total });
             }
             catch (Exception ex)
             {