feat: 优化账户管理和订单功能
- 重置密码后自动跳转到登录页,登录页添加重置密码入口 - 移除默认账户相关逻辑和UI - 移除前端API Key自动获取提示文案(后端保留自动获取逻辑) - 修复SELL订单takerAmount计算精度问题,使用精确计算避免精度丢失 - 修复导入账户页面白屏问题(缺少Alert组件导入) - 持仓出售支持百分比模式,使用原始精度数据计算,支持小数百分比 - 优化订单金额计算逻辑,确保与SDK一致
This commit is contained in:
@@ -30,6 +30,7 @@ const PositionList: React.FC = () => {
|
||||
const [orderType, setOrderType] = useState<'MARKET' | 'LIMIT'>('LIMIT')
|
||||
const [sellQuantity, setSellQuantity] = useState<string>('')
|
||||
const [limitPrice, setLimitPrice] = useState<string>('')
|
||||
const [selectedPercent, setSelectedPercent] = useState<string | null>(null) // 记录选择的百分比(字符串格式)
|
||||
const [form] = Form.useForm()
|
||||
const [submitting, setSubmitting] = useState(false)
|
||||
const [wsConnected, setWsConnected] = useState(false)
|
||||
@@ -361,6 +362,7 @@ const PositionList: React.FC = () => {
|
||||
setOrderType('LIMIT')
|
||||
setSellQuantity('')
|
||||
setLimitPrice('')
|
||||
setSelectedPercent(null) // 重置百分比选择
|
||||
form.resetFields()
|
||||
|
||||
// 加载市场价格
|
||||
@@ -382,6 +384,9 @@ const PositionList: React.FC = () => {
|
||||
// 处理数量快捷按钮
|
||||
const handleQuantityQuickSelect = (percent: number) => {
|
||||
if (!selectedPosition) return
|
||||
// 记录选择的百分比(转为字符串,避免精度问题)
|
||||
setSelectedPercent(percent.toString())
|
||||
// 计算显示用的数量(用于预览,使用显示数量即可)
|
||||
const quantity = parseFloat(selectedPosition.quantity)
|
||||
const sellQty = (quantity * percent / 100).toFixed(4)
|
||||
setSellQuantity(sellQty)
|
||||
@@ -440,7 +445,12 @@ const PositionList: React.FC = () => {
|
||||
side: selectedPosition.side,
|
||||
outcomeIndex: selectedPosition.outcomeIndex, // 传递 outcomeIndex
|
||||
orderType: orderType,
|
||||
quantity: sellQuantity,
|
||||
// 如果选择了百分比,只传递百分比,不传 quantity
|
||||
// 如果手动输入,只传递 quantity,不传 percent
|
||||
...(selectedPercent != null
|
||||
? { percent: selectedPercent }
|
||||
: { quantity: sellQuantity }
|
||||
),
|
||||
price: orderType === 'LIMIT' ? limitPrice : undefined
|
||||
}
|
||||
|
||||
@@ -452,6 +462,7 @@ const PositionList: React.FC = () => {
|
||||
// 重置表单
|
||||
setSellQuantity('')
|
||||
setLimitPrice('')
|
||||
setSelectedPercent(null) // 重置百分比选择
|
||||
form.resetFields()
|
||||
// 仓位列表会通过WebSocket自动更新
|
||||
} else {
|
||||
@@ -1371,6 +1382,8 @@ const PositionList: React.FC = () => {
|
||||
onChange={(e) => {
|
||||
const newQuantity = e.target.value
|
||||
setSellQuantity(newQuantity)
|
||||
// 用户手动输入时,清除百分比选择
|
||||
setSelectedPercent(null)
|
||||
if (newQuantity) {
|
||||
const price = getCurrentSellPrice()
|
||||
calculatePnl(newQuantity, price)
|
||||
|
||||
Reference in New Issue
Block a user