guhongwei 4 anni fa
parent
commit
8b4ddbcfc5

+ 1 - 1
package.json

@@ -1,5 +1,5 @@
 {
-  "name": "mobile-official",
+  "name": "",
   "version": "0.1.0",
   "private": true,
   "scripts": {

BIN
src/assets/dynamic1.png


BIN
src/assets/dynamic2.png


BIN
src/assets/dynamic3.png


BIN
src/assets/dynamic4.png


+ 7 - 0
src/router/index.js

@@ -64,6 +64,13 @@ const routes = [
     meta: { title: '创新服务', isleftarrow: true },
     component: () => import('../views/service/detail.vue'),
   },
+  {
+    path: '/service/techDetail',
+    name: 'service_techDetail',
+    meta: { title: '技术交流', isleftarrow: true },
+    component: () => import('../views/service/techDetail.vue'),
+  },
+
   // 个人中心
   {
     path: '/user/index',

+ 6 - 0
src/store/index.js

@@ -4,6 +4,9 @@ import Vuex from 'vuex';
 import dock from './live/dock';
 import chat from './live/chat';
 import apply from './live/apply';
+// 技术交流
+import column from './live/column';
+import news from './live/news';
 // 项目路演
 import newsroadshow from './live/newsroadshow';
 import newsguidance from './live/newsguidance';
@@ -41,6 +44,9 @@ export default new Vuex.Store({
     dock,
     place,
     chat,
+    // 技术交流
+    column,
+    news,
     // 项目路演
     newsroadshow,
     // 科技超市

+ 42 - 0
src/store/live/column.js

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

+ 39 - 0
src/store/live/news.js

@@ -0,0 +1,39 @@
+import Vue from 'vue';
+import Vuex from 'vuex';
+import _ from 'lodash';
+Vue.use(Vuex);
+const api = {
+  newsInfo: `/api/live/news`,
+};
+const state = () => ({});
+const mutations = {};
+
+const actions = {
+  async query({ commit }, { skip = 0, limit = undefined, ...info } = {}) {
+    const res = await this.$axios.$get(api.newsInfo, { skip, limit, ...info });
+    return res;
+  },
+  async create({ commit }, payload) {
+    const res = await this.$axios.$post(`${api.newsInfo}`, payload);
+    return res;
+  },
+  async fetch({ commit }, payload) {
+    const res = await this.$axios.$get(`${api.newsInfo}/${payload}`);
+    return res;
+  },
+  async update({ commit }, { id, ...info } = {}) {
+    const res = await this.$axios.$post(`${api.newsInfo}/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,
+};

+ 4 - 3
src/views/service/detail.vue

@@ -8,14 +8,13 @@
         <el-col :span="24" class="main">
           <span v-if="column_name == '智慧推荐'">智慧推荐</span>
           <span v-else-if="column_name == '展会管理'"><twoInfo :column_name="column_name"></twoInfo></span>
+          <span v-else-if="column_name == '动态监测'"><threeInfo :column_name="column_name"></threeInfo></span>
           <span v-else-if="column_name == '科技评估'">科技评估</span>
           <span v-else-if="column_name == '合同在线'">合同在线</span>
           <span v-else-if="column_name == '信用认证'">信用认证</span>
           <span v-else-if="column_name == '绩效评价'">绩效评价</span>
+          <span v-else-if="column_name == '在线咨询'">在线咨询</span>
         </el-col>
-        <!-- <el-col :span="24" class="foot">
-          <footInfo></footInfo>
-        </el-col> -->
       </el-col>
     </el-row>
   </div>
@@ -26,6 +25,7 @@ import { mapState, createNamespacedHelpers } from 'vuex';
 import NavBar from '@/layout/common/topInfo.vue';
 import footInfo from '@/layout/common/footInfo.vue';
 import twoInfo from './parts/twoInfo.vue';
+import threeInfo from './parts/threeInfo.vue';
 
 export default {
   name: 'index',
@@ -34,6 +34,7 @@ export default {
     NavBar,
     // footInfo,
     twoInfo, //展会管理
+    threeInfo, //动态监测
   },
   data: function() {
     return {

+ 108 - 8
src/views/service/index.vue

@@ -46,42 +46,75 @@
             <el-image :src="topImage"></el-image>
           </el-col>
           <el-col :span="24" class="info">
-            <el-col :span="8" class="btn">
+            <el-col :span="6" class="btn">
               <el-link :underline="false" @click="$router.push({ path: '/service/detail', query: { column_name: '智慧推荐' } })" disabled>
                 <el-image :src="onePic"></el-image>
                 <p>智慧推荐</p>
               </el-link>
             </el-col>
-            <el-col :span="8" class="btn">
+            <el-col :span="6" class="btn">
               <el-link :underline="false" @click="$router.push({ path: '/service/detail', query: { column_name: '展会管理' } })">
                 <el-image :src="twoPic"></el-image>
                 <p>展会管理</p>
               </el-link>
             </el-col>
-            <el-col :span="8" class="btn">
+            <el-col :span="6" class="btn">
+              <el-link :underline="false" @click="$router.push({ path: '/service/detail', query: { column_name: '动态监测' } })">
+                <el-image :src="twoPic"></el-image>
+                <p>动态监测</p>
+              </el-link>
+            </el-col>
+            <el-col :span="6" class="btn">
               <el-link :underline="false" @click="$router.push({ path: '/service/detail', query: { column_name: '科技评估' } })" disabled>
                 <el-image :src="threePic"></el-image>
                 <p>科技评估</p>
               </el-link>
             </el-col>
-            <el-col :span="8" class="btn">
+            <el-col :span="6" class="btn">
               <el-link :underline="false" @click="$router.push({ path: '/service/detail', query: { column_name: '合同在线' } })" disabled>
                 <el-image :src="fourPic"></el-image>
                 <p>合同在线</p>
               </el-link>
             </el-col>
-            <el-col :span="8" class="btn">
+            <el-col :span="6" class="btn">
               <el-link :underline="false" @click="$router.push({ path: '/service/detail', query: { column_name: '信用认证' } })" disabled>
                 <el-image :src="fivePic"></el-image>
                 <p>信用认证</p>
               </el-link>
             </el-col>
-            <el-col :span="8" class="btn">
+            <el-col :span="6" class="btn">
               <el-link :underline="false" @click="$router.push({ path: '/service/detail', query: { column_name: '绩效评价' } })" disabled>
                 <el-image :src="sixPic"></el-image>
                 <p>绩效评价</p>
               </el-link>
             </el-col>
+            <el-col :span="6" class="btn">
+              <el-link :underline="false" @click="$router.push({ path: '/service/detail', query: { column_name: '在线咨询' } })" disabled>
+                <el-image :src="sixPic"></el-image>
+                <p>在线咨询</p>
+              </el-link>
+            </el-col>
+          </el-col>
+        </el-col>
+        <el-col :span="24" class="main1">
+          <el-col :span="24" class="main1top">
+            技术交流
+          </el-col>
+          <el-col :span="24" class="main1info">
+            <van-tabs v-model="active">
+              <van-tab title="专家问诊">
+                <technicallist type="1" :list="oneList"></technicallist>
+              </van-tab>
+              <van-tab title="行业研究">
+                <technicallist type="2" :list="twoList"></technicallist>
+              </van-tab>
+              <van-tab title="嘉宾访谈">
+                <technicallist type="3" :list="threeList"></technicallist>
+              </van-tab>
+              <van-tab title="项目路演">
+                <technicallist type="4" :list="fourList"></technicallist>
+              </van-tab>
+            </van-tabs>
           </el-col>
         </el-col>
         <el-col :span="24" class="foot">
@@ -96,12 +129,18 @@
 import { mapState, createNamespacedHelpers } from 'vuex';
 import NavBar from '@/layout/common/topInfo.vue';
 import footInfo from '@/layout/common/footInfo.vue';
+import technicallist from './parts/technicallist.vue';
+const { mapActions: column } = createNamespacedHelpers('column');
+const { mapActions: news } = createNamespacedHelpers('news');
+const { mapActions: newsguidance } = createNamespacedHelpers('newsguidance');
+const { mapActions: newsroadshow } = createNamespacedHelpers('newsroadshow');
 export default {
   name: 'index',
   props: {},
   components: {
     NavBar,
     footInfo,
+    technicallist,
   },
   data: function() {
     return {
@@ -118,10 +157,57 @@ export default {
       fourPic: require('@/assets/bendi4.png'),
       fivePic: require('@/assets/bendi5.png'),
       sixPic: require('@/assets/bendi6.png'),
+      // 技术交流
+      // 栏目列表
+      columnList: [],
+      active: 0,
+      oneList: [],
+      twoList: [],
+      threeList: [],
+      fourList: [],
     };
   },
-  created() {},
+  async created() {
+    await this.searchCloumn();
+    await this.search();
+  },
   methods: {
+    ...column({ columnquery: 'query', columnInfo: 'fetch' }),
+    ...news({ newsList: 'query' }),
+    ...newsguidance({ danceQuery: 'query' }),
+    ...newsroadshow({ adshowQuery: 'query' }),
+    // 技术交流
+    async searchCloumn() {
+      const res = await this.columnquery();
+      if (this.$checkRes(res)) {
+        this.$set(this, `columnList`, res.data);
+      }
+    },
+    // 查询列表
+    async search() {
+      let column = this.columnList;
+      for (const i of column) {
+        if (i.name == '专家问诊') {
+          const res = await this.newsList({ column_id: i._id });
+          if (this.$checkRes(res)) {
+            this.$set(this, `oneList`, res.data);
+          }
+        } else if (i.name == '行业研究') {
+          const res = await this.newsList({ column_id: i._id });
+          if (this.$checkRes(res)) {
+            this.$set(this, `twoList`, res.data);
+          }
+        }
+      }
+      const jiabin = await this.danceQuery();
+      if (this.$checkRes(jiabin)) {
+        this.$set(this, `threeList`, jiabin.data);
+      }
+      const luyan = await this.adshowQuery();
+      if (this.$checkRes(luyan)) {
+        this.$set(this, `fourList`, luyan.data);
+      }
+    },
     // 智慧推荐
     oneBtn() {},
     // 展会管理
@@ -169,7 +255,7 @@ export default {
   z-index: 999;
 }
 .main {
-  min-height: 570px;
+  // min-height: 570px;
   .topImage {
     height: 160px;
     .el-image {
@@ -215,6 +301,20 @@ export default {
   //   }
   // }
 }
+.main1 {
+  margin: 0 0 50px 0;
+  .main1top {
+    height: 46px;
+    line-height: 46px;
+    text-align: center;
+    background: #2c69fe;
+    color: #fff;
+  }
+  .main1info {
+    height: 565px;
+    overflow-y: auto;
+  }
+}
 .foot {
   position: absolute;
   bottom: 0;

+ 87 - 0
src/views/service/parts/technicaldetail.vue

@@ -0,0 +1,87 @@
+<template>
+  <div id="technicaldetail">
+    <el-row>
+      <el-col :span="24" class="info">
+        <el-col :span="24" class="name">
+          {{ info.title }}
+        </el-col>
+        <el-col :span="24" class="date">
+          <span class="textOver">发布时间:{{ info.publish_time }}</span>
+          <span class="textOver"> 信息来源:{{ info.orgin }}</span>
+        </el-col>
+        <el-col :span="24" class="image">
+          <el-image :src="info.picture"></el-image>
+        </el-col>
+        <el-col :span="24" class="video">
+          <video :src="info.filepath" autoplay="" controls="controls">
+            您的浏览器不支持 video 标签。
+          </video>
+        </el-col>
+        <el-col :span="24" class="content">
+          <p v-html="info.content"></p>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'technicaldetail',
+  props: {
+    info: { type: Object },
+  },
+  components: {},
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.info {
+  .name {
+    text-align: center;
+    padding: 15px 10px 0 10px;
+    font-size: 18px;
+    font-weight: bold;
+  }
+  .date {
+    margin: 15px 0;
+    span {
+      display: inline-block;
+      width: 50%;
+      text-align: center;
+      color: #666;
+    }
+  }
+  .image {
+    padding: 10px;
+    .el-image {
+      width: 100%;
+      height: 210px;
+    }
+  }
+  .video {
+    video {
+      width: 100%;
+      height: 215px;
+    }
+  }
+  .content {
+    padding: 10px 5px;
+  }
+}
+</style>

+ 138 - 0
src/views/service/parts/technicallist.vue

@@ -0,0 +1,138 @@
+<template>
+  <div id="technicallist">
+    <el-row>
+      <el-col :span="24" class="list">
+        <span v-if="type == '1'">
+          <el-col
+            :span="24"
+            class="one"
+            v-for="(item, index) in list"
+            :key="index"
+            @click.native="$router.push({ path: '/service/techDetail', query: { id: item.id, type: '1' } })"
+          >
+            <el-col :span="18" class="name textOver">
+              {{ item.title }}
+            </el-col>
+            <el-col :span="6" class="date textOver">
+              {{ item.publish_time }}
+            </el-col>
+            <el-col :span="24" class="jianjie"> 简介:{{ item.titlejj }} </el-col>
+          </el-col>
+        </span>
+        <span v-else-if="type == '2'">
+          <el-col
+            :span="24"
+            class="one"
+            v-for="(item, index) in list"
+            :key="index"
+            @click.native="$router.push({ path: '/service/techDetail', query: { id: item.id, type: '2' } })"
+          >
+            <el-col :span="18" class="name textOver">
+              {{ item.title }}
+            </el-col>
+            <el-col :span="6" class="date textOver">
+              {{ item.publish_time }}
+            </el-col>
+            <el-col :span="24" class="jianjie"> 简介:{{ item.titlejj }} </el-col>
+          </el-col>
+        </span>
+        <span v-else-if="type == '3'">
+          <el-col
+            :span="24"
+            class="two"
+            v-for="(item, index) in list"
+            :key="index"
+            @click.native="$router.push({ path: '/service/techDetail', query: { id: item.id, type: '3' } })"
+          >
+            <el-col :span="24" class="name textOver">
+              {{ item.title }}
+            </el-col>
+            <el-col :span="12" class="date textOver"> 发布时间:{{ item.publish_time }} </el-col>
+            <el-col :span="12" class="date textOver"> 信息来源:{{ item.orgin }} </el-col>
+          </el-col>
+        </span>
+        <span v-else-if="type == '4'">
+          <el-col
+            :span="24"
+            class="two"
+            v-for="(item, index) in list"
+            :key="index"
+            @click.native="$router.push({ path: '/service/techDetail', query: { id: item.id, type: '4' } })"
+          >
+            <el-col :span="24" class="name textOver">
+              {{ item.title }}
+            </el-col>
+            <el-col :span="12" class="date textOver"> 发布时间:{{ item.publish_time }} </el-col>
+            <el-col :span="12" class="date textOver"> 信息来源:{{ item.orgin }} </el-col>
+          </el-col>
+        </span>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'technicallist',
+  props: {
+    list: { type: Array },
+    type: { type: String, default: '1' },
+  },
+  components: {},
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.list {
+  padding: 0 16px;
+  .one {
+    padding: 10px 0;
+    border-bottom: 1px dashed #ccc;
+    .name {
+      font-size: 18px;
+      font-weight: bold;
+    }
+    .date {
+      text-align: right;
+    }
+    .jianjie {
+      overflow: hidden;
+      text-overflow: ellipsis;
+      -webkit-line-clamp: 2;
+      word-break: break-all;
+      display: -webkit-box;
+      -webkit-box-orient: vertical;
+      height: 42px;
+      color: #666;
+    }
+  }
+  .two {
+    padding: 10px 0;
+    border-bottom: 1px dashed #ccc;
+    .name {
+      font-size: 18px;
+      font-weight: bold;
+    }
+    .date {
+      height: 42px;
+      line-height: 42px;
+      color: #666;
+    }
+  }
+}
+</style>

+ 145 - 0
src/views/service/parts/threeInfo.vue

@@ -0,0 +1,145 @@
+<template>
+  <div id="threeInfo">
+    <el-row>
+      <el-col :span="24" class="main">
+        <el-col :span="11" class="num">
+          <p>企业注册数</p>
+          <p>{{ info.num1 || '0' }}</p>
+        </el-col>
+        <el-col :span="11" class="num">
+          <p>个人注册数</p>
+          <p>{{ info.num2 || '0' }}</p>
+        </el-col>
+        <el-col :span="11" class="num">
+          <p>专家注册数</p>
+          <p>{{ info.num3 || '0' }}</p>
+        </el-col>
+        <el-col :span="11" class="num">
+          <p>发布需求数</p>
+          <p>{{ info.num4 || '0' }}</p>
+        </el-col>
+        <el-col :span="11" class="num">
+          <p>正在洽谈</p>
+          <p>{{ info.num5 || '0' }}</p>
+        </el-col>
+        <el-col :span="11" class="num">
+          <p>达成意向</p>
+          <p>{{ info.num6 || '0' }}</p>
+        </el-col>
+        <el-col :span="11" class="num">
+          <p>对接成功</p>
+          <p>{{ info.num7 || '0' }}</p>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: marketuser } = createNamespacedHelpers('marketuser');
+const { mapActions: exportuser } = createNamespacedHelpers('exportuser');
+const { mapActions: product } = createNamespacedHelpers('product');
+const { mapActions: transaction } = createNamespacedHelpers('transaction');
+export default {
+  name: 'threeInfo',
+  props: {},
+  components: {},
+  data: function() {
+    return {
+      info: {},
+    };
+  },
+  created() {
+    this.searchInfo();
+  },
+  methods: {
+    ...marketuser({ userQuery: 'query' }),
+    ...exportuser({ expertsuserQurty: 'query' }),
+    ...product({ marketproductQuery: 'query' }),
+    ...transaction({ transactionQuery: 'query' }),
+    async searchInfo({} = {}) {
+      // 个人,企业
+      let res = await this.userQuery();
+      let s1 = res.data.filter(f => f.role == '4');
+      let s2 = res.data.filter(f => f.role == '5');
+      // 专家
+      let exportNum = await this.expertsuserQurty();
+      // 发布需求
+      let productNum = await this.marketproductQuery({ status: 1 });
+      //交易
+      let transaction1 = await this.transactionQuery({ status: 0 });
+      let transaction2 = await this.transactionQuery({ status: 1 });
+      let transaction3 = await this.transactionQuery({ status: 2 });
+      let data = {
+        num1: s2.length,
+        num2: s1.length,
+        num3: exportNum.data.length,
+        num4: productNum.data.length,
+        num5: transaction1.total,
+        num6: transaction2.total,
+        num7: transaction3.total,
+      };
+      this.$set(this, `info`, data);
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.main {
+  width: 95%;
+  margin: 10px 10px;
+  .num {
+    height: 130px;
+    text-align: center;
+    padding: 35px 0px;
+    margin: 10px 7px;
+    color: #346da4;
+    font-weight: bold;
+    p {
+      padding: 10px 0 0 0;
+    }
+    p:nth-child(2) {
+      font-size: 20px;
+    }
+  }
+  .num:nth-child(1) {
+    background: url('~@/assets/dynamic1.png') no-repeat;
+    background-size: 100% 100%;
+  }
+  .num:nth-child(2) {
+    background: url('~@/assets/dynamic2.png') no-repeat;
+    background-size: 100% 100%;
+  }
+  .num:nth-child(3) {
+    background: url('~@/assets/dynamic3.png') no-repeat;
+    background-size: 100% 100%;
+  }
+  .num:nth-child(4) {
+    background: url('~@/assets/dynamic4.png') no-repeat;
+    background-size: 100% 100%;
+  }
+  .num:nth-child(5) {
+    background: url('~@/assets/dynamic1.png') no-repeat;
+    background-size: 100% 100%;
+  }
+  .num:nth-child(6) {
+    background: url('~@/assets/dynamic2.png') no-repeat;
+    background-size: 100% 100%;
+  }
+  .num:nth-child(7) {
+    background: url('~@/assets/dynamic3.png') no-repeat;
+    background-size: 100% 100%;
+  }
+}
+</style>

+ 110 - 0
src/views/service/techDetail.vue

@@ -0,0 +1,110 @@
+<template>
+  <div id="techDetail">
+    <el-row>
+      <el-col :span="24" class="style">
+        <el-col :span="24" class="top">
+          <NavBar v-show="navShow" :title="title" :isleftarrow="isleftarrow"> </NavBar>
+        </el-col>
+        <el-col :span="24" class="main">
+          <technicaldetail :info="info"></technicaldetail>
+        </el-col>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import technicaldetail from './parts/technicaldetail.vue';
+import NavBar from '@/layout/common/topInfo.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+const { mapActions: column } = createNamespacedHelpers('column');
+const { mapActions: news } = createNamespacedHelpers('news');
+const { mapActions: newsguidance } = createNamespacedHelpers('newsguidance');
+const { mapActions: newsroadshow } = createNamespacedHelpers('newsroadshow');
+export default {
+  name: 'techDetail',
+  props: {},
+  components: {
+    NavBar,
+    technicaldetail,
+  },
+  data: function() {
+    return {
+      // 头部标题
+      title: '',
+      // meta为true
+      isleftarrow: '',
+      // 返回
+      navShow: true,
+      // 详情
+      info: {},
+    };
+  },
+  async created() {
+    if (this.id) {
+      await this.search();
+    }
+  },
+  methods: {
+    ...column({ columnList: 'query', columnInfo: 'fetch' }),
+    ...news({ newsList: 'query', newsFetch: 'fetch' }),
+    ...newsguidance({ danceQuery: 'query', danceFetch: 'fetch' }),
+    ...newsroadshow({ adshowQuery: 'query', adshowFetch: 'fetch' }),
+    async search() {
+      if (this.type == '1') {
+        let res = await this.newsFetch(this.id);
+        if (this.$checkRes(res)) {
+          this.$set(this, `info`, res.data);
+        }
+      } else if (this.type == '2') {
+        let res = await this.newsFetch(this.id);
+        if (this.$checkRes(res)) {
+          this.$set(this, `info`, res.data);
+        }
+      } else if (this.type == '3') {
+        let res = await this.danceFetch(this.id);
+        if (this.$checkRes(res)) {
+          this.$set(this, `info`, res.data);
+        }
+      } else if (this.type == '4') {
+        let res = await this.adshowFetch(this.id);
+        if (this.$checkRes(res)) {
+          this.$set(this, `info`, res.data);
+        }
+      }
+    },
+  },
+  computed: {
+    ...mapState(['user']),
+    type() {
+      return this.$route.query.type;
+    },
+    id() {
+      return this.$route.query.id;
+    },
+  },
+  mounted() {
+    this.title = this.$route.meta.title;
+    this.isleftarrow = this.$route.meta.isleftarrow;
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.style {
+  width: 100%;
+  min-height: 667px;
+  position: relative;
+  background-color: #f9fafc;
+}
+.top {
+  height: 46px;
+  overflow: hidden;
+}
+.main {
+  min-height: 570px;
+}
+</style>