|
@@ -43,48 +43,37 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="row">
|
|
|
- <div class="tit">单重 :</div>
|
|
|
- <div class="items">
|
|
|
- <div class="item curr">
|
|
|
- 10KG
|
|
|
- </div>
|
|
|
- <div class="item">
|
|
|
- 20KG
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="row">
|
|
|
- <div class="tit">安装 :</div>
|
|
|
- <div class="items">
|
|
|
- <div class="item curr">
|
|
|
- 组装
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="pay">
|
|
|
+
|
|
|
+ <div class="pay" @click="showPhone = true">
|
|
|
联系商家
|
|
|
</div>
|
|
|
+ <transition name="slide-fade">
|
|
|
+ <span v-if="showPhone" class="phone">138 388 8888</span>
|
|
|
+ </transition>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="x-title">商品详情</div>
|
|
|
<div class="details">
|
|
|
- <div class="row">
|
|
|
- <span>商品名称:全钢制保险柜</span>
|
|
|
- <span>商品材质:钢制</span>
|
|
|
- <span>商品单重:20KG</span>
|
|
|
- </div>
|
|
|
- <div class="row">
|
|
|
- <span>商品颜色:黑、白、灰。。</span>
|
|
|
- <span>商品规格:一斗一门、两斗两门。。。</span>
|
|
|
- <span>配送方式:厂家直邮</span>
|
|
|
- </div>
|
|
|
- <div class="row">
|
|
|
- <span>生产日期:2019-12-10</span>
|
|
|
- <span>生产地点:洛阳市伊滨区庞村镇</span>
|
|
|
- <span>供货仓库地址:洛阳市伊滨区庞村镇</span>
|
|
|
+ <div class="items">
|
|
|
+ <div class="item">商品名称:{{ product.name }}</div>
|
|
|
+ <div class="item">商品材质:</div>
|
|
|
+ <div class="item">商品单重:{{ product.weight }}</div>
|
|
|
+ <div class="item">商品颜色:{{ colors }}</div>
|
|
|
+ <div class="item">商品规格:{{ sizes }}{{ sizes }}</div>
|
|
|
+ <div class="item">配送方式:{{ product.delivery }}</div>
|
|
|
+ <div class="item">生产日期:{{ product.producedTime }}</div>
|
|
|
+ <div class="item">生产地点:{{ product.producedAddress }}</div>
|
|
|
+ <div class="item">供货仓库地址:{{ product.warehouseAddress }}</div>
|
|
|
+ <div
|
|
|
+ class="item"
|
|
|
+ v-for="({ attributeName: k, value: v },
|
|
|
+ index) in product.goodsAttributes"
|
|
|
+ :key="`goodsAttributes${index}`"
|
|
|
+ >
|
|
|
+ {{ `${k}:${v}` }}
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <img src="@assets/productDetails.jpg" alt="" />
|
|
|
+ <div v-html="product.des" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -93,6 +82,7 @@ import { Component, Vue, Watch, Prop } from "vue-property-decorator";
|
|
|
@Component
|
|
|
export default class extends Vue {
|
|
|
private currImgIndex = 0;
|
|
|
+ private showPhone = false;
|
|
|
private form = {
|
|
|
goodsSizes: "",
|
|
|
goodsColors: ""
|
|
@@ -111,6 +101,12 @@ export default class extends Vue {
|
|
|
.split(",")
|
|
|
.map(x => this.$basePath + x);
|
|
|
}
|
|
|
+ get colors() {
|
|
|
+ return (this.product.goodsColors || []).map((x: any) => x.color).join();
|
|
|
+ }
|
|
|
+ get sizes() {
|
|
|
+ return (this.product.goodsSizes || []).map((x: any) => x.size).join();
|
|
|
+ }
|
|
|
}
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
@@ -190,19 +186,41 @@ export default class extends Vue {
|
|
|
color: #fff;
|
|
|
background: rgb(253, 85, 34);
|
|
|
cursor: pointer;
|
|
|
+ display: inline-block;
|
|
|
+ }
|
|
|
+ .phone {
|
|
|
+ margin-left: 20px;
|
|
|
+ vertical-align: bottom;
|
|
|
+ letter-spacing: 2px;
|
|
|
+ color: rgb(253, 85, 34);
|
|
|
+ display: inline-block;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
.details {
|
|
|
padding: 30px 20px;
|
|
|
-
|
|
|
- .row {
|
|
|
- margin-bottom: 20px;
|
|
|
- span {
|
|
|
+ .items {
|
|
|
+ overflow: hidden;
|
|
|
+ .item {
|
|
|
width: 33.33%;
|
|
|
- display: inline-block;
|
|
|
+ margin-bottom: 20px;
|
|
|
+ float: left;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ white-space: nowrap;
|
|
|
+ padding-right: 30px;
|
|
|
+ box-sizing: border-box;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+.slide-fade-enter-active {
|
|
|
+ transition: all 0.5s ease;
|
|
|
+}
|
|
|
+
|
|
|
+.slide-fade-enter {
|
|
|
+ transform: translateX(20px);
|
|
|
+ opacity: 0;
|
|
|
+}
|
|
|
</style>
|