From 588feedaac26559b59cfc7400e992a0af7cc48ee Mon Sep 17 00:00:00 2001 From: zhongshujie <2862698242@qq.com> Date: 星期三, 11 六月 2025 11:04:36 +0800 Subject: [PATCH] Merge branch 'master' of http://182.92.203.7:2001/r/testbookLayout --- src/books/foodSensoryInspection/assets/images/fengmian.jpg | 0 src/books/foodSensoryInspection/view/components/index.vue | 953 +++++++++++++++++++++++ src/books/foodSensoryInspection/assets/images/0021-01.jpg | 0 src/books/foodSensoryInspection/view/index.vue | 80 + src/books/foodSensoryInspection/assets/images/0018-01.jpg | 0 src/books/foodSensoryInspection/assets/images/top.png | 0 src/books/foodSensoryInspection/assets/main.less | 444 ++++++++++ src/books/foodSensoryInspection/assets/images/icon/heart-check.png | 0 src/books/foodSensoryInspection/assets/images/0019_01.jpg | 0 src/books/foodSensoryInspection/assets/images/fengdi.jpg | 0 src/books/foodSensoryInspection/assets/images/0018_03.jpg | 0 src/books/foodSensoryInspection/view/components/header.vue | 173 ++++ src/App.vue | 4 src/books/foodSensoryInspection/assets/images/0018-02.jpg | 0 src/books/foodSensoryInspection/assets/images/icon/heart.png | 0 src/books/foodSensoryInspection/view/components/chapter001.vue | 788 +++++++++++++++++++ src/books/foodSensoryInspection/assets/images/feiye.jpg | 0 17 files changed, 2,442 insertions(+), 0 deletions(-) diff --git a/src/App.vue b/src/App.vue index aa24d7e..fd50cd7 100644 --- a/src/App.vue +++ b/src/App.vue @@ -84,6 +84,7 @@ > </hotelEnglishTrainingBrochure2nd> <hydraulicTransmission v-if="activeBook.name == 'hydraulicTransmission'"></hydraulicTransmission> + <foodSensoryInspection v-if="activeBook.name == 'foodSensoryInspection'"></foodSensoryInspection> <MMVRTCMP v-if="activeBook.name == 'MMVRTCMP'"></MMVRTCMP> </div> </template> @@ -165,6 +166,8 @@ import("./books/hotelEnglishTrainingBrochure2nd/view/index.vue"), hydraulicTransmission: () => import("./books/hydraulicTransmission/view/index.vue"), + foodSensoryInspection: () => + import("./books/foodSensoryInspection/view/index.vue"), MMVRTCMP: () => import("./books/MMVRTCMP/view/index.vue"), }, data() { @@ -227,6 +230,7 @@ // aviationPassengerTransport6th // 姘戣埅鏃呭杩愯緭绗�6鐗�(鏃呮父绀�) // hotelEnglishTrainingBrochure2nd // 閰掑簵鑻辫瀹炶娲婚〉鏁欑▼锛堢2鐗堬級锛堟梾娓哥ぞ锛� // hydraulicTransmission // 鏈烘浼犲姩 锛堝搱宸ュぇ锛� + // foodSensoryInspection //椋熷搧鎰熷畼妫�楠屾妧鏈� // MMVRTCMP // 瑙嗚鎵嬪唽 // console.log("debugger", process.env); this.activeBook = await this.config.getBookConfig( diff --git a/src/books/foodSensoryInspection/assets/images/0018-01.jpg b/src/books/foodSensoryInspection/assets/images/0018-01.jpg new file mode 100644 index 0000000..7b2f39b --- /dev/null +++ b/src/books/foodSensoryInspection/assets/images/0018-01.jpg Binary files differ diff --git a/src/books/foodSensoryInspection/assets/images/0018-02.jpg b/src/books/foodSensoryInspection/assets/images/0018-02.jpg new file mode 100644 index 0000000..81db563 --- /dev/null +++ b/src/books/foodSensoryInspection/assets/images/0018-02.jpg Binary files differ diff --git a/src/books/foodSensoryInspection/assets/images/0018_03.jpg b/src/books/foodSensoryInspection/assets/images/0018_03.jpg new file mode 100644 index 0000000..9673dfc --- /dev/null +++ b/src/books/foodSensoryInspection/assets/images/0018_03.jpg Binary files differ diff --git a/src/books/foodSensoryInspection/assets/images/0019_01.jpg b/src/books/foodSensoryInspection/assets/images/0019_01.jpg new file mode 100644 index 0000000..7926c58 --- /dev/null +++ b/src/books/foodSensoryInspection/assets/images/0019_01.jpg Binary files differ diff --git a/src/books/foodSensoryInspection/assets/images/0021-01.jpg b/src/books/foodSensoryInspection/assets/images/0021-01.jpg new file mode 100644 index 0000000..12039c1 --- /dev/null +++ b/src/books/foodSensoryInspection/assets/images/0021-01.jpg Binary files differ diff --git a/src/books/foodSensoryInspection/assets/images/feiye.jpg b/src/books/foodSensoryInspection/assets/images/feiye.jpg new file mode 100644 index 0000000..b1ef4b0 --- /dev/null +++ b/src/books/foodSensoryInspection/assets/images/feiye.jpg Binary files differ diff --git a/src/books/foodSensoryInspection/assets/images/fengdi.jpg b/src/books/foodSensoryInspection/assets/images/fengdi.jpg new file mode 100644 index 0000000..6962bf7 --- /dev/null +++ b/src/books/foodSensoryInspection/assets/images/fengdi.jpg Binary files differ diff --git a/src/books/foodSensoryInspection/assets/images/fengmian.jpg b/src/books/foodSensoryInspection/assets/images/fengmian.jpg new file mode 100644 index 0000000..ecd0829 --- /dev/null +++ b/src/books/foodSensoryInspection/assets/images/fengmian.jpg Binary files differ diff --git a/src/books/foodSensoryInspection/assets/images/icon/heart-check.png b/src/books/foodSensoryInspection/assets/images/icon/heart-check.png new file mode 100644 index 0000000..74d469c --- /dev/null +++ b/src/books/foodSensoryInspection/assets/images/icon/heart-check.png Binary files differ diff --git a/src/books/foodSensoryInspection/assets/images/icon/heart.png b/src/books/foodSensoryInspection/assets/images/icon/heart.png new file mode 100644 index 0000000..7817ec4 --- /dev/null +++ b/src/books/foodSensoryInspection/assets/images/icon/heart.png Binary files differ diff --git a/src/books/foodSensoryInspection/assets/images/top.png b/src/books/foodSensoryInspection/assets/images/top.png new file mode 100644 index 0000000..76c4c7e --- /dev/null +++ b/src/books/foodSensoryInspection/assets/images/top.png Binary files differ diff --git a/src/books/foodSensoryInspection/assets/main.less b/src/books/foodSensoryInspection/assets/main.less new file mode 100644 index 0000000..2931f98 --- /dev/null +++ b/src/books/foodSensoryInspection/assets/main.less @@ -0,0 +1,444 @@ +.foodSensoryInspection { + width: 100%; + height: 100%; + + // 鑷畾涔夊唴瀹� + .page-box { + box-sizing: border-box; + min-height: 980px; + margin-bottom: 20px; + box-shadow: 0 3px 6px 1px #00000029; + background-color: #fff; + position: relative; + } + + p { + font-family: "瀹嬩綋"; + margin-top: 0.2em; + margin-bottom: 0.2em !important; + text-indent: 2em; + line-height: 30px; + text-align: justify; + } + + + .fz-11 { + font-size: 11px !important; + } + + .fz-13 { + font-size: 13px !important; + } + + .fz-14 { + font-size: 14px !important; + } + + .fz-15 { + line-height: 26px; + font-size: 15px !important; + } + + .img-0 { + width: 100%; + } + + .img-20 { + width: 20%; + } + + .img-70 { + width: 70%; + } + + .td-0 { + text-indent: 0em !important; + } + + .openImgBox { + margin: 20px 0 !important; + } + + .block { + font-size: 18px; + font-family: "KAITI"; + + .bold { + font-family: '榛戜綋'; + font-weight: bold; + } + } + + .block1 { + font-size: 16px; + font-family: "FangSong"; + } + + .block2 { + line-height: 20px; + color: #333; + } + + .block3 { + font-family: '榛戜綋'; + } + + + .center { + text-align: center; + margin-left: 0%; + margin-right: 0%; + text-indent: 0em; + } + + .right-info { + font-family: "KAITI"; + text-align: right; + } + + + .page-box:nth-child(even) .bodystyle { + font-family: 'FZLTXIHJW'; + text-align: justify; + margin: 0 15% 0 13%; + padding-bottom: 80px; + line-height: 30px; + padding: 14% 0 12%; + + } + + .page-box:nth-child(odd) .bodystyle { + font-family: 'FZLTXIHJW'; + text-align: justify; + margin: 0 13% 0 15%; + padding-bottom: 80px; + line-height: 30px; + padding: 14% 0 12% 0; + + + } + + .mainColor { + color: #F48131; + } + + .hr { + height: 1px; + width: 83%; + border-top: 1px dotted #4E78EB; + } + + .pageHeader { + height: 100px; + position: absolute; + + .f-right { + color: #333; + position: absolute; + bottom: 8%; + right: 10%; + font-family: "youyuan"; + } + + span { + margin: 0 20px; + } + + } + + .titleBox { + margin-bottom: 100px; + } + + .firstTitle { + font-family: '榛戜綋'; + font-size: 1.6em !important; + } + + .secondTitle { + font-family: '浠垮畫'; + } + + h1 { + font-family: '瀹嬩綋'; + line-height: 2em; + font-weight: bold; + font-size: 1.8em; + margin: 0; + text-indent: 0em; + } + + h2 { + font-family: 'youyuan'; + font-weight: 500; + font-size: 1.6em; + text-indent: 2em; + } + + h3 { + font-family: 'youyuan'; + font-weight: 500; + font-size: 1.2em; + text-indent: 2em; + } + + + .mr-20 { + margin-right: 20px; + } + + .bold { + font-weight: bold; + } + + .img-rights { + width: 350px; + float: right; + height: auto; + margin: auto; + margin-left: 18px; + } + + .bk { + margin-left: 2em; + width: 80%; + padding: 10px; + color: #F48131; + border: 2px dotted #F48131; + } + + .pdf-view { + min-width: 160px; + flex: 1; + + span { + cursor: pointer; + } + + span:hover { + color: #F48131; + text-decoration: underline; + } + + } + + .textarea-box { + width: 88%; + margin-left: 2em; + overflow: auto; + word-break: break-all; + resize: none; + border: 1px solid #666; + border-radius: 5px; + background-color: rgba(255, 255, 255, 0); + outline-color: #F48131 + } + + .input-box { + border: none; + border-bottom: 1px solid #333; + background-color: rgba(255, 255, 255, 0); + outline: none; + } + + //瑙嗛 + + .video-box { + margin: 20px 0 20px 0; + border: 1px solid #F48131; + padding: 2% 2%; + } + + .videoname { + display: flex; + justify-content: center; + align-items: center; + font-size: 12px; + } + + .collect-btn { + cursor: pointer; + width: 18px; + height: 18px; + margin-left: 10px; + margin-top: 0.8%; + } + + + +} + +.pdfModal { + width: 100%; + height: 90vh; + + .pdfBox-component { + width: 100%; + height: 100%; + position: relative; + + .preview { + width: 100%; + height: 100%; + + .imageBox { + height: calc(100% - 30px); + overflow-x: hidden; + overflow-y: auto; + background: #ccc; + box-sizing: border-box; + } + + .imageBox:hover { + cursor: zoom-in !important; + } + + ::v-deep .el-dialog__header { + background-color: rgba(0, 0, 0, 0.8); + + .header_title { + display: flex; + justify-content: space-between; + align-items: center; + color: #fff; + font-weight: 900; + font-size: 16px; + font-family: 'FZLTXIHJW'; + + span:nth-child(2):hover { + cursor: pointer; + } + } + + ::v-deep .el-dialog__title, + ::v-deep .el-dialog__headerbtn .el-dialog__close { + color: #fff; + font-weight: 900; + font-size: 16px; + font-family: 'FZLTXIHJW'; + } + } + + .bottom_tool { + height: 30px; + background-color: rgba(0, 0, 0, 0.8); + display: flex; + justify-content: flex-end; + align-items: center; + + svg { + margin-right: 15px; + fill: #d1d1d1; + } + + svg:hover { + fill: #fff; + cursor: pointer; + } + } + } + + .notBox { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: calc(100% - 30px); + min-height: 300px; + } + } +} + +.custom-dialog { + overflow: hidden !important; + + .el-dialog__body { + padding: 0; + } + + .el-dialog__header { + background-color: rgba(0, 0, 0, 0.8); + + .header_title { + display: flex; + justify-content: space-between; + align-items: center; + color: #fff; + font-weight: 900; + font-size: 16px; + font-family: 'FZLTXIHJW'; + + span:nth-child(2):hover { + cursor: pointer; + } + } + + .el-dialog__title, + .el-dialog__headerbtn .el-dialog__close { + color: #fff; + font-weight: 900; + font-size: 16px; + font-family: 'FZLTXIHJW'; + } + } +} + +.header_title { + display: flex; + justify-content: space-between; + align-items: center; + // color: #fff; + font-weight: 900; + font-size: 16px; + font-family: 'FZLTXIHJW'; + + span:nth-child(2):hover { + cursor: pointer; + } +} + +/* 濯掍綋鏌ヨ鍋氬熀纭�鍝嶅簲寮忓竷灞� */ + +@media screen and (max-width: 1024px) { + .pdfModal { + width: 100%; + height: 80vh; + } + + h1 { + font-size: 1.1em; + } + + .custom-dialog { + .el-dialog { + width: 90vw !important; + } + } + + .span-box { + display: inline-block; + width: 8px; + height: 8px; + background-color: #FAAD70; + } + + .span-text { + font-size: 16px; + font-weight: 100; + padding: 0em 0.15em 0em 0.3em; + } +} + +@media screen and (max-width: 800px) { + .pdfModal { + width: 100%; + height: 60vh; + } + + .custom-dialog { + .el-dialog { + width: 90vw !important; + } + } + +} \ No newline at end of file diff --git a/src/books/foodSensoryInspection/view/components/chapter001.vue b/src/books/foodSensoryInspection/view/components/chapter001.vue new file mode 100644 index 0000000..6f4703e --- /dev/null +++ b/src/books/foodSensoryInspection/view/components/chapter001.vue @@ -0,0 +1,788 @@ +<template> + <div class="chapter" num="2"> + <!-- P1 --> + <div class="page-box" page="7"> + <div v-if="showPageList.indexOf(7) > -1"> + <div class="pageHeader"> + <img class="img-0" alt="" src="../../assets/images/top.png" /> + <div class="f-right"> + <span>椤圭洰涓�</span>椋熷搧鎰熷畼妫�楠岀殑宀楀墠鍩硅<span>1</span> + </div> + </div> + <div class="bodystyle"> + <div class="titleBox"> + <h1 class="firstTitle mainColor">椤圭洰涓�</h1> + <h1 class="mainColor">椋熷搧鎰熷畼妫�楠岀殑宀楀墠鍩硅</h1> + </div> + <p class="mainColor bold">銆愭渚嬪鍏ャ��</p> + <p class="center block3">鈥滆垖灏栦笂鐨勫ぉ瀹�濓紝鍙e懗涓�у寲鐨勮埅澶╅鍝�</p> + <p class="block"> + 鈥滄皯浠ラ涓哄ぉ鈥濓紝浠庘�滅浜斺�濆埌鈥滅鍗佷簲鈥濓紝涓浗鑸ぉ椋熷搧缁忓巻浜嗗法澶х殑鍙樿縼锛屼釜鎬у寲鐨勮埅澶╅鍝佷唬琛ㄧ潃绉戞妧缁撴櫠銆傛垜鍥戒竴浜涘叧閿牳蹇冩妧鏈疄鐜扮獊鐮达紝鎴樼暐鎬ф柊鍏翠骇涓氬彂灞曞.澶э紝杞戒汉鑸ぉ銆佹帰鏈堟帰鐏�佹繁娴锋繁鍦版帰娴嬬瓑鍙栧緱閲嶅ぇ鎴愭灉锛岃繘鍏ュ垱鏂板瀷鍥藉琛屽垪銆備腑鍥借埅澶╅鍝佽嚜浠�1968骞村紑濮嬭繘琛屽厛鏈熺爺绌讹紝鍒扮幇鍦ㄥ凡缁忔湁鐧剧浠ヤ笂銆傜敱浜庡湪澶遍噸鐜涓紝鑸ぉ鍛樹綋娑蹭笂娑岋紝榧昏厰鍏呰锛屽鑷村懗瑙夌缁忛挐鍖栵紝鍞炬恫鍒嗘硨鍙戠敓鍙樺寲锛屾劅瀹樺垎鏋愪笓瀹舵牴鎹埅澶╁憳鐢熸椿鎵�澶勭殑鐗规畩鐜锛岀粨鍚堣埅澶╁憳鍦ㄥお绌虹殑鍙e懗鍜屾秷鍖栧惛鏀惰兘鍔涳紝浠ュ強鐗规畩杩涢鏂瑰紡锛岀粡杩囧娆$殑鍝佸皾銆佹墦鍒嗐�佽瘎璁紝骞跺畾鏈熷椋熷搧璐ㄩ噺鍦ㄥ瑙傘�佽川鍦般�侀鍛炽�佸彛鎰熴�佸彲鎺ュ彈绋嬪害绛夊悇鏂归潰杩涜鎰熷畼璇勪环锛岀爺鍒朵簡120浣欑钀ュ吇鍧囪 銆佸搧绉嶄赴瀵屻�佸彛鎰熻壇濂姐�侀暱淇濊川鏈熺殑鑸ぉ椋熷搧锛屽楸奸鑲変笣銆佸淇濋浮涓併�侀粦妞掔墰鏌崇瓑浠ュ捀杈i吀鐢滅殑鍙e懗鐨勯鍝佷负鑸ぉ鍛樺紑鑳冨姪椋熴�� + </p> + <p class="block"> + 浠庘�滅浜斺�濆埌鈥滅鍗佷簲鈥濋摳姊﹀お绌猴紝涓�у寲鐨勮埅澶╅鍝佸揩閫熷彂灞曪紝骞垮ぇ椋熷搧绉戞妧宸ヤ綔鑰呭湪绁栧浗澶у湴涓婃爲绔嬭捣浜嗕竴搴у骇绉戞妧鍒涙柊鐨勪赴纰戯紝灞曠幇鍑烘湇鍔′汉姘戠殑鐖卞浗绮剧锛屽媷鏀�楂樺嘲銆佹暍涓轰汉鍏堢殑鍒涙柊绮剧锛屼互鍙婅拷姹傜湡鐞嗐�佷弗璋ㄦ不瀛︾殑姹傚疄绮剧鍜岀簿鐩婃眰绮剧殑宸ュ尃绮剧銆傞殢鐫�椋熷搧棰嗗煙绉戞妧鐨勫彂灞曪紝鑸ぉ椋熷搧浼氭洿鍔犲畨鍏ㄣ�佽惀鍏汇�佷赴瀵岋紝涓庝腑鍥借埅澶╀簨涓氫竴璺寔澹垚闀垮.澶э紝骞跺潥瀹氫笉绉荤殑涓轰汉姘戝皢绁炶垷澶┖鐨勫悇绉嶉鍝侀珮鏂版妧鏈帹骞垮埌鐢熸椿涓�� + </p> + <p class="block3">鎬濊�冮棶棰橈細</p> + <p>1锛庤埅澶╅鍝佸叿鏈夊摢浜涚壒鐐癸紵椋熷搧鎰熷畼妫�楠屾妧鏈湁鍝簺閲嶈鐨勬剰涔夛紵</p> + <textarea + v-model="questionData.askAbout.one" + placeholder="璇疯緭鍏ュ唴瀹�" + rows="4" + class="fz-15 textarea-box" + @change="setBookQuestion" + ></textarea> + <p> + 2锛庝綔涓轰竴鍚嶆劅瀹樻楠屼粠涓氫汉鍛橈紝搴斿叿澶囧摢浜涜亴涓氱礌鍏汇�佷笓涓氱煡璇嗗拰鑳藉姏锛� + </p> + <textarea + v-model="questionData.askAbout.two" + placeholder="璇疯緭鍏ュ唴瀹�" + rows="4" + class="fz-15 textarea-box" + @change="setBookQuestion" + ></textarea> + </div> + </div> + </div> + <!-- P2 --> + <div class="page-box" page="8"> + <div v-if="showPageList.indexOf(8) > -1"> + <div class="pageHeader"> + <img class="img-0" alt="" src="../../assets/images/top.png" /> + <div class="f-right">椋熷搧鎰熷畼妫�楠屾妧鏈�<span>2</span></div> + </div> + <div class="bodystyle"> + <h2><span class="mr-20">浠诲姟1</span>椋熷搧鎰熷畼妫�楠岀殑鍩虹鐭ヨ瘑</h2> + <p class="mainColor bold">銆愬涔犵洰鏍囥��</p> + <p class="block3">鐭ヨ瘑鐩爣</p> + <p class="block"> + 1锛庢帉鎻¢鍝佹劅瀹樻楠屾妧鏈殑姒傚康锛屼互鍙婂湪椋熷搧宸ヤ笟涓殑閲嶈鎰忎箟锛� + </p> + <p class="block">2锛庝簡瑙e浗鍐呭椋熷搧鎰熷畼妫�楠岀殑鍙戝睍鐜扮姸涓庤秼鍔匡紱</p> + <p class="block">3锛庣啛鎮夐鍝佹劅瀹樻楠屾妧鏈殑鍥藉鏍囧噯銆�</p> + <p class="block3">鑳藉姏鐩爣</p> + <p class="block"> + 1锛庝細鎸夌収椋熷搧鎰熷畼妫�楠屽洓椤瑰熀鏈椿鍔ㄥ紑灞曟劅瀹樻楠屾椿鍔紱 + </p> + <p class="block"> + 2锛庤兘鏌ラ槄璧勬枡锛屽綊绾冲綋浠婃垜鍥介鍝佹劅瀹樻楠屾妧鏈彂灞曠殑鐮旂┒涓庡箍娉涘簲鐢紱 + </p> + <p class="block"> + 3锛庤兘鍑嗙‘璇绘噦骞堕浼氭劅瀹樺垎鏋愬疄楠屽浜哄憳鐨勫矖浣嶈亴璐e拰鑳藉姏銆� + </p> + <p class="block3">绱犲吇鐩爣</p> + <p class="block"> + 1锛庡煿鍏荤瀛︿弗璋ㄣ�佺埍宀楁暚涓氥�侀伒绾畧娉曘�佽瘹瀹炲畧淇$殑绮剧涓庤壇濂界殑鑱屼笟閬撳痉锛� + </p> + <p class="block"> + 2锛庢爲绔嬮鍝佽川閲忎笌瀹夊叏鎰忚瘑鍜岃亴涓氱敓娑鍒掓剰璇嗭紝澧炲己涓撲笟鑷豹鎰熴�佽亴涓氫娇鍛芥劅鍜岀ぞ浼氳矗浠绘劅锛� + </p> + <p class="block">3锛庡煿鍏诲鐢熷杽浜庢�濊�冦�佽幏鍙栦俊鎭拰鑷富鎺㈢┒鐨勮兘鍔涖��</p> + <p class="mainColor bold">銆愬伐浣滀换鍔°��</p> + <p class="content"> + 鍖椾含鏌愰鍝佷紒涓氾紝涓轰簡鐢熶骇浼樿川銆佸畨鍏紝璁╂秷璐硅�呮斁蹇冪殑涔冲埗鍝侊紝闇�瑕佸鏂板叆鑱岀殑鑱屽伐杩涜椋熷搧鎰熷畼妫�楠屾妧鏈煿璁紝涓轰笂宀楀氨涓氬仛濂藉噯澶囥�� + </p> + <p class="mainColor bold">銆愪换鍔″垎鏋愩��</p> + <div class="img-rights"> + <div class="video-box"> + <p class="center text td-0"> + <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="img-0 video" + ></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 == '0ef987e8737e8a90c8e0678a1a14ece4' + ) > -1 + ? collectCheck + : collectImg + " + alt="" + class="collect-btn" + @click="handleCollect('video-01')" + /> + </el-tooltip> + </p> + </div> + </div> + <p class="content"> + 涔冲埗鍝佽涓氬凡鎴愪负鎴戝浗鐜颁唬椋熷搧鍒堕�犱笟鐨勪紭绉�浠h〃锛屽苟閫愭笎姝ュ叆鐢辫妯℃晥鐩婅浆鍚戜环鍊肩珵浜夌殑鏂伴樁娈点�備钩鍒跺搧浼佷笟涓轰簡淇濊瘉涔冲搧鐨勮川閲忓畨鍏紝缁欐秷璐硅�呮彁渚涜惀鍏汇�佸仴搴枫�佸畨鍏ㄣ�佺編鍛崇殑浜у搧锛屽湪瀹夊叏鎺у埗銆佹柊浜у搧寮�鍙戙�佷骇鍝佽川閲忔敼杩涚瓑鏂归潰鍔犲ぇ浜嗗姏搴︼紝涔冲埗鍝佺殑鎰熷畼妫�楠屾妧鏈篃鏃ョ泭鎴愮啛銆傛湰浠诲姟鏄鏂板叆鑱岀殑鑱屽伐杩涜椋熷搧鎰熷畼妫�楠屾妧鏈煿璁�備緷鎹浗瀹舵爣鍑嗗紑灞曠浉鍏冲煿璁細GB/T + 23470.1-2009銆婃劅瀹樺垎鏋愩��鎰熷畼鍒嗘瀽瀹為獙瀹や汉鍛樹竴鑸鍒欍��绗�1閮ㄥ垎锛氬疄楠屽浜哄憳鑱岃矗銆嬶紱GB/T + 23470.2-2009銆婃劅瀹樺垎鏋愩��鎰熷畼鍒嗘瀽瀹為獙瀹や汉鍛樹竴鑸鍒欍��绗�2閮ㄥ垎锛氳瘎浠峰皬缁勭粍闀跨殑鑱樼敤鍜屽煿璁�嬨�� + </p> + <p class="mainColor bold">銆愭�濈淮瀵煎浘銆�</p> + <p class="openImgBox center"> + <img class="img-70" src="../../assets/images/0018-02.jpg" alt="" /> + </p> + <p class="td-0"> + <img class="img-20" src="../../assets/images/0018_03.jpg" alt="" /> + </p> + <h3>涓�銆侀鍝佹劅瀹樻楠岀殑姒傚康鍙婂熀鏈椿鍔�</h3> + <p class="block">1锛庨鍝佹劅瀹樻楠岀殑姒傚康</p> + <p class="block1"> + 鎺ㄨ繘鍋ュ悍涓浗寤鸿銆備汉姘戝仴搴锋槸姘戞棌鏄岀洓鍜屽浗瀹跺己鐩涚殑閲嶈鏍囧織銆傛妸淇濋殰浜烘皯 + </p> + </div> + </div> + </div> + <!-- P3 --> + <div class="page-box" page="9"> + <div v-if="showPageList.indexOf(9) > -1"> + <div class="pageHeader"> + <img class="img-0" alt="" src="../../assets/images/top.png" /> + <div class="f-right"> + <span>椤圭洰涓�</span>椋熷搧鎰熷畼妫�楠岀殑宀楀墠鍩硅<span>3</span> + </div> + </div> + <div class="bodystyle"> + <p class="td-0 block1"> + 鍋ュ悍鏀惧湪浼樺厛鍙戝睍鐨勬垬鐣ヤ綅缃紝瀹屽杽浜烘皯鍋ュ悍淇冭繘鏀跨瓥銆傚繀椤诲潥鎸佸湪鍙戝睍涓繚闅滃拰鏀瑰杽姘戠敓锛岄紦鍔卞叡鍚屽鏂楀垱閫犵編濂界敓娲伙紝涓嶆柇瀹炵幇浜烘皯瀵圭編濂界敓娲荤殑鍚戝線銆� + </p> + <p class="block1"> + 鈥斺��2022骞�10鏈�16鏃ワ紝涔犺繎骞冲湪涓浗鍏变骇鍏氱浜屽崄娆″叏鍥戒唬琛ㄥぇ浼氫笂鐨勬姤鍛� + </p> + <p> + 涓浗椋熷搧宸ヤ笟鏈濈潃瀹夊叏銆佽惀鍏汇�佺編鍛炽�佷究鎹风殑鏂瑰悜鍙戝睍銆備汉姘戝缇庡ソ鐢熸椿鐨勫悜寰�锛岀粰椋熷搧琛屼笟甯︽潵浜嗘柊鐨勬満閬囧拰鎸戞垬銆傛湭鏉ラ鍝佸彂灞曠殑鏂瑰悜鏄鍛冲仴搴峰弻瀵煎悜锛屽嵆鏈潵椋熷搧闇�瑕佸悓鏃舵弧瓒充汉浠缇庡懗鍜屽仴搴风殑闇�姹傘�傞鍝佹劅瀹樻楠岋紙Food + Sensory + Test锛変篃琚О涓洪鍝佹劅瀹樺垎鏋愶紝鏄幇浠i鍝佺瀛︿腑鏈�鍏风壒鑹茬殑瀛︾涔嬩竴锛屾槸鐢ㄤ簬鍞よ捣銆佹祴閲忋�佸垎鏋愬拰瑙i噴銆傝繖鏄洰鍓嶆瘮杈冪粡鍏镐笖琚箍娉涙帴鍙楀拰璁ゅ彲鐨勫叧浜庨鍝佹劅瀹樻楠岀殑瀹氫箟銆傚畠鏄�氳繃瑙嗚銆佸梾瑙夈�佽Е瑙夈�佸懗瑙夊拰鍚鑰屾劅鐭ラ鍝佸強鍏朵粬鐗╄川鐗瑰緛鐨勪竴闂ㄧ瀛︼紝鏄泦蹇冪悊瀛︺�佺敓鐞嗗銆佺粺璁″鍜屽叾浠栫瀛﹀彂灞曡捣鏉ョ殑瀛︾锛屽湪椋熷搧瀹夊叏銆佽川閲忕鐞嗐�佹柊浜у搧寮�鍙戙�佸競鍦洪娴嬬瓑鏂归潰鍏锋湁閲嶈鐨勬寚瀵兼剰涔夈�� + </p> + <p> + 椋熷搧鎰熷畼妫�楠屾槸绯荤粺鐮旂┒浜虹被鎰熷畼涓庨鐗╃浉浜掍綔鐢ㄥ舰寮忎笌瑙勫緥鐨勪竴闂ㄥ绉戯紝鍏舵牳蹇冪殑琛ㄧ幇褰㈠紡鏄鍝佹劅瀹樺搧璐紝鍩烘湰鐨勭瀛︽柟娉曟槸鎰熷畼鍒嗘瀽銆傚湪浜у搧鐮斿彂銆佽川閲忔帶鍒躲�侀鍛宠惀閿�鍜岃川閲忓畨鍏ㄧ洃鐫f楠岀瓑鏂归潰鐨勫己澶т綔鐢紝浣垮叾杩呴�熸垚涓虹幇浠i鍝佺瀛︽妧鏈強椋熷搧浜т笟鍙戝睍鐨勯噸瑕佹妧鏈敮鎾戙�傛劅瀹樿瘎浠峰寘鎷竴绯诲垪绮剧‘娴嬪畾浜哄椋熷搧鐨勫弽搴旀妧鏈紝鎶婂鍝佺墝涓瓨鍦ㄧ殑鍋忚鏁堝簲鍜屼竴浜涘叾浠栦俊鎭娑堣垂鑰呮劅瑙夌殑褰卞搷闄嶅埌鏈�浣庯紱鍚屾椂瀹冭瘯鍥捐В鏋愰鍝佹湰韬殑鎰熷畼鐗规�э紝骞跺悜浜у搧寮�鍙戣�呫�侀鍝佺瀛﹀鍜岀鐞嗕汉鍛樻彁渚涘叧浜庡叾浜у搧鎰熷畼鎬ц川鐨勯噸瑕佽�屾湁浠峰�肩殑淇℃伅銆� + </p> + <p class="block">2锛庨鍝佹劅瀹樻楠屽洓椤瑰熀鏈椿鍔�</p> + <p> + 锛�1锛夊敜璧凤細鈥滆皟璇曚华鍣ㄢ�濄�傚湪鍝佽瘎鐨勬暣涓繃绋嬩腑锛屼娇鐢ㄦ伆褰撶殑鍝佽瘎琛ㄥ拰鎻愮ず璇紝鍞ら啋鍝佽瘎浜哄憳鐨勬煇绉嶆敞鎰忓姏锛屼粠鑰屽緱鍒扮浉瀵瑰簲鐨勫櫔澹板奖鍝嶆渶灏忕殑鎰熺煡銆� + </p> + <p> + 锛�2锛夋祴閲忥細鈥滈噰闆嗘暟鎹�濄�傛劅瀹樺垎鏋愭槸涓�闂ㄥ畾閲忕殑绉戝锛岄�氳繃閲囬泦鏁版嵁锛屽湪浜у搧鎬ц川鍜屼汉鐨勬劅鐭ヤ箣闂村缓绔嬪悎鐞嗙殑銆佺壒瀹氱殑鑱旂郴銆傛劅瀹樻柟娉曚富瑕佹潵鑷涓哄鐮旂┒鐨勬柟娉曪紝鏄�氳繃瑙傚療鏉ユ祴閲忎汉鐨勫弽搴旂殑鏂瑰紡銆� + </p> + <p> + 锛�3锛夊垎鏋愶細鈥滄暟鎹垎鏋愨�濄�傞�傚綋鐨勬暟鎹垎鏋愭槸鎰熷畼妫�楠岀殑閲嶈閮ㄥ垎锛岄�氬父浣跨敤鐨勬槸瀹為獙璁捐鍜屾暟鐞嗙粺璁″垎鏋愮殑鏈夋晥缁勫悎锛屼互渚夸娇鍚勭澶嶆潅鐨勫奖鍝嶅洜绱犳渶灏忓寲锛屼綋鐜板嚭鍝佽瘎缁撴灉鐨勭瀛﹀彲闈犳�с�傚洜姝わ紝闇�瑕佺敤缁熻瀛︽潵瀵规暟鎹繘琛屽垎鏋愶紝鎵嶆湁鍙兘寰楀嚭杈冧负鍚堢悊鐨勭粨璁猴紝涔熷彲鍊熷姪璁$畻鏈哄拰鎰熷畼鍒嗘瀽杞欢鏉ュ畬鎴愩�� + </p> + <p> + 锛�4锛夎В閲婏細鈥滅粨璁鸿В閲娾�濄�傛劅瀹樺垎鏋愪笓瀹朵笉浠呬粎鍙槸涓轰簡寰楀埌瀹為獙缁撴灉锛岃�屾槸蹇呴』閽堝缁撴灉缁欏嚭绉戝鐨勮В閲婂拰鍚堢悊鐨勬帾鏂斤紝鍦ㄥ熀浜庢暟鎹�佸垎鏋愬拰瀹為獙缁撴灉鐨勫熀纭�涓婅繘琛屽悎鐞嗗垽鏂紝鍖呮嫭鐮旂┒鐨勮儗鏅�佹墍閲囩敤鐨勬柟娉曘�佸疄楠岀殑灞�闄愭�у拰鍙潬鎬э紝浠ユ鎸囧杩涗竴姝ョ殑鐮旂┒鍜屽绛栥�� + </p> + <p class="td-0"> + <img class="img-20" src="../../assets/images/0019_01.jpg" alt="" /> + </p> + <p class="center block3"> + 鎰熷畼鍒嗘瀽瀹為獙瀹や汉鍛樼殑宀椾綅鑱岃矗鍜岃兘鍔涘寘鎷摢浜涳紵 + </p> + <p class="block"> + 椋熷搧鎰熷畼妫�楠屾槸鍦ㄧ瀛︺�佹湁鏁堢殑缁勭粐涓嬭繘琛岀殑瀹為獙娲诲姩銆備緷鎹瓽B/T23470.1-2009/ISO + 13300-1锛�2006銆婃劅瀹樺垎鏋愬疄楠屽浜哄憳涓�鑸鍒欍��绗�1閮ㄥ垎锛氬疄楠屽浜哄憳鑱岃矗銆嬶紝鎰熷畼鍒嗘瀽瀹為獙瀹や汉鍛樺垎涓烘劅瀹樺垎鏋愬疄楠屽绠$悊浜哄憳銆佹劅瀹樺垎鏋愬笀鍜岋紙鎴栵級璇勪环灏忕粍缁勯暱銆佽瘎浠峰皬缁勬妧鏈憳锛屽叾宀椾綅鐨勫垝鍒嗕富瑕佸彇鍐充簬鍏舵墍琛屼娇鐨勮亴璐c�傚叾涓細 + </p> + <p class="block"> + 1锛庢劅瀹樺垎鏋愬疄楠屽绠$悊浜哄憳锛氭劅瀹樺垎鏋愬疄楠屽涓珮灞傛垨涓眰绠$悊浜哄憳锛岃礋璐h鏀跨鐞嗗拰缁忔祹棰勭畻銆傦紙1锛夊簲鍏峰鑹ソ鐨勭粍缁囧拰绛栧垝鑳藉姏銆佽鏀胯兘鍔涳紝鎺屾彙鍟嗕笟鍜岀幆澧冪煡璇嗭紝涓庝骇鍝佺殑鐢熶骇銆佸寘瑁呫�佸偍钘忎互鍙婂垎鍙戠瓑鐩稿叧 + </p> + </div> + </div> + </div> + <!-- P4 --> + <div class="page-box" page="10"> + <div v-if="showPageList.indexOf(10) > -1"> + <div class="pageHeader"> + <img class="img-0" alt="" src="../../assets/images/top.png" /> + <div class="f-right">椋熷搧鎰熷畼妫�楠屾妧鏈�<span>4</span></div> + </div> + <div class="bodystyle"> + <p class="td-0 block"> + 鎶�鏈煡璇嗙瓑绠$悊鑳藉姏锛岀鐮斿拰鎶�鏈兘鍔涗互鍙婃劅瀹樺垎鏋愯兘鍔涳紱锛�2锛夊杽浜庡唴閮ㄦ矡閫氫笌澶栭儴鑱旂粶涓庢矡閫氾紝鍏锋湁鑹ソ鐨勮瑷�鍜屾枃瀛楄〃杈捐兘鍔涖�佷汉闄呬氦寰�鑳藉姏锛涳紙3锛変簡瑙e洟闃熷悎浣滃苟鑳芥縺鍙戝洟闃熸椿鍔涚殑鑳藉姏銆� + </p> + <p class="block"> + 2锛庢劅瀹樺垎鏋愬笀鍜岋紙鎴栵級璇勪环灏忕粍缁勯暱锛氭劅瀹樺垎鏋愬疄楠屽涓饱琛屼笓涓氭妧鏈亴鑳界殑浜哄憳锛岃礋璐g洃绠′竴涓垨鑻ュ共璇勪环灏忕粍缁勯暱锛岃璁″拰瀹炴柦鎰熷畼鐮旂┒锛屽垎鏋愬拰瑙i噴鎰熷畼鍒嗘瀽鏁版嵁绛夈�傚簲鍏峰缁勭粐绠$悊銆佺鐮旇兘鍔涖�佹劅瀹樻楠屽拰棰嗗鍐崇瓥4绉嶈兘鍔涖�傦紙1锛夌粍缁囩鐞嗚兘鍔涗富瑕佹槸鎸囩粍缁囩瓥鍒掕兘鍔涖�佽鏀胯兘鍔涘強鍏峰蹇呰鐨勫晢涓氬拰鐜鐭ヨ瘑锛涳紙2锛夌鐮旇兘鍔涜姹傚叿澶囩浉鍏充骇鍝併�佹妧鏈�佷笓涓氬拰缁熻瀛︾殑鐭ヨ瘑鑳屾櫙锛涳紙3锛夋劅瀹樻楠岃兘鍔涜姹傚叿澶囨劅瀹樺垎鏋愮悊璁轰笌鏂规硶瀛︾煡璇嗭紝浠ュ強鎷呬换杩囪瘎浠峰皬缁勭粍闀挎垨璇勪环灏忕粍鎶�鏈憳鐨勫疄璺靛伐浣滅粡楠岋紱锛�4锛夐瀵艰兘鍔涘寘鎷洟闃熷悎浣溿�佷汉闄呮矡閫氥�佸喅绛栧垽鏂強婵�鍙戝皬缁勬垚鍛樼Н鏋佹�х殑鑳藉姏銆� + </p> + <p class="block"> + 3锛庤瘎浠峰皬缁勬妧鏈憳锛氭劅瀹樻楠岃繃绋嬩腑鍗忓姪璇勪环灏忕粍缁勯暱鎴栨劅瀹樺垎鏋愬笀杩涜鍏蜂綋鎿嶄綔鐨勪汉鍛橈紝璐熻矗鎰熷畼妫�楠屽墠鐨勬牱鍝佸埗澶囧埌妫�楠屽悗鐨勫悗缁伐浣滐紙濡傚簾寮冪墿鐨勫畨鍏ㄥ鐞嗭級绛夈�傦紙1锛夊簲鍏峰鎰熷畼鍒嗘瀽鐞嗚鍜屾柟娉曞鐭ヨ瘑锛屼骇鍝佺爺鍙戝拰閰嶆柟璁捐鐭ヨ瘑锛屼互鍙婄敓浜у拰鍖呰鐨勬妧鏈煡璇嗭紱锛�2锛夊疄楠屽鎿嶄綔瑙勭▼鍜屽疄楠屽畨鍏ㄥ父璇嗗拰椋熷搧鍗敓鐭ヨ瘑锛涳紙3锛夊畨鎺掑拰瀹炴柦鎰熷畼妫�楠岀殑鐞嗚鐭ヨ瘑锛岃兘澶熼伒瀹堟搷浣滆绋嬶紝鍏锋湁鑹ソ鐨勮褰曡兘鍔涳紱锛�4锛夊叿鏈夎壇濂界殑鑱屼笟閬撳痉锛屽彲闈犲苟鍏锋湁璐d换鎰燂紝鏈夊伐浣滅儹鎯咃紱锛�5锛夊叿澶囦氦娴佽兘鍔涖�佽瑷�鍜屾枃瀛楄〃杈捐兘鍔涖�佷汉闄呬氦寰�鑳藉姏銆佸簲鍙樿兘鍔涳紝鍏锋湁杈冨ソ鐨勫洟闃熷悎浣滅簿绁炲拰浜ゅ線娌熼�氳兘鍔涖�� + </p> + <h3>浜屻�侀鍝佹劅瀹樻楠岀殑閲嶈鎬�</h3> + <p> + 椋熷搧鐨勬劅瀹樻楠屾槸浜虹被鍜屽姩鐗╂渶鍘熷鐨勮嚜鎴戜繚鎶ゆ湰鑳斤紝浠庣鍐滃皾鐧捐崏锛屽埌鐜颁唬浜虹被鏃ュ父鐢熸椿涓互鐪嬨�侀椈銆佸皾銆佹懜绛夊姩浣滃喅瀹氶鍝佺殑鍝佽川鐘跺喌锛屾垜浠瘡澶╅兘鍦ㄥ仛鐫�姣忎竴浠堕鍝佺殑鎰熷畼妫�鏌ワ紝鍏朵緷璧栫殑鏄釜浜虹粡楠岀殑绉疮涓庝紶鎵裤�傞偅涔堬紝椋熷搧璐ㄩ噺鎰熷畼閴村埆鑳藉惁鐪熷疄銆佸噯纭湴鍙嶆槧瀹㈣浜嬬墿鐨勬湰璐紝闄や簡涓庝汉浣撴劅瑙夊櫒瀹樼殑鍋ュ叏绋嬪害鍜岀伒鏁忕▼搴︽湁鍏冲锛岃繕涓庝汉浠瀹㈣浜嬬墿鐨勮璇嗚兘鍔涙湁鐩存帴鐨勫叧绯汇�� + </p> + <p class="block">1锛庢病鏈変换浣曚华鍣ㄨ兘瀹屽叏浠f浛浜虹殑鎰熷畼璇勪环</p> + <p> + 椋熷搧鎰熷畼妫�楠屾湁鐫�鐞嗗寲鍒嗘瀽鍜屽井鐢熺墿妫�楠屾墍涓嶈兘鏇夸唬鐨勪紭瓒婃�э紝浜у搧璐ㄩ噺鐨勬劅瀹樻爣鍑嗗凡缁忔垚涓鸿川閲忔帶鍒朵綋绯荤殑涓�涓噸瑕佺粍鎴愰儴鍒嗐�傚湪椋熷搧鐨勮川閲忓拰鍗敓鏍囧噯涓紝绗竴椤瑰唴瀹规槸鎰熷畼妫�楠岋紝鍦ㄥ垽鏂鍝佺殑璐ㄩ噺鏃讹紝鎰熷畼鎸囨爣寰�寰�鍏锋湁鍚﹀喅鎬э紝鍗冲鏋滄煇涓�椋熷搧鎰熷畼鎸囨爣涓嶅悎鏍硷紝鍒欎笉蹇呰繘琛屽叾浠栫殑鐞嗗寲鍒嗘瀽鍜屽井鐢熺墿妫�楠岋紝鐩存帴鍒ゅ畾璇ラ鍝佷负涓嶅悎鏍间骇鍝併�傚彟澶栵紝鐩墠娌℃湁浠櫒鍙互鏇夸唬浜虹殑澶ц剳杩涜鎰熷畼璇勪环銆� + </p> + <p class="block">2锛庨鍝佺殑鎰熷畼娑堣垂鎺ュ彈鎬ф槸浜у搧甯傚満鎴愬姛鐨勯瑕佹潯浠�</p> + <p> + 鎰熷畼妫�楠屾槸椋熷搧琛屼笟蹇呬笉鍙皯鐨勮川閲忔楠屾墜娈碉紝涓鸿川閲忔帶鍒舵彁渚涗簡淇℃伅锛岄檷浣庝簡鐢熶骇杩囩▼涓殑椋庨櫓銆傚湪鐜颁唬锛岄鍝佹劅瀹樺垎鏋愭洿澶氬湴琚簲鐢ㄤ簬椋熷搧寮�鍙戝晢鍦ㄨ�冭檻鍟嗕笟鍒╃泭鍜屾垬鐣ュ喅绛栨柟闈紝渚嬪娑堣垂缇や綋鐨勫亸鐖辫皟鏌ャ�佸伐鑹烘垨鍘熸潗鏂欑殑鏀瑰彉鏄惁瀵逛骇鍝佸甫鏉ヨ川閲忓奖鍝嶇殑璋冩煡銆備竴绉嶆柊浜у搧鐨勬帹鍑烘槸鍚︿細鍙楀埌鏇村娑堣垂鑰呭枩娆㈢殑璋冩煡绛夈�備竴椤瑰姛鑳藉畬鍠勭殑鎰熷畼妫�楠岃鍒掑涓�涓叕鍙哥‘淇濆競鍦虹珵浜夊姏鏄緢閲嶈鐨勶紝鏄骇鍝佸競鍦烘垚鍔熺殑棣栬鏉′欢銆� + </p> + <p class="block">3锛庢劅瀹樻楠屾笚閫忓湪椋熷搧浼佷笟杩愯鐨勫悇涓幆鑺�</p> + <p> + 鎰熷畼妫�楠屾彁渚涗簡浜轰滑瀵逛骇鍝佺敱浜庨厤鏂欍�佸伐鑹恒�佸寘瑁呮垨璐ф灦鏈熺殑鏀瑰彉鑰屾劅鐭ュ瓨鍦� + </p> + </div> + </div> + </div> + <!-- P5 --> + <div class="page-box" page="11"> + <div v-if="showPageList.indexOf(11) > -1"> + <div class="pageHeader"> + <img class="img-0" alt="" src="../../assets/images/top.png" /> + <div class="f-right"> + <span>椤圭洰涓�</span>椋熷搧鎰熷畼妫�楠岀殑宀楀墠鍩硅<span>5</span> + </div> + </div> + <div class="bodystyle"> + <p class="td-0"> + 宸紓鐨勬湁鐢ㄤ俊鎭�傛劅瀹樿瘎浠烽儴闂ㄤ笌鏂颁骇鍝佸紑鍙戦儴闂ㄩ棿鐨勭浉浜掑奖鍝嶉潪甯稿ぇ锛岀洿鎺ュ璐ㄩ噺鎺у埗銆佸競鍦虹爺绌跺拰鍖呰锛屼互鍙婇棿鎺ュ鏁翠釜鍏徃鐨勫叾浠栭儴闂ㄦ彁渚涗俊鎭�傚鍥�1-1鎵�绀猴紝椋熷搧鎰熷畼妫�楠屾妧鏈湪椋熷搧浼佷笟杩愯鐨勫悇涓幆鑺傚鏂颁骇鍝佺爺鍙戙�佸伐鑹烘敼杩涖�佸競鍦鸿皟鐮斾笌棰勬祴銆佸搧璐ㄦ楠屻�佽川閲忔帶鍒剁瓑閮藉緱鍒颁簡骞挎硾搴旂敤銆� + </p> + <p class="openImgBox center"> + <img src="../../assets/images/0021-01.jpg" class="img-70" alt="" /> + </p> + <p class="center bold">鍥�1-1 椋熷搧鎰熷畼妫�楠屾妧鏈殑骞挎硾搴旂敤</p> + <p> + 鎰熷畼淇℃伅闄嶄綆浜嗕骇鍝佸紑鍙戝拰婊¤冻娑堣垂鑰呴渶瑕佺殑鎴樼暐鍐崇瓥鐨勯闄┿�傚浜庨鍝佸叕鍙歌�岃█锛屽湪婊¤冻娑堣垂鑰呮湡鏈涗互鍙婄‘淇濇洿澶у彲鑳界殑甯傚満鎴愬姛鏂归潰锛屼竴椤瑰姛鑳藉畬澶囩殑鎰熷畼妫�楠屽疄鏂借鍒掑皢涓嶅彲鎴栫己锛屾劅瀹樻楠岀殑缁撴灉鐩存帴涓庢劅瀹樿川閲忕浉鍏炽�� + </p> + <p class="block">4锛庝粠绠�鍗曠殑鍝佽瘎璧板悜绉戝鐨勬劅瀹樻楠屾槸蹇呯劧瓒嬪娍</p> + <p> + 鐜颁唬鎰熷畼璇勪环鏄竴绉嶇瀛︾殑娴嬪畾鏂规硶锛屼粠瀹為獙瀹ょ幆澧冨竷缃拰瑕佹眰銆佽瘎浠峰憳鐨勯�夋嫨涓庡煿璁�佸疄楠屾柟妗堢殑璁捐锛岀粨鏋滅殑鍒嗘瀽涓庡鐞嗛兘渚濋潬绉戝鐨勬劅瀹樿瘎浠锋爣鍑嗐�傛劅瀹樺搧璇勬妧鏈湪椋熷搧宸ヤ笟涓殑搴旂敤锛岄殢鐫�宸埆妫�楠屻�佸樊寮傜被鍒楠屻�佹弿杩板垎鏋愮瓑鎰熷畼鍝佽瘎鏂规硶鐨勪笉鏂畬鍠勮�屾棩鐩婄瀛﹀寲銆佸畬澶囧寲锛屾槸鏂颁骇鍝佺爺鍒躲�佷繚闅滈鍝佹劅瀹樿川閲忕殑閲嶈鎵嬫銆傜洰鍓嶄竴浜涘ぇ鍨嬬殑椋熷搧鍔犲伐浼佷笟銆侀绮鹃鏂欏叕鍙革紝濡侼ESTLE銆丏ANONE銆佸寳浜ɑ棣欐潙椋熷搧鍏徃銆佷腑绮泦鍥㈢瓑閮芥嫢鏈夎嚜宸辩殑鎰熷畼鍝佽瘎瀹為獙瀹ゅ拰鎰熷畼鍝佽瘎灏忕粍锛屼富瑕佸鏈叕鍙镐骇鍝佺殑鎰熷畼鐗规�ц繘琛屽垎鏋愬拰璇勪环銆備緥濡傚湪鏂颁骇鍝佸紑鍙戣繃绋嬩腑瑕佽繘琛屼粠澶村埌灏剧殑娴嬭瘯鍜岃窡韪�傚寘鎷細锛�1锛夋柊浜у搧鐨勬劅瀹樼壒鎬х殑璁捐锛涳紙2锛変骇鍝佸嵆灏嗘姇鏀惧競鍦虹殑鏈�鍚庢祴璇曪紱锛�3锛変骇鍝佸埗閫犺繃绋嬩腑鎰熷畼鐗规�х殑鎺у埗锛涳紙4锛変骇鍝佹姇鏀惧競鍦哄悗婊¤冻鎰熺殑璺熻釜銆� + </p> + <p> + 杩戝勾鏉ワ紝鎴戝浗涓�浜涘ぇ鍨嬮鍝佸姞宸ヤ紒涓氫篃閫愭笎鎰忚瘑鍒伴鍝佹劅瀹樺搧璇勬妧鏈殑閲嶈鎬э紝骞跺皢璇ユ妧鏈繍鐢ㄥ埌椋熷搧鐢熶骇鍜岃川閲忔帶鍒惰繃绋嬩腑銆傜浉鍏崇鐞嗛儴闂ㄨ繕鍏堝悗鍑哄彴浜嗗叧浜庤尪鍙躲�佽憽钀勯厭銆佷钩鍒跺搧绛夋柟闈㈢殑鎰熷畼鍝佽瘎鍥藉鏍囧噯鍜岃涓氭爣鍑嗭紝鍦ㄨ涓氬唴涔熸秾鐜板嚭浜嗕竴鎵瑰叿鏈夎緝楂樻按骞崇殑鍝侀厭甯堛�佸挅鍟″笀銆佸搧鑼跺笀銆佷钩鍝佽瘎閴村笀绛夈�� + </p> + <h3>涓夈�侀鍝佹劅瀹樻楠岀殑鍙戝睍涓庤秼鍔�</h3> + <p class="block">1锛庡浗澶栭鍝佹劅瀹樻楠岀殑鍙戝睍</p> + <p> + 鎰熷畼绉戝鎶�鏈殑鍙戝睍锛屼富瑕佺粡鍘嗕簡涓変釜闃舵锛屼竴鏄粠绠$悊鑰呭搧璇勮捣姝ワ紱浜屾槸涓撲笟鎰熷畼鍝佽瘎灏忕粍鍝佽瘎鎴愪富浣擄紝澶氬绉戜氦鍙変笌搴旂敤锛屾劅瀹樿瘎浠锋椿鍔ㄦ爣鍑嗗寲锛涗笁鏄劅瀹樺垎鏋愪笌鐞嗗寲鍒嗘瀽鐩哥粨鍚堬紝浠櫒娴嬮噺杈呭姪鎰熷畼璇勪环銆傚浗澶栭鍝佹劅瀹樻楠屽凡鍛堢幇鍑轰汉鏈虹粨鍚堬紝鏅鸿兘鎰熷畼娓愭垚涓绘祦锛涘競鍦烘秷璐归渶姹傚拰娑堣垂鎰忓悜鐨勬劅瀹樺垎鏋愭妧鏈笌鎰熷畼钀ラ攢涓ゅぇ涓昏鏂归潰鐨勫彂灞曟�佸娍銆� + </p> + <p> + 鎰熷畼璇勪环濮嬩簬20涓栫邯鍒濓紝闅忕潃椋熷搧宸ヤ笟鐨勫揩閫熷彂灞曪紝鎰熷畼璇勪环绉戝杩呴�熷彂灞曡捣 + </p> + </div> + </div> + </div> + <!-- P6 --> + <div class="page-box" page="12"> + <div v-if="showPageList.indexOf(12) > -1"> + <div class="pageHeader"> + <img class="img-0" alt="" src="../../assets/images/top.png" /> + <div class="f-right">椋熷搧鎰熷畼妫�楠屾妧鏈�<span>6</span></div> + </div> + <div class="bodystyle"> + <p class="td-0"> + 鏉ャ��20涓栫邯40骞翠唬锛岀編鍥介鍝佷笌瀹瑰櫒鐮旂┒鎵�浠ョ郴缁熷寲鏂瑰紡鏀堕泦澹叺浠椋熷搧鎺ュ彈绋嬪害鐨勬暟鎹紝鐩殑灏辨槸涓轰簡淇濊瘉鏈夎惀鍏荤殑鍐涢渶椋熷搧鏇村ソ鍚冿紝鑳借鍐涗汉鎺ュ彈銆傝澶氱瀛﹀涔熷紑濮嬫�濈储濡備綍鏀堕泦浜轰滑瀵圭墿鍝佺殑鎰熷畼鍙嶅簲鍙婂舰鎴愯繖浜涘弽搴旂殑鐢熺悊鐜拌薄銆� + </p> + <p> + 鏁翠釜鎰熷畼妫�楠屾妧鏈湡姝h捣椋炲浜�20涓栫邯鍏竷鍗佸勾浠o紝涓昏璇卞洜鏄鍝佸姞宸ュ伐涓氱殑蹇�熷彂灞曘�傚湪鏈熼棿鍚勭璇勪环鏂规硶銆佹爣璁版柟娉曘�佽瘎浠疯蹇点�佽瘎浠风粨鏋滅殑琛ㄧ幇鏂瑰紡绛変笉鏂鎻愬嚭銆佽璁轰笌楠岃瘉锛屽苟鍦ㄦ鍩虹涓婂嚭鐜颁簡涓撳鍨嬪搧璇勫憳銆傚埌浜�80骞翠唬锛屾劅瀹樻楠屾妧鏈紑濮嬭摤鍕冨彂灞曪紝瓒婃潵瓒婂鐨勪紒涓氭垚绔嬫劅瀹樿瘎浠烽儴闂紝鍚勫ぇ瀛︽垚绔嬬爺绌跺崟浣嶅苟绾冲叆楂樼瓑鏁欒偛璇剧▼銆傜編鍥芥爣鍑嗘楠岋紙ASTM锛夋柟娉曚篃鍒惰浜嗘劅瀹樺搧閴村疄鏂芥爣鍑嗭紙Committee + E-18锛夈��90骞翠唬涔嬪悗锛岀敱浜庡浗闄呭晢涓氭椿鍔ㄩ绻佷互鍙婂叏鐞冨寲鐨勫奖鍝嶏紝鎰熷畼璇勪环娲诲姩棰戠箒锛屾劅瀹樿瘎浠峰紑濮嬭繘琛屽浗闄呬氦娴佽璁猴紝璺ㄥ浗鏂囧寲涓庝汉绉嶅鎰熷畼鍙嶅簲鐨勫奖鍝嶃�� + </p> + <p> + 杩涘叆21涓栫邯锛屾劅瀹樿瘎浠峰凡鍦ㄥ悇鍥藉彂灞曡繀閫燂紝鍦ㄧ編鍥斤紝鍚勫ぇ椋熷搧鍏徃锛堝彲鍙e彲涔愩�侀泙宸€�佽姮缇庢剰绛夛級閮藉凡鎷ユ湁鍚勮嚜搴炲ぇ鐨勬劅瀹樿瘎浠烽儴闂紝鍚勫ぇ瀛︾殑椋熷搧绉戝绯荤殕璁剧珛浜嗘劅瀹樺搧閴寸爺绌惰绋嬪強椤圭洰锛屼笟鐣岀敋鑷冲嚭鐜颁簡寰堝鎰熷畼鍝侀壌鐨勪笓涓氶【闂叕鍙革紝涓轰腑灏忎紒涓氭彁渚涘搧閴存湇鍔°�� + </p> + <p class="block">2锛庡浗鍐呮劅瀹樻楠岀殑鍙戝睍</p> + <p>锛�1锛夐鍝佹劅瀹樻楠屾妧鏈浗瀹舵爣鍑�</p> + <p> + 鎴戝浗鐜颁唬鎰熷畼鍒嗘瀽濮嬩簬20涓栫邯40骞翠唬锛岃嚦浠婂凡缁忓巻浜�80澶氬勾鐨勫彂灞曪紝閫愭褰㈡垚浜嗕竴鏀緝涓哄畬鍠勫拰瑙勮寖鍖栫殑瀛︾銆傞殢鐫�鐢靛瓙鎶�鏈�佺敓鐗╂妧鏈�佷豢鐢熸妧鏈殑鍙戝睍锛屾劅瀹樺垎鏋愮殑搴旂敤缁撴灉澶勭悊鏇存柟渚裤�佹洿蹇�燂紝瀹冨繀灏嗗緱鍒拌繘涓�姝ョ殑瀹屽杽鍜屾彁楂樸�傝嚜1988骞磋捣锛屾垜鍥界浉缁у埗璁㈠苟棰佸竷浜嗘劅瀹樺垎鏋愭柟娉曠殑鍥藉鏍囧噯锛屽苟鍦ㄤ笉鏂殑淇鍜屾洿鏂帮紝鍖呮嫭锛欸B/T + 10220-2012銆婃劅瀹樺垎鏋愭柟娉曘��鎬昏銆嬨�丟B/T + 10221-2021銆婃劅瀹樺垎鏋愩��鏈銆嬨�丟B/T + 16291.1-2012銆婃劅瀹樺垎鏋愩��閫夋嫈銆佸煿璁笌绠$悊璇勪环鍛樹竴鑸鍒欑1閮ㄥ垎锛氫紭閫夎瘎浠峰憳銆嬨�丟B/T + 16291.2-2012銆婃劅瀹樺垎鏋愩��閫夋嫈銆佸煿璁笌绠$悊璇勪环鍛樹竴鑸鍒欑2閮ㄥ垎锛氫笓瀹惰瘎浠峰憳銆嬨�丟B/T + 13868-2009銆婂缓绔嬫劅瀹樺垎鏋愬疄楠屽鐨勪竴鑸鍒欍�嬨�丟B/T + 12311-2012銆婃劅瀹樺垎鏋愭柟娉曚笁鐐规楠屻�嬨�丟B/T + 17321-2012銆婃劅瀹樺垎鏋愭柟娉曘��浜屻�佷笁鐐规楠屻�嬨�丟B/T + 12310-2012銆婃劅瀹樺垎鏋愩��鎴愬姣旇緝妫�楠屻�嬨�丟B/T + 12315-2008銆婃劅瀹樺垎鏋愩��鏂规硶瀛︺��鎺掑簭娉曘�嬨�丟B/T + 39558-2020銆婃劅瀹樺垎鏋愩��鏂规硶瀛︹�淎鈥�-鈥滈潪A鈥濇楠屻�嬨�丟B/T + 12312-2012銆婃劅瀹樺垎鏋愩��鍛宠鏁忔劅搴︾殑娴嬪畾鏂规硶銆嬨�丟B/T + 15549-1995銆婃劅瀹樺垎鏋愩��鏂规硶瀛︽娴嬪拰璇嗗埆姘斿懗鏂归潰璇勪环鍛樼殑鍏ラ棬鍜屽煿璁�嬨�丟B/T + 16860-1997銆婃劅瀹樺垎鏋愭柟娉曘��璐ㄥ湴鍓栭潰妫�楠屻�嬨�丟B/T + 12313-1997銆婃劅瀹樺垎鏋愭柟娉曘��椋庡懗鍓栭潰妫�楠屻�嬨�丟B/T + 16861-1997銆婃劅瀹樺垎鏋愩��閫氳繃澶氬厓鍒嗘瀽鏂规硶閴村畾鍜岄�夋嫨鐢ㄤ簬寤虹珛鎰熷畼鍓栭潰鐨勬弿杩拌瘝銆嬨�丟B/T + 29605-2013銆婃劅瀹樺垎鏋愩��椋熷搧鎰熷畼璐ㄩ噺鎺у埗瀵煎垯銆嬨�丟B/T + 29604-2013銆婃劅瀹樺垎鏋愩��寤虹珛鎰熷畼鐗规�у弬姣旀牱鐨勪竴鑸鍒欍�嬨�丟B/T + 25006-2010銆婃劅瀹樺垎鏋愬寘瑁呮潗鏂欏紩璧烽鍝侀鍛虫敼鍙樼殑璇勪环鏂规硶銆嬨�� + </p> + <p> + 杩欎簺鍥藉鏍囧噯涓�鑸兘鏄弬鐓ч噰鐢ㄦ垨绛夋晥閲囩敤鐩稿叧鐨勫浗闄呮爣鍑嗭紙ISO绯诲垪锛夛紝骞跺鍥介檯鏍囧噯杩涜浜嗕慨鏀瑰拰瀹屽杽锛屼娇寰楀浗闄呮爣鍑嗘洿鍔犳湰鍦熷寲锛屽叿鏈夎緝楂樼殑鏉冨▉鎬у拰鍙瘮鎬э紝鎴愪负鎰熷畼鍒嗘瀽鐨勬硶寰嬫硶瑙勪緷鎹�傜粡杩囦笉鏂殑鍙戝睍鍙婁慨璁紝鑷充粖鍥介檯鏍囧噯鍖栫粍缁囧凡棰佸竷浜�33椤规劅瀹樺垎鏋愭爣鍑嗭紝鍏朵腑鎰熷畼鍒嗘瀽鏂规硶鏍囧噯鐨勬暟閲忔渶澶氾紝鍏�21椤癸紝鍗犳劅瀹樺垎鏋愭爣鍑嗘�绘暟鐨�64%銆� + </p> + <p>锛�2锛夐鍝佹劅瀹樼瀛︽妧鏈殑鐮旂┒涓庡簲鐢�</p> + <p> + 浠庢暣浣撹�岃█锛屾垜鍥介鍝佹劅瀹樼瀛︽妧鏈殑鐮旂┒涓庡簲鐢ㄥ垎涓轰笁涓樁娈碉細涓�鏄互婊¤冻 + </p> + </div> + </div> + </div> + <!-- P7 --> + <div class="page-box" page="13"> + <div v-if="showPageList.indexOf(13) > -1"> + <div class="pageHeader"> + <img class="img-0" alt="" src="../../assets/images/top.png" /> + <div class="f-right"> + <span>椤圭洰涓�</span>椋熷搧鎰熷畼妫�楠岀殑宀楀墠鍩硅<span>7</span> + </div> + </div> + <div class="bodystyle"> + <p class="td-0"> + 椋熷搧宸ヤ笟璐ㄩ噺绠$悊銆佸競鍦鸿惀閿�銆佹柊浜у搧寮�鍙戜负鐩殑锛屾彁楂樹紶缁熸劅瀹樺搧璇勬柟娉曠殑绉戝鍖栫▼搴︼紱浜屾槸缁撳悎鎴戝浗鐨勭壒鐐硅繘琛岀郴缁熺殑鎰熷畼鍝佽川鐮旂┒锛屽挨鍏舵槸瀵逛竴浜涗紶缁熼鍝侊紝濡傜櫧閰掋�佽尪鍙躲�侀澶淬�佺背楗瓑鐨勬劅瀹樿瘎浠蜂笌浠櫒鍒嗘瀽鏁版嵁鐨勭浉鍏虫�ц繘琛岀殑鐨勭郴缁熺爺绌讹紝鎴嚦鐩墠宸茬Н绱簡杈冧赴瀵岀殑绉戝鏁版嵁锛涗笁鏄珯鍦ㄥ绉戝彂灞曞墠娌匡紝鍦ㄦ劅瀹樿瘎浠蜂俊鎭鐞嗙郴缁熴�佹櫤鑳芥劅瀹樺垎鏋愭柟娉曚笌璁惧鐮旂┒鏂归潰鍙備笌鍥介檯绔炰簤銆� + </p> + <p> + 浠�1975骞磋捣寮�濮嬫湁瀛﹁�呯爺绌堕姘斿拰缁勭粐鐨勮瘎浠枫��20涓栫邯90骞翠唬鍚庯紝鈥滄劅瀹樿瘎浠封�濊澶ч噺鍦板簲鐢ㄥ湪椋熷搧绉戝鐨勭爺绌朵腑锛岀洰鍓嶅湪鍥藉唴鐨勫簲鐢ㄦ湁锛氣憼璇勪及椁愰ギ涓氱殑娓呮礂鏁堟灉锛堜互鐩娉曡繘琛岋級锛涒憽鐢熼矞浜у搧锛屽鑲夊搧銆佹按浜у搧銆佽泲鍝併�佷钩鍝佺瓑锛涒憿涓嵂鑽潗锛涒懀棣欐按鏉愭枡锛涒懁鍡滃ソ鎬т骇鍝侊紝濡傞厭銆佽尪鍙讹紱鈶ヨ偛绉嶅紑鍙戯紝濡傚洯鑹轰骇鍝併�佸啘鐣滀骇鍝侊紱鈶︾幆淇濇娴嬶紙浠ョ洰瑙嗗強鍡呰杩涜锛夛紱鈶х汉缁囧搧锛涒懆璁捐瀛︺�佸獟浣撲紶鎾柟闈紱鈶╅鍝佸姞宸ョ瓑鏂归潰銆傚叾涓互椋熷搧鏂归潰鐨勫簲鐢ㄦ渶澶氾紝鐮旂┒椋熷搧鎰熷畼璇勪环鏂归潰鐨勫鏈枃绔犱篃鍦ㄤ笉鏂鍔犮�� + </p> + <p class="block">3锛庡姩鎬佷笌瓒嬪娍</p> + <p> + 杩涘叆21涓栫邯锛屼即闅忕潃淇℃伅绉戝銆佺敓鍛界瀛︺�佷华鍣ㄥ垎鏋愭妧鏈殑鍙戝睍锛屾劅瀹樼瀛︽妧鏈笌澶氫釜瀛︾浜ゅ弶锛岃〃鐜颁负浜烘満涓�浣撳寲銆佷华鍣ㄦ櫤鑳藉寲鐨勫彂灞曡秼鍔匡紝鍛堢幇鍑轰笌甯傚満闇�姹傚拰娑堣垂鑰呮剰鍚戝瘑鍒囩粨鍚堢殑澶氬厓鍖栨�佸娍銆� + </p> + <p>锛�1锛変汉鏈轰竴浣撳寲鍙戝睍锛岀幇浠f櫤鑳芥劅瀹樻楠屾妧鏈笎鎴愪富娴�</p> + <p> + 閲囩敤鐜颁唬浠跨敓鎶�鏈ā鎷熷摵涔冲姩鐗╃殑鎰熷畼绯荤粺寮�鍙戠殑鐢靛瓙榧诲拰鐢靛瓙鑸岃澶囷紝骞挎硾搴旂敤浜庝钩鍒跺搧銆佽倝鍒跺搧銆侀厭绫荤瓑锛岀數瀛愯垖閲囩敤浜鸿垖澶村懗瑙夌粏鑳炲伐浣滃師鐞嗙浉浼肩殑浜哄伐鑶滆剛浼犳劅鍣ㄦ妧鏈紝浠ュ瑙傛暟鍊肩殑璇勪环椋熷搧鐨勭敎鍛炽�佽嫤鍛炽�佹订鍛炽�侀吀鍛炽�佸捀鍛炽�侀矞鍛崇瓑鍩烘湰鍛宠鎰熷畼鎸囨爣銆傚湪鏃ユ湰璁稿鍝佺墝灏嗗晢鍝佹湰韬殑鍛宠闆疯揪鍥捐氨鍗板埛鍦ㄩ鍝佸鍖呰涓婏紝浠ユ柟渚挎秷璐硅�呴�夎喘鑷繁鍠滄鐨勫彛鍛炽�傜數瀛愰蓟搴旂敤浜庡師鏂欏ザ鍝佽川鍒ゆ柇锛岀伀鑵跨殑鎴愮啛搴﹀垽鏂紝閰掔殑椋庡懗璇嗗埆绛夋柟闈€�傞拡瀵硅壊娉界殑浠櫒娴嬪畾宸茬粡寤虹珛浜嗕笌浜虹殑瑙嗚涔嬮棿鑹ソ鐨勭浉鍏虫�э紝濡傜編鍥藉啘涓氶儴鐮斿埗浜嗘煈妗旀瘮鑹蹭华锛屽疄鐜颁簡浠櫒娴嬪畾缁撴灉涓庡師鏍囧噯姣旇壊鏉跨殑瑙嗚姣斿鐩稿悓鐨勬晥鏋滐紝鎴愪负瀹樻柟鐨勮壊娉借瘎鍒嗘柟娉曘�傚湪椋熷搧鐨勯姘旀祴瀹氭柟闈紝姘旂浉鑹茶氨涓庤川璋辫仈鏈猴紙GC-MS锛夊凡鎴愪负娴嬪畾椋熷搧涓尌鍙戞�ф垚鍒嗙殑甯歌鏂规硶銆備汉鏈虹粨鍚堢殑棣欐皵鍒嗘瀽鎶�鏈篃鍙栧緱浜嗛噸澶ц繘灞曪紝濡傚皢姘旂浉鑹茶氨鈥旇川璋辨妧鏈笌浜虹殑鍡呰鐩哥粨鍚堢殑鍡呮帰鎶�鏈紝琚箍娉涚敤浜庣爺绌朵汉鐨勫梾瑙変笌棣欐皵鎴愬垎涔嬮棿鐨勫叧绯汇�� + </p> + <p>锛�2锛夊競鍦洪渶姹傚拰娑堣垂鑰呮剰鍚戝瘑鍒囩粨鍚�</p> + <p> + 涓轰簡閫傚簲浼佷笟蹇�熷彂灞曠殑闇�瑕侊紝涓嶆柇鎻愰珮鎰熷畼鍝佽瘎缁撴灉鐨勫噯纭�э紝鐮旂┒浜哄憳寮�鍙戝嚭浜嗗悇绉嶅厛杩涚殑鎰熷畼鍝佽瘎杞欢锛屽苟閫氳繃璁$畻鏈虹郴缁熷畬鎴愰棶鍗疯嚜鍔ㄧ敓鎴愩�佸湪绾胯皟鏌ャ�佽嚜鍔ㄦ敹闆嗘暟鎹�佹暟鎹強鏃跺垎鏋愬拰缁樺埗鍥捐〃绛夊伐浣溿�傝繕灏嗙粨鏋滃偍瀛樺湪璁$畻鏈哄唴渚夸簬杩借釜璇勪环鍛樼殑琛ㄧ幇銆傝繖浜涜蒋浠剁殑浣跨敤鏋佸ぇ鍦版彁楂樹簡鎰熷畼鍝佽瘎鐨勫伐浣滄晥鐜囧拰缁撴灉鐨勫噯纭�э紝涓轰骇鍝佸搧璐ㄧ殑鎻愬崌鍜屼紒涓氱殑鍙戝睍鍋氬嚭浜嗛噸瑕佽础鐚�傜洰鍓嶄娇鐢ㄨ緝鏅亶鐨勮蒋浠舵湁鍔犳嬁澶� + Compusense鍏徃鐨凜ompusease + Five銆佹硶鍥紹iosystemes鍏徃鐨凢IZZ銆佺編鍥絊ensory Computer + Systems鍏徃鐨凷IM2000銆佽嵎鍏癓ogic8鍏徃鐨凟yeQuestion銆佹硶鍥� ABT + Informatique鍏徃鐨凾astel锛屼互鍙婁腑鍥芥爣鍑嗗寲鐮旂┒闄㈢殑鈥滆交鏉炬劅瀹樺垎鏋愯蒋浠垛�濈瓑銆� + </p> + <p> + 绉戞妧鏄涓�鐢熶骇鍔涖�佷汉鎵嶆槸绗竴璧勬簮銆佸垱鏂版槸绗竴鍔ㄥ姏銆傞鍝佹劅瀹樼瀛︿綔涓洪鍝佺瀛﹀绉戯紝鏃犺鍦ㄧ悊璁哄缓绔嬨�佹妧鏈垱鏂般�佸墠娌跨獊鐮淬�佸伐涓氬簲鐢ㄧ瓑鏂归潰閮藉彇寰椾簡浠や汉鐬╃洰鐨勬垚灏便�傚挨鍏惰繎鍗佸嚑骞存潵锛屾垜鍥介鍝佹劅瀹樼瀛︾殑鐮旂┒闃熶紞寰楀埌蹇�熺殑鍙戝睍锛� + </p> + </div> + </div> + </div> + <!-- P8 --> + <div class="page-box" page="14"> + <div v-if="showPageList.indexOf(14) > -1"> + <div class="pageHeader"> + <img class="img-0" alt="" src="../../assets/images/top.png" /> + <div class="f-right">椋熷搧鎰熷畼妫�楠屾妧鏈�<span>8</span></div> + </div> + <div class="bodystyle"> + <p class="td-0"> + 瀛︾鐨勬暣浣撴按骞冲緱鍒颁簡蹇�熺殑鎻愬崌锛屽湪鏅鸿兘鎰熷畼鍒嗘瀽銆佹劅瀹樿瘎浠锋妧鏈�侀鍛冲寲瀛︺�佸彛鑵旇涓虹瓑鐩稿叧棰嗗煙鍙栧緱浜嗕竴绯诲垪鎴愭灉銆傚疄鏂介鍝佸畨鍏ㄦ垬鐣ワ紝鍔╁姏鍋ュ悍涓浗寤鸿銆傞鍝佺敓浜т紒涓氫篃鍦ㄤ笉鏂姹傚垱鏂扮獊鐮达紝閫氳繃鎰熷畼鍒嗘瀽鏅鸿兘鍖栧拰椋庡懗鏁板瓧鍖栵紝鍒╃敤绉戞妧璧嬭兘銆侀鍛虫弿杩版墦閫犱骇鍝佸樊寮傚寲锛屼赴瀵屼骇鍝佷俊鎭紝灏嗛鍝佺殑鍝佹帶浠庝紶缁熺殑鐞嗗寲銆佹垚鍒嗘寚鏍囨娴嬪眰闈紝鎷撳睍鑷虫秷璐硅�呬綋楠屽眰闈紝寮哄寲瀵逛綋楠岀殑鍝佽川鎺у埗锛屼娇椋熷搧鏇村姞閫傚悎浜轰滑鐨勯渶姹傦紝淇濋殰浜烘皯鐢熷懡鍋ュ悍锛屼笉鏂弧瓒充汉姘戞棩鐩婂闀跨殑缇庡ソ鐢熸椿闇�瑕併�� + </p> + <p class="mainColor bold">銆愮煡璇嗘嫇灞曚笌閾炬帴銆�</p> + <div class="bk"> + <div class="pdf-view"> + <span @click="toUrl(1)">鎰熷畼妫�楠屸�斺�旂簿瀵嗙殑鈥樼敓鐗╂娴嬪櫒鈥�</span> + </div> + </div> + <p class="mainColor bold">銆愪换鍔℃祴璇曘��</p> + <p class="block3 bold">涓�銆佸閫夐</p> + <p> + 1锛庢劅瀹樻楠屾槸寤虹珛鍦ㄥ绉嶇悊璁虹患鍚堢殑鍩虹涓婄殑瀛︾锛屼富瑕佷笌锛堛��锛夌瓑瀛︾瀵嗕笉鍙垎銆� + </p> + <p> + <input + type="checkbox" + name="projectData.one" + :disabled="questionData.isComplete" + value="A" + id="1" + v-model="questionData.projectData.one" + @change="setBookQuestion" + />A锛庡績鐞嗗 + </p> + <p> + <input + type="checkbox" + name="projectData.one" + :disabled="questionData.isComplete" + value="B" + id="1" + v-model="questionData.projectData.one" + @change="setBookQuestion" + />B锛庣敓鐞嗗 + </p> + <p> + <input + type="checkbox" + name="projectData.one" + :disabled="questionData.isComplete" + value="C" + id="1" + v-model="questionData.projectData.one" + @change="setBookQuestion" + />C锛庣粺璁″ + </p> + <p> + <input + type="checkbox" + name="projectData.one" + :disabled="questionData.isComplete" + value="D" + id="1" + v-model="questionData.projectData.one" + @change="setBookQuestion" + />D锛庣ぞ浼氬 + </p> + <p>2锛庢墽琛屼竴涓」鐩殑鎰熷畼妫�楠岋紝蹇呴』瀹屾垚鐨勪换鍔℃湁锛堛��锛夈��</p> + <p> + <input + type="checkbox" + name="projectData.two" + :disabled="questionData.isComplete" + value="A" + id="2" + v-model="questionData.projectData.two" + @change="setBookQuestion" + />A锛庨」鐩洰鏍囩殑纭畾锛屽疄楠岀洰鏍囩殑纭畾 + </p> + <p> + <input + type="checkbox" + name="projectData.two" + :disabled="questionData.isComplete" + value="B" + id="2" + v-model="questionData.projectData.two" + @change="setBookQuestion" + />B锛庢牱鍝佺殑绛涢�夛紝瀹為獙璁捐 + </p> + <p> + <input + type="checkbox" + name="projectData.two" + :disabled="questionData.isComplete" + value="C" + id="2" + v-model="questionData.projectData.two" + @change="setBookQuestion" + />C锛庡疄楠岀殑瀹炴柦锛屽垎鏋愭暟鎹� + </p> + <p> + <input + type="checkbox" + name="projectData.two" + :disabled="questionData.isComplete" + value="D" + id="2" + v-model="questionData.projectData.two" + @change="setBookQuestion" + />D锛庤В閲婄粨鏋滃緱鍑虹粨璁� + </p> + <p>3锛庝互涓嬪睘浜庣幇浠f劅瀹樺垎鏋愪华鍣ㄧ殑鏄紙銆�锛夈��</p> + <p> + <input + type="checkbox" + name="projectData.three" + :disabled="questionData.isComplete" + value="A" + id="3" + v-model="questionData.projectData.three" + @change="setBookQuestion" + />A锛庣數瀛愯垖 + </p> + <p> + <input + type="checkbox" + name="projectData.three" + :disabled="questionData.isComplete" + value="B" + id="3" + v-model="questionData.projectData.three" + @change="setBookQuestion" + />B锛庣數瀛愰蓟 + </p> + <p> + <input + type="checkbox" + name="projectData.three" + :disabled="questionData.isComplete" + value="C" + id="3" + v-model="questionData.projectData.three" + @change="setBookQuestion" + />C锛庢恫鐩歌壊璋变华 + </p> + <p> + <input + type="checkbox" + name="projectData.three" + :disabled="questionData.isComplete" + value="D" + id="3" + v-model="questionData.projectData.three" + @change="setBookQuestion" + />D锛庤壊宸 + </p> + <p class="block3 bold">浜屻�佸~绌洪</p> + <p> + 1锛庨鍝佹劅瀹樻楠屾妧鏈槸閫氳繃<input + type="text" + name="ball1" + class="fz-16 input-box" + style="width: 100px" + autocomplete="off" + v-model="questionData.projectData.four" + @change="setBookQuestion" + />銆�<input + type="text" + name="ball1" + class="fz-16 input-box" + style="width: 100px" + autocomplete="off" + v-model="questionData.projectData.five" + @change="setBookQuestion" + />銆�<input + type="text" + name="ball1" + class="fz-16 input-box" + style="width: 100px" + autocomplete="off" + v-model="questionData.projectData.six" + @change="setBookQuestion" + />鍜�<input + type="text" + name="ball1" + class="fz-16 input-box" + style="width: 100px" + autocomplete="off" + v-model="questionData.projectData.seven" + @change="setBookQuestion" + />鑰屾劅鐭ュ埌椋熷搧鍙婂叾鐗╄川鐨勭壒寰佹垨鎬ц川鐨勪竴绉嶇瀛︽柟娉曘�� + </p> + <p> + 2锛庨鍝佹劅瀹樻楠屽寘鎷�<input + type="text" + name="ball1" + class="fz-16 input-box" + style="width: 100px" + autocomplete="off" + v-model="questionData.projectData.eight" + @change="setBookQuestion" + />銆�<input + type="text" + name="ball1" + class="fz-16 input-box" + style="width: 100px" + autocomplete="off" + v-model="questionData.projectData.nine" + @change="setBookQuestion" + />銆�<input + type="text" + name="ball1" + class="fz-16 input-box" + style="width: 100px" + autocomplete="off" + v-model="questionData.projectData.ten" + @change="setBookQuestion" + />鍜�<input + type="text" + name="ball1" + class="fz-16 input-box" + style="width: 100px" + autocomplete="off" + v-model="questionData.projectData.eleven" + @change="setBookQuestion" + />鍥涚娲诲姩銆� + </p> + <p> + 3锛庤嚜1988骞村紑濮嬶紝鎴戝浗鍒惰鍜岄甯冨疄鏂戒簡涓�绯诲垪椋熷搧鎰熷畼鍒嗘瀽鏂规硶鐨�<input + type="text" + name="ball1" + class="fz-16 input-box" + style="width: 100px" + v-model="questionData.projectData.twelve" + @change="setBookQuestion" + />锛屾槸鍙傜収绛夋晥鐨勭浉鍏冲浗闄呮爣鍑嗗埗璁㈢殑锛屽叿鏈夋潈濞佹�у拰鍙瘮鎬э紝涔熸槸鎵ц鎰熷畼鍒嗘瀽鐨勬硶寰嬩緷鎹�� + </p> + <p class="block3 bold">涓夈�佺畝绛旈</p> + <p> + 1锛庝粈涔堟槸椋熷搧鎰熷畼妫�楠屾妧鏈紵涓庣悊鍖栨楠岀浉姣旇緝鏈変粈涔堜笉鍙浛浠g殑浼樺娍锛� + </p> + <textarea + v-model="questionData.projectData.thirteen" + placeholder="璇疯緭鍏ュ唴瀹�" + rows="4" + class="fz-15 textarea-box" + @change="setBookQuestion" + ></textarea> + <p>2锛庨鍝佹劅瀹樻楠屽湪椋熷搧浼佷笟鏈夊摢浜涘箍娉涚殑搴旂敤锛�</p> + <textarea + v-model="questionData.projectData.fourteen" + placeholder="璇疯緭鍏ュ唴瀹�" + rows="4" + class="fz-15 textarea-box" + @change="setBookQuestion" + ></textarea> + <p> + 3锛庢垜鍥藉湪涓�浜涘叧閿牳蹇冩妧鏈疄鐜扮獊鐮达紝鎴樼暐鎬ф柊鍏翠骇涓氬彂灞曞.澶э紝杩涘叆鍒涙柊鍨嬪浗瀹惰鍒椼�傝鏌ラ槄鏂囩尞璧勬枡锛屼妇渚嬭鏄庢垜鍥介鍝佹劅瀹樺垎鏋愰鍩熸湁鍝簺鏂版妧鏈紝骞舵帰璁ㄦ湭鏉ョ殑鍙戝睍瓒嬪娍銆� + </p> + <textarea + v-model="questionData.projectData.fifteen" + placeholder="璇疯緭鍏ュ唴瀹�" + rows="4" + class="fz-15 textarea-box" + @change="setBookQuestion" + ></textarea> + </div> + </div> + </div> + <preView + :isClear="dialogVisible" + :md5="p_md5" + :pdfTitle="pdfTitle" + ref="pdfDialogRef" + ></preView> + </div> +</template> +<script> +import { getResourcePath, uploadFilePath } from "@/assets/methods/resources"; +import { + getCollectResource, + setCollectResource, +} from "@/assets/methods/resources"; +import preView from "@/components/pdfview/index.vue"; +import tool from "@/assets/js/toolClass.js"; +export default { + name: "chapterOne", + props: { + showPageList: { + type: Array, + }, + }, + components: { + preView, + }, + data() { + return { + collectImg: require("../../assets/images/icon/heart.png"), + collectCheck: require("../../assets/images/icon/heart-check.png"), + questionData: { + isComplete: false, + askAbout: { + one: "", + two: "", + }, + projectData: { + one: [], + two: [], + three: [], + four: "", + five: "", + six: "", + seven: "", + eight: "", + nine: "", + ten: "", + eleven: "", + twelve: "", + thirteen: "", + fourteen: "", + fifteen: "", + }, + }, + + videoPathOne: "", + chapterData: { + isCollectVideo: false, + }, + collectResourceList: [], + dialogVisible: false, + pdfTitle: "", + p_md5: "", + pdfDialogRef: "", + pdfMd5: { + 1: { + md5: "7181ec12587d46113dfd910030d6e824", + name: "鎰熷畼妫�楠屸�斺�旂簿瀵嗙殑鈥樼敓鐗╂娴嬪櫒鈥�", + }, + }, + }; + }, + async mounted() { + const bookQuestion = localStorage.getItem( + "foodSensoryInspection-book-chapter01-question" + ); + if (bookQuestion) { + this.questionData = JSON.parse(bookQuestion); + } + + this.getVidoePath(); + this.collectResourceList = await getCollectResource( + this.config.activeBook.bookId + ); + }, + methods: { + setBookQuestion() { + localStorage.setItem( + "foodSensoryInspection-book-chapter01-question", + JSON.stringify(this.questionData) + ); + }, + + async getVidoePath() { + this.videoPathOne = await getResourcePath( + "0ef987e8737e8a90c8e0678a1a14ece4" + ); + }, + + toUrl(val) { + if (val) { + this.dialogVisible = true; + this.p_md5 = this.pdfMd5[val].md5; + this.pdfTitle = this.pdfMd5[val].name; + this.$refs.pdfDialogRef.openDialog(); + } + }, + + handleCollect(e) { + if (e == "video-01") { + this.handleCollectResource( + "0ef987e8737e8a90c8e0678a1a14ece4", + "0ef987e8737e8a90c8e0678a1a14ece4", + "", + "瑙嗛", + "bits", + "瑙嗛锛氳亴鏁欌�滀綋楠屽畼鈥濅箣鎴戞槸鈥滈鍝佹楠屾娴嬪憳鈥�" + ); + this.chapterData.isCollectVideo = !this.chapterData.isCollectVideo; + } + }, + //璧勬簮鏀惰棌浜嬩欢 + // resourcePath 鏂囦欢璺緞锛� + // resourceType 鏂囦欢绫诲瀷 + // source 鏂囦欢鏉ユ簮 + handleCollectResource( + id, + md5, + resourcePath, + resourceType, + source, + resourceName + ) { + let list = this.collectResourceList; + if (list.findIndex((item) => item.id == id) > -1) { + list = list.filter((item) => item.id != id); + } else { + list.push({ + id, + md5, + resourcePath, + resourceType, + source, + resourceName, + }); + } + this.collectResourceList = list; + setCollectResource( + this.config.activeBook.bookId, + this.collectResourceList + ); + }, + }, +}; +</script> +<style lang="less" scoped></style> diff --git a/src/books/foodSensoryInspection/view/components/header.vue b/src/books/foodSensoryInspection/view/components/header.vue new file mode 100644 index 0000000..d63bf11 --- /dev/null +++ b/src/books/foodSensoryInspection/view/components/header.vue @@ -0,0 +1,173 @@ +<template> + <div class="chapter" num="1"> + <!-- 灏侀潰 --> + <div class="page-box mt-20" page="1" style="min-height: auto"> + <div v-if="showPageList.indexOf(1) > -1"> + <img class="img-0" alt="" src="../../assets/images/fengmian.jpg" /> + </div> + </div> + <!-- 鎵夐〉 --> + <div class="page-box mt-20" page="2" style="min-height: auto"> + <div v-if="showPageList.indexOf(2) > -1"> + <img class="img-0" alt="" src="../../assets/images/feiye.jpg" /> + </div> + </div> + <!-- 浠嬬粛椤甸潰 --> + <div class="page-box" page="3"> + <div v-if="showPageList.indexOf(3) > -1"> + <div style="margin: 0 auto; padding: 50% 40% 10% 10%;"> + <p class="fz-15"><b>鍥句功鍦ㄧ増缂栫洰锛圕IP锛夋暟鎹�</b></p> + <p class="fz-15 block2"> + 椋熷搧鎰熷畼妫�楠屾妧鏈�/鏌抽潚涓荤紪.鈥斿寳浜細鍖椾含甯堣寖澶у鍑虹増绀撅紝2025.1 + </p> + <p class="fz-15 block2">锛�"鍗佸洓浜�"鑱屼笟鏁欒偛鍥藉瑙勫垝鏁欐潗锛�</p> + <p class="fz-15 block2">ISBN 978-7-303-25359-3</p> + <p class="block2"><br /></p> + <p class="fz-15 block2"> + 鈪�.鈶犻鈥� 銆�鈪�.鈶犳煶鈥︺�� 鈪�.鈶犻鍝佹劅瀹樿瘎浠封�旈珮绛�<br/>鑱屼笟鏁欒偛-鏁欐潗 鈪�.鈶燭S207.3 + </p> + <p class="block2"><br /></p> + <p class="fz-15 block2"> + 涓浗鍥藉鐗堟湰棣咰IP鏁版嵁鏍稿瓧锛�2019锛夌273865鍙� + </p> + <hr /> + <p class="td-0 fz-14 block2"> + 鍑虹増鍙戣锛氬寳浜笀鑼冨ぇ瀛﹀嚭鐗堢ぞ銆�https://www.bnupg.com + </p> + <p class="td-0 fz-14 block2"> + 銆�銆�銆�銆�銆�鍖椾含甯傝タ鍩庡尯鏂拌鍙e澶ц12-3鍙� + </p> + <p class="td-0 fz-14 block2">銆�銆�銆�銆�銆�閭斂缂栫爜锛�100088</p> + <p class="td-0 fz-14 block2">鍗般��銆�鍒凤細娌冲寳鍝佺澘鍗板埛鏈夐檺鍏徃</p> + <p class="td-0 fz-14 block2">缁忋��銆�閿�锛氬叏鍥芥柊鍗庝功搴�</p> + <p class="td-0 fz-14 block2">寮�銆�銆�鏈細787mm脳1092mm銆�1/16</p> + <p class="td-0 fz-14 block2">鍗般��銆�寮狅細18.5</p> + <p class="td-0 fz-14 block2">瀛椼��銆�鏁帮細389鍗冨瓧</p> + <p class="td-0 fz-14 block2">鐗� 鍗� 娆★細2025骞�1鏈堢2鐗堢8娆″嵃鍒�</p> + <p class="td-0 fz-14 block2">瀹氥��銆�浠凤細47.00鍏�</p> + <hr /> + <p class="td-0 fz-15 block2"> + 绛栧垝缂栬緫锛氬懆鍏夋槑銆�銆�銆�銆�銆�銆�璐d换缂栬緫锛氬懆鍏夋槑 + </p> + <p class="td-0 fz-15 block2"> + 缇庢湳缂栬緫锛氱劍銆�涓姐��銆�銆�銆�銆�銆�瑁呭抚璁捐锛氱劍銆�涓� + </p> + <p class="td-0 fz-15 block2"> + 璐d换鏍″锛氶檲銆�姘戙��銆�銆�銆�銆�銆�璐d换鍗板埗锛氳档銆�榫� + </p> + <p ><br /></p> + <p class="td-0 fz-16"><b>鐗堟潈鎵�鏈夈��渚垫潈蹇呯┒</b></p> + <p class="td-0 block2 fz-13">璇昏�呮湇鍔$數璇�:010-58806806</p> + <p class="td-0 block2 fz-13">濡傚彂鐜板嵃瑁呰川閲忛棶棰�,褰卞搷闃呰,璇疯仈绯诲嵃鍒剁鐞嗛儴:010-58800608</p> + </div> + </div> + </div> + <!-- 缂栧浼� --> + <div class="page-box" page="4"> + <div v-if="showPageList.indexOf(4) > -1"> + <div class="bodystyle"> + <h1 class="firstTitle center">缂栧浼�</h1> + <p class="block"> + <span class="bold">涓汇��缂�</span>銆�鏌炽��闈掋��鍖椾含鍐滀笟鑱屼笟瀛﹂櫌 + </p> + <p class="block"> + <span class="bold">鍓富缂�</span>銆�鍖呮案鍗庛��娴欐睙缁忚锤鑱屼笟鎶�鏈闄� + </p> + <p class="block">銆�銆�銆�銆�璋緳椋炪��骞垮窞鍩庡競鑱屼笟瀛﹂櫌</p> + <p class="block">銆�銆�銆�銆�鏉庣兢鍜屻��娓╁窞绉戞妧鑱屼笟瀛﹂櫌</p> + <p class="block"> + <span class="bold">鍙傘��缂�</span>銆�寮犱附浜戙��鐭冲搴勮亴涓氭妧鏈闄� + </p> + <p class="block">銆�銆�銆�銆�鐢版枃闈欍��鍖椾含鍐滀笟鑱屼笟瀛﹂櫌</p> + <p class="block">銆�銆�銆�銆�浠婚緳姊呫��涔屽叞瀵熷竷鑱屼笟瀛﹂櫌</p> + <p class="block">銆�銆�銆�銆�鏂姐��甯呫��姹熻嫃鍐滅墽绉戞妧鑱屼笟瀛﹂櫌</p> + <p class="block">銆�銆�銆�銆�鍛ㄦ収鎭掋��婀栧崡鍖栧伐鑱屼笟鎶�鏈闄�</p> + <p class="block">銆�銆�銆�銆�鏉庛��鎵��鍖椾含鑹炬.娉扮绉戞妧鏈夐檺璐d换鍏徃</p> + <p class="block">銆�銆�銆�銆�鏉庛��瀹併��鍖椾含鐩堢洓鎭掓嘲绉戞妧鏈夐檺璐d换鍏徃</p> + <p class="block"> + 銆�銆�銆�銆�鍗€��浼熴��鏌凹鍗$編鑳借揪锛堜腑鍥斤級鎶曡祫鏈夐檺鍏徃 + </p> + <p class="block"> + 銆�銆�銆�銆�闄堛��杈俱��鏌凹鍗$編鑳借揪锛堜腑鍥斤級鎶曡祫鏈夐檺鍏徃 + </p> + </div> + </div> + </div> + <!-- 鍓嶈█ --> + <div class="page-box" page="5"> + <div v-if="showPageList.indexOf(5) > -1"> + <div class="pageHeader"> + <img class="img-0" alt="" src="../../assets/images/top.png" /> + <div class="f-right">鍓嶈█</div> + </div> + <div class="bodystyle"> + <h1 class="center mainColor">鍓嶈█</h1> + <p class="block1"> + 鏈暀鏉愭槸浠ヤ範杩戝钩鏂版椂浠d腑鍥界壒鑹茬ぞ浼氫富涔夋�濇兂涓烘寚瀵硷紝娣卞叆瀛︿範璐交鍏氱殑浜屽崄澶ф姤鍛婄簿绁烇紝鈥滆惤瀹炵珛寰锋爲浜烘牴鏈换鍔★紝鍩瑰吇寰锋櫤浣撶編鍔冲叏闈㈠彂灞曠殑绀句細涓讳箟寤鸿鑰呭拰鎺ョ彮浜衡�濓紝鏍规嵁銆婁腑鍗庝汉姘戝叡鍜屽浗鑱屼笟鏁欒偛娉曘�嬪拰鍥藉姟闄€�婂浗瀹惰亴涓氭暀鑲叉敼闈╁疄鏂芥柟妗堛�嬶紙鍥藉彂銆�2019銆�4鍙凤級锛岀揣璐存柊鏃朵唬鐗圭偣鍜岄鍝侀鍩熸柊褰㈠娍锛屼骇鏁欒瀺鍚堢壒鑹查矞鏄庯紝鏃ㄥ湪鎵挎媴淇濋殰浜烘皯瀵瑰畨鍏ㄧ編鍛抽鍝佺殑杩芥眰锛岄噰鐢ㄤ换鍔″鍚戞暀瀛︽ā寮忥紝涓庝紒涓氳涓氫笓瀹跺悎浣滅紪鍐欒�屾垚銆傚潥鎸佹妸鍩瑰吇涓浗鐗硅壊绀句細涓讳箟寤鸿鑰呭拰鎺ョ彮浜轰綔涓烘牴鏈换鍔★紝绱х揣鍥寸粫鍩瑰吇浠�涔堜汉銆佹�庢牱鍩瑰吇浜恒�佷负璋佸煿鍏讳汉锛屼繚闅滀汉姘戔�滆垖灏栦笂鐨勫畨鍏ㄢ�濓紝涓嶆柇婊¤冻浜烘皯瀵圭編濂界敓娲荤殑鍚戝線銆傛暀鏉愮紪鍐欏洟闃熶富鎸佺殑鏁欒偛閮ㄥ叏鍥介鍝佸伐涓氳鎸囧鈥滈珮鑱岄櫌鏍¢鍝佹劅瀹樻楠屾妧鏈绋嬫暀瀛︽敼闈╀笌瀹炶返鈥濋」鐩幏鐪侀儴绾ф暀瀛︽垚鏋滀竴绛夊銆備富瑕佺壒鑹插涓嬶細 + </p> + <p class="block1"> + 1锛庣揣鎵f劅瀹樻楠屽矖浣嶈亴涓氳兘鍔涜姹傦紝鏋勫缓鈥滃矖璇捐禌璇佸垱鈥濊绋嬩綋绯� + </p> + <p class="block1"> + 鏁欐潗绔嬭冻椋熷搧瀹夊叏鎴樼暐瑕佹眰锛屾繁鍏ュ疄鏂戒汉鎵嶅己鍥芥垬鐣ワ紝鍩瑰吇閫犲氨澶ф壒寰锋墠鍏煎鐨勯珮绱犺川浜烘墠锛屼互椋熷搧鎰熷畼妫�楠岃亴涓氬矖浣嶉渶姹備负瀵煎悜锛屽鎺ユ劅瀹樺垎鏋愬浗瀹舵爣鍑嗐�佲��1+X鈥濈伯鍐滈鍝佸畨鍏ㄨ瘎浠风瓑绾ц瘉涔︺�佹楠屾妧鑳藉ぇ璧涘拰鈥滀簰鑱旂綉+鈥濆ぇ瀛︾敓鍒涙柊鍒涗笟澶ц禌锛岃瀺鍚堣川鏋勪华銆佺數瀛愯垖銆佺數瀛愰蓟鍒嗘瀽绛夌幇浠f櫤鑳芥劅瀹樻楠屾柊鎶�鏈紝鏍′紒鍚堜綔寮�鍙戝熀浜庡矖浣嶇殑鍏稿瀷宸ヤ綔浠诲姟銆傝绋嬪唴瀹规灦鏋勯伒寰浗瀹垛�滄劅瀹樺垎鏋愬笀鈥濊亴涓氳兘鍔涘煿鍏昏寰嬪苟绗﹀悎瀛︾敓瀛︿範璁ょ煡瑙勫緥锛岀揣鎵i鍝佽涓氱殑鏂版妧鏈�佹柊宸ヨ壓銆佹柊瑙勮寖锛屼互10涓」鐩叡37涓紒涓氱湡瀹炵殑鎰熷畼妫�楠屼换鍔′负涓荤嚎锛屾瘡涓」鐩互鈥滄渚嬪鍏ャ�佸伐浣滀换鍔°�佺煡璇嗗噯澶囥�佹柟妗堣璁′笌瀹炴柦銆佽瘎浠蜂笌鍙嶉鈥濆簭鍖栨暀鏉愬唴瀹癸紝鍏呭垎浣撶幇浠ュ鐢熶富浣撱�佹暀甯堜负涓诲銆傚疄鐜拌亴涓氱礌鍏诲煿鍏讳笌鑱屼笟鎶�鑳芥彁鍗囩浉铻嶅悎锛屽伐浣滀换鍔′笌宀椾綅鐩歌瀺鍚堬紝鏁欐潗鍐呭涓庢劅瀹樺垎鏋愬浗瀹舵爣鍑嗐�佹妧鑳界珵璧涚浉铻嶅悎锛屾垚缁╄�冩牳涓庤亴涓氳祫鏍艰瘉涔︾浉铻嶅悎銆� + </p> + <p class="block1"> + 2锛庨厤濂楀浗瀹跺湪绾跨簿鍝佽绋嬪拰鍥藉鏁欏璧勬簮搴擄紝涓虹嚎涓婄嚎涓嬫贩鍚堝紡鏁欏濂犲畾鍧氬疄鍩虹 + </p> + <p class="block1"> + 鏈暀鏉愰厤濂楀寳浜啘涓氳亴涓氬闄㈡煶闈掓暀鎺堜富鎸佺殑鍥藉鑱屼笟鏁欒偛鍦ㄧ嚎绮惧搧璇剧▼锛岀綉鍧�锛歨ttps://mooc.icve.com.cn/cms/courseDetails/index.htm?cid=spgbjn011lq441銆傚苟閰嶅鍥藉鑱屼笟鏁欒偛鏁欏璧勬簮搴�3闂ㄨ绋嬭祫婧愶紙https://www.icve.com.cn锛夛細銆婇鍝佹劅瀹樻楠屾妧鏈�嬨�婇鍝佹劅瀹樺垎鏋愭妧鏈�嬪拰銆婂啘浜у搧鎰熷畼鍒嗘瀽鎶�鏈�嬶紝鐩墠閫夎浜烘暟1涓囦綑浜恒�備緷鎵樻暀鑲查儴椋熷搧瀹夊叏绀鸿寖鎬ц櫄鎷熶豢鐪熷疄璁熀鍦帮紝寤鸿38GB銆�1300浣欓」绔嬩綋鍖栨暟瀛楄祫婧愶紝鍖呮嫭寰銆佽棰戙�佸姩鐢汇�佹劅瀹樺垎鏋愯櫄鎷熶豢鐪熻蒋浠躲�乂R銆佹祴璇曢銆丳PT绛夛紝鍏呭垎婊¤冻瀛︾敓涓�у寲瀛︿範闇�姹傦紝涓虹嚎涓婄嚎涓嬫贩鍚堝紡鏁欏濂犲畾鍧氬疄鍩虹銆傛弧瓒充簡骞垮ぇ甯堢敓銆佷紒涓氫汉鍛樺拰绀句細瀛︿範鑰呯殑瀛︿範闇�姹傦紝瀹炵幇浜嗗湪绾垮涔犱笌璇惧爞瀹炶返鐨勯珮搴﹁瀺鍚堬紝鍏ㄩ潰婵�鍙戝鐢熺殑瀛︿範鍏磋叮鍜屾綔鑳姐�傚悓鏃舵暀鏉愬皝闈㈣创鏈変簩缁寸爜锛屼负鍚勯」鐩换鍔¢厤濂桺PT銆佺煡璇嗘嫇灞曞拰娴嬭瘯棰樼瓑璧勬簮锛屼功鍐呬篃宓屽叆浜嗕簩缁寸爜锛屾柟渚垮鐢熺洿鎺ユ壂鐮佸涔犵礌鏉愩�� + </p> + <p class="block1">3锛庤惤瀹炵珛寰锋爲浜烘牴鏈换鍔★紝娑︾墿缁嗘棤澹拌瀺鍏ヨ绋嬫�濇斂</p> + <p class="block1"> + 涓鸿惤瀹炵珛寰锋爲浜烘牴鏈换鍔★紝娣卞寲涓夊叏鑲蹭汉鏀归潻锛屽皢鎬濇斂鍏冪礌钀藉疄鍒版瘡涓换鍔★紝浣垮鐢熶粠椋庡懗瑙掑害涓ユ帶椋熷搧鍝佽川锛屾湇鍔′汉姘戠編濂界敓娲汇�備緥濡傚湪椋熷搧鎰熷畼妫�楠岀殑宀楀墠 + </p> + </div> + </div> + </div> + <div class="page-box" page="6"> + <div v-if="showPageList.indexOf(6) > -1"> + <div class="pageHeader"> + <img class="img-0" alt="" src="../../assets/images/top.png" /> + <div class="f-right">椋熷搧鎰熷畼妫�楠屾妧鏈�<span>2</span></div> + </div> + <div class="bodystyle"> + <p class="td-0 block1">鍩硅浠诲姟涓阀濡欒瀺鍏モ�滆垖灏栦笂鐨勫ぉ瀹�濓紝鍙e懗瀹氬埗鍖栫殑鑸ぉ椋熷搧锛屽紭鎵埍鍥界簿绁烇紝寮曞骞垮ぇ浜烘墠鐖卞厷鎶ュ浗銆佹暚涓氬鐚�佹湇鍔′汉姘戯紱鍦ㄥ懗瑙変笌椋熷搧鐨勫懗瑙夎瘑鍒互鈥滅鍐滃皾鐧捐崏涔嬫粙鍛筹紝姘存硥涔嬬敇鑻︹�濇渚嬶紝鍩瑰吇瀛︾敓瀹炶返鍑虹湡鐭ワ紝鍏绘垚鍕ゅ鏄庤鲸鍜岀瀛︾尞韬簿绁烇紱灏嗏�滆憽钀勭編閰掑鍏夋澂锛屾楗惖鐞堕┈涓婂偓鈥濊瀺鍏ヨ憽钀勯厭鐨勬帓搴忔楠屼换鍔′腑锛屽紩瀵煎鐢熷潥瀹堜腑鍗庢枃鍖栫珛鍦猴紝寮樻壃涓崕姘戞棌浼樼浼犵粺鏂囧寲锛屾爲绔嬧�滀腑鍥藉埗閫犫�濊憽钀勯厭鐨勬枃鍖栬嚜淇★紝鍩瑰吇绮剧泭姹傜簿鐨勫伐鍖犵簿绁烇紱閽堝鍒跺亣鍞亣锛屽姡璐ㄩ厭鎶珮妗b�滃琛b�濋攢鍞幇璞★紝鍒╃敤鐜颁唬鏅鸿兘鎰熷畼鍒嗘瀽鎶�鏈簿鍑嗘楠屼互鍙婂湪鎰熷畼妫�楠屽簲鐢ㄦ妧鑳戒腑铻嶅叆鍒涙柊璁╄�侀唻椋樷�滄柊棣欌�濇渚嬶紝鎻愬崌瀛︾敓鐨勭患鍚堣亴涓氳兘鍔涳紝瀹炵幇鑲茶缁撳悎銆佸痉鎶�骞朵慨鐨勬暀瀛︾洰鏍囥��</p> + <p class="block1">4锛庝骇鏁欒瀺鍚堢壒鑹查矞鏄庯紝鑱氱劍鐜颁唬椋熷搧浜т笟鍙戝睍鍓嶆部</p> + <p class="block1"> + 鏁欐潗鑱氱劍椋熷搧浜т笟鍙戝睍鐨勬柊闇�姹傦紝瀵规帴鑱屼笟鏍囧噯鍜屾劅瀹樻楠屽矖浣嶈姹傦紝浠ヤ紒涓氱湡瀹炴渚嬭璁″吀鍨嬪伐浣滈」鐩紝绉夋寔鍒涙柊椹卞姩鍙戝睍鎴樼暐锛屾惌寤鸿櫄鎷熺幇瀹炴劅瀹樺垎鏋愬钩鍙帮紝灏嗘暀瀛﹁繃绋嬩笌椤圭洰瀹炴垬鍏呭垎铻嶄负涓�浣擄紝浣撶幇鈥滄暀銆佸銆佸仛鈥濅竴浣撳寲锛屽疄鐜版牎浼佸悎浣溿�佸伐瀛︾粨鍚堢殑鈥滄棤缂濆鎺モ�濄�備富瑕佸唴瀹瑰寘鎷鍝佹劅瀹樻楠岀殑宀楀墠鍩硅銆侀鍝佹劅瀹樻楠屾潯浠剁殑鎺у埗銆佹牱鍝佺殑鍒跺鍜屽憟閫併�侀鍝佹劅瀹樿瘎浠峰憳鐨勯�夋嫈涓庡煿璁�侀鍝佸樊鍒楠屻�侀鍝佹帓鍒楁楠屻�侀鍝佹弿杩版�у垎鏋愭楠屻�侀鍝佸垎绾ф楠屻�佺幇浠f櫤鑳介鍝佹劅瀹樺垎鏋愬拰椋熷搧鎰熷畼妫�楠岀殑搴旂敤鎶�鑳姐�傛兜鐩栦簡鏋滆敩鍒跺搧銆佺儤鐒欓鍝併�佷钩鍒跺搧銆佽倝鍒跺搧銆佹按浜у搧銆侀厭绫汇�侀ギ鏂欍�佽尪鍙躲�佺綈澶寸瓑鍚勭被椋熷搧鐨勬劅瀹樻楠屾柟娉曪紝寮曢椋熷搧鎰熷畼妫�楠岄鍩熶笓涓氬寲銆佽亴涓氬寲浜烘墠鍩瑰吇锛屽姫鍔涢�犲氨鏇村鈥滃崜瓒婂伐绋嬪笀銆佸ぇ鍥藉伐鍖犮�侀珮鎶�鑳戒汉鎵嶁�濄�� + </p> + <p class="block1"> + 鏈功鐢卞寳浜啘涓氳亴涓氬闄㈡煶闈掓媴浠讳富缂栧苟缁熺锛屽叿浣撶紪鍐欏垎宸ュ涓嬶細鏌抽潚缂栧啓椤圭洰涓�锛堜换鍔�1銆�2锛夈�侀」鐩簲銆侀」鐩節鍙婇檮褰曪紱鐢版枃闈欑紪鍐欓」鐩竴锛堜换鍔�3锝炰换鍔�5锛夛紱寮犱附浜戠紪鍐欓」鐩簩锛涙潕缇ゅ拰缂栧啓椤圭洰涓夈�侀」鐩洓锛涘寘姘稿崕缂栧啓椤圭洰鍏紱璋緳椋炵紪鍐欓」鐩竷锛涙柦甯呯紪鍐欓」鐩叓锛涙潕鎵�佹潕瀹併�佸崲浼熴�侀檲杈剧紪鍐欓」鐩節锛堜换鍔�1锝炰换鍔�4锛夛紱浠婚緳姊呯紪鍐欓」鐩崄銆� + </p> + <p class="block1"> + 鏈功鍦ㄧ紪鍐欒繃绋嬩腑锛屽緱鍒颁簡鍥藉鑱屼笟鏁欒偛鏁欏璧勬簮搴撯�滄櫤鎱ц亴鏁欌�濊绋嬪钩鍙般�佸浗鍐呮湁鍏抽珮鏍°�佷腑鍥芥爣鍑嗗寲鐮旂┒闄€�侀鍝佷紒涓氫笓瀹剁殑澶у姏鏀寔锛屽湪姝よ〃绀鸿》蹇冪殑鎰熻阿銆傚彟澶栵紝涔︿腑寮曠敤鍜屽弬鑰冧簡浼楀涓撳鐨勮憲浣滐紝鍦ㄦ涓�骞惰〃绀烘劅璋€�� + </p> + <p class="block1"> + 鏈功鏃㈠彲浣滀负椋熷搧妫�楠屽強鍔犲伐绫荤瓑涓撲笟鐨勬暀瀛︾敤涔︼紝涔熷彲浣滀负椋熷搧涓撲笟鎶�鏈汉鍛樸�佺鐞嗕汉鍛樺拰绉戠爺浜哄憳鐨勫弬鑰冧功锛屽绮剧粏鍔犲伐銆佸尰鑽瓑琛屼笟鐨勪骇鍝佽瘎瀹氬拰钀ラ攢浜哄憳涔熷叿鏈変竴瀹氱殑鍙傝�冧环鍊笺�� + </p> + <p class="block1"> + 閴翠簬缂栬�呮按骞虫湁闄愶紝鍔犱箣鏃堕棿浠撲績锛屼功涓笉瓒充箣澶勫湪鎵�闅惧厤锛屾伋璇峰悇浣嶄笓瀹跺拰璇昏�呮彁鍑哄疂璐垫剰瑙佸拰寤鸿锛屼互渚夸慨鏀瑰拰瀹屽杽銆� + </p> + <p class="right-info">缂栬��</p> + </div> + </div> + </div> + </div> +</template> +<script> +export default { + name: "pageHeader", + props: { + showPageList: { + type: Array, + }, + }, + data() { + return {}; + }, +}; +</script> + +<style lang="less" scoped> + +</style> diff --git a/src/books/foodSensoryInspection/view/components/index.vue b/src/books/foodSensoryInspection/view/components/index.vue new file mode 100644 index 0000000..6180098 --- /dev/null +++ b/src/books/foodSensoryInspection/view/components/index.vue @@ -0,0 +1,953 @@ +<template> + <div class="page-main" @scroll="throttledScrollHandler"> + <div class="page-content" :style="{ + fontSize: fontSize + 'px', + transform: `scale(${pageZoom})`, + transformOrigin: 'center top', + }"> + <pageHeader v-if="showCatalogList.indexOf(1) > -1" :showPageList="loadPageList"></pageHeader> + <chapterOne v-if="showCatalogList.indexOf(2) > -1" :showPageList="loadPageList"></chapterOne> + + </div> + </div> +</template> + +<script> +import Vue from "vue"; +import pageHeader from "./header.vue"; +import chapterOne from "./chapter001.vue"; +import NoteIcon from "@/assets/images/biji.png"; +import getQuestionList from "@/assets/methods/examination"; +import _ from "lodash"; +import Swiper from "swiper/bundle"; +import "swiper/swiper-bundle.css"; +import Viewer from "viewerjs"; +import "viewerjs/dist/viewer.css"; +export default { + name: "pageContent", + data() { + return { + catalogLength: 2, // 鎬荤珷鑺傛暟 + showCatalogList: [], // 鏄剧ず鐨勭珷鑺� + loadThreshold: 300, // 瑙﹀彂鍔犺浇闃堝�� + throttleThreshold: 100, // 鑺傛祦闃堝�� + previousScrollTop: 0, + throttledScrollHandler: null, + observer: null, + loadPageObserver: null, + loadPageList: [], + questionDataMap: {}, + renderSignMap: {}, + highlightData: null, + audioPath: "", + currentTime: null, + videoList: [], + }; + }, + computed: { + fontSize() { + this.transformDom(this.$store.state.qiankun.fontSize); + return this.$store.state.qiankun.fontSize + ? this.$store.state.qiankun.fontSize + : 16; + }, + pageZoom() { + return this.$store.state.qiankun.scale + ? this.$store.state.qiankun.scale / 100 + : 1; + }, + }, + watch: { + showCatalogList: { + handler(newVal, oldVal) { + if ( + this.$store.state.qiankun && + this.$store.state.qiankun.catalogChange + ) { + // 璋冪敤鐖跺眰鏂规硶 + this.$store.state.qiankun.catalogChange({ + showCatalogList: newVal, + }); + } + // 鍚姩椤电爜瑙傚療 + setTimeout(() => { + this.initObservation(); + this.initThemeColor(); + }, 500); + }, + }, + loadPageList: { + handler(newVal, oldVal) { + setTimeout(() => { + this.transformDom(this.$store.state.qiankun.fontSize); + this.initSwiper(); + this.initViewer(); + this.closeAudio(); + this.closeVideo(); + }, 200); + }, + }, + pageZoom: { + handler(newVal, oldVal) { + const scrollBox = ( + this.container ? this.container : document + ).querySelector(".page-main"); + scrollBox.scrollTop = (scrollBox.scrollTop / oldVal) * newVal; + }, + }, + }, + mounted() { + // 榛樿鍔犺浇绔犺妭 + this.showCatalogList = [1]; + // 婊氬姩鐩戝惉鑺傛祦 + this.throttledScrollHandler = _.throttle( + this.scrollFun, + this.throttleThreshold, + { leading: true, trailing: false } + ); + // 瀹氫箟瀛愬眰鏂规硶 + if (this.setGlobalState) { + // 鎻愪緵椤甸潰璺宠浆鍔熻兘 + this.setGlobalState({ + gotoPage: (catalog, page) => { + this.gotoPage(catalog, page); + }, + // 娓叉煋绗旇銆侀珮浜�佸垝绾� + renderSign: (type, data) => { + // 鍥犱负璋冩暣涓洪〉闈㈡噿鍔犺浇锛屾墍浠ユ覆鏌撴爣璁颁篃闇�瑕佹寜鐓ч〉闈㈣繘琛屽鐞嗭紝鍏堝偍瀛樻暟鎹紝椤甸潰鍔犺浇瀹屾垚鍐嶆覆鏌撳搴旂殑鏍囪锛� + this.handelSignData(type, data); + // this.renderSign(type, data); + }, + // 鍒犻櫎绗旇銆侀珮浜�佸垝绾� + delSign: (data) => { + this.delSign(data); + }, + // 鍏ㄦ枃妫�绱� + searchBookByKeyword: (keyword) => { + return this.searchTextByPage(keyword); + }, + // 璺宠浆妫�绱㈢粨鏋滀綅缃� + jumpSearchItem: (data) => { + this.searchItemLocation(data); + }, + }); + } + + // 鍒涘缓涓�涓柊鐨� Intersection Observer 瀹炰緥锛岀敤浜庤瀵熺洰鏍囧厓绱犲拰鎵ц鐩稿簲鐨勫洖璋冨嚱鏁般�� + // new IntersectionObserver(callback, options)锛氫娇鐢ㄤ箣鍓嶅畾涔夌殑 callback 鍥炶皟鍑芥暟鍜� options 閰嶇疆閫夐」鏉ュ垵濮嬪寲 Intersection Observer 瀹炰緥銆� + this.observer = new IntersectionObserver(this.pageChangeCallback, { + root: null, // 鎸囧畾鏍瑰厓绱狅紝杩欓噷璁句负 null锛岃〃绀洪�夊彇鏁翠釜瑙嗙獥浣滀负鏍瑰厓绱犮�� + rootMargin: "0px", // 鎸囧畾鏍瑰厓绱犵殑杈圭晫锛岃繖閲岃涓� "0px"锛岃〃绀烘牴鍏冪礌鐨勮竟鐣屽拰瑙嗙獥鐨勮竟鐣岄噸鍚� + threshold: 0.5, // 鎸囧畾浜ゅ弶姣斾緥锛岃繖閲岃涓� 0.5锛岃〃绀哄綋鐩爣鍏冪礌涓�鍗婃垨鏇村鏄剧ず鍦ㄨ绐椾腑鏃惰Е鍙戝洖璋冨嚱鏁般�� + }); + + this.loadPageObserver = new IntersectionObserver(this.loadPageCallback, { + root: null, // 鎸囧畾鏍瑰厓绱狅紝杩欓噷璁句负 null锛岃〃绀洪�夊彇鏁翠釜瑙嗙獥浣滀负鏍瑰厓绱犮�� + rootMargin: "0px", // 鎸囧畾鏍瑰厓绱犵殑杈圭晫锛岃繖閲岃涓� "0px"锛岃〃绀烘牴鍏冪礌鐨勮竟鐣屽拰瑙嗙獥鐨勮竟鐣岄噸鍚� + threshold: 0, // 鎸囧畾浜ゅ弶姣斾緥锛岃繖閲岃涓� 0.5锛岃〃绀哄綋鐩爣鍏冪礌涓�鍗婃垨鏇村鏄剧ず鍦ㄨ绐椾腑鏃惰Е鍙戝洖璋冨嚱鏁般�� + }); + + // 鍚姩椤电爜瑙傚療 + setTimeout(() => { + this.initObservation(); + this.initThemeColor(); + }, 500); + + // 娴嬭瘯椤甸潰璺宠浆 + setTimeout(() => { + // this.gotoPage(11, 290); + // setTimeout(() => { + // this.renderSign("Highlight", { + // id: "2ACA9359", + // txt: "棰樹竴瀛︿範涓婚涓� 杩愬姩", + // page: "10", + // type: "Highlight", + // color: "#F5E12A" + // }); + // setTimeout(() => { + // this.delSign({ + // ids: ["2ACA9359"] + // }); + // }, 2000); + }, 500); + + // const pageDom = (this.container ? this.container : document) + // .querySelector("#app") + // .querySelectorAll(".page-box"); + // 妫�绱� + // console.log(this.searchTextByPage("淇濇姢鍐呰剰鍣ㄥ畼"), "searchTextByPage"); + // 妫�绱㈣烦杞� + // this.searchItemLocation({ + // catalog: 2, + // page: 10, + // txt: " 杩愬姩绯荤粺鏄敱楠ㄣ�侀杩炵粨鍜岄楠艰倢涓夐儴鍒嗙粍鎴愮殑銆傚叏韬殑楠ㄩ�氳繃楠ㄨ繛缁撶粍鎴愪汉浣撻楠硷紙瑙佸浘1-1锛夈�傞楠兼槸浜轰綋鐨勬敮鏋讹紝鍏锋湁淇濇姢鍐呰剰鍣ㄥ畼銆佷緵鑲岃倝闄勭潃鍜屼綔涓鸿倢鑲夎繍鍔ㄧ殑鏉犳潌绛変綔鐢ㄣ�傚湪绁炵粡绯荤粺鐨勬敮閰嶄笅锛岃倢鑲夋敹缂╃壍鍔ㄦ墍闄勭潃鐨勯缁曠潃鍏宠妭杞姩锛屼娇韬綋浜х敓鍚勭鍔ㄤ綔銆傛墍浠ワ紝杩愬姩绯荤粺鍏锋湁杩愬姩銆佹敮鎸佸拰淇濇姢绛夊姛鑳斤紝骞煎勾鏃舵湡鐨勯楠艰繕鍏锋湁閫犺鍔熻兘銆� ", + // txtIndex: 57 + // }); + // }, 500); + }, + methods: { + // setZoom1() { + // let scale = this.$store.state.qiankun.scale + 10; + // const scrollBox = ( + // this.container ? this.container : document + // ).querySelector(".page-main"); + // this.$store.commit("setZoom", scale); + // }, + // setZoom2() { + // let scale = this.$store.state.qiankun.scale - 10; + // const scrollBox = ( + // this.container ? this.container : document + // ).querySelector(".page-main"); + // this.$store.commit("setZoom", scale); + // }, + // 婊氬姩鐩戝惉 + scrollFun(event) { + this.handleVideoPicture(); + // 鍒ゆ柇鍚戜笂婊氬姩杩樻槸鍚戜笅婊氬姩 + if (event.target.scrollTop > this.previousScrollTop) { + this.getAduio(); + // 鍚戜笅 + const currentScrollTop = + event.target.scrollTop + event.target.offsetHeight; + if ( + currentScrollTop >= + event.target.scrollHeight - this.loadThreshold + ) { + console.log(1); + + // 鍒拌揪闃堝�� + if ( + this.showCatalogList[this.showCatalogList.length - 1] < + this.catalogLength + ) { + // 鍔犺浇涓嬩竴绔� + this.showCatalogList.push( + this.showCatalogList[this.showCatalogList.length - 1] + 1 + ); + if (this.showCatalogList.length > 3) { + // 瓒呰繃涓夌珷闅愯棌椤堕儴涓�绔� + this.showCatalogList.shift(); + } + } + } + } else if (event.target.scrollTop < this.previousScrollTop) { + this.handleAudio(); + // 鍚戜笂 + const currentScrollTop = event.target.scrollTop; + if (currentScrollTop <= this.loadThreshold) { + // 鍒拌揪闃堝�� + if (this.showCatalogList[0] > 0) { + // 鍔犺浇涓婁竴绔� + this.showCatalogList.unshift(this.showCatalogList[0] - 1); + if (this.showCatalogList.length > 3) { + // 瓒呰繃涓夌珷闅愯棌搴曢儴涓�绔� + this.showCatalogList.pop(); + } + } + } + } + // showCatalogList 褰撳墠鏄剧ず鐨勪笁涓珷鑺傦紝watch鐩戝惉浼犻�掔粰涓诲簲鐢� + // 鏇存柊涓婁竴娆℃粴鍔ㄧ殑浣嶇疆 + this.previousScrollTop = event.target.scrollTop; + }, + // 绔犺妭銆侀〉闈㈣烦杞� + gotoPage(catalog, page) { + if (catalog >= 0 && catalog <= this.catalogLength) { + // 澶勭悊娓叉煋绔犺妭 + if (catalog == 0) { + this.showCatalogList = [0, 1]; + } else if (catalog == this.catalogLength) { + this.showCatalogList = [ + this.catalogLength - 2, + this.catalogLength - 1, + this.catalogLength, + ]; + } else { + this.showCatalogList = [catalog - 1, catalog, catalog + 1]; + } + setTimeout(() => { + // 璺宠浆椤电爜 + const pageDom = ( + this.container ? this.container : document + ).querySelector(`[page="${page}"]`); + if (pageDom) { + pageDom.scrollIntoView(); + } else { + console.log("椤电爜閿欒锛�"); + } + }, 500); + } else { + console.log("绔犺妭閿欒锛�"); + } + }, + + // 澶勭悊鏍囪鏁版嵁 + handelSignData(type, data) { + if (this.loadPageList.indexOf(Number(data.page)) > -1) { + // 绔嬪嵆娓叉煋 + this.renderSign(type, data); + } + + // 鍌ㄥ瓨鏁版嵁 + if (!this.renderSignMap[type]) this.renderSignMap[type] = {}; + if (!this.renderSignMap[type][data.page]) + this.renderSignMap[type][data.page] = []; + this.renderSignMap[type][data.page].push(data); + }, + + // 娓叉煋鏍囪 + renderSign(type, data) { + // 鐖跺眰璁剧疆绂佹娓叉煋鏍囪鏃朵笉鍐嶈繘琛屾覆鏌� + if (this.$store.state.qiankun.disableSign) { + return false; + } + const existence = ( + this.container ? this.container : document + ).querySelector(`[dataid="${data.id}"]`); + // 鍘婚噸 + if (!existence) { + const pageDom = ( + this.container ? this.container : document + ).querySelector(`[page="${data.page}"]`); + // 鍒涘缓 createTreeWalker 杩唬鍣紝鐢ㄤ簬閬嶅巻鏂囨湰鑺傜偣锛屼繚瀛樺埌涓�涓暟缁� + const treeWalker = document.createTreeWalker( + pageDom, + NodeFilter.SHOW_TEXT + ); + const allTextNodes = []; + let currentNode = treeWalker.nextNode(); + while (currentNode) { + allTextNodes.push(currentNode); + currentNode = treeWalker.nextNode(); + } + for (let i = 0; i < allTextNodes.length; i++) { + const textDom = allTextNodes[i]; + if (textDom.textContent.indexOf(data.txt) > -1) { + let reg = new RegExp(`${data.txt}`, "ig"); + switch (type) { + case "Highlight": + // 楂樹寒 + textDom.parentNode.innerHTML = + textDom.parentNode.innerHTML.replace( + reg, + `<span datatype="Highlight" dataid="${data.id}" style="background: ${data.color};" class="highLight" onclick="signClick('Highlight','${data.id}','${data.chapterNum}')">${data.txt}</span>` + ); + break; + case "Dashing": + // 鍒掔嚎 + textDom.parentNode.innerHTML = + textDom.parentNode.innerHTML.replace( + reg, + `<span datatype="Dashing" dataid="${data.id}" style="text-decoration-color:${data.color};" class="underline" onclick="signClick('Dashing','${data.id}','${data.chapterNum}')">${data.txt}</span>` + ); + break; + case "Note": + // 绗旇 + textDom.parentNode.innerHTML = + textDom.parentNode.innerHTML.replace( + reg, + `<span datatype="Note" dataid="${data.id}" style="border-bottom-color:${data.color}" class="notesline" onclick="signClick('Note','${data.id}','${data.chapterNum}')" onmouseover="noteHover('Note','${data.id}','${data.chapterNum}')" onmouseout="noteOut('Note')">${data.txt}<img src="${NoteIcon}"/></span>` + ); + break; + } + } + } + } + }, + // 鍒犻櫎鏍囪娓叉煋 + delSign({ ids, type }) { + if (ids && ids.length) { + for (let i = 0; i < ids.length; i++) { + const id = ids[i]; + const dom = ( + this.container ? this.container : document + ).querySelector(`[dataid="${id}"]`); + dom.parentNode.innerHTML = dom.parentNode.innerHTML.replace( + dom.outerHTML, + dom.outerText + ); + } + } + if (type) { + const doms = ( + this.container ? this.container : document + ).querySelectorAll(`[datatype="${type}"]`); + for (let i = 0; i < doms.length; i++) { + const dom = doms[i]; + dom.parentNode.innerHTML = dom.parentNode.innerHTML.replace( + dom.outerHTML, + dom.outerText + ); + } + } + }, + initObservation() { + const sections = ( + this.container ? this.container : document + ).querySelectorAll(".page-box"); + sections.forEach((section) => { + if (this.config.activeBook && this.config.activeBook.tryPageCount) { + const page = section.getAttribute("page"); + if (Number(page) > this.config.activeBook.tryPageCount) { + let chapterDom = this.getParentWithClass(section, "chapter"); + const chapterNum = chapterDom.getAttribute("num"); + this.catalogLength = Number(chapterNum) - 1; + section.remove(); + return false; + } + } + // observer 瑙傚療姣忎釜鍏冪礌锛屼互渚垮湪瀹冧滑杩涘叆鎴栫寮�瑙嗙獥鏃惰Е鍙戝洖璋冨嚱鏁般�� + const isObserver = section.getAttribute("observer"); + const isLoadObserver = section.getAttribute("loadObserver"); + if (!isObserver) { + this.observer.observe(section); + section.setAttribute("observer", "1"); + } + if (!isLoadObserver) { + this.loadPageObserver.observe(section); + section.setAttribute("loadObserver", "1"); + } + }); + }, + initThemeColor() { + // 鑾峰彇鍚勭闇�瑕佷富棰樿壊鐨勮妭鐐� + const colorDom = ( + this.container ? this.container : document + ).querySelectorAll(".theme-color"); + const backgroundColorDom = ( + this.container ? this.container : document + ).querySelectorAll(".theme-back"); + const borderColorDom = ( + this.container ? this.container : document + ).querySelectorAll(".theme-border"); + // 鑾峰彇閰嶇疆鐨勪富棰樿壊 + const bookThemeColor = + this.config.activeBook && this.config.activeBook.bookThemeColor + ? this.config.activeBook.bookThemeColor + : null; + const chapterThemeColor = + this.config.activeBook && this.config.activeBook.chapterThemeColor + ? this.config.activeBook.chapterThemeColor + : null; + const pageThemeColor = + this.config.activeBook && this.config.activeBook.pageThemeColor + ? this.config.activeBook.pageThemeColor + : null; + colorDom.forEach((domItem) => { + // 鑾峰彇绔犺妭銆侀〉鐮� + let pageDom = this.getParentWithClass(domItem, "page-box"); + let chapterDom = this.getParentWithClass(domItem, "chapter"); + let page, chapterNum; + if (pageDom) page = pageDom.getAttribute("page"); + if (chapterDom) chapterNum = chapterDom.getAttribute("num"); + // 鍚戜笂鍖归厤涓婚鑹� + const themeColor = + page && pageThemeColor && pageThemeColor[page] + ? pageThemeColor[page] + : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum] + ? chapterThemeColor[chapterNum] + : bookThemeColor; + if (themeColor) { + domItem.style.color = themeColor; + } + }); + backgroundColorDom.forEach((domItem) => { + // 鑾峰彇绔犺妭銆侀〉鐮� + let pageDom = this.getParentWithClass(domItem, "page-box"); + let chapterDom = this.getParentWithClass(domItem, "chapter"); + let page, chapterNum; + if (pageDom) page = pageDom.getAttribute("page"); + if (chapterDom) chapterNum = chapterDom.getAttribute("num"); + // 鍚戜笂鍖归厤涓婚鑹� + const themeColor = + page && pageThemeColor && pageThemeColor[page] + ? pageThemeColor[page] + : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum] + ? chapterThemeColor[chapterNum] + : bookThemeColor; + if (themeColor) { + domItem.style.backgroundColor = themeColor; + } + }); + borderColorDom.forEach((domItem) => { + // 鑾峰彇绔犺妭銆侀〉鐮� + let pageDom = this.getParentWithClass(domItem, "page-box"); + let chapterDom = this.getParentWithClass(domItem, "chapter"); + let page, chapterNum; + if (pageDom) page = pageDom.getAttribute("page"); + if (chapterDom) chapterNum = chapterDom.getAttribute("num"); + // 鍚戜笂鍖归厤涓婚鑹� + const themeColor = + page && pageThemeColor && pageThemeColor[page] + ? pageThemeColor[page] + : chapterNum && chapterThemeColor && chapterThemeColor[chapterNum] + ? chapterThemeColor[chapterNum] + : bookThemeColor; + if (themeColor) { + domItem.style.borderColor = themeColor; + } + }); + }, + getParentWithClass(element, className) { + while (element.parentElement) { + element = element.parentElement; + if (element.classList.contains(className)) { + return element; + } + } + }, + pageChangeCallback(entries, observer) { + //entries锛氫唬琛ㄨ瀵熷埌鐨勭洰鏍囧厓绱犵殑闆嗗悎銆� observer锛氫唬琛ㄨ瀵熻�呭璞°�� + entries.forEach((entry) => { + //entry.isIntersecting锛氭鏌ュ綋鍓嶇洰鏍囧厓绱犳槸鍚︿笌鏍瑰厓绱犵浉浜ゃ�� + if (entry.isIntersecting) { + const target = entry.target; + //entry.target锛氳幏鍙栧綋鍓嶇洰鏍囧厓绱� + const page = target.getAttribute("page"); + const catalogDom = this.tool.getParentNodeByClassName( + target, + "chapter" + ); + const catalog = catalogDom.getAttribute("num"); + let text = null; + if (target.querySelector("p")) { + text = target.querySelector("p").textContent.substring(0, 50); + } + // 杩斿洖椤电爜鍜岀珷鑺備俊鎭� + if (this.$store.state.qiankun && this.$store.state.qiankun.pageChange) + this.$store.state.qiankun.pageChange({ + page: page, + catalog: catalog, + text, + }); + // const sections = Array.from(document.querySelectorAll(".section")); + //sections锛氳幏鍙栨墍鏈夊叿鏈� .section 绫诲悕鐨勫厓绱狅紝骞惰浆鎹负鏁扮粍銆� + // let index = sections.findIndex((section) => section === target) + 1; + //index锛氭煡鎵惧綋鍓嶇洰鏍囧厓绱犲湪 sections 鏁扮粍涓殑绱㈠紩锛屽苟鍔� 1锛岀敤浜庣‘瀹氬綋鍓嶉〉鐮併�� + } + }); + }, + loadPageCallback(entries, observer) { + entries.forEach(async (entry) => { + if (entry.isIntersecting) { + const target = entry.target; + const page = target.getAttribute("page"); + if (this.loadPageList.indexOf(Number(page)) == -1) { + const catalogDom = this.tool.getParentNodeByClassName( + target, + "chapter" + ); + // 娣诲姞椤电爜 + this.loadPageList.push(Number(page)); + const catalog = catalogDom.getAttribute("num"); + // if (!this.questionDataMap[page]) { + // if (testData && testData[catalog]) { + // if (testData[catalog][page]) { + // if (Array.isArray(testData[catalog][page])) { + // const datas = await getQuestionList( + // page, + // testData[catalog][page], + // this.config.activeBook + // ); + // this.$set(this.questionDataMap,page,datas) + // } else { + // const obj = {}; + // for (let key in testData[catalog][page]) { + // obj[key] = await getQuestionList( + // [], + // testData[catalog][page][key], + // this.config.activeBook + // ); + // } + // this.$set(this.questionDataMap,page,obj) + // // this.questionDataMap[page] = obj; + // } + // } + // } + // } + // 娓叉煋杩欎竴椤电殑鏍囪 + for (const key in this.renderSignMap) { + if (this.renderSignMap[key][page]) { + this.renderSignMap[key][page].forEach((item) => { + this.renderSign(key, item); + }); + } + } + // 澶勭悊楂樹寒 + if (this.highlightData) { + // 楂樹寒琛� + setTimeout(() => { + // 鑾峰彇椤甸潰鎵�鏈塼ext鑺傜偣 + const pageTextList = document.createTreeWalker( + target, + NodeFilter.SHOW_TEXT + ); + // 鍖归厤鍏抽敭瀛� + const allPageTextNodes = []; + let currentNode = pageTextList.nextNode(); + while (currentNode) { + allPageTextNodes.push(currentNode); + currentNode = pageTextList.nextNode(); + } + for (let i = 0; i < allPageTextNodes.length; i++) { + const textDom = allPageTextNodes[i]; + let txtIndex = textDom.textContent.indexOf( + this.highlightData.txt + ); + if (txtIndex > -1) { + textDom.parentNode.style.transition = + "background-color 0.8s"; + textDom.parentNode.scrollIntoView(); + textDom.parentNode.style.backgroundColor = "#79bbf0"; + setTimeout(() => { + textDom.parentNode.style.backgroundColor = ""; + }, 1000); + } + } + }, 100); + } + if (this.loadPageList.length > 5) { + // 瓒呰繃5椤� + this.loadPageList.shift(); + } + } + } + }); + }, + initSwiper() { + const doms = ( + this.container ? this.container : document + ).querySelectorAll(".swiper-img"); + for (let i = 0; i < doms.length; i++) { + const dom = doms[i]; + new Swiper(dom, { + loop: false, // 鏃犵紳 + autoplay: { + //鑷姩寮�濮� + delay: 3000, //鏃堕棿闂撮殧 + disableOnInteraction: false, //*鎵嬪姩鎿嶄綔杞挱鍥惧悗涓嶄細鏆傚仠* + }, + paginationClickable: true, + slidesPerView: 1, // 涓�缁勪笁涓� + spaceBetween: 30, // 闂撮殧 + // 濡傛灉闇�瑕佸墠杩涘悗閫�鎸夐挳 + navigation: { + nextEl: dom.querySelector(".swiper-button-next"), + prevEl: dom.querySelector(".swiper-button-prev"), + }, + // 绐楀彛鍙樺寲,閲嶆柊init,閽堝F11鍏ㄥ睆鍜屾斁澶х缉灏�,蹇呴』鍔� + // observer: true, + // observeParents: true + // // 濡傛灉闇�瑕佸垎椤靛櫒 + // pagination: { + // el: (this.container ? this.container : document).querySelector( + // ".swiper-pagination" + // ), + // clickable: true // 鍒嗛〉鍣ㄥ彲浠ョ偣鍑� + // } + }); + } + const pptDoms = ( + this.container ? this.container : document + ).querySelectorAll(".swiper_ppt"); + for (let i = 0; i < pptDoms.length; i++) { + const dom = pptDoms[i]; + new Swiper(dom, { + loop: false, // 鏃犵紳 + autoplay: false, + paginationClickable: true, + slidesPerView: 1, // 涓�缁勪笁涓� + spaceBetween: 30, // 闂撮殧 + // 濡傛灉闇�瑕佸墠杩涘悗閫�鎸夐挳 + navigation: { + nextEl: dom.querySelector(".swiper-button-next"), + prevEl: dom.querySelector(".swiper-button-prev"), + }, + // 绐楀彛鍙樺寲,閲嶆柊init,閽堝F11鍏ㄥ睆鍜屾斁澶х缉灏�,蹇呴』鍔� + observer: true, + observeParents: true, + on: { + init: (value) => { + let currentPage = value.activeIndex + 1; // 鑾峰彇褰撳墠椤碉紙浠�1寮�濮嬭鏁帮級 + let totalPages = value.slides.length; // 鑾峰彇鎬婚〉鏁� + var paginationInfoEl = dom.querySelector(".pageBox"); + if (paginationInfoEl) + paginationInfoEl.textContent = currentPage + "/" + totalPages; + }, + slideChange: (value) => { + let currentPage = value.activeIndex + 1; // 鑾峰彇褰撳墠椤碉紙浠�1寮�濮嬭鏁帮級 + let totalPages = value.slides.length; // 鑾峰彇鎬婚〉鏁� + var paginationInfoEl = dom.querySelector(".pageBox"); + if (paginationInfoEl) + paginationInfoEl.textContent = currentPage + "/" + totalPages; + }, + }, + }); + } + }, + initViewer() { + const doms = ( + this.container ? this.container : document + ).querySelectorAll(".openImgBox"); + for (let i = 0; i < doms.length; i++) { + const dom = doms[i]; + new Viewer(dom, { + container: this.container + ? this.container.querySelector("#app") + : "body", + navbar: true, // 鏄剧ず瀵艰埅鏍� + toolbar: true, // 鏄剧ず宸ュ叿鏍� + title: true, // 鏄剧ず鏍囬 + }); + } + }, + // 鏍规嵁鍏抽敭瀛楀叏鏂囨绱� + searchTextByPage(keyword) { + const searchResult = []; + let catalogIndex = 0; + // 鎵�鏈夌珷鑺傜粍浠讹紙姣忔湰涔﹀埗浣滄椂鍗曠嫭閰嶇疆锛� + const pageData = { + pageHeader, + chapterOne, + }; + // 閬嶅巻鎵�鏈夌珷鑺傛枃浠� + for (const key in pageData) { + catalogIndex++; + let pageComponent, pageExample; + // 鍏堟覆鏌撲竴娆″綋鍓嶇珷鑺傛枃浠讹紙杩欐椂椤甸潰鐨勫唴瀹逛负绌猴級锛岃幏鍙栭〉鐮佷俊鎭� + pageComponent = Vue.extend(pageData[key]); + pageExample = new pageComponent({ + propsData: { + showPageList: [], + questionData: {}, + isSearch: true, + }, + }); + pageExample.$mount( + (this.container ? this.container : document).querySelector( + "#searchContent" + ) + ); + // 鑾峰彇椤电爜 + const pageDom = (this.container ? this.container : document) + .querySelector("#searchDomBox") + .querySelectorAll(".page-box"); + const pages = []; + for (let i = 0; i < pageDom.length; i++) { + const pageDomItem = pageDom[i]; + pages.push(Number(pageDomItem.getAttribute("page"))); + } + // 鑾峰彇椤甸潰缁撴潫锛屽嵏杞介攢姣� + pageExample.$destroy(); + (this.container ? this.container : document).querySelector( + "#searchDomBox" + ).innerHTML = '<div id="searchContent"></div>'; + // 閬嶅巻椤电爜 + if (pages.length) { + for (let i = 0; i < pages.length; i++) { + const pageNum = pages[i]; + // 鍔ㄦ�佹覆鏌撳搴旂珷鑺傜殑椤电爜 + pageComponent = Vue.extend(pageData[key]); + pageExample = new pageComponent({ + propsData: { + showPageList: [pageNum], + questionData: {}, + isSearch: true, + }, + }); + pageExample.$mount( + (this.container ? this.container : document).querySelector( + "#searchContent" + ) + ); + // 鑾峰彇瀵瑰簲椤甸潰dom + const thisPageDom = (this.container ? this.container : document) + .querySelector("#searchDomBox") + .querySelector(`[page="${pageNum}"]`); + if (thisPageDom) { + // 鑾峰彇椤甸潰鎵�鏈塼ext鑺傜偣 + const pageTextList = document.createTreeWalker( + thisPageDom, + NodeFilter.SHOW_TEXT + ); + // 鍖归厤鍏抽敭瀛� + const allPageTextNodes = []; + let currentNode = pageTextList.nextNode(); + while (currentNode) { + allPageTextNodes.push(currentNode); + currentNode = pageTextList.nextNode(); + } + for (let i = 0; i < allPageTextNodes.length; i++) { + const textDom = allPageTextNodes[i]; + let txtIndex = textDom.textContent.indexOf(keyword); + if (txtIndex > -1) { + // 璁板綍鍏抽敭瀛楁墍鍦ㄩ〉鐮併�佺珷鑺備互鍙婂尮閰嶅埌鐨勬钀� + searchResult.push({ + page: pageNum, + catalog: catalogIndex, + txt: textDom.textContent, + txtIndex: txtIndex, + }); + } + } + // 缁撴潫锛屽嵏杞介攢姣� + pageExample.$destroy(); + (this.container ? this.container : document).querySelector( + "#searchDomBox" + ).innerHTML = '<div id="searchContent"></div>'; + } + } + } + } + // 杈撳嚭鎼滅储缁撴灉 + console.log(searchResult); + return searchResult; + }, + // 鏍规嵁妫�绱㈢粨鏋滆烦杞搴斾綅缃苟楂樹寒 + searchItemLocation(data) { + // 璁板綍楂樹寒淇℃伅 + this.highlightData = data; + // 璺宠浆 + this.gotoPage(data.catalog, data.page, () => { }); + }, + // 椤甸潰鍚戜笅婊氬姩锛岄煶棰戝皬绐楁挱鏀惧姛鑳� + getAduio() { + let allVideo = ( + this.container ? this.container : document + ).querySelectorAll(".audio"); + allVideo = Array.from(allVideo); + this.videoList = allVideo; + if (allVideo.length) { + // 鏌ユ壘鎾斁鐘舵�佺殑鏈�鍚庝竴鏉¢煶棰� + const playAudio = allVideo + .reverse() + .find((item) => item.paused == false); + if (playAudio) { + const bottomGap = playAudio.getBoundingClientRect().bottom; + if (bottomGap < 0) { + playAudio.pause(); + this.audioPath = playAudio.src; + this.currentTime = playAudio.currentTime; + } + } + } + }, + // 椤甸潰鍚戜笂婊氬姩锛岄煶棰戝皬绐楀洖鏀� + handleAudio() { + if (!this.audioPath) return false; + let allVideo = ( + this.container ? this.container : document + ).querySelectorAll(".audio"); + allVideo = Array.from(allVideo); + if (allVideo.length) { + //鏌ユ壘涓庡皬绐楁挱鏀鹃煶棰戝悓婧愮殑椤甸潰audio DOM + const playAudio = allVideo.find((item) => item.src == this.audioPath); + if (playAudio) { + const bottomGap = playAudio.getBoundingClientRect().bottom; + if (bottomGap >= 0) { + if (this.$refs.audioPlayer) { + const playerState = this.$refs.audioPlayer.getVideoPlayer(); + this.audioPath = ""; + playAudio.currentTime = playerState.currentTime; + if (!playerState.paused) playAudio.play(); + } + } + } + } + }, + // 鍏抽棴mini video + closeMiniAudio() { + this.audioPath = ""; + }, + // 鐐瑰嚮闊抽鎾斁锛屽叧闂叾浠栭煶棰� + closeAudio() { + let allAudio = ( + this.container ? this.container : document + ).querySelectorAll(".audio"); + for (let index = 0; index < allAudio.length; index++) { + const item = allAudio[index]; + item.addEventListener("play", () => { + const audioList = Array.from(allAudio); + for (let cindex = 0; cindex < audioList.length; cindex++) { + const citem = audioList[cindex]; + if (citem.currentSrc != item.src) { + citem.pause(); + } + } + this.closeMiniAudio(); + }); + } + }, + // 鐐瑰嚮瑙嗛鍏抽棴鍏朵粬 + closeVideo() { + let allVideo = ( + this.container ? this.container : document + ).querySelectorAll(".video"); + for (let index = 0; index < allVideo.length; index++) { + const item = allVideo[index]; + item.addEventListener("playing", (item) => { + const path = item.srcElement.src; + const videoList = Array.from(allVideo); + for (let cindex = 0; cindex < videoList.length; cindex++) { + const citem = videoList[cindex]; + if (citem.currentSrc != path && path) { + citem.pause(); + } + } + }); + } + }, + // 瑙嗛灏忕獥 + handleVideoPicture() { + let doms = (this.container ? this.container : document).querySelectorAll( + ".video" + ); + doms = Array.from(doms); + if (!doms.length) return false; + const playVudio = doms.reverse().find((item) => item.paused == false); + if (playVudio) { + const bottomGap = playVudio.getBoundingClientRect().bottom; + const topGap = playVudio.getBoundingClientRect().top; + if (bottomGap < 0 || topGap > window.innerHeight) { + try { + if (playVudio.readyState) playVudio.requestPictureInPicture(); + } catch (error) { + console.log(error, "灏忕獥閿欒error"); + } + } + } + }, + //鍏朵粬绫诲悕涓嬪瓧浣撳ぇ灏忓彉鍖� + transformDom(fs) { + if (!fs) return; + let doms = (this.container ? this.container : document).querySelectorAll( + ".block" + ); + if (!doms.length) return; + for (let index = 0; index < doms.length; index++) { + const dom = doms[index]; + dom.style.fontSize = fs + "px"; + } + }, + }, + components: { + pageHeader, + chapterOne, + }, +}; +</script> + +<style lang="less" scoped> +.page-main { + width: 100% !important; + height: 100% !important; + overflow: auto; + + .page-content { + max-width: 816px; + min-width: 375px; + margin: 0 auto; + padding-bottom: 100px; + } +} +</style> diff --git a/src/books/foodSensoryInspection/view/index.vue b/src/books/foodSensoryInspection/view/index.vue new file mode 100644 index 0000000..ef3c11e --- /dev/null +++ b/src/books/foodSensoryInspection/view/index.vue @@ -0,0 +1,80 @@ +<template> + <div class="foodSensoryInspection" @mouseup="handleMouseUp"> + <pageContent></pageContent> + </div> + </template> + + <script> + import pageContent from "./components/index.vue"; + export default { + name: "foodSensoryInspection", + components: { + pageContent, + }, + computed: { + fontSize() { + return this.$store.state.qiankun.fontSize; + }, + pageZoom() { + return this.$store.state.qiankun.scale / 100; + }, + }, + + methods: { + getParentWithClass(element, className) { + while (element.parentElement) { + element = element.parentElement; + if (element.classList.contains(className)) { + return element; + } + } + }, + handleMouseUp(e) { + const selection = ( + this.container ? this.container : window + ).getSelection(); + const txt = selection.toString(); + if (selection.type != "none" && txt) { + let node = selection.anchorNode.parentNode; + let pageHtml = this.getParentWithClass( + selection.anchorNode, + "page-box" + ); + let chapterDom = this.getParentWithClass( + selection.anchorNode, + "chapter" + ); + let chapterNum; + if (chapterDom) chapterNum = chapterDom.getAttribute("num"); + if (pageHtml) { + const page = pageHtml.getAttribute("page"); + // 鐩戝惉閫変腑鏂囨湰浜嬩欢锛屽苟瑙﹀彂鐖跺眰鏂规硶 + if (this.$store.state.qiankun.windowSelection) { + this.$store.state.qiankun.windowSelection({ + chapterNum, + txt, + page, + x: e.x, + y: e.y, + }); + } + } + } else { + if (this.$store.state.qiankun.windowSelection) { + this.$store.state.qiankun.windowSelection({ + chapterNum: "", + txt: "", + page: "", + x: e.x, + y: e.y, + }); + } + } + }, + }, + }; + </script> + + <style lang="less"> + @import "../assets/main.less"; + </style> \ No newline at end of file -- Gitblit v1.9.1