商品0库存时没有提示,选择立即购买报错
This commit is contained in:
@ -2,18 +2,33 @@
|
|||||||
<view :class="productConClass">
|
<view :class="productConClass">
|
||||||
<view v-if="storeInfo.id">
|
<view v-if="storeInfo.id">
|
||||||
<!-- 轮播图 -->
|
<!-- 轮播图 -->
|
||||||
<product-con-swiper :img-urls="storeInfo.sliderImageArr"></product-con-swiper>
|
<product-con-swiper
|
||||||
|
:img-urls="storeInfo.sliderImageArr"
|
||||||
|
></product-con-swiper>
|
||||||
|
|
||||||
<!-- 商品信息描述 -->
|
<!-- 商品信息描述 -->
|
||||||
<view class="wrapper">
|
<view class="wrapper">
|
||||||
<view class="share acea-row row-between row-bottom">
|
<view class="share acea-row row-between row-bottom">
|
||||||
<view class="money font-color-red">
|
<view class="money font-color-red">
|
||||||
<text>¥</text>
|
<text>¥</text>
|
||||||
<text class="num">{{ attr.productSelect.price || storeInfo.price }}</text>
|
<text class="num">{{
|
||||||
<text class="vip-money" v-if="storeInfo.vipPrice && storeInfo.vipPrice > 0">¥{{ attr.productSelect.vipPrice || storeInfo.vipPrice }}</text>
|
attr.productSelect.price || storeInfo.price
|
||||||
<image src="@/static/images/vip.png" class="image" v-if="storeInfo.vipPrice && storeInfo.vipPrice > 0" />
|
}}</text>
|
||||||
|
<text
|
||||||
|
class="vip-money"
|
||||||
|
v-if="storeInfo.vipPrice && storeInfo.vipPrice > 0"
|
||||||
|
>¥{{ attr.productSelect.vipPrice || storeInfo.vipPrice }}</text
|
||||||
|
>
|
||||||
|
<image
|
||||||
|
src="@/static/images/vip.png"
|
||||||
|
class="image"
|
||||||
|
v-if="storeInfo.vipPrice && storeInfo.vipPrice > 0"
|
||||||
|
/>
|
||||||
</view>
|
</view>
|
||||||
<view class="iconfont icon-fenxiang" @click="listenerActionSheet"></view>
|
<view
|
||||||
|
class="iconfont icon-fenxiang"
|
||||||
|
@click="listenerActionSheet"
|
||||||
|
></view>
|
||||||
</view>
|
</view>
|
||||||
<view class="introduce">{{ storeInfo.storeName }}</view>
|
<view class="introduce">{{ storeInfo.storeName }}</view>
|
||||||
<view class="label acea-row row-between-wrapper">
|
<view class="label acea-row row-between-wrapper">
|
||||||
@ -21,11 +36,19 @@
|
|||||||
<text>库存:{{ storeInfo.stock }}{{ storeInfo.unitName }}</text>
|
<text>库存:{{ storeInfo.stock }}{{ storeInfo.unitName }}</text>
|
||||||
<text>销量:{{ storeInfo.sales }}{{ storeInfo.unitName }}</text>
|
<text>销量:{{ storeInfo.sales }}{{ storeInfo.unitName }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="coupon acea-row row-between-wrapper" @click="couponTap" v-if="couponList.length">
|
<view
|
||||||
|
class="coupon acea-row row-between-wrapper"
|
||||||
|
@click="couponTap"
|
||||||
|
v-if="couponList.length"
|
||||||
|
>
|
||||||
<text class="hide line1">
|
<text class="hide line1">
|
||||||
<text>优惠券:</text>
|
<text>优惠券:</text>
|
||||||
<text class="activity" v-for="(item, couponListEq) in couponList"
|
<text
|
||||||
:key="couponListEq">满{{ item.useMinPrice }}减{{ item.couponPrice }}</text>
|
class="activity"
|
||||||
|
v-for="(item, couponListEq) in couponList"
|
||||||
|
:key="couponListEq"
|
||||||
|
>满{{ item.useMinPrice }}减{{ item.couponPrice }}</text
|
||||||
|
>
|
||||||
</text>
|
</text>
|
||||||
<view class="iconfont icon-jiantou"></view>
|
<view class="iconfont icon-jiantou"></view>
|
||||||
</view>
|
</view>
|
||||||
@ -40,7 +63,10 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 规格 -->
|
<!-- 规格 -->
|
||||||
<view class="attribute acea-row row-between-wrapper" @click="selecAttrTap">
|
<view
|
||||||
|
class="attribute acea-row row-between-wrapper"
|
||||||
|
@click="selecAttrTap"
|
||||||
|
>
|
||||||
<view>
|
<view>
|
||||||
<text>{{ attrTxt }}:</text>
|
<text>{{ attrTxt }}:</text>
|
||||||
<text class="atterTxt">{{ attrValue }}</text>
|
<text class="atterTxt">{{ attrValue }}</text>
|
||||||
@ -64,14 +90,22 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="text">
|
<view class="text">
|
||||||
<view class="name line1">{{ systemStore.name }}</view>
|
<view class="name line1">{{ systemStore.name }}</view>
|
||||||
<view class="address acea-row row-middle" @click="showChang(systemStore)">
|
<view
|
||||||
<text class="addressTxt">{{systemStore.address}}</text>
|
class="address acea-row row-middle"
|
||||||
|
@click="showChang(systemStore)"
|
||||||
|
>
|
||||||
|
<text class="addressTxt">{{ systemStore.address }}</text>
|
||||||
<text class="iconfont icon-youjian"></text>
|
<text class="iconfont icon-youjian"></text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="addressBox">
|
<view class="addressBox">
|
||||||
<a class="iconfont icon-dadianhua01 font-color-red phone" @click="telPhone(systemStore.phone)"></a>
|
<a
|
||||||
<view class="addressTxt corlor-yshop">距离{{systemStore.distance}}千米</view>
|
class="iconfont icon-dadianhua01 font-color-red phone"
|
||||||
|
@click="telPhone(systemStore.phone)"
|
||||||
|
></a>
|
||||||
|
<view class="addressTxt corlor-yshop"
|
||||||
|
>距离{{ systemStore.distance }}千米</view
|
||||||
|
>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -122,20 +156,20 @@
|
|||||||
<view class="conter" v-html="storeInfo.description"></view>
|
<view class="conter" v-html="storeInfo.description"></view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view style="height:100rpx;"></view>
|
<view style="height: 100rpx"></view>
|
||||||
<!-- 操作栏 -->
|
<!-- 操作栏 -->
|
||||||
<view class="footer acea-row row-between-wrapper">
|
<view class="footer acea-row row-between-wrapper">
|
||||||
<!-- #ifdef MP-WEIXIN -->
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
<view class="item">
|
<view class="item">
|
||||||
<button open-type="contact" class='contacButton'>
|
<button open-type="contact" class="contacButton">
|
||||||
<view style="padding-bottom: 8rpx;" class="item">
|
<view style="padding-bottom: 8rpx" class="item">
|
||||||
<view class="iconfont icon-kefu"></view>
|
<view class="iconfont icon-kefu"></view>
|
||||||
<text>客服</text>
|
<text>客服</text>
|
||||||
</view>
|
</view>
|
||||||
</button>
|
</button>
|
||||||
</view>
|
</view>
|
||||||
<!-- #endif -->
|
<!-- #endif -->
|
||||||
<view class="item" @click="goHome" >
|
<view class="item" @click="goHome">
|
||||||
<view class="iconfont icon-shouye-xianxing"></view>
|
<view class="iconfont icon-shouye-xianxing"></view>
|
||||||
<text>首页</text>
|
<text>首页</text>
|
||||||
</view>
|
</view>
|
||||||
@ -147,15 +181,23 @@
|
|||||||
<view class="iconfont icon-shoucang"></view>
|
<view class="iconfont icon-shoucang"></view>
|
||||||
<text>收藏</text>
|
<text>收藏</text>
|
||||||
</view>
|
</view>
|
||||||
<view @click="goShoppingCart()" v-if="animated" class="item animated bounceIn">
|
<view
|
||||||
|
@click="goShoppingCart()"
|
||||||
|
v-if="animated"
|
||||||
|
class="item animated bounceIn"
|
||||||
|
>
|
||||||
<view class="iconfont icon-gouwuche1">
|
<view class="iconfont icon-gouwuche1">
|
||||||
<text class="num bg-color-red" v-if="CartCount > 0">{{CartCount}}</text>
|
<text class="num bg-color-red" v-if="CartCount > 0">{{
|
||||||
|
CartCount
|
||||||
|
}}</text>
|
||||||
</view>
|
</view>
|
||||||
<text>购物车</text>
|
<text>购物车</text>
|
||||||
</view>
|
</view>
|
||||||
<view @click="goShoppingCart()" class="item animated" v-if="!animated">
|
<view @click="goShoppingCart()" class="item animated" v-if="!animated">
|
||||||
<view class="iconfont icon-gouwuche1">
|
<view class="iconfont icon-gouwuche1">
|
||||||
<text class="num bg-color-red" v-if="CartCount > 0">{{CartCount}}</text>
|
<text class="num bg-color-red" v-if="CartCount > 0">{{
|
||||||
|
CartCount
|
||||||
|
}}</text>
|
||||||
</view>
|
</view>
|
||||||
<text>购物车</text>
|
<text>购物车</text>
|
||||||
</view>
|
</view>
|
||||||
@ -172,12 +214,23 @@
|
|||||||
<!-- 优惠券 -->
|
<!-- 优惠券 -->
|
||||||
<CouponPop v-on:changeFun="changeFun" :coupon="coupon"></CouponPop>
|
<CouponPop v-on:changeFun="changeFun" :coupon="coupon"></CouponPop>
|
||||||
<!-- 商品规格弹窗 -->
|
<!-- 商品规格弹窗 -->
|
||||||
<ProductWindow v-on:changeFun="changeFun" :attr="attr" :cartNum="cart_num"></ProductWindow>
|
<ProductWindow
|
||||||
|
v-on:changeFun="changeFun"
|
||||||
|
:attr="attr"
|
||||||
|
:cartNum="cart_num"
|
||||||
|
></ProductWindow>
|
||||||
<!-- 分享海报 -->
|
<!-- 分享海报 -->
|
||||||
<StorePoster v-on:setPosterImageStatus="setPosterImageStatus" :posterImageStatus="posterImageStatus"
|
<StorePoster
|
||||||
:posterData="posterData" :goodId="id"></StorePoster>
|
v-on:setPosterImageStatus="setPosterImageStatus"
|
||||||
|
:posterImageStatus="posterImageStatus"
|
||||||
|
:posterData="posterData"
|
||||||
|
:goodId="id"
|
||||||
|
></StorePoster>
|
||||||
<!-- 分享弹窗 -->
|
<!-- 分享弹窗 -->
|
||||||
<ShareInfo v-on:setShareInfoStatus="setShareInfoStatus" :shareInfoStatus="shareInfoStatus"></ShareInfo>
|
<ShareInfo
|
||||||
|
v-on:setShareInfoStatus="setShareInfoStatus"
|
||||||
|
:shareInfoStatus="shareInfoStatus"
|
||||||
|
></ShareInfo>
|
||||||
|
|
||||||
<view class="generate-posters acea-row row-middle on" v-if="posters">
|
<view class="generate-posters acea-row row-middle on" v-if="posters">
|
||||||
<view class="item" @click="setPosterImageStatus">
|
<view class="item" @click="setPosterImageStatus">
|
||||||
@ -191,7 +244,12 @@
|
|||||||
<view>生成海报</view>
|
<view>生成海报</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="mask" @touchmove.prevent @click="listenerActionClose" v-show="posters"></view>
|
<view
|
||||||
|
class="mask"
|
||||||
|
@touchmove.prevent
|
||||||
|
@click="listenerActionClose"
|
||||||
|
v-show="posters"
|
||||||
|
></view>
|
||||||
<view class="posterCanvasWarp">
|
<view class="posterCanvasWarp">
|
||||||
<canvas class="posterCanvas" canvas-id="myCanvas"></canvas>
|
<canvas class="posterCanvas" canvas-id="myCanvas"></canvas>
|
||||||
</view>
|
</view>
|
||||||
@ -200,45 +258,39 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
// import { swiper, swiperSlide } from "vue-awesome-swiper";
|
// import { swiper, swiperSlide } from "vue-awesome-swiper";
|
||||||
|
|
||||||
import ProductConSwiper from "@/components/ProductConSwiper";
|
import ProductConSwiper from "@/components/ProductConSwiper";
|
||||||
import UserEvaluation from "@/components/UserEvaluation";
|
import UserEvaluation from "@/components/UserEvaluation";
|
||||||
import CouponPop from "@/components/CouponPop";
|
import CouponPop from "@/components/CouponPop";
|
||||||
import ProductWindow from "@/components/ProductWindow";
|
import ProductWindow from "@/components/ProductWindow";
|
||||||
import StorePoster from "@/components/StorePoster";
|
import StorePoster from "@/components/StorePoster";
|
||||||
import ShareInfo from "@/components/ShareInfo";
|
import ShareInfo from "@/components/ShareInfo";
|
||||||
import {
|
import {
|
||||||
getProductDetail,
|
getProductDetail,
|
||||||
postCartAdd,
|
postCartAdd,
|
||||||
getCartCount,
|
getCartCount,
|
||||||
getProductCode,
|
getProductCode,
|
||||||
} from "@/api/store";
|
} from "@/api/store";
|
||||||
import {
|
import {
|
||||||
getCoupon,
|
getCoupon,
|
||||||
getCollectAdd,
|
getCollectAdd,
|
||||||
getCollectDel,
|
getCollectDel,
|
||||||
getUserInfo,
|
getUserInfo,
|
||||||
} from "@/api/user";
|
} from "@/api/user";
|
||||||
import cookie from "@/utils/store/cookie";
|
import cookie from "@/utils/store/cookie";
|
||||||
import {
|
import {
|
||||||
isWeixin,
|
isWeixin,
|
||||||
PosterCanvas,
|
PosterCanvas,
|
||||||
handleQrCode,
|
handleQrCode,
|
||||||
handleUrlParam,
|
handleUrlParam,
|
||||||
getCurrentPageUrlWithArgs
|
getCurrentPageUrlWithArgs,
|
||||||
} from "@/utils";
|
} from "@/utils";
|
||||||
import {
|
import { wechatEvevt } from "@/libs/wechat";
|
||||||
wechatEvevt
|
import { imageBase64 } from "@/api/public";
|
||||||
} from "@/libs/wechat";
|
import { mapGetters } from "vuex";
|
||||||
import {
|
|
||||||
imageBase64
|
|
||||||
} from "@/api/public";
|
|
||||||
import {
|
|
||||||
mapGetters
|
|
||||||
} from "vuex";
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "GoodsCon",
|
name: "GoodsCon",
|
||||||
components: {
|
components: {
|
||||||
// swiper,
|
// swiper,
|
||||||
@ -311,7 +363,7 @@
|
|||||||
this.$store.commit("get_to", "goodcon");
|
this.$store.commit("get_to", "goodcon");
|
||||||
let url = handleQrCode();
|
let url = handleQrCode();
|
||||||
if (!url) {
|
if (!url) {
|
||||||
url = handleUrlParam(getCurrentPageUrlWithArgs())
|
url = handleUrlParam(getCurrentPageUrlWithArgs());
|
||||||
}
|
}
|
||||||
this.coupons();
|
this.coupons();
|
||||||
if (url && url.id) {
|
if (url && url.id) {
|
||||||
@ -341,20 +393,24 @@
|
|||||||
return {
|
return {
|
||||||
title: this.storeInfo.storeName,
|
title: this.storeInfo.storeName,
|
||||||
imageUrl: this.storeInfo.image,
|
imageUrl: this.storeInfo.image,
|
||||||
path: "pages/shop/GoodsCon/index?id=" + this.storeInfo.id + "&spread=" + uni.getStorageSync("uid") +
|
path:
|
||||||
|
"pages/shop/GoodsCon/index?id=" +
|
||||||
|
this.storeInfo.id +
|
||||||
|
"&spread=" +
|
||||||
|
uni.getStorageSync("uid") +
|
||||||
"&pageType=good&codeType=routine",
|
"&pageType=good&codeType=routine",
|
||||||
success(res) {
|
success(res) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '分享成功'
|
title: "分享成功",
|
||||||
})
|
});
|
||||||
},
|
},
|
||||||
fail(res) {
|
fail(res) {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: '分享失败',
|
title: "分享失败",
|
||||||
icon: 'none'
|
icon: "none",
|
||||||
})
|
});
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
},
|
},
|
||||||
goHome() {
|
goHome() {
|
||||||
this.$yrouter.switchTab("/pages/home/index");
|
this.$yrouter.switchTab("/pages/home/index");
|
||||||
@ -385,7 +441,7 @@
|
|||||||
phoneNumber: phoneNumber,
|
phoneNumber: phoneNumber,
|
||||||
fail() {
|
fail() {
|
||||||
console.log("取消拨打");
|
console.log("取消拨打");
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
showChang: function (data) {
|
showChang: function (data) {
|
||||||
@ -421,7 +477,7 @@
|
|||||||
}
|
}
|
||||||
uni.showLoading({
|
uni.showLoading({
|
||||||
title: "加载中",
|
title: "加载中",
|
||||||
mask: true
|
mask: true,
|
||||||
});
|
});
|
||||||
getProductDetail(that.id, from)
|
getProductDetail(that.id, from)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
@ -467,7 +523,8 @@
|
|||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
title: err.msg || err.response.data.msg || err.response.data.message,
|
title:
|
||||||
|
err.msg || err.response.data.msg || err.response.data.message,
|
||||||
icon: "none",
|
icon: "none",
|
||||||
duration: 2000,
|
duration: 2000,
|
||||||
});
|
});
|
||||||
@ -594,7 +651,6 @@
|
|||||||
limit: 20,
|
limit: 20,
|
||||||
};
|
};
|
||||||
getCoupon(q).then((res) => {
|
getCoupon(q).then((res) => {
|
||||||
|
|
||||||
that.$set(that, "couponList", res.data || []);
|
that.$set(that, "couponList", res.data || []);
|
||||||
that.$set(that.coupon, "list", res.data);
|
that.$set(that.coupon, "list", res.data);
|
||||||
});
|
});
|
||||||
@ -615,7 +671,7 @@
|
|||||||
// 修改了规格
|
// 修改了规格
|
||||||
|
|
||||||
let productSelect = this.productValue[res.value];
|
let productSelect = this.productValue[res.value];
|
||||||
console.log(productSelect)
|
console.log(productSelect);
|
||||||
if (productSelect) {
|
if (productSelect) {
|
||||||
this.attr.productAttr[res.indexw].index = res.indexn;
|
this.attr.productAttr[res.indexw].index = res.indexn;
|
||||||
this.$set(this.attr.productSelect, "image", productSelect.image);
|
this.$set(this.attr.productSelect, "image", productSelect.image);
|
||||||
@ -687,14 +743,25 @@
|
|||||||
productId: that.id,
|
productId: that.id,
|
||||||
cartNum: that.attr.productSelect.cart_num,
|
cartNum: that.attr.productSelect.cart_num,
|
||||||
new: news,
|
new: news,
|
||||||
uniqueId: that.attr.productSelect !== undefined ?
|
uniqueId:
|
||||||
that.attr.productSelect.unique : "",
|
that.attr.productSelect !== undefined
|
||||||
|
? that.attr.productSelect.unique
|
||||||
|
: "",
|
||||||
};
|
};
|
||||||
postCartAdd(q)
|
postCartAdd(q)
|
||||||
.then(function (res) {
|
.then(function (res) {
|
||||||
that.isOpen = false;
|
that.isOpen = false;
|
||||||
that.attr.cartAttr = false;
|
that.attr.cartAttr = false;
|
||||||
if (news) {
|
if (news) {
|
||||||
|
if (!res.data) {
|
||||||
|
uni.showToast({
|
||||||
|
title:
|
||||||
|
res.msg || res.data.msg || res.data.message,
|
||||||
|
icon: "none",
|
||||||
|
duration: 2000,
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
that.$yrouter.push({
|
that.$yrouter.push({
|
||||||
path: "/pages/order/OrderSubmission/index",
|
path: "/pages/order/OrderSubmission/index",
|
||||||
query: {
|
query: {
|
||||||
@ -761,9 +828,9 @@
|
|||||||
if (this.isLogin) {
|
if (this.isLogin) {
|
||||||
getUserInfo().then((res) => {
|
getUserInfo().then((res) => {
|
||||||
href =
|
href =
|
||||||
href.indexOf("?") === -1 ?
|
href.indexOf("?") === -1
|
||||||
href + "?spread=" + res.data.uid :
|
? href + "?spread=" + res.data.uid
|
||||||
href + "&spread=" + res.data.uid;
|
: href + "&spread=" + res.data.uid;
|
||||||
var configAppMessage = {
|
var configAppMessage = {
|
||||||
desc: data.storeInfo,
|
desc: data.storeInfo,
|
||||||
title: data.storeName,
|
title: data.storeName,
|
||||||
@ -774,11 +841,8 @@
|
|||||||
["updateAppMessageShareData", "updateTimelineShareData"],
|
["updateAppMessageShareData", "updateTimelineShareData"],
|
||||||
configAppMessage
|
configAppMessage
|
||||||
)
|
)
|
||||||
.then((res) => {
|
.then((res) => {})
|
||||||
|
|
||||||
})
|
|
||||||
.catch((res) => {
|
.catch((res) => {
|
||||||
|
|
||||||
if (res.is_ready) {
|
if (res.is_ready) {
|
||||||
res.wx.updateAppMessageShareData(configAppMessage);
|
res.wx.updateAppMessageShareData(configAppMessage);
|
||||||
res.wx.updateTimelineShareData(configAppMessage);
|
res.wx.updateTimelineShareData(configAppMessage);
|
||||||
@ -796,11 +860,8 @@
|
|||||||
["updateAppMessageShareData", "updateTimelineShareData"],
|
["updateAppMessageShareData", "updateTimelineShareData"],
|
||||||
configAppMessage
|
configAppMessage
|
||||||
)
|
)
|
||||||
.then((res) => {
|
.then((res) => {})
|
||||||
|
|
||||||
})
|
|
||||||
.catch((res) => {
|
.catch((res) => {
|
||||||
|
|
||||||
if (res.is_ready) {
|
if (res.is_ready) {
|
||||||
res.wx.updateAppMessageShareData(configAppMessage);
|
res.wx.updateAppMessageShareData(configAppMessage);
|
||||||
res.wx.updateTimelineShareData(configAppMessage);
|
res.wx.updateTimelineShareData(configAppMessage);
|
||||||
@ -810,116 +871,116 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<style scoped lang="less">
|
<style scoped lang="less">
|
||||||
.geoPage {
|
.geoPage {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
top: 0;
|
top: 0;
|
||||||
z-index: 10000;
|
z-index: 10000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info {
|
.product-con .store-info {
|
||||||
margin-top: 0.2 * 100rpx;
|
margin-top: 0.2 * 100rpx;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info .title {
|
.product-con .store-info .title {
|
||||||
padding: 0 0.3 * 100rpx;
|
padding: 0 0.3 * 100rpx;
|
||||||
font-size: 0.28 * 100rpx;
|
font-size: 0.28 * 100rpx;
|
||||||
color: #282828;
|
color: #282828;
|
||||||
height: 0.8 * 100rpx;
|
height: 0.8 * 100rpx;
|
||||||
line-height: 0.8 * 100rpx;
|
line-height: 0.8 * 100rpx;
|
||||||
border-bottom: 0.01 * 100rpx solid #f5f5f5;
|
border-bottom: 0.01 * 100rpx solid #f5f5f5;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info .info {
|
.product-con .store-info .info {
|
||||||
padding: 0 0.3 * 100rpx;
|
padding: 0 0.3 * 100rpx;
|
||||||
height: 1.26 * 100rpx;
|
height: 1.26 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info .info .picTxt {
|
.product-con .store-info .info .picTxt {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info .info .picTxt .pictrue {
|
.product-con .store-info .info .picTxt .pictrue {
|
||||||
width: 0.76 * 100rpx;
|
width: 0.76 * 100rpx;
|
||||||
height: 0.76 * 100rpx;
|
height: 0.76 * 100rpx;
|
||||||
margin-right: 0.2 * 100rpx;
|
margin-right: 0.2 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info .info .picTxt .pictrue image {
|
.product-con .store-info .info .picTxt .pictrue image {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
border-radius: 0.06 * 100rpx;
|
border-radius: 0.06 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info .info .picTxt .text {
|
.product-con .store-info .info .picTxt .text {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info .info .picTxt .text .name {
|
.product-con .store-info .info .picTxt .text .name {
|
||||||
font-size: 0.3 * 100rpx;
|
font-size: 0.3 * 100rpx;
|
||||||
color: #282828;
|
color: #282828;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info .info .picTxt .text .address {
|
.product-con .store-info .info .picTxt .text .address {
|
||||||
font-size: 0.24 * 100rpx;
|
font-size: 0.24 * 100rpx;
|
||||||
color: #666;
|
color: #666;
|
||||||
margin-top: 0.03 * 100rpx;
|
margin-top: 0.03 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info .info .picTxt .text .address .iconfont {
|
.product-con .store-info .info .picTxt .text .address .iconfont {
|
||||||
color: #707070;
|
color: #707070;
|
||||||
font-size: 0.18 * 100rpx;
|
font-size: 0.18 * 100rpx;
|
||||||
margin-left: 0.1 * 100rpx;
|
margin-left: 0.1 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info .info .picTxt .addressBox {
|
.product-con .store-info .info .picTxt .addressBox {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info .info .picTxt .addressBox .iconfont {
|
.product-con .store-info .info .picTxt .addressBox .iconfont {
|
||||||
font-size: 0.4 * 100rpx;
|
font-size: 0.4 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info .info .picTxt .addressBox .addressTxt {
|
.product-con .store-info .info .picTxt .addressBox .addressTxt {
|
||||||
font-size: 0.24 * 100rpx;
|
font-size: 0.24 * 100rpx;
|
||||||
color: #eb3729;
|
color: #eb3729;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info .praise {
|
.product-con .store-info .praise {
|
||||||
font-size: 0.28 * 100rpx;
|
font-size: 0.28 * 100rpx;
|
||||||
color: #808080;
|
color: #808080;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .store-info .praise .iconfont {
|
.product-con .store-info .praise .iconfont {
|
||||||
font-size: 0.28 * 100rpx;
|
font-size: 0.28 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .superior {
|
.product-con .superior {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
margin-top: 0.2 * 100rpx;
|
margin-top: 0.2 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .superior .title {
|
.product-con .superior .title {
|
||||||
height: 0.98 * 100rpx;
|
height: 0.98 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .superior .title image {
|
.product-con .superior .title image {
|
||||||
width: 0.3 * 100rpx;
|
width: 0.3 * 100rpx;
|
||||||
height: 0.3 * 100rpx;
|
height: 0.3 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .superior .title .titleTxt {
|
.product-con .superior .title .titleTxt {
|
||||||
margin: 0 0.2 * 100rpx;
|
margin: 0 0.2 * 100rpx;
|
||||||
font-size: 0.3 * 100rpx;
|
font-size: 0.3 * 100rpx;
|
||||||
background-image: linear-gradient(to right, #f57a37 0%, #f21b07 100%);
|
background-image: linear-gradient(to right, #f57a37 0%, #f21b07 100%);
|
||||||
@ -927,67 +988,65 @@
|
|||||||
background-image: -moz-linear-gradient(to right, #f57a37 0%, #f21b07 100%);
|
background-image: -moz-linear-gradient(to right, #f57a37 0%, #f21b07 100%);
|
||||||
-webkit-background-clip: text;
|
-webkit-background-clip: text;
|
||||||
-webkit-text-fill-color: transparent;
|
-webkit-text-fill-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .superior .slider-banner {
|
.product-con .superior .slider-banner {
|
||||||
width: 6.9 * 100rpx;
|
width: 6.9 * 100rpx;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
padding-bottom: 0.2 * 100rpx;
|
padding-bottom: 0.2 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .superior .slider-banner .list {
|
.product-con .superior .slider-banner .list {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding-bottom: 0.2 * 100rpx;
|
padding-bottom: 0.2 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .superior .slider-banner .list .item {
|
.product-con .superior .slider-banner .list .item {
|
||||||
width: 2.15 * 100rpx;
|
width: 2.15 * 100rpx;
|
||||||
margin: 0 0.22 * 100rpx 0.3 * 100rpx 0;
|
margin: 0 0.22 * 100rpx 0.3 * 100rpx 0;
|
||||||
font-size: 0.26 * 100rpx;
|
font-size: 0.26 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .superior .slider-banner .list .item:nth-of-type(3n) {
|
.product-con .superior .slider-banner .list .item:nth-of-type(3n) {
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .superior .slider-banner .list .item .pictrue {
|
.product-con .superior .slider-banner .list .item .pictrue {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 2.15 * 100rpx;
|
height: 2.15 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .superior .slider-banner .list .item .pictrue image {
|
.product-con .superior .slider-banner .list .item .pictrue image {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
border-radius: 0.06 * 100rpx;
|
border-radius: 0.06 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .superior .slider-banner .list .item .name {
|
.product-con .superior .slider-banner .list .item .name {
|
||||||
color: #282828;
|
color: #282828;
|
||||||
margin-top: 0.12 * 100rpx;
|
margin-top: 0.12 * 100rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .superior .slider-banner .swiper-pagination-bullet {
|
.product-con .superior .slider-banner .swiper-pagination-bullet {
|
||||||
background-color: #999;
|
background-color: #999;
|
||||||
}
|
}
|
||||||
|
|
||||||
.product-con .superior .slider-banner .swiper-pagination-bullet-active {
|
.product-con .superior .slider-banner .swiper-pagination-bullet-active {
|
||||||
background-color: #e93323;
|
background-color: #e93323;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mask {
|
.mask {
|
||||||
-webkit-filter: blur(2px);
|
-webkit-filter: blur(2px);
|
||||||
-moz-filter: blur(2px);
|
-moz-filter: blur(2px);
|
||||||
-ms-filter: blur(2px);
|
-ms-filter: blur(2px);
|
||||||
filter: blur(2px);
|
filter: blur(2px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.product-con .product-intro .conter view {
|
||||||
|
|
||||||
.product-con .product-intro .conter view {
|
|
||||||
width: 100% !important;
|
width: 100% !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.generate-posters {
|
.generate-posters {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 1.7 * 100rpx;
|
height: 1.7 * 100rpx;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
@ -1004,34 +1063,34 @@
|
|||||||
-webkit-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
|
-webkit-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
|
||||||
-moz-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
|
-moz-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
|
||||||
-o-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
|
-o-transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9);
|
||||||
}
|
}
|
||||||
|
|
||||||
.generate-posters.on {
|
.generate-posters.on {
|
||||||
transform: translate3d(0, 0, 0);
|
transform: translate3d(0, 0, 0);
|
||||||
-webkit-transform: translate3d(0, 0, 0);
|
-webkit-transform: translate3d(0, 0, 0);
|
||||||
-ms-transform: translate3d(0, 0, 0);
|
-ms-transform: translate3d(0, 0, 0);
|
||||||
-moz-transform: translate3d(0, 0, 0);
|
-moz-transform: translate3d(0, 0, 0);
|
||||||
-o-transform: translate3d(0, 0, 0);
|
-o-transform: translate3d(0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
.generate-posters .item {
|
.generate-posters .item {
|
||||||
flex: 50%;
|
flex: 50%;
|
||||||
-webkit-flex: 50%;
|
-webkit-flex: 50%;
|
||||||
-ms-flex: 50%;
|
-ms-flex: 50%;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.generate-posters .item .iconfont {
|
.generate-posters .item .iconfont {
|
||||||
font-size: 0.8 * 100rpx;
|
font-size: 0.8 * 100rpx;
|
||||||
color: #5eae72;
|
color: #5eae72;
|
||||||
}
|
}
|
||||||
|
|
||||||
.generate-posters .item .iconfont.icon-haibao {
|
.generate-posters .item .iconfont.icon-haibao {
|
||||||
color: #5391f1;
|
color: #5391f1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.noscroll {
|
.noscroll {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
Reference in New Issue
Block a user