虚拟币优化

master
gongfuxiang 2024-04-10 23:47:10 +08:00
parent c92f45bf6c
commit 2ac9840625
4 changed files with 102 additions and 98 deletions

View File

@ -1034,8 +1034,8 @@
goods_photo: photo,
goods_content_app: goods.content_app || [],
nav_favor_button_info: {
text: (goods.is_favor == 1 ? this.$t('goods-detail.goods-detail.by7052') : '') + this.$t('goods-detail.goods-detail.dco1sc'),
status: goods.is_favor,
text: (goods.user_is_favor == 1 ? this.$t('goods-detail.goods-detail.by7052') : '') + this.$t('goods-detail.goods-detail.dco1sc'),
status: goods.user_is_favor,
},
goods_spec_base_price: goods.price,
goods_spec_base_original_price: goods.original_price || 0,
@ -1235,7 +1235,7 @@
uni.hideLoading();
if (res.data.code == 0) {
this.setData({
'goods.is_favor': res.data.data.status,
'goods.user_is_favor': res.data.data.status,
nav_favor_button_info: {
text: res.data.data.text,
status: res.data.data.status,

View File

@ -1,20 +1,20 @@
<template>
<view :class="theme_view">
<component-nav-back propName="账户详情"></component-nav-back>
<view>
<view v-if="accounts_list.length > 0">
<scroll-view :scroll-y="true" class="scroll-box" lower-threshold="60" @scroll="scroll_event">
<view class="coin-title flex-col padding-lg">
<view v-if="accounts_list.length > 0" class="margin-bottom-xxxxl padding-bottom-main flex-row jc-sb align-c">
<view v-if="accounts_list.length > 0 && (accounts || null) != null" class="margin-bottom-xxxxl padding-bottom-main flex-row jc-sb align-c">
<view class="flex-row">
<image v-if="accounts_list[accounts_list_index]['platform_icon']" :src="accounts_list[accounts_list_index]['platform_icon']" mode="widthFix" class="coin-content-list-img round" />
<image v-if="(accounts.platform_icon || null) != null" :src="accounts.platform_icon" mode="widthFix" class="coin-content-list-img round" />
<view class="padding-left-main">
<view class="coin-dropdown text-size-md pr margin-bottom-xs flex-row" @tap="popup_coin_status_open_event">
<text class="cr-666">{{ accounts_list[accounts_list_index]['platform_name'] }}</text>
<text class="cr-666">{{ accounts.platform_name }}</text>
<view class="padding-left-sm">
<iconfont name="icon-arrow-bottom" size="24rpx" color="#666"></iconfont>
</view>
</view>
<view class="fw-b text-size">{{ is_price_show ? accounts_list[accounts_list_index]['normal_coin'] : '***' }}</view>
<view class="fw-b text-size">{{ is_price_show ? accounts.normal_coin : '***' }}</view>
</view>
</view>
<view @tap="price_change">
@ -32,8 +32,8 @@
</view>
</view>
</view>
<view class="coin-content padding-lg">
<view v-if="log_list.length > 0">
<view class="coin-content padding-lg pr">
<block v-if="log_list.length > 0" >
<view v-for="(item, index) in log_list" :key="index" class="bg-white radius-md padding-main margin-bottom-main">
<view class="br-b-dashed padding-bottom-main margin-bottom-main flex-row jc-sb align-c">
<view>{{ item.coin_type_name }}</view>
@ -58,20 +58,24 @@
</view>
</view>
</view>
<view class="tc cr-grey cp" :data-value="'/pages/plugins/coin/transaction-list/transaction-list?id=' + accounts_list[accounts_list_index]['id']" @tap="url_event">
<view class="tc cr-grey cp" :data-value="'/pages/plugins/coin/transaction-list/transaction-list?id=' + accounts.id" @tap="url_event">
<text class="va-m">查看更多明细</text>
<view class="dis-inline-block va-m margin-top-xs margin-left-xs">
<iconfont name="icon-arrow-right" color="#999"></iconfont>
</view>
</view>
</view>
<view v-else>
</block>
<block v-else>
<!-- 提示信息 -->
<component-no-data :propStatus="data_list_loding_status"></component-no-data>
</view>
<component-no-data :propStatus="data_list_loding_status" :propMsg="data_list_loding_msg"></component-no-data>
</block>
</view>
</scroll-view>
</view>
<block v-else>
<!-- 提示信息 -->
<component-no-data :propStatus="data_list_loding_status" :propMsg="data_list_loding_msg"></component-no-data>
</block>
<!-- 虚拟币下拉框 -->
<component-popup :propShow="popup_coin_status" propPosition="bottom" @onclose="popup_coin_status_close_event">
<view class="padding-horizontal-main padding-top-main bg-white">
@ -82,13 +86,15 @@
</view>
<view class="popup_coin_status_container padding-vertical-main flex-col text-size">
<view class="scroll-y">
<view v-for="(item, index) in accounts_list" :key="index" class="flex-row jc-sb align-c padding-vertical-main" :class="accounts_list.length == index + 1 ? '' : 'br-b-f9'" :data-value="item" :data-index="index" @tap="coin_checked_event">
<view class="flex-row align-c">
<image v-if="item.platform_icon" :src="item.platform_icon" mode="widthFix" class="coin-list-img round" />
<view class="margin-left-sm text-size-md single-text">{{ item.platform_name }}</view>
</view>
<view>
<iconfont :name="accounts_list_index === index ? 'icon-zhifu-yixuan cr-red' : 'icon-zhifu-weixuan'" size="36rpx"></iconfont>
<view v-for="(item, index) in accounts_list" :key="index">
<view class="flex-row jc-sb align-c padding-vertical-main" :class="accounts_list.length == index + 1 ? '' : 'br-b-f9'" :data-value="item" :data-index="index" @tap="coin_checked_event">
<view class="flex-row align-c">
<image v-if="item.platform_icon" :src="item.platform_icon" mode="widthFix" class="coin-list-img round" />
<view class="margin-left-sm text-size-md single-text">{{ item.platform_name }}</view>
</view>
<view>
<iconfont :name="accounts.id === item.id ? 'icon-zhifu-yixuan cr-red' : 'icon-zhifu-weixuan'" size="36rpx"></iconfont>
</view>
</view>
</view>
</view>
@ -104,21 +110,21 @@
<iconfont name="icon-close-o" size="28rpx" color="#999"></iconfont>
</view>
</view>
<view v-if="accounts_list.length > 0" class="popup_user_detail_container padding-vertical-main flex-row flex-warp align-c tc text-size">
<view v-if="accounts_list.length > 0 && (accounts || null) != null" class="popup_user_detail_container padding-vertical-main flex-row flex-warp align-c tc text-size">
<view class="flex-width-half">
<view class="item padding-vertical-lg radius margin-sm" :data-value="'/pages/plugins/coin/recharge-list/recharge-list?id=' + accounts_list[accounts_list_index]['id']" @tap="url_event"></view>
<view class="item padding-vertical-lg radius margin-sm" :data-value="'/pages/plugins/coin/recharge-list/recharge-list?id=' + accounts.id" @tap="url_event"></view>
</view>
<view class="flex-width-half">
<view class="item padding-vertical-lg radius margin-sm" :data-value="'/pages/plugins/coin/transfer-list/transfer-list?id=' + accounts_list[accounts_list_index]['id']" @tap="url_event"></view>
<view class="item padding-vertical-lg radius margin-sm" :data-value="'/pages/plugins/coin/transfer-list/transfer-list?id=' + accounts.id" @tap="url_event"></view>
</view>
<view class="flex-width-half">
<view class="item padding-vertical-lg radius margin-sm" :data-value="'/pages/plugins/coin/transaction-list/transaction-list?id=' + accounts_list[accounts_list_index]['id']" @tap="url_event"></view>
<view class="item padding-vertical-lg radius margin-sm" :data-value="'/pages/plugins/coin/transaction-list/transaction-list?id=' + accounts.id" @tap="url_event"></view>
</view>
<view class="flex-width-half">
<view class="item padding-vertical-lg radius margin-sm" :data-value="'/pages/plugins/coin/cash-list/cash-list?id=' + accounts_list[accounts_list_index]['id']" @tap="url_event"></view>
<view class="item padding-vertical-lg radius margin-sm" :data-value="'/pages/plugins/coin/cash-list/cash-list?id=' + accounts.id" @tap="url_event"></view>
</view>
<view class="flex-width-half">
<view class="item padding-vertical-lg radius margin-sm" :data-value="'/pages/plugins/coin/convert-list/convert-list?id=' + accounts_list[accounts_list_index]['id']" @tap="url_event"></view>
<view class="item padding-vertical-lg radius margin-sm" :data-value="'/pages/plugins/coin/convert-list/convert-list?id=' + accounts.id" @tap="url_event"></view>
</view>
</view>
</view>
@ -144,39 +150,24 @@
status_bar_height: bar_height,
params: null,
data_list_loding_status: 1,
data_list_loding_msg: '',
//
popup_coin_status: false,
//
accounts_list_index: 0,
// list
accounts_list: [],
//
accounts: {},
//
is_price_show: false,
//
coin_oprate_list: [
{
name: '转账',
icon: 'icon-transfer-count',
url: '/pages/plugins/coin/transfer/transfer',
},
{
name: '收款',
icon: 'icon-collection',
url: '/pages/plugins/coin/collection/collection',
},
{
name: '明细',
icon: 'icon-detail',
url: '',
method: true,
},
],
coin_oprate_list: [],
//
popup_user_detail_status: false,
//
log_list: [],
};
},
@ -196,8 +187,6 @@
this.setData({
params: params,
});
this.coin_oprate_list[1].url = this.coin_oprate_list[1].url + '?id=' + params.id;
this.coin_oprate_list[0].url = this.coin_oprate_list[0].url + '?id=' + params.id;
}
this.init();
},
@ -227,7 +216,7 @@
uni.request({
url: app.globalData.get_request_url('detail', 'accounts', 'coin'),
method: 'POST',
data: this.params,
data: {id: this.accounts.id || this.params.id},
dataType: 'json',
success: (res) => {
uni.stopPullDownRefresh();
@ -235,18 +224,37 @@
var data = res.data.data;
this.setData({
data_base: data.base || null,
accounts: data.accounts || {},
accounts_list: data.accounts_list || [],
log_list: data.log_list || [],
accounts_summary: data.accounts_summary || 0,
data_list_loding_msg: '',
data_list_loding_status: 0,
});
if (data.accounts_list.length > 0 && this.params !== null && this.params.id) {
this.setData({
accounts_list_index: data.accounts_list.findIndex((item) => item.id === this.params.id),
//
var temp_coin_oprate_list = [];
if(parseInt(this.accounts.platform_data.is_enable_transfer || 0) == 1) {
temp_coin_oprate_list.push({
name: '转账',
icon: 'icon-transfer-count',
url: '/pages/plugins/coin/transfer/transfer?id=' + this.params.id,
});
}
console.log(this.accounts_list_index);
temp_coin_oprate_list.push({
name: '收款',
icon: 'icon-collection',
url: '/pages/plugins/coin/collection/collection?id=' + this.params.id,
});
temp_coin_oprate_list.push({
name: '明细',
icon: 'icon-detail',
url: '',
method: true,
});
this.setData({
coin_oprate_list: temp_coin_oprate_list
});
} else {
this.setData({
data_list_loding_status: 2,
@ -283,9 +291,12 @@
//
coin_checked_event(e) {
this.setData({
accounts_list_index: parseInt(e.currentTarget.dataset.index || 0),
accounts: this.accounts_list[e.currentTarget.dataset.index],
popup_coin_status: false,
log_list: [],
data_list_loding_status: 1,
});
this.get_data();
},
popup_coin_status_open_event() {
this.setData({

View File

@ -8,18 +8,18 @@
<view class="cr-white flex-1 flex-width">
<view class="coin-dropdown margin-bottom-main">
<view class="flex-row align-c pr" @tap="popup_coin_status_open_event">
<image v-if="accounts_list[accounts_list_index]['platform_icon']" :src="accounts_list[accounts_list_index]['platform_icon']" mode="widthFix" class="coin-content-list-img round" />
<text class="margin-left-xs">{{ accounts_list[accounts_list_index]['platform_name'] }}</text>
<image v-if="(accounts.platform_icon || null) != null" :src="accounts.platform_icon" mode="widthFix" class="coin-content-list-img round" />
<text class="margin-left-xs">{{ accounts.platform_name }}</text>
<view class="coin-dropdown-icon pa padding-left-xxl">
<iconfont name="icon-arrow-bottom" size="24rpx" color="#fff"></iconfont>
</view>
</view>
</view>
<view class="text-size-xl fw-b single-text">{{ accounts_list[accounts_list_index]['normal_coin'] }}</view>
<view class="text-size-xl fw-b single-text">{{ accounts.normal_coin }}</view>
</view>
<view class="recharge-qrcode">
<block v-if="recharge_qrcode">
<image :src="recharge_qrcode" mode="widthFix" class="img margin-right-xs circle" :data-value="recharge_qrcode" @tap="recharge_qrcode_event" />
<block v-if="accounts.platform_data.recharge_qrcode">
<image :src="accounts.platform_data.recharge_qrcode" mode="widthFix" class="img margin-right-xs radius dis-block" :data-value="accounts.platform_data.recharge_qrcode" @tap="recharge_qrcode_event" />
</block>
<block v-else>
<iconfont name="icon-qrcode" size="160rpx" color="#f6f6f6"></iconfont>
@ -31,8 +31,8 @@
<view class="margin-bottom-xxxl">
<view class="margin-bottom-main">充币地址</view>
<view class="recharge-content-input-bg padding-main border-radius-sm flex-row align-c">
<view class="single-text padding-right-sm flex-1 flex-width">{{ recharge_address }}</view>
<view @tap.stop="text_copy_event" :data-value="recharge_address">
<view class="single-text padding-right-sm flex-1 flex-width">{{ accounts.platform_data.recharge_address }}</view>
<view :data-value="accounts.platform_data.recharge_address" @tap.stop="text_copy_event">
<iconfont name="icon-copy" size="24rpx" color="#999"></iconfont>
</view>
</view>
@ -46,15 +46,19 @@
</picker>
</view>
<view class="margin-bottom-xxxl">
<view class="margin-bottom-xs">选择充值币</view>
<view class="flex-row flex-warp recharge-price-item margin-bottom-xs">
<view v-for="(item, index) in preset_data" :key="index" class="recharge-price-list flex-col align-c jc-c pr" :class="preset_data_index === index ? 'active' : ''" :data-index="index" :data-value="item.value" @tap="preset_data_change">
<view class="flex-row align-c jc-c">
<image :src="wallet_static_url + 'recharge-price.png'" mode="widthFix" class="recharge-price-img round" />
<view class="margin-left-xs recharge-price-name">{{ item.value }}</view>
</view>
<view class="margin-top-sm cr-grey-9 text-size-xs">10000</view>
<view v-if="item.tips" class="recharge-price-badge text-size-xss cr-white single-text">{{ item.tips }}</view>
<view v-if="accounts.platform_data.preset_data.length > 0">
<view class="margin-bottom-xs">选择充值币</view>
<view class="flex-row flex-warp recharge-price-item margin-bottom-xs">
<block v-for="(item, index) in accounts.platform_data.preset_data" :key="index">
<view class="recharge-price-list flex-col align-c jc-c pr" :class="preset_data_index === index ? 'active' : ''" :data-index="index" :data-value="item.value" @tap="preset_data_change">
<view class="flex-row align-c jc-c">
<image :src="wallet_static_url + 'recharge-price.png'" mode="widthFix" class="recharge-price-img round" />
<view class="margin-left-xs recharge-price-name">{{ item.value }}</view>
</view>
<view class="margin-top-sm cr-grey-9 text-size-xs">10000</view>
<view v-if="item.tips" class="recharge-price-badge text-size-xss cr-white single-text">{{ item.tips }}</view>
</view>
</block>
</view>
</view>
<view class="recharge-content-input-bg padding-main border-radius-sm flex-row align-c margin-bottom-xxl">
@ -65,10 +69,10 @@
</view>
<button type="default" class="recharge-btn cr-white round" @tap="recharge_submit"></button>
</view>
<view v-if="recharge_desc.length > 0" class="margin-bottom-xxxl">
<view v-if="accounts.platform_data.recharge_desc.length > 0" class="margin-bottom-xxxl">
<view class="margin-bottom-main">充值说明</view>
<view class="recharge-content-tips">
<view v-for="(item, index) in recharge_desc" :key="index" class="item pr padding-left-xl margin-bottom-sm cr-grey-9 text-size-xs">{{ item }}</view>
<view v-for="(item, index) in accounts.platform_data.recharge_desc" :key="index" class="item pr padding-left-xl margin-bottom-sm cr-grey-9 text-size-xs">{{ item }}</view>
</view>
</view>
</view>
@ -89,7 +93,7 @@
<view class="margin-left-sm text-size-md single-text">{{ item.platform_name }}</view>
</view>
<view>
<iconfont :name="accounts_list_index === index ? 'icon-zhifu-yixuan cr-red' : 'icon-zhifu-weixuan'" size="36rpx"></iconfont>
<iconfont :name="accounts.id === item.id ? 'icon-zhifu-yixuan cr-red' : 'icon-zhifu-weixuan'" size="36rpx"></iconfont>
</view>
</view>
</view>
@ -123,27 +127,19 @@
data_list_loding_status: 1,
data_list_loding_msg: '',
//
recharge_qrcode: '',
//
accounts: {},
//
popup_coin_status: false,
//
accounts_list_index: 0,
// list
accounts_list: [],
//
recharge_address: '',
//
network_list_index: 0,
network_list: [],
//
preset_data_index: null,
//
preset_data: [],
//
recharge_num: '',
//
recharge_desc: [],
};
},
@ -193,12 +189,9 @@
if (res.data.code == 0) {
var data = res.data.data;
this.setData({
accounts: data.accounts,
accounts_list: data.accounts_list || [],
network_list: data.network_list || [],
recharge_qrcode: data.recharge_qrcode || '',
recharge_address: data.recharge_address || '',
recharge_desc: data.recharge_desc || [],
preset_data: data.preset_data || [],
data_list_loding_msg: '',
data_list_loding_status: 0,
});
@ -224,7 +217,7 @@
//
coin_checked_event(e) {
this.setData({
accounts_list_index: parseInt(e.currentTarget.dataset.index || 0),
accounts: this.accounts_list[e.currentTarget.dataset.index],
popup_coin_status: false,
});
},
@ -260,9 +253,9 @@
//
recharge_submit() {
var new_data = {
accounts_id: this.accounts_list[this.accounts_list_index].id,
accounts_id: this.accounts.id,
network_id: this.network_list[this.network_list_index].id,
address: this.recharge_address,
address: this.accounts.platform_data.recharge_address,
coin: this.recharge_num,
};
//

View File

@ -6,7 +6,7 @@
<view class="coin-title flex-col padding-lg" :style="'background-image:url(' + wallet_static_url + 'user-head-bg.png)'">
<view class="margin-bottom-main flex-row jc-sb align-c">
<view>
<view class="cr-base text-size-md">总数量</view>
<view class="cr-base text-size-md">余额</view>
<view class="text-size-40 fw-b">{{ is_price_show ? accounts_summary : '***' }}</view>
</view>
<view @tap="price_change">
@ -14,19 +14,19 @@
</view>
</view>
<view class="flex-row jc-sb padding-bottom-main">
<view v-if="data_base.is_enable_recharge == '1'" class="tc text-size-xs" data-value="/pages/plugins/coin/recharge/recharge" @tap="url_event">
<view v-if="data_base.is_enable_recharge == 1" class="tc text-size-xs" data-value="/pages/plugins/coin/recharge/recharge" @tap="url_event">
<view class="coin-operate-list bg-white flex-row align-c jc-c margin-bottom-main">
<iconfont name="icon-recharge" size="44rpx" color="#635BFF"></iconfont>
</view>
<view>充值</view>
</view>
<view v-if="data_base.is_enable_convert == '1'" class="tc text-size-xs" data-value="/pages/plugins/coin/convert/convert" @tap="url_event">
<view v-if="data_base.is_enable_convert == 1" class="tc text-size-xs" data-value="/pages/plugins/coin/convert/convert" @tap="url_event">
<view class="coin-operate-list bg-white flex-row align-c jc-c margin-bottom-main">
<iconfont name="icon-convert" size="44rpx" color="#635BFF"></iconfont>
</view>
<view>转换</view>
</view>
<view v-if="data_base.is_enable_cash == '1'" class="tc text-size-xs" data-value="/pages/plugins/coin/cash/cash" @tap="url_event">
<view v-if="data_base.is_enable_cash == 1" class="tc text-size-xs" data-value="/pages/plugins/coin/cash/cash" @tap="url_event">
<view class="coin-operate-list bg-white flex-row align-c jc-c margin-bottom-main">
<iconfont name="icon-cash" size="44rpx" color="#635BFF"></iconfont>
</view>
@ -49,8 +49,8 @@
<text class="fw-b single-text margin-left-main">{{ item.platform_name }}</text>
</view>
<view class="flex-col align-e">
<view class="margin-bottom-xss text-size">{{ item.default_coin }}</view>
<view class="cr-grey-9">{{ item.platform_symbol }}{{ item.normal_coin }}</view>
<view class="margin-bottom-xss text-size">{{ item.platform_symbol }}{{ item.normal_coin }}</view>
<view class="cr-grey-9 text-size-xs">{{ item.default_symbol }}{{ item.default_coin }}</view>
</view>
</view>
<!-- 结尾 -->