unknown
2024-06-13 0bd5f6759c4db2019b17f5af58a7779443cfb795
Merge branch 'master' of http://182.92.203.7:2001/r/testbookLayout
7个文件已修改
31 文件已重命名
165 ■■■■■ 已修改文件
.env 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.product 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/App.vue 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/books/childHealth/assets/main.less 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/books/childHealth/view/content/components/header.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/books/childHealth/view/content/index.vue 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/0100-1.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/0100-2.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/0100-3.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/0101-1.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/0101-2.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/0102-1.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/0102-2.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/0103-1.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/0103-2.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/Cover.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/Covers.png 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/cxgk.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/dy1.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/dy3.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/hzjl.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/icon/heart-check.png 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/icon/heart.png 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/question/0103-1-1.png 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/question/0103-1-2.png 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/question/0103-1-3.png 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/question/0103-1-4.png 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/stlx.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/tbts.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/tjfx.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/wttc.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/images/xxmb.jpg 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/assets/main.less 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/view/components/chapter001.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/view/components/header.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/view/components/index.vue 补丁 | 查看 | 原始文档 | blame | 历史
src/books/mathBook/view/index.vue 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env
@@ -1,3 +1,4 @@
VUE_APP_ENV = 'dev'
VUE_APP_API_URL = "https://jsek.bnuic.com"
PUBLIC_PATH = '/books/book'
VUE_APP_RESOURCE_CTX = 'https://jsek.bnuic.com/books/resource/'
VUE_APP_PUBLIC_PATH = '/books/book'
.env.product
@@ -1,4 +1,6 @@
VUE_APP_ENV = 'product'
VUE_APP_API_URL = "https://jsek.bnuic.com"
PUBLIC_PATH = 'http://182.92.203.7:3007/books/book'
# PUBLIC_PATH = 'https://jsek.bnuic.com/books/book'
VUE_APP_RESOURCE_CTX = 'https://jsek.bnuic.com/books/resource/'
VUE_APP_PUBLIC_PATH = 'https://jsek.bnuic.com/books/book/childHealth'
VUE_APP_BOOK_LIST = "childHealth/lifeCare/sportsAndHealth/embedded/english/artAndDance/artAndDrama/mathBook"
VUE_APP_BOOK_ID = 'childHealth'
src/App.vue
@@ -9,30 +9,22 @@
    ></sportsAndHealth>
    <artAndDance v-if="activeBook.name == 'artAndDance'"></artAndDance>
    <artAndDrama v-if="activeBook.name == 'artAndDrama'"></artAndDrama>
    <mathBook v-if="activeBook.name == 'math'"></mathBook>
    <mathBook v-if="activeBook.name == 'mathBook'"></mathBook>
  </div>
