86 lines
1.7 KiB
JavaScript
86 lines
1.7 KiB
JavaScript
import { request } from '@/api/request.js'
|
|
|
|
/**
|
|
* 获取笔记列表
|
|
*/
|
|
export async function fetchNotes(params = {}) {
|
|
const data = await request({
|
|
url: '/app/notebook/list',
|
|
data: {
|
|
keyword: params.keyword || ''
|
|
}
|
|
})
|
|
const list = (data.list || []).map(item => ({
|
|
...item,
|
|
pinned: !!item.pinned,
|
|
createdAt: item.created_at ? new Date(item.created_at.replace(' ', 'T')).getTime() : 0,
|
|
updatedAt: item.updated_at ? new Date(item.updated_at.replace(' ', 'T')).getTime() : 0
|
|
}))
|
|
return { list, total: data.total || 0 }
|
|
}
|
|
|
|
/**
|
|
* 获取单条笔记
|
|
*/
|
|
export async function getNote(id) {
|
|
const data = await request({ url: `/app/notebook/${id}` })
|
|
if (!data) return null
|
|
return {
|
|
...data,
|
|
pinned: !!data.pinned,
|
|
createdAt: data.created_at ? new Date(data.created_at.replace(' ', 'T')).getTime() : 0,
|
|
updatedAt: data.updated_at ? new Date(data.updated_at.replace(' ', 'T')).getTime() : 0
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 创建笔记
|
|
*/
|
|
export async function createNote(data) {
|
|
const res = await request({
|
|
url: '/app/notebook',
|
|
method: 'POST',
|
|
data: {
|
|
title: data.title || '',
|
|
content: data.content || '',
|
|
pinned: !!data.pinned
|
|
}
|
|
})
|
|
return res
|
|
}
|
|
|
|
/**
|
|
* 更新笔记
|
|
*/
|
|
export async function updateNote(id, data) {
|
|
const res = await request({
|
|
url: `/app/notebook/${id}`,
|
|
method: 'PUT',
|
|
data: {
|
|
title: data.title || '',
|
|
content: data.content || '',
|
|
pinned: data.pinned
|
|
}
|
|
})
|
|
return res
|
|
}
|
|
|
|
/**
|
|
* 删除笔记
|
|
*/
|
|
export async function deleteNote(id) {
|
|
await request({ url: `/app/notebook/${id}`, method: 'DELETE' })
|
|
return true
|
|
}
|
|
|
|
/**
|
|
* 切换置顶
|
|
*/
|
|
export async function toggleNotePin(id) {
|
|
const res = await request({
|
|
url: `/app/notebook/${id}/togglePin`,
|
|
method: 'POST'
|
|
})
|
|
return res
|
|
}
|