Browse Source

feat(gameEventConfig): 添加配置类型选择功能并优化表单默认值

- 在赛事配置页面添加配置类型下拉选择框
- 引入配置类型相关API和数据类型定义
- 设置表单字段 isEnabled 和 status 的默认值为 '0'
- 移除表单验证中对 isEnabled 和 status 的必填要求
- 启用导出按钮功能
- 获取并展示配置类型列表数据
zhou 2 weeks ago
parent
commit
a1be55b341

+ 5 - 4
src/views/system/gameEvent/components/bibViewerDialog.vue

@@ -579,10 +579,11 @@ const handleGenerateBibFile = async () => {
     return;
   }
 
-  if (!logoImageFile.value) {
-    proxy?.$modal.msgError('请上传Logo图片');
-    return;
-  }
+  // logo为非必要
+  // if (!logoImageFile.value) {
+  //   proxy?.$modal.msgError('请上传Logo图片');
+  //   return;
+  // }
 
   bibDialog.loading = true;
   try {

+ 36 - 12
src/views/system/gameEventConfig/index.vue

@@ -41,9 +41,9 @@
           <el-col :span="1.5">
             <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete()" v-hasPermi="['system:gameEventConfig:remove']">删除</el-button>
           </el-col>
-          <!-- <el-col :span="1.5">
+          <el-col :span="1.5">
             <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['system:gameEventConfig:export']">导出</el-button>
-          </el-col> -->
+          </el-col>
           <right-toolbar v-model:showSearch="showSearch" :columns="columns" @queryTable="getList"></right-toolbar>
         </el-row>
       </template>
@@ -84,6 +84,15 @@
     <!-- 添加或修改赛事配置对话框 -->
     <el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
       <el-form ref="gameEventConfigFormRef" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="配置类型" prop="configType">
+          <el-select v-model="form.configType" placeholder="请选择配置类型" clearable>
+            <el-option 
+              v-for="item in gameEventConfigTypeList" 
+              :key="item.typeCode" 
+              :label="item.typeName" 
+              :value="item.typeCode" />
+          </el-select>
+        </el-form-item>
         <el-form-item label="配置键" prop="configKey">
           <el-input v-model="form.configKey" placeholder="请输入配置键" />
         </el-form-item>
@@ -127,14 +136,18 @@
 
 <script setup name="GameEventConfig" lang="ts">
 import { listGameEventConfig, getGameEventConfig, delGameEventConfig, addGameEventConfig, updateGameEventConfig } from '@/api/system/gameEventConfig';
+import { listGameEventConfigType } from '@/api/system/gameEventConfigType';
 import { getDefaultEvent } from '@/api/system/gameEvent';
 import { GameEventConfigVO, GameEventConfigQuery, GameEventConfigForm } from '@/api/system/gameEventConfig/types';
 import { GameEventVO } from '@/api/system/gameEvent/types';
+import { GameEventConfigTypeVO } from '@/api/system/gameEventConfigType/types';
 
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const { game_event_status, game_yes_no } = toRefs<any>(proxy?.useDict('game_event_status', 'game_yes_no'));
 const defaultEvent = ref<GameEventVO | null>(null); // 默认赛事信息
 
+const gameEventConfigTypeList = ref<GameEventConfigTypeVO[]>([]);
+
 const gameEventConfigList = ref<GameEventConfigVO[]>([]);
 const buttonLoading = ref(false);
 const loading = ref(true);
@@ -171,8 +184,8 @@ const initFormData: GameEventConfigForm = {
   configKey: undefined,
   configValue: undefined,
   configDesc: undefined,
-  isEnabled: undefined,
-  status: undefined,
+  isEnabled: '0',
+  status: '0',
   remark: undefined
 }
 const data = reactive<PageData<GameEventConfigForm, GameEventConfigQuery>>({
@@ -183,8 +196,8 @@ const data = reactive<PageData<GameEventConfigForm, GameEventConfigQuery>>({
     eventId: undefined,
     configType: undefined,
     configDesc: undefined,
-    isEnabled: undefined,
-    status: undefined,
+    isEnabled: '0',
+    status: '0',
     params: {},
     orderByColumn: '',
     isAsc: ''
@@ -199,12 +212,12 @@ const data = reactive<PageData<GameEventConfigForm, GameEventConfigQuery>>({
     configDesc: [
       { required: true, message: "配置描述不能为空", trigger: "blur" }
     ],
-    isEnabled: [
-      { required: true, message: "是否启用不能为空", trigger: "change" }
-    ],
-    status: [
-      { required: true, message: "状态不能为空", trigger: "change" }
-    ],
+    // isEnabled: [
+    //   { required: true, message: "是否启用不能为空", trigger: "change" }
+    // ],
+    // status: [
+    //   { required: true, message: "状态不能为空", trigger: "change" }
+    // ],
   },
 });
 
@@ -315,6 +328,16 @@ const handleDelete = async (row?: GameEventConfigVO) => {
   await getList();
 }
 
+/** 获取配置类型列表 */
+const getConfigTypeList = async () => {
+  try {
+    const res = await listGameEventConfigType();
+    gameEventConfigTypeList.value = res.rows;
+  } catch (error) {
+    proxy?.$modal.msgError('获取配置类型列表失败');
+  }
+};
+
 /** 导出按钮操作 */
 const handleExport = () => {
   proxy?.download('system/gameEventConfig/export', {
@@ -326,5 +349,6 @@ onMounted(() => {
   getDefaultEventInfo().then(() => {
     getList();
   });
+  getConfigTypeList();
 });
 </script>

+ 10 - 10
src/views/system/gameEventConfigType/index.vue

@@ -167,8 +167,8 @@ const initFormData: GameEventConfigTypeForm = {
   typeName: undefined,
   typeDesc: undefined,
   sortField: undefined,
-  isEnabled: undefined,
-  status: undefined,
+  isEnabled: '0',
+  status: '0',
   remark: undefined
 }
 const data = reactive<PageData<GameEventConfigTypeForm, GameEventConfigTypeQuery>>({
@@ -181,8 +181,8 @@ const data = reactive<PageData<GameEventConfigTypeForm, GameEventConfigTypeQuery
     typeName: undefined,
     typeDesc: undefined,
     sortField: undefined,
-    isEnabled: undefined,
-    status: undefined,
+    isEnabled: '0',
+    status: '0',
     params: {},
     orderByColumn: '',
     isAsc: ''
@@ -194,12 +194,12 @@ const data = reactive<PageData<GameEventConfigTypeForm, GameEventConfigTypeQuery
     typeName: [
       { required: true, message: "类型名称不能为空", trigger: "blur" }
     ],
-    isEnabled: [
-      { required: true, message: "是否启用不能为空", trigger: "change" }
-    ],
-    status: [
-      { required: true, message: "状态不能为空", trigger: "change" }
-    ],
+    // isEnabled: [
+    //   { required: true, message: "是否启用不能为空", trigger: "change" }
+    // ],
+    // status: [
+    //   { required: true, message: "状态不能为空", trigger: "change" }
+    // ],
   }
 });