</template>
<script>
import childHealth from "./books/childHealth/view/index.vue";
import lifeCare from "./books/lifeCare/view/index.vue";
import embedded from "./books/embedded/view/index.vue";
import english from "./books/English/view/index.vue";
import sportsAndHealth from "./books/sportsAndHealth/view/index";
import artAndDance from './books/artAndDance/view/index.vue'
import mathBook from './books/math/view/index.vue'
import artAndDrama from './books/artAndDrama/view/index.vue'
export default {
  name: "App",
  components: {
    childHealth,
    lifeCare,
    embedded,
    english,
    sportsAndHealth,
    artAndDance,
    mathBook,
    artAndDrama
    childHealth: () => import("./books/childHealth/view/index.vue"),
    lifeCare: () => import("./books/lifeCare/view/index.vue"),
    embedded: () => import("./books/embedded/view/index.vue"),
    english: () => import("./books/english/view/index.vue"),
    sportsAndHealth: () => import("./books/sportsAndHealth/view/index.vue"),
    artAndDance: () => import("./books/artAndDance/view/index.vue"),
    mathBook: () => import("./books/mathBook/view/index.vue"),
    artAndDrama: () => import("./books/artAndDrama/view/index.vue")
  },
  data() {
    return {
@@ -43,20 +35,11 @@
    if (this.setGlobalState) {
      this.setGlobalState({
        initTestBook: async (bookId, tryPageCount) => {
          // this.activeBook = await this.config.getBookConfig(this.config.resourceCtx + bookId);
          if (
            // "http://182.92.203.7:3007/books/resource/"
            // "https://jsek.bnuic.com/books/resource/"
            this.config.resourceCtx ==
            "http://182.92.203.7:3007/books/resource/"
          ) {
            this.config.resourceCtx = this.config.resourceCtx + bookId;
          }
          this.activeBook = await this.config.getBookConfig(
            process.env.VUE_APP_RESOURCE_CTX + process.env.VUE_APP_BOOK_ID
          );
          this.config.activeBook = this.activeBook;
          this.config.goodsStore = this.activeBook.storeRefcode;
          this.activeBook = await this.config.getBookConfig(
            this.config.resourceCtx
          );
          if (tryPageCount) {
            this.activeBook.tryPageCount = tryPageCount;
          }
@@ -70,7 +53,6 @@
        }
      });
    } else {
      this.activeBook = await this.config.getBookConfig(
        // childHealth
        // lifeCare
        // sportsAndHealth
@@ -78,8 +60,12 @@
        // english
        // artAndDance
        // artAndDrama
        // math
        this.config.resourceCtx + "lifeCare"
      // mathBook
      this.activeBook = await this.config.getBookConfig(
        process.env.VUE_APP_RESOURCE_CTX +
          (process.env.VUE_APP_ENV == "product"
            ? process.env.VUE_APP_BOOK_ID
            : "childHealth")
      );
      // 测试试读30页
      // this.activeBook.tryPageCount = 10;
@@ -180,7 +166,6 @@
  left: 0;
  margin: auto;
}
.openImgBox img{
  cursor: zoom-in;
src/books/childHealth/assets/main.less
@@ -657,6 +657,10 @@
    /* video大小 */
    .video-box {
      max-width: 260px;
    }
    .page-box{
      min-height: 500px;
    }
  }
}
src/books/childHealth/view/content/components/header.vue
@@ -1,12 +1,12 @@
<template>
  <div class="chapter" num="1">
    <!-- 封面 -->
    <div class="page-box cover mt-20" page="1" style="min-height:auto">
    <div class="page-box cover mt-20" page="1">
      <div v-if="showPageList.indexOf(1) > -1">
        <img src="../../../assets/images/Covers.jpg" alt="" />
      </div>
    </div>
    <div class="page-box cover" page="2" style="min-height:auto">
    <div class="page-box cover" page="2">
      <div v-if="showPageList.indexOf(2) > -1">
        <img src="../../../assets/images/Cover.jpg" alt="" />
      </div>
src/books/childHealth/view/content/index.vue
@@ -8,7 +8,7 @@
      :style="{
        fontSize: fontSize ? fontSize + 'px' : '16px',
        transform: `scale(${pageZoom ? pageZoom : 1})`,
        transformOrigin: 'center top',
        transformOrigin: 'center top'
      }"
    >
      <pageHeader
@@ -122,7 +122,7 @@
      loadPageList: [],
      questionDataMap: {},
      renderSignMap: {},
      highlightData: null,
      highlightData: null
    };
  },
  computed: {
@@ -131,7 +131,7 @@
    },
    pageZoom() {
      return this.$store.state.qiankun.scale / 100;
    },
    }
  },
  watch: {
    showCatalogList: {
@@ -142,7 +142,7 @@
        ) {
          // 调用父层方法
          this.$store.state.qiankun.catalogChange({
            showCatalogList: newVal,
            showCatalogList: newVal
          });
        }
        // 启动页码观察
@@ -150,7 +150,7 @@
          this.initObservation();
          this.initThemeColor();
        }, 500);
      },
      }
    },
    loadPageList: {
      handler(newVal, oldVal) {
@@ -158,7 +158,7 @@
          this.initSwiper();
          this.initViewer();
        }, 200);
      },
      }
    },
    pageZoom: {
      handler(newVal, oldVal) {
@@ -166,12 +166,12 @@
          this.container ? this.container : document
        ).querySelector(".page-main");
        scrollBox.scrollTop = (scrollBox.scrollTop / oldVal) * newVal;
      },
    },
      }
    }
  },
  mounted() {
    // 默认加载章节
    this.showCatalogList = [8];
    this.showCatalogList = [1];
    // 滚动监听节流
    this.throttledScrollHandler = _.throttle(
      this.scrollFun,
@@ -202,7 +202,7 @@
        // 跳转检索结果位置
        jumpSearchItem: (data) => {
          this.searchItemLocation(data);
        },
        }
      });
    }
