| | |
| | | people: undefined, |
| | | address: undefined, |
| | | remark: undefined, |
| | | |
| | | url: "", |
| | | }, |
| | | ID: undefined, |
| | |
| | | selectedMemberNames() { |
| | | // alert(this.familyMembers.length) |
| | | // 优先使用直接设置的显示名称 |
| | | if(this.displayMemberNames && this.displayMemberNames.length > 0) { |
| | | if(this.displayMemberNames && this.displayMemberNames.length > 0 && this.selectedMemberIds.length==0) { |
| | | return this.displayMemberNames; |
| | | } |
| | | |
| | | // 否则根据选中的ID计算 |
| | | return this.familyMembers |
| | | // 合并过滤后的成员名称和displayMemberNames内容 |
| | | const filteredNames = this.familyMembers |
| | | .filter(member => this.selectedMemberIds.includes(member.userId)) |
| | | .map(member => member.oldName); |
| | | |
| | | // 创建一个Set来存储唯一名称,避免重复 |
| | | const uniqueNames = new Set([...filteredNames]); |
| | | |
| | | // 如果displayMemberNames有内容,也加入Set中 |
| | | if(this.displayMemberNames && this.displayMemberNames.length > 0) { |
| | | this.displayMemberNames.forEach(name => uniqueNames.add(name)); |
| | | } |
| | | |
| | | // 转回数组并返回 |
| | | return Array.from(uniqueNames); |
| | | }, |
| | | // 过滤后的成员列表(搜索功能) |
| | | filteredMembers() { |
| | |
| | | }, |
| | | mounted() {}, |
| | | methods: { |
| | | 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) |
| | | |
| | | }, |
| | | // 确认选择成员(保存到表单) |
| | | confirmMemberSelection() { |
| | | console.log(this.selectedMemberIds) |
| | | this.formData.selectedMemberIds = [...this.selectedMemberIds]; |
| | | console.log(this.formData.selectedMemberIds) |
| | | // 将弹窗选中的ID同步到表单 |
| | | this.memberDialogVisible = false; |
| | | this.$message.info(`已选择 ${this.selectedMemberNames.length} 名家族成员`); |
| | | }, |
| | | splitPeopleToSelectedNames(people) { |
| | | // 处理逻辑: |
| | | // 1. 判断 people 是否存在且为字符串,避免报错 |
| | |
| | | // return elem.url.replace(process.env.VUE_APP_BASE_TRUE_API,"") |
| | | // }).join(",") |
| | | // this.formData.url = ul+","+uls |
| | | |
| | | var pel = "" |
| | | pel = pel + this.selectedMemberNames.join(",") |
| | | this.formData.people = pel; |
| | | this.$refs['elForm'].validate(valid => { |
| | | if (valid) { |
| | | if (this.formData.id != undefined) { |