|
@@ -1,82 +1,69 @@
|
|
|
<template>
|
|
|
<div>
|
|
|
- <el-form label-suffix=":">
|
|
|
+ <el-form label-suffix=":" :model="data" ref="formRef">
|
|
|
<el-form-item>
|
|
|
- <!-- <el-radio-group v-model="radio1">
|
|
|
- <el-radio :value="1">
|
|
|
- <template #default>
|
|
|
- <div class="deafault">
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- content="Top Center prompts info"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <el-icon><InfoFilled /></el-icon>
|
|
|
- </el-tooltip>
|
|
|
- <span>{{$t('defaultValue')}}</span>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-radio>
|
|
|
- <el-radio :label="$t('custom')" :value="2"></el-radio>
|
|
|
- </el-radio-group> -->
|
|
|
<span style="width: 360px;">{{$t('venueTicket')}}:</span>
|
|
|
</el-form-item>
|
|
|
- <el-form-item>
|
|
|
+ <div style="display: flex;">
|
|
|
+ <el-form-item prop="low" :rules="[
|
|
|
+ { required: true, message: $t('fieldRequired'), trigger: 'blur' },
|
|
|
+ { validator: checkNumber, trigger: 'blur' }
|
|
|
+ ]">
|
|
|
<div class="row">
|
|
|
- <span style="width: 230px;">{{$t('minimumAdmission')}}:</span>
|
|
|
+ <span style="color: red;">*</span><span style="width: 230px;">{{$t('minimumAdmission')}}:</span>
|
|
|
<el-input v-model="data.low" :placeholder="$t('pleaseEnter')"></el-input>
|
|
|
</div>
|
|
|
- <div class="row">
|
|
|
- <span style="width: 200px;">{{$t('maximumTicket')}}:</span>
|
|
|
- <el-input v-model="data.high" :placeholder="$t('pleaseEnter')"></el-input>
|
|
|
- </div>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item prop="high" :rules="[
|
|
|
+ { required: true, message: $t('fieldRequired'), trigger: 'blur' },
|
|
|
+ { validator: checkNumber, trigger: 'blur' }
|
|
|
+ ]">
|
|
|
+ <div class="row">
|
|
|
+ <span style="color: red;">*</span><span style="width: 200px;">{{$t('maximumTicket')}}:</span>
|
|
|
+ <el-input v-model="data.high" :placeholder="$t('pleaseEnter')"></el-input>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
<el-form-item>
|
|
|
<span style="width: 360px;">{{$t('roomSize')}}:</span>
|
|
|
</el-form-item>
|
|
|
- <el-form-item>
|
|
|
+ <div style="display: flex;">
|
|
|
+ <el-form-item prop="smallBlind" :rules="[
|
|
|
+ { required: true, message: $t('fieldRequired'), trigger: 'blur' },
|
|
|
+ { validator: checkNumber, trigger: 'blur' }
|
|
|
+ ]">
|
|
|
<div class="row">
|
|
|
- <span style="width: 165px;">{{ $t('paracopsia') }}:</span>
|
|
|
+ <span style="color: red;">*</span><span style="width: 165px;">{{ $t('paracopsia') }}:</span>
|
|
|
<el-input v-model="data.smallBlind" :placeholder="$t('pleaseEnter')"></el-input>
|
|
|
</div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="bigBlind" :rules="[
|
|
|
+ { required: true, message: $t('fieldRequired'), trigger: 'blur' },
|
|
|
+ { validator: checkNumber, trigger: 'blur' }
|
|
|
+ ]">
|
|
|
<div class="row">
|
|
|
- <span style="width: 150px;">{{ $t('macroblind') }}:</span>
|
|
|
+ <span style="color: red;">*</span><span style="width: 150px;">{{ $t('macroblind') }}:</span>
|
|
|
<el-input v-model="data.bigBlind" :placeholder="$t('pleaseEnter')"></el-input>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
+ </div>
|
|
|
</el-form>
|
|
|
<div style="display: flex;justify-content: end;">
|
|
|
<el-button type="primary" @click="updateGame">{{$t('save')}}</el-button>
|
|
|
</div>
|
|
|
<el-tabs>
|
|
|
<el-tab-pane :label="$t('sessionRooms')">
|
|
|
- <el-form>
|
|
|
+ <el-form :model="data" ref="formRef2">
|
|
|
<el-form-item>
|
|
|
- <span style="width: 360px;">{{$t('numberRooms')}}:</span>
|
|
|
- <!-- <el-radio-group v-model="radio1">
|
|
|
- <el-radio :value="1">
|
|
|
- <template #default>
|
|
|
- <div class="deafault">
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- content="Top Center prompts info"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <el-icon><InfoFilled /></el-icon>
|
|
|
- </el-tooltip>
|
|
|
- <span>{{$t('defaultValue')}}</span>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-radio>
|
|
|
- <el-radio :label="$t('custom')" :value="2"></el-radio>
|
|
|
- </el-radio-group> -->
|
|
|
+ <span style="color: red;">*</span><span style="width: 360px;">{{$t('numberRooms')}}:</span>
|
|
|
</el-form-item>
|
|
|
- <el-form-item>
|
|
|
+ <el-form-item prop="roomNumber" :rules="[
|
|
|
+ { required: true, message: $t('fieldRequired'), trigger: 'blur' },
|
|
|
+ { type:'number',min:0.1,message: $t('greaterThanZero'), trigger: 'blur' }
|
|
|
+ ]">
|
|
|
<div class="row">
|
|
|
<span style="width: 160px;">{{$t('quantity')}}:</span>
|
|
|
- <el-input v-model="data.roomNumber" :placeholder="$t('pleaseEnter')"></el-input>
|
|
|
+ <el-input v-model.number="data.roomNumber" :placeholder="$t('pleaseEnter')"></el-input>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
@@ -93,6 +80,8 @@ import request from '@/utils/request'
|
|
|
import i18n from '@/utils/i18n'
|
|
|
import { ElMessage } from 'element-plus'
|
|
|
import {ref ,defineProps, reactive, watch,defineEmits} from 'vue'
|
|
|
+const formRef = ref(null)
|
|
|
+const formRef2 = ref(null)
|
|
|
const props = defineProps({
|
|
|
formData: {
|
|
|
type: Object,
|
|
@@ -101,12 +90,29 @@ const props = defineProps({
|
|
|
low: '',
|
|
|
high: '',
|
|
|
smallBlind: '',
|
|
|
- bigBlind: ''
|
|
|
+ bigBlind: '',
|
|
|
+ roomNumber:''
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
const data = reactive({ ...props.formData })
|
|
|
const emit = defineEmits()
|
|
|
+const checkNumber = (rule, value, callback) => {
|
|
|
+ if (!value) {
|
|
|
+ callback(new Error(i18n.global.t('fieldRequired')));
|
|
|
+ } else {
|
|
|
+ const numberValue = parseFloat(value);
|
|
|
+ if (isNaN(numberValue)) {
|
|
|
+ callback(new Error(i18n.global.t('mustNumber')));
|
|
|
+ } else if (numberValue <= 0) {
|
|
|
+ callback(new Error(i18n.global.t('greaterThanZero')));
|
|
|
+ } else if (!/^\d+(\.\d{1,2})?$/.test(value)) {
|
|
|
+ callback(new Error(i18n.global.t('two')));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
watch(
|
|
|
() => props.formData,
|
|
|
(newVal) => {
|
|
@@ -115,19 +121,27 @@ watch(
|
|
|
{ deep: true }
|
|
|
)
|
|
|
const updateGame = async ()=>{
|
|
|
+ formRef.value.validate(async (valid, invalidFields) => {
|
|
|
+ if (valid) {
|
|
|
const res = await request('post', 'admin/poker/updatePokerGame', Object.assign(data, {gameId:data.id}))
|
|
|
if (res.code === 200) {
|
|
|
ElMessage.success(i18n.global.t('successfulOperation'))
|
|
|
emit('getPageData')
|
|
|
}
|
|
|
+}
|
|
|
+})
|
|
|
|
|
|
}
|
|
|
const updateRoom = async ()=>{
|
|
|
+ formRef2.value.validate(async (valid, invalidFields) => {
|
|
|
+ if (valid) {
|
|
|
const res = await request('post', 'admin/poker/updatePokerGameRoomNumber', {gameId:data.id, number:data.roomNumber})
|
|
|
if (res.code === 200) {
|
|
|
ElMessage.success(i18n.global.t('successfulOperation'))
|
|
|
emit('getPageData')
|
|
|
}
|
|
|
+ }
|
|
|
+ })
|
|
|
|
|
|
}
|
|
|
</script>
|
|
@@ -141,4 +155,7 @@ const updateRoom = async ()=>{
|
|
|
display: flex;
|
|
|
margin-right: 16px;
|
|
|
}
|
|
|
+::v-deep .el-input__wrapper{
|
|
|
+ background-color: #fff6ea !important;
|
|
|
+}
|
|
|
</style>
|