| | |
| | | <input type="checkbox" v-model="searchForm.modules" :value="item.label"> |
| | | <span>{{ item.value }}</span> |
| | | </label> |
| | | |
| | | |
| | | <!-- <el-select |
| | | v-model="searchForm.module" |
| | | placeholder="请选择搜索模块" |
| | |
| | | <input type="checkbox" v-model="selectedMemberIds" :value="item.userId"> |
| | | <span>{{ item.oldName }}</span> |
| | | </label> |
| | | <hr class="divider-line"> |
| | | |
| | | <label v-for="item in anotherFamilyMembers" :key="item.userId" class="signature-checkbox"> |
| | | <input type="checkbox" v-model="selectedMemberIds" :value="item.userId"> |
| | | <span> {{ item.oldName }} </span> |
| | | </label> |
| | | </el-form-item> |
| | | |
| | | <!-- 或者使用多选模式 --> |
| | |
| | | <script> |
| | | // 导入API请求函数(根据实际项目路径调整) |
| | | import { searchPeople, getModules } from '@/api/peopleSearch'; |
| | | import { getFamilyMembers } from '@/api/root'; // 假设获取家族成员的API |
| | | import { getFamilyMembers,listAnotherFamilyInfo } from '@/api/root'; // 假设获取家族成员的API |
| | | |
| | | export default { |
| | | name: 'PeopleSearch', |
| | | data() { |
| | | return { |
| | | names: "", |
| | | displayMemberNames:[], |
| | | selectedModules: [], |
| | | selectedMemberIds:[], |
| | | // ... existing data ... |
| | |
| | | { id: 4, name: '家族成员4' }, |
| | | { id: 5, name: '家族成员5' } |
| | | ], |
| | | anotherFamilyMembers: [], //另外家族成员信息 |
| | | // 搜索表单数据 |
| | | searchForm: { |
| | | modules: [], |
| | | dateRange: [], |
| | | peoples: '', |
| | | hasAttachment: '' |
| | | hasAttachment: '是' |
| | | }, |
| | | // 表单验证规则 |
| | | searchRules: { |
| | |
| | | computed: { |
| | | // 已选成员姓名(用于回显) |
| | | selectedMemberNames() { |
| | | var od = this.familyMembers |
| | | .filter(member => this.selectedMemberIds.includes(member.userId)) |
| | | .map(member => member.oldName); |
| | | |
| | | return od |
| | | // 优先使用直接设置的显示名称 |
| | | if(this.displayMemberNames && this.displayMemberNames.length > 0 && this.selectedMemberIds.length==0) { |
| | | return this.displayMemberNames; |
| | | } |
| | | |
| | | |
| | | // 否则根据选中的ID计算 |
| | | // 合并过滤后的成员名称和displayMemberNames内容 |
| | | console.log(this.selectedMemberIds) |
| | | const filteredNames = this.familyMembers |
| | | .filter(member => this.selectedMemberIds.includes(member.userId)) |
| | | .map(member => member.oldName); |
| | | |
| | | const filterAnotherNames = this.anotherFamilyMembers |
| | | .filter(member => this.selectedMemberIds.includes(member.userId)) |
| | | .map(member => member.oldName); |
| | | |
| | | // 创建一个Set来存储唯一名称,避免重复 |
| | | const uniqueNames = new Set([...filteredNames]); |
| | | filterAnotherNames.forEach(item => uniqueNames.add(item)); |
| | | console.log(uniqueNames) |
| | | // 如果displayMemberNames有内容,也加入Set中 |
| | | if(this.displayMemberNames && this.displayMemberNames.length > 0) { |
| | | this.displayMemberNames.forEach(name => uniqueNames.add(name)); |
| | | } |
| | | else |
| | | this.displayMemberNames = Array.from(uniqueNames) |
| | | // this.selectedMemberIds = [] |
| | | // 转回数组并返回 |
| | | return Array.from(uniqueNames); |
| | | }, |
| | | }, |
| | | methods: { |
| | |
| | | this.loading = true; |
| | | |
| | | let clanId = this.$store.state.user.clanId |
| | | let userId = this.$store.state.user.userId |
| | | try { |
| | | const res = await getFamilyMembers(clanId); // 假设需要家族ID参数 |
| | | |
| | | |
| | | const ano = await listAnotherFamilyInfo(userId) |
| | | this.anotherFamilyMembers = ano.data |
| | | console.log(res) |
| | | console.log(res.data) |
| | | this.familyMembers = res.data; |
| | |
| | | // const response = await getModules(); response.data || |
| | | this.modules = [ |
| | | { label: '事纪', value: '事纪' }, |
| | | { label: '部门管理', value: 'department' }, |
| | | { label: '家产', value: '家产' }, |
| | | { label: '收藏', value: '收藏' }, |
| | | { label: '通讯录', value: '通讯录' }, |
| | | { label: '收支', value: '收支' }, |
| | | { label: '旅游', value: '旅游' }, |
| | | // { label: '角色管理', value: 'role' }, |
| | | // { label: '项目管理', value: 'project' } |
| | | ]; |
| | |
| | | const response = await searchPeople(params); |
| | | console.log(response) |
| | | // 更新搜索结果和分页信息 |
| | | this.searchResult = response.data.data || []; |
| | | this.searchResult = response.data.list || []; |
| | | console.log(this.searchResult) |
| | | this.pagination.total = response.data.total || 0; |
| | | |
| | |
| | | // this.loginForm.familyMemberName = selectedName; |
| | | |
| | | this.familyMemberDialogVisible = false; |
| | | this.$message.info(`已选择 ${this.selectedMemberNames.length} 名家族成员`); |
| | | // 清空对话框里面选择的内容 |
| | | // if(this.displayMemberNames.length==0) |
| | | this.displayMemberNames = this.selectedMemberNames |
| | | this.selectedMemberIds = []; |
| | | |
| | | |
| | | } |