解决文章标签重复问题
This commit is contained in:
@@ -85,25 +85,24 @@ const PublishForm = ({ data, closeModel }: { data: Article, closeModel: () => vo
|
|||||||
const onSubmit: FormProps<FieldType>['onFinish'] = async (values) => {
|
const onSubmit: FormProps<FieldType>['onFinish'] = async (values) => {
|
||||||
// 如果是文章标签,则先判断是否存在,如果不存在则添加
|
// 如果是文章标签,则先判断是否存在,如果不存在则添加
|
||||||
let tagIds: number[] = []
|
let tagIds: number[] = []
|
||||||
if (values.tagIds) {
|
for (const item of (values.tagIds ? values.tagIds : [])) {
|
||||||
for (const item of values.tagIds) {
|
if (typeof item === "string") {
|
||||||
if (typeof item === "string") {
|
// 如果已经有这个标签了,就没必要再创建一个了
|
||||||
// 如果已经有这个标签了,就没必要再创建一个了
|
// 先转换为大写进行查找,否则会出现大小写不匹配问题
|
||||||
const tag1 = tagList.find(t => t.name === item)?.id;
|
const tag1 = tagList.find(t => t.name.toUpperCase() === item.toUpperCase())?.id;
|
||||||
|
|
||||||
if (tag1) {
|
if (tag1) {
|
||||||
tagIds.push(tag1)
|
tagIds.push(tag1)
|
||||||
continue
|
continue
|
||||||
}
|
|
||||||
|
|
||||||
await addTagDataAPI({ name: item });
|
|
||||||
const { data: list } = await getTagListAPI();
|
|
||||||
// 添加成功后查找对应的标签id
|
|
||||||
const tag2 = list.find(t => t.name === item)?.id;
|
|
||||||
if (tag2) tagIds.push(tag2);
|
|
||||||
} else {
|
|
||||||
tagIds.push(item);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await addTagDataAPI({ name: item });
|
||||||
|
const { data: list } = await getTagListAPI();
|
||||||
|
// 添加成功后查找对应的标签id
|
||||||
|
const tag2 = list.find(t => t.name === item)?.id;
|
||||||
|
if (tag2) tagIds.push(tag2);
|
||||||
|
} else {
|
||||||
|
tagIds.push(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user