新增虚拟商品充值账户验证

This commit is contained in:
gyq
2025-05-07 17:47:44 +08:00
parent 6ac44f6a63
commit 078c7c8e55
3 changed files with 163 additions and 6 deletions

View File

@@ -111,17 +111,18 @@
<!-- 虚拟销售数据 -->
<view v-if="(site_fictitious || null) != null" class="site-fictitious panel-item padding-horizontal-main padding-top-main bg-white">
<view class="br-b padding-bottom-main fw-b text-size">{{ site_fictitious.title || $t('user-order-detail.user-order-detail.y9woor') }}</view>
<view class="panel-content oh padding-top-main">
<view class="panel-content oh padding-top-main br-b">
<view v-if="(site_fictitious.tips || null) != null" class="tips-value radius padding-main margin-bottom-main">
<mp-html :content="site_fictitious.tips" />
</view>
<view v-for="(item, index) in detail.items" :key="index" class="item br-b-dashed oh padding-bottom-main margin-bottom-main">
<image class="left-image br fl radius" :src="item.images" mode="aspectFill"></image>
<view class="right-value fr">
<view v-for="(item, index) in detail.items" :key="index" style="display: flex">
<image class="left-image br fl radius" :src="item.images" mode="aspectFill" style="flex-shrink: 0"></image>
<view class="right-value" style="padding: 0 10px">
<view v-if="(item.spec_text || null) != null" class="text-base fw-b margin-bottom-sm text-size-xs">{{ item.spec_text }}</view>
<mp-html v-if="(item.fictitious_goods_value || null) != null" :content="item.fictitious_goods_value" />
<text v-else class="cr-grey text-size-xs">{{ $t('user-order-detail.user-order-detail.7xtnjt') }}</text>
</view>
<view class="copy" v-if="!item.account" :data-value="item.fictitious_goods_value_str" @tap="text_copy_event">复制</view>
</view>
</view>
</view>
@@ -171,6 +172,16 @@
<image class="icon" :class="{ active: isCheckOrderAll }" src="/static/icon_down_arrow.svg" mode="aspectFit"></image>
</view>
<!-- 支付账户填错后重新提交模块 -->
<view class="content-textarea-container padding-main border-radius-main bg-white spacing-mb" v-if="detail && detail.is_account">
<view class="content">
<input type="text" class="input" placeholder="请输入充值账户" placeholder-class="input_placeholder" v-model="account" />
</view>
<view class="btn-wrap">
<view class="btn" @click="replayAccountHandle"> 重新提交充值账户 </view>
</view>
</view>
<!-- 支付选择 -->
<view class="payment-list border-radius-main bg-white oh padding-main spacing-mb" v-if="detail && detail.status == 1">
<view v-for="(item, index) in payment_list" :key="index">
@@ -298,6 +309,7 @@
temp_pay_index: 0,
remainingTime: '',
intervalId: null,
account: '',
};
},
@@ -341,6 +353,45 @@
},
methods: {
// 重新提交虚拟账户
replayAccountHandle() {
if (!this.account) {
app.globalData.showToast('请输入您要充值的账户');
return false;
}
uni.showLoading({
title: '提交中...',
mask: true,
});
uni.request({
url: app.globalData.get_request_url('resetaccount', 'order'),
method: 'POST',
data: {
order_id: this.detail.id,
account: this.account,
},
dataType: 'json',
success: (res) => {
console.log('getShowAccount===', res);
uni.hideLoading();
if (res.data.code == 0) {
this.detail.is_account = 0;
app.globalData.showToast('提交成功');
this.init();
} else {
this.setData({
data_list_loding_status: 2,
data_list_loding_msg: res.data.msg,
});
}
},
fail: (err) => {
uni.hideLoading();
},
});
},
// 获取剩余支付时间
updateRemainingTime() {
const now = dayjs();
@@ -495,6 +546,12 @@
data_bottom_line_status: true,
data_list_loding_msg: '',
});
if (this.detail.order_model == 3 && this.detail.items[0].account) {
this.detail_list.unshift({
name: '充值账户',
value: this.detail.items[0].account,
});
}
if (this.detail.status == 1) {
this.updateRemainingTime();
this.intervalId = setInterval(this.updateRemainingTime, 1000);
@@ -770,4 +827,52 @@
.container {
padding-bottom: calc(132upx + env(safe-area-inset-bottom));
}
.btn-wrap {
.btn {
margin-left: 10px;
padding: 10px 24px;
color: #fff;
border-radius: 100px;
background: linear-gradient(to right, #ffb726, $color);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: 24upx;
&:active {
opacity: 0.8;
}
.text {
font-weight: bold;
}
.time {
font-size: 20upx;
margin-top: -2px;
opacity: 0.8;
}
}
}
.input {
font-size: 14px;
border-bottom: 1px solid #ececec;
padding: 10px 0;
}
.input_placeholder {
color: #999;
}
.copy {
padding-left: 12px;
white-space: nowrap;
display: flex;
justify-content: center;
position: relative;
&:before {
content: '';
height: 16px;
border-left: 1px solid #999;
position: absolute;
left: 0;
top: 3px;
}
}
</style>