429 lines
10 KiB
Vue
429 lines
10 KiB
Vue
<template>
|
||
<view>
|
||
<!-- <navBar :navTitle="collectionsDetail.Name" :isBack="true" :stickyShow="stickyShow"></navBar> -->
|
||
<view class="fixed-box">
|
||
<view class="btn">
|
||
<u-button
|
||
type="warning"
|
||
:text="$t('navbar.back')"
|
||
class="back"
|
||
@click="back"
|
||
></u-button>
|
||
<u-button
|
||
v-if="collectionsDetail.Num === collectionsDetail.SellNum"
|
||
:disabled="true"
|
||
type="primary"
|
||
:text="$t('buyVerfy.noGift')"
|
||
class="buyer"
|
||
></u-button>
|
||
<u-button
|
||
v-else
|
||
type="primary"
|
||
:text="$t('collection.buy')"
|
||
class="buyer"
|
||
@click="buy"
|
||
></u-button>
|
||
</view>
|
||
</view>
|
||
<image
|
||
src="@/static/image/home/activity/xqy1_01.png"
|
||
mode="widthFix"
|
||
></image>
|
||
<image
|
||
src="@/static/image/home/activity/xqy1_02.png"
|
||
mode="widthFix"
|
||
></image>
|
||
<image
|
||
src="@/static/image/home/activity/xqy1_03.png"
|
||
mode="widthFix"
|
||
></image>
|
||
<image
|
||
src="@/static/image/home/activity/xqy1_04.png"
|
||
mode="widthFix"
|
||
></image>
|
||
<image
|
||
src="@/static/image/home/activity/xqy1_05.png"
|
||
mode="widthFix"
|
||
></image>
|
||
<image
|
||
src="@/static/image/home/activity/xqy1_06.png"
|
||
mode="widthFix"
|
||
></image>
|
||
<image
|
||
src="@/static/image/home/activity/xqy1_07.png"
|
||
mode="widthFix"
|
||
></image>
|
||
|
||
<view style="height: 160rpx"></view>
|
||
<u-popup
|
||
:show="showVerfy"
|
||
mode="center"
|
||
@close="closeVerfy"
|
||
bgColor="transparent"
|
||
>
|
||
<view class="popup-box">
|
||
<view class="title">{{ $t("buyVerfy.title") }}</view>
|
||
<view class="">
|
||
<view class="input-box">
|
||
<view class="label">{{ $t("buyVerfy.username") }}:</view>
|
||
<view class="input">
|
||
<u--input
|
||
border="none"
|
||
shape="circle"
|
||
v-model="realName"
|
||
@focus="verfFocus"
|
||
></u--input>
|
||
</view>
|
||
</view>
|
||
<view class="input-box">
|
||
<view class="label">{{ $t("buyVerfy.idNum") }}:</view>
|
||
<view class="input">
|
||
<u--input
|
||
border="none"
|
||
shape="circle"
|
||
v-model="idNum"
|
||
@focus="verfFocus"
|
||
></u--input>
|
||
</view>
|
||
</view>
|
||
<view class="flex-end">
|
||
<view class="fl-e" v-if="succes">
|
||
<image
|
||
src="../../../static/image/home/true.png"
|
||
mode=""
|
||
style="width: 30rpx; height: 30rpx; margin-right: 5px"
|
||
></image>
|
||
<text style="color: #ffffff; font-size: 24rpx">{{
|
||
$t("buyVerfy.suss")
|
||
}}</text>
|
||
</view>
|
||
<view class="fl-e" v-if="err">
|
||
<image
|
||
src="../../../static/image/home/false.png"
|
||
mode=""
|
||
style="width: 30rpx; height: 30rpx; margin-right: 5px"
|
||
></image>
|
||
<text style="color: #fd343c; font-size: 24rpx">{{
|
||
$t("buyVerfy.error")
|
||
}}</text>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<u-button
|
||
:text="$t('buyVerfy.done')"
|
||
color="#558BF2"
|
||
@click="verifyName"
|
||
style="
|
||
width: 622rpx;
|
||
height: 56rpx;
|
||
border-radius: 40rpx;
|
||
margin-top: 30rpx;
|
||
"
|
||
></u-button>
|
||
<u-button
|
||
:text="$t('buyVerfy.cancel')"
|
||
color="#000000"
|
||
@click="closeVerfy"
|
||
style="
|
||
width: 622rpx;
|
||
height: 56rpx;
|
||
border-radius: 40rpx;
|
||
margin-top: 30rpx;
|
||
"
|
||
></u-button>
|
||
</view>
|
||
</u-popup>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
data() {
|
||
return {
|
||
stickyShow: false,
|
||
showVerfy: false,
|
||
CollectionUID: "",
|
||
collectionsDetail: {},
|
||
sellPoint: [],
|
||
collDetails: [],
|
||
companyInfo: [],
|
||
copyright: [],
|
||
Blockchain: [],
|
||
realName: "",
|
||
idNum: "",
|
||
err: false,
|
||
succes: false,
|
||
SeriesName: "",
|
||
isHave: false,
|
||
AirdorpUid: "",
|
||
isClose: true,
|
||
};
|
||
},
|
||
onPageScroll(e) {
|
||
this.stickyShow = e.scrollTop > 5 ? true : false;
|
||
},
|
||
onLoad: function (option) {
|
||
this.CollectionUID = option.CollectionUID;
|
||
this.SeriesName = option.SeriesName;
|
||
// this.getCollectionDetail();
|
||
},
|
||
onShow() {
|
||
this.getCollectionDetail();
|
||
},
|
||
methods: {
|
||
open3D() {
|
||
uni.navigateTo({
|
||
url: "/pages/index/detail/open3D/open3D",
|
||
});
|
||
},
|
||
back() {
|
||
// this.$common.navigateBack();
|
||
uni.navigateTo({
|
||
url:
|
||
"/pages/index/activity/index?detail=" +
|
||
uni.getStorageSync("activity_params"),
|
||
});
|
||
},
|
||
async getCollectionDetail() {
|
||
let data = {
|
||
CollectionsUID: this.CollectionUID,
|
||
};
|
||
let res = await this.$api.series.collectionsInfo(data);
|
||
if (res.status === 0) {
|
||
// await this.getPick(res.data.CollectionUID)
|
||
this.collectionsDetail = res.data;
|
||
// (this.AllImgList = res.data.CutImg ? JSON.parse(res.data.CutImg) : []),
|
||
// this.cutImg();
|
||
} else {
|
||
uni.$u.toast(this.$t("load.failed"));
|
||
}
|
||
},
|
||
/* async getPick(uid) {
|
||
let parmas = {
|
||
uuid: uid
|
||
}
|
||
let res = await this.$api.series.userHaveDropNo(parmas);
|
||
if(res.status === 0) {
|
||
console.log(res.data.Hava);
|
||
this.isHave = res.data.Have != 0 ? false : true;
|
||
this.AirdorpUid = res.data.UserAirdorpUid
|
||
} else {
|
||
this.isHave = false
|
||
}
|
||
}, */
|
||
/* cutImg() {
|
||
this.AllImgList.forEach((v) => {
|
||
if (v.label === "卖点") {
|
||
this.sellPoint = v.imgs;
|
||
} else if (v.label === "藏品细节") {
|
||
this.collDetails = v.imgs;
|
||
} else if (v.label === "工艺/公司介绍") {
|
||
this.companyInfo = v.imgs;
|
||
} else if (v.label === "版权声明") {
|
||
this.copyright = v.imgs;
|
||
} else if (v.label === "区块链说明") {
|
||
this.Blockchain = v.imgs;
|
||
}
|
||
});
|
||
}, */
|
||
buy() {
|
||
let token = uni.getStorageSync("mall_token");
|
||
let realName = uni.getStorageSync("mall-user-info")
|
||
? uni.getStorageSync("mall-user-info").realName
|
||
: "";
|
||
if (!token) {
|
||
uni.$u.toast(this.$t("login.pls"));
|
||
uni.setStorageSync(
|
||
"return_url",
|
||
"/pages/index/activity/detail?CollectionUID=" +
|
||
this.CollectionUID +
|
||
"&SeriesName=" +
|
||
this.SeriesName
|
||
);
|
||
uni.navigateTo({
|
||
url: "/pages/login/login",
|
||
});
|
||
} else if (!realName) {
|
||
this.showVerfy = true;
|
||
} else {
|
||
uni.navigateTo({
|
||
url:
|
||
"/pages/index/comfirm/comfirm?Collection=" +
|
||
encodeURIComponent(JSON.stringify(this.collectionsDetail)),
|
||
});
|
||
}
|
||
},
|
||
/* async pickUp() {
|
||
let data = {
|
||
UserId: uni.getStorageSync('mall-user-info').ID,
|
||
Uuid: this.AirdorpUid
|
||
};
|
||
let res = await this.$api.airdrop.getCollection(data);
|
||
if (res.status === 0) {
|
||
this.recive();
|
||
} else {
|
||
uni.$u.toast(res.msg);
|
||
}
|
||
},
|
||
async recive() {
|
||
let data = {
|
||
collectionsUID: this.CollectionUID,
|
||
userAirdropUuid: this.AirdorpUid
|
||
};
|
||
let res = await this.$api.airdrop.getCollectionStepTwo(data);
|
||
if (res.status === 0) {
|
||
uni.navigateTo({
|
||
url: '/pages/index/payment/reciveOK'
|
||
})
|
||
} else {
|
||
uni.$u.toast(res.msg);
|
||
}
|
||
}, */
|
||
async verifyName() {
|
||
let data = {
|
||
idNum: this.idNum,
|
||
realName: this.realName,
|
||
};
|
||
let res = await this.$api.mine.update(data);
|
||
|
||
if (res.status === 0) {
|
||
this.succes = true;
|
||
uni.setStorageSync("mall-user-info", res.data);
|
||
setTimeout(() => {
|
||
this.idNum = "";
|
||
this.realName = "";
|
||
this.showVerfy = false;
|
||
this.err = false;
|
||
}, 1000);
|
||
} else {
|
||
this.err = true;
|
||
this.succes = false;
|
||
uni.$u.toast(res.msg);
|
||
}
|
||
},
|
||
verfFocus() {
|
||
this.err = false;
|
||
this.succes = false;
|
||
},
|
||
doneVerfy() {
|
||
this.showVerfy = false;
|
||
},
|
||
closeVerfy() {
|
||
this.showVerfy = false;
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
.fixed-box {
|
||
position: fixed;
|
||
bottom: 0;
|
||
width: 100%;
|
||
height: 172rpx;
|
||
// background: #3e3e3e;
|
||
background: rgba(0, 0, 0, 1);
|
||
z-index: 10;
|
||
|
||
.btn {
|
||
display: flex;
|
||
padding: 42rpx 38rpx;
|
||
}
|
||
|
||
.back {
|
||
width: 172rpx;
|
||
height: 56rpx;
|
||
border-radius: 40rpx;
|
||
// background: #efba42;
|
||
background: rgba(255, 255, 255, 0.3);
|
||
border-color: rgba(0, 0, 0, 1);
|
||
margin-right: 30rpx;
|
||
}
|
||
|
||
.buyer {
|
||
width: 484rpx;
|
||
height: 56rpx;
|
||
border-radius: 40rpx;
|
||
// background: #558bf2;
|
||
background: rgba(
|
||
252,
|
||
73,
|
||
71,
|
||
1
|
||
); //linear-gradient(#FFA10A 0%,#C12020 100%);
|
||
border-color: rgba(0, 0, 0, 1);
|
||
}
|
||
|
||
/* .disBtn {
|
||
width: 484rpx;
|
||
height: 56rpx;
|
||
line-height: 56upx;
|
||
border-radius: 40rpx;
|
||
background: rgba(65, 0, 0, 1);
|
||
border: 1upx #fff solid;
|
||
text-align: center;
|
||
}
|
||
*/
|
||
}
|
||
|
||
image {
|
||
width: 100%;
|
||
height: auto;
|
||
display: block;
|
||
}
|
||
.popup-box {
|
||
background: rgba(0, 0, 0, 1);
|
||
width: 698rpx;
|
||
overflow: hidden;
|
||
padding: 30rpx 0;
|
||
|
||
.title {
|
||
font-size: 40rpx;
|
||
text-align: center;
|
||
margin-top: 80rpx;
|
||
margin-bottom: 100rpx;
|
||
}
|
||
|
||
.input-box {
|
||
display: flex;
|
||
align-items: center;
|
||
padding: 0 34rpx 34rpx 38rpx;
|
||
|
||
.label {
|
||
font-size: 22rpx;
|
||
}
|
||
|
||
.input {
|
||
background: rgba(255, 255, 255, 0.5);
|
||
width: 450rpx;
|
||
height: 60rpx;
|
||
border-radius: 40rpx;
|
||
padding: 0 20rpx;
|
||
display: flex;
|
||
align-items: center;
|
||
|
||
/deep/ .input-placeholder {
|
||
font-size: 24rpx;
|
||
}
|
||
|
||
/deep/ .uni-input-input {
|
||
font-size: 24rpx;
|
||
color: #fff;
|
||
}
|
||
}
|
||
}
|
||
|
||
.flex-end {
|
||
padding: 0 34rpx 34rpx 38rpx;
|
||
display: flex;
|
||
justify-content: flex-end;
|
||
|
||
.fl-e {
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
}
|
||
}
|
||
</style>
|