Browse Source

修改页面。数据不刷新

yuanyiming 1 year ago
parent
commit
9fa7c7c712

+ 1 - 1
src/views/testDetail/components/file.vue

@@ -163,7 +163,7 @@ export default {
     },
     cJson: {
       handler(newValue, oldVal) {
-        console.log('kkk', newValue, oldVal)
+        // console.log('kkk', newValue, oldVal)
         if (newValue.file && this.checkJson.file && newValue.file.length !== this.checkJson.file.length) {
           this.checkJson = this.depthCopy(newValue)
           this.$forceUpdate()

+ 10 - 7
src/views/testDetail/components/topic.vue

@@ -287,6 +287,10 @@ export default {
     tid: {
       type: String,
       default: ''
+    },
+    gcourseid: {
+      type: String,
+      default: ''
     }
   },
   components: {
@@ -373,7 +377,7 @@ export default {
   watch: {
     cJson: {
       handler(newVal, oldVal) {
-        // console.log('newValtop',newVal)
+        console.log('newValtop', newVal)
         // console.log(oldVal)
         this.checkArray = this.setJson(this.depthCopy(newVal))
         this.$forceUpdate()
@@ -408,7 +412,7 @@ export default {
               if (item2.ttype == 1 && item2.json && !item2.json.answer2 && item2.type != 6 && item.type != 7) {
                 item2.json.answer2 = []
               } else if (item2.ttype == 1 && item2.json && !item2.json.answer2 && item2.type == 6) {
-                item2.json.answer2 = item2.json.courses[0]
+                item2.json.answer2 = this.gcourseid ? this.gcourseid : item2.json.courses[0]
               } else if (
                 item2.ttype == 1 &&
                 item2.json &&
@@ -423,7 +427,7 @@ export default {
                   if (item3.ttype == 1 && item3.json && !item3.json.answer2 && item3.type != 6 && item3.type != 7) {
                     item3.json.answer2 = []
                   } else if (item3.ttype == 1 && item3.json && !item3.json.answer2 && item3.type == 6) {
-                    item3.json.answer2 = item3.json.courses[0]
+                    item3.json.answer2 = this.gcourseid ? this.gcourseid : item3.json.courses[0]
                   } else if (
                     item3.ttype == 1 &&
                     item3.json &&
@@ -442,15 +446,14 @@ export default {
           if (item.ttype == 1 && item.json && !item.json.answer2 && item.type != 6 && item.type != 7) {
             item.json.answer2 = []
           } else if (item.ttype == 1 && item.json && !item.json.answer2 && item.type == 6) {
-            item.json.answer2 = item.json.courses[0]
+            item.json.answer2 = this.gcourseid ? this.gcourseid : item.json.courses[0]
           } else if (item.ttype == 1 && item.json && !item.json.answer2 && item.json.answer2 !== 0 && item.type == 7) {
             item.json.answer2 = ''
           }
-          // console.log('item.array', item.array)
+          console.log(item.array)
           return (item.ttype != 1 && item.array.length > 0) || item.ttype == 1
         })
-        // console.log('checkArray', checkArray)
-
+        console.log(checkArray)
         return checkArray
       } else {
         return []

+ 111 - 5
src/views/testDetail/preview.vue

@@ -7,13 +7,14 @@
     </head-bar>
     <div class="step_box">
       <topicVue
-        :cJson="cJson"
+        :cJson.sync="cJson"
         @getTestWorkByCid="getTestWorkByCid"
         @publish2="publish2"
         :title="name"
         :tid="tid"
         :brief="brief"
         ref="topicVue"
+        :gcourseid="gcourseid"
       ></topicVue>
     </div>
     <div class="edit_top">
@@ -45,8 +46,10 @@ export default {
       title: '',
       brief: '',
       cJson: [],
+      cJson2: [],
       cid: this.$route.query.courseid,
-      userid: this.$route.query.userid
+      userid: this.$route.query.userid,
+      gcourseid: this.$route.query.courseid
     }
   },
   computed: {
@@ -63,9 +66,9 @@ export default {
       }
       selectTestCourseWorks(params)
         .then(res => {
-          console.log('修改', res)
           if (res[1].length) {
             this.cJson = JSON.parse(res[1][0].courseJson)
+            this.cJson2 = JSON.parse(res[1][0].courseJson)
           }
           this.title = res[0][0].title
           this.brief = res[0][0].brief
@@ -104,7 +107,108 @@ export default {
       // console.log(array)
       return array
     },
+    setJson2(json) {
+      let _json = json
+      // this.type = _json[0].ttype;
+      let checkArray = _json.filter(item => {
+        if (item.array) {
+          item.array = item.array.filter(item2 => {
+            if (item2.ttype == 1 && item2.json && !item2.json.answer2) {
+              item2.json.answer2 = []
+            }
+            if (item2.array) {
+              item2.array = item2.array.filter(item3 => {
+                if (item3.ttype == 1 && item3.json && !item3.json.answer2) {
+                  item3.json.answer2 = []
+                }
+                return item3
+              })
+            }
+            return (item2.ttype != 1 && item2.array.length > 0) || item2.ttype == 1
+          })
+        }
+        if (item.ttype == 1 && item.json && !item.json.answer2) {
+          item.json.answer2 = []
+        }
+        console.log(item.array)
+        return (item.ttype != 1 && item.array.length > 0) || item.ttype == 1
+      })
+      console.log(checkArray)
+      return checkArray
+    },
+    setJSON(json) {
+      return json.filter(item => {
+        if (item.array) {
+          item.array = item.array.filter(item2 => {
+            if (item2.ttype == 1 && item2.json) {
+              delete item2.json.answer2
+              delete item2.json.score2
+              delete item2.json.file
+            }
+            if (item2.array) {
+              item2.array = item2.array.filter(item3 => {
+                if (item3.ttype == 1 && item3.json) {
+                  delete item3.json.answer2
+                  delete item3.json.score2
+                  delete item3.json.file
+                }
+                return item3
+              })
+            }
+            return item2
+          })
+        } else if (item.ttype == 1 && item.json) {
+          delete item.json.answer2
+          delete item.json.score2
+          delete item.json.file
+        }
+        return item
+        console.log(item.array)
+      })
+    },
+    setCourseid(json) {
+      let _json = json
+      // this.type = _json[0].ttype;
+      let checkArray = _json.filter(item => {
+        if (item.array) {
+          item.array = item.array.filter(item2 => {
+            if (item2.ttype == 1 && item2.json && !item2.json.answer2 && item2.type != 6 && item2.type != 7) {
+              item2.json.answer2 = []
+            } else if (item2.type == 6) {
+              item2.json.answer2 = this.courseid ? this.courseid : ''
+            } else if (item2.type == 7) {
+              item2.json.answer2 = ''
+            }
+            if (item2.array) {
+              item2.array = item2.array.filter(item3 => {
+                if (item3.ttype == 1 && item3.json && !item3.json.answer2 && item3.type != 6 && item3.type != 7) {
+                  item3.json.answer2 = []
+                } else if (item3.type == 6) {
+                  item3.json.answer2 = this.courseid ? this.courseid : ''
+                } else if (item3.type == 7) {
+                  item3.json.answer2 = ''
+                }
+                return item3
+              })
+            }
+            return (item2.ttype != 1 && item2.array.length > 0) || item2.ttype == 1
+          })
+        }
+        if (item.ttype == 1 && item.json && !item.json.answer2 && item.type != 6 && item.type != 6 && item.type != 7) {
+          item.json.answer2 = []
+        } else if (item.type == 6) {
+          item.json.answer2 = this.courseid ? this.courseid : ''
+        } else if (item.type == 7) {
+          item.json.answer2 = ''
+        }
+        console.log(item.array)
+        return (item.ttype != 1 && item.array.length > 0) || item.ttype == 1
+      })
+      console.log(checkArray)
+      return checkArray
+    },
     getTestWorkByCid(courseid) {
+      console.log('修改问卷')
       this.courseid = courseid
       let params = {
         cid: this.cid,
@@ -114,9 +218,10 @@ export default {
       let _courseid = courseid
       selectTestWorksCid(params)
         .then(res => {
-          console.log('selectTestWorksCid', res)
           if (res[0].length) {
             let rData = res[0]
+            console.log('rData', rData)
+
             this.tid = ''
             // eslint-disable-next-line no-labels
             aa: for (var i = 0; i < rData.length; i++) {
@@ -138,11 +243,13 @@ export default {
                 }
               }
             }
+            console.log('tid', this.tid)
             if (!this.tid) {
               this.cJson = this.setJSON(this.setCourseid(JSON.parse(JSON.stringify(this.cJson2))))
             }
           } else {
             this.tid = ''
+            console.log(111)
             this.cJson = this.setJSON(this.setCourseid(JSON.parse(JSON.stringify(this.cJson2))))
           }
           this.$forceUpdate()
@@ -156,7 +263,6 @@ export default {
       for (var i = 0; i < array.length; i++) {
         if (array[i].type != 6) {
           let param = array[i].json
-          console.log('????', param)
           if (array[i].type == 5 && param.file && param.file.length > 0) {
             pan++
           } else if (param.answer2.length || typeof param.answer2 == 'number') {