@@ -211,13 +211,13 @@
    this.observer = new IntersectionObserver(this.pageChangeCallback, {
      root: null, // 指定根元素,这里设为 null,表示选取整个视窗作为根元素。
      rootMargin: "0px", // 指定根元素的边界,这里设为 "0px",表示根元素的边界和视窗的边界重合
      threshold: 0.5, // 指定交叉比例,这里设为 0.5,表示当目标元素一半或更多显示在视窗中时触发回调函数。
      threshold: 0.5 // 指定交叉比例,这里设为 0.5,表示当目标元素一半或更多显示在视窗中时触发回调函数。
    });
    this.loadPageObserver = new IntersectionObserver(this.loadPageCallback, {
      root: null, // 指定根元素,这里设为 null,表示选取整个视窗作为根元素。
      rootMargin: "0px", // 指定根元素的边界,这里设为 "0px",表示根元素的边界和视窗的边界重合
      threshold: 0, // 指定交叉比例,这里设为 0.5,表示当目标元素一半或更多显示在视窗中时触发回调函数。
      threshold: 0 // 指定交叉比例,这里设为 0.5,表示当目标元素一半或更多显示在视窗中时触发回调函数。
    });
    // 启动页码观察
@@ -256,7 +256,7 @@
    //   txt: " 运动系统是由骨、骨连结和骨骼肌三部分组成的。全身的骨通过骨连结组成人体骨骼(见图1-1)。骨骼是人体的支架,具有保护内脏器官、供肌肉附着和作为肌肉运动的杠杆等作用。在神经系统的支配下,肌肉收缩牵动所附着的骨绕着关节转动,使身体产生各种动作。所以,运动系统具有运动、支持和保护等功能,幼年时期的骨骼还具有造血功能。 ",
    //   txtIndex: 57
    // });
    // }, 5000);
    // }, 500);
  },
  methods: {
    // setZoom1() {
@@ -328,7 +328,7 @@
          this.showCatalogList = [
            this.catalogLength - 2,
            this.catalogLength - 1,
            this.catalogLength,
            this.catalogLength
          ];
        } else {
          this.showCatalogList = [catalog - 1, catalog, catalog + 1];
@@ -378,7 +378,10 @@
          this.container ? this.container : document
        ).querySelector(`[page="${data.page}"]`);
        // 创建 createTreeWalker 迭代器,用于遍历文本节点,保存到一个数组
        const treeWalker = document.createTreeWalker(pageDom, NodeFilter.SHOW_TEXT);
        const treeWalker = document.createTreeWalker(
          pageDom,
          NodeFilter.SHOW_TEXT
        );
        const allTextNodes = [];
        let currentNode = treeWalker.nextNode();
        while (currentNode) {
@@ -584,7 +587,7 @@
            this.$store.state.qiankun.pageChange({
              page: page,
              catalog: catalog,
              text,
              text
            });
          // const sections = Array.from(document.querySelectorAll(".section"));
          //sections:获取所有具有 .section 类名的元素,并转换为数组。
@@ -642,7 +645,10 @@
              // 高亮行
              setTimeout(() => {
                // 获取页面所有text节点
                const pageTextList = document.createTreeWalker(target, NodeFilter.SHOW_TEXT);
                const pageTextList = document.createTreeWalker(
                  target,
                  NodeFilter.SHOW_TEXT
                );
                // 匹配关键字
                const allPageTextNodes = [];
                let currentNode = pageTextList.nextNode();
@@ -686,7 +692,7 @@
          autoplay: {
            //自动开始
            delay: 3000, //时间间隔
            disableOnInteraction: false, //*手动操作轮播图后不会暂停*
            disableOnInteraction: false //*手动操作轮播图后不会暂停*
          },
          paginationClickable: true,
          slidesPerView: 1, // 一组三个
@@ -698,11 +704,11 @@
            ),
            prevEl: (this.container ? this.container : document).querySelector(
              ".swiper-button-prev"
            ),
            )
          },
          // 窗口变化,重新init,针对F11全屏和放大缩小,必须加
          observer: true,
          observeParents: true,
          observeParents: true
          // // 如果需要分页器
          // pagination: {
          //   el: (this.container ? this.container : document).querySelector(
@@ -730,7 +736,7 @@
            ),
            prevEl: (this.container ? this.container : document).querySelector(
              ".swiper-button-prev"
            ),
            )
          },
          // 窗口变化,重新init,针对F11全屏和放大缩小,必须加
          observer: true,
@@ -749,8 +755,8 @@
              var paginationInfoEl = dom.querySelector(".pageBox");
              if (paginationInfoEl)
                paginationInfoEl.textContent = currentPage + "/" + totalPages;
            },
          },
            }
          }
        });
      }
    },
@@ -766,7 +772,7 @@
            : "body",
          navbar: true, // 显示导航栏
          toolbar: true, // 显示工具栏
          title: true, // 显示标题
          title: true // 显示标题
        });
      }
    },
