From a31c8c9d7df2883b38871819239ec914c6e5ae0c Mon Sep 17 00:00:00 2001
From: zhongshujie <2862698242@qq.com>
Date: 星期一, 23 十二月 2024 11:55:58 +0800
Subject: [PATCH] 民航服务基本技能视频资源插入

---
 src/books/aviationBasicSkills/view/components/chapter008.vue     |  193 ++++++
 src/books/aviationBasicSkills/assets/main.less                   |   65 +
 src/books/aviationBasicSkills/view/components/chapter001.vue     |  101 +++
 src/books/aviationBasicSkills/view/components/chapter006.vue     |  196 ++++++
 src/books/aviationBasicSkills/view/components/chapter003.vue     |  126 ++++
 src/books/civilAviation/view/components/index.vue                |    2 
 src/books/aviationBasicSkills/view/components/chapter005.vue     |  178 +++++
 src/books/aviationBasicSkills/assets/images/icon/heart.png       |    0 
 src/books/aviationBasicSkills/assets/images/icon/heart-check.png |    0 
 src/books/aviationBasicSkills/view/components/index.vue          |    2 
 src/books/aviationBasicSkills/view/components/chapter002.vue     |  262 ++++++++
 src/books/aviationBasicSkills/view/components/chapter007.vue     |  251 ++++++++
 src/books/aviationSafety/assets/main.less                        |    6 
 src/books/aviationBasicSkills/view/components/chapter004.vue     |  267 +++++++++
 src/books/artAndDance/view/components/index.vue                  |    2 
 src/App.vue                                                      |    2 
 16 files changed, 1,564 insertions(+), 89 deletions(-)

diff --git a/src/App.vue b/src/App.vue
index 90b037c..3c02915 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -101,7 +101,7 @@
       process.env.VUE_APP_RESOURCE_CTX +
         (process.env.VUE_APP_ENV == "product"
           ? process.env.VUE_APP_BOOK_ID
-          : "aviationSafety")
+          : "aviationBasicSkills")
       );
 
       // this.activeBook = await this.config.getBookConfig(
diff --git a/src/books/artAndDance/view/components/index.vue b/src/books/artAndDance/view/components/index.vue
index 6636390..f70373f 100644
--- a/src/books/artAndDance/view/components/index.vue
+++ b/src/books/artAndDance/view/components/index.vue
@@ -922,7 +922,7 @@
         const bottomGap = playVudio.getBoundingClientRect().bottom;
         const topGap = playVudio.getBoundingClientRect().top;
         if (bottomGap < 0 || topGap > window.innerHeight) {
-          playVudio.requestPictureInPicture();
+          if(playVudio.readyState) playVudio.requestPictureInPicture();
         }
       }
     }
diff --git a/src/books/aviationBasicSkills/assets/images/icon/heart-check.png b/src/books/aviationBasicSkills/assets/images/icon/heart-check.png
new file mode 100644
index 0000000..74d469c
--- /dev/null
+++ b/src/books/aviationBasicSkills/assets/images/icon/heart-check.png
Binary files differ
diff --git a/src/books/aviationBasicSkills/assets/images/icon/heart.png b/src/books/aviationBasicSkills/assets/images/icon/heart.png
new file mode 100644
index 0000000..7817ec4
--- /dev/null
+++ b/src/books/aviationBasicSkills/assets/images/icon/heart.png
Binary files differ
diff --git a/src/books/aviationBasicSkills/assets/main.less b/src/books/aviationBasicSkills/assets/main.less
index dde5de9..0d4f742 100644
--- a/src/books/aviationBasicSkills/assets/main.less
+++ b/src/books/aviationBasicSkills/assets/main.less
@@ -422,12 +422,12 @@
     }
 
 
