- 新增AI监控仪表盘入口页面(DashEntry.vue) - 新增AI监控相关API(ai-dash-entry) - 新增导入对话框组件(ImportDialog) - 各模块页面新增导入按钮和功能 - 优化国际化配置和路由权限 Co-Authored-By: Claude <noreply@anthropic.com>
107 lines
3.4 KiB
TypeScript
107 lines
3.4 KiB
TypeScript
import request from '@/config/axios'
|
||
|
||
/** 消费订单分页参数 */
|
||
export interface ConsumptionPageParams {
|
||
pageNo: number
|
||
pageSize: number
|
||
prisonerNo?: string
|
||
prisonerName?: string // 罪犯姓名
|
||
prisonAreaId?: number // 监区ID
|
||
prisonCellId?: number // 监室ID
|
||
type?: number // 类型:1-购物 2-餐饮 3-医疗 4-通讯 5-其他
|
||
status?: number // 状态:1-成功 2-失败
|
||
totalAmount?: number // 订单总金额
|
||
balance?: number // 账户余额
|
||
orderNo?: string // 订单号
|
||
tradeTime?: string[] // 交易时间范围
|
||
createTime?: string[] // 创建时间范围
|
||
}
|
||
|
||
/** 消费明细信息 */
|
||
export interface ConsumptionDetail {
|
||
id?: number // 明细ID
|
||
consumptionId?: number // 消费订单ID
|
||
goodsName: string // 商品名称
|
||
goodsCode?: string // 商品编码
|
||
goodsPrice: number // 商品单价
|
||
goodsCount: number // 商品数量
|
||
subtotal?: number // 小计金额
|
||
}
|
||
|
||
/** 消费订单信息 */
|
||
export interface Consumption {
|
||
id: number // 订单ID
|
||
prisonerId?: number // 罪犯ID
|
||
prisonerNo?: string // 罪犯编号
|
||
prisonerName?: string // 罪犯姓名
|
||
prisonAreaId?: number // 监区ID
|
||
prisonAreaName?: string // 监区名称
|
||
prisonCellId?: number // 监室ID
|
||
prisonCellName?: string // 监室名称
|
||
orderNo?: string // 订单号
|
||
type?: number // 类型:1-购物 2-餐饮 3-医疗 4-通讯 5-其他
|
||
totalAmount?: number // 订单总金额
|
||
balance: number // 账户余额
|
||
tradeTime?: string // 交易时间
|
||
status?: number // 状态:1-成功 2-失败
|
||
remark: string // 备注
|
||
details?: ConsumptionDetail[] // 消费明细列表
|
||
createTime?: Date // 创建时间
|
||
updateTime?: Date // 更新时间
|
||
}
|
||
|
||
// 消费订单 API
|
||
export const ConsumptionApi = {
|
||
// 查询消费订单分页
|
||
getConsumptionPage: async (params: ConsumptionPageParams) => {
|
||
return await request.get({ url: `/prison/consumption/page`, params })
|
||
},
|
||
|
||
// 查询消费订单详情
|
||
getConsumption: async (id: number) => {
|
||
return await request.get({ url: `/prison/consumption/get`, params: { id } })
|
||
},
|
||
|
||
// 新增消费订单
|
||
createConsumption: async (data: Consumption) => {
|
||
return await request.post({ url: `/prison/consumption/create`, data })
|
||
},
|
||
|
||
// 修改消费订单
|
||
updateConsumption: async (data: Consumption) => {
|
||
return await request.put({ url: `/prison/consumption/update`, data })
|
||
},
|
||
|
||
// 删除消费订单
|
||
deleteConsumption: async (id: number) => {
|
||
return await request.delete({ url: `/prison/consumption/delete`, params: { id } })
|
||
},
|
||
|
||
/** 批量删除消费订单 */
|
||
deleteConsumptionList: async (ids: number[]) => {
|
||
return await request.delete({ url: `/prison/consumption/delete-list?ids=${ids.join(',')}` })
|
||
},
|
||
|
||
// 查询消费明细列表
|
||
getConsumptionDetailList: async (consumptionId: number) => {
|
||
return await request.get({ url: `/prison/consumption/detail-list`, params: { consumptionId } })
|
||
},
|
||
|
||
// 导出消费订单 Excel
|
||
exportConsumption: async (params: ConsumptionPageParams) => {
|
||
return await request.download({ url: `/prison/consumption/export-excel`, params })
|
||
},
|
||
|
||
// 获取导入模板
|
||
getImportTemplate: async () => {
|
||
return await request.download({ url: `/prison/consumption/get-import-template` })
|
||
},
|
||
|
||
// 导入消费记录
|
||
importConsumption: async (file: File) => {
|
||
const formData = new FormData()
|
||
formData.append('file', file)
|
||
return await request.upload({ url: `/prison/consumption/import`, data: formData })
|
||
}
|
||
}
|