feat: 用户登录注册, 工具收藏

This commit is contained in:
osiris
2024-02-29 18:07:26 +08:00
parent 7456b9a35f
commit e2676f9ec8
14 changed files with 872 additions and 57 deletions
+48 -3
View File
@@ -1,18 +1,21 @@
//创建tools相关的小工具
import { defineStore } from 'pinia'
import { getTools, getToolCate, getToolRecommend} from '@/api/tools'
import { getTools, getToolCate, getToolRecommend, toolCollect, getToolCollect } from '@/api/tools'
import { getIp } from '@/api/ip'
import type { ToolsReqData, ToolsInfo, ToolCate } from '@/api/tools/type'
import type { ToolsReqData, ToolsInfo, ToolCate, CollectReqData } from '@/api/tools/type'
import type { IpReqData, IpInfo } from '@/api/ip/type'
import { useUserStore } from '@/store/modules/user'
export const useToolsStore = defineStore('tools', {
//用来存放变量
state: () => ({
list: [] as ToolsInfo[],
toolInfo: {} as ToolsInfo,
cates: [] as ToolCate[],
recommends: [] as ToolsInfo[],
ipData: {} as IpInfo,
collect: [],
collect: [] as ToolsInfo[],
collectIds: [] as number[],
}),
//方法
actions: {
@@ -27,6 +30,17 @@ export const useToolsStore = defineStore('tools', {
return Promise.reject(new Error(result.message))
}
},
//获取tool info
async getToolInfo(data: ToolsReqData) {
//发送请求
const result: any = await getTools(data)
if (result.code == 200) {
this.toolInfo = result.data[0]
return result.message
} else {
return Promise.reject(new Error(result.message))
}
},
//获取tools cate
async getToolCate() {
//发送请求
@@ -57,6 +71,37 @@ export const useToolsStore = defineStore('tools', {
} else {
return Promise.reject(new Error(result.message))
}
},
//收藏工具
async toolCollect(data: CollectReqData) {
if (!useUserStore().isLogin()) {
//未登录
return
}
const result: any = await toolCollect(data)
if (result.code == 200) {
//收藏成功
this.getCollect();
return result.message
} else {
return Promise.reject(new Error(result.message))
}
},
//我的收藏
async getCollect() {
if (!useUserStore().isLogin()) {
//未登录
return
}
const result: any = await getToolCollect()
if (result.code == 200) {
this.collect = result.data
this.collectIds = this.collect.map(item => item.id)
console.log(this.collectIds)
return result.message
} else {
return Promise.reject(new Error(result.message))
}
}
}
})