浏览代码

修改公司名称

wangcz 7 年之前
父节点
当前提交
e5f11e2edb

+ 1 - 1
components/main/Nav.vue

@@ -39,7 +39,7 @@
       <nuxt-link to="/product/brand/brandList/A" class="item">
         <span>品牌墙</span>
       </nuxt-link>
-      <nuxt-link to="/pcb" class="item">
+      <nuxt-link :to="'/store/' + $store.state.option.pcbUuid" class="item">
         <span>PCB专区</span>
       </nuxt-link>
       <nuxt-link to="/news" class="item">

+ 6 - 3
components/store/home/EnterpriseInfo.vue

@@ -4,7 +4,7 @@
       <ul class="main-list clearfix">
         <li>
           <div>
-            <div class="list">
+            <div class="list" v-if="$route.params.uuid !== $store.state.option.pcbUuid">
               <div class="information-list">
                 <div>主营产品&nbsp;:</div>
                 <div v-if="storeInfo.description" :title="storeInfo.description">{{storeInfo.description | introduceFilter}}</div>
@@ -47,7 +47,8 @@
               <!--<qualification-certificate></qualification-certificate>-->
             </div>
             <div class="product-show">
-              <recommend-list></recommend-list>
+              <recommend-list v-if="$route.params.uuid !== $store.state.option.pcbUuid"></recommend-list>
+              <recommend-pcb v-if="$route.params.uuid === $store.state.option.pcbUuid"></recommend-pcb>
             </div>
           </div>
         </li>
@@ -101,6 +102,7 @@
 <script>
   import Buy from '~components/common/buyOrCar/buyComponent.vue'
   import RecommendList from './RecommendList.vue'
+  import RecommendPcb from './RecommendPcb.vue'
   import CommodityList from './CommodityList.vue'
   import QualificationCertificate from './QualificationCertificate.vue'
   import LinkSalerBox from '~components/common/LinkSalerBox.vue'
@@ -119,7 +121,8 @@
       Buy,
       CommodityList,
       QualificationCertificate,