@@ -789,7 +795,7 @@
        chapterTen,
        chapterEleven,
        chapterTwelve,
        chapterThirteen,
        chapterThirteen
      };
      // 遍历所有章节文件
      for (const key in pageData) {
@@ -802,7 +808,7 @@
            showPageList: [],
            questionData: {},
            isSearch: true
          },
          }
        });
        pageExample.$mount(
          (this.container ? this.container : document).querySelector(
@@ -834,7 +840,7 @@
                showPageList: [pageNum],
                questionData: {},
                isSearch: true
              },
              }
            });
            pageExample.$mount(
              (this.container ? this.container : document).querySelector(
@@ -847,7 +853,10 @@
              .querySelector(`[page="${pageNum}"]`);
            if (thisPageDom) {
              // 获取页面所有text节点
              const pageTextList = document.createTreeWalker(thisPageDom, NodeFilter.SHOW_TEXT);
              const pageTextList = document.createTreeWalker(
                thisPageDom,
                NodeFilter.SHOW_TEXT
              );
              // 匹配关键字
              const allPageTextNodes = [];
              let currentNode = pageTextList.nextNode();
@@ -864,7 +873,7 @@
                    page: pageNum,
                    catalog: catalogIndex,
                    txt: textDom.textContent,
                    txtIndex: txtIndex,
                    txtIndex: txtIndex
                  });
                }
              }
@@ -887,7 +896,7 @@
      this.highlightData = data;
      // 跳转
      this.gotoPage(data.catalog, data.page, () => {});
    },
    }
  },
  components: {
    pageHeader,
@@ -903,8 +912,8 @@
    chapterTen,
    chapterEleven,
    chapterTwelve,
    chapterThirteen,
  },
    chapterThirteen
  }
};
</script>
src/books/mathBook/assets/images/0100-1.jpg

src/books/mathBook/assets/images/0100-2.jpg

src/books/mathBook/assets/images/0100-3.jpg

src/books/mathBook/assets/images/0101-1.jpg

src/books/mathBook/assets/images/0101-2.jpg

src/books/mathBook/assets/images/0102-1.jpg

src/books/mathBook/assets/images/0102-2.jpg

src/books/mathBook/assets/images/0103-1.jpg

src/books/mathBook/assets/images/0103-2.jpg

src/books/mathBook/assets/images/Cover.jpg

src/books/mathBook/assets/images/Covers.png

src/books/mathBook/assets/images/cxgk.jpg

src/books/mathBook/assets/images/dy1.jpg

src/books/mathBook/assets/images/dy3.jpg

src/books/mathBook/assets/images/hzjl.jpg

src/books/mathBook/assets/images/icon/heart-check.png

src/books/mathBook/assets/images/icon/heart.png

src/books/mathBook/assets/images/question/0103-1-1.png

src/books/mathBook/assets/images/question/0103-1-2.png

src/books/mathBook/assets/images/question/0103-1-3.png

src/books/mathBook/assets/images/question/0103-1-4.png

src/books/mathBook/assets/images/stlx.jpg

src/books/mathBook/assets/images/tbts.jpg

src/books/mathBook/assets/images/tjfx.jpg

src/books/mathBook/assets/images/wttc.jpg

src/books/mathBook/assets/images/xxmb.jpg

src/books/mathBook/assets/main.less
src/books/mathBook/view/components/chapter001.vue
src/books/mathBook/view/components/header.vue
src/books/mathBook/view/components/index.vue
src/books/mathBook/view/index.vue
vue.config.js
@@ -1,6 +1,9 @@
const { defineConfig } = require("@vue/cli-service");
const webpack = require("webpack");
// 获取所有书籍列表
const bookList = process.env.VUE_APP_BOOK_LIST ? process.env.VUE_APP_BOOK_LIST.split("/") : [];
module.exports = defineConfig({
  publicPath: process.env.PUBLIC_PATH,
  publicPath: process.env.VUE_APP_PUBLIC_PATH,
  transpileDependencies: true,
  lintOnSave: false,
  // devServer: {
@@ -19,7 +22,26 @@
      library: `app-content`,
      libraryTarget: "umd",
      chunkLoadingGlobal: `webpackJsonp_app-content`
    },
    plugins: [
      new webpack.IgnorePlugin({
        checkResource(resource) {
          if (process.env.VUE_APP_ENV == "product") {
            // 编译和打包过滤
            for (let i = 0; i < bookList.length; i++) {
              const bookName = bookList[i];
              if (bookName != process.env.VUE_APP_BOOK_ID) {
                // 过滤不需要的模块
                if (resource.indexOf(bookName) > -1) {
                  return true;
    }
              }
            }
          }
          return false;
        }
      })
    ]
  },
  chainWebpack: (config) => {
    config.module