apeng 4 jaren geleden
bovenliggende
commit
d6a7c0e3b6
4 gewijzigde bestanden met toevoegingen van 110 en 20 verwijderingen
  1. 60 0
      components/company/dealSeoList.js
  2. 5 0
      pages/company/detail/_id.vue
  3. 30 20
      pages/company/list.vue
  4. 15 0
      plugins/seoRouter.js

+ 60 - 0
components/company/dealSeoList.js

@@ -0,0 +1,60 @@
+export default class DealSeoData {
+    constructor({$axios, req, app, redirect, error}) {
+        this.$axios = $axios
+        this.req = req
+        this.app = app
+        this.redirect = redirect
+        this.error = error
+        this.mobile = this.app.$deviceType.isMobile()
+    }
+
+    async dealData() {
+        const self = this
+        let {
+            name,
+            query: { page = 1, root_type = 0 },
+            path,
+            params,
+            fullPath
+        } = this.app.context.route
+        let match = params.pathMatch || ''
+        let matchList = match.split('/')
+        matchList.pop();
+        let lastMatch = matchList.pop() || '';
+
+        // 重定向
+        if (path.indexOf('/company/list') > -1) {
+            this.redirect(301, '/company/' + lastMatch)
+        }
+        return {
+            mobile: this.mobile,
+            head: this.dealThisMeta()
+        }
+    }
+
+    dealThisMeta() {
+        let head = {
+            title: "",
+            keyword: "",
+            description: "",
+            h1: "",
+            canonical: "",
+            metaLocation: ""
+        }
+
+        if (this.req) {
+            const { headers: { host }, url } = this.req
+
+            //拼接canonical
+            if (host.indexOf('local') !== -1) {
+              head.canonical = 'http://' + host + url
+            } else {
+              head.canonical = 'https://' + host + url
+            }
+        }
+        head.title = "服务商列表";
+        head.keyword = "服务商列表 关键词";
+        head.description = "服务商列表描述信息";
+        return head
+    }
+}

+ 5 - 0
pages/company/detail/_id.vue

@@ -0,0 +1,5 @@
+<script>
+export default {
+    
+}
+</script>

+ 30 - 20
pages/company/list.vue

@@ -12,28 +12,12 @@
             </div>
             <div>
               <ul class="company-list" v-if="companyList.length">
-                <!-- <li>
-                  <img class="img" src="" alt="">
-                  <div class="right">
-                    <h3 class="title">互联网CRM+企业管理系统2.0</h3>
-                    <div class="industry">
-                      <span>电子商务</span>
-                      <span>外贸商务</span>
-                    </div>
-                    <div class="intro">
-                      <span>入驻平台: <em>3年</em></span>
-                      <span>企业规模: <em>30-50人</em></span>
-                      <span>办公地址: <em>杭州</em></span>
-                    </div>
-                    <p class="info">融资融券交易(securities margin trading)又称“证券信用交易”或保证金交易,是指投资者向具有融资融券业务资格的证券公司提供担保物融资融券交易(securities margin trading)又称“证券信用</p>
-                  </div>
-                </li> -->
-                <li v-for="item in companyList.slice((page.currentPage-1) * page.pageSize, page.currentPage * page.pageSize)" :key="item.uid">
+                <li v-for="item in companyList" :key="item.uid">
                   <img class="img" :src="item.logo" :alt="item.name">
                   <div class="right">
                     <h3 class="title">{{ item.name }}</h3>
                     <div class="industry">
-                      <span v-for="tag in item.tag" :key="tag">{{ tag.name }}</span>
+                      <span v-for="tag in item.tag" :key="tag.name">{{ tag.name }}</span>
                     </div>
                     <div class="intro">
                       <span>入驻平台: <em>{{ !item.time ? 0 : item.time }}年</em></span>
@@ -63,10 +47,12 @@
 
 <script>
 import {mapState} from "vuex"
+import DealSeoList from "@/components/company/dealSeoList"
 import qs from "qs"
 
 export default {
-    name: 'company',
+    // name: 'SeoServeBusinessList',
+    name: 'SeoCompanyList',
     data () {
         return {
             baseUrl: '',
@@ -77,10 +63,25 @@ export default {
               pageSize: 10
             },
             active: 0, // 0 全部, 19 技术服务商 18 人力外包
-            companyList: []
+            companyList: [],
         }
     },
     head() {
+        // return {
+        //   title: '服务商列表',
+        //   meta: [
+        //     {
+        //         hid: 'keywords',
+        //         name: 'keywords',
+        //         content: '服务商列表 关键词'
+        //     },
+        //     {
+        //         hid: 'description',
+        //         name: 'description',
+        //         content: '服务商列表描述信息'
+        //     }
+        //   ]
+        // }
         const {
             title = "",
             keyword = "",
@@ -124,7 +125,16 @@ export default {
             }
         }
     },
+    async asyncData ({...params}) {
+        let dealDataObj = new DealSeoList(params)
+        let ans = await dealDataObj.dealData()
+        console.log('打印consult数据123',ans)
+        return {
+            ...ans
+        }
+    },
     mounted () {
+      console.log('打印看看是什么5555',this)
       this.baseUrl = this.$store.state.domainConfig.siteUrl
       this.isWeixinApp = navigator.userAgent.indexOf("miniProgram") > -1
       this.getCompanyList(0)

+ 15 - 0
plugins/seoRouter.js

@@ -43,6 +43,21 @@ const extendRoutes = (routes, resolve) => {
       component: resolve(__dirname, '../pages/job/index.vue')
     }],
 
+    // 服务商列表
+    ...[{
+      name: 'SeoCompanyList',
+      path: '/company',
+      component: resolve(__dirname, '../pages/company/list.vue')
+    },{
+      name: 'SeoCompanyList_0',
+      path: '/company/',
+      component: resolve(__dirname, '../pages/company/list.vue')
+    },{
+      name: 'SeoCompanyList_1',
+      path: '/company/*',
+      component: resolve(__dirname, '../pages/company/list.vue')
+    }],
+
     // 资源商城
     ...[{
       name: 'SeoWorkDownList_0',