|
|
@@ -55,14 +55,17 @@
|
|
|
<div class="" v-show="navIndex == 1">
|
|
|
<div class="pd1 goods_box" @scroll="handleScroll" v-if="nft_list.length > 0">
|
|
|
<div class="goods_list jsb" v-for="(item, index) in nft_list" :key="index">
|
|
|
+ <div class="tags1 tags2" v-if="item.type_id == 2 && item.status != 2 && item.status != 3">{{ $t('lang194') }}</div>
|
|
|
<div class="tags" v-if="item.status == 2">{{ $t('lang141') }}</div>
|
|
|
<div class="tags1" v-if="item.status == 3">{{ $t('lang142') }}</div>
|
|
|
- <van-image class="goods_list_img" radius="10" :src="item.img_url.split(',')[0]" />
|
|
|
- <div class="right" style="flex: 1">
|
|
|
- <span>{{ item.name }}</span>
|
|
|
+ <van-image class="goods_list_img" style="flex: 1" radius="10" :src="item.img_url.split(',')[0]" />
|
|
|
+ <div class="right" style="flex: 2">
|
|
|
+ <span class="title">{{ item.name }}</span>
|
|
|
<div class="green">{{ item.title }}</div>
|
|
|
<div class="cen">
|
|
|
- <span class="money">{{ item.price }}<span class="ssm">{{ $t('lang174') }}</span></span>
|
|
|
+ <span class="money"
|
|
|
+ >{{ item.price }}<span class="ssm">{{ $t('lang174') }}</span></span
|
|
|
+ >
|
|
|
</div>
|
|
|
<div class="f-sa" v-if="item.status <= 1">
|
|
|
<div class="buy" @click="pickup(item)">
|
|
|
@@ -71,18 +74,21 @@
|
|
|
<div class="buy" @click="transfer(item)">
|
|
|
<van-button class="buy_btn" type="primary">{{ $t('lang49') }}</van-button>
|
|
|
</div>
|
|
|
+ <div class="buy" @click="give(item)">
|
|
|
+ <van-button class="buy_btn btn1" type="primary">{{ $t('lang186') }}</van-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
|
|
|
<div class="f-sa buy1" v-if="item.status == 3">
|
|
|
<div class="buy buy1">
|
|
|
- <van-button class="buy_btn btn1" type="primary">{{ $t('lang143') }}</van-button>
|
|
|
+ <van-button class="buy_btn btn1 btn4" type="primary" @click="viewlogi(item)">{{ $t('lang143') }}</van-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="f-sa buy1" v-else>
|
|
|
<div class="buy">
|
|
|
<van-button class="buy_btn btn3" type="primary" v-if="item.status == 2" @click="cancel(item)">{{ $t('lang144') }}</van-button>
|
|
|
<van-button class="buy_btn btn3" type="primary" v-if="item.status == 4">{{ $t('lang145') }}</van-button>
|
|
|
- <van-button class="buy_btn btn3" type="primary" v-if="item.status == 5">{{ $t('lang146') }}</van-button>
|
|
|
+ <van-button class="buy_btn btn3" type="primary" v-if="item.status == 5">{{ $t('lang192') }}</van-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
@@ -92,6 +98,7 @@
|
|
|
<span>{{ $t('lang82') }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <!-- 转让 -->
|
|
|
<van-popup v-model="transferPopop" round position="bottom">
|
|
|
<!-- <van-cascader v-model="cascaderValue" title="请选择所在地区" :options="options" @close="cascaderShow = false" @finish="onFinish" /> -->
|
|
|
<div class="area">
|
|
|
@@ -111,23 +118,48 @@
|
|
|
<span> {{ $t('lang90') }} </span>
|
|
|
<span class="s">{{ Math.floor(price * Number(transfes_fee) * 100) / 100 }} {{ $t('lang174') }}</span>
|
|
|
</div>
|
|
|
- <div class="f-r">
|
|
|
+ <div class="f-s">
|
|
|
<span> {{ $t('lang91') }} </span>
|
|
|
<span class="s">{{ transfes_txt }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="submit" @click="cascaderShow = true">
|
|
|
+ <div class="submit">
|
|
|
<van-button class="submit_btn" type="primary" @click="submit">{{ $t('lang71') }}</van-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</van-popup>
|
|
|
-
|
|
|
+ <!-- 提货 -->
|
|
|
<van-popup v-model="addresPopop" round position="bottom">
|
|
|
<div class="area">
|
|
|
<div class="title">{{ $t('lang157') }}</div>
|
|
|
<van-address-edit :area-list="areaList" show-search-result :save-button-text="$t('lang111')" :area-columns-placeholder="[]" @save="onSave" />
|
|
|
</div>
|
|
|
</van-popup>
|
|
|
+ <!-- 赠送 -->
|
|
|
+ <van-popup v-model="givePopop" round position="bottom">
|
|
|
+ <div class="area">
|
|
|
+ <div class="title">{{ $t('lang187') }}</div>
|
|
|
+ <div class="box">
|
|
|
+ <div class="f-s">
|
|
|
+ <span class="k"> {{ $t('lang191') }} </span>
|
|
|
+ <div class="d" style="flex: 1">
|
|
|
+ <van-field v-model="giveAddress" type="textarea" autosize rows="1" :placeholder="$t('lang188')" class="input1" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="f-r">
|
|
|
+ <span> {{ $t('lang190') }} </span>
|
|
|
+ <span class="s">{{ Math.floor(item.price * Number(giveaway) * 100) / 100 }} {{ $t('lang174') }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="f-s">
|
|
|
+ <span> {{ $t('lang91') }} </span>
|
|
|
+ <span class="s">{{ giveaway_txt }}</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="submit">
|
|
|
+ <van-button class="submit_btn" type="primary" @click="giveSubmit">{{ $t('lang71') }}</van-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </van-popup>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
@@ -142,7 +174,6 @@ export default {
|
|
|
loading: false,
|
|
|
finished: false,
|
|
|
total: 1,
|
|
|
- nickname: '',
|
|
|
assets: 0,
|
|
|
coinList: [],
|
|
|
showPopover: false,
|
|
|
@@ -154,13 +185,13 @@ export default {
|
|
|
value: 0,
|
|
|
},
|
|
|
{
|
|
|
- key: 'NFT',
|
|
|
+ key: this.$t('lang185'),
|
|
|
value: 1,
|
|
|
},
|
|
|
],
|
|
|
nft_list: [],
|
|
|
transferPopop: false,
|
|
|
- cascaderShow: true,
|
|
|
+ givePopop: false,
|
|
|
price: '', // 转让金额
|
|
|
areaList: areaList,
|
|
|
searchResult: [],
|
|
|
@@ -168,11 +199,13 @@ export default {
|
|
|
page: 1,
|
|
|
item: {},
|
|
|
transfes_fee: 0, //转让费率
|
|
|
- transfes_txt: '', //手续费说明
|
|
|
+ transfes_txt: '', //转让手续费说明
|
|
|
+ giveAddress: '', //赠送接收人钱包地址
|
|
|
+ giveaway: 0, //赠送手续费率
|
|
|
+ giveaway_txt: '', //赠送手续费说明
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
|
- this.nickname = JSON.parse(localStorage.getItem('userinfo')).nickname;
|
|
|
this.actionGet();
|
|
|
this.getNftList();
|
|
|
},
|
|
|
@@ -196,7 +229,7 @@ export default {
|
|
|
result = this.$t('lang145');
|
|
|
break;
|
|
|
case 5:
|
|
|
- result = this.$t('lang146');
|
|
|
+ result = this.$t('lang192');
|
|
|
break;
|
|
|
default:
|
|
|
break;
|
|
|
@@ -239,17 +272,18 @@ export default {
|
|
|
this.assets = res.data.assets;
|
|
|
this.transfes_txt = res.data.transfes_txt;
|
|
|
this.transfes_fee = res.data.transfes_fee;
|
|
|
+ this.giveaway = res.data.giveaway;
|
|
|
+ this.giveaway_txt = res.data.giveaway_txt;
|
|
|
this.coinList = res.data.coin_list;
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ // 提货
|
|
|
pickup(item) {
|
|
|
this.item = item;
|
|
|
this.addresPopop = true;
|
|
|
},
|
|
|
onSave(e) {
|
|
|
- console.log(e);
|
|
|
-
|
|
|
// this.$toast('save');
|
|
|
homeApi.pickupOrder({ order_id: this.item.order_id, name: e.name, phone: e.tel, address: e.province + ' ' + e.city + ' ' + e.county + ' ' + e.addressDetail }).then(res => {
|
|
|
if (res.code == 200) {
|
|
|
@@ -263,7 +297,7 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
-
|
|
|
+ // 转让
|
|
|
transfer(item) {
|
|
|
this.transferPopop = true;
|
|
|
this.item = item;
|
|
|
@@ -279,11 +313,41 @@ export default {
|
|
|
this.nft_list = [];
|
|
|
this.getNftList();
|
|
|
Notify({ type: 'success', message: this.$t('lang152') });
|
|
|
+ } else if (res.code == 15000) {
|
|
|
+ setTimeout(() => {
|
|
|
+ this.$router.push('recharge');
|
|
|
+ }, 300);
|
|
|
+ } else {
|
|
|
+ this.$toast(res.msg);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 赠送
|
|
|
+ give(item) {
|
|
|
+ this.givePopop = true;
|
|
|
+ this.item = item;
|
|
|
+ },
|
|
|
+ giveSubmit() {
|
|
|
+ if (!this.giveAddress) {
|
|
|
+ return this.$toast(this.$t('lang188'));
|
|
|
+ }
|
|
|
+ homeApi.giveaway({ order_id: this.item.order_id, address: this.giveAddress }).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.givePopop = false;
|
|
|
+ this.page = 1;
|
|
|
+ this.nft_list = [];
|
|
|
+ this.getNftList();
|
|
|
+ Notify({ type: 'success', message: this.$t('lang152') });
|
|
|
+ } else if (res.code == 15000) {
|
|
|
+ setTimeout(() => {
|
|
|
+ this.$router.push('recharge');
|
|
|
+ }, 300);
|
|
|
} else {
|
|
|
this.$toast(res.msg);
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ // 取消转让
|
|
|
cancel(item) {
|
|
|
let _this = this;
|
|
|
Dialog.confirm({
|
|
|
@@ -334,6 +398,16 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ viewlogi(item) {
|
|
|
+ homeApi.getTracking({ order_id: item.order_id }).then(res => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ console.log();
|
|
|
+ window.open('https://www.kuaidi100.com/chaxun?nu=' + res.data, '_blank');
|
|
|
+ } else {
|
|
|
+ this.$toast(res.msg);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
@@ -384,6 +458,10 @@ export default {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
}
|
|
|
+.f-s {
|
|
|
+ display: flex;
|
|
|
+ align-items: flex-start;
|
|
|
+}
|
|
|
.assets {
|
|
|
min-height: 100vh;
|
|
|
padding: 50px 0 0;
|
|
|
@@ -607,9 +685,12 @@ export default {
|
|
|
background-color: #f4ab1e;
|
|
|
border-radius: 6px 0 6px 0;
|
|
|
}
|
|
|
+ .tags2 {
|
|
|
+ background-color: #1e8df4;
|
|
|
+ }
|
|
|
&_img {
|
|
|
width: 110px;
|
|
|
- height: 120px;
|
|
|
+ height: 110px;
|
|
|
border-radius: 10px;
|
|
|
margin-right: 10px;
|
|
|
}
|
|
|
@@ -622,6 +703,12 @@ export default {
|
|
|
font-size: 13px;
|
|
|
box-sizing: border-box;
|
|
|
padding: 6px 0;
|
|
|
+ .title {
|
|
|
+ width: 100%;
|
|
|
+ overflow: hidden; /* 确保超出容器的文本被裁剪 */
|
|
|
+ white-space: nowrap; /* 确保文本在一行内显示 */
|
|
|
+ text-overflow: ellipsis; /* 使用省略号表示文本超出 */
|
|
|
+ }
|
|
|
|
|
|
.time_text {
|
|
|
color: #7f7f7f;
|
|
|
@@ -673,14 +760,22 @@ export default {
|
|
|
.buy {
|
|
|
display: flex;
|
|
|
align-items: flex-end;
|
|
|
+ justify-content: flex-end;
|
|
|
&_btn {
|
|
|
height: 32px;
|
|
|
+ width: 66px;
|
|
|
+ text-align: center;
|
|
|
line-height: 32px;
|
|
|
font-size: 12px;
|
|
|
border: none;
|
|
|
- padding: 0 26px;
|
|
|
+ // padding: 0 20px;
|
|
|
white-space: nowrap;
|
|
|
border-radius: 30px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ // padding: 0 10px;
|
|
|
+ // overflow: hidden; /* 确保超出容器的文本被裁剪 */
|
|
|
+ // white-space: nowrap; /* 确保文本在一行内显示 */
|
|
|
+ // text-overflow: ellipsis; /* 使用省略号表示文本超出 */
|
|
|
border: 1px solid #29b286;
|
|
|
background-color: #29b286;
|
|
|
}
|
|
|
@@ -689,11 +784,15 @@ export default {
|
|
|
background-color: #fff;
|
|
|
}
|
|
|
.btn3 {
|
|
|
+ width: 86px;
|
|
|
color: #b9b9b9;
|
|
|
padding: 0 20px;
|
|
|
border: 1px solid #b9b9b9;
|
|
|
background-color: #fff;
|
|
|
}
|
|
|
+ .btn4 {
|
|
|
+ width: 96px;
|
|
|
+ }
|
|
|
}
|
|
|
.buy1 {
|
|
|
justify-content: flex-end;
|
|
|
@@ -706,6 +805,7 @@ export default {
|
|
|
width: 100%;
|
|
|
box-sizing: border-box;
|
|
|
position: relative;
|
|
|
+
|
|
|
.title {
|
|
|
color: #000;
|
|
|
font-size: 15px;
|
|
|
@@ -727,10 +827,12 @@ export default {
|
|
|
}
|
|
|
.box {
|
|
|
margin: 20px 0;
|
|
|
- .f-r {
|
|
|
+ .f-r,
|
|
|
+ .f-s {
|
|
|
padding: 6px 0;
|
|
|
}
|
|
|
- .f-r span:first-child {
|
|
|
+ .f-r span:first-child,
|
|
|
+ .f-s span:first-child {
|
|
|
padding-right: 8px;
|
|
|
}
|
|
|
.d {
|
|
|
@@ -741,15 +843,28 @@ export default {
|
|
|
// width: 100%;
|
|
|
// border: 1px solid #29b286;
|
|
|
// border-radius: 20px;
|
|
|
- width: 100px;
|
|
|
+ width: 150px;
|
|
|
border-bottom: 0.5px solid rgba(27, 27, 27, 0.15);
|
|
|
}
|
|
|
+ .k {
|
|
|
+ padding-top: 6px;
|
|
|
+ }
|
|
|
+ .input1 {
|
|
|
+ width: 100%;
|
|
|
+ border-bottom: 0.5px solid rgba(27, 27, 27, 0.15);
|
|
|
+ // ::v-deep .van-field__body,
|
|
|
+ // ::v-deep .van-field__control {
|
|
|
+ // height: 32px !important;
|
|
|
+ // }
|
|
|
+ }
|
|
|
+
|
|
|
.van-cell {
|
|
|
padding: 0 !important;
|
|
|
}
|
|
|
.s {
|
|
|
font-size: 11px;
|
|
|
color: #999999;
|
|
|
+ width: 70%;
|
|
|
}
|
|
|
}
|
|
|
.submit {
|
|
|
@@ -770,7 +885,8 @@ export default {
|
|
|
}
|
|
|
|
|
|
::v-deep .van-field__control {
|
|
|
- padding: 6px 12px 0;
|
|
|
+ padding: 0 12px 0;
|
|
|
+ font-size: 12px;
|
|
|
}
|
|
|
|
|
|
::v-deep .van-hairline--top-bottom::after,
|
|
|
@@ -795,4 +911,8 @@ export default {
|
|
|
::v-deep .van-overlay {
|
|
|
background-color: rgba(#000, 0.3);
|
|
|
}
|
|
|
+::v-deep van-hairline-unset--top-bottom,
|
|
|
+::v-deep .van-picker__frame {
|
|
|
+ border: 1px solid #fff !important;
|
|
|
+}
|
|
|
</style>
|