Pārlūkot izejas kodu

Merge branch 'dev'

yangc 7 gadi atpakaļ
vecāks
revīzija
52c910df67
76 mainītis faili ar 1643 papildinājumiem un 480 dzēšanām
  1. 2 2
      assets/scss/common.scss
  2. 15 2
      assets/scss/mobileCommon.scss
  3. 5 5
      components/applyPurchase/ApplyInfo.vue
  4. 5 8
      components/applyPurchase/BatchPublish.vue
  5. 2 2
      components/applyPurchase/SayPrice.vue
  6. 1 4
      components/applyPurchase/SeekProduct.vue
  7. 13 14
      components/applyPurchase/articleOne.vue
  8. 4 4
      components/common/PcSearchHeader.vue
  9. 0 1
      components/common/upload/upload.vue
  10. 3 0
      components/default/Footer.vue
  11. 0 2
      components/default/RightBar.vue
  12. 1 1
      components/error/error.vue
  13. 1 1
      components/home/floor/FloorList.vue
  14. 1 1
      components/main/Nav.vue
  15. 3 4
      components/main/Search.vue
  16. 207 21
      components/mobile/Home.vue
  17. 4 2
      components/mobile/MobileHeader.vue
  18. 11 12
      components/mobile/applyPurchase/PublishSeek.vue
  19. 3 2
      components/mobile/applyPurchase/PublishSupplierSeek.vue
  20. 1 1
      components/mobile/applyPurchase/SayPrice.vue
  21. 2 2
      components/mobile/applyPurchase/SayPriceInfo.vue
  22. 1 1
      components/mobile/applyPurchase/SeekList.vue
  23. 55 32
      components/mobile/base/SearchHeader.vue
  24. 2 2
      components/mobile/base/SearchHeader2.vue
  25. 76 56
      components/mobile/base/addressEdit.vue
  26. 2 2
      components/mobile/base/addressView.vue
  27. 16 5
      components/mobile/brand/ComponentDetail.vue
  28. 2 2
      components/mobile/center/Seek.vue
  29. 2 1
      components/mobile/common/PullUp.vue
  30. 4 4
      components/mobile/common/StatisticsMobile.vue
  31. 388 0
      components/mobile/search/componet-item.vue
  32. 1 1
      components/mobile/store/StoreDetail.vue
  33. 1 1
      components/mobile/supplier/List.vue
  34. 1 1
      components/mobile/supplier/SupplierDetail.vue
  35. 2 1
      components/pcb/product/Detail.vue
  36. 1 1
      components/pcb/search/Kind.vue
  37. 1 2
      components/product/ComponentGoods.vue
  38. 1 1
      components/product/brand/BrandComponent.vue
  39. 1 1
      components/product/component/ComponentDetail.vue
  40. 5 2
      components/provider/Suppliers.vue
  41. 2 2
      components/search/ForwardGoodsList.vue
  42. 17 8
      components/search/GoodList.vue
  43. 1 1
      components/search/Kind.vue
  44. 6 2
      components/store/CommodityInfo.vue
  45. 14 14
      components/store/home/CommodityList.vue
  46. 2 2
      components/supplier/details.vue
  47. 3 3
      components/supplier/resource.vue
  48. 18 1
      layouts/pcb.vue
  49. 6 6
      pages/index.vue
  50. 4 4
      pages/mobile/center/index.vue
  51. 1 1
      pages/mobile/center/user/applyPurchase.vue
  52. 120 0
      pages/mobile/center/user/cart/_key.vue
  53. 18 6
      pages/mobile/center/user/cart/index.vue
  54. 331 0
      pages/mobile/center/user/collect/component/_key.vue
  55. 96 2
      pages/mobile/center/user/collect/component/index.vue
  56. 15 5
      pages/mobile/center/user/pay/_orderId.vue
  57. 3 3
      pages/mobile/center/vendor/attentionBus.vue
  58. 1 1
      pages/mobile/center/vendor/invoice/index.vue
  59. 7 8
      pages/mobile/center/vendor/product.vue
  60. 1 3
      pages/mobile/center/vendor/productList/index.vue
  61. 1 4
      pages/mobile/center/vendor/productdetails.vue
  62. 9 7
      pages/mobile/order/details.vue
  63. 6 8
      pages/mobile/order/index.vue
  64. 1 1
      pages/mobile/product/_batchCode.vue
  65. 1 2
      pages/mobile/search/_keycode.vue
  66. 64 134
      pages/mobile/search/newkeycode.vue
  67. 1 1
      pages/mobile/share/purChase/_uuid.vue
  68. 5 2
      pages/mobile/user/address.vue
  69. 0 1
      pages/product/brand/_code.vue
  70. 1 1
      pages/product/kind/_id.vue
  71. 21 10
      plugins/axios.js
  72. BIN
      static/images/all/loading.gif
  73. BIN
      static/images/mobile/@2x/applyPurchase/home/app-banner_01.jpg
  74. BIN
      static/images/mobile/@2x/applyPurchase/home/app-banner_02.jpg
  75. 5 8
      store/index.js
  76. 16 22
      store/searchData.js

+ 2 - 2
assets/scss/common.scss

@@ -849,11 +849,11 @@ img.new-animate{
 #store-list table .search-content-pc{
   position: relative;
   float: left;
-  padding-left: 558px;
+  padding-left: 533px;
   width: auto;
 }
 #store-list table .search-content-pc .form-control{
-  width: 190px;
+  width: 215px;
   height: 28px;
   background-color: #ffffff;
   border-radius: 3px;

+ 15 - 2
assets/scss/mobileCommon.scss

@@ -130,6 +130,19 @@ html {
     border: none;
   }
 
+  input::-webkit-input-placeholder{
+    color:#999;
+  }
+  input::-moz-placeholder{   /* Mozilla Firefox 19+ */
+    color:#999;
+  }
+  input:-moz-placeholder{    /* Mozilla Firefox 4 to 18 */
+    color:#999;
+  }
+  input:-ms-input-placeholder{  /* Internet Explorer 10-11 */
+    color:#999;
+  }
+
 
 
   /*search*/
@@ -146,10 +159,10 @@ html {
     }
     span {
       display: inline-block;
-      height: .58rem;
+      height: .56rem;
       line-height: .58rem;
       position: relative;
-      top: .04rem;
+      top: 0;
       width: .68rem;
       color: #376ff3;
       border-left: .02rem solid #376ff3;

+ 5 - 5
components/applyPurchase/ApplyInfo.vue

@@ -16,7 +16,7 @@
             <i class=" fa fa-long-arrow-down" :class="{active: sorting.releaseDate == 'DESC'}"></i>
           </a>-->
         </span>
-        <span class="list-title-item">品牌/物料名称(类目)</span>
+        <span class="list-title-item">品牌/物料名称</span>
         <span class="list-title-item">型号/规格</span>
         <span class="list-title-item">采购数量(PCS)</span>
         <span class="list-title-item">已报价
@@ -50,7 +50,7 @@
                 <div class="content">{{baseUtils.filterStringEllipsis(purchaseMan.cmpCode, 54) || '-'}}</div>
               </div>
               <div :title="purchaseMan.prodTitle" class="fl item bottom size-middle">
-                <span>物料名称(类目)</span>
+                <span>物料名称</span>
                 <div class="content">{{(baseUtils.filterStringEllipsis(purchaseMan.prodTitle, 48) || '-') | nullFilter}}</div>
               </div>
               <div :title="purchaseMan.spec" class="fl item bottom item-right">
@@ -456,13 +456,13 @@ export default {
             margin-left: 25px;
           }
           &:nth-child(2) {
-            margin-left: 70px;
+            margin-left: 82px;
           }
           &:nth-child(3) {
-            margin-left: 90px;
+            margin-left: 110px;
           }
           &:nth-child(4) {
-            margin-left: 160px;
+            margin-left: 170px;
           }
           &:nth-child(5) {
             margin-left: 50px;

+ 5 - 8
components/applyPurchase/BatchPublish.vue

@@ -11,7 +11,7 @@
           <!--<label for="all"></label>-->
           <!--</label>全选-->
           <!--</th>-->
-          <th width="307">品牌/物料名称(类目)</th>
+          <th width="307">品牌/物料名称</th>
           <th width="307">型号/规格</th>
           <th width="95">采购数量(PCS)</th>
           <!--<th width="114">生产日期</th>-->
@@ -44,7 +44,7 @@
                 <div class="pi-content over-ell" v-else="!item.unitPrice">-</div>
               </div>-->
               <div class="prod-item prod-item-large" :title="item.kind">
-                <span class="pi-title"><i class="red-text">*</i>物料名称(类目):</span>
+                <span class="pi-title"><i class="red-text">*</i>物料名称:</span>
                 <div class="pi-content over-ell" v-if="item.kind && (!item.kindWord || item.kindWord.length == 0)" :title="item.kind">{{item.kind}}</div>
                 <div class="pi-content red-text" v-if="!item.kind">请完善信息</div>
                 <!--<div class="pi-content over-ell">{{item.kind || '-'}}</div>-->
@@ -166,7 +166,7 @@
                 </ul>
               </div>
               <div class="prod-item prod-item-large">
-                <span class="pi-title"><i class="red-text">*</i>物料名称(类目):</span>
+                <span class="pi-title"><i class="red-text">*</i>物料名称:</span>
                 <input type="text" class="form-control" v-model="modifyObj.kind" :class="{'error': !validObj.kind}" @input="onProdTitleInput" @blur="checkKind">
               </div>
               <!--<div class="prod-item prod-item-small pi-select">
@@ -640,9 +640,9 @@
         this.validObj.kind = this.modifyObj.kind && this.modifyObj.kind !== ''
         // if (!this.validObj.kind) {
         if (!nullStrFlag) {
-          this.$message.error('物料名称(类目)输入不合法')
+          this.$message.error('物料名称输入不合法')
         } else if (!this.validObj.kind) {
-          this.$message.error('物料名称(类目)不能为空')
+          this.$message.error('物料名称不能为空')
         }
         // }
         return this.validObj.kind
@@ -1037,9 +1037,7 @@
             obj.type = 'CHAT'
             if (!(/^1\d{10}$/).test(response.data.enTel)) {
               this.$http.get('/basic/enterprise/' + response.data.uu + '/admin').then(response => {
-                console.log(response)
                 obj.toPhone = response.data.userTel
-                console.log(obj)
                 this.openWebChat(newTab, obj)
               }, err => {
                 console.log(err)
@@ -1047,7 +1045,6 @@
               })
             } else {
               obj.toPhone = response.data.enTel
-              console.log(obj)
               this.openWebChat(newTab, obj)
             }
           }, err => {

+ 2 - 2
components/applyPurchase/SayPrice.vue

@@ -16,7 +16,7 @@
           </div>
           <div class="content-line">
             <div class="form-item form-left text-line">
-              <span>物料名称(类目):</span><span class="text" :title="purchaseManList.content[currentSayPriceIndex].prodTitle">{{purchaseManList.content[currentSayPriceIndex].prodTitle || '-'}}</span>
+              <span>物料名称:</span><span class="text" :title="purchaseManList.content[currentSayPriceIndex].prodTitle">{{purchaseManList.content[currentSayPriceIndex].prodTitle || '-'}}</span>
             </div>
           </div>
           <div class="content-line">
@@ -347,7 +347,7 @@
     width: 476px;
     top: 50%;
     left: 50%;
-    margin-top: -325px;
+    margin-top: -162px;
     margin-left: -238px;
     overflow-y: auto;
     /*-webkit-box-shadow: 0 5px 15px rgba(0,0,0,.5);*/

+ 1 - 4
components/applyPurchase/SeekProduct.vue

@@ -10,7 +10,7 @@
             <p>{{productItem.brand}}</p>
           </li>
           <li class="form-item">
-            <span>物料名称(类目):</span>
+            <span>物料名称:</span>
             <p>{{productItem.prodName}}</p>
           </li>
           <li class="form-item">
@@ -84,9 +84,6 @@
         default: {}
       }
     },
-    mounted() {
-      console.log(this.productItem)
-    },
     watch: {
       'showObj.show': {
         handler: function (val) {

+ 13 - 14
components/applyPurchase/articleOne.vue

@@ -8,6 +8,15 @@
         <span>单个求购</span>
       </div>
       <div class="publish-form-area">
+        <div class="form-item">
+            <span>
+              <i>*</i>型号:
+            </span>
+          <input type="text" class="form-control" :class="{'error': !validObj.code}" v-model="applyObj.code" @blur="checkCode" @input="onCodeChange" placeholder="请勿填中文符号"/>
+          <ul v-show="showSimilarCodeList && applyObj.code">
+            <li v-for="sCode in similarCode" @click="setCode(sCode.code)">{{sCode.code}}</li>
+          </ul>
+        </div>
         <div class="form-item">
             <span>
               <i>*</i>品牌:
@@ -19,19 +28,10 @@
         </div>
         <div class="form-item">
            <span>
-              <i>*</i>物料名称(类目)
+              <i>*</i>物料名称:
             </span>
           <input type="text" class="form-control" :class="{'error': !validObj.prodTitle}" v-model="applyObj.prodTitle" @blur="checkProdTitle" @input="onProdTitleInput"/>
         </div>
-        <div class="form-item">
-            <span>
-              <i>*</i>型号:
-            </span>
-          <input type="text" class="form-control" :class="{'error': !validObj.code}" v-model="applyObj.code" @blur="checkCode" @input="onCodeChange" placeholder="请勿填中文符号"/>
-          <ul v-show="showSimilarCodeList && applyObj.code">
-            <li v-for="sCode in similarCode" @click="setCode(sCode.code)">{{sCode.code}}</li>
-          </ul>
-        </div>
         <div class="form-item">
            <span>
               规格:
@@ -267,7 +267,7 @@
               })
             } else {
               if (!this.validObj.prodTitle) {
-                this.$message.error('物料名称(类目)不能为空')
+                this.$message.error('物料名称不能为空')
               } else if (!this.validObj.deadline) {
                 this.$message.error('截止日期不能为空')
               } else if (!this.validObj.amount) {
@@ -318,9 +318,8 @@
         let prodTitle = this.applyObj.prodTitle.trim()
         this.validObj.prodTitle = prodTitle && prodTitle !== ''
         if (!this.validObj.prodTitle) {
-          this.$message.error('物料名称(类目)不能为空')
+          this.$message.error('物料名称不能为空')
         }
-        console.log(prodTitle)
         return this.validObj.prodTitle
       },
       checkBrand: function () {
@@ -355,7 +354,7 @@
         return this.validObj.amount
       },
       checkAll: function () {
-        return this.checkBrand() && this.checkProdTitle() && this.checkCode() && this.checkDeadline() && this.checkUnitPrice() && this.checkAmount() && this.checkSpec()
+        return this.checkCode() && this.checkBrand() && this.checkProdTitle() && this.checkDeadline() && this.checkUnitPrice() && this.checkAmount() && this.checkSpec()
       },
       checkDeadline: function () {
         this.validObj.deadline = Boolean(this.applyObj.deadline)

+ 4 - 4
components/common/PcSearchHeader.vue

@@ -15,7 +15,7 @@
         <li class="text-ellipse" v-for="brand in similarList.pBrandEn.slice(0, 4)" @click="onSearch(brand.nameEn, 'pBrandEn', $event)">{{brand.nameEn}}</li>
       </template>
       <template v-if="similarList.kind && similarList.kind.length">
-        <li class="title text-ellipse">物料名称(类目)</li>
+        <li class="title text-ellipse">物料名称</li>
         <li class="text-ellipse" v-for="kind in similarList.kind.slice(0, 4)" @click="onSearch(kind.kind, 'kind', $event)">{{kind.kind}}</li>
       </template>
       <template v-if="similarList.pCmpCode && similarList.pCmpCode.length">
@@ -29,7 +29,7 @@
         <li class="text-ellipse" v-for="brand in similarList.brand.slice(0, 4)" @click="onSearch(brand.nameEn, 'brand', $event)">{{brand.nameEn}}</li>
       </template>
       <template v-if="similarList.kind && similarList.kind.length">
-        <li class="title text-ellipse">物料名称(类目)</li>
+        <li class="title text-ellipse">物料名称</li>
         <li class="text-ellipse" v-for="kind in similarList.kind.slice(0, 4)" @click="onSearch(kind.nameCn, 'kind', $event)">{{kind.nameCn}}</li>
       </template>
       <template v-if="similarList.component && similarList.component.length">
@@ -208,10 +208,10 @@
       line-height: normal;
     }
     ul {
-      width: 258px;
+      width: 283px;
       background: #fff;
       position: absolute;
-      left: 558px;
+      left: 533px;
       top: 28px;
       border: 1px solid #ccc;
       border-radius: 5px;

+ 0 - 1
components/common/upload/upload.vue

@@ -37,7 +37,6 @@
     watch: {
       url: function (val, oldVal) {
         if (val && val !== '') {
-          console.log(val)
           this.qualifications.url = val
         }
       }

+ 3 - 0
components/default/Footer.vue

@@ -82,6 +82,9 @@
         }, {
           url: 'http://www.szmadigi.com',
           title: '迈迪杰科技'
+        }, {
+          url: 'http://www.hi-mantech.com',
+          title: '怡海能达'
         }]
       }
     }

+ 0 - 2
components/default/RightBar.vue

@@ -216,13 +216,11 @@
           inner.style.transform = 'translate3d(0, 0, 0)'
           let transitionEvent = whichTransitionEvent()
             transitionEvent && el.addEventListener(transitionEvent, function() {
-              console.log('动画结束1')
               done()
             })
         })
       },
       afterEnter(el) {
-        console.log(this.dropBalls)
         // console.log('钩子函数收尾')
         let ball = this.dropBalls.shift()
         if (ball) {

+ 1 - 1
components/error/error.vue

@@ -14,7 +14,7 @@
             <span>不存在</span>......
           </template>
         </div>
-        <div class="infotext" v-if="title==='店铺' || title==='器件' || title==='物料名称(类目)'">您可以逛逛:
+        <div class="infotext" v-if="title==='店铺' || title==='器件' || title==='物料名称'">您可以逛逛:
           <nuxt-link :to="{ path: '/'}">商城首页</nuxt-link>
           <span>|</span>
           <nuxt-link :to="{ path: '/provider/factories'}">原厂专区</nuxt-link>

+ 1 - 1
components/home/floor/FloorList.vue

@@ -17,7 +17,7 @@
                   <span>发布时间</span>
                   <span>买家名称</span>
                   <span>品牌</span>
-                  <span>物料名称(类目)</span>
+                  <span>物料名称</span>
                   <span>型号</span>
                   <span>规格</span>
                   <span>操作</span>

+ 1 - 1
components/main/Nav.vue

@@ -85,7 +85,7 @@
         if (this.user.logged) {
           window.location.href = `${process.env.uasUrl}#/index`
         } else {
-          this.login()
+          this.login(`${process.env.uasUrl}`)
         }
       }
     }

