Browse Source

Merge branch 'master' of http://git.cc-lotus.info/count/webnew-count

guhongwei 5 years ago
parent
commit
dc616c5a92
39 changed files with 415 additions and 334 deletions
  1. 1 1
      src/layout/common/menus.vue
  2. 8 7
      src/layout/index/jobs.vue
  3. 9 7
      src/layout/index/notice.vue
  4. 9 7
      src/layout/index/service.vue
  5. 9 7
      src/layout/index/technology.vue
  6. 30 22
      src/layout/news/infoList.vue
  7. 41 0
      src/store/comment.js
  8. 2 0
      src/store/index.js
  9. 50 14
      src/views/achievement/index.vue
  10. 3 3
      src/views/achievement/parts/achievementsDetail.vue
  11. 5 4
      src/views/achievement/parts/achievementsList.vue
  12. 3 3
      src/views/achievement/parts/countryDetail.vue
  13. 5 4
      src/views/achievement/parts/countryList.vue
  14. 3 3
      src/views/achievement/parts/entrepreneurshipDetail.vue
  15. 5 4
      src/views/achievement/parts/entrepreneurshipList.vue
  16. 3 3
      src/views/achievement/parts/knowledgeDetail.vue
  17. 5 4
      src/views/achievement/parts/knowledgeList.vue
  18. 3 3
      src/views/achievement/parts/projectDetail.vue
  19. 5 4
      src/views/achievement/parts/projectList.vue
  20. 3 3
      src/views/achievement/parts/softwareDetail.vue
  21. 5 4
      src/views/achievement/parts/softwareList.vue
  22. 3 3
      src/views/achievement/parts/supercomputingDetail.vue
  23. 5 4
      src/views/achievement/parts/supercomputingList.vue
  24. 3 3
      src/views/achievement/parts/teachingDetail.vue
  25. 5 4
      src/views/achievement/parts/teachingList.vue
  26. 3 3
      src/views/achievement/parts/technologyDetail.vue
  27. 5 4
      src/views/achievement/parts/technologyList.vue
  28. 18 11
      src/views/communication/index.vue
  29. 36 9
      src/views/communication/list.vue
  30. 27 7
      src/views/communication/parts/demand.vue
  31. 5 4
      src/views/communication/parts/industryList.vue
  32. 5 4
      src/views/communication/parts/scienceList.vue
  33. 5 4
      src/views/communication/parts/technologyList.vue
  34. 33 31
      src/views/communication/parts/topicDetail.vue
  35. 5 4
      src/views/communication/parts/topicList.vue
  36. 4 105
      src/views/index.vue
  37. 41 23
      src/views/news/listDetail.vue
  38. 4 4
      src/views/news/parts/newsList.vue
  39. 1 0
      src/views/pcenter/demand.vue

+ 1 - 1
src/layout/common/menus.vue

@@ -4,7 +4,7 @@
       <el-col :span="24">
         <el-menu :default-active="$route.path" router class="el-menu-demo" mode="horizontal">
           <el-menu-item index="/news/index">新闻动态</el-menu-item>
-          <el-menu-item index="/achievement/index?col_name=平台建设">成果展示</el-menu-item>
+          <el-menu-item index="/achievement/index?col_name=平台建设&&display=0">成果展示</el-menu-item>
           <el-menu-item index="/service/index">计算服务</el-menu-item>
           <el-menu-item index="/communication/index">交流互动</el-menu-item>
           <el-menu-item index="/partisan/index">党建学苑</el-menu-item>

+ 8 - 7
src/layout/index/jobs.vue

@@ -6,13 +6,7 @@
       </div>
     </el-col>
     <el-col :span="24">
-      <el-col
-        :span="24"
-        class="leftcontext"
-        v-for="(item, index) in jobsList"
-        :key="index"
-        @click.native="$router.push({ path: '/news/listDetail', query: { col_name: '工作动态', id: item.id, display: '1' } })"
-      >
+      <el-col :span="24" class="leftcontext" v-for="(item, index) in jobsList" :key="index" @click.native="jobs(item)">
         <el-col :span="20" class="title"> <span></span>{{ item.title }} </el-col>
         <el-col :span="4" class="date">{{ item.date }}</el-col>
       </el-col>
@@ -32,6 +26,13 @@ export default {
     async morejob() {
       this.$router.push({ path: '/news/listDetail', query: { col_name: '工作动态', display: '0' } });
     },
+    async jobs(item) {
+      if (item.url) {
+        window.open(item.url);
+      } else {
+        this.$router.push({ path: '/news/listDetail', query: { col_name: '工作动态', id: item.id, display: '1' } });
+      }
+    },
   },
 };
 </script>

+ 9 - 7
src/layout/index/notice.vue

@@ -6,13 +6,7 @@
       </div>
     </el-col>
     <el-col :span="24">
-      <el-col
-        :span="24"
-        class="leftcontext"
-        v-for="(item, index) in noticeList"
-        :key="index"
-        @click.native="$router.push({ path: '/news/listDetail', query: { col_name: '通知通告', id: 'id', display: '1' } })"
-      >
+      <el-col :span="24" class="leftcontext" v-for="(item, index) in noticeList" :key="index" @click.native="tongzhi(item)">
         <el-col :span="18" class="title"> <span></span>{{ item.title }} </el-col>
         <el-col :span="6" class="date">{{ item.date }}</el-col>
       </el-col>
@@ -34,6 +28,14 @@ export default {
     async mortongzhi() {
       this.$router.push({ path: '/news/listDetail', query: { col_name: '通知通告', display: '0' } });
     },
+
+    async tongzhi(item) {
+      if (item.url) {
+        window.open(item.url);
+      } else {
+        this.$router.push({ path: '/news/listDetail', query: { col_name: '通知通告', id: item.id, display: '1' } });
+      }
+    },
   },
 };
 </script>

+ 9 - 7
src/layout/index/service.vue

@@ -6,13 +6,7 @@
       </div>
     </el-col>
     <el-col :span="24">
-      <el-col
-        :span="24"
-        class="leftcontext"
-        v-for="(item, index) in serviceList"
-        :key="index"
-        @click.native="$router.push({ path: '/achievement/index', query: { col_name: '科技合作', id: 'id', display: '1' } })"
-      >
+      <el-col :span="24" class="leftcontext" v-for="(item, index) in serviceList" :key="index" @click.native="keji(item)">
         <el-col :span="16" class="title"> <span></span>{{ item.title }} </el-col>
         <el-col :span="8" class="date">{{ item.date }}</el-col>
       </el-col>
@@ -34,6 +28,14 @@ export default {
     morekeji() {
       this.$router.push({ path: '/achievement/index', query: { col_name: '科技合作', display: '0' } });
     },
+
+    async keji(item) {
+      if (item.url) {
+        window.open(item.url);
+      } else {
+        this.$router.push({ path: '/achievement/index', query: { col_name: '科技合作', id: item.id, display: '1' } });
+      }
+    },
   },
 };
 </script>

+ 9 - 7
src/layout/index/technology.vue

@@ -6,13 +6,7 @@
       </div>
     </el-col>
     <el-col :span="24">
