|
|
@@ -197,17 +197,41 @@
|
|
|
placeholder="请输入口令,最多30字"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item :label="showPasswordFields ? '持续时间' : '持续时间'" prop="duration">
|
|
|
- <el-input v-model="form.duration" :placeholder="showPasswordFields ? '请输入持续时间(分)' : '请输入红包有效时间 单位:分'" />
|
|
|
+ <el-form-item :label="showPasswordFields ? '持续时间(分)' : '持续时间(分)'" prop="duration">
|
|
|
+ <el-input-number
|
|
|
+ v-model="form.duration"
|
|
|
+ :min="1"
|
|
|
+ :precision="0"
|
|
|
+ :step="1"
|
|
|
+ :controls="true"
|
|
|
+ style="width: 100%"
|
|
|
+ :placeholder="showPasswordFields ? '请输入持续时间(分)' : '请输入红包有效时间 单位:分'"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="直播间ID" prop="liveId">
|
|
|
<el-input v-model="form.liveId" placeholder="请输入直播间ID" :disabled="canLiveId"/>
|
|
|
</el-form-item>
|
|
|
<el-form-item :label="showPasswordFields ? '奖励积分' : '积分'" prop="redNum">
|
|
|
- <el-input v-model="form.redNum" :placeholder="showPasswordFields ? '请输入奖励积分' : '请输入积分数量'" />
|
|
|
+ <el-input-number
|
|
|
+ v-model="form.redNum"
|
|
|
+ :min="1"
|
|
|
+ :precision="0"
|
|
|
+ :step="1"
|
|
|
+ :controls="true"
|
|
|
+ style="width: 100%"
|
|
|
+ :placeholder="showPasswordFields ? '请输入奖励积分' : '请输入积分数量'"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
<el-form-item :label="showPasswordFields ? '奖励份数' : '中奖份量'" prop="totalLots">
|
|
|
- <el-input v-model="form.totalLots" :placeholder="showPasswordFields ? '请输入奖励份数' : '请输入可中奖份量'" />
|
|
|
+ <el-input-number
|
|
|
+ v-model="form.totalLots"
|
|
|
+ :min="1"
|
|
|
+ :precision="0"
|
|
|
+ :step="1"
|
|
|
+ :controls="true"
|
|
|
+ style="width: 100%"
|
|
|
+ :placeholder="showPasswordFields ? '请输入奖励份数' : '请输入可中奖份量'"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
<el-form-item :label="showPasswordFields ? '标题' : '红包标题'" prop="desc">
|
|
|
<el-input v-model="form.desc" :placeholder="showPasswordFields ? '请输入标题' : '请输入红包描述'" />
|
|
|
@@ -246,6 +270,19 @@ export default {
|
|
|
callback()
|
|
|
}
|
|
|
}
|
|
|
+ /** 正整数:禁止空、0、负数、小数 */
|
|
|
+ const validatePositiveInt = (label) => (rule, value, callback) => {
|
|
|
+ if (value === null || value === undefined || value === '') {
|
|
|
+ callback(new Error(label + '不能为空'))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ const str = String(value).trim()
|
|
|
+ if (!/^[1-9]\d*$/.test(str)) {
|
|
|
+ callback(new Error(label + '须为正整数(不能为0、负数或小数)'))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ callback()
|
|
|
+ }
|
|
|
return {
|
|
|
//字典
|
|
|
redStatusOptions: [],
|
|
|
@@ -301,16 +338,19 @@ export default {
|
|
|
{ validator: validatePassword, trigger: "blur" }
|
|
|
],
|
|
|
duration: [
|
|
|
- { required: true, message: "有效时间 单位:分不能为空", trigger: "blur" }
|
|
|
+ { required: true, message: "持续时间不能为空", trigger: "blur" },
|
|
|
+ { validator: validatePositiveInt('持续时间'), trigger: ['blur', 'change'] }
|
|
|
],
|
|
|
liveId: [
|
|
|
{ required: true, message: "直播间ID不能为空", trigger: "blur" }
|
|
|
],
|
|
|
redNum: [
|
|
|
- { required: true, message: "积分数量不能为空", trigger: "blur" }
|
|
|
+ { required: true, message: "奖励积分不能为空", trigger: "blur" },
|
|
|
+ { validator: validatePositiveInt('奖励积分'), trigger: ['blur', 'change'] }
|
|
|
],
|
|
|
totalLots: [
|
|
|
- { required: true, message: "份量不能为空", trigger: "blur" }
|
|
|
+ { required: true, message: "奖励份数不能为空", trigger: "blur" },
|
|
|
+ { validator: validatePositiveInt('奖励份数'), trigger: ['blur', 'change'] }
|
|
|
],
|
|
|
desc: [
|
|
|
{ required: true, message: "描述不能为空", trigger: "blur" }
|