소스 검색

cms关联

lrf402788946 5 년 전
부모
커밋
69e6717395
5개의 변경된 파일42개의 추가작업 그리고 51개의 파일을 삭제
  1. 16 34
      src/layout/layout-part/top-menu.vue
  2. 19 4
      src/store.js
  3. 0 1
      src/views/index/index.vue
  4. 6 11
      src/views/index/request.vue
  5. 1 1
      vue.config.js

+ 16 - 34
src/layout/layout-part/top-menu.vue

@@ -7,11 +7,11 @@
             <template v-for="(item, index) in menu">
               <el-submenu v-if="item.children.length > 0" :index="`${index}`" :key="index">
                 <template slot="title">
-                  {{ item.name }}
+                  {{ item.title }}
                 </template>
-                <el-menu-item v-for="(sub, subIndex) in item.children" :key="subIndex" :index="sub.path">{{ sub.name }}</el-menu-item>
+                <el-menu-item v-for="(sub, subIndex) in item.children" :key="subIndex" :index="sub.path">{{ sub.title }}</el-menu-item>
               </el-submenu>
-              <el-menu-item v-else :index="item.path" :key="index">{{ item.name }}</el-menu-item>
+              <el-menu-item v-else :index="item.path" :key="index">{{ item.title }}</el-menu-item>
             </template>
           </el-menu>
         </el-col>
@@ -35,7 +35,7 @@ export default {
     this.loadMenu();
   },
   methods: {
-    ...mapActions(['menuOperation']),
+    ...mapActions(['menuOperation', 'newsOperation', 'columnOperation']),
     async loadMenu() {
       let menu = sessionStorage.getItem('menu');
       if (menu) {
@@ -44,40 +44,22 @@ export default {
       } else this.getMenu();
     },
     async getMenu() {
+      //获取菜单
       let result = await this.menuOperation({ type: 'list', data: { site: this.$site } });
       if (`${result.errcode}` === '0') {
+        //获取菜单的栏目
         let allMenu = result.data;
-        let fMenu = [];
-        let otherMenu = [];
-        allMenu.map(item => {
-          if (item.parent_id) {
-            otherMenu.push(item);
-          } else {
-            item.children = [];
-            fMenu.push(item);
-          }
-        });
-        //先整合非一级菜单的数据
-        let newArr = otherMenu.map(item => {
-          let index = _.findIndex(otherMenu, menuItem => menuItem.id === item.parent_id);
-          if (index > -1) {
-            //若此数据为otherMenu中某项的子项,则将此项推进该项的children中,且不需要返回
-            if (!otherMenu[index].children) otherMenu[index].children = [];
-            otherMenu[index].children.push(item);
-          } else {
-            //若不是otherMenu中某项的子项,则返回
-            return item;
-          }
-        });
-        newArr = newArr.filter(fil => fil !== undefined);
-        newArr.map(item => {
-          let index = _.findIndex(fMenu, menuItem => menuItem.id === item.parent_id);
-          if (index > -1) fMenu[index].children.push(item);
-        });
-        this.$set(this, `menu`, fMenu);
-        sessionStorage.setItem('menu', JSON.stringify(fMenu));
+        for (let item of allMenu) {
+          let res = await this.completeMenu(item);
+          console.log(res);
+        }
       }
-      this.$set(this, 'site', result.data);
+    },
+    async completeMenu(item) {
+      //如果type
+      let res = await this.columnOperation({ type: 'search', data: { parent_id: item.id } });
+      console.log(res);
+      return res;
     },
   },
 };

+ 19 - 4
src/store.js

