瀏覽代碼

08/28 16:50

111
mo 4 年之前
父節點
當前提交
dc280a5a4d

文件差異過大導致無法顯示
+ 0 - 0
dist/index.html


+ 1 - 1
dist/static/css/chunk-18d3c820.af827e31.css → dist/static/css/chunk-2511dd53.100e64a7.css

@@ -1 +1 @@
-.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.bannerImg[data-v-0f7bfc7a],.bannerImg[data-v-3e92ebde],.bannerImg[data-v-6f4fcd5a],.bannerImg[data-v-6facbd9c],.bannerImg[data-v-14eb5c03],.bannerImg[data-v-d79824ca]{height:60px}
+.pagination-container[data-v-31cb099a]{background:#fff;padding:32px 16px;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.pagination-container.hidden[data-v-31cb099a]{display:none}.bannerImg[data-v-0f7bfc7a],.bannerImg[data-v-1c1a97fe],.bannerImg[data-v-3e92ebde],.bannerImg[data-v-6f4fcd5a],.bannerImg[data-v-6facbd9c],.bannerImg[data-v-14eb5c03],.bannerImg[data-v-d79824ca]{height:60px}

+ 0 - 1
dist/static/css/chunk-4f8f1b57.1c5ef984.css

@@ -1 +0,0 @@
-.m-container[data-v-72413afa]{min-width:100%}.el-input[data-v-72413afa]{width:400px}[data-v-72413afa] .ql-editor{min-height:300px;padding:0}[data-v-72413afa] .ql-container .ql-editor{max-height:500px}.el-button--primary[data-v-72413afa],.el-button--primary[data-v-72413afa]:active,.el-button--primary[data-v-72413afa]:focus,.el-button--primary[data-v-72413afa]:hover{background:#14928a;border-color:#14928a;color:#fff}.el-row[data-v-72413afa]{margin-top:40px}.el-col[data-v-72413afa]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:20px;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;margin-right:50%}.el-input-group[data-v-72413afa]{width:200px;margin:0 20px}[data-v-72413afa] .el-tree-node__content{height:40px!important}[data-v-72413afa] .avatar-uploader .el-upload{border:1px dashed #d9d9d9;border-radius:6px;cursor:pointer;position:relative;overflow:hidden}.avatar-uploader .el-upload[data-v-72413afa]:hover{border-color:#409eff}.avatar-uploader-icon[data-v-72413afa]{font-size:28px;color:#8c939d;width:120px;height:120px;line-height:120px;text-align:center}.avatar[data-v-72413afa]{width:120px;height:120px;display:block}.ivu-upload[data-v-72413afa]{display:none}

+ 0 - 0
dist/static/css/chunk-77035bba.06148356.css → dist/static/css/chunk-77035bba.cb9ea813.css


+ 1 - 0
dist/static/css/chunk-a98cfb72.2721535d.css

@@ -0,0 +1 @@
+.m-container[data-v-a6b7b044]{min-width:100%}.el-input[data-v-a6b7b044]{width:400px}[data-v-a6b7b044] .ql-editor{min-height:300px;padding:0}[data-v-a6b7b044] .ql-container .ql-editor{max-height:500px}.el-button--primary[data-v-a6b7b044],.el-button--primary[data-v-a6b7b044]:active,.el-button--primary[data-v-a6b7b044]:focus,.el-button--primary[data-v-a6b7b044]:hover{background:#14928a;border-color:#14928a;color:#fff}.el-row[data-v-a6b7b044]{margin-top:40px}.el-col[data-v-a6b7b044]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:20px;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end;margin-right:50%}.el-input-group[data-v-a6b7b044]{width:200px;margin:0 20px}[data-v-a6b7b044] .el-tree-node__content{height:40px!important}[data-v-a6b7b044] .avatar-uploader .el-upload{border:1px dashed #d9d9d9;border-radius:6px;cursor:pointer;position:relative;overflow:hidden}.avatar-uploader .el-upload[data-v-a6b7b044]:hover{border-color:#409eff}.avatar-uploader-icon[data-v-a6b7b044]{font-size:28px;color:#8c939d;width:120px;height:120px;line-height:120px;text-align:center}.avatar[data-v-a6b7b044]{width:120px;height:120px;display:block}.ivu-upload[data-v-a6b7b044]{display:none}

文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/app.2c265b3d.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-18d3c820.0aaaecc7.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-2511dd53.2e831439.js


文件差異過大導致無法顯示
+ 0 - 0
dist/static/js/chunk-a98cfb72.a7665d9b.js


+ 207 - 0
src/views/contentManager/components/knowledge.vue

@@ -0,0 +1,207 @@
+<template>
+  <div>
+    <!-- 搜索标题 -->
+    <div @click="openTeaching('create')"
+         class='newBand'>新建</div>
+    <!-- 搜索标题 -->
+    <el-form :inline="true"
+             class="searchForm"
+             v-model.trim="searchForm">
+      <el-form-item prop="hasPracticeCourse">
+        <el-select class="multiple"
+                   v-model.trim="searchForm.tenantId"
+                   placeholder="请选择对内或对外">
+          <el-option label="对内"
+                     value="1"></el-option>
+          <el-option label="对外"
+                     value="2"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button @click="getList"
+                   type="danger">搜索</el-button>
+      </el-form-item>
+    </el-form>
+    <!-- 列表 -->
+    <div class="tableWrap">
+      <el-table :data='tableList'
+                :header-cell-style="{background:'#EDEEF0',color:'#444'}">
+        <el-table-column align='center'
+                         label="轮播图">
+          <template slot-scope="scope">
+            <img class="bannerImg"
+                 :src="scope.row.coverImage"
+                 alt="">
+          </template>
+        </el-table-column>
+        <el-table-column align='center'
+                         prop="title"
+                         label="标题">
+        </el-table-column>
+        <el-table-column align='center'
+                         label="跳转连接">
+          <template slot-scope="scope">
+            {{ scope.row.linkUrl + '/' + scope.row.id }}
+          </template>
+        </el-table-column>
+        <el-table-column align='center'
+                         prop="remark"
+                         label="是否使用">
+          <template slot-scope="scope">
+            {{ scope.row.status == 1 ? '是' : '否' }}
+          </template>
+        </el-table-column>
+        <el-table-column align='center'
+                         prop="createTime"
+                         label="创建时间">
+          <template slot-scope="scope">
+            {{ scope.row.createTime ? scope.row.createTime.split(' ')[0] : '--' }}
+          </template>
+        </el-table-column>
+        <el-table-column align='center'
+                         prop="order"
+                         label="排序">
+        </el-table-column>
+        <el-table-column align="center"
+                         prop="remark"
+                         label="适用范围">
+          <template slot-scope="scope">
+            <p v-if=" scope.row.tenantId == 1">对内</p>
+            <p v-if=" scope.row.tenantId == 2">对外</p>
+          </template>
+        </el-table-column>
+        <el-table-column align='center'
+                         label="操作">
+          <template slot-scope="scope">
+            <el-button @click="openTeaching('update', scope.row)"
+                       v-if="!scope.row.memo || permission('banner/copyrightbtn')"
+                       type="text">修改</el-button>
+            <div style="display: inline-block"
+                 v-if="!scope.row.memo || permission('banner/copyrightbtn')">
+              <el-button v-if="scope.row.status == 1"
+                         @click="onStop(scope.row, 0)"
+                         type="text">停用</el-button>
+              <el-button v-else
+                         @click="onStop(scope.row, 1)"
+                         type="text">启用</el-button>
+            </div>
+
+            <el-button @click="onDel(scope.row)"
+                       v-if="!scope.row.memo || permission('banner/copyrightbtn')"
+                       type="text">删除</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination :total="pageInfo.total"
+                  :page.sync="pageInfo.page"
+                  :limit.sync="pageInfo.limit"
+                  :page-sizes="pageInfo.page_size"
+                  @pagination="getList" />
+    </div>
+  </div>
+</template>
+<script>
+import { newsList, newsUpdate, newsDel } from '@/api/contentManager'
+import pagination from '@/components/Pagination/index'
+import store from '@/store'
+import { permission } from '@/utils/directivePage'
+export default {
+  name: 'knowledge',
+  components: {
+    pagination
+  },
+  data () {
+    return {
+      searchForm: {
+        tenantId: '1'
+      },
+      tableList: [],
+      organId: null,
+      teacherId: this.$route.query.teacherId,
+      pageInfo: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 1, // 总条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
+      }
+    }
+  },
+  activated () {
+    this.getList()
+  },
+  mounted () {
+    this.getList()
+  },
+  methods: {
+    permission (str) {
+      return permission(str)
+    },
+    getList () {
+      let params = {
+        tenantId: this.searchForm.tenantId,
+        rows: this.pageInfo.limit,
+        page: this.pageInfo.page,
+        type: 7
+      }
+      console.log(params.type)
+      newsList(params).then(res => {
+        if (res.code == 200) {
+          this.tableList = res.data.rows
+          this.pageInfo.total = res.data.total
+        }
+      })
+    },
+    openTeaching (type, rows) {
+      let params = {}
+      if (type == 'update') {
+        params.id = rows.id
+      }
+      params.type = 7
+      params.pageType = type
+      this.$router.push({
+        path: '/contentManager/contentOperation',
+        query: params
+      })
+    },
+    onDel (row) { // 删除
+      this.$confirm('确定是否删除?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        newsDel({ id: row.id }).then(res => {
+
+          if (res.code == 200) {
+            this.$message.success('删除成功')
+            this.getList()
+          } else {
+            this.$message.error(res.msg)
+          }
+        })
+      }).catch(() => { })
+
+    },
+    onStop (row, status) { // 停止
+      // newsUpdate
+      let tempStr = ['停用', '启用']
+      newsUpdate({
+        id: row.id,
+        status: status
+      }).then(res => {
+        if (res.code == 200) {
+          this.$message.success(tempStr[status] + '成功')
+          this.getList()
+        } else {
+          this.$message.error(res.msg)
+        }
+      })
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.bannerImg {
+  height: 60px;
+}
+</style>

+ 106 - 83
src/views/contentManager/contentOperation.vue

@@ -1,97 +1,119 @@
 <template>
   <div class="m-container">
     <h2>
-      <el-page-header
-        @back="onCancel"
-        :content="(pageType == 'create' ? '添加' : '修改') + typeChange(type)"
-      ></el-page-header>
+      <el-page-header @back="onCancel"
+                      :content="(pageType == 'create' ? '添加' : '修改') + typeChange(type)"></el-page-header>
     </h2>
 
     <div class="m-core">
-      <el-form :model="form" :rules="rules" ref="form" label-width="120px" style="width: 100%">
-        <el-form-item label="标题" prop="title">
+      <el-form :model="form"
+               :rules="rules"
+               ref="form"
+               label-width="120px"
+               style="width: 100%">
+        <el-form-item label="标题"
+                      prop="title">
           <el-input v-model.trim="form.title"></el-input>
         </el-form-item>
         <el-form-item label="排序值">
           <el-input v-model.trim="form.order"></el-input>
         </el-form-item>
-          <el-form-item label="适用范围" prop="tenantId">
+        <el-form-item label="适用范围"
+                      prop="tenantId">
           <el-select v-model="form.tenantId">
-            <el-option label="对内" value="1"></el-option>
-             <el-option label="对外" value="2"></el-option>
+            <el-option label="对内"
+                       value="1"></el-option>
+            <el-option label="对外"
+                       value="2"></el-option>
           </el-select>
         </el-form-item>
         <!-- banner图 && app按钮管理,才需要添加版本号 -->
-        <el-form-item label="版本号" v-if="type == 3 || type == 6">
+        <el-form-item label="版本号"
+                      v-if="type == 3 || type == 6">
           <el-input v-model="form.memo"></el-input>
         </el-form-item>
         <!--  -->
-        <el-form-item v-if="type == 3 || type == 6" label="链接地址">
+        <el-form-item v-if="type == 3 || type == 6"
+                      label="链接地址">
           <el-input v-model.trim="form.linkUrl"></el-input>
         </el-form-item>
-        <el-form-item v-else label="链接地址" prop="linkUrl">
+        <el-form-item v-else
+                      label="链接地址"
+                      prop="linkUrl">
           <el-input v-model.trim="form.linkUrl"></el-input>
         </el-form-item>
-        <el-form-item label="封面图" prop="coverImage">
-          <el-upload
-            class="avatar-uploader"
-            action="/api-web/uploadFile"
-            :headers="headers"
-            :show-file-list="false"
-            accept=".jpg, .jpeg, .png"
-            :on-success="handleAvatarSuccess"
-            :before-upload="beforeAvatarUpload"
-          >
-            <img v-if="form.coverImage" :src="form.coverImage" class="avatar" />
-            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+        <el-form-item label="封面图"
+                      prop="coverImage">
+          <el-upload class="avatar-uploader"
+                     action="/api-web/uploadFile"
+                     :headers="headers"
+                     :show-file-list="false"
+                     accept=".jpg, .jpeg, .png"
+                     :on-success="handleAvatarSuccess"
+                     :before-upload="beforeAvatarUpload">
+            <img v-if="form.coverImage"
+                 :src="form.coverImage"
+                 class="avatar" />
+            <i v-else
+               class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload>
-          <p class="imageSize" v-if="imageSize">上传图片尺寸为:{{ imageSize }}</p>
+          <p class="imageSize"
+             v-if="imageSize">上传图片尺寸为:{{ imageSize }}</p>
         </el-form-item>
-        <el-form-item label="内容" prop="content">
+        <el-form-item label="内容"
+                      prop="content">
           <!-- bidirectional data binding(双向数据绑定) -->
-          <quill-editor
-            class="ql-editor"
-            v-model="form.content"
-            ref="myQuillEditor"
-            :options="editorOption"
-            @change="onEditorChange($event)"
-          ></quill-editor>
+          <quill-editor class="ql-editor"
+                        v-model="form.content"
+                        ref="myQuillEditor"
+                        :options="editorOption"
+                        @change="onEditorChange($event)"></quill-editor>
 
-          <el-upload
-            class="ivu-upload"
-            :show-upload-list="false"
-            :headers="headers"
-            :on-success="handleSuccess"
-            accept=".jpg, .jpeg, .png"
-            :max-size="2048"
-            multiple
-            action="/api-web/uploadFile"
-          >
+          <el-upload class="ivu-upload"
+                     :show-upload-list="false"
+                     :headers="headers"
+                     :on-success="handleSuccess"
+                     accept=".jpg, .jpeg, .png"
+                     :max-size="2048"
+                     multiple
+                     action="/api-web/uploadFile">
             <Button icon="ios-cloud-upload-outline"></Button>
           </el-upload>
         </el-form-item>
         <el-form-item>
-          <el-button
-            @click="onSubmit('form')"
-            type="primary"
-          >立即{{ pageType == "create" ? '创建' : '修改' }}</el-button>
+          <el-button @click="onSubmit('form')"
+                     type="primary">立即{{ pageType == "create" ? '创建' : '修改' }}</el-button>
           <el-button @click="onReSet('form')">重置</el-button>
         </el-form-item>
       </el-form>
     </div>
 
-    <el-dialog title="插入视屏" width="500px" :visible.sync="dialogFormVisible">
-      <el-form :model="dialogForm" ref="diologForm" :rules="dialogFormRules">
-        <el-form-item label="封面图" label-width="90px" prop="poster">
-          <el-input v-model="dialogForm.poster" style="width: 100%;" autocomplete="off"></el-input>
+    <el-dialog title="插入视屏"
+               width="500px"
+               :visible.sync="dialogFormVisible">
+      <el-form :model="dialogForm"
+               ref="diologForm"
+               :rules="dialogFormRules">
+        <el-form-item label="封面图"
+                      label-width="90px"
+                      prop="poster">
+          <el-input v-model="dialogForm.poster"
+                    style="width: 100%;"
+                    autocomplete="off"></el-input>
         </el-form-item>
-        <el-form-item label="视屏地址" label-width="90px" prop="url">
-          <el-input v-model="dialogForm.url" style="width: 100%;" autocomplete="off"></el-input>
+        <el-form-item label="视屏地址"
+                      label-width="90px"
+                      prop="url">
+          <el-input v-model="dialogForm.url"
+                    style="width: 100%;"
+                    autocomplete="off"></el-input>
         </el-form-item>
       </el-form>
-      <div slot="footer" class="dialog-footer">
+      <div slot="footer"
+           class="dialog-footer">
         <el-button @click="dialogFormVisible = false">取 消</el-button>
-        <el-button type="primary" @click="onVideoComfirm('diologForm')">确 定</el-button>
+        <el-button type="primary"
+                   @click="onVideoComfirm('diologForm')">确 定</el-button>
       </div>
     </el-dialog>
   </div>
@@ -161,7 +183,7 @@ export default {
   components: {
     quillEditor
   },
-  data() {
+  data () {
     let that = this;
     return {
       categoryList: [],
@@ -180,7 +202,7 @@ export default {
           toolbar: {
             container: toolbarOptions,
             handlers: {
-              image: function(value) {
+              image: function (value) {
                 if (value) {
                   // 调用iview图片上传
                   document.querySelector(".ivu-upload .el-upload").click();
@@ -188,7 +210,7 @@ export default {
                   this.quill.format("image", false);
                 }
               },
-              video: function(value) {
+              video: function (value) {
                 if (value) {
                   that.dialogFormVisible = true;
                   let editor = that.$refs.myQuillEditor.quill;
@@ -220,7 +242,7 @@ export default {
         type: this.$route.query.type,
         status: 1,
         content: null,
-        tenantId:null,
+        tenantId: null,
       },
       rules: {
         title: [
@@ -239,11 +261,11 @@ export default {
       imageSize: null
     };
   },
-  created() {},
-  mounted() {
+  created () { },
+  mounted () {
     this.init();
   },
-  activated() {
+  activated () {
     if (this.$route.query.pageType == "create") {
       this.form = {
         title: null,
@@ -253,7 +275,7 @@ export default {
         type: this.$route.query.type,
         status: 1,
         content: null,
-        tenantId:null
+        tenantId: null
       };
       this.$refs["form"].resetFields();
     }
@@ -262,7 +284,7 @@ export default {
     this.init();
   },
   methods: {
-    init() {
+    init () {
       this.getList();
       this.addQuillTitle();
 
@@ -275,7 +297,7 @@ export default {
       };
       this.imageSize = tempTitle[this.form.type];
     },
-    onVideoComfirm(formName) {
+    onVideoComfirm (formName) {
       this.$refs[formName].validate(valid => {
         if (valid) {
           let dialogForm = this.dialogForm;
@@ -296,11 +318,11 @@ export default {
         }
       });
     },
-    addQuillTitle() {
+    addQuillTitle () {
       const oToolBar = document.querySelector(".ql-toolbar"),
         aButton = oToolBar.querySelectorAll("button"),
         aSelect = oToolBar.querySelectorAll("select");
-      aButton.forEach(function(item) {
+      aButton.forEach(function (item) {
         if (item.className === "ql-script") {
           item.value === "sub" ? (item.title = "下标") : (item.title = "上标");
         } else if (item.className === "ql-indent") {
@@ -311,11 +333,11 @@ export default {
           item.title = titleConfig[item.classList[0]];
         }
       });
-      aSelect.forEach(function(item) {
+      aSelect.forEach(function (item) {
         item.parentNode.title = titleConfig[item.classList[0]];
       });
     },
-    onSubmit(formName) {
+    onSubmit (formName) {
       this.$refs[formName].validate(valid => {
         if (valid) {
           if (this.pageType == "create") {
@@ -337,7 +359,7 @@ export default {
         }
       });
     },
-    messageTips(title, res) {
+    messageTips (title, res) {
       if (res.code == 200) {
         this.$message.success(title + "成功");
         this.$router.push({
@@ -350,7 +372,7 @@ export default {
         this.$message.error(res.msg);
       }
     },
-    onCancel() {
+    onCancel () {
       this.$router.push({
         path: "/contentManager/contentManager",
         query: {
@@ -358,7 +380,7 @@ export default {
         }
       });
     },
-    handleSuccess(res) {
+    handleSuccess (res) {
       // 获取富文本组件实例
       let quill = this.editor;
       // 如果上传成功
@@ -374,10 +396,10 @@ export default {
         this.$message.error("图片插入失败");
       }
     },
-    onReSet(formName) {
+    onReSet (formName) {
       this.$refs[formName].resetFields();
     },
-    getList() {
+    getList () {
       if (this.pageType == "create") {
         return;
       } else {
@@ -395,16 +417,16 @@ export default {
               status: result.status,
               memo: result.memo,
               content: result.content,
-              tenantId:result.tenantId.toString()
+              tenantId: result.tenantId.toString()
             };
           }
         });
       }
     },
-    handleAvatarSuccess(res, file) {
+    handleAvatarSuccess (res, file) {
       this.form.coverImage = res.data.url;
     },
-    beforeAvatarUpload(file) {
+    beforeAvatarUpload (file) {
       const imageType = {
         "image/png": true,
         "image/jpeg": true
@@ -420,18 +442,19 @@ export default {
       }
       return isImage && isLt2M;
     },
-    typeChange(type) {
+    typeChange (type) {
       let tempTitle = {
         1: "精彩活动",
         2: "热门资讯",
         4: "专项训练",
         5: "闪页管理",
         3: "BANNER管理",
-        6: "APP按钮管理"
+        6: "APP按钮管理",
+        7: "知识库管理"
       };
       return tempTitle[type];
     },
-    typeIndex(type) {
+    typeIndex (type) {
       let tempTitle = {
         1: 0,
         2: 1,
@@ -442,12 +465,12 @@ export default {
       };
       return tempTitle[type];
     },
-    onEditorChange({ quill, html, text }) {
+    onEditorChange ({ quill, html, text }) {
       this.form.content = html;
     }
   },
   computed: {
-    editor() {
+    editor () {
       return this.$refs.myQuillEditor.quill;
     }
   }
@@ -464,7 +487,7 @@ export default {
   min-height: 300px;
   padding: 0;
 }
-/deep/.ql-container .ql-editor{
+/deep/.ql-container .ql-editor {
   max-height: 500px;
 }
 .el-button--primary {

+ 22 - 9
src/views/contentManager/index.vue

@@ -7,30 +7,41 @@
       <el-tabs v-model.trim="activeName"
                type="card"
                @tab-click="handleClick">
-        <el-tab-pane label="精彩活动" v-if="permissionList.activity"
+        <el-tab-pane label="精彩活动"
+                     v-if="permissionList.activity"
                      name="0">
           <activity v-if="activeStatus[0]" />
         </el-tab-pane>
-        <el-tab-pane label="热门资讯" v-if="permissionList.information"
+        <el-tab-pane label="热门资讯"
+                     v-if="permissionList.information"
                      name="1">
           <information v-if="activeStatus[1]" />
         </el-tab-pane>
-        <el-tab-pane label="专项训练" v-if="permissionList.training"
+        <el-tab-pane label="专项训练"
+                     v-if="permissionList.training"
                      name="2">
           <training v-if="activeStatus[2]" />
         </el-tab-pane>
-        <el-tab-pane label="闪页管理" v-if="permissionList.flashPage"
+        <el-tab-pane label="闪页管理"
+                     v-if="permissionList.flashPage"
                      name="3">
           <flashPage v-if="activeStatus[3]" />
         </el-tab-pane>
-        <el-tab-pane label="BANNER管理" v-if="permissionList.banner"
+        <el-tab-pane label="BANNER管理"
+                     v-if="permissionList.banner"
                      name="4">
           <banner v-if="activeStatus[4]" />
         </el-tab-pane>
-        <el-tab-pane label="APP按钮管理" v-if="permissionList.appPage"
+        <el-tab-pane label="APP按钮管理"
+                     v-if="permissionList.appPage"
                      name="5">
           <appPage v-if="activeStatus[5]" />
         </el-tab-pane>
+        <el-tab-pane label="知识库管理"
+                     v-if="permissionList.knowledge"
+                     name="6">
+          <knowledge v-if="activeStatus[6]" />
+        </el-tab-pane>
       </el-tabs>
     </div>
   </div>
@@ -42,6 +53,7 @@ import information from './components/information'
 import training from './components/training'
 import flashPage from './components/flashPage'
 import appPage from './components/appPage'
+import knowledge from './components/knowledge'
 import { permission } from '@/utils/directivePage'
 // 精彩活动 1 0
 // 热门资讯 2 1
@@ -50,19 +62,20 @@ import { permission } from '@/utils/directivePage'
 // BANNER管理 3 4
 // APP按钮管理 6 5
 export default {
-  components: { banner, activity, information, training, flashPage, appPage},
+  components: { banner, activity, information, training, flashPage, appPage, knowledge },
   name: 'contentManager',
   data () {
     return {
       activeName: "0",
-      activeStatus: [true, false, false, false, false, false],
+      activeStatus: [true, false, false, false, false, false, false],
       permissionList: {
         banner: permission('/contentManager/banner'),
         activity: permission('/contentManager/activity'),
         information: permission('/contentManager/information'),
         training: permission('/contentManager/training'),
         flashPage: permission('/contentManager/flashPage'),
-        appPage: permission('/contentManager/appPage')
+        appPage: permission('/contentManager/appPage'),
+        knowledge: permission('/contentManager/knowledge'),
       }
     }
   },

部分文件因文件數量過多而無法顯示