From 009b0dc71c23384bf206db42fac3e5b312283346 Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期二, 25 六月 2024 19:18:21 +0800
Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/testbookLayout

---
 src/components/dragQuestion/index.vue |   50 ++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 36 insertions(+), 14 deletions(-)

diff --git a/src/components/dragQuestion/index.vue b/src/components/dragQuestion/index.vue
index 61135e1..13fe8dc 100644
--- a/src/components/dragQuestion/index.vue
+++ b/src/components/dragQuestion/index.vue
@@ -9,7 +9,7 @@
       class="question-box"
     >
       <!-- 棰樺共 -->
-      <div>
+      <div class="stem">
         <span v-for="(ditem, dindex) in item.stem" :key="dindex">
           <span v-if="typeof ditem == 'string'">
             {{ ditem }}
@@ -76,7 +76,7 @@
                   />
                 </p>
                 <!-- 姝g‘閿欒鍥炬爣 -->
-                <span class="mr-10">
+                <span class="mr-10 judge-icon">
                   <svg
                     v-if="item.isRight"
                     t="1716986419862"
@@ -193,6 +193,8 @@
       maxX: null,
       maxY: null,
       spaceList: [],
+      submitState:false,
+      isLift:false
     };
   },
   mounted() {
@@ -204,11 +206,13 @@
     // 3.闄愬埗榧犳爣鏉惧紑瑕佸湪绌烘牸鐨勮寖鍥村唴
     mousedown(e) {
       e.preventDefault();
+      if(this.submitState) return false
+      this.isLift = false
       console.log("榧犳爣鎸変笅", e);
       this.moveDom = e.toElement;
       this.parentDom = this.getParentWithClass(e.toElement, "question-box");
       this.questionIndex = this.parentDom.getAttribute("num");
-      this.getSpaceInfo(this.parentDom);
+      if(!this.spaceList.length) this.getSpaceInfo(this.parentDom);
       const parentInfo = this.parentDom.getBoundingClientRect();
       this.parentX = parentInfo.x;
       this.parentY = parentInfo.y;
@@ -236,6 +240,8 @@
               e.y >= item.minY &&
               e.y <= item.maxY
             ) {
+              if(!this.isLift) return false
+              this.spaceList = this.spaceList.filter(citem => citem !== item)
               this.$set(
                 this.drageQuestion[this.questionIndex].userAnswer,
                 index,
@@ -245,6 +251,7 @@
                 }
               );
               this.moveDom.style.display = "none";
+              this.moveDom = null;
             }
           }
         }
@@ -253,8 +260,11 @@
     // 榧犳爣鎶捣
     mouseup(e) {
       if (this.moveDom) {
-        this.moveDom = null;
+        // this.moveDom = null;
+        
       }
+      this.isLift = true
+    
     },
     // 鑾峰彇棰樼洰绌烘牸鍧愭爣
     getSpaceInfo(parentDom) {
@@ -263,10 +273,10 @@
       for (let index = 0; index < list.length; index++) {
         const itemInfo = list[index].getBoundingClientRect();
         arr.push({
-          minX: itemInfo.x,
-          maxX: itemInfo.x + itemInfo.width,
-          minY: itemInfo.y,
-          maxY: itemInfo.y + itemInfo.height,
+          minX: itemInfo.x -10,
+          maxX: itemInfo.x + itemInfo.width + 10,
+          minY: itemInfo.y - 2 ,
+          maxY: itemInfo.y + itemInfo.height + 2,
         });
       }
       this.spaceList = arr;
@@ -298,6 +308,7 @@
     },
     // 鎻愪氦
     submitData() {
+      this.submitState = true
       let arr = [];
       const data = this.drageQuestion;
       for (let index = 0; index < data.length; index++) {
@@ -306,12 +317,13 @@
           let citem = item.userAnswer[cindex];
           arr[cindex] = citem.value
         }
-        item.isRight = arr == item.answer
+        item.isRight = JSON.stringify(arr)  == JSON.stringify(item.answer)
+        item.isComplete = true
       }
-      
       console.log(arr,this.drageQuestion[0]);
     },
     redio() {
+      this.submitState = false
       localStorage.removeItem(
         this.config.activeBook.name + "-drag-" + this.page
       );
@@ -319,6 +331,7 @@
       // const data = []
       for (let index = 0; index < this.drageQuestion.length; index++) {
         const item = this.drageQuestion[index];
+        item.isComplete = false
         for (let cindex = 0; cindex < item.option.length; cindex++) {
           const citem = item.option[cindex];
           arr.push(
@@ -394,6 +407,7 @@
   text-align: center;
   min-width: 60px !important;
   min-height: 15px !important;
+  text-indent: 0em;
 }
 .option-box {
   display: flex;
@@ -402,8 +416,13 @@
 .drag-option {
   cursor: pointer;
 }
+.stem {
+  text-indent: 2em;
+  line-height: 2em;
+}
 .drag-bottom-btn {
   width: 100%;
+  margin-top: 40px;
   display: flex;
   flex-wrap: wrap;
   justify-content: center;
@@ -415,8 +434,12 @@
 }
 .analysis {
   margin: 20px 0;
-  width: 94%;
+  width: 100%;
   // margin-left: 12px;
+}
+.judge-icon {
+  display: flex;
+  align-items: center;
 }
 .el-collapse {
   width: 100%;
@@ -454,9 +477,8 @@
           text-align: left;
           display: flex;
           span:nth-child(1) {
-            display: inline-block;
             text-indent: 0;
-            width: 82px;
+            width: 100px;
           }
         }
         .correctBox {
@@ -476,7 +498,7 @@
           color: #ee1818;
           span {
             height: min-content;
-            width: 100px;
+            width: 115px;
           }
           .errorBox {
             width: 100px;

--
Gitblit v1.9.1