-      <el-col
-        :span="24"
-        class="leftcontext"
-        v-for="(item, index) in jishuList"
-        :key="index"
-        @click.native="$router.push({ path: '/communication/list', query: { col_name: '技术问答', id: 'id', display: '1' } })"
-      >
+      <el-col :span="24" class="leftcontext" v-for="(item, index) in jishuList" :key="index" @click.native="jishu(item)">
         <el-col :span="18" class="title"> <span></span>{{ item.title }} </el-col>
         <el-col :span="6" class="date">{{ item.date }}</el-col>
       </el-col>
@@ -34,6 +28,14 @@ export default {
     morekeji() {
       this.$router.push({ path: '/communication/list', query: { col_name: '技术问答', display: '0' } });
     },
+
+    async keji(item) {
+      if (item.url) {
+        window.open(item.url);
+      } else {
+        this.$router.push({ path: '/communication/list', query: { col_name: '技术问答', id: item.id, display: '1' } });
+      }
+    },
   },
 };
 </script>

+ 30 - 22
src/layout/news/infoList.vue

@@ -9,13 +9,7 @@
             <span @click="$router.push({ path: '/news/listDetail', query: { col_name: '科技资讯', display: '0' } })">MORE</span>
           </el-col>
           <el-col :span="24" class="list">
-            <el-col
-              :span="24"
-              class="oneList"
-              @click.native="$router.push({ path: '/news/listDetail', query: { col_name: '科技资讯', id: 'id', display: '1' } })"
-              v-for="(item, index) in oneList"
-              :key="index"
-            >
+            <el-col :span="24" class="oneList" @click.native="zixun(item)" v-for="(item, index) in oneList" :key="index">
               <span></span>
               <span class="textOver">{{ item.title }}</span>
               <span>{{ item.date }}</span>
@@ -29,13 +23,7 @@
             <span @click="$router.push({ path: '/news/listDetail', query: { col_name: '技术前沿', display: '0' } })">MORE</span>
           </el-col>
           <el-col :span="24" class="list">
-            <el-col
-              :span="24"
-              class="oneList"
-              @click.native="$router.push({ path: '/news/listDetail', query: { col_name: '技术前沿', id: 'id', display: '1' } })"
-              v-for="(item, index) in twoList"
-              :key="index"
-            >
+            <el-col :span="24" class="oneList" @click.native="jishu(item)" v-for="(item, index) in twoList" :key="index">
               <span></span>
               <span class="textOver">{{ item.title }}</span>
               <span>{{ item.date }}</span>
@@ -49,13 +37,7 @@
             <span @click="$router.push({ path: '/news/listDetail', query: { col_name: '工作动态', display: '0' } })">MORE</span>
           </el-col>
           <el-col :span="24" class="list">
-            <el-col
-              :span="24"
-              class="oneList"
-              @click.native="$router.push({ path: '/news/listDetail', query: { col_name: '工作动态', id: 'id', display: '1' } })"
-              v-for="(item, index) in threeList"
-              :key="index"
-            >
+            <el-col :span="24" class="oneList" @click.native="jobs(item)" v-for="(item, index) in threeList" :key="index">
               <span></span>
               <span class="textOver">{{ item.title }}</span>
               <span>{{ item.date }}</span>
@@ -81,7 +63,33 @@ export default {
     return {};
   },
   created() {},
