|
|
|
@ -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(() => { |
|
|
|
|