|
|
@@ -5,59 +5,67 @@
|
|
|
<div class="img" ref="wrap" v-if="img" @click.stop="preview(0, [img])">
|
|
|
<img :src="img" />
|
|
|
</div>
|
|
|
- <div class="content" v-if="!img" ref="post">
|
|
|
- <!-- @load="loadImg" -->
|
|
|
- <!-- <img crossOrigin="anonymous" :src="banners" class="detailImg" /> -->
|
|
|
- <van-image :src="detailImg" class="detailImg" fit="cover" />
|
|
|
- <div class="info">
|
|
|
- <div class="name van-multi-ellipsis--l2">
|
|
|
- {{ info.name }}
|
|
|
+ <template v-if="!img">
|
|
|
+ <div class="assignmentPost" v-if="assignment && pageUrl === 'productDetail'" ref="post">
|
|
|
+ <van-image class="assignmentPostBg" width="300" height="500" :src="shareBg" fit="cover" />
|
|
|
+ <div class="qrcode">
|
|
|
+ <vue-qrcode :value="url" :options="{ width: 82, margin: 0 }"></vue-qrcode>
|
|
|
</div>
|
|
|
- <div class="tabs">
|
|
|
- <span v-if="info.category">{{ info.category }}</span>
|
|
|
- <span v-if="info.number">编号{{ info.number }}</span>
|
|
|
- </div>
|
|
|
- <template v-if="pageUrl !== 'assetDetail'">
|
|
|
- <div class="text" v-if="isBuy">
|
|
|
- <div class="price">
|
|
|
- <img src="@assets/jiage_huang.png" alt="" />
|
|
|
- <span>{{ info.price }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="content" v-else ref="post">
|
|
|
+ <!-- @load="loadImg" -->
|
|
|
+ <!-- <img crossOrigin="anonymous" :src="banners" class="detailImg" /> -->
|
|
|
+ <van-image :src="detailImg" class="detailImg" fit="cover" />
|
|
|
+ <div class="info">
|
|
|
+ <div class="name van-multi-ellipsis--l2">
|
|
|
+ {{ info.name }}
|
|
|
+ </div>
|
|
|
+ <div class="tabs">
|
|
|
+ <span v-if="info.category">{{ info.category }}</span>
|
|
|
+ <span v-if="info.number">编号{{ info.number }}</span>
|
|
|
+ </div>
|
|
|
+ <template v-if="pageUrl !== 'assetDetail'">
|
|
|
+ <div class="text" v-if="isBuy">
|
|
|
+ <div class="price">
|
|
|
+ <img src="@assets/jiage_huang.png" alt="" />
|
|
|
+ <span>{{ info.price }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="text1" v-if="info.stock && !time">
|
|
|
+ <span>已售 {{ Math.max(Math.min(info.sale, info.total), 0) }}</span>
|
|
|
+ <span>剩余 {{ Math.min(Math.max(info.stock, 0), info.total) }}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="text1" v-if="info.stock && !time">
|
|
|
- <span>已售 {{ Math.max(Math.min(info.sale, info.total), 0) }}</span>
|
|
|
- <span>剩余 {{ Math.min(Math.max(info.stock, 0), info.total) }}</span>
|
|
|
+
|
|
|
+ <div class="status" v-if="!info.salable">仅展示</div>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <div class="text" v-if="info.consignment">
|
|
|
+ <div class="price">
|
|
|
+ <img src="@assets/jiage_huang.png" alt="" />
|
|
|
+ <span>{{ info.sellPrice || 0 }}</span>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
|
|
|
- <div class="status" v-if="!info.salable">仅展示</div>
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <div class="text" v-if="info.consignment">
|
|
|
- <div class="price">
|
|
|
- <img src="@assets/jiage_huang.png" alt="" />
|
|
|
- <span>{{ info.sellPrice || 0 }}</span>
|
|
|
+ <div class="status" v-else-if="info.status == 'NORMAL'">
|
|
|
+ {{ info.publicShow ? '仅展示' : '未展示' }}
|
|
|
</div>
|
|
|
+ </template>
|
|
|
+ </div>
|
|
|
+ <div class="minter">
|
|
|
+ <div class="minter-content">
|
|
|
+ <van-image width="26" height="26" round :src="userImg" fit="cover" />
|
|
|
+ <div class="text1">{{ info.minter }}</div>
|
|
|
+ <div class="text2">铸造者</div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="status" v-else-if="info.status == 'NORMAL'">
|
|
|
- {{ info.publicShow ? '仅展示' : '未展示' }}
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- <div class="minter">
|
|
|
- <div class="minter-content">
|
|
|
- <van-image width="26" height="26" round :src="userImg" fit="cover" />
|
|
|
- <div class="text1">{{ info.minter }}</div>
|
|
|
- <div class="text2">铸造者</div>
|
|
|
+ <vue-qrcode :value="url" :options="{ width: 70, margin: 3 }" class="code"></vue-qrcode>
|
|
|
+ </div>
|
|
|
+ <div class="sold xianliang" v-if="time">
|
|
|
+ <img src="@assets/shizhong.png" alt="" />
|
|
|
+ <span>即将开售:{{ time }}</span>
|
|
|
</div>
|
|
|
-
|
|
|
- <vue-qrcode :value="url" :options="{ width: 70, margin: 3 }" class="code"></vue-qrcode>
|
|
|
- </div>
|
|
|
- <div class="sold xianliang" v-if="time">
|
|
|
- <img src="@assets/shizhong.png" alt="" />
|
|
|
- <span>即将开售:{{ time }}</span>
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </template>
|
|
|
|
|
|
<div class="btn" @click.stop="" v-if="cordova">
|
|
|
<van-button type="primary" round @click="save">点击保存到本地</van-button>
|
|
|
@@ -107,7 +115,8 @@ export default {
|
|
|
img: '',
|
|
|
detailImg: '',
|
|
|
userImg: '',
|
|
|
- cordova: window.cordova
|
|
|
+ cordova: window.cordova,
|
|
|
+ shareBg: ''
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
|
@@ -118,7 +127,12 @@ export default {
|
|
|
pageUrl = 'productDetail';
|
|
|
id = this.info.publicCollectionId;
|
|
|
}
|
|
|
- if (this.isLogin) {
|
|
|
+ if (this.isLogin && this.assignment && pageUrl === 'productDetail') {
|
|
|
+ return resolveUrl(
|
|
|
+ this.$baseUrl,
|
|
|
+ '9th/productTasks?id=' + id + '&invitor=' + this.$store.state.userInfo.id
|
|
|
+ );
|
|
|
+ } else if (this.isLogin) {
|
|
|
return resolveUrl(
|
|
|
this.$baseUrl,
|
|
|
'9th/' + pageUrl + '?id=' + id + '&invitor=' + this.$store.state.userInfo.id
|
|
|
@@ -155,8 +169,12 @@ export default {
|
|
|
forbidClick: true
|
|
|
});
|
|
|
this.$nextTick(() => {
|
|
|
- this.getImgBase64(this.banners, 'detailImg');
|
|
|
- this.getImgBase64(this.info.minterAvatar, 'userImg');
|
|
|
+ if (this.assignment && this.pageUrl === 'productDetail') {
|
|
|
+ this.getImgBase64(this.info.shareBg, 'shareBg');
|
|
|
+ } else {
|
|
|
+ this.getImgBase64(this.banners, 'detailImg');
|
|
|
+ this.getImgBase64(this.info.minterAvatar, 'userImg');
|
|
|
+ }
|
|
|
setTimeout(() => {
|
|
|
this.loadImg();
|
|
|
}, 1000);
|
|
|
@@ -211,14 +229,13 @@ export default {
|
|
|
console.log('File saved on ' + filePath);
|
|
|
},
|
|
|
function (msg) {
|
|
|
- _this.$dialog
|
|
|
- .alert({
|
|
|
- title: '提示',
|
|
|
- message: msg
|
|
|
- })
|
|
|
- .then(() => {
|
|
|
- _this.preview(0, [_this.img]);
|
|
|
- });
|
|
|
+ _this.$dialog.alert({
|
|
|
+ title: '提示',
|
|
|
+ message: msg
|
|
|
+ });
|
|
|
+ (1).then(() => {
|
|
|
+ _this.preview(0, [_this.img]);
|
|
|
+ });
|
|
|
}
|
|
|
);
|
|
|
}
|
|
|
@@ -409,4 +426,25 @@ export default {
|
|
|
.btn {
|
|
|
padding: 30px;
|
|
|
}
|
|
|
+
|
|
|
+.assignmentPost {
|
|
|
+ width: 300px;
|
|
|
+ height: 500px;
|
|
|
+ background: #ffffff;
|
|
|
+ border-radius: 30px;
|
|
|
+ position: relative;
|
|
|
+ .qrcode {
|
|
|
+ background-color: @bg3;
|
|
|
+ padding: 6px;
|
|
|
+ position: absolute;
|
|
|
+ left: 50%;
|
|
|
+ transform: translateX(-50%);
|
|
|
+ bottom: 94px;
|
|
|
+ border-radius: 6px;
|
|
|
+ z-index: 20;
|
|
|
+ /deep/canvas {
|
|
|
+ display: block;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</style>
|