diff --git a/src/components/Course/courseTag.vue b/src/components/Course/courseTag.vue
index 4d0df30f..38f5a5da 100644
--- a/src/components/Course/courseTag.vue
+++ b/src/components/Course/courseTag.vue
@@ -26,6 +26,12 @@
:disabled="isTagDisabled(item)"
/>
+
+
调试信息 - selectedTags:
+
+ {{ index }}: {{ tag.tagName }} ({{ tag.id }})
+
+
{{ selectedTags.length }}/5
@@ -214,7 +220,15 @@ export default {
// 新增:处理选择变化事件
handleSelectionChange(newValues) {
- console.log("----------handleSelectionChange---------->",newValues)
+ console.log("----------handleSelectionChange---------->", newValues);
+
+ // 检查每个标签对象是否完整
+ newValues.forEach((tag, index) => {
+ if (!tag.tagName) {
+ console.error(`第${index}个标签缺少tagName:`, tag);
+ }
+ });
+
// 检查数量限制
if (newValues.length > this.maxTags) {
this.$message.warning(`最多只能选择${this.maxTags}个标签`);
@@ -279,35 +293,42 @@ export default {
this.params.sysType3 = this.sysTypeList[2]; //三级的id
}
+ console.log('添加前的selectedTags:', this.selectedTags);
+ console.log('添加前的searchResults:', this.searchResults);
const {result:newTag} = await apiCourseTag.createTag(this.params)
console.log('API返回的新标签对象:', newTag);
console.log('标签ID:', newTag?.id);
console.log('标签名称:', newTag?.tagName);
console.log('标签完整结构:', JSON.stringify(newTag));
- if (!newTag?.id || !newTag?.tagName) {
- console.error('API返回的标签数据不完整');
- this.$message.error('标签创建失败:返回数据不完整');
- return;
- }
this.$message.success('标签创建成功',newTag);
- const tagObject = {
- id: newTag.id,
- tagName: newTag.tagName,
- // 如果有其他必要字段也加上
- ...newTag
- };
-
- this.selectedTags.push(newTag);
- this.searchResults.push(newTag)
- this.tagMap.set(newTag.id, newTag)
+ this.selectedTags = [...this.selectedTags, newTag];
+ // 更新搜索结果的逻辑保持不变
+ this.searchResults = [newTag, ...this.searchResults];
+ this.tagMap.set(newTag.id, newTag);
console.log('添加后的selectedTags:', this.selectedTags);
- console.log('添加后的searchResults:', this.searchResults);
+ // 触发change事件
+ this.$emit('change', this.displayTags);
+
+ // 强制更新el-select组件
+ this.$nextTick(() => {
+ if (this.$refs.tagSelect) {
+ // 强制重新渲染选择器
+ this.$refs.tagSelect.$forceUpdate();
+ }
+ });
+
+ // this.$nextTick(() => {
+ // // 强制重新设置selectedTags来触发更新
+ // const tempTags = [...this.selectedTags];
+ // this.selectedTags = [];
+ // this.$nextTick(() => {
+ // this.selectedTags = tempTags;
+ // });
+ // });
- this.$emit('change', this.displayTags)
- this.doSearch('');
} finally {
this.loading = false
}