소스 검색

优化内容管理页面

lex-xin 4 년 전
부모
커밋
28a391b653

+ 1 - 1
src/components/Tooltip/index.vue

@@ -1,6 +1,6 @@
 <template>
   <el-tooltip effect="dark" placement="top">
-    <div slot="content" style="max-width: 300px; max-height: 250px; overflow-y: auto;">{{ content }}</div>
+    <div slot="content" style="max-width: 300px; max-height: 250px; min-height: 16px; overflow-y: auto">{{ content }}</div>
     <span class="content-tooltip">{{ content }}</span>
   </el-tooltip>
 </template>

+ 11 - 10
src/views/contentManager/components/activity.vue

@@ -4,9 +4,11 @@
     <div @click="openTeaching('create')"
          class="newBand">新建</div>
     <!-- 搜索标题 -->
-    <el-form :inline="true"
+    <save-form :inline="true"
              class="searchForm"
-             v-model.trim="searchForm">
+             @submit="search"
+             :saveKey="'contentActivity'"
+             :model="searchForm">
       <el-form-item prop="hasPracticeCourse">
         <el-select class="multiple"
                    v-model.trim="searchForm.tenantId"
@@ -18,10 +20,9 @@
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button @click="getList"
-                   type="danger">搜索</el-button>
+        <el-button native-type="submit" type="danger">搜索</el-button>
       </el-form-item>
-    </el-form>
+    </save-form>
     <!-- 列表 -->
     <div class="tableWrap">
       <el-table :data="tableList"
@@ -74,7 +75,7 @@
           </template>
         </el-table-column>
       </el-table>
-      <pagination :total="pageInfo.total"
+      <pagination sync :total.sync="pageInfo.total"
                   :page.sync="pageInfo.page"
                   :limit.sync="pageInfo.limit"
                   :page-sizes="pageInfo.page_size"
@@ -85,7 +86,6 @@
 <script>
 import { newsList, newsUpdate, newsDel } from "@/api/contentManager";
 import pagination from "@/components/Pagination/index";
-import store from "@/store";
 export default {
   name: "activity",
   components: {
@@ -108,13 +108,14 @@ export default {
       }
     };
   },
