wuhongyu vor 5 Jahren
Ursprung
Commit
dacaa8c78f
29 geänderte Dateien mit 298 neuen und 261 gelöschten Zeilen
  1. 8 7
      src/layout/index/jobs.vue
  2. 9 7
      src/layout/index/notice.vue
  3. 9 7
      src/layout/index/service.vue
  4. 9 7
      src/layout/index/technology.vue
  5. 28 22
      src/layout/news/infoList.vue
  6. 51 15
      src/views/achievement/index.vue
  7. 3 3
      src/views/achievement/parts/achievementsDetail.vue
  8. 5 4
      src/views/achievement/parts/achievementsList.vue
  9. 3 3
      src/views/achievement/parts/countryDetail.vue
  10. 5 4
      src/views/achievement/parts/countryList.vue
  11. 3 3
      src/views/achievement/parts/entrepreneurshipDetail.vue
  12. 5 4
      src/views/achievement/parts/entrepreneurshipList.vue
  13. 3 3
      src/views/achievement/parts/knowledgeDetail.vue
  14. 5 4
      src/views/achievement/parts/knowledgeList.vue
  15. 3 3
      src/views/achievement/parts/projectDetail.vue
  16. 5 4
      src/views/achievement/parts/projectList.vue
  17. 3 3
      src/views/achievement/parts/softwareDetail.vue
  18. 5 4
      src/views/achievement/parts/softwareList.vue
  19. 3 3
      src/views/achievement/parts/supercomputingDetail.vue
  20. 5 4
      src/views/achievement/parts/supercomputingList.vue
  21. 3 3
      src/views/achievement/parts/teachingDetail.vue
  22. 5 4
      src/views/achievement/parts/teachingList.vue
  23. 3 3
      src/views/achievement/parts/technologyDetail.vue
  24. 5 4
      src/views/achievement/parts/technologyList.vue
  25. 17 3
      src/views/communication/index.vue
  26. 32 2
      src/views/communication/list.vue
  27. 4 105
      src/views/index.vue
  28. 55 19
      src/views/news/listDetail.vue
  29. 4 4
      src/views/news/parts/newsList.vue

+ 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>

+ 28 - 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.id)" 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,31 @@ export default {
     return {};
   },
   created() {},
-  methods: {},
+  methods: {
+    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' } });
+      }
+    },
+
+    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() {

+ 51 - 15
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>
+                    <span v-else-if="columnName == '科技合作'">
+                      <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: {

+ 17 - 3
src/views/communication/index.vue

@@ -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',
@@ -97,8 +97,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() {

+ 32 - 2
src/views/communication/list.vue

@@ -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: {},
@@ -137,34 +137,64 @@ export default {
     this.changeColumn();
   },
   methods: {
+    ...news({ newsQuery: 'query', newsFetch: 'fetch' }),
     // 选择栏目
     changeColumn() {
       if (this.col_name == '专题研讨') {
         this.menuIndex = 0;
         this.columnName = this.col_name;
         this.menuColor = 'rgb(5,73,130)';
+        if (this.display == '0') {
+          let name = this.columnName;
+          this.changeMenu(name);
+        } else {
+          this.detailBtn();
+        }
+
         this.$set(this, `displays`, this.display);
       } else if (this.col_name == '技术问答') {
         this.menuIndex = 1;
         this.columnName = this.col_name;
+        console.log('cc');
+
         this.menuColor = 'rgb(5,73,130)';
+        if (this.display == '0') {
+          let name = this.columnName;
+          this.changeMenu(name);
+        } else {
+          this.detailBtn();
+        }
         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)';
+        if (this.display == '0') {
+          let name = this.columnName;
+          this.changeMenu(name);
+        } else {
+          this.detailBtn();
+        }
         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)';
+        if (this.display == '0') {
+          let name = this.columnName;
+          this.changeMenu(name);
+        } else {
+          this.detailBtn();
+        }
         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);
     },

+ 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();

+ 55 - 19
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: '信息标题',
@@ -111,53 +111,89 @@ export default {
         this.columnName = this.col_name;
         this.menuColor = 'rgb(5,73,130)';
         let name = this.columnName;
-        this.changeMenu(name);
+        if (this.display == '0') {
+          this.changeMenu(name);
+        } else {
+          console.log('sda');
+
+          this.detail();
+        }
         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);
+
+        if (this.display == '0') {
+          this.changeMenu(name);
+        } else {
+          console.log('sda');
+
+          this.detail();
+        }
+
         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);
+
+        if (this.display == '0') {
+          this.changeMenu(name);
+        } else {
+          console.log('1111');
+          this.detail();
+        }
+
         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);
+        if (this.display == '0') {
+          this.changeMenu(name);
+        } else {
+          console.log('sda');
+          this.detail();
+        }
+
         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);
+    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 detail() {
+      let res = await this.newsFetch(this.id);
       if (this.$checkRes(res)) this.$set(this, `details`, res.data);
-
-      this.$set(this, `displays`, 1);
-      console.log(id);
     },
   },
   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: {