guanchunjie 3 vuotta sitten
vanhempi
commit
3f1c898754

+ 5 - 2
src/components/Adult/Preview.vue

@@ -175,6 +175,7 @@
                     :n-n-p-e-new-phrase-list="NNPENewPhraseList"
                     :n-n-p-e-annotation-list="NNPEAnnotationList"
                     :theme-color="themeColor"
+                    :currentTreeID="currentTreeID"
                   />
                 </template>
                 <template v-if="itemss.type == 'sentence_segword_chs'">
@@ -375,7 +376,6 @@ import Tinydemo from "./preview/TinyModule.vue"; // 富文本
 import VideoControl from "./preview/VideoControl.vue"; // 视频控件
 import TableView from "./preview/TableView.vue"; // 视频控件
 
-
 export default {
   name: "Preview",
   components: {
@@ -456,6 +456,7 @@ export default {
       chsFhList: [",", "。", "“", ":", "》", "《", "?", "!", ";"],
       noFont: ["~", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")"], // 对应不要拼音字体
       idArr: [], //当前的pid
+      oldCurrentTreeID: "",
     };
   },
   computed: {},
@@ -579,6 +580,7 @@ export default {
         _this.queIndex -= 1;
         _this.watchIndex = _this.queIndex + new Date().getTime();
         _this.cur = _this.queList[_this.queIndex];
+        _this.$forceUpdate();
       }
     },
     // 递归寻找相同的目录并保存目录的pid
@@ -621,6 +623,7 @@ export default {
         _this.queIndex += 1;
         _this.watchIndex = _this.queIndex + new Date().getTime();
         _this.cur = _this.queList[_this.queIndex];
+        _this.$forceUpdate();
       }
     },
   }, // 如果页面有keep-alive缓存功能,这个函数会触发
@@ -765,7 +768,7 @@ export default {
           text-align: center;
           font-size: 16px;
           margin-right: 14px;
-          padding:0 4px;
+          padding: 0 4px;
         }
       }
       > h3 {

+ 10 - 1
src/components/Adult/preview/ArticleViewChs/index.vue

@@ -123,7 +123,16 @@ export default {
       return color;
     },
   },
-  watch: {},
+  watch: {
+    currentTreeID: {
+      handler: function () {
+        this.showPreview = true; // 全文预览
+        this.showPhrases = false; // 显示单词和短语
+        this.showPractice = false; // 语音练习
+        this.showWord = false; // 取词
+      },
+    },
+  },
   //方法集合
   methods: {
     // 处理字体大小

+ 3 - 0
src/components/Adult/preview/DialogueArticleViewChs/DialogueAnswerViewChs.vue

@@ -36,6 +36,7 @@
                 'dialogue-answer-inner',
                 curQue.option &&
                 curQue.option.length > 0 &&
+                curQue.option[index] &&
                 curQue.option[index].detail &&
                 curQue.option[index].detail.length > 0
                   ? 'hasoption'
@@ -68,6 +69,7 @@
                 v-if="
                   curQue.option &&
                   curQue.option.length > 0 &&
+                  curQue.option[index] &&
                   curQue.option[index].detail &&
                   curQue.option[index].detail.length > 0
                 "
@@ -112,6 +114,7 @@
             v-if="
               curQue.option &&
               curQue.option.length > 0 &&
+              curQue.option[index] &&
               curQue.option[index].detail &&
               curQue.option[index].detail.length > 0
             "

+ 2 - 1
src/components/Adult/preview/DialogueArticleViewChs/PhraseModelChs.vue

@@ -302,6 +302,7 @@ export default {
       newWords: ["鱼", "辩礼义"],
       oldHz: "",
       hz: "",
+      clientY: "",
       top: 0,
       left: 0,
       articleImg: {}, // 文章图片
@@ -509,7 +510,7 @@ export default {
           _this.hz = word;
         }, 50);
       }
-      _this.top = e.clientY + 20;
+      _this.clientY = e.clientY;
       let left = e.clientX;
       let width = 0;
 

+ 1 - 1
src/components/Adult/preview/Notes.vue

