Files
tools-web/src/store/modules/tools.ts
T
2024-05-31 11:11:42 +08:00

64 lines
1.8 KiB
TypeScript

//创建tools相关的小工具
import { defineStore } from 'pinia'
import { getTools, getToolsCate } from '@/components/Tools/tools.ts'
import { getIp } from '@/api/ip'
import type { ToolsReqData, ToolsInfo } from '@/components/Tools/tools.type.ts'
import type { IpReqData, IpInfo } from '@/api/ip/type'
import type { WebInfo, WebInfoReqData } from '@/api/webinfo/type'
import { fetchWebInfo } from '@/api/webinfo'
export const useToolsStore = defineStore('tools', {
//用来存放变量
state: () => ({
list: [] as ToolsInfo[],
toolInfo: {} as ToolsInfo,
cates: [] as any[],
recommends: [] as ToolsInfo[],
ipData: {} as IpInfo,
webInfo: {} as WebInfo,
collect: [] as ToolsInfo[],
collectIds: [] as number[],
}),
//方法
actions: {
//获取tools
async getTools(data: ToolsReqData) {
//发送请求
const result: any = await getTools(data)
this.list = result
return result
},
//获取tool info
async getToolInfo(data: ToolsReqData) {
//发送请求
const result: any = await getTools(data)
this.toolInfo = result
return result
},
//获取tools cate
async getToolCate() {
//发送请求
this.cates = await getToolsCate()
},
//获取ip
async getIp(data: IpReqData) {
const result: any = await getIp(data)
if (result.code == 200) {
this.ipData = result.data
return result.message
} else {
return Promise.reject(new Error(result.message))
}
},
//获取网站信息
async getWebInfo(data: WebInfoReqData) {
const result: any = await fetchWebInfo(data)
if (result.code == 200) {
this.webInfo = result.data
return result.message
} else {
return Promise.reject(new Error(result.message))
}
},
}
})