zhangjie 1 년 전
부모
커밋
6dad9ef20c
3개의 변경된 파일49개의 추가작업 그리고 32개의 파일을 삭제
  1. 8 2
      card/elements/card-head/cardHeadSpin/HeadDynamic.vue
  2. 23 21
      card/mixins/exchange.js
  3. 18 9
      card/modules/free/cardFormatTransform.js

+ 8 - 2
card/elements/card-head/cardHeadSpin/HeadDynamic.vue

@@ -36,7 +36,10 @@
         <div class="head-dynamic-content">
           <span class="dynamic-miss-title">缺考标记</span>
           <span class="dynamic-miss-body"
-            ><i class="head-dynamic-rect" id="dynamic-miss-area"></i
+            ><i
+              class="head-dynamic-rect dynamic-miss-area"
+              id="dynamic-miss-area"
+            ></i
           ></span>
         </div>
       </div>
@@ -44,7 +47,10 @@
         <div class="head-dynamic-content">
           <span class="dynamic-miss-title">违纪标记</span>
           <span class="dynamic-miss-body"
-            ><i class="head-dynamic-rect" id="dynamic-breach-area"></i
+            ><i
+              class="head-dynamic-rect dynamic-breach-area"
+              id="dynamic-breach-area"
+            ></i
           ></span>
         </div>
       </div>

+ 23 - 21
card/mixins/exchange.js

@@ -30,6 +30,7 @@ export default {
         "COMPOSITION",
       ],
       curPageOffsetInfo: {},
+      curPageDom: null,
     };
   },
   methods: {
@@ -55,15 +56,14 @@ export default {
         pages.length <= 2 ? null : this.getPageNumberInfo();
 
       npages.forEach((page, pindex) => {
-        this.curPageOffsetInfo = document
-          .getElementById(`preview-page-box-${pindex}`)
-          .getBoundingClientRect();
+        this.curPageDom = document.getElementById(`preview-page-box-${pindex}`);
+        this.curPageOffsetInfo = this.curPageDom.getBoundingClientRect();
 
         let exchange = {
           card_type: 2,
           page_size: page.pageSize,
           page_image: "",
-          locator: this.getLocatorInfo(page.locators),
+          locator: this.getLocatorInfo(this.curPageDom),
           fill_locator: [],
           check_area: {
             black_line: [],
@@ -114,7 +114,7 @@ export default {
       return npages;
     },
     getPageNumberInfo() {
-      const dom = document.querySelector(".page-box-0");
+      const dom = document.getElementById(`preview-page-box-0`);
       let options = [];
       dom
         .querySelector(".page-number-rect-list")
@@ -139,14 +139,20 @@ export default {
         },
       ];
     },
-    getLocatorInfo(locators) {
-      const tops = locators.top.map((locator) => {
-        return this.getOffsetInfo(document.getElementById(locator.id));
-      });
-      const bottoms = locators.bottom.map((locator) => {
-        return this.getOffsetInfo(document.getElementById(locator.id));
-      });
+    getLocatorInfo(curPageDom) {
+      let tops = [];
+      curPageDom
+        .querySelector(".page-locator-top")
+        .childNodes.forEach((item) => {
+          tops.push(this.getOffsetInfo(item));
+        });
 
+      let bottoms = [];
+      curPageDom
+        .querySelector(".page-locator-bottom")
+        .childNodes.forEach((item) => {
+          bottoms.push(this.getOffsetInfo(item));
+        });
       return {
         top: tops,
         bottom: bottoms,
@@ -206,9 +212,7 @@ export default {
               main_number: null,
               sub_number: null,
               options: [
-                this.getOffsetInfo(
-                  document.getElementById("dynamic-miss-area")
-                ),
+                this.getOffsetInfo(dom.querySelector(".dynamic-miss-area")),
               ],
               recog_info: [],
             },
@@ -227,9 +231,7 @@ export default {
               main_number: null,
               sub_number: null,
               options: [
-                this.getOffsetInfo(
-                  document.getElementById("dynamic-breach-area")
-                ),
+                this.getOffsetInfo(dom.querySelector(".dynamic-breach-area")),
               ],
               recog_info: [],
             },
@@ -243,14 +245,14 @@ export default {
           barcode.push({
             field: "paperType",
             area: this.getOffsetInfo(
-              document.getElementById("dynamic-aorb-barcode")
+              dom.querySelector(".dynamic-aorb-barcode")
             ),
           });
         } else {
           // fill_area
           let options = [];
-          document
-            .getElementById("head-dynamic-aorb")
+          dom
+            .querySelector(".head-dynamic-aorb")
             .querySelectorAll(".head-dynamic-rect")
             .forEach((optionItem, optionIndex) => {
               options[optionIndex] = this.getOffsetInfo(optionItem);

+ 18 - 9
card/modules/free/cardFormatTransform.js

@@ -67,15 +67,22 @@ function getOffsetInfo(dom) {
 // answer_area: []
 
 const elementInfoFunc = {
-  LOCATOR: (locators) => {
-    const tops = locators.top.map((locator) => {
-      return getOffsetInfo(document.getElementById(locator.id));
-    });
-    const bottoms = locators.bottom.map((locator) => {
-      return getOffsetInfo(document.getElementById(locator.id));
+  LOCATOR: (curPageDom) => {
+    let tops = [];
+    curPageDom.querySelector(".page-locator-top").childNodes.forEach((item) => {
+      tops.push(this.getOffsetInfo(item));
     });
 
-    return { top: tops, bottom: bottoms };
+    let bottoms = [];
+    curPageDom
+      .querySelector(".page-locator-bottom")
+      .childNodes.forEach((item) => {
+        bottoms.push(this.getOffsetInfo(item));
+      });
+    return {
+      top: tops,
+      bottom: bottoms,
+    };
   },
   BARCODE: (element) => {
     return {
@@ -220,7 +227,7 @@ const elementInfoFunc = {
 };
 
 function getPageNumberInfo() {
-  const dom = document.querySelector(".page-box-0");
+  const dom = document.getElementById(`preview-page-box-0`);
   let options = [];
   dom
     .querySelector(".page-number-rect-list")
@@ -263,7 +270,9 @@ function parsePageExchange(pages) {
       card_type: 2,
       page_size: page.pageSize,
       page_image: "",
-      locator: elementInfoFunc.LOCATOR(page.locators),
+      locator: elementInfoFunc.LOCATOR(
+        document.getElementById(`preview-page-box-${pindex}`)
+      ),
       fill_locator: [],
       check_area: {
         black_line: [],