+ 3 - 4
components/main/Search.vue

@@ -51,7 +51,7 @@
           :class="{'active': index==associate.activeIndex}"
           @click.stop.prevent="onAssociateClick(isCnStart() ? k.nameCn : k.nameEn)">{{ isCnStart() ? k.nameCn : k.nameEn }}
       </li>
-      <li v-if="similarKeywords.data.kind && similarKeywords.data.kind.length > 0" class="similar-title">物料名称(类目):</li>
+      <li v-if="similarKeywords.data.kind && similarKeywords.data.kind.length > 0" class="similar-title">物料名称:</li>
       <li v-for="(k, index) in similarKeywords.data.kind" class="item"
           :class="{'active': index==associate.activeIndex}"
           @click.stop.prevent="onAssociateClick(k.nameCn)">{{ k.nameCn }}
@@ -66,10 +66,10 @@
       <ul class="list-untyled">
         <li class="item item-first">热门搜索</li>
         <li class="item" v-for="w in hotBrand" v-if="ifFloorsHotSearchInValid">
-          <nuxt-link :to="'/product/brand/' + w.uuid" target="_blank">{{ w.nameEn }}</nuxt-link>
+          <nuxt-link :to="`/search?w=${w.nameEn}&type=brand`">{{ w.nameEn }}</nuxt-link>
         </li>
         <li class="item" v-for="w in hotDevice" v-if="ifFloorsHotSearchInValid">
-          <nuxt-link :to="'/product/component/' + w.uuid" target="_blank">{{ w.code }}</nuxt-link>
+          <nuxt-link :to="`/search?w=${w.code}&type=component`">{{ w.code }}</nuxt-link>
         </li>
         <li class="item" v-if="!ifFloorsHotSearchInValid && index > 0" v-for="(w, index) in hotSearchData.items">
           <a :href="w.hrefUrl" target="_blank">{{w.body}}</a>
@@ -232,7 +232,6 @@
         this.associate.show = this.associate.focus
       },
       onSelectChange (count) {
-        console.log(1)
         let keywords = this.similarKeywords
         if (keywords && keywords.result.length) {
           let index = this.associate.activeIndex

+ 207 - 21
components/mobile/Home.vue

@@ -1,7 +1,33 @@
 <template>
   <div class="home">
     <div v-if="!showMainSearch">
+      <ul class="associate-list" v-show="associate.show" @click="associate.show = false">
+        <li @click.stop="onAssociateClick(similar)" v-for="similar in similarKeywords.result">
+          <i class="icon-sousuo iconfont"></i>
+          <span>{{Getsimilar(similar)}}</span>
+          <!--<span v-if="ChooseTop === 'component'">{{similar.code}}</span>-->
+          <!--<span v-else-if="ChooseTop === 'product'">{{similar}}</span>-->
+          <!--<span v-else-if="ChooseTop === 'store'">{{similar}}</span>-->
+          <!--<span v-else-if="ChooseTop === 'brand'">{{similar.nameEn}}</span>-->
+        </li>
+        <li @click.stop="onSearch(keyword)">查找“{{baseUtils.filterStringEllipsis(keyword, 30)}}”</li>
+      </ul>
       <div class="header">
+        <div class="search-content" @touchmove="preventTouchMove($event)">
+          <div class="main-search-header-controll clearfix">
+            <div style="display: flex;align-items: center;justify-content: space-between;width:100%;">
+              <div :class="ChooseTop === 'component' ? 'active' : ''" @click="setChangelistHander('component')"><a>型号</a></div>
+              <div :class="ChooseTop === 'kind' ? 'active' : ''" @click="setChangelistHander('kind')"><a>物料名称</a></div>
+              <div :class="ChooseTop === 'store' ? 'active' : ''" @click="setChangelistHander('store')"><a>卖家</a></div>
+              <div :class="ChooseTop === 'brand' ? 'active' : ''" @click="setChangelistHander('brand')"><a>品牌</a></div>
+            </div>
+          </div>
+          <input type="text" v-model="keyword" id="search-box" @keyup.13="onSearch()" :placeholder="placeholder">
+          <span @click="onSearch()" style="top: 0">
+          <i class="iconfont icon-sousuo"></i>
+        </span>
+          <img src="/images/mobile/@2x/applyPurchase/home/phone.png" alt="" @click="showStoreInfo = true">
+        </div>
         <div v-swiper:mySwiper="swiperOption">
           <div class="swiper-wrapper">
             <div class="swiper-slide">
@@ -16,13 +42,6 @@
           </div>
           <div class="swiper-pagination swiper-pagination-bullets"></div>
         </div>
-        <div class="search-content">
-          <input type="text" placeholder="请输入您要查找的型号、品牌或店铺" @click="onHomeSearchClick()">
-          <span>
-          <i class="iconfont icon-sousuo"></i>
-        </span>
-          <img src="/images/mobile/@2x/applyPurchase/home/phone.png" alt="" @click="showStoreInfo = true">
-        </div>
       </div>
       <ul class="link-list">
         <li>
@@ -113,7 +132,12 @@
         isChange: false,
         isDataChange: false,
         url: '',
-        isValid: true
+        isValid: true,
+        ChooseTop: 'component',
+        keyword: '',
+        associate: {
+          show: false
+        }
       }
     },
     components: {
@@ -147,6 +171,12 @@
           }
         },
         immediate: true
+      },
+      'keyword': function (val, oldVal) {
+        let keywords = this.similarKeywords.data
+        if (!keywords || !keywords.length) {
+          this.onChange()
+        }
       }
 //      $route: {
 //        handler: function (val) {
@@ -155,6 +185,20 @@
 //      }
     },
     computed: {
+      similarKeywords () {
+        return this.$store.state.search.keywords.data
+      },
+      placeholder() {
+        if (this.ChooseTop === 'component') {
+          return '请输入您要搜索的型号'
+        } else if (this.ChooseTop === 'kind') {
+          return '请输入您要搜索的物料名称'
+        } else if (this.ChooseTop === 'store') {
+          return '请输入您要搜索的卖家名称'
+        } else if (this.ChooseTop === 'brand') {
+          return '请输入您要搜索的品牌'
+        }
+      },
       purchaseManList () {
         return this.$store.state.applyPurchase.purchaseManList.purchaseHomeList.data
       },
@@ -166,6 +210,58 @@
       }
     },
     methods: {
+      onSearch (item) {
+        if (item) {
+          this.keyword = item
+        }
+        if (this.keyword) {
+          this.$router.push(`/mobile/search/newkeycode?choosetype=${this.ChooseTop}&keyword=${encodeURIComponent(this.keyword)}`)
+        }
+      },
+      onChange () {
+        if (!this.keyword) {
+          this.associate.show = false
+          this.$store.dispatch('resetSearchKeywords')
+        } else {
+          this.searchKeywords()
+        }
+        if (this.click_flag) {
+          this.associate.show = false
+        }
+      },
+      setChangelistHander(str) {
+        this.ChooseTop = str
+        if (!this.keyword) return
+        this.$store.dispatch('searchKeywords', {keyword: this.keyword, type: this.ChooseTop})
+        this.associate.show = true
+      },
+      searchKeywords () {
+        this.$store.dispatch('searchKeywords', {keyword: this.keyword, type: this.ChooseTop})
+        this.associate.show = true
+      },
+      onAssociateClick (word) {
+        if (this.ChooseTop === 'component') {
+          this.keyword = word.code
+        } else if (this.ChooseTop === 'kind') {
+          this.keyword = word.nameCn
+        } else if (this.ChooseTop === 'store') {
+          this.keyword = word.name
+        } else if (this.ChooseTop === 'brand') {
+          this.keyword = word.nameEn
+        }
+        this.onSearch()
+      },
+      Getsimilar(word) {
+        if (this.ChooseTop === 'component') {
+          return word.code
+        } else if (this.ChooseTop === 'kind') {
+          return word.nameCn
+        } else if (this.ChooseTop === 'store') {
+          return word.name
+        } else if (this.ChooseTop === 'brand') {
+          return word.nameEn
+        }
+      },
 //      scroll: function () {
 //         let scrolled = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop
 //         if (Math.ceil(scrolled + window.screen.availHeight) >= document.body.scrollHeight && !this.isSearchSearchingMore && this.page < this.allPage) {
@@ -224,28 +320,118 @@
   }
 </script>
 <style lang="scss">
