a6ea4d967c
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
1 line
60 KiB
JavaScript
1 line
60 KiB
JavaScript
"use strict";(self["webpackChunkvue_antd_pro"]=self["webpackChunkvue_antd_pro"]||[]).push([[494],{21494:function(t,e,o){o.r(e),o.d(e,{default:function(){return R}});o(74423),o(62010),o(9868),o(21699);var s=function(){var t=this,e=t._self._c;return e("div",{staticClass:"portfolio-container",class:{"theme-dark":t.isDarkTheme,embedded:t.embedded}},[e("div",{staticClass:"summary-section"},[e("div",{staticClass:"summary-card total-value"},[e("div",{staticClass:"card-icon"},[e("a-icon",{attrs:{type:"wallet"}})],1),e("div",{staticClass:"card-content"},[e("div",{staticClass:"card-label"},[t._v(t._s(t.$t("portfolio.summary.totalValue")))]),e("div",{staticClass:"card-value"},[e("span",{staticClass:"currency"},[t._v("$")]),e("span",{staticClass:"amount"},[t._v(t._s(t.formatNumber(t.summary.total_market_value)))])]),void 0!==t.summary.today_change?e("div",{staticClass:"card-sub"},[e("span",{class:t.summary.today_change>=0?"positive":"negative"},[t._v(" "+t._s(t.$t("portfolio.summary.today"))+": "+t._s(t.summary.today_change>=0?"+":"")+"$"+t._s(t.formatNumber(t.summary.today_change))+" ")])]):t._e()])]),e("div",{staticClass:"summary-card"},[e("div",{staticClass:"card-icon cost"},[e("a-icon",{attrs:{type:"dollar"}})],1),e("div",{staticClass:"card-content"},[e("div",{staticClass:"card-label"},[t._v(t._s(t.$t("portfolio.summary.totalCost")))]),e("div",{staticClass:"card-value"},[t._v("$"+t._s(t.formatNumber(t.summary.total_cost)))])])]),e("div",{staticClass:"summary-card"},[e("div",{staticClass:"card-icon",class:t.summary.total_pnl>=0?"profit":"loss"},[e("a-icon",{attrs:{type:t.summary.total_pnl>=0?"rise":"fall"}})],1),e("div",{staticClass:"card-content"},[e("div",{staticClass:"card-label"},[t._v(t._s(t.$t("portfolio.summary.totalPnl")))]),e("div",{staticClass:"card-value",class:t.summary.total_pnl>=0?"positive":"negative"},[t._v(" "+t._s(t.summary.total_pnl>=0?"+":"")+"$"+t._s(t.formatNumber(t.summary.total_pnl))+" "),e("span",{staticClass:"percent"},[t._v("("+t._s(t.summary.total_pnl_percent>=0?"+":"")+t._s(t.summary.total_pnl_percent)+"%)")])])])]),e("div",{staticClass:"summary-card"},[e("div",{staticClass:"card-icon positions"},[e("a-icon",{attrs:{type:"fund"}})],1),e("div",{staticClass:"card-content"},[e("div",{staticClass:"card-label"},[t._v(t._s(t.$t("portfolio.summary.positionCount")))]),e("div",{staticClass:"card-value"},[t._v(" "+t._s(t.summary.position_count)+" "),t.profitLossStats.profit>0||t.profitLossStats.loss>0?e("span",{staticClass:"position-detail"},[t._v(" ("),e("span",{staticClass:"positive"},[t._v(t._s(t.profitLossStats.profit))]),t._v("/"),e("span",{staticClass:"negative"},[t._v(t._s(t.profitLossStats.loss))]),t._v(") ")]):t._e()]),e("div",{staticClass:"card-sub"},[t._v(" "+t._s(t.$t("portfolio.summary.profitLossRatio"))+" ")])])])]),e("div",{staticClass:"summary-section secondary"},[e("div",{staticClass:"summary-card mini"},[e("div",{staticClass:"card-icon today",class:t.summary.today_pnl>=0?"profit":"loss"},[e("a-icon",{attrs:{type:"stock"}})],1),e("div",{staticClass:"card-content"},[e("div",{staticClass:"card-label"},[t._v(t._s(t.$t("portfolio.summary.todayPnl")))]),e("div",{staticClass:"card-value",class:t.summary.today_pnl>=0?"positive":"negative"},[t._v(" "+t._s(t.summary.today_pnl>=0?"+":"")+"$"+t._s(t.formatNumber(t.summary.today_pnl||0))+" ")])])]),e("div",{staticClass:"summary-card mini"},[e("div",{staticClass:"card-icon best"},[e("a-icon",{attrs:{type:"trophy"}})],1),e("div",{staticClass:"card-content"},[e("div",{staticClass:"card-label"},[t._v(t._s(t.$t("portfolio.summary.bestPerformer")))]),t.bestPerformer?e("div",{staticClass:"card-value small positive"},[t._v(" "+t._s(t.bestPerformer.symbol)+" +"+t._s(t.bestPerformer.pnl_percent)+"% ")]):e("div",{staticClass:"card-value small"},[t._v("-")])])]),e("div",{staticClass:"summary-card mini"},[e("div",{staticClass:"card-icon worst"},[e("a-icon",{attrs:{type:"warning"}})],1),e("div",{staticClass:"card-content"},[e("div",{staticClass:"card-label"},[t._v(t._s(t.$t("portfolio.summary.worstPerformer")))]),t.worstPerformer?e("div",{staticClass:"card-value small negative"},[t._v(" "+t._s(t.worstPerformer.symbol)+" "+t._s(t.worstPerformer.pnl_percent)+"% ")]):e("div",{staticClass:"card-value small"},[t._v("-")])])]),e("div",{staticClass:"summary-card mini sync-card"},[e("div",{staticClass:"card-icon sync",class:{syncing:t.isSyncing}},[e("a-icon",{attrs:{type:"sync",spin:t.isSyncing}})],1),e("div",{staticClass:"card-content"},[e("div",{staticClass:"card-label"},[t._v(t._s(t.$t("portfolio.summary.priceSync")))]),e("div",{staticClass:"card-value small"},[t._v(" "+t._s(t.lastSyncTime?t.formatSyncTime(t.lastSyncTime):"-")+" ")]),e("div",{staticClass:"card-sub"},[t._v(" "+t._s(t.$t("portfolio.summary.syncInterval"))+": 30s "),e("a-button",{staticStyle:{padding:"0","margin-left":"8px"},attrs:{type:"link",size:"small",loading:t.isSyncing},on:{click:t.refreshPrices}},[t.isSyncing?t._e():e("a-icon",{attrs:{type:"reload"}})],1)],1)])])]),e("div",{staticClass:"main-content"},[e("div",{staticClass:"positions-section"},[e("div",{staticClass:"section-header"},[e("h3",[e("a-icon",{attrs:{type:"stock"}}),e("span",[t._v(t._s(t.$t("portfolio.positions.title")))])],1),e("div",{staticClass:"header-actions"},[e("a-radio-group",{staticStyle:{"margin-right":"12px"},attrs:{size:"small"},model:{value:t.viewMode,callback:function(e){t.viewMode=e},expression:"viewMode"}},[e("a-radio-button",{attrs:{value:"grid"}},[e("a-icon",{attrs:{type:"appstore"}})],1),e("a-radio-button",{attrs:{value:"group"}},[e("a-icon",{attrs:{type:"folder"}})],1)],1),"grid"===t.viewMode?e("a-select",{staticStyle:{width:"150px","margin-right":"12px"},attrs:{placeholder:t.$t("portfolio.groups.all"),"allow-clear":""},on:{change:t.filterByGroup},model:{value:t.selectedGroup,callback:function(e){t.selectedGroup=e},expression:"selectedGroup"}},[e("a-select-option",{attrs:{value:""}},[t._v(t._s(t.$t("portfolio.groups.all")))]),e("a-select-option",{attrs:{value:"__ungrouped__"}},[t._v(t._s(t.$t("portfolio.groups.ungrouped")))]),t._l(t.groups,function(o){return e("a-select-option",{key:o.name,attrs:{value:o.name}},[t._v(" "+t._s(o.name)+" ("+t._s(o.count)+") ")])})],2):t._e(),e("a-button",{attrs:{type:"primary"},on:{click:function(e){t.showAddPositionModal=!0}}},[e("a-icon",{attrs:{type:"plus"}}),t._v(" "+t._s(t.$t("portfolio.positions.add"))+" ")],1)],1)]),e("a-spin",{attrs:{spinning:t.loadingPositions}},[e("div",{staticClass:"positions-list"},[0===t.positions.length?e("div",{staticClass:"empty-state"},[e("a-empty",{attrs:{description:t.$t("portfolio.positions.empty")}},[e("a-button",{attrs:{type:"primary"},on:{click:function(e){t.showAddPositionModal=!0}}},[e("a-icon",{attrs:{type:"plus"}}),t._v(" "+t._s(t.$t("portfolio.positions.addFirst"))+" ")],1)],1)],1):"grid"===t.viewMode?e("div",{staticClass:"position-grid"},t._l(t.filteredPositions,function(o){return e("div",{key:o.id,staticClass:"position-card",class:{profit:o.pnl>=0,loss:o.pnl<0}},[e("div",{staticClass:"position-header"},[e("div",{staticClass:"symbol-info"},[e("a-tag",{attrs:{color:t.getMarketColor(o.market),size:"small"}},[t._v(t._s(t.getMarketName(o.market)))]),e("span",{staticClass:"symbol"},[t._v(t._s(o.symbol))]),e("span",{staticClass:"name"},[t._v(t._s(o.name))]),o.group_name?e("a-tag",{staticStyle:{"margin-left":"4px"},attrs:{size:"small",color:"blue"}},[e("a-icon",{attrs:{type:"folder"}}),t._v(" "+t._s(o.group_name)+" ")],1):t._e()],1),e("div",{staticClass:"position-actions"},[e("a-tooltip",{attrs:{title:t.hasAlertForPosition(o.id)?t.$t("portfolio.alerts.editAlert"):t.$t("portfolio.alerts.addAlert")}},[e("a-button",{class:{"has-alert":t.hasAlertForPosition(o.id)},attrs:{type:"link",size:"small"},on:{click:function(e){return t.showAddAlertForPosition(o)}}},[e("a-icon",{attrs:{type:"bell",theme:t.hasAlertForPosition(o.id)?"filled":"outlined"}})],1)],1),e("a-button",{attrs:{type:"link",size:"small"},on:{click:function(e){return t.editPosition(o)}}},[e("a-icon",{attrs:{type:"edit"}})],1),e("a-popconfirm",{attrs:{title:t.$t("portfolio.positions.deleteConfirm")},on:{confirm:function(e){return t.deletePosition(o.id)}}},[e("a-button",{staticClass:"delete-btn",attrs:{type:"link",size:"small"}},[e("a-icon",{attrs:{type:"delete"}})],1)],1)],1)]),e("div",{staticClass:"position-body"},[e("div",{staticClass:"price-row"},[e("div",{staticClass:"current-price"},[e("span",{staticClass:"label"},[t._v(t._s(t.$t("portfolio.positions.currentPrice")))]),e("span",{staticClass:"value"},[t._v(t._s(t.getCurrencySymbol(o.market))+t._s(t.formatPrice(o.current_price)))]),e("span",{staticClass:"change",class:o.price_change>=0?"up":"down"},[t._v(" "+t._s(o.price_change>=0?"▲":"▼")+t._s(Math.abs(o.price_change_percent).toFixed(2))+"% ")])]),e("div",{staticClass:"entry-price"},[e("span",{staticClass:"label"},[t._v(t._s(t.$t("portfolio.positions.entryPrice")))]),e("span",{staticClass:"value"},[t._v(t._s(t.getCurrencySymbol(o.market))+t._s(t.formatPrice(o.entry_price)))])])]),e("div",{staticClass:"quantity-row"},[e("div",{staticClass:"item"},[e("span",{staticClass:"label"},[t._v(t._s(t.$t("portfolio.positions.quantity")))]),e("span",{staticClass:"value"},[t._v(t._s(t.formatNumber(o.quantity,4)))])]),e("div",{staticClass:"item"},[e("span",{staticClass:"label"},[t._v(t._s(t.$t("portfolio.positions.side")))]),e("a-tag",{attrs:{color:"long"===o.side?"green":"red",size:"small"}},[t._v(" "+t._s("long"===o.side?t.$t("portfolio.positions.long"):t.$t("portfolio.positions.short"))+" ")])],1),e("div",{staticClass:"item"},[e("span",{staticClass:"label"},[t._v(t._s(t.$t("portfolio.positions.marketValue")))]),e("span",{staticClass:"value"},[t._v(t._s(t.getCurrencySymbol(o.market))+t._s(t.formatNumber(o.market_value)))])])])]),e("div",{staticClass:"position-footer"},[e("div",{staticClass:"pnl"},[e("span",{staticClass:"label"},[t._v(t._s(t.$t("portfolio.positions.pnl")))]),e("span",{staticClass:"value",class:o.pnl>=0?"positive":"negative"},[t._v(" "+t._s(o.pnl>=0?"+":"")+t._s(t.getCurrencySymbol(o.market))+t._s(t.formatNumber(o.pnl))+" "),e("span",{staticClass:"percent"},[t._v("("+t._s(o.pnl_percent>=0?"+":"")+t._s(o.pnl_percent)+"%)")])])])])])}),0):e("div",{staticClass:"position-collapse-view"},[e("a-collapse",{attrs:{bordered:!1},model:{value:t.activeGroups,callback:function(e){t.activeGroups=e},expression:"activeGroups"}},[t.ungroupedPositions.length>0?e("a-collapse-panel",{key:"__ungrouped__",staticClass:"group-panel"},[e("template",{slot:"header"},[e("div",{staticClass:"group-header"},[e("span",{staticClass:"group-name"},[e("a-icon",{staticStyle:{"margin-right":"8px"},attrs:{type:"inbox"}}),t._v(" "+t._s(t.$t("portfolio.groups.ungrouped"))+" ")],1),e("span",{staticClass:"group-stats"},[e("span",{staticClass:"count"},[t._v(t._s(t.ungroupedPositions.length)+" "+t._s(t.$t("portfolio.positions.items")))]),e("span",{staticClass:"group-pnl",class:t.getGroupPnl(t.ungroupedPositions)>=0?"positive":"negative"},[t._v(" "+t._s(t.getGroupPnl(t.ungroupedPositions)>=0?"+":"")+"$"+t._s(t.formatNumber(t.getGroupPnl(t.ungroupedPositions)))+" ")])])])]),e("div",{staticClass:"position-grid compact"},t._l(t.ungroupedPositions,function(o){return e("div",{key:o.id,staticClass:"position-card compact",class:{profit:o.pnl>=0,loss:o.pnl<0}},[e("div",{staticClass:"position-header"},[e("div",{staticClass:"symbol-info"},[e("a-tag",{attrs:{color:t.getMarketColor(o.market),size:"small"}},[t._v(t._s(t.getMarketName(o.market)))]),e("span",{staticClass:"symbol"},[t._v(t._s(o.symbol))]),e("span",{staticClass:"name"},[t._v(t._s(o.name))])],1),e("div",{staticClass:"position-actions"},[e("a-button",{attrs:{type:"link",size:"small"},on:{click:function(e){return t.editPosition(o)}}},[e("a-icon",{attrs:{type:"edit"}})],1),e("a-popconfirm",{attrs:{title:t.$t("portfolio.positions.deleteConfirm")},on:{confirm:function(e){return t.deletePosition(o.id)}}},[e("a-button",{staticClass:"delete-btn",attrs:{type:"link",size:"small"}},[e("a-icon",{attrs:{type:"delete"}})],1)],1)],1)]),e("div",{staticClass:"position-compact-body"},[e("div",{staticClass:"compact-item"},[e("span",{staticClass:"value"},[t._v(t._s(t.getCurrencySymbol(o.market))+t._s(t.formatPrice(o.current_price)))]),e("span",{staticClass:"change",class:o.price_change>=0?"up":"down"},[t._v(" "+t._s(o.price_change>=0?"▲":"▼")+t._s(Math.abs(o.price_change_percent).toFixed(2))+"% ")])]),e("div",{staticClass:"compact-item"},[e("span",{staticClass:"label"},[t._v(t._s(t.$t("portfolio.positions.quantity"))+":")]),e("span",{staticClass:"value"},[t._v(t._s(t.formatNumber(o.quantity,4)))])]),e("div",{staticClass:"compact-item pnl",class:o.pnl>=0?"positive":"negative"},[t._v(" "+t._s(o.pnl>=0?"+":"")+t._s(t.getCurrencySymbol(o.market))+t._s(t.formatNumber(o.pnl))+" "),e("span",{staticClass:"percent"},[t._v("("+t._s(o.pnl_percent>=0?"+":"")+t._s(o.pnl_percent)+"%)")])])])])}),0)],2):t._e(),t._l(t.groupsWithPositions,function(o){return e("a-collapse-panel",{key:o.name,staticClass:"group-panel"},[e("template",{slot:"header"},[e("div",{staticClass:"group-header"},[e("span",{staticClass:"group-name"},[e("a-icon",{staticStyle:{"margin-right":"8px",color:"#1890ff"},attrs:{type:"folder"}}),t._v(" "+t._s(o.name)+" ")],1),e("span",{staticClass:"group-stats"},[e("span",{staticClass:"count"},[t._v(t._s(o.positions.length)+" "+t._s(t.$t("portfolio.positions.items")))]),e("span",{staticClass:"group-pnl",class:t.getGroupPnl(o.positions)>=0?"positive":"negative"},[t._v(" "+t._s(t.getGroupPnl(o.positions)>=0?"+":"")+"$"+t._s(t.formatNumber(t.getGroupPnl(o.positions)))+" ")])])])]),e("div",{staticClass:"position-grid compact"},t._l(o.positions,function(o){return e("div",{key:o.id,staticClass:"position-card compact",class:{profit:o.pnl>=0,loss:o.pnl<0}},[e("div",{staticClass:"position-header"},[e("div",{staticClass:"symbol-info"},[e("a-tag",{attrs:{color:t.getMarketColor(o.market),size:"small"}},[t._v(t._s(t.getMarketName(o.market)))]),e("span",{staticClass:"symbol"},[t._v(t._s(o.symbol))]),e("span",{staticClass:"name"},[t._v(t._s(o.name))])],1),e("div",{staticClass:"position-actions"},[e("a-button",{attrs:{type:"link",size:"small"},on:{click:function(e){return t.editPosition(o)}}},[e("a-icon",{attrs:{type:"edit"}})],1),e("a-popconfirm",{attrs:{title:t.$t("portfolio.positions.deleteConfirm")},on:{confirm:function(e){return t.deletePosition(o.id)}}},[e("a-button",{staticClass:"delete-btn",attrs:{type:"link",size:"small"}},[e("a-icon",{attrs:{type:"delete"}})],1)],1)],1)]),e("div",{staticClass:"position-compact-body"},[e("div",{staticClass:"compact-item"},[e("span",{staticClass:"value"},[t._v(t._s(t.getCurrencySymbol(o.market))+t._s(t.formatPrice(o.current_price)))]),e("span",{staticClass:"change",class:o.price_change>=0?"up":"down"},[t._v(" "+t._s(o.price_change>=0?"▲":"▼")+t._s(Math.abs(o.price_change_percent).toFixed(2))+"% ")])]),e("div",{staticClass:"compact-item"},[e("span",{staticClass:"label"},[t._v(t._s(t.$t("portfolio.positions.quantity"))+":")]),e("span",{staticClass:"value"},[t._v(t._s(t.formatNumber(o.quantity,4)))])]),e("div",{staticClass:"compact-item pnl",class:o.pnl>=0?"positive":"negative"},[t._v(" "+t._s(o.pnl>=0?"+":"")+t._s(t.getCurrencySymbol(o.market))+t._s(t.formatNumber(o.pnl))+" "),e("span",{staticClass:"percent"},[t._v("("+t._s(o.pnl_percent>=0?"+":"")+t._s(o.pnl_percent)+"%)")])])])])}),0)],2)})],2)],1)])])],1),e("div",{ref:"monitorsSection",staticClass:"monitors-section"},[e("div",{staticClass:"section-header"},[e("h3",[e("a-icon",{attrs:{type:"eye"}}),e("span",[t._v(t._s(t.$t("portfolio.monitors.title")))])],1),e("a-button",{attrs:{type:"primary"},on:{click:t.openAddMonitorModal}},[e("a-icon",{attrs:{type:"plus"}}),t._v(" "+t._s(t.$t("portfolio.monitors.add"))+" ")],1)],1),e("a-spin",{attrs:{spinning:t.loadingMonitors}},[e("div",{staticClass:"monitors-list"},[0===t.monitors.length?e("div",{staticClass:"empty-state small"},[e("a-empty",{attrs:{description:t.$t("portfolio.monitors.empty"),image:t.simpleImage}},[e("a-button",{attrs:{type:"primary",size:"small"},on:{click:t.openAddMonitorModal}},[e("a-icon",{attrs:{type:"plus"}}),t._v(" "+t._s(t.$t("portfolio.monitors.addFirst"))+" ")],1)],1)],1):e("div",t._l(t.monitors,function(o){return e("div",{key:o.id,staticClass:"monitor-card"},[e("div",{staticClass:"monitor-header"},[e("div",{staticClass:"monitor-name"},[e("a-icon",{attrs:{type:"robot"}}),e("span",[t._v(t._s(o.name))])],1),e("a-switch",{attrs:{checked:o.is_active,size:"small"},on:{change:function(e){return t.toggleMonitor(o.id,e)}}})],1),e("div",{staticClass:"monitor-body"},[e("div",{staticClass:"monitor-info"},[e("span",{staticClass:"label"},[t._v(t._s(t.$t("portfolio.monitors.interval"))+":")]),e("span",{staticClass:"value"},[t._v(t._s(t.getIntervalText(o.config.interval_minutes)))])]),e("div",{staticClass:"monitor-info"},[e("span",{staticClass:"label"},[t._v(t._s(t.$t("portfolio.form.monitorScope"))+":")]),e("span",{staticClass:"value"},[t.getMonitorPositionIds(o).length>0?[e("a-tooltip",[e("template",{slot:"title"},t._l(t.getMonitorPositionIds(o),function(o){return e("div",{key:o},[t._v(" "+t._s(t.getPositionNameById(o))+" ")])}),0),e("span",{staticClass:"scope-selected"},[t._v(" "+t._s(t.$t("portfolio.form.selectedCount",{count:t.getMonitorPositionIds(o).length,total:t.positions.length}))+" ")])],2)]:e("span",{staticClass:"scope-all"},[t._v(t._s(t.$t("portfolio.form.allPositions")))])],2)]),o.last_run_at?e("div",{staticClass:"monitor-info"},[e("span",{staticClass:"label"},[t._v(t._s(t.$t("portfolio.monitors.lastRun"))+":")]),e("span",{staticClass:"value"},[t._v(t._s(t.formatTime(o.last_run_at)))])]):t._e(),o.next_run_at&&o.is_active?e("div",{staticClass:"monitor-info"},[e("span",{staticClass:"label"},[t._v(t._s(t.$t("portfolio.monitors.nextRun"))+":")]),e("span",{staticClass:"value"},[t._v(t._s(t.formatTime(o.next_run_at)))])]):t._e(),o.notification_config.channels?e("div",{staticClass:"monitor-channels"},[e("span",{staticClass:"label"},[t._v(t._s(t.$t("portfolio.monitors.channels"))+":")]),t._l(o.notification_config.channels,function(o){return e("a-tag",{key:o,attrs:{size:"small"}},[t._v(" "+t._s(o)+" ")])})],2):t._e()]),e("div",{staticClass:"monitor-actions"},[e("a-button",{attrs:{type:"link",size:"small",loading:t.runningMonitor===o.id},on:{click:function(e){return t.runMonitorNow(o.id)}}},[e("a-icon",{attrs:{type:"play-circle"}}),t._v(" "+t._s(t.$t("portfolio.monitors.runNow"))+" ")],1),e("a-button",{attrs:{type:"link",size:"small"},on:{click:function(e){return t.editMonitor(o)}}},[e("a-icon",{attrs:{type:"edit"}})],1),e("a-popconfirm",{attrs:{title:t.$t("portfolio.monitors.deleteConfirm")},on:{confirm:function(e){return t.deleteMonitor(o.id)}}},[e("a-button",{staticClass:"delete-btn",attrs:{type:"link",size:"small"}},[e("a-icon",{attrs:{type:"delete"}})],1)],1)],1)])}),0)])])],1)]),e("a-modal",{attrs:{title:t.editingPosition?t.$t("portfolio.modal.editPosition"):t.$t("portfolio.modal.addPosition"),visible:t.showAddPositionModal,confirmLoading:t.savingPosition,width:"600px"},on:{ok:t.handleSavePosition,cancel:t.closePositionModal}},[e("a-form",{attrs:{form:t.positionForm,"label-col":{span:6},"wrapper-col":{span:16}}},[e("a-form-item",{attrs:{label:t.$t("portfolio.form.market")}},[e("a-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["market",{rules:[{required:!0,message:t.$t("portfolio.form.marketRequired")}]}],expression:"['market', { rules: [{ required: true, message: $t('portfolio.form.marketRequired') }] }]"}],attrs:{placeholder:t.$t("portfolio.form.selectMarket"),disabled:!!t.editingPosition},on:{change:t.handleMarketChange}},t._l(t.marketTypes,function(o){return e("a-select-option",{key:o.value,attrs:{value:o.value}},[t._v(" "+t._s(t.$t(o.i18nKey))+" ")])}),1)],1),e("a-form-item",{attrs:{label:t.$t("portfolio.form.symbol")}},[e("a-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["symbol",{rules:[{required:!0,message:t.$t("portfolio.form.symbolRequired")}]}],expression:"['symbol', { rules: [{ required: true, message: $t('portfolio.form.symbolRequired') }] }]"}],staticStyle:{width:"100%"},attrs:{"show-search":"",placeholder:t.$t("portfolio.form.searchSymbol"),"default-active-first-option":!1,"show-arrow":!1,"filter-option":!1,"not-found-content":null,disabled:!!t.editingPosition},on:{search:t.handleSymbolSearch,change:t.handleSymbolSelect}},[t._l(t.symbolSearchResults,function(o){return e("a-select-option",{key:o.symbol,attrs:{value:o.symbol}},[e("div",{staticClass:"symbol-option"},[e("strong",[t._v(t._s(o.symbol))]),e("span",{staticClass:"symbol-name"},[t._v(t._s(o.name))])])])}),t.symbolSearchKeyword&&0===t.symbolSearchResults.length?e("a-select-option",{key:"__manual__"+t.symbolSearchKeyword.toUpperCase(),attrs:{value:t.symbolSearchKeyword.toUpperCase()}},[e("div",{staticClass:"symbol-option manual-input"},[e("a-icon",{staticStyle:{"margin-right":"6px",color:"#1890ff"},attrs:{type:"edit"}}),e("span",[t._v(t._s(t.$t("portfolio.form.useAsSymbol"))+" ")]),e("strong",{staticStyle:{color:"#1890ff"}},[t._v(t._s(t.symbolSearchKeyword.toUpperCase()))]),e("span",[t._v(" "+t._s(t.$t("portfolio.form.asSymbolCode")))])],1)]):t._e()],2),e("div",{staticClass:"symbol-hint",staticStyle:{"font-size":"12px",color:"#999","margin-top":"4px"}},[t._v(" "+t._s(t.$t("portfolio.form.symbolHint"))+" ")])],1),e("a-form-item",{attrs:{label:t.$t("portfolio.form.side")}},[e("a-radio-group",{directives:[{name:"decorator",rawName:"v-decorator",value:["side",{initialValue:"long"}],expression:"['side', { initialValue: 'long' }]"}],attrs:{disabled:!!t.editingPosition}},[e("a-radio-button",{attrs:{value:"long"}},[t._v(t._s(t.$t("portfolio.positions.long")))]),e("a-radio-button",{attrs:{value:"short"}},[t._v(t._s(t.$t("portfolio.positions.short")))])],1)],1),e("a-form-item",{attrs:{label:t.$t("portfolio.form.quantity")}},[e("a-input-number",{directives:[{name:"decorator",rawName:"v-decorator",value:["quantity",{rules:[{required:!0,message:t.$t("portfolio.form.quantityRequired")}]}],expression:"['quantity', { rules: [{ required: true, message: $t('portfolio.form.quantityRequired') }] }]"}],staticStyle:{width:"100%"},attrs:{min:1e-8,step:1,placeholder:t.$t("portfolio.form.enterQuantity")}})],1),e("a-form-item",{attrs:{label:t.$t("portfolio.form.entryPrice")}},[e("a-input-number",{directives:[{name:"decorator",rawName:"v-decorator",value:["entry_price",{rules:[{required:!0,message:t.$t("portfolio.form.entryPriceRequired")}]}],expression:"['entry_price', { rules: [{ required: true, message: $t('portfolio.form.entryPriceRequired') }] }]"}],staticStyle:{width:"100%"},attrs:{min:1e-8,step:.01,placeholder:t.$t("portfolio.form.enterEntryPrice")}})],1),e("a-form-item",{attrs:{label:t.$t("portfolio.form.notes")}},[e("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["notes"],expression:"['notes']"}],attrs:{rows:2,placeholder:t.$t("portfolio.form.enterNotes")}})],1),e("a-form-item",{attrs:{label:t.$t("portfolio.form.group")}},[e("a-auto-complete",{directives:[{name:"decorator",rawName:"v-decorator",value:["group_name"],expression:"['group_name']"}],attrs:{placeholder:t.$t("portfolio.form.enterGroup"),dataSource:t.groupNames}})],1)],1)],1),e("a-modal",{attrs:{title:t.editingAlert?t.$t("portfolio.modal.editAlert"):t.$t("portfolio.modal.addAlert"),visible:t.showAddAlertModal,width:"560px"},on:{cancel:t.closeAlertModal}},[e("template",{slot:"footer"},[e("div",{staticClass:"alert-modal-footer"},[t.editingAlert?e("a-button",{attrs:{type:"danger",ghost:"",loading:t.deletingAlert},on:{click:t.confirmDeleteAlert}},[e("a-icon",{attrs:{type:"delete"}}),t._v(" "+t._s(t.$t("portfolio.alerts.delete"))+" ")],1):e("span"),e("div",{staticClass:"footer-right"},[e("a-button",{on:{click:t.closeAlertModal}},[t._v(t._s(t.$t("common.cancel")))]),e("a-button",{attrs:{type:"primary",loading:t.savingAlert},on:{click:t.handleSaveAlert}},[t._v(" "+t._s(t.$t("common.save"))+" ")])],1)],1)]),e("a-form",{attrs:{form:t.alertForm,"label-col":{span:6},"wrapper-col":{span:16}}},[e("a-form-item",{attrs:{label:t.$t("portfolio.form.symbol")}},[e("div",{staticClass:"alert-symbol-info"},[e("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["symbol"],expression:"['symbol']"}],staticClass:"symbol-input",attrs:{disabled:""}}),t.alertPosition?e("div",{staticClass:"current-price-info"},[e("span",{staticClass:"label"},[t._v(t._s(t.$t("portfolio.alerts.currentPrice"))+":")]),e("span",{staticClass:"price"},[t._v("$"+t._s(t.formatNumber(t.alertPosition.current_price||t.alertPosition.entry_price)))])]):t._e()],1)]),e("a-form-item",{attrs:{label:t.$t("portfolio.alerts.alertType")}},[e("a-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["alert_type",{initialValue:"price_above",rules:[{required:!0}]}],expression:"['alert_type', { initialValue: 'price_above', rules: [{ required: true }] }]"}]},[e("a-select-option",{attrs:{value:"price_above"}},[e("a-icon",{staticStyle:{color:"#52c41a","margin-right":"6px"},attrs:{type:"rise"}}),t._v(" "+t._s(t.$t("portfolio.alerts.priceAbove"))+" ")],1),e("a-select-option",{attrs:{value:"price_below"}},[e("a-icon",{staticStyle:{color:"#f5222d","margin-right":"6px"},attrs:{type:"fall"}}),t._v(" "+t._s(t.$t("portfolio.alerts.priceBelow"))+" ")],1),e("a-select-option",{attrs:{value:"pnl_above"}},[e("a-icon",{staticStyle:{color:"#52c41a","margin-right":"6px"},attrs:{type:"dollar"}}),t._v(" "+t._s(t.$t("portfolio.alerts.pnlAbove"))+" ")],1),e("a-select-option",{attrs:{value:"pnl_below"}},[e("a-icon",{staticStyle:{color:"#f5222d","margin-right":"6px"},attrs:{type:"dollar"}}),t._v(" "+t._s(t.$t("portfolio.alerts.pnlBelow"))+" ")],1)],1)],1),e("a-form-item",{attrs:{label:t.$t("portfolio.alerts.threshold")}},[e("div",{staticClass:"threshold-input-wrapper"},[e("a-input-number",{directives:[{name:"decorator",rawName:"v-decorator",value:["threshold",{rules:[{required:!0,message:t.$t("portfolio.alerts.thresholdRequired")}]}],expression:"['threshold', { rules: [{ required: true, message: $t('portfolio.alerts.thresholdRequired') }] }]"}],staticStyle:{width:"100%"},attrs:{step:t.alertTypeIsPrice?.01:1,placeholder:t.alertTypeIsPrice?t.$t("portfolio.alerts.enterPrice"):t.$t("portfolio.alerts.enterPercent"),precision:t.alertTypeIsPrice?4:2}}),t.alertTypeIsPrice?e("span",{staticClass:"alert-unit"},[t._v("$")]):e("span",{staticClass:"alert-unit"},[t._v("%")])],1),t.alertPosition&&t.alertTypeIsPrice?e("div",{staticClass:"threshold-hint"},[t._v(" "+t._s(t.$t("portfolio.alerts.currentPriceHint"))+": $"+t._s(t.formatNumber(t.alertPosition.current_price||t.alertPosition.entry_price))+" ")]):t._e()]),e("a-form-item",{attrs:{label:t.$t("portfolio.alerts.repeatInterval")}},[e("a-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["repeat_interval",{initialValue:0}],expression:"['repeat_interval', { initialValue: 0 }]"}]},[e("a-select-option",{attrs:{value:0}},[t._v(t._s(t.$t("portfolio.alerts.noRepeat")))]),e("a-select-option",{attrs:{value:5}},[t._v(t._s(t.$t("portfolio.alerts.every5min")))]),e("a-select-option",{attrs:{value:15}},[t._v(t._s(t.$t("portfolio.alerts.every15min")))]),e("a-select-option",{attrs:{value:30}},[t._v(t._s(t.$t("portfolio.alerts.every30min")))]),e("a-select-option",{attrs:{value:60}},[t._v(t._s(t.$t("portfolio.alerts.every1hour")))]),e("a-select-option",{attrs:{value:240}},[t._v(t._s(t.$t("portfolio.alerts.every4hours")))]),e("a-select-option",{attrs:{value:1440}},[t._v(t._s(t.$t("portfolio.alerts.onceDaily")))])],1)],1),e("a-form-item",{attrs:{label:t.$t("portfolio.form.notifyChannels")}},[e("a-checkbox-group",{model:{value:t.alertChannels,callback:function(e){t.alertChannels=e},expression:"alertChannels"}},[e("a-checkbox",{attrs:{value:"browser"}},[e("a-icon",{attrs:{type:"bell"}}),t._v(" "+t._s(t.$t("portfolio.form.browser"))+" ")],1),e("a-checkbox",{attrs:{value:"telegram"}},[e("a-icon",{attrs:{type:"message"}}),t._v(" Telegram ")],1),e("a-checkbox",{attrs:{value:"email"}},[e("a-icon",{attrs:{type:"mail"}}),t._v(" "+t._s(t.$t("portfolio.form.email"))+" ")],1)],1)],1),t.alertChannels.includes("telegram")||t.alertChannels.includes("email")?e("a-alert",{staticStyle:{"margin-bottom":"16px"},attrs:{type:"info",showIcon:""},scopedSlots:t._u([{key:"message",fn:function(){return[e("span",[t._v(" "+t._s(t.$t("portfolio.form.notificationFromProfile"))+" "),e("router-link",{staticStyle:{"margin-left":"8px"},attrs:{to:"/profile"}},[e("a-icon",{attrs:{type:"setting"}}),t._v(" "+t._s(t.$t("portfolio.form.goToProfile"))+" ")],1)],1)]},proxy:!0}],null,!1,440262090)}):t._e(),e("a-form-item",{attrs:{label:t.$t("portfolio.alerts.enabled")}},[e("a-switch",{directives:[{name:"decorator",rawName:"v-decorator",value:["is_active",{initialValue:!0,valuePropName:"checked"}],expression:"['is_active', { initialValue: true, valuePropName: 'checked' }]"}]}),e("span",{staticClass:"switch-label"},[t._v(t._s(t.$t("portfolio.alerts.enabledDesc")))])],1),e("a-form-item",{attrs:{label:t.$t("portfolio.form.notes")}},[e("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["notes"],expression:"['notes']"}],attrs:{placeholder:t.$t("portfolio.form.enterNotes"),autoSize:{minRows:2,maxRows:4}}})],1)],1)],2),e("a-modal",{attrs:{title:t.editingMonitor?t.$t("portfolio.modal.editMonitor"):t.$t("portfolio.modal.addMonitor"),visible:t.showAddMonitorModal,confirmLoading:t.savingMonitor,width:"600px"},on:{ok:t.handleSaveMonitor,cancel:t.closeMonitorModal}},[e("a-form",{attrs:{form:t.monitorForm,"label-col":{span:6},"wrapper-col":{span:16}}},[e("a-form-item",{attrs:{label:t.$t("portfolio.form.monitorName")}},[e("a-input",{directives:[{name:"decorator",rawName:"v-decorator",value:["name",{rules:[{required:!0,message:t.$t("portfolio.form.monitorNameRequired")}]}],expression:"['name', { rules: [{ required: true, message: $t('portfolio.form.monitorNameRequired') }] }]"}],attrs:{placeholder:t.$t("portfolio.form.enterMonitorName")}})],1),e("a-form-item",{attrs:{label:t.$t("portfolio.form.interval")}},[e("a-select",{directives:[{name:"decorator",rawName:"v-decorator",value:["interval_minutes",{initialValue:60,rules:[{required:!0}]}],expression:"['interval_minutes', { initialValue: 60, rules: [{ required: true }] }]"}]},[e("a-select-option",{attrs:{value:5}},[t._v("5 "+t._s(t.$t("portfolio.form.minutes")))]),e("a-select-option",{attrs:{value:10}},[t._v("10 "+t._s(t.$t("portfolio.form.minutes")))]),e("a-select-option",{attrs:{value:30}},[t._v("30 "+t._s(t.$t("portfolio.form.minutes")))]),e("a-select-option",{attrs:{value:60}},[t._v("1 "+t._s(t.$t("portfolio.form.hour")))]),e("a-select-option",{attrs:{value:120}},[t._v("2 "+t._s(t.$t("portfolio.form.hours")))]),e("a-select-option",{attrs:{value:240}},[t._v("4 "+t._s(t.$t("portfolio.form.hours")))]),e("a-select-option",{attrs:{value:480}},[t._v("8 "+t._s(t.$t("portfolio.form.hours")))]),e("a-select-option",{attrs:{value:1440}},[t._v("24 "+t._s(t.$t("portfolio.form.hours")))])],1)],1),e("a-form-item",{attrs:{label:t.$t("portfolio.form.notifyChannels")}},[e("a-checkbox-group",{model:{value:t.monitorChannels,callback:function(e){t.monitorChannels=e},expression:"monitorChannels"}},[e("a-checkbox",{attrs:{value:"browser"}},[t._v(t._s(t.$t("portfolio.form.browser")))]),e("a-checkbox",{attrs:{value:"telegram"}},[t._v("Telegram")]),e("a-checkbox",{attrs:{value:"email"}},[t._v(t._s(t.$t("portfolio.form.email")))])],1)],1),t.monitorChannels.includes("telegram")||t.monitorChannels.includes("email")?e("a-alert",{staticStyle:{"margin-bottom":"16px"},attrs:{type:"info",showIcon:""},scopedSlots:t._u([{key:"message",fn:function(){return[e("span",[t._v(" "+t._s(t.$t("portfolio.form.notificationFromProfile"))+" "),e("router-link",{staticStyle:{"margin-left":"8px"},attrs:{to:"/profile"}},[e("a-icon",{attrs:{type:"setting"}}),t._v(" "+t._s(t.$t("portfolio.form.goToProfile"))+" ")],1)],1)]},proxy:!0}],null,!1,440262090)}):t._e(),e("a-form-item",{attrs:{label:t.$t("portfolio.form.monitorScope")}},[e("a-radio-group",{on:{change:t.handleMonitorScopeChange},model:{value:t.monitorScope,callback:function(e){t.monitorScope=e},expression:"monitorScope"}},[e("a-radio",{attrs:{value:"all"}},[t._v(t._s(t.$t("portfolio.form.allPositions")))]),e("a-radio",{attrs:{value:"selected"}},[t._v(t._s(t.$t("portfolio.form.selectedPositions")))])],1)],1),"selected"===t.monitorScope?e("a-form-item",{attrs:{label:t.$t("portfolio.form.selectPositions")}},[e("a-checkbox-group",{staticClass:"position-checkbox-group",model:{value:t.selectedMonitorPositions,callback:function(e){t.selectedMonitorPositions=e},expression:"selectedMonitorPositions"}},t._l(t.positions,function(o){return e("div",{key:o.id,staticClass:"position-checkbox-item"},[e("a-checkbox",{staticClass:"position-checkbox",attrs:{value:o.id}},[e("div",{staticClass:"position-checkbox-label"},[e("div",{staticClass:"position-left"},[e("a-tag",{attrs:{color:t.getMarketColor(o.market),size:"small"}},[t._v(t._s(o.market))]),e("span",{staticClass:"symbol"},[t._v(t._s(o.symbol))])],1),e("div",{staticClass:"position-middle"},[e("span",{staticClass:"name",attrs:{title:o.name}},[t._v(t._s(o.name))])]),e("div",{staticClass:"position-right"},[e("span",{class:["pnl",o.pnl>=0?"positive":"negative"]},[t._v(" "+t._s(o.pnl>=0?"+":"")+t._s(t.formatNumber(o.pnl_percent))+"% ")])])])])],1)}),0),e("div",{staticClass:"position-select-actions"},[e("a-button",{attrs:{type:"link",size:"small"},on:{click:t.selectAllPositions}},[t._v(" "+t._s(t.$t("portfolio.form.selectAll"))+" ")]),e("a-divider",{attrs:{type:"vertical"}}),e("a-button",{attrs:{type:"link",size:"small"},on:{click:t.deselectAllPositions}},[t._v(" "+t._s(t.$t("portfolio.form.deselectAll"))+" ")]),e("span",{staticClass:"selected-count"},[t._v(" "+t._s(t.$t("portfolio.form.selectedCount",{count:t.selectedMonitorPositions.length,total:t.positions.length}))+" ")])],1)],1):t._e(),e("a-form-item",{attrs:{label:t.$t("portfolio.form.customPrompt")}},[e("a-textarea",{directives:[{name:"decorator",rawName:"v-decorator",value:["prompt"],expression:"['prompt']"}],attrs:{rows:3,placeholder:t.$t("portfolio.form.customPromptPlaceholder")}})],1)],1)],1)],1)},i=[],a=o(2403),r=o(81127),n=o(56252),l=o(76338),c=(o(27377),o(2970)),u=(o(28706),o(2008),o(50113),o(62062),o(26910),o(2892),o(79432),o(26099),o(16034),o(27495),o(47764),o(11392),o(23500),o(62953),o(95353)),p=o(75769);function m(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,p.Ay)({url:"/api/portfolio/positions",method:"get",params:t})}function d(t){return(0,p.Ay)({url:"/api/portfolio/positions",method:"post",data:t})}function f(t,e){return(0,p.Ay)({url:"/api/portfolio/positions/".concat(t),method:"put",data:e})}function v(t){return(0,p.Ay)({url:"/api/portfolio/positions/".concat(t),method:"delete"})}function h(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,p.Ay)({url:"/api/portfolio/summary",method:"get",params:t})}function _(){return(0,p.Ay)({url:"/api/portfolio/monitors",method:"get"})}function g(t){return(0,p.Ay)({url:"/api/portfolio/monitors",method:"post",data:t})}function y(t,e){return(0,p.Ay)({url:"/api/portfolio/monitors/".concat(t),method:"put",data:e})}function b(t){return(0,p.Ay)({url:"/api/portfolio/monitors/".concat(t),method:"delete"})}function C(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,p.Ay)({url:"/api/portfolio/monitors/".concat(t,"/run"),method:"post",data:e})}function $(){return(0,p.Ay)({url:"/api/portfolio/alerts",method:"get"})}function k(t){return(0,p.Ay)({url:"/api/portfolio/alerts",method:"post",data:t})}function w(t,e){return(0,p.Ay)({url:"/api/portfolio/alerts/".concat(t),method:"put",data:e})}function A(t){return(0,p.Ay)({url:"/api/portfolio/alerts/".concat(t),method:"delete"})}function S(){return(0,p.Ay)({url:"/api/portfolio/groups",method:"get"})}function P(t){return(0,p.Ay)({url:"/api/market/symbols/search",method:"post",data:t})}function M(){return(0,p.Ay)({url:"/api/market/types",method:"get"})}var N=o(84841),x={name:"Portfolio",props:{embedded:{type:Boolean,default:!1}},data:function(){return{simpleImage:c.Ay.PRESENTED_IMAGE_SIMPLE,summary:{total_cost:0,total_market_value:0,total_pnl:0,total_pnl_percent:0,position_count:0,market_distribution:[],today_pnl:0,today_change:0},positions:[],loadingPositions:!1,showAddPositionModal:!1,savingPosition:!1,editingPosition:null,positionForm:null,monitors:[],loadingMonitors:!1,showAddMonitorModal:!1,savingMonitor:!1,editingMonitor:null,monitorForm:null,runningMonitor:null,marketTypes:[],symbolSearchResults:[],searchTimer:null,selectedSymbolName:"",symbolSearchKeyword:"",priceRefreshTimer:null,lastSyncTime:null,isSyncing:!1,groups:[],selectedGroup:"",viewMode:"grid",activeGroups:[],alerts:[],loadingAlerts:!1,showAddAlertModal:!1,savingAlert:!1,deletingAlert:!1,editingAlert:null,alertForm:null,alertPosition:null,alertChannels:["browser"],monitorChannels:["browser"],monitorScope:"all",selectedMonitorPositions:[],userNotificationSettings:{default_channels:["browser"],telegram_bot_token:"",telegram_chat_id:"",email:"",phone:"",discord_webhook:"",webhook_url:"",webhook_token:""}}},computed:(0,l.A)((0,l.A)({},(0,u.aH)({navTheme:function(t){return t.app.theme}})),{},{isDarkTheme:function(){return"dark"===this.navTheme||"realdark"===this.navTheme},selectedChannels:function(){return this.monitorChannels||[]},selectedAlertChannels:function(){return this.alertChannels||[]},filteredPositions:function(){var t=this;return this.selectedGroup?"__ungrouped__"===this.selectedGroup?this.positions.filter(function(t){return!t.group_name}):this.positions.filter(function(e){return e.group_name===t.selectedGroup}):this.positions},groupNames:function(){return this.groups.map(function(t){return t.name})},alertTypeIsPrice:function(){if(!this.alertForm)return!0;var t=this.alertForm.getFieldValue("alert_type");return t&&t.startsWith("price_")},profitLossStats:function(){var t=this.positions.filter(function(t){return t.pnl>=0}).length,e=this.positions.filter(function(t){return t.pnl<0}).length;return{profit:t,loss:e}},bestPerformer:function(){return 0===this.positions.length?null:this.positions.reduce(function(t,e){return!t||(e.pnl_percent||0)>(t.pnl_percent||0)?e:t},null)},worstPerformer:function(){return 0===this.positions.length?null:this.positions.reduce(function(t,e){return!t||(e.pnl_percent||0)<(t.pnl_percent||0)?e:t},null)},ungroupedPositions:function(){return this.positions.filter(function(t){return!t.group_name})},groupsWithPositions:function(){var t={};return this.positions.forEach(function(e){e.group_name&&(t[e.group_name]||(t[e.group_name]={name:e.group_name,positions:[]}),t[e.group_name].positions.push(e))}),Object.values(t).sort(function(t,e){return t.name.localeCompare(e.name)})}}),created:function(){this.positionForm=this.$form.createForm(this,{name:"position_form"}),this.monitorForm=this.$form.createForm(this,{name:"monitor_form"}),this.alertForm=this.$form.createForm(this,{name:"alert_form"}),this.loadMarketTypes(),this.loadData()},mounted:function(){var t=this;this.priceRefreshTimer=setInterval(function(){t.refreshPrices()},3e4),this.loadUserNotificationSettings()},beforeDestroy:function(){this.priceRefreshTimer&&clearInterval(this.priceRefreshTimer),this.searchTimer&&clearTimeout(this.searchTimer)},methods:{loadUserNotificationSettings:function(){var t=this;return(0,n.A)((0,r.A)().m(function e(){var o;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:return e.p=0,e.n=1,(0,N.vF)();case 1:o=e.v,1===o.code&&o.data&&(t.userNotificationSettings={default_channels:o.data.default_channels||["browser"],telegram_bot_token:o.data.telegram_bot_token||"",telegram_chat_id:o.data.telegram_chat_id||"",email:o.data.email||"",phone:o.data.phone||"",discord_webhook:o.data.discord_webhook||"",webhook_url:o.data.webhook_url||"",webhook_token:o.data.webhook_token||""}),e.n=3;break;case 2:e.p=2,e.v;case 3:return e.a(2)}},e,null,[[0,2]])}))()},loadData: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 e.n=1,Promise.all([t.loadPositions(),t.loadSummary(),t.loadMonitors(),t.loadGroups(),t.loadAlerts()]);case 1:t.lastSyncTime=new Date;case 2:return e.a(2)}},e)}))()},filterByGroup:function(){},refreshPrices: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.p=e.n){case 0:if(!t.isSyncing){e.n=1;break}return e.a(2);case 1:return t.isSyncing=!0,e.p=2,e.n=3,Promise.all([t.loadPositions(!0),t.loadSummary(!0)]);case 3:t.lastSyncTime=new Date;case 4:return e.p=4,t.isSyncing=!1,e.f(4);case 5:return e.a(2)}},e,null,[[2,,4,5]])}))()},formatSyncTime:function(t){if(!t)return"-";var e=new Date,o=Math.floor((e-t)/1e3);return o<60?this.$t("portfolio.summary.justNow"):o<3600?"".concat(Math.floor(o/60)," ").concat(this.$t("portfolio.form.minutes")).concat(this.$t("portfolio.summary.ago")):t.toLocaleTimeString()},getGroupPnl:function(t){return t.reduce(function(t,e){return t+(e.pnl||0)},0)},loadGroups:function(){var t=this;return(0,n.A)((0,r.A)().m(function e(){var o;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:return e.p=0,e.n=1,S();case 1:o=e.v,o&&1===o.code&&o.data&&(t.groups=o.data.groups||[]),e.n=3;break;case 2:e.p=2,e.v;case 3:return e.a(2)}},e,null,[[0,2]])}))()},loadAlerts:function(){var t=this;return(0,n.A)((0,r.A)().m(function e(){var o;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:return t.loadingAlerts=!0,e.p=1,e.n=2,$();case 2:o=e.v,o&&1===o.code&&(t.alerts=o.data||[]),e.n=4;break;case 3:e.p=3,e.v;case 4:return e.p=4,t.loadingAlerts=!1,e.f(4);case 5:return e.a(2)}},e,null,[[1,3,4,5]])}))()},loadMarketTypes:function(){var t=this;return(0,n.A)((0,r.A)().m(function e(){var o;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:return e.p=0,e.n=1,M();case 1:o=e.v,o&&1===o.code&&o.data&&(t.marketTypes=o.data.map(function(t){return{value:t.value,i18nKey:t.i18nKey||"dashboard.analysis.market.".concat(t.value)}})),e.n=3;break;case 2:e.p=2,e.v,t.marketTypes=[{value:"USStock",i18nKey:"dashboard.analysis.market.USStock"},{value:"Crypto",i18nKey:"dashboard.analysis.market.Crypto"},{value:"Forex",i18nKey:"dashboard.analysis.market.Forex"},{value:"Futures",i18nKey:"dashboard.analysis.market.Futures"}];case 3:return e.a(2)}},e,null,[[0,2]])}))()},loadPositions:function(){var t=arguments,e=this;return(0,n.A)((0,r.A)().m(function o(){var s,i,a;return(0,r.A)().w(function(o){while(1)switch(o.p=o.n){case 0:return s=t.length>0&&void 0!==t[0]&&t[0],e.loadingPositions=!0,o.p=1,i=s?{refresh:"1"}:{},o.n=2,m(i);case 2:a=o.v,a&&1===a.code&&(e.positions=a.data||[]),o.n=4;break;case 3:o.p=3,o.v,e.$message.error(e.$t("portfolio.message.loadFailed"));case 4:return o.p=4,e.loadingPositions=!1,o.f(4);case 5:return o.a(2)}},o,null,[[1,3,4,5]])}))()},loadSummary:function(){var t=arguments,e=this;return(0,n.A)((0,r.A)().m(function o(){var s,i;return(0,r.A)().w(function(o){while(1)switch(o.p=o.n){case 0:return s=t.length>0&&void 0!==t[0]&&t[0],o.p=1,o.n=2,h(s?{refresh:"1"}:{});case 2:i=o.v,i&&1===i.code&&(e.summary=i.data||e.summary),o.n=4;break;case 3:o.p=3,o.v;case 4:return o.a(2)}},o,null,[[1,3]])}))()},loadMonitors:function(){var t=this;return(0,n.A)((0,r.A)().m(function e(){var o;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:return t.loadingMonitors=!0,e.p=1,e.n=2,_();case 2:o=e.v,o&&1===o.code&&(t.monitors=o.data||[]),e.n=4;break;case 3:e.p=3,e.v;case 4:return e.p=4,t.loadingMonitors=!1,e.f(4);case 5:return e.a(2)}},e,null,[[1,3,4,5]])}))()},handleMarketChange:function(t){this.symbolSearchResults=[],this.symbolSearchKeyword="",this.positionForm.setFieldsValue({symbol:""})},handleSymbolSearch:function(t){var e=this;this.symbolSearchKeyword=t||"",this.searchTimer&&clearTimeout(this.searchTimer),!t||t.length<1?this.symbolSearchResults=[]:this.searchTimer=setTimeout((0,n.A)((0,r.A)().m(function o(){var s,i;return(0,r.A)().w(function(o){while(1)switch(o.p=o.n){case 0:if(s=e.positionForm.getFieldValue("market"),s){o.n=1;break}return o.a(2);case 1:return o.p=1,o.n=2,P({market:s,keyword:t,limit:10});case 2:i=o.v,i&&1===i.code?e.symbolSearchResults=i.data||[]:e.symbolSearchResults=[],o.n=4;break;case 3:o.p=3,o.v,e.symbolSearchResults=[];case 4:return o.a(2)}},o,null,[[1,3]])})),300)},handleSymbolSelect:function(t,e){var o=this.symbolSearchResults.find(function(e){return e.symbol===t});this.selectedSymbolName=o?o.name:"",this.symbolSearchKeyword=""},editPosition:function(t){var e=this;this.editingPosition=t,this.showAddPositionModal=!0,this.$nextTick(function(){e.positionForm.setFieldsValue({market:t.market,symbol:t.symbol,side:t.side,quantity:t.quantity,entry_price:t.entry_price,notes:t.notes,group_name:t.group_name||""})})},handleSavePosition: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:t.positionForm.validateFields(function(){var e=(0,n.A)((0,r.A)().m(function e(o,s){var i,a,n;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(!o){e.n=1;break}return e.a(2);case 1:if(t.savingPosition=!0,e.p=2,i={market:s.market,symbol:s.symbol.toUpperCase(),side:s.side,quantity:s.quantity,entry_price:s.entry_price,notes:s.notes||"",name:t.selectedSymbolName||"",group_name:s.group_name||""},!t.editingPosition){e.n=4;break}return e.n=3,f(t.editingPosition.id,i);case 3:a=e.v,e.n=6;break;case 4:return e.n=5,d(i);case 5:a=e.v;case 6:a&&1===a.code?(t.$message.success(t.$t("portfolio.message.saveSuccess")),t.closePositionModal(),t.loadData()):t.$message.error((null===(n=a)||void 0===n?void 0:n.msg)||t.$t("portfolio.message.saveFailed")),e.n=8;break;case 7:e.p=7,e.v,t.$message.error(t.$t("portfolio.message.saveFailed"));case 8:return e.p=8,t.savingPosition=!1,e.f(8);case 9:return e.a(2)}},e,null,[[2,7,8,9]])}));return function(t,o){return e.apply(this,arguments)}}());case 1:return e.a(2)}},e)}))()},deletePosition:function(t){var e=this;return(0,n.A)((0,r.A)().m(function o(){var s;return(0,r.A)().w(function(o){while(1)switch(o.p=o.n){case 0:return o.p=0,o.n=1,v(t);case 1:s=o.v,s&&1===s.code?(e.$message.success(e.$t("portfolio.message.deleteSuccess")),e.loadData()):e.$message.error((null===s||void 0===s?void 0:s.msg)||e.$t("portfolio.message.deleteFailed")),o.n=3;break;case 2:o.p=2,o.v,e.$message.error(e.$t("portfolio.message.deleteFailed"));case 3:return o.a(2)}},o,null,[[0,2]])}))()},closePositionModal:function(){this.showAddPositionModal=!1,this.editingPosition=null,this.positionForm.resetFields(),this.symbolSearchResults=[],this.selectedSymbolName="",this.symbolSearchKeyword=""},handleAlertChannelsChange:function(t){this.alertChannels=t||[]},showAddAlertForPosition:function(t){var e=this,o=this.alerts.find(function(e){return e.position_id===t.id});o?this.editAlert(o):(this.editingAlert=null,this.alertPosition=t,this.alertChannels=(0,a.A)(this.userNotificationSettings.default_channels||["browser"]),this.showAddAlertModal=!0,this.$nextTick(function(){e.alertForm.setFieldsValue({symbol:"".concat(t.market,"/").concat(t.symbol),alert_type:"price_above",threshold:t.current_price||t.entry_price,repeat_interval:0,is_active:!0,notes:""})}))},editAlert:function(t){var e,o=this;this.editingAlert=t,this.alertPosition=this.positions.find(function(e){return e.id===t.position_id})||{market:t.market,symbol:t.symbol,current_price:0,entry_price:0},this.alertChannels=(0,a.A)((null===(e=t.notification_config)||void 0===e?void 0:e.channels)||["browser"]),this.showAddAlertModal=!0,this.$nextTick(function(){o.alertForm&&o.alertForm.setFieldsValue({symbol:"".concat(t.market,"/").concat(t.symbol),alert_type:t.alert_type||"price_above",threshold:t.threshold||0,repeat_interval:t.repeat_interval||0,is_active:!1!==t.is_active,notes:t.notes||""})})},handleSaveAlert: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:t.alertForm.validateFields(function(){var e=(0,n.A)((0,r.A)().m(function e(o,s){var i,a,n,l,c,u,p;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(!o){e.n=1;break}return e.a(2);case 1:if(t.savingAlert=!0,e.p=2,l={},t.alertChannels.includes("telegram")&&t.userNotificationSettings.telegram_chat_id&&(l.telegram=t.userNotificationSettings.telegram_chat_id,t.userNotificationSettings.telegram_bot_token&&(l.telegram_bot_token=t.userNotificationSettings.telegram_bot_token)),t.alertChannels.includes("email")&&t.userNotificationSettings.email&&(l.email=t.userNotificationSettings.email),t.alertChannels.includes("phone")&&t.userNotificationSettings.phone&&(l.phone=t.userNotificationSettings.phone),t.alertChannels.includes("discord")&&t.userNotificationSettings.discord_webhook&&(l.discord=t.userNotificationSettings.discord_webhook),t.alertChannels.includes("webhook")&&t.userNotificationSettings.webhook_url&&(l.webhook=t.userNotificationSettings.webhook_url,t.userNotificationSettings.webhook_token&&(l.webhook_token=t.userNotificationSettings.webhook_token)),c={position_id:null===(i=t.alertPosition)||void 0===i?void 0:i.id,market:null===(a=t.alertPosition)||void 0===a?void 0:a.market,symbol:null===(n=t.alertPosition)||void 0===n?void 0:n.symbol,alert_type:s.alert_type,threshold:s.threshold,notification_config:{channels:t.alertChannels.length>0?t.alertChannels:["browser"],targets:l,language:t.$store.getters.lang||"en-US"},is_active:!1!==s.is_active,repeat_interval:s.repeat_interval||0,notes:s.notes||""},!t.editingAlert){e.n=4;break}return e.n=3,w(t.editingAlert.id,c);case 3:u=e.v,e.n=6;break;case 4:return e.n=5,k(c);case 5:u=e.v;case 6:u&&1===u.code?(t.$message.success(t.$t("portfolio.message.saveSuccess")),t.closeAlertModal(),t.loadAlerts()):t.$message.error((null===(p=u)||void 0===p?void 0:p.msg)||t.$t("portfolio.message.saveFailed")),e.n=8;break;case 7:e.p=7,e.v,t.$message.error(t.$t("portfolio.message.saveFailed"));case 8:return e.p=8,t.savingAlert=!1,e.f(8);case 9:return e.a(2)}},e,null,[[2,7,8,9]])}));return function(t,o){return e.apply(this,arguments)}}());case 1:return e.a(2)}},e)}))()},deleteAlert:function(t){var e=this;return(0,n.A)((0,r.A)().m(function o(){var s;return(0,r.A)().w(function(o){while(1)switch(o.p=o.n){case 0:return o.p=0,o.n=1,A(t);case 1:s=o.v,s&&1===s.code?(e.$message.success(e.$t("portfolio.message.deleteSuccess")),e.loadAlerts()):e.$message.error((null===s||void 0===s?void 0:s.msg)||e.$t("portfolio.message.deleteFailed")),o.n=3;break;case 2:o.p=2,o.v,e.$message.error(e.$t("portfolio.message.deleteFailed"));case 3:return o.a(2)}},o,null,[[0,2]])}))()},closeAlertModal:function(){this.showAddAlertModal=!1,this.editingAlert=null,this.alertPosition=null,this.alertChannels=(0,a.A)(this.userNotificationSettings.default_channels||["browser"]),this.alertForm.resetFields()},confirmDeleteAlert:function(){if(this.editingAlert){var t=this;this.$confirm({title:this.$t("portfolio.alerts.deleteConfirm"),okText:this.$t("common.confirm"),okType:"danger",cancelText:this.$t("common.cancel"),onOk:function(){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 e.n=1,t.handleDeleteAlert();case 1:return e.a(2)}},e)}))()}})}},handleDeleteAlert:function(){var t=this;return(0,n.A)((0,r.A)().m(function e(){var o;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(t.editingAlert){e.n=1;break}return e.a(2);case 1:return t.deletingAlert=!0,e.p=2,e.n=3,A(t.editingAlert.id);case 3:if(o=e.v,!o||1!==o.code){e.n=5;break}return t.$message.success(t.$t("portfolio.message.deleteSuccess")),t.closeAlertModal(),e.n=4,t.loadAlerts();case 4:e.n=6;break;case 5:t.$message.error((null===o||void 0===o?void 0:o.msg)||t.$t("portfolio.message.deleteFailed"));case 6:e.n=8;break;case 7:e.p=7,e.v,t.$message.error(t.$t("portfolio.message.deleteFailed"));case 8:return e.p=8,t.deletingAlert=!1,e.f(8);case 9:return e.a(2)}},e,null,[[2,7,8,9]])}))()},focusMonitorsSection:function(){var t=this;this.$nextTick(function(){var e=t.$refs.monitorsSection;e&&"function"===typeof e.scrollIntoView&&e.scrollIntoView({behavior:"smooth",block:"start"})})},openAddMonitorModal:function(){var t=this;this.editingMonitor=null,this.monitorChannels=(0,a.A)(this.userNotificationSettings.default_channels||["browser"]),this.monitorScope="all",this.selectedMonitorPositions=[],this.showAddMonitorModal=!0,this.$nextTick(function(){t.monitorForm&&t.monitorForm.resetFields()})},handleMonitorChannelsChange:function(t){this.monitorChannels=t||[]},editMonitor:function(t){var e,o=this;this.editingMonitor=t,this.monitorChannels=(0,a.A)((null===(e=t.notification_config)||void 0===e?void 0:e.channels)||["browser"]);var s=[];if(t.position_ids)if("string"===typeof t.position_ids)try{s=JSON.parse(t.position_ids)||[]}catch(i){s=[]}else Array.isArray(t.position_ids)&&(s=t.position_ids);this.monitorScope=s.length>0?"selected":"all",this.selectedMonitorPositions=s,this.showAddMonitorModal=!0,this.$nextTick(function(){var e,s;o.monitorForm&&o.monitorForm.setFieldsValue({name:t.name,interval_minutes:(null===(e=t.config)||void 0===e?void 0:e.interval_minutes)||60,prompt:(null===(s=t.config)||void 0===s?void 0:s.prompt)||""})})},handleMonitorScopeChange:function(t){this.monitorScope=t.target.value,"all"===t.target.value&&(this.selectedMonitorPositions=[])},selectAllPositions:function(){this.selectedMonitorPositions=this.positions.map(function(t){return t.id})},deselectAllPositions:function(){this.selectedMonitorPositions=[]},handleSaveMonitor: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:t.monitorForm.validateFields(function(){var e=(0,n.A)((0,r.A)().m(function e(o,s){var i,a,n;return(0,r.A)().w(function(e){while(1)switch(e.p=e.n){case 0:if(!o){e.n=1;break}return e.a(2);case 1:if("selected"!==t.monitorScope||0!==t.selectedMonitorPositions.length){e.n=2;break}return t.$message.warning(t.$t("portfolio.form.pleaseSelectPositions")),e.a(2);case 2:if(t.savingMonitor=!0,e.p=3,i={name:s.name,monitor_type:"ai",position_ids:"selected"===t.monitorScope?t.selectedMonitorPositions:[],config:{interval_minutes:s.interval_minutes,prompt:s.prompt||"",language:t.$store.getters.lang||"en-US"},notification_config:{channels:t.monitorChannels.length>0?t.monitorChannels:["browser"],targets:{telegram:t.userNotificationSettings.telegram_chat_id||"",telegram_bot_token:t.userNotificationSettings.telegram_bot_token||"",email:t.userNotificationSettings.email||"",phone:t.userNotificationSettings.phone||"",discord:t.userNotificationSettings.discord_webhook||"",webhook:t.userNotificationSettings.webhook_url||"",webhook_token:t.userNotificationSettings.webhook_token||""}},is_active:!0},!t.editingMonitor){e.n=5;break}return e.n=4,y(t.editingMonitor.id,i);case 4:a=e.v,e.n=7;break;case 5:return e.n=6,g(i);case 6:a=e.v;case 7:a&&1===a.code?(t.$message.success(t.$t("portfolio.message.saveSuccess")),t.closeMonitorModal(),t.loadMonitors()):t.$message.error((null===(n=a)||void 0===n?void 0:n.msg)||t.$t("portfolio.message.saveFailed")),e.n=9;break;case 8:e.p=8,e.v,t.$message.error(t.$t("portfolio.message.saveFailed"));case 9:return e.p=9,t.savingMonitor=!1,e.f(9);case 10:return e.a(2)}},e,null,[[3,8,9,10]])}));return function(t,o){return e.apply(this,arguments)}}());case 1:return e.a(2)}},e)}))()},toggleMonitor:function(t,e){var o=this;return(0,n.A)((0,r.A)().m(function s(){var i;return(0,r.A)().w(function(s){while(1)switch(s.p=s.n){case 0:return s.p=0,s.n=1,y(t,{is_active:e});case 1:i=s.v,i&&1===i.code&&(o.$message.success(e?o.$t("portfolio.message.monitorEnabled"):o.$t("portfolio.message.monitorDisabled")),o.loadMonitors()),s.n=3;break;case 2:s.p=2,s.v,o.$message.error(o.$t("portfolio.message.updateFailed"));case 3:return s.a(2)}},s,null,[[0,2]])}))()},runMonitorNow:function(t){var e=this;return(0,n.A)((0,r.A)().m(function o(){var s,i,a,n,l,c,u;return(0,r.A)().w(function(o){while(1)switch(o.p=o.n){case 0:return e.runningMonitor=t,o.p=1,s=e.$store.getters.lang||"en-US",o.n=2,C(t,{language:s,async:!0});case 2:i=o.v,i&&1===i.code&&("running"===(null===(a=i.data)||void 0===a?void 0:a.status)?(e.$message.success(e.$t("portfolio.message.monitorRunning")),e.$notification.info({message:e.$t("portfolio.monitors.runningTitle"),description:e.$t("portfolio.monitors.runningDesc"),duration:5})):null!==(n=i.data)&&void 0!==n&&n.success?(e.$message.success(e.$t("portfolio.message.monitorRunSuccess")),i.data.analysis&&e.$notification.open({message:e.$t("portfolio.monitors.analysisResult"),description:i.data.analysis.substring(0,500)+(i.data.analysis.length>500?"...":""),duration:0})):null!==(l=i.data)&&void 0!==l&&l.error&&e.$message.error(i.data.error||e.$t("portfolio.message.monitorRunFailed")),e.loadMonitors()),o.n=4;break;case 3:o.p=3,u=o.v,"ECONNABORTED"===u.code||null!==(c=u.message)&&void 0!==c&&c.includes("timeout")?e.$notification.warning({message:e.$t("portfolio.monitors.timeoutTitle"),description:e.$t("portfolio.monitors.timeoutDesc"),duration:8}):e.$message.error(e.$t("portfolio.message.monitorRunFailed"));case 4:return o.p=4,e.runningMonitor=null,o.f(4);case 5:return o.a(2)}},o,null,[[1,3,4,5]])}))()},deleteMonitor:function(t){var e=this;return(0,n.A)((0,r.A)().m(function o(){var s;return(0,r.A)().w(function(o){while(1)switch(o.p=o.n){case 0:return o.p=0,o.n=1,b(t);case 1:s=o.v,s&&1===s.code?(e.$message.success(e.$t("portfolio.message.deleteSuccess")),e.loadMonitors()):e.$message.error((null===s||void 0===s?void 0:s.msg)||e.$t("portfolio.message.deleteFailed")),o.n=3;break;case 2:o.p=2,o.v,e.$message.error(e.$t("portfolio.message.deleteFailed"));case 3:return o.a(2)}},o,null,[[0,2]])}))()},closeMonitorModal:function(){this.showAddMonitorModal=!1,this.editingMonitor=null,this.monitorForm.resetFields(),this.monitorChannels=(0,a.A)(this.userNotificationSettings.default_channels||["browser"]),this.monitorScope="all",this.selectedMonitorPositions=[]},getMonitorPositionIds:function(t){if(!t.position_ids)return[];if("string"===typeof t.position_ids)try{return JSON.parse(t.position_ids)||[]}catch(e){return[]}return Array.isArray(t.position_ids)?t.position_ids:[]},getPositionNameById:function(t){var e=this.positions.find(function(e){return e.id===t});return e?"".concat(e.symbol," (").concat(e.name||e.market,")"):"#".concat(t)},hasAlertForPosition:function(t){return this.alerts.some(function(e){return e.position_id===t})},getAlertForPosition:function(t){return this.alerts.find(function(e){return e.position_id===t})},getMarketColor:function(t){var e={USStock:"green",Crypto:"purple",Forex:"gold",Futures:"cyan"};return e[t]||"default"},getMarketName:function(t){return this.$t("dashboard.analysis.market.".concat(t))||t},getCurrencySymbol:function(t){var e=["USStock","Crypto","Forex","Futures"];return e.includes(t)?"$":"¥"},formatNumber:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return void 0===t||null===t?"0.00":Number(t).toLocaleString("en-US",{minimumFractionDigits:e,maximumFractionDigits:e})},formatPrice:function(t){return t?t>=1e3?this.formatNumber(t,2):t>=1?this.formatNumber(t,4):this.formatNumber(t,6):"0"},formatTime:function(t){if(!t)return"-";var e;if("number"===typeof t)e=new Date(1e3*t);else{if("string"!==typeof t)return"-";e=/^\d+$/.test(t)?new Date(1e3*parseInt(t,10)):new Date(t)}return isNaN(e.getTime())?"-":e.toLocaleString()},getIntervalText:function(t){if(!t)return"-";if(t<60)return"".concat(t," ").concat(this.$t("portfolio.form.minutes"));var e=t/60;return"".concat(e," ").concat(this.$t("portfolio.form.hours"))}}},F=x,T=o(81656),q=(0,T.A)(F,s,i,!1,null,"398d904c",null),R=q.exports},84841:function(t,e,o){o.d(e,{DK:function(){return g},E$:function(){return u},Gl:function(){return d},O0:function(){return c},TK:function(){return r},aU:function(){return i},cw:function(){return l},d$:function(){return b},hG:function(){return n},kg:function(){return a},nY:function(){return _},r7:function(){return p},rx:function(){return v},v9:function(){return f},vF:function(){return m},vi:function(){return y},wq:function(){return h}});var s=o(75769);function i(t){return(0,s.Ay)({url:"/api/users/list",method:"get",params:t})}function a(t){return(0,s.Ay)({url:"/api/users/create",method:"post",data:t})}function r(t,e){return(0,s.Ay)({url:"/api/users/update",method:"put",params:{id:t},data:e})}function n(t){return(0,s.Ay)({url:"/api/users/delete",method:"delete",params:{id:t}})}function l(t){return(0,s.Ay)({url:"/api/users/reset-password",method:"post",data:t})}function c(){return(0,s.Ay)({url:"/api/users/roles",method:"get"})}function u(){return(0,s.Ay)({url:"/api/users/profile",method:"get"})}function p(t){return(0,s.Ay)({url:"/api/users/profile/update",method:"put",data:t})}function m(){return(0,s.Ay)({url:"/api/users/notification-settings",method:"get"})}function d(t){return(0,s.Ay)({url:"/api/users/notification-settings",method:"put",data:t})}function f(t){return(0,s.Ay)({url:"/api/users/my-credits-log",method:"get",params:t})}function v(t){return(0,s.Ay)({url:"/api/users/my-referrals",method:"get",params:t})}function h(t){return(0,s.Ay)({url:"/api/users/set-credits",method:"post",data:t})}function _(t){return(0,s.Ay)({url:"/api/users/set-vip",method:"post",data:t})}function g(t){return(0,s.Ay)({url:"/api/users/system-strategies",method:"get",params:t})}function y(t){return(0,s.Ay)({url:"/api/users/admin-orders",method:"get",params:t})}function b(t){return(0,s.Ay)({url:"/api/users/admin-ai-stats",method:"get",params:t})}}}]); |