Browse Source

免费金币充值

jiangcheng/feature-20260306102603-钱包体系
ZhangYong 1 month ago
parent
commit
cca84561f5
  1. 2
      src/components/locales/lang/en.js
  2. 2
      src/components/locales/lang/zh-CN.js
  3. 215
      src/views/recharge/gold/addCoinRecharge.vue

2
src/components/locales/lang/en.js

@ -801,7 +801,7 @@ export default {
refunded: "Refunded", refunded: "Refunded",
unknown: "Unknown", unknown: "Unknown",
// 金币新增充值 // 金币新增充值
addCoinRecharge: "New Recharge",
addCoinRecharge: "Free Coin Recharge",
waitAudit: "Pending", waitAudit: "Pending",
refunded: "Refunded", refunded: "Refunded",
passed: "Passed", passed: "Passed",

2
src/components/locales/lang/zh-CN.js

@ -801,7 +801,7 @@ export default {
refunded: "已退款", refunded: "已退款",
unknown: "未知状态", unknown: "未知状态",
// 金币新增充值 --------------------------------- // 金币新增充值 ---------------------------------
addCoinRecharge: "新增充值",
addCoinRecharge: "免费金币充值",
waitAudit: "待审核", waitAudit: "待审核",
refunded: "已退款", refunded: "已退款",
passed: "已通过", passed: "已通过",

215
src/views/recharge/gold/addCoinRecharge.vue

@ -65,14 +65,13 @@ const recharge = ref({
voucher: '', voucher: '',
rechargeWay: '客服充值', rechargeWay: '客服充值',
freeGold: "", freeGold: "",
money: null,
permanentGold: "",
rateName: null,
rateId: null,
payModel: '', // payModel
money: 0,
permanentGold: "0",
rateName: "美元(USD)",
rateId: 1,
payModel: '银行转账', // payModel
payTime: null, // payTime payTime: null, // payTime
remark: '', // remark remark: '', // remark
rechargeRatio: ''
}) })
// cookie key // cookie key
const WriteCookies = ref(null) const WriteCookies = ref(null)
@ -100,12 +99,7 @@ const add = async function () {
if (formattedRecharge.money) { if (formattedRecharge.money) {
formattedRecharge.money = new Decimal(formattedRecharge.money).mul(100).toNumber(); formattedRecharge.money = new Decimal(formattedRecharge.money).mul(100).toNumber();
} }
if (formattedRecharge.payTime) {
// 使 moment.js payTime
formattedRecharge.payTime = moment(formattedRecharge.payTime).format('YYYY-MM-DD HH:mm:ss')
}
formattedRecharge.payTime = moment(Date.now()).format('YYYY-MM-DD HH:mm:ss')
console.log('开始添加充值信息', recharge.value) console.log('开始添加充值信息', recharge.value)
// jwcode // jwcode
@ -234,7 +228,7 @@ const addBefore = () => {
} }
// 0 // 0
if (Number(recharge.value.permanentGold) === 0 && Number(recharge.value.freeGold) === 0) {
if (Number(recharge.value.freeGold) === 0) {
ElMessage({ ElMessage({
type: 'error', type: 'error',
message: t('elmessage.permanentAndFreeNoZero') message: t('elmessage.permanentAndFreeNoZero')
@ -242,24 +236,6 @@ const addBefore = () => {
return; return;
} }
//
if (!recharge.value.rateName) {
ElMessage({
type: 'error',
message: t('elmessage.checkRate')
});
return;
}
//
if (!recharge.value.money) {
ElMessage({
type: 'error',
message: t('elmessage.checkMoney')
});
return;
}
// rateId // rateId
const selectedRate = rateName.value.find(item => item.value === recharge.value.rateName); const selectedRate = rateName.value.find(item => item.value === recharge.value.rateName);
if (selectedRate) { if (selectedRate) {
@ -332,47 +308,6 @@ const rules = reactive({
}, trigger: 'blur' }, trigger: 'blur'
}], }],
activity: [{ required: true, message: t('elmessage.checkActivity'), trigger: 'blur' }], activity: [{ required: true, message: t('elmessage.checkActivity'), trigger: 'blur' }],
permanentGold: [
{required: true, message: t('elmessage.checkPermanentGold'), trigger: 'change'},
{
validator: (rule, value, callback) => {
if (!value) {
value = '0'
}
//
if (/[^0-9.]/.test(value)) {
callback(new Error(t('elmessage.limitNoSpecialChar')));
return;
}
//
const integerPart = value.split('.')[0];
if (integerPart.length > 6) {
callback(new Error(t('elmessage.limitSix')));
return;
}
//
if (value.includes('.')) {
const decimalPart = value.split('.')[1];
if (decimalPart.length > 2) {
callback(new Error(t('elmessage.limitTwoDecimal')));
return;
}
}
const numValue = Number(value);
if (isNaN(numValue)) {
callback(new Error(t('elmessage.checkNumber')));
} else if (numValue < 0) {
callback(new Error(t('elmessage.limitZero')));
} else {
callback();
}
},
trigger: 'blur'
}
],
freeGold: [ freeGold: [
{ required: true, message: t('elmessage.checkFreeGold'), trigger: 'change' }, { required: true, message: t('elmessage.checkFreeGold'), trigger: 'change' },
{ {
@ -414,52 +349,6 @@ const rules = reactive({
trigger: 'blur' trigger: 'blur'
} }
], ],
rateName: [{
required: true,
message: t('elmessage.checkRate'),
trigger: 'blur'
}],
money: [
{required: true, message: t('elmessage.checkMoney'), trigger: 'blur'},
{
validator: (rule, value, callback) => {
//
if (/[^0-9.]/.test(value)) {
callback(new Error(t('elmessage.limitNoSpecialChar')));
return;
}
//
const integerPart = value.split('.')[0];
if (integerPart.length > 6) {
callback(new Error(t('elmessage.limitSix')));
return;
}
//
if (value.includes('.')) {
const decimalPart = value.split('.')[1];
if (decimalPart.length > 2) {
callback(new Error(t('elmessage.limitTwoDecimal')));
return;
}
}
const numValue = Number(value);
if (isNaN(numValue)) {
callback(new Error(t('elmessage.checkNumber')));
} else if (numValue < 0) {
callback(new Error(t('elmessage.limitZero')));
} else {
callback();
}
},
trigger: 'blur'
}
],
payModel: [{required: true, message: t('elmessage.checkPayModel'), trigger: 'blur'}],
payTime: [{required: true, message: t('elmessage.checkPayTime'), trigger: 'blur'}]
}); });
// //
@ -515,28 +404,6 @@ const getUser = async function (jwcode) {
// //
const activity = ref([]) const activity = ref([])
// const getActivity = async function () {
// try {
// // POST
// const result = await API({
// url: '/general/activity',
// data: {
// }
// })
// //
// console.log('', result)
// //
// activity.value = result.data
// console.log('', activity.value)
// } catch (error) {
// console.log('activity', error)
// //
// }
// }
// //
const rateName = ref([]) const rateName = ref([])
@ -674,12 +541,13 @@ const deleteRecharge = function () {
voucher: '', voucher: '',
rechargeWay: '客服充值', rechargeWay: '客服充值',
freeGold: '', freeGold: '',
money: null,
permanentGold: '',
rateId: null
money: 0,
permanentGold: '0',
rateId: 1,
payModel: '银行转账', // payModel
} }
imageUrl.value = '' imageUrl.value = ''
recharge.value.rateName = ''
recharge.value.rateName = '美元(USD)'
} }
@ -699,24 +567,26 @@ onMounted(() => {
<div> <div>
<div class="userAndForm"> <div class="userAndForm">
<div class="left"> <div class="left">
<el-form :model="recharge" ref="Ref" :rules="rules" label-width="auto" label-position="right"
<el-form :model="recharge" ref="Ref" :rules="rules" label-width="auto" label-position="left"
style="min-width: 500px" class="add-form"> style="min-width: 500px" class="add-form">
<el-form-item prop="jwcode" :label="$t('common_add.jwcode')"> <el-form-item prop="jwcode" :label="$t('common_add.jwcode')">
<el-input v-model="recharge.jwcode" style="width: 220px" @keyup.enter="getUser(recharge.jwcode)" /> <el-input v-model="recharge.jwcode" style="width: 220px" @keyup.enter="getUser(recharge.jwcode)" />
<el-button type="primary" @click="getUser(recharge.jwcode)" style="margin-left: 20px">{{ $t('common.search') }}</el-button>
<el-button type="primary" @click="getUser(recharge.jwcode)" style="margin-left: 20px">{{ $t('common.search')
}}</el-button>
</el-form-item> </el-form-item>
<el-form-item prop="activity" :label="$t('common_add.activity')"> <el-form-item prop="activity" :label="$t('common_add.activity')">
<el-input v-model="recharge.activity" :placeholder="$t('common_add.activityPlaceholder')" style="width: 300px"/>
<el-input v-model="recharge.activity" :placeholder="$t('common_add.activityPlaceholder')"
style="width: 300px" />
</el-form-item> </el-form-item>
<el-form-item prop="permanentGold" :label="$t('common_add.permanentGold')">
<!-- <el-form-item prop="permanentGold" :label="$t('common_add.permanentGold')">
<el-input v-model="recharge.permanentGold" placeholder="0" style="width: 100px"/> <el-input v-model="recharge.permanentGold" placeholder="0" style="width: 100px"/>
<p>&nbsp;</p> <p>&nbsp;</p>
</el-form-item>
</el-form-item> -->
<el-form-item prop="freeGold" :label="$t('common_add.freeGold')"> <el-form-item prop="freeGold" :label="$t('common_add.freeGold')">
<el-input v-model="recharge.freeGold" placeholder="0" style="width: 100px" /> <el-input v-model="recharge.freeGold" placeholder="0" style="width: 100px" />
<p>&nbsp;</p> <p>&nbsp;</p>
</el-form-item> </el-form-item>
<el-form-item :label="$t('common_add.rechargeAmount')" required style="margin-bottom: 25px;">
<!-- <el-form-item :label="$t('common_add.rechargeAmount')" required style="margin-bottom: 25px;">
<el-form-item prop="rateName" style="display: inline-block; margin-left:0;"> <el-form-item prop="rateName" style="display: inline-block; margin-left:0;">
<el-select v-model="recharge.rateName" :placeholder="$t('common_add.currencyName')" style="width: 100px"> <el-select v-model="recharge.rateName" :placeholder="$t('common_add.currencyName')" style="width: 100px">
<el-option v-for="item in rateName" :key="item.value" :label="item.label" :value="item.value"/> <el-option v-for="item in rateName" :key="item.value" :label="item.label" :value="item.value"/>
@ -725,15 +595,14 @@ onMounted(() => {
<el-form-item prop="money" style="display: inline-block; margin-left:10px; vertical-align: top;"> <el-form-item prop="money" style="display: inline-block; margin-left:10px; vertical-align: top;">
<el-input v-model="recharge.money" style="width: 190px"/> <el-input v-model="recharge.money" style="width: 190px"/>
</el-form-item> </el-form-item>
</el-form-item>
</el-form-item> -->
<el-form-item prop="payModel" :label="$t('common_add.payModel')">
<!-- <el-form-item prop="payModel" :label="$t('common_add.payModel')">
<el-select v-model="recharge.payModel" :placeholder="$t('common_add.payModelPlaceholder')" style="width: 300px"> <el-select v-model="recharge.payModel" :placeholder="$t('common_add.payModelPlaceholder')" style="width: 300px">
<el-option v-for="item in payModel" :key="item.value" :label="item.label" :value="item.value"/> <el-option v-for="item in payModel" :key="item.value" :label="item.label" :value="item.value"/>
</el-select> </el-select>
</el-form-item>
<el-form-item prop="payTime" :label="$t('common_add.paymentTime')">
<!-- 修改 type 属性为 datetime 以支持时分秒选择 -->
</el-form-item> -->
<!-- <el-form-item prop="payTime" :label="$t('common_add.paymentTime')">
<el-date-picker v-model="recharge.payTime" type="datetime" style="width: 300px"/> <el-date-picker v-model="recharge.payTime" type="datetime" style="width: 300px"/>
</el-form-item> </el-form-item>
<el-form-item prop="voucher" :label="$t('common_add.paymentVoucher')" style="margin-bottom: 5px"> <el-form-item prop="voucher" :label="$t('common_add.paymentVoucher')" style="margin-bottom: 5px">
@ -747,14 +616,16 @@ onMounted(() => {
<p style="margin-left: 10px; color: rgb(177, 176, 176)"> <p style="margin-left: 10px; color: rgb(177, 176, 176)">
{{ $t('common_add.paymentVoucherPlaceholder') }} {{ $t('common_add.paymentVoucherPlaceholder') }}
</p> </p>
</el-form-item>
</el-form-item> -->
<el-form-item prop="remark" :label="$t('common_add.remark')"> <el-form-item prop="remark" :label="$t('common_add.remark')">
<el-input v-model="recharge.remark" style="width: 300px" :rows="4" maxlength="100" show-word-limit <el-input v-model="recharge.remark" style="width: 300px" :rows="4" maxlength="100" show-word-limit
type="textarea" /> type="textarea" />
</el-form-item> </el-form-item>
<el-button @click="deleteRecharge" style="margin-left: 220px;margin-top:20px" type="success">{{ $t('common.reset') }}</el-button>
<el-button type="primary" style="margin-top:20px" :disabled="addDisabled" @click="addBefore"> {{ $t('common.confirm') }}</el-button>
<el-button @click="deleteRecharge" style="margin-left: 220px;margin-top:20px" type="success">{{
$t('common.reset') }}</el-button>
<el-button type="primary" style="margin-top:20px" :disabled="addDisabled" @click="addBefore"> {{
$t('common.confirm') }}</el-button>
</el-form> </el-form>
</div> </div>
@ -779,7 +650,8 @@ onMounted(() => {
</el-form-item> </el-form-item>
<!-- 金币详情独立显示 --> <!-- 金币详情独立显示 -->
<el-form-item style="margin-top: -23px"> <!-- 负边距减少间距 --> <el-form-item style="margin-top: -23px"> <!-- 负边距减少间距 -->
<span style="color: #b1b1b1; margin-left: 0px" v-if="user.nowPermanentGold !== undefined">({{ $t('common_add_user.permanentGold') }}:{{
<span style="color: #b1b1b1; margin-left: 0px" v-if="user.nowPermanentGold !== undefined">({{
$t('common_add_user.permanentGold') }}:{{
user.nowPermanentGold user.nowPermanentGold
}}; }};
{{ $t('common_add_user.freeGold') }}:{{ user.nowFreeGold }}; {{ $t('common_add_user.freeGold') }}:{{ user.nowFreeGold }};
@ -800,7 +672,8 @@ onMounted(() => {
<p style="color: #2fa1ff">{{ user.consumeNum }} </p> <p style="color: #2fa1ff">{{ user.consumeNum }} </p>
</el-form-item> </el-form-item>
<el-form-item style="margin-top: -23px"> <!-- 负边距减少间距 --> <el-form-item style="margin-top: -23px"> <!-- 负边距减少间距 -->
<p style="font-size: small; color: #b1b1b1">({{ $t('common_add_user.onlyStatisticsDataAfter20250101') }})</p>
<p style="font-size: small; color: #b1b1b1">({{ $t('common_add_user.onlyStatisticsDataAfter20250101')
}})</p>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -832,8 +705,7 @@ onMounted(() => {
</div> </div>
<el-dialog v-model="FirstRechargeDialogVisible" :title="$t('common_add.operationConfirm')" <el-dialog v-model="FirstRechargeDialogVisible" :title="$t('common_add.operationConfirm')"
:before-close="FirstRechargeDialogVisiblehandleClose"
:close-on-click-modal="false" width="400px">
:before-close="FirstRechargeDialogVisiblehandleClose" :close-on-click-modal="false" width="400px">
<!-- 内容整体居中且收窄 --> <!-- 内容整体居中且收窄 -->
<div class="confirm-body"> <div class="confirm-body">
<!-- 用户信息 --> <!-- 用户信息 -->
@ -874,13 +746,14 @@ onMounted(() => {
<template #footer> <template #footer>
<div class="dialog-footer-center"> <div class="dialog-footer-center">
<el-button @click="FirstRechargeDialogVisibleCancel">{{ $t('common.cancel') }}</el-button> <el-button @click="FirstRechargeDialogVisibleCancel">{{ $t('common.cancel') }}</el-button>
<el-button type="primary" @click="FistRechargeDialogVisibleContinue">{{ $t('common.confirmRecharge') }}</el-button>
<el-button type="primary" @click="FistRechargeDialogVisibleContinue">{{ $t('common.confirmRecharge')
}}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
<el-dialog v-model="RechargeDialogVisible" :title="$t('common_add.operationConfirm')" :before-close="RechargeDialogVisiblehandleClose"
:close-on-click-modal="false" width="480px">
<el-dialog v-model="RechargeDialogVisible" :title="$t('common_add.operationConfirm')"
:before-close="RechargeDialogVisiblehandleClose" :close-on-click-modal="false" width="480px">
<!-- 内容整体居中且收窄 --> <!-- 内容整体居中且收窄 -->
<div class="confirm-body"> <div class="confirm-body">
<!-- 用户信息 --> <!-- 用户信息 -->
@ -919,8 +792,12 @@ onMounted(() => {
<div> <div>
<el-divider border-style="dashed" /> <el-divider border-style="dashed" />
<p>{{ $t('common_add.similarRechargeRecords') }}</p> <p>{{ $t('common_add.similarRechargeRecords') }}</p>
· {{ moment(ReadCookiesValue.payTime).format('YYYY-MM-DD HH:mm:ss') }} {{ $t('common_add.rechargePermanentGold') }}: {{ recharge.permanentGold }}
{{ $t('common_add.freeGold') }}: {{ recharge.freeGold }} {{ $t('common_add.orderStatus')}}: {{ orderStatus }}({{ $t('common_add.operator') }}{{ adminData.adminName }})
· {{ moment(ReadCookiesValue.payTime).format('YYYY-MM-DD HH:mm:ss') }} {{
$t('common_add.rechargePermanentGold')
}}: {{ recharge.permanentGold }}
{{ $t('common_add.freeGold') }}: {{ recharge.freeGold }} {{ $t('common_add.orderStatus') }}: {{ orderStatus
}}({{
$t('common_add.operator') }}{{ adminData.adminName }})
</div> </div>
<div style="margin-top: 10px"> <div style="margin-top: 10px">
<p>{{ $t('common_add.continueOperation') }}</p> <p>{{ $t('common_add.continueOperation') }}</p>
@ -932,7 +809,8 @@ onMounted(() => {
<template #footer> <template #footer>
<div class="dialog-footer-center"> <div class="dialog-footer-center">
<el-button @click="RechargeDialogVisibleCancel">{{ $t('common.cancel') }}</el-button> <el-button @click="RechargeDialogVisibleCancel">{{ $t('common.cancel') }}</el-button>
<el-button type="primary" @click="RechargeDialogVisibleContinue">{{ $t('common.confirmRecharge') }}</el-button>
<el-button type="primary" @click="RechargeDialogVisibleContinue">{{ $t('common.confirmRecharge')
}}</el-button>
</div> </div>
</template> </template>
</el-dialog> </el-dialog>
@ -941,7 +819,6 @@ onMounted(() => {
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.userAndForm { .userAndForm {
width: 1150px; width: 1150px;
height: 100%; height: 100%;

Loading…
Cancel
Save