Kaynağa Gözat

fix: solve record trace new line display problem

Arsekl 3 yıl önce
ebeveyn
işleme
3c07d850fb
3 değiştirilmiş dosya ile 51 ekleme ve 22 silme
  1. 6 7
      public/mock/2.json
  2. 27 1
      src/api/index.ts
  3. 18 14
      src/pages/seec/result.tsx

Dosya farkı çok büyük olduğundan ihmal edildi
+ 6 - 7
public/mock/2.json


+ 27 - 1
src/api/index.ts

@@ -150,7 +150,7 @@ const api = {
         return http.get(`${apiPath}/record/${recordId}`)
     },
 
-    async test(examId: number, questionId: number) {
+    getRecordTest(recordId: number | string) {
         return new Promise((resolve) => {
             setTimeout(() => {
                 resolve(JSON.parse("{\"err\":0,\n" +
@@ -177,6 +177,32 @@ const api = {
         })
     },
 
+    async test(examId: number, questionId: number):Promise<any> {
+        return new Promise((resolve) => {
+            setTimeout(() => {
+                resolve(JSON.parse("{\"err\":0,\n" +
+                    "  \"res\":{\n" +
+                    "    \"examId\":6629,\n" +
+                    "    \"fetchAt\":1669059664,\n" +
+                    "    \"startAt\":1668441600,\n" +
+                    "    \"endAt\":1669737600,\n" +
+                    "    \"codeList\":[\n" +
+                    "      {\"questionId\":113,\n" +
+                    "        \"language\":\"JAVA\",\n" +
+                    "        \"projectName\":\"113-hanoi\",\n" +
+                    "        \"editable\":{\n" +
+                    "          \"/src/main/java/TowerOfHanoi.java\":\"public class TowerOfHanoi {\\n    public void Hanoi(int n) {}\\n}\\n\"},\n" +
+                    "        \"uneditable\":{\n" +
+                    "          \"/README.md\":\"2.实现Hanoi塔\\r\\n\\r\\n问题描述:递归实现汉诺塔,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置n个盘子。\\r\\n要求把A杆上的盘子全部移到B杆上,并仍保持原有顺序叠好。\\r\\n操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上。\\r\\n\\r\\n完成函数Hanoi,使用标准输出打印移动盘子的过程。\\r\\n输入:n为正整数,n >= 1\\r\\n\\r\\n示例:\\r\\nn = 2\\r\\n打印结果(最后一行有换行符):\\r\\nMove disk 1 from A to C\\r\\nMove disk 2 from A to B\\r\\nMove disk 1 from C to B\\r\\n\"\n" +
+                    "        }\n" +
+                    "      }\n" +
+                    "    ]\n" +
+                    "  }\n" +
+                    "}"))
+            }, 2500)
+        })
+    },
+
     getQuestion(examId: number, questionId: number) {
         return http.get(`${apiPath}/exam/${examId}/onlinecode/${questionId}`)
     }

+ 18 - 14
src/pages/seec/result.tsx

@@ -63,19 +63,23 @@ export default () => {
             const examResult: ReceivedData<ResultSerializer> = await api.getByResultId(resultId!)
             const commits = examResult.res?.commits
             // commits!.find((commit => commit.created_at === examResult.res?.lastCommitAt))
-            const commit = commits![0]
-            if (commit.finished) {
-                const commitId = commit.id
-                const commitResult: ReceivedData<CommitSerializer> = await api.getByCommitId(commitId!)
-                const recordId = commitResult.res?.records![0].id
-                const data = await api.getByRecordId(recordId!) as ReceivedData<IRecordProps>
-                if (data.err === 0) setRecord(data.res || {})
-                else {
-                    message.error('Error while searching result')
+            if (commits && commits.length > 0) {
+                const commit = commits[0]
+                if (commit.finished) {
+                    const commitId = commit.id
+                    const commitResult: ReceivedData<CommitSerializer> = await api.getByCommitId(commitId!)
+                    const recordId = commitResult.res?.records![0].id
+                    const data = await api.getByRecordId(recordId!) as ReceivedData<IRecordProps>
+                    if (data.err === 0) setRecord(data.res || {})
+                    else {
+                        message.error('Error while searching result')
+                    }
+                    console.log(data)
+                } else {
+                    message.info("Program is running...")
                 }
-                console.log(data)
             } else {
-                message.info("Program is running...")
+                message.info("Please Submit your commit first")
             }
             setLoading(false)
             hide()
@@ -131,9 +135,9 @@ export default () => {
                 }}
                 expandable={{
                     expandedRowRender: record => <Card>
-                        <p>
-                            {record.trace}
-                        </p>
+                            <pre>
+                                {record.trace}
+                            </pre>
                     </Card>
                 }}
                 search={false}

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor