|
|
@@ -181,7 +181,13 @@
|
|
|
|
|
|
<el-form-item label="比赛类型" prop="gameType">
|
|
|
<el-select aria-required="true" v-model="form.gameType" placeholder="请选择" :disabled="dialog.mode === 'view'">
|
|
|
- <el-option v-for="dict in tournaments_type" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
|
|
|
+ <el-option
|
|
|
+ v-for="dict in tournaments_type.filter((item) => item.value !== '1')"
|
|
|
+ :key="dict.value"
|
|
|
+ :label="dict.label"
|
|
|
+ :value="dict.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
|
|
|
@@ -193,11 +199,14 @@
|
|
|
|
|
|
<!-- 报名条件 -->
|
|
|
<el-form-item label="报名条件" prop="itemsId">
|
|
|
- <div style="display: flex; align-items: center; gap: 10px">
|
|
|
- <el-select v-model="form.itemsId" placeholder="请选择道具类型" :disabled="dialog.mode === 'view'">
|
|
|
+ <div style="display: flex; align-items: center; gap: 10px; width: 100%">
|
|
|
+ <el-select v-model="form.itemsId" placeholder="请选择道具类型" :disabled="dialog.mode === 'view'" style="flex: 1">
|
|
|
<el-option v-for="item in itemOptions" :key="item.id" :label="item.label" :value="item.id" />
|
|
|
</el-select>
|
|
|
- <el-input v-model="form.itemsNum" :min="1" placeholder="数量" :disabled="dialog.mode === 'view'" />
|
|
|
+
|
|
|
+ <el-form-item prop="itemsNum" style="margin-bottom: 0; flex: 1">
|
|
|
+ <el-input v-model.number="form.itemsNum" placeholder="数量" :disabled="dialog.mode === 'view'" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
|
|
|
@@ -238,6 +247,15 @@
|
|
|
<el-input v-model="form.robotCount" placeholder="请输入机器人数" :disabled="dialog.mode === 'view'" />
|
|
|
</el-form-item>
|
|
|
|
|
|
+ <el-form-item label="延迟卡时间" prop="delayCardTime">
|
|
|
+ <el-input v-model="form.delayCardTime" placeholder="请输入延迟卡时间" :disabled="dialog.mode === 'view'" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="延迟卡数量" prop="delayCardNum">
|
|
|
+ <el-input v-model="form.delayCardNum" placeholder="请输入延迟卡数量" :disabled="dialog.mode === 'view'" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+
|
|
|
<!-- 奖励内容 -->
|
|
|
<el-form-item label="奖励内容">
|
|
|
<div v-for="(reward, index) in formPrize.rewards" :key="index" style="display: flex; align-items: center; margin-bottom: 8px">
|
|
|
@@ -549,7 +567,9 @@ const initFormData: TournamentsForm = {
|
|
|
itemsId: null,
|
|
|
itemsNum: null,
|
|
|
blindStructureId: null,
|
|
|
- itemsPrizeList: []
|
|
|
+ itemsPrizeList: [],
|
|
|
+ delayCardNum: 4,
|
|
|
+ delayCardTime: 15
|
|
|
};
|
|
|
const data = reactive<PageData<TournamentsForm, TournamentsQuery>>({
|
|
|
form: { ...initFormData },
|
|
|
@@ -577,7 +597,87 @@ const data = reactive<PageData<TournamentsForm, TournamentsQuery>>({
|
|
|
lateRegistrationLevel: [{ required: true, message: '截止报名级别不能为空', trigger: 'change' }],
|
|
|
signTime: [{ required: true, message: '报名时间不能为空', trigger: 'change' }],
|
|
|
itemsId: [{ required: true, message: '报名条件不能为空', trigger: 'change' }],
|
|
|
- blindStructureId: [{ required: true, message: '盲注表不能为空', trigger: 'change' }]
|
|
|
+ blindStructureId: [{ required: true, message: '盲注表不能为空', trigger: 'change' }],
|
|
|
+ startingChips: [
|
|
|
+ { required: true, message: '起始记分牌数量不能为空', trigger: 'blur' },
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ // 检查是否为字符串类型且包含非数字字符
|
|
|
+ if (typeof value === 'string' && !/^\d+$/.test(value)) {
|
|
|
+ callback(new Error('起始记分牌数量必须为数字'));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const num = Number(value);
|
|
|
+ if (isNaN(num) || num <= 0) {
|
|
|
+ callback(new Error('起始记分牌数量必须大于0'));
|
|
|
+ } else if (!Number.isInteger(num)) {
|
|
|
+ callback(new Error('起始记分牌数量必须为整数'));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ itemsNum: [
|
|
|
+ { required: true, message: '数量不能为空', trigger: 'blur' },
|
|
|
+ {
|
|
|
+ validator: (rule, value, callback) => {
|
|
|
+ // 检查是否为字符串类型且包含非数字字符
|
|
|
+ if (typeof value === 'string' && !/^\d+$/.test(value)) {
|
|
|
+ callback(new Error('数量必须为正整数'));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const num = Number(value);
|
|
|
+ if (isNaN(num) || num <= 0) {
|
|
|
+ callback(new Error('数量必须大于0'));
|
|
|
+ } else if (!Number.isInteger(num)) {
|
|
|
+ callback(new Error('数量必须为整数'));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ delayCardTime: [
|
|
|
+ { required: false, message: '延迟卡时间不能为空', trigger: 'blur' },
|
|
|
+ {
|
|
|
+ validator: (rule: any, value: any, callback: any) => {
|
|
|
+ const num = Number(value);
|
|
|
+ if (!value) {
|
|
|
+ callback(new Error('请输入延迟卡时间'));
|
|
|
+ } else if (!/^\d+$/.test(value)) {
|
|
|
+ callback(new Error('只能输入正整数'));
|
|
|
+ } else if (num < 10 || num > 15) {
|
|
|
+ callback(new Error('延迟卡时间必须在10-15秒之间'));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ delayCardNum: [
|
|
|
+ { required: false, message: '延迟卡数量不能为空', trigger: 'blur' },
|
|
|
+ {
|
|
|
+ validator: (rule: any, value: any, callback: any) => {
|
|
|
+ const num = Number(value);
|
|
|
+ if (!value) {
|
|
|
+ callback(new Error('请输入延迟卡数量'));
|
|
|
+ } else if (!/^\d+$/.test(value)) {
|
|
|
+ callback(new Error('只能输入正整数'));
|
|
|
+ } else if (num < 1 || num > 99) {
|
|
|
+ callback(new Error('延迟卡数量必须在1-99之间'));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ trigger: 'blur'
|
|
|
+ }
|
|
|
+ ]
|
|
|
}
|
|
|
});
|
|
|
|