This commit is contained in:
670788339
2025-11-04 08:58:20 +08:00
parent f0ea689166
commit d087082613

View File

@@ -2,21 +2,22 @@
<template>
<div class="tag-container">
<el-select style="width: 100%;"
v-model="selectedTags"
multiple
filterable
value-key="id"
remote
reserve-keyword
:remote-method="debouncedSearch"
:loading="loading"
:placeholder="'回车创建新标签'"
@remove-tag="handleTagRemove"
@change="handleSelectionChange"
@keyup.enter.native="handleEnterKey"
@keyup.delete.native="handleDeleteKey"
@focus="handleFocus"
ref="tagSelect"
v-model="selectedTags"
multiple
filterable
value-key="id"
default-first-option
remote
reserve-keyword
:remote-method="debouncedSearch"
:loading="loading"
:placeholder="'回车创建新标签'"
@remove-tag="handleTagRemove"
@change="handleSelectionChange"
@focus="handleFocus"
ref="tagSelect"
>
<el-option
v-for="item in searchResults"
@@ -168,26 +169,26 @@ export default {
},
//按回车键,创建新标签
handleEnterKey(event) {
const inputVal = event.target.value?.trim()
if (!inputVal) return;
// 检查是否与已选择的标签重复
const isDuplicate = this.selectedTags.some(tag => tag.tagName === inputVal);
if (isDuplicate) {
this.$message.warning('该标签已存在,无需重复创建');
event.target.value = '';
return;
}
if (!this.searchResults.length && inputVal && this.selectedTags.length < this.maxTags) {
this.createNewTag(event.target.value.trim())
this.clearInput();
} else if (this.selectedTags.length >= this.maxTags) {
this.$message.warning('最多只能添加5个标签')
this.clearInput();
} else {
this.clearInput();
}
},
// handleEnterKey(event) {
// const inputVal = event.target.value?.trim()
// if (!inputVal) return;
// // 检查是否与已选择的标签重复
// const isDuplicate = this.selectedTags.some(tag => tag.tagName === inputVal);
// if (isDuplicate) {
// this.$message.warning('该标签已存在,无需重复创建');
// event.target.value = '';
// return;
// }
// if (!this.searchResults.length && inputVal && this.selectedTags.length < this.maxTags) {
// this.createNewTag(event.target.value.trim())
// this.clearInput();
// } else if (this.selectedTags.length >= this.maxTags) {
// this.$message.warning('最多只能添加5个标签')
// this.clearInput();
// } else {
// this.clearInput();
// }
// },
// 新增:处理选择变化事件
handleSelectionChange(newValues) {
@@ -273,10 +274,10 @@ export default {
console.log("---- doSearch ------ query = " + query )
this.loading = true
try {
// 获取 typeId取 sysTypeList 最后一个有效的值
// 获取 typeId取 sysTypeList 最后一个有效的值
const typeId = this.sysTypeList.length > 2 ? this.sysTypeList[2] :
this.sysTypeList.length > 1 ? this.sysTypeList[1] :
this.sysTypeList.length > 0 ? this.sysTypeList[0] : null;
this.sysTypeList.length > 1 ? this.sysTypeList[1] :
this.sysTypeList.length > 0 ? this.sysTypeList[0] : null;
console.log("---- doSearch searchTags ------ query = " + query + " , typeId = " + typeId )
const {result:tags} = await apiCourseTag.searchTags({tagName:query,typeId:typeId})
console.log("-- searchTags 查询结果 tags = " + tags )