-    .w40{
+    .w40 {
         width: 40% !important;
     }
 
-    .w25{
-        width: 25% ;
+    .w25 {
+        width: 25%;
     }
 
     .w20 {
@@ -450,7 +450,7 @@
     .table-tr-bc {
         background-color: #EBF1F8;
 
-        p{
+        p {
             text-indent: 0em;
             line-height: 20px;
         }
@@ -470,21 +470,23 @@
         width: 90%;
         background-color: transparent;
         border: 0;
-        &:focus {
-          outline: none;
-        }
-      }
 
-      
+        &:focus {
+            outline: none;
+        }
+    }
+
+
     .input-bottom-border {
         width: 15%;
         background-color: transparent;
         border: 0;
         border-bottom: 1px solid #000;
+
         &:focus {
-          outline: none;
+            outline: none;
         }
-      }
+    }
 
     // 缁〃
     .continued {
@@ -493,6 +495,47 @@
     }
 
 
+
+    // 瑙嗛  
+    .video-box-cover {
+        border: 1px dashed #895B2E;
+        padding: 2% 2%;
+    }
+
+    .video-box {
+        margin: 20px 0 20px 8%;
+        border: 1px dashed #895B2E;
+        padding: 2% 2%;
+    }
+
+    .video-box-left {
+        margin: 20px 8% 20px 0;
+        border: 1px dashed #895B2E;
+        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%;
+    }
+
+
     .text-rights {
         width: 230px;
         float: right;
diff --git a/src/books/aviationBasicSkills/view/components/chapter001.vue b/src/books/aviationBasicSkills/view/components/chapter001.vue
index 98b8588..ec145fa 100644
--- a/src/books/aviationBasicSkills/view/components/chapter001.vue
+++ b/src/books/aviationBasicSkills/view/components/chapter001.vue
@@ -213,6 +213,22 @@
                     <p class="p-even">
                         绗笁锛屾満鍦哄疄琛屽睘鍦扮鐞嗐�傛寜鐓ф斂浼佸垎寮�銆佸睘鍦扮鐞嗙殑鍘熷垯锛屾垜鍥藉90涓満鍦鸿繘琛屼簡灞炲湴鍖栫鐞嗘敼闈┿�傛皯鑸�诲眬鐩存帴绠$悊鐨勬満鍦轰笅鏀炬墍鍦ㄧ渷锛堝尯銆佸競锛夌鐞嗭紝鐩稿叧璧勪骇銆佽礋鍊哄拰浜哄憳涓�骞跺垝杞紱姘戣埅鎬诲眬涓庡湴鏂规斂搴滆仈鍚堢鐞嗙殑姘戠敤鏈哄満鍜屽啗姘戝悎鐢ㄦ満鍦猴紝灞炴皯鑸�诲眬绠$悊鐨勮祫浜с�佽礋鍊哄強鐩稿叧浜哄憳涓�骞跺垝杞墍鍦ㄧ渷锛堝尯銆佸競锛夌鐞嗐�傞閮芥満鍦恒�佽タ钘忚嚜娌诲尯鍐呯殑姘戠敤鏈哄満缁х画鐢辨皯鑸�诲眬绠$悊銆�2004骞�7鏈�8鏃ワ紝闅忕潃鐢樿們鐪佸唴鐨勬皯鐢ㄦ満鍦虹Щ浜ゅ湴鏂癸紝鏈哄満灞炲湴鍖栫鐞嗘敼闈╁叏闈㈠畬鎴愶紝涔熸爣蹇楃潃姘戣埅浣撳埗鏀归潻鍏ㄩ潰瀹屾垚銆�
                     </p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathOne" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩竴 浠诲姟涓�</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '77cad1fcb6a581d2fce136aa6aa9c4f8') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-01')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h3 id="c002" class="p-even">
                         <span class="zt-h4">浜屻��</span><span class="qyls-h4">鎴戝浗姘戠敤鑸┖杩愯緭涓氱殑鐜扮姸</span>
                     </h3>
@@ -637,6 +653,22 @@
                     <p class="p-even">
                         姘戣埅鏈嶅姟鐨勯珮鏍囧噯锛岄渶瑕佷粠涓氫汉鍛樺叿澶囬珮绱犺川銆傝嚜浠庢皯鑸涓氬垱寤轰互鏉ワ紝姘戣埅鍛樺伐鐗瑰埆鏄┖涓箻鍔′汉鍛樼殑楂樼礌璐紝宸蹭负骞垮ぇ鏃呭鐣欎笅浜嗗崄鍒嗚壇濂界殑琛屼笟鍗拌薄銆傚湪鐜颁唬姘戣埅鏈嶅姟涓紝鏃呭瀵规皯鑸憳宸ョ殑绱犺川鎻愬嚭浜嗘洿楂樼殑瑕佹眰锛屾皯鑸憳宸ラ渶瑕佸湪鑷韩鐭ヨ瘑銆佽瑷�銆佺ぜ浠�佽涓虹瓑鏂归潰鎻愰珮绱犺川鍜屼慨涓恒��
                     </p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathTwo" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩竴 浠诲姟浜�</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo01 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == 'b124a569b4c3d11745db152f26b0b9f1') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-02')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h3 id="c007" class="p-even">
                         <span class="zt-h4">浜斻��</span><span class="qyls-h4">姘戣埅鏈嶅姟鐨勫垎绫�</span>
                     </h3>
@@ -1561,6 +1593,8 @@
 </template>
 
 <script>
+import { getResourcePath } from "@/assets/methods/resources";
+import { getCollectResource, setCollectResource } from "@/assets/methods/resources";
 export default {
     name: "chapterOne",
     props: {
@@ -1570,6 +1604,15 @@
     },
     data() {
         return {
+            collectImg: require("../../assets/images/icon/heart.png"),
+            collectCheck: require("../../assets/images/icon/heart-check.png"),
+            videoPathOne: "",
+            videoPathTwo: "",
+            collectResourceList: [],
+            chapterData: {
+                isCollectVideo: false,
+                isCollectVideo01: false,
+            },
             questionData: {
                 teskOne: {
                     one: "",
@@ -1649,7 +1692,7 @@
             },
         };
     },
-    mounted() {
+    async mounted() {
         const bookQuestion = localStorage.getItem("aviation-book-chapter01");
         if (bookQuestion) {
             this.questionData = JSON.parse(bookQuestion);
@@ -1659,8 +1702,64 @@
             this.tableData = JSON.parse(bookTableData);
         }
 
+        const choiceQuestion = localStorage.getItem("aviation-book-chapter01-Data");
+        if (choiceQuestion) {
+            this.chapterData = JSON.parse(choiceQuestion);
+        }
+
+        this.getVidoePath();
+        this.collectResourceList = await getCollectResource(this.config.activeBook.bookId)
     },
     methods: {
+        async getVidoePath() {
+            this.videoPathOne = await getResourcePath(
+                "77cad1fcb6a581d2fce136aa6aa9c4f8"
+            );
+            this.videoPathTwo = await getResourcePath(
+                "b124a569b4c3d11745db152f26b0b9f1"
+            );
+        },
+        handleCollect(e) {
+            if (e == 'video-01') {
+                this.handleCollectResource("77cad1fcb6a581d2fce136aa6aa9c4f8", "77cad1fcb6a581d2fce136aa6aa9c4f8", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩竴 浠诲姟涓�')
+                this.chapterData.isCollectVideo = !this.chapterData.isCollectVideo
+            } else if (e == 'video-02') {
+                this.handleCollectResource("b124a569b4c3d11745db152f26b0b9f1", "b124a569b4c3d11745db152f26b0b9f1", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩竴 浠诲姟浜�')
+                this.chapterData.isCollectVideo01 = !this.chapterData.isCollectVideo01
+            }
+            this.handleChapterData();
+        },
+
+        //璧勬簮鏀惰棌浜嬩欢
+        // 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)
+        },
+        handleChapterData() {
+            localStorage.setItem(
+                "aviation-book-chapter01-Data",
+                JSON.stringify(this.chapterData)
+            );
+        },
+
+
+        
         setBookQuestion() {
             localStorage.setItem(
                 "aviation-book-chapter01",
diff --git a/src/books/aviationBasicSkills/view/components/chapter002.vue b/src/books/aviationBasicSkills/view/components/chapter002.vue
index 0223c27..4f0e710 100644
--- a/src/books/aviationBasicSkills/view/components/chapter002.vue
+++ b/src/books/aviationBasicSkills/view/components/chapter002.vue
@@ -2,7 +2,7 @@
     <div class="chapter" num="3">
         <!-- 绗簩鍗曞厓灏侀潰 -->
         <div class="page-box" page="33">
-            <div v-if="showPageList.indexOf(32) > -1">
+            <div v-if="showPageList.indexOf(33) > -1">
                 <div style="background-color: #F99F1D; padding-top: 50px">
                     <h1 class="fl jc-c" id="a007"><img class="" style="width: 80%; " alt=""
                             src="../../assets/images/xm2.jpg" /></h1>
@@ -21,6 +21,22 @@
                         <p class="bj-1-zt">2.鍏峰楂樼灮杩滅灘鐨勯暱杩滃彂灞曠溂鍏夊拰澶у眬鎰忚瘑銆�</p>
                         <p class="bj-1-zt">3.鍏绘垚姹傜湡鍔″疄銆佸紑鎷撳垱鏂扮殑鑱屼笟绮剧銆�</p>
                         <p><br></p>
+                        <div class="video-box-cover">
+                            <p class="center text">
+                                <video :src="videoPathOne" webkit-playsinline="true" x-webkit-airplay="true"
+                                    playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                    x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                    style=" border-radius: 10px; "></video>
+                            </p>
+                            <p class="center videoname">
+                                <span>瑙嗛锛氶」鐩簩 瀵煎叆_1 </span>
+                                <el-tooltip class="item" effect="dark"
+                                    :content="chapterData.isCollectVideo ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                    <img :src="collectResourceList.findIndex(item => item.id == '0ad0533dd0c9b76fa61dfc15448c3701') > -1 ? collectCheck : collectImg"
+                                        alt="" class="collect-btn" @click="handleCollect('video-01')" />
+                                </el-tooltip>
+                            </p>
+                        </div>
                         <p><br></p>
                     </div>
                 </div>
@@ -28,7 +44,7 @@
         </div>
         <!-- 26椤� -->
         <div class="page-box" page="34">
-            <div v-if="showPageList.indexOf(33) > -1">
+            <div v-if="showPageList.indexOf(34) > -1">
                 <ul class="fl al-c pad-t-55 pad-l-60 mb-45">
                     <li class="header-left-Number">026</li>
                     <li class="header-left-text">姘戣埅鏈嶅姟鍩烘湰鎶�鑳斤紙绗� 2 鐗堬級</li>
@@ -55,7 +71,7 @@
         </div>
         <!-- 27椤� -->
         <div class="page-box" page="35">
-            <div v-if="showPageList.indexOf(34) > -1">
+            <div v-if="showPageList.indexOf(35) > -1">
                 <ul class="fl al-c jc-fe mr-70 pad-t-55 mb-45">
                     <img class="headerImg mr-10" src="../../assets/images/headerlogo.png" alt="">
                     <li class="headerText">椤圭洰浜�</li>
@@ -72,6 +88,22 @@
                         绗簩锛岃鏈夋湇鍔¤蹇点�傛湇鍔¤川閲忎笌姘村钩鏄皯鑸紒涓氱殑鈥滅敓瀛樼嚎鈥濓紝姘戣埅鍛樺伐搴旂儹鎯呬负鏃呭鏈嶅姟锛屾�ユ梾瀹㈡墍鎬ワ紝甯梾瀹㈡墍闇�锛岀儹鐖卞姵鍔紝涓嶆�曞悆鑻︼紝涓烘梾瀹㈡彁渚涘共鍑�銆佽垝閫傘�佹剦蹇殑鏃呰鐜銆傛皯鑸憳宸ョ殑鏍囧噯灏辨槸浣胯嚜宸辩殑鏈嶅姟璐ㄩ噺涓庝笘鐣岃埅绌烘湇鍔℃爣鍑嗘帴杞紝鏈嶅姟鐨勬渶楂樿拷姹備笉鏄�滄弧鎰忊�濓紝鑰屾槸鍒涚珛鈥滃搧鐗屸�濓紝浣夸紒涓氳幏寰椻�滃搧鐗屾晥搴斺�濄��
                     </p>
                     <p class="p-odd">绗笁锛岃鏈夋晥鐩婃剰璇嗐�傛病鏈夋晥鐩婄殑浼佷笟鏃犳硶鐢熷瓨銆傛病鏈夌粡娴庡疄鍔涚殑浼佷笟锛屾嬁浠�涔堝簲瀵瑰浗闄呭寲鐨勭珵浜夛紵鎵�浠ワ紝鏁堢泭鎰忚瘑蹇呴』娣卞叆浜哄績锛屾晥鐩婂繀椤绘垚涓烘皯鑸粠涓氫汉鍛樺伐浣滅殑鐩爣銆�</p>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathTwo" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩簩 浠诲姟1 </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo01 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '74178b45d436d5adc731024742f169fa') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-02')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h4 id="d036">锛堜簩锛夊己鍖栬亴涓氱邯寰�</h4>
                     <p class="p-odd">
                         鑱屼笟绾緥鏄湪鐗瑰畾鐨勮亴涓氭椿鍔ㄨ寖鍥村唴浠庝簨鏌愮鑱屼笟鐨勪汉蹇呴』鍏卞悓閬靛畧鐨勮涓哄噯鍒欍�傚畠鍖呮嫭鍔冲姩绾緥銆佺粍缁囩邯寰嬨�佽储缁忕邯寰嬨�佺兢浼楃邯寰嬨�佷繚瀵嗙邯寰嬨�佸浼犵邯寰嬨�佸浜嬬邯寰嬬瓑鍩烘湰绾緥瑕佹眰锛屼互鍙婂悇琛屽悇涓氱殑鐗规畩绾緥瑕佹眰銆傚叾鐗圭偣鏄叿鏈夋槑纭殑瑙勫畾鎬у拰涓�瀹氱殑寮哄埗鎬с�傛皯鑸憳宸ョ殑鑱屼笟绾緥闆嗕腑浣撶幇鍦ㄣ�婁腑鍗庝汉姘戝叡鍜屽浗姘戠敤鑸┖娉曘�嬬瓑娉曡鍒跺害涓紝瀹冧滑鏄垜鍥芥皯鑸�70澶氬勾鏉ョ粡楠屾暀璁殑缁撴櫠锛屽叿鏈夊緢寮虹殑閽堝鎬у拰瑙勮寖鎬с�傛皯鑸憳宸ュ繀椤讳弗鏍奸伒瀹堬紝涓嶅緱鏈変笣姣噲鎬狅紝鍚﹀垯锛屽氨浼氬嵄鍙婇琛屽畨鍏紝缁欏浗瀹跺拰浜烘皯鐢熷懡璐骇甯︽潵涓ラ噸鍗卞銆�
@@ -443,9 +475,10 @@
                     </table>
                     <p class="left"><span class="bj2">鎷撳睍璁粌鈻�</span></p>
                     <p class="p-odd">
-                        1.宸ヤ綔涓細閬囧埌涓庤嚜韬埄鐩婄浉鍐茬獊鐨勬椂鍊欙紝姘戣埅鍛樺伐搴旇�冭檻鑷繁鐨勮涓烘槸鍚︾鍚堝浗瀹跺拰绀句細鐨勫埄鐩娿��<input v-model="questionData.teskOne.four" class="input-bottom-border w40 fz-14"
-                        @change="setBookQuestion" />銆佺鍚堟皯鑸矖浣嶇殑鑱屼笟閬撳痉銆�<input v-model="questionData.teskOne.five" class="input-bottom-border w40 fz-14"
-                        @change="setBookQuestion" />銆�
+                        1.宸ヤ綔涓細閬囧埌涓庤嚜韬埄鐩婄浉鍐茬獊鐨勬椂鍊欙紝姘戣埅鍛樺伐搴旇�冭檻鑷繁鐨勮涓烘槸鍚︾鍚堝浗瀹跺拰绀句細鐨勫埄鐩娿��<input v-model="questionData.teskOne.four"
+                            class="input-bottom-border w40 fz-14" @change="setBookQuestion" />銆佺鍚堟皯鑸矖浣嶇殑鑱屼笟閬撳痉銆�<input
+                            v-model="questionData.teskOne.five" class="input-bottom-border w40 fz-14"
+                            @change="setBookQuestion" />銆�
                     </p>
                     <p class="p-odd">2.姘戣埅鍛樺伐鑱屼笟閬撳痉鐨勮姹傛湁鍝簺锛�</p>
                     <textarea v-model="questionData.teskOne.six" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
@@ -511,6 +544,22 @@
                     </p>
                     <h5 id="e006">2.杈冨己鐨勫璇氦娴佽兘鍔�</h5>
                     <p class="p-odd">姘戣埅鏈嶅姟琛屼笟鐨勫悇绉嶅矖浣嶏紝濡傚畨妫�銆佺┖涔樸�佸�兼満銆佺エ鍔$瓑锛岄殢鏃跺彲鑳介亣鍒颁笘鐣屽悇鍥界殑鏃呭锛屾墍浠ワ紝姘戣埅鍛樺伐闇�瑕佸叿澶囪緝寮虹殑澶栬浜ゆ祦鑳藉姏銆�</p>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathThree" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩簩 浠诲姟2 </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo02 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '088eaf1382e9ed4b330a1b3fa93f12e4') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-03')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h4 id="d052">锛堜笁锛夎绠楁満杩愮敤鑳藉姏</h4>
                     <p class="p-odd">
                         闅忕潃鎴戝浗缁忔祹鐨勯閫熷彂灞曪紝姘戠敤鑸┖杩愯緭涓氬憟鐜拌摤鍕冨彂灞曠殑鎬佸娍銆傝绠楁満鎶�鏈殑搴旂敤鑼冨洿瓒婃潵瓒婂箍锛屾皯鑸緷璧栬绠楁満澶勭悊涓氬姟鐨勭▼搴︿篃瓒婃潵瓒婇珮銆傚悇涓昏鏈哄満閮戒娇鐢ㄦ満鍦虹患鍚堜俊鎭绠楁満绠$悊绯荤粺锛屽疄鐜颁簡鍔炲叕銆佷笟鍔″拰鏈嶅姟鐨勮嚜鍔ㄥ寲锛屽缃戜笂璁㈢エ銆佸�兼満绛夈�傛墍浠ワ紝璁$畻鏈鸿繍鐢ㄨ兘鍔涙槸涓�椤圭浉褰撻噸瑕佺殑鍩烘湰鎶�鑳姐��
@@ -571,7 +620,9 @@
                 </div>
             </div>
         </div>
+
         <!-- 37椤� -->
+
         <div class="page-box" page="45">
             <div v-if="showPageList.indexOf(45) > -1">
                 <ul class="fl al-c jc-fe mr-70 pad-t-55 mb-45">
@@ -964,6 +1015,22 @@
                     <p class="p-even td-0">
                         淇濈鍛樸�佹补鏂欏寲楠屽憳銆佹补鏂欏徃娉靛憳銆侀鏈哄姞娌瑰憳銆佹补鏂欒閲忕粺璁″憳銆佹补鏂欑數姘斾华琛ㄥ憳銆佹补鏂欑壒绉嶈澶囦慨鐞嗗憳宸ョ銆�
                     </p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathFour" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩簩 浠诲姟3 </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo03 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '1b93521d7ff9abe65a4d6b53e4facc84') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-04')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h4 id="d061" class="p-even">锛堜竴锛夐壌瀹氭柟寮�</h4>
                     <p class="p-even">閴村畾鍒嗙悊璁虹煡璇嗗拰鎿嶄綔鎶�鑳借�冩牳锛岄噰鐢ㄩ棴鍗风瑪璇曞舰寮忥紝鐞嗚鐭ヨ瘑鍜屾搷浣滄妧鑳借�冩牳鏃堕棿鍧囦负90鍒嗛挓銆�</p>
                     <h4 id="d062" class="p-even">锛堜簩锛夐壌瀹氭爣鍑�</h4>
@@ -1275,6 +1342,22 @@
                     <p class="p-even">
                         鐒﹁檻鏄埅绌烘湇鍔′汉鍛樺父瑙佺殑鎯呯华鍥版壈锛屼骇鐢熺殑鍘熷洜澶氭簮浜庡伐浣溿�佺敓娲讳笌浜洪檯浜ゅ線鏂归潰鎵�閬彈鍒扮殑鎸姌銆備緥濡傦紝鍙戠敓绾犵悍浜嬩欢锛屼綔涓轰笌鏃呭鐩存帴鎺ヨЕ銆侀潰瀵归潰鏈嶅姟鐨勮埅绌烘湇鍔′汉鍛橈紙鍖呮嫭绌轰腑涔樺姟鍛樺拰鍦伴潰鏈嶅姟浜哄憳锛夛紝灏卞鍦ㄧ煕鐩炬渶鍓嶆部锛屽績鐞嗗帇鍔涚壒鍒ぇ锛屾瀬鏄撳紩鍙戠劍铏戞儏缁�傝繃搴︾殑鎴栨寔涔呯殑鐒﹁檻浼氬奖鍝嶈埅绌烘湇鍔′汉鍛樼殑姝e父蹇冪悊娲诲姩锛屽鑷村績鐞嗙柧鐥咃紝浠庤�屼弗閲嶅奖鍝嶄粬浠殑姝e父鐢熸椿鍜屽伐浣溿��
                     </p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathFive" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩簩 浠诲姟4 </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo04 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == 'a4835abeeb56542fbd5efe47d3310b18') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-05')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                 </div>
             </div>
         </div>
@@ -1697,14 +1780,16 @@
                 </ul>
                 <div class="bodystyle">
                     <p class="left p-even"><span class="bj2">鎷撳睍璁粌鈻�</span></p>
-                    <p class="p-even">1.蹇冪悊绱犺川鏄敱蹇冪悊娼滆兘銆�<input v-model="questionData.teskFour.four" class="input-bottom-border fz-14"
-                        @change="setBookQuestion" />銆佸績鐞嗙壒鐐广��<input v-model="questionData.teskFour.five" class="input-bottom-border  fz-14"
-                        @change="setBookQuestion" />銆�<input v-model="questionData.teskFour.six" class="input-bottom-border  fz-14"
-                        @change="setBookQuestion" />缁勬垚鐨勩��</p>
-                    <p class="p-even">2.鍐锋紶鐨勮〃鐜板寘鎷己涔忕Н鏋佺殑璁ょ煡鍔ㄦ満銆�<input v-model="questionData.teskFour.seven" class="input-bottom-border  fz-14"
-                        @change="setBookQuestion" />銆佹儏鎰熸贰婕犮��<input v-model="questionData.teskFour.eight" class="input-bottom-border  fz-14"
-                        @change="setBookQuestion" />銆佹剰蹇楄“閫�銆�<input v-model="questionData.teskFour.nine" class="input-bottom-border  fz-14"
-                        @change="setBookQuestion" />銆�</p>
+                    <p class="p-even">1.蹇冪悊绱犺川鏄敱蹇冪悊娼滆兘銆�<input v-model="questionData.teskFour.four"
+                            class="input-bottom-border fz-14" @change="setBookQuestion" />銆佸績鐞嗙壒鐐广��<input
+                            v-model="questionData.teskFour.five" class="input-bottom-border  fz-14"
+                            @change="setBookQuestion" />銆�<input v-model="questionData.teskFour.six"
+                            class="input-bottom-border  fz-14" @change="setBookQuestion" />缁勬垚鐨勩��</p>
+                    <p class="p-even">2.鍐锋紶鐨勮〃鐜板寘鎷己涔忕Н鏋佺殑璁ょ煡鍔ㄦ満銆�<input v-model="questionData.teskFour.seven"
+                            class="input-bottom-border  fz-14" @change="setBookQuestion" />銆佹儏鎰熸贰婕犮��<input
+                            v-model="questionData.teskFour.eight" class="input-bottom-border  fz-14"
+                            @change="setBookQuestion" />銆佹剰蹇楄“閫�銆�<input v-model="questionData.teskFour.nine"
+                            class="input-bottom-border  fz-14" @change="setBookQuestion" />銆�</p>
                     <p class="left p-even"><span class="bj2">鑷垜璇勪环鈻�</span></p>
                     <textarea v-model="questionData.teskFour.ten" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
                         class="fz-16 ml-9 block2 textarea-box" @change="setBookQuestion"></textarea>
@@ -1911,6 +1996,38 @@
                         <p>鏍规嵁鏈换鍔℃墍瀛︼紝瀵圭収姘戣埅鍛樺伐韬綋绱犺川鏍囧噯锛屽皬缁勭爺璁ㄥ浣曚繚鎸佸仴搴风殑浣撻瓌銆�</p>
                         <textarea v-model="questionData.teskFive.two" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
                             class="fz-16 ml-2e  textarea-box" @change="setBookQuestion"></textarea>
+                    </div>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathSix" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩簩 浠诲姟5 浠板崸璧峰潗 </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo05 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '84b6c6467a3be2a41452dcc2b5e6134a') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-06')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathSeven" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩簩 浠诲姟5 浣撳墠灞�</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo06 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == 'd804cf70e2973630865e75ad0ba89f96') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-07')" />
+                            </el-tooltip>
+                        </p>
                     </div>
                     <div class="bj4 ml-9">
                         <div class="fl al-c mb-10">
@@ -2132,10 +2249,10 @@
                     <p class="left p-even"><span class="bj2">鎷撳睍璁粌鈻�</span></p>
                     <p class="p-even">璇疯繘琛岃韩浣撳仴搴疯嚜鎴戣瘎浼般��</p>
                     <textarea v-model="questionData.teskFive.three" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                    class="fz-16 textarea-box-left" @change="setBookQuestion"></textarea>
+                        class="fz-16 textarea-box-left" @change="setBookQuestion"></textarea>
                     <p class="left p-even"><span class="bj2">鑷垜璇勪环鈻�</span></p>
                     <textarea v-model="questionData.teskFive.four" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                    class="fz-16 textarea-box-left" @change="setBookQuestion"></textarea>
+                        class="fz-16 textarea-box-left" @change="setBookQuestion"></textarea>
                 </div>
             </div>
         </div>
@@ -2144,6 +2261,8 @@
 
 
 <script>
+import { getResourcePath } from "@/assets/methods/resources";
+import { getCollectResource, setCollectResource } from "@/assets/methods/resources";
 export default {
     name: "chapterTwo",
     props: {
@@ -2153,6 +2272,25 @@
     },
     data() {
         return {
+            collectImg: require("../../assets/images/icon/heart.png"),
+            collectCheck: require("../../assets/images/icon/heart-check.png"),
+            videoPathOne: "",
+            videoPathTwo: "",
+            videoPathThree: "",
+            videoPathFour: "",
+            videoPathFive: "",
+            videoPathSix: "",
+            videoPathSeven: "",
+            collectResourceList: [],
+            chapterData: {
+                isCollectVideo: false,
+                isCollectVideo01: false,
+                isCollectVideo02: false,
+                isCollectVideo03: false,
+                isCollectVideo04: false,
+                isCollectVideo05: false,
+                isCollectVideo06: false,
+            },
             questionData: {
                 teskOne: {
                     one: "",
@@ -2160,8 +2298,8 @@
                     three: "",
                     four: "",
                     five: "",
-                    six:"",
-                    seven:"",
+                    six: "",
+                    seven: "",
                 },
                 teskTwo: {
                     one: "",
@@ -2275,18 +2413,104 @@
             },
         };
     },
-    mounted() {
+    async mounted() {
         const bookQuestion = localStorage.getItem("aviation-book-chapter02");
         if (bookQuestion) {
             this.questionData = JSON.parse(bookQuestion);
         }
+
         const bookTableData = localStorage.getItem("aviation-book-chapter02-tableData");
         if (bookTableData) {
             this.tableData = JSON.parse(bookTableData);
         }
 
+        const choiceQuestion = localStorage.getItem("aviation-book-chapter02-Data");
+        if (choiceQuestion) {
+            this.chapterData = JSON.parse(choiceQuestion);
+        }
+
+        this.getVidoePath();
+        this.collectResourceList = await getCollectResource(this.config.activeBook.bookId)
     },
     methods: {
+        async getVidoePath() {
+            this.videoPathOne = await getResourcePath(
+                "0ad0533dd0c9b76fa61dfc15448c3701"
+            );
+            this.videoPathTwo = await getResourcePath(
+                "74178b45d436d5adc731024742f169fa"
+            );
+            this.videoPathThree = await getResourcePath(
+                "088eaf1382e9ed4b330a1b3fa93f12e4"
+            );
+            this.videoPathFour = await getResourcePath(
+                "1b93521d7ff9abe65a4d6b53e4facc84"
+            );
+            this.videoPathFive = await getResourcePath(
+                "a4835abeeb56542fbd5efe47d3310b18"
+            );
+            this.videoPathSix = await getResourcePath(
+                "84b6c6467a3be2a41452dcc2b5e6134a"
+            );
+            this.videoPathSeven = await getResourcePath(
+                "d804cf70e2973630865e75ad0ba89f96"
+            );
+        },
+        handleCollect(e) {
+            if (e == 'video-01') {
+                this.handleCollectResource("0ad0533dd0c9b76fa61dfc15448c3701", "0ad0533dd0c9b76fa61dfc15448c3701", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩簩 瀵煎叆_1')
+                this.chapterData.isCollectVideo = !this.chapterData.isCollectVideo
+            } else if (e == 'video-02') {
+                this.handleCollectResource("74178b45d436d5adc731024742f169fa", "74178b45d436d5adc731024742f169fa", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩簩 浠诲姟1')
+                this.chapterData.isCollectVideo01 = !this.chapterData.isCollectVideo01
+            } else if (e == 'video-03') {
+                this.handleCollectResource("088eaf1382e9ed4b330a1b3fa93f12e4", "088eaf1382e9ed4b330a1b3fa93f12e4", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩簩 浠诲姟2')
+                this.chapterData.isCollectVideo02 = !this.chapterData.isCollectVideo02
+            } else if (e == 'video-04') {
+                this.handleCollectResource("1b93521d7ff9abe65a4d6b53e4facc84", "1b93521d7ff9abe65a4d6b53e4facc84", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩簩 浠诲姟3')
+                this.chapterData.isCollectVideo03 = !this.chapterData.isCollectVideo03
+            } else if (e == 'video-05') {
+                this.handleCollectResource("a4835abeeb56542fbd5efe47d3310b18", "a4835abeeb56542fbd5efe47d3310b18", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩簩 浠诲姟4')
+                this.chapterData.isCollectVideo04 = !this.chapterData.isCollectVideo04
+            } else if (e == 'video-06') {
+                this.handleCollectResource("84b6c6467a3be2a41452dcc2b5e6134a", "84b6c6467a3be2a41452dcc2b5e6134a", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩簩 浠诲姟5 浠板崸璧峰潗')
+                this.chapterData.isCollectVideo05 = !this.chapterData.isCollectVideo05
+            } else if (e == 'video-07') {
+                this.handleCollectResource("d804cf70e2973630865e75ad0ba89f96", "d804cf70e2973630865e75ad0ba89f96", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩簩 浠诲姟5 浣撳墠灞�')
+                this.chapterData.isCollectVideo06 = !this.chapterData.isCollectVideo06
+            }
+            this.handleChapterData();
+        },
+
+        //璧勬簮鏀惰棌浜嬩欢
+        // 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)
+        },
+        handleChapterData() {
+            localStorage.setItem(
+                "aviation-book-chapter02-Data",
+                JSON.stringify(this.chapterData)
+            );
+        },
+        
+
         setBookQuestion() {
             localStorage.setItem(
                 "aviation-book-chapter02",
diff --git a/src/books/aviationBasicSkills/view/components/chapter003.vue b/src/books/aviationBasicSkills/view/components/chapter003.vue
index 620f80d..592f3d0 100644
--- a/src/books/aviationBasicSkills/view/components/chapter003.vue
+++ b/src/books/aviationBasicSkills/view/components/chapter003.vue
@@ -19,8 +19,22 @@
                         <p class="bj-1-zt">1.鎻愰珮涓汉鍦ㄤ汉闄呮矡閫氳繃绋嬩腑鐨勮瑷�娓╁害銆�</p>
                         <p class="bj-1-zt">2.鎻愬崌姘戣埅瀵瑰鏈嶅姟娌熼�氳繃绋嬩腑鐨勬晥鑳姐��</p>
                         <p><br></p>
-                        <p><br></p>
-                        <p><br></p>
+                        <div class="video-box-cover">
+                            <p class="center text">
+                                <video :src="videoPathOne" webkit-playsinline="true" x-webkit-airplay="true"
+                                    playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                    x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                    style=" border-radius: 10px; "></video>
+                            </p>
+                            <p class="center videoname">
+                                <span>瑙嗛锛氶」鐩笁 瀵煎叆 </span>
+                                <el-tooltip class="item" effect="dark"
+                                    :content="chapterData.isCollectVideo ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                    <img :src="collectResourceList.findIndex(item => item.id == 'f3397edec7e58dc77e76ce434e66f096') > -1 ? collectCheck : collectImg"
+                                        alt="" class="collect-btn" @click="handleCollect('video-01')" />
+                                </el-tooltip>
+                            </p>
+                        </div>
                         <p><br></p>
                     </div>
                 </div>
@@ -196,6 +210,22 @@
                     <p class="p-even">濡傛灉鎮ㄧ幇鍦ㄦ殏鏃朵笉闇�瑕佺敤椁愶紝鎴戜滑灏嗗湪鎮ㄩ渶瑕佹椂鎻愪緵锛屽埌鏃惰鎮ㄦ寜鍛煎敜閾冿紝鎴戜滑灏嗛殢鏃朵负鎮ㄦ湇鍔°��</p>
                     <p class="p-even">鎴戣繕鑳戒负锛堝府锛夋偍鍋氱偣浠�涔堝悧锛�</p>
                     <p class="p-even">锛堣绋嶇瓑锛夋垜浼氬敖鍔涗负鎮ㄨВ鍐炽��</p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathTwo" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩笁 浠诲姟1 </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo01 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '9908b7f1a3e2197b0d74ffefc42a3fd9') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-02')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                 </div>
             </div>
         </div>
@@ -478,6 +508,22 @@
                     <p class="p-even">
                         闆呰鏄寚灏嗕竴浜涗笉渚跨洿瑷�鐨勪簨鐢ㄤ竴绉嶆瘮杈冨濠夈�佸惈钃勭殑鏂瑰紡琛ㄨ揪銆備緥濡傦紝鍦ㄦ帴寰呭瀹㈡椂锛岀敤鈥滃嚑浣嶁�濅唬鏇库�滃嚑涓汉鈥濓紝鐢ㄢ�滃摢涓�浣嶁�濅唬鏇库�滆皝鈥濓紝鐢ㄢ�滆吹濮撯�濅唬鏇库�滀綘濮撲粈涔堚�濓紝鐢ㄢ�滄垜鍘绘柟渚夸竴涓嬧�濅唬鏇库�滄垜鍘讳笂鍘曟墍鈥濓紝鐢ㄢ�滆繖浠惰。鏈嶄笉澶�傚悎鎮ㄢ�濅唬鏇库�滄偍绌胯繖浠惰。鏈嶅緢闅剧湅鈥濓紝鐢ㄢ�滃彂绂忊�濅唬鏇库�滃彂鑳栤�濓紝绛夌瓑銆傞泤璇殑浣跨敤涓嶆槸鏈烘鐨勩�佸浐瀹氱殑锛岄渶瑕佹牴鎹笉鍚屽満鍚堛�佷笉鍚屼汉鐗┿�佷笉鍚屾椂闂寸伒娲昏繍鐢ㄣ��
                     </p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathThree" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩笁 浠诲姟浜� </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo02 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '6669e5cb8d28967e1f03a2f9e1700c19') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-03')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h4 id="d088" class="p-even">锛堜簩锛夎瑷�鐨勯瓒f��</h4>
                     <p class="p-even">鍦ㄦ棩甯镐氦寰�涓紝鐢熷姩骞介粯鐨勮瑷�鑳藉璧峰埌娲昏穬姘旀皼銆佽瀺娲芥劅鎯呫�佹秷闄ら殧闃傘�佸杩涙矡閫氱殑浣滅敤銆傚繀瑕佹椂锛岃繕鑳芥秷闄ゅ按灏眬闈€��</p>
                     <p class="p-even">鍦ㄦ皯鑸湇鍔$ぜ浠腑锛屽伐浣滀汉鍛樺湪鎺ュ緟鏃呭鏃讹紝璇█涓嶈兘鍛嗘澘锛屼笉瑕佹満姊板湴鍥炵瓟锛岃繖鏍峰鏄撲娇鏃呭鎰熻宸ヤ綔浜哄憳涓嶇儹鎯呫�佷笟鍔′笉鐔熸倝銆佽矗浠诲績涓嶅己銆�</p>
@@ -724,6 +770,8 @@
 </template>
 
 <script>
+import { getResourcePath } from "@/assets/methods/resources";
+import { getCollectResource, setCollectResource } from "@/assets/methods/resources";
 export default {
     name: "chapterThree",
     props: {
@@ -733,6 +781,17 @@
     },
     data() {
         return {
+            collectImg: require("../../assets/images/icon/heart.png"),
+            collectCheck: require("../../assets/images/icon/heart-check.png"),
+            videoPathOne: "",
+            videoPathTwo: "",
+            videoPathThree: "",
+            collectResourceList: [],
+            chapterData: {
+                isCollectVideo: false,
+                isCollectVideo01: false,
+                isCollectVideo02: false,
+            },
             questionData: {
                 teskOne: {
                     one: "",
@@ -786,7 +845,7 @@
             },
         };
     },
-    mounted() {
+    async mounted() {
         const bookQuestion = localStorage.getItem("aviation-book-chapter03");
         if (bookQuestion) {
             this.questionData = JSON.parse(bookQuestion);
@@ -796,8 +855,69 @@
             this.tableData = JSON.parse(bookTableData);
         }
 
+        const choiceQuestion = localStorage.getItem("aviation-book-chapter03-Data");
+        if (choiceQuestion) {
+            this.chapterData = JSON.parse(choiceQuestion);
+        }
+
+        this.getVidoePath();
+        this.collectResourceList = await getCollectResource(this.config.activeBook.bookId)
     },
     methods: {
+        async getVidoePath() {
+            this.videoPathOne = await getResourcePath(
+                "f3397edec7e58dc77e76ce434e66f096"
+            );
+            this.videoPathTwo = await getResourcePath(
+                "9908b7f1a3e2197b0d74ffefc42a3fd9"
+            );
+            this.videoPathThree = await getResourcePath(
+                "6669e5cb8d28967e1f03a2f9e1700c19"
+            );
+        },
+        handleCollect(e) {
+            if (e == 'video-01') {
+                this.handleCollectResource("f3397edec7e58dc77e76ce434e66f096", "f3397edec7e58dc77e76ce434e66f096", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩笁 瀵煎叆')
+                this.chapterData.isCollectVideo = !this.chapterData.isCollectVideo
+            } else if (e == 'video-02') {
+                this.handleCollectResource("9908b7f1a3e2197b0d74ffefc42a3fd9", "9908b7f1a3e2197b0d74ffefc42a3fd9", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩笁 浠诲姟1')
+                this.chapterData.isCollectVideo01 = !this.chapterData.isCollectVideo01
+            } else if (e == 'video-03') {
+                this.handleCollectResource("6669e5cb8d28967e1f03a2f9e1700c19", "6669e5cb8d28967e1f03a2f9e1700c19", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩笁 浠诲姟浜�')
+                this.chapterData.isCollectVideo02 = !this.chapterData.isCollectVideo02
+            } 
+            this.handleChapterData();
+        },
+
+        //璧勬簮鏀惰棌浜嬩欢
+        // 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)
+        },
+        handleChapterData() {
+            localStorage.setItem(
+                "aviation-book-chapter03-Data",
+                JSON.stringify(this.chapterData)
+            );
+        },
+
+
         setBookQuestion() {
             localStorage.setItem(
                 "aviation-book-chapter03",
diff --git a/src/books/aviationBasicSkills/view/components/chapter004.vue b/src/books/aviationBasicSkills/view/components/chapter004.vue
index 2a18e54..edc20c4 100644
--- a/src/books/aviationBasicSkills/view/components/chapter004.vue
+++ b/src/books/aviationBasicSkills/view/components/chapter004.vue
@@ -20,7 +20,22 @@
                         <p class="bj-1-zt">1.鎻愬崌鎰熺煡缇庛�佺悊瑙g編銆佸垱閫犵編鐨勪釜浜虹編鍟嗙礌鍏汇��</p>
                         <p class="bj-1-zt">2.鎻愬崌姘戣埅瀵瑰鏈嶅姟杩囩▼涓殑涓汉淇吇鍜岃亴涓氭儏鎿嶃��</p>
                         <p><br></p>
-                        <p><br></p>
+                        <div class="video-box-cover">
+                            <p class="center text">
+                                <video :src="videoPathOne" webkit-playsinline="true" x-webkit-airplay="true"
+                                    playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                    x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                    style=" border-radius: 10px; "></video>
+                            </p>
+                            <p class="center videoname">
+                                <span>瑙嗛锛氶」鐩洓 瀵煎叆 </span>
+                                <el-tooltip class="item" effect="dark"
+                                    :content="chapterData.isCollectVideo ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                    <img :src="collectResourceList.findIndex(item => item.id == '7e45c5e6cf440f0529af765b0acc29c3') > -1 ? collectCheck : collectImg"
+                                        alt="" class="collect-btn" @click="handleCollect('video-01')" />
+                                </el-tooltip>
+                            </p>
+                        </div>
                         <p><br></p>
                     </div>
                 </div>
@@ -41,7 +56,7 @@
                         浣滀负涓�鍚嶆皯鑸粠涓氫汉鍛橈紝鍦ㄥ伐浣滃矖浣嶄笂锛屼綘鍙互閫氳繃鍝簺琛屼负灞曠ず涓汉鑹ソ鐨勫伐浣滅姸鎬佸憿锛熷湪浠诲姟涓�涓紝浣犲皢瀛︿細濡備綍閫氳繃杩愮敤琛ㄦ儏銆佷华鎬併�佹墜鍔匡紝灞曠幇鑷繁瀵瑰鏈嶅姟杩囩▼涓殑鑹ソ鐘舵�侊紝鎻愬崌姘戣埅鏈嶅姟鍝佽川銆�</p>
                     <p class="p-even block2">瀛﹀畬浠诲姟涓�鍚庯紝浣犲簲褰撴帉鎻″浣曢�氳繃闃冲厜鐨勫井绗戙�佽壇濂界殑浠�併�佽鑼冪殑鎵嬪娍鏉ュ悜鏃呭灞曠ず绉瀬鐨勬湇鍔″舰璞°��</p>
                     <textarea v-model="questionData.teskOne.one" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                    class="fz-16 block2 ml-9 textarea-box" @change="setBookQuestion"></textarea>
+                        class="fz-16 block2 ml-9 textarea-box" @change="setBookQuestion"></textarea>
                     <p class="left p-even"><span class="bj2">鐭ヨ瘑鍑嗗鈻�</span></p>
                     <h3 id="c031" class="p-even"><span class="zt-h4 unit4-c">涓�銆�</span><span
                             class="qyls-h4 unit4-c">琛ㄦ儏绀间华</span></h3>
@@ -347,6 +362,39 @@
                     <p class="p-odd">鈶g敺澹笉鍙皢鍙岃吙鍙夊緱杩囧紑锛屾垨灏嗗弻鑵胯繃鍒嗕几寮狅紝鎴栦竴鑵垮集鏇层�佷竴鑵夸几鐩村憟鐜扳��4鈥濆瓧褰紝鎴栧皢灏忚吙鎼佸湪澶ц吙涓婏紝鐢ㄨ剼鎵撴媿瀛愶紝鐢氳嚦涓嶅仠鍦版姈鑵裤��</p>
                     <p class="p-odd">鈶よ贩鑵挎椂锛屽垏蹇屽皢鎮┖鐨勮剼灏栨湞涓婃垨鎸囧悜浠栦汉銆�</p>
                     <p class="p-odd">鈶ヤ笌閭诲骇浜よ皥鏃讹紝鍙互渚у潗锛屽苟灏嗕笂韬拰鑵垮悓鏃惰浆鍚戜氦璋堝璞°��</p>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathTwo" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩洓1 濂冲+琛屼负绀间华 </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo01 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '4f89a0d37249e0773fddc0b3c587a4a6') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-02')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathThree" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩洓1 鐢峰+琛屼负绀间华 </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo02 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '1570fec423a81f76007b8ea5b433e72a') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-03')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
+
                     <h4 id="d097" class="p-odd">锛堜笁锛夎蛋濮�</h4>
                     <p class="p-odd">璧板Э鏄汉浣撴墍鍛堢幇鍑虹殑涓�绉嶅姩鎬侊紝鏄珯濮跨殑寤剁画銆傝鑼冪殑璧板Э锛屾槸灞曠ず鑷繁姘旇川涓庝慨鍏荤殑閲嶈褰㈠紡銆傛敞鎰忚蛋濮垮彲浠ラ槻姝㈣韩浣撳彉褰紝鐢氳嚦鍙互棰勯槻棰堟鐥呫��</p>
                     <h5 id="e051" class="p-odd">1.璧板Э鐨勫熀鏈棰�</h5>
@@ -614,16 +662,32 @@
                     <p class="p-even">
                         鎵撳搷鎸囧氨鏄敤鎵嬬殑鎷囨寚涓庝腑鎸囧脊鍑哄0鍝嶃�傚畠鎵�琛ㄧず鐨勬剰涔夋瘮杈冨鏉傦細鏈夋椂琛ㄧず楂樺叴锛涙湁鏃惰〃绀哄鎵�璇寸殑璇濇垨鎵�鍋氱殑涓惧姩鎰熷叴瓒f垨瀹屽叏璧炲悓锛涙湁鏃跺垯瑙嗕负鏌愮杞绘诞鐨勫姩浣滐紝姣斿瀵规煇浜烘垨寮傛�ф墦鍝嶆寚銆�</p>
                     <p class="p-even">鍦ㄩ檶鐢熺殑鍦哄悎鎴栦笉鐔熸倝鐨勪汉闈㈠墠锛岃交鏄撳湴鎵撳搷鎸囷紝浼氫娇浜鸿寰楁病鏈夋暀鍏汇�傚嵆渚挎槸纰板埌鐔熶汉鎵撴嫑鍛兼椂鎵撳搷鎸囷紝涔熶細浣夸汉瑙夊緱涓嶈垝鏈嶃�傛�讳箣锛岃繖鏄竴绉嶅緢闅忎究鐨勪妇姝紝鎱庣敤涓哄ソ銆�</p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathFour" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩洓1 闉犺含鎶�鑳借鐐硅瑙� </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo03 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '717ab2e44c2a8ede7ccaf8d69d8ea76d') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-04')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <div class="bj5 ml-9">
                         <div class="bj5-xyx">
                             <p class="td-0"><span class="bj5-xyx">璇惧爞鐮旇</span></p>
                         </div>
                         <p>1.琛屼负绀间华鏈夊摢浜涘熀鏈绱狅紵</p>
                         <textarea v-model="questionData.teskOne.two" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                        class="fz-16  ml-2e textarea-box" @change="setBookQuestion"></textarea>
+                            class="fz-16  ml-2e textarea-box" @change="setBookQuestion"></textarea>
                         <p>2.琛屼负绀间华鍦ㄦ皯鑸瀹㈡湇鍔′腑鐨勪綔鐢ㄦ槸浠�涔堬紵</p>
                         <textarea v-model="questionData.teskOne.three" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                        class="fz-16  ml-2e textarea-box" @change="setBookQuestion"></textarea>
+                            class="fz-16  ml-2e textarea-box" @change="setBookQuestion"></textarea>
                     </div>
                     <p class="left p-even"><span class="bj2">浠诲姟宸ュ崟鈻�</span></p>
                     <table border="1" cellpadding="4" cellspacing="0"
@@ -833,7 +897,7 @@
                     <p class="p-odd">鍒嗙粍杩涜绔欏Э銆佸潗濮裤�佽共濮裤�佽蛋濮胯缁冦��</p>
                     <p class="left p-odd"><span class="bj2">鑷垜璇勪环鈻�</span></p>
                     <textarea v-model="questionData.teskOne.four" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                    class="fz-16 textarea-box-right" @change="setBookQuestion"></textarea>
+                        class="fz-16 textarea-box-right" @change="setBookQuestion"></textarea>
                 </div>
             </div>
         </div>
@@ -852,7 +916,7 @@
                         姘戣埅浠庝笟浜哄憳鐨勪釜浜哄舰璞′唬琛ㄧ潃鍏徃鐨勪紒涓氬舰璞″拰姘戣埅鐨勬暣浣撳舰璞°�傞�氳繃鏈换鍔$殑瀛︿範锛屼綘灏嗗浼氬浣曢�氳繃鎻愬崌闈㈤儴淇グ鑳藉姏銆佹湇楗扮潃瑁呰鑼冩潵鎻愬崌涓汉鏁翠綋褰㈣薄锛屽睍鐜版皯鑸湇鍔″搧璐ㄣ��</p>
                     <p class="block2 p-even">鏈换鍔″寘鍚潰閮ㄤ慨楗般�佹湇楗颁慨楗颁袱涓皬浠诲姟銆傚湪缁撴潫鏁翠釜浠诲姟瀛︿範鍚庯紝浣犲簲褰撹兘澶熻繘琛屾纭殑闈㈤儴淇グ锛屼互鍙婅鑼冪殑鏈嶉グ鐫�瑁咃紝骞朵笖鍚戞梾瀹㈠睍绀鸿壇濂界殑涓汉褰㈣薄銆�</p>
                     <textarea v-model="questionData.teskTwo.one" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                    class="fz-16 ml-9 textarea-box" @change="setBookQuestion"></textarea>
+                        class="fz-16 ml-9 textarea-box" @change="setBookQuestion"></textarea>
                     <p class="left p-even"><span class="bj2">鐭ヨ瘑鍑嗗鈻�</span></p>
                     <h3 id="c034" class="p-even"><span class="zt-h4 unit4-c">涓�銆�</span><span
                             class="qyls-h4 unit4-c">闈㈤儴淇グ</span></h3>
@@ -921,6 +985,22 @@
                     <p class="p-even">鈶㈢湁姣涚殑淇グ锛氫竴鑸粠鐪夊ご寮�濮嬶紝鎸夌収鐪夋瘺鐨勮嚜鐒剁敓闀挎柟鍚戞弿鐢汇��</p>
                     <p class="p-even">鈶d笂鑵孩锛氫笂鑵孩鐨勭洰鐨勶紝涓�鏄〃鐜扮毊鑲ょ殑鍋ュ悍绾㈡鼎锛屼簩鏄埄鐢ㄨ叜绾㈢殑浣嶇疆鍜屾柟鍚戞潵鐭鑴稿舰銆�</p>
                     <p class="p-even">鈶ゆ秱鍙g孩锛氭秱鍙g孩鏃讹紝娉ㄦ剰涓嶈兘瓒呭嚭鍞囩嚎銆傚彛绾㈤鑹茬殑閫夋嫨搴斿拰骞撮緞銆佹湇瑁呫�佸満鍚堛�佽亴涓氬拰瀛h妭绛夊崗璋冦��</p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathFive" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩洓2 鑱屼笟褰╁鎶�鑳借瑙� </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo04 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '9d42449fd876884fe3426db499c81913') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-05')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h4 id="d104" class="p-even">锛堜簩锛夊彂鍨嬩慨楗�</h4>
                     <p class="p-even">
                         浜轰滑鍦ㄤ簰鐩告墦閲忔椂锛岄�氬父鏄粠澶村埌鑴氾紝鍙戝瀷閫傚綋涓庡惁锛岀洿鎺ュ奖鍝嶅埌瀵规柟瀵逛綘鍗拌薄鐨勫ソ鍧忋�傚洜姝わ紝缇庡彂灏辨垚涓轰汉浠閫犱华瀹圭編鐨勯噸澶存垙銆傛皯鑸湇鍔′汉鍛樺彂鍨嬩慨楗扮殑鍩鸿皟鏄細娲绘臣寮�鏈椼�佹湞姘旇摤鍕冦�佸共鍑�鍒╄惤銆佺搴勬寔閲嶃��
@@ -930,6 +1010,22 @@
                     <p class="p-even">姘戣埅鏈嶅姟浜哄憳鍦ㄩ�夋嫨鍙戝瀷鏃讹紝搴旇�冭檻鑷繁鐨勮劯褰€�佸勾榫勭瓑鐩稿叧鍥犵礌銆�</p>
                     <p class="p-even">锛�1锛夎涓庤劯褰㈢粨鍚堣捣鏉ャ�傛瘮濡傦紝闀胯劯鑰呭湪閫夋嫨鍙戝瀷鏃讹紝杞粨搴斿钩浼忎簺锛屽挨鍏舵槸鍓嶉鐨勫垬娴峰簲鐣欏緱闀胯�屽涓�浜涖��</p>
                     <p class="p-even">锛�2锛夎涓庡勾榫勭浉绉般�傛瘮濡傦紝骞磋交鐨勬皯鑸湇鍔′汉鍛樺彲閫夋嫨鏂伴銆佸埆鑷磋�屽張鍋ュ悍銆佸ぇ鏂圭殑鍙戝瀷銆�</p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathSix" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩洓2 鑱屼笟鐩樺彂鎶�鑳借瑙� </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo05 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == 'c44d8965f8f6d2f7b20132b66dd400e7') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-06')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                 </div>
             </div>
         </div>
@@ -969,13 +1065,13 @@
                         </div>
                         <p>1.闈㈤儴淇グ鐨勫熀鏈柟娉曟湁鍝簺锛�</p>
                         <textarea v-model="questionData.teskTwo.two" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                        class="fz-16 ml-9 textarea-box" @change="setBookQuestion"></textarea>
+                            class="fz-16 ml-9 textarea-box" @change="setBookQuestion"></textarea>
                         <p>2.濂虫�у寲濡嗙殑绂佸繉鏈夊摢浜涳紵</p>
                         <textarea v-model="questionData.teskTwo.three" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                        class="fz-16 ml-9 textarea-box" @change="setBookQuestion"></textarea>
+                            class="fz-16 ml-9 textarea-box" @change="setBookQuestion"></textarea>
                         <p>3.姘戣埅宸ヤ綔瀵瑰彂鍨嬬殑鍩烘湰瑕佹眰鏄粈涔堬紵</p>
                         <textarea v-model="questionData.teskTwo.four" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                        class="fz-16 ml-9 textarea-box" @change="setBookQuestion"></textarea>
+                            class="fz-16 ml-9 textarea-box" @change="setBookQuestion"></textarea>
                     </div>
                     <h3 id="c035"><span class="zt-h4 unit4-c">浜屻��</span><span class="qyls-h4 unit4-c">鏈嶉グ淇グ</span></h3>
                     <p class="p-odd">绌跨潃寰椾綋銆佸璨岀搴勩�佷妇姝㈡枃闆呮槸姘戣埅鏈嶅姟浜哄憳瀹$編鎯呰叮鍜屾枃鍖栦慨鍏荤殑</p>
@@ -1062,6 +1158,39 @@
                         鈶ら瀷琚滈』鍚堥�傘�傞瀷鏄埗鏈嶇殑涓�閮ㄥ垎銆傛瘡澶╁簲褰撴妸鐨瀷鎿﹀緱骞插噣銆佸厜浜紝鐮存崯鐨勯瀷瀛愬簲鍙婃椂淇ˉ鎴栨洿鎹€�傞�氬父鐢峰+鐨勮瀛愬簲涓庨瀷瀛愮殑棰滆壊鍜岃皭锛屼互鐧借壊榛戣壊鏈�涓烘櫘閬嶃�傚コ澹簲绌夸笌鑲よ壊鐩歌繎鐨勪笣琚滐紝琚滃彛涓嶈闇插湪瑁ゅ瓙鎴栬瀛愬杈广��
                     </p>
                     <p class="p-even">鈶ヤ綋鐜版枃鏄庛�傛牴鎹帴寰呯ぜ浠殑鍩烘湰瑙勫畾锛岃韩鐫�鍒舵湇涓婂矖鏃惰鏄剧ず鏂囨槑銆侀珮闆呯殑姘旇川銆�</p>
+
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathSeven" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩洓1 绯讳笣宸炬妧鑳借鐐硅瑙�</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo06 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '4edc5de0179514d5869973cb93c1eeb2') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-07')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathEight" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩洓1 绯婚甯︽妧鑳借鐐硅瑙�</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo07 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '1eaf0f7ac922aaf33d00c5a4b06c7ac6') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-08')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <p class="left p-even mt-20"><span class="bj2">浠诲姟宸ュ崟鈻�</span></p>
                     <table border="1" cellpadding="4" cellspacing="0"
                         style="border-color: #5192c6; border-collapse: collapse" class="fz-15 ml-9">
@@ -1285,7 +1414,7 @@
                     <p class="p-odd">锛�4锛夋暣浣撹瑙掞細鍙戝瀷鎸洪様銆佸共鍑�娓呯埥銆�</p>
                     <p class="left p-odd"><span class="bj2">鑷垜璇勪环鈻�</span></p>
                     <textarea v-model="questionData.teskTwo.five" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                    class="fz-16 textarea-box-right" @change="setBookQuestion"></textarea>
+                        class="fz-16 textarea-box-right" @change="setBookQuestion"></textarea>
                 </div>
             </div>
         </div>
@@ -1295,6 +1424,8 @@
     </div>
 </template>
 <script>
+import { getResourcePath } from "@/assets/methods/resources";
+import { getCollectResource, setCollectResource } from "@/assets/methods/resources";
 export default {
     name: "chapterFour",
     props: {
@@ -1304,6 +1435,27 @@
     },
     data() {
         return {
+            collectImg: require("../../assets/images/icon/heart.png"),
+            collectCheck: require("../../assets/images/icon/heart-check.png"),
+            videoPathOne: "",
+            videoPathTwo: "",
+            videoPathThree: "",
+            videoPathFour: "",
+            videoPathFive: "",
+            videoPathSix: "",
+            videoPathSeven: "",
+            videoPathEight: "",
+            collectResourceList: [],
+            chapterData: {
+                isCollectVideo: false,
+                isCollectVideo01: false,
+                isCollectVideo02: false,
+                isCollectVideo03: false,
+                isCollectVideo04: false,
+                isCollectVideo05: false,
+                isCollectVideo06: false,
+                isCollectVideo07: false,
+            },
             questionData: {
                 teskOne: {
                     one: "",
@@ -1316,7 +1468,7 @@
                     two: "",
                     three: "",
                     four: "",
-                    five:"",
+                    five: "",
                 },
             },
             tableData: {
@@ -1355,7 +1507,7 @@
             },
         };
     },
-    mounted() {
+    async mounted() {
         const bookQuestion = localStorage.getItem("aviation-book-chapter04");
         if (bookQuestion) {
             this.questionData = JSON.parse(bookQuestion);
@@ -1365,8 +1517,99 @@
             this.tableData = JSON.parse(bookTableData);
         }
 
+        const choiceQuestion = localStorage.getItem("aviation-book-chapter04-Data");
+        if (choiceQuestion) {
+            this.chapterData = JSON.parse(choiceQuestion);
+        }
+
+        this.getVidoePath();
+        this.collectResourceList = await getCollectResource(this.config.activeBook.bookId)
     },
     methods: {
+        async getVidoePath() {
+            this.videoPathOne = await getResourcePath(
+                "7e45c5e6cf440f0529af765b0acc29c3"
+            );
+            this.videoPathTwo = await getResourcePath(
+                "4f89a0d37249e0773fddc0b3c587a4a6"
+            );
+            this.videoPathThree = await getResourcePath(
+                "1570fec423a81f76007b8ea5b433e72a"
+            );
+            this.videoPathFour = await getResourcePath(
+                "717ab2e44c2a8ede7ccaf8d69d8ea76d"
+            );
+            this.videoPathFive = await getResourcePath(
+                "9d42449fd876884fe3426db499c81913"
+            );
+            this.videoPathSix = await getResourcePath(
+                "c44d8965f8f6d2f7b20132b66dd400e7"
+            );
+            this.videoPathSeven = await getResourcePath(
+                "4edc5de0179514d5869973cb93c1eeb2"
+            );
+            this.videoPathEight = await getResourcePath(
+                "1eaf0f7ac922aaf33d00c5a4b06c7ac6"
+            );
+        },
+        handleCollect(e) {
+            if (e == 'video-01') {
+                this.handleCollectResource("7e45c5e6cf440f0529af765b0acc29c3", "7e45c5e6cf440f0529af765b0acc29c3", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩洓 瀵煎叆')
+                this.chapterData.isCollectVideo = !this.chapterData.isCollectVideo
+            } else if (e == 'video-02') {
+                this.handleCollectResource("4f89a0d37249e0773fddc0b3c587a4a6", "4f89a0d37249e0773fddc0b3c587a4a6", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩洓1 濂冲+琛屼负绀间华')
+                this.chapterData.isCollectVideo01 = !this.chapterData.isCollectVideo01
+            } else if (e == 'video-03') {
+                this.handleCollectResource("1570fec423a81f76007b8ea5b433e72a", "1570fec423a81f76007b8ea5b433e72a", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩洓1 鐢峰+琛屼负绀间华')
+                this.chapterData.isCollectVideo02 = !this.chapterData.isCollectVideo02
+            } else if (e == 'video-04') {
+                this.handleCollectResource("717ab2e44c2a8ede7ccaf8d69d8ea76d", "717ab2e44c2a8ede7ccaf8d69d8ea76d", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩洓1 闉犺含鎶�鑳借鐐硅瑙�')
+                this.chapterData.isCollectVideo03 = !this.chapterData.isCollectVideo03
+            } else if (e == 'video-05') {
+                this.handleCollectResource("9d42449fd876884fe3426db499c81913", "9d42449fd876884fe3426db499c81913", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩洓2 鑱屼笟褰╁鎶�鑳借瑙�')
+                this.chapterData.isCollectVideo04 = !this.chapterData.isCollectVideo04
+            } else if (e == 'video-06') {
+                this.handleCollectResource("c44d8965f8f6d2f7b20132b66dd400e7", "c44d8965f8f6d2f7b20132b66dd400e7", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩洓2 鑱屼笟鐩樺彂鎶�鑳借瑙�')
+                this.chapterData.isCollectVideo05 = !this.chapterData.isCollectVideo05
+            } else if (e == 'video-07') {
+                this.handleCollectResource("4edc5de0179514d5869973cb93c1eeb2", "4edc5de0179514d5869973cb93c1eeb2", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩洓1 绯讳笣宸炬妧鑳借鐐硅瑙�')
+                this.chapterData.isCollectVideo06 = !this.chapterData.isCollectVideo06
+            } else if (e == 'video-08') {
+                this.handleCollectResource("1eaf0f7ac922aaf33d00c5a4b06c7ac6", "1eaf0f7ac922aaf33d00c5a4b06c7ac6", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩洓1 绯婚甯︽妧鑳借鐐硅瑙�')
+                this.chapterData.isCollectVideo07 = !this.chapterData.isCollectVideo07
+            }
+            this.handleChapterData();
+        },
+
+        //璧勬簮鏀惰棌浜嬩欢
+        // 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)
+        },
+        handleChapterData() {
+            localStorage.setItem(
+                "aviation-book-chapter04-Data",
+                JSON.stringify(this.chapterData)
+            );
+        },
+
+        
         setBookQuestion() {
             localStorage.setItem(
                 "aviation-book-chapter04",
diff --git a/src/books/aviationBasicSkills/view/components/chapter005.vue b/src/books/aviationBasicSkills/view/components/chapter005.vue
index 4ce532b..2e02129 100644
--- a/src/books/aviationBasicSkills/view/components/chapter005.vue
+++ b/src/books/aviationBasicSkills/view/components/chapter005.vue
@@ -22,7 +22,22 @@
                         <p class="bj-1-zt">2.鍩瑰吇韪忓疄鑲共銆佸嫟濂嬪ソ瀛︺�佷笂涓嬭仈鍔ㄣ�佺Н鏋佹矡閫氱殑鑱屼笟绱犲吇銆�</p>
                         <p class="bj-1-zt">3.鍏绘垚涓ヨ皑鍔″疄銆佸紑鎷撳垱鏂般�佺湡鎯呭疄鎰忋�佷互浜轰负鏈殑鑱屼笟鎬佸害銆�</p>
                         <p><br></p>
-                        <p><br></p>
+                        <div class="video-box-cover">
+                            <p class="center text">
+                                <video :src="videoPathOne" webkit-playsinline="true" x-webkit-airplay="true"
+                                    playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                    x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                    style=" border-radius: 10px; "></video>
+                            </p>
+                            <p class="center videoname">
+                                <span>瑙嗛锛氶」鐩簲 瀵煎叆_1 </span>
+                                <el-tooltip class="item" effect="dark"
+                                    :content="chapterData.isCollectVideo ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                    <img :src="collectResourceList.findIndex(item => item.id == '665da7513bb7123d5bae84feae3cd6d6') > -1 ? collectCheck : collectImg"
+                                        alt="" class="collect-btn" @click="handleCollect('video-01')" />
+                                </el-tooltip>
+                            </p>
+                        </div>
                         <p><br></p>
                     </div>
                 </div>
@@ -162,6 +177,22 @@
                     <p class="p-odd">
                         鏃呭浣跨敤鎵嬫満涓婄綉鐧诲綍鑸┖鍏徃缃戠珯鎴栦娇鐢ㄥ皬绋嬪簭閫夋嫨鐩稿簲鐨勮埅绋嬶紝鑷鎿嶄綔瀹屾垚閫夊骇锛岀敓鎴愮數瀛愮櫥鏈虹墝銆傞渶瑕佹墭杩愯鏉庣殑鏃呭鍒拌揪鏈哄満鍚庡彲鍒颁汉宸ユ煖鍙颁氦杩愯鏉庯紝鎵撳嵃鐧绘満鐗屻�傛梾瀹㈠嚟鐢靛瓙鐧绘満鐗屾垨绾歌川鐧绘満鐗岄兘鍙畬鎴愬畨妫�鐧绘満銆�
                     </p>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathTwo" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩簲 浠诲姟1 </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo01 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == 'd54fca9b232c021dbd52762af605c926') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-02')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <div class="bj5 mr-9">
                         <div class="bj5-xyx">
                             <p class="td-0"><span class="bj5-xyx">璇惧爞鐮旇</span></p>
@@ -505,6 +536,22 @@
                     </p>
                     <h4 id="d126" class="p-even">锛堜簩锛夊姙鐞嗕箻鏈烘墜缁�</h4>
                     <p class="p-even">鍔炵悊涔樻満鎵嬬画鐨勪富瑕佸唴瀹规槸鏌ラ獙鏃呭鐨勬梾琛屾枃浠讹紝涓烘梾瀹㈠畨鎺掑骇浣嶃�佹墭杩愯鏉庛�佹墦鍗扮櫥鏈虹墝鍜岃鏉庢潯銆�</p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathThree" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩簲 浠诲姟浜� </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo02 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '42a9fba9050e235ec7511ba0c4b2c0b4') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-03')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h4 id="d127" class="p-even">锛堜笁锛夌粨绠楁姤杞�</h4>
                     <p class="p-even">鈶犺埅鐝叧闂悗锛岃繘琛屼袱澶嶆牳銆傚氨鏄煡鐪嬬櫥鏈虹墝鍙戞斁鏁颁笌绂绘腐绯荤粺鍔炵悊鐨勪汉鏁版槸鍚﹀畬鍏ㄤ竴鑷达紝濡傛灉涓嶄竴鑷达紝瑕佺珛鍗虫煡鎵惧師鍥犮��</p>
                     <p class="p-even">鈶′笌瑁呭嵏闃熸牳瀵硅鏉庝欢鏁板拰璐ㄩ噺锛屽姙鐞嗕氦鎺ユ墜缁��</p>
@@ -798,13 +845,15 @@
                     <p class="p-odd">1.鍊兼満鏌滃彴鍒嗕负鍝嚑绉嶏紵</p>
                     <textarea v-model="questionData.teskTwo.three" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
                         class="fz-16 mr-9  textarea-box-right" @change="setBookQuestion"></textarea>
-                    <p class="p-odd">2.鎵樿繍琛屾潕鐨勮川閲忔瘡浠朵笉鑳借秴杩�<input v-model="questionData.teskTwo.four" class="input-bottom-border fz-14"
-                        @change="setBookQuestion" />鍗冨厠锛屼綋绉瘡浠朵笉鑳借秴杩�<input v-model="questionData.teskTwo.five" class="input-bottom-border fz-14"
-                        @change="setBookQuestion" />鍘樼背锛岃嫢瓒呰繃闇�瑕佸幓<input v-model="questionData.teskTwo.six" class="input-bottom-border fz-14"
-                        @change="setBookQuestion" />鍔炵悊鍊兼満鎵嬬画銆�</p>
-                    <p class="p-odd">3.鑸彮鍏抽棴涓ゅ鏍革紝灏辨槸鏌ョ湅<input v-model="questionData.teskTwo.seven" class="input-bottom-border fz-14"
-                        @change="setBookQuestion" />涓�<input v-model="questionData.teskTwo.eight" class="input-bottom-border fz-14"
-                        @change="setBookQuestion" />銆�</p>
+                    <p class="p-odd">2.鎵樿繍琛屾潕鐨勮川閲忔瘡浠朵笉鑳借秴杩�<input v-model="questionData.teskTwo.four"
+                            class="input-bottom-border fz-14" @change="setBookQuestion" />鍗冨厠锛屼綋绉瘡浠朵笉鑳借秴杩�<input
+                            v-model="questionData.teskTwo.five" class="input-bottom-border fz-14"
+                            @change="setBookQuestion" />鍘樼背锛岃嫢瓒呰繃闇�瑕佸幓<input v-model="questionData.teskTwo.six"
+                            class="input-bottom-border fz-14" @change="setBookQuestion" />鍔炵悊鍊兼満鎵嬬画銆�</p>
+                    <p class="p-odd">3.鑸彮鍏抽棴涓ゅ鏍革紝灏辨槸鏌ョ湅<input v-model="questionData.teskTwo.seven"
+                            class="input-bottom-border fz-14" @change="setBookQuestion" />涓�<input
+                            v-model="questionData.teskTwo.eight" class="input-bottom-border fz-14"
+                            @change="setBookQuestion" />銆�</p>
                     <p class="p-odd">4.绠�杩拌埅绋嬩笉鍚岄樁娈电殑鍊兼満宸ヤ綔娴佺▼銆�</p>
                     <textarea v-model="questionData.teskTwo.nine" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
                         class="fz-16  textarea-box-right" @change="setBookQuestion"></textarea>
@@ -937,6 +986,22 @@
                         <p class="p-odd">鈶㈡鏌ヨ鏉庣殑鍖呰銆佷綋绉�佽川閲忔槸鍚︾鍚堣姹傘��</p>
                         <p class="p-odd">鈶h鏉庣О閲嶏紝涓庡厤璐硅鏉庨姣旇緝锛屽喅瀹氭槸鍚︽敹璐癸紝骞跺搴旇鏀惰垂鐨勬敹鍙栭�鹃噸琛屾潕璐广��</p>
                     </span>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathFour" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩簲 浠诲姟涓塤1 </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo03 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == 'e30cc3eb8514972b784bcfcacb82d26f') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-04')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h3 id="c047" class="p-odd"><span class="zt-h4">鍏��</span><span class="qyls-h4">鎶ヨ浇</span></h3>
                     <p class="p-odd">
                         鈶犲�兼満鍛樹负鏃呭鍔炵悊瀹屽�兼満涓氬姟銆佸叧闂湰娆¤埅鐝悗锛屽簲缁熻鍙戞斁鐧绘満鐗岀殑鏁伴噺锛屽苟涓庣娓郴缁熶腑鐨勪汉鏁般�佽鏉庝欢鏁般�佽鏉庤川閲忚繘琛屾牳瀵癸紝鐢ㄥ璁叉満涓庤鏉庢埧鏍稿琛屾潕浠舵暟銆傚鏋滆揣杩愭敹杩愪簡鍥㈤槦琛屾潕锛屽簲灏嗕欢鏁板拰璐ㄩ噺閫氱煡璇ヨ埅鐝�兼満鍛橈紝鍊兼満鍛樺簲鍙婃椂灏嗚鏉庝欢鏁般�佽川閲忓姞鍏ョ娓绠楁満绯荤粺涓紝浠ヤ究閰嶈浇鍛橀厤杞戒互鍙婃牳瀵广��
@@ -1169,7 +1234,7 @@
                             <td class="center w20">搴忓彿</td>
                             <td class="center" colspan="2">妫�鏌ヤ簨椤�</td>
                             <td class="center w15">缁勯暱绛惧瓧</td>
-                        </tr> 
+                        </tr>
                         <tr class="table-tr-bc">
                             <td class="center">
                                 <input v-model="tableData.teskTableThree.three" class="table-input-border fz-14"
@@ -1300,7 +1365,7 @@
                     <p class="p-odd">锛�2锛夋瘡缁勬垚鍛橀�夊畾瑙掕壊锛屼娇鐢ㄧ櫥鏈虹墝銆佽鏉庣鍜岃鏉庢潯绛夊紑灞曚箻鏈烘墜缁殑鍔炵悊娲诲姩銆�</p>
                     <p class="left p-oddd"><span class="bj2">鑷垜璇勪环鈻�</span></p>
                     <textarea v-model="questionData.teskThree.three" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                    class="fz-16 mr-9 textarea-box" @change="setBookQuestion"></textarea>
+                        class="fz-16 mr-9 textarea-box" @change="setBookQuestion"></textarea>
                 </div>
             </div>
         </div>
@@ -1311,6 +1376,8 @@
 </template>
 
 <script>
+import { getResourcePath } from "@/assets/methods/resources";
+import { getCollectResource, setCollectResource } from "@/assets/methods/resources";
 export default {
     name: "chapterFive",
     props: {
@@ -1320,6 +1387,19 @@
     },
     data() {
         return {
+            collectImg: require("../../assets/images/icon/heart.png"),
+            collectCheck: require("../../assets/images/icon/heart-check.png"),
+            videoPathOne: "",
+            videoPathTwo: "",
+            videoPathThree: "",
+            videoPathFour: "",
+            collectResourceList: [],
+            chapterData: {
+                isCollectVideo: false,
+                isCollectVideo01: false,
+                isCollectVideo02: false,
+                isCollectVideo03: false,
+            },
             questionData: {
                 teskOne: {
                     one: "",
@@ -1398,17 +1478,17 @@
                     twelve: "",
                     thirteen: "",
                     fourteen: "",
-                    fifteen:"",
-                    sixteen:"",
-                    seventeen:"",
-                    eighteen:"",
-                    nineteen:"",
-                    twenty:"",
+                    fifteen: "",
+                    sixteen: "",
+                    seventeen: "",
+                    eighteen: "",
+                    nineteen: "",
+                    twenty: "",
                 },
             },
         };
     },
-    mounted() {
+    async mounted() {
         const bookQuestion = localStorage.getItem("aviation-book-chapter05");
         if (bookQuestion) {
             this.questionData = JSON.parse(bookQuestion);
@@ -1418,8 +1498,72 @@
             this.tableData = JSON.parse(bookTableData);
         }
 
+        const choiceQuestion = localStorage.getItem("aviation-book-chapter05-Data");
+        if (choiceQuestion) {
+            this.chapterData = JSON.parse(choiceQuestion);
+        }
+        this.getVidoePath();
+        this.collectResourceList = await getCollectResource(this.config.activeBook.bookId)
     },
     methods: {
+        async getVidoePath() {
+            this.videoPathOne = await getResourcePath(
+                "665da7513bb7123d5bae84feae3cd6d6"
+            );
+            this.videoPathTwo = await getResourcePath(
+                "d54fca9b232c021dbd52762af605c926"
+            );
+            this.videoPathThree = await getResourcePath(
+                "42a9fba9050e235ec7511ba0c4b2c0b4"
+            );
+            this.videoPathFour = await getResourcePath(
+                "e30cc3eb8514972b784bcfcacb82d26f"
+            );
+        },
+        handleCollect(e) {
+            if (e == 'video-01') {
+                this.handleCollectResource("665da7513bb7123d5bae84feae3cd6d6", "665da7513bb7123d5bae84feae3cd6d6", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩簲 瀵煎叆_1')
+                this.chapterData.isCollectVideo = !this.chapterData.isCollectVideo
+            } else if (e == 'video-02') {
+                this.handleCollectResource("d54fca9b232c021dbd52762af605c926", "d54fca9b232c021dbd52762af605c926", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩簲 浠诲姟1')
+                this.chapterData.isCollectVideo01 = !this.chapterData.isCollectVideo01
+            } else if (e == 'video-03') {
+                this.handleCollectResource("42a9fba9050e235ec7511ba0c4b2c0b4", "42a9fba9050e235ec7511ba0c4b2c0b4", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩簲 浠诲姟浜�')
+                this.chapterData.isCollectVideo02 = !this.chapterData.isCollectVideo02
+            } else if (e == 'video-04') {
+                this.handleCollectResource("e30cc3eb8514972b784bcfcacb82d26f", "e30cc3eb8514972b784bcfcacb82d26f", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩簲 浠诲姟涓塤1')
+                this.chapterData.isCollectVideo03 = !this.chapterData.isCollectVideo03
+            }
+            this.handleChapterData();
+        },
+
+        //璧勬簮鏀惰棌浜嬩欢
+        // 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)
+        },
+        handleChapterData() {
+            localStorage.setItem(
+                "aviation-book-chapter05-Data",
+                JSON.stringify(this.chapterData)
+            );
+        },
         setBookQuestion() {
             localStorage.setItem(
                 "aviation-book-chapter05",
diff --git a/src/books/aviationBasicSkills/view/components/chapter006.vue b/src/books/aviationBasicSkills/view/components/chapter006.vue
index 4b451fb..82b71d7 100644
--- a/src/books/aviationBasicSkills/view/components/chapter006.vue
+++ b/src/books/aviationBasicSkills/view/components/chapter006.vue
@@ -22,6 +22,22 @@
                         <p class="bj-1-zt">3.鍏峰鍗辨満鎰忚瘑鍜屸�滃畨鍏ㄨ矗浠婚噸浜庢嘲灞扁�濈殑璐d换鎰忚瘑銆�</p>
                         <p class="bj-1-zt">4.鍏峰浼樿川鐨勬枃鏄庢湇鍔℃剰璇嗭紝鏂囨槑鎵у嫟銆佺儹鎯呮湇鍔°��</p>
                         <p><br></p>
+                        <div class="video-box-cover">
+                            <p class="center text">
+                                <video :src="videoPathOne" webkit-playsinline="true" x-webkit-airplay="true"
+                                    playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                    x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                    style=" border-radius: 10px; "></video>
+                            </p>
+                            <p class="center videoname">
+                                <span>瑙嗛锛氶」鐩叚 瀵煎叆 </span>
+                                <el-tooltip class="item" effect="dark"
+                                    :content="chapterData.isCollectVideo ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                    <img :src="collectResourceList.findIndex(item => item.id == 'a83b9d9ab22d0fd1d84990df6f1b127e') > -1 ? collectCheck : collectImg"
+                                        alt="" class="collect-btn" @click="handleCollect('video-01')" />
+                                </el-tooltip>
+                            </p>
+                        </div>
                         <p><br></p>
                     </div>
                 </div>
@@ -78,6 +94,22 @@
                     <p class="p-odd">鈶℃梾瀹㈠埌杈惧畨妫�閫氶亾鍓嶄紶浣嶇疆锛屽皢鎵嬫彁琛屾潕涓庤韩涓婄殑灏忎欢閲戝睘鐗╁搧鏀剧疆鍦╔灏勭嚎鏈轰紶閫佸甫涓婂苟杩囨満妫�鏌ャ��</p>
                     <p class="p-odd">鈶㈡寜鐓у墠浼犳鏌ュ憳鐨勬寚寮曪紝鏃呭閫氳繃閲戝睘鎺㈡祴闂ㄥ苟鎺ュ彈浜鸿韩妫�鏌ャ��</p>
                     <p class="p-odd">鈶e鎵嬫彁琛屾潕闇�瑕佸紑绠�/鍖呮鏌ワ紝鏃呭搴旈厤鍚堝畨妫�浜哄憳妫�鏌ャ��</p>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathTwo" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩叚 椤圭洰涓� </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo01 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == 'f82bcad075774964b82ae8aa43d9a7f0') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-02')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h3 id="c054" class="p-odd"><span class="zt-h4 unit2-c">鍥涖��</span><span
                             class="qyls-h4 unit2-c">瀹夋鐨勫噯澶囧強瀹炴柦</span></h3>
                     <p class="p-odd">
@@ -362,6 +394,22 @@
                         <p class="p-even">鈶ゅ綍鍏ヤ俊鎭苟鐩栫珷銆傚皢鐧绘満鐗屼俊鎭拰鏃呭淇℃伅褰曞叆瀹夋淇℃伅绠$悊绯荤粺锛屼互澶囨煡鐢ㄣ�傛煡楠屾棤璇悗锛屾寜瑙勫畾鍦ㄧ櫥鏈虹墝涓婂姞鐩栭獙璁珷銆�</p>
                     </span>
                     <p class="p-even">鈶ョエ璇佹暣鐞嗐�傚皢鏃呭鐨勭エ璇佹暣鐞嗘暣榻愶紝鍙屾墜灏嗚瘉浠躲�佺櫥鏈虹墝銆佸绁ㄩ�掕繕缁欐梾瀹紝骞剁洰瑙嗘梾瀹㈤亾璋€��</p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathThree" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩叚 椤圭洰浜� </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo02 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == 'f9b156c70fc8d593f0095ef535360551') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-03')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h3 id="c057" class="p-even"><span class="zt-h4 unit2-c">涓夈��</span><span
                             class="qyls-h4 unit2-c">璇佷欢妫�鏌ョ殑鏂规硶</span></h3>
                     <p class="p-even">妫�鏌ヨ瘉浠舵椂搴旈噰鍙栨鏌ャ�佽瀵熷拰璇㈤棶鐩哥粨鍚堢殑鏂规硶锛屽叿浣撲负涓�鐪嬨�佷簩瀵广�佷笁闂��</p>
@@ -607,16 +655,19 @@
                         </tr>
                     </table>
                     <p class="left p-even"><span class="bj2">鎷撳睍璁粌鈻�</span></p>
-                    <p class=" p-even">1.妫�鏌ヨ瘉浠舵椂搴旈噰鍙�<input v-model="questionData.teskTwo.three" class="input-bottom-border fz-14"
-                        @change="setBookQuestion" />銆�<input v-model="questionData.teskTwo.four" class="input-bottom-border fz-14"
-                        @change="setBookQuestion" />鍜�<input v-model="questionData.teskTwo.five" class="input-bottom-border fz-14"
-                        @change="setBookQuestion" />鐩哥粨鍚堢殑鏂规硶锛屽叿浣撲负<input v-model="questionData.teskTwo.six" class="input-bottom-border fz-14"
-                        @change="setBookQuestion" />銆�<input v-model="questionData.teskTwo.seven" class="input-bottom-border fz-14"
-                        @change="setBookQuestion" />銆�<input v-model="questionData.teskTwo.eight" class="input-bottom-border fz-14"
-                        @change="setBookQuestion" />銆�</p>
+                    <p class=" p-even">1.妫�鏌ヨ瘉浠舵椂搴旈噰鍙�<input v-model="questionData.teskTwo.three"
+                            class="input-bottom-border fz-14" @change="setBookQuestion" />銆�<input
+                            v-model="questionData.teskTwo.four" class="input-bottom-border fz-14"
+                            @change="setBookQuestion" />鍜�<input v-model="questionData.teskTwo.five"
+                            class="input-bottom-border fz-14" @change="setBookQuestion" />鐩哥粨鍚堢殑鏂规硶锛屽叿浣撲负<input
+                            v-model="questionData.teskTwo.six" class="input-bottom-border fz-14"
+                            @change="setBookQuestion" />銆�<input v-model="questionData.teskTwo.seven"
+                            class="input-bottom-border fz-14" @change="setBookQuestion" />銆�<input
+                            v-model="questionData.teskTwo.eight" class="input-bottom-border fz-14"
+                            @change="setBookQuestion" />銆�</p>
                     <p class=" p-even">2.绠�杩伴獙璇佸矖浣嶄汉鍛樻墽鍕ゆ椂鐨勬敞鎰忎簨椤广��</p>
                     <textarea v-model="questionData.teskTwo.nine" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                    class="fz-16  textarea-box-left" @change="setBookQuestion"></textarea>
+                        class="fz-16  textarea-box-left" @change="setBookQuestion"></textarea>
                     <p class="left p-even"><span class="bj2">鑷垜璇勪环鈻�</span></p>
                     <textarea v-model="questionData.teskTwo.ten" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
                         class="fz-16  textarea-box-left" @change="setBookQuestion"></textarea>
@@ -681,6 +732,22 @@
                     </p>
                     <p class="p-even">鈶ㄨ吂閮ㄣ�傝吂閮ㄧ┖闂磋緝澶э紝鏄撹棌鍖跨浉瀵瑰ぇ鍨嬬殑鍗遍櫓鍝佸拰杈冨鐨勮繚绂佸搧锛屼粠澶栬〃涓婁笉鏄撶湅鍑猴紝椤婚�氳繃鎽搞�佹寜銆佸帇绛夋柟娉曚粠涓ユ鏌ャ��</p>
                     <p class="p-even">鈶╄剼閮ㄣ�傝剼閮ㄥ鏄撹棌鍖挎灙鏀�佺偢鑽�佸瓙寮广�佸垁鍏风瓑銆�</p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathFour" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩叚 椤圭洰涓� </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo03 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '9e3e5573e2af66a565039ee9f4c9bb0e') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-04')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h3 id="c061" class="p-even"><span class="zt-h4  unit2-c">涓夈��</span><span
                             class="qyls-h4  unit2-c">浜鸿韩妫�鏌ョ殑閲嶇偣瀵硅薄</span></h3>
                     <p class="p-even">瀵规梾瀹㈣繘琛屼汉韬鏌ユ椂锛屾湁涓嬪垪鎯呭喌涔嬩竴鑰咃紝搴斿垪涓洪噸鐐规鏌ュ璞★紝瑕佺壒鍒敞鎰忎粠涓ヤ粩缁嗘鏌ャ��</p>
@@ -1003,6 +1070,22 @@
                     <p class="p-odd">鈶﹀崗鍔╃墿涓诲鍘熺/鍖咃紝骞跺皢绠�/鍖呯Щ閫乆灏勭嚎鏈哄鏌ャ��</p>
                     <p class="p-odd">鈶ф鏌ュ畬姣曞悗鎻愰啋鐗╀富鎼哄甫濂介殢韬墿鍝侊紙濡傜櫥鏈虹墝銆佽韩浠借瘉銆佹墜鏈恒�佺溂闀滅瓑锛夛紝闃叉鍏剁寮�鏃堕仐鐣欑墿鍝併��</p>
                     <p class="p-odd">鈶ㄩ亣鏈夎繃妫�浜哄憳鎼哄甫涓嶆効鎰忔帴鍙梄灏勭嚎鏈烘鏌ョ殑鐗╁搧锛屽簲杩涜鎵嬪伐妫�鏌ャ��</p>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathFive" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩叚 椤圭洰鍥� </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo04 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '68ae02257e5c82558a4b224770bd1ab6') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-05')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h3 id="c065" class="p-odd"><span class="zt-h4 unit2-c">浜屻��</span><span
                             class="qyls-h4 unit2-c">寮�绠�/鍖呮鏌ョ殑鏂规硶</span></h3>
                     <p class="p-odd">妫�鏌ヨ繃绋嬩腑锛屼竴鑸�氳繃浜虹殑鐪笺�佽�炽�侀蓟銆佹墜绛夎繘琛屾鏌ワ紝寮�绠�/鍖呮鏌ュ憳搴旀牴鎹墿鍝佺绫婚噰鍙栫浉搴旂殑鏂规硶锛堢湅銆佸惉銆佸梾銆佹懜銆佹媶銆佹巶銆佹崗銆佹帰銆佹憞锛夎繘琛屾鏌ャ��</p>
@@ -1256,13 +1339,13 @@
                     <p class="left p-odd"><span class="bj2">鎷撳睍璁粌鈻�</span></p>
                     <p class=" p-odd">1.琛屾潕寮�绠�/鍖呮鏌ュ憳鍦ㄥ矖浣嶄笂鍙戠幇涓�鍚嶈�佷汉灏嗘按鏋滃垁钘忓湪闆ㄤ紴閲岋紝璇ュ浣曟搷浣滐紵</p>
                     <textarea v-model="questionData.teskFour.three" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                    class="fz-16 textarea-box-right" @change="setBookQuestion"></textarea>
+                        class="fz-16 textarea-box-right" @change="setBookQuestion"></textarea>
                     <p class=" p-odd">2.濡備綍鏈夋晥閬垮厤寮�绠�/鍖呰繃绋嬩腑杩濈鍝佽杞Щ锛�</p>
                     <textarea v-model="questionData.teskFour.four" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                    class="fz-16 textarea-box-right" @change="setBookQuestion"></textarea>
+                        class="fz-16 textarea-box-right" @change="setBookQuestion"></textarea>
                     <p class="left p-odd"><span class="bj2">鑷垜璇勪环鈻�</span></p>
                     <textarea v-model="questionData.teskFour.five" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                    class="fz-16 textarea-box-right" @change="setBookQuestion"></textarea>
+                        class="fz-16 textarea-box-right" @change="setBookQuestion"></textarea>
                 </div>
             </div>
         </div>
@@ -1274,6 +1357,8 @@
 </template>
 
 <script>
+import { getResourcePath } from "@/assets/methods/resources";
+import { getCollectResource, setCollectResource } from "@/assets/methods/resources";
 export default {
     name: "chapterSix",
     props: {
@@ -1283,6 +1368,21 @@
     },
     data() {
         return {
+            collectImg: require("../../assets/images/icon/heart.png"),
+            collectCheck: require("../../assets/images/icon/heart-check.png"),
+            videoPathOne: "",
+            videoPathTwo: "",
+            videoPathThree: "",
+            videoPathFour: "",
+            videoPathFive: "",
+            collectResourceList: [],
+            chapterData: {
+                isCollectVideo: false,
+                isCollectVideo01: false,
+                isCollectVideo02: false,
+                isCollectVideo03: false,
+                isCollectVideo04: false,
+            },
             questionData: {
                 teskOne: {
                     one: "",
@@ -1385,7 +1485,7 @@
             },
         };
     },
-    mounted() {
+    async mounted() {
         const bookQuestion = localStorage.getItem("aviation-book-chapter06");
         if (bookQuestion) {
             this.questionData = JSON.parse(bookQuestion);
@@ -1395,8 +1495,80 @@
             this.tableData = JSON.parse(bookTableData);
         }
 
+        const choiceQuestion = localStorage.getItem("aviation-book-chapter06-Data");
+        if (choiceQuestion) {
+            this.chapterData = JSON.parse(choiceQuestion);
+        }
+        this.getVidoePath();
+        this.collectResourceList = await getCollectResource(this.config.activeBook.bookId)
+
     },
     methods: {
+        async getVidoePath() {
+            this.videoPathOne = await getResourcePath(
+                "a83b9d9ab22d0fd1d84990df6f1b127e"
+            );
+            this.videoPathTwo = await getResourcePath(
+                "f82bcad075774964b82ae8aa43d9a7f0"
+            );
+            this.videoPathThree = await getResourcePath(
+                "f9b156c70fc8d593f0095ef535360551"
+            );
+            this.videoPathFour = await getResourcePath(
+                "9e3e5573e2af66a565039ee9f4c9bb0e"
+            );
+            this.videoPathFive = await getResourcePath(
+                "68ae02257e5c82558a4b224770bd1ab6"
+            );
+        },
+        handleCollect(e) {
+            if (e == 'video-01') {
+                this.handleCollectResource("a83b9d9ab22d0fd1d84990df6f1b127e", "a83b9d9ab22d0fd1d84990df6f1b127e", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩叚 瀵煎叆')
+                this.chapterData.isCollectVideo = !this.chapterData.isCollectVideo
+            } else if (e == 'video-02') {
+                this.handleCollectResource("f82bcad075774964b82ae8aa43d9a7f0", "f82bcad075774964b82ae8aa43d9a7f0", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩叚 浠诲姟涓�')
+                this.chapterData.isCollectVideo01 = !this.chapterData.isCollectVideo01
+            } else if (e == 'video-03') {
+                this.handleCollectResource("f9b156c70fc8d593f0095ef535360551", "f9b156c70fc8d593f0095ef535360551", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩叚 浠诲姟浜�')
+                this.chapterData.isCollectVideo02 = !this.chapterData.isCollectVideo02
+            } else if (e == 'video-04') {
+                this.handleCollectResource("9e3e5573e2af66a565039ee9f4c9bb0e", "9e3e5573e2af66a565039ee9f4c9bb0e", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩叚 浠诲姟涓�')
+                this.chapterData.isCollectVideo03 = !this.chapterData.isCollectVideo03
+            } else if (e == 'video-05') {
+                this.handleCollectResource("68ae02257e5c82558a4b224770bd1ab6", "68ae02257e5c82558a4b224770bd1ab6", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩叚 浠诲姟鍥�')
+                this.chapterData.isCollectVideo04 = !this.chapterData.isCollectVideo04
+            }
+            this.handleChapterData();
+        },
+
+        //璧勬簮鏀惰棌浜嬩欢
+        // 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)
+        },
+        handleChapterData() {
+            localStorage.setItem(
+                "aviation-book-chapter06-Data",
+                JSON.stringify(this.chapterData)
+            );
+        },
+
         setBookQuestion() {
             localStorage.setItem(
                 "aviation-book-chapter06",
diff --git a/src/books/aviationBasicSkills/view/components/chapter007.vue b/src/books/aviationBasicSkills/view/components/chapter007.vue
index 8aaf23e..cb05398 100644
--- a/src/books/aviationBasicSkills/view/components/chapter007.vue
+++ b/src/books/aviationBasicSkills/view/components/chapter007.vue
@@ -19,9 +19,22 @@
                         <p class="bj-1-zt">2.鍏峰楂樼灮杩滅灘鐨勯暱杩滃彂灞曠溂鍏夊拰澶у眬鎰忚瘑銆�</p>
                         <p class="bj-1-zt">3.鍩瑰吇姹傜湡鍔″疄銆佸紑鎷撳垱鏂扮殑鑱屼笟绮剧銆�</p>
                         <p><br></p>
-                        <p><br></p>
-                        <p><br></p>
-                        <p><br></p>
+                        <div class="video-box-cover">
+                            <p class="center text">
+                                <video :src="videoPathOne" webkit-playsinline="true" x-webkit-airplay="true"
+                                    playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                    x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                    style=" border-radius: 10px; "></video>
+                            </p>
+                            <p class="center videoname">
+                                <span>瑙嗛锛氶」鐩竷 瀵煎叆 </span>
+                                <el-tooltip class="item" effect="dark"
+                                    :content="chapterData.isCollectVideo ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                    <img :src="collectResourceList.findIndex(item => item.id == 'c0403607aa0c9a35d065bcc476b48644') > -1 ? collectCheck : collectImg"
+                                        alt="" class="collect-btn" @click="handleCollect('video-01')" />
+                                </el-tooltip>
+                            </p>
+                        </div>
                         <p><br></p>
                     </div>
                 </div>
@@ -82,6 +95,22 @@
                     <p class="p-odd">鈶㈡帴寰呫�傛帴寰呭ソ璐靛涔嬪悗杩涜绠�鍗曠殑浜烘枃鍏虫��锛岃闂叾鏄惁闇�瑕佸叾浠栨湇鍔°��</p>
                     <p class="p-odd">鈶e府鍔╁叾鍔炵悊鐩稿叧鎵嬬画銆傚鏋滆吹瀹鹃渶瑕佽浆鏈猴紝甯姪鍏舵洿鎹㈣浆鏈虹櫥鏈虹墝锛涘鏋滆吹瀹惧凡鍒拌揪鐩殑鍦帮紝甯姪鍏舵彁鍙栨墭杩愮殑琛屾潕銆�</p>
                     <p class="p-odd">鈶ら�佸埆銆傚皢璐靛閫佽嚦涓嬩竴绋嬮鏈虹殑鐧绘満鍙o紝鎴栨槸鎺ュ緟杞﹁締涓婏紝鐒跺悗绀艰矊閫佸埆锛岀洰閫佸叾绂诲幓鍚庢柟鍙浆韬寮�銆�</p>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathTwo" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩竷 浠诲姟1 </span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo01 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '96619d3fc49979dd1373ec1a944f45c4') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-02')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <p class="left p-odd"><span class="bj2">浠诲姟宸ュ崟鈻�</span></p>
                     <table border="1" cellpadding="4" cellspacing="0"
                         style="border-color: #5192c6; border-collapse: collapse" class="fz-15 mr-9">
@@ -357,6 +386,22 @@
                         鎵樼洏琛岃蛋杩囩▼涓紝濡傛灉闇�瑕佸彇鐢ㄧ洏鍐呯墿鍝侊紝绉颁负鍗哥洏銆傚嵏鐩樻椂锛岀敤鍙虫墜鍙栬蛋鐩樺唴鎵�闇�鐗╁搧锛屽悓鏃跺簲娉ㄦ剰鐩樺唴鐗╁搧鐨勫彉鍖栵紝鐢ㄥ乏鎵嬫墜鎸囩殑鍔涢噺鏉ヨ皟鏁存墭鐩橀噸蹇冦�傚簲浠庡墠鍚庡乏鍙充氦鏇夸娇鐢ㄧ洏鍐呯墿鍝併��</p>
                     <p class="p-odd">鎵樼洏琛岃蛋杩囩▼涓紝濡傛灉闇�瑕佸皢鎵�鎵樼墿鍝佹暣涓斁鍒板伐浣滃彴闈笂锛岀О涓鸿惤鎵樸�傝惤鎵樻椂锛屽簲宸﹁剼鍚戝墠锛岀敤鍙虫墜鍗忓姪宸︽墜鎶婃墭鐩樺皬蹇冨湴鎺ㄨ嚦宸ヤ綔鍙伴潰涓婏紝鏀剧ǔ鍚庢寜鐓т粠鍐呭埌澶栫殑椤哄簭鍙栫敤鐩樺唴鐗╁搧銆�
                     </p>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathThree" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩竷 浠诲姟浜� 鎵樼洏鏈嶅姟</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo02 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '086dffc37acf667071bcf9d3090e2f96') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-03')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                 </div>
             </div>
         </div>
@@ -375,6 +420,38 @@
                     <p class="p-even">绗笁锛屼换浣曟椂鍊欙紝閮戒笉鑳芥嫀鐫�鎵樼洏琛岃蛋锛屼篃涓嶅彲鐜╂垨杞墭鐩樸��</p>
                     <p class="p-even">绗洓锛屽湪瑁呮棤鐩栫殑椋熺墿銆侀ギ鏂欐椂锛岃鏀惧湪绂诲ご閮ㄨ繙鐨勪竴杈癸紝浠ュ厤琛岃蛋杩囩▼涓惤鍏ュご鍙戙��</p>
                     <p class="p-even">绗簲锛岃娉ㄦ剰闈犲彸璧帮紝骞舵敞鎰忓墠鍚庡乏鍙崇殑鎯呭喌锛岃璧版椂涓嶅緱鎬ュ仠鎴栫獊鐒惰浆韬��</p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathFour" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩竷 浠诲姟浜� 鎵樼洏婕旂ず1</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo03 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '9341abb61ad16f2c04e11011f207b88c') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-04')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathFive" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩竷 浠诲姟浜� 鎵樼洏婕旂ず2</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo04 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '224496c95a0c6db70932e95712503023') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-05')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <div class="bj5 ml-9">
                         <div class="bj5-xyx">
                             <p class="td-0"><span class="bj5-xyx">璇惧爞鐮旇</span></p>
@@ -626,6 +703,22 @@
                         鑺辫尪锛屽ぇ澶氭槸閫夌敤鑺抽娴撻儊鍜岀粡杩囩簿宸ョ粏鍒剁殑缁胯尪绐ㄥ埗鑰屾垚锛岃尪寮曡姳棣欍�傝姳鑼朵腑浠ヨ寜鑾夎姳鑼跺眳澶氾紝涔熸渶鍙椾汉浠殑鍠滅埍銆傛场楗姳鑼跺鐢ㄧ摲鏉紝鍙栦竴鎾姳鑼剁疆浜庢澂鍐咃紝鐢ㄦ哺姘村啿娉★紝鍔犵洊鍥涗簲鍒嗛挓鍚庡嵆鍙搧楗�傚楗尪浜烘暟杈冨锛屽線寰�閲囩敤澹堕ギ娉曪紝鍗冲皢閫傞噺鐨勮姳鑼剁疆浜庡6鍐咃紝鍐叉场鍥涗簲鍒嗛挓鍚庯紝鍊掑叆鑼舵澂鎴栬尪纰椾腑楗敤銆�
                     </p>
                     <p class="p-odd">鑺辫尪鐨勯ギ娉曪紝涓庢櫘閫氱豢鑼剁浉浠匡紝浣嗛渶鐗瑰埆娉ㄦ剰闃叉棣欐皵鐨勬暎澶便�備娇鐢ㄧ殑鑼跺叿鏈�濂介�夌敤鐧界摲鏈夌洊鑼舵澂锛屼互琛墭鑺辫尪鍥烘湁鐨勬堡鑹诧紝淇濇寔鑺辫尪鐨勮姵棣欍��</p>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathSix" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩竷 浠诲姟涓� 鑼舵按鏈嶅姟</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo05 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == 'b9e445e4e0148ac62c747ac30f517409') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-06')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h3 id="c076" class="p-odd"><span class="zt-h4 unit3-c">浜屻��</span><span
                             class="qyls-h4 unit3-c">鑼舵按鏈嶅姟娴佺▼</span></h3>
                     <h4 id="d145" class="p-odd">锛堜竴锛夊噯澶囦簨椤�</h4>
@@ -666,6 +759,38 @@
                     <p class="p-even">
                         娣绘按鏃讹紝濡傛灉鏄湁鐩栫殑鏉瓙锛屽垯鐢ㄥ彸鎵嬩腑鎸囧拰鏃犲悕鎸囧皢鏉洊澶逛綇锛岃交杞绘姮璧枫�傚ぇ鎷囨寚銆侀鎸囧拰灏忔媷鎸囧皢鏉瓙鎷胯捣锛屼晶瀵规梾瀹紝鐢ㄥ乏鎵嬫嬁瀹瑰櫒娣绘按銆傚悓鏍烽�掕嚦鏃呭鍙虫墜涓婃柟5锝�10鍘樼背澶勶紝鏈夋焺鐨勬澂瀛愬垯灏嗘焺杞嚦鍙充晶銆�
                     </p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathSeven" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩竷 浠诲姟涓� 鑼舵按婕旂ず1</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo06 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == 'dc3712c490fc4180adcb7b7cb3662196') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-07')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathEight" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩竷 浠诲姟涓� 鑼舵按婕旂ず2</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo07 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '27c019708f12bd652ffb9dc9d300467e') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-08')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <p class="left p-even"><span class="bj2">浠诲姟宸ュ崟鈻�</span></p>
                     <table border="1" cellpadding="4" cellspacing="0"
                         style="border-color: #5192c6; border-collapse: collapse; width: 91%;" class="fz-15 ml-9">
@@ -854,10 +979,10 @@
                     </p>
                     <p>鎬濊�冿細灏忔潕鍦ㄦ湇鍔′腑瀛樺湪浠�涔堥棶棰橈紵</p>
                     <textarea v-model="questionData.teskThree.two" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                    class="fz-16  textarea-box-right" @change="setBookQuestion"></textarea>
+                        class="fz-16  textarea-box-right" @change="setBookQuestion"></textarea>
                     <p class="left"><span class="bj2">鑷垜璇勪环鈻�</span></p>
                     <textarea v-model="questionData.teskThree.three" placeholder="璇疯緭鍏ュ唴瀹�" rows="6"
-                    class="fz-16  textarea-box-right" @change="setBookQuestion"></textarea>
+                        class="fz-16  textarea-box-right" @change="setBookQuestion"></textarea>
                 </div>
             </div>
         </div>
@@ -868,6 +993,8 @@
 </template>
 
 <script>
+import { getResourcePath } from "@/assets/methods/resources";
+import { getCollectResource, setCollectResource } from "@/assets/methods/resources";
 export default {
     name: "chapterSeven",
     props: {
@@ -877,6 +1004,27 @@
     },
     data() {
         return {
+            collectImg: require("../../assets/images/icon/heart.png"),
+            collectCheck: require("../../assets/images/icon/heart-check.png"),
+            videoPathOne: "",
+            videoPathTwo: "",
+            videoPathThree: "",
+            videoPathFour: "",
+            videoPathFive: "",
+            videoPathSix: "",
+            videoPathSeven: "",
+            videoPathEight: "",
+            collectResourceList: [],
+            chapterData: {
+                isCollectVideo: false,
+                isCollectVideo01: false,
+                isCollectVideo02: false,
+                isCollectVideo03: false,
+                isCollectVideo04: false,
+                isCollectVideo05: false,
+                isCollectVideo06: false,
+                isCollectVideo07: false,
+            },
             questionData: {
                 teskOne: {
                     one: "",
@@ -940,7 +1088,7 @@
             },
         };
     },
-    mounted() {
+    async mounted() {
         const bookQuestion = localStorage.getItem("aviation-book-chapter07");
         if (bookQuestion) {
             this.questionData = JSON.parse(bookQuestion);
@@ -950,8 +1098,99 @@
             this.tableData = JSON.parse(bookTableData);
         }
 
+        const choiceQuestion = localStorage.getItem("aviation-book-chapter07-Data");
+        if (choiceQuestion) {
+            this.chapterData = JSON.parse(choiceQuestion);
+        }
+
+        this.getVidoePath();
+        this.collectResourceList = await getCollectResource(this.config.activeBook.bookId)
+
     },
     methods: {
+        async getVidoePath() {
+            this.videoPathOne = await getResourcePath(
+                "c0403607aa0c9a35d065bcc476b48644"
+            );
+            this.videoPathTwo = await getResourcePath(
+                "96619d3fc49979dd1373ec1a944f45c4"
+            );
+            this.videoPathThree = await getResourcePath(
+                "086dffc37acf667071bcf9d3090e2f96"
+            );
+            this.videoPathFour = await getResourcePath(
+                "9341abb61ad16f2c04e11011f207b88c"
+            );
+            this.videoPathFive = await getResourcePath(
+                "224496c95a0c6db70932e95712503023"
+            );
+            this.videoPathSix = await getResourcePath(
+                "b9e445e4e0148ac62c747ac30f517409"
+            );
+            this.videoPathSeven = await getResourcePath(
+                "dc3712c490fc4180adcb7b7cb3662196"
+            );
+            this.videoPathEight = await getResourcePath(
+                "27c019708f12bd652ffb9dc9d300467e"
+            );
+        },
+        handleCollect(e) {
+            if (e == 'video-01') {
+                this.handleCollectResource("c0403607aa0c9a35d065bcc476b48644", "c0403607aa0c9a35d065bcc476b48644", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩竷 瀵煎叆')
+                this.chapterData.isCollectVideo = !this.chapterData.isCollectVideo
+            } else if (e == 'video-02') {
+                this.handleCollectResource("96619d3fc49979dd1373ec1a944f45c4", "96619d3fc49979dd1373ec1a944f45c4", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩竷 浠诲姟1')
+                this.chapterData.isCollectVideo01 = !this.chapterData.isCollectVideo01
+            } else if (e == 'video-03') {
+                this.handleCollectResource("086dffc37acf667071bcf9d3090e2f96", "086dffc37acf667071bcf9d3090e2f96", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩竷 浠诲姟2 鎵樼洏鏈嶅姟')
+                this.chapterData.isCollectVideo02 = !this.chapterData.isCollectVideo02
+            } else if (e == 'video-04') {
+                this.handleCollectResource("9341abb61ad16f2c04e11011f207b88c", "9341abb61ad16f2c04e11011f207b88c", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩竷 浠诲姟2 鎵樼洏婕旂ず1')
+                this.chapterData.isCollectVideo03 = !this.chapterData.isCollectVideo03
+            } else if (e == 'video-05') {
+                this.handleCollectResource("224496c95a0c6db70932e95712503023", "224496c95a0c6db70932e95712503023", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩竷 浠诲姟2 鎵樼洏婕旂ず2')
+                this.chapterData.isCollectVideo04 = !this.chapterData.isCollectVideo04
+            } else if (e == 'video-06') {
+                this.handleCollectResource("b9e445e4e0148ac62c747ac30f517409", "b9e445e4e0148ac62c747ac30f517409", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩竷 浠诲姟3 鑼舵按鏈嶅姟')
+                this.chapterData.isCollectVideo05 = !this.chapterData.isCollectVideo05
+            } else if (e == 'video-07') {
+                this.handleCollectResource("dc3712c490fc4180adcb7b7cb3662196", "dc3712c490fc4180adcb7b7cb3662196", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩竷 浠诲姟涓� 鑼舵按婕旂ず1')
+                this.chapterData.isCollectVideo06 = !this.chapterData.isCollectVideo06
+            } else if (e == 'video-08') {
+                this.handleCollectResource("27c019708f12bd652ffb9dc9d300467e", "27c019708f12bd652ffb9dc9d300467e", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩竷 浠诲姟涓� 鑼舵按婕旂ず2')
+                this.chapterData.isCollectVideo07 = !this.chapterData.isCollectVideo07
+            }
+            this.handleChapterData();
+        },
+
+        //璧勬簮鏀惰棌浜嬩欢
+        // 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)
+        },
+        handleChapterData() {
+            localStorage.setItem(
+                "aviation-book-chapter07-Data",
+                JSON.stringify(this.chapterData)
+            );
+        },
+
         setBookQuestion() {
             localStorage.setItem(
                 "aviation-book-chapter07",
diff --git a/src/books/aviationBasicSkills/view/components/chapter008.vue b/src/books/aviationBasicSkills/view/components/chapter008.vue
index 74377b7..8bfb26d 100644
--- a/src/books/aviationBasicSkills/view/components/chapter008.vue
+++ b/src/books/aviationBasicSkills/view/components/chapter008.vue
@@ -358,6 +358,22 @@
                     <p class="p-odd">鈶㈡墍鎵ц鑸彮鐨勯鏈烘満鍨嬨�侀鏈哄彿銆佸簲鎬ヨ澶囧垎甯冦��</p>
                     <p class="p-odd">鈶f墍鎵ц鑸彮鏌ヨ鏃堕棿褰撳墠鐨勬梾瀹汉鏁帮紝閲嶈鍙婄壒娈婃梾瀹俊鎭��</p>
                     <p class="p-odd">鈶ゆ墍鎵ц鑸彮褰撶彮閰嶉鎯呭喌绛夈��</p>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathOne" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩叓 浠诲姟4</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '9ff093ee1af1f2b46e50766576b15efe') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-01')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h4 id="d151" class="p-odd">锛堜簩锛夊鑸变箻鍔″憳鍦ㄦ墽琛岃埅鐝换鍔″墠搴斿涔犵殑鍐呭</h4>
                     <p class="p-odd">鈶犳墍鎵ц鑸彮鐨勮埅绾垮湴鐞嗘儏鍐碉紝椋炶秺鐨勭渷甯傘�佹渤娴併�佸北鑴夊強椋炶鏃堕棿銆佽窛绂汇�佹満鍦哄悕绉般�佺鍩庤窛绂荤瓑銆�</p>
                     <p class="p-odd">鈶″悇鍖哄煙鍙蜂綅鐨勫伐浣滆亴璐e強璇ラ鏈哄簲鎬ヨ澶囧垎甯冦�佸簲鎬ュ缃殑绋嬪簭銆�</p>
@@ -367,6 +383,22 @@
                     <p class="p-odd">鈶′釜浜鸿瘉浠讹紙瀹㈣埍涔樺姟鍛樿缁冨悎鏍艰瘉銆佺┖鍕ょ櫥鏈鸿瘉銆佷綋妫�鍚堟牸璇侊級锛屽苟纭繚鍦ㄦ湁鏁堟湡鍐呫��</p>
                     <p class="p-odd">鈶釜浜烘惡甯﹁祫鏂欙紙瀹㈣埍涔樺姟鍛樻墜鍐屻�佸鑸卞箍鎾瘝銆佽埍闂ㄦ搷浣滃崟绛夛級銆�</p>
                     <p class="p-odd">鈶d釜浜烘惡甯︾墿鍝侊紙绗斻�佷究绛俱�佸洿瑁欍�佸寲濡嗗搧銆佸鐢ㄤ笣琚溿�佽蛋鏃跺噯纭殑鎵嬭〃绛夛級銆�</p>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathTwo" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩叓 浠诲姟5</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo01 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '7303452278e8ff8c86f9320d9dfdb06c') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-02')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h3 id="c080" class="p-odd"><span class="zt-h4 unit4-c">浜屻��</span><span
                             class="qyls-h4 unit4-c">鍙傚姞鑸墠鍑嗗浼�</span></h3>
                     <h4 id="d153" class="p-odd">锛堜竴锛夎埅鍓嶅噯澶囦細绛惧埌</h4>
@@ -391,6 +423,22 @@
                     <p class="p-even">鈶よ鏄庡伐浣滅▼搴忋�侀椋熷強渚涘簲鍝侀厤澶囨儏鍐点��</p>
                     <p class="p-even">鈶ュ仛濂介鏈哄簲鎬ユ挙绂绘按/闄嗛妗堛��</p>
                     <p class="p-even">鈶︽彁鍑哄閲嶈鏃呭銆乂IP鏃呭鍙婄壒娈婃梾瀹㈢殑鏈嶅姟瑕佹眰銆�</p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathThree" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩叓 浠诲姟3</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo02 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '52e064fe476177beb5a3a3a7cdf3adb9') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-03')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h3 id="c081" class="p-even"><span class="zt-h4 unit4-c">涓夈��</span><span
                             class="qyls-h4 unit4-c">鎺ュ彈瀹夊叏妫�鏌ヨ繘鍏ユ満鍦洪殧绂诲尯骞朵笂鏈�</span></h3>
                     <p class="p-even">
@@ -1150,6 +1198,22 @@
                     <p class="p-even">鍦ㄩ琛岄樁娈碉紝涔樺姟鍛樻敞鎰忛殢鏃朵繚鎸佸鑸辫垝閫傘�佸畨闈欑殑鐜銆�</p>
                     <p class="p-even">闅忔椂淇濇寔瀹㈣埍銆佸帹鎴裤�佸崼鐢熼棿鐨勬暣娲併��</p>
                     <p class="p-even">濡傚鑸辫澶囧彂鐢熸晠闅滆鍙婃椂鎶ュ憡涔樺姟闀裤��</p>
+                    <div class="video-box">
+                        <p class="center text">
+                            <video :src="videoPathFour" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩叓 浠诲姟1</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo03 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '8feffd5d540faf91ed00b075591ae87c') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-04')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <h3 id="c087" class="p-even"><span class="zt-h4 unit4-c">涓夈��</span><span
                             class="qyls-h4 unit4-c">椋炴満涓嬮檷杩囩▼涓殑宸ヤ綔</span></h3>
                     <p class="p-even">椋炴満鐫�闄嗗墠30鍒嗛挓寮�濮嬩笅闄嶏紝姝ゆ椂杩涜涓嬮檷骞挎挱銆備箻鍔″憳鏍规嵁鍚勮嚜鍙蜂綅鑱岃矗瀹屾垚椋炴満涓嬮檷鏃剁殑宸ヤ綔銆�</p>
@@ -1402,6 +1466,38 @@
                     <p class="p-odd">
                         涔樺姟闀垮甫棰嗙粍鍛樿繘琛岃埅鍚庤璇勶紝鍙互閲囧彇涔樺姟闀夸竴涓�鐐硅瘎鎴栬�呬箻鍔″憳涓汉鐐硅瘎鐨勬柟寮忥紝瀵瑰綋娆¤埅鐝殑鏈嶅姟璐ㄩ噺鍙婂悇鏂归潰宸ヤ綔杩涜璇勪环锛屽鑸彮涓嚭鐜扮殑闂杩涜鍒嗘瀽鍙婃�荤粨銆備箻鍔″憳瑕佸瀹炲弽鏄犺埅鐝腑鍙戠敓鎴栧彂鐜扮殑闂锛屽強鏃跺悜涔樺姟闀垮弽鏄犺埅鐝腑鐨勪俊鎭�備箻鍔¢暱椤诲皢褰撴鑸彮瀹屾垚鎯呭喌濡傚疄濉啓鍦ㄤ箻鍔℃棩蹇椾笂杩涜澶囨锛屼互渚挎湁鍏抽儴闂ㄦ煡闃呫��
                     </p>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathFive" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氶」鐩叓 浠诲姟2</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo04 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == 'bc733c64bf978a4adf4c9a35c4c44e3f') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-05')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
+                    <div class="video-box-left">
+                        <p class="center text">
+                            <video :src="videoPathSix" webkit-playsinline="true" x-webkit-airplay="true"
+                                playsinline="true" x5-video-orientation="h5" x5-video-player-fullscreen="true"
+                                x5-playsinline="" controls controlslist="nodownload" class="w100 video"
+                                style=" border-radius: 10px; "></video>
+                        </p>
+                        <p class="center videoname">
+                            <span>瑙嗛锛氫换鍔′簲2</span>
+                            <el-tooltip class="item" effect="dark"
+                                :content="chapterData.isCollectVideo05 ? '鐐瑰嚮鍙栨秷' : '鐐瑰嚮鏀惰棌'" placement="top-start">
+                                <img :src="collectResourceList.findIndex(item => item.id == '079d20d6f10b212a2756ab6d2721cf71') > -1 ? collectCheck : collectImg"
+                                    alt="" class="collect-btn" @click="handleCollect('video-06')" />
+                            </el-tooltip>
+                        </p>
+                    </div>
                     <p class="left p-odd"><span class="bj2">浠诲姟宸ュ崟鈻�</span></p>
                     <table border="1" cellpadding="4" cellspacing="0"
                         style="border-color: #5192c6; border-collapse: collapse" class="fz-15 mr-9">
@@ -1585,6 +1681,8 @@
 </template>
 
 <script>
+import { getResourcePath } from "@/assets/methods/resources";
+import { getCollectResource, setCollectResource } from "@/assets/methods/resources";
 export default {
     name: "chapterEight",
     props: {
@@ -1594,6 +1692,21 @@
     },
     data() {
         return {
+            collectImg: require("../../assets/images/icon/heart.png"),
+            collectCheck: require("../../assets/images/icon/heart-check.png"),
+            videoPathOne: "",
+            videoPathTwo: "",
+            videoPathThree: "",
+            videoPathFour: "",
+            videoPathFive: "",
+            collectResourceList: [],
+            chapterData: {
+                isCollectVideo: false,
+                isCollectVideo01: false,
+                isCollectVideo02: false,
+                isCollectVideo03: false,
+                isCollectVideo04: false,
+            },
             questionData: {
                 teskOne: {
                     one: "",
@@ -1713,7 +1826,7 @@
             },
         };
     },
-    mounted() {
+    async mounted() {
         const bookQuestion = localStorage.getItem("aviation-book-chapter08");
         if (bookQuestion) {
             this.questionData = JSON.parse(bookQuestion);
@@ -1722,9 +1835,87 @@
         if (bookTableData) {
             this.tableData = JSON.parse(bookTableData);
         }
+        const choiceQuestion = localStorage.getItem("aviation-book-chapter08-Data");
+        if (choiceQuestion) {
+            this.chapterData = JSON.parse(choiceQuestion);
+        }
+
+        this.getVidoePath();
+        this.collectResourceList = await getCollectResource(this.config.activeBook.bookId)
 
     },
     methods: {
+        async getVidoePath() {
+            this.videoPathOne = await getResourcePath(
+                "9ff093ee1af1f2b46e50766576b15efe"
+            );
+            this.videoPathTwo = await getResourcePath(
+                "7303452278e8ff8c86f9320d9dfdb06c"
+            );
+            this.videoPathThree = await getResourcePath(
+                "52e064fe476177beb5a3a3a7cdf3adb9"
+            );
+            this.videoPathFour = await getResourcePath(
+                "8feffd5d540faf91ed00b075591ae87c"
+            );
+            this.videoPathFive = await getResourcePath(
+                "bc733c64bf978a4adf4c9a35c4c44e3f"
+            );
+            this.videoPathSix = await getResourcePath(
+                "079d20d6f10b212a2756ab6d2721cf71"
+            );
+        },
+        handleCollect(e) {
+            if (e == 'video-01') {
+                this.handleCollectResource("9ff093ee1af1f2b46e50766576b15efe", "9ff093ee1af1f2b46e50766576b15efe", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩叓 浠诲姟4')
+                this.chapterData.isCollectVideo = !this.chapterData.isCollectVideo
+            } else if (e == 'video-02') {
+                this.handleCollectResource("7303452278e8ff8c86f9320d9dfdb06c", "7303452278e8ff8c86f9320d9dfdb06c", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩叓 浠诲姟5')
+                this.chapterData.isCollectVideo01 = !this.chapterData.isCollectVideo01
+            } else if (e == 'video-03') {
+                this.handleCollectResource("52e064fe476177beb5a3a3a7cdf3adb9", "52e064fe476177beb5a3a3a7cdf3adb9", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩叓 浠诲姟3')
+                this.chapterData.isCollectVideo02 = !this.chapterData.isCollectVideo02
+            } else if (e == 'video-04') {
+                this.handleCollectResource("8feffd5d540faf91ed00b075591ae87c", "8feffd5d540faf91ed00b075591ae87c", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩叓 浠诲姟1')
+                this.chapterData.isCollectVideo03 = !this.chapterData.isCollectVideo03
+            } else if (e == 'video-05') {
+                this.handleCollectResource("bc733c64bf978a4adf4c9a35c4c44e3f", "bc733c64bf978a4adf4c9a35c4c44e3f", '', "瑙嗛", "bits", '瑙嗛锛氶」鐩叓 浠诲姟2')
+                this.chapterData.isCollectVideo04 = !this.chapterData.isCollectVideo04
+            } else if (e == 'video-06') {
+                this.handleCollectResource("079d20d6f10b212a2756ab6d2721cf71", "079d20d6f10b212a2756ab6d2721cf71", '', "瑙嗛", "bits", '瑙嗛锛氫换鍔′簲2')
+                this.chapterData.isCollectVideo05 = !this.chapterData.isCollectVideo05
+            } 
+            this.handleChapterData();
+        },
+
+        //璧勬簮鏀惰棌浜嬩欢
+        // 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)
+        },
+        handleChapterData() {
+            localStorage.setItem(
+                "aviation-book-chapter08-Data",
+                JSON.stringify(this.chapterData)
+            );
+        },
+
         setBookQuestion() {
             localStorage.setItem(
                 "aviation-book-chapter08",
diff --git a/src/books/aviationBasicSkills/view/components/index.vue b/src/books/aviationBasicSkills/view/components/index.vue
index c79ad40..e05dd22 100644
--- a/src/books/aviationBasicSkills/view/components/index.vue
+++ b/src/books/aviationBasicSkills/view/components/index.vue
@@ -166,7 +166,7 @@
   
       // 娴嬭瘯椤甸潰璺宠浆
       setTimeout(() => {
-        this.gotoPage(1,1);
+        this.gotoPage(9,167);
       //   setTimeout(() => {
       //     this.renderSign("Highlight", {
       //       id: "2ACA9359",
diff --git a/src/books/aviationSafety/assets/main.less b/src/books/aviationSafety/assets/main.less
index e452986..c1495a2 100644
--- a/src/books/aviationSafety/assets/main.less
+++ b/src/books/aviationSafety/assets/main.less
@@ -543,7 +543,7 @@
                 display: flex;
                 justify-content: center;
                 align-items: center;
-                border: 0.15em dashed #6D84AE;
+                border: 0.15em dashed #FAAD70;
                 margin-right: 15px;
                 padding: 0 15px;
                 border-radius: 5px;
@@ -558,7 +558,7 @@
                     justify-content: flex-start;
 
                     svg {
-                        fill: #6D84AE;
+                        fill: #FAAD70;
                     }
                 }
 
@@ -568,7 +568,7 @@
                 }
 
                 span:hover {
-                    color: #6D84AE;
+                    color: #FAAD70;
                     cursor: pointer;
                     text-decoration: underline;
                     -webkit-user-select: none;
diff --git a/src/books/civilAviation/view/components/index.vue b/src/books/civilAviation/view/components/index.vue
index e144144..c1513fb 100644
--- a/src/books/civilAviation/view/components/index.vue
+++ b/src/books/civilAviation/view/components/index.vue
@@ -920,7 +920,7 @@
         const bottomGap = playVudio.getBoundingClientRect().bottom;
         const topGap = playVudio.getBoundingClientRect().top;
         if (bottomGap < 0 || topGap > window.innerHeight) {
-          playVudio.requestPictureInPicture();
+          if(playVudio.readyState) playVudio.requestPictureInPicture();
         }
       }
     },

--
Gitblit v1.9.1