feat: 合入航空账号、子账号及会员管理更新

Import the supplied management frontend, including request encryption, withdrawal updates, and vendored dependencies.
Use incoming versions for overlapping source files and retain existing environment configuration absent from the supplied directory.
This commit is contained in:
dzc committed 2026-10-29 16:52:46 +08:00
1 parent 401c7c1dd6
commit f087d6ba57
179 files changed
+21027 -9976

No files matched your search

@@ -37,3 +37,8 @@ export const approveBrokerageWithdraw = async (id: number) => {
export const rejectBrokerageWithdraw = async (data: BrokerageWithdrawVO) => {
return await request.put({ url: `/trade/brokerage-withdraw/reject`, data })
}
// 导出佣金提现 Excel
export const exportBrokerageWithdraw = async (params: any) => {
return await request.download({ url: `/trade/brokerage-withdraw/export-excel`, params })
}
+54
View File
@@ -0,0 +1,54 @@
import request from '@/config/axios'
export interface AirlineAccountVO {
id?: number
mobile: string
channel: string
password?: string
startTime: string
endTime: string
deviceId?: string
status: number
remark?: string
userId?: number
expired?: boolean
notStarted?: boolean
createTime?: string
}
export const channelOptions = [
{ value: 'CZ', label: '南方航空' },
{ value: 'MU', label: '东方航空' },
{ value: 'HU', label: '海南航空' }
]
// 渠道编码 -> 全称(列表页等处展示用;存储值仍为 CZ/MU/HU)
export const channelLabelMap: Record<string, string> = {
CZ: '南方航空',
MU: '东方航空',
HU: '海南航空'
}
export const getAirlineAccountPage = async (params: any) => {
return await request.get({ url: `/member/airline-account/page`, params })
}
export const getAirlineAccount = async (id: number) => {
return await request.get({ url: `/member/airline-account/get?id=` + id })
}
export const createAirlineAccount = async (data: AirlineAccountVO) => {
return await request.post({ url: `/member/airline-account/create`, data })
}
export const updateAirlineAccount = async (data: AirlineAccountVO) => {
return await request.put({ url: `/member/airline-account/update`, data })
}
export const deleteAirlineAccount = async (id: number) => {
return await request.delete({ url: `/member/airline-account/delete?id=` + id })
}
export const unbindAirlineDevice = async (id: number) => {
return await request.put({ url: `/member/airline-account/unbind-device?id=` + id })
}
+5
View File
@@ -37,6 +37,11 @@ export const updateUser = async (data: UserVO) => {
return await request.put({ url: `/member/user/update`, data })
}
/** 更新会员用户状态(禁用后踢出 App 登录,且无法再登录) */
export const updateUserStatus = async (data: { id: number; status: number }) => {
return await request.put({ url: `/member/user/update-status`, data })
}
// 修改会员用户等级
export const updateUserLevel = async (data: any) => {
return await request.put({ url: `/member/user/update-level`, data })
+55
View File
@@ -0,0 +1,55 @@
import request from '@/config/axios'
export interface SubAccountVO {
id: number
userId: number
username: string
nickname: string
status: number
loginDate: Date
createTime: Date
menuIds: number[]
}
export interface SubAccountMenuVO {
id: number
parentId: number
name: string
type: number
sort: number
}
// 查询子账号列表
export const getSubAccountList = () => {
return request.get({ url: '/system/sub-account/list' })
}
// 查询当前账号拥有的菜单(用于给子账号勾选)
export const getHolderMenuList = () => {
return request.get({ url: '/system/sub-account/menu-list' })
}
// 创建子账号
export const createSubAccount = (data: SubAccountVO & { password: string }) => {
return request.post({ url: '/system/sub-account/create', data })
}
// 修改子账号(昵称 + 可见菜单)
export const updateSubAccount = (userId: number, data: SubAccountVO) => {
return request.put({ url: '/system/sub-account/update?userId=' + userId, data })
}
// 修改子账号状态
export const updateSubAccountStatus = (userId: number, status: number) => {
return request.put({ url: '/system/sub-account/update-status', data: { userId, status } })
}
// 重置子账号密码
export const resetSubAccountPassword = (userId: number, password: string) => {
return request.put({ url: '/system/sub-account/reset-password', data: { userId, password } })
}
// 删除子账号
export const deleteSubAccount = (userId: number) => {
return request.delete({ url: '/system/sub-account/delete?userId=' + userId })
}