|
|
@@ -1,33 +1,31 @@
|
|
|
<template>
|
|
|
- <div class="detail">
|
|
|
- <swiper pagination class="mySwiper" v-if="banners.length > 0">
|
|
|
- <swiper-slide v-for="(item, index) in banners" :key="index">
|
|
|
- <img :src="item" />
|
|
|
- </swiper-slide>
|
|
|
- </swiper>
|
|
|
-
|
|
|
- <div class="info">
|
|
|
- <div class="price-line">
|
|
|
- <template v-if="info.status === 'ON_SALE'">
|
|
|
- <div class="price">
|
|
|
- <i class="font_family icon-icon_jiage"></i>{{ info.price }}
|
|
|
- </div>
|
|
|
- <div class="sub" v-if="info.royalties">
|
|
|
- 含 <span>{{ info.royalties }}%</span> 版税
|
|
|
- </div>
|
|
|
- </template>
|
|
|
-
|
|
|
- <div class="status" v-else-if="info.status == 'NORMAL'">
|
|
|
- {{ info.publicShow ? "仅展示" : "未展示" }}
|
|
|
- </div>
|
|
|
- <div class="status" v-else>
|
|
|
- {{ getLabelName(info.status, assetStatusOptions) }}
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="title">{{ info.name }}</div>
|
|
|
- <div class="info-bottom">
|
|
|
- <span class="text1" v-if="info.number"> 编号 {{ info.number }} </span>
|
|
|
- <!-- <van-button
|
|
|
+ <div class="detail">
|
|
|
+ <swiper pagination class="mySwiper" v-if="banners.length > 0">
|
|
|
+ <swiper-slide v-for="(item, index) in banners" :key="index">
|
|
|
+ <img :src="item" />
|
|
|
+ </swiper-slide>
|
|
|
+ </swiper>
|
|
|
+
|
|
|
+ <div class="info">
|
|
|
+ <div class="price-line">
|
|
|
+ <template v-if="info.status === 'ON_SALE'">
|
|
|
+ <div class="price"><i class="font_family icon-icon_jiage"></i>{{ info.price }}</div>
|
|
|
+ <div class="sub" v-if="info.royalties">
|
|
|
+ 含 <span>{{ info.royalties }}%</span> 版税
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <div class="status" v-else-if="info.status == 'NORMAL'">
|
|
|
+ {{ info.publicShow ? '仅展示' : '未展示' }}
|
|
|
+ </div>
|
|
|
+ <div class="status" v-else>
|
|
|
+ {{ getLabelName(info.status, assetStatusOptions) }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="title">{{ info.name }}</div>
|
|
|
+ <div class="info-bottom">
|
|
|
+ <span class="text1" v-if="info.number"> 编号 {{ info.number }} </span>
|
|
|
+ <!-- <van-button
|
|
|
type="primary"
|
|
|
plain
|
|
|
size="mini"
|
|
|
@@ -36,442 +34,434 @@
|
|
|
<like-button :isLike="info.liked" @click="likeProduct">
|
|
|
{{ info.likes }}
|
|
|
</like-button> -->
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
|
|
|
- <driver />
|
|
|
- <div class="user">
|
|
|
- <van-cell
|
|
|
- is-link
|
|
|
- class="creator"
|
|
|
- :to="{
|
|
|
- path: '/creatorDetail',
|
|
|
- query: {
|
|
|
- id: info.minterId,
|
|
|
- },
|
|
|
- }"
|
|
|
- >
|
|
|
- <template #icon>
|
|
|
- <van-image
|
|
|
- width="40"
|
|
|
- height="40"
|
|
|
- class="user-img"
|
|
|
- :src="info.minterAvatar"
|
|
|
- fit="cover"
|
|
|
- radius="100"
|
|
|
- />
|
|
|
- </template>
|
|
|
- <template #title>
|
|
|
- <div class="text1 van-ellipsis">{{ info.minter }}</div>
|
|
|
- <div class="text2">铸造者</div>
|
|
|
- </template>
|
|
|
- </van-cell>
|
|
|
- <van-cell
|
|
|
- is-link
|
|
|
- class="creator"
|
|
|
- :to="{
|
|
|
- path: '/creatorDetail',
|
|
|
- query: {
|
|
|
- id: info.minterId,
|
|
|
- },
|
|
|
- }"
|
|
|
- >
|
|
|
- <template #icon>
|
|
|
- <van-image
|
|
|
- width="40"
|
|
|
- height="40"
|
|
|
- class="user-img"
|
|
|
- :src="info.minterAvatar"
|
|
|
- fit="cover"
|
|
|
- radius="100"
|
|
|
- />
|
|
|
- </template>
|
|
|
- <template #title>
|
|
|
- <div class="text1 van-ellipsis">{{ info.minter }}</div>
|
|
|
- <div class="text2">持有者</div>
|
|
|
- </template>
|
|
|
- </van-cell>
|
|
|
- </div>
|
|
|
- <driver />
|
|
|
-
|
|
|
- <div class="goods">
|
|
|
- <template v-if="properties.length > 0">
|
|
|
- <div class="page-title">商品特性</div>
|
|
|
- <div class="specific-list">
|
|
|
- <div
|
|
|
- class="specific-item"
|
|
|
- v-for="(item, index) in properties"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
- <div class="text1">{{ item.name }}</div>
|
|
|
- <div class="text2">{{ item.value }}</div>
|
|
|
- </div>
|
|
|
+ <driver />
|
|
|
+ <div class="user">
|
|
|
+ <van-cell
|
|
|
+ is-link
|
|
|
+ class="creator"
|
|
|
+ :to="{
|
|
|
+ path: '/creatorDetail',
|
|
|
+ query: {
|
|
|
+ id: info.minterId
|
|
|
+ }
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <template #icon>
|
|
|
+ <van-image
|
|
|
+ width="40"
|
|
|
+ height="40"
|
|
|
+ class="user-img"
|
|
|
+ :src="info.minterAvatar"
|
|
|
+ fit="cover"
|
|
|
+ radius="100"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <template #title>
|
|
|
+ <div class="text1 van-ellipsis">{{ info.minter }}</div>
|
|
|
+ <div class="text2">铸造者</div>
|
|
|
+ </template>
|
|
|
+ </van-cell>
|
|
|
+ <van-cell
|
|
|
+ is-link
|
|
|
+ class="creator"
|
|
|
+ :to="{
|
|
|
+ path: '/creatorDetail',
|
|
|
+ query: {
|
|
|
+ id: info.minterId
|
|
|
+ }
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <template #icon>
|
|
|
+ <van-image
|
|
|
+ width="40"
|
|
|
+ height="40"
|
|
|
+ class="user-img"
|
|
|
+ :src="info.minterAvatar"
|
|
|
+ fit="cover"
|
|
|
+ radius="100"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ <template #title>
|
|
|
+ <div class="text1 van-ellipsis">{{ info.minter }}</div>
|
|
|
+ <div class="text2">持有者</div>
|
|
|
+ </template>
|
|
|
+ </van-cell>
|
|
|
+ </div>
|
|
|
+ <driver />
|
|
|
+
|
|
|
+ <div class="goods">
|
|
|
+ <template v-if="properties.length > 0">
|
|
|
+ <div class="page-title">商品特性</div>
|
|
|
+ <div class="specific-list">
|
|
|
+ <div class="specific-item" v-for="(item, index) in properties" :key="index">
|
|
|
+ <div class="text1">{{ item.name }}</div>
|
|
|
+ <div class="text2">{{ item.value }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <div class="page-title">链上信息</div>
|
|
|
+ <div class="page-text">
|
|
|
+ Hash地址:{{ info.txHash }}<br />
|
|
|
+ 区块高度: {{ info.blockNumber }}<br />
|
|
|
+ 令牌ID: {{ info.tokenId }}
|
|
|
+ </div>
|
|
|
+ <template v-if="info.detail">
|
|
|
+ <div class="page-title">作品描述</div>
|
|
|
+ <div class="page-text" v-html="info.detail"></div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
- </template>
|
|
|
- <div class="page-title">链上信息</div>
|
|
|
- <div class="page-text">
|
|
|
- Hash地址:{{ info.txHash }}<br />
|
|
|
- 区块高度: {{ info.blockNumber }}<br />
|
|
|
- 令牌ID: {{ info.tokenId }}
|
|
|
- </div>
|
|
|
- <template v-if="info.detail">
|
|
|
- <div class="page-title">作品描述</div>
|
|
|
- <div class="page-text" v-html="info.detail"></div>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
|
|
|
- <div class="btn van-safe-area-bottom" ref="btn" v-if="isBuy">
|
|
|
- <div class="btns">
|
|
|
- <van-button type="primary" block round @click="buy"
|
|
|
- >立即购买</van-button
|
|
|
- >
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <div class="btn van-safe-area-bottom" ref="btn" v-if="isBuy">
|
|
|
+ <div class="btns">
|
|
|
+ <van-button type="primary" block round @click="buy">立即购买</van-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
|
|
|
- <!-- <driver /> -->
|
|
|
+ <!-- <driver /> -->
|
|
|
|
|
|
- <!-- <van-collapse v-model="activeName" accordion>
|
|
|
+ <!-- <van-collapse v-model="activeName" accordion>
|
|
|
<van-collapse-item title="交易记录" name="1">
|
|
|
<van-cell title="单元格" value="内容"> </van-cell>
|
|
|
</van-collapse-item>
|
|
|
</van-collapse> -->
|
|
|
|
|
|
- <driver />
|
|
|
+ <driver />
|
|
|
|
|
|
- <post :info="info" pageUrl="assetDetail" />
|
|
|
- </div>
|
|
|
+ <post :info="info" pageUrl="assetDetail" />
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { Swiper, SwiperSlide } from "swiper/vue";
|
|
|
+import { Swiper, SwiperSlide } from 'swiper/vue';
|
|
|
|
|
|
-import "swiper/swiper.min.css";
|
|
|
-import "swiper/swiper-bundle.min.css";
|
|
|
+import 'swiper/swiper.min.css';
|
|
|
+import 'swiper/swiper-bundle.min.css';
|
|
|
|
|
|
-import SwiperCore, { Pagination } from "swiper";
|
|
|
-import Post from "../../components/Post.vue";
|
|
|
-import asset from "../../mixins/asset";
|
|
|
+import SwiperCore, { Pagination } from 'swiper';
|
|
|
+import Post from '../../components/Post.vue';
|
|
|
+import asset from '../../mixins/asset';
|
|
|
|
|
|
// install Swiper modules
|
|
|
SwiperCore.use([Pagination]);
|
|
|
|
|
|
export default {
|
|
|
- components: {
|
|
|
- Swiper,
|
|
|
- SwiperSlide,
|
|
|
- Post,
|
|
|
- },
|
|
|
- inject: ["bs"],
|
|
|
- mixins: [asset],
|
|
|
- data() {
|
|
|
- return {
|
|
|
- activeName: "1",
|
|
|
- info: {},
|
|
|
- liked: false,
|
|
|
- btn: null,
|
|
|
- };
|
|
|
- },
|
|
|
- computed: {
|
|
|
- banners() {
|
|
|
- return this.info.pic || [];
|
|
|
- },
|
|
|
- properties() {
|
|
|
- return this.info.properties || [];
|
|
|
+ components: {
|
|
|
+ Swiper,
|
|
|
+ SwiperSlide,
|
|
|
+ Post
|
|
|
},
|
|
|
- isBuy() {
|
|
|
- return this.info.stock && this.info.onShelf;
|
|
|
+ inject: ['bs'],
|
|
|
+ mixins: [asset],
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ activeName: '1',
|
|
|
+ info: {},
|
|
|
+ liked: false,
|
|
|
+ btn: null
|
|
|
+ };
|
|
|
},
|
|
|
- },
|
|
|
- mounted() {
|
|
|
- this.getProduct();
|
|
|
- },
|
|
|
- beforeUnmount() {
|
|
|
- if (this.btn) {
|
|
|
- document.body.removeChild(this.btn);
|
|
|
- }
|
|
|
- },
|
|
|
- methods: {
|
|
|
- getProduct() {
|
|
|
- this.$toast.loading({
|
|
|
- message: "加载中...",
|
|
|
- forbidClick: true,
|
|
|
- });
|
|
|
- this.$http.get("/asset/get/" + this.$route.query.id).then((res) => {
|
|
|
- this.info = res;
|
|
|
- this.$nextTick(() => {
|
|
|
- if (this.isBuy) {
|
|
|
- this.btn = this.$refs.btn;
|
|
|
- }
|
|
|
- document.body.appendChild(this.$refs.btn);
|
|
|
- });
|
|
|
-
|
|
|
- setTimeout(() => {
|
|
|
- this.$toast.clear();
|
|
|
- this.bs.value.refresh();
|
|
|
- }, 100);
|
|
|
- });
|
|
|
+ computed: {
|
|
|
+ banners() {
|
|
|
+ return this.info.pic || [];
|
|
|
+ },
|
|
|
+ properties() {
|
|
|
+ return this.info.properties || [];
|
|
|
+ },
|
|
|
+ isBuy() {
|
|
|
+ return this.info.stock && this.info.onShelf;
|
|
|
+ }
|
|
|
},
|
|
|
- likeProduct() {
|
|
|
- if (!this.info.liked) {
|
|
|
- this.$http.get(`/collection/${this.info.id}/like`).then(() => {
|
|
|
- this.getProduct();
|
|
|
- this.$toast.success("收藏成功");
|
|
|
- });
|
|
|
- } else {
|
|
|
- this.$http.get(`/collection/${this.info.id}/unlike`).then(() => {
|
|
|
- this.getProduct();
|
|
|
- this.$toast.success("取消收藏");
|
|
|
- });
|
|
|
- }
|
|
|
+ mounted() {
|
|
|
+ this.getProduct();
|
|
|
},
|
|
|
- buy() {
|
|
|
- this.checkLogin().then(() => {
|
|
|
- this.$router.push({
|
|
|
- path: "/submit",
|
|
|
- query: {
|
|
|
- id: this.$route.query.id,
|
|
|
- },
|
|
|
- });
|
|
|
- });
|
|
|
+ beforeUnmount() {
|
|
|
+ if (this.btn) {
|
|
|
+ document.body.removeChild(this.btn);
|
|
|
+ }
|
|
|
},
|
|
|
- },
|
|
|
+ methods: {
|
|
|
+ getProduct() {
|
|
|
+ this.$toast.loading({
|
|
|
+ message: '加载中...',
|
|
|
+ forbidClick: true
|
|
|
+ });
|
|
|
+ this.$http.get('/asset/get/' + this.$route.query.id).then(res => {
|
|
|
+ this.info = res;
|
|
|
+ this.$nextTick(() => {
|
|
|
+ if (this.isBuy) {
|
|
|
+ this.btn = this.$refs.btn;
|
|
|
+ }
|
|
|
+ document.body.appendChild(this.$refs.btn);
|
|
|
+ });
|
|
|
+
|
|
|
+ setTimeout(() => {
|
|
|
+ this.$toast.clear();
|
|
|
+ this.bs.value.refresh();
|
|
|
+ }, 100);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ likeProduct() {
|
|
|
+ if (!this.info.liked) {
|
|
|
+ this.$http.get(`/collection/${this.info.id}/like`).then(() => {
|
|
|
+ this.getProduct();
|
|
|
+ this.$toast.success('收藏成功');
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$http.get(`/collection/${this.info.id}/unlike`).then(() => {
|
|
|
+ this.getProduct();
|
|
|
+ this.$toast.success('取消收藏');
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ buy() {
|
|
|
+ this.checkLogin().then(() => {
|
|
|
+ this.$router.push({
|
|
|
+ path: '/submit',
|
|
|
+ query: {
|
|
|
+ id: this.$route.query.id
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
<style lang="less" scoped>
|
|
|
.detail {
|
|
|
- padding-bottom: 100px;
|
|
|
+ padding-bottom: 100px;
|
|
|
}
|
|
|
.info {
|
|
|
- // height: 164px;
|
|
|
- background-color: @bg;
|
|
|
- border-radius: 20px 20px 0 0;
|
|
|
- transform: translateY(-16px);
|
|
|
- position: relative;
|
|
|
- z-index: 2;
|
|
|
- padding: 16px 16px 0;
|
|
|
- box-sizing: border-box;
|
|
|
-
|
|
|
- .price {
|
|
|
- font-size: 36px;
|
|
|
- font-family: OSP;
|
|
|
- color: #fdfb60;
|
|
|
- line-height: 36px;
|
|
|
- transform: translateY(3px);
|
|
|
-
|
|
|
- .font_family {
|
|
|
- font-size: 10px;
|
|
|
- line-height: 24px;
|
|
|
- vertical-align: middle;
|
|
|
+ // height: 164px;
|
|
|
+ background-color: @bg;
|
|
|
+ border-radius: 20px 20px 0 0;
|
|
|
+ transform: translateY(-16px);
|
|
|
+ position: relative;
|
|
|
+ z-index: 2;
|
|
|
+ padding: 16px 16px 0;
|
|
|
+ box-sizing: border-box;
|
|
|
+
|
|
|
+ .price {
|
|
|
+ font-size: 36px;
|
|
|
+ font-family: OSP;
|
|
|
+ color: #fdfb60;
|
|
|
+ line-height: 36px;
|
|
|
+ transform: translateY(3px);
|
|
|
+
|
|
|
+ .font_family {
|
|
|
+ font-size: 10px;
|
|
|
+ line-height: 24px;
|
|
|
+ vertical-align: middle;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- .price-line {
|
|
|
- display: flex;
|
|
|
- align-items: flex-end;
|
|
|
- .sub {
|
|
|
- flex-grow: 1;
|
|
|
- margin-left: 5px;
|
|
|
- font-size: 14px;
|
|
|
- color: #949699;
|
|
|
- line-height: 16px;
|
|
|
- span {
|
|
|
- color: #fff;
|
|
|
- }
|
|
|
+ .price-line {
|
|
|
+ display: flex;
|
|
|
+ align-items: flex-end;
|
|
|
+ .sub {
|
|
|
+ flex-grow: 1;
|
|
|
+ margin-left: 5px;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #949699;
|
|
|
+ line-height: 16px;
|
|
|
+ span {
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .text {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #939599;
|
|
|
+ line-height: 16px;
|
|
|
+ span {
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- .text {
|
|
|
- font-size: 14px;
|
|
|
- color: #939599;
|
|
|
- line-height: 16px;
|
|
|
- span {
|
|
|
- margin-left: 10px;
|
|
|
- }
|
|
|
+ .title {
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #ffffff;
|
|
|
+ line-height: 28px;
|
|
|
+ margin-top: 12px;
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- .title {
|
|
|
- font-size: 20px;
|
|
|
- font-weight: bold;
|
|
|
- color: #ffffff;
|
|
|
- line-height: 28px;
|
|
|
- margin-top: 12px;
|
|
|
- }
|
|
|
-
|
|
|
- .info-bottom {
|
|
|
- display: flex;
|
|
|
- position: relative;
|
|
|
- margin-top: 4px;
|
|
|
- height: 24px;
|
|
|
- .text1 {
|
|
|
- font-size: 14px;
|
|
|
- color: #949699;
|
|
|
- line-height: 24px;
|
|
|
+ .info-bottom {
|
|
|
+ display: flex;
|
|
|
+ position: relative;
|
|
|
+ margin-top: 4px;
|
|
|
+ height: 24px;
|
|
|
+ .text1 {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #949699;
|
|
|
+ line-height: 24px;
|
|
|
+ }
|
|
|
+ .van-button {
|
|
|
+ font-size: 13px;
|
|
|
+ color: #fdfb60;
|
|
|
+ line-height: 24px;
|
|
|
+ background: linear-gradient(135deg, #fdfb60 0%, #ff8f3e 100%);
|
|
|
+ -webkit-background-clip: text;
|
|
|
+ -webkit-text-fill-color: transparent;
|
|
|
+ border-width: 0px;
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .like {
|
|
|
+ position: absolute;
|
|
|
+ right: 0;
|
|
|
+ }
|
|
|
}
|
|
|
- .van-button {
|
|
|
- font-size: 13px;
|
|
|
- color: #fdfb60;
|
|
|
- line-height: 24px;
|
|
|
- background: linear-gradient(135deg, #fdfb60 0%, #ff8f3e 100%);
|
|
|
- -webkit-background-clip: text;
|
|
|
- -webkit-text-fill-color: transparent;
|
|
|
- border-width: 0px;
|
|
|
- margin-left: 10px;
|
|
|
+}
|
|
|
+
|
|
|
+/deep/.creator {
|
|
|
+ align-items: center;
|
|
|
+ padding: 24px 16px 24px;
|
|
|
+ .van-cell__title {
|
|
|
+ margin-left: 12px;
|
|
|
+ .text1 {
|
|
|
+ font-size: 16px;
|
|
|
+ line-height: 24px;
|
|
|
+ }
|
|
|
+ .text2 {
|
|
|
+ font-size: 12px;
|
|
|
+ color: #939599;
|
|
|
+ line-height: 22px;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- .like {
|
|
|
- position: absolute;
|
|
|
- right: 0;
|
|
|
+ .van-cell__value {
|
|
|
+ font-size: 13px;
|
|
|
}
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
-/deep/.creator {
|
|
|
- align-items: center;
|
|
|
- padding: 24px 16px 24px;
|
|
|
- .van-cell__title {
|
|
|
- margin-left: 12px;
|
|
|
- .text1 {
|
|
|
- font-size: 16px;
|
|
|
- line-height: 24px;
|
|
|
+/deep/ .mySwiper {
|
|
|
+ width: 100vw;
|
|
|
+ height: 100vw;
|
|
|
+ z-index: 1;
|
|
|
+
|
|
|
+ .swiper-pagination {
|
|
|
+ bottom: 22px;
|
|
|
}
|
|
|
- .text2 {
|
|
|
- font-size: 12px;
|
|
|
- color: #939599;
|
|
|
- line-height: 22px;
|
|
|
+
|
|
|
+ .swiper-pagination-bullet {
|
|
|
+ width: 6px;
|
|
|
+ height: 2px;
|
|
|
+ border-radius: 1px;
|
|
|
+ background: #d7d7d7;
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- .van-cell__value {
|
|
|
- font-size: 13px;
|
|
|
- }
|
|
|
-}
|
|
|
+ .swiper-pagination-bullet-active {
|
|
|
+ background: @prim;
|
|
|
+ }
|
|
|
|
|
|
-/deep/ .mySwiper {
|
|
|
- width: 100vw;
|
|
|
- height: 100vw;
|
|
|
- z-index: 1;
|
|
|
-
|
|
|
- .swiper-pagination {
|
|
|
- bottom: 22px;
|
|
|
- }
|
|
|
-
|
|
|
- .swiper-pagination-bullet {
|
|
|
- width: 6px;
|
|
|
- height: 2px;
|
|
|
- border-radius: 1px;
|
|
|
- background: #d7d7d7;
|
|
|
- }
|
|
|
-
|
|
|
- .swiper-pagination-bullet-active {
|
|
|
- background: @prim;
|
|
|
- }
|
|
|
-
|
|
|
- .swiper-slide img {
|
|
|
- display: block;
|
|
|
- width: 100%;
|
|
|
- height: 100%;
|
|
|
- object-fit: cover;
|
|
|
- border-radius: 4px;
|
|
|
- }
|
|
|
+ .swiper-slide img {
|
|
|
+ display: block;
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ object-fit: cover;
|
|
|
+ border-radius: 4px;
|
|
|
+ }
|
|
|
}
|
|
|
.goods {
|
|
|
- padding: 20px 16px;
|
|
|
+ padding: 20px 16px;
|
|
|
|
|
|
- .page-title {
|
|
|
- &:not(:first-child) {
|
|
|
- padding-top: 16px;
|
|
|
+ .page-title {
|
|
|
+ &:not(:first-child) {
|
|
|
+ padding-top: 16px;
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
.page-title {
|
|
|
- font-size: 18px;
|
|
|
- font-weight: bold;
|
|
|
- color: #ffffff;
|
|
|
- line-height: 28px;
|
|
|
+ font-size: 18px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #ffffff;
|
|
|
+ line-height: 28px;
|
|
|
}
|
|
|
.specific-list {
|
|
|
- padding: 16px 0;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
+ padding: 16px 0;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
}
|
|
|
.specific-item {
|
|
|
- width: 94px;
|
|
|
- height: 62px;
|
|
|
- border-radius: 4px;
|
|
|
- border: solid 0px transparent;
|
|
|
- padding: 1px;
|
|
|
- background-image: linear-gradient(@bg, @bg),
|
|
|
- linear-gradient(135deg, #fdfb60, #ff8f3e);
|
|
|
- background-origin: border-box;
|
|
|
- box-sizing: border-box;
|
|
|
- background-clip: content-box, border-box;
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: center;
|
|
|
- flex-direction: column;
|
|
|
-
|
|
|
- .text1 {
|
|
|
- font-size: 14px;
|
|
|
- color: #939599;
|
|
|
- line-height: 24px;
|
|
|
- }
|
|
|
+ width: 94px;
|
|
|
+ height: 62px;
|
|
|
+ border-radius: 4px;
|
|
|
+ border: solid 0px transparent;
|
|
|
+ padding: 1px;
|
|
|
+ background-image: linear-gradient(@bg, @bg), linear-gradient(135deg, #fdfb60, #ff8f3e);
|
|
|
+ background-origin: border-box;
|
|
|
+ box-sizing: border-box;
|
|
|
+ background-clip: content-box, border-box;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ flex-direction: column;
|
|
|
|
|
|
- .text2 {
|
|
|
- font-size: 14px;
|
|
|
- color: #ffffff;
|
|
|
- line-height: 24px;
|
|
|
- }
|
|
|
+ .text1 {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #939599;
|
|
|
+ line-height: 24px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .text2 {
|
|
|
+ font-size: 14px;
|
|
|
+ color: #ffffff;
|
|
|
+ line-height: 24px;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
.page-text {
|
|
|
- font-size: 14px;
|
|
|
- color: #ffffff;
|
|
|
- line-height: 28px;
|
|
|
- margin-top: 10px;
|
|
|
- word-break: break-all;
|
|
|
+ font-size: 14px;
|
|
|
+ color: #ffffff;
|
|
|
+ line-height: 28px;
|
|
|
+ margin-top: 10px;
|
|
|
+ word-break: break-all;
|
|
|
}
|
|
|
|
|
|
.btn {
|
|
|
- position: fixed;
|
|
|
- z-index: 20;
|
|
|
- bottom: 0;
|
|
|
- left: 0;
|
|
|
- right: 0;
|
|
|
- background: #202122ee;
|
|
|
- .btns {
|
|
|
- padding: 6px 42px;
|
|
|
- }
|
|
|
- .van-button {
|
|
|
- background: linear-gradient(135deg, #fdfb60 0%, #ff8f3e 100%);
|
|
|
- color: #333230;
|
|
|
- font-size: 16px;
|
|
|
- border-width: 0px;
|
|
|
- }
|
|
|
+ position: fixed;
|
|
|
+ z-index: 20;
|
|
|
+ bottom: 0;
|
|
|
+ left: 0;
|
|
|
+ right: 0;
|
|
|
+ background: #202122ee;
|
|
|
+ .btns {
|
|
|
+ padding: 6px 42px;
|
|
|
+ }
|
|
|
+ .van-button {
|
|
|
+ background: linear-gradient(135deg, #fdfb60 0%, #ff8f3e 100%);
|
|
|
+ color: #333230;
|
|
|
+ font-size: 16px;
|
|
|
+ border-width: 0px;
|
|
|
+ }
|
|
|
}
|
|
|
.status {
|
|
|
- font-size: 22px;
|
|
|
- font-weight: bold;
|
|
|
- color: #fdfb60;
|
|
|
- line-height: 24px;
|
|
|
+ font-size: 22px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: #fdfb60;
|
|
|
+ line-height: 24px;
|
|
|
}
|
|
|
|
|
|
.user {
|
|
|
- display: flex;
|
|
|
- .creator {
|
|
|
- width: 50%;
|
|
|
- }
|
|
|
-
|
|
|
- .user-img {
|
|
|
- flex-shrink: 0;
|
|
|
- }
|
|
|
-
|
|
|
- /deep/.van-cell__title {
|
|
|
- margin-left: 10px;
|
|
|
- overflow: hidden;
|
|
|
- }
|
|
|
-}
|
|
|
+ display: flex;
|
|
|
+ .creator {
|
|
|
+ width: 50%;
|
|
|
+ }
|
|
|
|
|
|
+ .user-img {
|
|
|
+ flex-shrink: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ /deep/.van-cell__title {
|
|
|
+ margin-left: 10px;
|
|
|
+ overflow: hidden;
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|