+  @mixin overFlowHidden {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+  @mixin lineHeight($value) {
+    height: $value;
+    line-height: $value;
+  }
   @import '~assets/scss/mobileCommon';
+  .swiper-slide1 {
+    background: url('/images/mobile/@2x/applyPurchase/home/app-banner_01.jpg');
+    background-repeat: no-repeat;
+    background-size: cover;
+  }
   .home {
     padding-bottom: 1rem;
     background: #f3f3f7;
-    .header {
-      height: 3.26rem;
-      position: relative;
-      .home-bg {
-        height: 3.26rem;
-        width: 100%;
+    .search-content {
+      padding: 0.19rem 0 0.15rem;
+      position: absolute;
+      z-index: 10;
+      width: 100%;
+      input {
+        margin-top: -0.02rem;
+        outline: 0;
+        border: 0;
       }
-      .search-content {
-        position: absolute;
-        top: 0;
-        width: 100%;
+    }
+    .main-search-header-controll {
+      width: 5.48rem;
+      margin-left: 0.21rem;
+      transform: translateY(1px);
+      div {
+        div {
+          font-size: 0.28rem;
+          color: #fff;
+          margin: 0;
+          border-radius: 0;
+          padding: 0.1rem 0.1rem;
+          a {
+            font-size: .26rem;
+            color: #f1f1f1;
+          }
+          &.active {
+            background: #fff;
+            border-top-left-radius: 0.05rem;
+            border-top-right-radius: 0.05rem;
+          }
+          &.active a {
+            color: #2d8cf0;
+          }
+        }
       }
+    }
+    .associate-list {
+      position: absolute;
+      width: 100%;
+      background: #fff;
+      top: 1.29rem;
+      border: 1px solid #dcdcdc;
+      z-index: 100;
+      height: 100%;
+      left: 0;
+      bottom: 0;
+      right: 0;
+      overflow-y: auto;
+      li {
+        height: 0.7rem;
+        line-height: .9rem;
+        margin: 0 .45rem;
+        border-bottom: .04rem solid #f1f0f0;
+        @include overFlowHidden();
+        i {
+          font-size: .36rem;
+          margin-right: .24rem;
+          color: #ddd;
+        }
+        span {
+          color: #999;
+          font-size: .28rem;
+          line-height: .58rem;
+          height: .58rem;
+          display: inline-block;
+        }
+        &:active, &:hover {
+          background: #eee;
+        }
+        &:last-child {
+          text-align: center;
+          font-size: .3rem;
+          color: #3976f4;
+          border-bottom: none;
+          &:active, &:hover {
+            background: #fff;
+          }
+        }
+      }
+    }
+    .header {
+      position: relative;
+      height: 4.08rem;
+      overflow: hidden;
       .swiper-container {
-        height: 3.26rem;
-        position: absolute;
-        top: 0;
         width: 100%;
         z-index: 0;
+        height: 4.08rem;
+        overflow: hidden;
+        img {
+          max-width: 100%;
+          /*height: 4.08rem;*/
+        }
       }
       .swiper-pagination-fraction, .swiper-pagination-custom, .swiper-container-horizontal > .swiper-pagination-bullets {
         bottom: .1rem !important;

+ 4 - 2
components/mobile/MobileHeader.vue

@@ -108,7 +108,9 @@
         return this.$store.state.componentDetail.detail.data
       },
       showEnHeader () {
-        return this.startWith(this.$route.path, '/mobile/center') || this.startWith(this.$route.path, '/mobile/order') || this.startWith(this.$route.path, '/mobile/user/address')
+        return this.startWith(this.$route.path, '/mobile/center') ||
+          this.startWith(this.$route.path, '/mobile/order') ||
+          this.startWith(this.$route.path, '/mobile/user/address')
       }
 //      showHeader () {
 //        return this.$route.path !== '/' || !this.$route.path || this.$route.path === ''
@@ -205,7 +207,7 @@
         } else if (this.startWith(val, '/mobile/store')) {
           this.showSearchIcon = false
           title = '开店申请'
-        } else if (val === '/mobile/center/user/cart') {
+        } else if (this.startWith(val, '/mobile/center/user/cart')) {
           this.showSearchIcon = false
           title = '购物车'
         } else if (this.startWith(val, '/mobile/center/user/payCenter')) {

+ 11 - 12
components/mobile/applyPurchase/PublishSeek.vue

@@ -1,6 +1,13 @@
 <template>
   <div class="publish_seek_mobile">
     <div class="publish-seek">
+      <div class="content-line">
+        <span><i>*</i>型号:</span>
+        <input type="text" v-model="applyObj.code" @blur="checkCode" @input="onCodeChange" placeholder="请勿填中文符号">
+        <ul class="similar" v-show="showSimilarCodeList && applyObj.code">
+          <li v-for="sCode in similarCode" @click.stop="setCode(sCode.code)">{{sCode.code}}</li>
+        </ul>
+      </div>
       <div class="content-line">
         <span><i>*</i>品牌:</span>
         <input type="text" v-model="applyObj.brand" @blur="checkBrand" @input="onBrandChange" placeholder="请勿填中文符号">
@@ -9,16 +16,9 @@
         </ul>
       </div>
       <div class="content-line">
-        <span><i>*</i>物料名称(类目):</span>
+        <span><i>*</i>物料名称:</span>
         <input type="text" v-model="applyObj.prodTitle" @blur="checkProdTitle" @input="onProdTitleInput">
       </div>
-      <div class="content-line">
-        <span><i>*</i>型号:</span>
-        <input type="text" v-model="applyObj.code" @blur="checkCode" @input="onCodeChange" placeholder="请勿填中文符号">
-        <ul class="similar" v-show="showSimilarCodeList && applyObj.code">
-          <li v-for="sCode in similarCode" @click.stop="setCode(sCode.code)">{{sCode.code}}</li>
-        </ul>
-      </div>
       <div class="content-line">
         <span>规格:</span>
         <input type="text" v-model="applyObj.spec" @blur="checkSpec" @input="onSpecInput">
@@ -132,7 +132,6 @@
         return this.$http.get('/productuser/match/getKind', {params: {cmpCode: code, brand: brand}})
       },
       goPublish: function () {
-        console.log('12', this.applyObj)
         if (this.checkAll()) {
           this.getMaterialKind(this.applyObj.code, this.applyObj.brand).then(response => {
             let inquiry = {}
@@ -211,9 +210,9 @@
       },
       checkAll: function () {
         if (this.isNumberReg) {
-          return this.checkBrand() && this.checkProdTitle() && this.checkCode() && this.checkDeadline() && this.checkSpec()
+          return this.checkCode() && this.checkBrand() && this.checkProdTitle() && this.checkDeadline() && this.checkSpec()
         } else {
-          return this.checkBrand() && this.checkProdTitle() && this.checkCode() && this.checkDeadline() && this.checkSpec() && this.checkAmount()
+          return this.checkCode() && this.checkBrand() && this.checkProdTitle() && this.checkDeadline() && this.checkSpec() && this.checkAmount()
         }
       },
       checkCode: function () {
@@ -234,7 +233,7 @@
         let prodTitle = this.applyObj.prodTitle.trim()
         this.validObj.prodTitle = prodTitle && prodTitle !== ''
         if (!this.validObj.prodTitle) {
-          this.setRemindText('物料名称(类目)不能为空')
+          this.setRemindText('物料名称不能为空')
         }
         return this.validObj.prodTitle
       },

+ 3 - 2
components/mobile/applyPurchase/PublishSupplierSeek.vue

@@ -4,7 +4,7 @@
       <div class="mobile-modal-header">我要询价<i class="icon-guanbi iconfont" @click="cancel"></i></div>
       <div class="props">
         <div class="prop">品牌:{{applyObj.brand || '-'}}</div>
-        <div class="prop">物料名称(类目):{{applyObj.prodTitle || '-'}}</div>
+        <div class="prop">物料名称:{{applyObj.prodTitle || '-'}}</div>
         <div class="prop">型号:{{applyObj.code || '-'}}</div>
         <div class="prop">规格:{{applyObj.spec || '-'}}</div>
       </div>
@@ -264,9 +264,10 @@
         font-size: .28rem;
         background: #fff;
         margin: .2rem 0;
-        padding-left: .29rem;
+        padding: 0 .29rem;
         .prop {
           padding-top: .2rem;
+          word-break: break-all;
           &:last-child {
             padding-bottom: .2rem;
           }

+ 1 - 1
components/mobile/applyPurchase/SayPrice.vue

@@ -9,7 +9,7 @@
               品牌:<span>{{purchaseDetail.inbrand || '-'}}</span>
             </div>
             <div class="content-line">
-              物料名称(类目):<span>{{purchaseDetail.prodTitle || '-'}}</span>
+              物料名称:<span>{{purchaseDetail.prodTitle || '-'}}</span>
             </div>
             <div class="content-line">
               型号:<span>{{purchaseDetail.cmpCode || '-'}}</span>

+ 2 - 2
components/mobile/applyPurchase/SayPriceInfo.vue

@@ -15,7 +15,7 @@
                 品牌:<span>{{purchaseDetail.inbrand || '-'}}</span>
               </div>
               <div class="content-line">
-                物料名称(类目):<span>{{purchaseDetail.prodTitle || '-'}}</span>
+                物料名称:<span>{{purchaseDetail.prodTitle || '-'}}</span>
               </div>
               <div class="content-line">
                 型号:<span>{{purchaseDetail.cmpCode || '-'}}</span>
@@ -156,7 +156,7 @@
                 品牌:<span>{{purchaseDetail.inbrand || '-'}}</span>
               </div>
               <div class="content-line">
-                物料名称(类目):<span>{{purchaseDetail.prodTitle || '-'}}</span>
+                物料名称:<span>{{purchaseDetail.prodTitle || '-'}}</span>
               </div>
               <div class="content-line">
                 型号:<span>{{purchaseDetail.cmpCode || '-'}}</span>

+ 1 - 1
components/mobile/applyPurchase/SeekList.vue

@@ -17,7 +17,7 @@
               <span>{{item.inbrand || '-'}}</span>
             </div>
             <div class="content">
-              物料名称(类目)
+              物料名称:
               <span>{{item.title || item.prodTitle || '-'}}</span>
             </div>
             <div class="content">

+ 55 - 32
components/mobile/base/SearchHeader.vue

@@ -1,5 +1,5 @@
 <template>
-  <div class="search-content com-mobile-header">
+  <div class="search-content com-mobile-header mobile-search-header" :class="expandClass">
     <a @click="goLastPage"><i class="iconfont icon-fanhui"></i></a>
     <input type="text" v-model="keyword" @input="onKeywordInput()" :placeholder="placeholder" @keyup.13="onSearch()">
     <span @click="onSearch()"><i class="iconfont icon-sousuo"></i></span>
@@ -9,7 +9,7 @@
         <li class="text-ellipse" v-for="brand in similarList.pBrandEn.slice(0, 4)" @click="onSearch(brand.nameEn, 'pBrandEn', $event)">{{brand.nameEn}}</li>
       </template>
       <template v-if="similarList.kind && similarList.kind.length">
-        <li class="title text-ellipse">物料名称(类目)</li>
+        <li class="title text-ellipse">物料名称</li>
         <li class="text-ellipse" v-for="kind in similarList.kind.slice(0, 4)" @click="onSearch(kind.kind, 'kind', $event)">{{kind.kind}}</li>
       </template>
       <template v-if="similarList.pCmpCode && similarList.pCmpCode.length">
@@ -20,15 +20,15 @@
     <ul v-if="emptyStatus && type == 'default' && keyword && keyword !== '' && showSimilarWord">
       <template v-if="similarList.brand && similarList.brand.length && (similarType == 'all' || similarType == 'brand')">
         <li class="title text-ellipse" v-if="similarType == 'all'">品牌</li>
-        <li class="text-ellipse" v-for="brand in similarList.brand.slice(0, 4)" @click="onSearch(brand.nameEn, 'brand', $event)">{{brand.nameEn}}</li>
+        <li class="text-ellipse" v-for="brand in similarList.brand.slice(0, 8)" @click="onSearch(brand.nameEn, 'brand', $event)">{{brand.nameEn}}</li>
       </template>
       <template v-if="similarList.kind && similarList.kind.length && (similarType == 'all' || similarType == 'kind')">
-        <li class="title text-ellipse" v-if="similarType == 'all'">物料名称(类目)</li>
-        <li class="text-ellipse" v-for="kind in similarList.kind.slice(0, 4)" @click="onSearch(kind.nameCn, 'kind', $event)">{{kind.nameCn}}</li>
+        <li class="title text-ellipse" v-if="similarType == 'all'">物料名称</li>
+        <li class="text-ellipse" v-for="kind in similarList.kind.slice(0, 8)" @click="onSearch(kind.nameCn, 'kind', $event)">{{kind.nameCn}}</li>
       </template>
       <template v-if="similarList.component && similarList.component.length && (similarType == 'all' || similarType == 'code')">
         <li class="title text-ellipse" v-if="similarType == 'all'">型号</li>
-        <li class="text-ellipse" v-for="code in similarList.component.slice(0, 4)" @click="onSearch(code.code, 'code', $event)">{{code.code}}</li>
+        <li class="text-ellipse" v-for="code in similarList.component.slice(0, 8)" @click="onSearch(code.code, 'code', $event)">{{code.code}}</li>
       </template>
     </ul>
   </div>
@@ -64,6 +64,10 @@
       useMatchRule: { // 使用既定的匹配规则
         type: Boolean,
         default: true
+      },
+      expandClass: {
+        type: String,
+        default: ''
       }
     },
     data () {
@@ -196,34 +200,53 @@
   }
 </script>
 <style lang="scss" scoped>
-  .search-content {
-    color: #333;
-    input {
-      margin: 0 0 0 .5rem;
-      line-height: normal;
-    }
-    ul {
-      width: 6.48rem;
-      background: #fff;
-      position: absolute;
-      left: .6rem;
-      top: .72rem;
-      border: 1px solid #ccc;
-      border-radius: .05rem;
-      max-height: 4.5rem;
-      overflow-y: auto;
-      li {
-        height: .6rem;
-        line-height: .6rem;
-        padding: 0 .1rem;
-        font-size: .26rem;
-        &.title {
-          color: #666;
-          border-bottom: 1px solid #ddd;
-          font-weight: bold;
-          background: #f6f5f5;
+  .mobile-search-header {
+    &.search-content {
+      color: #333;
+      input {
+        margin: 0 0 0 .5rem;
+        line-height: normal;
+      }
+      ul {
+        width: 6.48rem;
+        background: #fff;
+        position: absolute;
+        left: .6rem;
+        top: .72rem;
+        border: 1px solid #ccc;
+        border-radius: .05rem;
+        max-height: 4.9rem;
+        overflow-y: auto;
+        li {
+          height: .6rem;
+          line-height: .6rem;
+          padding: 0 .1rem;
+          font-size: .26rem;
+          &.title {
+            color: #666;
+            border-bottom: 1px solid #ddd;
+            font-weight: bold;
+            background: #f6f5f5;
+          }
         }
       }
     }
+    &.normal {
+      position: relative;
+      background: #f1f3f6;
+      z-index: 1;
+      input {
+        border: 1px solid #3f84f6;
+        width: 7.1rem;
+        margin: 0 0 0 .1rem;
+      }
+      > a {
+        display: none;
+      }
+      ul {
+        width: 7.1rem;
+        left: .19rem;
+      }
+    }
   }
 </style>

+ 2 - 2
components/mobile/base/SearchHeader2.vue

@@ -20,7 +20,7 @@
         <li class="text-ellipse" v-for="brand in similarList.pBrandEn.slice(0, 4)" @click="onSearch(brand.nameCn, 'pBrandEn', $event)">{{brand.nameCn}}</li>
       </template>
       <template v-if="similarList.kind && similarList.kind.length && searchType === 'kind'">
-        <li class="title text-ellipse">物料名称(类目)</li>
+        <li class="title text-ellipse">物料名称</li>
         <li class="text-ellipse" v-for="kind in similarList.kind.slice(0, 4)" @click="onSearch(kind.kind, 'kind', $event)">{{kind.kind}}</li>
       </template>
     </ul>
@@ -34,7 +34,7 @@
         <li class="text-ellipse" v-for="brand in similarList.brand.slice(0, 4)" @click="onSearch(brand.nameCn, 'brand', $event)">{{brand.nameCn}}</li>
       </template>
       <template v-if="similarList.kind && similarList.kind.length">
-        <li class="title text-ellipse">物料名称(类目)</li>
+        <li class="title text-ellipse">物料名称</li>
         <li class="text-ellipse" v-for="kind in similarList.kind.slice(0, 4)" @click="onSearch(kind.nameCn, 'kind', $event)">{{kind.nameCn}}</li>
       </template>
     </ul>

+ 76 - 56
components/mobile/base/addressEdit.vue

@@ -1,54 +1,59 @@
 <template>
   <div>
     <div class="shipments_address_edit" :class="{'fix-sa-edit': inFix}">
-      <div class="form_line">
-        <ul class="list-unstyled" ref="addressContent">
-          <li class="clearfix">
-            <div class="com_left pull-left"><span>*</span>收货人姓名:</div>
-            <div class="form_input">
-              <input type="text" placeholder="请输入您的姓名" v-model="params.name" maxlength="10">
-            </div>
-          </li>
-          <li class="clearfix">
-            <div class="com_left pull-left"><span>*</span>联系电话:</div>
-            <div class="form_input">
-              <input type="tel" placeholder="请输入您的联系电话" v-model="params.tel" maxlength="11">
-            </div>
-          </li>
-          <li class="clearfix">
-            <div class="com_left pull-left">邮箱:</div>
-            <div class="form_input">
-              <input type="email" placeholder="请输入正确邮箱,用于接收订单提醒" v-model="params.email">
-            </div>
-          </li>
-          <li class="clearfix">
-            <div class="com_left pull-left"><span>*</span>所在地区:</div>
-            <div class="form_input" @click="addressShow = true">
-              <span v-text="params.area || '选择地区'">选择地区</span>
-              <i class="iconfont icon-xiangyou"></i>
-            </div>
-          </li>
-          <li class="clearfix">
-            <div class="com_left pull-left"><span>*</span>详细地址:</div>
-            <div class="form_input">
-              <input type="text" placeholder="请您填写详细地址,街道名、门牌号等" v-model="params.detailAddress" maxlength="30">
-            </div>
-          </li>
-          <li class="clearfix">
-            <div class="com_left pull-left"><span>*</span>默认地址:</div>
-            <div class="form_input">
-              <el-switch
-                v-model="isActive"
-                on-text="ON"
-                off-text="OFF">
-              </el-switch>
-            </div>
-          </li>
-        </ul>
-      </div>
-      <div class="control clearfix">
-        <div class="cancel" @click="storeInfosave('cancel')">取消</div>
-        <div class="save" @click="storeInfosave()">保存</div>
+      <div ref="addressContent" class="wrap" :class="{'height100': height100}">
+        <div>
+          <div class="form_line">
+            <ul class="list-unstyled">
+              <li class="clearfix">
+                <div class="com_left pull-left"><span>*</span>收货人姓名:</div>
+                <div class="form_input">
+                  <input type="text" placeholder="请输入您的姓名" v-model="params.name" maxlength="10">
+                </div>
+              </li>
+              <li class="clearfix">
+                <div class="com_left pull-left"><span>*</span>联系电话:</div>
+                <div class="form_input">
+                  <input type="tel" placeholder="请输入您的联系电话" v-model="params.tel" maxlength="11">
+                </div>
+              </li>
+              <li class="clearfix">
+                <div class="com_left pull-left">邮箱:</div>
+                <div class="form_input">
+                  <input type="email" placeholder="请输入正确邮箱,用于接收订单提醒" v-model="params.email">
+                </div>
+              </li>
+              <li class="clearfix">
+                <div class="com_left pull-left"><span>*</span>所在地区:</div>
+                <div class="form_input" @click="addressShow = true">
+                  <span v-text="params.area || '选择地区'">选择地区</span>
+                  <i class="iconfont icon-xiangyou"></i>
+                </div>
+              </li>
+              <li class="clearfix">
+                <div class="com_left pull-left"><span>*</span>详细地址:</div>
+                <div class="form_input">
+                  <input type="text" placeholder="请您填写详细地址,街道名、门牌号等" v-model="params.detailAddress" maxlength="30">
+                </div>
+              </li>
+              <li class="clearfix">
+                <div class="com_left pull-left"><span>*</span>默认地址:</div>
+                <div class="form_input">
+                  <el-switch
+                    v-model="isActive"
+                    on-text="ON"
+                    off-text="OFF">
+                  </el-switch>
+                </div>
+              </li>
+            </ul>
+          </div>
+          <div class="control clearfix">
+            <div class="cancel" @click="storeInfosave('cancel')">取消</div>
+            <div class="save" @click="storeInfosave()">保存</div>
+          </div>
+          <div style="height: 0.2rem;position:relative"></div>
+        </div>
       </div>
     </div>
     <select-address :className="className" :inFix="inFix" :isShow="addressShow" @closeAction="addressData"></select-address>
@@ -82,6 +87,10 @@
       className: {
         type: String,
         default: ''
+      },
+      height100: {
+        type: Boolean,
+        default: false
       }
     },
     data() {
@@ -165,6 +174,15 @@
             this.timeoutCount++
             this.params = this.data
           })
+      },
+      refleshSc () {
+        if (this.BScroll) {
+          this.BScroll.refresh()
+        } else {
+          this.BScroll = new BScroll(this.$refs.addressContent, {
+            click: true
+          })
+        }
       }
     },
     components: {
@@ -173,13 +191,7 @@
     },
     mounted() {
       this.$nextTick(() => {
-        if (this.BScroll) {
-          this.BScroll.refresh()
-        } else {
-          this.BScroll = new BScroll(this.$refs.addressContent, {
-            click: true
-          })
-        }
+        this.refleshSc()
       })
     }
   }
@@ -214,7 +226,7 @@
       }
     }
     .form_line{
-      margin:.2rem;
+      margin:0 .2rem;
       padding:.2rem;
       background: #ffffff;
       border-radius:.05rem;
@@ -265,6 +277,14 @@
         }
       }
     }
+    .wrap {
+      height: 8.3rem;
+      overflow-y: hidden;
+      margin-top: 0.2rem;
+      &.height100 {
+        height: calc(100vh - 1.26rem - 0.98rem - 0.2rem);
+      }
+    }
   }
   .fix-sa-edit {
     .form_line {

+ 2 - 2
components/mobile/base/addressView.vue

@@ -255,10 +255,10 @@
     }
   }
   .address_info{
-    padding:.2rem .2rem 1.2rem;
+    padding: 0 .2rem 1.2rem;
     ul {
       li {
-        margin-bottom: 0.2rem;
+        margin-top: 0.2rem;
         padding: 0.3rem 0.24rem 0;
         border: 1px solid #e4e6e9;
         border-radius: 5px;

+ 16 - 5
components/mobile/brand/ComponentDetail.vue

@@ -6,7 +6,7 @@
         <span>{{component.brand.nameCn || '-'}}</span>
       </div>
       <div class="base-detail-item">
-        <span>物料名称(类目):</span>
+        <span>物料名称:</span>
         <span>{{component.kind.nameCn || '-'}}</span>
       </div>
       <!--<div class="base-detail-item">-->
@@ -50,7 +50,7 @@
           </div>
           <div class="list">
             <div class="fl" style="width: 100%">
-              <div class="name">物料名称(类目):</div>
+              <div class="name">物料名称:</div>
               <div class="text" style="color: #3f84f6">{{item.kindNameCn || '-'}}</div>
             </div>
 
@@ -305,9 +305,20 @@
       collectComponent: function () {
         if (this.user.logged) {
           if (!this.isCollect) {
-            this.$store.dispatch('product/saveEntity', {componentid: this.component.id, kind: 2})
-            this.collectResult = '收藏成功'
-            this.timeoutCount++
+            this.$http.post('/trade/collection/save', {componentid: this.component.id, kind: 2})
+              .then(res => {
+                if (res.data.code === 1) {
+                  this.collectResult = '收藏成功'
+                  this.$store.dispatch('product/saveStores')
+                } else {
+                  this.collectResult = res.data.message || '收藏失败'
+                }
+                this.timeoutCount++
+              }, err => {
+                this.collectResult = err.response.data || '收藏失败'
+                this.timeoutCount++
+                console.log(err)
+              })
           } else {
             this.$http.post('/trade/collection/delete/cmpId', [this.component.id]).then(response => {
               this.collectResult = '取消成功'

+ 2 - 2
components/mobile/center/Seek.vue

@@ -155,8 +155,8 @@
       margin: 0 0 0 -.02rem;
     }
     span {
-      height: .46rem;
-      line-height: .46rem;
+      /*height: .46rem;*/
+      /*line-height: .46rem;*/
     }
   }
   $seekTitleLine: .72rem;

+ 2 - 1
components/mobile/common/PullUp.vue

@@ -64,7 +64,8 @@
         } else {
           height = document.body.scrollHeight
           scrolled = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop
-        } if (this.FixedEl) {
+        }
+        if (this.FixedEl) {
           let obj = document.getElementById(this.fixId)
           // availHeight = document.getElementById(this.fixId).clientHeight + 50
           let _sc = obj.clientHeight + obj.scrollTop

+ 4 - 4
components/mobile/common/StatisticsMobile.vue

@@ -160,12 +160,12 @@
         return this.$store.state.count.allCount.data
       },
       inquirySheet () {
-        let sheetNum = this.$store.state.count.inquirySheet.data.count
-        return this.formatDouble(sheetNum)
+        let sheetNum = this.$store.state.count.inquirySheet.data
+        return sheetNum ? this.formatDouble(sheetNum.count) : 0
       },
       inquirySheetLast () {
-        let lastSheetNum = this.$store.state.count.inquirySheetLast.data.count
-        return this.formatDouble(lastSheetNum)
+        let lastSheetNum = this.$store.state.count.inquirySheetLast.data
+        return lastSheetNum ? this.formatDouble(lastSheetNum.count) : 0
       },
       all () {
         let count = this.$store.state.supplier.merchant.merchantAll.data

+ 388 - 0
components/mobile/search/componet-item.vue

@@ -0,0 +1,388 @@
+<template>
+  <div class="middle">
+    <div class="list">
+      <div class="name">品牌:</div>
+      <div class="text overHidden">{{item.brandNameEn || item.brandNameCn || '-'}}</div>
+    </div>
+    <div class="list">
+      <div class="name">物料名称:</div>
+      <div class="text overHidden">{{item.kindNameCn || '-'}}</div>
+    </div>
+    <div class="list">
+      <div class="name">型号:</div>
+      <div class="text overHidden">{{item.code || '-'}}</div>
+    </div>
+    <div class="list">
+      <div class="name">规格:</div>
+      <div class="text overHidden">{{item.spec || '-'}}</div>
+    </div>
+    <div class="list">
+      <div class="fl">
+        <div class="name">包装:</div>
+        <div class="text overHidden" style="width: 2.3rem">{{item.packaging || '无包装信息'}}</div>
+      </div>
+      <div class="fl">
+        <div class="name">交期(天):</div>
+        <div class="text overHidden" style="width: 1.8rem" v-if="item.b2cMaxDelivery && (item.b2cMaxDelivery != item.b2cMinDelivery)" v-text="item.b2cMinDelivery + '-'+ item.b2cMaxDelivery"></div>
+        <div class="text overHidden" style="width: 1.8rem" v-if="item.b2cMaxDelivery && (item.b2cMaxDelivery == item.b2cMinDelivery)" v-text="item.b2cMinDelivery"></div>
+      </div>
+    </div>
+    <div class="list">
+      <div class="fl">
+        <div class="name">生产日期:</div>
+        <div class="text overHidden" style="width: 1.75rem" :title="item.produceDate">{{item.produceDate || '-'}}</div>
+      </div>
+      <div class="fl">
+        <div class="name">库存:</div>
+        <div class="text overHidden" style="width: 2.3rem">{{item.reserve || '-'}}</div>
+      </div>
+    </div>
+    <div class="list">
+      <div class="fl">
+        <div class="name">规格书:</div>
+        <div class="text">
+          <a :href="item.attach" target="_blank" v-if="item.attach && item.attach !== '' && item.attach !== '1'">
+            <i class="iconfont icon-pdf" :class="{'active': item.attach && item.attach !== '' && item.attach !== '1'}"></i>
+          </a>
+          <template v-else>
+            <i class="iconfont icon-pdf" :class="{'active': item.attach && item.attach !== '' && item.attach !== '1'}"></i>
+          </template>
+        </div>
+      </div>
+      <div class="fl">
+        <div class="name">起拍:</div>
+        <div class="text overHidden" style="width: 2.3rem">{{item.minBuyQty || '-'}}</div>
+      </div>
+    </div>
+    <div class="list">
+      <div class="name">卖家名称:</div>
+      <div class="text overHidden">{{item.storeName}}</div>
+    </div>
+    <div class="list">
+      <div class="name left">价格梯度<p>(pcs):</p></div>
+      <div class="table left">
+        <ul>
+          <li class="title">
+            <div>分段数量/PCS</div>
+            <div>分段单价</div>
+          </li>
+          <li v-for="price in item.prices">
+            <div>{{price.start}}+</div>
+            <div v-if="item.currencyName == 'RMB'">¥{{price.rMBPrice}}</div>
+            <div v-else>${{price.uSDPrice}}</div>
+          </li>
+        </ul>
+      </div>
+    </div>
+    <div class="list clearfix">
+      <div class="pull-left cancat" @click.stop="cancatSeller(item)">
+        <i class="iconfont icon-kefu1"></i>联系卖家
+      </div>
+      <div class="pull-right clearfix">
+        <div class="pull-left" @click="buy(item, false, $event)">加入购物车</div>
+        <div class="pull-left" @click="buy(item, true, $event)">立即购买</div>
+      </div>
+    </div>
+    <remind-box :title="remindText" :timeoutCount="timeoutCount"></remind-box>
+  </div>
+</template>
+
+<script>
+  import { RemindBox } from '~components/mobile/common'
+  export default {
+    props: {
+      item: {
+        type: Object,
+        default: {}
+      }
+    },
+    components: {
+      RemindBox
+    },
+    data () {
+      return {
+        remindText: '',
+        timeoutCount: 0
+      }
+    },
+    methods: {
+      cancatSeller(item) {
+        this.$emit('cancatSeller', item)
+      },
+      buy(item, flag, e) {
+        this.baseUtils.buyOrCar(flag, e, this, item, '/mobile/center/user/pay/')
+      },
+      setRemindText (str) {
+        this.remindText = str
+        this.timeoutCount++
+      }
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+  @mixin overFlowHidden {
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+  @mixin lineHeight($value) {
+    height: $value;
+    line-height: $value;
+  }
+  .middle {
+    background: #fff;
+    padding: 0.2rem;
+    .lookMoreBtn {
+      font-size: 0.28rem;
+      color: #2d8cf0
+    }
+    .more_icon {
+      font-size: 0.34rem;
+      color: #999;
+    }
+    .order-tag {
+      display: inline-block;
+      font-size: .18rem;
+      color: #fff;
+      font-weight: bold;
+      background: #ee1717;
+      height: .27rem;
+      width: .27rem;
+      line-height: .27rem;
+      text-align: center;
+      border-radius: .05rem;
+      position: relative;
+      top: -.05rem;
+      margin-right: .05rem;
+      &.reserve-tag {
+        background: #07bb1c;
+      }
+    }
+    text-align: left;
+    background: #fff;
+    /*border-radius: 5px;*/
+    margin-bottom: 0.2rem;
+    .overHidden {
+      @include overFlowHidden()
+    }
+    .pms {
+      color: #f57710;
+      border: 1px solid #f57710;
+      border-radius: 0.4rem;
+      background: #fff;
+      font-size: 0.24rem;
+      height: 0.4rem;
+      line-height: 0.4rem;
+      width: 0.8rem;
+      text-align: center;
+    }
+    .list {
+      @include overFlowHidden();
+      width: 100%;
+      .left {
+        float: left;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+      }
+      .textinfo {
+        font-size: 0.18rem;
+        margin-left: 0.1rem;
+        display: inline-block;
+        background: #3f84f6;
+        color: #fff;
+        font-weight: bold;
+        border-radius: 3px;
+        width: 0.8rem;
+        height: 0.32rem;
+        line-height: 0.32rem;
+        text-align: center
+      }
+      .button {
+        font-size: 0.3rem;
+        color: #1a58dd;
+        width: 0.92rem;
+        height: 0.43rem;
+        line-height: 0.43rem;
+        text-align: center;
+        border-radius: 5px;
+        border:1px solid #1a58dd;
+        display: inline-block;
+        margin-right: 0.2rem;
+      }
+      margin-bottom: 0.18rem;
+      &::after{
+        clear: both;
+        display: block;
+        content: ' ';
+        visibility: hidden;
+        zoom: 1;
+      }
+      .fl {
+        width: 3.5rem;
+        float: left;
+      }
+      .fr {
+        text-align: left;
+        width: 2.6rem;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+      }
+      &.list-long {
+        .fl {
+          width: 100% !important;
+        }
+      }
+      .name {
+        color: #666;
+        font-size: 0.28rem;
+        display: inline-block;
+      }
+      .text {
+        display: inline-block;
+        color: #333;
+        font-size: 0.28rem;
+        vertical-align: top;
+        width: 5.5rem;
+        @include overFlowHidden();
+      }
+      .table {
+        width: 5.85rem;
+        margin-bottom: 0;
+        margin-top: 0;
+        margin-left: 0.1rem;
+        li {
+          height: 0.43rem;
+          line-height: 0.43rem;
+          border-left: .01rem solid #c5c5c5;
+          font-size: .28rem;
+          &::after {
+            clear: both;
+            display: block;
+            content: ' ';
+            visibility: hidden;
+            zoom: 1;
+          }
+          div {
+            text-align: center;
+            width: 50%;
+            float: left;
+            border-right: .01rem solid #c5c5c5;
+            border-bottom: .01rem solid #c5c5c5;
+          }
+          &:nth-child(odd) {
+            background: #ddd;
+            color: #333;
+            font-size: 0.28rem;
+          }
+          &:nth-child(even) {
+            background: #fcfcfc;
+            color: #333;
+            font-size: 0.28rem;
+          }
+          &:nth-last-of-type(1){
+            color: #f31919;
+          }
+          &.title {
+            font-size: 0.28rem;
+            color: #333;
+          }
+        }
+      }
+      .pull-right {
+        div {
+          color: #3f84f6;
+          font-size: 0.28rem;
+          border-radius: 0.07rem;
+          border: 1px solid #3f84f6;
+          background: #fff;
+          width: 2rem;
+          line-height: 0.56rem;
+          height: 0.56rem;
+          text-align: center;
+        }
+        div:last-child {
+          margin-left: 0.2rem;
+          color: #fff;
+          background: #3f84f6;
+        }
+      }
+      i {
+        &.icon-pdf {
+          color: #929292;
+          font-size: 0.4rem;
+        }
+        &.active {
+          color: #eb062b;
+        }
+      }
+      .cancat {
+        height: 0.56rem;
+        line-height: 0.56rem;
+        border: 1px solid #3f84f6;
+        color: #3f84f6;
+        font-size: 0.26rem;
+        text-align: center;
+        border-radius: 3px;
+        padding: 0 0.1rem;
+        overflow: hidden;
+        width: auto;
+      }
+      img.pull-left {
+        width: 1.21rem;
+        height: 0.8rem;
+        border: 1px solid #dcdcdc;
+        border-radius: 0.07rem;
+        margin-top: 0;
+      }
+    }
+    .sayPriBtn {
+      width: 2rem;
+      @include lineHeight(0.54rem);
+      color: #fff;
+      font-size: 0.28rem;
+      background: #3f84f6;
+      border-radius: 3px;
+      text-align: center;
+      margin-top: -0.1rem;
+    }
+    .middle_bottom {
+      .middle_bottom-left {
+        float: left;
+        img {
+          width: 1.21rem;
+          height: 1.21rem;
+          border: 1px solid #4290f7;
+          border-radius: 0.07rem;
+          overflow: hidden;
+        }
+        div.middle_bottom-leftitem {
+          line-height: 0.5rem;
+          font-size: 0.28rem;
+          div {
+            display: inline-block;
+            color: #666;
+            height: 100%;
+            float: left;
+            &.bottom-title {
+              display: inline-block;
+              text-align: justify;
+              vertical-align: top;
+              width: 1.5rem;
+              height: 0.5rem;
+              &::after {
+                content: "";
+                display: inline-block;
+                width: 100%;
+                overflow: hidden;
+                height: 0;
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+</style>

+ 1 - 1
components/mobile/store/StoreDetail.vue

@@ -107,7 +107,7 @@
             </div>
             <div class="list">
               <div class="fl">
-                <div class="name">物料名称(类目):</div>
+                <div class="name">物料名称:</div>
                 <div class="text overHidden" style="width: 1rem">{{item.kindNameCn || '-'}}</div>
               </div>
               <div class="fl">

+ 1 - 1
components/mobile/supplier/List.vue

@@ -181,7 +181,7 @@
           }
           span {
             color: #333;
-            width: 4.65rem;
+            width: 5.5rem;
             overflow: hidden;
             text-overflow: ellipsis;
             white-space: nowrap;

+ 1 - 1
components/mobile/supplier/SupplierDetail.vue

@@ -49,7 +49,7 @@
       <ul v-if="productListData && productListData.length">
         <li v-for="product in productListData">
           <div class="prop">
-            <span class="head">品牌/物料名称(类目):</span>
+            <span class="head">品牌/物料名称:</span>
             <span class="item">{{(product.standard == 1 ? product.pbranden : product.brand) || '—'}}</span>
             <span class="item">{{product.kind || product.prodName || '—'}}</span>
           </div>

+ 2 - 1
components/pcb/product/Detail.vue

@@ -67,7 +67,7 @@
     </div>
     <ul class="kind">
       <template v-if="properties && properties.length">
-        <li class="inline-block" v-for="prop in properties">
+        <li class="inline-block text-ellipse" :title="prop[0].value" v-for="prop in properties">
           {{prop[1].labelCn}}:{{prop[0].value || '-'}}
         </li>
       </template>
@@ -545,6 +545,7 @@
         height: 40px;
         line-height: 40px;
         padding-left: 47px;
+        padding-right: 10px;
         border-bottom: 1px solid #d6ebfd;
         &:nth-last-child(-n + 4) {
           border-bottom: none;

+ 1 - 1
components/pcb/search/Kind.vue

@@ -6,7 +6,7 @@
     </a>
     <div v-show="show_filter">
       <div class="sl-wrap" v-if="good_list.total > 0">
-        <div class="sl-key f14">物料名称(类目):</div>
+        <div class="sl-key f14">物料名称:</div>
         <div class="sl-value">
           <span v-for="(kind_temp, index) in kind_exp_arr">
             <div class="sl-filter" @click="click_kind_exp(kind_temp.ki_id, index)">

+ 1 - 2
components/product/ComponentGoods.vue

@@ -8,7 +8,7 @@
     <table class="product-list">
       <thead>
       <tr style="height: 40px;">
-        <th width="180">品牌/物料名称(类目)/型号/规格</th>
+        <th width="180">品牌/物料名称/型号/规格</th>
         <th width="100">包装/生产日期</th>
         <th width="120">卖家名称</th>
         <th width="110">库存</th>
@@ -276,7 +276,6 @@
         return null
       },
       handlerCurrentNode (data, node) {
-        console.log(this.pageParams)
         this.pageParams.page = 1
         this.pageCmpGoods(this.pageParams)
       },

+ 1 - 1
components/product/brand/BrandComponent.vue

@@ -12,7 +12,7 @@
     <table class="table" v-if="activeTab == 0">
       <thead>
         <tr class="bgf7">
-          <th width="350">物料名称(类目)</th>
+          <th width="350">物料名称</th>
           <th width="350">型号</th>
           <th width="350">规格</th>
           <th width="250">规格书</th>

+ 1 - 1
components/product/component/ComponentDetail.vue

@@ -20,7 +20,7 @@
               <div :title="list.brand ? list.brand.nameCn : ''"><a class="message-body blue" target="_blank" :href="`/product/brand/${list.brand.uuid}`">{{list.brand && list.brand.nameCn ?  list.brand.nameCn : ''}}</a></div>
             </div>
             <div class="message-detail">
-              <div class="message-item">物料名称(类目)</div>
+              <div class="message-item">物料名称</div>
               <div class="colon">:</div>
               <div class="message-body body-long">
                 {{list.kind && list.kind.nameCn ? list.kind.nameCn : '-'}}

+ 5 - 2
components/provider/Suppliers.vue

@@ -19,7 +19,7 @@
             <a @click="goStoreApply" class="btn-sure"><button class="btn btn-primary">立即入驻</button></a>
           </td>
         </tr>
-        <nuxt-link tag="tr" :to="'/store/' + store.uuid" :key="store.uuid" v-for="store in stores.content" v-if="store">
+        <tr :key="store.uuid" v-for="store in stores.content" v-if="store" @click="goStoreDetail(store)">
           <td>
             <div class="logo">
               <a :href="'/store/' + store.uuid" target="_blank"><img :src="store.logoUrl || '/images/store/common/default.png'" :alt="store.storeName"></a>
@@ -35,7 +35,7 @@
           <td class="vertical-middle" style="text-align: center">
             <a :href="'/store/' + store.uuid" target="_blank"><button class="btn btn-primary">进入店铺</button></a>
           </td>
-        </nuxt-link>
+        </tr>
         <tr v-if="!stores.content || stores.content.length == 0" class="no-content">
           <td colspan="10" class="text-center" style="line-height: 1125px; font-size: 20px;">
             <i class="fa fa-smile-o fa-lg"></i> 暂无店铺信息
@@ -129,6 +129,9 @@ export default {
       this.pageParams.keyword = this.keyword === '' ? null : this.keyword
 
       this.pageCommodity(this.pageParams)
+    },
+    goStoreDetail (store) {
+      window.open('/store/' + store.uuid)
     }
   }
 }

+ 2 - 2
components/search/ForwardGoodsList.vue

@@ -5,7 +5,7 @@
         <tr>
           <th width="25%">型号/品牌</th>
           <th width="25%">卖家名称</th>
-          <th width="25%">物料名称(类目)/单位</th>
+          <th width="25%">物料名称/单位</th>
           <th width="15%">规格</th>
           <th width="15%"></th>
         </tr>
@@ -30,7 +30,7 @@
           </td>
           <td>
             <div class="line">
-              <span class="title inline-block">物料名称(类目)</span>
+              <span class="title inline-block">物料名称</span>
               <span class="content inline-block" :title="item.kind || item.kinden">{{item.kind || item.kinden || '-'}}</span>
             </div>
             <div class="line">

+ 17 - 8
components/search/GoodList.vue

@@ -41,7 +41,7 @@
           <thead>
           <tr style="height: 40px;">
             <!--<th width="80"></th>-->
-            <th width="200">品牌/物料名称(类目)/型号/规格</th>
+            <th width="200">品牌/物料名称/型号/规格</th>
             <th width="100">包装/生产日期</th>
             <th width="110">卖家名称</th>
             <th width="140">库存</th>
@@ -64,16 +64,16 @@
           <!--</td>-->
             <td class="brand-code">
               <img v-if="item.status === 602" class="sellout-flag" src="/images/search/sellout-search.png" alt="">
-              <div class="brand" v-if="item.branduuid"><a @click.stop="goRouter(`/product/brand/${item.branduuid}`)" class="text-num" v-text="item.brandNameCn || item.brandNameEn || '-'"></a></div>
-              <div class="brand" v-if="!item.branduuid">{{item.brandNameCn || item.brandNameEn || '-'}}</div>
-              <div class="brand" v-if="item.kindUuid"><a @click.stop="goRouter(`/product/kind/${item.kindUuid}`)" v-text="item.kindNameCn"></a></div>
-              <div class="brand" v-if="!item.kindUuid">{{item.kindNameCn || '—'}}</div>
-              <div class="code"  v-if="item.code">
+              <div class="brand" v-if="item.branduuid" :title="item.brandNameCn || item.brandNameEn"><a @click.stop="goRouter(`/product/brand/${item.branduuid}`)" class="text-num" v-text="item.brandNameCn || item.brandNameEn || '-'"></a></div>
+              <div class="brand" v-if="!item.branduuid" :title="item.brandNameCn || item.brandNameEn">{{item.brandNameCn || item.brandNameEn || '-'}}</div>
+              <div class="brand" v-if="item.kindUuid" :title="item.kindNameCn"><a @click.stop="goRouter(`/product/kind/${item.kindUuid}`)" v-text="item.kindNameCn"></a></div>
+              <div class="brand" v-if="!item.kindUuid" :title="item.kindNameCn">{{item.kindNameCn || '—'}}</div>
+              <div class="code"  v-if="item.code" :title="item.code">
                 <a v-if="item.uuid" @click.stop="goRouter(`/product/component/${item.uuid}`)" class="f16 text-bold text-num" v-text="item.code"></a>
                 <span v-if="!item.uuid">{{item.code}}</span>
               </div>
               <div class="brand" v-if="!item.code">—</div>
-              <div class="brand">{{item.spec || '—'}}</div>
+              <div class="brand" :title="item.spec">{{item.spec || '—'}}</div>
             </td>
             <td>
               <div class="package" v-text="item.packaging"></div>
@@ -82,7 +82,7 @@
             </td>
             <td>
               <div v-if="item.storeName">
-                <a @click.stop="goRouter('/store/' + item.storeId)" v-text="item.storeName"></a>
+                <a @click.stop="goRouter('/store/' + item.storeid)" v-text="item.storeName"></a>
               </div>
               <div v-if="!item.storeName">—</div>
             </td>
@@ -462,6 +462,15 @@
   .product-list .brand-code .code {
     font-weight: 600;
   }
+  .product-list .brand-code .brand,
+  .product-list .brand-code .code{
+    max-width: 290px;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    /* text-align: center; */
+    padding: 0 10px;
+  }
 
   .product-list th {
     color: rgb(50,50,50);

+ 1 - 1
components/search/Kind.vue

@@ -9,7 +9,7 @@
     </a>
     <div v-show="show_filter">
     <div class="sl-wrap" v-if="good_list.total > 0">
-      <div class="sl-key f14">物料名称(类目):</div>
+      <div class="sl-key f14">物料名称:</div>
       <div class="sl-value">
         <span v-for="(kind_temp, index) in kind_exp_arr">
           <div class="sl-filter" @click="click_kind_exp(kind_temp.ki_id, index)">

+ 6 - 2
components/store/CommodityInfo.vue

@@ -37,7 +37,7 @@
               <span class="name">品&nbsp;牌</span>:<span v-text="commodity.brandNameEn"></span>
             </div>
             <div class="com-info">
-              <span class="name no-letter">物料名称(类目)</span>:<span v-text="commodity.kindNameCn || '无物料名称(类目)信息'"></span>
+              <span class="name no-letter">物料名称</span>:<span v-text="commodity.kindNameCn || '无物料名称信息'"></span>
             </div>
             <div class="com-info">
               <span class="name">规&nbsp;格</span>:<span v-text="commodity.spec || '无规格信息'"></span>
@@ -554,6 +554,9 @@
     border-bottom: 1px solid #D6D3CE;
     line-height: 40px;
   }
+  .commodity-detail .content .code span{
+    word-break: break-all;
+  }
 
 	.commodity-detail .content .com-info {
 		font-size: 14px;
@@ -585,8 +588,9 @@
     border-bottom-right-radius: 0;
     border-top-right-radius: 0;
   }
-
   .content .com-info .name {
+    display: inline-block;
+    width: 80px;
     letter-spacing: 15px;
   }
   .content .com-info .no-letter {

+ 14 - 14
components/store/home/CommodityList.vue

@@ -34,7 +34,7 @@
         <table class="goodslist" style="width: 955px;background:#fff;" >
           <thead>
           <tr>
-            <th width="165"><div>品牌/物料名称(类目)</div></th>
+            <th width="165"><div>品牌/物料名称</div></th>
             <th width="148"><div>型号/规格</div></th>
             <th width="114"><div>包装/生产日期</div></th>
             <th width="125"><div>库存</div></th>
@@ -53,33 +53,33 @@
               <img class="sellout-store-commodity" v-if="commodity.status === 602" src="/images/search/sellout-search.png" alt="">
               <img class="specific-price-tag" v-if="isSpecificPriceTag(commodity.tag) && isConsignment" src="/images/floor/specificPrice-store.png" alt="">
               <div class="brand" v-if="commodity.brandNameEn || commodity.brandEn">
-                <a v-if="commodity.brandNameEn && commodity.branduuid" @click="goBrandDetail('/product/brand/' + commodity.branduuid, $event)" v-text="commodity.brandNameEn"></a>
-                <span v-if="commodity.brandNameEn && !commodity.branduuid" v-text="commodity.brandNameEn"></span>
-                <span v-if="commodity.brandEn && !commodity.branduuid">{{commodity.brandEn}}</span>
+                <a v-if="commodity.brandNameEn && commodity.branduuid" @click="goBrandDetail('/product/brand/' + commodity.branduuid, $event)" v-text="commodity.brandNameEn" :title="commodity.brandNameEn"></a>
+                <span v-if="commodity.brandNameEn && !commodity.branduuid" v-text="commodity.brandNameEn" :title="commodity.brandNameEn"></span>
+                <span v-if="commodity.brandEn && !commodity.branduuid" :title="commodity.brandEn">{{commodity.brandEn}}</span>
               </div>
               <div class="brand" v-if="!commodity.brandNameEn && !commodity.brandEn && commodity.kindNameCn">—</div>
-              <a v-if="commodity.kindNameCn && commodity.kindUuid" @click="goBrandDetail('/product/kind/' + commodity.kindUuid, $event)" v-text="commodity.kindNameCn"></a>
-              <span v-if="commodity.kindNameCn && !commodity.kindUuid" v-text="commodity.kindNameCn"></span>
+              <a v-if="commodity.kindNameCn && commodity.kindUuid" @click="goBrandDetail('/product/kind/' + commodity.kindUuid, $event)" v-text="commodity.kindNameCn" :title="commodity.kindNameCn"></a>
+              <span v-if="commodity.kindNameCn && !commodity.kindUuid" v-text="commodity.kindNameCn" :title="commodity.kindNameCn"></span>
               <div class="brand" v-if="!commodity.kindNameCn && (commodity.brandNameEn || commodity.brandEn)">—</div>
               <div class="brand" v-if="!commodity.brandNameEn && !commodity.brandEn && !commodity.kindNameCn">—</div>
             </td>
             <td class="brand-code">
-              <div class="code" v-if="commodity.code" v-text="commodity.code"></div>
+              <div class="code" v-if="commodity.code" v-text="commodity.code" :title="commodity.code"></div>
               <div class="code" v-if="!commodity.code">—</div>
-              <div class="brand spec" v-text="commodity.spec || '—'"></div>
+              <div class="brand spec" v-text="commodity.spec || '—'" :title="commodity.spec"></div>
             </td>
             <td>
-              <div class="package" v-if="commodity.packaging" v-text="commodity.packaging"></div>
+              <div class="package" v-if="commodity.packaging" v-text="commodity.packaging" :title="commodity.packaging"></div>
               <div class="package" v-if="!commodity.packaging && !commodity.produceDate">—</div>
-              <div class="date" v-if='commodity.produceDate' v-text="commodity.produceDate">2016-12-01</div>
+              <div class="date" v-if='commodity.produceDate' v-text="commodity.produceDate" :title="commodity.produceDate">2016-12-01</div>
             </td>
             <td style="text-align: left;vertical-align: middle;">
               <div class="goods" v-if="commodity.reserve">
-                库存:<span v-text="commodity.reserve">31500</span>
+                库存:<span v-text="commodity.reserve" :title="commodity.reserve">31500</span>
               </div>
               <div v-if="!commodity.reserve" style="text-align: center;margin-left: 0;"><span>—</span></div>
               <div class="from" v-if="commodity.reserve && commodity.reserve>0">
-                起拍:<span v-if="commodity.minBuyQty" v-text="commodity.minBuyQty">300</span>
+                起拍:<span v-if="commodity.minBuyQty" v-text="commodity.minBuyQty" :title="commodity.minBuyQty">300</span>
               </div>
               <!--<div class="multiple">
                 倍数:<span>1</span>
@@ -109,8 +109,8 @@
             <td>
               <div v-if="commodity.b2cMinDelivery">
                 <!--{{commodity.b2cMinDelivery || 0}}-{{commodity.b2cMaxDelivery || 0}}天-->
-                <span v-if="commodity.b2cMinDelivery != commodity.b2cMaxDelivery" v-text="commodity.b2cMinDelivery + '-' + commodity.b2cMaxDelivery"></span>
-                <span v-if="commodity.b2cMinDelivery == commodity.b2cMaxDelivery" v-text="commodity.b2cMinDelivery"></span>
+                <span v-if="commodity.b2cMinDelivery != commodity.b2cMaxDelivery" v-text="commodity.b2cMinDelivery + '-' + commodity.b2cMaxDelivery" :title="commodity.b2cMinDelivery + '-' + commodity.b2cMaxDelivery"></span>
+                <span v-if="commodity.b2cMinDelivery == commodity.b2cMaxDelivery" v-text="commodity.b2cMinDelivery" :title="commodity.b2cMinDelivery"></span>
               </div>
               <div v-if="!commodity.b2cMinDelivery"><span>—</span></div>
             </td>

+ 2 - 2
components/supplier/details.vue

@@ -21,7 +21,7 @@
           <h4 v-text="detail.cmpCode">3</h4>
           <ul class="list-unstyled">
             <li class="item">
-              <span>物料名称(类目)</span>
+              <span>物料名称</span>
               <p v-text="detail.kind ? spliceString(detail.kind, 135) : detail.prodName ? spliceString(detail.prodName, 135) : '暂无信息'">1</p>
             </li>
             <li class="item">
@@ -66,7 +66,7 @@
             <p v-text="detail.standard !== 1 ? spliceString(detail.brand, 90) : spliceString(detail.pbranden, 90)">2</p>
           </li>
           <li class="form-item">
-            <span>物料名称(类目):</span>
+            <span>物料名称:</span>
             <p v-text="detail.kind ? spliceString(detail.kind, 90) : detail.prodName ? spliceString(detail.prodName, 90) : '-'">1</p>
           </li>
           <li class="form-item">

+ 3 - 3
components/supplier/resource.vue

@@ -51,7 +51,7 @@
           <th width="66">序号</th>
           <th width="1008">
             <span>原厂型号 / 品牌</span>
-            <span>物料名称(类目) / 单位</span>
+            <span>物料名称 / 单位</span>
             <span>规格</span>
           </th>
           <th width="116">操作</th>
@@ -67,7 +67,7 @@
                   <p v-text="item.cmpCode ? spliceString(item.cmpCode, 95) : '暂无信息'">2</p>
                 </li>
                 <li class="item">
-                  <span class="fl">物料名称(类目)</span>
+                  <span class="fl">物料名称</span>
                   <p v-text="item.kind ? spliceString(item.kind, 95) : item.prodName ? spliceString(item.prodName, 95) : '暂无信息'">1</p>
                 </li>
                 <li class="item">
@@ -113,7 +113,7 @@
             <p v-text="applyObj.brand ? spliceString(applyObj.brand, 90) : '-'">32432</p>
           </li>
           <li class="form-item">
-            <span>物料名称(类目):</span>
+            <span>物料名称:</span>
             <p v-text="applyObj.prodName ? spliceString(applyObj.prodName, 90) : '-'">32</p>
           </li>
           <li class="form-item">

+ 18 - 1
layouts/pcb.vue

@@ -1,7 +1,7 @@
 <template>
   <div id="main">
     <header-view v-if="!isInFrame"></header-view>
-    <main-header :isPcb="true"></main-header>
+    <main-header :isPcb="true" :isFixed="isFixed"></main-header>
     <main-nav></main-nav>
     <nuxt/>
     <footer-view></footer-view>
@@ -13,6 +13,11 @@
   import { MainHeader, MainNav } from '~components/main'
   export default {
     name: 'pcb',
+    data () {
+      return {
+        isFixed: false
+      }
+    },
     components: {
       HeaderView: Header,
       FooterView: Footer,
@@ -20,6 +25,18 @@
       MainHeader,
       MainNav
     },
+    mounted () {
+      this.$nextTick(() => {
+        window.addEventListener('scroll', () => {
+          let obj = document.querySelector('#headerWrapperContent')
+          let scrolled = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop
+          // 写死是因为获取不到
+          if (obj) {
+            this.isFixed = scrolled >= obj.offsetTop
+          }
+        }, false)
+      })
+    },
     head () {
       return {
         title: this.title || '【优软商城】IC电子元器件现货采购交易平台商城',

+ 6 - 6
pages/index.vue

@@ -47,10 +47,10 @@
       Home
     },
     fetch ({store}) {
-      let today = new Date()
-      let nowYear = today.getFullYear()
-      let nowMonth = today.getMonth() + 1
-      let LastMonth = today.getMonth()
+//      let today = new Date()
+//      let nowYear = today.getFullYear()
+//      let nowMonth = today.getMonth() + 1
+//      let LastMonth = today.getMonth()
       return !store.state.option.isMobile ? Promise.all([
         store.dispatch('loadNewFloors', {type: 'home_floor_f1,home_floor_f2,home_floor_f3,home_floor_f4,home_floor_f5,home_expand_f1,home_expand_f2'}),
         store.dispatch('loadBanners', {type: 'home_banner_carousel'}),
@@ -66,8 +66,8 @@
       ]) : Promise.all([
         store.dispatch('supplier/loadVendorAll', {page: 1, size: 20}),
         store.dispatch('loadAllCount', {_status: 'actived', usedFor: 'mall_home_banner'}),
-        store.dispatch('loadInquirySheet', {year: nowYear, month: nowMonth}),
-        store.dispatch('loadInquirySheetLast', {year: nowYear, month: LastMonth}),
+        store.dispatch('loadInquirySheet'),
+//        store.dispatch('loadInquirySheetLast', {year: nowYear, month: LastMonth}),
         store.dispatch('provider/findSimilarStoreList', {page: 1, count: 10, type: 'ORIGINAL_FACTORY-DISTRIBUTION-AGENCY-CONSIGNMENT', keyword: ''}),
         store.dispatch('applyPurchase/loadMobileHomeList', {pageNumber: 1, pageSize: 5, enUU: store.state.option.user.data.enterprise ? store.state.option.user.data.enterprise.uu : null})
       ])

+ 4 - 4
pages/mobile/center/index.vue

@@ -35,7 +35,7 @@
         </ul>
       </div>
       <div class="search-content">
-        <input type="text" :placeholder="userType == 'saler' ? '品牌/物料名称(类目)/型号/规格/公司' : '品牌/型号'" v-model="seekKeyword" @keyup.13="searchSeek" ref="searchSeekInput" @focus="inputGetFocus()" @blur="blur()">
+        <input type="text" :placeholder="userType == 'saler' ? '品牌/物料名称/型号/规格/公司' : '品牌/型号'" v-model="seekKeyword" @keyup.13="searchSeek" ref="searchSeekInput" @focus="inputGetFocus()" @blur="blur()">
         <span @click="searchSeek" >
         <i class="iconfont icon-sousuo"></i>
         </span>
@@ -111,7 +111,7 @@
           </div>
           <div class="content">
             <div class="fl">
-              <div class="linetext">物料名称(类目)
+              <div class="linetext">物料名称:
                 <template v-if="!item.kind">
                   {{item.kinden || '-'}}
                 </template>
@@ -143,7 +143,7 @@
           <div class="middle">
             <div class="list">
               <div class="fl">
-                <div class="name">物料名称(类目):</div>
+                <div class="name">物料名称:</div>
                 <div class="text">{{item.kindNameCn || '-'}}</div>
               </div>
               <div class="fr">
@@ -276,7 +276,7 @@
         <div class="content">
           <div class="infob">
             <div class="info"><div class="name">型号:</div><div>{{cnmpCode}}</div></div>
-            <div class="info"><div class="name">物料名称(类目):</div><div>{{cnmpType || '-'}}</div></div>
+            <div class="info"><div class="name">物料名称:</div><div>{{cnmpType || '-'}}</div></div>
             <div class="info"><div class="name">品牌:</div><div>{{cnmpBand}}</div></div>
           </div>
           <div class="content_sq" v-bind:key="item.id" v-for="(item, index) in vendorlist" >

+ 1 - 1
pages/mobile/center/user/applyPurchase.vue

@@ -21,7 +21,7 @@
           <li v-for="comp in compList">
             <div class="listInfo">
               <p>品牌:<span v-text="comp.brand || '-'"></span></p>
-              <p>物料名称(类目):<span v-text="comp.kind || '-'"></span></p>
+              <p>物料名称:<span v-text="comp.kind || '-'"></span></p>
               <p>型号:<span v-text="comp.cmpCode || '-'"></span></p>
               <p>规格:<span v-text="comp.spec || '-'"></span></p>
               <p>单位:<span v-text="comp.unit || 'PCS'"></span></p>

+ 120 - 0
pages/mobile/center/user/cart/_key.vue

@@ -0,0 +1,120 @@
+<template>
+  <div class="mobile-search-goods mobile-content mobile-content-long">
+    <search-header
+      :placeholder="'请输入您要采购的型号'"
+      :outerKeyword="outerKeyword"
+      :useMatchRule="false"
+      :expandClass="'normal'"
+      :similarType="'code'"
+      @searchAction="onSearch"></search-header>
+    <ul v-if="goodsList.length">
+      <li v-for="goods in goodsList">
+        <component-item :item="goods" @cancatSeller="concatSeller"></component-item>
+      </li>
+    </ul>
+    <empty-status
+      :type="'search'"
+      :text="'暂无搜索结果'"
+      :showLink="false"
+      v-else></empty-status>
+    <link-user :infoObj="currentStoreInfo"
+               :showLink="showLink"
+               @closeAction="showLink = false"></link-user>
+    <pull-up
+      :allPage="allPage"
+      :page="page"
+      @pullUpAction="onPullUpAction"
+      :searchMore="fetching"></pull-up>
+  </div>
+</template>
+<script>
+  import {LinkUser, SearchHeader} from '~components/mobile/base'
+  import componentItem from '~components/mobile/search/componet-item'
+  import { PullUp, EmptyStatus } from '~components/mobile/common'
+  export default {
+    layout: 'mobile',
+    components: {
+      LinkUser,
+      SearchHeader,
+      componentItem,
+      PullUp,
+      EmptyStatus
+    },
+    data () {
+      return {
+        outerKeyword: '',
+        currentStoreInfo: {},
+        showLink: false,
+        page: 1,
+        goodsList: []
+      }
+    },
+    fetch ({ store, params }) {
+      return Promise.all([
+        store.dispatch('searchData/searchForListNew', {count: 10, keyword: params.key, page: 1, type: 'component'})
+      ])
+    },
+    watch: {
+      '$route.params.key': {
+        handler: function (val) {
+          this.outerKeyword = val || ''
+        },
+        immediate: true
+      },
+      'searchList': {
+        handler: function (val) {
+          if (val && val.stock && val.stock.content) {
+            this.goodsList = [...this.goodsList, ...val.stock.content]
+          }
+        },
+        immediate: true
+      }
+    },
+    computed: {
+      listData () {
+        return this.$store.state.searchData.searchList.listNew
+      },
+      searchList () {
+        return this.listData.data
+      },
+      fetching () {
+        return this.listData.fetching
+      },
+      goods () {
+        return this.searchList ? this.searchList.stock : {}
+      },
+      allPage () {
+        return this.goods && this.goods.total ? Math.ceil(this.goods.total / this.goods.size) : 0
+      }
+    },
+    methods: {
+      onSearch (searchObj) {
+        if (searchObj.keyword) {
+          this.$router.push(`/mobile/center/user/cart/${searchObj.keyword}`)
+        }
+      },
+      concatSeller (item) {
+        this.$http.get(`/api/store-service/stores?uuid=${item.storeid}`).then(res => {
+          this.currentStoreInfo = res.data.enterprise
+          this.showLink = true
+        })
+      },
+      reloadList () {
+        this.$store.dispatch('searchData/searchForListNew', {count: 10, keyword: this.$route.params.key, page: this.page, type: 'component'})
+      },
+      onPullUpAction () {
+        this.page++
+        this.reloadList()
+      }
+    }
+  }
+</script>
+<style lang="scss" scoped>
+  .mobile-search-goods {
+    ul {
+      li {
+        border-bottom: .2rem solid #f1f3f6;
+      }
+    }
+  }
+</style>

+ 18 - 6
pages/mobile/center/user/cart.vue → pages/mobile/center/user/cart/index.vue

@@ -1,5 +1,12 @@
 <template>
   <div class="mobile-cart" :class="{'empty-mobile-cart': !cartList.length}" id="mobileFixContent" @touchmove="blurEvent()">
+    <search-header
+      :placeholder="'请输入您要采购的型号'"
+      :outerKeyword="outerKeyword"
+      :useMatchRule="false"
+      :expandClass="'normal'"
+      :similarType="'code'"
+      @searchAction="onSearch"></search-header>
     <template v-if="cartList.length">
       <ul class="store-list">
         <li class="store-item" v-for="(item, storeIndex) in cartList">
@@ -19,7 +26,7 @@
                 </label>
                 <div class="params inline-block">
                   <p class="param text-ellipse"><span class="title">品牌:</span>{{goods.goods.brandNameEn || '-'}}</p>
-                  <p class="param text-ellipse"><span class="title">物料名称(类目):</span>{{goods.kiName || '-'}}</p>
+                  <p class="param text-ellipse"><span class="title">物料名称:</span>{{goods.kiName || '-'}}</p>
                   <p class="param text-ellipse"><span class="title">型号:</span>{{goods.code || '-'}}</p>
                   <p class="param text-ellipse"><span class="title">规格:</span>{{goods.spec || '-'}}</p>
                 </div>
@@ -72,7 +79,7 @@
 </template>
 <script>
   import {RemindBox, PullUp, EmptyStatus} from '~components/mobile/common'
-  import {LinkUser} from '~components/mobile/base'
+  import {LinkUser, SearchHeader} from '~components/mobile/base'
   import { goodsPurchaseOperate } from '~utils/mixin'
   export default {
     layout: 'mobile',
@@ -88,7 +95,8 @@
         allCurrency: 'RMB', // 选定币别
         currentStoreInfo: {},
         showLink: false,
-        isChange: false
+        isChange: false,
+        outerKeyword: ''
       }
     },
     mixins: [goodsPurchaseOperate],
@@ -96,7 +104,8 @@
       RemindBox,
       PullUp,
       LinkUser,
-      EmptyStatus
+      EmptyStatus,
+      SearchHeader
     },
     fetch ({ store }) {
       return Promise.all([
@@ -296,12 +305,10 @@
             storeid: item.storeUuid
           })
         })
-        console.log(arrOD)
         this.$http.post('/trade/order/saveByGroup', {
           arrOD: arrOD,
           currency: this.allCurrency
         }).then(res => {
-          console.log(res.data)
           if (res.data.code === 1) {
             if (res.data.message) {
               this.setRemindText(res.data.message)
@@ -359,6 +366,11 @@
         }, err => {
           this.setRemindText(err.response.data || '系统错误')
         })
+      },
+      onSearch (searchObj) {
+        if (searchObj.keyword) {
+          this.$router.push(`/mobile/center/user/cart/${searchObj.keyword}`)
+        }
       }
     }
   }

+ 331 - 0
pages/mobile/center/user/collect/component/_key.vue

@@ -0,0 +1,331 @@
+<template>
+  <div class="mobile-center">
+    <div class="com-mobile-header mobile-center-header">
+      <a @click="goLastPage"><i class="iconfont icon-fanhui"></i></a>
+      <p>器件收藏</p>
+      <p class="en-name"><img :src="`/images/mobile/center/${user.data.enterprise.uu ? 'en' : 'self'}.png`" alt="">{{currentEnName}}</p>
+    </div>
+    <div class="mobile-fix-content mobile-centerfix-content" id="mobileFixContent">
+      <div class="search-content search-content2" style="position: relative;padding-top: .25rem;">
+        <input type="text" placeholder="请输入您要查找的型号" @input="onBrandChange" v-model="keyword" @keyup.13="searchComplist">
+        <span @click.stop="searchComplist" >
+          <i class="iconfont icon-sousuo"></i>
+        </span>
+        <ul class="similar brand-similar-list" v-show="showSimilarCodeList && keyword">
+          <li v-for="sBrand in similarBrand" :key="sBrand.code" @click.stop="setBrand(sBrand.code)">{{sBrand.code}}</li>
+        </ul>
+      </div>
+      <template v-if="compList && compList.length">
+        <div class="lock_count" v-if="keyword">
+          <p>搜索“<span>{{keyword}}</span>”,为您找到{{compCollectList.data.total}}条信息</p>
+        </div>
+        <ul>
+          <li class="clearfix" :key="comp.componentid" v-for="comp in compList" @click="goUrl('/mobile/brand/componentDetail/' + comp.componentinfo.uuid)">
+            <div class="fl">
+              <p>品牌:<span v-text="comp.brand.nameEn || '-'"></span></p>
+              <p>物料名称:<span v-text="comp.kind.nameCn || '-'"></span></p>
+              <p>型号:<span v-text="comp.code || '-'"></span></p>
+              <p>规格:<span v-text="comp.spec || '-'"></span></p>
+              <p>产品描述:<span v-text="comp.description || '-'"></span></p>
+            </div>
+            <div class="vir"></div>
+            <div class="fr">
+              <i class="iconfont icon-shoucang" :style="comp.isFocus?'color:#ff7800':'color: #ddd'" @click="cancelFocus(comp, $event)"></i>
+              <a class="sa-pub" @click="compInquiry(comp, $event)">立即询价</a>
+            </div>
+          </li>
+        </ul>
+      </template>
+      <empty-status :type="'collect'" :showLink="true" :text="'抱歉,没有相关信息'" v-else></empty-status>
+    </div>
+    <remind-box :title="remindText" :timeoutCount="timeoutCount"></remind-box>
+    <pull-up :fixId="'mobileFixContent'" :searchMore="fetching" :allPage="allPage" :page="page" @pullUpAction="onPullUpAction"></pull-up>
+    <publish-supplier-seek :product="componentSeekObj" :showPublishBox="showPublishBox" @cancelAction="showPublishBox = false" @remindAction="onRemind"></publish-supplier-seek>
+  </div>
+</template>
+<script>
+  import { RemindBox, PullUp, EmptyStatus } from '~components/mobile/common'
+  import { PublishSupplierSeek } from '~components/mobile/applyPurchase'
+  export default {
+    middleware: 'authenticated',
+    layout: 'mobileNoHeader',
+    data () {
+      return {
+        keyword: '',
+        showSimilarCodeList: false,
+        similarBrand: '',
+        remindText: '',
+        timeoutCount: 0,
+        page: 1,
+        count: 10,
+        isChange: false,
+        compList: [],
+        componentSeekObj: {
+          standard: 1,
+          cmpCode: '',
+          pbranden: '',
+          spec: null,
+          kind: ''
+        },
+        showPublishBox: false
+      }
+    },
+    watch: {
+      'compCollectList.data': {
+        handler: function (val) {
+          if (val.components) {
+            if (this.isChange) {
+              this.compList = this.baseUtils.deepCopy(val.components)
+              this.isChange = false
+            } else {
+              this.compList = [...this.compList, ...this.baseUtils.deepCopy(val.components)]
+            }
+          } else {
+            this.compList = []
+          }
+        },
+        immediate: true
+      }
+    },
+    created () {
+      this.compList = []
+      this.keyword = this.$route.params.key
+      this.$store.dispatch('searchData/searchForListInMobile', { page: 1, count: 10, w: this.$route.params.key })
+    },
+    computed: {
+      compCollectList () {
+        return this.$store.state.searchData.searchList.lists
+      },
+      fetching () {
+        return this.compCollectList.fetching
+      },
+      allPage () {
+        return Math.floor(this.compCollectList.data.total / this.compCollectList.data.size) + Math.floor(this.compCollectList.data.total % this.compCollectList.data.size > 0 ? 1 : 0)
+      },
+      colList () {
+        return this.$store.state.product.common.collectList.data
+      }
+    },
+    components: {
+      RemindBox,
+      PullUp,
+      PublishSupplierSeek,
+      EmptyStatus
+    },
+    methods: {
+      onBrandChange: function () {
+        this.keyword = this.keyword.trim()
+        if ((/[^\x00-\xff]/g).test(this.keyword)) {
+          let chineseIndex = -1
+          for (let i = 0; i < this.keyword.length; i++) {
+            if ((/[^\x00-\xff]/g).test(this.keyword.charAt(i)) && !(/[\u4e00-\u9fa5]/).test(this.keyword.charAt(i))) {
+              chineseIndex = i
+              break
+            }
+          }
+          if (chineseIndex > -1) {
+            this.keyword = this.keyword.substring(0, chineseIndex)
+          }
+        } else if (this.keyword && this.baseUtils.getRealLen(this.keyword) > 50) {
+          this.keyword = this.baseUtils.cutOutString(this.keyword, 50)
+        } else {
+          this.getSimilarBrand()
+        }
+      },
+      getSimilarBrand: function () {
+        if (this.keyword) {
+          this.$http.get('/search/similarKeywords', {params: {keyword: this.keyword, type: 'component'}})
+            .then(response => {
+              this.similarBrand = response.data.result
+              this.showSimilarCodeList = response.data.result.length > 0
+            })
+        } else {
+          this.showSimilarCodeList = false
+        }
+      },
+      setBrand: function (brand) {
+        this.keyword = brand
+        this.showSimilarCodeList = false
+        this.searchComplist()
+      },
+      searchComplist () {
+        if (this.keyword !== '') {
+          this.showSimilarCodeList = false
+          this.showPublishBox = false
+          this.page = 1
+          this.isChange = true
+          this.reloadList()
+        } else {
+          this.remindText = '请输入您要查找的型号'
+          this.timeoutCount++
+        }
+      },
+      onRemind: function (str) {
+        this.remindText = str
+        this.timeoutCount++
+      },
+      cancelFocus: function (item, event) {
+        event.stopPropagation()
+        if (!item.isFocus) {
+          this.$http.post('/trade/collection/save', {componentid: item.id, kind: 2})
+            .then(res => {
+              if (res.data.code === 1) {
+                this.onRemind('收藏成功')
+                item.isFocus = true
+              } else {
+                this.onRemind(res.data.message || '收藏失败')
+              }
+            }, err => {
+              this.onRemind(err.response.data || '收藏失败')
+              console.log(err)
+            })
+        } else {
+          this.$http.post('/trade/collection/delete/cmpId', [item.id]).then(response => {
+            if (response.data === 'success') {
+              this.onRemind('取消收藏成功')
+              item.isFocus = false
+            } else {
+              this.onRemind('取消收藏失败')
+            }
+          }, err => {
+            console.log(err)
+            this.onRemind(err.response.data || '取消收藏失败')
+          })
+        }
+      },
+      reloadList: function () {
+        this.$store.dispatch('searchData/searchForListInMobile', { page: this.page, count: this.count, w: this.keyword })
+      },
+      onPullUpAction: function () {
+        this.page++
+        this.reloadList()
+      },
+      compInquiry: function (item, e) {
+        if (e) {
+          e.stopPropagation()
+        }
+        this.componentSeekObj.cmpCode = item.code
+        this.componentSeekObj.pbranden = item.brand.nameEn
+        this.componentSeekObj.spec = item.spec
+        this.componentSeekObj.kind = item.kind.nameCn
+        this.componentSeekObj = JSON.parse(JSON.stringify(this.componentSeekObj))
+        this.showPublishBox = true
+      },
+      goUrl: function (url) {
+        this.$router.push(url)
+      }
+    }
+  }
+</script>
+<style lang="scss" scoped>
+  .mobile-fix-content {
+    .similar {
+      position: absolute;
+      width: 6.5rem;
+      max-height: 2.5rem;
+      overflow-y: auto;
+      z-index: 12;
+      border: 1px solid #7e7e7e;
+      border-radius: .05rem;
+      top: .7rem;
+      background: #fff;
+      left: 0.1rem;
+      right: 0;
+      margin: 0 auto;
+      li {
+        height: .5rem;
+        line-height: .5rem;
+        font-size: .26rem;
+        color: #999;
+        padding-left: .19rem;
+        text-align: left;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+        &:focus, &:active, &:hover {
+          background: #999;
+          color: #fff;
+        }
+      }
+    }
+    .search-content {
+      text-align: center;
+      input {
+        border: 1px solid #376ff3;
+      }
+      span{
+        top:0;
+      }
+    }
+    .lock_count{
+      padding: .2rem;
+      text-align: center;
+      p{
+        color:#666;
+        span{
+          color:#376ff3;
+        }
+      }
+    }
+    > ul {
+      width: 7.1rem;
+      margin: 0 auto;
+      li {
+        border-radius: .05rem;
+        border: 1px solid #ccc;
+        margin: .25rem 0 0 0;
+        position: relative;
+        background: #fff;
+        .fl {
+          width: 4.71rem;
+          color: #666;
+          padding: .25rem .1rem .25rem .23rem;
+          p {
+            font-size: .3rem;
+            line-height: .42rem;
+            overflow: hidden;
+            text-overflow: ellipsis;
+            white-space: nowrap;
+            span {
+              color: #333;
+            }
+          }
+        }
+        .vir {
+          position: absolute;
+          top: .28rem;
+          bottom: .28rem;
+          right: 2.36rem;
+          border-right: .01rem dashed #9f9f9f;
+        }
+        .fr {
+          width: 2.34rem;
+          text-align: center;
+          margin-top: .3rem;
+          i {
+            display: block;
+            color: #ff7800;
+            font-size: .5rem;
+            width: .6rem;
+            height: .6rem;
+            line-height: .6rem;
+            text-align: center;
+            margin: .29rem auto .1rem;
+          }
+          .sa-pub {
+            display: block;
+            width: 1.7rem;
+            height: .47rem;
+            line-height: .47rem;
+            text-align: center;
+            font-size: .26rem;
+            color: #fff;
+            background: #008bf7;
+            margin: 0 auto;
+            border-radius: .05rem;
+          }
+        }
+      }
+    }
+  }
+</style>

+ 96 - 2
pages/mobile/center/user/collect/component.vue → pages/mobile/center/user/collect/component/index.vue

@@ -6,11 +6,20 @@
       <p class="en-name"><img :src="`/images/mobile/center/${user.data.enterprise.uu ? 'en' : 'self'}.png`" alt="">{{currentEnName}}</p>
     </div>
     <div class="mobile-fix-content mobile-centerfix-content" id="mobileFixContent">
+      <div class="search-content search-content2" style="position: relative;padding-top: .25rem;">
+        <input type="text" placeholder="请输入您要查找的型号" @input="onBrandChange" v-model="keyword" @keyup.13="searchComplist">
+        <span @click.stop="searchComplist" >
+          <i class="iconfont icon-sousuo"></i>
+        </span>
+        <ul class="similar brand-similar-list" v-show="showSimilarCodeList && keyword">
+          <li v-for="sBrand in similarBrand" :key="sBrand.code" @click.stop="setBrand(sBrand.code)">{{sBrand.code}}</li>
+        </ul>
+      </div>
       <ul v-if="compList && compList.length">
         <li class="clearfix" :key="comp.componentid" v-for="comp in compList" @click="goUrl('/mobile/brand/componentDetail/' + comp.componentinfo.uuid)">
           <div class="fl">
             <p>品牌:<span v-text="comp.componentinfo.brand.nameCn || '-'"></span></p>
-            <p>物料名称(类目):<span v-text="comp.componentinfo.kind.nameCn || '-'"></span></p>
+            <p>物料名称:<span v-text="comp.componentinfo.kind.nameCn || '-'"></span></p>
             <p>型号:<span v-text="comp.componentinfo.code || '-'"></span></p>
             <p>规格:<span v-text="comp.componentinfo.spec || '-'"></span></p>
             <p>产品描述:<span v-text="comp.componentinfo.description || '-'"></span></p>
@@ -37,6 +46,9 @@
     layout: 'mobileNoHeader',
     data () {
       return {
+        keyword: '',
+        showSimilarCodeList: false,
+        similarBrand: '',
         remindText: '',
         timeoutCount: 0,
         page: 1,
@@ -90,6 +102,50 @@
       EmptyStatus
     },
     methods: {
+      onBrandChange: function () {
+        this.keyword = this.keyword.trim()
+        if ((/[^\x00-\xff]/g).test(this.keyword)) {
+          let chineseIndex = -1
+          for (let i = 0; i < this.keyword.length; i++) {
+            if ((/[^\x00-\xff]/g).test(this.keyword.charAt(i)) && !(/[\u4e00-\u9fa5]/).test(this.keyword.charAt(i))) {
+              chineseIndex = i
+              break
+            }
+          }
+          if (chineseIndex > -1) {
+            this.keyword = this.keyword.substring(0, chineseIndex)
+          }
+        } else if (this.keyword && this.baseUtils.getRealLen(this.keyword) > 50) {
+          this.keyword = this.baseUtils.cutOutString(this.keyword, 50)
+        } else {
+          this.getSimilarBrand()
+        }
+      },
+      getSimilarBrand: function () {
+        if (this.keyword) {
+          this.$http.get('/search/similarKeywords', {params: {keyword: this.keyword, type: 'component'}})
+            .then(response => {
+              this.similarBrand = response.data.result
+              this.showSimilarCodeList = response.data.result.length > 0
+            })
+        } else {
+          this.showSimilarCodeList = false
+        }
+      },
+      setBrand: function (brand) {
+        this.keyword = brand
+        this.showSimilarCodeList = false
+        this.searchComplist()
+      },
+      searchComplist () {
+        if (this.keyword !== '') {
+          this.showSimilarCodeList = false
+          this.$router.push(`/mobile/center/user/collect/component/${this.keyword}`)
+        } else {
+          this.remindText = '请输入您要查找的型号'
+          this.timeoutCount++
+        }
+      },
       onRemind: function (str) {
         this.remindText = str
         this.timeoutCount++
@@ -133,7 +189,45 @@
 </script>
 <style lang="scss" scoped>
   .mobile-fix-content {
-    ul {
+    .similar {
+      position: absolute;
+      width: 6.5rem;
+      max-height: 2.5rem;
+      overflow-y: auto;
+      z-index: 12;
+      border: 1px solid #7e7e7e;
+      border-radius: .05rem;
+      top: .7rem;
+      background: #fff;
+      left: 0.1rem;
+      right: 0;
+      margin: 0 auto;
+      li {
+        height: .5rem;
+        line-height: .5rem;
+        font-size: .26rem;
+        color: #999;
+        padding-left: .19rem;
+        text-align: left;
+        overflow: hidden;
+        text-overflow: ellipsis;
+        white-space: nowrap;
+        &:focus, &:active, &:hover {
+          background: #999;
+          color: #fff;
+        }
+      }
+    }
+    .search-content {
+      text-align: center;
+      input {
+        border: 1px solid #376ff3;
+      }
+      span{
+        top:0;
+      }
+    }
+    > ul {
       width: 7.1rem;
       margin: 0 auto;
       li {

+ 15 - 5
pages/mobile/center/user/pay/_orderId.vue

@@ -27,7 +27,7 @@
               <div class="clearfix" style="padding: .31rem .25rem;">
                 <div class="fl">
                   <div class="ps-goods-item text-ellipse"><span>品牌:</span>{{goods.brName || '-'}}</div>
-                  <div class="ps-goods-item text-ellipse"><span>物料名称(类目):</span>{{goods.kiName || '-'}}</div>
+                  <div class="ps-goods-item text-ellipse"><span>物料名称:</span>{{goods.kiName || '-'}}</div>
                   <div class="ps-goods-item text-ellipse"><span>型号:</span>{{goods.cmpCode || '-'}}</div>
                   <div class="ps-goods-item text-ellipse"><span>规格:</span>{{goods.spec || '-'}}</div>
                 </div>
@@ -173,7 +173,7 @@
               <span>品牌:</span>{{cGoods.brName}}
             </div>
             <div class="cg-param-line text-ellipse">
-              <span>物料名称(类目):</span>{{cGoods.kiName}}
+              <span>物料名称:</span>{{cGoods.kiName}}
             </div>
             <div class="cg-param-line text-ellipse">
               <span>型号:</span>{{cGoods.cmpCode}}
@@ -212,14 +212,14 @@
                    :title="'选择发票'"
                    @closeAction="showInvoiceModal = false">
       <ul class="invoice-list">
-        <li @click="setInvoiceCheck(-1)">
+        <!--<li @click="setInvoiceCheck(-1)">
           <div class="inv-content">
             <label class="bottom-modal-check mobile-cart-check" :class="{active: selectedInvoiceIndex === -1}">
               <input type="checkbox">
             </label>
             <span class="inv-head">暂不开票</span>
           </div>
-        </li>
+        </li>-->
         <li v-for="(inv, index) in invoiceData" @click.stop="setInvoiceCheck(index)">
           <div class="inv-content">
             <label class="bottom-modal-check mobile-cart-check" :class="{'active': selectedInvoiceIndex === index}">
@@ -493,6 +493,10 @@
         return this.$store.state.userCenter.list.address.data
       },
       invoiceData () {
+        let invoiceData = this.$store.state.userCenter.list.invoice.data
+        if (invoiceData && invoiceData.length) {
+          this.selectedInvoiceIndex = 0
+        }
         return this.$store.state.userCenter.list.invoice.data
       },
       // 已选择完的发票
@@ -976,12 +980,18 @@
         })
       },
       reloadInvoice () {
-        this.$store.dispatch('userCenter/loadPayInvoice')
+        return this.$store.dispatch('userCenter/loadPayInvoice')
       },
       async addinvoiceFn(ty, item) {
         this.showAddinvoice = false
+        if (!this.invoiceData || !this.invoiceData.length) {
+          this.showInvoiceModal = false
+        }
         if (ty) {
           this.reloadInvoice()
+//            .then(() => {
+//            this.setInvoiceCheck(++this.selectedInvoiceIndex)
+//          })
         }
       },
       updateInvoice(item, index) {

+ 3 - 3
pages/mobile/center/vendor/attentionBus.vue

@@ -32,7 +32,7 @@
         <nuxt-link to="/">返回首页</nuxt-link>
       </div>
       <div class="fixedAlert" v-show="isShowAlert">
-        关注物料名称(类目),商机无限!
+        关注物料名称,商机无限!
         <i class="iconfont icon-guanbi" @click="isShowAlert = false"></i>
       </div>
       <remind-box :title="collectResult" :timeoutCount="timeoutCount"></remind-box>
@@ -191,8 +191,8 @@
         border: 1px solid #376ff3;
       }
       span {
-        height: .46rem;
-        line-height: .46rem;
+        /*height: .46rem;*/
+        /*line-height: .46rem;*/
       }
     }
     .attention-bus-list {

+ 1 - 1
pages/mobile/center/vendor/invoice/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="mobile-invoice mobile-content mobile-content-long vendor-invoice" :class="{'invoice-record': switchType == 'record'}" @click="showFilterInvoiceType = false">
     <div class="switch-head">
-      <div class="com-switch-head">
+      <div class="com-switch-head" style="line-height: 0.78rem">
         <span class="com-switch-item inline-block" :class="{active: switchType == 'apply'}" @click="setSwitchType('apply')">买家开票申请</span>
         <span class="com-switch-item inline-block" :class="{active: switchType == 'record'}" @click="setSwitchType('record')">开票记录</span>
       </div>

+ 7 - 8
pages/mobile/center/vendor/product.vue

@@ -19,7 +19,7 @@
           <div class="content">
             <div class="fl" :class="providerType === 'enterprise' ? 'fullWidth': ''">
               <div class="linetext">品牌:{{item.pbranden}}</div>
-              <div class="linetext">物料名称(类目)
+              <div class="linetext">物料名称:
                 <template v-if="!item.kind">
                   {{item.kinden || '-'}}
                 </template>
@@ -70,7 +70,7 @@
             </div>
             <div class="list">
               <div class="fl">
-                <div class="name">物料名称(类目):</div>
+                <div class="name">物料名称:</div>
                 <div class="text">{{item.kindNameCn || '-'}}</div>
               </div>
               <div class="fr">
@@ -155,7 +155,7 @@
           <div class="content">
             <div class="infob">
               <div class="info"><div class="name">品牌:</div><div>{{cnmpBand}}</div></div>
-              <div class="info"><div class="name">物料名称(类目):</div><div>{{cnmpType || '-'}}</div></div>
+              <div class="info"><div class="name">物料名称:</div><div>{{cnmpType || '-'}}</div></div>
               <div class="info"><div class="name">型号:</div><div>{{cnmpCode}}</div></div>
             </div>
             <div class="content_sq" v-bind:key="item.id" v-for="(item, index) in vendorlist" >
@@ -308,14 +308,14 @@
           </template>
         </div>
         <div class="update-materiel-wrapper-list clearfix" :class="{'overHidden': MaterielItem.standard === 1}">
-          <div class="name pull-left"><a class="red">*</a>物料名称(类目):</div>
+          <div class="name pull-left"><a class="red">*</a>物料名称:</div>
           <template v-if="MaterielItem.standard === 1">
             {{MaterielItem.kind}}
           </template>
           <template v-else>
             <div class="input pull-left clearfix"  style="width: 4.09rem">
               <!--<input type="text" v-model="MaterielItem.kind" @blur="checkCode" @input="onCodeChange" placeholder="请勿填中文符号">-->
-              <input type="text" placeholder="请输入物料名称(类目)" v-model="MaterielItem.kind"/>
+              <input type="text" placeholder="请输入物料名称" v-model="MaterielItem.kind"/>
               <i class="iconfont icon-guanbi1" @click.stop="MaterielItem.kind = ''"></i>
             </div>
           </template>
@@ -587,7 +587,6 @@
       },
       // 编辑物料
       updateMateriel(item) {
-        console.log(item)
         this.MaterielItem = item
         this.$item = this.baseUtils.deepCopy(item)
         this.cmpImg = item.cmpImg || ''
@@ -1164,8 +1163,8 @@
         border: 1px solid #376ff3;
       }
       span {
-        height: .46rem;
-        line-height: .46rem;
+        /*height: .46rem;*/
+        /*line-height: .46rem;*/
       }
     }
     .seek-area {

+ 1 - 3
pages/mobile/center/vendor/productList/index.vue

@@ -5,7 +5,7 @@
         <div class="content">
           <div class="infob">
             <div class="info"><div class="name">品牌:</div><div>{{cnmpBand}}</div></div>
-            <div class="info"><div class="name">物料名称(类目):</div><div>{{cnmpType || '-'}}</div></div>
+            <div class="info"><div class="name">物料名称:</div><div>{{cnmpType || '-'}}</div></div>
             <div class="info"><div class="name">型号:</div><div>{{cnmpCode}}</div></div>
             <div class="info"><div class="name">规格:</div><div>{{cnmpSpec}}</div></div>
             <div class="info"><div class="name">单位:</div><div>{{cnmpUnit}}</div></div>
@@ -135,7 +135,6 @@
     methods: {
       closeMoreinfo() {},
       update(item) {
-        console.log(item)
         this.$store.commit('product/brand/GET_ONSALE_DETAILS_SUCCESS', item)
         localStorage.setItem('ProductListItem', JSON.stringify(item))
         this.$router.push('/mobile/center/vendor/productdetails')
@@ -150,7 +149,6 @@
         })
       },
       toAddpro() {
-        console.log(this.vendorlist)
         let item = {
           brandNameEn: this.cnmpBand,
           kindNameCn: this.cnmpType,

+ 1 - 4
pages/mobile/center/vendor/productdetails.vue

@@ -12,7 +12,7 @@
         <span>{{chooseItem.brandNameEn}}</span>
       </div>
       <div class="over list">
-        <span class="name">物料名称(类目):</span>
+        <span class="name">物料名称:</span>
         <span>{{chooseItem.kindNameCn || '-'}}</span>
       </div>
       <div class="over list clearfix">
@@ -161,7 +161,6 @@
     },
     mounted() {
       this.chooseItem = this.baseUtils.deepCopy(this.$store.state.product.brand.onSaleDetails.data)
-      console.log(this.chooseItem)
       this.chooseItem.storeInfoOms = this.chooseItem.storeid === '33069557578d44e69bd91ad12d28a8d4' ? '寄售' : '自营'
       if (localStorage.getItem('ProductListItem')) {
         let a = JSON.parse(localStorage.getItem('ProductListItem'))
@@ -344,7 +343,6 @@
             return false
           }
           this.chooseItem.prices[index - 1].end = item.start - 1
-          console.log(this.chooseItem.prices)
         }
       },
       // 结束价格阶段失去焦点
@@ -505,7 +503,6 @@
               isHas = true
               break
             } else if (!/^[0-9]+([.]{1}[0-9]{1,6})?$/.test(this.chooseItem.prices[i].rMBPrice)) {
-              console.log(this.chooseItem.prices[i].rMBPrice)
               this.timeoutCount++
               this.collectResult = '单价只能输入数字'
               isHas = true

+ 9 - 7
pages/mobile/order/details.vue

@@ -73,8 +73,8 @@
             </div>
             <div class="list-item clearfix">
               <div class="list-wrap-content-brand clearfix pull-left">
-                <div class="name pull-left">物料名称(类目):</div>
-                <div class="pull-left spec" style="width: 1.79rem">{{details.kiName || '-'}}</div>
+                <div class="name pull-left">物料名称:</div>
+                <div class="pull-left spec" style="width: 2.5rem">{{details.kiName || '-'}}</div>
               </div>
               <div class="pull-left list-wrap-content-brand clearfix">
                 <div class="name pull-left">单价:</div>
@@ -114,7 +114,7 @@
       <!--</div>-->
       <div class="order-details-priInfo">
         <div class="clearfix">
-          <div class="justifyAlign">运费:</div>
+          <div class="justifyAlign">运 &nbsp;&nbsp;费:</div>
           <span style="display: inline-block;min-width:2rem;text-align: left">
             <a v-if="orderList.currency === 'RMB'"  class="red" style="color:#f43938;">¥{{orderList.fare | priceFiter}}</a>
             <a class="red" style="color:#f43938;" v-else>${{orderList.fare | priceFiter}}</a>
@@ -132,7 +132,7 @@
       </div>
       <div class="list-all-info clearfix">
         <!--共<span>{{orderList.batchQty}}</span>件商品&nbsp;&nbsp;合计:-->
-        <div style="font-size: 0.27rem;" class="justifyAlign">合计:</div>
+        <div style="font-size: 0.27rem;" class="justifyAlign">合 &nbsp;&nbsp;计:</div>
         <span class="pri" style="min-width: 2rem;text-align: left">
           <a v-if="orderList.currency === 'RMB'" class="red" style="color:#f43938;font-size: 0.32rem;">¥</a><a class="red" style="color:#f43938;font-size: 0.32rem;" v-else>$</a>{{orderList.ensurePrice}}
         </span>
@@ -499,7 +499,6 @@
           }
         }
         let { data } = await axios.get(`/trade/purchase/purchaseId/${route.query.uuid}`)
-        console.log(data)
         data.data.area = JSON.parse(data.data.jsonAddress)
         data.data.rule = data.data.jsonRule ? JSON.parse(data.data.jsonRule) : ''
         data.data.paytype = route.query.paytype
@@ -1253,10 +1252,13 @@
           color: #999;
         }
         .jianmian {
+          display:inline-block;
+          vertical-align: middle;
           font-size: 0.22rem;
           color: #fff;
-          width: 0.48rem;
-          height:0.25rem;
+          width: 0.6rem;
+          height: 0.28rem;
+          border-radius:.05rem;
           text-align: center;
           line-height: 0.25rem;
           background: #15b262;

+ 6 - 8
pages/mobile/order/index.vue

@@ -77,8 +77,8 @@
           </div>
           <div class="list-item clearfix">
             <div class="list-wrap-content-brand clearfix pull-left">
-              <div class="name pull-left">物料名称(类目):</div>
-              <div class="pull-left spec" style="width: 1.79rem;">{{details.kiName || '-'}}</div>
+              <div class="name pull-left">物料名称:</div>
+              <div class="pull-left spec" style="width: 2.5rem;">{{details.kiName || '-'}}</div>
             </div>
             <div class="pull-left list-wrap-content-brand clearfix">
               <div class="name pull-left">单价:</div>
@@ -400,7 +400,6 @@
             this.cancatInfo = {
               entel: item.buyPhone
             }
-            console.log(this.cancatInfo)
             return
           }
           this.$http.get(`/basic/enterprise/${item.buyerenuu}/tels`).then(res => {
@@ -848,7 +847,6 @@
         let newTime = new Date()
         let msec = newTime.getTime() - time
         let hours = parseInt(parseInt(msec) / (1000 * 60 * 60))
-        console.log(hours)
         return hours
       },
       onMind(str) {
@@ -933,8 +931,8 @@
       border: 1px solid #376ff3;
     }
     span {
-      height: .46rem;
-      line-height: .46rem;
+      /*height: .46rem;*/
+      /*line-height: .46rem;*/
     }
   }
   .order-list-wrap {
@@ -1197,8 +1195,8 @@
       border: 1px solid #376ff3;
     }
     span {
-      height: .46rem;
-      line-height: .46rem;
+      /*height: .46rem;*/
+      /*line-height: .46rem;*/
     }
   }
   .peisong_Alert {

+ 1 - 1
pages/mobile/product/_batchCode.vue

@@ -21,7 +21,7 @@
         </div>
         <div class="list">
           <div class="fl">
-            <div class="name">物料名称(类目):</div>
+            <div class="name">物料名称:</div>
             <div class="text">{{commodity.kindNameCn || '-'}}</div>
           </div>
         </div>

+ 1 - 2
pages/mobile/search/_keycode.vue

@@ -35,7 +35,7 @@
         <div class="brand-item" @click="goComponent(item)">
           <p>卖家名称:<span>{{item.storeName || '-'}}</span></p>
           <p>品牌:<span>{{item.brandEn || item.brand.nameCn || '-'}}</span></p>
-          <p>物料名称(类目):<span>{{item.kind ? item.kind.nameCn : '-'}}</span></p>
+          <p>物料名称:<span>{{item.kind ? item.kind.nameCn : '-'}}</span></p>
           <p>型号:<span>{{item.code || '-'}}</span></p>
           <p>规格:<span>{{item.spec || '-'}}</span></p>
           <p>产品描述:<span>{{item.description || '-'}}</span></p>
@@ -199,7 +199,6 @@
 //            this.collectResult = '卖家上传的产品暂无参数,请联系卖家了解具体详情。'
 //            this.timeoutCount++
 //          }
-          console.log(item)
           if (item.batchCode) {
             this.$router.push('/mobile/product/' + item.batchCode)
           } else {

+ 64 - 134
pages/mobile/search/newkeycode.vue

@@ -2,17 +2,20 @@
  <div class="search-wrapper">
    <!-- 头部搜索 -->
    <div class="main-search-header">
-     <input type="text" id="search-box" v-model="keyword" @keyup.13="onClickSearchHander()" :placeholder="placeholder" @input="changeKeyWord()">
-     <span @click="onClickSearchHander()">搜索</span>
-     <a @click="cancelSearchHander()">取消</a>
      <div class="main-search-header-controll clearfix">
        <div style="display: flex;align-items: center;justify-content: space-between;width:100%;">
          <div :class="ChooseTop === 'component' ? 'active' : ''" @click="setChangelistHander('component')"><a>型号</a></div>
-           <div :class="ChooseTop === 'kind' ? 'active' : ''" @click="setChangelistHander('kind')"><a>物料名称</a></div>
-           <div :class="ChooseTop === 'store' ? 'active' : ''" @click="setChangelistHander('store')"><a>卖家</a></div>
+         <div :class="ChooseTop === 'kind' ? 'active' : ''" @click="setChangelistHander('kind')"><a>物料名称</a></div>
+         <div :class="ChooseTop === 'store' ? 'active' : ''" @click="setChangelistHander('store')"><a>卖家</a></div>
          <div :class="ChooseTop === 'brand' ? 'active' : ''" @click="setChangelistHander('brand')"><a>品牌</a></div>
        </div>
      </div>
+     <input type="text" id="search-box" v-model="keyword" @keyup.13="onClickSearchHander()" :placeholder="placeholder" @input="changeKeyWord()">
+     <!--<span @click="onClickSearchHander()">搜索</span>-->
+     <span @click="onClickSearchHander()" style="top: 0">
+        <i class="iconfont icon-sousuo"></i>
+      </span>
+     <a @click="cancelSearchHander()" style="margin-top: 0.14rem;display: inline-block;">取消</a>
    </div>
    <ul class="associate-list" v-show="associate.show" @click="associate.show = false">
      <li @click.stop="onAssociateClick(similar)" v-for="similar in similarKeywords.result">
@@ -118,91 +121,7 @@
                <div v-if="resourceList&&resourceList.stock&&resourceList.stock.content.length > 0">
                  <div v-for="(item, index) in resourceList.stock.content">
                    <!--@click="goProductDetail(item)"-->
-                   <div class="middle">
-                     <div class="list">
-                       <div class="name">品牌:</div>
-                       <div class="text overHidden">{{item.brand && item.brand.nameEn || '-'}}</div>
-                     </div>
-                     <div class="list">
-                       <div class="name">物料名称(类目):</div>
-                       <div class="text overHidden">{{item.kindNameCn || '-'}}</div>
-                     </div>
-                     <div class="list">
-                       <div class="name">型号:</div>
-                       <div class="text overHidden">{{item.code || '-'}}</div>
-                     </div>
-                     <div class="list">
-                       <div class="name">规格:</div>
-                       <div class="text overHidden">{{item.spec || '-'}}</div>
-                     </div>
-                     <div class="list">
-                       <div class="fl">
-                         <div class="name">包装:</div>
-                         <div class="text overHidden" style="width: 2.3rem">{{item.packaging || '无包装信息'}}</div>
-                       </div>
-                       <div class="fl">
-                         <div class="name">交期(天):</div>
-                         <div class="text overHidden" style="width: 1.8rem" v-if="item.b2cMaxDelivery && (item.b2cMaxDelivery != item.b2cMinDelivery)" v-text="item.b2cMinDelivery + '-'+ item.b2cMaxDelivery"></div>
-                         <div class="text overHidden" style="width: 1.8rem" v-if="item.b2cMaxDelivery && (item.b2cMaxDelivery == item.b2cMinDelivery)" v-text="item.b2cMinDelivery"></div>
-                       </div>
-                     </div>
-                     <div class="list">
-                       <div class="fl">
-                         <div class="name">生产日期:</div>
-                         <div class="text overHidden" style="width: 1.75rem" :title="item.produceDate">{{item.produceDate || '-'}}</div>
-                       </div>
-                       <div class="fl">
-                         <div class="name">库存:</div>
-                         <div class="text overHidden" style="width: 2.3rem">{{item.reserve || '-'}}</div>
-                       </div>
-                     </div>
-                     <div class="list">
-                       <div class="fl" @click.stop="goAttach(item.attach)">
-                         <div class="name">规格书:</div>
-                         <div class="text">
-                           <a :href="item.attach" target="_blank" v-if="item.attach && item.attach !== '' && item.attach !== '1'">
-                             <i class="iconfont icon-pdf" :class="{'active': item.attach && item.attach !== '' && item.attach !== '1'}"></i>
-                           </a>
-                           <template v-else>
-                             <i class="iconfont icon-pdf" :class="{'active': item.attach && item.attach !== '' && item.attach !== '1'}"></i>
-                           </template>
-                         </div>
-                       </div>
-                       <div class="fl">
-                         <div class="name">起拍:</div>
-                         <div class="text overHidden" style="width: 2.3rem">{{item.minBuyQty || '-'}}</div>
-                       </div>
-                     </div>
-                     <div class="list">
-                       <div class="name">卖家名称:</div>
-                       <div class="text overHidden">{{item.storeName}}</div>
-                     </div>
-                     <div class="list">
-                       <div class="name left">价格梯度<p>(pcs):</p></div>
-                       <div class="table left">
-                         <ul>
-                           <li class="title">
-                             <div>分段数量/PCS</div>
-                             <div>分段单价</div>
-                           </li>
-                           <li v-for="price in item.prices">
-                             <div>{{price.start}}+</div>
-                             <div v-if="item.currencyName == 'RMB'">¥{{price.rMBPrice}}</div>
-                             <div v-else>${{price.uSDPrice}}</div>
-                           </li>
-                         </ul>
-                       </div>
-                     </div>
-                     <div class="list clearfix">
-                       <div class="pull-left cancat" @click.stop="cancatSeller(item)">
-                         <i class="iconfont icon-kefu1"></i>联系卖家
-                       </div>
-                       <div class="pull-right clearfix">
-                         <div class="pull-left" @click="buy(item, false, $event)">加入购物车</div>
-                         <div class="pull-left" @click="buy(item, true, $event)">立即购买</div>
-                       </div>
-                     </div>
-                   </div>
+                   <component-item :item="item" @cancatSeller="cancatSeller"></component-item>
                  </div>
                </div>
              </template>
@@ -222,7 +141,7 @@
                        <div class="middle_bottom-leftitem clearfix">
                          <div class="bottom-title">电话</div><label style="float: left">:</label>
                          <div class="overHidden" style="width: 3.9rem">
-                           <a :href="'tel:' + AlertstoreInfo.enterprise.enTel" target="_blank" class="content-line" style="color: #2d8cf0">{{item.enTel}}</a>
+                           <a :href="'tel:' + item.enTel" target="_blank" class="content-line" style="color: #2d8cf0">{{item.enTel}}</a>
                          </div>
                        </div>
                        <!--<div class="middle_bottom-leftitem clearfix">-->
@@ -251,7 +170,7 @@
                      <div class="text overHidden">{{item.brandNameEn || item.brand || '—'}}</div>
                    </div>
                    <div class="list">
-                     <div class="name">物料名称(类目):</div>
+                     <div class="name">物料名称:</div>
                      <div class="text overHidden">{{item.kindNameCn || item.kind || '-'}}</div>
                    </div>
                    <div class="list">
@@ -292,7 +211,7 @@
                        <div class="middle_bottom-leftitem clearfix">
                          <div class="bottom-title">电话</div><label style="float: left">:</label>
                          <div class="overHidden" style="width: 3.9rem">
-                           <a :href="'tel:' + AlertstoreInfo.enterprise.enTel" target="_blank" class="content-line" style="color: #2d8cf0">{{item.enTel}}</a>
+                           <a :href="'tel:' + item.enTel" target="_blank" class="content-line" style="color: #2d8cf0">{{item.enTel}}</a>
                          </div>
                        </div>
                        <!--<div class="middle_bottom-leftitem clearfix">-->
@@ -326,10 +245,10 @@
      <div class="mobile-modal-box mobile-link-en">
        <div class="mobile-modal-header">联系方式<i @click="showStoreInfo = false" class="icon-guanbi iconfont"></i></div>
        <div class="mobile-modal-content">
-         <div v-if="AlertstoreInfo.enterprise.enTel"><span >电话:</span><a :href="'tel:' + AlertstoreInfo.enterprise.enTel" target="_blank" class="content-line link-url">{{AlertstoreInfo.enterprise.enTel}}</a></div>
-         <div v-if="AlertstoreInfo.enterprise.enPhone"><span >手机:</span><a :href="'tel:' + AlertstoreInfo.enterprise.enPhone" target="_blank" class="content-line link-url">{{AlertstoreInfo.enterprise.enPhone}}</a></div>
-         <div v-if="AlertstoreInfo.enterprise.enWeixin"><span >微信:</span><span class="content-line">{{AlertstoreInfo.enterprise.enWeixin}}</span></div>
-         <div v-if="AlertstoreInfo.enterprise.enQQ"><span >Q&nbsp;Q:</span><span class="content-line">{{AlertstoreInfo.enterprise.enQQ}}</span></div>
+         <div v-if="AlertstoreInfo.enterpriseInfo.enTel"><span >电话:</span><a :href="'tel:' + AlertstoreInfo.enterpriseInfo.enTel" target="_blank" class="content-line link-url">{{AlertstoreInfo.enterpriseInfo.enTel}}</a></div>
+         <div v-if="AlertstoreInfo.enterpriseInfo.enPhone"><span >手机:</span><a :href="'tel:' + AlertstoreInfo.enterpriseInfo.enPhone" target="_blank" class="content-line link-url">{{AlertstoreInfo.enterpriseInfo.enPhone}}</a></div>
+         <div v-if="AlertstoreInfo.enterpriseInfo.enWeixin"><span >微信:</span><span class="content-line">{{AlertstoreInfo.enterpriseInfo.enWeixin}}</span></div>
+         <div v-if="AlertstoreInfo.enterpriseInfo.enQQ"><span >Q&nbsp;Q:</span><span class="content-line">{{AlertstoreInfo.enterpriseInfo.enQQ}}</span></div>
          <div v-if="!empty">暂无联系方式</div>
        </div>
      </div>
@@ -395,6 +314,7 @@
   import { RemindBox, Loading, LoginBox, PullUp } from '~components/mobile/common'
   import { ModalWrapper } from '~components/mobile/base'
   import axios from '~plugins/axios'
+  import componentItem from '~components/mobile/search/componet-item'
   export default {
     layout: 'mobile',
     data() {
@@ -407,7 +327,7 @@
         keyword: '', // 关键字搜索
         showStoreInfo: false, // 联系买卖家弹窗
         AlertstoreInfo: { // 买卖家弹窗信息
-          enterprise: {}
+          enterpriseInfo: {}
         },
         navType: 'hasStore', // 现货 期货
         ChooseTop: 'component', // 型号, 物料名称, 卖家, 品牌
@@ -444,7 +364,7 @@
         }
       },
       empty () {
-        return this.checkInfo(this.AlertstoreInfo.enterprise.enTel) || this.checkInfo(this.AlertstoreInfo.enterprise.enPhone) || this.checkInfo(this.AlertstoreInfo.enterprise.enWeixin) || this.checkInfo(this.AlertstoreInfo.enterprise.enQQ)
+        return this.checkInfo(this.AlertstoreInfo.enterpriseInfo.enTel) || this.checkInfo(this.AlertstoreInfo.enterpriseInfo.enPhone) || this.checkInfo(this.AlertstoreInfo.enterpriseInfo.enWeixin) || this.checkInfo(this.AlertstoreInfo.enterpriseInfo.enQQ)
       },
       placeholder() {
         if (this.ChooseTop === 'component') {
@@ -700,7 +620,8 @@
       LoginBox,
       PublishSupplierSeek,
       ModalWrapper,
-      PullUp
+      PullUp,
+      componentItem
     },
     watch: {
       '$route' (to, from) {
@@ -732,42 +653,44 @@
     .main-search-header {
       position: absolute;
       background: #3e82f5;
-      line-height: .88rem;
+      padding: 0.19rem 0 0.15rem;
       margin-top: 0;
       z-index: 1;
       width: 100%;
       input {
-        width: 4.88rem;
-        height: .62rem;
-        line-height: .62rem;
+        width: 6.48rem;
+        height: .58rem;
+        line-height: .58rem;
         font-size: .26rem;
         color: #333;
-        margin-left: 0.3rem;
+        margin-left: 0.11rem;
         /*padding-left: 1.26rem;*/
         border: .04rem solid #fff;
         background: #fff;
         outline: none;
         border-radius: 0;
         float: left;
-        margin-top: .12rem;
+        /*margin-top: .12rem;*/
         -webkit-appearance: none;
-        border-top-left-radius: .14rem;
-        border-bottom-left-radius: .14rem;
+        border-radius: .14rem;
+        /*border-top-left-radius: .14rem;*/
+        /*border-bottom-left-radius: .14rem;*/
       }
       span {
         display: inline-block;
-        width: 1.02rem;
+        height: .58rem;
+        line-height: .58rem;
+        position: relative;
+        top: .04rem;
+        width: .68rem;
+        color: #376ff3;
+        border-left: .02rem solid #376ff3;
+        margin-left: -.68rem;
         text-align: center;
-        height: .62rem;
-        line-height: .62rem;
-        color: #366df3;
-        font-size: .28rem;
-        margin-left: .02rem;
-        border-top-right-radius: .14rem;
-        border-bottom-right-radius: .14rem;
-        background: #fff;
-        float: left;
-        margin-top: .12rem;
+        i {
+          font-size: .31rem;
+        }
+        /*margin-top: .12rem;*/
       }
       a {
         font-size: .28rem;
@@ -775,22 +698,29 @@
         margin-left: .2rem;
       }
       .main-search-header-controll {
-        background: #3e82f5;
-        width: 5.9rem;
-        margin-left: 0.3rem;
+        width: 5.48rem;
+        margin-left: 0.21rem;
+        transform: translateY(1px);
         div {
-          @include lineHeight(0.66rem);
-          font-size: 0.28rem;
-          color: #fff;
-          margin: 0;
-          background: rgba(0,0,0,0);
-          border-radius: 0;
-          &.active a {
+          div {
+            font-size: 0.28rem;
             color: #fff;
-            border-bottom: 0.02rem solid #fff;
-          }
-          a {
-            margin-left: 0 !important;
+            margin: 0;
+            border-radius: 0;
+            padding: 0.1rem 0.1rem;
+            &.active {
+              background: #fff;
+              border-top-left-radius: 0.05rem;
+              border-top-right-radius: 0.05rem;
+            }
+            &.active a {
+              color: #2d8cf0;
+            }
+            a {
+              font-size: .26rem;
+              color: #f1f1f1;
+              margin-left: 0 !important;
+            }
           }
        }
       }
@@ -1217,7 +1147,7 @@
       position: absolute;
       width: 100%;
       background: #fff;
-      top: 0.8rem;
+      top: 1.44rem;
       border: 1px solid #dcdcdc;
       z-index: 100;
       height: 100%;

+ 1 - 1
pages/mobile/share/purChase/_uuid.vue

@@ -13,7 +13,7 @@
         <div class="brand">品牌:
           <span>{{purchaseDetail.inbrand || '-'}}</span>
         </div>
-        <div class="size">物料名称(类目)
+        <div class="size">物料名称:
           <span>{{purchaseDetail.prodTitle}}</span>
         </div>
         <div class="size">规格:

+ 5 - 2
pages/mobile/user/address.vue

@@ -2,7 +2,7 @@
   <div class="logistics-wrapper">
     <div class="logistics-content" id="logisticsContent">
       <address-view ref="addressView" v-show="!isEdit" :isSend="isSend" @isEditEvent="editClick"></address-view>
-      <address-edit v-show="isEdit" :data="setData" :isPersonal="isPersonal" :isSend="isSend" @isEditEvent="editClick"></address-edit>
+      <address-edit ref="addressEdit" v-show="isEdit" :data="setData" :height100="true" :isPersonal="isPersonal" :isSend="isSend" @isEditEvent="editClick"></address-edit>
     </div>
   </div>
 </template>
@@ -45,6 +45,9 @@
         if (type === false) {
           this.$refs.addressView.initList()
         }
+        this.$nextTick(() => {
+          this.$refs.addressEdit.refleshSc()
+        })
       }
     }
   }
@@ -64,7 +67,7 @@
     background: #f1f3f6;
     .logistics-content {
       overflow-y: scroll;
-      height: calc(93vh - 1.26rem)
+      height: calc(100vh - 1.26rem - 0.98rem);
     }
   }
 </style>

+ 0 - 1
pages/product/brand/_code.vue

@@ -32,7 +32,6 @@
     },
     methods: {
       showList: function (status) {
-        console.log(status)
         this.isShow = status
       },
       listenChild: function (brand) {

+ 1 - 1
pages/product/kind/_id.vue

@@ -7,7 +7,7 @@
         <component-goods :brandid="brandid" :propertyJSON="propertyJSON"></component-goods>
       </div>
       <div v-else>
-        <error-page :title="'物料名称(类目)'"></error-page>
+        <error-page :title="'物料名称'"></error-page>
       </div>
     </div>
   </div>

+ 21 - 10
plugins/axios.js

@@ -47,15 +47,13 @@ service.interceptors.request.use(config => {
 })
 
 service.interceptors.response.use(response => {
-  const cookies = response.headers['set-cookie']
-  if (cookies && cookies.length) {
+  const cookie = response.headers['set-cookie']
+  if (cookie && cookie.length) {
+    let cookies = cookie.split(';')
     for (let i = 0; i < cookies.length; i++) {
-      if (cookies[i].indexOf('JSESSIONID') > -1) {
-        const sessionId = cookies[i]
-        const first = sessionId.indexOf(';')
-        const second = sessionId.lastIndexOf(';')
-        const newSessionId = sessionId.replace(sessionId.substring(first, second), '')
-        store.commit('option/SET_SESSION_ID', newSessionId)
+      let cookieArr = cookies[i].split(':')
+      if (cookieArr.length === 2 && cookieArr[0] === 'JSESSIONID') {
+        store.commit('option/SET_SESSION_ID', cookieArr[1])
         break
       }
     }
@@ -65,8 +63,21 @@ service.interceptors.response.use(response => {
   }
   return response
 }, error => {
-  if (--reqCount <= 0 && !process.server) {
-    document.getElementById('loading').setAttribute('class', 'loading')
+  if (!process.server) {
+    if (--reqCount <= 0) {
+      document.getElementById('loading').setAttribute('class', 'loading')
+    }
+    // 401拦截
+    if (error.response.status === 401 &&
+        // 当前账套店铺信息
+      !/\/store-service\/stores$/g.test(error.response.config.url) &&
+        // 店铺关注
+      !/\/trade\/storeFocus\/ifFocus/g.test(error.response.config.url) &&
+        // 器件收藏
+      !/\/trade\/collection\/list/g.test(error.response.config.url)) {
+      window.location.href = `/auth/login?returnUrl=${window.location.href}`
+      return
+    }
   }
   return Promise.reject(error)
 })

BIN
static/images/all/loading.gif


BIN
static/images/mobile/@2x/applyPurchase/home/app-banner_01.jpg


BIN
static/images/mobile/@2x/applyPurchase/home/app-banner_02.jpg


+ 5 - 8
store/index.js

@@ -39,13 +39,11 @@ export const actions = {
       store.commit('option/GET_MESSAGETYPE', messageType)
     }
     if (cookie && cookie.length) {
-      for (let i = 0; i < cookie.length; i++) {
-        if (cookie[i].indexOf('JSESSIONID') > -1) {
-          const sessionId = cookie[i]
-          const first = sessionId.indexOf(';')
-          const second = sessionId.lastIndexOf(';')
-          const newSessionId = sessionId.replace(sessionId.substring(first, second), '')
-          store.commit('option/SET_SESSION_ID', newSessionId)
+      let cookies = cookie.split(';')
+      for (let i = 0; i < cookies.length; i++) {
+        let cookieArr = cookies[i].split(':')
+        if (cookieArr.length === 2 && cookieArr[0] === 'JSESSIONID') {
+          store.commit('option/SET_SESSION_ID', cookieArr[1])
           break
         }
       }
@@ -465,7 +463,6 @@ export const actions = {
   // 保存微信信息
   GerWechatInfo({ commit }, params = {}) {
     let id = params.openId
-    console.log('openid:' + id)
     commit('option/REQUEST_WECHATINFO_STATUS')
     return axios.get('/wx/getWxUserInfo', { params: params })
       .then(response => {

+ 16 - 22
store/searchData.js

@@ -1,20 +1,26 @@
 import axios from '~plugins/axios'
 
 function reloadListData ({ commit }, listData) {
+  let productList = listData
   axios.get('/trade/collection/list').then(response => {
     let focusData = response.data
-    for (let i = 0; i < listData.components.length; i++) {
-      for (let j = 0; j < focusData.length; j++) {
-        listData.components[i].isFocus = listData.components[i].cmpId === focusData[j].componentid
-        if (listData.components[i].isFocus) {
-          break
+    if (productList.components) {
+      for (let i = 0; i < productList.components.length; i++) {
+        if (!productList.components[i].isFocus) {
+          for (let j = 0; j < focusData.length; j++) {
+            productList.components[i].isFocus = Boolean(productList.components[i].id) && productList.components[i].id === focusData[j].componentid
+            if (productList.components[i].isFocus) {
+              // productList.components[i].focusId = focusData[j].id
+              break
+            }
+          }
         }
       }
     }
-    commit('searchList/GET_LIST_SUCCESS', listData)
+    commit('searchList/GET_LIST_SUCCESS', productList)
   }, err => {
     console.log(err)
-    commit('searchList/GET_LIST_SUCCESS', listData)
+    commit('searchList/GET_LIST_SUCCESS', productList)
   })
 }
 export const actions = {
@@ -70,21 +76,9 @@ export const actions = {
   // 获取手机端搜索list
   searchForListInMobile ({ commit }, params = {}) {
     commit('searchList/REQUEST_LIST', params)
-    return axios.get(`/api/product/component/search/compGoods`, {params})
+    return axios.get(`/search/component`, {params})
       .then(response => {
-        let listData = response.data
-        if (response.data.brands && response.data.brands.uuid) {
-          commit('searchDetail/REQUEST_DETAIL', params)
-          return axios.get(`/api/product/brand/${response.data.brands.uuid}`)
-            .then(response => {
-              reloadListData({ commit }, listData)
-              commit('searchDetail/GET_DETAIL_SUCCESS', response.data)
-            }, err => {
-              commit('searchDetail/GET_DETAIL_FAILURE', err)
-            })
-        } else {
-          reloadListData({ commit }, listData)
-        }
+        reloadListData({ commit }, response.data)
       }, err => {
         commit('searchList/GET_LIST_FAILURE', err)
       })
@@ -119,7 +113,7 @@ export const actions = {
         commit('searchHistory/GET_SEARCH_HISTORY_FAILURE', err)
       })
   },
-  // 获取搜索历史
+  // 新版搜索结果
   searchForListNew ({ commit }, params = {}) {
     commit('searchList/REQUEST_LIST_NEW', params)
     return axios.get(`/search/201819`, {params})