Răsfoiți Sursa

refactor(system): 优化运动员参与项目的数据处理
string --> number
- 将 projectValue 字段改为 projectList,以适应新的数据结构
- 添加计算属性 projectListStr,用于在字符串和数字数组之间转换
- 更新表单数据的处理逻辑,支持新的项目列表格式

zhou 1 lună în urmă
părinte
comite
924c467e5a
1 a modificat fișierele cu 13 adăugiri și 3 ștergeri
  1. 13 3
      src/views/system/gameAthlete/index.vue

+ 13 - 3
src/views/system/gameAthlete/index.vue

@@ -121,9 +121,9 @@
         <el-form-item label="年龄" prop="age">
           <el-input v-model="form.age" placeholder="请输入年龄" />
         </el-form-item>
-        <el-form-item label="参与项目" prop="projectValue">
+        <el-form-item label="参与项目" prop="projectList">
           <el-transfer
-            v-model="form.selectedProjects"
+            v-model="projectListStr"
             :data="gameEventProjectList"
             :titles="['可选项目', '已选项目']"
             :button-texts="['移除', '添加']"
@@ -432,7 +432,9 @@ const handleUpdate = async (row?: GameAthleteVO) => {
   Object.assign(form.value, res.data);
 
   // 处理项目列表,将逗号分隔的字符串转换为数组
-  if (res.data.projectValue) {
+  if (res.data.projectList) {
+    form.value.selectedProjects = res.data.projectList;
+  } else if (res.data.projectValue) {
     form.value.selectedProjects = res.data.projectValue.split(',').map(Number);
   } else {
     form.value.selectedProjects = [];
@@ -448,6 +450,14 @@ const handleUpdate = async (row?: GameAthleteVO) => {
   // });
 };
 
+// 添加一个计算属性用于处理projectList2的类型转换
+const projectListStr = computed({
+  get: () => form.value.selectedProjects.map(id => String(id)),
+  set: (value) => {
+    form.value.selectedProjects = value.map(id => Number(id));
+  }
+});
+
 /** 提交按钮 */
 const submitForm = () => {
   gameAthleteFormRef.value?.validate(async (valid: boolean) => {