Browse Source

feat: 限制金币消耗、汇率输入为6位整数和2位小数,消耗逻辑优化

refactor:汇率样式
fix:审核状态也被重置的bug
zhangrenyuan/feature-20250623164058-金币前端
lihui 4 weeks ago
parent
commit
2ca5bf6f98
  1. 2
      src/views/audit/rechargeAudit.vue
  2. 99
      src/views/consume/addCoinConsume.vue
  3. 29
      src/views/managerecharge/rate.vue

2
src/views/audit/rechargeAudit.vue

@ -349,7 +349,7 @@ const resetSearch = function () {
startTime: "",
endTime: "",
market: "",
auditStatus: "0"
// auditStatus: "0"
}
getTime.value = []
getRecharge()

99
src/views/consume/addCoinConsume.vue

@ -144,9 +144,30 @@ function validateInput() {
return false;
}
// 2
// 2 6
if (addConsume.value.sumGold) {
const sumGoldStr = addConsume.value.sumGold.toString();
//
if (sumGoldStr.includes('.')) {
const integerPart = sumGoldStr.split('.')[0];
if (integerPart.length > 6) {
// 6
const truncatedInteger = integerPart.slice(0, 6);
addConsume.value.sumGold = parseFloat(truncatedInteger);
ElMessage.info('整数部分最多允许6位');
return; //
}
} else {
//
if (sumGoldStr.length > 6) {
addConsume.value.sumGold = parseFloat(sumGoldStr.slice(0, 6));
ElMessage.info('整数部分最多允许6位');
return;
}
}
//
if (sumGoldStr.includes('.')) {
const decimalPart = sumGoldStr.split('.')[1];
if (decimalPart.length > 2) {
@ -160,7 +181,6 @@ function validateInput() {
//
const totalAvailableGold = (user.value.nowSumGold)
if (user.value.jwcode && sumGold > totalAvailableGold) {
@ -323,48 +343,61 @@ const addBefore = () => {
};
//
const getUser = async function (jwcode) {
trimJwCode();
try {
//
if (!jwcode) {
ElMessage.warning('精网号不能为空');
return;
}
//
if (!/^\d+$/.test(jwcode)) {
ElMessage.warning('精网号必须为数字');
resetForm()
return;
}
// POST
const result = await request({
// url: "user/selectUser",
url: "/user/selectUser",
data: {
//
jwcode: addConsume.value.jwcode,
},
data: { jwcode }
});
console.log("请求成功", result);
if (result.code === 200 && result.data !== null) {
user.value = result.data;
user.value.nowPermanentGold = result.data.nowPermanentGold / 100;
user.value.nowFreeGold = result.data.nowFreeGold / 100;
user.value.nowSumGold = result.data.nowSumGold / 100;
user.value.nowTaskGold = result.data.nowTaskGold / 100;
user.value.nowFreeJune = (result.data.nowFreeJune) / 100;
user.value.nowFreeDecember = (result.data.nowFreeDecember) / 100;
user.value.historySumGold = (result.data.historySumGold) / 100;
user.value.historyPermanentGold = (result.data.historyPermanentGold) / 100;
user.value.historyFreeGold = (result.data.historyFreeGold) / 100;
user.value.historyTaskGold = (result.data.historyTaskGold) / 100;
} else if (result.data == null) {
if (result.code === 200 && result.data) {
//
user.value = {
...result.data,
// 100
nowPermanentGold: result.data.nowPermanentGold / 100,
nowFreeGold: result.data.nowFreeGold / 100,
nowSumGold: result.data.nowSumGold / 100,
nowTaskGold: result.data.nowTaskGold / 100,
nowFreeJune: result.data.nowFreeJune / 100,
nowFreeDecember: result.data.nowFreeDecember / 100,
historySumGold: result.data.historySumGold / 100,
historyPermanentGold: result.data.historyPermanentGold / 100,
historyFreeGold: result.data.historyFreeGold / 100,
historyTaskGold: result.data.historyTaskGold / 100
};
ElMessage.success("查询成功");
// sumGold
validateInput()
} else if (!result.data) {
ElMessage.warning("用户不存在");
//
resetForm();
} else if (result.code === 0) {
ElMessage.warning("请检查查询参数")
user.value.jwcode = null
addConsume.value.jwcode = null
// resetForm(); //
} else {
console.log("用户信息", user.value);
ElMessage.success(result.msg);
ElMessage.warning(result.msg || "请检查查询参数");
}
} catch (error) {
console.log("请求失败", error);
ElMessage.error("查询失败,请检查精网号是否正确");
//
resetForm();
//
console.error("请求失败", error);
ElMessage.error("查询失败,请检查网络连接或精网号是否正确");
resetForm(); //
}
};
// ()

29
src/views/managerecharge/rate.vue

@ -280,12 +280,27 @@ function handleInput(value) {
value = value.substring(1);
}
//
//
if (value.includes('.')) {
const parts = value.split('.')
//
if (parts[0].length > 6) {
parts[0] = parts[0].slice(0, 6)
ElMessage.info('整数部分最多允许六位')
}
//
if (parts[1].length > 2) {
value = parts[0] + '.' + parts[1].slice(0, 2)
parts[1] = parts[1].slice(0, 2)
value = parts[0] + '.' + parts[1]
ElMessage.info('最多允许两位小数')
} else {
value = parts[0] + '.' + parts[1]
}
} else {
//
if (value.length > 6) {
value = value.slice(0, 6)
ElMessage.info('整数部分最多允许六位')
}
}
@ -424,19 +439,19 @@ onMounted(async function () {
/>
</el-select>
</el-form-item>
<el-form-item prop="num" label="汇率:">
<el-input
v-model="rateEdit.num"
@update:modelValue="handleInput"
style="width: 120px"
/>
<p class="unit">:1</p>
<p class="rate-tip">
<span class="unit">:1</span>
<span class="rate-tip">
(提示当前规则每
<span>{{ rateEdit.num }}</span>
<span>{{ rateEdit.rateName }}</span>
可兑换 1 新币)
</p>
<span>{{ rateEdit.rateName }}</span>可兑换 1 新币)
</span>
</el-form-item>
<el-form-item label="提交人:">
<el-input disabled :value="adminData.adminName" style="width: 240px"/>

Loading…
Cancel
Save