diff --git a/internal/dao/jinzhu/dbr/tag.go b/internal/dao/jinzhu/dbr/tag.go index 8566d812..b794121e 100644 --- a/internal/dao/jinzhu/dbr/tag.go +++ b/internal/dao/jinzhu/dbr/tag.go @@ -23,6 +23,7 @@ type TagFormated struct { Tag string `json:"tag"` QuoteNum int64 `json:"quote_num"` IsFollowing int8 `json:"is_following"` + IsTop int8 `json:"is_top"` } func (t *Tag) Format() *TagFormated { @@ -36,7 +37,8 @@ func (t *Tag) Format() *TagFormated { User: &UserFormated{}, Tag: t.Tag, QuoteNum: t.QuoteNum, - IsFollowing: 0, + IsFollowing: 1, + IsTop: 0, } } diff --git a/web/src/components/tag-item.vue b/web/src/components/tag-item.vue index 5e005191..51d90b56 100644 --- a/web/src/components/tag-item.vue +++ b/web/src/components/tag-item.vue @@ -68,12 +68,23 @@ const props = withDefaults( const tagOptions = computed(() => { let options: DropdownOption[] = []; - if (props.tag.is_following == 0) { + if (props.tag.is_following === 0) { options.push({ label: '关注', key: 'follow', }); } else { + if (props.tag.is_top === 0) { + options.push({ + label: '置顶', + key: 'stick', + }); + } else { + options.push({ + label: '取消置顶', + key: 'unstick', + }); + } options.push({ label: '取消关注', key: 'unfollow', @@ -83,14 +94,24 @@ const tagOptions = computed(() => { }); const handleTagAction = ( - item: 'follow' | 'unfollow' + item: 'follow' | 'unfollow' | 'stick' | 'unstick' ) => { switch (item) { case 'follow': - window.$message.success(`关注话题 - ${props.tag.tag}`); + // TODO + window.$message.success(`关注成功`); break; case 'unfollow': - window.$message.success(`取消关注话题 - ${props.tag.tag}`); + // TODO + window.$message.success(`取消关注`); + break; + case 'stick': + // TODO + window.$message.success(`置顶成功`); + break; + case 'unstick': + // TODO + window.$message.success(`取消置顶`); break; default: break; diff --git a/web/src/types/Item.d.ts b/web/src/types/Item.d.ts index dde29899..cc436646 100644 --- a/web/src/types/Item.d.ts +++ b/web/src/types/Item.d.ts @@ -292,6 +292,8 @@ declare module Item { deleted_on?: number; /** 是否关注:0为未关注,1为已关注 */ is_following?: 0 | 1; + /** 是否置顶:0为未置顶,1为已置顶 */ + is_top?: 0 | 1; /** 是否删除:0为未删除,1为已删除 */ is_del?: 0 | 1; }