From d539b7f289ba8887ccfdc11c06fe154ff5fb8974 Mon Sep 17 00:00:00 2001
From: feige <feige@qq.com>
Date: 星期二, 02 十二月 2025 15:47:59 +0800
Subject: [PATCH] 增加了代码
---
ruoyi-ui/src/views/bignote/index.vue | 259 ++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 241 insertions(+), 18 deletions(-)
diff --git a/ruoyi-ui/src/views/bignote/index.vue b/ruoyi-ui/src/views/bignote/index.vue
index a674317..fe3b5c0 100644
--- a/ruoyi-ui/src/views/bignote/index.vue
+++ b/ruoyi-ui/src/views/bignote/index.vue
@@ -146,14 +146,14 @@
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item :disabled="multiple" icon="el-icon-top" style="height: 32px;width:240px;color: #0099ff;" @click.native="handleShare">鍒嗕韩</el-dropdown-item>
-
+
<el-dropdown-item icon="el-icon-top" @click.native="whoShare">鍒嗕韩缁欐垜鐨勬暟鎹�</el-dropdown-item>
<el-dropdown-item icon="el-icon-top" @click.native="handleWho">鍒嗕韩缁欒皝浜嗕粈涔堟暟鎹�</el-dropdown-item>
<el-dropdown-item icon="el-icon-top" @click.native="showData">灞曠ず涓嬭浇鐨勫垎浜暟鎹�</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
-
+
<right-toolbar :parentValue.sync="valueFromParent" :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@@ -251,11 +251,29 @@
<el-form-item label="澶т簨鏍囬" prop="title">
<el-input v-model="formDat.title" placeholder="璇疯緭鍏ュぇ浜嬫爣棰�" clearable :style="{width: '100%'}" ></el-input>
</el-form-item>
-
- <el-form-item label="浜虹墿" prop="people">
- <el-input v-model="formDat.people" placeholder="璇疯緭鍏ヤ汉鐗�" clearable :style="{width: '100%'}" >
- </el-input>
- </el-form-item>
+ <!-- 瀹舵棌鎴愬憳閫夋嫨瀛楁 -->
+ <el-form-item label="瀹舵棌鎴愬憳" prop="selectedMemberIds">
+ <!-- 宸查�夋垚鍛樺洖鏄惧尯鍩� -->
+ <div v-if="selectedMemberNames.length > 0" class="selected-members">
+ <el-tag
+ v-for="(name, index) in selectedMemberNames"
+ :key="index"
+ closable
+ @close="handleTagClose(index)"
+ >
+ {{ name }}
+ </el-tag>
+ </div>
+ <!-- 瑙﹀彂寮圭獥鎸夐挳 -->
+ <el-button
+ type="primary"
+ icon="el-icon-user-plus"
+ @click="openMemberDialog"
+ :disabled="loading"
+ >
+ 閫夋嫨瀹舵棌鎴愬憳
+ </el-button>
+ </el-form-item>
<el-form-item label="鍦扮偣" prop="address">
<el-input v-model="formDat.address" placeholder="璇疯緭鍏ュ湴鐐�" clearable :style="{width: '100%'}" >
</el-input>
@@ -265,8 +283,8 @@
<el-date-picker v-model="formDat.happenTime" type="date" placeholder="璇烽�夋嫨鏃ユ湡"
@click.native.stop
ref="datePicker"
-
-
+
+
:editable="false" :clearable="false" :style="{width: '100%'}" value-format="yyyy-MM-dd"
></el-date-picker>
</el-form-item>
@@ -394,7 +412,55 @@
</el-dialog>
+ <el-dialog
+ :visible.sync="memberDialogVisible"
+ title="閫夋嫨瀹舵棌鎴愬憳"
+ width="50%"
+ :close-on-click-modal="false"
+ >
+ <!-- 寮圭獥鍐呭鍖� -->
+ <div class="member-dialog-content">
+ <!-- 鎼滅储妗� -->
+ <el-input
+ v-model="memberSearch"
+ placeholder="鎼滅储鎴愬憳濮撳悕..."
+ prefix-icon="el-icon-search"
+ style="margin-bottom: 20px;"
+ ></el-input>
+
+
+ <!-- 鍔犺浇鐘舵�� -->
+ <div v-if="loading" class="loading-container">
+ <el-loading-spinner></el-loading-spinner>
+ <p>鍔犺浇瀹舵棌鎴愬憳涓�...</p>
+ </div>
+
+ <div v-else-if="familyMembers.length === 0" class="no-data">
+ <el-empty description="鏆傛棤瀹舵棌鎴愬憳鏁版嵁"></el-empty>
+ </div>
+<label v-for="item in familyMembers" :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
+
+
+ >
+ 4545
+
+ </el-checkbox>
+ </el-checkbox-group> -->
+
+</div>
+ <!-- 寮圭獥搴曢儴鎸夐挳 -->
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="memberDialogVisible = false">鍙栨秷</el-button>
+ <el-button type="primary" @click="confirmMemberSelection">纭閫夋嫨</el-button>
+ </div>
+ </el-dialog>
<!-- 鍒嗕韩瀵硅瘽妗�1 -->
<el-dialog :title="title1" :visible.sync="open1" width="500px" append-to-body @close="handleClose2">
@@ -516,13 +582,15 @@
<script>
-import { listRole, getRole, delRole, addRole,
+import { listRole, getRole, delRole, addRole,
updateRole, dataScope, changeRoleStatus, deptTreeSelect } from "@/api/system/role";
import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
import { Notification, MessageBox, Message, Loading } from 'element-ui'
import {getAllInfo} from "@/api/system/user"
+import { getFamilyMembers } from '@/api/root'; // 鍋囪鑾峰彇瀹舵棌鎴愬憳鐨凙PI
+
//鍦╯ystem/note/index.js涓鍏ユ帴鍙e嚱鏁� --鎺ュソ浜�
import {listFamilyevent,enload, delFamilyevent , addFamilyevent , uploadPic,
share,shareToWho,getWhoShare,downShareData,deleteShareData,showShareData,showShareUser
@@ -535,6 +603,16 @@
data() {
return {
+
+
+
+
+ // 鎴愬憳澶氶�夌浉鍏�
+ memberDialogVisible: false, // 寮圭獥鍙鎬�
+ familyMembers: [], // 瀹舵棌鎴愬憳鍒楄〃锛堝師濮嬫暟鎹級
+ selectedMemberIds: [], // 寮圭獥涓复鏃堕�変腑鐨勬垚鍛業D锛堢敤浜庡閫変氦浜掞級
+ memberSearch: '', // 鎴愬憳鎼滅储鍏抽敭璇�
+ loading: false, // 鍔犺浇鐘舵��
total1: 0,
// 鍒嗕韩缁欒皝鐨刲ist
listRoot: [],
@@ -613,6 +691,7 @@
uploading: false,
formDat: {
// type: undefined,
+ selectedMemberIds: [],
title: undefined,
location: undefined,
holder: undefined,
@@ -644,6 +723,9 @@
},
// 琛ㄥ崟鏍¢獙
rules: {
+ selectedMemberIds: [
+ { type: 'array', required: true, message: '璇疯嚦灏戦�夋嫨涓�鍚嶅鏃忔垚鍛�', trigger: 'change' }
+ ],
title: [{
required: true,
message: '璇疯緭鍏ュぇ浜嬫爣棰�',
@@ -681,8 +763,29 @@
this.getInfo()
this.getList1();
-
+
+ },
+ computed: {
+ // 宸查�夋垚鍛樺鍚嶏紙鐢ㄤ簬鍥炴樉锛�
+ selectedMemberNames() {
+ return this.familyMembers
+ .filter(member => this.selectedMemberIds.includes(member.userId))
+ .map(member => member.oldName);
+ },
+ // 杩囨护鍚庣殑鎴愬憳鍒楄〃锛堟悳绱㈠姛鑳斤級
+ filteredMembers() {
+ if (!this.memberSearch) return this.familyMembers;
+ console.log(this.familyMembers)
+ console.log("-sdf")
+ const keyword = this.memberSearch.toLowerCase();
+ return this.familyMembers;
+ //.filter(member =>
+ // member.filteredMembers.toLowerCase().includes(keyword)
+ //||
+ // member.role.toLowerCase().includes(keyword)
+ // );
+ }
},
methods: {
handleDialogClick()
@@ -866,10 +969,10 @@
return;
}
console.log(shareList,'sharelistsharelist')
-
-
-
-
+
+
+
+
this.$modal.confirm('鏄惁纭鍒嗕韩锛�').then(function() {
return share(shareList);
}).then(() => {
@@ -903,13 +1006,13 @@
close(){
//alert(234)
-
+
this.open = false
},
// 鍙栨秷鎸夐挳
cancelData() {
-
+
this.open = false;
this.reset();
},
@@ -1017,7 +1120,7 @@
/** 鏌ョ湅璇︾粏淇℃伅 */
handleCheck(row){
const id = row.id;
- this.open2 = false;
+ this.open2 = false;
this.$router.push("/familymodel/bignote/familyeventInfo/" + id);
},
/** 淇敼鎸夐挳鎿嶄綔 */
@@ -1079,6 +1182,10 @@
// }).join(",")
// this.formDat.url = ul+","+uls
// alert(this.formDat.url)
+ //鎶婂悕瀛楄繛鍦ㄤ竴璧�
+ var pel = ""
+ pel = pel + this.selectedMemberNames.join(",")
+ this.formDat.people = pel;
this.$refs["elForm"].validate(valid => {
if (valid) {
@@ -1237,6 +1344,54 @@
Message({ message: "瀵煎叆澶辫触", type: 'error' })
}
+ },
+ // 鎵撳紑鎴愬憳澶氶�夊脊绐�
+ async openMemberDialog() {
+ this.memberDialogVisible = true;
+ this.memberSearch = ''; // 閲嶇疆鎼滅储
+ // 鍒濆鍖栧脊绐楅�変腑鐘舵�侊紙鍥炴樉宸查�夋垚鍛橈級
+ // this.selectedMemberIds = [...this.familyForm.selectedMemberIds];
+ // 鍔犺浇瀹舵棌鎴愬憳鍒楄〃
+ await this.loadFamilyMembers();
+ },
+
+ // 鍔犺浇瀹舵棌鎴愬憳鍒楄〃
+ async loadFamilyMembers() {
+ this.loading = true;
+
+ let clanId = this.$store.state.user.clanId
+ try {
+ const res = await getFamilyMembers(clanId); // 鍋囪闇�瑕佸鏃廔D鍙傛暟
+
+
+ console.log(res)
+ console.log(res.data)
+ this.familyMembers = res.data;
+ // console.log(this.familyMembers.length)
+ // console.log(this.familyMembers.length)
+ // console.log(this.familyMembers[0])
+ // for(let i=0; i < this.familyMembers.length; i++)
+ // console.log(this.familyMembers[i])
+ // console.log("---999")
+ // 鏍煎紡锛歔{ id: 1, name: '寮犱笁', role: '瀹堕暱', relation: '鐖跺瓙', avatar: 'xxx' }, ...]
+ } catch (err) {
+ this.$message.error('鍔犺浇瀹舵棌鎴愬憳澶辫触锛岃閲嶈瘯');
+ } finally {
+ this.loading = false;
+ }
+ },
+
+ // 纭閫夋嫨鎴愬憳锛堜繚瀛樺埌琛ㄥ崟锛�
+ confirmMemberSelection() {
+ this.formDat.selectedMemberIds = [...this.selectedMemberIds]; // 灏嗗脊绐楅�変腑鐨処D鍚屾鍒拌〃鍗�
+ this.memberDialogVisible = false;
+ this.$modal.message(`宸查�夋嫨 ${this.selectedMemberNames.length} 鍚嶅鏃忔垚鍛榒);
+ },
+
+ // 绉婚櫎宸查�夋垚鍛樻爣绛�
+ handleTagClose(index) {
+ const removedId = this.familyForm.selectedMemberIds[index];
+ this.familyForm.selectedMemberIds = this.familyForm.selectedMemberIds.filter(id => id !== removedId);
}
}
@@ -1257,4 +1412,72 @@
.button-container {
display: inline-flex; /* 璁剧疆鎸夐挳瀹瑰櫒涓鸿鍐呭厓绱� */
}
+
+
+/* 宸查�夋垚鍛樻爣绛炬牱寮� */
+.selected-members {
+ margin-bottom: 12px;
+ .el-tag {
+ margin-right: 8px;
+ margin-bottom: 8px;
+ }
+}
+
+/* 澶氶�夊脊绐楁牱寮� */
+.member-dialog-content {
+ max-height: 400px;
+ overflow-y: auto;
+ padding: 0 10px;
+}
+
+/* 鎴愬憳鍒楄〃鏍峰紡 */
+.member-checkbox-group {
+ .el-checkbox {
+ display: block;
+ padding: 12px;
+ border-bottom: 1px solid #f5f5f5;
+ &:last-child {
+ border-bottom: none;
+ }
+ }
+}
+
+/* 鎴愬憳椤规牱寮� */
+.member-item {
+ display: flex;
+ align-items: center;
+ .member-avatar {
+ width: 40px;
+ height: 40px;
+ border-radius: 50%;
+ margin-right: 12px;
+ }
+ .member-info {
+ .member-name {
+ font-weight: 500;
+ margin-bottom: 4px;
+ }
+ .member-role {
+ font-size: 12px;
+ color: #606266;
+ }
+ }
+}
+
+/* 鍔犺浇鐘舵�佹牱寮� */
+.loading-container {
+ text-align: center;
+ padding: 40px 0;
+ .el-loading-spinner {
+ margin-bottom: 16px;
+ }
+}
+.signature-checkbox
+{
+ margin-right: 15px;
+}
+/* 鏃犳暟鎹牱寮� */
+.no-data {
+ padding: 60px 0;
+}
</style>
--
Gitblit v1.9.1