@@ -38,13 +38,16 @@ const api = {
   // 新闻管理
   query: '/api/cms/news/list',
   fetch: '/api/cms/news/fetch/{id}',
-  update: '/api/cms/news/update/{id}',
-  delete: '/api/cms/news/delete/{id}',
+  // update: '/api/cms/news/update/{id}',
+  // delete: '/api/cms/news/delete/{id}',
   // news: '/adminapi/cms/news/create',
   // query: '/adminapi/cms/news/query',
   // fetch: id => `/adminapi/cms/news/fetch/${id}`,
   // update: id => `/adminapi/cms/news/update/${id}`,
   // delete: id => `/adminapi/cms/news/delete/${id}`,
+  //栏目管理
+  columnQuery: '/api/cms/column/list',
+  columnFetch: '/api/cms/column/fetch/{id}',
 };
 
 export default new Vuex.Store({
@@ -294,13 +297,12 @@ export default new Vuex.Store({
       }
       return result;
     },
-    // 新闻管理
+    // 信息管理
     async newsOperation({ state }, { type, data }) {
       let { skip, limit } = data;
       let result;
       if (type === 'list') {
         let { site, column } = data;
-        console.log(data);
         result = await this.$axios.$get(api.query, {}, { site: site, column: column, skip: skip, limit: limit });
       }
       if (type === 'search') {
@@ -309,6 +311,19 @@ export default new Vuex.Store({
       }
       return result;
     },
+    //栏目管理
+    async columnOperation({ state }, { type, data }) {
+      let { skip, limit } = data;
+      let result;
+      if (type === 'list') {
+        //TODO
+      }
+      if (type === 'search') {
+        let { id } = data;
+        result = await this.$axios.$get(api.columnFetch, { id: id });
+      }
+      return result;
+    },
   },
 });
 

+ 0 - 1
src/views/index/index.vue

@@ -619,7 +619,6 @@ export default {
     tagsThr: null,
     tagsCol: null,
     tagsOne: null,
-    site: null,
   },
   components: {
     foot,

+ 6 - 11
src/views/index/request.vue

@@ -2,6 +2,7 @@
   <div id="request">
     <el-row>
       <pages-one
+        v-if="!loading"
         :newList="newList"
         :gongList="gongList"
         :listSchIn="listSchIn"
@@ -18,7 +19,6 @@
         :tagsThr="tagsThr"
         :tagsCol="tagsCol"
         :tagsOne="tagsOne"
-        :site="site"
       >
         <template #calendar>
           <self-calendar></self-calendar>
@@ -40,6 +40,7 @@ export default {
     selfCalendar,
   },
   data: () => ({
+    loading: true,
     limit: 4,
     newList: [
       { url: require('@/assets/a1.jpg'), id: 1, name: '应用技术学院召开首届专场人才招聘会' },
@@ -67,26 +68,20 @@ export default {
   }),
   created() {
     this.getSite();
-    this.search();
+    // this.search();
   },
   computed: {},
   methods: {
-    ...mapActions(['jobfairOperation', 'postTalksInfo', 'jobinfoOperation', 'getBugInfo', 'siteOperation', 'newsOperation']),
+    ...mapActions(['jobfairOperation', 'postTalksInfo', 'jobinfoOperation', 'getBugInfo', 'newsOperation', 'siteOperation']),
     async getSite() {
       let site = sessionStorage.getItem('site');
-      if (site) {
-        site = JSON.parse(site);
-        this.$set(this, `site`, site);
-        return;
-      } else {
-        let site = '99991';
+      if (!site) {
         let result = await this.siteOperation({ type: 'search', data: { site: this.$site } });
         if (`${result.errcode}` === `0`) {
           sessionStorage.setItem('site', JSON.stringify(result.data));
-          this.$set(this, `site`, result.data);
-          console.log(site);
         }
       }
+      this.$set(this, `loading`, false);
     },
     async search() {
       // 1直接拿着参数发送请求

+ 1 - 1
vue.config.js

@@ -46,7 +46,7 @@ module.exports = {
         ws: true,
       },
       '/adminapi': {
-        target: 'http://smart.cc-lotus.info',
+        target: 'http://10.16.5.15:8105',
         ws: true,
       },
     },