Files
orion-visor/orion-ops-ui/src/hooks/favorite.ts
2023-09-21 17:12:00 +08:00

30 lines
814 B
TypeScript

import { Message } from '@arco-design/web-vue';
import { FavoriteType, addFavorite, cancelFavorite } from '@/api/meta/favorite';
export default function useFavorite(type: FavoriteType) {
const toggle = async (record: any, id: number, cancelField = 'favorite') => {
const request = { relId: id, type };
const loading = Message.loading(record[cancelField] ? '取消中' : '收藏中');
try {
if (record[cancelField]) {
// 取消收藏
await cancelFavorite(request);
record[cancelField] = false;
Message.success('已取消');
} else {
// 添加收藏
await addFavorite(request);
record[cancelField] = true;
Message.success('已收藏');
}
} finally {
loading.close();
}
};
return {
toggle
};
}