Kaynağa Gözat

添加多个汉字详情接口

gcj 2 yıl önce
ebeveyn
işleme
71e4c7f6ce
1 değiştirilmiş dosya ile 74 ekleme ve 381 silme
  1. 74 381
      src/views/wordcard/cread.vue

+ 74 - 381
src/views/wordcard/cread.vue

@@ -244,6 +244,7 @@ export default {
       htmlTitle: "1",
       saveShow: false,
       writetableShow: true,
+      hzDetailList: null,
     };
   },
   //计算属性 类似于data概念
@@ -438,9 +439,8 @@ export default {
       this.typeIndex = index;
       this.writeTableData = null;
     },
-    // 生成
+    //处理输入内容
     creadEvent() {
-      this.writeTableData = null;
       if (this.from.content == "") {
         this.$message.warning("请先输入内容");
         return;
@@ -455,6 +455,75 @@ export default {
         this.$message.warning("请先输入配置内容");
         return;
       }
+      if (
+        this.from.writeBoxNumber < this.from.miaoRedBoxNumber &&
+        this.typeIndex == 1
+      ) {
+        this.$message.warning("书写格数不能小于描红数");
+        return;
+      } else if (
+        this.from.writeBoxNumber <
+          Math.ceil(this.from.miaoRedBoxNumber / data.rowNumber) &&
+        this.typeIndex == 0
+      ) {
+        this.$message.warning("书写格数不能小于描红所用行数");
+        return;
+      }
+      let option = [];
+      let contentArr = this.from.content.split("\n");
+      for (let i = 0; i < contentArr.length; i++) {
+        if (data.typeIndex == 0) {
+          if (contentArr[i].length == 1) {
+            if (/^[\u4e00-\u9fa5]/.test(contentArr[i])) {
+              let obj = {
+                con: contentArr[i],
+              };
+              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],
+                };
+                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) option.push(contentItem);
+        }
+      }
+      let hz_str = option.join();
+      this.getMultHZStrokesContent(hz_str);
+    },
+
+    //得到多个汉字笔画内容
+    getMultHZStrokesContent(hz_str) {
+      this.loading = true;
+      let MethodName = "hz_resource_manager-GetMultHZStrokesContent";
+      let data = {
+        hz_str: hz_str,
+      };
+      getLogin(MethodName, data)
+        .then((res) => {
+          this.loading = false;
+          let hzDetailList = res;
+          this.handleEvent(hzDetailList);
+        })
+        .catch(() => {
+          this.loading = false;
+        });
+    },
+    // 生成
+    handleEvent(hzDetailList) {
+      this.writeTableData = null;
       // 大 一行8个    中 一行10个  小 一行12个
       let data = {
         option: [],
@@ -492,20 +561,7 @@ export default {
         data.marginBottom = "7px";
         data.playWidth = "8px";
       }
-      if (
-        this.from.writeBoxNumber < this.from.miaoRedBoxNumber &&
-        this.typeIndex == 1
-      ) {
-        this.$message.warning("书写格数不能小于描红数");
-        return;
-      } else if (
-        this.from.writeBoxNumber <
-          Math.ceil(this.from.miaoRedBoxNumber / data.rowNumber) &&
-        this.typeIndex == 0
-      ) {
-        this.$message.warning("书写格数不能小于描红所用行数");
-        return;
-      }
+      
       let contentArr = this.from.content.split("\n");
       for (let i = 0; i < contentArr.length; i++) {
         if (data.typeIndex == 0) {
@@ -538,26 +594,12 @@ export default {
       }
       //   字模式 笔顺打开
       if (data.typeIndex == 0) {
-        this.loading = true;
-        let MethodName = "hz_resource_manager-GetHZStrokesContent";
         data.option.forEach((item, i) => {
-          let obj = {
-            hz: item.con,
-          };
           item.hzDetail = {
             hz_json: null,
           };
-          getLogin(MethodName, obj)
-            .then((res) => {
-              this.$set(data.option[i].hzDetail, "hz_json", res);
-              this.$forceUpdate();
-              if (i == data.option.length - 1) {
-                this.loading = false;
-              }
-            })
-            .catch(() => {
-              this.loading = false;
-            });
+          let res = JSON.parse(JSON.stringify(hzDetailList[item.con]));
+          this.$set(data.option[i].hzDetail, "hz_json", res);
         });
         let hzTimer = setInterval(() => {
           if (!this.loading) {
@@ -904,355 +946,6 @@ export default {
         this.$forceUpdate();
         this.isCread = true;
       }
-      // // 定时 接口请求结束再执行
-      // let hzTimer = setInterval(() => {
-      //   if (!this.loading) {
-      //     clearInterval(hzTimer);
-      //     hzTimer = null;
-      //     if (data.typeIndex == 0) {
-      //       if (data.StorkesUnfold) {
-      //         let allArr = [];
-      //         let timer = setInterval(() => {
-      //           if (!this.loading) {
-      //             data.option.forEach((item) => {
-      //               let arr = [];
-      //               let hzLength = 1;
-      //               let arrOption = [];
-      //               // 拆分字和笔画为每一项
-      //               arr.push({
-      //                 con: item.con,
-      //                 hzDetail: JSON.parse(
-      //                   JSON.stringify(item.hzDetail.hz_json)
-      //                 ),
-      //               });
-      //               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,
-      //                     answer: indexs + 1,
-      //                     hzDetail: JSON.parse(
-      //                       JSON.stringify(item.hzDetail.hz_json)
-      //                     ),
-      //                   });
-      //                 });
-      //               }
-      //               // 如果不满一行则补满
-      //               let newarr = [];
-      //               if (arr.length % data.rowNumber != 0) {
-      //                 let num = data.rowNumber - (arr.length % data.rowNumber);
-      //                 for (let i = 0; i < num; i++) {
-      //                   arr.push({});
-      //                 }
-      //                 if (arr.length > data.rowNumber) {
-      //                   newarr = this.arrSplice(arr, data.rowNumber);
-      //                   newarr.forEach((itemss) => {
-      //                     allArr.push(itemss);
-      //                   });
-      //                 } else {
-      //                   allArr.push(arr);
-      //                 }
-      //               } else {
-      //                 allArr.push(arr);
-      //               }
-      //               // 添加书写行
-      //               if (data.writeBoxNumber) {
-      //                 for (let i = 0; i < data.writeBoxNumber; i++) {
-      //                   let numrow = [];
-      //                   for (let k = 0; k < data.rowNumber; k++) {
-      //                     numrow.push({
-      //                       con: item.con,
-      //                       write: true,
-      //                     });
-      //                   }
-      //                   // 描红格
-      //                   if (i == 0 && data.miaoRedBoxNumber) {
-      //                     let m =
-      //                       Math.ceil(data.miaoRedBoxNumber / data.rowNumber) >
-      //                       data.writeBoxNumber
-      //                         ? data.writeBoxNumber
-      //                         : Math.ceil(
-      //                             data.miaoRedBoxNumber / data.rowNumber
-      //                           );
-      //                     for (let j = 0; j < m; j++) {
-      //                       let miaoArr = [];
-      //                       for (let l = 0; l < data.rowNumber; l++) {
-      //                         if (
-      //                           j * data.rowNumber + l <
-      //                           data.miaoRedBoxNumber
-      //                         ) {
-      //                           miaoArr[l] = {
-      //                             con: item.con,
-      //                             miaoRed: true,
-      //                             write: true,
-      //                           };
-      //                         } else {
-      //                           miaoArr[l] = {
-      //                             con: item.con,
-      //                             write: true,
-      //                           };
-      //                         }
-      //                       }
-      //                       arrOption.push(JSON.parse(JSON.stringify(miaoArr)));
-      //                     }
-      //                   }
-      //                   arrOption.push(numrow);
-      //                   arrOption = arrOption.slice(0, data.writeBoxNumber);
-      //                 }
-      //                 arrOption.forEach((itemA) => {
-      //                   allArr.push(itemA);
-      //                 });
-      //               }
-      //             });
-      //             if (data.lastNullrow) {
-      //               for (let i = 0; i < data.lastNullrow; i++) {
-      //                 let numrow = [];
-      //                 for (let k = 0; k < data.rowNumber; k++) {
-      //                   numrow.push({
-      //                     write: true,
-      //                   });
-      //                 }
-      //                 allArr.push(numrow);
-      //               }
-      //             }
-      //             data.result = this.arrSplice(allArr, data.pageNumber);
-      //             this.writeTableData = data;
-      //             clearInterval(timer);
-      //             timer = null;
-      //           }
-      //         }, 100);
-      //       } else {
-      //         let allArr = [];
-      //         data.option.forEach((item) => {
-      //           let arr = [];
-      //           let arrOption = [];
-      //           // 拆分字和笔画为每一项
-      //           arr.push({
-      //             con: item.con,
-      //             hzDetail: JSON.parse(JSON.stringify(item.hzDetail.hz_json)),
-      //           });
-      //           // 如果不满一行则补满
-      //           let newarr = [];
-      //           let areadyMiao = 0;
-      //           if (arr.length % data.rowNumber != 0) {
-      //             let num = data.rowNumber - (arr.length % data.rowNumber);
-      //             for (let i = 0; i < num; i++) {
-      //               if (data.miaoRedBoxNumber && i < data.miaoRedBoxNumber) {
-      //                 arr.push({
-      //                   con: item.con,
-      //                   miaoRed: true,
-      //                   write: true,
-      //                 });
-      //                 areadyMiao++;
-      //               } else {
-      //                 arr.push({});
-      //               }
-      //             }
-      //             if (arr.length > data.rowNumber) {
-      //               newarr = this.arrSplice(arr, data.rowNumber);
-      //               newarr.forEach((itemss) => {
-      //                 allArr.push(itemss);
-      //               });
-      //             } else {
-      //               allArr.push(arr);
-      //             }
-      //           } else {
-      //             allArr.push(arr);
-      //           }
-      //           // 添加书写行
-      //           if (data.writeBoxNumber) {
-      //             for (let i = 0; i < data.writeBoxNumber; i++) {
-      //               let numrow = [];
-      //               for (let k = 0; k < data.rowNumber; k++) {
-      //                 numrow.push({
-      //                   con: item.con,
-      //                   write: true,
-      //                 });
-      //               }
-      //               // 描红格
-      //               if (i == 0 && data.miaoRedBoxNumber) {
-      //                 let m =
-      //                   Math.ceil(
-      //                     (data.miaoRedBoxNumber - areadyMiao) / data.rowNumber
-      //                   ) > data.writeBoxNumber
-      //                     ? data.writeBoxNumber
-      //                     : Math.ceil(
-      //                         (data.miaoRedBoxNumber - areadyMiao) /
-      //                           data.rowNumber
-      //                       );
-      //                 for (let j = 0; j < m; j++) {
-      //                   let miaoArr = [];
-      //                   for (let l = 0; l < data.rowNumber; l++) {
-      //                     if (
-      //                       j * data.rowNumber + l <
-      //                       data.miaoRedBoxNumber - areadyMiao
-      //                     ) {
-      //                       miaoArr[l] = {
-      //                         con: item.con,
-      //                         miaoRed: true,
-      //                         write: true,
-      //                       };
-      //                     } else {
-      //                       miaoArr[l] = {
-      //                         con: item.con,
-      //                         write: true,
-      //                       };
-      //                     }
-      //                   }
-      //                   arrOption.push(JSON.parse(JSON.stringify(miaoArr)));
-      //                 }
-      //               }
-      //               arrOption.push(numrow);
-      //               arrOption = arrOption.slice(0, data.writeBoxNumber);
-      //             }
-      //             arrOption.forEach((itemA) => {
-      //               allArr.push(itemA);
-      //             });
-      //           }
-      //         });
-      //         if (data.lastNullrow) {
-      //           for (let i = 0; i < data.lastNullrow; i++) {
-      //             let numrow = [];
-      //             for (let k = 0; k < data.rowNumber; k++) {
-      //               numrow.push({
-      //                 write: true,
-      //               });
-      //             }
-      //             allArr.push(JSON.parse(JSON.stringify(numrow)));
-      //           }
-      //         }
-      //         data.result = this.arrSplice(allArr, data.pageNumber);
-      //         this.writeTableData = data;
-      //       }
-      //     } else {
-      //       // 处理句模式数据
-      //       let allArr = [];
-      //       data.option.forEach((item) => {
-      //         let sentenceArr = []; // 每一句的内容
-      //         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({});
-      //             }
-      //           }
-      //           this.loading = true;
-      //           let MethodName = "hz_resource_manager-GetHZStrokesContent";
-      //           sentenceItem.forEach((items, index) => {
-      //             let obj = {
-      //               hz: items.con,
-      //             };
-      //             if (items.con) {
-      //               items.hzDetail = {
-      //                 hz_json: null,
-      //               };
-      //             }
-      //             getLogin(MethodName, obj)
-      //               .then((res) => {
-      //                 if (items.con) {
-      //                   this.$set(sentenceItem[index].hzDetail, "hz_json", res);
-      //                   this.$forceUpdate();
-      //                 }
-      //                 if (index == sentenceItem.length - 1) {
-      //                   this.loading = false;
-      //                   allArr.push(JSON.parse(JSON.stringify(sentenceItem)));
-      //                   console.log(allArr);
-      //                 }
-      //               })
-      //               .catch(() => {
-      //                 this.loading = false;
-      //               });
-      //           });
-      //         }
-      //         if (data.miaoRedBoxNumber > 0 && data.writeBoxNumber > 0) {
-      //           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,
-      //                 };
-      //                 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(
-      //               JSON.parse(JSON.stringify(sentenceItemMiao))
-      //             );
-      //           }
-      //           this.loading = false;
-      //           // 描红内容
-      //           for (let l = 0; l < data.miaoRedBoxNumber; l++) {
-      //             for (let j = 0; j < sentenceMiao.length; j++) {
-      //               sentenceArr.push(
-      //                 JSON.parse(JSON.stringify(sentenceMiao[j]))
-      //               );
-      //             }
-      //           }
-      //         }
-      //         // 书写内容
-      //         if (data.writeBoxNumber > 0) {
-      //           for (
-      //             let w = 0;
-      //             w < Number(sentence) * Number(data.writeBoxNumber);
-      //             w++
-      //           ) {
-      //             let sentenceItemWrite = [];
-      //             for (let j = 0; j < data.rowNumber; j++) {
-      //               sentenceItemWrite.push({});
-      //             }
-      //             sentenceArr.push(
-      //               JSON.parse(JSON.stringify(sentenceItemWrite))
-      //             );
-      //           }
-      //         }
-      //         sentenceArr = sentenceArr.slice(
-      //           0,
-      //           Number(sentence) * Number(data.writeBoxNumber)
-      //         );
-      //         sentenceArr.forEach((itemS, indexS) => {
-      //           allArr.push(JSON.parse(JSON.stringify(itemS)));
-      //         });
-      //       });
-      //       if (data.lastNullrow > 0) {
-      //         for (let t = 0; t < data.lastNullrow; t++) {
-      //           let sentenceItemNull = [];
-      //           for (let j = 0; j < data.rowNumber; j++) {
-      //             sentenceItemNull.push({});
-      //           }
-      //           allArr.push(JSON.parse(JSON.stringify(sentenceItemNull)));
-      //         }
-      //       }
-      //       data.result = this.arrSplice(allArr, data.pageNumber);
-      //       this.writeTableData = data;
-      //     }
-      //     this.$forceUpdate();
-      //     this.isCread = true;
-      //   }
-      // }, 100);
     },
     arrSplice(arr, chunkSize) {
       //定义一个空数组来接收返回值