Files
DinQuant/frontend/dist/js/700-legacy.6aa2b167.js
T
TIANHE d92d4c53dc v2.2.1
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-02-27 22:28:01 +08:00

1 line
17 KiB
JavaScript

"use strict";(self["webpackChunkvue_antd_pro"]=self["webpackChunkvue_antd_pro"]||[]).push([[700],{8700:function(t,e,a){a.d(e,{A:function(){return k}});a(62010),a(27495),a(25440);var i=function(){var t=this,e=t._self._c;return e("a-drawer",{staticClass:"quick-trade-drawer",class:{"theme-dark":t.isDark},attrs:{title:null,width:380,visible:t.visible,closable:!1,bodyStyle:{padding:0},maskStyle:{background:"rgba(0,0,0,0.45)"}},on:{close:t.handleClose}},[e("div",{staticClass:"qt-header"},[e("div",{staticClass:"qt-header-left"},[e("a-icon",{staticClass:"qt-icon",attrs:{type:"thunderbolt",theme:"filled"}}),e("span",{staticClass:"qt-header-title"},[t._v(t._s(t.$t("quickTrade.title")))])],1),e("a-icon",{staticClass:"qt-close",attrs:{type:"close"},on:{click:t.handleClose}})],1),e("div",{staticClass:"qt-symbol-bar"},[e("div",{staticClass:"qt-symbol-info"},[e("span",{staticClass:"qt-symbol-name"},[t._v(t._s(t.symbol))]),t.presetSide?e("a-tag",{attrs:{color:"buy"===t.presetSide?"#52c41a":"#f5222d",size:"small"}},[t._v(" "+t._s("buy"===t.presetSide?t.$t("quickTrade.long"):t.$t("quickTrade.short"))+" ")]):t._e()],1),e("div",{staticClass:"qt-price-display",class:t.priceChangeClass},[e("span",{staticClass:"qt-current-price"},[t._v("$"+t._s(t.formatPrice(t.currentPrice)))])])]),e("div",{staticClass:"qt-section"},[e("div",{staticClass:"qt-label"},[t._v(t._s(t.$t("quickTrade.exchange"))+" "),e("span",{staticClass:"qt-crypto-hint"},[t._v(t._s(t.$t("quickTrade.cryptoOnly")))])]),e("a-select",{staticStyle:{width:"100%"},attrs:{placeholder:t.$t("quickTrade.selectExchange"),loading:t.credLoading,notFoundContent:t.$t("quickTrade.noExchange")},on:{change:t.onCredentialChange},model:{value:t.selectedCredentialId,callback:function(e){t.selectedCredentialId=e},expression:"selectedCredentialId"}},t._l(t.credentials,function(a){return e("a-select-option",{key:a.id,attrs:{value:a.id}},[e("span",{staticStyle:{"text-transform":"capitalize"}},[t._v(t._s(a.exchange_id||a.name))]),a.market_type?e("a-tag",{staticStyle:{"margin-left":"6px"},attrs:{size:"small"}},[t._v(t._s(a.market_type))]):t._e()],1)}),1),t.balance.available>0?e("div",{staticClass:"qt-balance"},[e("span",{staticClass:"qt-balance-label"},[t._v(t._s(t.$t("quickTrade.available"))+":")]),e("span",{staticClass:"qt-balance-value"},[t._v("$"+t._s(t.formatPrice(t.balance.available)))])]):t._e()],1),e("div",{staticClass:"qt-section"},[e("div",{staticClass:"qt-direction-toggle"},[e("div",{staticClass:"qt-dir-btn qt-dir-long",class:{active:"buy"===t.side},on:{click:function(e){t.side="buy"}}},[e("a-icon",{attrs:{type:"arrow-up"}}),t._v(" "+t._s(t.$t("quickTrade.long"))+" ")],1),e("div",{staticClass:"qt-dir-btn qt-dir-short",class:{active:"sell"===t.side},on:{click:function(e){t.side="sell"}}},[e("a-icon",{attrs:{type:"arrow-down"}}),t._v(" "+t._s(t.$t("quickTrade.short"))+" ")],1)])]),e("div",{staticClass:"qt-section"},[e("a-radio-group",{staticStyle:{width:"100%"},attrs:{"button-style":"solid",size:"small"},model:{value:t.orderType,callback:function(e){t.orderType=e},expression:"orderType"}},[e("a-radio-button",{staticStyle:{width:"50%","text-align":"center"},attrs:{value:"market"}},[t._v(" "+t._s(t.$t("quickTrade.market"))+" ")]),e("a-radio-button",{staticStyle:{width:"50%","text-align":"center"},attrs:{value:"limit"}},[t._v(" "+t._s(t.$t("quickTrade.limit"))+" ")])],1)],1),"limit"===t.orderType?e("div",{staticClass:"qt-section"},[e("div",{staticClass:"qt-label"},[t._v(t._s(t.$t("quickTrade.limitPrice")))]),e("a-input-number",{staticStyle:{width:"100%"},attrs:{min:0,step:t.priceStep,precision:t.pricePrecision,placeholder:t.$t("quickTrade.enterPrice")},model:{value:t.limitPrice,callback:function(e){t.limitPrice=e},expression:"limitPrice"}})],1):t._e(),e("div",{staticClass:"qt-section"},[e("div",{staticClass:"qt-label"},[t._v(t._s(t.$t("quickTrade.amount"))+" (USDT)")]),e("a-input-number",{staticStyle:{width:"100%"},attrs:{min:1,step:10,precision:2,placeholder:t.$t("quickTrade.enterAmount")},model:{value:t.amount,callback:function(e){t.amount=e},expression:"amount"}}),e("div",{staticClass:"qt-quick-amounts"},t._l(t.quickAmountPcts,function(a){return e("a-button",{key:a,attrs:{size:"small",disabled:t.balance.available<=0},on:{click:function(e){return t.setAmountByPercent(a)}}},[t._v(" "+t._s(a)+"% ")])}),1)],1),"spot"!==t.marketType?e("div",{staticClass:"qt-section"},[e("div",{staticClass:"qt-label"},[t._v(t._s(t.$t("quickTrade.leverage")))]),e("div",{staticClass:"qt-leverage-row"},[e("a-slider",{staticStyle:{flex:"1","margin-right":"12px"},attrs:{min:1,max:125,marks:t.leverageMarks,tipFormatter:function(t){return t+"x"}},model:{value:t.leverage,callback:function(e){t.leverage=e},expression:"leverage"}}),e("a-input-number",{staticStyle:{width:"80px"},attrs:{min:1,max:125,formatter:function(t){return"".concat(t,"x")},parser:function(t){return t.replace("x","")}},model:{value:t.leverage,callback:function(e){t.leverage=e},expression:"leverage"}})],1)]):t._e(),e("a-collapse",{staticStyle:{background:"transparent",margin:"0 16px"},attrs:{bordered:!1}},[e("a-collapse-panel",{key:"tpsl",style:t.collapseStyle,attrs:{header:t.$t("quickTrade.tpsl")}},[e("div",{staticClass:"qt-tpsl-row"},[e("div",{staticClass:"qt-tpsl-item"},[e("span",{staticClass:"qt-label",staticStyle:{color:"#52c41a"}},[t._v(t._s(t.$t("quickTrade.tp")))]),e("a-input-number",{staticStyle:{width:"100%"},attrs:{min:0,step:t.priceStep,precision:t.pricePrecision,placeholder:t.$t("quickTrade.tpPlaceholder")},model:{value:t.tpPrice,callback:function(e){t.tpPrice=e},expression:"tpPrice"}})],1),e("div",{staticClass:"qt-tpsl-item"},[e("span",{staticClass:"qt-label",staticStyle:{color:"#f5222d"}},[t._v(t._s(t.$t("quickTrade.sl")))]),e("a-input-number",{staticStyle:{width:"100%"},attrs:{min:0,step:t.priceStep,precision:t.pricePrecision,placeholder:t.$t("quickTrade.slPlaceholder")},model:{value:t.slPrice,callback:function(e){t.slPrice=e},expression:"slPrice"}})],1)])])],1),e("div",{staticClass:"qt-submit-section"},[e("a-button",{staticClass:"qt-submit-btn",class:["buy"===t.side?"qt-btn-long":"qt-btn-short"],attrs:{type:"buy"===t.side?"primary":"danger",size:"large",block:"",loading:t.submitting,disabled:!t.canSubmit},on:{click:t.handleSubmit}},[e("a-icon",{attrs:{type:"buy"===t.side?"arrow-up":"arrow-down"}}),t._v(" "+t._s("buy"===t.side?t.$t("quickTrade.buyLong"):t.$t("quickTrade.sellShort"))+" "+t._s(t.symbol)+" ")],1)],1),e("div",{staticClass:"qt-position-section"},[e("div",{staticClass:"qt-section-header"},[e("a-icon",{attrs:{type:"wallet"}}),t._v(" "+t._s(t.$t("quickTrade.currentPosition"))+" ")],1),t.currentPosition?e("div",{staticClass:"qt-position-card",class:t.currentPosition.side},[e("div",{staticClass:"qt-pos-row"},[e("span",[t._v(t._s(t.$t("quickTrade.side")))]),e("a-tag",{attrs:{color:"long"===t.currentPosition.side?"#52c41a":"#f5222d",size:"small"}},[t._v(" "+t._s("long"===t.currentPosition.side?t.$t("quickTrade.long"):t.$t("quickTrade.short"))+" ")])],1),e("div",{staticClass:"qt-pos-row"},[e("span",[t._v(t._s(t.$t("quickTrade.posSize")))]),e("span",[t._v(t._s(t.currentPosition.size))])]),e("div",{staticClass:"qt-pos-row"},[e("span",[t._v(t._s(t.$t("quickTrade.entryPrice")))]),e("span",[t._v("$"+t._s(t.formatPrice(t.currentPosition.entry_price)))])]),t.currentPosition.mark_price?e("div",{staticClass:"qt-pos-row"},[e("span",[t._v(t._s(t.$t("quickTrade.markPrice")))]),e("span",[t._v("$"+t._s(t.formatPrice(t.currentPosition.mark_price)))])]):t._e(),t.currentPosition.leverage&&t.currentPosition.leverage>1?e("div",{staticClass:"qt-pos-row"},[e("span",[t._v(t._s(t.$t("quickTrade.leverage")))]),e("span",[t._v(t._s(t.currentPosition.leverage)+"x")])]):t._e(),e("div",{staticClass:"qt-pos-row"},[e("span",[t._v(t._s(t.$t("quickTrade.unrealizedPnl")))]),e("span",{class:t.currentPosition.unrealized_pnl>=0?"qt-green":"qt-red"},[t._v(" $"+t._s(t.formatPrice(t.currentPosition.unrealized_pnl))+" ")])]),e("a-button",{staticStyle:{"margin-top":"8px"},attrs:{type:"danger",size:"small",block:"",ghost:"",loading:t.closingPosition},on:{click:t.handleClosePosition}},[t._v(" "+t._s(t.$t("quickTrade.closePosition"))+" ")])],1):e("div",{staticClass:"qt-position-empty"},[e("a-empty",{staticStyle:{padding:"20px 0"},attrs:{description:t.$t("quickTrade.noPosition"),image:!1}},[e("template",{slot:"description"},[e("span",{staticStyle:{color:"#999","font-size":"12px"}},[t._v(t._s(t.$t("quickTrade.noPositionHint")))])])],2)],1)]),t.recentTrades.length>0?e("div",{staticClass:"qt-history-section"},[e("div",{staticClass:"qt-section-header"},[e("a-icon",{attrs:{type:"history"}}),t._v(" "+t._s(t.$t("quickTrade.recentTrades"))+" ")],1),e("div",{staticClass:"qt-trade-list"},t._l(t.recentTrades,function(a){return e("div",{key:a.id,staticClass:"qt-trade-item"},[e("div",{staticClass:"qt-trade-main"},[e("a-tag",{attrs:{color:"buy"===a.side?"#52c41a":"#f5222d",size:"small"}},[t._v(" "+t._s("buy"===a.side?"LONG":"SHORT")+" ")]),e("span",{staticClass:"qt-trade-symbol"},[t._v(t._s(a.symbol))]),e("span",{staticClass:"qt-trade-amount"},[t._v("$"+t._s(t.formatPrice(a.amount)))])],1),e("div",{staticClass:"qt-trade-meta"},[e("a-tag",{attrs:{color:"filled"===a.status?"#52c41a":"failed"===a.status?"#f5222d":"#faad14",size:"small"}},[t._v(" "+t._s(a.status)+" ")]),e("span",{staticClass:"qt-trade-time"},[t._v(t._s(t.formatTime(a.created_at)))])],1)])}),0)]):t._e()],1)},s=[],r=a(81127),n=a(56252),c=a(76338),l=(a(28706),a(2008),a(74423),a(2892),a(26099),a(21699),a(68156),a(95353)),o=a(42430),d=a(75769);function u(t){return(0,d.Ay)({url:"/api/quick-trade/place-order",method:"post",data:t})}function p(t){return(0,d.Ay)({url:"/api/quick-trade/balance",method:"get",params:t})}function m(t){return(0,d.Ay)({url:"/api/quick-trade/position",method:"get",params:t})}function v(t){return(0,d.Ay)({url:"/api/quick-trade/history",method:"get",params:t})}function h(t){return(0,d.Ay)({url:"/api/quick-trade/close-position",method:"post",data:t})}var b={name:"QuickTradePanel",props:{visible:{type:Boolean,default:!1},symbol:{type:String,default:""},presetSide:{type:String,default:""},presetPrice:{type:Number,default:0},source:{type:String,default:"manual"},marketType:{type:String,default:"swap"}},data:function(){return{credentials:[],selectedCredentialId:void 0,credLoading:!1,balance:{available:0,total:0},side:"buy",orderType:"market",limitPrice:0,amount:100,leverage:5,tpPrice:null,slPrice:null,submitting:!1,closingPosition:!1,currentPrice:0,currentPosition:null,recentTrades:[],quickAmountPcts:[10,25,50,75,100],leverageMarks:{1:"1x",5:"5x",10:"10x",25:"25x",50:"50x",100:"100x",125:"125x"},pollTimer:null}},computed:(0,c.A)((0,c.A)({},(0,l.aH)({navTheme:function(t){return t.app.theme}})),{},{isDark:function(){return"dark"===this.navTheme||"realdark"===this.navTheme},priceStep:function(){return this.currentPrice>1e4?1:this.currentPrice>100?.1:this.currentPrice>1?.01:1e-4},pricePrecision:function(){return this.currentPrice>1e4?0:this.currentPrice>100?1:this.currentPrice>1?2:4},canSubmit:function(){return this.selectedCredentialId&&this.symbol&&this.amount>0&&!this.submitting},priceChangeClass:function(){return""},collapseStyle:function(){return{background:"transparent",borderRadius:"4px",border:0,overflow:"hidden"}}}),watch:{visible:function(t){t?this.init():this.stopPolling()},symbol:function(t){t&&this.selectedCredentialId&&this.loadPosition()},selectedCredentialId:function(t){t&&this.symbol&&this.loadPosition()},presetSide:function(t){t&&(this.side=t)},presetPrice:function(t){t>0&&(this.currentPrice=t,this.limitPrice=t)}},methods:{init:function(){var t=this;return(0,n.A)((0,r.A)().m(function e(){return(0,r.A)().w(function(e){while(1)switch(e.n){case 0:return t.presetSide&&(t.side=t.presetSide),t.presetPrice>0&&(t.currentPrice=t.presetPrice,t.limitPrice=t.presetPrice),e.n=1,t.loadCredentials();case 1:if(!t.selectedCredentialId||!t.symbol){e.n=2;break}return e.n=2,t.loadPosition();case 2:t.loadHistory(),t.startPolling();case 3:return e.a(2)}},e)}))()},loadCredentials:function(){var t=this;return(0,n.A)((0,r.A)().m(function e(){var a,i,s;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:return t.credLoading=!0,e.p=1,e.n=2,(0,o.IA)();case 2:a=e.v,1===a.code&&a.data&&(i=a.data.items||a.data||[],s=["ibkr","mt5"],t.credentials=i.filter(function(t){var e=(t.exchange_id||t.name||"").toLowerCase();return!s.includes(e)}),!t.selectedCredentialId&&t.credentials.length>0&&(t.selectedCredentialId=t.credentials[0].id,t.onCredentialChange(t.selectedCredentialId))),e.n=4;break;case 3:e.p=3,e.v;case 4:return e.p=4,t.credLoading=!1,e.f(4);case 5:return e.a(2)}},e,null,[[1,3,4,5]])}))()},onCredentialChange:function(t){var e=this;return(0,n.A)((0,r.A)().m(function a(){return(0,r.A)().w(function(a){while(1)switch(a.n){case 0:return e.selectedCredentialId=t,a.n=1,e.loadBalance();case 1:return a.n=2,e.loadPosition();case 2:return a.a(2)}},a)}))()},loadBalance:function(){var t=this;return(0,n.A)((0,r.A)().m(function e(){var a;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(t.selectedCredentialId){e.n=1;break}return e.a(2);case 1:return e.p=1,e.n=2,p({credential_id:t.selectedCredentialId,market_type:t.marketType});case 2:a=e.v,1===a.code&&a.data&&(t.balance=a.data),e.n=4;break;case 3:e.p=3,e.v;case 4:return e.a(2)}},e,null,[[1,3]])}))()},loadPosition:function(){var t=this;return(0,n.A)((0,r.A)().m(function e(){var a;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(t.selectedCredentialId&&t.symbol){e.n=1;break}return e.a(2);case 1:return e.p=1,e.n=2,m({credential_id:t.selectedCredentialId,symbol:t.symbol,market_type:t.marketType});case 2:a=e.v,1===a.code&&a.data&&a.data.positions&&a.data.positions.length>0?t.currentPosition=a.data.positions[0]:t.currentPosition=null,e.n=4;break;case 3:e.p=3,e.v,t.currentPosition=null;case 4:return e.a(2)}},e,null,[[1,3]])}))()},loadHistory:function(){var t=this;return(0,n.A)((0,r.A)().m(function e(){var a;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:return e.p=0,e.n=1,v({limit:5});case 1:a=e.v,1===a.code&&a.data&&(t.recentTrades=a.data.trades||[]),e.n=3;break;case 2:e.p=2,e.v;case 3:return e.a(2)}},e,null,[[0,2]])}))()},setAmountByPercent:function(t){this.balance.available>0&&(this.amount=Math.floor(this.balance.available*t/100*100)/100)},handleSubmit:function(){var t=this;return(0,n.A)((0,r.A)().m(function e(){var a,i,s;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(t.canSubmit){e.n=1;break}return e.a(2);case 1:return t.submitting=!0,e.p=2,a={credential_id:t.selectedCredentialId,symbol:t.symbol,side:t.side,order_type:t.orderType,amount:t.amount,price:"limit"===t.orderType?t.limitPrice:0,leverage:"spot"!==t.marketType?t.leverage:1,market_type:t.marketType,tp_price:t.tpPrice||0,sl_price:t.slPrice||0,source:t.source},e.n=3,u(a);case 3:if(i=e.v,1!==i.code){e.n=7;break}return t.$message.success(t.$t("quickTrade.orderSuccess")),t.$emit("order-success",i.data),e.n=4,t.loadBalance();case 4:return e.n=5,t.loadPosition();case 5:return e.n=6,t.loadHistory();case 6:i.data&&i.data.exchange_order_id&&setTimeout(function(){t.loadPosition()},2e3),e.n=8;break;case 7:t.$message.error(i.msg||t.$t("quickTrade.orderFailed"));case 8:e.n=10;break;case 9:e.p=9,s=e.v,t.$message.error(s.message||t.$t("quickTrade.orderFailed"));case 10:return e.p=10,t.submitting=!1,e.f(10);case 11:return e.a(2)}},e,null,[[2,9,10,11]])}))()},handleClosePosition:function(){var t=this;return(0,n.A)((0,r.A)().m(function e(){var a,i,s;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(t.currentPosition&&t.selectedCredentialId){e.n=1;break}return e.a(2);case 1:return t.closingPosition=!0,e.p=2,a={credential_id:t.selectedCredentialId,symbol:t.symbol,market_type:t.marketType,size:0,source:"manual"},e.n=3,h(a);case 3:i=e.v,1===i.code?(t.$message.success(t.$t("quickTrade.positionClosed")),t.currentPosition=null,t.loadBalance(),t.loadPosition(),t.loadHistory()):t.$message.error(i.msg||t.$t("quickTrade.orderFailed")),e.n=5;break;case 4:e.p=4,s=e.v,t.$message.error(s.message||t.$t("quickTrade.orderFailed"));case 5:return e.p=5,t.closingPosition=!1,e.f(5);case 6:return e.a(2)}},e,null,[[2,4,5,6]])}))()},startPolling:function(){var t=this;this.stopPolling(),this.pollTimer=setInterval(function(){t.selectedCredentialId&&(t.loadBalance(),t.loadPosition())},1e4)},stopPolling:function(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)},handleClose:function(){this.$emit("close"),this.$emit("update:visible",!1)},formatPrice:function(t){var e=parseFloat(t||0);return Math.abs(e)>=1e4?e.toLocaleString("en-US",{minimumFractionDigits:0,maximumFractionDigits:0}):Math.abs(e)>=100?e.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:2}):Math.abs(e)>=1?e.toLocaleString("en-US",{minimumFractionDigits:2,maximumFractionDigits:4}):e.toLocaleString("en-US",{minimumFractionDigits:4,maximumFractionDigits:6})},formatTime:function(t){if(!t)return"";var e=new Date(t),a=function(t){return String(t).padStart(2,"0")};return"".concat(a(e.getMonth()+1),"-").concat(a(e.getDate())," ").concat(a(e.getHours()),":").concat(a(e.getMinutes()))}},beforeDestroy:function(){this.stopPolling()}},f=b,g=a(81656),_=(0,g.A)(f,i,s,!1,null,"0f7d87dc",null),k=_.exports},42430:function(t,e,a){a.d(e,{IA:function(){return n},PR:function(){return c},kI:function(){return l}});var i=a(76338),s=a(75769),r={list:"/api/credentials/list",get:"/api/credentials/get",create:"/api/credentials/create",delete:"/api/credentials/delete"};function n(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,s.Ay)({url:r.list,method:"get",params:t})}function c(t){return(0,s.Ay)({url:r.create,method:"post",data:t})}function l(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,s.Ay)({url:r.delete,method:"delete",params:(0,i.A)({id:t},e)})}}}]);