diff --git a/src/views/martial/deduction/index.vue b/src/views/martial/deduction/index.vue
index 65a0d5c..81122f7 100644
--- a/src/views/martial/deduction/index.vue
+++ b/src/views/martial/deduction/index.vue
@@ -26,7 +26,7 @@
v-for="item in competitionList"
:key="item.id"
:label="item.competitionName"
- :value="item.id"
+ :value="String(item.id)"
/>
@@ -43,7 +43,7 @@
v-for="item in projectList"
:key="item.id"
:label="item.projectName"
- :value="item.id"
+ :value="String(item.id)"
/>
@@ -146,14 +146,14 @@
show-overflow-tooltip
/>
- -{{ row.deductionPoints }}
+ -{{ row.deductionPoint }}
@@ -225,7 +225,7 @@
v-for="item in competitionList"
:key="item.id"
:label="item.competitionName"
- :value="item.id"
+ :value="String(item.id)"
/>
@@ -240,7 +240,7 @@
v-for="item in projectList"
:key="item.id"
:label="item.projectName"
- :value="item.id"
+ :value="String(item.id)"
/>
@@ -251,9 +251,9 @@
maxlength="100"
/>
-
+
@@ -389,6 +389,7 @@ const queryParams = reactive({
size: 10,
competitionId: null,
projectId: null,
+ itemName: '',
})
// 表单数据
@@ -396,7 +397,8 @@ const form = reactive({
id: null,
competitionId: null,
projectId: null,
- deductionPoints: 0.5,
+ itemName: '',
+ deductionPoint: 0.5,
sortOrder: 0,
description: ''
})
@@ -421,7 +423,7 @@ const rules = {
{ required: true, message: '请输入扣分项名称', trigger: 'blur' },
{ min: 2, max: 100, message: '长度在 2 到 100 个字符', trigger: 'blur' }
],
- deductionPoints: [
+ deductionPoint: [
{ required: true, message: '请输入扣分值', trigger: 'blur' }
],
sortOrder: [
@@ -504,10 +506,17 @@ const fetchData = async () => {
loading.value = true
try {
+ // 过滤掉空字符串的参数
+ const params = {}
+ Object.keys(queryParams).forEach(key => {
+ if (queryParams[key] !== '' && queryParams[key] !== null && queryParams[key] !== undefined) {
+ params[key] = queryParams[key]
+ }
+ })
const res = await getDeductionList(
queryParams.current,
queryParams.size,
- queryParams
+ params
)
// 根据axios响应拦截器的处理,数据在 res.data.data 中
const data = res.data?.data || {}
@@ -535,7 +544,7 @@ const handleReset = () => {
size: 10,
competitionId: competitionId,
projectId: null,
- itemName: ''
+ itemName: '',
})
if (competitionId) {
fetchData()
@@ -555,11 +564,22 @@ const handleAdd = () => {
}
// 编辑
-const handleEdit = (row) => {
+const handleEdit = async (row) => {
dialogTitle.value = '编辑扣分项'
Object.keys(form).forEach((key) => {
form[key] = row[key]
})
+ // Convert competitionId to string for el-select matching
+ if (form.competitionId) {
+ form.competitionId = String(form.competitionId)
+ }
+ if (form.projectId) {
+ form.projectId = String(form.projectId)
+ }
+ // Load project list for the competition first
+ if (form.competitionId) {
+ await loadProjectList(form.competitionId)
+ }
dialogVisible.value = true
}
@@ -670,7 +690,7 @@ const resetForm = () => {
competitionId: null,
projectId: null,
itemName: '',
- deductionPoints: 0.5,
+ deductionPoint: 0.5,
sortOrder: 0,
description: ''
})