Files
BlockChainH5/pages/goods/tracedTo.vue

271 lines
6.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="GoodsAuthentication">
<view class="authenticationTop" v-if='list.length>0'>权证溯源码:{{info.token}}</view>
<!-- 进度条 -->
<view v-if='list.length>0' class='timeAxis'>
<view class="box-top" v-for="(item,index) in list" :key="index">
<view class="left-box-top"><span>{{item.title}}</span>{{item.blocked_at}}</view>
<!-- 左边 -->
<view class="line" :class="{active:true,none:index==(list.length-1)}">
<!-- 中线 -->
<view class="dot" :class="{active:true}"></view><!-- 圆点 -->
</view>
<!-- 右边 -->
<view class="right-box-top">
<view class="authenticationItem">
<view class="authenticationItemcontent">
<view class="authenticationItemcontentItem" v-if="item.goods">
<view class="title">名称:</view>
<view class="content">{{item.goods.name}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="item.goods">
<view class="title">规格:</view>
<view class="content">{{item.goods.skus.unit}}</view>
</view>
<view class="authenticationItemcontentItem">
<view class="title">{{item.type}}数量:</view>
<view class="content">{{item.amount}}</view>
</view>
<view class="authenticationItemcontentItem">
<view class="title">区块链高度:</view>
<view class="content">{{item.height}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="item.from_user.nickname">
<view class="title">HashFrom</view>
<view class="content"><image :src="item.from_user.avatar" mode="widthFix"/> {{item.from_user.nickname}}</view>
</view>
<view class="authenticationItemcontentItem">
<view class="title">Hash</view>
<view class="content hash">{{item.hash}}</view>
</view>
<view class="authenticationItemcontentItem" v-if="item.to_user.nickname">
<view class="title">HashTo</view>
<view class="content"><image :src="item.to_user.avatar" mode="widthFix"/>{{item.to_user.nickname}}</view>
</view>
<view class="zhushi">注释:{{item.remark}}</view>
</view>
</view>
</view>
</view>
</view>
<no-list v-if="list.length === 0" name='no-chain' txt="没有任何数据哦~" />
<!-- 弹窗提示喽 -->
<u-toast ref="uToast" />
</view>
</template>
<script>
import {
managesTracedTo
} from '@/apis/interfaces/goods'
export default {
data() {
return {
list: [],
info: {},
has_more:true,
page:1
}
},
created() {
this.getList()
},
onReachBottom(){
if(this.has_more){
this.getList()
}else{
uni.showToast({
title:'没有更多',
icon:'none',
mask:true
})
}
},
methods: {
getList(){
managesTracedTo(this.$Route.query.id,this.page).then(res1 => {
this.list= this.list.concat(res1.logs.data)
this.info = res1
this.has_more = res1.logs.page.has_more
})
},
priveImg(img) {
uni.previewImage({
current: img, // 当前显示图片的http链接
urls: [img] // 需要预览的图片http链接列表
})
},
call(phone) {
uni.makePhoneCall({
phoneNumber: phone,
})
}
}
}
</script>
<style lang="scss" scoped>
page {
background-color: #F7F7F7;
}
.GoodsAuthentication {
padding: 30rpx;
.authenticationTop {
width: 100%;
padding: 20rpx 50rpx;
background-color: $mian-color;
font-size: 26rpx;
color: #fff;
border-radius: 60rpx;
word-break: break-all;
text-align: center;
margin-bottom: 40rpx;
}
// 通证认证
.authenticationItem {
width: 100%;
min-height: 300rpx;
.authenticationItemTitle {
font-size: 30rpx;
color: #333333;
font-weight: 600;
padding: 30rpx 20rpx;
}
}
.timeAxis {
margin-top: 60rpx;
}
}
.box-top {
width: 100%;
min-height: 120rpx;
box-sizing: border-box;
display: flex;
flex-direction: row;
.left-box-top {
width: 124rpx;
text-align: center;
color: #cacaca;
font-size: 22rpx;
padding-top: 0;
display: flex;
flex-direction: column;
align-items: flex-end;
justify-content: flex-start;
box-sizing: border-box;
span {
font-size: 28rpx;
// font-weight: bold;
color: #333;
padding-bottom: 10rpx;
padding-right: 4rpx;
}
}
.line {
width: 2rpx;
background-color: rgba(228, 231, 237, 1);
margin: 0 20rpx 0 20rpx;
padding-top: 0;
.dot {
width: 20rpx;
height: 20rpx;
background-color: rgba(228, 231, 237, 1);
border-radius: 50%;
position: relative;
left: -10rpx;
}
}
.right-box-top {
flex: 1;
width: calc(100% - 170rpx);
padding: 0 0 20rpx 0;
// 通证认证
.authenticationItem {
width: 100%;
.authenticationItemcontent {
width: 100%;
background-color: #fff;
border-radius: 20rpx;
border: solid rgba(200, 38, 0, .05) 6rpx;
box-shadow: 2rpx 2rpx 20rpx 0rpx rgba(200, 38, 0, .051);
padding: 10rpx 20rpx;
.zhushi {
font-size: 24rpx;
color: #999;
padding: 10rpx 0;
word-wrap: break-word;
}
.authenticationItemcontentItem {
display: flex;
flex-direction: row;
align-items: flex-start;
justify-content: flex-start;
box-sizing: border-box;
padding: 12rpx 0;
font-size: 26rpx;
.title {
width: 160rpx;
}
.hash{
width: calc(100% - 180rpx);
word-wrap: break-word !important;
}
.content {
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
box-sizing: border-box;
color: #999;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
image{
width: 40rpx;
height: 40rpx;
border-radius: 50%;
margin-right: $padding * .3;
}
}
.img {
width: 220rpx;
height: 160rpx;
}
}
}
}
}
}
//激活元素
.active {
background-color: #8b64fd !important;
}
// 隐藏元素
.none {
background-color: rgba(0, 0, 0, 0) !important;
}
</style>