Explorar el Código

fix(score/event): 完善表单回显和下拉搜索功能

1. 为三个下拉选择框添加filterable属性支持搜索
2. 修复编辑时的关联字段回显逻辑,补充level2/3/4和团队、通道的联动处理
3. 提交表单时自动补全关联字段的名称信息
huoyi@samsundot.com hace 4 semanas
padre
commit
a63464da0e
Se han modificado 1 ficheros con 33 adiciones y 8 borrados
  1. 33 8
      src/views/score/event/index.vue

+ 33 - 8
src/views/score/event/index.vue

@@ -173,7 +173,7 @@
173 173
           </el-col>
174 174
           <el-col :span="12">
175 175
             <el-form-item label="队室/班组">
176
-              <el-select v-model="form.teamId" placeholder="请选择队室/班组" style="width:100%" clearable
176
+              <el-select v-model="form.teamId" placeholder="请选择队室/班组" style="width:100%" clearable filterable
177 177
                 :disabled="form.org < 2" @change="handleTeamChange">
178 178
                 <el-option v-for="t in teamOptions" :key="t.id" :label="t.label" :value="t.id" />
179 179
               </el-select>
@@ -181,7 +181,7 @@
181 181
           </el-col>
182 182
           <el-col :span="12">
183 183
             <el-form-item label="通道/小组">
184
-              <el-select v-model="form.groupId" placeholder="请选择通道/小组" style="width:100%" clearable
184
+              <el-select v-model="form.groupId" placeholder="请选择通道/小组" style="width:100%" clearable filterable
185 185
                 :disabled="form.org < 3" @change="handleGroupChange">
186 186
                 <el-option v-for="g in groupOptions" :key="g.id" :label="g.label" :value="g.id" />
187 187
               </el-select>
@@ -189,7 +189,7 @@
189 189
           </el-col>
190 190
           <el-col :span="12">
191 191
             <el-form-item label="责任人">
192
-              <el-select v-model="form.personId" placeholder="请选择责任人" style="width:100%" clearable
192
+              <el-select v-model="form.personId" placeholder="请选择责任人" style="width:100%" clearable filterable
193 193
                 :disabled="form.org < 4">
194 194
                 <el-option v-for="p in personOptions" :key="p.userId" :label="p.nickName" :value="p.userId" />
195 195
               </el-select>
@@ -340,13 +340,19 @@ function resetForm() {
340 340
 }
341 341
 
342 342
 function handleAdd() { resetForm(); dialogTitle.value = '新增配分事项'; dialogVisible.value = true }
343
-function handleUpdate(row) {
343
+ function handleUpdate(row) {
344 344
   resetForm()
345 345
   const record = row?.id ? row : list.value.find(r => r.id === ids.value[0])
346 346
   if (record) {
347 347
     Object.assign(form, record)
348
-    if (record.dimensionId) onDimensionChange(record.dimensionId, true)
349
-    if (record.deptId) handleDeptChange(record.deptId, true)
348
+    if (record.dimensionId)  onDimensionChange(record.dimensionId, true)
349
+    if (record.level2Id)  onLevel2Change(record.level2Id, true)
350
+    if (record.level3Id)  onLevel3Change(record.level3Id, true)
351
+    if (record.level4Id)  onLevel4Change(record.level4Id, true)
352
+    if (record.deptId)  handleDeptChange(record.deptId, true)
353
+    if (record.teamId)  handleTeamChange(record.teamId, true)
354
+    if (record.groupId)  handleGroupChange(record.groupId, true)
355
+   
350 356
   }
351 357
   dialogTitle.value = '修改配分事项'; dialogVisible.value = true
352 358
 }
@@ -397,8 +403,27 @@ function onLevel4Change(val) {
397 403
 
398 404
 async function submitForm() {
399 405
   await formRef.value.validate()
400
-  if (form.id) { await updateScoreEvent(form); ElMessage.success('修改成功') }
401
-  else { await addScoreEvent(form); ElMessage.success('新增成功') }
406
+  let copyForm = { ...form }
407
+
408
+  if (copyForm.personId) {
409
+    const p = personOptions.value.find(p => p.userId === copyForm.personId)
410
+    if (p) copyForm.personName = p.nickName
411
+  }
412
+  if (copyForm.deptId) {
413
+    const d = deptOptions.value.find(d => d.deptId === copyForm.deptId)
414
+    if (d) copyForm.deptName = d.deptName
415
+  }
416
+  if (copyForm.teamId) {
417
+    const t = teamOptions.value.find(t => t.id === copyForm.teamId)
418
+    if (t) copyForm.teamName = t.label
419
+  }
420
+  if (copyForm.groupId) {
421
+    const g = groupOptions.value.find(g => g.id === copyForm.groupId)
422
+    if (g) copyForm.groupName = g.label
423
+  }
424
+
425
+  if (form.id) { await updateScoreEvent(copyForm); ElMessage.success('修改成功') }
426
+  else { await addScoreEvent(copyForm); ElMessage.success('新增成功') }
402 427
   dialogVisible.value = false; getList()
403 428
 }
404 429