-      LinkSalerBox
+      LinkSalerBox,
+      RecommendPcb
     },
     computed: {
       commodities () {

+ 520 - 0
components/store/home/RecommendPcb.vue

@@ -0,0 +1,520 @@
+<template>
+  <div class="wrap">
+    <div class="reco-title">产品展示</div>
+    <div class="recommend-fragment clearfix">
+      <div v-if="!commodities || commodities.length === 0" class="empty-show">
+        <div class="empty">
+          <div class="empty-img">
+            <img src="/images/brandList/empty-cart.jpg">
+          </div>
+          <div class="empty-info">
+            <p class="grey f16"> 暂无展示产品</p>
+            <i class="iconfont" v-if="emptyShow === false">&#xe610;</i>&nbsp;<a v-if="emptyShow === false" href="/">返回首页</a>
+            <img v-if="emptyShow === true" src="/images/brandList/upload.png">&nbsp;<a v-if="emptyShow === true" href="/vendor#/store/maintain" target="_blank">马上去上传</a>
+          </div>
+        </div>
+      </div>
+      <div  v-if="commodities.length>0">
+        <div  v-if="commodities.length<=4">
+          <ul class="recommend-list clearfix">
+            <li v-for="commodity in commodities.slice(0,4)" class="big">
+              <a :href="commodity.batchCode ? '/store/productDetail/'+ commodity.batchCode : '#'" class="href">
+                <div class="img">
+                  <img :src="commodity.comImg.startsWith('static')?'/'+commodity.comImg:commodity.comImg"/>
+                </div>
+                <div class="content">
+                  <p>{{commodity.comCode | comCodeFilter}}</p>
+                  <!-- <p class="color666" v-text="commodity.brandNameCn">PANFAEFQ</p>-->
+                  <p class="price" v-if="commodity.minPriceRMB">¥ {{commodity.minPriceRMB | currency}}</p>
+                  <!-- <p class="price" v-if="!commodity.minPriceRMB">$ {{commodity.minPriceUSD || 0}}</p>-->
+                </div>
+              </a>
+            </li>
+          </ul>
+        </div>
+      </div>
+      <div v-swiper:mySwiper="swiperOption" v-if="commodities && commodities.length>3">
+        <div class="swiper-wrapper">
+          <div class="swiper-slide" v-if="commodities.length>0">
+            <ul class="recommend-list clearfix">
+              <li v-for="commodity in commodities.slice(0,4)" class="big">
+                <a :href="commodity.batchCode ? '/store/productDetail/'+ commodity.batchCode : '#'" class="href">
+                  <div class="img">
+                    <img :src="commodity.comImg.startsWith('static')?'/'+commodity.comImg:commodity.comImg"/>
+                  </div>
+                  <div class="content">
+                    <p>{{commodity.comCode | comCodeFilter}}</p>
+                    <!-- <p class="color666" v-text="commodity.brandNameCn">PANFAEFQ</p>-->
+                    <p class="price" v-if="commodity.minPriceRMB">¥ {{commodity.minPriceRMB | currency}}</p>
+                    <!-- <p class="price" v-if="!commodity.minPriceRMB">$ {{commodity.minPriceUSD || 0}}</p>-->
+                  </div>
+                </a>
+              </li>
+            </ul>
+          </div>
+          <div class="swiper-slide" v-if="commodities.length>4">
+            <ul class="recommend-list clearfix">
+              <li v-for="commodity in commodities.slice(4,7)" class="big">
+                <a :href="commodity.batchCode ? '/store/productDetail/'+ commodity.batchCode : '#'" class="href">
+                  <div class="img">
+                    <img :src="commodity.comImg.startsWith('static')?'/'+commodity.comImg:commodity.comImg"/>
+                  </div>
+                  <div class="content">
+                    <p>{{commodity.comCode | comCodeFilter}}</p>
+                    <!-- <p class="color666" v-text="commodity.brandNameCn">PANFAEFQ</p>-->
+                    <p class="price" v-if="commodity.minPriceRMB">¥ {{commodity.minPriceRMB | currency}}</p>
+                    <!-- <p class="price" v-if="!commodity.minPriceRMB">$ {{commodity.minPriceUSD || 0}}</p>-->
+                  </div>
+                </a>
+              </li>
+            </ul>
+          </div>
+          <div class="swiper-slide" v-if="commodities.length>8">
+            <ul class="recommend-list clearfix">
+              <li v-for="commodity in commodities.slice(8,11)" class="big">
+                <a :href="commodity.batchCode ? '/store/productDetail/'+ commodity.batchCode : '#'" class="href">
+                  <div class="img">
+                    <img :src="commodity.comImg.startsWith('static')?'/'+commodity.comImg:commodity.comImg"/>
+                  </div>
+                  <div class="content">
+                    <p>{{commodity.comCode | comCodeFilter}}</p>
+                    <!-- <p class="color666" v-text="commodity.brandNameCn">PANFAEFQ</p>-->
+                    <p class="price" v-if="commodity.minPriceRMB">¥ {{commodity.minPriceRMB | currency}}</p>
+                    <!-- <p class="price" v-if="!commodity.minPriceRMB">$ {{commodity.minPriceUSD || 0}}</p>-->
+                  </div>
+                </a>
+              </li>
+            </ul>
+          </div>
+          <div class="swiper-slide" v-if="commodities.length>12">
+            <ul class="recommend-list clearfix">
+              <li v-for="commodity in commodities.slice(12,15)" class="big">
+                <a :href="commodity.batchCode ? '/store/productDetail/'+ commodity.batchCode : '#'" class="href">
+                  <div class="img">
+                    <img :src="commodity.comImg.startsWith('static')?'/'+commodity.comImg:commodity.comImg"/>
+                  </div>
+                  <div class="content">
+                    <p>{{commodity.comCode | comCodeFilter}}</p>
+                    <!-- <p class="color666" v-text="commodity.brandNameCn">PANFAEFQ</p>-->
+                    <p class="price" v-if="commodity.minPriceRMB">¥ {{commodity.minPriceRMB | currency}}</p>
+                    <!-- <p class="price" v-if="!commodity.minPriceRMB">$ {{commodity.minPriceUSD || 0}}</p>-->
+                  </div>
+                </a>
+              </li>
+            </ul>
+          </div>
+        </div>
+        <div class="swiper-pagination swiper-pagination-bullets"></div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+  import Buy from '~components/common/buyOrCar/buyComponent.vue'
+  import NuxtLink from '../../../.nuxt/components/nuxt-link'
+  export default {
+    name: 'recommend-product',
+    components: {
+      NuxtLink,
+      Buy
+    },
+    computed: {
+      commodities () {
+        return this.$store.state.shop.recommend.products.data
+      },
+      storeInfo () {
+        return this.$store.state.shop.storeInfo.store.data
+      },
+      isConsignment () {
+        return this.storeInfo.type === 'CONSIGNMENT'
+      },
+      user() {
+        return this.$store.state.option.user
+      },
+      storeStatus () {
+        return this.$store.state.option.storeStatus.data
+      },
+      emptyShow () {
+        let loggedStatus = false
+        if (this.user.logged && this.user.data.enterprise.uu) {
+          if (this.storeStatus.uuid === this.storeInfo.uuid) {
+            loggedStatus = true
+          } else {
+            loggedStatus = false
+          }
+        } else {
+          loggedStatus = false
+        }
+        return loggedStatus
+      },
+      // 产品推荐轮播
+      swiperOption () {
+        return {
+          autoplay: 5000,
+          initialSlide: 0,
+          loop: true,
+          effect: this.effect,
+          lazyLoading: true,
+          // 解决点击分页器后图片就不能轮播的问题
+          autoplayDisableOnInteraction: false,
+          pagination: '.swiper-pagination',
+          paginationClickable: true,
+          paginationElement: 'li'
+        }
+      }
+    },
+    filters: {
+      comCodeFilter: function (title) {
+        if (title === '') {
+          return title
+        }
+        let len = 0
+        let index = 0
+        for (let i = 0; i < title.length; i++) {
+          if (index === 0 && title.charAt(i).charCodeAt(0) > 255) {
+            len = len + 2
+          } else {
+            len++
+          }
+          if (len > 18) {
+            index = i
+            break
+          }
+        }
+        if (index > 0) {
+          return title.substring(0, index) + '...'
+        } else {
+          return title
+        }
+      },
+      currency: function (num) {
+        if (typeof num === 'number') {
+          if (num <= 0.000001) {
+            num = 0.000001
+          } else {
+            if (num.toString().indexOf('.') === -1) {
+              num += '.00'
+            } else {
+              let inputStr = num.toString()
+              let arr = inputStr.split('.')
+              let floatNum = arr[1]
+              if (floatNum.length > 6) {
+                num = inputStr.substring(0, arr[0].length + 7)
+                if (Number(floatNum.charAt(6)) > 4) {
+                  num = (Number(num) * 1000000 + 1) / 1000000
+                }
+              } else if (floatNum.length === 1) {
+                num = num + '0'
+              }
+            }
+          }
+        }
+        return num
+      }
+    },
+    methods: {
+      enidfilter: function (str) {
+        if (str) {
+          let encryptStr = '' // 最终返回的加密后的字符串
+          // 产生三位随机数
+          let num = ''
+          for (let i = 0; i < 3; i++) {
+            num += Math.floor(Math.random() * 10)
+          }
+          encryptStr += num // 产生3位随机数
+
+          // 16位加密
+          let tempspit = ''
+          let strspit = str.toString().toLowerCase()
+          if (strspit.match(/^[-+]?\d*$/) === null) { // 非整数字符,对每一个字符都转换成16进制,然后拼接
+            /**
+             * Unicode汉字、英文字母、数字的unicode范围
+             *汉字:[0x4e00,0x9fa5](或十进制[19968,40869])
+             *数字:[0x30,0x39](或十进制[48, 57])
+             *小写字母:[0x61,0x7a](或十进制[97, 122])
+             *大写字母:[0x41,0x5a](或十进制[65, 90]
+             * 'a'的Unicode编码:'&#97;',charCodeAt()的值是97
+             * '码'的Unicode编码:'\u7801', new String('码').charCodeAt()的值是30721,30721的16进制表示是7801
+             */
+            let s = strspit.split('')
+            for (let i = 0; i < s.length; i++) {
+              s[i] = s[i].charCodeAt() // 先转换成Unicode编码
+              s[i] = s[i].toString(16)
+              // 因为在服务器是每两位当做一个字符进行解析的,所以这里每个字符的Unicode编码范围必须在0——255之间。数字和大小写满足该要求,特殊字符则不一定,如果后续有特殊字符的要求,需要重写编码器和解码器
+              if (s[i].length === 1) {
+                s[i] = '0' + s[i]
+              }
+              tempspit = tempspit + s[i]
+            }
+            tempspit = tempspit + '{' + 1 // 1代表字符
+          } else { // 数字直接转换成16进制
+            strspit = parseInt(strspit)
+              .toString(16)
+            tempspit = strspit + '{' + 0 // 0代表纯数字
+          }
+
+          let temp = tempspit.split('{') // 对要加密的字符转换成16进制
+          let numLength = temp[0].length // 转换后的字符长度
+          numLength = numLength.toString(16) // 字符长度换算成16进制
+          if (numLength.length === 1) { // 如果是1,补一个0
+            numLength = '0' + numLength
+          } else if (numLength.length > 3) { // 转换后的16进制字符长度如果大于2位数,则返回,不支持
+            return ''
+          }
+          encryptStr += numLength
+          if (temp[1] === '0') {
+            encryptStr += 0
+          } else if (temp[1] === '1') {
+            encryptStr += 1
+          }
+          encryptStr += temp[0]
+          if (encryptStr.length < 20) { // 如果小于20位,补上随机数
+            // 产生三位随机数
+            let numtwo = ''
+            for (let i = 0; i < 20 - encryptStr.length; i++) {
+              numtwo += Math.floor(Math.random() * 10)
+            }
+            let ran = numtwo // 产生3位随机数
+            encryptStr += ran
+          }
+          return encryptStr
+        }
+      }
+    }
+  }
+</script>
+<style lang="scss" scoped>
+  .wrap {
+    background: #ece9ec;
+    padding-top: 7px;
+    width: 100%;
+    .reco-title {
+      border-bottom: 1px solid #2496f1;
+      width: 218px;
+      height: 34px;
+      line-height: 34px;
+      color: #fff;
+      background: #2496f1;
+      font-size: 18px;
+      text-align: center;
+      border-top-left-radius: 3px;
+      border-top-right-radius: 3px;
+      margin: 0;
+    }
+  }
+  .recommend-fragment {
+    background: #fff;
+    .empty-show{
+      height: 381px;
+      padding-top: 140px;
+      &:hover{
+         box-shadow: 0px 0px 0px transparent;
+       }
+        .empty{
+          margin: 0 auto;
+          width: 181px;
+          .empty-img{
+            float: left;
+          }
+          .empty-info{
+            float: left;
+            margin: 5px 0px 0px 20px;
+          .grey{
+            color: #999;
+            font-size: 14px;
+          }
+          i{
+            color: #5078cb;
+          }
+          a{
+            font-size: 14px;
+            color: #5078cb;
+          }
+         }
+        }
+    }
+  }
+  .recommend-fragment ul{
+    width: 100%;
+    background: #fff;
+   /* display: inline-block;*/
+    -webkit-padding-start: 0;
+    border-radius: 5px;
+    /*padding-left: 2px;*/
+    margin: 10px 0;
+    padding: 0 15px;
+  }
+  .recommend-fragment ul li
+    .img{
+      height: 42px;
+      text-align: center;
+      line-height: 42px;
+      img{
+        max-width: 63px;
+        max-height: 42px;
+      }
+  }
+  .recommend-fragment ul li .content{
+    width: 100%;
+    margin: 0 auto;
+    font-size: 12px;
+    p{
+      width: 100%;
+      text-align: center;
+      display: inline-block;
+      line-height: 22px;
+      overflow: hidden;
+      text-overflow: ellipsis;
+      white-space: nowrap;
+      margin: 5px 0;
+      padding-left: 10px;
+      color: #666;
+      &.price{
+        color: #ff002e;
+        margin-top: -3px;
+      }
+    }
+  }
+ .recommend-fragment ul li .enter-store {
+    position: absolute;
+    top: 178px;
+    width: 100%;
+    height: 30px;
+    line-height: 30px;
+    text-align: left;
+  }
+  .recommend-fragment ul li.big .enter-store a {
+    width: 74px;
+    height: 24px;
+    display: inline-block;
+    line-height: 24px;
+    text-align: center;
+    font-size: 13px;
+    margin-left: 14px;
+    border-radius: 3px;
+    &:first-child {
+      background-color: #fff;
+      border: 1px solid #3b7cf4;
+      color: #3b7cf4;
+    }
+    &:last-child {
+      background-color: #ffa422;
+      border: 1px solid #ffa422;
+      color: #fff;
+    }
+    /*&:visited{
+      .enter-store {
+        top: 140px;
+        left: 0px;
+      }
+    }*/
+  }
+  .recommend-fragment ul li.big {
+    float: left;
+    width: 190px;
+    height: 125px;
+    position: relative;
+    overflow: hidden;
+    margin: 2px 3px 0px 0px;
+    &:nth-child(5n){
+      margin: 2px 0px 0px 0px;
+    }
+    &:hover{
+      /*box-shadow: 2px 0px 1px #d9d9d9, -2px 0px 1px #d9d9d9, 0px 2px 1px #d9d9d9, 0px -2px 1px #d9d9d9;*/
+      .enter-store {
+        top: 132px;
+        left: 0px;
+        transition: all .3s linear;
+      }
+      .img, .content{
+        transform:translate(0px,-10px);
+        -ms-transform:translate(0px,-10px); /* IE 9 */
+        -webkit-transform:translate(0px,-10px); /* Safari and Chrome */
+      }
+    }
+  }
+  /*.recommend-fragment ul li.small .enter-store a {
+    width: 74px;
+    height: 24px;
+    display: inline-block;
+    line-height: 22px;
+    text-align: center;
+    font-size: 12px;
+    margin-left: 11px;
+    border-radius: 3px;
+    &:first-child {
+      background-color: #fff;
+      border: solid 1px #3b7cf4;
+      color: #3c7df5;
+    }
+    &:last-child {
+      background-color: #ffa422;
+      border: 1px solid #ffa422;
+      color: #fff;
+    }
+  }
+  .recommend-fragment ul li.small {
+    float: left;
+    width: 180px;
+    height: 174px;
+    position: relative;
+    overflow: hidden;
+    margin: 2px 8px 0px 0px;
+    &:nth-child(5n){
+      margin: 2px 0px 0px 0px;
+    }
+    &:hover, &:focus, &:active &:visited{
+      box-shadow: 2px 0px 1px #d9d9d9, -2px 0px 1px #d9d9d9, 0px 2px 1px #d9d9d9, 0px -2px 1px #d9d9d9;
+      .enter-store {
+        top: 140px;
+        left: 0px;
+        transition: all .5s;
+      }
+      .img, .content{
+        transform:translate(0px,-10px);
+        -ms-transform:translate(0px,-10px); !* IE 9 *!
+        -webkit-transform:translate(0px,-10px); !* Safari and Chrome *!
+      }
+    }
+  }*/
+  .recommend-fragment ul li.empty-show {
+    width: 100%;
+    height: 356px;
+    padding-top: 150px;
+    &:hover{
+      box-shadow: 0px 0px 0px transparent;
+    }
+    .empty{
+      margin: 0 auto;
+      width: 181px;
+      .empty-img{
+        float: left;
+      }
+      .empty-info{
+        float: left;
+        margin: 5px 0px 0px 20px;
+        .grey{
+          color: #999;
+          font-size: 14px;
+        }
+        i{
+          color: #5078cb;
+        }
+        a{
+          font-size: 14px;
+          color: #5078cb;
+        }
+
+      }
+    }
+  }
+  .shadow {
+    width: 1190px;
+    margin: 0 auto;
+    position: relative;
+    img {
+      position: absolute;
+      top: -12px;
+    }
+  }
+</style>

+ 87 - 20
components/store/home/StoreBanner.vue

@@ -1,6 +1,19 @@
 <template>
   <div class="container" id="title-fragment">
-    <div class="container">
+    <div class="container" v-if="$route.params.uuid === $store.state.option.pcbUuid">
+      <div class="shop-pcb">
+        <ul class="pk-list">
+          <li class="pk-item" v-for="kind in kinds">
+            <nuxt-link :to="`/pcb/search/?w=${encodeURIComponent(kind.nameCn)}`">{{kind.nameCn}}<i class="icon-arrow-right iconfont"></i></nuxt-link>
+          </li>
+        </ul>
+      </div>
+      <div class="pcb-banner">
+        <img :src="storeInfo.bannerUrl || '/images/store/default/shop_banner.png'">
+         <div id="shop-title" v-if="storeInfo.storeShortName" v-text="storeInfo.storeShortName">店铺名称</div>
+      </div>
+    </div>
+    <div class="container" v-else>
       <div class="row" style="margin-bottom: 20px;">
         <!-- 商标展示 -->
         <div class="logo two-word" v-if="storeInfo.type == 'ORIGINAL_FACTORY'">原厂</div>
@@ -254,6 +267,9 @@ export default {
     }
   },
   computed: {
+    kinds () {
+      return this.$store.state.pcb.kindsData.kinds.data
+    },
     storeInfo () {
       return this.$store.state.shop.storeInfo.store.data
     },
@@ -335,15 +351,46 @@ export default {
   }
   .two-word{
     padding-top: 10px;
+  }
+  #title-fragment .shop-pcb{
+    margin-right: 10px;
+    width: 220px;
+    border: 1px solid #e8e8e8;
+    float: left;
+    text-align: center;
+    line-height: 210px;
+    position: relative;
+    background: #fff;
+    .pk-list {
+      height:300px;
+      .pk-item{
+        height:50px;
+        line-height: 50px;
+        border-bottom:1px solid #e7e7e7;
+        cursor:pointer;
+        text-align: left;
+        &:last-child{
+          border:none;
+        }
+        a {
+          color: #666;
+          margin-left:20px;
+        }
+        .iconfont {
+          float: right;
+          margin-right: 18px;
+        }
+      }
+    }
   }
 	#title-fragment .shop-logo {
     margin-right: 10px;
-		width: 220px;
-		height: 260px;
-		border: 1px solid #e8e8e8;
-		float: left;
-		text-align: center;
-		line-height: 210px;
+    width: 220px;
+    height: 260px;
+    border: 1px solid #e8e8e8;
+    float: left;
+    text-align: center;
+    line-height: 210px;
     position: relative;
     background: #fff;
     .shop-name{
@@ -459,6 +506,28 @@ export default {
     margin-top: -102px;
 	}
 
+  #title-fragment .pcb-banner {
+    float: left;
+    position: relative;
+    width: 955px;
+    height: 320px;
+    border: 1px solid #e8e8e8;
+    border-left: none;
+    overflow: hidden;
+    border-radius: 5px;
+    img{
+      width: 955px;
+      height: 300px;
+    }
+    #shop-title{
+      position: absolute;
+      top: 50px;
+      left: 60px;
+      font-size: 30px;
+      color: rgb(255,255,255);
+    }
+  }
+
 	#title-fragment .shop-banner {
 		float: left;
 		position: relative;
