瀏覽代碼

句子描红

natasha 2 年之前
父節點
當前提交
1b8608e6b9
共有 2 個文件被更改,包括 89 次插入27 次删除
  1. 84 23
      src/views/wordcard/cread.vue
  2. 5 4
      src/views/wordcard/writeTable.vue

+ 84 - 23
src/views/wordcard/cread.vue

@@ -235,22 +235,32 @@ export default {
       }
       let contentArr = this.from.content.split("\n");
       for (let i = 0; i < contentArr.length; i++) {
-        if(contentArr[i].length==1){
-            if(/^[\u4e00-\u9fa5]/.test(contentArr[i])){
-                let obj = {
-                    con: contentArr[i],
-                };
-                data.option.push(obj);
-            }
-        }else{
-            for(let m=0;m<contentArr[i].length;m++){
-                if(/^[\u4e00-\u9fa5]/.test(contentArr[i][m])){
+        if(data.typeIndex == 0){
+            if(contentArr[i].length==1){
+                if(/^[\u4e00-\u9fa5]/.test(contentArr[i])){
                     let obj = {
-                        con: contentArr[i][m],
+                        con: contentArr[i],
                     };
                     data.option.push(obj);
                 }
+            }else{
+                for(let m=0;m<contentArr[i].length;m++){
+                    if(/^[\u4e00-\u9fa5]/.test(contentArr[i][m])){
+                        let obj = {
+                            con: contentArr[i][m],
+                        };
+                        data.option.push(obj);
+                    }
+                }
+            }
+        }else{
+            let contentItem = ""
+            for(let s=0;s<contentArr[i].length;s++){
+                if(/^[\u4e00-\u9fa5]/.test(contentArr[i][s])){
+                    contentItem += contentArr[i][s]
+                }
             }
+            if(contentItem) data.option.push(contentItem);
         }
       }
       //   字模式 笔顺打开
@@ -285,11 +295,14 @@ export default {
             if (!this.loading) {
               data.option.forEach((item) => {
                 let arr = [];
+                let hzLength = 1;
+                let arrOption = []
                 // 拆分字和笔画为每一项
                 arr.push({
                   con: item.con,
                 });
                 if(item.hzDetail&&item.hzDetail.hz_json&&item.hzDetail.hz_json.medians){
+                    hzLength += item.hzDetail.hz_json.medians.length
                     item.hzDetail.hz_json.medians.forEach((items, indexs) => {
                         arr.push({
                             con: item.con,
@@ -459,20 +472,68 @@ export default {
         // 处理句模式数据
         let allArr = [];
         data.option.forEach((item) => {
-          let spltArr = item.con.split("");
-          let arr = [];
-          spltArr.forEach((item) => {
-            arr.push({ con: item });
-          });
-          //  如果不满一行则补满
-          if (arr.length % data.rowNumber != 0) {
-            let num = data.rowNumber - (arr.length % data.rowNumber);
-            for (let i = 0; i < num; i++) {
-              arr.push({});
+            let sentence = Math.ceil(item.length/data.rowNumber)
+            for(let k=0; k<sentence; k++){
+                let sentenceItem = []
+                for(let s=0; s< data.rowNumber; s++){
+                    if(k*data.rowNumber+s<item.length){
+                        sentenceItem.push({
+                            con: item[k*data.rowNumber+s],
+                        });
+                    }else{
+                        sentenceItem.push({})
+                    }
+                }
+               allArr.push(JSON.parse(JSON.stringify(sentenceItem))) 
             }
-          }
-          console.log(arr);
+            let sentenceMiao = []
+            for(let k=0; k<sentence; k++){
+                let sentenceItemMiao = []
+                this.loading = true
+                for(let s=0; s< data.rowNumber; s++){
+                    if(k*data.rowNumber+s<item.length){
+                        sentenceItemMiao[s] = {
+                            con: item[k*data.rowNumber+s],
+                            miaoRed: true,
+                            hzDetail: null
+                        }
+                        let MethodName = "hz_resource_manager-GetHZStrokesContent";
+                        getLogin(MethodName, {hz:item[k*data.rowNumber+s]})
+                        .then((res) => {
+                            this.$set(sentenceItemMiao[s].hzDetail,"hz_json",res)
+                        })
+                        .catch(() => {
+                            this.loading = false;
+                        });
+                        
+                    }else{
+                        sentenceItemMiao[s] = {}
+                    }
+                }
+               sentenceMiao.push(sentenceItemMiao)
+            }
+            this.loading = false;
+            for(let l=0; l< data.miaoRedBoxNumber; l++){
+                for(let j=0; j<sentenceMiao.length; j++){
+                    allArr.push(sentenceMiao[j])
+                }
+            }
+        //   let spltArr = item.con.split("");
+        //   let arr = [];
+        //   spltArr.forEach((item) => {
+        //     arr.push({ con: item });
+        //   });
+        //   //  如果不满一行则补满
+        //   if (arr.length % data.rowNumber != 0) {
+        //     let num = data.rowNumber - (arr.length % data.rowNumber);
+        //     for (let i = 0; i < num; i++) {
+        //       arr.push({});
+        //     }
+        //   }
+        //   console.log(arr);
         });
+        data.result = this.arrSplice(allArr, data.pageNumber);
+        this.writeTableData = data
       }
     },
     arrSplice(arr, chunkSize) {

+ 5 - 4
src/views/wordcard/writeTable.vue

@@ -3,7 +3,7 @@
     <div class="writeTop">
         <div class="writeTop-row" v-for="(itemR,indexR) in data" :key="indexR" :style="{marginBottom:dataConfig.marginBottom}">
             <div class="writeTop-item" :class="[indexI!==0?'writeTop-item-noLeft':'']" v-for="(itemI,indexI) in itemR" :key="indexI" :style="{width:dataConfig.width,height:dataConfig.width,borderColor:dataConfig.borderColor}">
-                <template v-if="itemI&&itemI.con&&!itemI.write&&!itemI.answer">
+                <template v-if="itemI&&itemI.con&&!itemI.write&&!itemI.answer&&!itemI.miaoRed">
                     <Strockplay
                         v-if="'writeTop-item-' + pageNumber + '-' + indexR + '-' + indexI"
                         className="adult-strockplay"
@@ -48,7 +48,7 @@
                         :targetDiv="'write-item-' + pageNumber + '-' + indexR + '-' + indexI + Math.random().toString(36).substr(2)"
                      />
                 </template>
-                <div v-else class="tian-div" @click="freeWrite(itemI,indexR,indexI)">
+                <div v-else-if="itemI" class="tian-div" @click="freeWrite(itemI,indexR,indexI)">
                     <svg-icon
                         icon-class="tian"
                         className="tian"
@@ -62,7 +62,7 @@
                         :style="{color:'#DEDEDE'}"
                     />
                     <img
-                        v-if="itemI.strokes_image_url"
+                        v-if="itemI&&itemI.strokes_image_url"
                         :src="itemI.strokes_image_url"
                         alt=""
                     />
@@ -156,7 +156,8 @@ export default {
   created() {
   },
   //生命周期 - 挂载完成(可以访问DOM元素)
-  mounted() {},
+  mounted() {
+  },
   //生命周期-创建之前
   beforeCreated() {},
   //生命周期-挂载之前