From fe641618e1fb27ca7d6934c6bc3b2c53144cc913 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=BF=9C?= <2970639877@qq.com> Date: Mon, 23 Mar 2026 18:07:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/modules/funding/fundDetail.ts | 6 + src/api/modules/trade/historyTrade.ts | 6 + src/assets/styles/global.scss | 1 + src/components/common/Form.vue | 2 +- src/components/layout/Header.vue | 2 +- src/components/layout/Sidebar.vue | 120 ++++++---- src/router/index.ts | 94 +++++++- src/views/account/accountDetail/index.vue | 194 +++++++++++++++++ src/views/account/archives/index.vue | 206 ++++++++++++++++++ src/views/account/archives/options.ts | 14 ++ src/views/funding/fundDetail/index.vue | 128 +++++++++++ src/views/funding/fundDetail/options.ts | 55 +++++ src/views/personalized/followRecord/index.vue | 5 + src/views/personalized/leadRecord/index.vue | 5 + src/views/trade/historyTrade/index.vue | 131 +++++++++++ src/views/trade/historyTrade/options.ts | 38 ++++ src/views/trade/positionStat/index.vue | 88 ++++++++ src/views/trade/positionStat/options.ts | 36 +++ src/views/trade/tradeSoftware/index.vue | 113 ++++++++++ src/views/user/bindEmail.vue | 140 ++++++++++++ src/views/user/bindPhone.vue | 187 ++++++++++++++++ 21 files changed, 1529 insertions(+), 42 deletions(-) create mode 100644 src/api/modules/funding/fundDetail.ts create mode 100644 src/api/modules/trade/historyTrade.ts create mode 100644 src/views/account/accountDetail/index.vue create mode 100644 src/views/account/archives/index.vue create mode 100644 src/views/account/archives/options.ts create mode 100644 src/views/funding/fundDetail/index.vue create mode 100644 src/views/funding/fundDetail/options.ts create mode 100644 src/views/personalized/followRecord/index.vue create mode 100644 src/views/personalized/leadRecord/index.vue create mode 100644 src/views/trade/historyTrade/index.vue create mode 100644 src/views/trade/historyTrade/options.ts create mode 100644 src/views/trade/positionStat/index.vue create mode 100644 src/views/trade/positionStat/options.ts create mode 100644 src/views/trade/tradeSoftware/index.vue create mode 100644 src/views/user/bindEmail.vue create mode 100644 src/views/user/bindPhone.vue diff --git a/src/api/modules/funding/fundDetail.ts b/src/api/modules/funding/fundDetail.ts new file mode 100644 index 0000000..bd83a59 --- /dev/null +++ b/src/api/modules/funding/fundDetail.ts @@ -0,0 +1,6 @@ +import { request } from '@/api'; + +//获取资金明细列表 +export const getFundDetailListApi = (params: any) => { + return request.get('/user/FundFlowRecords', {...params}) +} \ No newline at end of file diff --git a/src/api/modules/trade/historyTrade.ts b/src/api/modules/trade/historyTrade.ts new file mode 100644 index 0000000..22b7d43 --- /dev/null +++ b/src/api/modules/trade/historyTrade.ts @@ -0,0 +1,6 @@ +import { request } from '@/api'; + +//获取历史交易列表 +export const getHistoryTradeListApi = (params: any) => { + return request.get('orderRecords/getList', {...params}) +} \ No newline at end of file diff --git a/src/assets/styles/global.scss b/src/assets/styles/global.scss index bf65490..b3acf66 100644 --- a/src/assets/styles/global.scss +++ b/src/assets/styles/global.scss @@ -38,6 +38,7 @@ body, padding: 20px; overflow: auto; max-height: calc(1080px - 200px); + height: 100%; } } } diff --git a/src/components/common/Form.vue b/src/components/common/Form.vue index 426eec7..873bb77 100644 --- a/src/components/common/Form.vue +++ b/src/components/common/Form.vue @@ -78,7 +78,7 @@ import type { FormInstance, FormRules } from 'element-plus' import type { Component } from 'vue' interface FormItem { - type: 'input' | 'select' | 'number' | 'radio' | 'slot' | 'checkbox' | 'date' | 'switch' | 'edit' | 'password' | 'time' + type: 'input' | 'select' | 'number' | 'radio' | 'slot' | 'checkbox' | 'date' | 'switch' | 'edit' | 'password' | 'time' | 'upload' label: string prop: string placeholder?: string diff --git a/src/components/layout/Header.vue b/src/components/layout/Header.vue index 6799f21..930991c 100644 --- a/src/components/layout/Header.vue +++ b/src/components/layout/Header.vue @@ -60,7 +60,7 @@ const handleChangePassword = () => { const handleLogout = () => { // 示例:退出登录逻辑 const deviceNo = getStorage('device_no') as string - userStore.logout({ device_no: deviceNo }) + userStore.logout({ device_no: String(deviceNo) }) } // 处理菜单项点击 diff --git a/src/components/layout/Sidebar.vue b/src/components/layout/Sidebar.vue index fa8f1dc..748f146 100644 --- a/src/components/layout/Sidebar.vue +++ b/src/components/layout/Sidebar.vue @@ -123,7 +123,19 @@ const staticMenuList = ref( label: '做市商管理', path: '/account/market-maker', // index="3-3" icon: '' - } + }, + { + id: 34, + label: '档案管理', + path: '/account/archives', // index="3-4" + icon: '' + }, + { + id: 35, + label: '账号管理', + path: '/account/accountDetail', // index="3-5" + icon: '' + }, ] }, // 交易管理(子菜单) @@ -145,6 +157,24 @@ const staticMenuList = ref( path: '/trade/group', // index="4-2" icon: '' }, + { + id: 43, + label: '持仓统计', + path: '/trade/positionStat', // index="4-3" + icon: '' + }, + { + id: 44, + label: '历史交易', + path: '/trade/historyTrade', // index="4-4" + icon: '' + }, + { + id: 45, + label: '交易软件', + path: '/trade/tradeSoftware', // index="4-5" + icon: '' + }, // { // id: 43, // label: '交易时间', @@ -197,6 +227,12 @@ const staticMenuList = ref( path: '/funding/transferDetail', // index="6-5" icon: '' }, + { + id: 66, + label: '资金明细', + path: '/funding/fundDetail', // index="6-6" + icon: '' + }, // { // id: 66, // label: '资金流水', @@ -248,52 +284,62 @@ const staticMenuList = ref( // 资金管理(子菜单) - { - id: 9, - label: '资金管理', - path: 'funding', // index="funding" - icon: 'GoodsFilled', // 对应 图标 - children: [ - //存款/取款暂时没有 - //资金明细 - // 审核记录 - // 提现记录 - // 充值记录 - ] - }, + // { + // id: 9, + // label: '资金管理', + // path: 'funding', // index="funding" + // icon: 'GoodsFilled', // 对应 图标 + // children: [ + // //存款/取款/审核记录/ 提现记录/ 充值记录暂时没有 + // //资金明细 + + // ] + // }, // 交易统计(子菜单) - { - id: 10, - label: '交易统计', - path: 'trade', // index="trade" - icon: 'ChartBarFilled', // 对应 图标 - children: [ - // 持仓统计 - //历史交易 - //交易软件 - ] - }, + // { + // id: 10, + // label: '交易统计归交易管理', + // path: 'trade', // index="trade" + // icon: 'ChartBarFilled', // 对应 图标 + // children: [ + // // 持仓统计是辉哥 + // //历史交易 + // //交易软件 + // ] + // }, // 账户管理(子菜单) - { - id: 11, - label: '账户管理', - path: 'account', // index="account" - icon: 'UserFilled', // 对应 图标 - children: [ - // 档案管理 - // 账户管理 - ] - }, + // { + // id: 11, + // label: '账户管理', + // path: 'account', // index="account" + // icon: 'UserFilled', // 对应 图标 + // children: [ + // // 档案管理 + // // 账户管理 + // ] + // }, // 个性化交易(子菜单) { id: 12, label: '个性化交易', - path: 'customTrade', // index="customTrade" + path: 'personalized', // index="personalized" icon: 'SettingFilled', // 对应 图标 children: [ - // 排行榜 + // 排行榜放在了app中 // 跟单记录 + { + id: 121, + label: '跟单记录', + path: '/personalized/followRecord', // index="12-1" + icon: '' + }, // 带单记录 + { + id: 122, + label: '带单记录', + path: '/personalized/leadRecord', // index="12-2" + icon: '' + }, ] }, // 代理管理(子菜单) diff --git a/src/router/index.ts b/src/router/index.ts index d296003..fe44008 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -33,6 +33,18 @@ const routes = [ name: 'ChangePassword', component: () => import('@/views/user/ChangePassword.vue'), meta: { requiresAuth: true, title: '修改密码' } + }, + { + path: 'bind-email', + name: 'BindEmail', + component: () => import('@/views/user/bindEmail.vue'), + meta: { requiresAuth: true, title: '绑定邮箱' } + }, + { + path: 'bind-phone', + name: 'BindPhone', + component: () => import('@/views/user/bindPhone.vue'), + meta: { requiresAuth: true, title: '绑定手机号' } } ] }, @@ -118,7 +130,23 @@ const routes = [ meta: { title: '做市商管理', // 左侧菜单显示的标题 } - } + }, + { + path: 'archives', + name: 'Archives', + component: () => import('@/views/account/archives/index.vue'), + meta: { + title: '档案管理', // 左侧菜单显示的标题 + } + }, + { + path: 'accountDetail', + name: 'AccountDetail', + component: () => import('@/views/account/accountDetail/index.vue'), + meta: { + title: '账号管理', // 左侧菜单显示的标题 + } + }, ] }, //交易管理 @@ -152,7 +180,31 @@ const routes = [ // meta: { // title: '交易时间', // 左侧菜单显示的标题 // } - // } + // }, + { + path: 'positionStat', + name: 'PositionStat', + component: () => import('@/views/trade/positionStat/index.vue'), + meta: { + title: '持仓统计', // 左侧菜单显示的标题 + } + }, + { + path: 'historyTrade', + name: 'HistoryTrade', + component: () => import('@/views/trade/historyTrade/index.vue'), + meta: { + title: '历史交易', // 左侧菜单显示的标题 + } + }, + { + path: 'tradeSoftware', + name: 'TradeSoftware', + component: () => import('@/views/trade/tradeSoftware/index.vue'), + meta: { + title: '交易软件', // 左侧菜单显示的标题 + } + }, ] }, //公告管理 @@ -236,6 +288,14 @@ const routes = [ title: '存款渠道列表', // 左侧菜单显示的标题 } }, + { + path: 'fundDetail', + name: 'FundDetail', + component: () => import('@/views/funding/fundDetail/index.vue'), + meta: { + title: '资金明细', // 左侧菜单显示的标题 + } + }, ] }, { @@ -245,7 +305,35 @@ const routes = [ title: '风控管理', // 左侧菜单显示的标题 }, component: () => import('@/views/risk/index.vue'), - } + }, + // 个性化交易 + { + path: 'personalized', + name: 'Personalized', + meta: { + title: '个性化交易', // 左侧菜单显示的标题 + }, + children: [ + // 跟单记录 + { + path: 'followRecord', + name: 'FollowRecord', + component: () => import('@/views/personalized/followRecord/index.vue'), + meta: { + title: '跟单记录', // 左侧菜单显示的标题 + } + }, + // 带单记录 + { + path: 'leadRecord', + name: 'LeadRecord', + component: () => import('@/views/personalized/leadRecord/index.vue'), + meta: { + title: '带单记录', // 左侧菜单显示的标题 + } + }, + ] + }, ] }, { diff --git a/src/views/account/accountDetail/index.vue b/src/views/account/accountDetail/index.vue new file mode 100644 index 0000000..85dffcc --- /dev/null +++ b/src/views/account/accountDetail/index.vue @@ -0,0 +1,194 @@ + + + diff --git a/src/views/account/archives/index.vue b/src/views/account/archives/index.vue new file mode 100644 index 0000000..7480538 --- /dev/null +++ b/src/views/account/archives/index.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/src/views/account/archives/options.ts b/src/views/account/archives/options.ts new file mode 100644 index 0000000..f80122c --- /dev/null +++ b/src/views/account/archives/options.ts @@ -0,0 +1,14 @@ +export const identityFormItems = [ + // 国籍 + { prop: 'nationality', label: '国籍', type: 'select' as const ,width: "200px"}, + // 证件类型 + { prop: 'idType', label: '证件类型', type: 'select' as const ,width: "200px"}, + // 上传证件 + { prop: 'idCard', slotName: 'upload', label: '上传证件' ,type: 'upload' as const}, + ] + +export const contactFormItems = [ + // 联系电话 + { prop: 'phone', label: '联系电话', type: 'input' as const ,width: "200px"}, +] + diff --git a/src/views/funding/fundDetail/index.vue b/src/views/funding/fundDetail/index.vue new file mode 100644 index 0000000..800de92 --- /dev/null +++ b/src/views/funding/fundDetail/index.vue @@ -0,0 +1,128 @@ + + + diff --git a/src/views/funding/fundDetail/options.ts b/src/views/funding/fundDetail/options.ts new file mode 100644 index 0000000..da227c6 --- /dev/null +++ b/src/views/funding/fundDetail/options.ts @@ -0,0 +1,55 @@ +/** + * @description: 搜索配置 + */ +export const search = [ + //单号 + // { prop: 'orderNo', label: '单号', type: 'input' as const, placeholder: '请输入流水单号', width: '140px' }, + //用户名 + { prop: 'username', label: '用户名', type: 'input' as const, placeholder: '请输入用户名', width: '140px' }, + // 子账号 + { prop: 'subAccountId', label: '子账号ID', type: 'input' as const, placeholder: '请输入子账号ID', width: '140px' }, + //操作类型 + // { prop: 'type', label: '操作类型', type: 'select' as const, placeholder: '请选择操作类型', width: '140px', options: [ + // {label:"充值",value:"1"}, + // {label:"提现",value:"2"}, + // ] }, + //钱包 + // { prop: 'wallet', label: '钱包', type: 'select' as const, placeholder: '请选择钱包', width: '140px', options: [ + // {label:"主钱包",value:"1"}, + // {label:"子钱包",value:"2"}, + // ] }, + //开始时间 + { + prop: 'startTime', label: '开始时间', type: 'date' as const, dateType: 'date' as const, // 时间范围选择器 + valueFormat: 'YYYY-MM-DD', placeholder: '请选择开始时间', width: '150px' + }, + //结束时间 + { + prop: 'endTime', label: '结束时间', type: 'date' as const, dateType: 'date' as const, // 时间范围选择器 + valueFormat: 'YYYY-MM-DD', placeholder: '请选择结束时间', width: '150px' + }, + + +] +export const tableColumns = [ + // 用户名 + { prop: 'username', label: '用户名' }, + //单号 + { prop: 'orderNo', label: '单号' }, + //操作类型 + { prop: 'type', label: '操作类型' }, + //资金流向 + // { prop: 'fundDirection', label: '资金流向' }, + //原有金额 + { prop: 'originalAmount', label: '原有金额' }, + //余额变动 + { prop: 'balanceChange', label: '余额变动' }, + //现有余额 + // { prop: 'currentBalance', label: '现有余额' }, + //状态 + // { prop: 'status', label: '状态' }, + //创建时间 + { prop: 'createTime', label: '创建时间' }, + //钱包类型 + { prop: 'walletType', label: '钱包类型' }, +] \ No newline at end of file diff --git a/src/views/personalized/followRecord/index.vue b/src/views/personalized/followRecord/index.vue new file mode 100644 index 0000000..c3aa100 --- /dev/null +++ b/src/views/personalized/followRecord/index.vue @@ -0,0 +1,5 @@ + diff --git a/src/views/personalized/leadRecord/index.vue b/src/views/personalized/leadRecord/index.vue new file mode 100644 index 0000000..c00d6d2 --- /dev/null +++ b/src/views/personalized/leadRecord/index.vue @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/src/views/trade/historyTrade/index.vue b/src/views/trade/historyTrade/index.vue new file mode 100644 index 0000000..a18ccf5 --- /dev/null +++ b/src/views/trade/historyTrade/index.vue @@ -0,0 +1,131 @@ + + + diff --git a/src/views/trade/historyTrade/options.ts b/src/views/trade/historyTrade/options.ts new file mode 100644 index 0000000..7521aab --- /dev/null +++ b/src/views/trade/historyTrade/options.ts @@ -0,0 +1,38 @@ +export const search = [ + // 用户名 + { prop: 'username', label: '用户名', type: 'input' as const, placeholder: '请输入用户名',width: '150px' }, + // 订单号 + { prop: 'orderNo', label: '订单号', type: 'input' as const, placeholder: '请输入订单号',width: '150px' }, + // 交易账户ID + { prop: 'subAccountId', label: '交易账户ID', type: 'input' as const, placeholder: '请输入交易账户ID',width: '150px' }, + // 交易类型 + { prop: 'tradeType', label: '交易类型', type: 'select' as const, placeholder: '请选择交易类型',width: '140px', options: [ + { label: '买入', value: '1' }, + { label: '卖出', value: '2' }, + ] }, + //开始时间 + { + prop: 'startTime', label: '开始时间', type: 'date' as const, dateType: 'date' as const, // 时间范围选择器 + valueFormat: 'YYYY-MM-DD', placeholder: '请选择开始时间', width: '150px' + }, + //结束时间 + { + prop: 'endTime', label: '结束时间', type: 'date' as const, dateType: 'date' as const, // 时间范围选择器 + valueFormat: 'YYYY-MM-DD', placeholder: '请选择结束时间', width: '150px' + }, +] + +export const tableColumns = [ + // 订单号 + { prop: 'orderNo', label: '订单号' }, + // 操作类型 + { prop: 'tradeType', label: '操作类型' }, + // 金额 + { prop: 'amount', label: '金额' }, + // 交易数量 + { prop: 'tradeQty', label: '交易数量' }, + // 交易时间 + { prop: 'tradeTime', label: '交易时间' }, + // 浮动盈亏 + { prop: 'floatProfit', label: '浮动盈亏' }, +] \ No newline at end of file diff --git a/src/views/trade/positionStat/index.vue b/src/views/trade/positionStat/index.vue new file mode 100644 index 0000000..ff9fd2c --- /dev/null +++ b/src/views/trade/positionStat/index.vue @@ -0,0 +1,88 @@ + + + diff --git a/src/views/trade/positionStat/options.ts b/src/views/trade/positionStat/options.ts new file mode 100644 index 0000000..2464a50 --- /dev/null +++ b/src/views/trade/positionStat/options.ts @@ -0,0 +1,36 @@ +export const search = [ + // 订单号 + { prop: 'orderNo', label: '订单号', type: 'input' as const, placeholder: '请输入订单号',width: '200px' }, + // 交易类型 + { prop: 'tradeType', label: '交易类型', type: 'select' as const, placeholder: '请选择交易类型',width: '150px', options: [ + { label: '买入', value: '1' }, + { label: '卖出', value: '2' }, + ] }, + //账号 + { prop: 'account', label: '账号', type: 'select' as const, placeholder: '请选择账号',width: '150px' }, + //开始时间 + { + prop: 'startTime', label: '开始时间', type: 'date' as const, dateType: 'date' as const, // 时间范围选择器 + valueFormat: 'YYYY-MM-DD', placeholder: '请选择开始时间', width: '150px' + }, + //结束时间 + { + prop: 'endTime', label: '结束时间', type: 'date' as const, dateType: 'date' as const, // 时间范围选择器 + valueFormat: 'YYYY-MM-DD', placeholder: '请选择结束时间', width: '150px' + }, +] + +export const tableColumns = [ + // 订单号 + { prop: 'orderNo', label: '订单号' }, + // 操作类型 + { prop: 'tradeType', label: '操作类型' }, + // 金额 + { prop: 'amount', label: '金额' }, + // 交易数量 + { prop: 'tradeQty', label: '交易数量' }, + // 交易时间 + { prop: 'tradeTime', label: '交易时间' }, + // 浮动盈亏 + { prop: 'floatProfit', label: '浮动盈亏' }, +] \ No newline at end of file diff --git a/src/views/trade/tradeSoftware/index.vue b/src/views/trade/tradeSoftware/index.vue new file mode 100644 index 0000000..4a93896 --- /dev/null +++ b/src/views/trade/tradeSoftware/index.vue @@ -0,0 +1,113 @@ + + + + + diff --git a/src/views/user/bindEmail.vue b/src/views/user/bindEmail.vue new file mode 100644 index 0000000..6cfd65e --- /dev/null +++ b/src/views/user/bindEmail.vue @@ -0,0 +1,140 @@ + + + + diff --git a/src/views/user/bindPhone.vue b/src/views/user/bindPhone.vue new file mode 100644 index 0000000..4b676ad --- /dev/null +++ b/src/views/user/bindPhone.vue @@ -0,0 +1,187 @@ + + + + +