校验队长的唯一性

GST002_H5
Ly 2 months ago
parent b0c0b2a9db
commit 642f0eaae5
  1. 63
      src/views/registrationGroup/components/stuList.vue

@ -34,19 +34,17 @@
<span style="margin-left: 10px">是否队长</span>
</template>
<template #default="{ row }">
<el-cascader
:modelValue="row.captain"
@update:modelValue="(arr: any[]) => {row.captain = arr[0];console.log(arr);
<el-select v-model="row.captain" @update:modelValue="(arr: any[]) => {row.captain = arr[0];console.log(arr);
}"
:options="options"
:disabled="isDisable"
/>
<!-- <el-cascader
:modelValue="row.captain"
@update:modelValue="checkUniqueness(row)"
:options="options"
:disabled="isDisable"
/> -->
@change="()=>checkUniqueness(row)"
:options="options">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</template>
</el-table-column>
<el-table-column>
@ -123,28 +121,27 @@ const options = [
label: '否',
},
]
//
// const checkUniqueness = async(row:any) => {
// const currentCaptain = row.captain;
// const isUnique = tableData.every ((r) => {
// // console.log(tableData,'table');
// console.log(row.captain,'row');
// console.log(r.captain,'r.captain');
// return r.captain !== currentCaptain || r.userId == row.userId; //
// });
// if (!isUnique) {
// ElMessage({
// message: '!',
// type: 'error',
// })
// // row.captain = '1';
// }
// };
const checkUniqueness = (row:any) => {
// console.log(row);
//tableData
const count = tableData.filter(item => item.captain === '1').length
// console.log(count,'count');
//
if(count === 2){
//
ElMessage({
message: '已有队长人选!',
type: 'error',
})
row.captain = '0';
}else if(count === 0){
ElMessage({
message: '请选择队长人选!',
type: 'error',
})
}
}
//
const tableData = reactive<any[]>([])
onMounted(() => {

Loading…
Cancel
Save