feige
20 小时以前 d14437e20cbd781725583e15c444da6f58192de8
增加了代码
5个文件已修改
220 ■■■■ 已修改文件
ruoyi-ui/src/api/root/index.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/store/modules/user.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/bignote/familyeventInfo.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/bignote/index.vue 114 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/views/peopleSearch/index.vue 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-ui/src/api/root/index.js
@@ -63,3 +63,10 @@
    method: 'get',
  })
}
export function listAnotherFamilyInfo(userId)
{
  return request({
    url:'/self/user/getAnotherFamInfo/'+userId,
    method: 'get'
  })
}
ruoyi-ui/src/store/modules/user.js
@@ -74,12 +74,14 @@
          if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
            commit('SET_ROLES', res.roles)
            commit('SET_PERMISSIONS', res.permissions)
          } else {
            commit('SET_ROLES', ['ROLE_DEFAULT'])
          }
         // console.log(res)
          console.log(res.user)
         // alert(res.user.uaid)
   //    alert(123)
         // alert(res.user.clanId)
          commit('SET_USERID', res.user.userId)
              commit('SET_CLANID', res.user.clanId)
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)
ruoyi-ui/src/views/bignote/index.vue
@@ -455,6 +455,14 @@
     <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
@@ -601,10 +609,10 @@
import { Notification, MessageBox, Message, Loading } from 'element-ui'
import {getAllInfo} from "@/api/system/user"
import { getFamilyMembers } from '@/api/root'; // 假设获取家族成员的API
import { getFamilyMembers,listAnotherFamilyInfo } from '@/api/root'; // 假设获取家族成员的API
//在system/note/index.js中导入接口函数  --接好了
import {listFamilyevent,enload, delFamilyevent  , addFamilyevent , uploadPic,
import {listFamilyevent, enload, delFamilyevent  , addFamilyevent , uploadPic,
        share,shareToWho,getWhoShare,downShareData,deleteShareData,showShareData,showShareUser
        } from "@/api/bignote/index";
import {listUserAll} from "@/api/root/index";
@@ -622,6 +630,7 @@
      // 成员多选相关
      memberDialogVisible: false, // 弹窗可见性
      familyMembers: [], // 家族成员列表(原始数据)
      anotherFamilyMembers: [], //另外家族成员信息
      selectedMemberIds: [], // 弹窗中临时选中的成员ID(用于多选交互)
      memberSearch: '', // 成员搜索关键词
      loading: false, // 加载状态
@@ -676,7 +685,8 @@
      total: 0,
      // 家大事记表格数据
      familyList: [],
    selectedMemberIds:[],
      displayMemberNames: [], // 显示用的成员名称数组
      // 弹出层标题
      title: "",
@@ -781,9 +791,38 @@
  computed: {
    // 已选成员姓名(用于回显)
    selectedMemberNames() {
      return this.familyMembers
      // 优先使用直接设置的显示名称
      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);
    },
    // 过滤后的成员列表(搜索功能)
    filteredMembers() {
@@ -1004,6 +1043,8 @@
    getInfo(){
      console.log('-----------------')
      getInfo().then(response=>{
        console.log(response.user)
      //  alert(123)
        console.log(response.user.roles[0].roleId,'roleID')
        this.userId = response.user.roles[0].roleId
      })
@@ -1183,6 +1224,23 @@
      this.dialogImageUrl = file.url;
      this.dialogVisible = true;
    },
    handleTagClose(index, name) {
      // 从 selectedMemberNames 数组中移除当前关闭的标签名称
    //  const index = this.selectedMemberNames.findIndex(item=== name);
    selectedMemberIds: this.selectedMemberIds.filter(
        item => item!== index  // 过滤掉与关闭名称相同的元素
      )
      this.$forceUpdate();
      console.log(this.selectedMemberIds)
      this.selectedMemberNames.splice(index, 1);
      this.$forceUpdate();
    selectedMemberNames: this.selectedMemberNames.filter(
        item => item !== name  // 过滤掉与关闭名称相同的元素
      )
      this.displayMemberNames = this.selectedMemberNames
      console.log(this.selectedMemberNames)
    },
    /** 提交按钮(数据权限) */
    submitDataScope: function() {
@@ -1216,6 +1274,8 @@
              this.handleRemoveFile(this.fileListOther[0]);
            }
            this.getList();
            this.selectedMemberNames = [];
            this.displayMemberNames = []
          });
        }
      });
