feige
2025-12-29 d14437e20cbd781725583e15c444da6f58192de8
ruoyi-ui/src/views/bignote/familyeventInfo.vue
@@ -266,6 +266,13 @@
     <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
@@ -295,7 +302,7 @@
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: {},
@@ -306,6 +313,7 @@
      // 成员多选相关
      memberDialogVisible: false, // 弹窗可见性
      familyMembers: [], // 家族成员列表(原始数据)
      anotherFamilyMembers: [], //另外家族成员信息
      selectedMemberIds: [], // 弹窗中临时选中的成员ID(用于多选交互)
      displayMemberNames: [], // 显示用的成员名称数组
      memberSearch: '', // 成员搜索关键词
@@ -384,15 +392,20 @@
        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);
      },
@@ -497,7 +510,7 @@
        item => item !== name  // 过滤掉与关闭名称相同的元素
      )
      console.log(this.selectedMemberNames)
    },
    // 确认选择成员(保存到表单)
    confirmMemberSelection() {
@@ -507,6 +520,10 @@
       // 将弹窗选中的ID同步到表单
      this.memberDialogVisible = false;
      this.$message.info(`已选择 ${this.selectedMemberNames.length} 名家族成员`);
      // 清空对话框里面选择的内容
     // if(this.displayMemberNames.length==0)
        this.displayMemberNames = this.selectedMemberNames
      this.selectedMemberIds = [];
    },
    splitPeopleToSelectedNames(people) {
      // 处理逻辑:
@@ -538,12 +555,14 @@
      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)