| | |
| | | <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-checkbox-group> |
| | | <el-checkbox |
| | |
| | | import errorCode from "@/utils/errorCode"; |
| | | import {Message} from "element-ui"; |
| | | import { getFamilyeventInfo, updateFamilyevent, uploadPic, download} from "@/api/bignote/index"; |
| | | import { getFamilyMembers } from '@/api/root'; // 假设获取家族成员的API |
| | | import { getFamilyMembers ,listAnotherFamilyInfo} from '@/api/root'; // 假设获取家族成员的API |
| | | |
| | | export default { |
| | | components: {}, |
| | |
| | | // 成员多选相关 |
| | | memberDialogVisible: false, // 弹窗可见性 |
| | | familyMembers: [], // 家族成员列表(原始数据) |
| | | anotherFamilyMembers: [], //另外家族成员信息 |
| | | selectedMemberIds: [], // 弹窗中临时选中的成员ID(用于多选交互) |
| | | displayMemberNames: [], // 显示用的成员名称数组 |
| | | memberSearch: '', // 成员搜索关键词 |
| | |
| | | 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)); |
| | | |
| | | // 如果displayMemberNames有内容,也加入Set中 |
| | | if(this.displayMemberNames && this.displayMemberNames.length > 0) { |
| | | this.displayMemberNames.forEach(name => uniqueNames.add(name)); |
| | | } |
| | | |
| | | else |
| | | this.displayMemberNames = Array.from(uniqueNames) |
| | | // 转回数组并返回 |
| | | return Array.from(uniqueNames); |
| | | }, |
| | |
| | | item => item !== name // 过滤掉与关闭名称相同的元素 |
| | | ) |
| | | console.log(this.selectedMemberNames) |
| | | |
| | | |
| | | }, |
| | | // 确认选择成员(保存到表单) |
| | | confirmMemberSelection() { |
| | |
| | | // 将弹窗选中的ID同步到表单 |
| | | this.memberDialogVisible = false; |
| | | this.$message.info(`已选择 ${this.selectedMemberNames.length} 名家族成员`); |
| | | // 清空对话框里面选择的内容 |
| | | // if(this.displayMemberNames.length==0) |
| | | this.displayMemberNames = this.selectedMemberNames |
| | | this.selectedMemberIds = []; |
| | | }, |
| | | splitPeopleToSelectedNames(people) { |
| | | // 处理逻辑: |
| | |
| | | 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) |
| | | |
| | | console.log(res) |
| | | console.log(res.data) |
| | | this.anotherFamilyMembers = ano.data; |
| | | this.familyMembers = res.data; |
| | | console.log(this.familyMembers) |
| | | console.log(this.familyMembers.length) |