Browse Source

number valid rules!

lihuilin/feature-20250623164044-金币前端
zry 4 weeks ago
parent
commit
61bac52b98
  1. 76
      src/views/refund/addCoinRefund.vue

76
src/views/refund/addCoinRefund.vue

@ -322,35 +322,61 @@ const handleSelectionChange = (selectedOption) => {
}
console.log('选择的商品', selectedOption);
}
//
const validateGoldInput = (type, value) => {
//
const handleGoldInput = (type, value) => {
// 1.
let filtered = value.replace(/[^\d.]/g, '');
// 2.
const dotCount = (filtered.match(/\./g) || []).length;
if (dotCount > 1) {
//
const parts = filtered.split('.');
filtered = parts[0] + '.' + parts.slice(1).join('');
}
// 3.
if (filtered.includes('.')) {
const [integer, decimal] = filtered.split('.');
if (decimal.length > 2) {
filtered = `${integer}.${decimal.slice(0, 2)}`;
}
}
// 4. 0
if (filtered.startsWith('.')) {
filtered = '0' + filtered;
}
// 5.
addRefund.value[type] = filtered;
// 6.
const maxValue = selectedGoodsGold.value[type];
const inputValue = Number(value);
const inputValue = Number(filtered || 0);
if (isNaN(inputValue)) {
return 0;
return;
}
if (inputValue > maxValue) {
//
//
const correctedValue = maxValue.toFixed(2);
addRefund.value[type] = correctedValue;
ElMessage.warning('所填金额大于该类金币余额');
return maxValue;
}
return Math.min(inputValue, maxValue);
}
//
const handlePermanentGoldInput = (value) => {
addRefund.value.permanentGold = validateGoldInput('permanentGold', value);
}
//
const handleFreeGoldInput = (value) => {
addRefund.value.freeGold = validateGoldInput('freeGold', value);
if (inputValue < 0) {
// 0
addRefund.value[type] = '0';
ElMessage.warning('不能输入负数');
}
}
//
const handleTaskGoldInput = (value) => {
addRefund.value.taskGold = validateGoldInput('taskGold', value);
}
// 使
const handlePermanentGoldInput = (value) => handleGoldInput('permanentGold', value);
const handleFreeGoldInput = (value) => handleGoldInput('freeGold', value);
const handleTaskGoldInput = (value) => handleGoldInput('taskGold', value);
//
const calculatedRechargeGoods = computed(() => {
@ -442,9 +468,9 @@ onMounted(async function () {
style="width: 100px"
:disabled="addRe.typeR === '0' ? true : false"
@input="handlePermanentGoldInput($event)"
type="number"
>
</el-input>
</el-input>
<p></p>
</el-form-item>
<el-form-item
@ -457,7 +483,7 @@ onMounted(async function () {
style="float: left; width: 100px"
:disabled="addRe.typeR === '0' ? true : false"
@input="handleFreeGoldInput($event)"
type="number"
/>
<p></p>
</el-form-item>
@ -467,7 +493,7 @@ onMounted(async function () {
style="float: left; width: 100px"
:disabled="addRe.typeR === '0' ? true : false"
@input="handleTaskGoldInput($event)"
type="number"
/>
<p></p>
</el-form-item>

Loading…
Cancel
Save