@@ -1372,12 +1432,15 @@
      this.loading = true;
      let clanId = this.$store.state.user.clanId
      let userId = this.$store.state.user.userId
     // alert(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.length)
      //  console.log(this.familyMembers.length)
@@ -1395,16 +1458,32 @@
    // 确认选择成员(保存到表单)
    confirmMemberSelection() {
      console.log()
      this.formDat.selectedMemberIds = [...this.selectedMemberIds]; // 将弹窗选中的ID同步到表单
      this.memberDialogVisible = false;
      this.$modal.message(`已选择 ${this.selectedMemberNames.length} 名家族成员`);
      this.$message.info(`已选择 ${this.selectedMemberNames.length} 名家族成员`);
      // 清空对话框里面选择的内容
     // if(this.displayMemberNames.length==0)
        this.displayMemberNames = this.selectedMemberNames
      this.selectedMemberIds = [];
    },
     handleTagClose(index, name) {
      // 从 selectedMemberNames 数组中移除当前关闭的标签名称
    //  const index = this.selectedMemberNames.findIndex(item=== name);
    selectedMemberIds: this.selectedMemberIds.filter(
        item => item!== index  // 过滤掉与关闭名称相同的元素
      )
      this.$forceUpdate();
      console.log(this.selectedMemberIds)
      this.selectedMemberNames.splice(index, 1);
      this.$forceUpdate();
    selectedMemberNames: this.selectedMemberNames.filter(
        item => item !== name  // 过滤掉与关闭名称相同的元素
      )
      console.log(this.selectedMemberNames)
    // 移除已选成员标签
    handleTagClose(index) {
      const removedId = this.familyForm.selectedMemberIds[index];
      this.familyForm.selectedMemberIds = this.familyForm.selectedMemberIds.filter(id => id !== removedId);
    }
    },
      //
  }
};
@@ -1483,10 +1562,19 @@
  .el-loading-spinner {
    margin-bottom: 16px;
  }
}
.signature-checkbox
}.signature-checkbox
{
  margin-right: 15px;
  display: inline-block;
  margin-bottom: 8px;
  cursor: pointer;
}
.signature-checkbox input[type="checkbox"] {
  margin-right: 6px;
}
.signature-checkbox span {
  cursor: pointer;
}
/* 无数据样式 */
.no-data {
ruoyi-ui/src/views/peopleSearch/index.vue
@@ -22,6 +22,8 @@
             <input type="checkbox" v-model="searchForm.modules" :value="item.label">
                                         <span>{{ item.value }}</span>
                          </label>
            <!-- <el-select
              v-model="searchForm.module"
              placeholder="请选择搜索模块"
@@ -187,6 +189,12 @@
             <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>
      <!-- 或者使用多选模式 -->
@@ -213,13 +221,14 @@
  <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 ...
@@ -241,12 +250,13 @@
        { id: 4, name: '家族成员4' },
        { id: 5, name: '家族成员5' }
      ],
          anotherFamilyMembers: [], //另外家族成员信息
        // 搜索表单数据
        searchForm: {
          modules: [],
          dateRange: [],
          peoples: '',
          hasAttachment: ''
          hasAttachment: '是'
        },
        // 表单验证规则
        searchRules: {
@@ -281,11 +291,37 @@
    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: {
@@ -294,10 +330,11 @@
        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;
@@ -320,7 +357,11 @@
         // 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' }
          ];
@@ -476,6 +517,11 @@
          // this.loginForm.familyMemberName = selectedName;
          this.familyMemberDialogVisible = false;
          this.$message.info(`已选择 ${this.selectedMemberNames.length} 名家族成员`);
           // 清空对话框里面选择的内容
          // if(this.displayMemberNames.length==0)
             this.displayMemberNames = this.selectedMemberNames
           this.selectedMemberIds = [];
    }