From bb584963c6abe77c5577cbcad3c9956b69444ae9 Mon Sep 17 00:00:00 2001
From: zhongshujie <2862698242@qq.com>
Date: 星期二, 01 七月 2025 17:17:30 +0800
Subject: [PATCH] 无人机样章

---
 src/books/UAVTechIntro/assets/images/0018-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0075-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0016-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0060_01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0071-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0168-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0046_02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0077-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0079-01.jpg                   |    0 
 src/books/toddlerGameImplementation/view/components/chapter002.vue |   31 
 src/books/UAVTechIntro/assets/images/0016-01-02.png                |    0 
 src/books/UAVTechIntro/assets/images/0055-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0037-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0017-01-02.png                |    0 
 src/books/UAVTechIntro/assets/images/0013-04.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0090-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0131-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0135-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0161-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0126-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0030-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/main.less                            | 2311 ++++++++++++++
 src/books/UAVTechIntro/assets/images/0163-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0017_03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0041-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0147-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0132-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0176-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0032-01.jpg                   |    0 
 src/books/UAVTechIntro/view/components/chapter001.vue              | 2048 ++++++++++++
 src/books/UAVTechIntro/assets/images/0036-01.jpg                   |    0 
 yarn.lock                                                          |  189 +
 src/books/UAVTechIntro/assets/images/0154-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0033_02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0066-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0060-02.jpg                   |    0 
 package-lock.json                                                  |  984 +++++
 src/books/UAVTechIntro/assets/images/0168_02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0029-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0101-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0026-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0084-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0080-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0008-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/a1.jpg                        |    0 
 src/books/UAVTechIntro/assets/images/0120-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0124-01.jpg                   |    0 
 src/assets/methods/resources.js                                    |    1 
 src/books/UAVTechIntro/assets/images/0100-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/feiye.jpg                     |    0 
 src/books/UAVTechIntro/assets/images/0083-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0011-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0098-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0133_01.jpg                   |    0 
 src/books/toddlerGameImplementation/assets/main.less               |   20 
 src/components/pdfview/index.vue                                   |   24 
 src/books/UAVTechIntro/assets/images/0014_05.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0096_02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0105-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0085-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0019-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0039-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0090_01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0058-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0091-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0092-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0026_02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0013-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0110-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0017-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0099-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0015-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0078-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0097-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0029_02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0127-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0016-01-05.png                |    0 
 src/books/UAVTechIntro/assets/images/0148-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0016-01-01.png                |    0 
 src/books/UAVTechIntro/assets/images/0059-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0145-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0154-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0082-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0033_03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0061-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0018-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0017-01-01.png                |    0 
 src/books/UAVTechIntro/assets/images/0032-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0141-03.jpg                   |    0 
 src/books/civilPassengerTransport/assets/main.less                 | 1565 +++++++++
 src/books/UAVTechIntro/assets/images/0050-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0040-02.jpg                   |    0 
 src/books/UAVTechIntro/view/index.vue                              |   80 
 src/books/UAVTechIntro/assets/images/0086-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/icon/heart.png                |    0 
 src/books/UAVTechIntro/assets/images/0009-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0046-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0121-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0141_02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0143-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0137-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0084-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0105-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0113-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0162-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0151-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0076-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0160_01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0146_01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0031-01.jpg                   |    0 
 src/books/civilPassengerTransport/view/components/header.vue       |   46 
 src/books/UAVTechIntro/assets/images/0042-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0146-02.jpg                   |    0 
 package.json                                                       |    3 
 src/books/UAVTechIntro/assets/images/0113_01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0015-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0160-02.jpg                   |    0 
 src/books/UAVTechIntro/view/components/index.vue                   |  989 ++++++
 src/books/UAVTechIntro/assets/images/0076_02.jpg                   |    0 
 src/App.vue                                                        |   11 
 src/assets/js/config.js                                            |    7 
 src/books/UAVTechIntro/assets/images/0076-01.jpg                   |    0 
 vue.config.js                                                      |   32 
 src/books/UAVTechIntro/assets/images/0039-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0017-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0072-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0078-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0148-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/yemei01.png                   |    0 
 src/books/UAVTechIntro/assets/images/0016-01-04.png                |    0 
 src/books/aviationEtiquette/view/components/index.vue              |    2 
 src/books/UAVTechIntro/assets/images/0038-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0091-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0020_01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0071-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0014-04.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0097-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0134-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0099-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/a3.jpg                        |    0 
 src/components/dialogExaminations/index.vue                        |   21 
 src/books/UAVTechIntro/assets/images/0071_02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0127_01.jpg                   |    0 
 .env.product                                                       |   20 
 src/books/UAVTechIntro/assets/images/0067-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0014_03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0085-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0089-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0102-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0026-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0081-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0137-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0007-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0123-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0141-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0019_02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0138-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0153-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0096-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0120-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0157-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0133-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0175-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0120_02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0168-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0162-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0013-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0040-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/tb.png                        |    0 
 src/books/UAVTechIntro/assets/images/0155-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0031-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0020-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0055-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/Cover.jpg                     |    0 
 src/books/UAVTechIntro/assets/images/0083_01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0095-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0019-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/Fonts/FZSSK.TTF                      |    0 
 src/books/civilPassengerTransport/view/index.vue                   |   78 
 src/books/UAVTechIntro/assets/images/0016-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0077-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0111-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0018-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0096-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0098-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/yemei.png                     |    0 
 src/books/UAVTechIntro/assets/images/0050-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/yemei02.png                   |    0 
 src/books/UAVTechIntro/assets/images/0079-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0147-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0151_02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0014_06.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0010-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/a2.jpg                        |    0 
 src/books/UAVTechIntro/assets/images/0080-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0136-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0112-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0054-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0038-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0063-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0016-01-03.png                |    0 
 src/books/UAVTechIntro/assets/images/icon/heart-check.png          |    0 
 src/books/toddlerGameImplementation/view/components/chapter007.vue |    4 
 src/books/UAVTechIntro/assets/images/0014_02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0041-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0065-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0050_02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0159-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0100-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0063-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0158-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0122-01.jpg                   |    0 
 src/books/UAVTechIntro/view/components/header.vue                  |  136 
 src/books/UAVTechIntro/assets/images/0101-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0033_01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0080-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0038_01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0085-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0136-01.jpg                   |    0 
 src/books/civilPassengerTransport/view/components/index.vue        |  975 ++++++
 src/books/UAVTechIntro/assets/images/0155-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0013-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0039-03.jpg                   |    0 
 src/books/toddlerGameImplementation/view/components/index.vue      |   16 
 src/books/UAVTechIntro/assets/images/0151-03.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0153-02.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0046-01.jpg                   |    0 
 src/books/UAVTechIntro/assets/images/0057-01.jpg                   |    0 
 228 files changed, 9,469 insertions(+), 124 deletions(-)

diff --git a/.env.product b/.env.product
index 39985b7..458a09d 100644
--- a/.env.product
+++ b/.env.product
@@ -1,12 +1,20 @@
 VUE_APP_ENV = 'product'
-VUE_APP_API_URL = "https://jsek.bnuic.com"
+
+# 娴嬭瘯鏈嶅浘涔﹂儴缃查厤缃枃浠�
 # VUE_APP_API_URL = "http://182.92.203.7:3001"
-# VUE_APP_API_URL = "https://www.tepcb.com"
-VUE_APP_RESOURCE_CTX = 'https://jsek.bnuic.com/books/resource/'
-VUE_APP_PUBLIC_PATH = 'https://jsek.bnuic.com/books/book/lifeCare'
 # VUE_APP_RESOURCE_CTX = 'http://182.92.203.7:3007/books/resource/'
 # VUE_APP_PUBLIC_PATH = 'http://182.92.203.7:3007/books/book/hydraulicTransmission'
+
+# 浜笀e璇炬寮忔湇鍥句功閮ㄧ讲閰嶇疆鏂囦欢
+VUE_APP_API_URL = "https://jsek.bnuic.com"
+VUE_APP_RESOURCE_CTX = 'https://jsek.bnuic.com/books/resource/'
+VUE_APP_PUBLIC_PATH = 'https://jsek.bnuic.com/books/book/UAVTechIntro'
+
+
+# 鏃呮父绀惧浘涔﹂儴缃查厤缃枃浠�
+# VUE_APP_API_URL = "https://www.tepcb.com"
 # VUE_APP_RESOURCE_CTX = 'https://www.tepcb.com/books/resource/'
 # VUE_APP_PUBLIC_PATH = 'https://www.tepcb.com/books/book/policiesAndRegulations'
-VUE_APP_BOOK_LIST = "childHealth/lifeCare/sportsAndHealth/embedded/english/artAndDance/artAndDrama/mathBook/botany/civilAviation/civilServices/meetingPlanners/aviationBasicSkills/aviationEtiquette/aviationSafety/toddlerGameImplementation/childcareInstitutionsManagement/preschoolGameGuidance/kindergartenLanguageActivity/preschoolEvaluation/preschoolBasicKnowledge/practicalCareChildrenManual/OralAndBroadcasting/aurturingAndEducationAged0to3/policiesAndRegulations/kindergartenActivitiesDesignGuidance/toddlerSportsSafetyProtection/artInitiationForAges0to3/childIllnessPreventionCare/behaviorObserveAndGuid/cognitiveLanDevEduAges0to3/aviationPassengerTransport6th/hotelEnglishTrainingBrochure2nd/hydraulicTransmission/MMVRTCMP/foodSensoryInspection"
-VUE_APP_BOOK_ID = 'lifeCare'
+
+VUE_APP_BOOK_LIST = "childHealth/lifeCare/sportsAndHealth/embedded/english/artAndDance/artAndDrama/mathBook/botany/civilAviation/civilServices/meetingPlanners/aviationBasicSkills/aviationEtiquette/aviationSafety/toddlerGameImplementation/childcareInstitutionsManagement/preschoolGameGuidance/kindergartenLanguageActivity/preschoolEvaluation/preschoolBasicKnowledge/practicalCareChildrenManual/OralAndBroadcasting/aurturingAndEducationAged0to3/policiesAndRegulations/kindergartenActivitiesDesignGuidance/toddlerSportsSafetyProtection/artInitiationForAges0to3/childIllnessPreventionCare/behaviorObserveAndGuid/cognitiveLanDevEduAges0to3/aviationPassengerTransport6th/hotelEnglishTrainingBrochure2nd/hydraulicTransmission/MMVRTCMP/foodSensoryInspection/civilPassengerTransport/UAVTechIntro"
+VUE_APP_BOOK_ID = 'UAVTechIntro'
diff --git a/package-lock.json b/package-lock.json
index 0cecb12..d1a4fd5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -34,8 +34,11 @@
         "@vue/cli-service": "~5.0.0",
         "eslint": "^7.32.0",
         "eslint-plugin-vue": "^8.0.3",
+        "file-loader": "^6.2.0",
         "less": "^4.2.0",
         "less-loader": "^12.2.0",
+        "rimraf": "^6.0.1",
+        "url-loader": "^4.1.1",
         "vue-template-compiler": "^2.6.14",
         "webpack": "^5.92.0"
       }
@@ -2075,6 +2078,123 @@
       "dev": true,
       "license": "BSD-3-Clause"
     },
+    "node_modules/@isaacs/balanced-match": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
+      "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
+      "dev": true,
+      "engines": {
+        "node": "20 || >=22"
+      }
+    },
+    "node_modules/@isaacs/brace-expansion": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz",
+      "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
+      "dev": true,
+      "dependencies": {
+        "@isaacs/balanced-match": "^4.0.1"
+      },
+      "engines": {
+        "node": "20 || >=22"
+      }
+    },
+    "node_modules/@isaacs/cliui": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz",
+      "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+      "dev": true,
+      "dependencies": {
+        "string-width": "^5.1.2",
+        "string-width-cjs": "npm:string-width@^4.2.0",
+        "strip-ansi": "^7.0.1",
+        "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+        "wrap-ansi": "^8.1.0",
+        "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+      "version": "6.1.0",
+      "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.1.0.tgz",
+      "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+      "version": "6.2.1",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz",
+      "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+      "dev": true,
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+      "version": "9.2.2",
+      "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz",
+      "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+      "dev": true
+    },
+    "node_modules/@isaacs/cliui/node_modules/string-width": {
+      "version": "5.1.2",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz",
+      "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+      "dev": true,
+      "dependencies": {
+        "eastasianwidth": "^0.2.0",
+        "emoji-regex": "^9.2.2",
+        "strip-ansi": "^7.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/sindresorhus"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+      "version": "7.1.0",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz",
+      "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-regex": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+      }
+    },
+    "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+      "version": "8.1.0",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+      "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^6.1.0",
+        "string-width": "^5.0.1",
+        "strip-ansi": "^7.0.1"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+      }
+    },
     "node_modules/@jridgewell/gen-mapping": {
       "version": "0.3.5",
       "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
@@ -2164,6 +2284,43 @@
       },
       "bin": {
         "node-pre-gyp": "bin/node-pre-gyp"
+      }
+    },
+    "node_modules/@mapbox/node-pre-gyp/node_modules/glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "deprecated": "Glob versions prior to v9 are no longer supported",
+      "optional": true,
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.1.1",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/@mapbox/node-pre-gyp/node_modules/rimraf": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
+      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "deprecated": "Rimraf versions prior to v4 are no longer supported",
+      "optional": true,
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
       }
     },
     "node_modules/@mapbox/node-pre-gyp/node_modules/semver": {
@@ -5119,11 +5276,10 @@
       }
     },
     "node_modules/cross-spawn": {
-      "version": "7.0.3",
-      "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz",
-      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+      "version": "7.0.6",
+      "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz",
+      "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
       "dev": true,
-      "license": "MIT",
       "dependencies": {
         "path-key": "^3.1.0",
         "shebang-command": "^2.0.0",
@@ -5979,6 +6135,12 @@
       "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
       "dev": true,
       "license": "MIT"
+    },
+    "node_modules/eastasianwidth": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+      "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+      "dev": true
     },
     "node_modules/easy-stack": {
       "version": "1.0.1",
@@ -7127,6 +7289,58 @@
         "node": "^10.12.0 || >=12.0.0"
       }
     },
+    "node_modules/file-loader": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmmirror.com/file-loader/-/file-loader-6.2.0.tgz",
+      "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==",
+      "dev": true,
+      "dependencies": {
+        "loader-utils": "^2.0.0",
+        "schema-utils": "^3.0.0"
+      },
+      "engines": {
+        "node": ">= 10.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependencies": {
+        "webpack": "^4.0.0 || ^5.0.0"
+      }
+    },
+    "node_modules/file-loader/node_modules/loader-utils": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
+      "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+      "dev": true,
+      "dependencies": {
+        "big.js": "^5.2.2",
+        "emojis-list": "^3.0.0",
+        "json5": "^2.1.2"
+      },
+      "engines": {
+        "node": ">=8.9.0"
+      }
+    },
+    "node_modules/file-loader/node_modules/schema-utils": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz",
+      "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+      "dev": true,
+      "dependencies": {
+        "@types/json-schema": "^7.0.8",
+        "ajv": "^6.12.5",
+        "ajv-keywords": "^3.5.2"
+      },
+      "engines": {
+        "node": ">= 10.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      }
+    },
     "node_modules/fill-range": {
       "version": "7.0.1",
       "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
@@ -7233,6 +7447,43 @@
         "node": "^10.12.0 || >=12.0.0"
       }
     },
+    "node_modules/flat-cache/node_modules/glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "deprecated": "Glob versions prior to v9 are no longer supported",
+      "dev": true,
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.1.1",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/flat-cache/node_modules/rimraf": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
+      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "deprecated": "Rimraf versions prior to v4 are no longer supported",
+      "dev": true,
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
     "node_modules/flatted": {
       "version": "3.3.1",
       "resolved": "https://registry.npmmirror.com/flatted/-/flatted-3.3.1.tgz",
@@ -7258,6 +7509,34 @@
         "debug": {
           "optional": true
         }
+      }
+    },
+    "node_modules/foreground-child": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.3.1.tgz",
+      "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+      "dev": true,
+      "dependencies": {
+        "cross-spawn": "^7.0.6",
+        "signal-exit": "^4.0.1"
+      },
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/foreground-child/node_modules/signal-exit": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz",
+      "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+      "dev": true,
+      "engines": {
+        "node": ">=14"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
       }
     },
     "node_modules/form-data": {
@@ -7346,8 +7625,7 @@
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz",
       "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
-      "devOptional": true,
-      "license": "ISC"
+      "devOptional": true
     },
     "node_modules/fsevents": {
       "version": "2.3.3",
@@ -7455,21 +7733,23 @@
       }
     },
     "node_modules/glob": {
-      "version": "7.2.3",
-      "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
-      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
-      "devOptional": true,
-      "license": "ISC",
+      "version": "11.0.3",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-11.0.3.tgz",
+      "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==",
+      "dev": true,
       "dependencies": {
-        "fs.realpath": "^1.0.0",
-        "inflight": "^1.0.4",
-        "inherits": "2",
-        "minimatch": "^3.1.1",
-        "once": "^1.3.0",
-        "path-is-absolute": "^1.0.0"
+        "foreground-child": "^3.3.1",
+        "jackspeak": "^4.1.1",
+        "minimatch": "^10.0.3",
+        "minipass": "^7.1.2",
+        "package-json-from-dist": "^1.0.0",
+        "path-scurry": "^2.0.0"
+      },
+      "bin": {
+        "glob": "dist/esm/bin.mjs"
       },
       "engines": {
-        "node": "*"
+        "node": "20 || >=22"
       },
       "funding": {
         "url": "https://github.com/sponsors/isaacs"
@@ -7494,6 +7774,30 @@
       "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==",
       "dev": true,
       "license": "BSD-2-Clause"
+    },
+    "node_modules/glob/node_modules/minimatch": {
+      "version": "10.0.3",
+      "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-10.0.3.tgz",
+      "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==",
+      "dev": true,
+      "dependencies": {
+        "@isaacs/brace-expansion": "^5.0.0"
+      },
+      "engines": {
+        "node": "20 || >=22"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/glob/node_modules/minipass": {
+      "version": "7.1.2",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz",
+      "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+      "dev": true,
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      }
     },
     "node_modules/globals": {
       "version": "11.12.0",
@@ -8078,8 +8382,8 @@
       "version": "1.0.6",
       "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz",
       "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
       "devOptional": true,
-      "license": "ISC",
       "dependencies": {
         "once": "^1.3.0",
         "wrappy": "1"
@@ -8323,6 +8627,21 @@
       "license": "MIT",
       "engines": {
         "node": ">=0.10.0"
+      }
+    },
+    "node_modules/jackspeak": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-4.1.1.tgz",
+      "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==",
+      "dev": true,
+      "dependencies": {
+        "@isaacs/cliui": "^8.0.2"
+      },
+      "engines": {
+        "node": "20 || >=22"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
       }
     },
     "node_modules/javascript-stringify": {
@@ -10092,6 +10411,12 @@
         "node": ">=6"
       }
     },
+    "node_modules/package-json-from-dist": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+      "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+      "dev": true
+    },
     "node_modules/param-case": {
       "version": "3.0.4",
       "resolved": "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz",
@@ -10204,7 +10529,6 @@
       "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
       "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
       "devOptional": true,
-      "license": "MIT",
       "engines": {
         "node": ">=0.10.0"
       }
@@ -10225,6 +10549,40 @@
       "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
       "dev": true,
       "license": "MIT"
+    },
+    "node_modules/path-scurry": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-2.0.0.tgz",
+      "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==",
+      "dev": true,
+      "dependencies": {
+        "lru-cache": "^11.0.0",
+        "minipass": "^7.1.2"
+      },
+      "engines": {
+        "node": "20 || >=22"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/path-scurry/node_modules/lru-cache": {
+      "version": "11.1.0",
+      "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-11.1.0.tgz",
+      "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==",
+      "dev": true,
+      "engines": {
+        "node": "20 || >=22"
+      }
+    },
+    "node_modules/path-scurry/node_modules/minipass": {
+      "version": "7.1.2",
+      "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz",
+      "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+      "dev": true,
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      }
     },
     "node_modules/path-to-regexp": {
       "version": "0.1.7",
@@ -11436,16 +11794,19 @@
       }
     },
     "node_modules/rimraf": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
-      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
-      "devOptional": true,
-      "license": "ISC",
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-6.0.1.tgz",
+      "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==",
+      "dev": true,
       "dependencies": {
-        "glob": "^7.1.3"
+        "glob": "^11.0.0",
+        "package-json-from-dist": "^1.0.0"
       },
       "bin": {
-        "rimraf": "bin.js"
+        "rimraf": "dist/esm/bin.mjs"
+      },
+      "engines": {
+        "node": "20 || >=22"
       },
       "funding": {
         "url": "https://github.com/sponsors/isaacs"
@@ -12139,12 +12500,40 @@
         "node": ">=8"
       }
     },
+    "node_modules/string-width-cjs": {
+      "name": "string-width",
+      "version": "4.2.3",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dev": true,
+      "dependencies": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
     "node_modules/strip-ansi": {
       "version": "6.0.1",
       "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
       "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
       "devOptional": true,
       "license": "MIT",
+      "dependencies": {
+        "ansi-regex": "^5.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      }
+    },
+    "node_modules/strip-ansi-cjs": {
+      "name": "strip-ansi",
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
       "dependencies": {
         "ansi-regex": "^5.0.1"
       },
@@ -12816,6 +13205,65 @@
       "license": "BSD-2-Clause",
       "dependencies": {
         "punycode": "^2.1.0"
+      }
+    },
+    "node_modules/url-loader": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmmirror.com/url-loader/-/url-loader-4.1.1.tgz",
+      "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==",
+      "dev": true,
+      "dependencies": {
+        "loader-utils": "^2.0.0",
+        "mime-types": "^2.1.27",
+        "schema-utils": "^3.0.0"
+      },
+      "engines": {
+        "node": ">= 10.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
+      },
+      "peerDependencies": {
+        "file-loader": "*",
+        "webpack": "^4.0.0 || ^5.0.0"
+      },
+      "peerDependenciesMeta": {
+        "file-loader": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/url-loader/node_modules/loader-utils": {
+      "version": "2.0.4",
+      "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
+      "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+      "dev": true,
+      "dependencies": {
+        "big.js": "^5.2.2",
+        "emojis-list": "^3.0.0",
+        "json5": "^2.1.2"
+      },
+      "engines": {
+        "node": ">=8.9.0"
+      }
+    },
+    "node_modules/url-loader/node_modules/schema-utils": {
+      "version": "3.3.0",
+      "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz",
+      "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+      "dev": true,
+      "dependencies": {
+        "@types/json-schema": "^7.0.8",
+        "ajv": "^6.12.5",
+        "ajv-keywords": "^3.5.2"
+      },
+      "engines": {
+        "node": ">= 10.13.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/webpack"
       }
     },
     "node_modules/url-parse": {
@@ -13541,12 +13989,49 @@
         "ajv": "^8.8.2"
       }
     },
+    "node_modules/webpack-dev-server/node_modules/glob": {
+      "version": "7.2.3",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "deprecated": "Glob versions prior to v9 are no longer supported",
+      "dev": true,
+      "dependencies": {
+        "fs.realpath": "^1.0.0",
+        "inflight": "^1.0.4",
+        "inherits": "2",
+        "minimatch": "^3.1.1",
+        "once": "^1.3.0",
+        "path-is-absolute": "^1.0.0"
+      },
+      "engines": {
+        "node": "*"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
     "node_modules/webpack-dev-server/node_modules/json-schema-traverse": {
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
       "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
       "dev": true,
       "license": "MIT"
+    },
+    "node_modules/webpack-dev-server/node_modules/rimraf": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
+      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "deprecated": "Rimraf versions prior to v4 are no longer supported",
+      "dev": true,
+      "dependencies": {
+        "glob": "^7.1.3"
+      },
+      "bin": {
+        "rimraf": "bin.js"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
     },
     "node_modules/webpack-dev-server/node_modules/schema-utils": {
       "version": "4.2.0",
@@ -13766,6 +14251,57 @@
       "funding": {
         "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
       }
+    },
+    "node_modules/wrap-ansi-cjs": {
+      "name": "wrap-ansi",
+      "version": "7.0.0",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+      "dev": true,
+      "dependencies": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      },
+      "engines": {
+        "node": ">=10"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+      }
+    },
+    "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
+      "version": "4.3.0",
+      "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+      "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+      "dev": true,
+      "dependencies": {
+        "color-convert": "^2.0.1"
+      },
+      "engines": {
+        "node": ">=8"
+      },
+      "funding": {
+        "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+      }
+    },
+    "node_modules/wrap-ansi-cjs/node_modules/color-convert": {
+      "version": "2.0.1",
+      "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+      "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+      "dev": true,
+      "dependencies": {
+        "color-name": "~1.1.4"
+      },
+      "engines": {
+        "node": ">=7.0.0"
+      }
+    },
+    "node_modules/wrap-ansi-cjs/node_modules/color-name": {
+      "version": "1.1.4",
+      "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+      "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+      "dev": true
     },
     "node_modules/wrap-ansi/node_modules/ansi-styles": {
       "version": "4.3.0",
@@ -15346,6 +15882,86 @@
       "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
       "dev": true
     },
+    "@isaacs/balanced-match": {
+      "version": "4.0.1",
+      "resolved": "https://registry.npmmirror.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
+      "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
+      "dev": true
+    },
+    "@isaacs/brace-expansion": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmmirror.com/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz",
+      "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
+      "dev": true,
+      "requires": {
+        "@isaacs/balanced-match": "^4.0.1"
+      }
+    },
+    "@isaacs/cliui": {
+      "version": "8.0.2",
+      "resolved": "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz",
+      "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+      "dev": true,
+      "requires": {
+        "string-width": "^5.1.2",
+        "string-width-cjs": "npm:string-width@^4.2.0",
+        "strip-ansi": "^7.0.1",
+        "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+        "wrap-ansi": "^8.1.0",
+        "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+      },
+      "dependencies": {
+        "ansi-regex": {
+          "version": "6.1.0",
+          "resolved": "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.1.0.tgz",
+          "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==",
+          "dev": true
+        },
+        "ansi-styles": {
+          "version": "6.2.1",
+          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz",
+          "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==",
+          "dev": true
+        },
+        "emoji-regex": {
+          "version": "9.2.2",
+          "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz",
+          "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+          "dev": true
+        },
+        "string-width": {
+          "version": "5.1.2",
+          "resolved": "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz",
+          "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+          "dev": true,
+          "requires": {
+            "eastasianwidth": "^0.2.0",
+            "emoji-regex": "^9.2.2",
+            "strip-ansi": "^7.0.1"
+          }
+        },
+        "strip-ansi": {
+          "version": "7.1.0",
+          "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz",
+          "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==",
+          "dev": true,
+          "requires": {
+            "ansi-regex": "^6.0.1"
+          }
+        },
+        "wrap-ansi": {
+          "version": "8.1.0",
+          "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+          "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+          "dev": true,
+          "requires": {
+            "ansi-styles": "^6.1.0",
+            "string-width": "^5.0.1",
+            "strip-ansi": "^7.0.1"
+          }
+        }
+      }
+    },
     "@jridgewell/gen-mapping": {
       "version": "0.3.5",
       "resolved": "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
@@ -15418,6 +16034,29 @@
         "tar": "^6.1.11"
       },
       "dependencies": {
+        "glob": {
+          "version": "7.2.3",
+          "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+          "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+          "optional": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.1.1",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "rimraf": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
+          "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+          "optional": true,
+          "requires": {
+            "glob": "^7.1.3"
+          }
+        },
         "semver": {
           "version": "7.6.3",
           "resolved": "https://registry.npmmirror.com/semver/-/semver-7.6.3.tgz",
@@ -17578,9 +18217,9 @@
       }
     },
     "cross-spawn": {
-      "version": "7.0.3",
-      "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz",
-      "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+      "version": "7.0.6",
+      "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz",
+      "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
       "dev": true,
       "requires": {
         "path-key": "^3.1.0",
@@ -18161,6 +18800,12 @@
       "version": "0.1.2",
       "resolved": "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz",
       "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==",
+      "dev": true
+    },
+    "eastasianwidth": {
+      "version": "0.2.0",
+      "resolved": "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+      "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
       "dev": true
     },
     "easy-stack": {
@@ -18974,6 +19619,40 @@
         "flat-cache": "^3.0.4"
       }
     },
+    "file-loader": {
+      "version": "6.2.0",
+      "resolved": "https://registry.npmmirror.com/file-loader/-/file-loader-6.2.0.tgz",
+      "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^2.0.0",
+        "schema-utils": "^3.0.0"
+      },
+      "dependencies": {
+        "loader-utils": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
+          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
+        "schema-utils": {
+          "version": "3.3.0",
+          "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz",
+          "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+          "dev": true,
+          "requires": {
+            "@types/json-schema": "^7.0.8",
+            "ajv": "^6.12.5",
+            "ajv-keywords": "^3.5.2"
+          }
+        }
+      }
+    },
     "fill-range": {
       "version": "7.0.1",
       "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
@@ -19051,6 +19730,31 @@
         "flatted": "^3.2.9",
         "keyv": "^4.5.3",
         "rimraf": "^3.0.2"
+      },
+      "dependencies": {
+        "glob": {
+          "version": "7.2.3",
+          "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+          "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+          "dev": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.1.1",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
+        "rimraf": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
+          "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+          "dev": true,
+          "requires": {
+            "glob": "^7.1.3"
+          }
+        }
       }
     },
     "flatted": {
@@ -19063,6 +19767,24 @@
       "version": "1.15.6",
       "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz",
       "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
+    },
+    "foreground-child": {
+      "version": "3.3.1",
+      "resolved": "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.3.1.tgz",
+      "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+      "dev": true,
+      "requires": {
+        "cross-spawn": "^7.0.6",
+        "signal-exit": "^4.0.1"
+      },
+      "dependencies": {
+        "signal-exit": {
+          "version": "4.1.0",
+          "resolved": "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz",
+          "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+          "dev": true
+        }
+      }
     },
     "form-data": {
       "version": "4.0.0",
@@ -19196,17 +19918,34 @@
       }
     },
     "glob": {
-      "version": "7.2.3",
-      "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
-      "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
-      "devOptional": true,
+      "version": "11.0.3",
+      "resolved": "https://registry.npmmirror.com/glob/-/glob-11.0.3.tgz",
+      "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==",
+      "dev": true,
       "requires": {
-        "fs.realpath": "^1.0.0",
-        "inflight": "^1.0.4",
-        "inherits": "2",
-        "minimatch": "^3.1.1",
-        "once": "^1.3.0",
-        "path-is-absolute": "^1.0.0"
+        "foreground-child": "^3.3.1",
+        "jackspeak": "^4.1.1",
+        "minimatch": "^10.0.3",
+        "minipass": "^7.1.2",
+        "package-json-from-dist": "^1.0.0",
+        "path-scurry": "^2.0.0"
+      },
+      "dependencies": {
+        "minimatch": {
+          "version": "10.0.3",
+          "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-10.0.3.tgz",
+          "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==",
+          "dev": true,
+          "requires": {
+            "@isaacs/brace-expansion": "^5.0.0"
+          }
+        },
+        "minipass": {
+          "version": "7.1.2",
+          "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz",
+          "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+          "dev": true
+        }
       }
     },
     "glob-parent": {
@@ -19770,6 +20509,15 @@
       "resolved": "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz",
       "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
       "dev": true
+    },
+    "jackspeak": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmmirror.com/jackspeak/-/jackspeak-4.1.1.tgz",
+      "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==",
+      "dev": true,
+      "requires": {
+        "@isaacs/cliui": "^8.0.2"
+      }
     },
     "javascript-stringify": {
       "version": "2.1.0",
@@ -21005,6 +21753,12 @@
       "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
       "dev": true
     },
+    "package-json-from-dist": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+      "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+      "dev": true
+    },
     "param-case": {
       "version": "3.0.4",
       "resolved": "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz",
@@ -21104,6 +21858,30 @@
       "resolved": "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz",
       "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
       "dev": true
+    },
+    "path-scurry": {
+      "version": "2.0.0",
+      "resolved": "https://registry.npmmirror.com/path-scurry/-/path-scurry-2.0.0.tgz",
+      "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==",
+      "dev": true,
+      "requires": {
+        "lru-cache": "^11.0.0",
+        "minipass": "^7.1.2"
+      },
+      "dependencies": {
+        "lru-cache": {
+          "version": "11.1.0",
+          "resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-11.1.0.tgz",
+          "integrity": "sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==",
+          "dev": true
+        },
+        "minipass": {
+          "version": "7.1.2",
+          "resolved": "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz",
+          "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+          "dev": true
+        }
+      }
     },
     "path-to-regexp": {
       "version": "0.1.7",
@@ -21885,12 +22663,13 @@
       "dev": true
     },
     "rimraf": {
-      "version": "3.0.2",
-      "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
-      "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
-      "devOptional": true,
+      "version": "6.0.1",
+      "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-6.0.1.tgz",
+      "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==",
+      "dev": true,
       "requires": {
-        "glob": "^7.1.3"
+        "glob": "^11.0.0",
+        "package-json-from-dist": "^1.0.0"
       }
     },
     "run-parallel": {
@@ -22401,11 +23180,31 @@
         "strip-ansi": "^6.0.1"
       }
     },
+    "string-width-cjs": {
+      "version": "npm:string-width@4.2.3",
+      "resolved": "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz",
+      "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+      "dev": true,
+      "requires": {
+        "emoji-regex": "^8.0.0",
+        "is-fullwidth-code-point": "^3.0.0",
+        "strip-ansi": "^6.0.1"
+      }
+    },
     "strip-ansi": {
       "version": "6.0.1",
       "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
       "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
       "devOptional": true,
+      "requires": {
+        "ansi-regex": "^5.0.1"
+      }
+    },
+    "strip-ansi-cjs": {
+      "version": "npm:strip-ansi@6.0.1",
+      "resolved": "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz",
+      "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+      "dev": true,
       "requires": {
         "ansi-regex": "^5.0.1"
       }
@@ -22846,6 +23645,41 @@
       "dev": true,
       "requires": {
         "punycode": "^2.1.0"
+      }
+    },
+    "url-loader": {
+      "version": "4.1.1",
+      "resolved": "https://registry.npmmirror.com/url-loader/-/url-loader-4.1.1.tgz",
+      "integrity": "sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==",
+      "dev": true,
+      "requires": {
+        "loader-utils": "^2.0.0",
+        "mime-types": "^2.1.27",
+        "schema-utils": "^3.0.0"
+      },
+      "dependencies": {
+        "loader-utils": {
+          "version": "2.0.4",
+          "resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-2.0.4.tgz",
+          "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==",
+          "dev": true,
+          "requires": {
+            "big.js": "^5.2.2",
+            "emojis-list": "^3.0.0",
+            "json5": "^2.1.2"
+          }
+        },
+        "schema-utils": {
+          "version": "3.3.0",
+          "resolved": "https://registry.npmmirror.com/schema-utils/-/schema-utils-3.3.0.tgz",
+          "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==",
+          "dev": true,
+          "requires": {
+            "@types/json-schema": "^7.0.8",
+            "ajv": "^6.12.5",
+            "ajv-keywords": "^3.5.2"
+          }
+        }
       }
     },
     "url-parse": {
@@ -23376,11 +24210,34 @@
             "fast-deep-equal": "^3.1.3"
           }
         },
+        "glob": {
+          "version": "7.2.3",
+          "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz",
+          "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+          "dev": true,
+          "requires": {
+            "fs.realpath": "^1.0.0",
+            "inflight": "^1.0.4",
+            "inherits": "2",
+            "minimatch": "^3.1.1",
+            "once": "^1.3.0",
+            "path-is-absolute": "^1.0.0"
+          }
+        },
         "json-schema-traverse": {
           "version": "1.0.0",
           "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
           "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
           "dev": true
+        },
+        "rimraf": {
+          "version": "3.0.2",
+          "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-3.0.2.tgz",
+          "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+          "dev": true,
+          "requires": {
+            "glob": "^7.1.3"
+          }
         },
         "schema-utils": {
           "version": "4.2.0",
@@ -23546,6 +24403,43 @@
         }
       }
     },
+    "wrap-ansi-cjs": {
+      "version": "npm:wrap-ansi@7.0.0",
+      "resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+      "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+      "dev": true,
+      "requires": {
+        "ansi-styles": "^4.0.0",
+        "string-width": "^4.1.0",
+        "strip-ansi": "^6.0.0"
+      },
+      "dependencies": {
+        "ansi-styles": {
+          "version": "4.3.0",
+          "resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
+          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+          "dev": true,
+          "requires": {
+            "color-convert": "^2.0.1"
+          }
+        },
+        "color-convert": {
+          "version": "2.0.1",
+          "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
+          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+          "dev": true,
+          "requires": {
+            "color-name": "~1.1.4"
+          }
+        },
+        "color-name": {
+          "version": "1.1.4",
+          "resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
+          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+          "dev": true
+        }
+      }
+    },
     "wrappy": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
diff --git a/package.json b/package.json
index 3349d21..408b540 100644
--- a/package.json
+++ b/package.json
@@ -34,8 +34,11 @@
     "@vue/cli-service": "~5.0.0",
     "eslint": "^7.32.0",
     "eslint-plugin-vue": "^8.0.3",
+    "file-loader": "^6.2.0",
     "less": "^4.2.0",
     "less-loader": "^12.2.0",
+    "rimraf": "^6.0.1",
+    "url-loader": "^4.1.1",
     "vue-template-compiler": "^2.6.14",
     "webpack": "^5.92.0"
   },
diff --git a/src/App.vue b/src/App.vue
index 0ad370f..691b2d2 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -44,6 +44,8 @@
     <hydraulicTransmission v-if="activeBook.name == 'hydraulicTransmission'"></hydraulicTransmission>
     <foodSensoryInspection v-if="activeBook.name == 'foodSensoryInspection'"></foodSensoryInspection>
     <MMVRTCMP v-if="activeBook.name == 'MMVRTCMP'"></MMVRTCMP>
+    <civilPassengerTransport v-if="activeBook.name == 'civilPassengerTransport'"> </civilPassengerTransport>
+    <UAVTechIntro v-if="activeBook.name == 'UAVTechIntro'"></UAVTechIntro>
   </div>
 </template>
 <script>
@@ -127,6 +129,9 @@
     foodSensoryInspection: () =>
       import("./books/foodSensoryInspection/view/index.vue"),
     MMVRTCMP: () => import("./books/MMVRTCMP/view/index.vue"),
+    civilPassengerTransport: () =>
+      import("./books/civilPassengerTransport/view/index.vue"),
+    UAVTechIntro: () => import("./books/UAVTechIntro/view/index.vue")
   },
   data() {
     return {
@@ -169,6 +174,7 @@
       // aviationBasicSkills                    // 鍩烘湰鎶�鑳�
       // aviationSafety                         // 瀹夊叏妫�鏌ュ疄鍔�
       // aviationEtiquette                      // 绀间华鏈嶅姟
+      // botany                                 // 妞嶇墿瀛︼紙鍐滃ぇ绀撅級
       // childcareInstitutionsManagement        // 鎵樿偛鏈烘瀯绠$悊涓庡疄鍔�
       // toddlerGameImplementation              // 濠村辜鍎挎父鎴忔椿鍔ㄥ疄鏂�
       // preschoolGameGuidance                  // 瀛﹀墠娓告垙鎸囧
@@ -190,13 +196,14 @@
       // hydraulicTransmission                  // 鏈烘浼犲姩 锛堝搱宸ュぇ锛�
       // foodSensoryInspection                  // 椋熷搧鎰熷畼妫�楠屾妧鏈�
       // MMVRTCMP                               // 瑙嗚鎵嬪唽
+      // civilPassengerTransport                // 姘戣埅鏃呭杩愯緭
+      // UAVTechIntro                           // 鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�
       this.activeBook = await this.config.getBookConfig(
         process.env.VUE_APP_RESOURCE_CTX +
         (process.env.VUE_APP_ENV == "product"
           ? process.env.VUE_APP_BOOK_ID
-          : "toddlerGameImplementation")
+          : "UAVTechIntro")
       );
-
       // 娴嬭瘯璇曡30椤�
       // this.activeBook.tryPageCount = 10;
       // this.config.activeBook = this.activeBook;
diff --git a/src/assets/js/config.js b/src/assets/js/config.js
index 4a85c7b..49f7369 100644
--- a/src/assets/js/config.js
+++ b/src/assets/js/config.js
@@ -7,6 +7,12 @@
   return response.data;
 };
 
+// 璇锋眰鏁欐潗璧勬簮淇℃伅
+const getBookResources =  async (ctx) => {
+  const response = await axios.get(ctx + "/bookResources.json");
+  return response.data;
+};
+
 export const appId = 0;
 export const requestTimeOut = 300000; // 璇锋眰瓒呮椂鏃堕棿
 export const tokenKey = "token";
@@ -19,5 +25,6 @@
   goodsStore,
   appId,
   getBookConfig,
+  getBookResources,
 };
 export default config;
diff --git a/src/assets/methods/resources.js b/src/assets/methods/resources.js
index 7f245ad..57391ca 100644
--- a/src/assets/methods/resources.js
+++ b/src/assets/methods/resources.js
@@ -16,7 +16,6 @@
     md5,
     appRefCode,
   });
-  console.log("res", res);
   if (typeof res === "string" && res.includes("http")) {
     return res;
   } else if (typeof res === "object" && res.data != "") {
diff --git a/src/books/UAVTechIntro/assets/Fonts/FZSSK.TTF b/src/books/UAVTechIntro/assets/Fonts/FZSSK.TTF
new file mode 100644
index 0000000..d4f6b93
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/Fonts/FZSSK.TTF
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0007-01.jpg b/src/books/UAVTechIntro/assets/images/0007-01.jpg
new file mode 100644
index 0000000..4a75d52
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0007-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0008-01.jpg b/src/books/UAVTechIntro/assets/images/0008-01.jpg
new file mode 100644
index 0000000..426eae0
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0008-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0009-01.jpg b/src/books/UAVTechIntro/assets/images/0009-01.jpg
new file mode 100644
index 0000000..971239b
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0009-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0010-01.jpg b/src/books/UAVTechIntro/assets/images/0010-01.jpg
new file mode 100644
index 0000000..6bbac8f
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0010-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0011-01.jpg b/src/books/UAVTechIntro/assets/images/0011-01.jpg
new file mode 100644
index 0000000..4d8b6ae
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0011-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0013-01.jpg b/src/books/UAVTechIntro/assets/images/0013-01.jpg
new file mode 100644
index 0000000..992a523
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0013-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0013-02.jpg b/src/books/UAVTechIntro/assets/images/0013-02.jpg
new file mode 100644
index 0000000..c6f1325
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0013-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0013-03.jpg b/src/books/UAVTechIntro/assets/images/0013-03.jpg
new file mode 100644
index 0000000..ee4fe02
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0013-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0013-04.jpg b/src/books/UAVTechIntro/assets/images/0013-04.jpg
new file mode 100644
index 0000000..a3df2f3
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0013-04.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0014-04.jpg b/src/books/UAVTechIntro/assets/images/0014-04.jpg
new file mode 100644
index 0000000..738e7f1
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0014-04.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0014_02.jpg b/src/books/UAVTechIntro/assets/images/0014_02.jpg
new file mode 100644
index 0000000..3b64066
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0014_02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0014_03.jpg b/src/books/UAVTechIntro/assets/images/0014_03.jpg
new file mode 100644
index 0000000..e4f2094
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0014_03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0014_05.jpg b/src/books/UAVTechIntro/assets/images/0014_05.jpg
new file mode 100644
index 0000000..49e8d05
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0014_05.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0014_06.jpg b/src/books/UAVTechIntro/assets/images/0014_06.jpg
new file mode 100644
index 0000000..26e1d1c
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0014_06.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0015-01.jpg b/src/books/UAVTechIntro/assets/images/0015-01.jpg
new file mode 100644
index 0000000..e22760b
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0015-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0015-02.jpg b/src/books/UAVTechIntro/assets/images/0015-02.jpg
new file mode 100644
index 0000000..2e79161
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0015-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0016-01-01.png b/src/books/UAVTechIntro/assets/images/0016-01-01.png
new file mode 100644
index 0000000..3529913
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0016-01-01.png
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0016-01-02.png b/src/books/UAVTechIntro/assets/images/0016-01-02.png
new file mode 100644
index 0000000..3e985a7
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0016-01-02.png
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0016-01-03.png b/src/books/UAVTechIntro/assets/images/0016-01-03.png
new file mode 100644
index 0000000..dd902cd
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0016-01-03.png
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0016-01-04.png b/src/books/UAVTechIntro/assets/images/0016-01-04.png
new file mode 100644
index 0000000..121759a
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0016-01-04.png
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0016-01-05.png b/src/books/UAVTechIntro/assets/images/0016-01-05.png
new file mode 100644
index 0000000..0cfed0e
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0016-01-05.png
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0016-01.jpg b/src/books/UAVTechIntro/assets/images/0016-01.jpg
new file mode 100644
index 0000000..3250771
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0016-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0016-02.jpg b/src/books/UAVTechIntro/assets/images/0016-02.jpg
new file mode 100644
index 0000000..24c1706
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0016-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0017-01-01.png b/src/books/UAVTechIntro/assets/images/0017-01-01.png
new file mode 100644
index 0000000..2576162
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0017-01-01.png
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0017-01-02.png b/src/books/UAVTechIntro/assets/images/0017-01-02.png
new file mode 100644
index 0000000..1734b7a
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0017-01-02.png
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0017-01.jpg b/src/books/UAVTechIntro/assets/images/0017-01.jpg
new file mode 100644
index 0000000..7345ce0
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0017-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0017-02.jpg b/src/books/UAVTechIntro/assets/images/0017-02.jpg
new file mode 100644
index 0000000..9d24750
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0017-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0017_03.jpg b/src/books/UAVTechIntro/assets/images/0017_03.jpg
new file mode 100644
index 0000000..0471503
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0017_03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0018-01.jpg b/src/books/UAVTechIntro/assets/images/0018-01.jpg
new file mode 100644
index 0000000..e7a8324
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0018-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0018-02.jpg b/src/books/UAVTechIntro/assets/images/0018-02.jpg
new file mode 100644
index 0000000..fb72829
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0018-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0018-03.jpg b/src/books/UAVTechIntro/assets/images/0018-03.jpg
new file mode 100644
index 0000000..6164b46
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0018-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0019-01.jpg b/src/books/UAVTechIntro/assets/images/0019-01.jpg
new file mode 100644
index 0000000..e49ae12
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0019-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0019-03.jpg b/src/books/UAVTechIntro/assets/images/0019-03.jpg
new file mode 100644
index 0000000..ac62369
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0019-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0019_02.jpg b/src/books/UAVTechIntro/assets/images/0019_02.jpg
new file mode 100644
index 0000000..9937f46
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0019_02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0020-02.jpg b/src/books/UAVTechIntro/assets/images/0020-02.jpg
new file mode 100644
index 0000000..97b0df6
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0020-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0020_01.jpg b/src/books/UAVTechIntro/assets/images/0020_01.jpg
new file mode 100644
index 0000000..bd49eba
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0020_01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0026-01.jpg b/src/books/UAVTechIntro/assets/images/0026-01.jpg
new file mode 100644
index 0000000..06010b9
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0026-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0026-03.jpg b/src/books/UAVTechIntro/assets/images/0026-03.jpg
new file mode 100644
index 0000000..2f34f6d
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0026-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0026_02.jpg b/src/books/UAVTechIntro/assets/images/0026_02.jpg
new file mode 100644
index 0000000..eeb1623
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0026_02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0029-01.jpg b/src/books/UAVTechIntro/assets/images/0029-01.jpg
new file mode 100644
index 0000000..9332c11
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0029-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0029_02.jpg b/src/books/UAVTechIntro/assets/images/0029_02.jpg
new file mode 100644
index 0000000..20f3fcb
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0029_02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0030-01.jpg b/src/books/UAVTechIntro/assets/images/0030-01.jpg
new file mode 100644
index 0000000..56538d4
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0030-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0031-01.jpg b/src/books/UAVTechIntro/assets/images/0031-01.jpg
new file mode 100644
index 0000000..4910c56
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0031-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0031-02.jpg b/src/books/UAVTechIntro/assets/images/0031-02.jpg
new file mode 100644
index 0000000..866305e
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0031-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0032-01.jpg b/src/books/UAVTechIntro/assets/images/0032-01.jpg
new file mode 100644
index 0000000..2b2618d
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0032-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0032-02.jpg b/src/books/UAVTechIntro/assets/images/0032-02.jpg
new file mode 100644
index 0000000..2724902
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0032-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0033_01.jpg b/src/books/UAVTechIntro/assets/images/0033_01.jpg
new file mode 100644
index 0000000..5bf1826
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0033_01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0033_02.jpg b/src/books/UAVTechIntro/assets/images/0033_02.jpg
new file mode 100644
index 0000000..1776a1f
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0033_02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0033_03.jpg b/src/books/UAVTechIntro/assets/images/0033_03.jpg
new file mode 100644
index 0000000..708fc70
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0033_03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0036-01.jpg b/src/books/UAVTechIntro/assets/images/0036-01.jpg
new file mode 100644
index 0000000..4d59427
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0036-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0037-03.jpg b/src/books/UAVTechIntro/assets/images/0037-03.jpg
new file mode 100644
index 0000000..7c5d929
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0037-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0038-02.jpg b/src/books/UAVTechIntro/assets/images/0038-02.jpg
new file mode 100644
index 0000000..b90600b
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0038-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0038-03.jpg b/src/books/UAVTechIntro/assets/images/0038-03.jpg
new file mode 100644
index 0000000..8eb2529
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0038-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0038_01.jpg b/src/books/UAVTechIntro/assets/images/0038_01.jpg
new file mode 100644
index 0000000..49d8f04
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0038_01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0039-01.jpg b/src/books/UAVTechIntro/assets/images/0039-01.jpg
new file mode 100644
index 0000000..36c3863
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0039-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0039-02.jpg b/src/books/UAVTechIntro/assets/images/0039-02.jpg
new file mode 100644
index 0000000..c77815a
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0039-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0039-03.jpg b/src/books/UAVTechIntro/assets/images/0039-03.jpg
new file mode 100644
index 0000000..57129f4
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0039-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0040-01.jpg b/src/books/UAVTechIntro/assets/images/0040-01.jpg
new file mode 100644
index 0000000..376813a
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0040-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0040-02.jpg b/src/books/UAVTechIntro/assets/images/0040-02.jpg
new file mode 100644
index 0000000..6a355d6
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0040-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0041-01.jpg b/src/books/UAVTechIntro/assets/images/0041-01.jpg
new file mode 100644
index 0000000..bd65acd
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0041-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0041-02.jpg b/src/books/UAVTechIntro/assets/images/0041-02.jpg
new file mode 100644
index 0000000..9286e76
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0041-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0042-01.jpg b/src/books/UAVTechIntro/assets/images/0042-01.jpg
new file mode 100644
index 0000000..fd8f08e
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0042-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0046-01.jpg b/src/books/UAVTechIntro/assets/images/0046-01.jpg
new file mode 100644
index 0000000..dbed9b9
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0046-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0046-03.jpg b/src/books/UAVTechIntro/assets/images/0046-03.jpg
new file mode 100644
index 0000000..3bb099a
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0046-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0046_02.jpg b/src/books/UAVTechIntro/assets/images/0046_02.jpg
new file mode 100644
index 0000000..530e300
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0046_02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0050-01.jpg b/src/books/UAVTechIntro/assets/images/0050-01.jpg
new file mode 100644
index 0000000..7bac6e6
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0050-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0050-03.jpg b/src/books/UAVTechIntro/assets/images/0050-03.jpg
new file mode 100644
index 0000000..9813e91
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0050-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0050_02.jpg b/src/books/UAVTechIntro/assets/images/0050_02.jpg
new file mode 100644
index 0000000..895a594
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0050_02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0054-01.jpg b/src/books/UAVTechIntro/assets/images/0054-01.jpg
new file mode 100644
index 0000000..2743da7
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0054-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0055-01.jpg b/src/books/UAVTechIntro/assets/images/0055-01.jpg
new file mode 100644
index 0000000..f839cc2
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0055-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0055-02.jpg b/src/books/UAVTechIntro/assets/images/0055-02.jpg
new file mode 100644
index 0000000..8641eaa
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0055-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0057-01.jpg b/src/books/UAVTechIntro/assets/images/0057-01.jpg
new file mode 100644
index 0000000..6d89769
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0057-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0058-01.jpg b/src/books/UAVTechIntro/assets/images/0058-01.jpg
new file mode 100644
index 0000000..1d883d6
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0058-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0059-03.jpg b/src/books/UAVTechIntro/assets/images/0059-03.jpg
new file mode 100644
index 0000000..4c5fdd5
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0059-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0060-02.jpg b/src/books/UAVTechIntro/assets/images/0060-02.jpg
new file mode 100644
index 0000000..67146c8
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0060-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0060_01.jpg b/src/books/UAVTechIntro/assets/images/0060_01.jpg
new file mode 100644
index 0000000..0b195e8
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0060_01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0061-01.jpg b/src/books/UAVTechIntro/assets/images/0061-01.jpg
new file mode 100644
index 0000000..3ae480b
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0061-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0063-01.jpg b/src/books/UAVTechIntro/assets/images/0063-01.jpg
new file mode 100644
index 0000000..1f52c9f
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0063-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0063-02.jpg b/src/books/UAVTechIntro/assets/images/0063-02.jpg
new file mode 100644
index 0000000..b4495a3
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0063-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0065-01.jpg b/src/books/UAVTechIntro/assets/images/0065-01.jpg
new file mode 100644
index 0000000..ed6fb7b
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0065-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0066-01.jpg b/src/books/UAVTechIntro/assets/images/0066-01.jpg
new file mode 100644
index 0000000..641e04e
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0066-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0067-01.jpg b/src/books/UAVTechIntro/assets/images/0067-01.jpg
new file mode 100644
index 0000000..5269a46
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0067-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0071-01.jpg b/src/books/UAVTechIntro/assets/images/0071-01.jpg
new file mode 100644
index 0000000..1c830ec
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0071-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0071-03.jpg b/src/books/UAVTechIntro/assets/images/0071-03.jpg
new file mode 100644
index 0000000..74aa200
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0071-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0071_02.jpg b/src/books/UAVTechIntro/assets/images/0071_02.jpg
new file mode 100644
index 0000000..8813378
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0071_02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0072-01.jpg b/src/books/UAVTechIntro/assets/images/0072-01.jpg
new file mode 100644
index 0000000..01e8163
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0072-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0075-01.jpg b/src/books/UAVTechIntro/assets/images/0075-01.jpg
new file mode 100644
index 0000000..72fc0cf
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0075-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0076-01.jpg b/src/books/UAVTechIntro/assets/images/0076-01.jpg
new file mode 100644
index 0000000..5d8e2a4
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0076-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0076-03.jpg b/src/books/UAVTechIntro/assets/images/0076-03.jpg
new file mode 100644
index 0000000..ea44bc6
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0076-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0076_02.jpg b/src/books/UAVTechIntro/assets/images/0076_02.jpg
new file mode 100644
index 0000000..673a745
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0076_02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0077-01.jpg b/src/books/UAVTechIntro/assets/images/0077-01.jpg
new file mode 100644
index 0000000..8543118
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0077-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0077-02.jpg b/src/books/UAVTechIntro/assets/images/0077-02.jpg
new file mode 100644
index 0000000..181bb7a
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0077-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0078-01.jpg b/src/books/UAVTechIntro/assets/images/0078-01.jpg
new file mode 100644
index 0000000..649bd41
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0078-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0078-02.jpg b/src/books/UAVTechIntro/assets/images/0078-02.jpg
new file mode 100644
index 0000000..703a5b8
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0078-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0079-01.jpg b/src/books/UAVTechIntro/assets/images/0079-01.jpg
new file mode 100644
index 0000000..e05e7cf
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0079-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0079-02.jpg b/src/books/UAVTechIntro/assets/images/0079-02.jpg
new file mode 100644
index 0000000..3bafe78
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0079-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0080-01.jpg b/src/books/UAVTechIntro/assets/images/0080-01.jpg
new file mode 100644
index 0000000..1903053
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0080-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0080-02.jpg b/src/books/UAVTechIntro/assets/images/0080-02.jpg
new file mode 100644
index 0000000..0756a7e
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0080-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0080-03.jpg b/src/books/UAVTechIntro/assets/images/0080-03.jpg
new file mode 100644
index 0000000..9270dc0
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0080-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0081-01.jpg b/src/books/UAVTechIntro/assets/images/0081-01.jpg
new file mode 100644
index 0000000..c9dc6ea
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0081-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0082-03.jpg b/src/books/UAVTechIntro/assets/images/0082-03.jpg
new file mode 100644
index 0000000..0ccfaf4
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0082-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0083-02.jpg b/src/books/UAVTechIntro/assets/images/0083-02.jpg
new file mode 100644
index 0000000..51a4a5f
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0083-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0083_01.jpg b/src/books/UAVTechIntro/assets/images/0083_01.jpg
new file mode 100644
index 0000000..cb16657
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0083_01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0084-01.jpg b/src/books/UAVTechIntro/assets/images/0084-01.jpg
new file mode 100644
index 0000000..ffadfa7
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0084-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0084-02.jpg b/src/books/UAVTechIntro/assets/images/0084-02.jpg
new file mode 100644
index 0000000..be063e5
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0084-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0085-01.jpg b/src/books/UAVTechIntro/assets/images/0085-01.jpg
new file mode 100644
index 0000000..01ac062
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0085-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0085-02.jpg b/src/books/UAVTechIntro/assets/images/0085-02.jpg
new file mode 100644
index 0000000..0eda48e
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0085-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0085-03.jpg b/src/books/UAVTechIntro/assets/images/0085-03.jpg
new file mode 100644
index 0000000..f5d85f5
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0085-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0086-01.jpg b/src/books/UAVTechIntro/assets/images/0086-01.jpg
new file mode 100644
index 0000000..3f53509
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0086-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0089-01.jpg b/src/books/UAVTechIntro/assets/images/0089-01.jpg
new file mode 100644
index 0000000..94f3171
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0089-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0090-02.jpg b/src/books/UAVTechIntro/assets/images/0090-02.jpg
new file mode 100644
index 0000000..bd7157a
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0090-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0090_01.jpg b/src/books/UAVTechIntro/assets/images/0090_01.jpg
new file mode 100644
index 0000000..5555648
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0090_01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0091-01.jpg b/src/books/UAVTechIntro/assets/images/0091-01.jpg
new file mode 100644
index 0000000..898116d
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0091-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0091-02.jpg b/src/books/UAVTechIntro/assets/images/0091-02.jpg
new file mode 100644
index 0000000..6e3ebb1
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0091-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0092-01.jpg b/src/books/UAVTechIntro/assets/images/0092-01.jpg
new file mode 100644
index 0000000..5e7f85c
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0092-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0095-01.jpg b/src/books/UAVTechIntro/assets/images/0095-01.jpg
new file mode 100644
index 0000000..ff62a20
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0095-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0096-01.jpg b/src/books/UAVTechIntro/assets/images/0096-01.jpg
new file mode 100644
index 0000000..0a576de
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0096-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0096-03.jpg b/src/books/UAVTechIntro/assets/images/0096-03.jpg
new file mode 100644
index 0000000..48321ea
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0096-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0096_02.jpg b/src/books/UAVTechIntro/assets/images/0096_02.jpg
new file mode 100644
index 0000000..cdf6e1f
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0096_02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0097-01.jpg b/src/books/UAVTechIntro/assets/images/0097-01.jpg
new file mode 100644
index 0000000..6f82358
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0097-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0097-02.jpg b/src/books/UAVTechIntro/assets/images/0097-02.jpg
new file mode 100644
index 0000000..ca7d183
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0097-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0098-01.jpg b/src/books/UAVTechIntro/assets/images/0098-01.jpg
new file mode 100644
index 0000000..e055c6c
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0098-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0098-02.jpg b/src/books/UAVTechIntro/assets/images/0098-02.jpg
new file mode 100644
index 0000000..db63ca7
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0098-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0099-01.jpg b/src/books/UAVTechIntro/assets/images/0099-01.jpg
new file mode 100644
index 0000000..7081a78
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0099-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0099-02.jpg b/src/books/UAVTechIntro/assets/images/0099-02.jpg
new file mode 100644
index 0000000..949d88f
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0099-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0100-01.jpg b/src/books/UAVTechIntro/assets/images/0100-01.jpg
new file mode 100644
index 0000000..85222d4
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0100-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0100-02.jpg b/src/books/UAVTechIntro/assets/images/0100-02.jpg
new file mode 100644
index 0000000..f4ddc28
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0100-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0101-01.jpg b/src/books/UAVTechIntro/assets/images/0101-01.jpg
new file mode 100644
index 0000000..3cbfa47
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0101-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0101-02.jpg b/src/books/UAVTechIntro/assets/images/0101-02.jpg
new file mode 100644
index 0000000..57c2c5d
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0101-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0102-01.jpg b/src/books/UAVTechIntro/assets/images/0102-01.jpg
new file mode 100644
index 0000000..d5f683b
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0102-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0105-01.jpg b/src/books/UAVTechIntro/assets/images/0105-01.jpg
new file mode 100644
index 0000000..b744d31
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0105-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0105-02.jpg b/src/books/UAVTechIntro/assets/images/0105-02.jpg
new file mode 100644
index 0000000..5c66dc6
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0105-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0110-01.jpg b/src/books/UAVTechIntro/assets/images/0110-01.jpg
new file mode 100644
index 0000000..b5829c8
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0110-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0111-01.jpg b/src/books/UAVTechIntro/assets/images/0111-01.jpg
new file mode 100644
index 0000000..2244b63
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0111-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0112-03.jpg b/src/books/UAVTechIntro/assets/images/0112-03.jpg
new file mode 100644
index 0000000..68c11c7
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0112-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0113-02.jpg b/src/books/UAVTechIntro/assets/images/0113-02.jpg
new file mode 100644
index 0000000..c86133c
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0113-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0113_01.jpg b/src/books/UAVTechIntro/assets/images/0113_01.jpg
new file mode 100644
index 0000000..aedc488
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0113_01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0120-01.jpg b/src/books/UAVTechIntro/assets/images/0120-01.jpg
new file mode 100644
index 0000000..1547b4a
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0120-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0120-03.jpg b/src/books/UAVTechIntro/assets/images/0120-03.jpg
new file mode 100644
index 0000000..41e2a1e
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0120-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0120_02.jpg b/src/books/UAVTechIntro/assets/images/0120_02.jpg
new file mode 100644
index 0000000..f7cf3a2
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0120_02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0121-01.jpg b/src/books/UAVTechIntro/assets/images/0121-01.jpg
new file mode 100644
index 0000000..37ab545
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0121-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0122-01.jpg b/src/books/UAVTechIntro/assets/images/0122-01.jpg
new file mode 100644
index 0000000..090f2e5
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0122-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0123-01.jpg b/src/books/UAVTechIntro/assets/images/0123-01.jpg
new file mode 100644
index 0000000..115cb7f
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0123-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0124-01.jpg b/src/books/UAVTechIntro/assets/images/0124-01.jpg
new file mode 100644
index 0000000..6f7ceaa
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0124-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0126-01.jpg b/src/books/UAVTechIntro/assets/images/0126-01.jpg
new file mode 100644
index 0000000..2e504ab
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0126-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0127-02.jpg b/src/books/UAVTechIntro/assets/images/0127-02.jpg
new file mode 100644
index 0000000..9601672
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0127-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0127_01.jpg b/src/books/UAVTechIntro/assets/images/0127_01.jpg
new file mode 100644
index 0000000..c9a395e
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0127_01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0131-01.jpg b/src/books/UAVTechIntro/assets/images/0131-01.jpg
new file mode 100644
index 0000000..b74d2ca
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0131-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0132-03.jpg b/src/books/UAVTechIntro/assets/images/0132-03.jpg
new file mode 100644
index 0000000..afa566e
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0132-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0133-02.jpg b/src/books/UAVTechIntro/assets/images/0133-02.jpg
new file mode 100644
index 0000000..8ae2d9c
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0133-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0133_01.jpg b/src/books/UAVTechIntro/assets/images/0133_01.jpg
new file mode 100644
index 0000000..5a29849
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0133_01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0134-01.jpg b/src/books/UAVTechIntro/assets/images/0134-01.jpg
new file mode 100644
index 0000000..09742ae
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0134-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0135-01.jpg b/src/books/UAVTechIntro/assets/images/0135-01.jpg
new file mode 100644
index 0000000..09062ad
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0135-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0136-01.jpg b/src/books/UAVTechIntro/assets/images/0136-01.jpg
new file mode 100644
index 0000000..1db2f8c
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0136-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0136-02.jpg b/src/books/UAVTechIntro/assets/images/0136-02.jpg
new file mode 100644
index 0000000..41c09d0
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0136-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0137-01.jpg b/src/books/UAVTechIntro/assets/images/0137-01.jpg
new file mode 100644
index 0000000..b276569
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0137-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0137-02.jpg b/src/books/UAVTechIntro/assets/images/0137-02.jpg
new file mode 100644
index 0000000..c23be5b
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0137-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0138-01.jpg b/src/books/UAVTechIntro/assets/images/0138-01.jpg
new file mode 100644
index 0000000..d054221
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0138-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0141-01.jpg b/src/books/UAVTechIntro/assets/images/0141-01.jpg
new file mode 100644
index 0000000..51faee7
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0141-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0141-03.jpg b/src/books/UAVTechIntro/assets/images/0141-03.jpg
new file mode 100644
index 0000000..753af52
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0141-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0141_02.jpg b/src/books/UAVTechIntro/assets/images/0141_02.jpg
new file mode 100644
index 0000000..45a3558
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0141_02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0143-01.jpg b/src/books/UAVTechIntro/assets/images/0143-01.jpg
new file mode 100644
index 0000000..133794e
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0143-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0145-01.jpg b/src/books/UAVTechIntro/assets/images/0145-01.jpg
new file mode 100644
index 0000000..ae63a62
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0145-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0146-02.jpg b/src/books/UAVTechIntro/assets/images/0146-02.jpg
new file mode 100644
index 0000000..fe41423
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0146-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0146_01.jpg b/src/books/UAVTechIntro/assets/images/0146_01.jpg
new file mode 100644
index 0000000..d1efdc4
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0146_01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0147-01.jpg b/src/books/UAVTechIntro/assets/images/0147-01.jpg
new file mode 100644
index 0000000..f2c8319
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0147-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0147-02.jpg b/src/books/UAVTechIntro/assets/images/0147-02.jpg
new file mode 100644
index 0000000..e66471c
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0147-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0148-01.jpg b/src/books/UAVTechIntro/assets/images/0148-01.jpg
new file mode 100644
index 0000000..dbb716a
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0148-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0148-02.jpg b/src/books/UAVTechIntro/assets/images/0148-02.jpg
new file mode 100644
index 0000000..3df4050
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0148-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0151-01.jpg b/src/books/UAVTechIntro/assets/images/0151-01.jpg
new file mode 100644
index 0000000..10414ac
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0151-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0151-03.jpg b/src/books/UAVTechIntro/assets/images/0151-03.jpg
new file mode 100644
index 0000000..2062f40
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0151-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0151_02.jpg b/src/books/UAVTechIntro/assets/images/0151_02.jpg
new file mode 100644
index 0000000..13d4178
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0151_02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0153-01.jpg b/src/books/UAVTechIntro/assets/images/0153-01.jpg
new file mode 100644
index 0000000..af8752d
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0153-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0153-02.jpg b/src/books/UAVTechIntro/assets/images/0153-02.jpg
new file mode 100644
index 0000000..783bd6e
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0153-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0154-01.jpg b/src/books/UAVTechIntro/assets/images/0154-01.jpg
new file mode 100644
index 0000000..8d8fc7c
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0154-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0154-02.jpg b/src/books/UAVTechIntro/assets/images/0154-02.jpg
new file mode 100644
index 0000000..9a3f80a
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0154-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0155-01.jpg b/src/books/UAVTechIntro/assets/images/0155-01.jpg
new file mode 100644
index 0000000..7ffa6c5
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0155-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0155-02.jpg b/src/books/UAVTechIntro/assets/images/0155-02.jpg
new file mode 100644
index 0000000..640f083
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0155-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0157-01.jpg b/src/books/UAVTechIntro/assets/images/0157-01.jpg
new file mode 100644
index 0000000..1028298
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0157-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0158-01.jpg b/src/books/UAVTechIntro/assets/images/0158-01.jpg
new file mode 100644
index 0000000..ad8a56d
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0158-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0159-03.jpg b/src/books/UAVTechIntro/assets/images/0159-03.jpg
new file mode 100644
index 0000000..c8526a3
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0159-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0160-02.jpg b/src/books/UAVTechIntro/assets/images/0160-02.jpg
new file mode 100644
index 0000000..a5ae9cf
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0160-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0160_01.jpg b/src/books/UAVTechIntro/assets/images/0160_01.jpg
new file mode 100644
index 0000000..05bcf71
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0160_01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0161-01.jpg b/src/books/UAVTechIntro/assets/images/0161-01.jpg
new file mode 100644
index 0000000..254e258
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0161-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0162-01.jpg b/src/books/UAVTechIntro/assets/images/0162-01.jpg
new file mode 100644
index 0000000..badaab5
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0162-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0162-02.jpg b/src/books/UAVTechIntro/assets/images/0162-02.jpg
new file mode 100644
index 0000000..123d082
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0162-02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0163-01.jpg b/src/books/UAVTechIntro/assets/images/0163-01.jpg
new file mode 100644
index 0000000..3c7da81
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0163-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0168-01.jpg b/src/books/UAVTechIntro/assets/images/0168-01.jpg
new file mode 100644
index 0000000..069aaf8
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0168-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0168-03.jpg b/src/books/UAVTechIntro/assets/images/0168-03.jpg
new file mode 100644
index 0000000..acbc9c4
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0168-03.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0168_02.jpg b/src/books/UAVTechIntro/assets/images/0168_02.jpg
new file mode 100644
index 0000000..6d38b92
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0168_02.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0175-01.jpg b/src/books/UAVTechIntro/assets/images/0175-01.jpg
new file mode 100644
index 0000000..248b234
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0175-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/0176-01.jpg b/src/books/UAVTechIntro/assets/images/0176-01.jpg
new file mode 100644
index 0000000..821f16d
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/0176-01.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/Cover.jpg b/src/books/UAVTechIntro/assets/images/Cover.jpg
new file mode 100644
index 0000000..61b74c8
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/Cover.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/a1.jpg b/src/books/UAVTechIntro/assets/images/a1.jpg
new file mode 100644
index 0000000..d06996c
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/a1.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/a2.jpg b/src/books/UAVTechIntro/assets/images/a2.jpg
new file mode 100644
index 0000000..fd41c8f
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/a2.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/a3.jpg b/src/books/UAVTechIntro/assets/images/a3.jpg
new file mode 100644
index 0000000..909b90c
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/a3.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/feiye.jpg b/src/books/UAVTechIntro/assets/images/feiye.jpg
new file mode 100644
index 0000000..22d0e7f
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/feiye.jpg
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/icon/heart-check.png b/src/books/UAVTechIntro/assets/images/icon/heart-check.png
new file mode 100644
index 0000000..74d469c
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/icon/heart-check.png
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/icon/heart.png b/src/books/UAVTechIntro/assets/images/icon/heart.png
new file mode 100644
index 0000000..7817ec4
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/icon/heart.png
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/tb.png b/src/books/UAVTechIntro/assets/images/tb.png
new file mode 100644
index 0000000..10b18c4
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/tb.png
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/yemei.png b/src/books/UAVTechIntro/assets/images/yemei.png
new file mode 100644
index 0000000..0160f7d
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/yemei.png
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/yemei01.png b/src/books/UAVTechIntro/assets/images/yemei01.png
new file mode 100644
index 0000000..d85e5eb
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/yemei01.png
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/images/yemei02.png b/src/books/UAVTechIntro/assets/images/yemei02.png
new file mode 100644
index 0000000..14ea0ea
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/images/yemei02.png
Binary files differ
diff --git a/src/books/UAVTechIntro/assets/main.less b/src/books/UAVTechIntro/assets/main.less
new file mode 100644
index 0000000..639e6e3
--- /dev/null
+++ b/src/books/UAVTechIntro/assets/main.less
@@ -0,0 +1,2311 @@
+.UAVTechIntro-book {
+    width: 100%;
+    height: 100%;
+
+    // 鑷畾涔夊唴瀹�
+    .page-box {
+        box-sizing: border-box;
+        min-height: 1128px;
+        margin-bottom: 20px;
+        box-shadow: 0 3px 6px 1px #00000029;
+        background-color: #fff;
+    }
+
+    .foreword {
+        font-family: 'FZLTZHJW';
+        font-weight: 300;
+        font-size: 1.4em;
+        color: #6E85AF;
+        margin-top: 0;
+        margin-bottom: 0;
+        text-indent: 0em;
+        line-height: 30px;
+    }
+
+    .topBorder {
+        width: 120px;
+        border-top: 1px solid #6E85AF;
+        border-bottom: 1px solid #6E85AF;
+        height: 2px;
+    }
+
+    .bottomBorder {
+        width: 220px;
+        border-top: 1px solid #6E85AF;
+        border-bottom: 1px solid #6E85AF;
+        height: 2px;
+    }
+
+    input[type="radio"] {
+        accent-color: #6E85AF !important;
+        cursor: pointer;
+    }
+
+    input[type="checkbox"] {
+        accent-color: #6E85AF !important;
+        cursor: pointer;
+    }
+
+
+    .wh-no {
+        white-space: nowrap;
+    }
+
+    .c-g {
+        color: green;
+    }
+
+    .c-r {
+        color: red;
+    }
+
+    .t-right {
+        text-align: right;
+    }
+
+    .mr-0 {
+        margin: 0;
+    }
+
+    .mt-10 {
+        margin-top: 10px !important;
+    }
+
+    .mt-20 {
+        margin-top: 20px !important;
+    }
+
+    .table-pad {
+        padding: 1em 0.8em !important;
+    }
+
+
+    .mt-30 {
+        margin-top: 30px;
+    }
+
+    .mb-30 {
+        margin-bottom: 30px !important;
+    }
+
+    .ml-35 {
+        margin-left: 35px;
+    }
+
+    .ma-l {
+        margin-left: 8%;
+    }
+
+    .ma-0 {
+        margin: 0% !important;
+    }
+
+    .pd-5 {
+        padding: 0 5px;
+    }
+
+    .w100 {
+        width: 100%;
+    }
+
+    .w80 {
+        width: 80%;
+    }
+
+    .w70 {
+        width: 70%;
+    }
+
+    .w25 {
+        width: 25%;
+    }
+
+    .w20 {
+        width: 20%;
+    }
+
+
+    .fz-11 {
+        font-size: 11px !important;
+    }
+
+    .fz-13 {
+        font-size: 13px !important;
+    }
+
+    .fz-14 {
+        font-size: 14px !important;
+    }
+
+    .fz-15 {
+        font-size: 15px !important;
+    }
+
+    .fz-16 {
+        font-size: 16px !important;
+    }
+
+    .fz-18 {
+        font-size: 18px !important;
+    }
+
+    .fz-20 {
+        font-size: 20px;
+    }
+
+    .pt-20 {
+        padding-top: 20px;
+    }
+
+    .td-0 {
+        text-indent: 0em !important;
+    }
+
+    .c-p {
+        cursor: pointer;
+    }
+
+    .fl {
+        display: flex;
+    }
+
+    .ju-cn {
+        justify-content: center;
+    }
+
+    .ju-ev {
+        justify-content: space-evenly;
+    }
+
+    .jc-sb {
+        justify-content: space-between;
+    }
+
+    .jc-fs {
+        justify-content: flex-start;
+    }
+
+    .fw-w {
+        flex-wrap: wrap;
+    }
+
+    .fd-c {
+        flex-direction: column;
+    }
+
+    .fd-r {
+        flex-direction: row-reverse;
+    }
+
+    .al-c {
+        align-items: center;
+    }
+
+    .h-25 {
+        height: 25.59px;
+    }
+
+    .al-fe {
+        align-items: flex-end;
+    }
+
+    .ac-f {
+        align-content: flex-end;
+    }
+
+    .jc-fe {
+        justify-content: flex-end;
+    }
+
+    .jc-c {
+        justify-content: center;
+    }
+
+    .jc-sa {
+        justify-content: space-around
+    }
+
+    .mr-70 {
+        margin-right: 70px;
+    }
+
+    .mr-10 {
+        margin-right: 10px;
+    }
+
+    .pad-t-55 {
+        padding-top: 55px;
+    }
+
+    .ma-t-30 {
+        margin-top: 30px;
+    }
+
+    .ma-t-20 {
+        margin-top: 20px;
+    }
+
+    .pad-l-60 {
+        padding-left: 60px;
+    }
+
+    .pad-l-80 {
+        padding-left: 80px;
+    }
+
+    .pad-r-80 {
+        padding-right: 80px;
+    }
+
+    .mb-45 {
+        margin-bottom: 45px;
+    }
+
+    .mb-20 {
+        margin-bottom: 20px !important;
+    }
+
+    .mb-10 {
+        margin-bottom: 10px !important;
+    }
+
+    .pNum {
+        font-size: 18px !important;
+        font-style: italic;
+        font-family: "kaiti";
+        padding-top: 2px !important;
+        padding-bottom: 2px !important;
+    }
+
+    .p-Num {
+        background-color: #92B0D5;
+        color: #fff;
+        height: 100%;
+        padding-right: 8px;
+        font-size: 18px;
+        font-style: italic;
+        font-family: "kaiti";
+        display: flex;
+        align-items: center;
+    }
+
+    /*琛屽唴鍥�*/
+    .h-pic {
+        height: 1.6em;
+        vertical-align: middle;
+    }
+
+
+
+    .cloud {
+        padding: 0px 8px 0 0 !important;
+    }
+
+    .headerImg {
+        width: 30px;
+    }
+
+    .headerText {
+        font-size: 12px;
+        padding: 0 8px;
+        color: #B1BEDE;
+    }
+
+    .headerNumber {
+        color: #231F20;
+        font-size: 12px;
+        padding: 0 8px;
+        border-left: 1px solid #231F20;
+    }
+
+    .header-left-Number {
+        color: #728DC0;
+        font-size: 14px;
+        padding-right: 8px;
+
+        .span-box-title {
+            margin: 0 5px;
+            display: inline-block;
+            width: 8px;
+            height: 8px;
+            background-color: #728DC0;
+        }
+    }
+
+    .header-left-text {
+        margin-left: 8px;
+        font-size: 12px;
+        text-align: right;
+    }
+
+    .header-right-Box {
+        color: #728DC0;
+        font-size: 14px;
+        padding-right: 8px;
+
+    }
+
+    .header-right-Number {
+        background-color: #92B0D5;
+        color: #fff;
+        font-size: 14px;
+        padding: 3px 0;
+        padding-right: 8px;
+        display: flex;
+        align-items: center;
+
+        img {
+            height: 26px;
+        }
+    }
+
+    .header-right-title {
+        padding-left: 20px;
+        border-radius: 10px 0px 0px 10px;
+    }
+
+    .header-right-last {
+        height: 100%;
+        font-size: 18px;
+        background-color: #B799B6;
+        padding-left: 20px;
+    }
+
+    .header-right-end {
+        height: 100%;
+        font-size: 18px;
+        background-color: #738DC0;
+        padding-left: 50px;
+    }
+
+
+    table {
+        border-color: none !important;
+    }
+
+    .table-th-bc {
+        background-color: #8898c7;
+        color: #fff;
+        text-align: center;
+        text-wrap: nowrap;
+
+
+        th {
+            font-weight: 400;
+            font-family: "鏂规瀹嬩綋";
+        }
+    }
+
+    td {
+        padding: 3px;
+        line-height: 20px;
+    }
+
+    .table-tr-bc {
+        background-color: #ede8f1;
+        color: #000;
+        font-family: "鏂规浠垮畫";
+    }
+
+    .table-tr-bc-one {
+        background-color: #c7d0e6;
+        color: #000;
+        font-family: "鏂规浠垮畫";
+    }
+
+    .table-textarea {
+        background-color: transparent;
+        border: none;
+        font-size: 14px;
+        width: 40px;
+        font-family: "Times New Roman", "瀹嬩綋";
+        resize: none;
+
+        &:focus {
+            outline: none;
+        }
+    }
+
+    .textarea-box {
+        width: 88%;
+        margin-left: 2em;
+        overflow: auto;
+        word-break: break-all;
+        resize: none;
+        border: 1px solid #738DC0;
+        border-radius: 5px;
+        background-color: rgba(255, 255, 255, 0);
+    }
+
+    .input-box {
+        border: none;
+        border-bottom: 1px solid #333;
+        background-color: rgba(255, 255, 255, 0);
+        outline: none;
+    }
+
+
+    .b0 {
+        border: 0;
+    }
+
+    .task {
+        width: 16%;
+        margin-bottom: 5em;
+        margin-top: 0;
+        border-top: 0.7em solid #5192C6;
+    }
+
+    .task2 {
+        width: 16%;
+        margin-bottom: 5em;
+        margin-top: 0;
+        border-top: 0.7em solid #F89C1C;
+    }
+
+    .task3 {
+        width: 16%;
+        margin-bottom: 5em;
+        margin-top: 0;
+        border-top: 0.7em solid #448D9C;
+    }
+
+    .task4 {
+        width: 16%;
+        margin-bottom: 5em;
+        margin-top: 0;
+        border-top: 0.7em solid #9EAA60;
+    }
+
+    .p-odd {
+        padding-right: 1%;
+    }
+
+    .p-even {
+        padding-left: 1%;
+    }
+
+    .p-continued {
+        text-align: right;
+        font-size: 14px;
+        margin-bottom: 10px;
+    }
+
+    .img-float {
+        width: 310px;
+        float: left;
+        height: auto;
+        margin: auto;
+        margin-right: 20px;
+
+        img {
+            width: 100%;
+        }
+
+        p {
+            margin: 0;
+        }
+    }
+
+    .img-rights {
+        width: 310px;
+        float: right;
+        height: auto;
+        margin: auto;
+        margin-left: 20px;
+
+        img {
+            width: 100%;
+        }
+
+        p {
+            margin: 0 !important;
+        }
+    }
+
+    .w430 {
+        width: 430px;
+    }
+
+    .w395 {
+        width: 395px;
+    }
+
+    .w350 {
+        width: 350px;
+    }
+
+    .w290 {
+        width: 290px;
+    }
+
+    .w280 {
+        width: 280px;
+    }
+
+    .w275 {
+        width: 275px;
+    }
+
+    .w270 {
+        width: 270px;
+    }
+
+    .w250 {
+        width: 250px;
+    }
+
+    .w230 {
+        width: 230px;
+    }
+
+    .w220 {
+        width: 220px;
+    }
+
+    .w200 {
+        width: 200px;
+    }
+
+    .w180 {
+        width: 180px;
+    }
+
+    .w150 {
+        width: 150px;
+    }
+
+    .w115 {
+        width: 115px;
+    }
+
+    .pdf-text {
+        display: flex;
+        flex-direction: column;
+        justify-content: space-between;
+        align-items: flex-start;
+        margin-bottom: 20px;
+
+        p {
+            margin: 0;
+            margin-right: 10px;
+        }
+
+        .pdf-con {
+            display: flex;
+            justify-content: flex-start;
+            align-items: center;
+            padding: 10px 0;
+            box-sizing: border-box;
+            border-radius: 10px;
+
+            .pdf-view {
+                min-width: 160px;
+                display: flex;
+                justify-content: center;
+                align-items: center;
+                border: 0.15em dashed #895B2E;
+                margin-right: 15px;
+                padding: 0 15px;
+                border-radius: 5px;
+                margin-top: 15px;
+
+                span {
+                    font-size: 14px;
+                    text-align: center;
+                    font-family: 'FZLTXIHJW';
+                    display: flex;
+                    align-items: center;
+                    justify-content: flex-start;
+
+                    svg {
+                        fill: #895B2E;
+                    }
+                }
+
+                span:nth-child(2) {
+                    padding-top: 5px;
+                    box-sizing: border-box;
+                }
+
+                span:hover {
+                    color: #895B2E;
+                    cursor: pointer;
+                    text-decoration: underline;
+                    -webkit-user-select: none;
+                    /* Safari 3.1+ */
+                    -moz-user-select: none;
+                    /* Firefox 2+ */
+                    -ms-user-select: none;
+                    /* IE 10+ */
+                    user-select: none;
+                    /* 鏍囧噯璇硶 */
+                }
+            }
+        }
+
+        .pdf-con-15 {
+            margin-top: -20px;
+        }
+    }
+
+    div.bk-ztgs {
+        border: 0.15em dotted #5192c6;
+        padding: 0.5em;
+        margin-bottom: 2em;
+        margin-top: 2em;
+        border-radius: 1em;
+        position: relative;
+    }
+
+    p.bj1-ztgs {
+        background-color: #5192c6;
+        color: #ffffff;
+        display: inline-block;
+        font-size: 1em;
+        padding: 0.1em 0.7em 0.12em 0.7em;
+        font-weight: bold;
+        border-radius: 0em;
+        margin-left: 0em;
+        text-align: center;
+        text-indent: 0em;
+        position: absolute;
+        top: -2em;
+    }
+
+
+    .link-float {
+        width: 150px;
+        float: left;
+        height: auto;
+        margin: auto;
+        margin-right: 20px;
+    }
+
+    .imgBox-003 {
+        width: 100%;
+        height: 280px;
+        margin-bottom: 18px;
+    }
+
+
+    .imgBox {
+        display: flex !important;
+        flex-direction: column-reverse !important;
+        position: relative !important;
+
+        .img {
+            margin: 0 !important;
+            font-size: 14px !important;
+            position: absolute !important;
+            left: 50% !important;
+            transform: translateX(-50%);
+            bottom: -2% !important;
+        }
+
+        img {
+            height: 80%;
+        }
+    }
+
+    // 棰樼洰
+
+    .textarea-main {
+        background-color: transparent;
+        max-width: 95%;
+        min-width: 95%;
+        outline: none;
+    }
+
+    .textarea-focused {
+        border-color: #5192c6 !important;
+        box-shadow: #5192c6 !important;
+    }
+
+    .select-border {
+        width: 60px;
+        border: 0;
+        border-bottom: 1px solid #767676;
+
+        &:focus {
+            outline: none;
+        }
+    }
+
+    .btn-border {
+        border-radius: 6px;
+        border-color: #5192C6;
+    }
+
+    .btn-w {
+        cursor: pointer;
+        font-size: 14px;
+        border-width: 1px;
+        width: 80px;
+        height: 30px;
+        background-color: #fff;
+
+        &:hover {
+            background-color: #5192C6;
+            color: #fff;
+        }
+    }
+
+    .parimary-btn {
+        cursor: pointer;
+        min-width: 80px;
+        height: 30px;
+        font-size: 14px;
+        margin-left: 5px;
+        background-color: #5192C6;
+        border-color: #5192C6;
+        border-width: 1px;
+        color: #fff;
+        border-radius: 6px;
+
+        &:hover {
+            background-color: #a1afc8;
+            border-color: #a1afc8;
+        }
+    }
+
+    .event-header-text-bc {
+        background-color: #DED5E8;
+    }
+
+    //瑙嗛  
+    .video-box-cover {
+        border: 1px dashed #6E85AF;
+        padding: 2% 2%;
+    }
+
+    .video-box {
+        margin: 20px 0 20px 0;
+        border: 1px dashed #6E85AF;
+        padding: 2% 2%;
+    }
+
+    .video-box-left {
+        margin: 20px 8% 20px 0;
+        border: 1px dashed #6E85AF;
+        padding: 2% 2%;
+    }
+
+    .videoname {
+        display: flex;
+        justify-content: center;
+    }
+
+    .collect-btn {
+        cursor: pointer;
+        width: 20px;
+        height: 20px;
+        margin-left: 10px;
+        margin-top: 0.8%;
+    }
+
+    .collect-btn1 {
+        cursor: pointer;
+        width: 10px;
+        height: 10px;
+        margin-left: 10px;
+        margin-top: 0.8%;
+    }
+
+    .unitImg {
+        position: relative;
+        z-index: 1;
+    }
+
+    .unitBox {
+        z-index: 99;
+        position: absolute;
+        top: -5px;
+        left: 40px;
+    }
+
+    .unit2Box {
+        z-index: 99;
+        position: absolute;
+        top: -200px;
+        left: 40px;
+    }
+
+    .unitGraphic {
+        display: inline-block;
+        width: 10px;
+        height: 10px;
+        background-color: #5192C6;
+        border-radius: 50%;
+        margin-right: 15px;
+    }
+
+    .unit2Graphic {
+        display: inline-block;
+        width: 10px;
+        height: 10px;
+        background-color: #F89C1C;
+        border-radius: 50%;
+        margin-right: 15px;
+    }
+
+    .unit3Graphic {
+        display: inline-block;
+        width: 10px;
+        height: 10px;
+        background-color: #448D9C;
+        border-radius: 50%;
+        margin-right: 15px;
+    }
+
+    .unit4Graphic {
+        display: inline-block;
+        width: 10px;
+        height: 10px;
+        background-color: #9EAA60;
+        border-radius: 50%;
+        margin-right: 15px;
+    }
+
+
+    .unitText {
+        color: #5192C6;
+        font-size: 18px;
+    }
+
+    .unit2Text {
+        color: #F89C1C;
+        font-size: 16px;
+    }
+
+    .unit3Text {
+        color: #448D9C;
+        font-size: 16px;
+    }
+
+    .unit4Text {
+        color: #9EAA60;
+        font-size: 16px;
+    }
+
+
+
+    //杩佺Щ
+    ul {
+        list-style-type: none;
+    }
+
+    li {
+        list-style-type: none;
+    }
+
+    .custom_tag2 {
+        background-color: #F1BE49;
+        color: #FFFFFF;
+        display: inline-block;
+        padding: 0.5px;
+        border-radius: 1.5em;
+        font-size: 1.1em;
+        padding: 2px 10px 2px 10px;
+        font-weight: bold;
+        margin: 0;
+        text-indent: 0em;
+        margin-bottom: 0.5em;
+    }
+
+    .custom_tag1 {
+        background-color: #35ACD6;
+        color: #FFFFFF;
+        display: inline-block;
+        padding: 1px;
+        font-size: 1.1em;
+        padding: 3px 10px 3px 10px;
+        font-weight: bold;
+        box-shadow: 15px 0px 0px 0px #F5D83E, -15px 0px 0px 0px #F5D83E;
+        margin: 0;
+        text-indent: 0em;
+        margin-bottom: 0.5em;
+    }
+
+    .custom_tag {
+        background-color: #35509F;
+        color: #FFFFFF;
+        display: inline-block;
+        padding: 1px;
+        border-radius: 1.5em;
+        font-size: 1.1em;
+        padding: 10px 20px 10px 20px;
+        font-weight: bold;
+        box-shadow: 30px 0px 0px 0px #F5D83E;
+        margin: 0;
+        text-indent: 0em;
+        margin-bottom: 0.5em;
+    }
+
+
+    span.under1 {
+        border-bottom: 2px solid #F0BD4A;
+        border-width: 2px;
+
+    }
+
+    div.bodycontent-div-center {
+        font-family: "DK-HEITI", "鏂规鍏颁涵榛戠畝浣�", "榛戜綋";
+        margin: 1em 1em 1em 1em;
+        font-weight: normal;
+        border-width: 1.5px;
+        border-color: #dfb27d;
+        padding: 1em;
+    }
+
+    img.bodycontent-divcenter-image {
+        float: center;
+        clear: both;
+        height: 140px;
+        margin: 15px;
+    }
+
+    .module_block {
+        display: flex;
+        font-size: 1.1em;
+        position: relative;
+        padding-left: 90px;
+        justify-content: center;
+        align-items: center;
+        margin-right: 91px;
+    }
+
+    .module_block .custom1 {
+        background-color: #9ACC77;
+        padding: 10px 20px;
+        color: #FFFFFF;
+        /* position: absolute; */
+        /* left:0; */
+        /* top: 50%; */
+        border-radius: 0.5em 0em 0em 0.5em;
+        /* transform: translateY(-50%); */
+    }
+
+    .module_block .custom2 {
+        background-color: #E9F3E0;
+        padding: 10px 20px;
+        color: #75A64E;
+        font-weight: bold;
+        border-radius: 0em 0.5em 0.5em 0em;
+    }
+
+
+
+    div.bodycontent-div-left1 {
+        font-family: "DK-HEITI", "鏂规鍏颁涵榛戠畝浣�", "榛戜綋";
+        margin: 1em 1em 1em 1em;
+        font-weight: normal;
+        border-width: 1.5px;
+        border-color: #dfb27d;
+        padding: 1em;
+        background-color: #F0F8FF;
+    }
+
+    div.bodycontent-div-left {
+        font-family: "DK-HEITI", "鏂规鍏颁涵榛戠畝浣�", "榛戜綋";
+        margin: 1em 1em 1em 1em;
+        font-weight: normal;
+        border-width: 1.5px;
+        border-color: #dfb27d;
+        padding: 1em;
+    }
+
+    img.bodycontent-divright-image {
+        float: right;
+        clear: both;
+        height: 140px;
+        margin: 15px;
+    }
+
+    img.bodycontent-divleft-image {
+        float: left;
+        clear: both;
+        height: 110px;
+        margin: 15px;
+    }
+
+    .bodystyle {
+        text-align: justify;
+        margin: 0 12%;
+        padding-bottom: 80px;
+        line-height: 30px;
+    }
+
+    span.zt-0 {
+        color: #0087AF;
+    }
+
+    p.pzt-0 {
+        color: #0087AF;
+        font-size: 18px;
+    }
+
+    p.pzt-0-right {
+        font-size: 18px;
+        color: #0087AF;
+        text-align: right;
+    }
+
+    p.pzt-1 {
+        font-weight: bold;
+        color: #0087AF;
+        font-size: 18px;
+    }
+
+    div.sgc-toc-title {
+        font-size: 2em;
+        font-weight: bold;
+        margin-bottom: 1em;
+        text-align: center;
+    }
+
+    div.sgc-toc-level-1 {
+        margin-left: 0em;
+    }
+
+    div.sgc-toc-level-2 {
+        margin-left: 2em;
+    }
+
+    div.sgc-toc-level-3 {
+        margin-left: 2em;
+    }
+
+    div.sgc-toc-level-4 {
+        margin-left: 2em;
+    }
+
+    div.sgc-toc-level-5 {
+        margin-left: 2em;
+    }
+
+    div.sgc-toc-level-6 {
+        margin-left: 2em;
+    }
+
+    .imz {
+        width: 100%;
+        text-align: center;
+
+
+    }
+
+    .note {
+        font-size: 0.85em;
+    }
+
+
+    .block {
+        font-family: "FangSong";
+        margin-top: 0.2em;
+        margin-bottom: 0.2em !important;
+        text-indent: 2em;
+        line-height: 30px;
+        font-size: 17px;
+        text-align: justify;
+    }
+
+    .block1 {
+        text-align: center;
+    }
+
+    .block2 {
+        line-height: 25px;
+    }
+
+    .block3 {
+        line-height: 20px;
+    }
+
+
+    .img {
+        font-weight: 400;
+        font-family: 'FZLTXIHJW';
+        text-align: center;
+        font-size: 0.7em;
+        margin-left: 0%;
+        margin-right: 0%;
+        text-indent: 0em;
+    }
+
+    .img1 {
+        font-family: 'FZLTXIHJW';
+        text-align: right;
+        font-size: 0.85em;
+        margin-left: 0%;
+        margin-right: 2em;
+        text-indent: 0em;
+    }
+
+
+    p {
+        font-family: "鏂规瀹嬩綋";
+        margin-top: 0.2em;
+        margin-bottom: 0.2em !important;
+        text-indent: 2em;
+        line-height: 30px;
+        text-align: justify;
+    }
+
+    .t-al {
+        text-align-last: justify;
+    }
+
+
+    .cover {
+        width: 100%;
+        padding: 0px;
+    }
+
+    .center {
+        text-align: center;
+        margin-left: 0%;
+        margin-right: 0%;
+        text-indent: 0em;
+    }
+
+    .center-ss {
+        text-align: center;
+        color: #EF8472;
+        font-weight: bold;
+        margin-left: 0%;
+        margin-right: 0%;
+        text-indent: 0em;
+    }
+
+    .left {
+        text-indent: 0em;
+        margin: 0 !important;
+        line-height: 20px;
+    }
+
+    .left2 {
+        font-size: 1.3em;
+        text-indent: 0em;
+        font-weight: bold;
+        margin-left: 0%;
+        margin-right: 0%;
+    }
+
+    .left3 {
+        margin: 0 !important;
+        line-height: 20px;
+    }
+
+    .right {
+        text-align: right;
+        margin-left: 0%;
+        margin-right: 0%;
+    }
+
+    .left1 {
+        text-indent: 0em;
+        margin-left: 0%;
+        margin-right: 0%;
+    }
+
+    .center1 {
+        text-align: center;
+        margin-left: 0%;
+        margin-right: 0%;
+        font-size: 1.2em;
+        text-indent: 0em;
+        font-weight: bold;
+    }
+
+    .right1 {
+        text-align: right;
+        margin-left: 0%;
+        margin-right: 0%;
+    }
+
+    .quote {
+        margin-top: 0%;
+        margin-bottom: 0%;
+        margin-left: 1em;
+        margin-right: 1em;
+        text-align: justify;
+        font-family: "cnepub", serif;
+    }
+
+    h1 {
+        font-family: 'FZLTZHJW';
+        line-height: 2em;
+        font-weight: bold;
+        color: #FFFFFF;
+        font-size: 2em;
+        margin-bottom: 1em;
+        margin-top: 1em;
+    }
+
+    .h1-bj {
+        background-color: #6E85AF;
+        padding: 0.3em 0.5em 0.3em 0.5em;
+        margin-left: -0.2em;
+
+    }
+
+    .h1-bk {
+        box-shadow: inset 0em 0.1em 0em 0em #C3C2C0;
+        border-top-style: solid;
+        border-right-style: solid;
+        border-bottom-style: solid;
+        border-left-style: none;
+        padding: 0.1em 0.8em 0.1em 0.5em;
+        font-weight: bold;
+        color: #000000;
+        margin-bottom: 1em;
+        margin-top: 1em;
+
+    }
+
+    h1.jz {
+        text-align: center;
+        text-indent: 0em;
+    }
+
+
+
+    .front {
+        font-family: 'FZLTZHJW';
+        font-weight: 400;
+        font-size: 1.1em;
+        color: #000;
+        margin-top: 1.5em;
+        margin-bottom: 3em;
+        text-indent: 0em;
+        text-align: center;
+    }
+
+    h2 {
+        font-family: 'FZLTZHJW';
+        color: #6A80B9;
+        font-weight: 400;
+        text-align: left;
+        font-size: 25px;
+        margin-top: 2em;
+        margin-bottom: 1.5em;
+        margin-left: 2.5em;
+    }
+
+    h3 {
+        font-family: 'FZLTZHJW';
+        font-weight: 100;
+        text-align: left;
+        font-size: 1em;
+        color: #EEAF68;
+        margin-top: 2em;
+        margin-bottom: 1.5em;
+        text-indent: 0em;
+        margin-left: 0em;
+    }
+
+    h4 {
+        font-family: 'FZHTJW';
+        color: #697DB8;
+        font-weight: 100;
+        margin-bottom: 0.5em;
+        margin-top: 1em;
+        font-size: 1.1em;
+        text-indent: 0em;
+    }
+
+    h5 {
+        font-family: 'FZHTJW';
+        color: #EEAF68;
+        margin-bottom: 0.5em;
+        margin-top: 1em;
+        font-size: 1.05em;
+        text-indent: 2em;
+        font-weight: 100;
+    }
+
+    h6 {
+        font-weight: 100;
+        font-family: "妤蜂綋";
+        color: #000000;
+        margin-bottom: 0.2em;
+        margin-top: 0.2em;
+        font-size: 1.15em;
+        text-indent: 2em;
+    }
+
+    .zt-h6 {
+
+        font-family: 'FZHTJW';
+        color: #65C097;
+        margin-bottom: 0.5em;
+        margin-top: 1em;
+        font-size: 1.15em;
+        text-indent: 2em;
+    }
+
+    .bb {
+
+        font-family: "cnepub", serif;
+        font-family: 'FZHTJW';
+        color: #66CCCC;
+        font-size: 1.1em;
+        margin-top: 10px;
+        text-indent: 2em;
+        margin-bottom: 10px;
+        border-bottom: 5px dotted #F4C388;
+        margin-left: 2em;
+        margin-bottom: 0.5em;
+        text-indent: 0em;
+    }
+
+    .u {
+
+        text-decoration: underline;
+    }
+
+    .img-0 {
+        width: 100%;
+    }
+
+    .img-a {
+        width: 95%;
+    }
+
+    .img-b {
+        width: 70%;
+    }
+
+    .img-c {
+        width: 60%;
+    }
+
+    .img-d {
+        width: 50%;
+    }
+
+    .img-e {
+        width: 45%;
+    }
+
+    .img-f {
+        width: 40%;
+    }
+
+    .img-g {
+        width: 30%;
+    }
+
+    .img-h {
+        width: 20%;
+    }
+
+    .img-i {
+        width: 10%;
+    }
+
+    .img-j {
+        width: 5%;
+    }
+
+    .img-k{
+        width: 2%;
+    }
+
+    .img-zt {
+        height: 6em;
+        margin-top: -1.5em;
+        margin-bottom: -0.4em;
+        margin-left: 15%;
+    }
+
+    .inline {
+        height: 1em;
+        margin-bottom: -0.3em;
+    }
+
+    .inline0 {
+        height: 3em;
+    }
+
+    .inline0-1 {
+        height: 2em;
+    }
+
+    .inline2 {
+        height: 2.3em;
+    }
+
+    .img-qj {
+        height: 7.5em;
+        margin-bottom: -3.4em;
+        margin-right: 0.5em;
+    }
+
+
+    .bk-bwh {
+        background-color: #DFEBF7;
+        font-size: 1.2em;
+        padding: 25px;
+        border: 4px dotted #197ABF;
+
+        .block {
+            font-family: "kaiti";
+        }
+    }
+
+    .zt-ls1 {
+        color: #000;
+        font-size: 16px;
+        font-weight: bold;
+    }
+
+    span.lsyq-1 {
+        background-color: #0082D4;
+        padding: 0.2em 0.4em 0.2em 0.4em;
+        border-radius: 1.2em;
+        margin-right: 0.5em;
+        color: #FFFFFF;
+        font-weight: bold;
+        font-size: 1.3em;
+    }
+
+    span.hsyq-1 {
+        background-color: #FFB7D4;
+        padding: 0.2em 0.4em 0.2em 0.4em;
+        border-radius: 1.2em;
+        margin-right: 0.5em;
+        color: #FFFFFF;
+        font-weight: bold;
+        font-size: 1.3em;
+
+    }
+
+    .zt-hs1 {
+        font-weight: bold;
+        color: #F0855B;
+        font-size: 1.2em;
+    }
+
+    .h1-zt1 {
+        padding: 5px 25px 5px 25px;
+        border-radius: 10px 0px 0px 10px;
+        background-color: #5392C7;
+        font-size: 1.2em;
+        color: #FFFFFF;
+    }
+
+    .h1-zt2 {
+        padding: 10px;
+        background-color: #B1DDE0;
+        margin-right: 2em;
+        color: #FFFFFF;
+        padding: 5px 50px 5px 25px;
+        border-radius: 0px 5px 80px 0px;
+        font-size: 1.2em;
+    }
+
+
+    .bk {
+        border: 0.15em dotted #FAAD70;
+        padding: 1em;
+        margin-bottom: 2.5em;
+        margin-top: 2.5em;
+        border-radius: 0em;
+        position: relative;
+
+    }
+
+    .bk-img {
+        border: 0.15em dotted #FAAD70;
+        padding: 3em 3em;
+        margin-bottom: 2em;
+        margin-top: 2em;
+        border-radius: 0em;
+        position: relative;
+    }
+
+    p.bj1-qjms {
+        background-color: #fff;
+        color: #FAAD70;
+        font-weight: bold;
+        border-radius: 1.5em;
+        margin-left: 0em;
+        text-align: center;
+        text-indent: 0em;
+        position: absolute;
+        top: -19px;
+    }
+
+    .span-box {
+        display: inline-block;
+        width: 8px;
+        height: 8px;
+        background-color: #FAAD70;
+    }
+
+    .span-text {
+        font-size: 16px;
+        font-weight: 100;
+        padding: 0em 0.5em 0em 0.5em;
+    }
+
+
+    .bj {
+        background-color: #E1E7F3;
+        padding: 0.2em 0.8em 0.2em 0.8em;
+        margin-bottom: 2em;
+
+    }
+
+    span.bj1 {
+        background-color: #FFFFFF;
+        padding: 0.2em 0.05em 0.2em 0.05em;
+        font-size: 1.1em;
+        font-weight: bold;
+        color: #EFAA71;
+    }
+
+    span.bj2 {
+        background-color: #6E85AF;
+        padding: 0.2em 0.5em 0.2em 0.5em;
+        font-size: 1.1em;
+        font-weight: bold;
+        border-radius: 1em;
+        color: #FFFFFF;
+        box-shadow: 0.3em 0.3em 0px 0px #C3C2C0;
+    }
+
+    div.bk2 {
+        border: 3px solid #93A8D5;
+        padding: 0.2em 1em 0.2em 1em;
+        border-radius: 1em;
+        margin-top: 2em;
+        margin-bottom: 1.5em;
+    }
+
+    .zt-zysx {
+        font-family: "DK-HEITI", "鏂规鍏颁涵榛戠畝浣�", "榛戜綋";
+        background-color: #24b8bc;
+        border-radius: 1.5em;
+        color: #FFFFFF;
+        font-weight: bold;
+        padding: 4px;
+        font-size: 1.2em;
+        box-shadow: 0.2em 0.2em 0px 0px #c1e3e4;
+    }
+
+    .zt-zysx1 {
+        font-family: "DK-HEITI", "鏂规鍏颁涵榛戠畝浣�", "榛戜綋";
+        background-color: #96A7D5;
+        border-radius: 1.5em;
+        color: #FFFFFF;
+        font-weight: 100;
+        padding: 4px;
+        font-size: 1em;
+    }
+
+    .zt-zysx2 {
+        font-family: "DK-HEITI", "鏂规鍏颁涵榛戠畝浣�", "榛戜綋";
+        background-color: #0071BD;
+        font-size: 1.2em;
+    }
+
+    .zt-1 {
+        color: #6F84AF;
+        font-weight: bold;
+        font-size: 1.1em;
+
+    }
+
+    div.bj3 {
+        background-color: #DED5E8;
+        padding: 1em 1em 1em 1.5em;
+        border-radius: 1em;
+        margin-bottom: 0.1em;
+        margin-left: -0.6em;
+        margin-right: -0.6em;
+        margin-top: -0.5em;
+
+    }
+
+    div.bj3 p {
+        font-family: 'FangSong' !important;
+    }
+
+    span.bj3-xyx {
+        background-color: #92B03D;
+        color: #FFFFFF;
+        border-radius: 5px;
+        padding: 5px 10px 5px 10px;
+        font-size: 1em;
+        font-weight: bold;
+
+    }
+
+    div.bj3-xyx {
+        position: absolute;
+        top: -15px;
+        left: -25px;
+
+    }
+
+
+
+    span.bj3-xyx {
+        background-color: #92B03E;
+        color: #FFFFFF;
+        border-radius: 1.5em;
+        padding: 5px 20px 5px 20px;
+        font-size: 1em;
+        font-weight: bold;
+
+    }
+
+    div.bk1 {
+        margin-top: -2em;
+        margin-left: -1.6em;
+    }
+
+
+    .bk-video {
+        padding: 10px 5px;
+        margin-bottom: 2em;
+        margin-top: 0;
+        border-radius: 0em;
+        position: relative;
+    }
+
+    p.bj4-qjms {
+        background-color: #fff;
+        color: #92A1CB;
+        font-size: 20px;
+        font-weight: bold;
+        border-radius: 1.5em;
+        margin-left: 0em;
+        text-align: center;
+        text-indent: 0em;
+        position: absolute;
+        top: -32px;
+    }
+
+    .span-text-video {
+        padding: 0em 0.15em 0em 0.3em;
+    }
+
+    .span-svg {
+        padding: 0.3em 0.15em 0em 0.3em;
+    }
+
+    .bold {
+        font-size: 1.1em;
+        font-weight: 800;
+        color: #677fb7;
+    }
+
+    .quotation {
+        font-family: "kaiti";
+        font-size: 1em;
+        font-weight: 400;
+    }
+
+
+    .ts-1 {
+        font-weight: bold;
+    }
+
+    .zt-h4 {
+        background-color: #F0BD40;
+        padding: 10px;
+        color: #FFFFFF;
+        margin-left: -2em;
+        border-radius: 1.5em;
+    }
+
+    .qyls-h4 {
+        font-family: "HiFont Hei GB";
+        color: #6CB26C;
+        font-weight: bold;
+        padding: 0.2em;
+        text-indent: 0em;
+        margin-left: 0%;
+    }
+
+    .bj4 {
+        background-color: #FFDEB5;
+        padding: 20px;
+        border-radius: 0.1em;
+        margin-bottom: 2em;
+        margin-top: 2.5em;
+    }
+
+    span.bj4-xyx {
+        background-color: #FA9D1A;
+        color: #FFFFFF;
+        border-radius: 1.5em;
+        padding: 5px 20px 5px 20px;
+        font-size: 1em;
+        font-weight: bold;
+
+    }
+
+    div.bj4-xyx {
+        margin-top: -3em;
+        margin-bottom: 1.5em;
+        margin-left: -2.5em;
+    }
+
+    .bj5 {
+        background-color: #CFCBDC;
+        padding: 20px;
+        border-radius: 1em;
+        margin-bottom: 1em;
+        margin-top: 2.5em;
+    }
+
+    span.bj5-xyx {
+        background-color: #FFFFFF;
+        color: #7D719F;
+        border-radius: 0.5em 0.5em 0em 0em;
+        padding: 5px 20px 5px 20px;
+        font-size: 1em;
+        font-weight: bold;
+
+    }
+
+    div.bj5-xyx {
+        margin-top: -4em;
+        margin-bottom: 1.5em;
+        margin-left: -1.5em;
+    }
+
+
+    div.bj6 {
+        margin-top: 1.6em;
+        margin-bottom: -2.2em;
+        margin-left: -1.3em;
+    }
+
+
+    span.bj6-xyx {
+        background-color: #7B72A1;
+        border-radius: 0.5em 0.5em 0em 0em;
+        padding: 10px 20px 10px 20px;
+        font-size: 1em;
+        font-weight: bold;
+
+    }
+
+    .zt-1 {
+        color: #6F84AF;
+        font-weight: bold;
+        font-size: 1.1em;
+
+    }
+
+
+    .zt-lvs1 {
+        color: #95B321;
+    }
+
+
+    .zt-cs {
+        color: #FCA01B;
+    }
+
+
+    .bk3 {
+        background-color: #E9F0E9;
+        border: 2px dotted #C9DBCD;
+        padding: 3px 10px 3px 10px;
+        margin-top: 2em;
+        margin-bottom: 1em;
+    }
+
+    .zysx {
+        margin-top: -1.2em;
+        margin-left: -2em;
+
+        p {
+            margin: 0 !important;
+        }
+    }
+
+    .zt-zysx2 {
+        font-family: "DK-HEITI", "鏂规鍏颁涵榛戠畝浣�", "榛戜綋";
+        background-color: #0071BD;
+        font-size: 1.2em;
+    }
+
+    span.bk1 {
+        border: 1px solid #000000;
+        margin: 1em 1em 1em 1em;
+    }
+
+    .cs1 {
+        color: #E9AB7A;
+        font-weight: bold;
+    }
+
+    .bk4 {
+        border: 2px dashed #9FA8CF;
+        padding: 3px 10px 3px 10px;
+        margin-top: 2em;
+        margin-bottom: 1em;
+    }
+
+
+    .bk5 {
+        margin-top: -1.4em;
+        margin-bottom: 0.5em;
+        margin-left: -1.6em;
+    }
+
+    .h3-zt1 {
+        padding: 0.26em 0.7em;
+        background-color: #EEAF68;
+        color: #FFFFFF;
+    }
+
+    .h3-bk {
+        border: 1px solid #EEAF68;
+        margin: 5em 5em 5em 0em;
+        padding: 0.2em 1em 0.2em 0.4em;
+        border-radius: 0em 1em 1em 0em;
+    }
+
+
+    .inline1 {
+        height: 2em;
+        margin-top: 0.5em;
+        margin-bottom: -0.5em;
+    }
+
+
+    .tp-3 {
+        margin-top: -4.5em;
+        margin-bottom: 1em;
+    }
+
+
+    .rwmb-4 {
+        height: 2.5em;
+    }
+
+
+}
+
+
+.custom-dialog {
+    overflow: hidden !important;
+
+    .el-dialog__body {
+        padding: 0;
+    }
+
+    .el-dialog__header {
+        background-color: rgba(0, 0, 0, 0.8);
+
+        .header_title {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            color: #fff;
+            font-weight: 900;
+            font-size: 16px;
+            font-family: 'FZLTXIHJW';
+
+            span:nth-child(2):hover {
+                cursor: pointer;
+            }
+        }
+
+        .el-dialog__title,
+        .el-dialog__headerbtn .el-dialog__close {
+            color: #fff;
+            font-weight: 900;
+            font-size: 16px;
+            font-family: 'FZLTXIHJW';
+        }
+    }
+}
+
+.header_title {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    // color: #fff;
+    font-weight: 900;
+    font-size: 16px;
+    font-family: 'FZLTXIHJW';
+
+    span:nth-child(2):hover {
+        cursor: pointer;
+    }
+}
+
+// 琛ㄦ牸鏍峰紡
+table {
+    border-collapse: collapse; //琛ㄦ牸鐨勮竟妗嗗悎骞讹紝濡傛灉鐩搁偦锛屽垯鍏辩敤涓�涓竟妗嗐��
+    border-spacing: 0px; //璁剧疆琛屼笌鍗曞厓鏍艰竟妗嗙殑闂磋窛銆�
+}
+
+@font-face {
+    font-family: '鏂规瀹嬩綋';
+    src: url('./Fonts/FZSSK.TTF');
+}
+
+// @font-face {
+//     font-family: 'FZLTXIHJW';
+//     src: url('./Fonts/FZLTXIHJW.ttf');
+// }
+
+// @font-face {
+//     font-family: 'FZHTJW';
+//     src: url('./Fonts/FZHTJW.ttf');
+// }
+
+// @font-face {
+//     font-family: 'FANGSONG';
+//     src: url('./Fonts/fangSong.ttf');
+// }
+
+// @font-face {
+//     font-family: 'FANGZHENG';
+//     src: url('./Fonts/fangZheng.ttf');
+// }
+
+// @font-face {
+//     font-family: 'ZHUNYUAN';
+//     src: url('./Fonts/zhunyuan.ttf');
+// }
+
+// @font-face {
+//     font-family: 'ZHONGDENGXIAN';
+//     src: url('./Fonts/zhongdengxian.ttf');
+// }
+
+// @font-face {
+//     font-family: 'BOYA';
+//     src: url('./Fonts/boYa.ttf');
+// }
+
+
+.dialogQuestion {
+    background-color: #6E85AF;
+    height: 80px;
+    width: 100%;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    cursor: pointer;
+
+    span {
+        color: #fff;
+        font-size: 20px;
+        padding: 0 40px 0 20px;
+
+    }
+}
+
+// 闅愯棌椤甸潰
+.hidePage {
+    min-height: 0 !important;
+    height: 0 !important;
+    box-shadow: none !important;
+}
+
+
+.pdfModal {
+    width: 100%;
+    height: 90vh;
+
+    .pdfBox-component {
+        width: 100%;
+        height: 100%;
+        position: relative;
+
+        .preview {
+            width: 100%;
+            height: 100%;
+
+            .imageBox {
+                height: calc(100% - 30px);
+                overflow-x: hidden;
+                overflow-y: auto;
+                background: #ccc;
+                box-sizing: border-box;
+            }
+
+            .imageBox:hover {
+                cursor: zoom-in !important;
+            }
+
+            ::v-deep .el-dialog__header {
+                background-color: rgba(0, 0, 0, 0.8);
+
+                .header_title {
+                    display: flex;
+                    justify-content: space-between;
+                    align-items: center;
+                    color: #fff;
+                    font-weight: 900;
+                    font-size: 16px;
+                    font-family: 'FZLTXIHJW';
+
+                    span:nth-child(2):hover {
+                        cursor: pointer;
+                    }
+                }
+
+                ::v-deep .el-dialog__title,
+                ::v-deep .el-dialog__headerbtn .el-dialog__close {
+                    color: #fff;
+                    font-weight: 900;
+                    font-size: 16px;
+                    font-family: 'FZLTXIHJW';
+                }
+            }
+
+            .bottom_tool {
+                height: 30px;
+                background-color: rgba(0, 0, 0, 0.8);
+                display: flex;
+                justify-content: flex-end;
+                align-items: center;
+
+                svg {
+                    margin-right: 15px;
+                    fill: #d1d1d1;
+                }
+
+                svg:hover {
+                    fill: #fff;
+                    cursor: pointer;
+                }
+            }
+        }
+
+        .notBox {
+            position: absolute;
+            top: 0;
+            left: 0;
+            width: 100%;
+            height: calc(100% - 30px);
+            min-height: 300px;
+        }
+    }
+}
+
+.custom-dialog {
+    overflow: hidden !important;
+
+    .el-dialog__body {
+        padding: 0;
+    }
+
+    .el-dialog__header {
+        background-color: rgba(0, 0, 0, 0.8);
+
+        .header_title {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            color: #fff;
+            font-weight: 900;
+            font-size: 16px;
+            font-family: 'FZLTXIHJW';
+
+            span:nth-child(2):hover {
+                cursor: pointer;
+            }
+        }
+
+        .el-dialog__title,
+        .el-dialog__headerbtn .el-dialog__close {
+            color: #fff;
+            font-weight: 900;
+            font-size: 16px;
+            font-family: 'FZLTXIHJW';
+        }
+    }
+}
+
+.examination {
+    height: calc(100% - 50px);
+    overflow-x: hidden;
+    overflow-y: auto;
+    box-sizing: border-box;
+}
+
+
+.header_title {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    // color: #fff;
+    font-weight: 900;
+    font-size: 16px;
+    font-family: 'FZLTXIHJW';
+
+    span:nth-child(2):hover {
+        cursor: pointer;
+    }
+}
+
+
+.custom-dialog .el-dialog__header {
+    background-color: #6E85AF !important;
+}
+
+/* 濯掍綋鏌ヨ鍋氬熀纭�鍝嶅簲寮忓竷灞� */
+
+@media screen and (max-width: 1024px) {
+
+    .custom-dialog {
+        .el-dialog {
+            width: 90vw !important;
+        }
+    }
+}
+
+@media screen and (max-width: 800px) {
+
+
+    .custom-dialog {
+        .el-dialog {
+            width: 90vw !important;
+        }
+    }
+}
+
+@media (max-width: 660px) {
+    .UAVTechIntro-book {
+        .header-right-Number {
+            font-size: 9px;
+
+            img {
+                height: 16px;
+            }
+        }
+
+        .header-left-Number {
+            font-size: 9px;
+        }
+
+        .pad-r-80 {
+            padding-right: 10px;
+        }
+
+        .pad-l-80 {
+            padding-left: 10px;
+        }
+
+        h1 {
+            font-size: 1em;
+        }
+
+        h2 {
+            font-size: 0.9em;
+            margin-top: 1.8em;
+            margin-bottom: 1.5em;
+            margin-left: 2.5em;
+        }
+
+        .rwmb-4 {
+            margin-top: 1.5em;
+            height: 1.5em;
+        }
+
+        .header-right-last {
+            font-size: 10px;
+        }
+
+        .header-right-end {
+            font-size: 10px;
+        }
+
+        .p-Num {
+            font-size: 12px;
+        }
+
+        .mr-70 {
+            margin-right: 10px;
+        }
+
+        /* 鍒嗛〉padding */
+        .padding-93 {
+            padding: 0 20px;
+        }
+
+        .padding-102 {
+            padding: 0 20px;
+        }
+
+
+        .img-float {
+            width: 130px;
+        }
+
+        .img-rights {
+            width: 130px;
+        }
+
+        .btn-w {
+            width: 42px;
+        }
+
+        .unitText {
+            color: #5192C6;
+            font-size: 10px;
+        }
+
+        .unit2Text {
+            color: #F89C1C;
+            font-size: 10px;
+        }
+
+        .wh-no {
+            white-space: wrap;
+        }
+
+        td {
+            padding: 5px 10px;
+        }
+    }
+}
+
+@media (min-width: 660px) {
+    .UAVTechIntro-book {
+        .padding-93 {
+            padding: 0 93px 0px 93px;
+        }
+
+        .padding-102 {
+            padding: 0 102px 0 102px;
+        }
+    }
+}
+
+::-webkit-scrollbar {
+    width: 8px;
+    height: 10px;
+}
+
+::-webkit-scrollbar-track-piece {
+    background-color: rgba(0, 0, 0, 0.1);
+    -webkit-border-radius: 6px;
+}
+
+::-webkit-scrollbar-thumb:vertical {
+    height: 5px;
+    background-color: rgba(125, 125, 125, 0.3);
+    -webkit-border-radius: 6px;
+}
+
+::-webkit-scrollbar-thumb:horizontal {
+    width: 5px;
+    background-color: rgba(125, 125, 125, 0.3);
+    -webkit-border-radius: 6px;
+}
\ No newline at end of file
diff --git a/src/books/UAVTechIntro/view/components/chapter001.vue b/src/books/UAVTechIntro/view/components/chapter001.vue
new file mode 100644
index 0000000..9ca8ecc
--- /dev/null
+++ b/src/books/UAVTechIntro/view/components/chapter001.vue
@@ -0,0 +1,2048 @@
+<template>
+    <div class="chapter" num="2">
+        <!-- 1椤� -->
+        <div class="page-box" page="7">
+            <div v-if="showPageList.indexOf(7) > -1">
+                <ul class="fl al-c jc-fe mr-70 pad-t-55 mb-45">
+                    <li class="headerText pNum">1</li>
+                    <img class="headerImg mr-10" src="../../assets/images/yemei.png" alt="" />
+                </ul>
+                <div class="bodystyle">
+                    <h2 id="b001">椤圭洰涓�銆�鏃犱汉鏈哄熀纭�鐭ヨ瘑</h2>
+                    <div class="tp-3">
+                        <p class="tl-f td-0">
+                            <img class="rwmb-4" alt="" src="../../assets/images/tb.png" />
+                        </p>
+                    </div>
+                    <div class="bk">
+                        <p class="bj1-qjms fl al-c">
+                            <span class="span-box"></span><span class="span-text">鐩爣棰嗚埅</span><span
+                                class="span-box"></span>
+                        </p>
+                        <p class="fz-15">
+                            灏忓懆浣滀负鏃犱汉鏈轰紒涓氱殑涓�鍚嶅疄涔犲憳宸ワ紝杩戞湡琚垎閰嶅埌浜嗗唴閮ㄧ殑鏃犱汉鏈虹殑杩愯閮ㄩ棬銆傜幇鍦ㄥ皬鍛ㄧ殑鏃犱汉鏈虹郴缁熷凡鍑嗗瀹屾垚锛岄渶瑕侀鍏堣璇嗗悇绉嶇粍鎴愰儴鍒嗭紝鍐嶅涔犳棤浜烘満椋炶瀹夊叏鍙婃硶瑙勩�佺┖鍩熺煡璇嗐�佺┖涓氦閫氱鍒剁殑鐩稿叧鍐呭锛岃璇嗗ぇ姘旂幆澧冿紝鏈�鍚庡鏃犱汉鏈鸿繘琛岃瘯椋炲伐浣溿�傛垜浠厛甯︾潃灏忓懆璁よ瘑涓�涓嬫棤浜烘満鍩虹鐭ヨ瘑銆�
+                        </p>
+                    </div>
+                    <div class="bk-img">
+                        <p class="bj1-qjms fl al-c">
+                            <span class="span-box"></span><span class="span-text">瀛︿範鍐呭</span><span
+                                class="span-box"></span>
+                        </p>
+                        <p class="openImgBox td-0">
+                            <img class="img-a" src="../../assets/images/0013-04.jpg" alt="" active="true" />
+                        </p>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!-- 2椤� -->
+        <div class="page-box" page="8">
+            <div v-if="showPageList.indexOf(8) > -1">
+                <ul class="fl al-c jc-sb pad-t-55 pad-l-80 pad-r-80">
+                    <li class="header-left-Number">
+                        <span class="mr-10 pNum">2</span>
+                        <span><span class="span-box-title"></span>鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�<span class="span-box-title"></span></span>
+                    </li>
+                    <li class="header-left-text">
+                        <img class="img-c" src="../../assets/images/yemei01.png" alt="" />
+                    </li>
+                </ul>
+                <div class="bodystyle">
+                    <p class="content td-0"><img class="h-pic" src="../../assets/images/0014_02.jpg" alt="" /></p>
+                    <p class="content td-0 mb-10 mt-20"><img class="h-pic" src="../../assets/images/0014_03.jpg"
+                            alt="" /></p>
+                    <div class="openImgBox">
+                        <img class="img-0" src="../../assets/images/0014-04.jpg" alt="" active="true" />
+                    </div>
+                    <p class="td-0 mb-10 mt-20"><img class="h-pic" src="../../assets/images/0014_05.jpg" alt="" />
+                    </p>
+                    <p class="content">鏃犱汉鏈虹郴缁燂紙unmanned aircraft
+                        system锛孶AS锛夌敱澶氫釜缁撴瀯缁勬垚锛屽寘鎷┖涓郴缁熴�侀鏈虹郴缁熴�佷换鍔¤浇鑽峰拰鏃犱汉鏈轰娇鐢ㄤ繚闅滀汉鍛樸�傛湰鏂囦粙缁嶄簡鍥哄畾缈兼棤浜烘満绯荤粺銆佹棤浜虹洿鍗囨満绯荤粺鍜屽鏃嬬考鏃犱汉鏈虹郴缁熴�備笉鍚岀殑鏃犱汉鏈虹郴缁熷叿鏈変笉鍚岀殑缁撴瀯鍜岀壒鐐广��
+                    </p>
+                    <p class="td-0 mb-10 mt-20"><img class="h-pic" src="../../assets/images/0014_06.jpg" alt="" /></p>
+                    <p class="td-0"><span class="bold">鐩稿叧鐭ヨ瘑鐐癸細鏃犱汉鏈虹郴缁熸杩�</span></p>
+                    <p class="content">骞夸箟涓婅锛屾棤浜烘満绯荤粺锛屼篃绉拌繙绋嬮┚椹惰埅绌哄櫒绯荤粺锛坮emotely piloted aircraft
+                        sys-tem锛孯PAS锛夛紝鏄寚鐢变竴鏋舵棤浜烘満銆佺浉鍏崇殑閬ユ帶绔欍�佹墍闇�鐨勬寚浠や笌鎺у埗鏁版嵁閾捐矾浠ュ強鎵瑰噯鐨勫瀷鍙疯璁¤瀹氱殑浠讳綍鍏朵粬閮ㄤ欢缁勬垚鐨勭郴缁熴��</p>
+                    <p class="content">甯歌鐨勬棤浜烘満绯荤粺鍙垎涓轰互涓嬪嚑绫汇��</p>
+                    <p class="quotation">1锛庡浐瀹氱考鏃犱汉鏈虹郴缁�</p>
+                    <p class="content">鍥哄畾缈兼棤浜烘満绯荤粺涓�鑸敱杩欏嚑閮ㄥ垎鏋勬垚锛氭満浣撶粨鏋勩�佽埅鐢电郴缁熴�佸姩鍔涚郴缁熷拰鍦伴潰鎺у埗绔欍��</p>
+                    <p class="content">
+                        鍥哄畾缈兼棤浜烘満鏄竴绉嶇敱鍔ㄥ姏瑁呯疆浜х敓鍓嶈繘鐨勬帹鍔涙垨鎷夊姏锛岀敱鏈轰綋涓婂浐瀹氱殑鏈虹考浜х敓鍗囧姏锛屽湪澶ф皵灞傚唴椋炶鐨勯噸浜庣┖姘旂殑鏃犱汉椹鹃┒鑸┖鍣ㄣ�傚畠涓�鑸寘鎷満缈笺�佹満韬�佸熬缈煎拰璧疯惤瑁呯疆绛夛紙鍥�1.1.1锛夈��</p>
+                    <p class="content">鏈虹考鐨勪富瑕佸姛鑳芥槸浜х敓鍗囧姏锛屼互鏀寔椋炴満鍦ㄧ┖涓琛岋紝鍚屾椂涔熻捣鍒颁竴瀹氱殑绋冲畾鍜屾搷浣滅敤閫斻��</p>
+                </div>
+            </div>
+        </div>
+        <!-- 3椤� -->
+        <div class="page-box" page="9">
+            <div v-if="showPageList.indexOf(9) > -1">
+                <ul class="fl al-fe pad-t-55 pad-l-80 jc-fe mb-45  h-25">
+                    <li class="header-right-Number header-right-title">椤圭洰涓�</li>
+                    <li class="header-right-Number">鏃犱汉鏈哄熀纭�鐭ヨ瘑</li>
+                    <li class="p-Num">3</li>
+                    <li class="header-right-Number cloud">
+                        <img class="" src="../../assets/images/yemei02.png" alt="" />
+                    </li>
+                    <li class="header-right-last"><br /></li>
+                    <li class="header-right-end"><br /></li>
+                </ul>
+                <div class="bodystyle">
+                    <div class="center openImgBox">
+                        <img class="img-b" src="../../assets/images/0015-01.jpg" alt="" active="true" />
+                        <p class="center img">鍥�1.1.1銆�涓�娆惧吀鍨嬬殑鍥哄畾缈兼棤浜烘満</p>
+                    </div>
+                    <p class="content">鏈鸿韩鐨勪富瑕佸姛鑳芥槸瑁呰浇鍚勭璁惧锛屽皢椋炴満鍏朵粬閮ㄤ欢锛堝鏈虹考鍜屽姩鍔涜缃級杩炴帴鎴愪竴涓暣浣擄紝浠ヤ繚鎸佸叾鏁翠綋姘斿姩鎬с��</p>
+                    <p class="content">
+                        灏剧考鍖呮嫭姘村钩灏剧考鍜屽瀭鐩村熬缈笺�傛按骞冲熬缈肩敱鍥哄畾鐨勬按骞冲畨瀹氶潰鍜屽彲鍔ㄧ殑鍗囬檷鑸电粍鎴愩�傚瀭鐩村熬缈煎寘鎷浐瀹氱殑鍨傜洿瀹夊畾闈㈠拰鍙姩鐨勬柟鍚戣埖銆傚熬缈肩殑浣滅敤鏄搷绾甸鏈轰刊浠板拰鍋忚浆锛屼互淇濊瘉椋炴満鑳藉钩绋抽琛屻��</p>
+                    <p class="content">璧疯惤瑁呯疆澶у鐢卞噺闇囨敮鏌卞拰鏈鸿疆缁勬垚锛屽叾浣滅敤鏄捣椋炪�佺潃闄嗘粦璺戙�佸湴闈㈡粦琛屽拰鍋滄斁鏃舵敮鎾戦鏈恒��</p>
+                    <p class="quotation">2锛庢棤浜虹洿鍗囨満绯荤粺</p>
+                    <p class="content">鏃犱汉鐩村崌鏈烘槸鍏锋湁涓�鍓垨涓ゅ壇涓绘棆缈硷紝閫氳繃鏃嬬考鐨勫�炬枩銆佽浆閫熺殑璋冩暣鏉ヤ骇鐢熷悇涓繍鍔ㄦ柟鍚戠殑鍔涚殑鏃犱汉椹鹃┒鑸┖鍣ㄣ��</p>
+                    <p class="content">鏃犱汉鐩村崌鏈虹殑涓昏缁撴瀯鏈夛細鏈鸿韩銆佸姩鍔涚郴缁熴�佹棆缈笺�佸熬缈笺�佽捣钀芥灦绛夛紙鍥�1.1.2锛夈��</p>
+                    <div class="center openImgBox mb-10 mt-10">
+                        <img class="img-b" src="../../assets/images/0015-02.jpg" alt="" active="true" />
+                        <p class="center img">鍥�1.1.2銆�鏃犱汉鐩村崌鏈虹郴缁熺殑涓昏缁撴瀯绀烘剰鍥�</p>
+                    </div>
+                    <p class="content">鐩村崌鏈烘寜鏃嬬考鏁伴噺鍜屽竷灞�鏂瑰紡鐨勪笉鍚屽彲鍒嗕负鍗曟棆缈肩洿鍗囨満銆佸叡杞村紡鍙屾棆缈肩洿鍗囨満銆佺旱鍒楀紡鍙屾棆缈肩洿鍗囨満銆佹í鍒楀紡鍙屾棆缈肩洿鍗囨満鍜屽甫缈煎紡鐩村崌鏈虹瓑鍑犵绫诲瀷锛堝浘1.1.3锛夈��</p>
+                    <p class="content">锛�1锛夋満韬細鏃犱汉鐩村崌鏈烘満韬粨鏋勬湁妗佹灦寮忕粨鏋勩�佽杽澹佸紡缁撴瀯鍜屽鍚堟潗鏂欏す灞傜粨鏋勩��</p>
+                    <p class="content">锛�2锛夋棆缈硷細鏃犱汉鐩村崌鏈烘棆缈肩粨鏋勬湁鍏ㄩ摪鎺ュ紡銆佽贩璺锋澘寮忋�佹煍鎬ч摪寮忓拰鏃犺酱鎵垮紡鍥涚缁撴瀯銆�</p>
+                </div>
+            </div>
+        </div>
+        <!-- 4椤� -->
+        <div class="page-box" page="10">
+            <div v-if="showPageList.indexOf(10) > -1">
+                <ul class="fl al-c jc-sb pad-t-55 pad-l-80 pad-r-80">
+                    <li class="header-left-Number">
+                        <span class="mr-10 pNum">4</span>
+                        <span><span class="span-box-title"></span>鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�<span class="span-box-title"></span></span>
+                    </li>
+                    <li class="header-left-text">
+                        <img class="img-c" src="../../assets/images/yemei01.png" alt="" />
+                    </li>
+                </ul>
+                <div class="bodystyle">
+                    <!-- 杞挱鍥� -->
+                    <div class="imgBox-003 openImgBox">
+                        <div class="swiper-container swiper-img">
+                            <div class="swiper-wrapper">
+                                <div class="swiper-slide">
+                                    <div class="imgBox" style="width: 100%; height: 100%">
+                                        <img src="../../assets/images/0016-01-01.png" />
+                                    </div>
+                                </div>
+                                <div class="swiper-slide">
+                                    <div class="imgBox" style="width: 100%; height: 100%">
+                                        <img src="../../assets/images/0016-01-02.png" />
+                                    </div>
+                                </div>
+                                <div class="swiper-slide">
+                                    <div class="imgBox" style="width: 100%; height: 100%">
+                                        <img src="../../assets/images/0016-01-03.png" />
+                                    </div>
+                                </div>
+                                <div class="swiper-slide">
+                                    <div class="imgBox" style="width: 100%; height: 100%">
+                                        <img src="../../assets/images/0016-01-04.png" />
+                                    </div>
+                                </div>
+                                <div class="swiper-slide">
+                                    <div class="imgBox" style="width: 100%; height: 100%">
+                                        <img src="../../assets/images/0016-01-05.png" />
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="swiper-button-next"></div>
+                            <div class="swiper-button-prev"></div>
+                        </div>
+                    </div>
+                    <p class="img">锛坅锛夊崟鏃嬬考鐩村崌鏈猴紱锛坆锛夊叡杞村紡鍙屾棆缈肩洿鍗囨満锛涳紙c锛夌旱鍒楀紡鍙屾棆缈肩洿鍗囨満锛涳紙d锛夋í鍒楀紡鍙屾棆缈肩洿鍗囨満锛涳紙e锛夊甫缈煎紡鐩村崌鏈�</p>
+                    <p class="img">鍥�1.1.3銆�鐩村崌鏈虹殑绫诲瀷</p>
+                    <p class="content">锛�3锛夊熬缈硷細鏃犱汉鐩村崌鏈哄熬缈煎寘鎷瀭鐩村畨瀹氶潰鍜屾按骞冲畨瀹氶潰锛堝浘1.1.4锛夈��</p>
+                    <div class="center openImgBox mt-10 mb-10">
+                        <img class="img-d" src="../../assets/images/0016-02.jpg" alt="" active="true" />
+                        <p class="img">鍥�1.1.4銆�鏃犱汉鐩村崌鏈哄熬缈肩殑缁撴瀯绀烘剰鍥�</p>
+                    </div>
+                    <p class="quotation">3锛庡鏃嬬考鏃犱汉鏈虹郴缁�</p>
+                    <p class="content">
+                        澶氭棆缈兼棤浜烘満鏄竴绉嶇壒娈婄殑鐩村崌鏈恒�傛瘡涓棆缈肩殑铻烘棆妗ㄦ〃璺濅竴鑸笉鍙戠敓鏀瑰彉锛岃�屾槸閫氳繃鏀瑰彉鍚勪釜鏃嬬考涔嬮棿鐨勭浉瀵硅浆閫燂紝浠ユ敼鍙樺崟杞存帹杩涘姏鐨勫ぇ灏忥紝浠庤�屾敼鍙樿繍琛岃建杩圭殑涓�绉嶆棤浜洪┚椹惰埅绌哄櫒銆�</p>
+                    <p class="content">鐩稿鍥哄畾缈兼棤浜烘満鍜屾棤浜虹洿鍗囨満鏉ヨ锛屽鏃嬬考鏃犱汉鏈虹殑鏈轰綋缁撴瀯姣旇緝绠�鍗曘�傛寜褰㈢姸鍙垎涓篨鍨嬪竷灞�銆佸崄鍨嬪竷灞�銆丠鍨嬪竷灞�绛夛紙鍥�1.1.5銆佸浘1.1.6锛夈��</p>
+                    <p class="content">鐩墠X鍨嬪竷灞�鐨勫鏃嬬考鏃犱汉鏈烘槸鏈�甯歌鐨勩�傜浉姣斿崄鍨嬪竷灞�鐨勫鏃嬬考鏃犱汉鏈烘潵璇达紝瀹冪殑鍓嶅悗宸﹀彸鍔ㄤ綔鏃跺姞鍑忛�熺殑鐢垫満杈冨锛屾帶鍒舵瘮杈冭繀閫熴�佹湁鍔涖��</p>
+                </div>
+            </div>
+        </div>
+        <!-- 5椤� -->
+        <div class="page-box" page="11">
+            <div v-if="showPageList.indexOf(11) > -1">
+                <ul class="fl al-fe pad-t-55 pad-l-80 jc-fe mb-45  h-25">
+                    <li class="header-right-Number header-right-title">椤圭洰涓�</li>
+                    <li class="header-right-Number">鏃犱汉鏈哄熀纭�鐭ヨ瘑</li>
+                    <li class="p-Num">5</li>
+                    <li class="header-right-Number cloud">
+                        <img class="" src="../../assets/images/yemei02.png" alt="" />
+                    </li>
+                    <li class="header-right-last"><br /></li>
+                    <li class="header-right-end"><br /></li>
+                </ul>
+                <div class="bodystyle">
+                    <!-- 杞挱鍥� -->
+                    <div class="imgBox-003 openImgBox">
+                        <div class="swiper-container swiper-img">
+                            <div class="swiper-wrapper">
+                                <div class="swiper-slide">
+                                    <div class="imgBox" style="width: 100%; height: 100%">
+                                        <img src="../../assets/images/0017-01-01.png" />
+                                    </div>
+                                </div>
+                                <div class="swiper-slide">
+                                    <div class="imgBox" style="width: 100%; height: 100%">
+                                        <img src="../../assets/images/0017-01-02.png" />
+                                    </div>
+                                </div>
+                            </div>
+                            <div class="swiper-button-next"></div>
+                            <div class="swiper-button-prev"></div>
+                        </div>
+                    </div>
+                    <p class="img">鍥�1.1.5銆�涓�娆綳鍨嬪竷灞�鐨勫洓鏃嬬考鏃犱汉鏈�</p>
+                    <p class="content">鍗佸瀷澶氭棆缈兼槸鏈�鏃╁嚭鐜扮殑涓�绉嶆皵鍔ㄥ竷灞�锛屽彧闇�鏀瑰彉灏戦噺鐢垫満杞�熷氨鍙疄鐜般��</p>
+                    <p class="content">H鍨嬪竷灞�鐨勫鏃嬬考鏃犱汉鏈虹殑鐗圭偣鍦ㄤ簬姣旇緝鏄撲簬璁捐鎴愭按骞虫姌鍙犵粨鏋勶紝鐪嬭捣鏉ユ瘮X鍨嬪竷灞�鐨勫鏃嬬考鏃犱汉鏈哄帤閲嶏紝鍙堟嫢鏈変笌X鍨嬪竷灞�鐨勫鏃嬬考鏃犱汉鏈虹浉褰撶殑鐗圭偣锛岀粨鏋勭畝鍗曪紝鏂逛究鎺у埗銆�
+                    </p>
+                    <div class="center openImgBox mt-10 mb-10">
+                        <img class="w80" src="../../assets/images/0017-02.jpg" alt="" active="true" />
+                        <p class="img">鍥�1.1.6銆�涓�娆綡鍨嬪竷灞�鐨勫洓鏃嬬考鏃犱汉鏈�</p>
+                    </div>
+                    <p class="td-0 mt-10 mb-10"><span class="bj2">路瑙嗛搴撀�</span></p>
+                    <div class="bk-video fl">
+                        <div class="fl jc-fs fw-w">
+                            <div style="width: 290px; height: auto; margin: 0 5px;"
+                                v-for="(item, index) in videoDataOne.videoMd5" :key="index">
+                                <video webkit-playsinline="true" x-webkit-airplay="true" playsinline="true"
+                                    x5-video-orientation="h5" x5-video-player-fullscreen="true" x5-playsinline=""
+                                    controls controlslist="nodownload" class="video-border w100"
+                                    :src="item.handleMd5"></video>
+                                <div class="fl al-c jc-c">
+                                    <p class="td-0" style="font-size: 12px;">{{ item.name }}</p>
+                                    <el-tooltip class="item" effect="dark"
+                                        :content="item.isCollectVideo ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                        <img :src="collectResourceList.findIndex(citem => citem.id == item.md5) > -1 ? collectCheck : collectImg"
+                                            alt="" class="collect-btn1" @click="handleCollect(item)" />
+                                    </el-tooltip>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <p class="content"><img class="h-pic" src="../../assets/images/0017_03.jpg" alt="" /></p>
+                    <div v-for="(item, index) in questionData.slice(0, 3)" :key="index">
+                        <p class="block">{{ index + 1 }}.{{ item.txt }}</p>
+                        <p class="block" v-for="(citem, cindex) in item.options" :key="cindex">
+                            <input type="radio" :value="citem.value" v-model="item.userAnswer"
+                                @change="saveInputChoice" />
+                            {{ citem.txt }}
+                        </p>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!-- 6椤� -->
+        <div class="page-box" page="12">
+            <div v-if="showPageList.indexOf(12) > -1">
+                <ul class="fl al-c jc-sb pad-t-55 pad-l-80 pad-r-80">
+                    <li class="header-left-Number">
+                        <span class="mr-10 pNum">6</span>
+                        <span><span class="span-box-title"></span>鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�<span class="span-box-title"></span></span>
+                    </li>
+                    <li class="header-left-text">
+                        <img class="img-c" src="../../assets/images/yemei01.png" alt="" />
+                    </li>
+                </ul>
+                <div class="bodystyle">
+                    <div v-for="(item, index) in questionData.slice(3, 8)" :key="index">
+                        <p class="block">{{ index + 4 }}.{{ item.txt }}</p>
+                        <p class="center" v-if="item.imgSrc">
+                            <img class="img-c" :src=item.imgSrc alt="">
+                        </p>
+                        <p class="block" v-for="(citem, cindex) in item.options" :key="cindex">
+                            <input type="radio" :value="citem.value" v-model="item.userAnswer"
+                                @change="saveInputChoice" />
+                            {{ citem.txt }}
+                        </p>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!-- 7椤� -->
+        <div class="page-box" page="13">
+            <div v-if="showPageList.indexOf(13) > -1">
+                <ul class="fl al-fe pad-t-55 pad-l-80 jc-fe mb-45  h-25">
+                    <li class="header-right-Number header-right-title">椤圭洰涓�</li>
+                    <li class="header-right-Number">鏃犱汉鏈哄熀纭�鐭ヨ瘑</li>
+                    <li class="p-Num">7</li>
+                    <li class="header-right-Number cloud">
+                        <img class="" src="../../assets/images/yemei02.png" alt="" />
+                    </li>
+                    <li class="header-right-last"><br /></li>
+                    <li class="header-right-end"><br /></li>
+                </ul>
+                <div class="bodystyle">
+                    <div v-for="(item, index) in questionData.slice(8, 12)" :key="index">
+                        <p class="block">{{ index + 9 }}.{{ item.txt }}</p>
+                        <p class="block" v-for="(citem, cindex) in item.options" :key="cindex">
+                            <input type="radio" :value="citem.value" v-model="item.userAnswer"
+                                @change="saveInputChoice" />
+                            {{ citem.txt }}
+                        </p>
+                        <p class="center" v-if="item.imgSrc">
+                            <img class="img-e" :src=item.imgSrc alt="">
+                        </p>
+                    </div>
+                    <p class="td-0 mb-10 mt-10"><img class="h-pic" src="../../assets/images/0019_02.jpg" alt="" /></p>
+                    <p class="content">閫氳繃鏈换鍔$殑瀛︿範锛岃鏍规嵁鑷繁鐨勫涔犳儏鍐靛~鍐欎换鍔¤瘎浠疯〃锛岃瘎鍒嗘椂瑕佺患鍚堣�冭檻灏忕粍涔嬮棿鐨勫悎浣溿�佹矡閫氳兘鍔涚瓑鑱屼笟绱犲吇锛堟寜鑷瘎鍒嗘暟40%銆佹暀甯堣瘎鍒�60%璁$畻寰楀垎锛夈��</p>
+                    <table border="1" cellpadding="4" cellspacing="0"
+                        style="border-color: #677fb7; border-collapse: collapse" class="fz-14 img-0">
+                        <tr class="img-0 table-th-bc">
+                            <th>搴忓彿</th>
+                            <th>璇惧悗浠诲姟</th>
+                            <th>鏍囧噯璇勪环</th>
+                            <th>鑷瘎鍒嗘暟</th>
+                            <th>鏁欏笀璇勫垎</th>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td rowspan="3" class="center">1</td>
+                            <td rowspan="3" class="center">鏃犱汉鏈虹郴缁熺殑鍩烘湰姒傚康(40鍒�)</td>
+                            <td>鏃犱汉鏈虹郴缁熺殑瀹氫箟鍙婂垎绫绘竻鏅�(40鍒�)</td>
+                            <td rowspan="3" class="center">
+                                <input v-model="tableData.unitOne.one" type="number" step="1" min="0"
+                                    class="table-textarea" @change="setBookTableData">
+                            </td>
+                            <td rowspan="3" class="center">
+                                <input v-model="tableData.unitOne.two" type="number" step="1" min="0"
+                                    class="table-textarea" @change="setBookTableData">
+                            </td>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td>鏃犱汉鏈虹郴缁熺殑瀹氫箟鍙婂垎绫昏緝娓呮櫚(30鍒�)</td>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td>鏃犱汉鏈虹郴缁熺殑瀹氫箟鍙婂垎绫讳笉娓呮櫚(10鍒�)</td>
+                        </tr>
+                        <tr class="table-tr-bc-one">
+                            <td rowspan="3" class="center">2</td>
+                            <td rowspan="3" class="center">鏃犱汉鏈虹郴缁熺殑鍒嗙被(40鍒�)</td>
+                            <td>瀵规棤浜烘満绯荤粺鐨勫悇缁勬垚閮ㄥ垎鍙婂叾浣滅敤鏄庣‘(40鍒�)</td>
+                            <td rowspan="3" class="center"><input v-model="tableData.unitOne.three" type="number"
+                                    step="1" min="0" class="table-textarea" @change="setBookTableData"></td>
+                            <td rowspan="3" class="center"><input v-model="tableData.unitOne.four" type="number"
+                                    step="1" min="0" class="table-textarea" @change="setBookTableData"></td>
+                        </tr>
+                        <tr class="table-tr-bc-one">
+                            <td>瀵规棤浜烘満绯荤粺鐨勫悇缁勬垚閮ㄥ垎鍙婂叾浣滅敤杈冩槑纭�(30鍒�)</td>
+                        </tr>
+                        <tr class="table-tr-bc-one">
+                            <td>瀵规棤浜烘満绯荤粺鐨勫悇缁勬垚閮ㄥ垎鍙婂叾浣滅敤涓嶆槑纭�(10鍒�)</td>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td rowspan="2" class="center">3</td>
+                            <td rowspan="2" class="center">鍥㈤槦鍚堜綔(20鍒�)</td>
+                            <td>浜掑府浜掑姪锛屽彲浠ユ甯告矡閫氫氦娴�(20鍒�)</td>
+                            <td rowspan="2" class="center"><input v-model="tableData.unitOne.five" type="number"
+                                    step="1" min="0" class="table-textarea" @change="setBookTableData"></td>
+                            <td rowspan="2" class="center"><input v-model="tableData.unitOne.six" type="number" step="1"
+                                    min="0" class="table-textarea" @change="setBookTableData"></td>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td>浜掑府浜掑姪锛屼氦娴佽緝灏戯紝甯︽湁鑴炬皵(10鍒�)</td>
+                        </tr>
+                    </table>
+                </div>
+            </div>
+        </div>
+        <!-- 8椤� -->
+        <div class="page-box" page="14">
+            <div v-if="showPageList.indexOf(14) > -1">
+                <ul class="fl al-c jc-sb pad-t-55 pad-l-80 pad-r-80">
+                    <li class="header-left-Number">
+                        <span class="mr-10 pNum">8</span>
+                        <span><span class="span-box-title"></span>鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�<span class="span-box-title"></span></span>
+                    </li>
+                    <li class="header-left-text">
+                        <img class="img-c" src="../../assets/images/yemei01.png" alt="" />
+                    </li>
+                </ul>
+                <div class="bodystyle">
+                    <p class="content td-0"><img class="h-pic" src="../../assets/images/0020_01.jpg" alt="" /></p>
+                    <p class="content td-0 mb-10 mt-20"><img class="h-pic" src="../../assets/images/0014_03.jpg"
+                            alt="" />
+                    </p>
+                    <div class="openImgBox"><img class="img-0" src="../../assets/images/0020-02.jpg" alt=""
+                            active="true" />
+                    </div>
+                    <p class="content td-0 mb-10 mt-20"><img class="h-pic" src="../../assets/images/0014_05.jpg"
+                            alt="" />
+                    </p>
+                    <p class="content">
+                        鏃犱汉鏈虹郴缁熷湪杩愯鏃堕渶瑕佽�冭檻璁稿鍥犵礌锛屼笉浠呭彈鍒版棤浜烘満娉曡鐨勫埗绾︼紝杩橀渶瑕侀厤鍚堟棤浜烘満鐨勭┖鍩熺鐞嗭紝鍚屾椂鏍规嵁涓嶅悓鐨勯琛屾儏鍐甸�夋嫨涓嶅悓鐨勯琛岀┖鍩熴�傛湰鏂囧湪姝ゅ皢浠嬬粛鏃犱汉鏈虹浉鍏虫硶瑙勩�佺┖鍩熺殑鍒掑垎绛夈��</p>
+                    <p class="td-0 mb-10 mt-20"><img class="h-pic" src="../../assets/images/0014_06.jpg" alt="" /></p>
+                    <p class="content"><span class="bold">鐩稿叧鐭ヨ瘑鐐�1锛氭棤浜烘満娉曡</span></p>
+                    <p class="content">
+                        姘戠敤鏃犱汉鏈烘硶寰嬫硶瑙勬槸鏃犱汉鏈哄簲鐢ㄧ殑娉曞緥淇濋殰锛屽畠浣挎棤浜烘満椋炶銆佷綔涓氱瓑鏈夋硶鍙緷銆備緷鎹�婁腑鍗庝汉姘戝叡鍜屽浗姘戠敤鑸┖娉曘�嬨�婁腑鍗庝汉姘戝叡鍜屽浗椋炶鍩烘湰瑙勫垯銆嬨�婁腑鍥芥皯鐢ㄨ埅绌虹┖涓氦閫氱鍒跺伐浣滆鍒欍�嬨�婇�氱敤鑸┖椋炶绠″埗鏉′緥銆嬬瓑鍒跺畾浜嗘棤浜烘満鐩稿叧娉曡锛屽鐢卞浗鍔¢櫌涓嬭涓浗姘戠敤鑸┖灞�鐨勭浉鍏抽儴闂ㄦ牴鎹皯鐢ㄦ棤浜烘満鐨勫彂灞曠姸鍐碉紝鍒跺畾鐨勭浉鍏宠瀹氫笌鍔炴硶锛涗腑鍥芥皯鐢ㄨ埅绌哄眬濮旀墭鈥滀腑鍥借埅绌哄櫒鎷ユ湁鑰呭強椹鹃┒鍛樺崗浼氾紙Aircraft
+                        Owners and Pilots Asso-ciation of
+                        China锛孉OPA-China锛夆�濆埗瀹氱殑鐩稿叧瑙勫垯锛堝銆婃皯鐢ㄦ棤浜烘満椹鹃┒鍛樼鐞嗚瀹氥�嬶級锛屽叡鍚屾瀯绛戜簡鐢熶骇鍒堕�犮�侀�傝埅瀹″畾銆佽繍琛岀鐞嗐�佷汉鍛樿缁冦�佷汉鍛樼鐞嗐�佽瘉鐓х鐞嗙瓑鏃犱汉鏈虹殑娉曞埗鍩虹銆�</p>
+                    <p class="content">
+                        涓浗鑸┖鍣ㄦ嫢鏈夎�呭強椹鹃┒鍛樺崗浼氾紝鎴愮珛浜�2004骞达紝缁忓浗鍔¢櫌鎵瑰噯锛屽湪姘戞斂閮ㄧ櫥璁版敞鍐岋紝鏄浗鍐呮皯鐢ㄨ埅绌洪鍩熺涓�涓叏鍥芥�ц涓氬崗浼氥�傚畠鏄腑鍥斤紙鍚娓�佹境闂ㄣ�佸彴婀惧湴鍖猴級鍦ㄥ浗闄呰埅绌哄櫒鎷ユ湁鑰呭強椹鹃┒鍛樺崗浼氾紙The
+                        International Council of Aircraft Owner and Pilot Association锛孖AOPA锛夌殑鍞竴鍚堟硶浠h〃銆�</p>
+                    <p class="content">鏃犱汉鏈烘硶瑙勭敤鏉ヨ鑼冩皯鐢ㄦ棤浜烘満閫傝埅鎬ц璁°�佺敓浜с�佽繍琛屼互鍙婁粠涓氫汉鍛樼殑璁粌銆佺鐞嗙瓑銆�</p>
+                </div>
+            </div>
+        </div>
+        <!-- 9椤� -->
+        <div class="page-box" page="15">
+            <div v-if="showPageList.indexOf(15) > -1">
+                <ul class="fl al-fe pad-t-55 pad-l-80 jc-fe mb-45  h-25">
+                    <li class="header-right-Number header-right-title">椤圭洰涓�</li>
+                    <li class="header-right-Number">鏃犱汉鏈哄熀纭�鐭ヨ瘑</li>
+                    <li class="p-Num">9</li>
+                    <li class="header-right-Number cloud">
+                        <img class="" src="../../assets/images/yemei02.png" alt="" />
+                    </li>
+                    <li class="header-right-last"><br /></li>
+                    <li class="header-right-end"><br /></li>
+                </ul>
+                <div class="bodystyle">
+                    <p class="content">姹借溅鐨勮椹讹紝瑕侀伒瀹堣鍒欙紝鍚勮鍏堕亾锛屽惉浠庢寚鎸ワ紝鍚﹀垯杞昏�呴�犳垚浜ら�氭嫢鍫碉紝閲嶈�呭紩鍙戜氦閫氫簨鏁呯敋鑷宠溅姣佷汉浜°�傚彲瑙侀伒瀹堣鍒欑殑閲嶈鎬с�傛棤浜烘満鐨勯琛屼篃涓�鏍凤紝瑕侀伒瀹堟棤浜烘満鐩稿叧娉曡銆�
+                    </p>
+                    <p class="content">
+                        鏃犱汉鏈虹殑鏃犲簭椋炶鏇剧粡澶氭閫犳垚寤惰鑸彮銆佸共鎵伴�氫俊銆佹崯鍧忚储鐗┿�佽浼や汉鍛樼瓑浜嬫晠锛岄�犳垚浜嗕笉鍙及閲忕殑鎹熷け銆傚綋鍓嶆垜鍥芥斂搴滀负淇濊瘉鏃犱汉鏈虹殑椋炶瀹夊叏锛屾湁搴忎綔涓氾紝鍒跺畾浜嗗椤圭浉鍏宠瀹氥�佸姙娉曪紝瀵规棤浜烘満鐨勯琛岃繘琛屾湁搴忕鐞嗐�傝繖浜涜瀹氥�佸姙娉曞寘鎷负浠�涔堣杩涜椋炶绠″埗銆佷緷鎹粈涔堣繘琛岀鍒躲�佸浣曡繘琛岀鍒剁瓑鏂归潰鐨勫唴瀹癸紝瑙勫畾浜嗕粈涔堟牱鐨勬棤浜烘満鍦ㄤ粈涔堟儏鍐典笅椋炶蹇呴』杩涜绌哄煙鐢宠銆佸湪浠�涔堟儏鍐典笅蹇呴』寰楀埌鐩稿叧鑸┖绠″埗閮ㄩ棬鎵瑰噯鍚庢墠鑳介琛岀瓑銆�
+                    </p>
+                    <p class="content">姘戠敤鏃犱汉鏈烘硶瑙勫叿鏈夌嫭绔嬫�с�佺患鍚堟�с�佸钩鏃舵�с�佸浗闄呮�х瓑鐗规�с��</p>
+                    <p class="quotation">1锛庣嫭绔嬫��</p>
+                    <p class="content">鏃犱汉鏈烘硶瑙勭殑鐙珛鎬ф槸鎸囨棤浜烘満鐨勬硶瑙勮嚜鎴愪竴绫伙紝褰㈡垚涓�涓嫭绔嬬殑娉曞緥浣撶郴銆�</p>
+                    <p class="content">
+                        鏃犱汉鏈虹浉鍏虫硶瑙勪粎閫傜敤浜庢皯鐢ㄦ棤浜烘満鐨勭敓浜с�侀�傝埅銆佽繍琛屽強浜哄憳绠$悊绛夛紝涓嶉�傜敤浜庢湁浜鸿埅绌哄櫒鍙婂浗瀹惰埅绌哄櫒銆傚綋鐒讹紝鐙珛鎬ф槸鍦ㄧ户鎵垮熀纭�涓婄殑鐙珛锛屾槸鍦ㄨ仈绯诲熀纭�涓婄殑鐙珛銆傛病鏈夎仈绯讳笌缁ф壙鐨勭嫭绔嬫槸涓嶅瓨鍦ㄧ殑銆�</p>
+                    <p class="content">
+                        姘戠敤鏃犱汉鏈虹殑鐩稿叧娉曞緥銆佽绔犳潵婧愪簬姘戠敤鑸┖娉曞強鍏剁浉鍏崇殑瑙勭珷鍒跺害锛屽叿鏈変竴瀹氱殑缁ф壙鎬у拰浠庡睘鎬с�備緥濡傦紝銆婁綆绌虹┖鍩熺鐞嗕娇鐢ㄨ瀹氥�嬪弬鑰冦�婁腑鍗庝汉姘戝叡鍜屽浗姘戠敤鑸┖娉曘�嬨�婁腑鍗庝汉姘戝叡鍜屽浗椋炶鍩烘湰瑙勫垯銆嬨�婇�氱敤鑸┖椋炶绠″埗鏉′緥銆嬩互鍙婂啗鏂圭殑鐩稿叧绠$悊瑙勫畾鍒跺畾銆傚悓鏃讹紝姘戠敤鏃犱汉鏈虹殑绌哄煙绠$悊鍙堟湁鍏剁嫭鏈夊睘鎬э紝鍏剁鐞嗙殑绌哄煙鏄寚椋炶楂樺害鍦�1000
+                        m浠ヤ笅鐨勫尯鍩燂紝骞朵笖鏍规嵁鎯呭喌涓嶅悓鎸夌収绠″埗绌哄煙銆佹姤鍛婄┖鍩熴�佺洃瑙嗙┖鍩熴�佺洰瑙嗛琛岃埅绾跨瓑杩涜浜嗗垎绫伙紝鎵�浠ユ棤浜烘満娉曞緥娉曡鍏锋湁鐙珛鎬с��</p>
+                    <p class="quotation">2锛庣患鍚堟��</p>
+                    <p class="content">缁煎悎鎬ф槸鎸囧皢涓嶅悓閮ㄥ垎銆佷笉鍚屼簨鐗╃殑灞炴�у悎骞舵垚涓轰竴涓暣浣撶殑鐗规�с��</p>
+                    <p class="content">鏃犱汉鏈烘硶瑙勬槸璋冩暣鏃犱汉鏈虹敓浜с�佽繍钀ュ強鍏剁浉鍏抽鍩熶腑浜х敓鐨勭ぞ浼氬叧绯荤殑鍚勭娉曞緥鎵嬫銆傝繖浜涙墜娈电旱妯氦閿欙紝娉曞緥璋冩暣鏂规硶澶氱澶氭牱銆�</p>
+                    <p class="content">
+                        鏃犱汉鏈烘硶瑙勭殑缁煎悎鎬т富瑕佷綋鐜板湪娑夊強鐨勬硶寰嬫棦鏈夋皯鐢ㄨ埅绌虹殑鐩稿叧娉曞緥娉曡锛屽張鏈夊娉曘�佹皵璞℃硶銆佸浗瀹跺畨鍏ㄦ硶銆佹皯娉曘�佸垜娉曘�佹不瀹夋潯渚嬬瓑鏂归潰鐨勫唴瀹癸紝杩樻秹鍙婄ぞ浼氬叧绯荤殑鏂规柟闈㈤潰涓婏紝鍥犳鏃犱汉鏈烘硶寰嬫硶瑙勫叿鏈夊皢鐩稿叧娉曡杩涜铻嶅悎鐨勭患鍚堟�с��
+                    </p>
+                    <p class="quotation">3锛庡钩鏃舵��</p>
+                    <p class="content">
+                        骞虫椂鎬ф槸鎸囨棤浜烘満鐩稿叧娉曡浠呯敤浜庤皟鏁村拰骞虫椂鏈熸皯鐢ㄦ棤浜烘満鑸┖娲诲姩鍙婂叾鐩稿叧棰嗗煙浜х敓鐨勭ぞ浼氬叧绯汇�傚鏋滈亣鎴樹簤鎴栧浗瀹跺浜庣揣鎬ョ姸鎬侊紝姘戠敤鏃犱汉鑸┖鍒欒鍙楀埌鎴樻椂娉曚护鎴栫揣鎬ョ姸鎬佷笅鐨勯潪甯告硶鐨勭害鏉熴��</p>
+
+                </div>
+            </div>
+        </div>
+        <!-- 10椤� -->
+        <div class="page-box" page="16">
+            <div v-if="showPageList.indexOf(16) > -1">
+                <ul class="fl al-c jc-sb pad-t-55 pad-l-80 pad-r-80">
+                    <li class="header-left-Number">
+                        <span class="mr-10 pNum">10</span>
+                        <span><span class="span-box-title"></span>鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�<span class="span-box-title"></span></span>
+                    </li>
+                    <li class="header-left-text">
+                        <img class="img-c" src="../../assets/images/yemei01.png" alt="" />
+                    </li>
+                </ul>
+                <div class="bodystyle">
+                    <p class="quotation">4锛庡浗闄呮��</p>
+                    <p class="content">
+                        鍥介檯鎬т綋鐜板湪娉曞緥娉曡鏉ユ簮鐨勫浗闄呮�т笂銆傜敱浜庢皯鐢ㄦ棤浜烘満鍦ㄥ叏鐞冭寖鍥村唴鍙戝睍杩呴�燂紝鍥介檯姘戣埅缁勭粐宸茬粡寮�濮嬩负鏃犱汉鏈虹郴缁熷埗瀹氭爣鍑嗗拰寤鸿鎺柦銆佺┖涓埅琛屾湇鍔$▼搴忓強鎸囧鏉愭枡锛屽苟涓斿涓浗瀹跺彂甯冧簡绠$悊瑙勫畾銆傛垜鍥芥棤浜烘満娉曞緥娉曡鐨勫埗瀹氭棦鍙傜収浜嗗叾浠栧浗瀹舵垨鍥介檯缁勭粐鐨勭浉鍏虫潯鏂囷紝濡傜編鍥借仈閭﹁埅绌虹鐞嗗眬锛團ederal
+                        Aviation Administration锛孎AA锛夐甯冪殑107閮ㄨ绔犵瓑锛屼篃缁撳悎浜嗙浉鍏崇殑鍒や緥绛夈�傚洜姝わ紝鏃犱汉鏈烘硶寰嬫硶瑙勫叿鏈変竴瀹氱殑鍥介檯鎬с��</p>
+                    <p class="content"><span class="bold">鐩稿叧鐭ヨ瘑鐐�2锛氱┖鍩熺煡璇�</span></p>
+                    <p class="content">
+                        鏃犱汉鏈虹殑绌哄煙绠$悊涓昏浠庢棤浜烘満绌哄煙鍒掕鐨勫師鍒欍�佸垝璁剧殑渚濇嵁銆佸垝璁剧殑鍐呭锛岀┖涓氦閫氱鍒剁殑渚濇嵁銆佸唴瀹瑰拰鐩稿簲鏉℃绛夋柟闈紝鎶婃棤浜烘満椋炶绌哄煙鐨勪娇鐢ㄤ笌绠$悊绾冲叆娉曟不鍖栥�佹瑙勫寲銆佺粺涓�鍖栫殑绠$悊涔嬩腑锛屽嵆鐢辫埅绌虹鍒堕儴闂ㄨ繘琛岀粺涓�鐨勭鐞嗐�傚彧鏈夎繖鏍锋墠鑳戒繚璇佺┖涓氦閫氬畨鍏紝淇濊瘉鍚勭鑸┖鍣ㄦ湁搴忋�佸畨鍏ㄨ繍琛屻��
+                    </p>
+                    <p class="content">鏃犱汉鏈虹殑绌哄煙鏄寚鏃犱汉鏈洪琛岀殑绌洪棿銆傜洰鍓嶆棤浜烘満鐨勯琛岄珮搴︿负0锝�1000
+                        m銆傛按骞崇┖闂存牴鎹渶瑕佸垝鍒嗕负绠″埗绌哄煙銆佹姤鍛婄┖鍩熴�佺洃瑙嗙┖鍩熴�佺洰瑙嗛琛岃埅绾裤�佽瀺鍚堢┖鍩熷拰闅旂绌哄煙鍏被銆�</p>
+                    <p class="quotation">1锛庣鍒剁┖鍩�</p>
+                    <p class="content">绠″埗绌哄煙鏄寚閲嶇偣鐩爣澶栧洿5 km鍖哄煙銆佷互姘戣埅鏈哄満璺戦亾涓績鐐逛负涓績鐨勮窇閬撲袱澶村悇25 km鍖哄煙鍜岃窇閬撲袱渚у悇10
+                        km鐨勫尯鍩熴�傚湪璇ュ尯鍩熷唴锛屾棤浜烘満闇�鑾峰緱鎵瑰噯骞舵寔鏈夋墽鐓ф柟鍙琛屻��</p>
+                    <p class="quotation">2锛庢姤鍛婄┖鍩�</p>
+                    <p class="content">鎶ュ憡绌哄煙鏄寚閫氱敤鏈哄満鍜屼复鏃惰捣闄嶇偣10 km鍖哄煙锛屼笖涓嶅緱鍒掕鍦ㄧ┖涓鍖鸿竟缂樺20 km鑼冨洿鍐呭拰鍏ㄥ浗閲嶇偣鐩爣澶栫紭10
+                        km鑼冨洿鍐呫�傚湪璇ュ尯鍩熷唴锛屾棤浜烘満椋炶蹇呴』鎶ュ椋炶璁″垝锛岄┚椹跺憳椤绘寔鐓ч琛屻��</p>
+                    <p class="quotation">3锛庣洃瑙嗙┖鍩�</p>
+                    <p class="content">鐩戣绌哄煙鏄寚浣嶄簬绠″埗绌哄煙鍜屾姤鍛婄┖鍩熶箣澶栫殑绌哄煙銆�</p>
+                    <p class="quotation">4锛庣洰瑙嗛琛岃埅绾�</p>
+                    <p class="content">鐩椋炶鑸嚎鏄寚鑸┖鍣ㄥ浜庨┚椹跺憳鐩瑙嗚窛鍗婂緞500 m锛岀浉瀵归珮搴︿綆浜�120 m鐨勮寖鍥淬��</p>
+                    <p class="quotation">5锛庤瀺鍚堢┖鍩�</p>
+                    <p class="content">铻嶅悎绌哄煙鏄寚鏈夊叾浠栬埅绌哄櫒鍚屾椂杩愯鐨勭┖鍩熴��</p>
+                </div>
+            </div>
+        </div>
+        <!-- 11椤� -->
+        <div class="page-box" page="17">
+            <div v-if="showPageList.indexOf(17) > -1">
+                <ul class="fl al-fe pad-t-55 pad-l-80 jc-fe mb-45  h-25">
+                    <li class="header-right-Number header-right-title">椤圭洰涓�</li>
+                    <li class="header-right-Number">鏃犱汉鏈哄熀纭�鐭ヨ瘑</li>
+                    <li class="p-Num">11</li>
+                    <li class="header-right-Number cloud">
+                        <img class="" src="../../assets/images/yemei02.png" alt="" />
+                    </li>
+                    <li class="header-right-last"><br /></li>
+                    <li class="header-right-end"><br /></li>
+                </ul>
+                <div class="bodystyle">
+                    <p class="quotation">6锛庨殧绂荤┖鍩�</p>
+                    <p class="content">闅旂绌哄煙鏄寚涓撻棬鍒嗛厤缁欐棤浜烘満杩愯鐨勭┖鍩燂紝閫氳繃闄愬埗鍏朵粬鑸┖鍣ㄧ殑杩涘叆浠ヨ閬跨鎾為闄┿��</p>
+                    <p class="content"><span class="bold">鐩稿叧鐭ヨ瘑鐐�3锛氱┖涓氦閫氱鍒�</span></p>
+                    <p class="content">绌轰腑浜ら�氱鍒舵槸鎸囪埅绌虹鍒堕儴闂ㄥ埄鐢ㄦ妧鏈墜娈靛鏃犱汉鏈虹殑椋炶璁″垝銆侀琛屽尯鍩熴�侀琛岄珮搴︾瓑杩愯鎯呭喌杩涜绠$悊鍜屾帶鍒躲��</p>
+                    <p class="quotation">1锛庣┖涓氦閫氱鍒剁殑鐩殑</p>
+                    <p class="content">绌轰腑浜ら�氱鍒剁殑鐩殑鍦ㄤ簬闃叉鏃犱汉鏈轰笌绌轰腑椋炴満銆佸湴闈㈤殰纰嶇墿鐩告挒锛屽苟鏈夋晥鍦板埄鐢ㄧ┖鍩燂紝瀹夊叏鍦板姞閫熺┖涓氦閫氳繍杈撱�傚叾鍐呭鍖呮嫭绌轰腑浜ら�氱鍒朵笟鍔°�侀琛屾儏鎶ュ拰鍛婅涓氬姟銆�</p>
+                    <p class="quotation">2锛庣┖涓氦閫氱鍒剁殑浠诲姟</p>
+                    <p class="content">绌轰腑浜ら�氱鍒剁殑浠诲姟鏄淮鎶ょ┖涓З搴忥紝纭繚椋炶瀹夊叏锛岄槻姝㈣埅绌哄櫒鐩告挒锛岄槻姝㈡満鍦哄強鍏堕檮杩戠┖鍩熷唴鐨勮埅绌哄櫒涓庨殰纰嶇墿鐩告挒锛屼粠鑰屼繚闅滅┖涓氦閫氱晠閫氾紝淇濊瘉椋炶瀹夊叏锛屾彁楂橀琛屾晥鐜囥��
+                    </p>
+                    <p class="quotation">3锛庣┖涓氦閫氱鍒舵湇鍔′富浣�</p>
+                    <p class="content">绌轰腑浜ら�氱鍒舵湇鍔′富浣撴槸鎸囧叿澶囩┖涓氦閫氱鍒舵湇鍔¤祫鏍煎苟鎻愪緵绌轰腑浜ら�氱鍒舵湇鍔$殑鍗曚綅鍜屼汉鍛樸��</p>
+                    <p class="quotation">4锛庣┖涓氦閫氱鍒舵湇鍔″崟浣�</p>
+                    <p class="content">绌轰腑浜ら�氱鍒舵湇鍔″崟浣嶅寘鎷満鍦哄鍙板強绌轰腑浜ら�氱鍒跺銆佺┖涓氦閫氭湇鍔℃姤鍛婂銆佽繘杩戠鍒跺銆佸尯鍩熺鍒跺銆佹皯鑸湴鍖虹鐞嗗眬璋冨害瀹ゃ�佷腑鍥芥皯鐢ㄨ埅绌哄眬绌轰腑浜ら�氱鐞嗗眬鎬昏皟搴﹀銆�</p>
+                    <p class="quotation">5锛庣┖涓氦閫氱鍒舵湇鍔′汉鍛�</p>
+                    <p class="content">绌轰腑浜ら�氱鍒舵湇鍔′汉鍛樺寘鎷┖涓氦閫氱鍒跺憳銆佺┖涓埅琛岃皟搴﹀憳銆侀琛岀娲惧憳銆佽埅琛屾儏鎶ュ憳銆�</p>
+                    <p class="content">
+                        绌轰腑浜ら�氱鍒堕�氬父閲囩敤绋嬪簭绠″埗涓庨浄杈剧鍒朵袱绉嶆柟娉曘�傛棤璁烘槸绋嬪簭绠″埗杩樻槸闆疯揪绠″埗锛岄兘鏄负浜嗗姞寮哄鏃犱汉鏈鸿繍琛岀殑绠℃帶锛岀淮鎶ょ┖涓З搴忥紝纭繚椋炶瀹夊叏銆傛棤浜烘満鐨勭┖涓氦閫氱鍒跺繀椤绘敞閲嶆棤浜烘満椋炶鐨勫姩鎬佹帶鍒躲��
+                    </p>
+                    <p class="content">鏃犱汉鏈洪琛屽崟浣嶃�佷釜浜哄簲褰撲笌绌虹閮ㄩ棬寤虹珛鏈夋晥鐨勬矡閫氬崗璋冩満鍒跺拰椤虹晠鐨勫崗鍚岄�氭姤锛屽鏃犱汉鏈哄強鍏堕琛屾椿鍔ㄥ疄鏂借仈鍚堢鐞嗭紝淇冭繘鎴戝浗绌虹鏀归潻鐨勬繁鍏ユ帹杩涘拰鏃犱汉鏈哄簲鐢ㄧ殑鍋ュ悍鍙戝睍銆�
+                    </p>
+                    <p class="content">鏃犱汉鏈虹┖涓氦閫氳繍琛岀鍒剁殑鍐呭涓昏鍖呮嫭杩愯鍔ㄦ�佹帉鎻°�佹棤浜烘満瀹夊叏闂撮殧鏈嶅姟銆佹棤浜烘満杩愯搴旀�ュ鐞嗐�佹棤浜烘満杩濊杩愯鏌ュ銆佹棤浜烘満绌轰腑绠″埗淇濋殰涓庡崗璋冪瓑銆�</p>
+                </div>
+            </div>
+        </div>
+        <!-- 12椤� -->
+        <div class="page-box" page="18">
+            <div v-if="showPageList.indexOf(18) > -1">
+                <ul class="fl al-c jc-sb pad-t-55 pad-l-80 pad-r-80">
+                    <li class="header-left-Number">
+                        <span class="mr-10 pNum">12</span>
+                        <span><span class="span-box-title"></span>鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�<span class="span-box-title"></span></span>
+                    </li>
+                    <li class="header-left-text">
+                        <img class="img-c" src="../../assets/images/yemei01.png" alt="" />
+                    </li>
+                </ul>
+                <div class="bodystyle">
+                     <p class="td-0 mt-10 mb-10"><span class="bj2">路瑙嗛搴撀�</span></p>
+                    <div class="bk-video fl">
+                        <div class="fl jc-fs fw-w">
+                            <div style="width: 290px; height: auto; margin: 0 5px;"
+                                v-for="(item, index) in videoDataTwo.videoMd5" :key="index">
+                                <video webkit-playsinline="true" x-webkit-airplay="true" playsinline="true"
+                                    x5-video-orientation="h5" x5-video-player-fullscreen="true" x5-playsinline=""
+                                    controls controlslist="nodownload" class="video-border w100"
+                                    :src="item.handleMd5"></video>
+                                <div class="fl al-c jc-c">
+                                    <p class="td-0" style="font-size: 12px;">{{ item.name }}</p>
+                                    <el-tooltip class="item" effect="dark"
+                                        :content="item.isCollectVideo ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                        <img :src="collectResourceList.findIndex(citem => citem.id == item.md5) > -1 ? collectCheck : collectImg"
+                                            alt="" class="collect-btn1" @click="handleCollect(item)" />
+                                    </el-tooltip>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <p class="td-0 mb-10 mt-10"><img class="h-pic" src="../../assets/images/0017_03.jpg" alt="" /></p>
+                    <div v-for="(item, index) in questionDataTwo.slice(0, 8)" :key="index">
+                        <p class="block">{{ index + 1 }}.{{ item.txt }}</p>
+                        <p class="block" v-for="(citem, cindex) in item.options" :key="cindex">
+                            <input type="radio" :value="citem.value" v-model="item.userAnswer"
+                                @change="saveQuestionDataTwo" />
+                            {{ citem.txt }}
+                        </p>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!-- 13椤� -->
+        <div class="page-box" page="19">
+            <div v-if="showPageList.indexOf(19) > -1">
+                <ul class="fl al-fe pad-t-55 pad-l-80 jc-fe mb-45  h-25">
+                    <li class="header-right-Number header-right-title">椤圭洰涓�</li>
+                    <li class="header-right-Number">鏃犱汉鏈哄熀纭�鐭ヨ瘑</li>
+                    <li class="p-Num">13</li>
+                    <li class="header-right-Number cloud">
+                        <img class="" src="../../assets/images/yemei02.png" alt="" />
+                    </li>
+                    <li class="header-right-last"><br /></li>
+                    <li class="header-right-end"><br /></li>
+                </ul>
+                <div class="bodystyle">
+                    <div v-for="(item, index) in questionDataTwo.slice(8, 19)" :key="index">
+                        <p class="block">{{ index + 9 }}.{{ item.txt }}</p>
+                        <p class="block" v-for="(citem, cindex) in item.options" :key="cindex">
+                            <input type="radio" :value="citem.value" v-model="item.userAnswer"
+                                @change="saveQuestionDataTwo" />
+                            {{ citem.txt }}
+                        </p>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!-- 14椤� -->
+        <div class="page-box" page="20">
+            <div v-if="showPageList.indexOf(20) > -1">
+                <ul class="fl al-c jc-sb pad-t-55 pad-l-80 pad-r-80">
+                    <li class="header-left-Number">
+                        <span class="mr-10 pNum">14</span>
+                        <span><span class="span-box-title"></span>鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�<span class="span-box-title"></span></span>
+                    </li>
+                    <li class="header-left-text">
+                        <img class="img-c" src="../../assets/images/yemei01.png" alt="" />
+                    </li>
+                </ul>
+                <div class="bodystyle">
+                    <div v-for="(item, index) in questionDataTwo.slice(19, 20)" :key="index">
+                        <p class="block">{{ index + 20 }}.{{ item.txt }}</p>
+                        <p class="block" v-for="(citem, cindex) in item.options" :key="cindex">
+                            <input type="radio" :value="citem.value" v-model="item.userAnswer"
+                                @change="saveQuestionDataTwo" />
+                            {{ citem.txt }}
+                        </p>
+                    </div>
+                    <p class="td-0 mb-10 mt-10"><img class="h-pic" src="../../assets/images/0019_02.jpg" alt="" /></p>
+                    <p class="content">閫氳繃鏈换鍔$殑瀛︿範锛岃鏍规嵁鑷繁鐨勫涔犳儏鍐靛~鍐欎换鍔¤瘎浠疯〃锛岃瘎鍒嗘椂瑕佺患鍚堣�冭檻灏忕粍涔嬮棿鐨勫悎浣溿�佹矡閫氳兘鍔涚瓑鑱屼笟绱犲吇锛堟寜鑷瘎鍒嗘暟40%銆佹暀甯堣瘎鍒�60%璁$畻寰楀垎锛夈��</p>
+                    <table border="1" cellpadding="4" cellspacing="0"
+                        style="border-color: #677fb7; border-collapse: collapse" class="fz-14 img-0">
+                        <tr class="img-0 table-th-bc">
+                            <th>搴忓彿</th>
+                            <th>璇惧悗浠诲姟</th>
+                            <th>鏍囧噯璇勪环</th>
+                            <th>鑷瘎鍒嗘暟</th>
+                            <th>鏁欏笀璇勫垎</th>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td rowspan="3" class="center">1</td>
+                            <td rowspan="3" class="center">鏃犱汉鏈烘硶瑙勭殑涓昏鍐呭(30鍒�)</td>
+                            <td>瀵规棤浜烘満鐩稿叧娉曡鏄庣‘(30 鍒�)</td>
+                            <td rowspan="3" class="center">
+                                <input v-model="tableData.unitTwo.one" type="number" step="1" min="0"
+                                    class="table-textarea" @change="setBookTableData">
+                            </td>
+                            <td rowspan="3" class="center">
+                                <input v-model="tableData.unitTwo.two" type="number" step="1" min="0"
+                                    class="table-textarea" @change="setBookTableData">
+                            </td>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td>鏃犱汉鏈虹郴缁熺殑瀹氫箟鍙婂垎绫昏緝娓呮櫚(30鍒�)</td>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td>鏃犱汉鏈虹郴缁熺殑瀹氫箟鍙婂垎绫讳笉娓呮櫚(10鍒�)</td>
+                        </tr>
+                        <tr class="table-tr-bc-one">
+                            <td rowspan="3" class="center">2</td>
+                            <td rowspan="3" class="center">鏃犱汉鏈虹郴缁熺殑鍒嗙被(40鍒�)</td>
+                            <td>瀵规棤浜烘満绯荤粺鐨勫悇缁勬垚閮ㄥ垎鍙婂叾浣滅敤鏄庣‘(40鍒�)</td>
+                            <td rowspan="3" class="center"><input v-model="tableData.unitTwo.three" type="number"
+                                    step="1" min="0" class="table-textarea" @change="setBookTableData"></td>
+                            <td rowspan="3" class="center"><input v-model="tableData.unitTwo.four" type="number"
+                                    step="1" min="0" class="table-textarea" @change="setBookTableData"></td>
+                        </tr>
+                        <tr class="table-tr-bc-one">
+                            <td>瀵规棤浜烘満绯荤粺鐨勫悇缁勬垚閮ㄥ垎鍙婂叾浣滅敤杈冩槑纭�(30鍒�)</td>
+                        </tr>
+                        <tr class="table-tr-bc-one">
+                            <td>瀵规棤浜烘満绯荤粺鐨勫悇缁勬垚閮ㄥ垎鍙婂叾浣滅敤涓嶆槑纭�(10鍒�)</td>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td rowspan="2" class="center">3</td>
+                            <td rowspan="2" class="center">鍥㈤槦鍚堜綔(20鍒�)</td>
+                            <td>浜掑府浜掑姪锛屽彲浠ユ甯告矡閫氫氦娴�(20鍒�)</td>
+                            <td rowspan="2" class="center"><input v-model="tableData.unitTwo.five" type="number"
+                                    step="1" min="0" class="table-textarea" @change="setBookTableData"></td>
+                            <td rowspan="2" class="center"><input v-model="tableData.unitTwo.six" type="number" step="1"
+                                    min="0" class="table-textarea" @change="setBookTableData"></td>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td>浜掑府浜掑姪锛屼氦娴佽緝灏戯紝甯︽湁鑴炬皵(10鍒�)</td>
+                        </tr>
+                    </table>
+                    <p><br></p>
+                    <p class="content td-0 mt-30 mb-20"><img class="h-pic" src="../../assets/images/0026_02.jpg"
+                            alt="" /></p>
+                    <p class="content td-0 mt-10 mb-20"><img class="h-pic" src="../../assets/images/0014_03.jpg"
+                            alt="" /></p>
+                    <div class="bodyPic"><img class="img-0" src="../../assets/images/0026-03.jpg" alt=""
+                            active="true" />
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!-- 15椤� -->
+        <div class="page-box" page="21">
+            <div v-if="showPageList.indexOf(21) > -1">
+                <ul class="fl al-fe pad-t-55 pad-l-80 jc-fe mb-45  h-25">
+                    <li class="header-right-Number header-right-title">椤圭洰涓�</li>
+                    <li class="header-right-Number">鏃犱汉鏈哄熀纭�鐭ヨ瘑</li>
+                    <li class="p-Num">15</li>
+                    <li class="header-right-Number cloud">
+                        <img class="" src="../../assets/images/yemei02.png" alt="" />
+                    </li>
+                    <li class="header-right-last"><br /></li>
+                    <li class="header-right-end"><br /></li>
+                </ul>
+                <div class="bodystyle">
+                    <p class="content td-0 mt-10 mb-10"><img class="h-pic" src="../../assets/images/0014_05.jpg"
+                            alt="" /></p>
+                    <p class="content">椋炶鍣ㄥ湪椋炶鏃朵笉浠呰鍙楀埌绌哄煙鐜鐨勫奖鍝嶏紝杩樺彈鍒板ぇ姘旂幆澧冪殑褰卞搷銆傚ぇ姘斿寘鎷皵娓┿�佹皵鍘嬨�佺┖姘旀箍搴︾瓑姘旇薄瑕佺礌銆備簡瑙i琛屽櫒鎵�杩愯鐨勫ぇ姘旂幆澧冩墠鑳藉疄鐜板畨鍏ㄩ珮鏁堢殑椋炶銆�</p>
+                    <p class="content td-0 mt-10 mb-10"><img class="h-pic" src="../../assets/images/0014_06.jpg"
+                            alt="" /></p>
+                    <p class="content">澶ф皵椋炶鐜涓昏鎸囬琛屽櫒鍦ㄥぇ姘斿眰鍐呴琛屾椂鎵�澶勭殑鐜鏉′欢銆傚寘鍥村湴鐞冪殑绌烘皵灞傦紙鍗冲ぇ姘旓級鏄埅绌哄櫒鐨勫敮涓�椋炶娲诲姩鐜锛屼篃鏄寮瑰拰鑸ぉ鍣ㄧ殑閲嶈椋炶鐜銆�</p>
+                    <p class="content"><span class="bold">鐩稿叧鐭ヨ瘑鐐�1锛氬ぇ姘旂殑鍩烘湰瑕佺礌</span></p>
+                    <p class="content">
+                        琛ㄧず澶ф皵鐘舵�佺殑鐗╃悊閲忓拰鐗╃悊鐜拌薄閫氱О涓烘皵璞¤绱犮�傛皵娓┿�佹皵鍘嬨�佺┖姘旀箍搴︾瓑鐗╃悊閲忔槸姘旇薄瑕佺礌锛岄銆佷簯銆侀檷姘寸瓑鐜拌薄涔熸槸姘旇薄瑕佺礌锛屽畠浠兘鑳藉湪涓�瀹氱▼搴︿笂鍙嶆槧褰撴椂鐨勫ぇ姘旂姸鍐点�傚叾涓紝姘旀俯銆佹皵鍘嬪拰绌烘皵婀垮害琚О涓轰笁澶ф皵璞¤绱犮��
+                    </p>
+                    <p class="quotation">1锛庢皵娓�</p>
+                    <p class="content">
+                        姘旀俯鏄〃绀虹┖姘斿喎鐑▼搴︾殑鐗╃悊閲忥紝瀹冨疄璐ㄤ笂鏄┖姘斿垎瀛愮殑骞冲潎鍔ㄨ兘澶у皬鐨勫畯瑙傝〃鐜般�備竴鑸儏鍐典笅锛屽彲灏嗙┖姘旇涓虹悊鎯虫皵浣擄紝杩欐牱绌烘皵鍒嗗瓙鐨勫钩鍧囧姩鑳藉氨鏄┖姘斿唴鑳斤紝鍥犳姘旀俯鐨勫崌楂樻垨闄嶄綆锛屼篃灏辨槸绌烘皵鍐呰兘鐨勫鍔犳垨鍑忓皯銆傚湪瀹為檯澶ф皵涓紝姘旀俯鍙樺寲鐨勫熀鏈柟寮忔湁闈炵粷鐑彉鍖栧拰缁濈儹鍙樺寲涓ょ銆傚鏌愪竴鍦扮偣鐨勬皵娓╋紙鍙堢О灞�鍦版皵娓╋級鏉ヨ锛屽叾鍙樺寲闄や簡涓庤鍦扮偣鐨勬皵鍧楁俯搴︾殑缁濈儹鍙樺寲鍜岄潪缁濈儹鍙樺寲鏈夊叧澶栵紝杩樹笌涓嶅悓姘斿潡娓╁害鐨勭Щ鍔ㄦ湁鍏炽��
+                    </p>
+                    <p class="quotation">2锛庢皵鍘�</p>
+                    <p class="content">
+                        姘斿帇鍗冲ぇ姘斿帇鍔涳紝鏄寚涓庡ぇ姘旂浉鎺ヨЕ鐨勯潰涓婏紝绌烘皵鍒嗗瓙浣滅敤鍦ㄥ崟浣嶉潰绉笂鐨勫姏銆傝繖涓姏鏄敱绌烘皵鍒嗗瓙瀵规帴瑙﹂潰鐨勭鎾炲紩璧风殑锛屼篃鏄┖姘斿垎瀛愯繍鍔ㄦ墍浜х敓鐨勫帇鍔涖�傛皵鍘嬬殑鍗曚綅鏄笗锛圥a锛夈�傚湪姘旇薄瀛︿腑锛屼汉浠竴鑸敤鐧惧笗锛坔Pa锛夛紝鍏舵崲绠楀叧绯绘湁1
+                        hPa=100 N/m<span class="super">2</span>銆�</p>
+                    <p class="content">
+                        姘斿帇闅忛珮搴︾殑鍙樺寲鑰屽彉鍖栥�傚綋澶ф皵澶勪簬闈欐鐘舵�佹椂锛屾煇涓�楂樺害涓婄殑姘斿帇鍊肩瓑浜庡叾鍗曚綅姘村钩闈㈢Н涓婃墍鎵垮彈鐨勪笂閮ㄥぇ姘旀煴鐨勯噸鍔涖�傞殢鐫�楂樺害澧炲姞锛屽叾涓婇儴澶ф皵鏌辫秺鏉ヨ秺鐭紝姘旀煴涓┖姘斿瘑搴﹁秺鏉ヨ秺灏忥紝姘旀煴閲嶅姏涔熷氨瓒婃潵瓒婂皬銆�
+                    </p>
+                    <p class="content">鑸┖棰嗗煙甯哥敤鐨勬皵鍘嬪寘鎷互涓嬪嚑绫汇��</p>
+                    <p class="content">鏈珯姘斿帇锛氭寚姘旇薄鍙版皵鍘嬭〃鐩存帴娴嬪緱鐨勬皵鍘嬨�傜敱浜庡悇娴嬬珯鎵�澶勭殑鍦扮悊浣嶇疆鍙婃捣鎷斾笉鍚岋紝鏈珯姘斿帇甯告湁杈冨ぇ宸紓銆�</p>
+                    <p class="content">淇娴峰钩闈㈡皵鍘嬶細鎸囩敱鏈珯姘斿帇鎺ㄧ畻鍒板悓涓�鍦扮偣娴峰钩闈㈤珮搴︿笂鐨勬皵鍘嬪�笺�傝繍鐢ㄤ慨姝f捣骞抽潰姘斿帇渚夸簬鍒嗘瀽鍜岀爺绌舵皵鍘嬬殑姘村钩鍒嗗竷鎯呭喌銆傛捣鎷旈珮浜�1500
+                        m鐨勬祴绔欎笉鎺ㄧ畻淇娴峰钩闈㈡皵鍘嬶紝鍥犱负鎺ㄧ畻鍑虹殑淇娴峰钩闈㈡皵鍘嬬殑璇樊鍙兘杩囧ぇ锛屽け鍘绘剰涔夈��</p>
+                </div>
+            </div>
+        </div>
+        <!-- 16椤� -->
+        <div class="page-box" page="22">
+            <div v-if="showPageList.indexOf(22) > -1">
+                <ul class="fl al-c jc-sb pad-t-55 pad-l-80 pad-r-80">
+                    <li class="header-left-Number">
+                        <span class="mr-10 pNum">16</span>
+                        <span><span class="span-box-title"></span>鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�<span class="span-box-title"></span></span>
+                    </li>
+                    <li class="header-left-text">
+                        <img class="img-c" src="../../assets/images/yemei01.png" alt="" />
+                    </li>
+                </ul>
+                <div class="bodystyle">
+                    <p class="content">
+                        鍦洪潰姘斿帇锛氭寚鐫�闄嗗尯锛堣窇閬撳叆鍙g锛夋渶楂樼偣鐨勬皵鍘嬨�傚満闈㈡皵鍘嬩篃鏄敱鏈珯姘斿帇鎺ㄧ畻鍑烘潵鐨勩�傞鏈鸿捣闄嶆椂锛屼负浜嗗噯纭帉鎻″叾鐩稿璺戦亾鐨勯珮搴︼紝灏遍渶瑕佺煡閬撳満闈㈡皵鍘嬨�傚満闈㈡皵鍘嬩篃鍙敱鏈哄満鏍囬珮鐐瑰鐨勬皵鍘嬩唬鏇裤��</p>
+                    <p class="content">鏍囧噯娴峰钩闈㈡皵鍘嬶細澶ф皵澶勪簬鏍囧噯鐘舵�佷笅鐨勬捣骞抽潰姘斿帇琚О涓烘爣鍑嗘捣骞抽潰姘斿帇锛屽叾鍊间负1013.25 hPa銆傛捣骞抽潰姘斿帇鏄粡甯稿彉鍖栫殑锛岃�屾爣鍑嗘捣骞抽潰姘斿帇鏄竴涓父鏁般��</p>
+                    <p class="content">
+                        椋炴満椋炶鏃讹紝娴嬮噺鍏堕琛岄珮搴﹀閲囩敤鏃犵嚎鐢甸珮搴﹁〃鍜屾皵鍘嬪紡楂樺害琛ㄣ�傛棤绾跨數楂樺害琛ㄦ墍娴嬮噺鐨勬槸椋炴満鐩稿浜庢墍椋炶秺鍦板尯鍦拌〃鐨勫瀭鐩磋窛绂汇�傛棤绾跨數楂樺害琛ㄨ兘涓嶆柇鍦版寚绀洪鏈虹浉瀵逛簬鎵�椋炶秺鍦拌〃鐨勯珮搴︼紝骞跺鍦板舰鐨勪换浣曞彉鍖栭兘寰堚�滄晱鎰熲�濄��
+                    </p>
+                    <p class="content">
+                        姘斿帇寮忛珮搴﹁〃鏄富瑕佺殑鑸浠〃锛屽畠鏄竴涓珮搴︾伒鏁忕殑绌虹洅姘斿帇琛紝浣嗗埢搴︾洏涓婃爣鍑虹殑鏄珮搴︺�傚彟澶栵紝鏈変竴涓緟鍔╁埢搴︾洏鍙樉绀烘皵鍘嬶紝楂樺害鍜屾皵鍘嬮兘鍙�氳繃鏃嬮挳璋冨畾銆傛皵鍘嬪紡楂樺害琛ㄧ殑鍒诲害鐩樻槸鍦ㄦ爣鍑嗗ぇ姘旀潯浠朵笅鎸夋皵鍘嬮殢楂樺害鐨勫彉鍖栬寰嬭�岀‘瀹氱殑锛屽嵆姘斿帇寮忛珮搴﹁〃鎵�娴嬮噺鐨勬槸姘斿帇锛屾牴鎹爣鍑嗗ぇ姘斾腑姘斿帇涓庨珮搴︾殑鍏崇郴锛屽氨鍙互琛ㄧず楂樺害銆�
+                    </p>
+                    <p class="content">椋炶涓父鐢ㄧ殑姘斿帇楂樺害鏈変互涓嬪嚑绉嶃��</p>
+                    <p class="content">
+                        鍦洪潰姘斿帇楂樺害锛氬畠鏄寚椋炴満鐩稿浜庤捣椋炴垨鐫�闄嗘満鍦鸿窇閬撶殑楂樺害銆備负浣挎皵鍘嬪紡楂樺害琛ㄦ寚绀哄満闈㈡皵鍘嬮珮搴︼紝椋炶鍛橀渶鎸夊満闈㈡皵鍘嬫潵鎷ㄦ姘斿帇寮忛珮搴﹁〃锛屽皢姘斿帇寮忛珮搴﹁〃鐨勬皵鍘嬪埢搴︽嫧姝e埌鍦洪潰姘斿帇鍊间笂銆�</p>
+                    <p class="content">
+                        闈㈤珮搴︼細瀹冩槸鎸囩浉瀵逛簬鏍囧噯娴峰钩闈㈢殑楂樺害銆傞鏈哄湪鑸嚎涓婇琛屾椂锛岄兘瑕佹寜鏍囧噯娴峰钩闈㈡皵鍘嬭皟鏁撮珮搴﹁〃锛屽叾鐩殑鏄娇鎵�鏈夊湪鑸嚎涓婇琛岀殑椋炴満閮芥湁鐩稿悓鐨勨�滈浂鐐光�濋珮搴︼紝骞舵寜姝や繚鎸佽瀹氱殑鑸嚎浠〃楂樺害椋炶锛屼互閬垮厤椋炴満鍦ㄧ┖涓浉鎾炪��
+                    </p>
+                    <p class="content">
+                        淇娴峰钩闈㈡皵鍘嬮珮搴︼細濡傛灉鎸変慨姝f捣骞抽潰姘斿帇鎷ㄦ姘斿帇寮忛珮搴﹁〃锛屽垯楂樺害琛ㄥ皢鏄剧ず淇娴峰钩闈㈡皵鍘嬮珮搴︺�傚湪椋炴満鐫�闄嗘椂锛屽皢楂樺害琛ㄦ寚绀洪珮搴﹀噺鍘绘満鍦烘爣楂樺氨绛変簬椋炴満璺濇満鍦鸿窇閬撻潰鐨勯珮搴︺��</p>
+                    <p class="quotation">3锛庣┖姘旀箍搴�</p>
+                    <p class="content">澶ф皵涓惈鏈夋按钂告皵锛屽ぇ姘斾腑鐨勬按钂告皵鍚噺鏄殢鏃堕棿銆佸湴鐐广�侀珮搴︺�佸ぉ姘旀潯浠惰�屼笉鏂彉鍖栫殑銆傜┖姘旀箍搴﹀氨鏄敤鏉ラ噺搴︾┖姘斾腑鐨勬按钂告皵鍚噺鎴栬�呯┖姘旀疆婀跨▼搴︾殑鐗╃悊閲忋��</p>
+                    <p class="content"><span class="bold">鐩稿叧鐭ヨ瘑鐐�2锛氬ぇ姘斿眰鐨勫垝鍒�</span></p>
+                    <p class="content">
+                        澶ф皵灞傛棤鏄庢樉鐨勪笂闄愶紝瀹冪殑鍚勭鐗规�у湪鍨傜洿鏂瑰悜涓婄殑宸紓闈炲父鏄庢樉锛屽绌烘皵闅忛珮搴﹀鍔犺�岃秼浜庣█钖勩�備互澶ф皵涓俯搴﹂殢楂樺害鐨勫垎甯冧负涓昏渚濇嵁锛屽彲灏嗗ぇ姘斿眰鍒掑垎涓哄娴佸眰銆佸钩娴佸眰銆佷腑闂村眰銆佺儹灞傚拰鏁i�稿眰锛屽鍥�1.3.1鎵�绀恒�傝埅绌哄櫒鐨勫ぇ姘旈琛岀幆澧冩槸瀵规祦灞傚拰骞虫祦灞傘�傚ぇ姘斿眰瀵归琛屾湁寰堝ぇ鐨勫奖鍝嶏紝鎭跺姡鐨勫ぉ姘旀潯浠朵細鍗卞強椋炶瀹夊叏銆傚ぇ姘斿睘鎬э紙娓╁害銆佸帇鍔涖�佹箍搴︺�侀鍚戙�侀閫熺瓑锛夊椋炴満鐨勯琛屾�ц兘鍜岄琛岃埅杩逛篃浼氫骇鐢熶笉鍚岀▼搴︾殑褰卞搷銆�
+                    </p>
+                </div>
+            </div>
+        </div>
+        <!-- 17椤� -->
+        <div class="page-box" page="23">
+            <div v-if="showPageList.indexOf(23) > -1">
+                <ul class="fl al-fe pad-t-55 pad-l-80 jc-fe mb-45  h-25">
+                    <li class="header-right-Number header-right-title">椤圭洰涓�</li>
+                    <li class="header-right-Number">鏃犱汉鏈哄熀纭�鐭ヨ瘑</li>
+                    <li class="p-Num">17</li>
+                    <li class="header-right-Number cloud">
+                        <img class="" src="../../assets/images/yemei02.png" alt="" />
+                    </li>
+                    <li class="header-right-last"><br /></li>
+                    <li class="header-right-end"><br /></li>
+                </ul>
+                <div class="bodystyle">
+                    <div class="center openImgBox">
+                        <img class="img-e" src="../../assets/images/0029-01.jpg" alt="" active="true" />
+                        <p class="img">鍥�1.3.1銆�鍦扮悆澶ф皵灞傚垝鍒嗙ず鎰忓浘</p>
+                    </div>
+                    <p class="quotation">1锛庡娴佸眰</p>
+                    <p class="content">
+                        瀵规祦灞傛槸鍦扮悆澶ф皵涓渶浣庣殑涓�灞傘�傚湪瀵规祦灞備腑锛屾皵娓╅殢楂樺害澧炲姞鑰岄檷浣庯紝绌烘皵鐨勫娴佽繍鍔ㄦ瀬涓烘槑鏄撅紝绌烘皵娓╁害鍜屾箍搴︾殑姘村钩鍒嗗竷涔熷緢涓嶅潎鍖�銆傚娴佸眰鐨勫帤搴﹂殢绾害鍜屽鑺傚彉鍖栵紝涓�鑸湪浣庣含搴﹀湴鍖哄钩鍧囦负16 km锝�18
+                        km锛屽湪涓含搴﹀湴鍖哄钩鍧囦负10 km锝�12 km锛屽湪楂樼含搴﹀湴鍖哄钩鍧囦负8 km锝�9 km銆傚氨瀛h妭鑰岃█锛屾垜鍥界粷澶ч儴鍒嗗湴鍖轰竴鑸兘鏄瀛e娴佸眰鍘氾紝鍐瀵规祦灞傝杽銆傚娴佸眰闆嗕腑浜嗗叏閮ㄥぇ姘旂害
+                        <math>
+                            <mfrac>
+                                <mn>3</mn>
+                                <mn>4</mn>
+                            </mfrac>
+                        </math>鐨勮川閲忓拰鍑犱箮鍏ㄩ儴鐨勬按钂告皵锛屾槸澶╂皵鍙樺寲鏈�澶嶆潅鐨勫眰锛屼篃鏄椋炶褰卞搷鏈�閲嶈鐨勫眰銆傞琛屼腑鎵�閬囧埌鐨勫悇绉嶉噸瑕佸ぉ姘旂幇璞″嚑涔庨兘鍑虹幇鍦ㄨ繖涓�灞備腑锛屽闆锋毚銆佹祿闆俱�佷綆浜戝箷銆侀洦銆侀洩銆佸ぇ姘旀箥娴併�侀鍒囧彉绛夈�傚娴佸眰鎸夋皵娴佸拰澶╂皵鐜拌薄鍒嗗竷鐨勭壒鐐癸紝鍙堝彲鍒嗕负涓嬪眰銆佷腑灞傚拰涓婂眰銆�
+                    </p>
+                    <p class="content">瀵规祦灞備笅灞傦紝鍙堢О鎽╂摝灞傦紝瀹冪殑鑼冨洿鑷湴闈㈠埌1 km锝�2
+                        km鐨勯珮搴︼紝浣嗗湪鍚勫湴鐨勫疄闄呴珮搴﹀張涓庡湴琛ㄦ�ц川銆佸鑺傜瓑鍥犵礌鏈夊叧銆備竴鑸鏉ワ紝鍏堕珮搴﹀湪绮楃硻鍦拌〃涓婇珮浜庡钩鏁村湴琛ㄤ笂锛屽瀛i珮浜庡啲瀛o紙鍖楀崐鐞冿級锛屾樇闂撮珮浜庡闂淬�傚湪瀵规祦灞備笅灞傦紝姘旀祦鍙楀湴闈㈡懇鎿︿綔鐢ㄥ奖鍝嶅緢澶э紝椋庨�熼�氬父闅忛珮搴﹀鍔犺�屽澶с�傚湪澶嶆潅鐨勫湴褰㈠拰鎭跺姡鐨勫ぉ姘旀潯浠朵笅锛屽父瀛樺湪鍓х儓鐨勬皵娴佹壈鍔紝濞佽儊鐫�椋炶瀹夊叏锛岀獊鍙戠殑涓嬪啿姘旀祦鍜屽己鐑堢殑浣庣┖椋庡垏鍙樺父浼氬紩鍙戦鏈轰簨鏁呫�傚彟澶栵紝鍏呮矝鐨勬按钂告皵鍜屽皹鍩冨線寰�瀵艰嚧娴撻浘鍙婂叾浠栨伓鍖栬兘瑙佸害鐨勭幇璞★紝瀵归鏈虹殑璧烽鍜岀潃闄嗘瀯鎴愪弗閲嶇殑闅滅銆備负浜嗙‘淇濋琛屽畨鍏紝姣忎釜鏈哄満閮借瀹氭湁鍚勭被椋炴満鐨勮捣闄嶆皵璞℃潯浠躲�傚彟澶栵紝瀵规祦灞備笅灞備腑姘旀俯鐨勬棩鍙樺寲鏋佷负鏄庢樉锛屾樇澶滄俯宸彲杈�10鈩冿綖40鈩冦��
+                    </p>
+                    <p class="content">瀵规祦灞備腑灞傜殑搴曠晫鍗冲娴佸眰涓嬪眰椤讹紝涓婄晫楂樺害绾︿负6
+                        km锛岃繖涓�灞傚彈鍦拌〃鐨勫奖鍝嶈繙灏忎簬瀵规祦灞備笅灞傘�傚ぇ姘斾腑鐨勪簯鍜岄檷姘寸幇璞″ぇ閮藉彂鐢熷湪杩欎竴灞傚唴銆傚娴佸眰涓眰鐨勪笂閮ㄧ殑姘斿帇閫氬父鍙湁鍦伴潰鐨勪竴鍗婏紝鍦ㄩ偅閲岄琛屾椂闇�瑕佷娇鐢ㄦ哀姘斻�備竴鑸交鍨嬭繍杈撴満銆佺洿鍗囨満绛夊父鍦ㄨ繖涓�灞備腑椋炶锛堝浘1.3.2锛夈��
+                    </p>
+                </div>
+            </div>
+        </div>
+        <!-- 18椤� -->
+        <div class="page-box" page="24">
+            <div v-if="showPageList.indexOf(24) > -1">
+                <ul class="fl al-c jc-sb pad-t-55 pad-l-80 pad-r-80">
+                    <li class="header-left-Number">
+                        <span class="mr-10 pNum">18</span>
+                        <span><span class="span-box-title"></span>鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�<span class="span-box-title"></span></span>
+                    </li>
+                    <li class="header-left-text">
+                        <img class="img-c" src="../../assets/images/yemei01.png" alt="" />
+                    </li>
+                </ul>
+                <div class="bodystyle">
+                    <p class="content">涓婂眰鑼冨洿浠�6
+                        km楂樺害浼稿睍鍒板娴佸眰鐨勯《閮紝杩欎竴灞傜殑姘旀俯甯稿勾閮藉湪0鈩冧互涓嬶紝姘磋捀姘斿惈閲忓緢灏戯紝鍚勭浜戦兘鐢卞啺鏅舵垨杩囧喎鍗存按婊寸粍鎴愩�傚湪涓含搴﹀拰鍓儹甯﹀湴鍖猴紝杩欎竴灞備腑甯告湁椋庨�熺瓑浜庢垨澶т簬30
+                        m/s鐨勫己椋庡甫锛屽嵆鎵�璋撻珮绌烘�ユ祦銆傞鏈哄湪楂樼┖鎬ユ祦闄勮繎椋炶鏃跺線寰�浼氬彂鐢熷己鐑堥绨革紝浣夸箻瀹㈡劅瑙変笉閫傦紝鐢氳嚦琚牬鍧忕粨鏋勫拰閫犳垚瀹夊叏濞佽儊銆�</p>
+                    <p class="content">鍦ㄥ娴佸眰鍜屽钩娴佸眰涔嬮棿锛岃繕鏈変竴涓帤搴︿负鏁扮櫨绫冲埌2
+                        km鐨勮繃娓″眰锛岃绉颁负瀵规祦灞傞《銆傚娴佸眰椤跺鍨傜洿姘旀祦鏈夊緢澶х殑闃绘尅浣滅敤銆備笂鍗囩殑姘磋捀姘斻�佸皹绮掔瓑澶氳仛闆嗗叾涓嬶紝閭i噷鐨勮兘瑙佸害寰�寰�杈冧綆銆�</p>
+                    <div class="openImgBox center">
+                        <img class="img-b" src="../../assets/images/0030-01.jpg" alt="" active="true" />
+                        <p class="img">鍥�1.3.2銆�涓�鏋舵鍦ㄥ娴佸眰宸¤埅椋炶鐨勫皬鍨嬪鏈�</p>
+                    </div>
+                    <p class="quotation">2锛庡钩娴佸眰</p>
+                    <p class="content">骞虫祦灞備綅浜庡娴佸眰涔嬩笂锛屼綅浜�50 km锝�55 km楂樺害澶勩�傚湪骞虫祦灞傚唴锛岄殢鐫�楂樺害鐨勫鍔狅紝姘旀俯鏈�鍒濅繚鎸佷笉鍙樻垨寰湁涓婂崌锛屽埌30
+                        km楂樺害浠ヤ笂姘旀俯鍗囬珮杈冨揩锛屽埌浜嗗钩娴佸眰椤舵皵娓╁崌鑷�270 K锝�290
+                        K銆傚钩娴佸眰鐨勮繖绉嶆皵娓╁垎甯冪壒寰佸悓瀹冨彈鍦伴潰褰卞搷灏忓拰瀛樺湪澶ч噺鑷哀锛堣嚟姘ц兘鐩存帴鍚告敹澶槼杈愬皠锛夋湁鍏炽�傚钩娴佸眰杩囧幓甯歌绉颁负鍚屾俯灞傦紝瀹為檯涓婃寚鐨勬槸骞虫祦灞傜殑涓嬮儴銆傚湪骞虫祦灞備腑锛岀┖姘旂殑鍨傜洿杩愬姩杩滄瘮瀵规祦灞傚急锛屾按钂告皵銆佸皹绮掑惈閲忎篃杈冨皯锛屽洜鑰屾皵娴佹瘮杈冨钩缂擄紝鑳借搴﹁緝楂樸�傚浜庨琛屾潵璇达紝骞虫祦灞傛皵娴佸钩绋炽�佺┖姘旈樆鍔涘皬鏄湁鍒╃殑涓�闈紙鍥�1.3.3锛夛紝浣嗗洜骞虫祦灞傜┖姘旂█钖勶紝椋炶鍣ㄧ殑绋冲畾鎬у拰鎿嶇旱鎬у彉宸紝杩欏張鏄笉鍒╃殑涓�闈€�傞珮鎬ц兘鐨勭幇浠f鍑绘満鍜屼睛瀵熸満閮借兘鍦ㄥ钩娴佸眰涓琛岋紙鍥�1.3.4锛夈�傞殢鐫�椋炴満椋炶楂樺害涓婇檺鐨勬棩鐩婂鍔狅紝鐏銆佸寮圭瓑鎶�鏈殑鍙戝睍锛屽骞虫祦灞傜殑鐮旂┒鏃ヨ秼閲嶈銆�
+                    </p>
+
+                </div>
+            </div>
+        </div>
+        <!-- 19椤� -->
+        <div class="page-box" page="25">
+            <div v-if="showPageList.indexOf(25) > -1">
+                <ul class="fl al-fe pad-t-55 pad-l-80 jc-fe mb-45  h-25">
+                    <li class="header-right-Number header-right-title">椤圭洰涓�</li>
+                    <li class="header-right-Number">鏃犱汉鏈哄熀纭�鐭ヨ瘑</li>
+                    <li class="p-Num">19</li>
+                    <li class="header-right-Number cloud">
+                        <img class="" src="../../assets/images/yemei02.png" alt="" />
+                    </li>
+                    <li class="header-right-last"><br /></li>
+                    <li class="header-right-end"><br /></li>
+                </ul>
+                <div class="bodystyle">
+                    <div class="openImgBox center">
+                        <img class="img-c" src="../../assets/images/0031-01.jpg" alt="" active="true" />
+                        <p class="img">鍥�1.3.3銆�涓�鏋舵鍦ㄥ钩娴佸眰宸¤埅椋炶鐨勫ぇ鍨嬪鏈�</p>
+                    </div>
+                    <div class="openImgBox center">
+                        <img class="img-c" src="../../assets/images/0031-02.jpg" alt="" active="true" />
+                        <p class="img">鍥�1.3.4銆�缇庡浗鈥滈粦楦熲�濅睛瀵熸満26600 m鐨勯琛岄珮搴︽槸鑸┖棰嗗煙鐩墠鏋侀檺</p>
+                    </div>
+                    <p class="quotation">3锛庝腑闂村眰</p>
+                    <p class="content">涓棿灞備粠骞虫祦灞傞《浼稿睍鍒�80 km锝�85 km楂樺害銆傝繖涓�灞傜殑鐗圭偣鏄皵娓╅殢楂樺害澧炲姞鑰岄檷浣庯紝绌烘皵鏈夌浉褰撳己鐑堢殑鍨傜洿杩愬姩銆傚湪杩欎竴灞傜殑椤堕儴锛屾皵娓╁彲浣庤嚦160 K锝�190 K銆�
+                    </p>
+                    <p class="quotation">4锛庣儹灞�</p>
+                    <p class="content">鐑眰鍙堢О涓烘殩灞傛垨鐢电灞傦紝鑼冨洿浠庝腑闂村眰椤朵几灞曞埌绾�800
+                        km楂樺害銆傝繖涓�灞傜殑绌烘皵瀵嗗害寰堝皬锛屽0娉篃闅句互浼犳挱銆傜儹灞傜殑涓�涓壒寰佹槸姘旀俯闅忛珮搴﹀鍔犺�屼笂鍗囷紝鍙︿竴涓壒寰佹槸绌烘皵澶勪簬楂樺害鐢电鐘舵�併�傜儹灞傜殑鍙樺寲浼氬奖鍝嶉琛屽櫒鐨勬棤绾跨數閫氫俊锛堝浘1.3.5銆佸浘1.3.6锛夈��
+                    </p>
+                </div>
+            </div>
+        </div>
+        <!-- 20椤� -->
+        <div class="page-box" page="26">
+            <div v-if="showPageList.indexOf(26) > -1">
+                <ul class="fl al-c jc-sb pad-t-55 pad-l-80 pad-r-80">
+                    <li class="header-left-Number">
+                        <span class="mr-10 pNum">20</span>
+                        <span><span class="span-box-title"></span>鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�<span class="span-box-title"></span></span>
+                    </li>
+                    <li class="header-left-text">
+                        <img class="img-c" src="../../assets/images/yemei01.png" alt="" />
+                    </li>
+                </ul>
+                <div class="bodystyle">
+                    <div class="openImgBox center">
+                        <img class="img-c" src="../../assets/images/0032-01.jpg" alt="" active="true" />
+                        <p class="img">鍥�1.3.5銆�浣庤建鍗槦鍦ㄧ數绂诲眰鎵ц璧勬簮鎺㈡祴鎴栨皵璞℃帰娴嬩换鍔�</p>
+                    </div>
+                    <div class="openImgBox center">
+                        <img class="img-c" src="../../assets/images/0032-02.jpg" alt="" active="true" />
+                        <p class="img">鍥�1.3.6銆�娲查檯寮归亾瀵煎脊鍙姷杈剧數绂诲眰椋炶</p>
+                    </div>
+                    <p class="quotation">5锛庢暎閫稿眰</p>
+                    <p class="content">
+                        鏁i�稿眰鍙堢О閫冮�稿眰銆佸澶ф皵灞傦紝鏄湴鐞冨ぇ姘旂殑鏈�澶栧眰锛屼綅浜庣儹灞備箣涓娿�傛暎閫稿眰鐨勭┖姘旀瀬鍏剁█钖勶紝鍚屾椂鍙堣繙绂诲湴闈紝鍙楀湴鐞冪殑寮曞姏浣滅敤杈冨皬锛屽洜鑰屽ぇ姘斿垎瀛愪笉鏂湴鍚戞槦闄呯┖闂撮�冮�搞�傝埅澶╁櫒鑴辩杩欎竴灞傚悗渚胯繘鍏ュお绌洪琛屻��
+                    </p>
+                    <p class="td-0 mt-10 mb-10"><span class="bj2">路瑙嗛搴撀�</span></p>
+                    <div class="bk-video fl">
+                        <div class="fl jc-fs fw-w">
+                            <div style="width: 290px; height: auto; margin: 0 5px;"
+                                v-for="(item, index) in videoDataThree.videoMd5" :key="index">
+                                <video webkit-playsinline="true" x-webkit-airplay="true" playsinline="true"
+                                    x5-video-orientation="h5" x5-video-player-fullscreen="true" x5-playsinline=""
+                                    controls controlslist="nodownload" class="video-border w100"
+                                    :src="item.handleMd5"></video>
+                                <div class="fl al-c jc-c">
+                                    <p class="td-0" style="font-size: 12px;">{{ item.name }}</p>
+                                    <el-tooltip class="item" effect="dark"
+                                        :content="item.isCollectVideo ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                        <img :src="collectResourceList.findIndex(citem => citem.id == item.md5) > -1 ? collectCheck : collectImg"
+                                            alt="" class="collect-btn1" @click="handleCollect(item)" />
+                                    </el-tooltip>
+                                </div>
+                            </div>
+                        </div>
+                    </div>
+                    <p class="td-0 mt-10 mb-10"><img class="h-pic" src="../../assets/images/0017_03.jpg" alt="" /></p>
+                    <div v-for="(item, index) in questionDataThree.slice(0, 3)" :key="index">
+                        <p class="block">{{ index + 1 }}.{{ item.txt }}</p>
+                        <p class="block" v-for="(citem, cindex) in item.options" :key="cindex">
+                            <input type="radio" :value="citem.value" v-model="item.userAnswer"
+                                @change="saveQuestionDataThree" />
+                            {{ citem.txt }}
+                        </p>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!-- 21椤� -->
+        <div class="page-box" page="27">
+            <div v-if="showPageList.indexOf(27) > -1">
+                <ul class="fl al-fe pad-t-55 pad-l-80 jc-fe mb-45  h-25">
+                    <li class="header-right-Number header-right-title">椤圭洰涓�</li>
+                    <li class="header-right-Number">鏃犱汉鏈哄熀纭�鐭ヨ瘑</li>
+                    <li class="p-Num">21</li>
+                    <li class="header-right-Number cloud">
+                        <img class="" src="../../assets/images/yemei02.png" alt="" />
+                    </li>
+                    <li class="header-right-last"><br /></li>
+                    <li class="header-right-end"><br /></li>
+                </ul>
+                <div class="bodystyle">
+                    <div v-for="(item, index) in questionDataThree.slice(3, 14)" :key="index">
+                        <p class="block">{{ index + 4 }}.{{ item.txt }}</p>
+                        <p class="block fl ml-35" v-for="(citem, cindex) in item.options" :key="cindex">
+                            <input type="radio" :value="citem.value" v-model="item.userAnswer"
+                                @change="saveQuestionDataThree" />
+                            <span class="td-0" v-if="citem.txt">{{ citem.txt }}</span>
+                            <img class="img-k" v-if="citem.imgSrc" :src="citem.imgSrc" alt="">
+                        </p>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!-- 22椤� -->
+        <div class="page-box" page="28">
+            <div v-if="showPageList.indexOf(28) > -1">
+                <ul class="fl al-c jc-sb pad-t-55 pad-l-80 pad-r-80">
+                    <li class="header-left-Number">
+                        <span class="mr-10 pNum">22</span>
+                        <span><span class="span-box-title"></span>鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�<span class="span-box-title"></span></span>
+                    </li>
+                    <li class="header-left-text">
+                        <img class="img-c" src="../../assets/images/yemei01.png" alt="" />
+                    </li>
+                </ul>
+                <div class="bodystyle">
+                    <div v-for="(item, index) in questionDataThree.slice(14, 28)" :key="index">
+                        <p class="block">
+                            <span>{{ index + 15 }}</span>.
+                            <span class="td-0" v-if="item.txt">{{ item.txt }}</span>
+                            <span class="td-0" v-if="item.RichTxt" v-html="item.RichTxt"></span>
+                        </p>
+                        <p class="block" v-for="(citem, cindex) in item.options" :key="cindex">
+                            <input type="radio" :value="citem.value" v-model="item.userAnswer"
+                                @change="saveQuestionDataThree" />
+                            <span class="td-0" v-if="citem.txt">
+                                {{ citem.txt }}
+                            </span>
+                        </p>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!-- 23椤� -->
+        <div class="page-box" page="29">
+            <div v-if="showPageList.indexOf(29) > -1">
+                <ul class="fl al-fe pad-t-55 pad-l-80 jc-fe mb-45  h-25">
+                    <li class="header-right-Number header-right-title">椤圭洰涓�</li>
+                    <li class="header-right-Number">鏃犱汉鏈哄熀纭�鐭ヨ瘑</li>
+                    <li class="p-Num">23</li>
+                    <li class="header-right-Number cloud">
+                        <img class="" src="../../assets/images/yemei02.png" alt="" />
+                    </li>
+                    <li class="header-right-last"><br /></li>
+                    <li class="header-right-end"><br /></li>
+                </ul>
+                <div class="bodystyle">
+                    <div v-for="(item, index) in questionDataThree.slice(28, 39)" :key="index">
+                        <p class="block">{{ index + 29 }}.{{ item.txt }}</p>
+                        <p class="block" v-for="(citem, cindex) in item.options" :key="cindex">
+                            <input type="radio" :value="citem.value" v-model="item.userAnswer"
+                                @change="saveQuestionDataThree" />
+                            {{ citem.txt }}
+                        </p>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <!-- 24椤� -->
+        <div class="page-box" page="30">
+            <div v-if="showPageList.indexOf(30) > -1">
+                <ul class="fl al-c jc-sb pad-t-55 pad-l-80 pad-r-80">
+                    <li class="header-left-Number">
+                        <span class="mr-10 pNum">24</span>
+                        <span><span class="span-box-title"></span>鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�<span class="span-box-title"></span></span>
+                    </li>
+                    <li class="header-left-text">
+                        <img class="img-c" src="../../assets/images/yemei01.png" alt="" />
+                    </li>
+                </ul>
+                <div class="bodystyle">
+                    <p class="content td-0 mt-10 mb-10"><img class="h-pic" src="../../assets/images/0019_02.jpg"
+                            alt="" /></p>
+                    <p class="content">閫氳繃鏈换鍔″涔狅紝璇锋牴鎹嚜宸辩殑瀛︿範鎯呭喌濉啓浠诲姟璇勪环琛紝璇勫垎鏃惰缁煎悎鑰冭檻灏忕粍涔嬮棿鐨勫悎浣溿�佹矡閫氳兘鍔涚瓑鑱屼笟绱犲吇锛堟寜鑷瘎鍒嗘暟40%銆佹暀甯堣瘎鍒�60%璁$畻寰楀垎锛夈��</p>
+                    <table border="1" cellpadding="4" cellspacing="0"
+                        style="border-color: #677fb7; border-collapse: collapse" class="fz-14 img-0">
+                        <tr class="img-0 table-th-bc">
+                            <th>搴忓彿</th>
+                            <th>璇惧悗浠诲姟</th>
+                            <th>鏍囧噯璇勪环</th>
+                            <th>鑷瘎鍒嗘暟</th>
+                            <th>鏁欏笀璇勫垎</th>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td rowspan="3" class="center">1</td>
+                            <td rowspan="3" class="center">澶ф皵鐨勫熀鏈绱�(40鍒�)</td>
+                            <td>瀵瑰ぇ姘斿眰鐨勪笁涓熀鏈绱犳槑纭�(40鍒�)</td>
+                            <td rowspan="3" class="center">
+                                <input v-model="tableData.unitThree.one" type="number" step="1" min="0"
+                                    class="table-textarea" @change="setBookTableData">
+                            </td>
+                            <td rowspan="3" class="center">
+                                <input v-model="tableData.unitThree.two" type="number" step="1" min="0"
+                                    class="table-textarea" @change="setBookTableData">
+                            </td>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td>瀵瑰ぇ姘斿眰鐨勪笁涓熀鏈绱犺緝鏄庣‘(30鍒�)</td>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td>瀵瑰ぇ姘斿眰鐨勪笁涓熀鏈绱犱笉鏄庣‘(10鍒�)</td>
+                        </tr>
+                        <tr class="table-tr-bc-one">
+                            <td rowspan="3" class="center">2</td>
+                            <td rowspan="3" class="center">澶ф皵灞傜殑鍒掑垎(40鍒�)</td>
+                            <td>瀵瑰ぇ姘斿眰鐨勫垝鍒嗗強鐗圭偣鏄庣‘(40鍒�)</td>
+                            <td rowspan="3" class="center"><input v-model="tableData.unitThree.three" type="number"
+                                    step="1" min="0" class="table-textarea" @change="setBookTableData"></td>
+                            <td rowspan="3" class="center"><input v-model="tableData.unitThree.four" type="number"
+                                    step="1" min="0" class="table-textarea" @change="setBookTableData"></td>
+                        </tr>
+                        <tr class="table-tr-bc-one">
+                            <td>瀵瑰ぇ姘斿眰鐨勫垝鍒嗗強鐗圭偣杈冩槑纭�(30鍒�)</td>
+                        </tr>
+                        <tr class="table-tr-bc-one">
+                            <td>瀵瑰ぇ姘斿眰鐨勫垝鍒嗗強鐗圭偣涓嶆槑纭�(10鍒�)</td>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td rowspan="2" class="center">3</td>
+                            <td rowspan="2" class="center">鍥㈤槦鍚堜綔(20鍒�)</td>
+                            <td>浜掑府浜掑姪锛屽彲浠ユ甯告矡閫氫氦娴�(20鍒�)</td>
+                            <td rowspan="2" class="center"><input v-model="tableData.unitThree.five" type="number"
+                                    step="1" min="0" class="table-textarea" @change="setBookTableData"></td>
+                            <td rowspan="2" class="center"><input v-model="tableData.unitThree.six" type="number"
+                                    step="1" min="0" class="table-textarea" @change="setBookTableData"></td>
+                        </tr>
+                        <tr class="table-tr-bc">
+                            <td>浜掑府浜掑姪锛屼氦娴佽緝灏戯紝甯︽湁鑴炬皵(10鍒�)</td>
+                        </tr>
+                    </table>
+
+                </div>
+            </div>
+        </div>
+        <!-- 5椤� -->
+        <!-- <div class="page-box" page="11">
+            <div v-if="showPageList.indexOf(11) > -1">
+                <ul class="fl al-fe pad-t-55 pad-l-80 jc-fe mb-45  h-25">
+                    <li class="header-right-Number header-right-title">椤圭洰涓�</li>
+                    <li class="header-right-Number">鏃犱汉鏈哄熀纭�鐭ヨ瘑</li>
+                    <li class="p-Num">5</li>
+                    <li class="header-right-Number cloud">
+                        <img class="" src="../../assets/images/yemei02.png" alt="" />
+                    </li>
+                    <li class="header-right-last"><br /></li>
+                    <li class="header-right-end"><br /></li>
+                </ul>
+                <div class="bodystyle">
+                </div>
+            </div>
+        </div> -->
+    </div>
+</template>
+<script>
+import { getResourcePath } from "@/assets/methods/resources";
+import {
+    getCollectResource,
+    setCollectResource,
+} from "@/assets/methods/resources";
+export default {
+    name: "chapterOne",
+    props: {
+        showPageList: {
+            type: Array,
+        },
+        resourceList: {
+            type: Object,
+        }
+    },
+    data() {
+        return {
+            collectImg: require("../../assets/images/icon/heart.png"),
+            collectCheck: require("../../assets/images/icon/heart-check.png"),
+            questionData: [
+                {
+                    txt: "鏈鸿韩鐨勪富瑕佸姛鑳芥槸锛堛��锛夈��",
+                    userAnswer: "",
+                    options: [
+                        {
+                            txt: "瑁呰浇浜哄憳",
+                            value: "A",
+                        },
+                        {
+                            txt: "瑁呰浇鍚勭璁惧",
+                            value: "B",
+                        },
+                        {
+                            txt: "淇濇姢椋炴満",
+                            value: "C",
+                        },
+                    ]
+                },
+                {
+                    txt: "鍥哄畾缈兼棤浜烘満绯荤粺涓�鑸敱锛堛��锛夐儴鍒嗘瀯鎴愩��",
+                    userAnswer: "",
+                    options: [
+                        {
+                            txt: "涓�",
+                            value: "A",
+                        },
+                        {
+                            txt: "鍥�",
+                            value: "B",
+                        },
+                        {
+                            txt: "浜�",
+                            value: "C",
+                        },
+                    ]
+                },
+                {
+                    txt: "鏃嬬考缁撴瀯鏈夛紙銆�锛夌銆�",
+                    userAnswer: "",
+                    options: [
+                        {
+                            txt: "鍥�",
+                            value: "A",
+                        },
+                        {
+                            txt: "浜�",
+                            value: "B",
+                        },
+                        {
+                            txt: "鍏�",
+                            value: "C",
+                        },
+                    ]
+                },
+                {
+                    txt: "鍓嶅悗宸﹀彸鍔ㄤ綔鏃跺姞鍑忛�熺殑鐢垫満杈冨锛屾帶鍒舵瘮杈冭繀閫熴�佹湁鍔涚殑鏄紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        {
+                            txt: "X鍨嬪竷灞�鐨勫鏃嬬考鏃犱汉鏈�",
+                            value: "A",
+                        },
+                        {
+                            txt: "鍗佸瀷甯冨眬鐨勫鏃嬬考鏃犱汉鏈�",
+                            value: "B",
+                        },
+                        {
+                            txt: "H鍨嬪竷灞�鐨勫鏃嬬考鏃犱汉鏈�",
+                            value: "C",
+                        },
+                    ]
+                },
+                {
+                    txt: "鏄撲簬璁捐鎴愭按骞虫姌鍙犵粨鏋勭殑鏄紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        {
+                            txt: "X鍨嬪鏃嬬考",
+                            value: "A",
+                        },
+                        {
+                            txt: "鍗佸瀷澶氭棆缈�",
+                            value: "B",
+                        },
+                        {
+                            txt: "H鍨嬪鏃嬬考",
+                            value: "C",
+                        },
+                    ]
+                },
+                {
+                    txt: "涓嬪浘鏄紙銆�锛夊瀷甯冨眬鐨勶紙銆�锛夋棆缈兼棤浜烘満銆�",
+                    userAnswer: "",
+                    imgSrc: require("../../assets/images/0018-01.jpg"),
+                    options: [
+                        {
+                            txt: "H\鍥�",
+                            value: "A",
+                        },
+                        {
+                            txt: "X\鍥�",
+                            value: "B",
+                        },
+                        {
+                            txt: "鍗乗鍥�",
+                            value: "C",
+                        },
+                    ]
+                },
+                {
+                    txt: "涓嬪浘鏄紙銆�锛夊瀷甯冨眬鐨勶紙銆�锛夋棆缈兼棤浜烘満銆�",
+                    userAnswer: "",
+                    imgSrc: require("../../assets/images/0018-02.jpg"),
+                    options: [
+                        {
+                            txt: "X\鍥�",
+                            value: "A",
+                        },
+                        {
+                            txt: "H\鍥�",
+                            value: "B",
+                        },
+                        {
+                            txt: "鍗乗鍥�",
+                            value: "C",
+                        },
+                    ]
+                },
+                {
+                    txt: "涓嬪浘鏄紙銆�锛夈��",
+                    userAnswer: "",
+                    imgSrc: require("../../assets/images/0018-03.jpg"),
+                    options: [
+                        {
+                            txt: "绾靛垪寮忓弻鏃嬬考鐩村崌鏈�",
+                            value: "A",
+                        },
+                        {
+                            txt: "妯垪寮忓弻鏃嬬考鐩村崌鏈�",
+                            value: "B",
+                        },
+                        {
+                            txt: "鍗曟棆缈肩洿鍗囨満",
+                            value: "C",
+                        },
+                    ]
+                },
+                {
+                    txt: "涓嬪浘鏄紙銆�锛夈��",
+                    userAnswer: "",
+                    imgSrc: require("../../assets/images/0019-01.jpg"),
+                    options: [
+                        {
+                            txt: "绾靛垪寮忓弻鏃嬬考鐩村崌鏈�",
+                            value: "A",
+                        },
+                        {
+                            txt: "妯垪寮忓弻鏃嬬考鐩村崌鏈�",
+                            value: "B",
+                        },
+                        {
+                            txt: "鍗曟棆缈肩洿鍗囨満",
+                            value: "C",
+                        },
+                    ]
+                },
+                {
+                    txt: "姘村钩灏剧考鐢憋紙銆�锛夌粍鎴愩�傗憼鍥哄畾鐨勬按骞冲畨瀹氶潰锛涒憽鍙姩鐨勫崌闄嶈埖锛涒憿鍙姩鐨勬柟鍚戣埖銆�",
+                    userAnswer: "",
+                    options: [
+                        {
+                            txt: "鈶犫憽鈶�",
+                            value: "A",
+                        },
+                        {
+                            txt: "鈶♀憿",
+                            value: "B",
+                        },
+                        {
+                            txt: "鈶犫憽",
+                            value: "C",
+                        },
+                    ]
+                },
+                {
+                    txt: "灏剧考鐨勪綔鐢ㄦ槸锛堛��锛夈�傗憼鎿嶇旱椋炴満淇话鍜屽亸杞紱鈶′繚璇侀鏈鸿兘骞崇ǔ椋炶锛涒憿鎻愪緵鍗囧姏銆�",
+                    userAnswer: "",
+                    options: [
+                        {
+                            txt: "鈶犫憽鈶�",
+                            value: "A",
+                        },
+                        {
+                            txt: "鈶犫憽",
+                            value: "B",
+                        },
+                        {
+                            txt: "鈶犫憿",
+                            value: "C",
+                        },
+                    ]
+                },
+                {
+                    txt: "鏃犱汉鏈虹郴缁熷寘鎷┖涓郴缁熴�侀鏈虹郴缁熴�侊紙銆�锛夊拰鏃犱汉鏈轰娇鐢ㄤ繚闅滀汉鍛樸��",
+                    userAnswer: "",
+                    options: [
+                        {
+                            txt: "鏁版嵁閾剧郴缁�",
+                            value: "A",
+                        },
+                        {
+                            txt: "浠诲姟杞借嵎",
+                            value: "B",
+                        },
+                        {
+                            txt: "鍦伴潰绔�",
+                            value: "C",
+                        },
+                    ]
+                },
+            ],
+            tableData: {
+                unitOne: {
+                    one: "",
+                    two: "",
+                    three: "",
+                    four: "",
+                    five: "",
+                    six: "",
+                },
+                unitTwo: {
+                    one: "",
+                    two: "",
+                    three: "",
+                    four: "",
+                    five: "",
+                    six: "",
+                },
+                unitThree: {
+                    one: "",
+                    two: "",
+                    three: "",
+                    four: "",
+                    five: "",
+                    six: "",
+                },
+            },
+            questionDataTwo: [
+                {
+                    txt: "鐩戣绌哄煙鏄寚浣嶄簬绠″埗绌哄煙鍜屾姤鍛婏紙銆�锛夌殑绌哄煙銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "绌哄煙涔嬪", value: "A" },
+                        { txt: "闆疯揪涔嬪", value: "B" },
+                        { txt: "绌哄煙涔嬪唴", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鐩椋炶鑸嚎鏄寚鑸┖鍣ㄥ浜庨┚椹跺憳鐩瑙嗚窛鍗婂緞锛堛��锛夛紝鐩稿楂樺害浣庝簬锛堛��锛夌殑鑼冨洿銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "550 m锛�150 m", value: "A" },
+                        { txt: "500 m锛�120 m", value: "B" },
+                        { txt: "505 m锛�125 m", value: "C" }
+                    ]
+                },
+                {
+                    txt: "涓浗鑸┖鍣ㄦ嫢鏈夎�呭強椹鹃┒鍛樺崗浼氭垚绔嬩簬锛堛��锛夊勾銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "2002", value: "A" },
+                        { txt: "2006", value: "B" },
+                        { txt: "2004", value: "C" }
+                    ]
+                },
+                {
+                    txt: "绠″埗绌哄煙鏄寚閲嶇偣鐩爣澶栧洿锛堛��锛夊尯鍩熴�佷互姘戣埅鏈哄満璺戦亾涓績鐐逛负涓績鐨勮窇閬撲袱澶村悇锛堛��锛夊尯鍩熷拰璺戦亾涓や晶鍚勶紙銆�锛夌殑鍖哄煙銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "5.5 km锛�20 km锛�5 km", value: "A" },
+                        { txt: "5 km锛�25 km锛�10 km", value: "B" },
+                        { txt: "10 km锛�30 km锛�5 km", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鐩墠鏃犱汉鏈虹殑杩愯楂樺害绌洪棿涓猴紙銆�锛夈�傛按骞崇┖闂存牴鎹渶瑕佸垝鍒嗕负绠″埗绌哄煙銆佹姤鍛婄┖鍩熴�佺洃瑙嗙┖鍩熴�佺洰瑙嗛琛岃埅绾裤�佽瀺鍚堢┖鍩熷拰闅旂绌哄煙鍏被銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "0锝�500 m", value: "A" },
+                        { txt: "0锝�750 m", value: "B" },
+                        { txt: "0锝�1000 m", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鏃犱汉鏈虹殑绌哄煙绠$悊涓昏浠庢棤浜烘満绌哄煙鍒掕鐨勫師鍒欍�佸垝璁剧殑渚濇嵁鍜屽垝璁剧殑鍐呭锛岋紙銆�锛夊唴瀹瑰拰鐩稿簲鏉℃绛夋柟闈紝鎶婃棤浜烘満杩愯绌哄煙鐨勪娇鐢ㄤ笌绠$悊绾冲叆娉曟不鍖栥�佹瑙勫寲銆佺粺涓�鍖栫殑绠$悊涔嬩腑銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "绌轰腑閫氱鍒剁殑渚濇嵁", value: "A" },
+                        { txt: "绌轰腑浜ょ鍒剁殑渚濇嵁", value: "B" },
+                        { txt: "绌轰腑浜ら�氱鍒剁殑渚濇嵁", value: "C" }
+                    ]
+                },
+                {
+                    txt: "涓浗鑸┖鍣ㄦ嫢鏈夎�呭強椹鹃┒鍛樺崗浼氾紝缁忓浗鍔¢櫌鎵瑰噯锛屽湪姘戞斂閮ㄧ櫥璁版敞鍐岋紝涓烘帴鍙楁皯鑸眬涓氬姟鎸囧鐨勫浗瀹朵竴绾у崗浼氾紝鏄浗鍐咃紙銆�锛夎埅绌洪鍩熺涓�涓叏鍥芥�ц涓氬崗浼氥��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "鍐涚敤", value: "A" },
+                        { txt: "鍐涙皯涓ょ敤", value: "B" },
+                        { txt: "姘戠敤", value: "C" }
+                    ]
+                },
+                {
+                    txt: "涓浗鑸┖鍣ㄦ嫢鏈夎�呭強椹鹃┒鍛樺崗浼氾紝鏄腑鍥斤紙銆�锛夊湪鍥介檯鑸┖鍣ㄦ嫢鏈夎�呭強椹鹃┒鍛樺崗浼氱殑鍞竴鍚堟硶浠h〃銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "鍙版咕鍦板尯", value: "A" },
+                        { txt: "鍚娓�佹境闂ㄥ湴鍖�", value: "B" },
+                        { txt: "鍚娓�佹境闂ㄣ�佸彴婀惧湴鍖�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "渚嬪锛屻�婁綆绌虹┖鍩熺鐞嗕娇鐢ㄨ瀹氥�嬪弬鑰冦�婁腑鍗庝汉姘戝叡鍜屽浗姘戠敤鑸┖娉曘�嬨�婁腑鍗庝汉姘戝叡鍜屽浗椋炶鍩烘湰瑙勫垯銆嬨�婇�氱敤鑸┖椋炶绠″埗鏉′緥銆嬩互鍙婂啗鏂圭殑鐩稿叧绠$悊瑙勫畾鍒跺畾銆傚悓鏃讹紝姘戠敤鏃犱汉鏈虹殑绌哄煙绠$悊鍙堟湁鍏剁嫭鏈夊睘鎬э紝鍏剁鐞嗙殑绌哄煙鏄琛岄珮搴﹀湪锛堛��锛変互涓嬬殑鍖哄煙锛屽苟涓旀牴鎹儏鍐典笉鍚屾寜鐓х鍒剁┖鍩熴�佹姤鍛婄┖鍩熴�佺洃瑙嗙┖鍩熴�佺洰瑙嗛琛岃埅绾跨瓑杩涜浜嗗垎绫伙紝鎵�浠ユ棤浜烘満娉曞緥娉曡鍏锋湁鐙珛鎬с��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "1200 m", value: "A" },
+                        { txt: "1500 m", value: "B" },
+                        { txt: "1000 m", value: "C" }
+                    ]
+                },
+                {
+                    txt: "绌轰腑浜ら�氱鍒舵湇鍔′富浣撴槸锛堛��锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "鍏峰绌轰腑浜ら�氱鍒舵湇鍔¤祫鏍肩殑鍗曚綅鍜屼汉鍛�", value: "A" },
+                        { txt: "鎻愪緵绌轰腑浜ら�氱鍒舵湇鍔$殑鍗曚綅鍜屼汉鍛�", value: "B" },
+                        { txt: "鍏峰绌轰腑浜ら�氱鍒舵湇鍔¤祫鏍煎苟鎻愪緵绌轰腑浜ら�氱鍒舵湇鍔$殑鍗曚綅鍜屼汉鍛�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "绌轰腑浜ら�氱鍒舵湇鍔′汉鍛樺寘鎷紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "绌轰腑浜ら�氱鍒跺憳銆佺┖涓埅琛岃皟搴﹀憳銆侀琛岀娲惧憳銆佽埅琛屾儏鎶ュ憳", value: "A" },
+                        { txt: "绌轰腑浜ら�氱鍒跺憳銆佺┖涓埅琛岃皟搴﹀憳銆侀琛岀娲惧憳銆侀琛屾儏鎶ュ憳", value: "B" },
+                        { txt: "绌轰腑浜ら�氱鍒跺憳銆佺┖涓琛岃皟搴﹀憳銆侀琛岀娲惧憳銆侀琛屾儏鎶ュ憳", value: "C" }
+                    ]
+                },
+                {
+                    txt: "姘戠敤鏃犱汉鏈烘硶瑙勫叿鏈夌嫭绔嬫�с�佺患鍚堟�с�侊紙銆�锛夌瓑鐗规�с��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "骞虫椂鎬с�佺粡甯告��", value: "A" },
+                        { txt: "缁忓父鎬с�佸浗闄呮��", value: "B" },
+                        { txt: "骞虫椂鎬с�佸浗闄呮��", value: "C" }
+                    ]
+                },
+                {
+                    txt: "涓浗鑸┖鍣ㄦ嫢鏈夎�呭強椹鹃┒鍛樺崗浼氾紝绠�绉颁腑鍥紸OPA锛屾垚绔嬩簬锛堛��锛夊勾銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "2002", value: "A" },
+                        { txt: "2003", value: "B" },
+                        { txt: "2004", value: "C" }
+                    ]
+                },
+                {
+                    txt: "缇庡浗鈥滈粦楦熲�濅睛瀵熸満锛堛��锛夐琛岄珮搴︽槸鑸┖棰嗗煙鐩墠鏋侀檺銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "26000 m", value: "A" },
+                        { txt: "26600 m", value: "B" },
+                        { txt: "20600 m", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鍏ㄤ笘鐣屾渶澶嶆潅鐨勭┖鍩熺粨鏋勬槸锛堛��锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "缇庡浗绾界害", value: "A" },
+                        { txt: "鑻卞浗浼︽暒", value: "B" },
+                        { txt: "涓浗骞垮窞", value: "C" }
+                    ]
+                },
+                {
+                    txt: "锛堛��锛夋槸鏃犱汉鏈哄簲鐢ㄧ殑娉曞緥淇濋殰鍩虹煶銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "鏃犱汉鏈烘硶寰�", value: "A" },
+                        { txt: "鏃犱汉鏈烘硶瑙�", value: "B" },
+                        { txt: "姘戠敤鏃犱汉鏈烘硶寰嬫硶瑙�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "绌轰腑浜ら�氱鍒跺崟浣嶄负椋炶涓殑姘戠敤鑸┖鍣ㄦ彁渚涚殑绌轰腑浜ら�氭湇鍔′腑鍚湁锛堛��锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "椋炶鎯呮姤鏈嶅姟", value: "A" },
+                        { txt: "鏈哄満淇濋殰鏈嶅姟", value: "B" },
+                        { txt: "瀵艰埅鏈嶅姟", value: "C" }
+                    ]
+                },
+                {
+                    txt: "绌轰腑浜ら�氱鍒剁殑鐩殑鍦ㄤ簬锛堛��锛夈�傗憼闃叉鏃犱汉鏈轰笌绌轰腑椋炴満銆佸湴闈㈤殰纰嶇墿鐩告挒锛涒憽鏈夋晥鍦板埄鐢ㄧ┖鍩燂紱鈶㈠畨鍏ㄥ湴鍔犻�熺┖涓氦閫氳繍杈撱��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "鈶犫憽鈶�", value: "A" },
+                        { txt: "鈶♀憿", value: "B" },
+                        { txt: "鈶犫憿", value: "C" }
+                    ]
+                },
+                {
+                    txt: "姘戠敤鑸┖鍣ㄥ湪绠″埗绌哄煙鍐咃紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "鍙互鑷敱椋炶", value: "A" },
+                        { txt: "鍙互鎸塚FR锛堢洰瑙嗛鏈鸿鍒欙級鑷敱椋炶", value: "B" },
+                        { txt: "蹇呴』鍙栧緱绌轰腑浜ら�氱鍒跺崟浣嶇殑璁稿彲", value: "C" }
+                    ]
+                },
+                {
+                    txt: "涓嬪垪鑸┖娉曞緥娉曡涓骇鍒渶楂樼殑鏄紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "銆婁腑鍗庝汉姘戝叡鍜屽浗椋炶鍩烘湰瑙勫垯銆�", value: "A" },
+                        { txt: "銆婁腑鍗庝汉姘戝叡鍜屽浗姘戠敤鑸┖娉曘��", value: "B" },
+                        { txt: "銆婁腑鍗庝汉姘戝叡鍜屽浗鎼滃鎻存晳姘戠敤鑸┖鍣ㄧ殑瑙勫畾銆�", value: "C" }
+                    ]
+                }
+            ],
+            questionDataThree: [
+                {
+                    txt: "鑸┖鍣ㄧ殑澶ф皵椋炶鐜鏄紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "瀵规祦灞傦紝骞虫祦灞�", value: "A" },
+                        { txt: "瀵规祦灞傦紝涓棿灞�", value: "B" },
+                        { txt: "骞虫祦灞傦紝鐑眰", value: "C" }
+                    ]
+                },
+                {
+                    txt: "瀵规祦灞傛槸鍦扮悆澶ф皵涓渶浣庣殑涓�灞傦紝瀵规祦灞備腑姘旀俯闅忛珮搴︼紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "澧炲姞鑰屽鍔�", value: "A" },
+                        { txt: "澧炲姞鑰岄檷浣�", value: "B" },
+                        { txt: "闄嶄綆鑰岄檷浣�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "瀵规祦灞傜殑鍘氬害闅忕含搴﹀拰瀛h妭鍙樺寲锛屼竴鑸綆绾害鍦板尯骞冲潎涓猴紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "16 km锝�18 km", value: "A" },
+                        { txt: "8 km锝�9 km", value: "B" },
+                        { txt: "10 km锝�12 km", value: "C" }
+                    ]
+                },
+                {
+                    txt: "瀵规祦灞傞泦涓簡鍏ㄩ儴澶ф皵绾︼紙銆�锛夌殑璐ㄩ噺鍜屽嚑涔庡叏閮ㄧ殑姘磋捀姘旓紝鏄ぉ姘斿彉鍖栨渶澶嶆潅鐨勫眰锛屼篃鏄椋炶褰卞搷鏈�閲嶈鐨勫眰銆�",
+                    userAnswer: "",
+                    options: [
+                        { imgSrc: require("../../assets/images/0033_01.jpg"), value: "A" },
+                        { imgSrc: require("../../assets/images/0033_02.jpg"), value: "B" },
+                        { imgSrc: require("../../assets/images/0033_03.jpg"), value: "C" }
+                    ]
+                },
+                {
+                    txt: "瀵规祦灞備笅灞傦紝鍙堢О鎽╂摝灞傦紝瀹冪殑鑼冨洿鑷湴闈㈠埌锛堛��锛夌殑楂樺害锛屼絾鍦ㄥ悇鍦扮殑瀹為檯楂樺害鍙堜笌鍦拌〃鎬ц川銆佸鑺傜瓑鍥犵礌鏈夊叧銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "2 km锝�3 km", value: "A" },
+                        { txt: "1 km锝�2 km", value: "B" },
+                        { txt: "1 km锝�3 km", value: "C" }
+                    ]
+                },
+                {
+                    txt: "涓轰簡纭繚椋炶瀹夊叏锛屾瘡涓満鍦洪兘瑙勫畾鏈夊悇绫婚鏈虹殑璧烽檷姘旇薄鏉′欢銆傚彟澶栵紝瀵规祦灞備笅灞備腑姘旀俯鐨勬棩鍙樺寲鏋佷负鏄庢樉锛屾樇澶滄俯宸彲杈撅紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "10鈩冿綖40鈩�", value: "A" },
+                        { txt: "10鈩冿綖30鈩�", value: "B" },
+                        { txt: "20鈩冿綖40鈩�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "瀵规祦灞備腑灞傜殑搴曠晫鍗冲娴佸眰涓嬪眰椤讹紝涓婄晫楂樺害绾︿负锛堛��锛夛紝杩欎竴灞傚彈鍦拌〃鐨勫奖鍝嶈繙灏忎簬瀵规祦灞備笅灞傘��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "5 km", value: "A" },
+                        { txt: "6 km", value: "B" },
+                        { txt: "7 km", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鍦ㄤ腑绾害鍜屽壇鐑甫鍦板尯锛岃繖涓�灞備腑甯告湁椋庨�熺瓑浜庢垨澶т簬锛堛��锛夌殑寮洪甯︼紝鍗虫墍璋撻珮绌烘�ユ祦銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "20 m/s", value: "A" },
+                        { txt: "30 m/s", value: "B" },
+                        { txt: "40 m/s", value: "C" }
+                    ]
+                },
+                {
+                    txt: "骞虫祦灞備綅浜庯紙銆�锛変箣涓婏紝浣嶄簬50 km锝�55 km楂樺害澶勩��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "涓棿灞�", value: "A" },
+                        { txt: "瀵规祦灞�", value: "B" },
+                        { txt: "鐑眰", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鍦ㄥ钩娴佸眰鍐咃紝闅忕潃楂樺害鐨勫鍔狅紝姘旀俯鏈�鍒濅繚鎸佷笉鍙樻垨寰湁涓婂崌锛屽埌30 km楂樺害浠ヤ笂姘旀俯鍗囬珮杈冨揩锛屽埌浜嗗钩娴佸眰椤舵皵娓╁崌鑷筹紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "270 K锝�290 K", value: "A" },
+                        { txt: "260 K锝�290 K", value: "B" },
+                        { txt: "270 K锝�280 K", value: "C" }
+                    ]
+                },
+                {
+                    txt: "瀵规祦灞備笅灞傦紝鍙堢О鎽╂摝灞傦紝瀹冪殑鑼冨洿鑷湴闈㈠埌锛堛��锛夌殑楂樺害銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "500 km锝�800 km", value: "A" },
+                        { txt: "800 km锝�1000 km", value: "B" },
+                        { txt: "1000 km锝�2000 km", value: "C" }
+                    ]
+                },
+                {
+                    txt: "涓婂眰鑼冨洿浠庯紙銆�锛夐珮搴︿几灞曞埌瀵规祦灞傜殑椤堕儴锛岃繖涓�灞傜殑姘旀俯甯稿勾閮藉湪0鈩冧互涓嬶紝姘磋捀姘斿惈閲忓緢灏戯紝鍚勭浜戦兘鐢卞啺鏅舵垨杩囧喎鍗存按婊寸粍鎴愩��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "5 km", value: "A" },
+                        { txt: "6 km", value: "B" },
+                        { txt: "7 km", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鍦ㄤ腑绾害鍜屽壇鐑甫鍦板尯锛岃繖涓�灞備腑甯告湁椋庨�熺瓑浜庢垨澶т簬30 m/s鐨勫己椋庡甫锛屽嵆鎵�璋擄紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "楂樼┖鎬ユ祦", value: "A" },
+                        { txt: "浣庣┖鎬ユ祦", value: "B" },
+                        { txt: "涓珮绌烘�ユ祦", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鍦ㄥ鏉傜殑鍦板舰鍜屾伓鍔eぉ姘旀潯浠朵笅锛屽父瀛樺湪鍓х儓鐨勬皵娴佹壈鍔紝濞佽儊鐫�椋炶瀹夊叏锛岀獊鍙戠殑涓嬪啿姘旀祦鍜屽己鐑堢殑锛堛��锛夊父浼氬紩鍙戦鏈轰簨鏁呫��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "浣庣┖椋庡垏鍙�", value: "A" },
+                        { txt: "涓珮绌洪鍒囧彉", value: "B" },
+                        { txt: "楂樼┖椋庡垏鍙�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鐑眰鍙堢О涓烘殩灞傛垨鐢电灞傦紝鑼冨洿浠庝腑闂村眰椤朵几灞曞埌绾︼紙銆�锛夐珮搴︺�傝繖涓�灞傜殑绌烘皵瀵嗗害寰堝皬锛屽0娉篃闅句互浼犳挱銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "700 km", value: "A" },
+                        { txt: "800 km", value: "B" },
+                        { txt: "900 km", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鍦ㄨ緝楂樼殑楂樺害锛岀敱浜庡ぇ姘斿帇鍔涢檷浣庯紝璧烽鍜岀潃闄嗚窛绂讳細锛堛��锛夛紝鐖崌鐜囦篃浼氾紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "澧炲姞锛屽鍔�", value: "A" },
+                        { txt: "澧炲姞锛屽噺灏�", value: "B" },
+                        { txt: "鍑忓皬锛屽噺灏�", value: "C" }
+                    ]
+                },
+                {
+                    RichTxt: "<span>娴峰钩闈㈡俯搴︿负锛堛��锛夛紝娴峰钩闈㈢┖姘旀爣鍑嗗瘑搴︿负1.225 kg/m<sup>2</sup></span>",
+                    userAnswer: "",
+                    options: [
+                        { txt: "55 F", value: "A" },
+                        { txt: "59 F", value: "B" },
+                        { txt: "60 F", value: "C" }
+                    ]
+                },
+                {
+                    txt: "锛堛��锛夋皵鍘嬪拰绌烘皵婀垮害绉颁负涓夊ぇ姘旇薄瑕佺礌銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "椋庡帇", value: "A" },
+                        { txt: "姘旀俯", value: "B" },
+                        { txt: "姘斿瘑搴�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "澶ф皵澶勪簬鏍囧噯鐘舵�佷笅鐨勬捣骞抽潰姘斿帇绉颁负锛堛��锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "鏍囧噯娴峰钩闈㈡皵鍘�", value: "A" },
+                        { txt: "澶ф皵鏍囧噯娴峰钩闈㈡皵鍘�", value: "B" },
+                        { txt: "娴峰钩闈㈡皵鍘�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "锛堛��锛夋槸鎸囩浉瀵逛簬鏍囧噯娴峰钩闈㈢殑楂樺害銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "骞抽潰楂樺害", value: "A" },
+                        { txt: "娴峰钩闈㈤珮搴�", value: "B" },
+                        { txt: "闈㈤珮搴�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鍦ㄥ娴佸眰鍜屽钩娴佸眰涔嬮棿锛岃繕鏈変竴涓帤搴︿负鏁扮櫨绫冲埌2 km鐨勮繃娓″眰锛岀О涓猴紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "骞冲娴佸眰", value: "A" },
+                        { txt: "瀵规祦灞傞《", value: "B" },
+                        { txt: "瀵规祦灞�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "骞虫祦灞傝繃鍘诲父琚О涓猴紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "骞冲娴佸眰", value: "A" },
+                        { txt: "骞虫祦灞備腑", value: "B" },
+                        { txt: "鍚屾俯灞�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鐑眰鐨勫彉鍖栵紙銆�锛夐琛屽櫒鐨勬棤绾跨數閫氫俊銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "涓嶅奖鍝�", value: "A" },
+                        { txt: "浼氬奖鍝�", value: "B" },
+                        { txt: "鏈変竴瀹氬奖鍝�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鏁i�稿眰鍙堢О锛堛��锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "閫冮�稿眰", value: "A" },
+                        { txt: "閫冩暎灞�", value: "B" },
+                        { txt: "鏁h繙灞�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鍦扮悆琛ㄩ潰鏈変竴灞傚帤鍘氱殑锛堛��锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "澶ф皵灞�", value: "A" },
+                        { txt: "姘ф皵灞�", value: "B" },
+                        { txt: "鑷哀灞�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "瀵规祦灞備笅灞傦紝鍙堢О锛堛��锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "涓嬪娴佸眰", value: "A" },
+                        { txt: "鎽╂摝灞�", value: "B" },
+                        { txt: "瀵规祦灞�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鍦ㄥ娴佸眰涓嬪眰锛屾皵娴佸彈鍦伴潰鎽╂摝浣滅敤寰堝ぇ锛岄閫熼�氬父闅忛珮搴﹀鍔犺�岋紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "澧炲ぇ", value: "A" },
+                        { txt: "鍑忓皬", value: "B" },
+                        { txt: "涓嶅彉", value: "C" }
+                    ]
+                },
+                {
+                    txt: "锛堛��锛夋寜姘旀祦鍜屽ぉ姘旂幇璞″垎甯冪殑鐗圭偣锛屽張鍙垎涓轰笅灞傘�佷腑灞傚拰涓婂眰銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "瀵规祦灞�", value: "A" },
+                        { txt: "鎽╂摝灞�", value: "B" },
+                        { txt: "涓眰鎬ユ祦", value: "C" }
+                    ]
+                },
+                {
+                    txt: "瀵规祦灞傛槸鍦扮悆澶ф皵涓渶锛堛��锛夌殑涓�灞傘��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "楂�", value: "A" },
+                        { txt: "浣�", value: "B" },
+                        { txt: "澶�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鍦ㄩ鏈虹潃闄嗘椂锛屽皢楂樺害琛ㄦ寚绀洪珮搴﹀噺鍘绘満鍦烘爣楂樺氨绛変簬椋炴満璺濇満鍦鸿窇閬撻潰鐨勶紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "闀垮害", value: "A" },
+                        { txt: "楂樺害", value: "B" },
+                        { txt: "璺濈", value: "C" }
+                    ]
+                },
+                {
+                    txt: "鏍规嵁鏍囧噯澶ф皵涓皵鍘嬩笌楂樺害鐨勫叧绯伙紝灏卞彲浠ヨ〃绀猴紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "楂樺害", value: "A" },
+                        { txt: "姘斿帇", value: "B" },
+                        { txt: "澶ф皵鍘�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "姘斿帇寮忛珮搴﹁〃鏄富瑕佺殑锛堛��锛変华琛ㄣ��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "楂樺害", value: "A" },
+                        { txt: "澶ф皵鍘�", value: "B" },
+                        { txt: "鑸", value: "C" }
+                    ]
+                },
+                {
+                    txt: "姘斿帇闅忛珮搴︾殑鍙樺寲褰撳ぇ姘斿浜庨潤姝㈢姸鎬侊紝鏌愪竴楂樺害涓婄殑姘斿帇鍊肩瓑浜庡叾鍗曚綅姘村钩闈㈢Н涓婃墍鎵垮彈鐨勪笂閮ㄥぇ姘旀煴鐨勯噸鍔涳紝闅忕潃楂樺害澧炲姞锛屽叾涓婇儴澶ф皵鏌辫秺鏉ヨ秺鐭紝涓旀皵鏌变腑绌烘皵瀵嗗害瓒婃潵瓒婂皬锛屾皵鏌遍噸鍔涗篃灏憋紙銆�锛夈��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "瓒婂皬", value: "A" },
+                        { txt: "瓒婂ぇ", value: "B" },
+                        { txt: "涓嶅彉", value: "C" }
+                    ]
+                },
+                {
+                    txt: "娲查檯寮归亾瀵煎脊鍙姷杈撅紙銆�锛夐琛屻��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "鐢电灞�", value: "A" },
+                        { txt: "鐑眰", value: "B" },
+                        { txt: "浜戝眰", value: "C" }
+                    ]
+                },
+                {
+                    txt: "锛堛��锛夌殑鍙樺寲浼氬奖鍝嶉琛屽櫒鐨勬棤绾跨數閫氫俊銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "鐢电", value: "A" },
+                        { txt: "鐑眰", value: "B" },
+                        { txt: "浜戝眰", value: "C" }
+                    ]
+                },
+                {
+                    txt: "锛堛��锛夌殑鐜颁唬姝煎嚮鏈哄拰渚﹀療鏈洪兘鑳藉湪骞虫祦灞備腑椋炶銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "楂樻�ц兘", value: "A" },
+                        { txt: "浣庢�ц兘", value: "B" },
+                        { txt: "涓�ц兘", value: "C" }
+                    ]
+                },
+                {
+                    txt: "锛堛��锛夈�侊紙銆�锛夊拰锛堛��锛夌О涓轰笁澶ф皵璞¤绱犮��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "姘旀俯銆佹皵鍘嬨�佷簯", value: "A" },
+                        { txt: "姘旀俯銆佹皵鍘嬨�佺┖姘旀箍搴�", value: "B" },
+                        { txt: "姘旀俯銆佷簯銆侀檷姘�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "椋炶楂樺害灞傚簲褰撴牴鎹紙銆�锛夎绠椼��",
+                    userAnswer: "",
+                    options: [
+                        { txt: "鏍囧噯澶ф皵鍘嬫潯浠朵笅骞冲潎骞抽潰", value: "A" },
+                        { txt: "鏍囧噯澶ф皵鍘嬫潯浠朵笅鍋囧畾娴峰钩闈�", value: "B" },
+                        { txt: "瀹為檯澶ф皵鍘嬫潯浠朵笅鍋囧畾娴峰钩闈�", value: "C" }
+                    ]
+                },
+                {
+                    txt: "锛堛��锛夋寚姘旇薄鍙版皵鍘嬭〃鐩存帴娴嬪緱鐨勬皵鍘嬨�傜敱浜庡悇娴嬬珯鎵�澶勭殑鍦扮悊浣嶇疆鍙婃捣鎷斾笉鍚岋紝鏈珯姘斿帇甯告湁杈冨ぇ宸紓銆�",
+                    userAnswer: "",
+                    options: [
+                        { txt: "鏈珯姘斿帇", value: "A" },
+                        { txt: "鍦洪潰姘斿帇", value: "B" },
+                        { txt: "淇娴峰钩闈㈡皵鍘�", value: "C" }
+                    ]
+                }
+            ],
+            // 瑙嗛
+            videoDataOne: {
+                videoMd5: [
+                    {
+                        isCollectVideo: false,
+                        handleMd5: "",
+                        md5: this.resourceList[23],
+                        name: "1-澶氭棆缈兼棤浜烘満姒傚康鍙婄粨鏋�",
+                    },
+                    {
+                        isCollectVideo: false,
+                        handleMd5: "",
+                        md5: this.resourceList[24],
+                        name: "2-鏃犱汉鐩村崌鏈烘蹇典笌缁撴瀯",
+                    },
+                    {
+                        isCollectVideo: false,
+                        handleMd5: "",
+                        md5: this.resourceList[25],
+                        name: "3-鍥哄畾缈兼棤浜烘満姒傚康涓庣粨鏋�",
+                    },
+                    {
+                        isCollectVideo: false,
+                        handleMd5: "",
+                        md5: this.resourceList[26],
+                        name: "4-澶氾紙鍥涳級鏃嬬考鏃犱汉鏈哄竷灞�鍙婂叾鐗圭偣",
+                    },
+                ],
+            },
+            videoDataTwo: {
+                videoMd5: [
+                    {
+                        isCollectVideo: false,
+                        handleMd5: "",
+                        md5: this.resourceList[27],
+                        name: "5-鏃犱汉鏈烘硶瑙勭殑鎰忎箟鍙婇粦椋炵殑鍗卞",
+                    },
+                    {
+                        isCollectVideo: false,
+                        handleMd5: "",
+                        md5: this.resourceList[28],
+                        name: "6-绌哄煙鐨勫垎绫讳笌鍖哄埆",
+                    },
+                ],
+            },
+            videoDataThree: {
+                videoMd5: [
+                    {
+                        isCollectVideo: false,
+                        handleMd5: "",
+                        md5: this.resourceList[29],
+                        name: "7-澶ф皵灞傜殑鍒掑垎鍙婂娴佸眰銆佸钩娴佸眰鐨勭壒鐐�",
+                    },
+                ],
+            },
+            collectResourceList: [],
+        };
+    },
+    async mounted() {
+        const questionData = localStorage.getItem("UAVTechIntro-book-chapter001-questionData");
+        if (questionData) {
+            this.questionData = JSON.parse(questionData);
+        }
+
+        const tableData = localStorage.getItem("UAVTechIntro-book-chapter001-tableData");
+        if (tableData) {
+            this.tableData = JSON.parse(tableData);
+        }
+
+        const questionDataTwo = localStorage.getItem("UAVTechIntro-book-chapter001-questionDataTwo");
+        if (questionDataTwo) {
+            this.questionDataTwo = JSON.parse(questionDataTwo);
+        }
+
+        const questionDataThree = localStorage.getItem("UAVTechIntro-book-chapter001-questionDataThree");
+        if (questionDataThree) {
+            this.questionDataThree = JSON.parse(questionDataThree);
+        }
+        this.getVidoePath()
+        this.collectResourceList = await getCollectResource(
+            this.config.activeBook.bookId
+        );
+    },
+    methods: {
+        async getVidoePath() {
+            for (let index = 0; index < this.videoDataOne.videoMd5.length; index++) {
+                const item = this.videoDataOne.videoMd5[index];
+                if (item.md5 && !item.md5.includes("https:")) {
+                    item.handleMd5 = await getResourcePath(item.md5);
+                }
+            }
+
+            for (let index = 0; index < this.videoDataTwo.videoMd5.length; index++) {
+                const item = this.videoDataTwo.videoMd5[index];
+                if (item.md5 && !item.md5.includes("https:")) {
+                    item.handleMd5 = await getResourcePath(item.md5);
+                }
+            }
+
+            for (let index = 0; index < this.videoDataThree.videoMd5.length; index++) {
+                const item = this.videoDataThree.videoMd5[index];
+                if (item.md5 && !item.md5.includes("https:")) {
+                    item.handleMd5 = await getResourcePath(item.md5);
+                }
+            }
+        },
+        handleCollect(e) {
+            if (e.md5) {
+                this.handleCollectResource(
+                    e.md5,
+                    e.md5,
+                    "",
+                    "瑙嗛",
+                    "bits",
+                    "" + e.name
+                );
+                e.isCollectVideo = !e.isCollectVideo;
+            }
+        },
+        //璧勬簮鏀惰棌浜嬩欢
+        // resourcePath  鏂囦欢璺緞锛�
+        // resourceType  鏂囦欢绫诲瀷
+        // source        鏂囦欢鏉ユ簮
+        handleCollectResource(id, md5, resourcePath, resourceType, source, resourceName) {
+            let list = this.collectResourceList
+            if (list.findIndex(item => item.id == id) > -1) {
+                list = list.filter(item => item.id != id)
+            } else {
+                list.push({
+                    id,
+                    md5,
+                    resourcePath,
+                    resourceType,
+                    source,
+                    resourceName,
+                })
+            }
+            this.collectResourceList = list
+            setCollectResource(this.config.activeBook.bookId, this.collectResourceList)
+        },
+
+        saveInputChoice() {
+            localStorage.setItem('UAVTechIntro-book-chapter001-questionData', JSON.stringify(this.questionData))
+        },
+        setBookTableData() {
+            localStorage.setItem('UAVTechIntro-book-chapter001-tableData', JSON.stringify(this.tableData))
+        },
+
+        saveQuestionDataTwo() {
+            localStorage.setItem('UAVTechIntro-book-chapter001-questionDataTwo', JSON.stringify(this.questionDataTwo))
+        },
+        saveQuestionDataThree() {
+            localStorage.setItem('UAVTechIntro-book-chapter001-questionDataThree', JSON.stringify(this.questionDataThree))
+        }
+    },
+};
+</script>
+
+<style lang="less" scoped></style>
\ No newline at end of file
diff --git a/src/books/UAVTechIntro/view/components/header.vue b/src/books/UAVTechIntro/view/components/header.vue
new file mode 100644
index 0000000..c044df0
--- /dev/null
+++ b/src/books/UAVTechIntro/view/components/header.vue
@@ -0,0 +1,136 @@
+<template>
+    <div class="chapter" num="1">
+        <!-- 灏侀潰 -->
+        <div class="page-box mt-20" page="1" style="padding-bottom: 0px">
+            <div v-if="showPageList.indexOf(1) > -1">
+                <img class="img-0" alt="" src="../../assets/images/Cover.jpg" />
+            </div>
+        </div>
+        <!-- 鎵夐〉 -->
+        <div class="page-box mt-20" page="2" style="padding-bottom: 0px">
+            <div v-if="showPageList.indexOf(2) > -1">
+                <img class="img-0" alt="" src="../../assets/images/feiye.jpg" />
+            </div>
+        </div>
+        <!-- 浠嬬粛椤甸潰 -->
+        <div class="page-box" page="3">
+            <div v-if="showPageList.indexOf(3) > -1">
+                <div style="margin: 0 auto; padding: 50% 40% 10% 10%;">
+                    <p class="td-1 fz-15 block2"><b>鍥句功鍦ㄧ増缂栫洰锛圕IP锛夋暟鎹�</b></p>
+                    <p class="td-1 fz-15 block2">
+                        鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�/榄忓叏鏂屼富缂栵紝鈥斿寳浜�:鍖椾含甯堣寖澶у鍑虹増绀撅紝2023.12
+                    </p>
+                    <p class="td-1 fz-15 block2">
+                        鑱屼笟鏁欒偛鑸┖瑁呭绫讳笓涓氣�滀骇鏁欒瀺鍚堚�濇柊褰㈡�佹暀鏉�/榄忓叏鏂屾�讳富缂�
+                    </p>
+                    <p class="td-1 fz-15 block2">ISBN 978-7-303-29775-7</p>
+                    <p class="td-1 fz-15 block2">
+                        I. 鈶犳棤鈥︺��鈪�. 鈶犻瓘鈥︺��鈪�. 鈶犳棤浜洪┚椹堕鏈轰竴楂樼瓑鑱屼笟鏁欒偛涓�鏁欐潗銆�IV.鈶燰279
+                    </p>
+                    <p class="td-1 fz-15 block2">
+                        涓浗鍥藉鐗堟湰棣咰IP鏁版嵁鏍稿瓧(2024)绗�02473鍙�
+                    </p>
+                    <hr />
+                    <p class="td-0 fz-14 block3">
+                        鍑虹増鍙戣锛氬寳浜笀鑼冨ぇ瀛﹀嚭鐗堢ぞ銆�https://www.bnupg.com
+                    </p>
+                    <p class="td-0 fz-14 block3">
+                        銆�銆�銆�銆�銆�鍖椾含甯傝タ鍩庡尯鏂拌鍙e澶ц12-3鍙�
+                    </p>
+                    <p class="td-0 fz-14 block3">銆�銆�銆�銆�銆�閭斂缂栫爜锛�100088</p>
+                    <p class="td-0 fz-14 block3">鍗般��銆�鍒凤細澶╂触涓嵃鑱斿嵃鍔℃湁闄愬叕鍙�</p>
+                    <p class="td-0 fz-14 block3">缁忋��銆�閿�锛氬叏鍥芥柊鍗庝功搴�</p>
+                    <p class="td-0 fz-14 block3">寮�銆�銆�鏈細889mm脳1194mm銆�1/16</p>
+                    <p class="td-0 fz-14 block3">鍗般��銆�寮狅細11</p>
+                    <p class="td-0 fz-14 block3">瀛椼��銆�鏁帮細245鍗冨瓧</p>
+                    <p class="td-0 fz-14 block3">鐗堛��銆�娆★細2023骞�12鏈堢1鐗�</p>
+                    <p class="td-0 fz-14 block3">鍗般��銆�娆★細2023骞�12鏈堢1娆″嵃鍒�</p>
+                    <p class="td-0 fz-14 block3">瀹氥��銆�浠凤細38.00鍏�</p>
+                    <hr />
+                    <p class="td-0 fz-15 block3">
+                        绛栧垝缂栬緫锛氱帇浜戣嫳銆�銆�銆�銆�銆�銆�銆�璐d换缂栬緫锛氶┈鍔涙晱
+                    </p>
+                    <p class="td-0 fz-15 block3">
+                        缇庢湳缂栬緫锛氱劍銆�涓姐��銆�銆�銆�銆�銆�銆�瑁呭抚璁捐锛氱劍銆�涓�
+                    </p>
+                    <p class="td-0 fz-15 block3 mb-20">
+                        璐d换鏍″锛氶檲銆�姘戙��銆�銆�銆�銆�銆�銆�璐d换鍗板埗锛氳档銆�榫�
+                    </p>
+                    <p class="td-0 block3 fz-16"><b>鐗堟潈鎵�鏈夈��渚垫潈蹇呯┒</b></p>
+                    <p class="td-0 block3 fz-11">璇昏�呮湇鍔$數璇�:010-58806806</p>
+                    <p class="td-0 block3 fz-11">濡傚彂鐜板嵃瑁呰川閲忛棶棰�,褰卞搷闃呰,璇疯仈绯诲嵃鍒剁鐞嗛儴:010-58800608</p>
+                </div>
+            </div>
+        </div>
+        <!-- 鍓嶈█ -->
+        <div class="page-box" page="5">
+            <div v-if="showPageList.indexOf(5) > -1">
+                <ul class="fl al-c jc-fe mr-70 pad-t-55 mb-45">
+                    <li class="headerText pNum">1</li>
+                    <img class="headerImg mr-10" src="../../assets/images/yemei.png" alt="" />
+                </ul>
+                <div style="padding: 0px 12% 136px 12%">
+                    <div class="fl">
+                        <div class="fl fd-c" style="margin: 0 0 100px 0">
+                            <div class="topBorder"></div>
+                            <h1 id="a004" class="foreword">鍓嶈█</h1>
+                            <div class="bottomBorder"></div>
+                        </div>
+                    </div>
+                    <p class="preface">
+                        涔犺繎骞虫�讳功璁板娆″己璋冩暀鑲插己鍥姐�佺鎶�寮哄浗锛屾槑纭寚鍑衡�滄暀鑲层�佺鎶�銆佷汉鎵嶆槸鍏ㄩ潰寤鸿绀句細涓讳箟鐜颁唬鍖栧浗瀹剁殑鍩虹鎬с�佹垬鐣ユ�ф敮鎾戔�濓紝杩欎负楂樼瓑鏁欒偛鐨勫彂灞曟彁鍑轰簡鏂版柟鍚戜笌鏂拌姹傘�傛嫢鎶辩鎶�锛岃凯浠f枃鏄庯紝澧炲己鑱屼笟鏁欒偛閫傚簲鎬э紝鍔犲揩鏋勫缓鐜颁唬鑱屼笟鏁欒偛浣撶郴锛屽煿鍏绘洿澶氶珮绱犺川绉戞妧搴旂敤鍨嬩汉鎵嶃�佹妧鏈妧鑳戒汉鎵嶃�佽兘宸ュ阀鍖犮�佸ぇ鍥藉伐鍖狅紝鏄亴涓氶櫌鏍$殑鍔炲浣垮懡銆�
+                    </p>
+                    <p class="preface">
+                        鐜颁唬鏃犱汉鏈烘妧鏈互鍙婁互鏃犱汉鏈轰负杞戒綋鐨勬嫇灞曢」鐩凡缁忚搴旂敤鍒扮ぞ浼氬悇涓柟闈€�傞殢鐫�鏃犱汉鏈虹浉鍏虫妧鏈殑鍙戝睍鍜岃繍鐢ㄤ互鍙婃棤浜烘満浜т笟鐨勮摤鍕冨彂灞曪紝鐩稿叧棰嗗煙鐨勪笓涓氫汉鎵嶅煿鍏诲凡缁忔垚涓烘椂浠f墍闇�銆佽涓氭墍闇�銆傜劧鑰岋紝鎴戝浗鏃犱汉鏈鸿亴涓氭暀鑲茶捣姝ヨ緝鏅氾紝鏁欒偛杩囩▼涓己涔忓熀纭�銆佺郴缁熴�佷笓涓氱殑鏁欐潗銆備负瑙e喅杩欎竴闂锛屾垜浠壒缂栧啓浜嗘湰涔︺��
+                    </p>
+                    <p class="preface">
+                        鏈功渚濇嵁鏃犱汉鏈轰笓涓氭暀瀛︽寚瀵兼柟妗堬紝浠ュ強琛屼笟銆佽亴涓氭妧鏈鑼冨拰鐩稿叧娉曞緥娉曡缂栧啓鑰屾垚锛屽叏闈粙缁嶄簡鏃犱汉鏈哄熀纭�鐭ヨ瘑銆佺浉鍏冲簲鐢ㄦ柟鍚戙�佺幇鐘跺拰鏈潵鍙戝睍瓒嬪娍锛屼负杩涘叆鏃犱汉鏈哄簲鐢ㄦ妧鏈笓涓氬涔犵殑瀛︾敓鎻愪緵浜嗘墡瀹炵殑鐭ヨ瘑璁茶В銆傚箍澶ц鑰呬篃鑳藉湪瀛︿範鏈功鍚庯紝鎷撳睍鐭ヨ瘑闈紝鍩瑰吇鍏磋叮鐖卞ソ锛屽苟灏嗗涔犲埌鐨勬棤浜烘満鐭ヨ瘑鍜屾妧鏈繍鐢ㄥ埌瀹為檯宀椾綅瀹炶返涓紝杈惧埌瀛︿互鑷寸敤銆佽祴鑳藉疄闄呭伐浣滅殑鐩殑銆�
+                    </p>
+                    <p class="preface">
+                        鏈功鍐呭鐨勯�夋嫨鍜岀紪鎺掞紝鍏呭垎鑰冭檻鍒板鐢熷師鏈夌煡璇嗙粨鏋勭殑鐗圭偣锛屽幓绻佷粠绠�銆佺敱鏄撳埌闅撅紝浣跨敤澶ч噺鍥剧墖鏉ヤ唬鏇挎娊璞$殑鐞嗚姒傚康锛岃鍒濆鑰呰兘澶熷揩閫熷湴鎺屾彙鏃犱汉鏈哄熀纭�鐭ヨ瘑锛屾彁楂樺涔犲叴瓒o紝涓烘繁鍏ュ涔犱笓涓氳绋嬫墦涓嬪潥瀹炵殑鍩虹銆�
+                    </p>
+                    <p class="preface">
+                        鏈功缂栨帓绱у瘑缁撳悎绉戞妧鍙戝睍鍜岀ぞ浼氶渶姹傝秼鍔匡紝娉ㄩ噸瀹炵敤鎬у拰瓒e懗鎬э紝閫傚悎鑱屼笟闄㈡牎鏃犱汉鏈轰笓涓氬鐢熷拰鏃犱汉鏈虹埍濂借�呭涔犱娇鐢ㄣ�傛垜浠》蹇冨笇鏈涜繖鏈功鑳藉甯姪鏇村璇昏�呮帉鎻℃棤浜烘満鍩虹鐭ヨ瘑鍜屽熀鏈妧鏈紝鍔╁姏绉戞妧寮哄浗鍜屾棤浜烘満琛屼笟鍙戝睍銆�
+                    </p>
+                    <p class="preface">
+                        鏈功鐢卞洓宸濇硾缇庢暀鑲叉姇璧勯泦鍥㈡湁闄愯矗浠诲叕鍙哥壍澶达紝鑱斿悎鍥涘窛瑗垮崡鑸┖鑱屼笟瀛﹂櫌銆佸寳浜俊鎭鎶�澶у銆佸寳浜伐涓氳亴涓氭妧鏈闄€�侀噾鍗庡競绗竴涓瓑鑱屼笟瀛︽牎绛夐櫌鏍★紝涓浗鑸┖鍣ㄦ嫢鏈夎�呭強椹鹃┒鍛樺崗浼氾紝浠ュ強鍖椾含鍚櫤澶╃┖绉戞妧鏈夐檺鍏徃銆佽嫃宸炴瀬鐩満鍣ㄤ汉绉戞妧鏈夐檺鍏徃绛変紒涓氬叡鍚岀紪鍐欍�傜紪鑰呬腑鏃㈡湁闀挎湡浠庝簨鑱屼笟鏁欒偛鐨勪笓瀹躲�佹暀鎺堛�佷竴绾挎暀甯堬紝瀵硅亴涓氶櫌鏍$殑瀛︽湳鐗圭偣鍜屾暀瀛﹁寰嬮潪甯哥啛鎮夛紱涔熸湁鍦ㄤ紒涓氬伐浣滃骞磋浆琛岃嚦楂樿亴闄㈡牎鐨勯珮绾у伐绋嬫妧鏈汉鍛橈紝瑙e喅闂鐨勬�濈淮瀵煎悜鍗佸垎鏄庣‘锛涜繕鏈夋棤浜烘満鍗忎細鍜屼紒涓氱殑鎶�鏈笓瀹跺拰楠ㄥ共锛屼繚璇佷簡鍐呭璐磋繎鐢熶骇宸ヤ綔瀹為檯銆�
+                    </p>
+                </div>
+            </div>
+        </div>
+        <!-- 鍓嶈█ -->
+        <div class="page-box" page="6">
+            <div v-if="showPageList.indexOf(6) > -1">
+                <ul class="fl al-c jc-sb pad-t-55 pad-l-80 pad-r-80">
+                    <li class="header-left-Number">
+                        <span class="mr-10 pNum">2</span>
+                        <span><span class="span-box-title"></span>鏃犱汉鏈哄簲鐢ㄦ妧鏈璁�<span class="span-box-title"></span></span>
+                    </li>
+                    <li class="header-left-text">
+                        <img class="img-c" src="../../assets/images/yemei01.png" alt="" />
+                    </li>
+                </ul>
+                <div class="bodystyle">
+                    <p class="preface">鏈功鐢遍瓘鍏ㄦ枌鎷呬换涓荤紪锛岃碍娴┿�佸鏂囩惓鎷呬换鍓富缂栵紝鍙傚姞缂栧啓鐨勮繕鏈夊緪涓广�佸嵖寤轰笢銆侀粍濠夊┓銆佸懆椋庢櫙銆佸懆浼熴�佽儭绁栫伀銆佽档鐝犵惇銆佹瘺鐟躲��</p>
+                    <p class="preface">鍦ㄧ紪鍐欒繃绋嬩腑锛屽緱鍒颁簡鍥涘窛瑗垮崡鑸┖鑱屼笟瀛﹂櫌鏁欏姟澶勩�佺鐮斿鍙婂寳浜笀鑼冨ぇ瀛﹀嚭鐗堢ぞ锛堥泦鍥級鏈夐檺鍏徃鐨勫ぇ鍔涙敮鎸侊紝骞舵彁鍑轰簡瀹濊吹鐨勬寚瀵兼剰瑙侊紝鍦ㄦ涓�骞惰〃绀烘劅璋紒</p>
+                    <p class="preface">鐢变簬缂栬�呰兘鍔涘拰姘村钩鏈夐檺锛屼功涓毦鍏嶆湁涓嶈冻涔嬪锛屾伋璇峰箍澶ц鑰呮壒璇勬寚姝o紝浠ヤ究鎴戜滑淇鏃跺姞浠ュ畬鍠勩��</p>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    name: "pageHeader",
+    props: {
+        showPageList: {
+            type: Array,
+        },
+    },
+    data() {
+        return {};
+    },
+};
+</script>
+
+<style lang="less" scoped></style>
\ No newline at end of file
diff --git a/src/books/UAVTechIntro/view/components/index.vue b/src/books/UAVTechIntro/view/components/index.vue
new file mode 100644
index 0000000..1eca689
--- /dev/null
+++ b/src/books/UAVTechIntro/view/components/index.vue
@@ -0,0 +1,989 @@
+<template>
+  <div class="page-main" @scroll="throttledScrollHandler">
+    <div id="searchDomBox" style="display: none">
+      <div id="searchContent"></div>
+    </div>
+    <div class="page-content" :style="{
+      fontSize: fontSize + 'px',
+      transform: `scale(${pageZoom})`,
+      transformOrigin: 'center top',
+    }">
+      <pageHeader v-if="showCatalogList.indexOf(1) > -1" :showPageList="loadPageList"></pageHeader>
+      <chapterOne v-if="showCatalogList.indexOf(2) > -1" :showPageList="loadPageList" :resourceList="resourceList">
+      </chapterOne>
+      <!-- <chapterTwo
+          v-if="showCatalogList.indexOf(3) > -1"
+          :showPageList="loadPageList"
+        ></chapterTwo>
+        <chapterThree
+          v-if="showCatalogList.indexOf(4) > -1"
+          :showPageList="loadPageList"
+        ></chapterThree>
+        <chapterFour
+          v-if="showCatalogList.indexOf(5) > -1"
+          :showPageList="loadPageList"
+        ></chapterFour>-->
+      <!-- <chapterFive
+          v-if="showCatalogList.indexOf(2) > -1"
+          :showPageList="loadPageList"
+          :interfaceQuestion="questionDataMap"
+        ></chapterFive>  -->
+    </div>
+  </div>
+</template>
+
+<script>
+import Vue from "vue";
+import pageHeader from "./header.vue";
+import chapterOne from "./chapter001.vue";
+//   import chapterTwo from "./chapter002.vue";
+//   import chapterThree from "./chapter003.vue";
+//   import chapterFour from "./chapter004.vue";
+//   import chapterFive from "./chapter005.vue";
+import NoteIcon from "@/assets/images/biji.png";
+//   import getQuestionList from "@/assets/methods/examination";
+//   import testData from "../../assets/examinationList";
+import _ from "lodash";
+import Swiper from "swiper/bundle";
+import "swiper/swiper-bundle.css";
+import Viewer from "viewerjs";
+import "viewerjs/dist/viewer.css";
+export default {
+  name: "pageContent",
+  data() {
+    return {
+      catalogLength: 2, // 鎬荤珷鑺傛暟
+      showCatalogList: [], // 鏄剧ず鐨勭珷鑺�
+      loadThreshold: 300, // 瑙﹀彂鍔犺浇闃堝��
+      throttleThreshold: 100, // 鑺傛祦闃堝��
+      previousScrollTop: 0,
+      throttledScrollHandler: null,
+      observer: null,
+      loadPageObserver: null,
+      loadPageList: [],
+      questionDataMap: {},
+      renderSignMap: {},
+      highlightData: null,
+      audioPath: "",
+      currentTime: null,
+      videoList: [],
+      resourceList: {},
+    };
+  },
+  computed: {
+    fontSize() {
+      this.transformDom(this.$store.state.qiankun.fontSize);
+      return this.$store.state.qiankun.fontSize
+        ? this.$store.state.qiankun.fontSize
+        : 16;
+    },
+    pageZoom() {
+      return this.$store.state.qiankun.scale
+        ? this.$store.state.qiankun.scale / 100
+        : 1;
+    },
+  },
+  watch: {
+    showCatalogList: {
+      handler(newVal, oldVal) {
+        if (
+          this.$store.state.qiankun &&
+          this.$store.state.qiankun.catalogChange
+        ) {
+          // 璋冪敤鐖跺眰鏂规硶
+          this.$store.state.qiankun.catalogChange({
+            showCatalogList: newVal,
+          });
+        }
+        // 鍚姩椤电爜瑙傚療
+        setTimeout(() => {
+          this.initObservation();
+          this.initThemeColor();
+        }, 500);
+      },
+    },
+    loadPageList: {
+      handler(newVal, oldVal) {
+        setTimeout(() => {
+          this.transformDom(this.$store.state.qiankun.fontSize);
+          this.initSwiper();
+          this.initViewer();
+          this.closeAudio();
+          this.closeVideo();
+        }, 200);
+      },
+    },
+    pageZoom: {
+      handler(newVal, oldVal) {
+        const scrollBox = (
+          this.container ? this.container : document
+        ).querySelector(".page-main");
+        scrollBox.scrollTop = (scrollBox.scrollTop / oldVal) * newVal;
+      },
+    },
+    resourceList: {
+      handler(newVal, oldVal) {
+        this.resourceList = newVal;
+      },
+    },
+  },
+  mounted() {
+    // 榛樿鍔犺浇绔犺妭
+    this.showCatalogList = [1];
+    // 婊氬姩鐩戝惉鑺傛祦
+    this.throttledScrollHandler = _.throttle(
+      this.scrollFun,
+      this.throttleThreshold,
+      { leading: true, trailing: false }
+    );
+    // 瀹氫箟瀛愬眰鏂规硶
+    if (this.setGlobalState) {
+      // 鎻愪緵椤甸潰璺宠浆鍔熻兘
+      this.setGlobalState({
+        gotoPage: (catalog, page) => {
+          this.gotoPage(catalog, page);
+        },
+        // 娓叉煋绗旇銆侀珮浜�佸垝绾�
+        renderSign: (type, data) => {
+          // 鍥犱负璋冩暣涓洪〉闈㈡噿鍔犺浇锛屾墍浠ユ覆鏌撴爣璁颁篃闇�瑕佹寜鐓ч〉闈㈣繘琛屽鐞嗭紝鍏堝偍瀛樻暟鎹紝椤甸潰鍔犺浇瀹屾垚鍐嶆覆鏌撳搴旂殑鏍囪锛�
+          this.handelSignData(type, data);
+          // this.renderSign(type, data);
+        },
+        // 鍒犻櫎绗旇銆侀珮浜�佸垝绾�
+        delSign: (data) => {
+          this.delSign(data);
+        },
+        // 鍏ㄦ枃妫�绱�
+        searchBookByKeyword: (keyword) => {
+          return this.searchTextByPage(keyword);
+        },
+        // 璺宠浆妫�绱㈢粨鏋滀綅缃�
+        jumpSearchItem: (data) => {
+          this.searchItemLocation(data);
+        },
+      });
+    }
+
+    // 鍒涘缓涓�涓柊鐨� Intersection Observer 瀹炰緥锛岀敤浜庤瀵熺洰鏍囧厓绱犲拰鎵ц鐩稿簲鐨勫洖璋冨嚱鏁般��
+    // new IntersectionObserver(callback, options)锛氫娇鐢ㄤ箣鍓嶅畾涔夌殑 callback 鍥炶皟鍑芥暟鍜� options 閰嶇疆閫夐」鏉ュ垵濮嬪寲 Intersection Observer 瀹炰緥銆�
+    this.observer = new IntersectionObserver(this.pageChangeCallback, {
+      root: null, // 鎸囧畾鏍瑰厓绱狅紝杩欓噷璁句负 null锛岃〃绀洪�夊彇鏁翠釜瑙嗙獥浣滀负鏍瑰厓绱犮��
+      rootMargin: "0px", // 鎸囧畾鏍瑰厓绱犵殑杈圭晫锛岃繖閲岃涓� "0px"锛岃〃绀烘牴鍏冪礌鐨勮竟鐣屽拰瑙嗙獥鐨勮竟鐣岄噸鍚�
+      threshold: 0.5, // 鎸囧畾浜ゅ弶姣斾緥锛岃繖閲岃涓� 0.5锛岃〃绀哄綋鐩爣鍏冪礌涓�鍗婃垨鏇村鏄剧ず鍦ㄨ绐椾腑鏃惰Е鍙戝洖璋冨嚱鏁般��
+    });
+
+    this.loadPageObserver = new IntersectionObserver(this.loadPageCallback, {
+      root: null, // 鎸囧畾鏍瑰厓绱狅紝杩欓噷璁句负 null锛岃〃绀洪�夊彇鏁翠釜瑙嗙獥浣滀负鏍瑰厓绱犮��
+      rootMargin: "0px", // 鎸囧畾鏍瑰厓绱犵殑杈圭晫锛岃繖閲岃涓� "0px"锛岃〃绀烘牴鍏冪礌鐨勮竟鐣屽拰瑙嗙獥鐨勮竟鐣岄噸鍚�
+      threshold: 0, // 鎸囧畾浜ゅ弶姣斾緥锛岃繖閲岃涓� 0.5锛岃〃绀哄綋鐩爣鍏冪礌涓�鍗婃垨鏇村鏄剧ず鍦ㄨ绐椾腑鏃惰Е鍙戝洖璋冨嚱鏁般��
+    });
+
+    this.getBookResourceList();
+
+    // 鍚姩椤电爜瑙傚療
+    setTimeout(() => {
+      this.initObservation();
+      this.initThemeColor();
+    }, 500);
+
+    // 娴嬭瘯椤甸潰璺宠浆
+    // setTimeout(() => {
+    //   this.gotoPage(2, 11);
+    // }, 500);
+
+    // const pageDom = (this.container ? this.container : document)
+    //   .querySelector("#app")
+    //   .querySelectorAll(".page-box");
+    // 妫�绱�
+    // console.log(this.searchTextByPage("淇濇姢鍐呰剰鍣ㄥ畼"), "searchTextByPage");
+    // 妫�绱㈣烦杞�
+    // this.searchItemLocation({
+    //   catalog: 2,
+    //   page: 10,
+    //   txt: " 杩愬姩绯荤粺鏄敱楠ㄣ�侀杩炵粨鍜岄楠艰倢涓夐儴鍒嗙粍鎴愮殑銆傚叏韬殑楠ㄩ�氳繃楠ㄨ繛缁撶粍鎴愪汉浣撻楠硷紙瑙佸浘1-1锛夈�傞楠兼槸浜轰綋鐨勬敮鏋讹紝鍏锋湁淇濇姢鍐呰剰鍣ㄥ畼銆佷緵鑲岃倝闄勭潃鍜屼綔涓鸿倢鑲夎繍鍔ㄧ殑鏉犳潌绛変綔鐢ㄣ�傚湪绁炵粡绯荤粺鐨勬敮閰嶄笅锛岃倢鑲夋敹缂╃壍鍔ㄦ墍闄勭潃鐨勯缁曠潃鍏宠妭杞姩锛屼娇韬綋浜х敓鍚勭鍔ㄤ綔銆傛墍浠ワ紝杩愬姩绯荤粺鍏锋湁杩愬姩銆佹敮鎸佸拰淇濇姢绛夊姛鑳斤紝骞煎勾鏃舵湡鐨勯楠艰繕鍏锋湁閫犺鍔熻兘銆� ",
+    //   txtIndex: 57
+    // });
+    // }, 500);
+
+  },
+  methods: {
+    // setZoom1() {
+    //   let scale = this.$store.state.qiankun.scale + 10;
+    //   const scrollBox = (
+    //     this.container ? this.container : document
+    //   ).querySelector(".page-main");
+    //   this.$store.commit("setZoom", scale);
+    // },
+    // setZoom2() {
+    //   let scale = this.$store.state.qiankun.scale - 10;
+    //   const scrollBox = (
+    //     this.container ? this.container : document
+    //   ).querySelector(".page-main");
+    //   this.$store.commit("setZoom", scale);
+    // },
+    // 璇锋眰璧勬簮Json
+    async getBookResourceList() {
+      this.resourceList = await this.config.getBookResources(
+        process.env.VUE_APP_RESOURCE_CTX + (process.env.VUE_APP_ENV == "product"
+          ? process.env.VUE_APP_BOOK_ID
+          : "UAVTechIntro")
+      );   
+    },
+    // 婊氬姩鐩戝惉
+    scrollFun(event) {
+      this.handleVideoPicture();
+      // 鍒ゆ柇鍚戜笂婊氬姩杩樻槸鍚戜笅婊氬姩
+      if (event.target.scrollTop > this.previousScrollTop) {
+        this.getAduio();
+        // 鍚戜笅
+        const currentScrollTop =
+          event.target.scrollTop + event.target.offsetHeight;
+        if (
+          currentScrollTop >=
+          event.target.scrollHeight - this.loadThreshold
+        ) {
+          console.log(1);
+
+          // 鍒拌揪闃堝��
+          if (
+            this.showCatalogList[this.showCatalogList.length - 1] <
+            this.catalogLength
+          ) {
+            // 鍔犺浇涓嬩竴绔�
+            this.showCatalogList.push(
+              this.showCatalogList[this.showCatalogList.length - 1] + 1
+            );
+            if (this.showCatalogList.length > 3) {
+              // 瓒呰繃涓夌珷闅愯棌椤堕儴涓�绔�
+              this.showCatalogList.shift();
+            }
+          }
+        }
+      } else if (event.target.scrollTop < this.previousScrollTop) {
+        this.handleAudio();
+        // 鍚戜笂
+        const currentScrollTop = event.target.scrollTop;
+        if (currentScrollTop <= this.loadThreshold) {
+          // 鍒拌揪闃堝��
+          if (this.showCatalogList[0] > 0) {
+            // 鍔犺浇涓婁竴绔�
+            this.showCatalogList.unshift(this.showCatalogList[0] - 1);
+            if (this.showCatalogList.length > 3) {
+              // 瓒呰繃涓夌珷闅愯棌搴曢儴涓�绔�
+              this.showCatalogList.pop();
+            }
+          }
+        }
+      }
+      // showCatalogList 褰撳墠鏄剧ず鐨勪笁涓珷鑺傦紝watch鐩戝惉浼犻�掔粰涓诲簲鐢�
+      // 鏇存柊涓婁竴娆℃粴鍔ㄧ殑浣嶇疆
+      this.previousScrollTop = event.target.scrollTop;
+    },
+    // 绔犺妭銆侀〉闈㈣烦杞�
+    gotoPage(catalog, page) {
+      if (catalog >= 0 && catalog <= this.catalogLength) {
+        // 澶勭悊娓叉煋绔犺妭
+        if (catalog == 0) {
+          this.showCatalogList = [0, 1];
+        } else if (catalog == this.catalogLength) {
+          this.showCatalogList = [
+            this.catalogLength - 2,
+            this.catalogLength - 1,
+            this.catalogLength,
+          ];
+        } else {
+          this.showCatalogList = [catalog - 1, catalog, catalog + 1];
+        }
+        setTimeout(() => {
+          // 璺宠浆椤电爜
+          const pageDom = (
+            this.container ? this.container : document
+          ).querySelector(`[page="${page}"]`);
+          if (pageDom) {
+            pageDom.scrollIntoView();
+          } else {
+            console.log("椤电爜閿欒锛�");
+          }
+        }, 500);
+      } else {
+        console.log("绔犺妭閿欒锛�");
+      }
+    },
+
+    // 澶勭悊鏍囪鏁版嵁
+    handelSignData(type, data) {
+      if (this.loadPageList.indexOf(Number(data.page)) > -1) {
+        // 绔嬪嵆娓叉煋
+        this.renderSign(type, data);
+      }
+
+      // 鍌ㄥ瓨鏁版嵁
+      if (!this.renderSignMap[type]) this.renderSignMap[type] = {};
+      if (!this.renderSignMap[type][data.page])
+        this.renderSignMap[type][data.page] = [];
+      this.renderSignMap[type][data.page].push(data);
+    },
+
+    // 娓叉煋鏍囪
+    renderSign(type, data) {
+      // 鐖跺眰璁剧疆绂佹娓叉煋鏍囪鏃朵笉鍐嶈繘琛屾覆鏌�
+      if (this.$store.state.qiankun.disableSign) {
+        return false;
+      }
+      const existence = (
+        this.container ? this.container : document
+      ).querySelector(`[dataid="${data.id}"]`);
+      // 鍘婚噸
+      if (!existence) {
+        const pageDom = (
+          this.container ? this.container : document
+        ).querySelector(`[page="${data.page}"]`);
+        // 鍒涘缓 createTreeWalker 杩唬鍣紝鐢ㄤ簬閬嶅巻鏂囨湰鑺傜偣锛屼繚瀛樺埌涓�涓暟缁�
+        const treeWalker = document.createTreeWalker(
+          pageDom,
+          NodeFilter.SHOW_TEXT
+        );
+        const allTextNodes = [];
+        let currentNode = treeWalker.nextNode();
+        while (currentNode) {
+          allTextNodes.push(currentNode);
+          currentNode = treeWalker.nextNode();
+        }
+        for (let i = 0; i < allTextNodes.length; i++) {
+          const textDom = allTextNodes[i];
+          if (textDom.textContent.indexOf(data.txt) > -1) {
+            let reg = new RegExp(`${data.txt}`, "ig");
+            switch (type) {
+              case "Highlight":
+                // 楂樹寒
+                textDom.parentNode.innerHTML =
+                  textDom.parentNode.innerHTML.replace(
+                    reg,
+                    `<span datatype="Highlight" dataid="${data.id}" style="background: ${data.color};" class="highLight" onclick="signClick('Highlight','${data.id}','${data.chapterNum}')">${data.txt}</span>`
+                  );
+                break;
+              case "Dashing":
+                // 鍒掔嚎
+                textDom.parentNode.innerHTML =
+                  textDom.parentNode.innerHTML.replace(
+                    reg,
+                    `<span datatype="Dashing" dataid="${data.id}" style="text-decoration-color:${data.color};" class="underline" onclick="signClick('Dashing','${data.id}','${data.chapterNum}')">${data.txt}</span>`
+                  );
+                break;
+              case "Note":
+                // 绗旇
+                textDom.parentNode.innerHTML =
+                  textDom.parentNode.innerHTML.replace(
+                    reg,
+                    `<span datatype="Note" dataid="${data.id}" style="border-bottom-color:${data.color}" class="notesline" onclick="signClick('Note','${data.id}','${data.chapterNum}')" onmouseover="noteHover('Note','${data.id}','${data.chapterNum}')" onmouseout="noteOut('Note')">${data.txt}<img src="${NoteIcon}"/></span>`
+                  );
+                break;
+            }
+          }
+        }
+      }
+    },
+    // 鍒犻櫎鏍囪娓叉煋
+    delSign({ ids, type }) {
+      if (ids && ids.length) {
+        for (let i = 0; i < ids.length; i++) {
+          const id = ids[i];
+          const dom = (
+            this.container ? this.container : document
+          ).querySelector(`[dataid="${id}"]`);
+          dom.parentNode.innerHTML = dom.parentNode.innerHTML.replace(
+            dom.outerHTML,
+            dom.outerText
+          );
+        }
+      }
+      if (type) {
+        const doms = (
+          this.container ? this.container : document
+        ).querySelectorAll(`[datatype="${type}"]`);
+        for (let i = 0; i < doms.length; i++) {
+          const dom = doms[i];
+          dom.parentNode.innerHTML = dom.parentNode.innerHTML.replace(
+            dom.outerHTML,
+            dom.outerText
+          );
+        }
+      }
+    },
+    initObservation() {
+      const sections = (
+        this.container ? this.container : document
+      ).querySelectorAll(".page-box");
+      sections.forEach((section) => {
+        if (this.config.activeBook && this.config.activeBook.tryPageCount) {
+          const page = section.getAttribute("page");
+          if (Number(page) > this.config.activeBook.tryPageCount) {
+            let chapterDom = this.getParentWithClass(section, "chapter");
+            const chapterNum = chapterDom.getAttribute("num");
+            this.catalogLength = Number(chapterNum) - 1;
+            section.remove();
+            return false;
+          }
+        }
+        // observer 瑙傚療姣忎釜鍏冪礌锛屼互渚垮湪瀹冧滑杩涘叆鎴栫寮�瑙嗙獥鏃惰Е鍙戝洖璋冨嚱鏁般��
+        const isObserver = section.getAttribute("observer");
+        const isLoadObserver = section.getAttribute("loadObserver");
+        if (!isObserver) {
+          this.observer.observe(section);
+          section.setAttribute("observer", "1");
+        }
+        if (!isLoadObserver) {
+          this.loadPageObserver.observe(section);
+          section.setAttribute("loadObserver", "1");
+        }
+      });
+    },
+    initThemeColor() {
+      // 鑾峰彇鍚勭闇�瑕佷富棰樿壊鐨勮妭鐐�
+      const colorDom = (
+        this.container ? this.container : document
+      ).querySelectorAll(".theme-color");
+      const backgroundColorDom = (
+        this.container ? this.container : document
+      ).querySelectorAll(".theme-back");
+      const borderColorDom = (
+        this.container ? this.container : document
+      ).querySelectorAll(".theme-border");
+      // 鑾峰彇閰嶇疆鐨勪富棰樿壊
+      const bookThemeColor =
+        this.config.activeBook && this.config.activeBook.bookThemeColor
+          ? this.config.activeBook.bookThemeColor
+          : null;
+      const chapterThemeColor =
+        this.config.activeBook && this.config.activeBook.chapterThemeColor
+          ? this.config.activeBook.chapterThemeColor
+          : null;
+      const pageThemeColor =
+        this.config.activeBook && this.config.activeBook.pageThemeColor
+          ? this.config.activeBook.pageThemeColor
+          : null;
+      colorDom.forEach((domItem) => {
+        // 鑾峰彇绔犺妭銆侀〉鐮�
+        let pageDom = this.getParentWithClass(domItem, "page-box");
+        let chapterDom = this.getParentWithClass(domItem, "chapter");
+        let page, chapterNum;
+        if (pageDom) page = pageDom.getAttribute("page");
+        if (chapterDom) chapterNum = chapterDom.getAttribute("num");
+        // 鍚戜笂鍖归厤涓婚鑹�
+        const themeColor =
+          page && pageThemeColor && pageThemeColor[page]
+            ? pageThemeColor[page]
+            : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum]
+              ? chapterThemeColor[chapterNum]
+              : bookThemeColor;
+        if (themeColor) {
+          domItem.style.color = themeColor;
+        }
+      });
+      backgroundColorDom.forEach((domItem) => {
+        // 鑾峰彇绔犺妭銆侀〉鐮�
+        let pageDom = this.getParentWithClass(domItem, "page-box");
+        let chapterDom = this.getParentWithClass(domItem, "chapter");
+        let page, chapterNum;
+        if (pageDom) page = pageDom.getAttribute("page");
+        if (chapterDom) chapterNum = chapterDom.getAttribute("num");
+        // 鍚戜笂鍖归厤涓婚鑹�
+        const themeColor =
+          page && pageThemeColor && pageThemeColor[page]
+            ? pageThemeColor[page]
+            : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum]
+              ? chapterThemeColor[chapterNum]
+              : bookThemeColor;
+        if (themeColor) {
+          domItem.style.backgroundColor = themeColor;
+        }
+      });
+      borderColorDom.forEach((domItem) => {
+        // 鑾峰彇绔犺妭銆侀〉鐮�
+        let pageDom = this.getParentWithClass(domItem, "page-box");
+        let chapterDom = this.getParentWithClass(domItem, "chapter");
+        let page, chapterNum;
+        if (pageDom) page = pageDom.getAttribute("page");
+        if (chapterDom) chapterNum = chapterDom.getAttribute("num");
+        // 鍚戜笂鍖归厤涓婚鑹�
+        const themeColor =
+          page && pageThemeColor && pageThemeColor[page]
+            ? pageThemeColor[page]
+            : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum]
+              ? chapterThemeColor[chapterNum]
+              : bookThemeColor;
+        if (themeColor) {
+          domItem.style.borderColor = themeColor;
+        }
+      });
+    },
+    getParentWithClass(element, className) {
+      while (element.parentElement) {
+        element = element.parentElement;
+        if (element.classList.contains(className)) {
+          return element;
+        }
+      }
+    },
+    pageChangeCallback(entries, observer) {
+      //entries锛氫唬琛ㄨ瀵熷埌鐨勭洰鏍囧厓绱犵殑闆嗗悎銆� observer锛氫唬琛ㄨ瀵熻�呭璞°��
+      entries.forEach((entry) => {
+        //entry.isIntersecting锛氭鏌ュ綋鍓嶇洰鏍囧厓绱犳槸鍚︿笌鏍瑰厓绱犵浉浜ゃ��
+        if (entry.isIntersecting) {
+          const target = entry.target;
+          //entry.target锛氳幏鍙栧綋鍓嶇洰鏍囧厓绱�
+          const page = target.getAttribute("page");
+          const catalogDom = this.tool.getParentNodeByClassName(
+            target,
+            "chapter"
+          );
+          const catalog = catalogDom.getAttribute("num");
+          let text = null;
+          if (target.querySelector("p")) {
+            text = target.querySelector("p").textContent.substring(0, 50);
+          }
+          // 杩斿洖椤电爜鍜岀珷鑺備俊鎭�
+          if (this.$store.state.qiankun && this.$store.state.qiankun.pageChange)
+            this.$store.state.qiankun.pageChange({
+              page: page,
+              catalog: catalog,
+              text,
+            });
+          // const sections = Array.from(document.querySelectorAll(".section"));
+          //sections锛氳幏鍙栨墍鏈夊叿鏈� .section 绫诲悕鐨勫厓绱狅紝骞惰浆鎹负鏁扮粍銆�
+          // let index = sections.findIndex((section) => section === target) + 1;
+          //index锛氭煡鎵惧綋鍓嶇洰鏍囧厓绱犲湪 sections 鏁扮粍涓殑绱㈠紩锛屽苟鍔� 1锛岀敤浜庣‘瀹氬綋鍓嶉〉鐮併��
+        }
+      });
+    },
+    loadPageCallback(entries, observer) {
+      entries.forEach(async (entry) => {
+        if (entry.isIntersecting) {
+          const target = entry.target;
+          const page = target.getAttribute("page");
+          if (this.loadPageList.indexOf(Number(page)) == -1) {
+            const catalogDom = this.tool.getParentNodeByClassName(
+              target,
+              "chapter"
+            );
+            // 娣诲姞椤电爜
+            this.loadPageList.push(Number(page));
+            const catalog = catalogDom.getAttribute("num");
+            // if (!this.questionDataMap[page]) {
+            //   if (testData && testData[catalog]) {
+            //     if (testData[catalog][page]) {
+            //       if (Array.isArray(testData[catalog][page])) {
+            //         this.questionDataMap[page] = await getQuestionList(
+            //           page,
+            //           testData[catalog][page],
+            //           this.config.activeBook
+            //         );
+            //       } else {
+            //         const obj = {};
+            //         for (let key in testData[catalog][page]) {
+            //           obj[key] = await getQuestionList(
+            //             [],
+            //             testData[catalog][page][key],
+            //             this.config.activeBook
+            //           );
+            //         }
+            //         this.questionDataMap[page] = obj;
+            //       }
+            //       console.log("棰樼洰", this.questionDataMap);
+            //     }
+            //   }
+            // }
+            // 娓叉煋杩欎竴椤电殑鏍囪
+            for (const key in this.renderSignMap) {
+              if (this.renderSignMap[key][page]) {
+                this.renderSignMap[key][page].forEach((item) => {
+                  this.renderSign(key, item);
+                });
+              }
+            }
+            // 澶勭悊楂樹寒
+            if (this.highlightData) {
+              // 楂樹寒琛�
+              setTimeout(() => {
+                // 鑾峰彇椤甸潰鎵�鏈塼ext鑺傜偣
+                const pageTextList = document.createTreeWalker(
+                  target,
+                  NodeFilter.SHOW_TEXT
+                );
+                // 鍖归厤鍏抽敭瀛�
+                const allPageTextNodes = [];
+                let currentNode = pageTextList.nextNode();
+                while (currentNode) {
+                  allPageTextNodes.push(currentNode);
+                  currentNode = pageTextList.nextNode();
+                }
+                for (let i = 0; i < allPageTextNodes.length; i++) {
+                  const textDom = allPageTextNodes[i];
+                  let txtIndex = textDom.textContent.indexOf(
+                    this.highlightData.txt
+                  );
+                  if (txtIndex > -1) {
+                    textDom.parentNode.style.transition =
+                      "background-color 0.8s";
+                    textDom.parentNode.scrollIntoView();
+                    textDom.parentNode.style.backgroundColor = "#79bbf0";
+                    setTimeout(() => {
+                      textDom.parentNode.style.backgroundColor = "";
+                    }, 1000);
+                  }
+                }
+              }, 100);
+            }
+            if (this.loadPageList.length > 5) {
+              // 瓒呰繃5椤�
+              this.loadPageList.shift();
+            }
+          }
+        }
+      });
+    },
+    initSwiper() {
+      const doms = (
+        this.container ? this.container : document
+      ).querySelectorAll(".swiper-img");
+      for (let i = 0; i < doms.length; i++) {
+        const dom = doms[i];
+        new Swiper(dom, {
+          loop: false, // 鏃犵紳
+          autoplay: {
+            //鑷姩寮�濮�
+            delay: 3000, //鏃堕棿闂撮殧
+            disableOnInteraction: false, //*鎵嬪姩鎿嶄綔杞挱鍥惧悗涓嶄細鏆傚仠*
+          },
+          paginationClickable: true,
+          slidesPerView: 1, // 涓�缁勪笁涓�
+          spaceBetween: 30, // 闂撮殧
+          // 濡傛灉闇�瑕佸墠杩涘悗閫�鎸夐挳
+          navigation: {
+            nextEl: dom.querySelector(".swiper-button-next"),
+            prevEl: dom.querySelector(".swiper-button-prev"),
+          },
+          // 绐楀彛鍙樺寲,閲嶆柊init,閽堝F11鍏ㄥ睆鍜屾斁澶х缉灏�,蹇呴』鍔�
+          // observer: true,
+          // observeParents: true
+          // // 濡傛灉闇�瑕佸垎椤靛櫒
+          // pagination: {
+          //   el: (this.container ? this.container : document).querySelector(
+          //     ".swiper-pagination"
+          //   ),
+          //   clickable: true // 鍒嗛〉鍣ㄥ彲浠ョ偣鍑�
+          // }
+        });
+      }
+      const pptDoms = (
+        this.container ? this.container : document
+      ).querySelectorAll(".swiper_ppt");
+      for (let i = 0; i < pptDoms.length; i++) {
+        const dom = pptDoms[i];
+        new Swiper(dom, {
+          loop: false, // 鏃犵紳
+          autoplay: false,
+          paginationClickable: true,
+          slidesPerView: 1, // 涓�缁勪笁涓�
+          spaceBetween: 30, // 闂撮殧
+          // 濡傛灉闇�瑕佸墠杩涘悗閫�鎸夐挳
+          navigation: {
+            nextEl: dom.querySelector(".swiper-button-next"),
+            prevEl: dom.querySelector(".swiper-button-prev"),
+          },
+          // 绐楀彛鍙樺寲,閲嶆柊init,閽堝F11鍏ㄥ睆鍜屾斁澶х缉灏�,蹇呴』鍔�
+          observer: true,
+          observeParents: true,
+          on: {
+            init: (value) => {
+              let currentPage = value.activeIndex + 1; // 鑾峰彇褰撳墠椤碉紙浠�1寮�濮嬭鏁帮級
+              let totalPages = value.slides.length; // 鑾峰彇鎬婚〉鏁�
+              var paginationInfoEl = dom.querySelector(".pageBox");
+              if (paginationInfoEl)
+                paginationInfoEl.textContent = currentPage + "/" + totalPages;
+            },
+            slideChange: (value) => {
+              let currentPage = value.activeIndex + 1; // 鑾峰彇褰撳墠椤碉紙浠�1寮�濮嬭鏁帮級
+              let totalPages = value.slides.length; // 鑾峰彇鎬婚〉鏁�
+              var paginationInfoEl = dom.querySelector(".pageBox");
+              if (paginationInfoEl)
+                paginationInfoEl.textContent = currentPage + "/" + totalPages;
+            },
+          },
+        });
+      }
+    },
+    initViewer() {
+      const doms = (
+        this.container ? this.container : document
+      ).querySelectorAll(".openImgBox");
+      for (let i = 0; i < doms.length; i++) {
+        const dom = doms[i];
+        new Viewer(dom, {
+          container: this.container
+            ? this.container.querySelector("#app")
+            : "body",
+          navbar: true, // 鏄剧ず瀵艰埅鏍�
+          toolbar: true, // 鏄剧ず宸ュ叿鏍�
+          title: true, // 鏄剧ず鏍囬
+        });
+      }
+    },
+    // 鏍规嵁鍏抽敭瀛楀叏鏂囨绱�
+    searchTextByPage(keyword) {
+      const searchResult = [];
+      let catalogIndex = 0;
+      // 鎵�鏈夌珷鑺傜粍浠讹紙姣忔湰涔﹀埗浣滄椂鍗曠嫭閰嶇疆锛�
+      const pageData = {
+        pageHeader,
+        chapterOne,
+        //   chapterTwo,
+        //   chapterThree,
+        //   chapterFour,
+        // chapterFive,
+      };
+      // 閬嶅巻鎵�鏈夌珷鑺傛枃浠�
+      for (const key in pageData) {
+        catalogIndex++;
+        let pageComponent, pageExample;
+        // 鍏堟覆鏌撲竴娆″綋鍓嶇珷鑺傛枃浠讹紙杩欐椂椤甸潰鐨勫唴瀹逛负绌猴級锛岃幏鍙栭〉鐮佷俊鎭�
+        pageComponent = Vue.extend(pageData[key]);
+        pageExample = new pageComponent({
+          propsData: {
+            showPageList: [],
+            questionData: {},
+            isSearch: true,
+          },
+        });
+        pageExample.$mount(
+          (this.container ? this.container : document).querySelector(
+            "#searchContent"
+          )
+        );
+        // 鑾峰彇椤电爜
+        const pageDom = (this.container ? this.container : document)
+          .querySelector("#searchDomBox")
+          .querySelectorAll(".page-box");
+        const pages = [];
+        for (let i = 0; i < pageDom.length; i++) {
+          const pageDomItem = pageDom[i];
+          pages.push(Number(pageDomItem.getAttribute("page")));
+        }
+        // 鑾峰彇椤甸潰缁撴潫锛屽嵏杞介攢姣�
+        pageExample.$destroy();
+        (this.container ? this.container : document).querySelector(
+          "#searchDomBox"
+        ).innerHTML = '<div id="searchContent"></div>';
+        // 閬嶅巻椤电爜
+        if (pages.length) {
+          for (let i = 0; i < pages.length; i++) {
+            const pageNum = pages[i];
+            // 鍔ㄦ�佹覆鏌撳搴旂珷鑺傜殑椤电爜
+            pageComponent = Vue.extend(pageData[key]);
+            pageExample = new pageComponent({
+              propsData: {
+                showPageList: [pageNum],
+                questionData: {},
+                isSearch: true,
+              },
+            });
+            pageExample.$mount(
+              (this.container ? this.container : document).querySelector(
+                "#searchContent"
+              )
+            );
+            // 鑾峰彇瀵瑰簲椤甸潰dom
+            const thisPageDom = (this.container ? this.container : document)
+              .querySelector("#searchDomBox")
+              .querySelector(`[page="${pageNum}"]`);
+            if (thisPageDom) {
+              // 鑾峰彇椤甸潰鎵�鏈塼ext鑺傜偣
+              const pageTextList = document.createTreeWalker(
+                thisPageDom,
+                NodeFilter.SHOW_TEXT
+              );
+              // 鍖归厤鍏抽敭瀛�
+              const allPageTextNodes = [];
+              let currentNode = pageTextList.nextNode();
+              while (currentNode) {
+                allPageTextNodes.push(currentNode);
+                currentNode = pageTextList.nextNode();
+              }
+              for (let i = 0; i < allPageTextNodes.length; i++) {
+                const textDom = allPageTextNodes[i];
+                let txtIndex = textDom.textContent.indexOf(keyword);
+                if (txtIndex > -1) {
+                  // 璁板綍鍏抽敭瀛楁墍鍦ㄩ〉鐮併�佺珷鑺備互鍙婂尮閰嶅埌鐨勬钀�
+                  searchResult.push({
+                    page: pageNum,
+                    catalog: catalogIndex,
+                    txt: textDom.textContent,
+                    txtIndex: txtIndex,
+                  });
+                }
+              }
+              // 缁撴潫锛屽嵏杞介攢姣�
+              pageExample.$destroy();
+              (this.container ? this.container : document).querySelector(
+                "#searchDomBox"
+              ).innerHTML = '<div id="searchContent"></div>';
+            }
+          }
+        }
+      }
+      // 杈撳嚭鎼滅储缁撴灉
+      console.log(searchResult);
+      return searchResult;
+    },
+    // 鏍规嵁妫�绱㈢粨鏋滆烦杞搴斾綅缃苟楂樹寒
+    searchItemLocation(data) {
+      // 璁板綍楂樹寒淇℃伅
+      this.highlightData = data;
+      // 璺宠浆
+      this.gotoPage(data.catalog, data.page, () => { });
+    },
+    // 椤甸潰鍚戜笅婊氬姩锛岄煶棰戝皬绐楁挱鏀惧姛鑳�
+    getAduio() {
+      let allVideo = (
+        this.container ? this.container : document
+      ).querySelectorAll(".audio");
+      allVideo = Array.from(allVideo);
+      this.videoList = allVideo;
+      if (allVideo.length) {
+        // 鏌ユ壘鎾斁鐘舵�佺殑鏈�鍚庝竴鏉¢煶棰�
+        const playAudio = allVideo
+          .reverse()
+          .find((item) => item.paused == false);
+        if (playAudio) {
+          const bottomGap = playAudio.getBoundingClientRect().bottom;
+          if (bottomGap < 0) {
+            playAudio.pause();
+            this.audioPath = playAudio.src;
+            this.currentTime = playAudio.currentTime;
+          }
+        }
+      }
+    },
+    // 椤甸潰鍚戜笂婊氬姩锛岄煶棰戝皬绐楀洖鏀�
+    handleAudio() {
+      if (!this.audioPath) return false;
+      let allVideo = (
+        this.container ? this.container : document
+      ).querySelectorAll(".audio");
+      allVideo = Array.from(allVideo);
+      if (allVideo.length) {
+        //鏌ユ壘涓庡皬绐楁挱鏀鹃煶棰戝悓婧愮殑椤甸潰audio DOM
+        const playAudio = allVideo.find((item) => item.src == this.audioPath);
+        if (playAudio) {
+          const bottomGap = playAudio.getBoundingClientRect().bottom;
+          if (bottomGap >= 0) {
+            if (this.$refs.audioPlayer) {
+              const playerState = this.$refs.audioPlayer.getVideoPlayer();
+              this.audioPath = "";
+              playAudio.currentTime = playerState.currentTime;
+              if (!playerState.paused) playAudio.play();
+            }
+          }
+        }
+      }
+    },
+    // 鍏抽棴mini video
+    closeMiniAudio() {
+      this.audioPath = "";
+    },
+    // 鐐瑰嚮闊抽鎾斁锛屽叧闂叾浠栭煶棰�
+    closeAudio() {
+      let allAudio = (
+        this.container ? this.container : document
+      ).querySelectorAll(".audio");
+      for (let index = 0; index < allAudio.length; index++) {
+        const item = allAudio[index];
+        item.addEventListener("play", () => {
+          const audioList = Array.from(allAudio);
+          for (let cindex = 0; cindex < audioList.length; cindex++) {
+            const citem = audioList[cindex];
+            if (citem.currentSrc != item.src) {
+              citem.pause();
+            }
+          }
+          this.closeMiniAudio();
+        });
+      }
+    },
+    // 鐐瑰嚮瑙嗛鍏抽棴鍏朵粬
+    closeVideo() {
+      let allVideo = (
+        this.container ? this.container : document
+      ).querySelectorAll(".video");
+      for (let index = 0; index < allVideo.length; index++) {
+        const item = allVideo[index];
+        item.addEventListener("playing", (item) => {
+          const path = item.srcElement.src;
+          const videoList = Array.from(allVideo);
+          for (let cindex = 0; cindex < videoList.length; cindex++) {
+            const citem = videoList[cindex];
+            if (citem.currentSrc != path && path) {
+              citem.pause();
+            }
+          }
+        });
+      }
+    },
+    // 瑙嗛灏忕獥
+    handleVideoPicture() {
+      let doms = (this.container ? this.container : document).querySelectorAll(
+        ".video"
+      );
+      doms = Array.from(doms);
+      if (!doms.length) return false;
+      const playVudio = doms.reverse().find((item) => item.paused == false);
+      if (playVudio) {
+        const bottomGap = playVudio.getBoundingClientRect().bottom;
+        const topGap = playVudio.getBoundingClientRect().top;
+        if (bottomGap < 0 || topGap > window.innerHeight) {
+          try {
+            if (playVudio.readyState) playVudio.requestPictureInPicture();
+          } catch (error) {
+            console.log(error, "灏忕獥閿欒error");
+          }
+        }
+      }
+    },
+    //鍏朵粬绫诲悕涓嬪瓧浣撳ぇ灏忓彉鍖�
+    transformDom(fs) {
+      if (!fs) return;
+      let doms = (this.container ? this.container : document).querySelectorAll(
+        ".block"
+      );
+      if (!doms.length) return;
+      for (let index = 0; index < doms.length; index++) {
+        const dom = doms[index];
+        dom.style.fontSize = fs + "px";
+      }
+    },
+  },
+  components: {
+    pageHeader,
+    chapterOne,
+    //   chapterTwo,
+    //   chapterThree,
+    //   chapterFour,
+    //   chapterFive,
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.page-main {
+  width: 100% !important;
+  height: 100% !important;
+  overflow: auto;
+
+  .page-content {
+    max-width: 816px;
+    min-width: 375px;
+    margin: 0 auto;
+    padding-bottom: 100px;
+  }
+}
+</style>
diff --git a/src/books/UAVTechIntro/view/index.vue b/src/books/UAVTechIntro/view/index.vue
new file mode 100644
index 0000000..588cc59
--- /dev/null
+++ b/src/books/UAVTechIntro/view/index.vue
@@ -0,0 +1,80 @@
+<template>
+    <div class="UAVTechIntro-book" @mouseup="handleMouseUp">
+      <pageContent></pageContent>
+    </div>
+  </template>
+  
+  <script>
+  import pageContent from "./components/index.vue";
+  export default {
+    name: "UAVTechIntro-book",
+    components: {
+      pageContent,
+    },
+    computed: {
+      fontSize() {
+        return this.$store.state.qiankun.fontSize;
+      },
+      pageZoom() {
+        return this.$store.state.qiankun.scale / 100;
+      },
+    },
+  
+    methods: {
+      getParentWithClass(element, className) {
+        while (element.parentElement) {
+          element = element.parentElement;
+          if (element.classList.contains(className)) {
+            return element;
+          }
+        }
+      },
+      handleMouseUp(e) {
+        const selection = (
+          this.container ? this.container : window
+        ).getSelection();
+        const txt = selection.toString();
+        if (selection.type != "none" && txt) {
+          let node = selection.anchorNode.parentNode;
+          let pageHtml = this.getParentWithClass(
+            selection.anchorNode,
+            "page-box"
+          );
+          let chapterDom = this.getParentWithClass(
+            selection.anchorNode,
+            "chapter"
+          );
+          let chapterNum;
+          if (chapterDom) chapterNum = chapterDom.getAttribute("num");
+          if (pageHtml) {
+            const page = pageHtml.getAttribute("page");
+            // 鐩戝惉閫変腑鏂囨湰浜嬩欢锛屽苟瑙﹀彂鐖跺眰鏂规硶
+            if (this.$store.state.qiankun.windowSelection) {
+              this.$store.state.qiankun.windowSelection({
+                chapterNum,
+                txt,
+                page,
+                x: e.x,
+                y: e.y,
+              });
+            }
+          }
+        } else {
+          if (this.$store.state.qiankun.windowSelection) {
+            this.$store.state.qiankun.windowSelection({
+              chapterNum: "",
+              txt: "",
+              page: "",
+              x: e.x,
+              y: e.y,
+            });
+          }
+        }
+      },
+    },
+  };
+  </script>
+  
+  <style lang="less">
+  @import "../assets/main.less";
+  </style>
\ No newline at end of file
diff --git a/src/books/aviationEtiquette/view/components/index.vue b/src/books/aviationEtiquette/view/components/index.vue
index c060256..65f3c20 100644
--- a/src/books/aviationEtiquette/view/components/index.vue
+++ b/src/books/aviationEtiquette/view/components/index.vue
@@ -167,7 +167,7 @@
 
     //娴嬭瘯椤甸潰璺宠浆
     // setTimeout(() => {
-    //   this.gotoPage(4, 117);
+    //   this.gotoPage(4, 99);
     // }, 500);
 
     // const pageDom = (this.container ? this.container : document)
diff --git a/src/books/civilPassengerTransport/assets/main.less b/src/books/civilPassengerTransport/assets/main.less
new file mode 100644
index 0000000..d194af5
--- /dev/null
+++ b/src/books/civilPassengerTransport/assets/main.less
@@ -0,0 +1,1565 @@
+.civilPassengerTransport-book {
+    width: 100%;
+    height: 100%;
+
+    // 鑷畾涔夊唴瀹�
+    .page-box {
+        box-sizing: border-box;
+        min-height: 1128px;
+        margin-bottom: 20px;
+        box-shadow: 0 3px 6px 1px #00000029;
+        background-color: #fff;
+    }
+
+    .c-g {
+        color: green;
+    }
+
+    .c-r {
+        color: red;
+    }
+
+    .t-right {
+        text-align: right;
+    }
+
+    .mr-0 {
+        margin: 0;
+    }
+
+    .mt-20 {
+        margin-top: 20px !important;
+    }
+
+    .mt-30 {
+        margin-top: 30px;
+    }
+
+    .mb-30 {
+        margin-bottom: 30px;
+    }
+
+    .mb-10 {
+        margin-bottom: 10px;
+    }
+
+    .pd-5 {
+        padding: 0 5px;
+    }
+
+    .w100 {
+        width: 100%;
+    }
+
+    .w90 {
+        width: 90%;
+    }
+
+
+    .w80 {
+        width: 80%;
+    }
+
+
+    sup {
+        vertical-align: super;
+        /* 淇濇寔涓婃爣瀵归綈鏂瑰紡 */
+        font-size: smaller;
+        // position: relative; /* 鐩稿浜庢甯镐綅缃皟鏁� */  
+        // top: -0.2em; /* 鏍规嵁闇�瑕佽皟鏁磋繖涓�� */ 
+    }
+
+    .fz-13 {
+        font-size: 13px !important;
+    }
+
+    .fz-14 {
+        font-size: 14px !important;
+    }
+
+    .fz-16 {
+        font-size: 16px !important;
+    }
+
+    .fz-18 {
+        font-size: 18px !important;
+    }
+
+
+    .img-0 {
+        width: 100%;
+    }
+
+    .pt-20 {
+        padding-top: 20px;
+    }
+
+    .td-0 {
+        text-indent: 0em !important;
+    }
+
+    .fl {
+        display: flex;
+    }
+
+    .ju-cn {
+        justify-content: center;
+    }
+
+    .ju-ev {
+        justify-content: space-evenly;
+    }
+
+    .fd-c {
+        flex-direction: column;
+    }
+
+    .fd-r {
+        flex-direction: row-reverse;
+    }
+
+    .al-c {
+        align-items: center;
+    }
+
+    .al-fe {
+        align-items: flex-end;
+    }
+
+    .ac-f {
+        align-content: flex-end;
+    }
+
+    .jc-fe {
+        justify-content: flex-end;
+    }
+
+    .jc-c {
+        justify-content: center;
+    }
+
+    .jc-sa {
+        justify-content: space-around
+    }
+
+    .mr-70 {
+        margin-right: 70px;
+    }
+
+    .mr-45 {
+        margin-right: 45px;
+    }
+
+    .mr-10 {
+        margin-right: 10px;
+    }
+
+    .ma-l {
+        margin-left: 10%;
+    }
+
+    .pad-t-55 {
+        padding-top: 55px;
+    }
+
+    .pad-l-60 {
+        padding-left: 60px;
+    }
+
+    .mb-45 {
+        margin-bottom: 45px;
+    }
+
+    .headerImg {
+        width: 30px;
+    }
+
+    .headerText {
+        font-size: 12px;
+        padding: 0 8px;
+        color: #B98C64;
+    }
+
+    .headerNumber {
+        color: #231F20;
+        font-size: 12px;
+        padding: 0 8px;
+        border-left: 1px solid #231F20;
+    }
+
+    .header-left-Number {
+        color: #231F20;
+        font-size: 12px;
+        padding-right: 8px;
+        border-right: 1px solid #000;
+    }
+
+    .header-left-text {
+        margin-left: 8px;
+        font-size: 12px;
+        color: #fff;
+        background-color: #0082D4;
+    }
+
+    .table-tr-bc {
+        color: #fff;
+    }
+
+    .task {
+        width: 16%;
+        margin-bottom: 3.5em;
+        margin-top: 0;
+        border-top: 0.7em solid #5192C6;
+    }
+
+    .task-u2-c {
+        width: 16%;
+        margin-bottom: 3.5em;
+        margin-top: 0;
+        border-top: 0.7em solid #F89C1C;
+    }
+
+    .task-u3-c {
+        width: 16%;
+        margin-bottom: 3.5em;
+        margin-top: 0;
+        border-top: 0.7em solid #0A9CAC;
+    }
+
+    .task-u4-c {
+        width: 16%;
+        margin-bottom: 3.5em;
+        margin-top: 0;
+        border-top: 0.7em solid #92B03D;
+    }
+
+    .task-u5-c {
+        width: 16%;
+        margin-bottom: 3.5em;
+        margin-top: 0;
+        border-top: 0.7em solid #0180CD;
+    }
+
+
+
+    .p-odd {
+        padding-right: 10%;
+    }
+
+    .p-even {
+        padding-left: 10%;
+    }
+
+    .img-float-smaller {
+        width: 200px;
+        float: left;
+        height: auto;
+        margin: auto;
+        margin-right: 20px;
+    }
+
+    .img-float-medium {
+        width: 250px;
+        float: left;
+        height: auto;
+        margin: auto;
+        margin-right: 20px;
+    }
+
+
+
+    .img-float {
+        width: 310px;
+        float: left;
+        height: auto;
+        margin: auto;
+        margin-right: 20px;
+
+        img {
+            width: 100%;
+        }
+
+        p {
+            margin: 0;
+        }
+    }
+
+
+    .img-float-formula {
+        width: 310px;
+        float: left;
+        height: auto;
+        margin: auto;
+        margin-right: 20px;
+
+        p {
+            margin: 0;
+        }
+    }
+
+    .img-rights {
+        width: 47%;
+        float: right;
+        height: auto;
+        margin: auto;
+        margin-left: 20px;
+
+        img {
+            width: 100%;
+        }
+
+        p {
+            margin: 0 !important;
+        }
+    }
+
+    .references {
+        margin-top: 140px;
+
+        hr {
+            font-weight: bold;
+            margin-left: 0;
+            width: 15%;
+        }
+    }
+
+    .w395 {
+        width: 395px;
+    }
+
+    .w430 {
+        width: 430px;
+    }
+
+    .w280 {
+        width: 280px;
+    }
+
+    .w270 {
+        width: 270px;
+    }
+
+    .w250 {
+        width: 250px;
+    }
+
+    .w230 {
+        width: 230px;
+    }
+
+    .w220 {
+        width: 220px;
+    }
+
+    .w200 {
+        width: 200px;
+    }
+
+    .w180 {
+        width: 180px;
+    }
+
+    .w115 {
+        width: 115px;
+    }
+
+
+
+    .text-rights {
+        width: 230px;
+        float: right;
+        height: auto;
+        margin: auto;
+        margin-left: 20px;
+
+        img {
+            width: 100%;
+        }
+
+        p {
+            margin: 0 !important;
+        }
+    }
+
+
+
+    .pdf-text {
+        display: flex;
+        flex-direction: column;
+        justify-content: space-between;
+        align-items: flex-start;
+        margin-bottom: 20px;
+
+        p {
+            margin: 0;
+            margin-right: 10px;
+        }
+
+        .pdf-con {
+            display: flex;
+            justify-content: flex-start;
+            align-items: center;
+            padding: 10px 0;
+            box-sizing: border-box;
+            border-radius: 10px;
+
+            .pdf-view {
+                min-width: 160px;
+                display: flex;
+                justify-content: center;
+                align-items: center;
+                border: 0.15em dashed #895B2E;
+                margin-right: 15px;
+                padding: 0 15px;
+                border-radius: 5px;
+                margin-top: 15px;
+
+                span {
+                    font-size: 14px;
+                    text-align: center;
+                    font-family: 'FZLTXIHJW';
+                    display: flex;
+                    align-items: center;
+                    justify-content: flex-start;
+
+                    svg {
+                        fill: #895B2E;
+                    }
+                }
+
+                span:nth-child(2) {
+                    padding-top: 5px;
+                    box-sizing: border-box;
+                }
+
+                span:hover {
+                    color: #895B2E;
+                    cursor: pointer;
+                    text-decoration: underline;
+                    -webkit-user-select: none;
+                    /* Safari 3.1+ */
+                    -moz-user-select: none;
+                    /* Firefox 2+ */
+                    -ms-user-select: none;
+                    /* IE 10+ */
+                    user-select: none;
+                    /* 鏍囧噯璇硶 */
+                }
+            }
+        }
+
+        .pdf-con-15 {
+            margin-top: -20px;
+        }
+    }
+
+    div.bk-ztgs {
+        border: 0.15em dotted #5192c6;
+        padding: 1.5em 0.5em;
+        margin-bottom: 2em;
+        margin-top: 2em;
+        border-radius: 1em;
+        position: relative;
+    }
+
+    p.bj1-ztgs {
+        background-color: #5192c6;
+        color: #ffffff;
+        display: inline-block;
+        font-size: 1em;
+        padding: 0.1em 0.7em 0.12em 0.7em;
+        font-weight: bold;
+        border-radius: 0em;
+        margin-left: 0em;
+        text-align: center;
+        text-indent: 0em;
+        position: absolute;
+        top: -1.2em;
+    }
+
+
+    .link-float {
+        width: 120px;
+        float: left;
+        height: auto;
+        margin: auto;
+        margin-top: 12px;
+        margin-right: 20px;
+    }
+
+    .imgBox-003 {
+        width: 100%;
+        height: 280px;
+        margin-bottom: 18px;
+    }
+
+    // 棰樼洰
+    .textarea-box {
+        background-color: transparent;
+        max-width: 85%;
+        min-width: 85%;
+        outline: none;
+    }
+
+    .textarea-box-left {
+        background-color: transparent;
+        margin-left: 12%;
+        max-width: 85%;
+        min-width: 85%;
+        outline: none;
+    }
+
+    .textarea-box-right {
+        background-color: transparent;
+        margin-left: 8%;
+        max-width: 85%;
+        min-width: 85%;
+        outline: none;
+    }
+
+    .textarea-focused {
+        border-color: #5192c6 !important;
+        box-shadow: #5192c6 !important;
+    }
+
+    .select-border {
+        width: 60px;
+        border: 0;
+        border-bottom: 1px solid #767676;
+
+        &:focus {
+            outline: none;
+        }
+    }
+
+    .btn-border {
+        border-radius: 6px;
+        border-color: #5192C6;
+    }
+
+    .btn-w {
+        cursor: pointer;
+        font-size: 14px;
+        border-width: 1px;
+        width: 80px;
+        height: 30px;
+        background-color: #fff;
+
+        &:hover {
+            background-color: #5192C6;
+            color: #fff;
+        }
+    }
+
+    .parimary-btn {
+        cursor: pointer;
+        min-width: 80px;
+        height: 30px;
+        font-size: 14px;
+        margin-left: 5px;
+        background-color: #5192C6;
+        border-color: #5192C6;
+        border-width: 1px;
+        color: #fff;
+        border-radius: 6px;
+
+        &:hover {
+            background-color: #a1afc8;
+            border-color: #a1afc8;
+        }
+    }
+
+    .event-header-text-bc {
+        background-color: #bbd4ec;
+    }
+
+    // 杩佺Щ
+    .bk-bwh {
+        min-height: 800px;
+        background-color: #DFEBF7;
+        font-size: 1.2em;
+        padding: 25px;
+        border: 4px dotted #197ABF;
+    }
+
+    ul {
+        list-style-type: none;
+    }
+
+    li {
+        list-style-type: none;
+    }
+
+    .custom_tag2 {
+        background-color: #F1BE49;
+        color: #FFFFFF;
+        display: inline-block;
+        padding: 0.5px;
+        border-radius: 1.5em;
+        font-size: 1.1em;
+        padding: 2px 10px 2px 10px;
+        font-weight: bold;
+        margin: 0;
+        text-indent: 0em;
+        margin-bottom: 0.5em;
+    }
+
+    .custom_tag1 {
+        background-color: #35ACD6;
+        color: #FFFFFF;
+        display: inline-block;
+        padding: 1px;
+        font-size: 1.1em;
+        padding: 3px 10px 3px 10px;
+        font-weight: bold;
+        box-shadow: 15px 0px 0px 0px #F5D83E, -15px 0px 0px 0px #F5D83E;
+        margin: 0;
+        text-indent: 0em;
+        margin-bottom: 0.5em;
+    }
+
+    .custom_tag {
+        background-color: #35509F;
+        color: #FFFFFF;
+        display: inline-block;
+        padding: 1px;
+        border-radius: 1.5em;
+        font-size: 1.1em;
+        padding: 10px 20px 10px 20px;
+        font-weight: bold;
+        box-shadow: 30px 0px 0px 0px #F5D83E;
+        margin: 0;
+        text-indent: 0em;
+        margin-bottom: 0.5em;
+    }
+
+
+    span.under1 {
+        border-bottom: 2px solid #F0BD4A;
+        border-width: 2px;
+
+    }
+
+    div.bodycontent-div-center {
+        font-family: "DK-HEITI", "鏂规鍏颁涵榛戠畝浣�", "榛戜綋";
+        margin: 1em 1em 1em 1em;
+        font-weight: normal;
+        border-width: 1.5px;
+        border-color: #dfb27d;
+        padding: 1em;
+    }
+
+    img.bodycontent-divcenter-image {
+        float: center;
+        clear: both;
+        height: 140px;
+        margin: 15px;
+    }
+
+    .module_block {
+        display: flex;
+        font-size: 1.1em;
+        position: relative;
+        padding-left: 90px;
+        justify-content: center;
+        align-items: center;
+        margin-right: 91px;
+    }
+
+    .module_block .custom1 {
+        background-color: #9ACC77;
+        padding: 10px 20px;
+        color: #FFFFFF;
+        /* position: absolute; */
+        /* left:0; */
+        /* top: 50%; */
+        border-radius: 0.5em 0em 0em 0.5em;
+        /* transform: translateY(-50%); */
+    }
+
+    .module_block .custom2 {
+        background-color: #E9F3E0;
+        padding: 10px 20px;
+        color: #75A64E;
+        font-weight: bold;
+        border-radius: 0em 0.5em 0.5em 0em;
+    }
+
+
+
+    div.bodycontent-div-left1 {
+        font-family: "DK-HEITI", "鏂规鍏颁涵榛戠畝浣�", "榛戜綋";
+        margin: 1em 1em 1em 1em;
+        font-weight: normal;
+        border-width: 1.5px;
+        border-color: #dfb27d;
+        padding: 1em;
+        background-color: #F0F8FF;
+    }
+
+    div.bodycontent-div-left {
+        font-family: "DK-HEITI", "鏂规鍏颁涵榛戠畝浣�", "榛戜綋";
+        margin: 1em 1em 1em 1em;
+        font-weight: normal;
+        border-width: 1.5px;
+        border-color: #dfb27d;
+        padding: 1em;
+    }
+
+    img.bodycontent-divright-image {
+        float: right;
+        clear: both;
+        height: 140px;
+        margin: 15px;
+    }
+
+    img.bodycontent-divleft-image {
+        float: left;
+        clear: both;
+        height: 110px;
+        margin: 15px;
+    }
+
+
+    div.bodystyle {
+        font-family: 'FZLTXIHJW';
+        text-align: justify;
+        margin: 0 10%;
+        padding-bottom: 80px;
+        line-height: 30px;
+    }
+
+    span.zt-0 {
+        color: #0087AF;
+    }
+
+    p.pzt-0 {
+        color: #0087AF;
+        font-size: 18px;
+    }
+
+    p.pzt-0-right {
+        font-size: 18px;
+        color: #0087AF;
+        text-align: right;
+    }
+
+    p.pzt-1 {
+        font-weight: bold;
+        color: #0087AF;
+        font-size: 18px;
+    }
+
+    div.sgc-toc-title {
+        font-size: 2em;
+        font-weight: bold;
+        margin-bottom: 1em;
+        text-align: center;
+    }
+
+    div.sgc-toc-level-1 {
+        margin-left: 0em;
+    }
+
+    div.sgc-toc-level-2 {
+        margin-left: 2em;
+    }
+
+    div.sgc-toc-level-3 {
+        margin-left: 2em;
+    }
+
+    div.sgc-toc-level-4 {
+        margin-left: 2em;
+    }
+
+    div.sgc-toc-level-5 {
+        margin-left: 2em;
+    }
+
+    div.sgc-toc-level-6 {
+        margin-left: 2em;
+    }
+
+    .imz {
+        height: 96%;
+        text-align: center;
+
+
+    }
+
+    .note {
+        margin: 0;
+        font-size: 14px;
+        line-height: 22px;
+    }
+
+
+    .block {
+        font-family: "瀹嬩綋";
+        margin-top: 0.2em;
+        margin-bottom: 0.2em !important;
+        text-indent: 2em;
+        line-height: 30px;
+        font-size: 16px;
+        text-align: justify;
+    }
+
+    .block1 {
+        text-align: center;
+    }
+
+    .img {
+        text-indent: 0;
+        font-family: 'FZLTXIHJW';
+        text-align: center;
+        font-size: 14px;
+        margin-left: 0%;
+        margin-right: 0%;
+        text-indent: 0em;
+    }
+
+    .img1 {
+        font-family: 'FZLTXIHJW';
+        text-align: right;
+        font-size: 0.85em;
+        margin-left: 0%;
+        margin-right: 2em;
+        text-indent: 0em;
+    }
+
+
+    p {
+        font-family: "瀹嬩綋";
+        margin-top: 0.2em;
+        margin-bottom: 0.2em !important;
+        text-indent: 2em;
+        line-height: 30px;
+        text-align: justify;
+    }
+
+    .cover {
+        width: 100%;
+        padding: 0px;
+    }
+
+    .center {
+        text-align: center;
+        margin-left: 0%;
+        margin-right: 0%;
+        text-indent: 0em;
+    }
+
+    .center-ss {
+        text-align: center;
+        color: #EF8472;
+        font-weight: bold;
+        margin-left: 0%;
+        margin-right: 0%;
+        text-indent: 0em;
+    }
+
+    .left {
+        text-indent: 0em;
+        margin: 0 !important;
+        line-height: 20px;
+    }
+
+    .left3 {
+        margin: 20px 0 0 0 !important;
+        line-height: 20px;
+    }
+
+    .left2 {
+        font-size: 1.3em;
+        text-indent: 0em;
+        font-weight: bold;
+        margin-left: 0%;
+        margin-right: 0%;
+    }
+
+    .right {
+        text-align: right;
+        margin-left: 0%;
+        margin-right: 0%;
+    }
+
+    .left1 {
+        text-indent: 0em;
+        margin-left: 0%;
+        margin-right: 0%;
+    }
+
+    .center1 {
+        text-align: center;
+        margin-left: 0%;
+        margin-right: 0%;
+        font-size: 1.2em;
+        text-indent: 0em;
+        font-weight: bold;
+    }
+
+    .right1 {
+        text-align: right;
+        margin-left: 0%;
+        margin-right: 0%;
+    }
+
+    .quote {
+        margin-top: 0%;
+        margin-bottom: 0%;
+        margin-left: 1em;
+        margin-right: 1em;
+        text-align: justify;
+        font-family: "cnepub", serif;
+    }
+
+    h1 {
+        font-family: 'FZLTZHJW';
+        font-weight: 100;
+        font-size: 2em;
+        color: #F0855B;
+        margin-top: 0.2em;
+        margin-bottom: 0.2em;
+        text-indent: 0em;
+    }
+
+    .front {
+        font-family: 'FZLTZHJW';
+        font-weight: 400;
+        font-size: 1.1em;
+        color: #000;
+        margin-top: 1.5em;
+        margin-bottom: 3em;
+        text-indent: 0em;
+        text-align: center;
+    }
+
+
+    h2 {
+        font-family: 'FZLTZHJW';
+        line-height: 2em;
+        font-weight: bold;
+        color: #5192C6;
+        font-size: 1.3em;
+        margin-bottom: 0.5cm;
+        margin-top: 0.5cm;
+    }
+
+    h3 {
+        font-family: 'FZHTJW';
+        color: #5192C6;
+        font-weight: 500;
+        font-size: 1.6em;
+        margin-top: 0.5em;
+        margin-bottom: 5px;
+        text-indent: 0em;
+    }
+
+    .unit2-c {
+        color: #F89C1C !important;
+    }
+
+    .unit3-c {
+        color: #0A9CAC !important;
+    }
+
+    .unit4-c {
+        color: #92B03D !important;
+    }
+
+    .unit5-c {
+        color: #0180CD !important;
+    }
+
+    h4 {
+        font-family: 'FZHTJW';
+        color: #5192C6;
+        font-weight: 400;
+        font-size: 1.1em;
+        margin-bottom: 1.2em;
+        margin-top: 1.2em;
+        margin-left: 0em;
+        text-indent: 0em;
+    }
+
+    h5 {
+        font-family: 'FZHTJW';
+        color: #5192C6;
+        text-align: left;
+        font-weight: 400;
+        margin-bottom: 0.5em;
+        margin-top: 0.5em;
+        font-size: 18px;
+        text-indent: 0em;
+    }
+
+    h6 {
+        font-family: 'FZHTJW';
+        font-weight: 400;
+        margin-bottom: 5px;
+        margin-top: 10px;
+        font-size: 18px;
+        text-indent: 2em;
+    }
+
+    .zt-h6 {
+        font-family: 'FZHTJW';
+        color: #65C097;
+        margin-bottom: 0.5em;
+        margin-top: 1em;
+        font-size: 1.15em;
+        text-indent: 2em;
+    }
+
+    .bb {
+
+        font-family: "cnepub", serif;
+        font-family: 'FZHTJW';
+        color: #66CCCC;
+        font-size: 1.1em;
+        margin-top: 10px;
+        text-indent: 2em;
+        margin-bottom: 10px;
+        border-bottom: 5px dotted #F4C388;
+        margin-left: 2em;
+        margin-bottom: 0.5em;
+        text-indent: 0em;
+    }
+
+    .u {
+
+        text-decoration: underline;
+    }
+
+    .img-0 {
+        width: 100%;
+    }
+
+    .img-a {
+        width: 95%;
+    }
+
+    .img-b {
+        width: 70%;
+    }
+
+    .img-c {
+        width: 60%;
+    }
+
+    .img-d {
+        width: 50%;
+    }
+
+    .img-e {
+        width: 45%;
+    }
+
+    .img-f {
+        width: 40%;
+    }
+
+    .img-g {
+        width: 30%;
+    }
+
+    .img-h {
+        width: 20%;
+    }
+
+    .img-i {
+        width: 10%;
+    }
+
+    .img-j {
+        width: 5%;
+    }
+
+    .img-zt {
+        height: 6em;
+        margin-top: -1.5em;
+        margin-bottom: -0.4em;
+        margin-left: 15%;
+    }
+
+    .inline {
+        height: 1em;
+        margin-bottom: -0.3em;
+    }
+
+    .inline1 {
+        height: 2.5em;
+        margin-top: 0.5em;
+        margin-bottom: -0.5em;
+    }
+
+    .inline2 {
+        height: 1.5em;
+        margin-top: 0.5em;
+        margin-bottom: -0.5em;
+    }
+
+    .inline4 {
+        height: 2em;
+        margin-left: -2em;
+        margin-right: 0.5em;
+        margin-bottom: -0.6em;
+    }
+
+    .img-qj {
+        height: 7.5em;
+        margin-bottom: -3.4em;
+        margin-right: 0.5em;
+    }
+
+    .zt-ls1 {
+        color: #000;
+        font-size: 16px;
+        font-weight: bold;
+    }
+
+    span.lsyq-1 {
+        background-color: #0082D4;
+        padding: 0.2em 0.4em 0.2em 0.4em;
+        border-radius: 1.5em;
+        margin-right: 0.5em;
+        color: #FFFFFF;
+        font-weight: bold;
+        font-size: 1.5em;
+    }
+
+    span.hsyq-1 {
+        background-color: #FFB7D4;
+        padding: 0.2em 0.4em 0.2em 0.4em;
+        border-radius: 1.5em;
+        margin-right: 0.5em;
+        color: #FFFFFF;
+        font-weight: bold;
+        font-size: 1.5em;
+
+    }
+
+    .zt-hs1 {
+        font-weight: 500;
+        color: #000;
+        font-size: 1em;
+    }
+
+    .h2-zt1 {
+        padding: 5px 25px 5px 25px;
+        border-radius: 10px 0px 0px 10px;
+        background-color: #5392C7;
+        font-size: 1.2em;
+        color: #FFFFFF;
+    }
+
+    .h2-zt2 {
+        padding: 10px;
+        background-color: #B1DDE0;
+        margin-right: 2em;
+        color: #FFFFFF;
+        padding: 5px 50px 5px 25px;
+        border-radius: 0px 5px 80px 0px;
+        font-size: 1.2em;
+    }
+
+    .bk {
+        border: 0.15em dotted #5593C6;
+        padding: 0.5em;
+        margin-bottom: 2em;
+        margin-top: 0.5em;
+        border-radius: 1em;
+        position: relative;
+    }
+
+    .bk1 {
+        border: 0.15em dotted #F89C1C;
+        padding: 0.5em;
+        margin-bottom: 2em;
+        margin-top: 0.5em;
+        border-radius: 1em;
+        position: relative;
+    }
+
+    p.bj1-qjms {
+        background-color: #5392C7;
+        color: #FFFFFF;
+        display: inline-block;
+        font-size: 1em;
+        padding: 0.1em 0.7em 0.12em 0.7em;
+        font-weight: bold;
+        border-radius: 1.5em;
+        margin-left: 0em;
+        text-align: center;
+        text-indent: 0em;
+        position: absolute;
+        top: -2em;
+    }
+
+    .bj {
+        background-color: #E1E7F3;
+        padding: 0.2em 0.8em 0.2em 0.8em;
+    }
+
+    .bj2 {
+        background-color: #3D8B9F;
+        padding: 0.2em 0.8em 0.2em 0.8em;
+        font-size: 1.3em;
+        font-weight: bold;
+        border-radius: 0.5em;
+        color: #FFFFFF;
+    }
+
+    .bj3 {
+        background-color: #FEDDB4;
+        padding: 20px 10px 10px 10px;
+        border-radius: 10px;
+        margin-bottom: 10px;
+        margin-top: 10px;
+        position: relative;
+    }
+
+    span.bj3-xyx {
+        background-color: #F5A101;
+        color: #FFFFFF;
+        border-radius: 5px;
+        padding: 5px 10px 5px 10px;
+        font-size: 1em;
+        font-weight: bold;
+
+    }
+
+    div.bj3-xyx {
+        position: absolute;
+        top: -15px;
+        left: -25px;
+
+    }
+
+    .ts-1 {
+        font-weight: bold;
+    }
+
+    .zt-h4 {
+        background-color: #F0BD40;
+        padding: 10px;
+        color: #FFFFFF;
+        margin-left: -2em;
+        border-radius: 1.5em;
+    }
+
+    .qyls-h4 {
+        font-family: "HiFont Hei GB";
+        color: #6CB26C;
+        font-weight: bold;
+        padding: 0.2em;
+        text-indent: 0em;
+        margin-left: 0%;
+    }
+
+    .bj4 {
+        background-color: #D7E2F0;
+        padding: 10px 20px;
+        border-radius: 0.1em;
+        margin-bottom: 2em;
+        margin-top: 1em;
+    }
+
+    div.bj4-xyx {
+        font-size: 18px;
+        color: #fff;
+        line-height: 20px;
+        padding: 12.5px 15px 12.5px 15px;
+        margin-right: 10px;
+        background-color: #5192C6;
+        border-radius: 5px;
+    }
+
+    .bj4-xyx-pd {
+        font-size: 16px;
+        color: #fff;
+        line-height: 20px;
+        padding: 22px 10px 22px 10px;
+        background-color: #5192C6;
+        margin-right: 10px;
+        border-radius: 5px;
+        flex-wrap: nowrap;
+    }
+
+    .bj4-xyx-icon {
+        color: #5192C6;
+        text-wrap: nowrap;
+    }
+
+    .bj5 {
+        background-color: #F0F3E2;
+        padding: 20px;
+        border-radius: 0.1em;
+        margin-bottom: 2em;
+        margin-top: 2.5em;
+    }
+
+    span.bj5-xyx {
+        background-color: #95B321;
+        color: #FFFFFF;
+        border-radius: 1.5em;
+        padding: 5px 20px 5px 20px;
+        font-size: 1em;
+        font-weight: bold;
+
+    }
+
+    div.bj5-xyx {
+        margin-top: -3em;
+        margin-bottom: 1.5em;
+        margin-left: -2.5em;
+    }
+
+    .zt-lvs1 {
+        color: #95B321;
+    }
+
+    div.bj-1 {
+        color: #fff;
+        border-radius: 2em;
+        margin-bottom: 1.5em;
+        margin-top: 1.5em;
+    }
+
+    .bj-1-zt {
+        color: #fff;
+        font-weight: 400;
+        font-size: 1.2em;
+        line-height: 1.8em;
+    }
+
+}
+
+.pdfModal {
+    width: 100%;
+    height: 90vh;
+
+    .pdfBox-component {
+        width: 100%;
+        height: 100%;
+        position: relative;
+
+        .preview {
+            width: 100%;
+            height: 100%;
+
+            .imageBox {
+                height: calc(100% - 30px);
+                overflow-x: hidden;
+                overflow-y: auto;
+                background: #ccc;
+                box-sizing: border-box;
+            }
+
+            .imageBox:hover {
+                cursor: zoom-in !important;
+            }
+
+            ::v-deep .el-dialog__header {
+                background-color: rgba(0, 0, 0, 0.8);
+
+                .header_title {
+                    display: flex;
+                    justify-content: space-between;
+                    align-items: center;
+                    color: #fff;
+                    font-weight: 900;
+                    font-size: 16px;
+                    font-family: 'FZLTXIHJW';
+
+                    span:nth-child(2):hover {
+                        cursor: pointer;
+                    }
+                }
+
+                ::v-deep .el-dialog__title,
+                ::v-deep .el-dialog__headerbtn .el-dialog__close {
+                    color: #fff;
+                    font-weight: 900;
+                    font-size: 16px;
+                    font-family: 'FZLTXIHJW';
+                }
+            }
+
+            .bottom_tool {
+                height: 30px;
+                background-color: rgba(0, 0, 0, 0.8);
+                display: flex;
+                justify-content: flex-end;
+                align-items: center;
+
+                svg {
+                    margin-right: 15px;
+                    fill: #d1d1d1;
+                }
+
+                svg:hover {
+                    fill: #fff;
+                    cursor: pointer;
+                }
+            }
+        }
+
+        .notBox {
+            position: absolute;
+            top: 0;
+            left: 0;
+            width: 100%;
+            height: calc(100% - 30px);
+            min-height: 300px;
+        }
+    }
+}
+
+.custom-dialog {
+    overflow: hidden !important;
+
+    .el-dialog__body {
+        padding: 0;
+    }
+
+    .el-dialog__header {
+        background-color: rgba(0, 0, 0, 0.8);
+
+        .header_title {
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            color: #fff;
+            font-weight: 900;
+            font-size: 16px;
+            font-family: 'FZLTXIHJW';
+
+            span:nth-child(2):hover {
+                cursor: pointer;
+            }
+        }
+
+        .el-dialog__title,
+        .el-dialog__headerbtn .el-dialog__close {
+            color: #fff;
+            font-weight: 900;
+            font-size: 16px;
+            font-family: 'FZLTXIHJW';
+        }
+    }
+}
+
+.header_title {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    // color: #fff;
+    font-weight: 900;
+    font-size: 16px;
+    font-family: 'FZLTXIHJW';
+
+    span:nth-child(2):hover {
+        cursor: pointer;
+    }
+}
+
+
+
+
+/* 濯掍綋鏌ヨ鍋氬熀纭�鍝嶅簲寮忓竷灞� */
+
+@media screen and (max-width: 1024px) {
+    .pdfModal {
+        width: 100%;
+        height: 80vh;
+    }
+
+    .custom-dialog {
+        .el-dialog {
+            width: 90vw !important;
+        }
+    }
+}
+
+@media screen and (max-width: 800px) {
+    .pdfModal {
+        width: 100%;
+        height: 60vh;
+    }
+
+    .custom-dialog {
+        .el-dialog {
+            width: 90vw !important;
+        }
+    }
+}
+
+@media (max-width: 660px) {
+    .civilPassengerTransport-book {
+        
+        .pad-l-60 {
+            padding-left: 10px;
+        }
+
+        .mr-70 {
+            margin-right: 15px;
+        }
+        /* 鍒嗛〉padding */
+        .padding-93 {
+            padding: 0 20px;
+        }
+
+        .padding-102 {
+            padding: 0 20px;
+        }
+
+
+        .img-float {
+            width: 130px;
+        }
+
+        .img-rights {
+            width: 130px;
+        }
+
+        .btn-w {
+            width: 42px;
+        }
+    }
+}
+
+@media (min-width: 660px) {
+    .civilPassengerTransport-book {
+        .padding-93 {
+            padding: 0 93px 0px 93px;
+        }
+
+        .padding-102 {
+            padding: 0 102px 0 102px;
+        }
+    }
+}
+
+::-webkit-scrollbar {
+    width: 8px;
+    height: 10px;
+}
+
+::-webkit-scrollbar-track-piece {
+    background-color: rgba(0, 0, 0, 0.1);
+    -webkit-border-radius: 6px;
+}
+
+::-webkit-scrollbar-thumb:vertical {
+    height: 5px;
+    background-color: rgba(125, 125, 125, 0.3);
+    -webkit-border-radius: 6px;
+}
+
+::-webkit-scrollbar-thumb:horizontal {
+    width: 5px;
+    background-color: rgba(125, 125, 125, 0.3);
+    -webkit-border-radius: 6px;
+}
\ No newline at end of file
diff --git a/src/books/civilPassengerTransport/view/components/header.vue b/src/books/civilPassengerTransport/view/components/header.vue
new file mode 100644
index 0000000..2ead37e
--- /dev/null
+++ b/src/books/civilPassengerTransport/view/components/header.vue
@@ -0,0 +1,46 @@
+<template>
+    <div class="chapter" num="1">
+        <!-- 灏侀潰 -->
+        <!-- <div class="page-box mt-30" page="1" style="min-height: auto">
+            <div v-if="showPageList.indexOf(1) > -1">
+                <img class="img-0" alt="" src="../../assets/images/fengmian.jpg" />
+            </div>
+        </div> -->
+    </div>
+</template>
+
+<script>
+export default {
+    name: "pageHeader",
+    props: {
+        showPageList: {
+            type: Array,
+        },
+    },
+    data() {
+        return {
+        };
+    },
+};
+</script>
+
+<style lang="less" scoped>
+.box {
+    max-width: 400px;
+    margin: 0 auto;
+}
+
+.preface {
+    height: 224px;
+    background: linear-gradient(to right, #8fc58c, #fff);
+}
+
+.preface-text {
+    font-size: 26px !important;
+    color: #000 !important;
+}
+
+.mt-100 {
+    margin-top: 100px !important;
+}
+</style>
\ No newline at end of file
diff --git a/src/books/civilPassengerTransport/view/components/index.vue b/src/books/civilPassengerTransport/view/components/index.vue
new file mode 100644
index 0000000..0b7ed73
--- /dev/null
+++ b/src/books/civilPassengerTransport/view/components/index.vue
@@ -0,0 +1,975 @@
+<template>
+  <div class="page-main" @scroll="throttledScrollHandler">
+    <div id="searchDomBox" style="display: none">
+      <div id="searchContent"></div>
+    </div>
+    <div
+      class="page-content"
+      :style="{
+        fontSize: fontSize + 'px',
+        transform: `scale(${pageZoom})`,
+        transformOrigin: 'center top',
+      }"
+    >
+      <pageHeader
+        v-if="showCatalogList.indexOf(1) > -1"
+        :showPageList="loadPageList"
+      ></pageHeader>
+      <!-- <chapterOne
+        v-if="showCatalogList.indexOf(2) > -1"
+        :showPageList="loadPageList"
+      ></chapterOne>
+      <chapterTwo
+        v-if="showCatalogList.indexOf(3) > -1"
+        :showPageList="loadPageList"
+      ></chapterTwo>
+      <chapterThree
+        v-if="showCatalogList.indexOf(4) > -1"
+        :showPageList="loadPageList"
+      ></chapterThree>
+      <chapterFour
+        v-if="showCatalogList.indexOf(5) > -1"
+        :showPageList="loadPageList"
+      ></chapterFour> -->
+    </div>
+  </div>
+</template>
+
+<script>
+import Vue from "vue";
+import pageHeader from "./header.vue";
+// import chapterOne from "./chapter001.vue";
+// import chapterTwo from "./chpater002.vue";
+// import chapterThree from "./chapter003.vue";
+// import chapterFour from "./chapter004.vue";
+import NoteIcon from "@/assets/images/biji.png";
+import _ from "lodash";
+import Swiper from "swiper/bundle";
+import "swiper/swiper-bundle.css";
+import Viewer from "viewerjs";
+import "viewerjs/dist/viewer.css";
+export default {
+  name: "pageContent",
+  data() {
+    return {
+      catalogLength: 2, // 鎬荤珷鑺傛暟
+      showCatalogList: [], // 鏄剧ず鐨勭珷鑺�
+      loadThreshold: 300, // 瑙﹀彂鍔犺浇闃堝��
+      throttleThreshold: 100, // 鑺傛祦闃堝��
+      previousScrollTop: 0,
+      throttledScrollHandler: null,
+      observer: null,
+      loadPageObserver: null,
+      loadPageList: [],
+      questionDataMap: {},
+      renderSignMap: {},
+      highlightData: null,
+      audioPath: "",
+      currentTime: null,
+      videoList: [],
+    };
+  },
+  computed: {
+    fontSize() {
+      this.transformDom(this.$store.state.qiankun.fontSize);
+      return this.$store.state.qiankun.fontSize
+        ? this.$store.state.qiankun.fontSize
+        : 18;
+    },
+    pageZoom() {
+      return this.$store.state.qiankun.scale
+        ? this.$store.state.qiankun.scale / 100
+        : 1;
+    },
+  },
+  watch: {
+    showCatalogList: {
+      handler(newVal, oldVal) {
+        if (
+          this.$store.state.qiankun &&
+          this.$store.state.qiankun.catalogChange
+        ) {
+          // 璋冪敤鐖跺眰鏂规硶
+          this.$store.state.qiankun.catalogChange({
+            showCatalogList: newVal,
+          });
+        }
+        // 鍚姩椤电爜瑙傚療
+        setTimeout(() => {
+          this.initObservation();
+          this.initThemeColor();
+        }, 500);
+      },
+    },
+    loadPageList: {
+      handler(newVal, oldVal) {
+        setTimeout(() => {
+          this.transformDom(this.$store.state.qiankun.fontSize);
+          this.initSwiper();
+          this.initViewer();
+          this.closeAudio();
+          this.closeVideo();
+        }, 200);
+      },
+    },
+    pageZoom: {
+      handler(newVal, oldVal) {
+        const scrollBox = (
+          this.container ? this.container : document
+        ).querySelector(".page-main");
+        scrollBox.scrollTop = (scrollBox.scrollTop / oldVal) * newVal;
+      },
+    },
+  },
+  mounted() {
+    // 榛樿鍔犺浇绔犺妭
+    this.showCatalogList = [1];
+    // 婊氬姩鐩戝惉鑺傛祦
+    this.throttledScrollHandler = _.throttle(
+      this.scrollFun,
+      this.throttleThreshold,
+      { leading: true, trailing: false }
+    );
+    // 瀹氫箟瀛愬眰鏂规硶
+    if (this.setGlobalState) {
+      // 鎻愪緵椤甸潰璺宠浆鍔熻兘
+      this.setGlobalState({
+        gotoPage: (catalog, page) => {
+          this.gotoPage(catalog, page);
+        },
+        // 娓叉煋绗旇銆侀珮浜�佸垝绾�
+        renderSign: (type, data) => {
+          // 鍥犱负璋冩暣涓洪〉闈㈡噿鍔犺浇锛屾墍浠ユ覆鏌撴爣璁颁篃闇�瑕佹寜鐓ч〉闈㈣繘琛屽鐞嗭紝鍏堝偍瀛樻暟鎹紝椤甸潰鍔犺浇瀹屾垚鍐嶆覆鏌撳搴旂殑鏍囪锛�
+          this.handelSignData(type, data);
+          // this.renderSign(type, data);
+        },
+        // 鍒犻櫎绗旇銆侀珮浜�佸垝绾�
+        delSign: (data) => {
+          this.delSign(data);
+        },
+        // 鍏ㄦ枃妫�绱�
+        searchBookByKeyword: (keyword) => {
+          return this.searchTextByPage(keyword);
+        },
+        // 璺宠浆妫�绱㈢粨鏋滀綅缃�
+        jumpSearchItem: (data) => {
+          this.searchItemLocation(data);
+        },
+      });
+    }
+
+    // 鍒涘缓涓�涓柊鐨� Intersection Observer 瀹炰緥锛岀敤浜庤瀵熺洰鏍囧厓绱犲拰鎵ц鐩稿簲鐨勫洖璋冨嚱鏁般��
+    // new IntersectionObserver(callback, options)锛氫娇鐢ㄤ箣鍓嶅畾涔夌殑 callback 鍥炶皟鍑芥暟鍜� options 閰嶇疆閫夐」鏉ュ垵濮嬪寲 Intersection Observer 瀹炰緥銆�
+    this.observer = new IntersectionObserver(this.pageChangeCallback, {
+      root: null, // 鎸囧畾鏍瑰厓绱狅紝杩欓噷璁句负 null锛岃〃绀洪�夊彇鏁翠釜瑙嗙獥浣滀负鏍瑰厓绱犮��
+      rootMargin: "0px", // 鎸囧畾鏍瑰厓绱犵殑杈圭晫锛岃繖閲岃涓� "0px"锛岃〃绀烘牴鍏冪礌鐨勮竟鐣屽拰瑙嗙獥鐨勮竟鐣岄噸鍚�
+      threshold: 0.5, // 鎸囧畾浜ゅ弶姣斾緥锛岃繖閲岃涓� 0.5锛岃〃绀哄綋鐩爣鍏冪礌涓�鍗婃垨鏇村鏄剧ず鍦ㄨ绐椾腑鏃惰Е鍙戝洖璋冨嚱鏁般��
+    });
+
+    this.loadPageObserver = new IntersectionObserver(this.loadPageCallback, {
+      root: null, // 鎸囧畾鏍瑰厓绱狅紝杩欓噷璁句负 null锛岃〃绀洪�夊彇鏁翠釜瑙嗙獥浣滀负鏍瑰厓绱犮��
+      rootMargin: "0px", // 鎸囧畾鏍瑰厓绱犵殑杈圭晫锛岃繖閲岃涓� "0px"锛岃〃绀烘牴鍏冪礌鐨勮竟鐣屽拰瑙嗙獥鐨勮竟鐣岄噸鍚�
+      threshold: 0, // 鎸囧畾浜ゅ弶姣斾緥锛岃繖閲岃涓� 0.5锛岃〃绀哄綋鐩爣鍏冪礌涓�鍗婃垨鏇村鏄剧ず鍦ㄨ绐椾腑鏃惰Е鍙戝洖璋冨嚱鏁般��
+    });
+
+    // 鍚姩椤电爜瑙傚療
+    setTimeout(() => {
+      this.initObservation();
+      this.initThemeColor();
+    }, 500);
+
+    // 娴嬭瘯椤甸潰璺宠浆
+    // setTimeout(() => {
+    //   this.gotoPage(4,140);
+    // }, 500);
+
+    // const pageDom = (this.container ? this.container : document)
+    //   .querySelector("#app")
+    //   .querySelectorAll(".page-box");
+    // 妫�绱�
+    // console.log(this.searchTextByPage("淇濇姢鍐呰剰鍣ㄥ畼"), "searchTextByPage");
+    // 妫�绱㈣烦杞�
+    // this.searchItemLocation({
+    //   catalog: 2,
+    //   page: 10,
+    //   txt: " 杩愬姩绯荤粺鏄敱楠ㄣ�侀杩炵粨鍜岄楠艰倢涓夐儴鍒嗙粍鎴愮殑銆傚叏韬殑楠ㄩ�氳繃楠ㄨ繛缁撶粍鎴愪汉浣撻楠硷紙瑙佸浘1-1锛夈�傞楠兼槸浜轰綋鐨勬敮鏋讹紝鍏锋湁淇濇姢鍐呰剰鍣ㄥ畼銆佷緵鑲岃倝闄勭潃鍜屼綔涓鸿倢鑲夎繍鍔ㄧ殑鏉犳潌绛変綔鐢ㄣ�傚湪绁炵粡绯荤粺鐨勬敮閰嶄笅锛岃倢鑲夋敹缂╃壍鍔ㄦ墍闄勭潃鐨勯缁曠潃鍏宠妭杞姩锛屼娇韬綋浜х敓鍚勭鍔ㄤ綔銆傛墍浠ワ紝杩愬姩绯荤粺鍏锋湁杩愬姩銆佹敮鎸佸拰淇濇姢绛夊姛鑳斤紝骞煎勾鏃舵湡鐨勯楠艰繕鍏锋湁閫犺鍔熻兘銆� ",
+    //   txtIndex: 57
+    // });
+    // }, 500);
+  },
+  methods: {
+    // setZoom1() {
+    //   let scale = this.$store.state.qiankun.scale + 10;
+    //   const scrollBox = (
+    //     this.container ? this.container : document
+    //   ).querySelector(".page-main");
+    //   this.$store.commit("setZoom", scale);
+    // },
+    // setZoom2() {
+    //   let scale = this.$store.state.qiankun.scale - 10;
+    //   const scrollBox = (
+    //     this.container ? this.container : document
+    //   ).querySelector(".page-main");
+    //   this.$store.commit("setZoom", scale);
+    // },
+    // 婊氬姩鐩戝惉
+    scrollFun(event) {
+      this.handleVideoPicture();
+      // 鍒ゆ柇鍚戜笂婊氬姩杩樻槸鍚戜笅婊氬姩
+      if (event.target.scrollTop > this.previousScrollTop) {
+        this.getAduio();
+        // 鍚戜笅
+        const currentScrollTop =
+          event.target.scrollTop + event.target.offsetHeight;
+        if (
+          currentScrollTop >=
+          event.target.scrollHeight - this.loadThreshold
+        ) {
+          console.log(1);
+
+          // 鍒拌揪闃堝��
+          if (
+            this.showCatalogList[this.showCatalogList.length - 1] <
+            this.catalogLength
+          ) {
+            // 鍔犺浇涓嬩竴绔�
+            this.showCatalogList.push(
+              this.showCatalogList[this.showCatalogList.length - 1] + 1
+            );
+            if (this.showCatalogList.length > 3) {
+              // 瓒呰繃涓夌珷闅愯棌椤堕儴涓�绔�
+              this.showCatalogList.shift();
+            }
+          }
+        }
+      } else if (event.target.scrollTop < this.previousScrollTop) {
+        this.handleAudio();
+        // 鍚戜笂
+        const currentScrollTop = event.target.scrollTop;
+        if (currentScrollTop <= this.loadThreshold) {
+          // 鍒拌揪闃堝��
+          if (this.showCatalogList[0] > 0) {
+            // 鍔犺浇涓婁竴绔�
+            this.showCatalogList.unshift(this.showCatalogList[0] - 1);
+            if (this.showCatalogList.length > 3) {
+              // 瓒呰繃涓夌珷闅愯棌搴曢儴涓�绔�
+              this.showCatalogList.pop();
+            }
+          }
+        }
+      }
+      // showCatalogList 褰撳墠鏄剧ず鐨勪笁涓珷鑺傦紝watch鐩戝惉浼犻�掔粰涓诲簲鐢�
+      // 鏇存柊涓婁竴娆℃粴鍔ㄧ殑浣嶇疆
+      this.previousScrollTop = event.target.scrollTop;
+    },
+    // 绔犺妭銆侀〉闈㈣烦杞�
+    gotoPage(catalog, page) {
+      if (catalog >= 0 && catalog <= this.catalogLength) {
+        // 澶勭悊娓叉煋绔犺妭
+        if (catalog == 0) {
+          this.showCatalogList = [0, 1];
+        } else if (catalog == this.catalogLength) {
+          this.showCatalogList = [
+            this.catalogLength - 2,
+            this.catalogLength - 1,
+            this.catalogLength,
+          ];
+        } else {
+          this.showCatalogList = [catalog - 1, catalog, catalog + 1];
+        }
+        setTimeout(() => {
+          // 璺宠浆椤电爜
+          const pageDom = (
+            this.container ? this.container : document
+          ).querySelector(`[page="${page}"]`);
+          if (pageDom) {
+            pageDom.scrollIntoView();
+          } else {
+            console.log("椤电爜閿欒锛�");
+          }
+        }, 500);
+      } else {
+        console.log("绔犺妭閿欒锛�");
+      }
+    },
+
+    // 澶勭悊鏍囪鏁版嵁
+    handelSignData(type, data) {
+      if (this.loadPageList.indexOf(Number(data.page)) > -1) {
+        // 绔嬪嵆娓叉煋
+        this.renderSign(type, data);
+      }
+
+      // 鍌ㄥ瓨鏁版嵁
+      if (!this.renderSignMap[type]) this.renderSignMap[type] = {};
+      if (!this.renderSignMap[type][data.page])
+        this.renderSignMap[type][data.page] = [];
+      this.renderSignMap[type][data.page].push(data);
+    },
+
+    // 娓叉煋鏍囪
+    renderSign(type, data) {
+      // 鐖跺眰璁剧疆绂佹娓叉煋鏍囪鏃朵笉鍐嶈繘琛屾覆鏌�
+      if (this.$store.state.qiankun.disableSign) {
+        return false;
+      }
+      const existence = (
+        this.container ? this.container : document
+      ).querySelector(`[dataid="${data.id}"]`);
+      // 鍘婚噸
+      if (!existence) {
+        const pageDom = (
+          this.container ? this.container : document
+        ).querySelector(`[page="${data.page}"]`);
+        // 鍒涘缓 createTreeWalker 杩唬鍣紝鐢ㄤ簬閬嶅巻鏂囨湰鑺傜偣锛屼繚瀛樺埌涓�涓暟缁�
+        const treeWalker = document.createTreeWalker(
+          pageDom,
+          NodeFilter.SHOW_TEXT
+        );
+        const allTextNodes = [];
+        let currentNode = treeWalker.nextNode();
+        while (currentNode) {
+          allTextNodes.push(currentNode);
+          currentNode = treeWalker.nextNode();
+        }
+        for (let i = 0; i < allTextNodes.length; i++) {
+          const textDom = allTextNodes[i];
+          if (textDom.textContent.indexOf(data.txt) > -1) {
+            let reg = new RegExp(`${data.txt}`, "ig");
+            switch (type) {
+              case "Highlight":
+                // 楂樹寒
+                textDom.parentNode.innerHTML =
+                  textDom.parentNode.innerHTML.replace(
+                    reg,
+                    `<span datatype="Highlight" dataid="${data.id}" style="background: ${data.color};" class="highLight" onclick="signClick('Highlight','${data.id}','${data.chapterNum}')">${data.txt}</span>`
+                  );
+                break;
+              case "Dashing":
+                // 鍒掔嚎
+                textDom.parentNode.innerHTML =
+                  textDom.parentNode.innerHTML.replace(
+                    reg,
+                    `<span datatype="Dashing" dataid="${data.id}" style="text-decoration-color:${data.color};" class="underline" onclick="signClick('Dashing','${data.id}','${data.chapterNum}')">${data.txt}</span>`
+                  );
+                break;
+              case "Note":
+                // 绗旇
+                textDom.parentNode.innerHTML =
+                  textDom.parentNode.innerHTML.replace(
+                    reg,
+                    `<span datatype="Note" dataid="${data.id}" style="border-bottom-color:${data.color}" class="notesline" onclick="signClick('Note','${data.id}','${data.chapterNum}')" onmouseover="noteHover('Note','${data.id}','${data.chapterNum}')" onmouseout="noteOut('Note')">${data.txt}<img src="${NoteIcon}"/></span>`
+                  );
+                break;
+            }
+          }
+        }
+      }
+    },
+    // 鍒犻櫎鏍囪娓叉煋
+    delSign({ ids, type }) {
+      if (ids && ids.length) {
+        for (let i = 0; i < ids.length; i++) {
+          const id = ids[i];
+          const dom = (
+            this.container ? this.container : document
+          ).querySelector(`[dataid="${id}"]`);
+          dom.parentNode.innerHTML = dom.parentNode.innerHTML.replace(
+            dom.outerHTML,
+            dom.outerText
+          );
+        }
+      }
+      if (type) {
+        const doms = (
+          this.container ? this.container : document
+        ).querySelectorAll(`[datatype="${type}"]`);
+        for (let i = 0; i < doms.length; i++) {
+          const dom = doms[i];
+          dom.parentNode.innerHTML = dom.parentNode.innerHTML.replace(
+            dom.outerHTML,
+            dom.outerText
+          );
+        }
+      }
+    },
+    initObservation() {
+      const sections = (
+        this.container ? this.container : document
+      ).querySelectorAll(".page-box");
+      sections.forEach((section) => {
+        if (this.config.activeBook && this.config.activeBook.tryPageCount) {
+          const page = section.getAttribute("page");
+          if (Number(page) > this.config.activeBook.tryPageCount) {
+            let chapterDom = this.getParentWithClass(section, "chapter");
+            const chapterNum = chapterDom.getAttribute("num");
+            this.catalogLength = Number(chapterNum) - 1;
+            section.remove();
+            return false;
+          }
+        }
+        // observer 瑙傚療姣忎釜鍏冪礌锛屼互渚垮湪瀹冧滑杩涘叆鎴栫寮�瑙嗙獥鏃惰Е鍙戝洖璋冨嚱鏁般��
+        const isObserver = section.getAttribute("observer");
+        const isLoadObserver = section.getAttribute("loadObserver");
+        if (!isObserver) {
+          this.observer.observe(section);
+          section.setAttribute("observer", "1");
+        }
+        if (!isLoadObserver) {
+          this.loadPageObserver.observe(section);
+          section.setAttribute("loadObserver", "1");
+        }
+      });
+    },
+    initThemeColor() {
+      // 鑾峰彇鍚勭闇�瑕佷富棰樿壊鐨勮妭鐐�
+      const colorDom = (
+        this.container ? this.container : document
+      ).querySelectorAll(".theme-color");
+      const backgroundColorDom = (
+        this.container ? this.container : document
+      ).querySelectorAll(".theme-back");
+      const borderColorDom = (
+        this.container ? this.container : document
+      ).querySelectorAll(".theme-border");
+      // 鑾峰彇閰嶇疆鐨勪富棰樿壊
+      const bookThemeColor =
+        this.config.activeBook && this.config.activeBook.bookThemeColor
+          ? this.config.activeBook.bookThemeColor
+          : null;
+      const chapterThemeColor =
+        this.config.activeBook && this.config.activeBook.chapterThemeColor
+          ? this.config.activeBook.chapterThemeColor
+          : null;
+      const pageThemeColor =
+        this.config.activeBook && this.config.activeBook.pageThemeColor
+          ? this.config.activeBook.pageThemeColor
+          : null;
+      colorDom.forEach((domItem) => {
+        // 鑾峰彇绔犺妭銆侀〉鐮�
+        let pageDom = this.getParentWithClass(domItem, "page-box");
+        let chapterDom = this.getParentWithClass(domItem, "chapter");
+        let page, chapterNum;
+        if (pageDom) page = pageDom.getAttribute("page");
+        if (chapterDom) chapterNum = chapterDom.getAttribute("num");
+        // 鍚戜笂鍖归厤涓婚鑹�
+        const themeColor =
+          page && pageThemeColor && pageThemeColor[page]
+            ? pageThemeColor[page]
+            : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum]
+            ? chapterThemeColor[chapterNum]
+            : bookThemeColor;
+        if (themeColor) {
+          domItem.style.color = themeColor;
+        }
+      });
+      backgroundColorDom.forEach((domItem) => {
+        // 鑾峰彇绔犺妭銆侀〉鐮�
+        let pageDom = this.getParentWithClass(domItem, "page-box");
+        let chapterDom = this.getParentWithClass(domItem, "chapter");
+        let page, chapterNum;
+        if (pageDom) page = pageDom.getAttribute("page");
+        if (chapterDom) chapterNum = chapterDom.getAttribute("num");
+        // 鍚戜笂鍖归厤涓婚鑹�
+        const themeColor =
+          page && pageThemeColor && pageThemeColor[page]
+            ? pageThemeColor[page]
+            : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum]
+            ? chapterThemeColor[chapterNum]
+            : bookThemeColor;
+        if (themeColor) {
+          domItem.style.backgroundColor = themeColor;
+        }
+      });
+      borderColorDom.forEach((domItem) => {
+        // 鑾峰彇绔犺妭銆侀〉鐮�
+        let pageDom = this.getParentWithClass(domItem, "page-box");
+        let chapterDom = this.getParentWithClass(domItem, "chapter");
+        let page, chapterNum;
+        if (pageDom) page = pageDom.getAttribute("page");
+        if (chapterDom) chapterNum = chapterDom.getAttribute("num");
+        // 鍚戜笂鍖归厤涓婚鑹�
+        const themeColor =
+          page && pageThemeColor && pageThemeColor[page]
+            ? pageThemeColor[page]
+            : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum]
+            ? chapterThemeColor[chapterNum]
+            : bookThemeColor;
+        if (themeColor) {
+          domItem.style.borderColor = themeColor;
+        }
+      });
+    },
+    getParentWithClass(element, className) {
+      while (element.parentElement) {
+        element = element.parentElement;
+        if (element.classList.contains(className)) {
+          return element;
+        }
+      }
+    },
+    pageChangeCallback(entries, observer) {
+      //entries锛氫唬琛ㄨ瀵熷埌鐨勭洰鏍囧厓绱犵殑闆嗗悎銆� observer锛氫唬琛ㄨ瀵熻�呭璞°��
+      entries.forEach((entry) => {
+        //entry.isIntersecting锛氭鏌ュ綋鍓嶇洰鏍囧厓绱犳槸鍚︿笌鏍瑰厓绱犵浉浜ゃ��
+        if (entry.isIntersecting) {
+          const target = entry.target;
+          //entry.target锛氳幏鍙栧綋鍓嶇洰鏍囧厓绱�
+          const page = target.getAttribute("page");
+          const catalogDom = this.tool.getParentNodeByClassName(
+            target,
+            "chapter"
+          );
+          const catalog = catalogDom.getAttribute("num");
+          let text = null;
+          if (target.querySelector("p")) {
+            text = target.querySelector("p").textContent.substring(0, 50);
+          }
+          // 杩斿洖椤电爜鍜岀珷鑺備俊鎭�
+          if (this.$store.state.qiankun && this.$store.state.qiankun.pageChange)
+            this.$store.state.qiankun.pageChange({
+              page: page,
+              catalog: catalog,
+              text,
+            });
+          // const sections = Array.from(document.querySelectorAll(".section"));
+          //sections锛氳幏鍙栨墍鏈夊叿鏈� .section 绫诲悕鐨勫厓绱狅紝骞惰浆鎹负鏁扮粍銆�
+          // let index = sections.findIndex((section) => section === target) + 1;
+          //index锛氭煡鎵惧綋鍓嶇洰鏍囧厓绱犲湪 sections 鏁扮粍涓殑绱㈠紩锛屽苟鍔� 1锛岀敤浜庣‘瀹氬綋鍓嶉〉鐮併��
+        }
+      });
+    },
+    loadPageCallback(entries, observer) {
+      entries.forEach(async (entry) => {
+        if (entry.isIntersecting) {
+          const target = entry.target;
+          const page = target.getAttribute("page");
+          if (this.loadPageList.indexOf(Number(page)) == -1) {
+            const catalogDom = this.tool.getParentNodeByClassName(
+              target,
+              "chapter"
+            );
+            // 娣诲姞椤电爜
+            this.loadPageList.push(Number(page));
+            const catalog = catalogDom.getAttribute("num");
+            // if (!this.questionDataMap[page]) {
+            //   if (testData && testData[catalog]) {
+            //     if (testData[catalog][page]) {
+            //       if (Array.isArray(testData[catalog][page])) {
+            //         this.questionDataMap[page] = await getQuestionList(
+            //           page,
+            //           testData[catalog][page],
+            //           this.config.activeBook
+            //         );
+            //       } else {
+            //         const obj = {};
+            //         for (let key in testData[catalog][page]) {
+            //           obj[key] = await getQuestionList(
+            //             [],
+            //             testData[catalog][page][key],
+            //             this.config.activeBook
+            //           );
+            //         }
+            //         this.questionDataMap[page] = obj;
+            //       }
+            //       console.log("棰樼洰", this.questionDataMap);
+            //     }
+            //   }
+            // }
+            // 娓叉煋杩欎竴椤电殑鏍囪
+            for (const key in this.renderSignMap) {
+              if (this.renderSignMap[key][page]) {
+                this.renderSignMap[key][page].forEach((item) => {
+                  this.renderSign(key, item);
+                });
+              }
+            }
+            // 澶勭悊楂樹寒
+            if (this.highlightData) {
+              // 楂樹寒琛�
+              setTimeout(() => {
+                // 鑾峰彇椤甸潰鎵�鏈塼ext鑺傜偣
+                const pageTextList = document.createTreeWalker(
+                  target,
+                  NodeFilter.SHOW_TEXT
+                );
+                // 鍖归厤鍏抽敭瀛�
+                const allPageTextNodes = [];
+                let currentNode = pageTextList.nextNode();
+                while (currentNode) {
+                  allPageTextNodes.push(currentNode);
+                  currentNode = pageTextList.nextNode();
+                }
+                for (let i = 0; i < allPageTextNodes.length; i++) {
+                  const textDom = allPageTextNodes[i];
+                  let txtIndex = textDom.textContent.indexOf(
+                    this.highlightData.txt
+                  );
+                  if (txtIndex > -1) {
+                    textDom.parentNode.style.transition =
+                      "background-color 0.8s";
+                    textDom.parentNode.scrollIntoView();
+                    textDom.parentNode.style.backgroundColor = "#79bbf0";
+                    setTimeout(() => {
+                      textDom.parentNode.style.backgroundColor = "";
+                    }, 1000);
+                  }
+                }
+              }, 100);
+            }
+            if (this.loadPageList.length > 5) {
+              // 瓒呰繃5椤�
+              this.loadPageList.shift();
+            }
+          }
+        }
+      });
+    },
+    initSwiper() {
+      const doms = (
+        this.container ? this.container : document
+      ).querySelectorAll(".swiper-img");
+      for (let i = 0; i < doms.length; i++) {
+        const dom = doms[i];
+        new Swiper(dom, {
+          loop: false, // 鏃犵紳
+          autoplay: {
+            //鑷姩寮�濮�
+            delay: 3000, //鏃堕棿闂撮殧
+            disableOnInteraction: false, //*鎵嬪姩鎿嶄綔杞挱鍥惧悗涓嶄細鏆傚仠*
+          },
+          paginationClickable: true,
+          slidesPerView: 1, // 涓�缁勪笁涓�
+          spaceBetween: 30, // 闂撮殧
+          // 濡傛灉闇�瑕佸墠杩涘悗閫�鎸夐挳
+          navigation: {
+            nextEl: dom.querySelector(".swiper-button-next"),
+            prevEl: dom.querySelector(".swiper-button-prev"),
+          },
+          // 绐楀彛鍙樺寲,閲嶆柊init,閽堝F11鍏ㄥ睆鍜屾斁澶х缉灏�,蹇呴』鍔�
+          // observer: true,
+          // observeParents: true
+          // // 濡傛灉闇�瑕佸垎椤靛櫒
+          // pagination: {
+          //   el: (this.container ? this.container : document).querySelector(
+          //     ".swiper-pagination"
+          //   ),
+          //   clickable: true // 鍒嗛〉鍣ㄥ彲浠ョ偣鍑�
+          // }
+        });
+      }
+      const pptDoms = (
+        this.container ? this.container : document
+      ).querySelectorAll(".swiper_ppt");
+      for (let i = 0; i < pptDoms.length; i++) {
+        const dom = pptDoms[i];
+        new Swiper(dom, {
+          loop: false, // 鏃犵紳
+          autoplay: false,
+          paginationClickable: true,
+          slidesPerView: 1, // 涓�缁勪笁涓�
+          spaceBetween: 30, // 闂撮殧
+          // 濡傛灉闇�瑕佸墠杩涘悗閫�鎸夐挳
+          navigation: {
+            nextEl: dom.querySelector(".swiper-button-next"),
+            prevEl: dom.querySelector(".swiper-button-prev"),
+          },
+          // 绐楀彛鍙樺寲,閲嶆柊init,閽堝F11鍏ㄥ睆鍜屾斁澶х缉灏�,蹇呴』鍔�
+          observer: true,
+          observeParents: true,
+          on: {
+            init: (value) => {
+              let currentPage = value.activeIndex + 1; // 鑾峰彇褰撳墠椤碉紙浠�1寮�濮嬭鏁帮級
+              let totalPages = value.slides.length; // 鑾峰彇鎬婚〉鏁�
+              var paginationInfoEl = dom.querySelector(".pageBox");
+              if (paginationInfoEl)
+                paginationInfoEl.textContent = currentPage + "/" + totalPages;
+            },
+            slideChange: (value) => {
+              let currentPage = value.activeIndex + 1; // 鑾峰彇褰撳墠椤碉紙浠�1寮�濮嬭鏁帮級
+              let totalPages = value.slides.length; // 鑾峰彇鎬婚〉鏁�
+              var paginationInfoEl = dom.querySelector(".pageBox");
+              if (paginationInfoEl)
+                paginationInfoEl.textContent = currentPage + "/" + totalPages;
+            },
+          },
+        });
+      }
+    },
+    initViewer() {
+      const doms = (
+        this.container ? this.container : document
+      ).querySelectorAll(".openImgBox");
+      for (let i = 0; i < doms.length; i++) {
+        const dom = doms[i];
+        new Viewer(dom, {
+          container: this.container
+            ? this.container.querySelector("#app")
+            : "body",
+          navbar: true, // 鏄剧ず瀵艰埅鏍�
+          toolbar: true, // 鏄剧ず宸ュ叿鏍�
+          title: true, // 鏄剧ず鏍囬
+        });
+      }
+    },
+    // 鏍规嵁鍏抽敭瀛楀叏鏂囨绱�
+    searchTextByPage(keyword) {
+      const searchResult = [];
+      let catalogIndex = 0;
+      // 鎵�鏈夌珷鑺傜粍浠讹紙姣忔湰涔﹀埗浣滄椂鍗曠嫭閰嶇疆锛�
+      const pageData = {
+        pageHeader,
+        // chapterOne,
+        // chapterTwo,
+        // chapterThree,
+        // chapterFour,
+      };
+      // 閬嶅巻鎵�鏈夌珷鑺傛枃浠�
+      for (const key in pageData) {
+        catalogIndex++;
+        let pageComponent, pageExample;
+        // 鍏堟覆鏌撲竴娆″綋鍓嶇珷鑺傛枃浠讹紙杩欐椂椤甸潰鐨勫唴瀹逛负绌猴級锛岃幏鍙栭〉鐮佷俊鎭�
+        pageComponent = Vue.extend(pageData[key]);
+        pageExample = new pageComponent({
+          propsData: {
+            showPageList: [],
+            questionData: {},
+            isSearch: true,
+          },
+        });
+        pageExample.$mount(
+          (this.container ? this.container : document).querySelector(
+            "#searchContent"
+          )
+        );
+        // 鑾峰彇椤电爜
+        const pageDom = (this.container ? this.container : document)
+          .querySelector("#searchDomBox")
+          .querySelectorAll(".page-box");
+        const pages = [];
+        for (let i = 0; i < pageDom.length; i++) {
+          const pageDomItem = pageDom[i];
+          pages.push(Number(pageDomItem.getAttribute("page")));
+        }
+        // 鑾峰彇椤甸潰缁撴潫锛屽嵏杞介攢姣�
+        pageExample.$destroy();
+        (this.container ? this.container : document).querySelector(
+          "#searchDomBox"
+        ).innerHTML = '<div id="searchContent"></div>';
+        // 閬嶅巻椤电爜
+        if (pages.length) {
+          for (let i = 0; i < pages.length; i++) {
+            const pageNum = pages[i];
+            // 鍔ㄦ�佹覆鏌撳搴旂珷鑺傜殑椤电爜
+            pageComponent = Vue.extend(pageData[key]);
+            pageExample = new pageComponent({
+              propsData: {
+                showPageList: [pageNum],
+                questionData: {},
+                isSearch: true,
+              },
+            });
+            pageExample.$mount(
+              (this.container ? this.container : document).querySelector(
+                "#searchContent"
+              )
+            );
+            // 鑾峰彇瀵瑰簲椤甸潰dom
+            const thisPageDom = (this.container ? this.container : document)
+              .querySelector("#searchDomBox")
+              .querySelector(`[page="${pageNum}"]`);
+            if (thisPageDom) {
+              // 鑾峰彇椤甸潰鎵�鏈塼ext鑺傜偣
+              const pageTextList = document.createTreeWalker(
+                thisPageDom,
+                NodeFilter.SHOW_TEXT
+              );
+              // 鍖归厤鍏抽敭瀛�
+              const allPageTextNodes = [];
+              let currentNode = pageTextList.nextNode();
+              while (currentNode) {
+                allPageTextNodes.push(currentNode);
+                currentNode = pageTextList.nextNode();
+              }
+              for (let i = 0; i < allPageTextNodes.length; i++) {
+                const textDom = allPageTextNodes[i];
+                let txtIndex = textDom.textContent.indexOf(keyword);
+                if (txtIndex > -1) {
+                  // 璁板綍鍏抽敭瀛楁墍鍦ㄩ〉鐮併�佺珷鑺備互鍙婂尮閰嶅埌鐨勬钀�
+                  searchResult.push({
+                    page: pageNum,
+                    catalog: catalogIndex,
+                    txt: textDom.textContent,
+                    txtIndex: txtIndex,
+                  });
+                }
+              }
+              // 缁撴潫锛屽嵏杞介攢姣�
+              pageExample.$destroy();
+              (this.container ? this.container : document).querySelector(
+                "#searchDomBox"
+              ).innerHTML = '<div id="searchContent"></div>';
+            }
+          }
+        }
+      }
+      // 杈撳嚭鎼滅储缁撴灉
+      console.log(searchResult);
+      return searchResult;
+    },
+    // 鏍规嵁妫�绱㈢粨鏋滆烦杞搴斾綅缃苟楂樹寒
+    searchItemLocation(data) {
+      // 璁板綍楂樹寒淇℃伅
+      this.highlightData = data;
+      // 璺宠浆
+      this.gotoPage(data.catalog, data.page, () => {});
+    },
+    // 椤甸潰鍚戜笅婊氬姩锛岄煶棰戝皬绐楁挱鏀惧姛鑳�
+    getAduio() {
+      let allVideo = (
+        this.container ? this.container : document
+      ).querySelectorAll(".audio");
+      allVideo = Array.from(allVideo);
+      this.videoList = allVideo;
+      if (allVideo.length) {
+        // 鏌ユ壘鎾斁鐘舵�佺殑鏈�鍚庝竴鏉¢煶棰�
+        const playAudio = allVideo
+          .reverse()
+          .find((item) => item.paused == false);
+        if (playAudio) {
+          const bottomGap = playAudio.getBoundingClientRect().bottom;
+          if (bottomGap < 0) {
+            playAudio.pause();
+            this.audioPath = playAudio.src;
+            this.currentTime = playAudio.currentTime;
+          }
+        }
+      }
+    },
+    // 椤甸潰鍚戜笂婊氬姩锛岄煶棰戝皬绐楀洖鏀�
+    handleAudio() {
+      if (!this.audioPath) return false;
+      let allVideo = (
+        this.container ? this.container : document
+      ).querySelectorAll(".audio");
+      allVideo = Array.from(allVideo);
+      if (allVideo.length) {
+        //鏌ユ壘涓庡皬绐楁挱鏀鹃煶棰戝悓婧愮殑椤甸潰audio DOM
+        const playAudio = allVideo.find((item) => item.src == this.audioPath);
+        if (playAudio) {
+          const bottomGap = playAudio.getBoundingClientRect().bottom;
+          if (bottomGap >= 0) {
+            if (this.$refs.audioPlayer) {
+              const playerState = this.$refs.audioPlayer.getVideoPlayer();
+              this.audioPath = "";
+              playAudio.currentTime = playerState.currentTime;
+              if (!playerState.paused) playAudio.play();
+            }
+          }
+        }
+      }
+    },
+    // 鍏抽棴mini video
+    closeMiniAudio() {
+      this.audioPath = "";
+    },
+    // 鐐瑰嚮闊抽鎾斁锛屽叧闂叾浠栭煶棰�
+    closeAudio() {
+      let allAudio = (
+        this.container ? this.container : document
+      ).querySelectorAll(".audio");
+      for (let index = 0; index < allAudio.length; index++) {
+        const item = allAudio[index];
+        item.addEventListener("play", () => {
+          const audioList = Array.from(allAudio);
+          for (let cindex = 0; cindex < audioList.length; cindex++) {
+            const citem = audioList[cindex];
+            if (citem.currentSrc != item.src) {
+              citem.pause();
+            }
+          }
+          this.closeMiniAudio();
+        });
+      }
+    },
+    // 鐐瑰嚮瑙嗛鍏抽棴鍏朵粬
+    closeVideo() {
+      let allVideo = (
+        this.container ? this.container : document
+      ).querySelectorAll(".video");
+      for (let index = 0; index < allVideo.length; index++) {
+        const item = allVideo[index];
+        item.addEventListener("playing", (item) => {
+          const path = item.srcElement.src;
+          const videoList = Array.from(allVideo);
+          for (let cindex = 0; cindex < videoList.length; cindex++) {
+            const citem = videoList[cindex];
+            if (citem.currentSrc != path && path) {
+              citem.pause();
+            }
+          }
+        });
+      }
+    },
+    // 瑙嗛灏忕獥
+    handleVideoPicture() {
+      let doms = (this.container ? this.container : document).querySelectorAll(
+        ".video"
+      );
+      doms = Array.from(doms);
+      if (!doms.length) return false;
+      const playVudio = doms.reverse().find((item) => item.paused == false);
+      if (playVudio) {
+        const bottomGap = playVudio.getBoundingClientRect().bottom;
+        const topGap = playVudio.getBoundingClientRect().top;
+        if (bottomGap < 0 || topGap > window.innerHeight) {
+          try {
+            if (playVudio.readyState) {
+              // playVudio.requestPictureInPicture();
+              setTimeout(()=>{
+                playVudio.requestPictureInPicture();
+              },0)
+            }
+          } catch (error) {
+            console.log(error, "灏忕獥閿欒error");
+          }
+        }
+      }
+    },
+    //鍏朵粬绫诲悕涓嬪瓧浣撳ぇ灏忓彉鍖�
+    transformDom(fs) {
+      if (!fs) return;
+      let doms = (this.container ? this.container : document).querySelectorAll(
+        ".block"
+      );
+      if (!doms.length) return;
+      for (let index = 0; index < doms.length; index++) {
+        const dom = doms[index];
+        dom.style.fontSize = fs + "px";
+      }
+    },
+  },
+  components: {
+    pageHeader,
+    // chapterOne,
+    // chapterTwo,
+    // chapterThree,
+    // chapterFour,
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.page-main {
+  width: 100% !important;
+  height: 100% !important;
+  overflow: auto;
+
+  .page-content {
+    max-width: 816px;
+    min-width: 375px;
+    margin: 0 auto;
+    padding-bottom: 100px;
+  }
+}
+</style>
diff --git a/src/books/civilPassengerTransport/view/index.vue b/src/books/civilPassengerTransport/view/index.vue
new file mode 100644
index 0000000..6f67224
--- /dev/null
+++ b/src/books/civilPassengerTransport/view/index.vue
@@ -0,0 +1,78 @@
+<template>
+    <div class="civilPassengerTransport-book" @mouseup="handleMouseUp">
+      <pageContent></pageContent>
+    </div>
+  </template>
+  
+  <script>
+  import pageContent from "./components/index.vue"
+  export default {
+    name: "civilPassengerTransport-book",
+    components: { pageContent },
+    computed: {
+      fontSize() {
+        return this.$store.state.qiankun.fontSize;
+      },
+      pageZoom() {
+        return this.$store.state.qiankun.scale / 100;
+      },
+    },
+    methods: {
+      getParentWithClass(element, className) {
+        while (element.parentElement) {
+          element = element.parentElement;
+          if (element.classList.contains(className)) {
+            return element;
+          }
+        }
+      },
+      handleMouseUp(e) {
+        const selection = (
+          this.container ? this.container : window
+        ).getSelection();
+        const txt = selection.toString();
+        if (selection.type != "none" && txt) {
+          let node = selection.anchorNode.parentNode;
+          let pageHtml = this.getParentWithClass(
+            selection.anchorNode,
+            "page-box"
+          );
+          let chapterDom = this.getParentWithClass(
+            selection.anchorNode,
+            "chapter"
+          );
+          let chapterNum;
+          if (chapterDom) chapterNum = chapterDom.getAttribute("num");
+          if (pageHtml) {
+            const page = pageHtml.getAttribute("page");
+            // 鐩戝惉閫変腑鏂囨湰浜嬩欢锛屽苟瑙﹀彂鐖跺眰鏂规硶
+            if (this.$store.state.qiankun.windowSelection) {
+              this.$store.state.qiankun.windowSelection({
+                chapterNum,
+                txt,
+                page,
+                x: e.x,
+                y: e.y,
+              });
+            }
+          }
+        } else {
+          if (this.$store.state.qiankun.windowSelection) {
+            this.$store.state.qiankun.windowSelection({
+              chapterNum: "",
+              txt: "",
+              page: "",
+              x: e.x,
+              y: e.y,
+            });
+          }
+        }
+      },
+    },
+  };
+  </script>
+  
+  <style lang="less">
+  @import "../assets/main.less";
+  </style>
+  
\ No newline at end of file
diff --git a/src/books/toddlerGameImplementation/assets/main.less b/src/books/toddlerGameImplementation/assets/main.less
index e78b3e6..23bc3fe 100644
--- a/src/books/toddlerGameImplementation/assets/main.less
+++ b/src/books/toddlerGameImplementation/assets/main.less
@@ -174,8 +174,8 @@
     font-family: "鏂规涔﹀畫";
   }
 
-  .fm-fzxbs{
-   font-weight: 100 !important;
+  .fm-fzxbs {
+    font-weight: 100 !important;
     font-size: 0.9em !important;
     font-family: "鏂规鏂版姤瀹�" !important;
   }
@@ -1490,7 +1490,7 @@
   }
 
   h4 {
-    font-family: '鏂规鍑嗛泤瀹�';
+    font-family: 'FZZYS';
     font-weight: 400;
     color: #03AFED;
     margin-bottom: 0.2em;
@@ -1650,7 +1650,7 @@
 
 
   .ls2 {
-    font-family: "鏂规鍑嗛泤瀹�";
+    font-family: "FZZYS";
     color: #00B1F5;
     font-weight: 400;
     font-size: 1em;
@@ -2191,11 +2191,9 @@
 }
 
 
-
-
 @font-face {
   font-family: '鏂规浠垮畫';
-  src: url('./Fonts/FZFSK.TTF');
+  src: url(../assets/Fonts/FZFSK.TTF);
 }
 
 @font-face {
@@ -2247,13 +2245,13 @@
 }
 
 @font-face {
-    font-family: '鏂规涓瓑绾�';
-    src: url('./Fonts/FZZDXK.TTF');
+  font-family: '鏂规涓瓑绾�';
+  src: url('./Fonts/FZZDXK.TTF');
 }
 
 @font-face {
-    font-family: '鏂规鍑嗛泤瀹�';
-    src: url('./Fonts/FZZYSJW.TTF');
+  font-family: 'FZZYS';
+  src: url('./Fonts/FZZYSJW.TTF');
 }
 
 
diff --git a/src/books/toddlerGameImplementation/view/components/chapter002.vue b/src/books/toddlerGameImplementation/view/components/chapter002.vue
index bf60a0b..9a3c1f1 100644
--- a/src/books/toddlerGameImplementation/view/components/chapter002.vue
+++ b/src/books/toddlerGameImplementation/view/components/chapter002.vue
@@ -612,7 +612,7 @@
                             <span class="c-g"> 绛旀锛歿{ item.answer }}</span>
                             <span :class="{ 'c-g': item.isRight, 'c-r': item.isRight == false }">鎮ㄧ殑绛旀锛歿{
                                 item.userAnswer
-                                }}</span>
+                            }}</span>
                             <span class="icon-box-big fl al-c">
                                 <svg v-if="item.isRight" t="1716986419862" class="icon" viewBox="0 0 1820 1024"
                                     version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="18767"
@@ -644,7 +644,7 @@
                         </li>
                         <li v-if="unitQuestionOne.isShowAnswer" class="event-header-text-bc pd-5 fl jc-sa">
                             <span class="c-g"> 绛旀锛�<span v-for="(answer, dindex) in item.answer" :key="dindex">{{ answer
-                            }}銆�</span></span>
+                                    }}銆�</span></span>
                             <span :class="{ 'c-g': item.isRight, 'c-r': item.isRight == false }">鎮ㄧ殑绛旀锛�<span
                                     v-for="(userAnswer, eindex) in item.userAnswer" :key="eindex">{{
                                         userAnswer }}銆�</span></span>
@@ -1192,7 +1192,7 @@
                             <span class="c-g"> 绛旀锛歿{ item.answer }}</span>
                             <span :class="{ 'c-g': item.isRight, 'c-r': item.isRight == false }">鎮ㄧ殑绛旀锛歿{
                                 item.userAnswer
-                                }}</span>
+                            }}</span>
                             <span class="icon-box-big fl al-c">
                                 <svg v-if="item.isRight" t="1716986419862" class="icon" viewBox="0 0 1820 1024"
                                     version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="18767"
@@ -1240,7 +1240,7 @@
                             <span class="c-g"> 绛旀锛歿{ item.answer }}</span>
                             <span :class="{ 'c-g': item.isRight, 'c-r': item.isRight == false }">鎮ㄧ殑绛旀锛歿{
                                 item.userAnswer
-                                }}</span>
+                            }}</span>
                             <span class="icon-box-big fl al-c">
                                 <svg v-if="item.isRight" t="1716986419862" class="icon" viewBox="0 0 1820 1024"
                                     version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="18767"
@@ -1272,7 +1272,7 @@
                         </li>
                         <li v-if="unitQuestionTwo.isShowAnswer" class="event-header-text-bc pd-5 fl jc-sa">
                             <span class="c-g"> 绛旀锛�<span v-for="(answer, dindex) in item.answer" :key="dindex">{{ answer
-                            }}銆�</span></span>
+                                    }}銆�</span></span>
                             <span :class="{ 'c-g': item.isRight, 'c-r': item.isRight == false }">鎮ㄧ殑绛旀锛�<span
                                     v-for="(userAnswer, eindex) in item.userAnswer" :key="eindex">{{
                                         userAnswer }}銆�</span></span>
@@ -1406,9 +1406,9 @@
             </div>
         </div>
         <preView :isClear="dialogVisible" :md5="p_md5" :pdfTitle="somePdfTitleValue" ref="pdfDialogRef"></preView>
-        <dialogExaminations :isClear="dialogVisibleOne" :primaryColor="themeColor"
-            :cardList="interfaceQuestion[questionNum]" v-if="interfaceQuestion" :chapter="3" :page="questionNum"
-            :questionTitle="questionTitleMain" ref="dialogRef">
+        <dialogExaminations :isClear="dialogVisibleOne" :primaryColor="themeColor" :cardList="cardArrayList"
+            v-if="interfaceQuestion" :chapter="3" :page="questionNum" :questionTitle="questionTitleMain"
+            ref="dialogRef">
         </dialogExaminations>
     </div>
 </template>
@@ -1485,6 +1485,7 @@
             themeColor: "#6dcff6",
             questionNum: 0,
             questionTitleMain: "",
+            cardArrayList: [],
             // 棰樼洰
             tableData: {
                 unitOne: {
@@ -1783,6 +1784,17 @@
             },
         };
     },
+    watch: {
+        interfaceQuestion: {
+            handler(newValue) {
+                if (newValue[this.questionNum] != undefined) {
+                    this.cardArrayList = newValue[this.questionNum];
+                }
+            },
+            deep: true,
+            immediate: true
+        },
+    },
     async mounted() {
         const bookQuestion = localStorage.getItem(
             "toddleGame-book-chapter02-tableData"
@@ -1903,8 +1915,6 @@
                 JSON.stringify(this.unitQuestionOne)
             );
         },
-
-
         goUnitTwo() {
             for (let index = 0; index < this.unitQuestionTwo.unitOne.length; index++) {
                 const item = this.unitQuestionTwo.unitOne[index];
@@ -1951,7 +1961,6 @@
                 JSON.stringify(this.unitQuestionTwo)
             );
         },
-
         toUrl(val) {
             if (val) {
                 this.p_md5 = this.chapter001.pdfMd5[val].md5;
diff --git a/src/books/toddlerGameImplementation/view/components/chapter007.vue b/src/books/toddlerGameImplementation/view/components/chapter007.vue
index 53aa380..b8873ca 100644
--- a/src/books/toddlerGameImplementation/view/components/chapter007.vue
+++ b/src/books/toddlerGameImplementation/view/components/chapter007.vue
@@ -1526,7 +1526,7 @@
                         name: "妯″潡涓兟犲矖浣嶈繘闃惰缁�",
                     },
                     2: {
-                        md5: "aba3b273bec8580f316611f82118cb21",
+                        md5: "81517e6df1265de49aa9000c456ef2fc",
                         name: "妯″潡涓兟犲疄璁伐浣滀换鍔�",
                     },
                 },
@@ -1775,7 +1775,7 @@
                 ],
                 unitOneChoice: [
                     {
-                        txt: "鍦�4-6涓湀濠村効鐨勬儏缁儏鎰熶笌绀句細鎬у彂灞曠壒鐐逛腑锛屾弿杩版纭殑鏈夛紙銆�锛夈��",
+                        txt: "鍦�4锝�6涓湀濠村効鐨勬儏缁儏鎰熶笌绀句細鎬у彂灞曠壒鐐逛腑锛屾弿杩版纭殑鏈夛紙銆�锛夈��",
                         isRight: null,
                         answer: ["A", "B", "D"],
                         userAnswer: [],
diff --git a/src/books/toddlerGameImplementation/view/components/index.vue b/src/books/toddlerGameImplementation/view/components/index.vue
index b547e4b..f63b78e 100644
--- a/src/books/toddlerGameImplementation/view/components/index.vue
+++ b/src/books/toddlerGameImplementation/view/components/index.vue
@@ -178,9 +178,10 @@
     }, 500);
 
     // 娴嬭瘯椤甸潰璺宠浆
-    // setTimeout(() => {
-    //   this.gotoPage(6, 118);
-    // }, 500);
+    setTimeout(() => {
+      this.gotoPage(4, 59);
+    }, 500);
+
     // const pageDom = (this.container ? this.container : document)
     //   .querySelector("#app")
     //   .querySelectorAll(".page-box");
@@ -537,6 +538,7 @@
         }
       });
     },
+
     loadPageCallback(entries, observer) {
       entries.forEach(async (entry) => {
         if (entry.isIntersecting) {
@@ -554,11 +556,12 @@
               if (testData && testData[catalog]) {
                 if (testData[catalog][page]) {
                   if (Array.isArray(testData[catalog][page])) {
-                    this.questionDataMap[page] = await getQuestionList(
+                    Vue.set(this.questionDataMap, page, await getQuestionList(
                       page,
                       testData[catalog][page],
                       this.config.activeBook
-                    );
+                    ));
+                    console.log("棰樼洰", this.questionDataMap);
                   } else {
                     const obj = {};
                     for (let key in testData[catalog][page]) {
@@ -568,9 +571,8 @@
                         this.config.activeBook
                       );
                     }
-                    this.questionDataMap[page] = obj;
+                    Vue.set(this.questionDataMap, page, obj);
                   }
-                  console.log("棰樼洰", this.questionDataMap);
                 }
               }
             }
diff --git a/src/components/dialogExaminations/index.vue b/src/components/dialogExaminations/index.vue
index b001916..91ce858 100644
--- a/src/components/dialogExaminations/index.vue
+++ b/src/components/dialogExaminations/index.vue
@@ -367,18 +367,19 @@
       ],
     };
   },
-  watch: {
-    cardList: {
-      handler(newVal) {
-        this.cardData = this.cardList;
-        if (newVal && newVal.length) {
-          this.loading = false;
-        }
-      },
-      immediate: true,
-      deep: true,
+watch: {
+  cardList: {
+    handler(newVal) {
+      if (newVal && newVal.length) {
+        this.cardData = newVal;
+        this.loading = false;
+      }
     },
+    immediate: true,
+    deep: true,
   },
+},
+
   mounted() {
     this.getCollectIdList();
     this.getErrorList();
diff --git a/src/components/pdfview/index.vue b/src/components/pdfview/index.vue
index a712e0f..845bf08 100644
--- a/src/components/pdfview/index.vue
+++ b/src/components/pdfview/index.vue
@@ -1,15 +1,7 @@
 <!-- @format -->
 <template>
-  <el-dialog
-    :visible.sync="localDialogVisible"
-    @open="hadleOpenDialog"
-    width="60vw"
-    top="2vh"
-    append-to-body
-    lock-scroll
-    :show-close="false"
-    class="custom-dialog"
-  >
+  <el-dialog :visible.sync="localDialogVisible" @open="hadleOpenDialog" width="60vw" top="2vh" append-to-body
+    lock-scroll :show-close="false" class="custom-dialog">
     <div slot="title" class="header_title">
       <span>{{ pdfTitle }}</span>
       <span @click="closeDialog"> x </span>
@@ -54,7 +46,7 @@
     return {
       localDialogVisible: false,
       currentPageSrc: "",
-      currentPage: 1,
+      currentPage: 3,
       totalPage: 1,
       viewerCon: null,
       preViewMd5: "",
@@ -92,7 +84,7 @@
   methods: {
     hadleOpenDialog() {
       this.preViewMd5 = this.md5;
-      this.currentPage = 1;
+      this.currentPage = 3;
       this.currentPageSrc = "";
       this.totalPage = 1;
       this.viewerCon?.destroy();
@@ -174,7 +166,7 @@
             if (this.currentPage < this.totalPage) {
               this.currentPage++;
               if (this.currentPage <= this.totalPage) {
-                this.createDom(this.currentPage, ele);
+                this.createDom(this.currentPage);
               }
             }
           }
@@ -182,6 +174,7 @@
         });
       }
     },
+
 
     getFileInfo() {
       // 鑾峰彇鐩綍
@@ -198,8 +191,8 @@
           } catch (error) {
             console.log(error, "pdf杩斿洖鍊肩被鍨嬮敊璇�");
           }
-          Math.min(3, res.totalPages);
-          for (let i = 0; i <= Math.min(3, res.totalPages); i++) {
+          const maxPages = Math.min(3, this.totalPage);
+          for (let i = 0; i < maxPages; i++) {
             this.createDom(i + 1);
           }
           this.loading = false;
@@ -211,6 +204,7 @@
           this.loading = false;
         });
     },
+
     getPageImage(page) {
       const ctx = process.env.VUE_APP_API_URL;
       return (
diff --git a/vue.config.js b/vue.config.js
index 3473d09..dfbae49 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -1,7 +1,10 @@
 const { defineConfig } = require("@vue/cli-service");
 const webpack = require("webpack");
 // 鑾峰彇鎵�鏈変功绫嶅垪琛�
-const bookList = process.env.VUE_APP_BOOK_LIST ? process.env.VUE_APP_BOOK_LIST.split("/") : [];
+const bookList = process.env.VUE_APP_BOOK_LIST
+  ? process.env.VUE_APP_BOOK_LIST.split("/")
+  : [];
+const publicPath = process.env.VUE_APP_PUBLIC_PATH;
 module.exports = defineConfig({
   publicPath: process.env.VUE_APP_PUBLIC_PATH,
   transpileDependencies: true,
@@ -14,14 +17,14 @@
       "access-control-allow-origin": "*",
     },
     client: {
-      overlay: { warnings: false, errors: true }
-    }
+      overlay: { warnings: false, errors: true },
+    },
   },
   configureWebpack: {
     output: {
       library: `app-content`,
       libraryTarget: "umd",
-      chunkLoadingGlobal: `webpackJsonp_app-content`
+      chunkLoadingGlobal: `webpackJsonp_app-content`,
     },
     plugins: [
       new webpack.IgnorePlugin({
@@ -39,9 +42,9 @@
             }
           }
           return false;
-        }
-      })
-    ]
+        },
+      }),
+    ],
   },
   chainWebpack: (config) => {
     config.module
@@ -53,8 +56,19 @@
       .loader("change-prefix-loader")
       .options({
         prefix: "el-",
-        replace: "gp-"
+        replace: "gp-",
       })
       .end();
-  }
+  //   config.module
+  //     .rule("fonts")
+  //     .test(/.(woff|woff2|eot|ttf|otf|TTF)$/)
+  //     .type("asset/resource")
+  //     .use("file-loader")
+  //     .loader("file-loader")
+  //     .options({
+  //       name: "fonts/[name].[hash:8].[ext]", // 杈撳嚭鍒� dist/fonts/ 鐩綍
+  //       publicPath: publicPath, // 纭繚 publicPath 姝g‘
+  //       limit: 0,
+  //     });
+   },
 });
diff --git a/yarn.lock b/yarn.lock
index fc4d9f9..a6efdb3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1085,6 +1085,30 @@
   resolved "https://registry.npmmirror.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
   integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
 
+"@isaacs/balanced-match@^4.0.1":
+  version "4.0.1"
+  resolved "https://registry.npmmirror.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz"
+  integrity sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==
+
+"@isaacs/brace-expansion@^5.0.0":
+  version "5.0.0"
+  resolved "https://registry.npmmirror.com/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz"
+  integrity sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==
+  dependencies:
+    "@isaacs/balanced-match" "^4.0.1"
+
+"@isaacs/cliui@^8.0.2":
+  version "8.0.2"
+  resolved "https://registry.npmmirror.com/@isaacs/cliui/-/cliui-8.0.2.tgz"
+  integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
+  dependencies:
+    string-width "^5.1.2"
+    string-width-cjs "npm:string-width@^4.2.0"
+    strip-ansi "^7.0.1"
+    strip-ansi-cjs "npm:strip-ansi@^6.0.1"
+    wrap-ansi "^8.1.0"
+    wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
+
 "@jridgewell/gen-mapping@^0.3.5":
   version "0.3.5"
   resolved "https://registry.npmmirror.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz"
@@ -2044,6 +2068,11 @@
   resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-5.0.1.tgz"
   integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
 
+ansi-regex@^6.0.1:
+  version "6.1.0"
+  resolved "https://registry.npmmirror.com/ansi-regex/-/ansi-regex-6.1.0.tgz"
+  integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==
+
 ansi-styles@^3.2.1:
   version "3.2.1"
   resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz"
@@ -2064,6 +2093,11 @@
   integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
   dependencies:
     color-convert "^2.0.1"
+
+ansi-styles@^6.1.0:
+  version "6.2.1"
+  resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-6.2.1.tgz"
+  integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
 
 any-promise@^1.0.0:
   version "1.3.0"
@@ -2756,10 +2790,10 @@
     shebang-command "^1.2.0"
     which "^1.2.9"
 
-cross-spawn@^7.0.2, cross-spawn@^7.0.3:
-  version "7.0.3"
-  resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz"
-  integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
+cross-spawn@^7.0.2, cross-spawn@^7.0.3, cross-spawn@^7.0.6:
+  version "7.0.6"
+  resolved "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz"
+  integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
   dependencies:
     path-key "^3.1.0"
     shebang-command "^2.0.0"
@@ -3137,6 +3171,11 @@
   resolved "https://registry.npmmirror.com/duplexer/-/duplexer-0.1.2.tgz"
   integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
 
+eastasianwidth@^0.2.0:
+  version "0.2.0"
+  resolved "https://registry.npmmirror.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz"
+  integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
+
 easy-stack@1.0.1:
   version "1.0.1"
   resolved "https://registry.npmmirror.com/easy-stack/-/easy-stack-1.0.1.tgz"
@@ -3168,6 +3207,11 @@
   version "8.0.0"
   resolved "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz"
   integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
+emoji-regex@^9.2.2:
+  version "9.2.2"
+  resolved "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-9.2.2.tgz"
+  integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
 
 emojis-list@^3.0.0:
   version "3.0.0"
@@ -3622,6 +3666,14 @@
   dependencies:
     flat-cache "^3.0.4"
 
+file-loader@*, file-loader@^6.2.0:
+  version "6.2.0"
+  resolved "https://registry.npmmirror.com/file-loader/-/file-loader-6.2.0.tgz"
+  integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==
+  dependencies:
+    loader-utils "^2.0.0"
+    schema-utils "^3.0.0"
+
 fill-range@^7.0.1:
   version "7.0.1"
   resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz"
@@ -3682,6 +3734,14 @@
   version "1.15.6"
   resolved "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.6.tgz"
   integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
+
+foreground-child@^3.3.1:
+  version "3.3.1"
+  resolved "https://registry.npmmirror.com/foreground-child/-/foreground-child-3.3.1.tgz"
+  integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==
+  dependencies:
+    cross-spawn "^7.0.6"
+    signal-exit "^4.0.1"
 
 form-data@^4.0.0:
   version "4.0.0"
@@ -3822,6 +3882,18 @@
   version "0.4.1"
   resolved "https://registry.npmmirror.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"
   integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
+
+glob@^11.0.0:
+  version "11.0.3"
+  resolved "https://registry.npmmirror.com/glob/-/glob-11.0.3.tgz"
+  integrity sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==
+  dependencies:
+    foreground-child "^3.3.1"
+    jackspeak "^4.1.1"
+    minimatch "^10.0.3"
+    minipass "^7.1.2"
+    package-json-from-dist "^1.0.0"
+    path-scurry "^2.0.0"
 
 glob@^7.1.3:
   version "7.2.3"
@@ -4321,6 +4393,13 @@
   resolved "https://registry.npmmirror.com/isobject/-/isobject-3.0.1.tgz"
   integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==
 
+jackspeak@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.npmmirror.com/jackspeak/-/jackspeak-4.1.1.tgz"
+  integrity sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==
+  dependencies:
+    "@isaacs/cliui" "^8.0.2"
+
 javascript-stringify@^2.0.1:
   version "2.1.0"
   resolved "https://registry.npmmirror.com/javascript-stringify/-/javascript-stringify-2.1.0.tgz"
@@ -4638,6 +4717,11 @@
   dependencies:
     tslib "^2.0.3"
 
+lru-cache@^11.0.0:
+  version "11.1.0"
+  resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-11.1.0.tgz"
+  integrity sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==
+
 lru-cache@^4.0.1:
   version "4.1.5"
   resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-4.1.5.tgz"
@@ -4794,6 +4878,13 @@
   resolved "https://registry.npmmirror.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"
   integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
 
+minimatch@^10.0.3:
+  version "10.0.3"
+  resolved "https://registry.npmmirror.com/minimatch/-/minimatch-10.0.3.tgz"
+  integrity sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==
+  dependencies:
+    "@isaacs/brace-expansion" "^5.0.0"
+
 minimatch@^3.0.4, minimatch@^3.1.1:
   version "3.1.2"
   resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz"
@@ -4817,6 +4908,11 @@
   version "5.0.0"
   resolved "https://registry.npmmirror.com/minipass/-/minipass-5.0.0.tgz"
   integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
+
+minipass@^7.1.2:
+  version "7.1.2"
+  resolved "https://registry.npmmirror.com/minipass/-/minipass-7.1.2.tgz"
+  integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
 
 minizlib@^2.1.1:
   version "2.1.2"
@@ -5162,6 +5258,11 @@
   resolved "https://registry.npmmirror.com/p-try/-/p-try-2.2.0.tgz"
   integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
 
+package-json-from-dist@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.npmmirror.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz"
+  integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==
+
 param-case@^3.0.4:
   version "3.0.4"
   resolved "https://registry.npmmirror.com/param-case/-/param-case-3.0.4.tgz"
@@ -5256,6 +5357,14 @@
   version "1.0.7"
   resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz"
   integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
+
+path-scurry@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmmirror.com/path-scurry/-/path-scurry-2.0.0.tgz"
+  integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==
+  dependencies:
+    lru-cache "^11.0.0"
+    minipass "^7.1.2"
 
 path-to-regexp@0.1.7:
   version "0.1.7"
@@ -5878,6 +5987,14 @@
   dependencies:
     glob "^7.1.3"
 
+rimraf@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.npmmirror.com/rimraf/-/rimraf-6.0.1.tgz"
+  integrity sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==
+  dependencies:
+    glob "^11.0.0"
+    package-json-from-dist "^1.0.0"
+
 run-parallel@^1.1.9:
   version "1.2.0"
   resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz"
@@ -6149,6 +6266,11 @@
   resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-3.0.7.tgz"
   integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
 
+signal-exit@^4.0.1:
+  version "4.1.0"
+  resolved "https://registry.npmmirror.com/signal-exit/-/signal-exit-4.1.0.tgz"
+  integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+
 simple-concat@^1.0.0:
   version "1.0.1"
   resolved "https://registry.npmmirror.com/simple-concat/-/simple-concat-1.0.1.tgz"
@@ -6323,6 +6445,15 @@
   dependencies:
     safe-buffer "~5.1.0"
 
+"string-width-cjs@npm:string-width@^4.2.0":
+  version "4.2.3"
+  resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz"
+  integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+  dependencies:
+    emoji-regex "^8.0.0"
+    is-fullwidth-code-point "^3.0.0"
+    strip-ansi "^6.0.1"
+
 "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
   version "4.2.3"
   resolved "https://registry.npmmirror.com/string-width/-/string-width-4.2.3.tgz"
@@ -6340,6 +6471,22 @@
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^4.0.0"
 
+string-width@^5.0.1, string-width@^5.1.2:
+  version "5.1.2"
+  resolved "https://registry.npmmirror.com/string-width/-/string-width-5.1.2.tgz"
+  integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
+  dependencies:
+    eastasianwidth "^0.2.0"
+    emoji-regex "^9.2.2"
+    strip-ansi "^7.0.1"
+
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
+  version "6.0.1"
+  resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-6.0.1.tgz"
+  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+  dependencies:
+    ansi-regex "^5.0.1"
+
 strip-ansi@^4.0.0:
   version "4.0.0"
   resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-4.0.0.tgz"
@@ -6353,6 +6500,13 @@
   integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
   dependencies:
     ansi-regex "^5.0.1"
+
+strip-ansi@^7.0.1:
+  version "7.1.0"
+  resolved "https://registry.npmmirror.com/strip-ansi/-/strip-ansi-7.1.0.tgz"
+  integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
+  dependencies:
+    ansi-regex "^6.0.1"
 
 strip-eof@^1.0.0:
   version "1.0.0"
@@ -6669,6 +6823,15 @@
   integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
   dependencies:
     punycode "^2.1.0"
+
+url-loader@^4.1.1:
+  version "4.1.1"
+  resolved "https://registry.npmmirror.com/url-loader/-/url-loader-4.1.1.tgz"
+  integrity sha512-3BTV812+AVHHOJQO8O5MkWgZ5aosP7GnROJwvzLS9hWDj00lZ6Z0wNak423Lp9PBZN05N+Jk/N5Si8jRAlGyWA==
+  dependencies:
+    loader-utils "^2.0.0"
+    mime-types "^2.1.27"
+    schema-utils "^3.0.0"
 
 url-parse@^1.5.3:
   version "1.5.10"
@@ -7039,6 +7202,15 @@
   resolved "https://registry.npmmirror.com/wildcard/-/wildcard-2.0.1.tgz"
   integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==
 
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
+  version "7.0.0"
+  resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
+  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+  dependencies:
+    ansi-styles "^4.0.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
+
 wrap-ansi@^3.0.1:
   version "3.0.1"
   resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz"
@@ -7056,6 +7228,15 @@
     string-width "^4.1.0"
     strip-ansi "^6.0.0"
 
+wrap-ansi@^8.1.0:
+  version "8.1.0"
+  resolved "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz"
+  integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
+  dependencies:
+    ansi-styles "^6.1.0"
+    string-width "^5.0.1"
+    strip-ansi "^7.0.1"
+
 wrappy@1:
   version "1.0.2"
   resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz"

--
Gitblit v1.9.1