From d14437e20cbd781725583e15c444da6f58192de8 Mon Sep 17 00:00:00 2001
From: feige <feige@qq.com>
Date: 星期一, 29 十二月 2025 15:03:27 +0800
Subject: [PATCH] 增加了代码

---
 ruoyi-ui/src/store/modules/user.js             |    8 +
 ruoyi-ui/src/views/bignote/index.vue           |  114 +++++++++++++++++++++++++---
 ruoyi-ui/src/views/bignote/familyeventInfo.vue |   27 +++++-
 ruoyi-ui/src/views/peopleSearch/index.vue      |   64 +++++++++++++--
 ruoyi-ui/src/api/root/index.js                 |    7 +
 5 files changed, 191 insertions(+), 29 deletions(-)

diff --git a/ruoyi-ui/src/api/root/index.js b/ruoyi-ui/src/api/root/index.js
index 78eb57c..1b1c89a 100644
--- a/ruoyi-ui/src/api/root/index.js
+++ b/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'
+  })
+}
\ No newline at end of file
diff --git a/ruoyi-ui/src/store/modules/user.js b/ruoyi-ui/src/store/modules/user.js
index ad92ec3..86f1bcd 100644
--- a/ruoyi-ui/src/store/modules/user.js
+++ b/ruoyi-ui/src/store/modules/user.js
@@ -74,12 +74,14 @@
           if (res.roles && res.roles.length > 0) { // 楠岃瘉杩斿洖鐨剅oles鏄惁鏄竴涓潪绌烘暟缁�
             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)
diff --git a/ruoyi-ui/src/views/bignote/familyeventInfo.vue b/ruoyi-ui/src/views/bignote/familyeventInfo.vue
index 7544778..09a767a 100644
--- a/ruoyi-ui/src/views/bignote/familyeventInfo.vue
+++ b/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'; // 鍋囪鑾峰彇瀹舵棌鎴愬憳鐨凙PI
+import { getFamilyMembers ,listAnotherFamilyInfo} from '@/api/root'; // 鍋囪鑾峰彇瀹舵棌鎴愬憳鐨凙PI
 
 export default {
   components: {},
@@ -306,6 +313,7 @@
       // 鎴愬憳澶氶�夌浉鍏�
       memberDialogVisible: false, // 寮圭獥鍙鎬�
       familyMembers: [], // 瀹舵棌鎴愬憳鍒楄〃锛堝師濮嬫暟鎹級
+      anotherFamilyMembers: [], //鍙﹀瀹舵棌鎴愬憳淇℃伅
       selectedMemberIds: [], // 寮圭獥涓复鏃堕�変腑鐨勬垚鍛業D锛堢敤浜庡閫変氦浜掞級
       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);
 
         // 鍒涘缓涓�涓猄et鏉ュ瓨鍌ㄥ敮涓�鍚嶇О锛岄伩鍏嶉噸澶�
         const uniqueNames = new Set([...filteredNames]);
+filterAnotherNames.forEach(item => uniqueNames.add(item));
 
         // 濡傛灉displayMemberNames鏈夊唴瀹癸紝涔熷姞鍏et涓�
         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 @@
        // 灏嗗脊绐楅�変腑鐨処D鍚屾鍒拌〃鍗�
       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); // 鍋囪闇�瑕佸鏃廔D鍙傛暟
-
+  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)
diff --git a/ruoyi-ui/src/views/bignote/index.vue b/ruoyi-ui/src/views/bignote/index.vue
index 2d7fd5c..e6849d4 100644
--- a/ruoyi-ui/src/views/bignote/index.vue
+++ b/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'; // 鍋囪鑾峰彇瀹舵棌鎴愬憳鐨凙PI
+import { getFamilyMembers,listAnotherFamilyInfo } from '@/api/root'; // 鍋囪鑾峰彇瀹舵棌鎴愬憳鐨凙PI
 
 //鍦╯ystem/note/index.js涓鍏ユ帴鍙e嚱鏁�  --鎺ュソ浜�
-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: [], // 寮圭獥涓复鏃堕�変腑鐨勬垚鍛業D锛堢敤浜庡閫変氦浜掞級
       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;
+      }
+
+    
+      // 鍚﹀垯鏍规嵁閫変腑鐨処D璁$畻
+        // 鍚堝苟杩囨护鍚庣殑鎴愬憳鍚嶇О鍜宒isplayMemberNames鍐呭
+        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);
+
+        // 鍒涘缓涓�涓猄et鏉ュ瓨鍌ㄥ敮涓�鍚嶇О锛岄伩鍏嶉噸澶�
+        const uniqueNames = new Set([...filteredNames]);
+filterAnotherNames.forEach(item => uniqueNames.add(item));
+console.log(uniqueNames)
+        // 濡傛灉displayMemberNames鏈夊唴瀹癸紝涔熷姞鍏et涓�
+        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); // 鍋囪闇�瑕佸鏃廔D鍙傛暟
-
+        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]; // 灏嗗脊绐楅�変腑鐨処D鍚屾鍒拌〃鍗�
       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 {
diff --git a/ruoyi-ui/src/views/peopleSearch/index.vue b/ruoyi-ui/src/views/peopleSearch/index.vue
index 9eddba8..7638734 100644
--- a/ruoyi-ui/src/views/peopleSearch/index.vue
+++ b/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'; // 鍋囪鑾峰彇瀹舵棌鎴愬憳鐨凙PI
+import { getFamilyMembers,listAnotherFamilyInfo } from '@/api/root'; // 鍋囪鑾峰彇瀹舵棌鎴愬憳鐨凙PI
 
   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;
+            }
+
+
+            // 鍚﹀垯鏍规嵁閫変腑鐨処D璁$畻
+              // 鍚堝苟杩囨护鍚庣殑鎴愬憳鍚嶇О鍜宒isplayMemberNames鍐呭
+              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);
+
+              // 鍒涘缓涓�涓猄et鏉ュ瓨鍌ㄥ敮涓�鍚嶇О锛岄伩鍏嶉噸澶�
+              const uniqueNames = new Set([...filteredNames]);
+      filterAnotherNames.forEach(item => uniqueNames.add(item));
+      console.log(uniqueNames)
+              // 濡傛灉displayMemberNames鏈夊唴瀹癸紝涔熷姞鍏et涓�
+              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); // 鍋囪闇�瑕佸鏃廔D鍙傛暟
-
-
+     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 = [];
 
 
     }

--
Gitblit v1.9.1