Browse Source

例句高亮

natasha 3 years ago
parent
commit
158c5387c5
1 changed files with 35 additions and 41 deletions
  1. 35 41
      src/components/Adult/preview/components/WordPhraseDetail.vue

+ 35 - 41
src/components/Adult/preview/components/WordPhraseDetail.vue

@@ -352,47 +352,41 @@ export default {
         });
     },
     handleExample(list) {
-      list = list.map((item, index) => {
-        let wordIndex = null;
-        for (let i = 0; i < item.sentence.length; i++) {
-          if (item.sentence[i] == item.word) {
-            wordIndex = i;
-          }
-        }
-        // let b = item.begin_position;
-        // let e = item.end_position;
-        // let sent = item.sentence;
-        // let part1 = sent.substring(0, b);
-        // let part2 = sent.substring(b, e);
-        // let part3 = sent.substring(e);
-        let sent = item.sentence;
-        let part1 = "";
-        let part2 = "";
-        let part3 = "";
-        if (wordIndex === 0) {
-          part1 = "";
-          part2 = sent.substring(0, 1);
-          part3 = sent.substring(1);
-        } else if (wordIndex === item.sentence.length - 1) {
-          part1 = sent.substring(0, wordIndex);
-          part2 = sent.substring(wordIndex);
-          part3 = "";
-        } else {
-          part1 = sent.substring(0, wordIndex);
-          part2 = sent.substring(wordIndex, wordIndex + 1);
-          part3 = sent.substring(wordIndex + 1);
-        }
-        // let reg = new RegExp(`${item.word}`, "g");
-        // let result = sent.replace(
-        //   reg,
-        //   `<span style="color:#DE4444;">${item.word}</span>`
-        // );
-        let res =
-          part1 + '<span style="color:#DE4444;">' + part2 + "</span>" + part3;
-        item.res = res;
-        return item;
-      });
-      return list;
+    let _this = this;
+        // let list1Ora = JSON.parse(JSON.stringify(_this.data.list1))
+        list = list.map((item,index) =>{
+            let position_str = []
+            let sentence = JSON.parse(JSON.stringify(item.sentence))
+            let res = ""
+            for(let i=0;i<item.position_list.length;i++){
+                let part1 = "";
+                let part2 = "";
+                let part3 = "";
+                if(item.position_list.length>1){
+                    if(i==0){
+                        part1 = sentence.substring(0, item.position_list[i].begin);
+                        part2 = sentence.substring(item.position_list[i].begin,item.position_list[i].end);
+                        part3 = sentence.substring(item.position_list[i].end,item.position_list[i+1].begin)
+                    }else if(i==item.position_list.length-1){
+                        part1 = "";
+                        part2 = sentence.substring(item.position_list[i].begin,item.position_list[i].end);
+                        part3 = sentence.substring(item.position_list[i].end)
+                    }else{
+                        part1 = "";
+                        part2 = sentence.substring(item.position_list[i].begin,item.position_list[i].end);
+                        part3 = sentence.substring(item.position_list[i].end,item.position_list[i+1].begin)
+                    }
+                }else{
+                    part1 = sentence.substring(0, item.position_list[i].begin);
+                    part2 = sentence.substring(item.position_list[i].begin,item.position_list[i].end);
+                    part3 = sentence.substring(item.position_list[i].end)
+                }
+                res +=  part1 + '<span style="color:#DE4444;">' + part2 + "</span>" + part3;
+            }
+            item.res = res;
+            return item
+        })
+        return list;
     },
 
     initData() {