|
@ -68,15 +68,23 @@ const rules = reactive({ |
|
|
{required: true, message: "请输入精网号", trigger: "blur"}, |
|
|
{required: true, message: "请输入精网号", trigger: "blur"}, |
|
|
// { type: 'number', message: "精网号必须为数字", trigger: "blur" } |
|
|
// { type: 'number', message: "精网号必须为数字", trigger: "blur" } |
|
|
], |
|
|
], |
|
|
goodsName: [{required: true, message: "请选择消费商品", trigger: "change"}], |
|
|
|
|
|
|
|
|
goodsName: [{required: true, message: "请选择消费商品", trigger: "blur"}], |
|
|
sumGold: [ |
|
|
sumGold: [ |
|
|
{required: true, message: "消费金币总数不能为空", trigger: "blur"}, |
|
|
|
|
|
|
|
|
{ required: true, message: "消费金币总数不能为空", trigger: "blur" }, |
|
|
{ |
|
|
{ |
|
|
pattern: /^\d+(\.\d+)?$/, |
|
|
|
|
|
message: "存在负数或数字格式不正确,请输入正数", |
|
|
|
|
|
|
|
|
validator: (rule, value, callback) => { |
|
|
|
|
|
// 允许0开头的小数(如0.1)但不允许单独的0 |
|
|
|
|
|
const isValid = /^(0\.\d{1,2})|([1-9]\d*(\.\d{1,2})?)$/.test(value); |
|
|
|
|
|
|
|
|
|
|
|
if (!isValid) { |
|
|
|
|
|
callback(new Error("请输入大于0的正数(可包含最多两位小数)")); |
|
|
|
|
|
} else { |
|
|
|
|
|
callback(); |
|
|
|
|
|
} |
|
|
|
|
|
}, |
|
|
trigger: "blur" |
|
|
trigger: "blur" |
|
|
} |
|
|
} |
|
|
], |
|
|
|
|
|
|
|
|
] |
|
|
}); |
|
|
}); |
|
|
// 查询商品的表单 |
|
|
// 查询商品的表单 |
|
|
const goods = ref([]); |
|
|
const goods = ref([]); |
|
@ -102,6 +110,7 @@ const getAdminData = async function () { |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 输入验证函数 |
|
|
// 输入验证函数 |
|
|
function validateInput() { |
|
|
function validateInput() { |
|
|
const sumGold = parseFloat(addConsume.value.sumGold); |
|
|
const sumGold = parseFloat(addConsume.value.sumGold); |
|
@ -123,6 +132,33 @@ function validateInput() { |
|
|
return false; |
|
|
return false; |
|
|
} |
|
|
} |
|
|
*/ |
|
|
*/ |
|
|
|
|
|
// sumGold 补充0(比如.1 为0.1) |
|
|
|
|
|
if (addConsume.value.sumGold && addConsume.value.sumGold.toString().startsWith('.')) { |
|
|
|
|
|
addConsume.value.sumGold = '0' + addConsume.value.sumGold; |
|
|
|
|
|
// ElMessage.info('已自动补充前导0'); |
|
|
|
|
|
} |
|
|
|
|
|
// 验证金币不能为负数 |
|
|
|
|
|
if (sumGold < 0) { |
|
|
|
|
|
ElMessage.warning("消费金币总数不能为负数"); |
|
|
|
|
|
addConsume.value.sumGold = null; |
|
|
|
|
|
return false; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 小数位数限制 2位 |
|
|
|
|
|
if (addConsume.value.sumGold) { |
|
|
|
|
|
const sumGoldStr = addConsume.value.sumGold.toString(); |
|
|
|
|
|
if (sumGoldStr.includes('.')) { |
|
|
|
|
|
const decimalPart = sumGoldStr.split('.')[1]; |
|
|
|
|
|
if (decimalPart.length > 2) { |
|
|
|
|
|
// 截断到两位小数并提示 |
|
|
|
|
|
const truncatedValue = parseFloat(sumGoldStr.slice(0, sumGoldStr.indexOf('.') + 3)); |
|
|
|
|
|
addConsume.value.sumGold = truncatedValue; |
|
|
|
|
|
ElMessage.info('最多允许输入两位小数'); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 验证金币总和 |
|
|
// 验证金币总和 |
|
|