-  activated () {
-    this.getList();
-  },
   mounted () {
     this.getList();
   },
   methods: {
+    search() {
+      this.pageInfo.page = 1
+      this.getList()
+    },
     getList () {
       let params = {
         clientName: 'manage',

+ 11 - 10
src/views/contentManager/components/advert.vue

@@ -4,9 +4,11 @@
     <div @click="openTeaching('create')"
          class="newBand">新建</div>
     <!-- 搜索标题 -->
-    <el-form :inline="true"
+    <save-form :inline="true"
              class="searchForm"
-             v-model.trim="searchForm">
+             :saveKey="'contentAdvert'"
+             @submit="search"
+             :model="searchForm">
       <el-form-item prop="hasPracticeCourse">
         <el-select class="multiple"
                    v-model.trim="searchForm.tenantId"
@@ -18,10 +20,9 @@
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button @click="getList"
-                   type="danger">搜索</el-button>
+        <el-button native-type="submit" type="danger">搜索</el-button>
       </el-form-item>
-    </el-form>
+    </save-form>
     <!-- 列表 -->
     <div class="tableWrap">
       <el-table :data="tableList"
@@ -80,7 +81,7 @@
           </template>
         </el-table-column>
       </el-table>
-      <pagination :total="pageInfo.total"
+      <pagination sync :total.sync="pageInfo.total"
                   :page.sync="pageInfo.page"
                   :limit.sync="pageInfo.limit"
                   :page-sizes="pageInfo.page_size"
@@ -91,7 +92,6 @@
 <script>
 import { newsList, newsUpdate, newsDel } from "@/api/contentManager";
 import pagination from "@/components/Pagination/index";
-import store from "@/store";
 export default {
   name: "training",
   components: {
@@ -114,13 +114,14 @@ export default {
       }
     };
   },
-  activated () {
-    this.getList();
-  },
   mounted () {
     this.getList();
   },
   methods: {
+    search() {
+      this.pageInfo.page = 1
+      this.getList()
+    },
     getList () {
       let params = {
         clientName: 'manage',

+ 11 - 10
src/views/contentManager/components/appPage.vue

@@ -4,9 +4,11 @@
     <div @click="openTeaching('create')"
          class='newBand'>新建</div>
     <!-- 搜索标题 -->
-    <el-form :inline="true"
+    <save-form :inline="true"
              class="searchForm"
-             v-model.trim="searchForm">
+             saveKey="contentAppPage"
+             @submit="search"
+             :model="searchForm">
       <el-form-item prop="hasPracticeCourse">
         <el-select class="multiple"
                    v-model.trim="searchForm.tenantId"
@@ -18,10 +20,9 @@
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button @click="getList"
-                   type="danger">搜索</el-button>
+        <el-button native-type="submit" type="danger">搜索</el-button>
       </el-form-item>
-    </el-form>
+    </save-form>
     <!-- 列表 -->
     <div class="tableWrap">
       <el-table :data='tableList'
@@ -86,7 +87,7 @@
           </template>
         </el-table-column>
       </el-table>
-      <pagination :total="pageInfo.total"
+      <pagination sync :total.sync="pageInfo.total"
                   :page.sync="pageInfo.page"
                   :limit.sync="pageInfo.limit"
                   :page-sizes="pageInfo.page_size"
@@ -97,7 +98,6 @@
 <script>
 import { newsList, newsUpdate, newsDel } from '@/api/contentManager'
 import pagination from '@/components/Pagination/index'
-import store from '@/store'
 export default {
   name: 'training',
   components: {
@@ -120,13 +120,14 @@ export default {
       }
     }
   },
-  activated () {
-    this.getList()
-  },
   mounted () {
     this.getList()
   },
   methods: {
+    search() {
+      this.pageInfo.page = 1
+      this.getList()
+    },
     getList () {
       let params = {
         clientName: 'manage',

+ 11 - 10
src/views/contentManager/components/banner.vue

@@ -4,9 +4,11 @@
     <div @click="openTeaching('create')"
          class='newBand'>新建</div>
     <!-- 搜索标题 -->
-    <el-form :inline="true"
+    <save-form :inline="true"
              class="searchForm"
-             v-model.trim="searchForm">
+             saveKey="contentBanner"
+             @submit="search"
+             :model="searchForm">
       <el-form-item prop="hasPracticeCourse">
         <el-select class="multiple"
                    v-model.trim="searchForm.tenantId"
@@ -18,10 +20,9 @@
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button @click="getList"
-                   type="danger">搜索</el-button>
+        <el-button native-type="submit" type="danger">搜索</el-button>
       </el-form-item>
-    </el-form>
+    </save-form>
     <!-- 列表 -->
     <div class="tableWrap">
       <el-table :data='tableList'
@@ -92,7 +93,7 @@
           </template>
         </el-table-column>
       </el-table>
-      <pagination :total="pageInfo.total"
+      <pagination sync :total.sync="pageInfo.total"
                   :page.sync="pageInfo.page"
                   :limit.sync="pageInfo.limit"
                   :page-sizes="pageInfo.page_size"
@@ -103,7 +104,6 @@
 <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: 'banner',
@@ -127,13 +127,14 @@ export default {
       }
     }
   },
-  activated () {
-    this.getList()
-  },
   mounted () {
     this.getList()
   },
   methods: {
+    search() {
+      this.pageInfo.page = 1
+      this.getList()
+    },
     permission (str) {
       return permission(str)
     },

+ 11 - 10
src/views/contentManager/components/flashPage.vue

@@ -4,9 +4,11 @@
     <div @click="openTeaching('create')"
          class='newBand'>新建</div>
     <!-- 搜索标题 -->
-    <el-form :inline="true"
+    <save-form :inline="true"
              class="searchForm"
-             v-model.trim="searchForm">
+             saveKey="contentFlashPage"
+             @submit="search"
+             :model="searchForm">
       <el-form-item prop="hasPracticeCourse">
         <el-select class="multiple"
                    v-model.trim="searchForm.tenantId"
@@ -18,10 +20,9 @@
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button @click="getList"
-                   type="danger">搜索</el-button>
+        <el-button native-type="submit" type="danger">搜索</el-button>
       </el-form-item>
-    </el-form>
+    </save-form>
     <!-- 列表 -->
     <div class="tableWrap">
       <el-table :data='tableList'
@@ -79,7 +80,7 @@
           </template>
         </el-table-column>
       </el-table>
-      <pagination :total="pageInfo.total"
+      <pagination sync :total.sync="pageInfo.total"
                   :page.sync="pageInfo.page"
                   :limit.sync="pageInfo.limit"
                   :page-sizes="pageInfo.page_size"
@@ -90,7 +91,6 @@
 <script>
 import { newsList, newsUpdate, newsDel } from '@/api/contentManager'
 import pagination from '@/components/Pagination/index'
-import store from '@/store'
 export default {
   name: 'banner',
   components: {
@@ -113,13 +113,14 @@ export default {
       }
     }
   },
-  activated () {
-    this.getList()
-  },
   mounted () {
     this.getList()
   },
   methods: {
+    search() {
+      this.pageInfo.page = 1
+      this.getList()
+    },
     getList () {
       let params = {
         clientName: 'manage',

+ 11 - 10
src/views/contentManager/components/information.vue

@@ -4,9 +4,11 @@
     <div @click="openTeaching('create')"
          class='newBand'>新建</div>
     <!-- 搜索标题 -->
-    <el-form :inline="true"
+    <save-form :inline="true"
              class="searchForm"
-             v-model.trim="searchForm">
+             :saveKey="'contentInformation'"
+             @submit="search"
+             :model="searchForm">
       <el-form-item prop="hasPracticeCourse">
         <el-select class="multiple"
                    v-model.trim="searchForm.tenantId"
@@ -18,10 +20,9 @@
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button @click="getList"
-                   type="danger">搜索</el-button>
+        <el-button native-type="submit" type="danger">搜索</el-button>
       </el-form-item>
-    </el-form>
+    </save-form>
     <!-- 列表 -->
     <div class="tableWrap">
       <el-table :data='tableList'
@@ -79,7 +80,7 @@
           </template>
         </el-table-column>
       </el-table>
-      <pagination :total="pageInfo.total"
+      <pagination sync :total.sync="pageInfo.total"
                   :page.sync="pageInfo.page"
                   :limit.sync="pageInfo.limit"
                   :page-sizes="pageInfo.page_size"
@@ -90,7 +91,6 @@
 <script>
 import { newsList, newsUpdate, newsDel } from '@/api/contentManager'
 import pagination from '@/components/Pagination/index'
-import store from '@/store'
 export default {
   name: 'information',
   components: {
@@ -113,13 +113,14 @@ export default {
       }
     }
   },
-  activated () {
-    this.getList()
-  },
   mounted () {
     this.getList()
   },
   methods: {
+    search() {
+      this.pageInfo.page = 1
+      this.getList()
+    },
     getList () {
       let params = {
         clientName: 'manage',

+ 11 - 9
src/views/contentManager/components/knowledge.vue

@@ -4,9 +4,11 @@
     <div @click="openTeaching('create')"
          class='newBand'>新建</div>
     <!-- 搜索标题 -->
-    <el-form :inline="true"
+    <save-form :inline="true"
              class="searchForm"
-             v-model.trim="searchForm">
+             saveKey="contentKnowledge"
+             @submit="search"
+             :model="searchForm">
       <el-form-item prop="hasPracticeCourse">
         <el-select class="multiple"
                    v-model.trim="searchForm.tenantId"
@@ -32,10 +34,9 @@
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button @click="getList"
-                   type="danger">搜索</el-button>
+        <el-button native-type="submit" type="danger">搜索</el-button>
       </el-form-item>
-    </el-form>
+    </save-form>
     <!-- 列表 -->
     <div class="tableWrap">
       <el-table :data='tableList'
@@ -113,7 +114,7 @@
           </template>
         </el-table-column>
       </el-table>
-      <pagination :total="pageInfo.total"
+      <pagination sync :total.sync="pageInfo.total"
                   :page.sync="pageInfo.page"
                   :limit.sync="pageInfo.limit"
                   :page-sizes="pageInfo.page_size"
@@ -149,13 +150,14 @@ export default {
       }
     }
   },
-  activated () {
-    this.getList()
-  },
   mounted () {
     this.getList()
   },
   methods: {
+    search() {
+      this.pageInfo.page = 1
+      this.getList()
+    },
     permission (str) {
       return permission(str)
     },

+ 11 - 10
src/views/contentManager/components/training.vue

@@ -4,9 +4,11 @@
     <div @click="openTeaching('create')"
          class="newBand">新建</div>
     <!-- 搜索标题 -->
-    <el-form :inline="true"
+    <save-form :inline="true"
              class="searchForm"
-             v-model.trim="searchForm">
+             :saveKey="'contentTraining'"
+             @submit="search"
+             :model="searchForm">
       <el-form-item prop="hasPracticeCourse">
         <el-select class="multiple"
                    v-model.trim="searchForm.tenantId"
@@ -18,10 +20,9 @@
         </el-select>
       </el-form-item>
       <el-form-item>
-        <el-button @click="getList"
-                   type="danger">搜索</el-button>
+        <el-button native-type="submit" type="danger">搜索</el-button>
       </el-form-item>
-    </el-form>
+    </save-form>
     <!-- 列表 -->
     <div class="tableWrap">
       <el-table :data="tableList"
@@ -73,7 +74,7 @@
           </template>
         </el-table-column>
       </el-table>
-      <pagination :total="pageInfo.total"
+      <pagination sync :total.sync="pageInfo.total"
                   :page.sync="pageInfo.page"
                   :limit.sync="pageInfo.limit"
                   :page-sizes="pageInfo.page_size"
@@ -84,7 +85,6 @@
 <script>
 import { newsList, newsUpdate, newsDel } from "@/api/contentManager";
 import pagination from "@/components/Pagination/index";
-import store from "@/store";
 export default {
   name: "training",
   components: {
@@ -107,13 +107,14 @@ export default {
       }
     };
   },
-  activated () {
-    this.getList();
-  },
   mounted () {
     this.getList();
   },
   methods: {
+    search() {
+      this.pageInfo.page = 1
+      this.getList()
+    },
     getList () {
       let params = {
         clientName: 'manage',

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

@@ -9,41 +9,49 @@
                @tab-click="handleClick">
         <el-tab-pane label="精彩活动"
                      v-if="permissionList.activity"
+                     lazy
                      name="0">
           <activity v-if="activeStatus[0]" />
         </el-tab-pane>
         <el-tab-pane label="热门资讯"
                      v-if="permissionList.information"
+                     lazy
                      name="1">
           <information v-if="activeStatus[1]" />
         </el-tab-pane>
         <el-tab-pane label="专项训练"
                      v-if="permissionList.training"
+                     lazy
                      name="2">
           <training v-if="activeStatus[2]" />
         </el-tab-pane>
         <el-tab-pane label="闪页管理"
                      v-if="permissionList.flashPage"
+                     lazy
                      name="3">
           <flashPage v-if="activeStatus[3]" />
         </el-tab-pane>
         <el-tab-pane label="BANNER管理"
                      v-if="permissionList.banner"
+                     lazy
                      name="4">
           <banner v-if="activeStatus[4]" />
         </el-tab-pane>
         <el-tab-pane label="APP按钮管理"
                      v-if="permissionList.appPage"
+                     lazy
                      name="5">
           <appPage v-if="activeStatus[5]" />
         </el-tab-pane>
         <el-tab-pane label="知识库管理"
                      v-if="permissionList.knowledge"
+                     lazy
                      name="6">
           <knowledge v-if="activeStatus[6]" />
         </el-tab-pane>
         <el-tab-pane label="广告管理"
                      v-if="permissionList.advert"
+                     lazy
                      name="7">
           <advert v-if="activeStatus[7]" />
         </el-tab-pane>
@@ -88,7 +96,7 @@ export default {
       }
     }
   },
-  created () {
+  mounted () {
     let type = this.$route.query.type
     if (type != null) {
       this.activeName = type.toString()