功能添加
This commit is contained in:
@@ -1,44 +1,18 @@
|
||||
import request from './request'
|
||||
|
||||
/**
|
||||
* 获取分类树(支持按类型筛选)
|
||||
* 获取分类列表(支持按类型筛选)
|
||||
* @param {string|null} type - 交易类型(Expense=0/Income=1),null表示获取全部
|
||||
* @returns {Promise<{success: boolean, data: Array}>}
|
||||
*/
|
||||
export const getCategoryTree = (type = null) => {
|
||||
export const getCategoryList = (type = null) => {
|
||||
return request({
|
||||
url: '/TransactionCategory/GetTree',
|
||||
url: '/TransactionCategory/GetList',
|
||||
method: 'get',
|
||||
params: type !== null ? { type } : {}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取顶级分类列表(按类型)
|
||||
* @param {number} type - 交易类型(Expense=0/Income=1)
|
||||
* @returns {Promise<{success: boolean, data: Array}>}
|
||||
*/
|
||||
export const getTopLevelCategories = (type) => {
|
||||
return request({
|
||||
url: '/TransactionCategory/GetTopLevel',
|
||||
method: 'get',
|
||||
params: { type }
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取子分类列表
|
||||
* @param {number} parentId - 父分类ID
|
||||
* @returns {Promise<{success: boolean, data: Array}>}
|
||||
*/
|
||||
export const getChildCategories = (parentId) => {
|
||||
return request({
|
||||
url: '/TransactionCategory/GetChildren',
|
||||
method: 'get',
|
||||
params: { parentId }
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ID获取分类详情
|
||||
* @param {number} id - 分类ID
|
||||
@@ -53,7 +27,7 @@ export const getCategoryById = (id) => {
|
||||
|
||||
/**
|
||||
* 创建分类
|
||||
* @param {object} data - 分类数据
|
||||
* @param {object} data - 分类数据 { name, type }
|
||||
* @returns {Promise<{success: boolean, data: number}>} 返回新创建的分类ID
|
||||
*/
|
||||
export const createCategory = (data) => {
|
||||
@@ -66,7 +40,7 @@ export const createCategory = (data) => {
|
||||
|
||||
/**
|
||||
* 更新分类
|
||||
* @param {object} data - 分类数据
|
||||
* @param {object} data - 分类数据 { id, name }
|
||||
* @returns {Promise<{success: boolean}>}
|
||||
*/
|
||||
export const updateCategory = (data) => {
|
||||
@@ -92,7 +66,7 @@ export const deleteCategory = (id) => {
|
||||
|
||||
/**
|
||||
* 批量创建分类(用于初始化)
|
||||
* @param {Array} dataList - 分类数据数组
|
||||
* @param {Array} dataList - 分类数据数组 [{ name, type }, ...]
|
||||
* @returns {Promise<{success: boolean, data: number}>} 返回创建的数量
|
||||
*/
|
||||
export const batchCreateCategories = (dataList) => {
|
||||
|
||||
@@ -41,7 +41,6 @@ export const getTransactionDetail = (id) => {
|
||||
* @param {number} data.balance - 交易后余额
|
||||
* @param {number} data.type - 交易类型 (0:支出, 1:收入, 2:不计入收支)
|
||||
* @param {string} data.classify - 交易分类
|
||||
* @param {string} data.subClassify - 交易子分类
|
||||
* @returns {Promise<{success: boolean}>}
|
||||
*/
|
||||
export const createTransaction = (data) => {
|
||||
@@ -60,7 +59,6 @@ export const createTransaction = (data) => {
|
||||
* @param {number} data.balance - 交易后余额
|
||||
* @param {number} data.type - 交易类型 (0:支出, 1:收入, 2:不计入收支)
|
||||
* @param {string} data.classify - 交易分类
|
||||
* @param {string} data.subClassify - 交易子分类
|
||||
* @returns {Promise<{success: boolean}>}
|
||||
*/
|
||||
export const updateTransaction = (data) => {
|
||||
@@ -99,7 +97,7 @@ export const getTransactionsByDate = (date) => {
|
||||
|
||||
|
||||
// 注意:分类相关的API已迁移到 transactionCategory.js
|
||||
// 请使用 getCategoryTree 等新接口
|
||||
// 请使用 getCategoryList 等新接口
|
||||
|
||||
/**
|
||||
* 获取未分类的账单数量
|
||||
@@ -127,13 +125,13 @@ export const getUnclassified = (pageSize = 10) => {
|
||||
|
||||
/**
|
||||
* 智能分类 - 使用AI对账单进行分类(EventSource流式响应)
|
||||
* @param {number} pageSize - 每次分类的账单数量
|
||||
* @returns {EventSource} 返回EventSource对象用于接收流式数据
|
||||
* @param {Array<number>} transactionIds - 要分类的账单ID列表
|
||||
* @returns {Promise<Response>} 返回响应对象用于接收流式数据
|
||||
*/
|
||||
export const smartClassify = (pageSize = 10) => {
|
||||
const baseURL = import.meta.env.VITE_API_BASE_URL || 'http://localhost:5000'
|
||||
export const smartClassify = (transactionIds = []) => {
|
||||
const baseURL = import.meta.env.VITE_API_BASE_URL || 'http://localhost:5071/api'
|
||||
const token = localStorage.getItem('token')
|
||||
const url = `${baseURL}/api/TransactionRecord/SmartClassify`
|
||||
const url = `${baseURL}/TransactionRecord/SmartClassify`
|
||||
|
||||
return fetch(url, {
|
||||
method: 'POST',
|
||||
@@ -141,7 +139,7 @@ export const smartClassify = (pageSize = 10) => {
|
||||
'Content-Type': 'application/json',
|
||||
'Authorization': `Bearer ${token}`
|
||||
},
|
||||
body: JSON.stringify({ pageSize })
|
||||
body: JSON.stringify({ transactionIds })
|
||||
})
|
||||
}
|
||||
|
||||
@@ -149,8 +147,7 @@ export const smartClassify = (pageSize = 10) => {
|
||||
* 批量更新账单分类
|
||||
* @param {Array} items - 要更新的账单分类数据数组
|
||||
* @param {number} items[].id - 账单ID
|
||||
* @param {string} items[].classify - 一级分类
|
||||
* @param {string} items[].subClassify - 子分类
|
||||
* @param {string} items[].classify - 分类
|
||||
* @returns {Promise<{success: boolean, message: string}>}
|
||||
*/
|
||||
export const batchUpdateClassify = (items) => {
|
||||
@@ -160,3 +157,46 @@ export const batchUpdateClassify = (items) => {
|
||||
data: items
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取按交易摘要分组的统计信息(支持分页)
|
||||
* @param {number} pageIndex - 页码,从1开始
|
||||
* @param {number} pageSize - 每页数量,默认20
|
||||
* @returns {Promise<{success: boolean, data: Array, total: number}>}
|
||||
*/
|
||||
export const getReasonGroups = (pageIndex = 1, pageSize = 20) => {
|
||||
return request({
|
||||
url: '/TransactionRecord/GetReasonGroups',
|
||||
method: 'get',
|
||||
params: { pageIndex, pageSize }
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 按摘要批量更新分类
|
||||
* @param {Object} data - 批量更新数据
|
||||
* @param {string} data.reason - 交易摘要
|
||||
* @param {number} data.type - 交易类型 (0:支出, 1:收入, 2:不计入收支)
|
||||
* @param {string} data.classify - 分类名称
|
||||
* @returns {Promise<{success: boolean, data: number, message: string}>}
|
||||
*/
|
||||
export const batchUpdateByReason = (data) => {
|
||||
return request({
|
||||
url: '/TransactionRecord/BatchUpdateByReason',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* NLP分析 - 根据用户自然语言输入查询交易记录并预设分类
|
||||
* @param {string} userInput - 用户的自然语言输入
|
||||
* @returns {Promise<{success: boolean, data: Object}>}
|
||||
*/
|
||||
export const nlpAnalysis = (userInput) => {
|
||||
return request({
|
||||
url: '/TransactionRecord/NlpAnalysis',
|
||||
method: 'post',
|
||||
data: { userInput }
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user