@@ -109,7 +109,7 @@ export default {
 /* @import url(); 引入css类 */
 .NPC-zhedie {
   width: 780px;
-  margin-top: 16px;
+  margin-bottom: 16px;
   .topTitle {
     width: 100%;
     display: flex;

+ 1 - 1
src/components/Adult/preview/WordPhrase.vue

@@ -306,7 +306,7 @@ export default {
       this.optionRes = JSON.parse(JSON.stringify(optionRes));
       this.mp3List = mp3List;
       console.log("this.mp3List");
-      console.log(this.mp3List);
+      console.log(this.curQue.option);
     }
   },
   //生命周期 - 挂载完成(可以访问DOM元素)

+ 1 - 1
src/utils/request.js

@@ -48,7 +48,7 @@ service.interceptors.response.use(
    */
   response => {
     const res = response.data
-    console.log(res)
+    // console.log(res)
     let msg = null
     // if the custom code is not 20000, it is judged as an error.
     if (res.status == 0 || res.status == -2) {

+ 111 - 111
vue.config.js

@@ -3,7 +3,7 @@ const path = require('path')
 const defaultSettings = require('./src/settings.js')
 
 function resolve(dir) {
-    return path.join(__dirname, dir)
+  return path.join(__dirname, dir)
 }
 
 const name = defaultSettings.title || '发展汉语' // page title
@@ -19,119 +19,119 @@ const webpack = require('webpack')
 
 // All configuration item explanations can be find in https://cli.vuejs.org/config/
 module.exports = {
-    /**
-     * You will need to set publicPath if you plan to deploy your site under a sub path,
-     * for example GitHub Pages. If you plan to deploy your site to https://foo.github.io/bar/,
-     * then publicPath should be set to "/bar/".
-     * In most cases please use '/' !!!
-     * Detail: https://cli.vuejs.org/config/#publicpath
-     */
-    publicPath: process.env.NODE_ENV === 'development' ? '/' : '/GCLS-Book-Component-NPC',
-    outputDir: 'dist',
-    assetsDir: 'static',
-    lintOnSave: false,
-    productionSourceMap: false,
-    devServer: {
-        port: port,
-        open: true,
-        overlay: {
-            warnings: false,
-            errors: true
-        },
-        proxy: {
-            // change xxx-api/login => mock/login
-            // detail: https://cli.vuejs.org/config/#devserver-proxy
-            [process.env.VUE_APP_BASE_API]: {
-                target: `http://gcls.helxsoft.cn/`,
-                changeOrigin: true,
-                pathRewrite: {
-                    ['^' + process.env.VUE_APP_BASE_API]: ''
-                }
-            },
-        },
-
-        after: require('./mock/mock-server.js')
+  /**
+   * You will need to set publicPath if you plan to deploy your site under a sub path,
+   * for example GitHub Pages. If you plan to deploy your site to https://foo.github.io/bar/,
+   * then publicPath should be set to "/bar/".
+   * In most cases please use '/' !!!
+   * Detail: https://cli.vuejs.org/config/#publicpath
+   */
+  publicPath: process.env.NODE_ENV === 'development' ? '/' : '/GCLS-Book-Component-NPC',
+  outputDir: 'dist',
+  assetsDir: 'static',
+  lintOnSave: false,
+  productionSourceMap: false,
+  devServer: {
+    port: port,
+    open: true,
+    overlay: {
+      warnings: false,
+      errors: true
     },
-    configureWebpack: {
-        // provide the app's title in webpack's name field, so that
-        // it can be accessed in index.html to inject the correct title.
-        name: name,
-        resolve: {
-            alias: {
-                '@': resolve('src')
-            }
-        },
-        plugins: [
-            new webpack.ProvidePlugin({
-                jQuery: 'jquery',
-                $: 'jquery'
-            })
-        ]
+    proxy: {
+      // change xxx-api/login => mock/login
+      // detail: https://cli.vuejs.org/config/#devserver-proxy
+      [process.env.VUE_APP_BASE_API]: {
+        target: `http://gcls.utschool.cn/`,
+        changeOrigin: true,
+        pathRewrite: {
+          ['^' + process.env.VUE_APP_BASE_API]: ''
+        }
+      },
     },
-    chainWebpack(config) {
-        // it can improve the speed of the first screen, it is recommended to turn on preload
-        config.plugin('preload').tap(() => [{
-            rel: 'preload',
-            // to ignore runtime.js
-            // https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/cli-service/lib/config/app.js#L171
-            fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/],
-            include: 'initial'
-        }])
 
-        // when there are many pages, it will cause too many meaningless requests
-        config.plugins.delete('prefetch')
+    after: require('./mock/mock-server.js')
+  },
+  configureWebpack: {
+    // provide the app's title in webpack's name field, so that
+    // it can be accessed in index.html to inject the correct title.
+    name: name,
+    resolve: {
+      alias: {
+        '@': resolve('src')
+      }
+    },
+    plugins: [
+      new webpack.ProvidePlugin({
+        jQuery: 'jquery',
+        $: 'jquery'
+      })
+    ]
+  },
+  chainWebpack(config) {
+    // it can improve the speed of the first screen, it is recommended to turn on preload
+    config.plugin('preload').tap(() => [{
+      rel: 'preload',
+      // to ignore runtime.js
+      // https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/cli-service/lib/config/app.js#L171
+      fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/],
+      include: 'initial'
+    }])
 
-        // set svg-sprite-loader
-        config.module
-            .rule('svg')
-            .exclude.add(resolve('src/icons'))
-            .end()
-        config.module
-            .rule('icons')
-            .test(/\.svg$/)
-            .include.add(resolve('src/icons'))
-            .end()
-            .use('svg-sprite-loader')
-            .loader('svg-sprite-loader')
-            .options({
-                symbolId: 'icon-[name]'
-            })
-            .end()
+    // when there are many pages, it will cause too many meaningless requests
+    config.plugins.delete('prefetch')
 
-        config.when(process.env.NODE_ENV !== 'development', config => {
-            config
-                .plugin('ScriptExtHtmlWebpackPlugin')
-                .after('html')
-                .use('script-ext-html-webpack-plugin', [{
-                    // `runtime` must same as runtimeChunk name. default is `runtime`
-                    inline: /runtime\..*\.js$/
-                }])
-                .end()
-            config.optimization.splitChunks({
-                    chunks: 'all',
-                    cacheGroups: {
-                        libs: {
-                            name: 'chunk-libs',
-                            test: /[\\/]node_modules[\\/]/,
-                            priority: 10,
-                            chunks: 'initial' // only package third parties that are initially dependent
-                        },
-                        elementUI: {
-                            name: 'chunk-elementUI', // split elementUI into a single package
-                            priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
-                            test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
-                        },
-                        commons: {
-                            name: 'chunk-commons',
-                            test: resolve('src/components'), // can customize your rules
-                            minChunks: 3, //  minimum common number
-                            priority: 5,
-                            reuseExistingChunk: true
-                        }
-                    }
-                })
-                // https:// webpack.js.org/configuration/optimization/#optimizationruntimechunk
-            config.optimization.runtimeChunk('single')
-        })
-    }
+    // set svg-sprite-loader
+    config.module
+      .rule('svg')
+      .exclude.add(resolve('src/icons'))
+      .end()
+    config.module
+      .rule('icons')
+      .test(/\.svg$/)
+      .include.add(resolve('src/icons'))
+      .end()
+      .use('svg-sprite-loader')
+      .loader('svg-sprite-loader')
+      .options({
+        symbolId: 'icon-[name]'
+      })
+      .end()
+
+    config.when(process.env.NODE_ENV !== 'development', config => {
+      config
+        .plugin('ScriptExtHtmlWebpackPlugin')
+        .after('html')
+        .use('script-ext-html-webpack-plugin', [{
+          // `runtime` must same as runtimeChunk name. default is `runtime`
+          inline: /runtime\..*\.js$/
+        }])
+        .end()
+      config.optimization.splitChunks({
+        chunks: 'all',
+        cacheGroups: {
+          libs: {
+            name: 'chunk-libs',
+            test: /[\\/]node_modules[\\/]/,
+            priority: 10,
+            chunks: 'initial' // only package third parties that are initially dependent
+          },
+          elementUI: {
+            name: 'chunk-elementUI', // split elementUI into a single package
+            priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
+            test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
+          },
+          commons: {
+            name: 'chunk-commons',
+            test: resolve('src/components'), // can customize your rules
+            minChunks: 3, //  minimum common number
+            priority: 5,
+            reuseExistingChunk: true
+          }
+        }
+      })
+      // https:// webpack.js.org/configuration/optimization/#optimizationruntimechunk
+      config.optimization.runtimeChunk('single')
+    })
+  }
 }