修改添加成员相关功能
This commit is contained in:
parent
5f1ac04e0f
commit
6c2a5525d8
@ -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移除家庭组号
|
||||
|
@ -7,7 +7,7 @@
|
||||
<el-input v-model="formData.phone" placeholder="请输入手机号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="密码" prop="password">
|
||||
<el-input v-model="formData.password" placeholder="请输入密码" />
|
||||
<el-input v-model="formData.password" placeholder="请输入密码" show-password />
|
||||
</el-form-item>
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input v-model="formData.name" placeholder="请输入姓名" />
|
||||
@ -18,22 +18,24 @@
|
||||
<el-option label="女" :value="2" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="身份证号" prop="idcard">
|
||||
<el-form-item label="身份证号" prop="idcard">
|
||||
<el-input v-model="formData.idcard" placeholder="请输入身份证号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="机构ID" prop="orgid">
|
||||
<el-input v-model="formData.orgid" placeholder="请输入机构ID" />
|
||||
|
||||
<el-form-item label="家庭组号" prop="familyid" v-if="formType === 'update' && formData.familyid">
|
||||
<el-input v-model="formData.familyid" placeholder="请输入家庭组号" :disabled="formType === 'update'" />
|
||||
</el-form-item>
|
||||
<el-form-item label="机构名称" prop="orgname">
|
||||
<el-input v-model="formData.orgname" placeholder="请输入机构名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="家庭组号" prop="familyid">
|
||||
<el-input v-model="formData.familyid" placeholder="请输入家庭组号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="家庭关系" prop="familyrelation">
|
||||
<el-input v-model="formData.familyrelation" placeholder="请输入家庭关系" />
|
||||
<el-form-item label="家庭关系" prop="familyrelation" v-if="formType === 'update' && formData.familyid">
|
||||
<el-select v-model="formData.familyrelation" placeholder="请选择家庭关系" :disabled="formData.familyrelation === 1">
|
||||
<el-option label="本人(主号)" :value="1" />
|
||||
<el-option label="兄弟" :value="2" />
|
||||
<el-option label="父亲" :value="3" />
|
||||
<el-option label="母亲" :value="4" />
|
||||
<el-option label="子女" :value="5" />
|
||||
<el-option label="其他" :value="6" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="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,
|
||||
|
@ -21,8 +21,8 @@
|
||||
<el-table-column label="手机号码" align="center" prop="mobile" width="180" />
|
||||
<el-table-column label="关系" align="center" prop="relation" width="100">
|
||||
<template #default="scope">
|
||||
<el-tag :type="scope.row.relation === '主号' ? 'primary' : 'success'">
|
||||
{{ scope.row.relation }}
|
||||
<el-tag :type="scope.row.familyrelation === 1 ? 'primary' : 'success'">
|
||||
{{ getFamilyRelation(scope.row.familyrelation) }}
|
||||
</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -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
|
||||
}
|
||||
|
@ -27,6 +27,23 @@
|
||||
<el-table-column label="编号" prop="id" />
|
||||
<el-table-column label="姓名" prop="name" />
|
||||
<el-table-column label="手机号码" prop="mobile" />
|
||||
<el-table-column label="关系" width="150">
|
||||
<template #default="{ row }">
|
||||
<!-- 只有勾选时才显示下拉框,relation 值会自动同步到 selectedMembers 中对应成员对象的 relation 字段 -->
|
||||
<el-select
|
||||
v-if="selectedMembers.some(member => member.id === row.id)"
|
||||
v-model="row.relation"
|
||||
placeholder="请选择关系"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option label="兄弟" :value=2 />
|
||||
<el-option label="父亲" :value=3 />
|
||||
<el-option label="母亲" :value=4 />
|
||||
<el-option label="子女" :value=5 />
|
||||
<el-option label="其他" :value=6 />
|
||||
</el-select>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<!-- 分页控件 -->
|
||||
<div class="pagination-container">
|
||||
@ -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<FamilyMember[]>([])
|
||||
const list = ref<FamilyMember[]>([])
|
||||
const loading = ref(false)
|
||||
@ -121,7 +139,6 @@ const getList = async () => {
|
||||
// 获取家庭关系文本
|
||||
const getFamilyRelation = (relation: number): string => {
|
||||
const relationMap: Record<number, string> = {
|
||||
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 // 默认设置为"其他"
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 取消
|
||||
|
Loading…
Reference in New Issue
Block a user