diff --git a/src/api/person/index.ts b/src/api/person/index.ts index 0d0bc1a3..f87537ee 100644 --- a/src/api/person/index.ts +++ b/src/api/person/index.ts @@ -52,8 +52,8 @@ export const PersonApi = { }, // 根据用户ID更新家庭组号 - addMembers: async (id: number, familyid: string) => { - return await request.put({ url: `/system/person/add-members?id=` + id + `&familyid=` + familyid }) + addMembers: async (id: number, familyid: string,familyrelation:number) => { + return await request.put({ url: `/system/person/add-members?id=` + id + `&familyid=` + familyid + `&familyrelation=` + familyrelation }) }, // 根据用户ID移除家庭组号 diff --git a/src/views/person/PersonFrom.vue b/src/views/person/PersonFrom.vue index 3006cf80..c22460bd 100644 --- a/src/views/person/PersonFrom.vue +++ b/src/views/person/PersonFrom.vue @@ -7,7 +7,7 @@ - + @@ -18,22 +18,24 @@ - + - - + + + - - - - - - - - + + + + + + + + + @@ -85,7 +87,7 @@ const formType = ref('') // 表单的类型:create - 新增;update - 修改 const formData = ref({ id: undefined, phone: undefined, - password: undefined, + password: undefined as string | undefined, name: undefined, address: '', gender: undefined, @@ -229,7 +231,7 @@ const resetForm = () => { formData.value = { id: undefined, phone: undefined, - password: undefined, + password: formType.value === 'create' ? '123456' : undefined, name: undefined, address: '', gender: undefined, diff --git a/src/views/person/Personmember.vue b/src/views/person/Personmember.vue index 280ab8d9..c3225987 100644 --- a/src/views/person/Personmember.vue +++ b/src/views/person/Personmember.vue @@ -21,8 +21,8 @@ @@ -69,7 +69,7 @@ interface FamilyMember { mobile: string age: number gender: string - relation: string + relation: number address: string createTime: string familyid: string @@ -133,11 +133,16 @@ const handleAddMembers = async (members: FamilyMember[]) => { loading.value = true // 调用后端API更新选中成员的家庭组号 for (const member of members) { - await PersonApi.addMembers(member.id, currentMember.value.familyid) + await PersonApi.addMembers(member.id, currentMember.value.familyid,member.relation) } // 更新本地列表 - memberList.value.push(...members) + // 更新本地列表,确保 familyrelation 字段正确设置 + const newMembers = members.map(member => ({ + ...member, + familyrelation: member.relation // 使用 relation 作为 familyrelation + })) + memberList.value.push(...newMembers) } finally { loading.value = false } diff --git a/src/views/person/memberdrawer.vue b/src/views/person/memberdrawer.vue index 9204ed2f..d6a3870f 100644 --- a/src/views/person/memberdrawer.vue +++ b/src/views/person/memberdrawer.vue @@ -27,6 +27,23 @@ + + +
@@ -63,7 +80,7 @@ interface FamilyMember { mobile: string age: number gender: string - relation: string + relation: number address: string createTime: string } @@ -78,6 +95,7 @@ const emit = defineEmits<{ }>() const visible = ref(props.modelValue) +// 选中的成员数组,relation 字段即为下拉框选择的关系值 const selectedMembers = ref([]) const list = ref([]) const loading = ref(false) @@ -121,7 +139,6 @@ const getList = async () => { // 获取家庭关系文本 const getFamilyRelation = (relation: number): string => { const relationMap: Record = { - 1: '本人', 2: '兄弟', 3: '父亲', 4: '母亲', @@ -173,6 +190,12 @@ watch(visible, (val) => { // 处理选择变化 const handleSelectionChange = (selection: FamilyMember[]) => { selectedMembers.value = selection + // 确保每个选中的成员都有 relation 属性,relation 值即为下拉框选择的关系 + selection.forEach(member => { + if (!member.relation) { + member.relation = 6 // 默认设置为"其他" + } + }) } // 取消