|
@@ -100,6 +100,36 @@
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
+ <div class="top">
|
|
|
|
|
+ <div class="top1">
|
|
|
|
|
+ <div class="text1">类型</div>
|
|
|
|
|
+ <div class="text2">{{ info.category }}</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="top1" @click="Whisper">
|
|
|
|
|
+ <div class="text1">悄悄话</div>
|
|
|
|
|
+ <div class="text2 text3" :class="{ prim: init2.opened }">
|
|
|
|
|
+ <img v-if="init2.opened" class="img" :src="init2.icon[2]" alt="" />
|
|
|
|
|
+ <!-- <img v-else class="img" :src="init2.icon[2]" alt="" /> -->
|
|
|
|
|
+ <div class="text4" :class="{ prim: init2.opened }">
|
|
|
|
|
+ {{ init2.opened ? '已打开' : '未打开' }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="page-title">持有特权<span>(灰色表示已使用)</span></div>
|
|
|
|
|
+ <div class="prive">
|
|
|
|
|
+ <div v-for="(item, index) in init" :key="index">
|
|
|
|
|
+ <!-- :class="{ prim: item.opened }" -->
|
|
|
|
|
+ <div class="prive1" :class="{ prim: item.opened }">
|
|
|
|
|
+ <img v-if="!item.opened" class="img" :src="item.icon[0]" alt="" />
|
|
|
|
|
+ <!-- <img class="img" :src="item.icon[0]" alt="" /> -->
|
|
|
|
|
+ <img v-if="item.opened" class="img" :src="item.icon[2]" alt="" />
|
|
|
|
|
+ <div @click="privilegeFn(item)" class="prive2">
|
|
|
|
|
+ {{ item.name }}
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
<div class="page-title">链上信息</div>
|
|
<div class="page-title">链上信息</div>
|
|
|
<div class="page-text">
|
|
<div class="page-text">
|
|
|
Hash地址:{{ info.txHash }}<br />
|
|
Hash地址:{{ info.txHash }}<br />
|
|
@@ -140,13 +170,68 @@
|
|
|
<!-- <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> -->
|
|
|
|
|
|
|
+ <van-collapse-item title="交易记录" name="1">
|
|
|
|
|
+ <van-cell title="单元格" value="内容"> </van-cell>
|
|
|
|
|
+ </van-collapse-item>
|
|
|
|
|
+ </van-collapse> -->
|
|
|
|
|
+ <div v-if="list.length != 0">
|
|
|
|
|
+ <div style="padding-left: 16px" class="page-title">交易历史</div>
|
|
|
|
|
+ <div class="content">
|
|
|
|
|
+ <img class="img" :src="list.avatar" alt="" />
|
|
|
|
|
+ <div class="init">
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <div class="text1">{{ list.realName || '保密' }}</div>
|
|
|
|
|
+ <div class="text2">
|
|
|
|
|
+ <div class="text3">111</div>
|
|
|
|
|
+ <div class="text4">{{ list.createdAt }}</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
|
|
|
<driver />
|
|
<driver />
|
|
|
-
|
|
|
|
|
|
|
+ <van-dialog v-model:show="show" confirm-button-text="返回">
|
|
|
|
|
+ <div class="title2">
|
|
|
|
|
+ <img class="img" :src="list2.icon[1]" alt="" />
|
|
|
|
|
+ <div class="title3">{{ list2.name }}</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="border"></div>
|
|
|
|
|
+ <div class="name" v-if="list2.name == '版权权利'">该特权将证明持有者拥有该作品版权使用权力</div>
|
|
|
|
|
+ <div class="name1">
|
|
|
|
|
+ 说明:<span>{{ list2.description }}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <!-- <div class="name" v-if="init.name == '铸造'">注:使用后后该特权将不能二次使用</div> -->
|
|
|
|
|
+ </van-dialog>
|
|
|
|
|
+ <van-dialog v-model:show="show3" confirm-button-text="返回">
|
|
|
|
|
+ <div class="title2">
|
|
|
|
|
+ <img class="img" :src="init2.icon[1]" alt="" />
|
|
|
|
|
+ <div class="title3">{{ init2.name }}</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="border"></div>
|
|
|
|
|
+ <div class="name">藏有创作者填写的隐藏内容,持有者才能打开</div>
|
|
|
|
|
+ <div class="name1">
|
|
|
|
|
+ 说明:<span>{{ init2.description }}</span>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </van-dialog>
|
|
|
|
|
+ <van-popup v-model:show="show2">
|
|
|
|
|
+ <div class="con">
|
|
|
|
|
+ <div class="Whisper">提示</div>
|
|
|
|
|
+ <img
|
|
|
|
|
+ @click="show2 = false"
|
|
|
|
|
+ class="icon"
|
|
|
|
|
+ src="https://ticket-exchange.oss-cn-hangzhou.aliyuncs.com/image/2021-11-12-16-13-37tvHvqsIN.png"
|
|
|
|
|
+ alt=""
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <img
|
|
|
|
|
+ @click="openedFn"
|
|
|
|
|
+ class="imgBox"
|
|
|
|
|
+ src="https://ticket-exchange.oss-cn-hangzhou.aliyuncs.com/image/2021-11-12-16-13-07DtWLMcPy.png"
|
|
|
|
|
+ alt=""
|
|
|
|
|
+ />
|
|
|
|
|
+ <div class="Whisper1">点击图标打开悄悄话,(隐藏内容,只能开启一次)</div>
|
|
|
|
|
+ </van-popup>
|
|
|
<post :info="info" pageUrl="assetDetail" />
|
|
<post :info="info" pageUrl="assetDetail" />
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
@@ -181,7 +266,13 @@ export default {
|
|
|
activeName: '1',
|
|
activeName: '1',
|
|
|
info: {},
|
|
info: {},
|
|
|
liked: false,
|
|
liked: false,
|
|
|
- btn: null
|
|
|
|
|
|
|
+ show2: false,
|
|
|
|
|
+ show3: false,
|
|
|
|
|
+ btn: null,
|
|
|
|
|
+ list: [],
|
|
|
|
|
+ show: false,
|
|
|
|
|
+ init: [],
|
|
|
|
|
+ init2: []
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
computed: {
|
|
computed: {
|
|
@@ -198,8 +289,58 @@ export default {
|
|
|
},
|
|
},
|
|
|
mounted() {
|
|
mounted() {
|
|
|
this.getProduct();
|
|
this.getProduct();
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.record();
|
|
|
|
|
+ }, 1000);
|
|
|
|
|
+ // setTimeout(() => {
|
|
|
|
|
+ // this.privilegeFn();
|
|
|
|
|
+ // }, 1000);
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
+ privilegeFn(init) {
|
|
|
|
|
+ this.list2 = init;
|
|
|
|
|
+ if (!init.once && !init.opened) {
|
|
|
|
|
+ this.show = true;
|
|
|
|
|
+ this.$http
|
|
|
|
|
+ .post('/asset/usePrivilege', {
|
|
|
|
|
+ assetId: this.info.id,
|
|
|
|
|
+ privilegeId: init.id
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(res => {
|
|
|
|
|
+ console.log(res);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ openedFn() {
|
|
|
|
|
+ this.show2 = false;
|
|
|
|
|
+ this.show3 = true;
|
|
|
|
|
+ if (!this.init2.once) {
|
|
|
|
|
+ this.show = true;
|
|
|
|
|
+ this.$http
|
|
|
|
|
+ .post('/asset/usePrivilege', {
|
|
|
|
|
+ assetId: this.info.id,
|
|
|
|
|
+ privilegeId: this.init2.id
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(res => {
|
|
|
|
|
+ console.log(res);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ Whisper() {
|
|
|
|
|
+ if (!this.init2.opened) {
|
|
|
|
|
+ this.show2 = true;
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ record() {
|
|
|
|
|
+ this.$http
|
|
|
|
|
+ .get('/asset/tokenHistory', {
|
|
|
|
|
+ tokenId: this.info.tokenId,
|
|
|
|
|
+ assetId: this.info.id
|
|
|
|
|
+ })
|
|
|
|
|
+ .then(res => {
|
|
|
|
|
+ this.list = res;
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
Consignment() {
|
|
Consignment() {
|
|
|
if (!this.info.consignment) {
|
|
if (!this.info.consignment) {
|
|
|
Dialog.confirm({
|
|
Dialog.confirm({
|
|
@@ -275,6 +416,14 @@ export default {
|
|
|
});
|
|
});
|
|
|
this.$http.get('/asset/get/' + this.$route.query.id).then(res => {
|
|
this.$http.get('/asset/get/' + this.$route.query.id).then(res => {
|
|
|
this.info = res;
|
|
this.info = res;
|
|
|
|
|
+ this.tokenId = this.info.tokenId;
|
|
|
|
|
+ this.init2 = res.privileges.find(item => {
|
|
|
|
|
+ return item.name === '悄悄话';
|
|
|
|
|
+ });
|
|
|
|
|
+ this.init = res.privileges.filter(item => {
|
|
|
|
|
+ return item.name !== '悄悄话';
|
|
|
|
|
+ });
|
|
|
|
|
+ // console.log(this.init);
|
|
|
console.log(this.info);
|
|
console.log(this.info);
|
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
|
if (this.isBuy) {
|
|
if (this.isBuy) {
|
|
@@ -316,6 +465,49 @@ export default {
|
|
|
.detail {
|
|
.detail {
|
|
|
padding-bottom: 100px;
|
|
padding-bottom: 100px;
|
|
|
}
|
|
}
|
|
|
|
|
+.content {
|
|
|
|
|
+ padding: 0px 16px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ width: 343px;
|
|
|
|
|
+ height: 68px;
|
|
|
|
|
+ border-radius: 12px;
|
|
|
|
|
+ .img {
|
|
|
|
|
+ width: 40px;
|
|
|
|
|
+ height: 40px;
|
|
|
|
|
+ border-radius: 50%;
|
|
|
|
|
+ margin-right: 10px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .init {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ .text1 {
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ color: #ffffff;
|
|
|
|
|
+ line-height: 24px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .text2 {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ .text3 {
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ color: #939599;
|
|
|
|
|
+ line-height: 24px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .text4 {
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ color: #939599;
|
|
|
|
|
+ line-height: 24px;
|
|
|
|
|
+ margin-left: 137px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
.info {
|
|
.info {
|
|
|
// height: 164px;
|
|
// height: 164px;
|
|
|
background-color: @bg;
|
|
background-color: @bg;
|
|
@@ -420,7 +612,41 @@ export default {
|
|
|
font-size: 13px;
|
|
font-size: 13px;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+/deep/ .van-popup {
|
|
|
|
|
+ width: 260px;
|
|
|
|
|
+ background: rgb(209, 206, 18);
|
|
|
|
|
+ border-radius: 10px;
|
|
|
|
|
+ .con {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ padding: 12px 16px 0;
|
|
|
|
|
+ .Whisper {
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ color: #000000;
|
|
|
|
|
+ line-height: 24px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .icon {
|
|
|
|
|
+ width: 24px;
|
|
|
|
|
+ height: 24px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .imgBox {
|
|
|
|
|
+ width: 80px;
|
|
|
|
|
+ height: 80px;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ margin: 30px 90px 22px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .Whisper1 {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ color: #303133;
|
|
|
|
|
+ line-height: 18px;
|
|
|
|
|
+ padding-bottom: 36px;
|
|
|
|
|
+ margin: 0 64px;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
/deep/ .mySwiper {
|
|
/deep/ .mySwiper {
|
|
|
width: 100vw;
|
|
width: 100vw;
|
|
|
height: 100vw;
|
|
height: 100vw;
|
|
@@ -449,17 +675,146 @@ export default {
|
|
|
border-radius: 4px;
|
|
border-radius: 4px;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+/deep/ .van-dialog {
|
|
|
|
|
+ width: 228px;
|
|
|
|
|
+ background: #ffffff;
|
|
|
|
|
+ padding: 0 16px;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ .title2 {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding-top: 12px;
|
|
|
|
|
+ .img {
|
|
|
|
|
+ width: 18px;
|
|
|
|
|
+ height: 18px;
|
|
|
|
|
+ color: #ff4f50;
|
|
|
|
|
+ margin-right: 3px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .title3 {
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ color: #ff4f50;
|
|
|
|
|
+ line-height: 24px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .border {
|
|
|
|
|
+ height: 1px;
|
|
|
|
|
+ background: #f2f3f5;
|
|
|
|
|
+ border-radius: 1px;
|
|
|
|
|
+ margin: 12px 0 6px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .name1 {
|
|
|
|
|
+ width: 208px;
|
|
|
|
|
+ padding: 10px;
|
|
|
|
|
+ background: #f5f7fa;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ color: #939599;
|
|
|
|
|
+ margin-bottom: 11px;
|
|
|
|
|
+ }
|
|
|
|
|
+ span {
|
|
|
|
|
+ color: #303133;
|
|
|
|
|
+ }
|
|
|
|
|
+ .name {
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ color: #939599;
|
|
|
|
|
+ line-height: 18px;
|
|
|
|
|
+ margin-bottom: 6px;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
.goods {
|
|
.goods {
|
|
|
- padding: 20px 16px;
|
|
|
|
|
|
|
+ // padding: 20px 16px;
|
|
|
|
|
|
|
|
.page-title {
|
|
.page-title {
|
|
|
&:not(:first-child) {
|
|
&:not(:first-child) {
|
|
|
padding-top: 16px;
|
|
padding-top: 16px;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ span {
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+ font-weight: 400;
|
|
|
|
|
+ color: #939599;
|
|
|
|
|
+ line-height: 24px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .top {
|
|
|
|
|
+ padding: 20px 16px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ .top1 {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ .text1 {
|
|
|
|
|
+ font-size: 18px;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ color: #ffffff;
|
|
|
|
|
+ line-height: 28px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .text2 {
|
|
|
|
|
+ width: 94px;
|
|
|
|
|
+ height: 32px;
|
|
|
|
|
+ border: 1px solid yellow;
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ margin-left: 14px;
|
|
|
|
|
+ line-height: 32px;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ color: #ffffff;
|
|
|
|
|
+ &.text3 {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ }
|
|
|
|
|
+ .img {
|
|
|
|
|
+ width: 18px;
|
|
|
|
|
+ height: 18px;
|
|
|
|
|
+ margin-right: 4px;
|
|
|
|
|
+ }
|
|
|
|
|
+ &.prim {
|
|
|
|
|
+ color: #939599;
|
|
|
|
|
+ border: 1px solid #303133;
|
|
|
|
|
+ background: #202122;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .text4 {
|
|
|
|
|
+ color: #fdfb60;
|
|
|
|
|
+ &.prim {
|
|
|
|
|
+ color: #939599;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .prive {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ .prive1 {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ margin: 16px 15px 0;
|
|
|
|
|
+ width: 94px;
|
|
|
|
|
+ height: 32px;
|
|
|
|
|
+ color: #000;
|
|
|
|
|
+ background: linear-gradient(48deg, #fdfb60 0%, #ff8f3e 100%);
|
|
|
|
|
+ border-radius: 4px;
|
|
|
|
|
+ &.prim {
|
|
|
|
|
+ background: #202122;
|
|
|
|
|
+ color: #939599;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .prive2 {
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ }
|
|
|
|
|
+ .img {
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ width: 18px;
|
|
|
|
|
+ height: 18px;
|
|
|
|
|
+ margin-right: 4px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.page-title {
|
|
.page-title {
|
|
|
|
|
+ padding: 0 16px;
|
|
|
font-size: 18px;
|
|
font-size: 18px;
|
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
|
color: #ffffff;
|
|
color: #ffffff;
|
|
@@ -505,6 +860,7 @@ export default {
|
|
|
line-height: 28px;
|
|
line-height: 28px;
|
|
|
margin-top: 10px;
|
|
margin-top: 10px;
|
|
|
word-break: break-all;
|
|
word-break: break-all;
|
|
|
|
|
+ padding: 0 16px;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.btn {
|
|
.btn {
|