|
|
@@ -8,45 +8,52 @@
|
|
|
<table class="product-list">
|
|
|
<thead>
|
|
|
<tr style="height: 40px;">
|
|
|
- <th width="80"></th>
|
|
|
- <th width="150">品牌/类目/型号/规格</th>
|
|
|
+ <th width="180">品牌/类目/型号/规格</th>
|
|
|
<th width="100">包装/生产日期</th>
|
|
|
- <th width="130">库存</th>
|
|
|
- <th width="90">梯度/pcs</th>
|
|
|
- <th width="90">香港交货<span style="font-size: 12px;">($)</span></th>
|
|
|
- <th width="100">大陆交货<span style="font-size: 12px;">(¥)</span></th>
|
|
|
- <th width="90">交期(天)</th>
|
|
|
+ <th width="120">商家名称</th>
|
|
|
+ <th width="110">库存</th>
|
|
|
+ <th width="210">价格梯度(PCS)</th>
|
|
|
+ <th width="100">交期(天)</th>
|
|
|
<th width="100">操作</th>
|
|
|
</tr>
|
|
|
</thead>
|
|
|
<tbody id="productList-content">
|
|
|
<!--| orderBy : dir + orderType ng-class="{'tr-even' : !compGoods.isOdd}"-->
|
|
|
<tr v-for="compGoods in componentGoods.content">
|
|
|
- <td style="position: relative">
|
|
|
- <img class="sellout-flag" v-if="compGoods.status === 602" src="/images/search/sellout-search.png" alt="">
|
|
|
- <!--store/{{compGoods.storeId}}#/batchInfo/{{compGoods.batchCode}}-->
|
|
|
- <nuxt-link v-if="compGoods.batchCode" :to="`/store/productDetail/${compGoods.batchCode}`" target="_blank">
|
|
|
- <img :src="compGoods.img?compGoods.img:compGoods.brand&&compGoods.brand.logoUrl?compGoods.brand.logoUrl:'/images/all/default.png'"/>
|
|
|
+ <!--<td>
|
|
|
+ <!–store/{{compGoods.storeId}}#/batchInfo/{{compGoods.batchCode}}–>
|
|
|
+ <nuxt-link v-if="compGoods.batchCode" :to="`/store/${compGoods.storeId}/${compGoods.batchCode}`" target="_blank">
|
|
|
+ <img :src="compGoods.img?compGoods.img:'/images/all/default.png'"/>
|
|
|
</nuxt-link>
|
|
|
- <img v-if="!compGoods.batchCode" :src="compGoods.img?compGoods.img:compGoods.brand&&compGoods.brand.logoUrl?compGoods.brand.logoUrl:'/images/all/default.png'"/>
|
|
|
- <!--store/{{compGoods.storeId}}#/home-->
|
|
|
+ <img v-if="!compGoods.batchCode" :src="compGoods.img || '/images/all/default.png'"/>
|
|
|
+ <!–store/{{compGoods.storeId}}#/home–>
|
|
|
<nuxt-link :to="'/store/' + compGoods.storeId" class="contact" :title="compGoods.storeName" target="_blank">{{compGoods.storeName}}</nuxt-link>
|
|
|
- </td>
|
|
|
+ </td>-->
|
|
|
<td class="brand-code">
|
|
|
- <div class="brand" v-if="compGoods.brand.nameEn"><nuxt-link :to="`/product/brand/${compGoods.brand.uuid}/`" title="compGoods.brand.nameEn">{{compGoods.brand.nameEn}}</nuxt-link></div>
|
|
|
+ <div class="brand" v-if="compGoods.brand.nameEn"><nuxt-link :to="`/product/brand/${compGoods.brand.uuid}/`" :title="compGoods.brand.nameEn">{{compGoods.brand.nameEn | nameFilter}}</nuxt-link></div>
|
|
|
<div class="brand" v-if="!compGoods.brand.nameEn">—</div>
|
|
|
- <div class="brand">
|
|
|
- <nuxt-link v-if="compGoods.kind&&compGoods.kind.nameCn" :to="`/product/kind/${compGoods.kindid}`" v-text="compGoods.kind.nameCn"></nuxt-link>
|
|
|
- </div>
|
|
|
- <div v-if="!compGoods.kind||!compGoods.kind.nameCn">{{compGoods.kindName || '—'}}</div>
|
|
|
- <div class="code" v-if="compGoods.code"><nuxt-link :to="`/product/component/${compGoods.uuid}/`" :title="compGoods.code">{{compGoods.code}}</nuxt-link></div>
|
|
|
+ <div class="list" v-if="compGoods.kind"><nuxt-link :to="`/product/kind/${compGoods.kind.id}`" :title="compGoods.kind.nameCn">{{compGoods.kind.nameCn | listFilter}}</nuxt-link></div>
|
|
|
+ <div class="list" v-if="!compGoods.kind">—</div>
|
|
|
+ <div class="code" v-if="compGoods.code"><nuxt-link :to="`/product/component/${compGoods.uuid}/`" :title="compGoods.code">{{compGoods.code | codeFilter}}</nuxt-link></div>
|
|
|
<div class="code" v-if="!compGoods.code">—</div>
|
|
|
- <div class="brand" style="width: 160px;">{{compGoods.spec || '—'}}</div>
|
|
|
+ <div class="code" :title="compGoods.spec"><span class="text-ellipse inline-block fl" style="width: 160px">{{compGoods.spec || '-'}}</span></div>
|
|
|
</td>
|
|
|
<td>
|
|
|
<div class="package" v-if="compGoods.packaging">{{compGoods.packaging}}</div>
|
|
|
+ <div class="package" v-if="!compGoods.packaging && compGoods.produceDate">—</div>
|
|
|
<div v-if="!compGoods.produceDate && !compGoods.packaging">—</div>
|
|
|
<div class="date" v-if="compGoods.produceDate">{{compGoods.produceDate}}</div>
|
|
|
+ <div class="date" v-if="!compGoods.produceDate && compGoods.packaging">—</div>
|
|
|
+ </td>
|
|
|
+ <td class="merchantName">
|
|
|
+ <div v-if="!compGoods.storeName" style="margin-top: 20px;">—</div>
|
|
|
+ <!--<div v-for="price in compGoods.prices">
|
|
|
+ <!–| number–>
|
|
|
+ <span>{{price.start}}</span> +
|
|
|
+ </div>-->
|
|
|
+ <div v-if="compGoods.storeName">
|
|
|
+ <nuxt-link :to="'/store/' + compGoods.storeId" class="contact" :title="compGoods.storeName" target="_blank"><span>{{compGoods.storeName | storeNameFilter}}</span></nuxt-link>
|
|
|
+ </div>
|
|
|
</td>
|
|
|
<td class="text-left">
|
|
|
<div class="goods" v-if="compGoods.reserve">
|
|
|
@@ -54,45 +61,42 @@
|
|
|
</div>
|
|
|
<div v-if="!compGoods.reserve" style="text-align: center;margin-left: 0;"><span>—</span></div>
|
|
|
<div class="from" v-if="compGoods.reserve && compGoods.reserve > 0">
|
|
|
- 最小起订量:<span v-if="compGoods.minBuyQty">{{compGoods.minBuyQty}}</span>
|
|
|
+ 起拍:<span v-if="compGoods.minBuyQty">{{compGoods.minBuyQty}}</span>
|
|
|
</div>
|
|
|
<!--<div class="multiple" v-if="compGoods.reserve > 0">
|
|
|
倍数:<span>{{compGoods.minPackQty}}</span>
|
|
|
</div>-->
|
|
|
- <div class="can-div-sell" v-if="compGoods.reserve && compGoods.breakUp" v-text="compGoods.breakUp?'可拆卖':'不可拆卖'"></div>
|
|
|
+ <div class="can-div-sell" v-if="compGoods.reserve" v-text="compGoods.breakUp?'可拆卖':''"></div>
|
|
|
</td>
|
|
|
<td>
|
|
|
<div v-if="!compGoods.prices">
|
|
|
<span>—</span>
|
|
|
</div>
|
|
|
- <div v-for="price in compGoods.prices">
|
|
|
- <!--| number-->
|
|
|
- <span>{{price.start}}</span> +
|
|
|
- </div>
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- <div v-if="(compGoods.currencyName && compGoods.currencyName.indexOf('USD')==-1) || !compGoods.prices">
|
|
|
- <span>—</span>
|
|
|
+ <div class="amount">
|
|
|
+ <div v-for="price in compGoods.prices"><span>{{price.start}}</span> +</div>
|
|
|
</div>
|
|
|
- <div v-for="price in compGoods.prices">
|
|
|
- <!--| formateNumber : 6-->
|
|
|
- <span>{{price.uSDPrice | currency}}</span>
|
|
|
- </div>
|
|
|
- </td>
|
|
|
- <td>
|
|
|
- <div v-if="(compGoods.currencyName && compGoods.currencyName.indexOf('RMB')==-1) || !compGoods.prices">
|
|
|
- <span>—</span>
|
|
|
- </div>
|
|
|
- <div v-for="price in compGoods.prices">
|
|
|
- <!--formateNumber : 6-->
|
|
|
- <span>{{price.rMBPrice | currency}}</span>
|
|
|
+ <!-- <div v-if="(compGoods.currencyName && compGoods.currencyName.indexOf('USD')==-1) || !compGoods.prices">
|
|
|
+ <span>—</span>
|
|
|
+ </div>
|
|
|
+ <div v-for="price in compGoods.prices">
|
|
|
+ <!–| formateNumber : 6–>
|
|
|
+ <span>{{price.uSDPrice | currency}}</span>
|
|
|
+ </div>-->
|
|
|
+ <div class="price">
|
|
|
+ <!--<div v-if="(compGoods.currencyName && compGoods.currencyName.indexOf('RMB')==-1) || !compGoods.prices">
|
|
|
+ <span>—</span>
|
|
|
+ </div>-->
|
|
|
+ <div v-for="price in compGoods.prices">
|
|
|
+ <!--formateNumber : 6-->
|
|
|
+ <span>¥{{price.rMBPrice | currency}}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</td>
|
|
|
<td>
|
|
|
<div v-if="!compGoods.b2cMinDelivery">
|
|
|
<span>—</span>
|
|
|
</div>
|
|
|
- <div v-if="compGoods.b2cMinDelivery">交期:<span v-if="compGoods.b2cMinDelivery != compGoods.b2cMaxDelivery">{{compGoods.b2cMinDelivery + '-' + compGoods.b2cMaxDelivery}}</span>
|
|
|
+ <div v-if="compGoods.b2cMinDelivery"><span v-if="compGoods.b2cMinDelivery != compGoods.b2cMaxDelivery">{{compGoods.b2cMinDelivery + '-' + compGoods.b2cMaxDelivery}}</span>
|
|
|
<span v-if="compGoods.b2cMinDelivery == compGoods.b2cMaxDelivery">{{compGoods.b2cMinDelivery}}</span>
|
|
|
</div>
|
|
|
</td>
|
|
|
@@ -101,21 +105,13 @@
|
|
|
<span>—</span>
|
|
|
</div>
|
|
|
<div v-if="compGoods.reserve > 0">
|
|
|
- <buy :item="compGoods" :disabledFlag="compGoods.status === 602"></buy>
|
|
|
+ <buy :item="compGoods" :btnColor="'#3975f4'"></buy>
|
|
|
</div>
|
|
|
</td>
|
|
|
</tr>
|
|
|
<tr v-if="componentGoods.totalElements == 0">
|
|
|
- <td colspan="12">
|
|
|
- <div class="empty">
|
|
|
- <p class="empty-img">
|
|
|
- <img src="/images/brandList/empty-cart.png">
|
|
|
- </p>
|
|
|
- <div class="empty-info">
|
|
|
- <p class="grey"> 暂无产品信息 </p>
|
|
|
- <a href="javascript:history.go(-1)"><i class="fa fa-mail-reply fa-xs"></i>返回上一页</a>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <td colspan="10" class="text-center" style="line-height: 40px; font-size: 20px;">
|
|
|
+ <i class="fa fa-smile-o fa-lg"></i> 暂无产品信息
|
|
|
</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
@@ -158,6 +154,98 @@
|
|
|
}
|
|
|
},
|
|
|
filters: {
|
|
|
+ nameFilter: function (title) {
|
|
|
+ if (title === '') {
|
|
|
+ return title
|
|
|
+ }
|
|
|
+ let len = 0
|
|
|
+ let index = 0
|
|
|
+ for (let i = 0; i < title.length; i++) {
|
|
|
+ if (index === 0 && title.charAt(i).charCodeAt(0) > 255) {
|
|
|
+ len = len + 2
|
|
|
+ } else {
|
|
|
+ len++
|
|
|
+ }
|
|
|
+ if (len > 20) {
|
|
|
+ index = i
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (index > 0) {
|
|
|
+ return title.substring(0, index) + '...'
|
|
|
+ } else {
|
|
|
+ return title
|
|
|
+ }
|
|
|
+ },
|
|
|
+ codeFilter: function (title) {
|
|
|
+ if (title === '') {
|
|
|
+ return title
|
|
|
+ }
|
|
|
+ let len = 0
|
|
|
+ let index = 0
|
|
|
+ for (let i = 0; i < title.length; i++) {
|
|
|
+ if (index === 0 && title.charAt(i).charCodeAt(0) > 255) {
|
|
|
+ len = len + 2
|
|
|
+ } else {
|
|
|
+ len++
|
|
|
+ }
|
|
|
+ if (len > 20) {
|
|
|
+ index = i
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (index > 0) {
|
|
|
+ return title.substring(0, index) + '...'
|
|
|
+ } else {
|
|
|
+ return title
|
|
|
+ }
|
|
|
+ },
|
|
|
+ listFilter: function (title) {
|
|
|
+ if (title === '') {
|
|
|
+ return title
|
|
|
+ }
|
|
|
+ let len = 0
|
|
|
+ let index = 0
|
|
|
+ for (let i = 0; i < title.length; i++) {
|
|
|
+ if (index === 0 && title.charAt(i).charCodeAt(0) > 255) {
|
|
|
+ len = len + 2
|
|
|
+ } else {
|
|
|
+ len++
|
|
|
+ }
|
|
|
+ if (len > 20) {
|
|
|
+ index = i
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (index > 0) {
|
|
|
+ return title.substring(0, index) + '...'
|
|
|
+ } else {
|
|
|
+ return title
|
|
|
+ }
|
|
|
+ },
|
|
|
+ storeNameFilter: function (title) {
|
|
|
+ if (title === '') {
|
|
|
+ return title
|
|
|
+ }
|
|
|
+ let len = 0
|
|
|
+ let index = 0
|
|
|
+ for (let i = 0; i < title.length; i++) {
|
|
|
+ if (index === 0 && title.charAt(i).charCodeAt(0) > 255) {
|
|
|
+ len = len + 2
|
|
|
+ } else {
|
|
|
+ len++
|
|
|
+ }
|
|
|
+ if (len > 20) {
|
|
|
+ index = i
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (index > 0) {
|
|
|
+ return title.substring(0, index) + '...'
|
|
|
+ } else {
|
|
|
+ return title
|
|
|
+ }
|
|
|
+ },
|
|
|
currency: function (num) {
|
|
|
if (typeof num === 'number') {
|
|
|
if (num <= 0.000001) {
|
|
|
@@ -188,6 +276,7 @@
|
|
|
return null
|
|
|
},
|
|
|
handlerCurrentNode (data, node) {
|
|
|
+ console.log(this.pageParams)
|
|
|
this.pageParams.page = 1
|
|
|
this.pageCmpGoods(this.pageParams)
|
|
|
},
|
|
|
@@ -216,49 +305,13 @@
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
-<style scoped>
|
|
|
- /**/
|
|
|
- .product-list tbody>tr .empty{
|
|
|
- overflow: hidden;
|
|
|
- margin: 0!important;
|
|
|
- height:130px;
|
|
|
- display:inline-flex;
|
|
|
- align-items: center;
|
|
|
- }
|
|
|
- .product-list tbody>tr .empty .empty-img{
|
|
|
- margin:0;
|
|
|
- border:0;
|
|
|
- min-width:143px;
|
|
|
- min-height:72px;
|
|
|
- }
|
|
|
- .product-list tbody>tr .empty .empty-img img {
|
|
|
- margin: 0;
|
|
|
- border: 0;
|
|
|
- min-width: 143px;
|
|
|
- min-height: 72px;
|
|
|
- }
|
|
|
- .product-list tbody>tr .empty-info{
|
|
|
- line-height: 14px;
|
|
|
- width: 143px;
|
|
|
- }
|
|
|
- .product-list tbody>tr .grey{
|
|
|
- color: #999;
|
|
|
- font-size: 14px;
|
|
|
- }
|
|
|
- .product-list tbody>tr .empty .empty-info>a{
|
|
|
- font-size: 14px;
|
|
|
- color: #5078cb;
|
|
|
- }
|
|
|
- .product-list tbody>tr .empty .empty-info i{
|
|
|
- margin-right:5px;
|
|
|
- }
|
|
|
+<style lang="scss" scoped>
|
|
|
.product-list{
|
|
|
width: 1190px;
|
|
|
margin-bottom: 20px;
|
|
|
}
|
|
|
.product-list thead tr{
|
|
|
- border-top: #6493ff 2px solid;
|
|
|
- color: #323232;
|
|
|
+ color: #333;
|
|
|
background: none;
|
|
|
}
|
|
|
/* 物品列表 */
|
|
|
@@ -266,27 +319,48 @@
|
|
|
font-size: 14px;
|
|
|
text-align: center;
|
|
|
}
|
|
|
-
|
|
|
- .product-list .brand-code .code {
|
|
|
- font-weight: 600;
|
|
|
+ .product-list .brand-code .code,.product-list .brand-code .brand,.product-list .brand-code .list {
|
|
|
+ width: 80%;
|
|
|
+ margin: 0 auto;
|
|
|
+ text-align: center;
|
|
|
+ a {
|
|
|
+ color: #333;
|
|
|
+ &:hover{
|
|
|
+ font-weight: 600;
|
|
|
+ color: #3975f4;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
.product-list th {
|
|
|
color: rgb(50,50,50);
|
|
|
font-size: 14px;
|
|
|
font-weight: 600;
|
|
|
- background-color: #f7f7f7;
|
|
|
+ background-color: #edf3ff;
|
|
|
text-align: center;
|
|
|
+ height: 46px;
|
|
|
+ }
|
|
|
+ .product-list .merchantName{
|
|
|
+ span {
|
|
|
+ color: #333;
|
|
|
+ &:hover{
|
|
|
+ font-weight: 600;
|
|
|
+ color: #3975f4;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
.product-list tbody>tr {
|
|
|
- border: 1px solid #e8e8e8;
|
|
|
+ border: 1px solid #d4e1ff;
|
|
|
+ background: #fff;
|
|
|
+ }
|
|
|
+ .product-list tbody>tr:hover {
|
|
|
+ background: #f9fbff;
|
|
|
}
|
|
|
+
|
|
|
.product-list tbody>tr img {
|
|
|
border: 1px solid #e8e8e8;
|
|
|
margin: 10px 0 5px 0;
|
|
|
- max-width: 36px;
|
|
|
- max-height: 36px;
|
|
|
+ width: 36px;
|
|
|
+ height: 36px;
|
|
|
}
|
|
|
.product-list tbody>tr .contact{
|
|
|
font-size: 14px;
|
|
|
@@ -300,10 +374,11 @@
|
|
|
}
|
|
|
|
|
|
.product-list td {
|
|
|
- font-size: 12px;
|
|
|
+ font-size: 14px;
|
|
|
/*color: #333;*/
|
|
|
text-align: center;
|
|
|
line-height: 20px;
|
|
|
+ height: 100px;
|
|
|
}
|
|
|
.product-list td a{
|
|
|
color: #337ab7;
|
|
|
@@ -317,33 +392,38 @@
|
|
|
}
|
|
|
|
|
|
/* 物品列表按钮 */
|
|
|
- .product-list .btn-buy-now {
|
|
|
- background-color: #5078CB;
|
|
|
+ .btn-buy-now {
|
|
|
+ background-color: #3975f4!important;
|
|
|
color: #fff;
|
|
|
width: 80px;
|
|
|
height: 30px;
|
|
|
font-size: 12px;
|
|
|
- border: 1px solid #5078cb;
|
|
|
+ border: 1px solid #3975f4!important;;
|
|
|
}
|
|
|
|
|
|
- .product-list .btn-add-cart {
|
|
|
+ .btn-add-cart {
|
|
|
margin-top: 10px;
|
|
|
- color: #214797;
|
|
|
+ color: #3975f4!important;
|
|
|
width: 80px;
|
|
|
height: 30px;
|
|
|
font-size: 12px;
|
|
|
background-color: #fff;
|
|
|
- border: 1px solid #e8e8e8;
|
|
|
+ border: 1px solid #3975f4!important;
|
|
|
}
|
|
|
.product-list .btn-buy-now:hover{
|
|
|
background: #214797;
|
|
|
}
|
|
|
.product-list .btn-add-cart:hover{
|
|
|
- background-color: #5078CB;
|
|
|
+ background-color: #3975f4;
|
|
|
color: #fff;
|
|
|
}
|
|
|
.product-list .text-left{
|
|
|
text-align: left;
|
|
|
+ .goods {
|
|
|
+ span {
|
|
|
+ color: #f01010;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
.product-list .text-left div{
|
|
|
margin-left: 30px;
|
|
|
@@ -354,19 +434,30 @@
|
|
|
.product-list tbody tr td .can-div-sell {
|
|
|
color: #333;
|
|
|
}
|
|
|
- .product-list tbody tr td .sellout-flag {
|
|
|
- position: absolute;
|
|
|
- right: 0;
|
|
|
- bottom: 0;
|
|
|
- border: none;
|
|
|
+ .product-list tbody tr td .amount {
|
|
|
+ width: 60%;
|
|
|
+ float: left;
|
|
|
+ padding-left: 60px;
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+ .product-list tbody tr td .amount div:last-child, .product-list tbody tr td .price div:last-child{
|
|
|
+ color: #f01010;
|
|
|
+ }
|
|
|
+ .product-list tbody tr td .price {
|
|
|
+ width: 40%;
|
|
|
+ float:right;
|
|
|
+ text-align:left;
|
|
|
}
|
|
|
.search-record{
|
|
|
width: 100%;
|
|
|
- margin: 0 auto;
|
|
|
height: 40px;
|
|
|
font-size: 16px;
|
|
|
line-height: 40px;
|
|
|
- margin-top: 20px;
|
|
|
+ margin: 14px 0px;
|
|
|
+ background-color: #f1f1f1;
|
|
|
+ border-bottom: 1px solid #ddd;
|
|
|
+ border-top: 1px solid #ddd;
|
|
|
+ padding-left: 10px;
|
|
|
}
|
|
|
.search-record span.red{
|
|
|
color: #ff0909;
|