|
|
@ -43,16 +43,28 @@ |
|
|
|
<el-input v-model="addForm.gradeName" placeholder="请输入等级名称"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="数量" align="center"> |
|
|
|
<el-input-number v-model="addForm.amount" :precision="0" :min="0" placeholder="请输入数量" |
|
|
|
style="width: 100%;"></el-input-number> |
|
|
|
<el-input |
|
|
|
v-model="addForm.amount" |
|
|
|
@input="(val) => handleNumberInput('amount', val, addForm, 99999)" |
|
|
|
placeholder="请输入数量" |
|
|
|
style="width: 100%;" |
|
|
|
></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="每轮抽取人数" align="center"> |
|
|
|
<el-input-number v-model="addForm.perWin" :precision="0" :min="0" placeholder="请输入抽取人数" |
|
|
|
style="width: 100%;"></el-input-number> |
|
|
|
<el-input |
|
|
|
v-model="addForm.perWin" |
|
|
|
@input="(val) => handleNumberInput('perWin', val, addForm, 500)" |
|
|
|
placeholder="请输入抽取人数" |
|
|
|
style="width: 100%;" |
|
|
|
></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="排序" align="center"> |
|
|
|
<el-input-number v-model="addForm.sort" :precision="0" :min="0" placeholder="请输入排序等级" |
|
|
|
style="width: 100%;"></el-input-number> |
|
|
|
<el-input |
|
|
|
v-model="addForm.sort" |
|
|
|
@input="(val) => handleNumberInput('sort', val, addForm, 100000000)" |
|
|
|
placeholder="请输入排序等级" |
|
|
|
style="width: 100%;" |
|
|
|
></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<template #footer> |
|
|
@ -69,16 +81,28 @@ |
|
|
|
<el-input v-model="editForm.gradeName" placeholder="请输入等级名称"></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="数量" align="center"> |
|
|
|
<el-input-number v-model="editForm.amount" :precision="0" :min="0" placeholder="请输入数量" |
|
|
|
style="width: 100%;"></el-input-number> |
|
|
|
<el-input |
|
|
|
v-model="editForm.amount" |
|
|
|
@input="(val) => handleNumberInput('amount', val, editForm, 99999)" |
|
|
|
placeholder="请输入数量" |
|
|
|
style="width: 100%;" |
|
|
|
></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="每轮抽取人数" align="center"> |
|
|
|
<el-input-number v-model="editForm.perWin" :precision="0" :min="0" placeholder="请输入抽取人数" |
|
|
|
style="width: 100%;"></el-input-number> |
|
|
|
<el-input |
|
|
|
v-model="editForm.perWin" |
|
|
|
@input="(val) => handleNumberInput('perWin', val, editForm, 500)" |
|
|
|
placeholder="请输入抽取人数" |
|
|
|
style="width: 100%;" |
|
|
|
></el-input> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="排序" align="center"> |
|
|
|
<el-input-number v-model="editForm.sort" :precision="0" :min="0" placeholder="请输入排序等级" |
|
|
|
style="width: 100%;"></el-input-number> |
|
|
|
<el-input |
|
|
|
v-model="editForm.sort" |
|
|
|
@input="(val) => handleNumberInput('sort', val, editForm, 100000000)" |
|
|
|
placeholder="请输入排序等级" |
|
|
|
style="width: 100%;" |
|
|
|
></el-input> |
|
|
|
</el-form-item> |
|
|
|
</el-form> |
|
|
|
<template #footer> |
|
|
@ -125,9 +149,9 @@ const editLevel = (row) => { |
|
|
|
editForm.value = { |
|
|
|
id: row.id, |
|
|
|
gradeName: row.gradeName, |
|
|
|
amount: row.amount, |
|
|
|
perWin: row.perWin, |
|
|
|
sort: row.sort |
|
|
|
amount: String(row.amount), |
|
|
|
perWin: String(row.perWin), |
|
|
|
sort: String(row.sort) |
|
|
|
} |
|
|
|
editVisible.value = true |
|
|
|
} |
|
|
@ -225,7 +249,7 @@ const submitEdit = async () => { |
|
|
|
} |
|
|
|
// 删除等级 |
|
|
|
const deleteLevel = (row) => { |
|
|
|
ElMessageBox.confirm('此操作会删对应奖品信息、内定用户信息和中奖记录信息,确定要删除该等级吗?', '提示', { |
|
|
|
ElMessageBox.confirm('确定要删除该等级吗?', '提示', { |
|
|
|
confirmButtonText: '确定', |
|
|
|
cancelButtonText: '取消', |
|
|
|
type: 'warning' |
|
|
@ -249,6 +273,29 @@ const deleteLevel = (row) => { |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
// 处理数字输入并限制最大值 |
|
|
|
const handleNumberInput = (field, value, form, maxValue) => { |
|
|
|
// 1. 过滤非数字字符 |
|
|
|
let filteredValue = value.replace(/[^\d]/g, ''); |
|
|
|
|
|
|
|
// 2. 处理空值情况 |
|
|
|
if (filteredValue === '') { |
|
|
|
form[field] = ''; |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 3. 转换为数字并限制最大值 |
|
|
|
let numValue = Number(filteredValue); |
|
|
|
|
|
|
|
// 4. 应用最大值限制 |
|
|
|
if (numValue > maxValue) { |
|
|
|
form[field] = String(maxValue); |
|
|
|
} else { |
|
|
|
// 5. 保留原始输入(但去除前导零) |
|
|
|
form[field] = numValue === 0 ? '0' : filteredValue.replace(/^0+/, '') || '0'; |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
//清空表单(关闭对话框时调用) |
|
|
|
const resetForm = () => { |
|
|
|
addForm.value = { |
|
|
|