@@ -468,19 +537,17 @@ export default {
 		border-left: none;
 		overflow: hidden;
     border-radius: 5px;
-	}
-
-	#title-fragment .shop-banner img {
-		width: 955px;
-		height: 280px;
-	}
-
-	#title-fragment .shop-banner #shop-title {
-		position: absolute;
-		top: 50px;
-		left: 60px;
-		font-size: 30px;
-		color: rgb(255,255,255);
+    img{
+      width: 955px;
+      height: 280px;
+    }
+    #shop-title{
+      position: absolute;
+      top: 50px;
+      left: 60px;
+      font-size: 30px;
+      color: rgb(255,255,255);
+    }
 	}
 	.container{
 		width: 1190px;

+ 2 - 1
components/store/index.js

@@ -9,5 +9,6 @@ import Certificate from './home/Certificate.vue'
 import EnterpriseInfo from './home/EnterpriseInfo.vue'
 import StoreBanner from './home/StoreBanner.vue'
 import RecommendList from './home/RecommendList.vue'
+import RecommendPcb from './home/RecommendPcb.vue'
 
-export {StoreHeader, StoreTitle, BaseInfo, ComponentInfo, CommodityInfo, CommodityList, RecommendProduct, Certificate, EnterpriseInfo, StoreBanner, RecommendList}
+export {StoreHeader, StoreTitle, BaseInfo, ComponentInfo, CommodityInfo, CommodityList, RecommendProduct, Certificate, EnterpriseInfo, StoreBanner, RecommendList, RecommendPcb}

+ 1 - 0
pages/store/_uuid/index.vue

@@ -96,6 +96,7 @@ export default {
         return redirect('/error')
       }
       return Promise.all([
+        store.dispatch('pcb/getPcbKinds', {parentId: 3825}),
         store.dispatch('shop/findStoreInfoFromUuid', params),
         store.dispatch('shop/findRecommendProducts', params),
         store.dispatch('shop/pageCommoditiesOfStore', params.uuid, { page: 1, count: 10 }),

+ 2 - 0
store/option.js

@@ -2,6 +2,8 @@
  * 全局设置
  */
 export const state = () => ({
+  // PCB 深圳市英唐致盈供应链管理
+  pcbUuid: '9612c0a894894c1aabbfe9192749bbfa',
   userAgent: '',
   // 是否移动端
   isMobile: false,