-  methods: {},
+  methods: {
+    async jobs(item) {
+      if (item.url) {
+        window.open(item.url);
+      } else {
+        console.log(item);
+
+        this.$router.push({ path: '/news/listDetail', query: { col_name: '工作动态', id: item.id, display: '1' } });
+      }
+    },
+
+    async zixun(item) {
+      if (item.url) {
+        window.open(item.url);
+      } else {
+        this.$router.push({ path: '/news/listDetail', query: { col_name: '科技资讯', id: item.id, display: '1' } });
+      }
+    },
+
+    async jishu(item) {
+      if (item.url) {
+        window.open(item.url);
+      } else {
+        this.$router.push({ path: '/news/listDetail', query: { col_name: '技术前沿', id: 'id', display: '1' } });
+      }
+    },
+  },
   computed: {
     ...mapState(['user']),
     pageTitle() {

+ 41 - 0
src/store/comment.js

@@ -0,0 +1,41 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  commentInfo: `/api/count/comment`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = 10, ...info } = {}) {
+    const res = await this.$axios.$get(api.commentInfo, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.commentInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.commentInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.commentInfo}/update/${id}`, {
+      ...info,
+    });
+    return res;
+  },
+  async delete({ commit }, payload) {
+    const res = await this.$axios.$delete(`${api.newsInfo}/${payload}`);
+    return res;
+  },
+};
+
+export default {
+  namespaced: true,
+  state,
+  mutations,
+  actions,
+};

+ 2 - 0
src/store/index.js

@@ -11,6 +11,7 @@ import login from './login';
 import user from './user';
 import news from './news';
 import demand from './demand';
+import comment from './comment';
 Vue.use(Vuex);
 
 export default new Vuex.Store({
@@ -27,5 +28,6 @@ export default new Vuex.Store({
     user,
     news,
     demand,
+    comment,
   },
 });

+ 50 - 14
src/views/achievement/index.vue

@@ -29,31 +29,31 @@
                   </el-col>
                   <el-col :span="24" class="list">
                     <span v-if="columnName == '平台建设'">
-                      <achievementsList :list="list" :total="total" @detailBtn="detailBtn"></achievementsList>
+                      <achievementsList :list="list" :total="total" :limit="limit" @detailBtn="detailBtn" @query="searchinfo"></achievementsList>
                     </span>
                     <span v-else-if="columnName == '项目成果'">
-                      <projectList :list="list" :total="total" @detailBtn="detailBtn"></projectList>
+                      <projectList :list="list" :total="total" :limit="limit" @detailBtn="detailBtn" @query="searchinfo"></projectList>
                     </span>
                     <span v-else-if="columnName == '知识产权'">
-                      <knowledgeList :list="list" :total="total" @detailBtn="detailBtn"></knowledgeList>
+                      <knowledgeList :list="list" :total="total" :limit="limit" @detailBtn="detailBtn" @query="searchinfo"></knowledgeList>
                     </span>
                     <span v-else-if="columnName == '科技合作'">
-                      <technologyList :list="list" :total="total" @detailBtn="detailBtn"></technologyList>
+                      <technologyList :list="list" :total="total" :limit="limit" @detailBtn="detailBtn" @query="searchinfo"></technologyList>
                     </span>
                     <span v-else-if="columnName == '超算联盟'">
-                      <supercomputingList :list="list" :total="total" @detailBtn="detailBtn"></supercomputingList>
+                      <supercomputingList :list="list" :total="total" :limit="limit" @detailBtn="detailBtn" @query="searchinfo"></supercomputingList>
                     </span>
                     <span v-else-if="columnName == '国家网格'">
-                      <countryList :list="list" :total="total" @detailBtn="detailBtn"></countryList>
+                      <countryList :list="list" :total="total" @detailBtn="detailBtn" @query="searchinfo"></countryList>
                     </span>
                     <span v-else-if="columnName == '教学中心'">
-                      <teachingList :list="list" :total="total" @detailBtn="detailBtn"></teachingList>
+                      <teachingList :list="list" :total="total" :limit="limit" @detailBtn="detailBtn" @query="searchinfo"></teachingList>
                     </span>
                     <span v-else-if="columnName == '创业基地'">
-                      <entrepreneurshipList :list="list" :total="total" @detailBtn="detailBtn"></entrepreneurshipList>
+                      <entrepreneurshipList :list="list" :total="total" :limit="limit" @detailBtn="detailBtn" @query="searchinfo"></entrepreneurshipList>
                     </span>
                     <span v-else-if="columnName == '软件中心'">
-                      <softwareList :list="list" :total="total" @detailBtn="detailBtn"></softwareList>
+                      <softwareList :list="list" :total="total" :limit="limit" @detailBtn="detailBtn" @query="searchinfo"></softwareList>
                     </span>
                   </el-col>
                 </span>
@@ -128,7 +128,8 @@ import entrepreneurshipDetail from './parts/entrepreneurshipDetail.vue';
 import softwareList from './parts/softwareList.vue';
 import softwareDetail from './parts/softwareDetail.vue';
 import cooperation from '@/layout/achievement/cooperation.vue';
-
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: news } = createNamespacedHelpers('news');
 export default {
   name: 'index',
   props: {},
@@ -161,6 +162,7 @@ export default {
     displays: '0',
     columnName: '平台建设',
     total: 1,
+    limit: 16,
     details: {},
     list: [
       {
@@ -183,24 +185,58 @@ export default {
     this.search();
   },
   computed: {
+    display() {
+      return this.$route.query.display;
+    },
+
+    id() {
+      return this.$route.query.id;
+    },
     col_name() {
       return this.$route.query.col_name;
     },
   },
   methods: {
+    ...news({ newsQuery: 'query', newsFetch: 'fetch' }),
     async search() {
       this.columnName = this.col_name;
       console.log(this.columnName);
+      if (this.display == '0') {
+        let res = await this.newsQuery({ skip: 0, limit: 16, col_name: this.col_name, status: 2 });
+        if (this.$checkRes(res)) this.$set(this, `list`, res.data);
+        this.$set(this, `total`, res.total);
+      } else {
+        console.log('sdada');
+        let res = await this.newsFetch(this.id);
+        if (this.$checkRes(res)) this.$set(this, `details`, res.data);
+        this.$set(this, `displays`, this.display);
+      }
     },
 
-    async detailBtn(id) {
-      console.log(id);
-
-      this.$set(this, `displays`, 1);
+    async detailBtn(item) {
+      if (item.url) {
+        window.open(item.url);
+      } else {
+        let res = await this.newsFetch(item.id);
+        if (this.$checkRes(res)) this.$set(this, `details`, res.data);
+        this.$set(this, `displays`, 1);
+      }
     },
     async leftdaohang(title) {
       this.$set(this, `displays`, 0);
       this.$set(this, `columnName`, title);
+      let res = await this.newsQuery({ skip: 0, limit: 16, col_name: title, status: 2 });
+      if (this.$checkRes(res)) this.$set(this, `list`, res.data);
+      this.$set(this, `total`, res.total);
+    },
+
+    //分页
+    async searchinfo({ skip, limit }) {
+      console.log(skip);
+      console.log(limit);
+      let res = await this.newsQuery({ skip, limit: 16, col_name: this.columnName, status: 2 });
+      if (this.$checkRes(res)) this.$set(this, `list`, res.data);
+      this.$set(this, `total`, res.total);
     },
   },
 };

+ 3 - 3
src/views/achievement/parts/achievementsDetail.vue

@@ -4,10 +4,10 @@
       <el-col :span="24" class="info">
         <h3>{{ details.title }}</h3>
         <div>
-          <span>文章来源:{{ details.source }}</span>
-          <span>时间:{{ details.date }}</span>
+          <span>文章来源:{{ details.publish_unit }}</span>
+          <span>时间:{{ details.publish_time }}</span>
         </div>
-        <p>{{ details.content }}</p>
+        <p v-html="details.content"></p>
       </el-col>
     </el-row>
   </div>

+ 5 - 4
src/views/achievement/parts/achievementsList.vue

@@ -2,13 +2,13 @@
   <div id="newsList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="24" class="list" @click.native="detailBtn(item.id)" v-for="(item, index) in list" :key="index">
+        <el-col :span="24" class="list" @click.native="detailBtn(item)" v-for="(item, index) in list" :key="index">
           <span></span>
           <span class="textOver">{{ item.title }}</span>
           <span>{{ item.date }}</span>
         </el-col>
         <el-col :span="24" class="page">
-          <pagination :total="total"></pagination>
+          <pagination :total="total" :limit="limit" v-on="$listeners"></pagination>
         </el-col>
       </el-col>
     </el-row>
@@ -23,6 +23,7 @@ export default {
   props: {
     list: null,
     total: null,
+    limit: null,
   },
   components: {
     pagination,
@@ -32,8 +33,8 @@ export default {
   },
   created() {},
   methods: {
-    detailBtn(id) {
-      this.$emit('detailBtn', id);
+    detailBtn(item) {
+      this.$emit('detailBtn', item);
     },
   },
   computed: {

+ 3 - 3
src/views/achievement/parts/countryDetail.vue

@@ -4,10 +4,10 @@
       <el-col :span="24" class="info">
         <h3>{{ details.title }}</h3>
         <div>
-          <span>文章来源:{{ details.source }}</span>
-          <span>时间:{{ details.date }}</span>
+          <span>文章来源:{{ details.publish_unit }}</span>
+          <span>时间:{{ details.publish_time }}</span>
         </div>
-        <p>{{ details.content }}</p>
+        <p v-html="details.content"></p>
       </el-col>
     </el-row>
   </div>

+ 5 - 4
src/views/achievement/parts/countryList.vue

@@ -2,13 +2,13 @@
   <div id="newsList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="24" class="list" @click.native="detailBtn(item.id)" v-for="(item, index) in list" :key="index">
+        <el-col :span="24" class="list" @click.native="detailBtn(item)" v-for="(item, index) in list" :key="index">
           <span></span>
           <span class="textOver">{{ item.title }}</span>
           <span>{{ item.date }}</span>
         </el-col>
         <el-col :span="24" class="page">
-          <pagination :total="total"></pagination>
+          <pagination :total="total" :limit="limit" v-on="$listeners"></pagination>
         </el-col>
       </el-col>
     </el-row>
@@ -23,6 +23,7 @@ export default {
   props: {
     list: null,
     total: null,
+    limit: null,
   },
   components: {
     pagination,
@@ -32,8 +33,8 @@ export default {
   },
   created() {},
   methods: {
-    detailBtn(id) {
-      this.$emit('detailBtn', id);
+    detailBtn(item) {
+      this.$emit('detailBtn', item);
     },
   },
   computed: {

+ 3 - 3
src/views/achievement/parts/entrepreneurshipDetail.vue

@@ -4,10 +4,10 @@
       <el-col :span="24" class="info">
         <h3>{{ details.title }}</h3>
         <div>
-          <span>文章来源:{{ details.source }}</span>
-          <span>时间:{{ details.date }}</span>
+          <span>文章来源:{{ details.publish_unit }}</span>
+          <span>时间:{{ details.publish_time }}</span>
         </div>
-        <p>{{ details.content }}</p>
+        <p v-html="details.content"></p>
       </el-col>
     </el-row>
   </div>

+ 5 - 4
src/views/achievement/parts/entrepreneurshipList.vue

@@ -2,13 +2,13 @@
   <div id="newsList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="24" class="list" @click.native="detailBtn(item.id)" v-for="(item, index) in list" :key="index">
+        <el-col :span="24" class="list" @click.native="detailBtn(item)" v-for="(item, index) in list" :key="index">
           <span></span>
           <span class="textOver">{{ item.title }}</span>
           <span>{{ item.date }}</span>
         </el-col>
         <el-col :span="24" class="page">
-          <pagination :total="total"></pagination>
+          <pagination :total="total" :limit="limit" v-on="$listeners"></pagination>
         </el-col>
       </el-col>
     </el-row>
@@ -23,6 +23,7 @@ export default {
   props: {
     list: null,
     total: null,
+    limit: null,
   },
   components: {
     pagination,
@@ -32,8 +33,8 @@ export default {
   },
   created() {},
   methods: {
-    detailBtn(id) {
-      this.$emit('detailBtn', id);
+    detailBtn(item) {
+      this.$emit('detailBtn', item);
     },
   },
   computed: {

+ 3 - 3
src/views/achievement/parts/knowledgeDetail.vue

@@ -4,10 +4,10 @@
       <el-col :span="24" class="info">
         <h3>{{ details.title }}</h3>
         <div>
-          <span>文章来源:{{ details.source }}</span>
-          <span>时间:{{ details.date }}</span>
+          <span>文章来源:{{ details.publish_unit }}</span>
+          <span>时间:{{ details.publish_time }}</span>
         </div>
-        <p>{{ details.content }}</p>
+        <p v-html="details.content"></p>
       </el-col>
     </el-row>
   </div>

+ 5 - 4
src/views/achievement/parts/knowledgeList.vue

@@ -2,13 +2,13 @@
   <div id="newsList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="24" class="list" @click.native="detailBtn(item.id)" v-for="(item, index) in list" :key="index">
+        <el-col :span="24" class="list" @click.native="detailBtn(item)" v-for="(item, index) in list" :key="index">
           <span></span>
           <span class="textOver">{{ item.title }}</span>
           <span>{{ item.date }}</span>
         </el-col>
         <el-col :span="24" class="page">
-          <pagination :total="total"></pagination>
+          <pagination :total="total" :limit="limit" v-on="$listeners"></pagination>
         </el-col>
       </el-col>
     </el-row>
@@ -23,6 +23,7 @@ export default {
   props: {
     list: null,
     total: null,
+    limit: null,
   },
   components: {
     pagination,
@@ -32,8 +33,8 @@ export default {
   },
   created() {},
   methods: {
-    detailBtn(id) {
-      this.$emit('detailBtn', id);
+    detailBtn(item) {
+      this.$emit('detailBtn', item);
     },
   },
   computed: {

+ 3 - 3
src/views/achievement/parts/projectDetail.vue

@@ -4,10 +4,10 @@
       <el-col :span="24" class="info">
         <h3>{{ details.title }}</h3>
         <div>
-          <span>文章来源:{{ details.source }}</span>
-          <span>时间:{{ details.date }}</span>
+          <span>文章来源:{{ details.publish_unit }}</span>
+          <span>时间:{{ details.publish_time }}</span>
         </div>
-        <p>{{ details.content }}</p>
+        <p v-html="details.content"></p>
       </el-col>
     </el-row>
   </div>

+ 5 - 4
src/views/achievement/parts/projectList.vue

@@ -2,13 +2,13 @@
   <div id="newsList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="24" class="list" @click.native="detailBtn(item.id)" v-for="(item, index) in list" :key="index">
+        <el-col :span="24" class="list" @click.native="detailBtn(item)" v-for="(item, index) in list" :key="index">
           <span></span>
           <span class="textOver">{{ item.title }}</span>
           <span>{{ item.date }}</span>
         </el-col>
         <el-col :span="24" class="page">
-          <pagination :total="total"></pagination>
+          <pagination :total="total" :limit="limit" v-on="$listeners"></pagination>
         </el-col>
       </el-col>
     </el-row>
@@ -23,6 +23,7 @@ export default {
   props: {
     list: null,
     total: null,
+    limit: null,
   },
   components: {
     pagination,
@@ -32,8 +33,8 @@ export default {
   },
   created() {},
   methods: {
-    detailBtn(id) {
-      this.$emit('detailBtn', id);
+    detailBtn(item) {
+      this.$emit('detailBtn', item);
     },
   },
   computed: {

+ 3 - 3
src/views/achievement/parts/softwareDetail.vue

@@ -4,10 +4,10 @@
       <el-col :span="24" class="info">
         <h3>{{ details.title }}</h3>
         <div>
-          <span>文章来源:{{ details.source }}</span>
-          <span>时间:{{ details.date }}</span>
+          <span>文章来源:{{ details.publish_unit }}</span>
+          <span>时间:{{ details.publish_time }}</span>
         </div>
-        <p>{{ details.content }}</p>
+        <p v-html="details.content"></p>
       </el-col>
     </el-row>
   </div>

+ 5 - 4
src/views/achievement/parts/softwareList.vue

@@ -2,13 +2,13 @@
   <div id="newsList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="24" class="list" @click.native="detailBtn(item.id)" v-for="(item, index) in list" :key="index">
+        <el-col :span="24" class="list" @click.native="detailBtn(item)" v-for="(item, index) in list" :key="index">
           <span></span>
           <span class="textOver">{{ item.title }}</span>
           <span>{{ item.date }}</span>
         </el-col>
         <el-col :span="24" class="page">
-          <pagination :total="total"></pagination>
+          <pagination :total="total" :limit="limit" v-on="$listeners"></pagination>
         </el-col>
       </el-col>
     </el-row>
@@ -23,6 +23,7 @@ export default {
   props: {
     list: null,
     total: null,
+    limit: null,
   },
   components: {
     pagination,
@@ -32,8 +33,8 @@ export default {
   },
   created() {},
   methods: {
-    detailBtn(id) {
-      this.$emit('detailBtn', id);
+    detailBtn(item) {
+      this.$emit('detailBtn', item);
     },
   },
   computed: {

+ 3 - 3
src/views/achievement/parts/supercomputingDetail.vue

@@ -4,10 +4,10 @@
       <el-col :span="24" class="info">
         <h3>{{ details.title }}</h3>
         <div>
-          <span>文章来源:{{ details.source }}</span>
-          <span>时间:{{ details.date }}</span>
+          <span>文章来源:{{ details.publish_unit }}</span>
+          <span>时间:{{ details.publish_time }}</span>
         </div>
-        <p>{{ details.content }}</p>
+        <p v-html="details.content"></p>
       </el-col>
     </el-row>
   </div>

+ 5 - 4
src/views/achievement/parts/supercomputingList.vue

@@ -2,13 +2,13 @@
   <div id="newsList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="24" class="list" @click.native="detailBtn(item.id)" v-for="(item, index) in list" :key="index">
+        <el-col :span="24" class="list" @click.native="detailBtn(item)" v-for="(item, index) in list" :key="index">
           <span></span>
           <span class="textOver">{{ item.title }}</span>
           <span>{{ item.date }}</span>
         </el-col>
         <el-col :span="24" class="page">
-          <pagination :total="total"></pagination>
+          <pagination :total="total" :limit="limit" v-on="$listeners"></pagination>
         </el-col>
       </el-col>
     </el-row>
@@ -23,6 +23,7 @@ export default {
   props: {
     list: null,
     total: null,
+    limit: null,
   },
   components: {
     pagination,
@@ -32,8 +33,8 @@ export default {
   },
   created() {},
   methods: {
-    detailBtn(id) {
-      this.$emit('detailBtn', id);
+    detailBtn(item) {
+      this.$emit('detailBtn', item);
     },
   },
   computed: {

+ 3 - 3
src/views/achievement/parts/teachingDetail.vue

@@ -4,10 +4,10 @@
       <el-col :span="24" class="info">
         <h3>{{ details.title }}</h3>
         <div>
-          <span>文章来源:{{ details.source }}</span>
-          <span>时间:{{ details.date }}</span>
+          <span>文章来源:{{ details.publish_unit }}</span>
+          <span>时间:{{ details.publish_time }}</span>
         </div>
-        <p>{{ details.content }}</p>
+        <p v-html="details.content"></p>
       </el-col>
     </el-row>
   </div>

+ 5 - 4
src/views/achievement/parts/teachingList.vue

@@ -2,13 +2,13 @@
   <div id="newsList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="24" class="list" @click.native="detailBtn(item.id)" v-for="(item, index) in list" :key="index">
+        <el-col :span="24" class="list" @click.native="detailBtn(item)" v-for="(item, index) in list" :key="index">
           <span></span>
           <span class="textOver">{{ item.title }}</span>
           <span>{{ item.date }}</span>
         </el-col>
         <el-col :span="24" class="page">
-          <pagination :total="total"></pagination>
+          <pagination :total="total" :limit="limit" v-on="$listeners"></pagination>
         </el-col>
       </el-col>
     </el-row>
@@ -23,6 +23,7 @@ export default {
   props: {
     list: null,
     total: null,
+    limit: null,
   },
   components: {
     pagination,
@@ -32,8 +33,8 @@ export default {
   },
   created() {},
   methods: {
-    detailBtn(id) {
-      this.$emit('detailBtn', id);
+    detailBtn(item) {
+      this.$emit('detailBtn', item);
     },
   },
   computed: {

+ 3 - 3
src/views/achievement/parts/technologyDetail.vue

@@ -4,10 +4,10 @@
       <el-col :span="24" class="info">
         <h3>{{ details.title }}</h3>
         <div>
-          <span>文章来源:{{ details.source }}</span>
-          <span>时间:{{ details.date }}</span>
+          <span>文章来源:{{ details.publish_unit }}</span>
+          <span>时间:{{ details.publish_time }}</span>
         </div>
-        <p>{{ details.content }}</p>
+        <p v-html="details.content"></p>
       </el-col>
     </el-row>
   </div>

+ 5 - 4
src/views/achievement/parts/technologyList.vue

@@ -2,13 +2,13 @@
   <div id="newsList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="24" class="list" @click.native="detailBtn(item.id)" v-for="(item, index) in list" :key="index">
+        <el-col :span="24" class="list" @click.native="detailBtn(item)" v-for="(item, index) in list" :key="index">
           <span></span>
           <span class="textOver">{{ item.title }}</span>
           <span>{{ item.date }}</span>
         </el-col>
         <el-col :span="24" class="page">
-          <pagination :total="total"></pagination>
+          <pagination :total="total" :limit="limit" v-on="$listeners"></pagination>
         </el-col>
       </el-col>
     </el-row>
@@ -23,6 +23,7 @@ export default {
   props: {
     list: null,
     total: null,
+    limit: null,
   },
   components: {
     pagination,
@@ -32,8 +33,8 @@ export default {
   },
   created() {},
   methods: {
-    detailBtn(id) {
-      this.$emit('detailBtn', id);
+    detailBtn(item) {
+      this.$emit('detailBtn', item);
     },
   },
   computed: {

+ 18 - 11
src/views/communication/index.vue

@@ -14,7 +14,7 @@
           <div class="w_1200">
             <el-col :span="24">
               <el-col :span="8" class="left">
-                <demand :demandlist="demandlist"></demand>
+                <demand></demand>
               </el-col>
               <el-col :span="16" class="right"><right :ztytList="ztytList" :jswdList="jswdList" :hyyjList="hyyjList" :kjpxList="kjpxList"></right></el-col>
             </el-col>
@@ -36,7 +36,7 @@ import menus from '@/layout/common/menus.vue';
 import foot from '@/layout/common/foot.vue';
 import demand from './parts/demand.vue';
 import right from './parts/right.vue';
-
+const { mapActions: news } = createNamespacedHelpers('news');
 import { mapState, createNamespacedHelpers } from 'vuex';
 export default {
   name: 'index',
@@ -51,13 +51,6 @@ export default {
   },
   data: function() {
     return {
-      demandlist: [
-        {
-          title: 'ceshiceceshiceshichiceshiceshiceshiceshiceshiceshi',
-          date: '2019-03-04',
-        },
-        { title: '16条', date: '2019-03-04' },
-      ],
       ztytList: [
         {
           title: '试测试测',
@@ -97,8 +90,22 @@ export default {
       ], //科技培训
     };
   },
-  created() {},
-  methods: {},
+  created() {
+    this.search();
+  },
+  methods: {
+    ...news({ newsQuery: 'query', newsFetch: 'fetch' }),
+    async search() {
+      let res = await this.newsQuery({ skip: 0, limit: 16, col_name: '专题研讨', status: 2 });
+      if (this.$checkRes(res)) this.$set(this, `ztytList`, res.data);
+      res = await this.newsQuery({ skip: 0, limit: 16, col_name: '技术问答', status: 2 });
+      if (this.$checkRes(res)) this.$set(this, `jswdList`, res.data);
+      res = await this.newsQuery({ skip: 0, limit: 16, col_name: '行业研究', status: 2 });
+      if (this.$checkRes(res)) this.$set(this, `hyyjList`, res.data);
+      res = await this.newsQuery({ skip: 0, limit: 16, col_name: '科技培训', status: 2 });
+      if (this.$checkRes(res)) this.$set(this, `kjpxList`, res.data);
+    },
+  },
   computed: {
     ...mapState(['user']),
     pageTitle() {

+ 36 - 9
src/views/communication/list.vue

@@ -33,23 +33,23 @@
                 </el-col>
                 <el-col :span="24" class="list">
                   <span v-if="columnName == '专题研讨'">
-                    <topicList :list="list" :total="total" @detailBtn="detailBtn"></topicList>
+                    <topicList :list="list" :total="total" @detailBtn="detailBtn" @query="searchinfo"></topicList>
                   </span>
 
                   <span v-else-if="columnName == '技术问答'">
-                    <technologyList :list="list" :total="total" @detailBtn="detailBtn"></technologyList>
+                    <technologyList :list="list" :total="total" @detailBtn="detailBtn" @query="searchinfo"></technologyList>
                   </span>
                   <span v-else-if="columnName == '行业研究'">
-                    <industryList :list="list" :total="total" @detailBtn="detailBtn"></industryList>
+                    <industryList :list="list" :total="total" @detailBtn="detailBtn" @query="searchinfo"></industryList>
                   </span>
                   <span v-else-if="columnName == '科技培训'">
-                    <scienceList :list="list" :total="total" @detailBtn="detailBtn"></scienceList>
+                    <scienceList :list="list" :total="total" @detailBtn="detailBtn" @query="searchinfo"></scienceList>
                   </span>
                 </el-col>
               </span>
               <span v-else>
                 <span v-if="columnName == '专题研讨'">
-                  <topicDetail :details="details"></topicDetail>
+                  <topicDetail :newsid="newsid" :details="details"></topicDetail>
                 </span>
                 <span v-else-if="columnName == '技术问答'">
                   <technologyDetail :details="details"></technologyDetail>
@@ -78,7 +78,6 @@
 import top from '@/layout/common/top.vue';
 import menus from '@/layout/common/menus.vue';
 import foot from '@/layout/common/foot.vue';
-
 import technologyList from './parts/technologyList.vue';
 import technologyDetail from './parts/technologyDetail.vue';
 import industryList from './parts/industryList.vue';
@@ -88,6 +87,7 @@ import topicDetail from './parts/topicDetail.vue';
 import scienceList from './parts/scienceList.vue';
 import scienceDetail from './parts/scienceDetail.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: news } = createNamespacedHelpers('news');
 export default {
   name: 'listDetail',
   props: {},
@@ -124,6 +124,8 @@ export default {
       ],
       // 总数
       total: 10,
+      limit: 14,
+      newsid: '',
       // 详情
       details: {
         title: '信息标题',
@@ -135,8 +137,10 @@ export default {
   },
   created() {
     this.changeColumn();
+    this.search();
   },
   methods: {
+    ...news({ newsQuery: 'query', newsFetch: 'fetch' }),
     // 选择栏目
     changeColumn() {
       if (this.col_name == '专题研讨') {
@@ -147,30 +151,53 @@ export default {
       } else if (this.col_name == '技术问答') {
         this.menuIndex = 1;
         this.columnName = this.col_name;
+        console.log('cc');
         this.menuColor = 'rgb(5,73,130)';
+
         this.$set(this, `displays`, this.display);
       } else if (this.col_name == '行业研究') {
         this.menuIndex = 2;
         this.columnName = this.col_name;
         this.menuColor = 'rgb(5,73,130)';
+
         this.$set(this, `displays`, this.display);
       } else if (this.col_name == '科技培训') {
         this.menuIndex = 3;
         this.columnName = this.col_name;
         this.menuColor = 'rgb(5,73,130)';
+
         this.$set(this, `displays`, this.display);
       }
     },
     // 点击选择菜单
-    changeMenu(name, index) {
+    async changeMenu(name, index) {
       this.menuIndex = index;
       this.columnName = name;
+      let res = await this.newsQuery({ skip: 0, limit: 14, col_name: name, status: 2 });
+      if (this.$checkRes(res)) this.$set(this, `list`, res.data);
       this.menuColor = 'rgb(5,73,130)';
       this.$set(this, `displays`, 0);
     },
+
+    async search() {
+      let res = await this.newsQuery({ skip: 0, limit: 14, col_name: this.col_name, status: 2 });
+      if (this.$checkRes(res)) this.$set(this, `list`, res.data);
+    },
+
+    async searchinfo(skip, limit) {
+      let res = await this.newsQuery({ skip, limit: 14, col_name: this.col_name, status: 2 });
+      if (this.$checkRes(res)) this.$set(this, `list`, res.data);
+    },
+
     // 点击详情
-    detailBtn(id) {
-      this.$set(this, `displays`, 1);
+    detailBtn(item) {
+      console.log(item);
+      if (item.url) {
+        window.open(item.url);
+      } else {
+        this.$set(this, `displays`, 1);
+        this.$set(this, `newsid`, item.id);
+      }
     },
   },
   computed: {

+ 27 - 7
src/views/communication/parts/demand.vue

@@ -8,8 +8,8 @@
       <el-col :span="24" class="info">
         <el-col :span="24" v-for="(item, index) in demandlist" :key="index" class="list">
           <span></span>
-          <span class="textOver">{{ item.title }}</span>
-          <span>{{ item.date }}</span>
+          <span class="textOver">{{ item.name }}</span>
+          <span>{{ item.meta | getDate }}</span>
         </el-col>
       </el-col>
       <el-col :span="24" class="anniu">
@@ -21,18 +21,38 @@
 
 <script>
 import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: demand } = createNamespacedHelpers('demand');
+const moment = require('moment');
 export default {
   name: 'demand',
-  props: {
-    demandlist: null,
-  },
+  props: {},
   components: {},
   data: () => ({
     src: require('@/assets/exchange.png'),
+    demandlist: [],
   }),
-  created() {},
+  created() {
+    this.search();
+  },
   computed: { ...mapState(['user']) },
-  methods: {},
+  methods: {
+    ...demand(['query']),
+    async search() {
+      const info = { status: '2', is_display: '0' };
+      const res = await this.query({ skip: 0, limit: 16, ...info });
+      this.$set(this, `demandlist`, res.data);
+    },
+  },
+  filters: {
+    getDate(meta) {
+      let createdAt = _.get(meta, `createdAt`);
+      let date = new Date(createdAt)
+        .toLocaleDateString()
+        .replace('/', '-')
+        .replace('/', '-');
+      return date;
+    },
+  },
 };
 </script>
 

+ 5 - 4
src/views/communication/parts/industryList.vue

@@ -2,13 +2,13 @@
   <div id="newsList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="24" class="list" @click.native="detailBtn(item.id)" v-for="(item, index) in list" :key="index">
+        <el-col :span="24" class="list" @click.native="detailBtn(item)" v-for="(item, index) in list" :key="index">
           <span></span>
           <span class="textOver">{{ item.title }}</span>
           <span>{{ item.date }}</span>
         </el-col>
         <el-col :span="24" class="page">
-          <pagination :total="total"></pagination>
+          <pagination :total="total" :limit="limit" v-on="$listeners"> </pagination>
         </el-col>
       </el-col>
     </el-row>
@@ -23,6 +23,7 @@ export default {
   props: {
     list: null,
     total: null,
+    limit: null,
   },
   components: {
     pagination,
@@ -32,8 +33,8 @@ export default {
   },
   created() {},
   methods: {
-    detailBtn(id) {
-      this.$emit('detailBtn', id);
+    detailBtn(item) {
+      this.$emit('detailBtn', item);
     },
   },
   computed: {

+ 5 - 4
src/views/communication/parts/scienceList.vue

@@ -2,13 +2,13 @@
   <div id="newsList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="24" class="list" @click.native="detailBtn(item.id)" v-for="(item, index) in list" :key="index">
+        <el-col :span="24" class="list" @click.native="detailBtn(item)" v-for="(item, index) in list" :key="index">
           <span></span>
           <span class="textOver">{{ item.title }}</span>
           <span>{{ item.date }}</span>
         </el-col>
         <el-col :span="24" class="page">
-          <pagination :total="total"></pagination>
+          <pagination :total="total" :limit="limit" v-on="$listeners"></pagination>
         </el-col>
       </el-col>
     </el-row>
@@ -23,6 +23,7 @@ export default {
   props: {
     list: null,
     total: null,
+    limit: null,
   },
   components: {
     pagination,
@@ -32,8 +33,8 @@ export default {
   },
   created() {},
   methods: {
-    detailBtn(id) {
-      this.$emit('detailBtn', id);
+    detailBtn(item) {
+      this.$emit('detailBtn', item);
     },
   },
   computed: {

+ 5 - 4
src/views/communication/parts/technologyList.vue

@@ -2,13 +2,13 @@
   <div id="newsList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="24" class="list" @click.native="detailBtn(item.id)" v-for="(item, index) in list" :key="index">
+        <el-col :span="24" class="list" @click.native="detailBtn(item)" v-for="(item, index) in list" :key="index">
           <span></span>
           <span class="textOver">{{ item.title }}</span>
           <span>{{ item.date }}</span>
         </el-col>
         <el-col :span="24" class="page">
-          <pagination :total="total"></pagination>
+          <pagination :total="total" :limit="limit" v-on="$listeners"></pagination>
         </el-col>
       </el-col>
     </el-row>
@@ -23,6 +23,7 @@ export default {
   props: {
     list: null,
     total: null,
+    limit: null,
   },
   components: {
     pagination,
@@ -32,8 +33,8 @@ export default {
   },
   created() {},
   methods: {
-    detailBtn(id) {
-      this.$emit('detailBtn', id);
+    detailBtn(item) {
+      this.$emit('detailBtn', item);
     },
   },
   computed: {

+ 33 - 31
src/views/communication/parts/topicDetail.vue

@@ -19,14 +19,14 @@
                   <el-col :span="24" class="leftDown">
                     <el-image :src="squareImage"></el-image>
                     <el-col :span="24" class="jobname">
-                      {{ detail.uname }}
+                      {{ detail.publish_unit }}
                     </el-col>
                   </el-col>
                 </el-col>
                 <el-col :span="21" class="right">
                   <el-col :span="24" class="date">
                     <i class="el-icon-user icon"></i>
-                    <span>文章发表于{{ detail.meta | getDate }}</span>
+                    <span>文章发表于{{ detail.publish_time }}</span>
                     <span>1楼</span>
                   </el-col>
                   <el-col :span="24" class="info">
@@ -45,14 +45,14 @@
                   <el-col :span="24" class="leftDown">
                     <el-image :src="squareImage"></el-image>
                     <el-col :span="24" class="jobname">
-                      {{ item.uname }}
+                      {{ item.publish_unit }}
                     </el-col>
                   </el-col>
                 </el-col>
                 <el-col :span="21" class="right">
                   <el-col :span="24" class="date">
                     <i class="el-icon-user icon"></i>
-                    <span>评论发布于{{ item.meta | getDate }}</span>
+                    <span>评论发布于{{ publish_time }}</span>
                     <span>{{ index + 2 }}楼</span>
                   </el-col>
                   <el-col :span="24" class="info">
@@ -91,8 +91,8 @@
 import wangEditor from '@/components/wang-editor.vue';
 import page from '@/components/pagination.vue';
 import { mapState, createNamespacedHelpers } from 'vuex';
-// const { mapActions: comment } = createNamespacedHelpers('comment');
-// const { mapActions: news } = createNamespacedHelpers('news');
+const { mapActions: comment } = createNamespacedHelpers('comment');
+const { mapActions: news } = createNamespacedHelpers('news');
 export default {
   name: 'semDetail',
   props: {
@@ -110,7 +110,7 @@ export default {
   }),
   created() {
     this.search();
-    // this.searchinfo();
+    this.searchinfo();
   },
   computed: {
     id() {
@@ -125,33 +125,35 @@ export default {
     return { title: this.$route.meta.title };
   },
   methods: {
-    // ...news(['fetch']),
-    // ...comment({ commentquery: 'query', commentCreate: 'create', commentUpdate: 'update' }),
-    // async searchinfo() {
-    //   let id = this.newsid;
-    //   console.log(id);
-    //   const res = await this.fetch(id);
-    //   this.$set(this, `detail`, res.data);
-    // },
+    ...news(['fetch']),
+    ...comment({ commentquery: 'query', commentCreate: 'create', commentUpdate: 'update' }),
+    async searchinfo() {
+      if (this.id) {
+      } else {
+        let id = this.newsid;
+        const res = await this.fetch(id);
+        this.$set(this, `detail`, res.data);
+      }
+    },
     async search({ skip = 0, limit = this.limit, newsid = this.newsid } = { skip: 0, limit: this.limit }) {
-      //   let res = await this.commentquery({ skip, limit, newsid });
-      //   console.log(res);
-      //   this.$set(this, `list`, res.data);
-      //   this.$set(this, `total`, res.total);
+      let res = await this.commentquery({ skip, limit, newsid });
+      console.log(res);
+      this.$set(this, `list`, res.data);
+      this.$set(this, `total`, res.total);
     },
     async submit() {
-      //   if (!this.user.uid) {
-      //     this.$message.error('游客身份无法评论,请先登录');
-      //     return;
-      //   } else {
-      //     this.form.newsid = this.newsid;
-      //     this.form.uid = this.user.uid;
-      //     let data = this.form;
-      //     let res = await this.commentCreate(data);
-      //     console.log(res);
-      //     this.$checkRes(res, '评论成功', '评论失败');
-      //     this.search();
-      //   }
+      if (!this.user.uid) {
+        this.$message.error('游客身份无法评论,请先登录');
+        return;
+      } else {
+        this.form.newsid = this.newsid;
+        this.form.uid = this.user.uid;
+        let data = this.form;
+        let res = await this.commentCreate(data);
+        console.log(res);
+        this.$checkRes(res, '评论成功', '评论失败');
+        this.search();
+      }
     },
   },
   filters: {

+ 5 - 4
src/views/communication/parts/topicList.vue

@@ -2,13 +2,13 @@
   <div id="newsList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="24" class="list" @click.native="detailBtn(item.id)" v-for="(item, index) in list" :key="index">
+        <el-col :span="24" class="list" @click.native="detailBtn(item)" v-for="(item, index) in list" :key="index">
           <span></span>
           <span class="textOver">{{ item.title }}</span>
           <span>{{ item.date }}</span>
         </el-col>
         <el-col :span="24" class="page">
-          <pagination :total="total"></pagination>
+          <pagination :total="total" :limit="limit" v-on="$listeners"></pagination>
         </el-col>
       </el-col>
     </el-row>
@@ -23,6 +23,7 @@ export default {
   props: {
     list: null,
     total: null,
+    limit: null,
   },
   components: {
     pagination,
@@ -32,8 +33,8 @@ export default {
   },
   created() {},
   methods: {
-    detailBtn(id) {
-      this.$emit('detailBtn', id);
+    detailBtn(item) {
+      this.$emit('detailBtn', item);
     },
   },
   computed: {

+ 4 - 105
src/views/index.vue

@@ -69,111 +69,10 @@ export default {
   data: () => ({
     week: '',
     date: '',
-    serviceList: [
-      {
-        title: '运行动态',
-        date: '2018-03-04',
-      },
-      {
-        title: '6条数据',
-        date: '2018-03-04',
-      },
-      {
-        title: '运行动态',
-        date: '2018-03-04',
-      },
-      {
-        title: '6条数据',
-        date: '2018-03-04',
-      },
-      {
-        title: '运行动态',
-        date: '2018-03-04',
-      },
-      {
-        title: '6条数据',
-        date: '2018-03-04',
-      },
-    ],
-    jishuList: [
-      {
-        title: '运行动态',
-        date: '2018-03-04',
-      },
-      {
-        title: '6条数据',
-        date: '2018-03-04',
-      },
-      {
-        title: '运行动态',
-        date: '2018-03-04',
-      },
-      {
-        title: '6条数据',
-        date: '2018-03-04',
-      },
-      {
-        title: '运行动态',
-        date: '2018-03-04',
-      },
-      {
-        title: '6条数据',
-        date: '2018-03-04',
-      },
-    ],
-    noticeList: [
-      {
-        title: '运行动态',
-        date: '2018-03-04',
-      },
-      {
-        title: '6条数据',
-        date: '2018-03-04',
-      },
-      {
-        title: '运行动态',
-        date: '2018-03-04',
-      },
-      {
-        title: '6条数据',
-        date: '2018-03-04',
-      },
-      {
-        title: '运行动态',
-        date: '2018-03-04',
-      },
-      {
-        title: '6条数据',
-        date: '2018-03-04',
-      },
-    ],
-    jobsList: [
-      {
-        title: '运行动态',
-        date: '2018-03-04',
-      },
-
-      {
-        title: '6条数据',
-        date: '2018-03-04',
-      },
-      {
-        title: '运行动态',
-        date: '2018-03-04',
-      },
-      {
-        title: '6条数据',
-        date: '2018-03-04',
-      },
-      {
-        title: '运行动态',
-        date: '2018-03-04',
-      },
-      {
-        title: '6条数据',
-        date: '2018-03-04',
-      },
-    ],
+    serviceList: [],
+    jishuList: [],
+    noticeList: [],
+    jobsList: [],
   }),
   created() {
     this.search();

+ 41 - 23
src/views/news/listDetail.vue

@@ -32,7 +32,7 @@
                   <span>{{ columnName }}</span>
                 </el-col>
                 <el-col :span="24" class="list">
-                  <newsList :list="list" :total="total" @detailBtn="detailBtn" :limit="limit" @query="changeMenu"></newsList>
+                  <newsList :list="list" :total="total" @detailBtn="detailBtn" :limit="limit" @query="search"></newsList>
                 </el-col>
               </span>
               <span v-else>
@@ -89,7 +89,7 @@ export default {
       ],
       // 总数
       total: 0,
-      limit: 14,
+      limit: 1,
       // 详情
       details: {
         title: '信息标题',
@@ -101,6 +101,7 @@ export default {
   },
   created() {
     this.changeColumn();
+    this.newsearch();
   },
   methods: {
     ...news({ newsQuery: 'query', newsFetch: 'fetch' }),
@@ -110,54 +111,71 @@ export default {
         this.menuIndex = 0;
         this.columnName = this.col_name;
         this.menuColor = 'rgb(5,73,130)';
-        let name = this.columnName;
-        this.changeMenu(name);
+
         this.$set(this, `displays`, this.display);
       } else if (this.col_name == '技术前沿') {
         this.menuIndex = 1;
         this.columnName = this.col_name;
         this.menuColor = 'rgb(5,73,130)';
-        let name = this.columnName;
-        this.changeMenu(name);
+
         this.$set(this, `displays`, this.display);
       } else if (this.col_name == '工作动态') {
         this.menuIndex = 2;
         this.columnName = this.col_name;
         this.menuColor = 'rgb(5,73,130)';
-        let name = this.columnName;
-        this.changeMenu(name);
+
         this.$set(this, `displays`, this.display);
       } else if (this.col_name == '通知通告') {
         this.menuIndex = 3;
         this.columnName = this.col_name;
         this.menuColor = 'rgb(5,73,130)';
-        let name = this.columnName;
-        this.changeMenu(name);
+
         this.$set(this, `displays`, this.display);
       }
     },
     // 点击选择菜单
     async changeMenu(name, index) {
-      if (this.display == '0') {
-        let res = await this.newsQuery({ skip: 0, limit: 14, col_name: name, status: 2 });
-        if (this.$checkRes(res)) this.$set(this, `list`, res.data);
-      } else {
-        let res = await this.newsFetch(this.id);
-        if (this.$checkRes(res)) this.$set(this, `details`, res.data);
-      }
-
       this.menuIndex = index;
       this.columnName = name;
+      let res = await this.newsQuery({ skip: 0, limit: 14, col_name: name, status: 2 });
+      if (this.$checkRes(res)) this.$set(this, `list`, res.data);
+      this.$set(this, `total`, res.total);
       this.menuColor = 'rgb(5,73,130)';
       this.$set(this, `displays`, 0);
     },
+    async search({ skip, limit }) {
+      console.log(skip);
+      console.log(limit);
+      let res = await this.newsQuery({ skip, limit: 14, col_name: this.columnName, status: 2 });
+      if (this.$checkRes(res)) this.$set(this, `list`, res.data);
+    },
+
     // 点击详情
-    async detailBtn(id) {
-      let res = await this.newsFetch(id);
-      if (this.$checkRes(res)) this.$set(this, `details`, res.data);
+    async detailBtn(item) {
+      console.log(item);
+      if (item.url) {
+        window.open(item.url);
+      } else {
+        let res = await this.newsFetch(item.id);
+        if (this.$checkRes(res)) this.$set(this, `details`, res.data);
+        this.$set(this, `displays`, 1);
+      }
+    },
+
+    async newsearch() {
+      console.log(this.id);
 
-      this.$set(this, `displays`, 1);
-      console.log(id);
+      if (this.id) {
+        let res = await this.newsFetch(this.id);
+        if (this.$checkRes(res)) this.$set(this, `details`, res.data);
+      } else {
+        let res = await this.newsQuery({ skip: 0, limit: 14, col_name: this.columnName, status: 2 });
+        if (this.$checkRes(res)) this.$set(this, `list`, res.data);
+      }
+    },
+    async detail() {
+      let res = await this.newsFetch(this.id);
+      if (this.$checkRes(res)) this.$set(this, `details`, res.data);
     },
   },
   computed: {

+ 4 - 4
src/views/news/parts/newsList.vue

@@ -2,13 +2,13 @@
   <div id="newsList">
     <el-row>
       <el-col :span="24" class="info">
-        <el-col :span="24" class="list" @click.native="detailBtn(item.id)" v-for="(item, index) in list" :key="index">
+        <el-col :span="24" class="list" @click.native="detailBtn(item)" v-for="(item, index) in list" :key="index">
           <span></span>
           <span class="textOver">{{ item.title }}</span>
           <span>{{ item.date }}</span>
         </el-col>
         <el-col :span="24" class="page">
-          <pagination :total="total" :limit="limit" position="right"></pagination>
+          <pagination v-on="$listeners" :total="total" :limit="limit" position="right"></pagination>
         </el-col>
       </el-col>
     </el-row>
@@ -33,8 +33,8 @@ export default {
   },
   created() {},
   methods: {
-    detailBtn(id) {
-      this.$emit('detailBtn', id);
+    detailBtn(item) {
+      this.$emit('detailBtn', item);
     },
   },
   computed: {

+ 1 - 0
src/views/pcenter/demand.vue

@@ -151,6 +151,7 @@ export default {
       let res = {};
       if (this.user.type === '0' || this.user.type === '1') {
         res = await this.query({ skip, limit, ...info });
+        res.data = res.data.filter(item => item.status != '0');
       }
       if (this.user.type === '3') {
         res = await this.query({ skip, limit, uid: this.user.uid });