From 6f8a8de9bea88b41d501c37344056c553819f611 Mon Sep 17 00:00:00 2001 From: Seven Date: Sun, 11 Jan 2026 14:34:00 +0700 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E4=BA=A4=E6=98=93?= =?UTF-8?q?=E6=96=B9=E5=BC=8F=E9=85=8D=E7=BD=AE=EF=BC=8C=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E7=BB=84=E4=BB=B6=E4=BB=A5=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E9=99=90=E4=BB=B7=E5=92=8C=E5=B8=82=E4=BB=B7=E5=A7=94=E6=89=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/types.ts | 2 + src/views/trade/components/confirm-order.vue | 9 + src/views/trade/components/trade-form.vue | 292 ------------------- src/views/trade/components/trade-way.vue | 64 +++- src/views/trade/config.ts | 48 +++ src/views/trade/index.vue | 36 ++- 6 files changed, 147 insertions(+), 304 deletions(-) create mode 100644 src/views/trade/components/confirm-order.vue delete mode 100644 src/views/trade/components/trade-form.vue create mode 100644 src/views/trade/config.ts diff --git a/src/api/types.ts b/src/api/types.ts index 42f0b0f..f6e9f70 100644 --- a/src/api/types.ts +++ b/src/api/types.ts @@ -94,6 +94,8 @@ export type EaringsDetailData = Treaty.Data; +export type SpotOrderBody = TreatyBody; + /** * 应用版本信息 */ diff --git a/src/views/trade/components/confirm-order.vue b/src/views/trade/components/confirm-order.vue new file mode 100644 index 0000000..efb2cbc --- /dev/null +++ b/src/views/trade/components/confirm-order.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/trade/components/trade-form.vue b/src/views/trade/components/trade-form.vue deleted file mode 100644 index 93e9aae..0000000 --- a/src/views/trade/components/trade-form.vue +++ /dev/null @@ -1,292 +0,0 @@ - - - - - diff --git a/src/views/trade/components/trade-way.vue b/src/views/trade/components/trade-way.vue index 3e539f5..aeb6266 100644 --- a/src/views/trade/components/trade-way.vue +++ b/src/views/trade/components/trade-way.vue @@ -1,19 +1,71 @@ - + diff --git a/src/views/trade/config.ts b/src/views/trade/config.ts new file mode 100644 index 0000000..42d66fd --- /dev/null +++ b/src/views/trade/config.ts @@ -0,0 +1,48 @@ +import * as yup from "yup"; + +export enum TradeWayValueEnum { + LIMIT = "limit", + MARKET = "market", +} + +export type TradeWayValue = `${TradeWayValueEnum}`; + +export interface TradeWayConfig { + name: string; + value: TradeWayValue; + description: string; + icon: string; +} + +export const tradeWayConfig: TradeWayConfig[] = [ + { + name: "限价委托", + value: "limit", + description: "以指定价格买入或卖出", + icon: "hugeicons:trade-up", + }, +]; + +export const confirmOrderSchema = yup.object({ + price: yup.number().when("way", { + is: TradeWayValueEnum.LIMIT !== undefined, + then: yup + .number() + .typeError("请输入有效的价格") + .required("价格为必填项") + .moreThan(0, "价格必须大于0"), + otherwise: yup.number().notRequired(), + }), + amount: yup + .number() + .typeError("请输入有效的数量") + .required("数量为必填项") + .moreThan(0, "数量必须大于0"), + way: yup + .mixed() + .oneOf( + Object.values(TradeWayValueEnum), + "请选择有效的交易方式", + ) + .required("交易方式为必填项"), +}); diff --git a/src/views/trade/index.vue b/src/views/trade/index.vue index e3f08b0..8955bf5 100644 --- a/src/views/trade/index.vue +++ b/src/views/trade/index.vue @@ -1,5 +1,6 @@