|
|
@@ -7,7 +7,7 @@
|
|
|
</template>
|
|
|
<template v-else>
|
|
|
<el-select
|
|
|
- v-model="form.name"
|
|
|
+ v-model="selectedTeacherId"
|
|
|
filterable
|
|
|
remote
|
|
|
reserve-keyword
|
|
|
@@ -75,6 +75,7 @@ export default defineComponent({
|
|
|
setup(props, { emit }) {
|
|
|
const loading = ref(false);
|
|
|
const teacherOptions = ref<any[]>([]);
|
|
|
+ const selectedTeacherId = ref(''); // 专门用于下拉框选择的字段
|
|
|
|
|
|
// 根据类型获取对话框标题
|
|
|
const getDialogTitle = () => {
|
|
|
@@ -142,7 +143,7 @@ export default defineComponent({
|
|
|
teacherOptions.value = res.data.map((item: any) => {
|
|
|
return {
|
|
|
value: item.value,
|
|
|
- label: item.label,
|
|
|
+ label: item.username ? `${item.label}(${item.username})` : item.label,
|
|
|
username: item.username,
|
|
|
nickName: item.label,
|
|
|
userId: item.value, // 直接使用API返回的value作为userId
|
|
|
@@ -171,11 +172,28 @@ export default defineComponent({
|
|
|
// 确保性别值为数字类型
|
|
|
form.sex = Number(form.sex);
|
|
|
}
|
|
|
+ // 在编辑模式下,设置选中的教师ID
|
|
|
+ if (props.mode === 'edit' && newVal.userId) {
|
|
|
+ selectedTeacherId.value = newVal.userId;
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
{ deep: true, immediate: true }
|
|
|
);
|
|
|
|
|
|
+ // 监听选择的教师ID变化
|
|
|
+ watch(selectedTeacherId, (newVal) => {
|
|
|
+ if (!newVal) {
|
|
|
+ // 清空选择时重置相关字段
|
|
|
+ form.userId = null;
|
|
|
+ form.name = '';
|
|
|
+ form.nickName = '';
|
|
|
+ form.phone = '';
|
|
|
+ form.sex = 0;
|
|
|
+ form.remark = '';
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
// 选择教师后处理逻辑
|
|
|
const handleTeacherSelect = (value: any) => {
|
|
|
const selectedTeacher = teacherOptions.value.find((item) => item.value === value);
|
|
|
@@ -186,7 +204,7 @@ export default defineComponent({
|
|
|
// 确保性别值为数字类型
|
|
|
form.sex = selectedTeacher.sex !== undefined ? Number(selectedTeacher.sex) : 0;
|
|
|
form.nickName = selectedTeacher.nickName;
|
|
|
- form.name = selectedTeacher.label;
|
|
|
+ form.name = selectedTeacher.nickName; // 存储纯粹的姓名
|
|
|
// form.id = selectedTeacher.userId;
|
|
|
form.remark = '';
|
|
|
console.log('选中教师信息:', selectedTeacher, '转换后性别值:', form.sex);
|
|
|
@@ -218,7 +236,7 @@ export default defineComponent({
|
|
|
teacherOptions.value = res.data.map((item: any) => {
|
|
|
return {
|
|
|
value: item.value,
|
|
|
- label: item.label,
|
|
|
+ label: item.username ? `${item.label}(${item.username})` : item.label,
|
|
|
username: item.username,
|
|
|
userId: item.value,
|
|
|
nickName: item.label,
|
|
|
@@ -258,7 +276,7 @@ export default defineComponent({
|
|
|
teacherOptions.value = res.data.map((item: any) => {
|
|
|
return {
|
|
|
value: item.value,
|
|
|
- label: item.label,
|
|
|
+ label: item.username ? `${item.label}(${item.username})` : item.label,
|
|
|
username: item.username,
|
|
|
userId: item.value,
|
|
|
nickName: item.label,
|
|
|
@@ -337,6 +355,7 @@ export default defineComponent({
|
|
|
formRef,
|
|
|
loading,
|
|
|
teacherOptions,
|
|
|
+ selectedTeacherId,
|
|
|
rules,
|
|
|
getDialogTitle,
|
|
|
queryTeachers,
|