Files
monisuo/monisuo-admin/dist/assets/coins-BGJqlTvD.js
2026-04-21 08:12:17 +08:00

1 line
24 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{At as e,C as t,D as n,Dt as ee,E as r,H as i,S as a,T as o,Tt as s,W as te,a as c,b as l,dt as u,gt as d,h as f,it as p,w as m,x as h}from"./iconify-DYZHDLa8.js";import{a as ne,i as re,n as ie,r as ae,t as oe}from"./SelectValue-Dhq6ao6U.js";import"./vue-vendor-DjtlKxRy.js";import{G as g,q as se}from"./index-Uji7rFqr.js";import"./Teleport-BIYegdAM.js";import{n as ce}from"./button-BuRmTYve.js";import{a as le,i as ue,n as de,r as fe,t as pe}from"./DialogTitle-CMQDEO8n.js";import{t as me}from"./Label-BOs1t85p.js";import{t as he}from"./Input-DFmzhatB.js";import{D as _,M as v,O as y,S as b,d as x,k as ge,x as _e}from"./monisuo-admin.api-dPrln-7F.js";import{t as ve}from"./Card-mLutrMBs.js";import{r as ye}from"./global-layout-BGXP2p6j.js";import{a as be,i as xe,n as Se,o as Ce,r as we,t as Te}from"./TableHead-BHgluwhS.js";import{t as Ee}from"./Badge-RIbvVUq1.js";var De={class:`space-y-4`},Oe={class:`flex justify-end`},ke={class:`flex flex-col gap-1`},Ae={key:1,class:`text-xs text-green-600 dark:text-green-400`},je={key:2,class:`text-xs text-muted-foreground`},Me={class:`flex justify-end gap-1`},Ne={class:`md:hidden space-y-3`},Pe={key:0,class:`text-center py-8`},Fe={class:`flex items-start justify-between`},Ie={class:`space-y-1`},Le={class:`flex items-center gap-2`},Re={class:`font-mono font-bold`},ze={class:`text-sm text-muted-foreground`},Be={class:`mt-3 pt-3 border-t`},Ve={class:`text-xl font-mono font-bold text-green-600 dark:text-green-400`},He={key:0,class:`text-xs text-muted-foreground mt-1`},Ue={class:`mt-3 flex gap-2`},We={key:2,class:`text-center py-8 text-muted-foreground`},Ge={class:`grid gap-4 py-4`},Ke={class:`grid gap-2`},qe={key:0,class:`text-sm text-red-500`},Je={class:`grid gap-2`},Ye={key:0,class:`text-sm text-red-500`},Xe={class:`grid gap-2`},Ze={key:0,class:`grid gap-2`},Qe={key:0,class:`grid grid-cols-2 gap-4 text-sm`},$e={class:`font-mono mt-1`},et={class:`font-mono mt-1 text-green-600 dark:text-green-400`},tt={key:1,class:`text-sm text-muted-foreground bg-muted/50 rounded-md p-3`},nt={class:`grid gap-4 py-4`},rt={key:0,class:`grid grid-cols-2 gap-4 text-sm`},it={class:`font-mono mt-1`},at={class:`font-mono mt-1 text-green-600 dark:text-green-400`},ot={key:1,class:`text-sm text-muted-foreground bg-muted/50 rounded-md p-3`},st={class:`grid gap-2`},ct={class:`grid gap-4 py-4 max-h-[70vh] overflow-y-auto`},lt={class:`grid gap-2`},ut={class:`grid gap-2`},dt={class:`text-xs text-muted-foreground`},ft={class:`grid gap-2`},pt={class:`text-xs text-muted-foreground`},mt={class:`border-t pt-3`},ht={class:`grid grid-cols-2 gap-3`},gt={class:`grid gap-1.5`},_t={class:`grid gap-1.5`},vt={class:`grid gap-1.5`},yt={class:`grid gap-1.5`},bt={class:`border-t pt-3`},xt={class:`grid grid-cols-3 gap-3`},St={class:`grid gap-1.5`},Ct={class:`grid gap-1.5`},wt={class:`grid gap-1.5`},Tt={class:`border-t pt-3`},Et={class:`grid gap-2`},Dt={key:0,class:`mt-3`},Ot={class:`flex items-end gap-2 mb-3`},kt={class:`grid gap-1 flex-1`},At={class:`grid gap-1 w-[100px]`},jt={key:0,class:`mb-4`},Mt={class:`border rounded-md overflow-hidden`},Nt={class:`mt-3`},Pt={class:`flex items-center justify-between mb-2`},Ft={key:0,class:`border rounded-md overflow-hidden`},It={key:1,class:`text-xs text-muted-foreground`},S=n({__name:`coins`,setup(n){let{data:S,isLoading:Lt,refetch:C}=x(),Rt=_e(),zt=_(),Bt=ge(),Vt=y(),w=l(()=>S.value?.data?.list||[]),T=d({}),E=d(!1),D=d(!1),O=d(0),Ht=d(``),Ut=d(null),Wt=d(0),k=d(!1),A=d(0),Gt=d(``),j=d(1e-4),M=d(.003),N=d(1),P=d(`09:00`),F=d(`12:00`),I=d(`13:00`),L=d(`17:00`),R=d(void 0),z=d(void 0),B=d(void 0),V=d(0),H=d(``),U=b(),W=d(``),G=d(5),K=d([]),q=d([]),J=d(!1),Y=d(!1);async function X(){if(A.value){Y.value=!0;try{let e=new Date().toISOString().slice(0,10),{axiosInstance:t}=v();K.value=((await t.get(`/admin/coin/profit-schedule`,{params:{coinId:A.value,startDate:e,endDate:void 0}})).data?.data?.list||[]).filter(e=>e.status===0).map(e=>({date:e.profitDate,profitPerThousand:e.profitPerThousand}))}catch{}Y.value=!1}}async function Kt(){if(A.value)try{let{axiosInstance:e}=v();q.value=((await e.get(`/admin/coin/profit-schedule`,{params:{coinId:A.value,startDate:void 0,endDate:new Date().toISOString().slice(0,10)}})).data?.data?.list||[]).map(e=>({date:e.profitDate,profitPerThousand:e.profitPerThousand,status:e.status,actualProfitRate:e.actualProfitRate??null})).sort((e,t)=>t.date.localeCompare(e.date))}catch{}}function qt(){if(!W.value){g.error(`请选择日期`);return}if(!G.value||G.value<=0){g.error(`请输入有效盈利金额`);return}if(K.value.some(e=>e.date===W.value)){g.error(`该日期已存在`);return}K.value.push({date:W.value,profitPerThousand:G.value});let e=new Date(W.value);e.setDate(e.getDate()+1),W.value=e.toISOString().slice(0,10)}function Jt(e){K.value.splice(e,1)}async function Z(){let e=K.value.filter(e=>e.profitPerThousand!==null&&e.profitPerThousand>0).map(e=>({date:e.date,profitPerThousand:e.profitPerThousand}));if(e.length===0){g.error(`请至少设置一天的盈利计划`);return}await U.mutateAsync({coinId:A.value,entries:e}),g.success(`盈利计划已保存`),await X()}let Q=d({});function Yt(){return Q.value={},T.value.code?.trim()?T.value.name?.trim()?!0:(Q.value.name=`请输入币种名称`,!1):(Q.value.code=`请输入币种代码`,!1)}function Xt(e){e?T.value={...e}:T.value={priceType:2,status:1,price:0},Q.value={},E.value=!0}async function Zt(){if(Yt())try{await Rt.mutateAsync(T.value),g.success(T.value.id?`币种已更新`:`币种已添加`),E.value=!1,C()}catch(e){g.error(e.message||e.response?.data?.msg||`操作失败`)}}function Qt(e){Ht.value=e.code,Ut.value=e.initialPrice??null,Wt.value=e.price,O.value=e.price,D.value=!0}async function $t(){if(O.value<=0){g.error(`请输入有效价格`);return}try{await zt.mutateAsync({code:Ht.value,price:O.value}),g.success(`价格已更新`),D.value=!1,C()}catch(e){g.error(e.message||e.response?.data?.msg||`操作失败`)}}async function en(e){let t=e.status===1?0:1,n=t===1?`上架`:`下架`;try{await Bt.mutateAsync({coinId:e.id,status:t}),g.success(`${n} ${e.code}`)}catch(e){g.error(e.message||e.response?.data?.msg||`${n}失败`)}}function $(e){return e?e>=1?e.toLocaleString(void 0,{maximumFractionDigits:2}):e.toFixed(6):`0.00`}function tn(e){if(A.value=e.id,Gt.value=e.code,j.value=e.volatilityMin??1e-4,M.value=e.volatilityMax??.003,N.value=e.simulationEnabled??1,P.value=e.tradeStartAm??`09:00`,F.value=e.tradeEndAm??`12:00`,I.value=e.tradeStartPm??`13:00`,L.value=e.tradeEndPm??`17:00`,R.value=e.targetLow,z.value=e.targetHigh,B.value=e.targetClose,V.value=e.isPlatform??0,H.value=e.profitSchedule??``,k.value=!0,e.isPlatform===1){let e=new Date;e.setDate(e.getDate()+1),W.value=e.toISOString().slice(0,10),G.value=5,K.value=[],q.value=[],J.value=!1,X()}}async function nn(){if(V.value===1)try{await Z()}catch(e){g.error(e.message||`盈利计划保存失败`);return}try{await Vt.mutateAsync({coinId:A.value,volatilityMin:j.value,volatilityMax:M.value,simulationEnabled:N.value,tradeStartAm:P.value,tradeEndAm:F.value,tradeStartPm:I.value,tradeEndPm:L.value,targetLow:R.value,targetHigh:z.value,targetClose:B.value,isPlatform:V.value,profitSchedule:H.value}),g.success(`${Gt.value} 模拟配置已更新`),k.value=!1,C()}catch(e){g.error(e.message||e.response?.data?.msg||`操作失败`)}}return(n,l)=>{let d=ce,g=Te,_=Se,v=we,y=se,b=xe,x=Ee,ge=be,_e=Ce,S=ve,C=pe,A=de,H=me,U=he,Y=oe,X=ie,Z=ae,Yt=re,rn=ne,an=fe,on=ue,sn=le;return i(),a(s(ye),{title:`币种管理`,description:`管理交易币种`},{default:p(()=>[h(`div`,De,[h(`div`,Oe,[r(d,{onClick:l[0]||=e=>Xt()},{default:p(()=>[r(s(c),{icon:`lucide:plus`,class:`size-4 mr-2`}),l[29]||=o(` 新增币种 `,-1)]),_:1})]),r(S,{class:`hidden md:block overflow-x-auto p-4`},{default:p(()=>[r(_e,null,{default:p(()=>[r(v,null,{default:p(()=>[r(_,null,{default:p(()=>[r(g,{class:`w-[80px]`},{default:p(()=>[...l[30]||=[o(` ID `,-1)]]),_:1}),r(g,null,{default:p(()=>[...l[31]||=[o(`代码`,-1)]]),_:1}),r(g,null,{default:p(()=>[...l[32]||=[o(`名称`,-1)]]),_:1}),r(g,{class:`text-right`},{default:p(()=>[...l[33]||=[o(` 初始价格 `,-1)]]),_:1}),r(g,{class:`text-right`},{default:p(()=>[...l[34]||=[o(` 当前价格 `,-1)]]),_:1}),r(g,null,{default:p(()=>[...l[35]||=[o(`价格类型`,-1)]]),_:1}),r(g,null,{default:p(()=>[...l[36]||=[o(`模拟波动`,-1)]]),_:1}),r(g,null,{default:p(()=>[...l[37]||=[o(`状态`,-1)]]),_:1}),r(g,{class:`text-right`},{default:p(()=>[...l[38]||=[o(` 操作 `,-1)]]),_:1})]),_:1})]),_:1}),r(ge,null,{default:p(()=>[s(Lt)?(i(),a(_,{key:0},{default:p(()=>[r(b,{"col-span":9,class:`text-center py-8`},{default:p(()=>[r(y,{class:`mx-auto`})]),_:1})]),_:1})):s(w).length===0?(i(),a(_,{key:1},{default:p(()=>[r(b,{"col-span":9,class:`text-center py-8 text-muted-foreground`},{default:p(()=>[...l[39]||=[o(` 暂无数据 `,-1)]]),_:1})]),_:1})):t(``,!0),(i(!0),m(f,null,te(s(w),n=>(i(),a(_,{key:n.id},{default:p(()=>[r(b,null,{default:p(()=>[o(e(n.id),1)]),_:2},1024),r(b,{class:`font-mono font-medium`},{default:p(()=>[o(e(n.code),1)]),_:2},1024),r(b,null,{default:p(()=>[o(e(n.name),1)]),_:2},1024),r(b,{class:`text-right font-mono text-muted-foreground`},{default:p(()=>[o(e(n.initialPrice==null?`--`:`${$(n.initialPrice)} USDT`),1)]),_:2},1024),r(b,{class:`text-right font-mono font-semibold text-green-600 dark:text-green-400`},{default:p(()=>[o(e($(n.price))+` USDT `,1)]),_:2},1024),r(b,null,{default:p(()=>[r(x,{variant:`outline`},{default:p(()=>[n.priceType===1?(i(),a(s(c),{key:0,icon:`lucide:zap`,class:`size-3 mr-1`})):t(``,!0),o(` `+e(n.priceType===1?`实时`:`手动`),1)]),_:2},1024)]),_:2},1024),r(b,null,{default:p(()=>[h(`div`,ke,[n.isPlatform===1?(i(),a(x,{key:0,variant:`default`,class:`text-xs w-fit`},{default:p(()=>[...l[40]||=[o(` 平台币 `,-1)]]),_:1})):t(``,!0),n.simulationEnabled===1?(i(),m(`span`,Ae,e(((n.volatilityMin??0)*100).toFixed(2))+`% ~ `+e(((n.volatilityMax??0)*100).toFixed(2))+`% `,1)):(i(),m(`span`,je,`未启用`))])]),_:2},1024),r(b,null,{default:p(()=>[r(x,{variant:n.status===1?`default`:`secondary`},{default:p(()=>[o(e(n.status===1?`上架`:`下架`),1)]),_:2},1032,[`variant`])]),_:2},1024),r(b,{class:`text-right`},{default:p(()=>[h(`div`,Me,[r(d,{size:`sm`,variant:`ghost`,onClick:e=>Xt(n)},{default:p(()=>[r(s(c),{icon:`lucide:pencil`,class:`size-4`})]),_:1},8,[`onClick`]),r(d,{size:`sm`,variant:`ghost`,title:`模拟配置`,onClick:e=>tn(n)},{default:p(()=>[r(s(c),{icon:`lucide:activity`,class:`size-4`})]),_:1},8,[`onClick`]),r(d,{size:`sm`,variant:`ghost`,disabled:n.priceType===1,title:n.priceType===1?`实时价格不支持手动调整`:`调整价格`,onClick:e=>Qt(n)},{default:p(()=>[r(s(c),{icon:`lucide:dollar-sign`,class:`size-4`})]),_:1},8,[`disabled`,`title`,`onClick`]),r(d,{size:`sm`,variant:`ghost`,disabled:s(Bt).isPending.value,onClick:e=>en(n)},{default:p(()=>[r(s(c),{icon:n.status===1?`lucide:arrow-down`:`lucide:arrow-up`,class:`size-4`},null,8,[`icon`])]),_:2},1032,[`disabled`,`onClick`])])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})]),_:1}),h(`div`,Ne,[s(Lt)?(i(),m(`div`,Pe,[r(y,{class:`mx-auto`})])):s(w).length>0?(i(!0),m(f,{key:1},te(s(w),n=>(i(),a(S,{key:n.id,class:`p-4`},{default:p(()=>[h(`div`,Fe,[h(`div`,Ie,[h(`div`,Le,[h(`span`,Re,e(n.code),1),r(x,{variant:`outline`,class:`text-xs`},{default:p(()=>[o(e(n.priceType===1?`实时`:`手动`),1)]),_:2},1024)]),h(`div`,ze,e(n.name),1)]),r(x,{variant:n.status===1?`default`:`secondary`},{default:p(()=>[o(e(n.status===1?`上架`:`下架`),1)]),_:2},1032,[`variant`])]),h(`div`,Be,[h(`div`,Ve,e($(n.price))+` USDT `,1),n.initialPrice==null?t(``,!0):(i(),m(`div`,He,` 初始价格: `+e($(n.initialPrice))+` USDT `,1))]),h(`div`,Ue,[r(d,{size:`sm`,variant:`outline`,class:`flex-1`,onClick:e=>Xt(n)},{default:p(()=>[...l[41]||=[o(` 编辑 `,-1)]]),_:1},8,[`onClick`]),r(d,{size:`sm`,variant:`outline`,class:`flex-1`,disabled:n.priceType===1,onClick:e=>Qt(n)},{default:p(()=>[...l[42]||=[o(` 调价 `,-1)]]),_:1},8,[`disabled`,`onClick`]),r(d,{size:`sm`,variant:`outline`,class:`flex-1`,onClick:e=>tn(n)},{default:p(()=>[...l[43]||=[o(` 模拟 `,-1)]]),_:1},8,[`onClick`]),r(d,{size:`sm`,variant:`outline`,class:`flex-1`,disabled:s(Bt).isPending.value,onClick:e=>en(n)},{default:p(()=>[o(e(n.status===1?`下架`:`上架`),1)]),_:2},1032,[`disabled`,`onClick`])])]),_:2},1024))),128)):(i(),m(`div`,We,` 暂无数据 `))])]),r(sn,{open:s(E),"onUpdate:open":l[8]||=e=>u(E)?E.value=e:null},{default:p(()=>[r(on,{class:`max-w-md`},{default:p(()=>[r(A,null,{default:p(()=>[r(C,null,{default:p(()=>[o(e(s(T).id?`编辑币种`:`新增币种`),1)]),_:1})]),_:1}),h(`div`,Ge,[h(`div`,Ke,[r(H,null,{default:p(()=>[...l[44]||=[o(`代码 `,-1),h(`span`,{class:`text-red-500`},`*`,-1)]]),_:1}),r(U,{modelValue:s(T).code,"onUpdate:modelValue":l[1]||=e=>s(T).code=e,placeholder:`BTC`,disabled:!!s(T).id,class:ee({"border-red-500":s(Q).code}),onInput:l[2]||=e=>s(Q).code=void 0},null,8,[`modelValue`,`disabled`,`class`]),s(Q).code?(i(),m(`p`,qe,e(s(Q).code),1)):t(``,!0)]),h(`div`,Je,[r(H,null,{default:p(()=>[...l[45]||=[o(`名称 `,-1),h(`span`,{class:`text-red-500`},`*`,-1)]]),_:1}),r(U,{modelValue:s(T).name,"onUpdate:modelValue":l[3]||=e=>s(T).name=e,placeholder:`比特币`,class:ee({"border-red-500":s(Q).name}),onInput:l[4]||=e=>s(Q).name=void 0},null,8,[`modelValue`,`class`]),s(Q).name?(i(),m(`p`,Ye,e(s(Q).name),1)):t(``,!0)]),h(`div`,Xe,[r(H,null,{default:p(()=>[...l[46]||=[o(`价格类型`,-1)]]),_:1}),r(rn,{modelValue:s(T).priceType,"onUpdate:modelValue":l[5]||=e=>s(T).priceType=e,disabled:!!s(T).id},{default:p(()=>[r(X,null,{default:p(()=>[r(Y)]),_:1}),r(Yt,null,{default:p(()=>[r(Z,{value:1},{default:p(()=>[...l[47]||=[o(` 实时(从市场获取) `,-1)]]),_:1}),r(Z,{value:2},{default:p(()=>[...l[48]||=[o(` 手动(自定义价格) `,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`,`disabled`])]),s(T).priceType===2&&!s(T).id?(i(),m(`div`,Ze,[r(H,null,{default:p(()=>[...l[49]||=[o(`初始价格 (USDT)`,-1)]]),_:1}),r(U,{modelValue:s(T).price,"onUpdate:modelValue":l[6]||=e=>s(T).price=e,modelModifiers:{number:!0},type:`number`,step:`0.000001`,placeholder:`0.00`},null,8,[`modelValue`])])):t(``,!0),s(T).priceType===2&&s(T).id?(i(),m(f,{key:1},[s(T).initialPrice==null?(i(),m(`div`,tt,` 尚未调价,初始价格将在首次调价时锁定 `)):(i(),m(`div`,Qe,[h(`div`,null,[l[50]||=h(`span`,{class:`text-muted-foreground`},`初始价格`,-1),h(`div`,$e,e($(s(T).initialPrice))+` USDT `,1)]),h(`div`,null,[l[51]||=h(`span`,{class:`text-muted-foreground`},`当前价格`,-1),h(`div`,et,e($(s(T).price))+` USDT `,1)])]))],64)):t(``,!0)]),r(an,null,{default:p(()=>[r(d,{variant:`outline`,onClick:l[7]||=e=>E.value=!1},{default:p(()=>[...l[52]||=[o(` 取消 `,-1)]]),_:1}),r(d,{disabled:s(Rt).isPending.value,onClick:Zt},{default:p(()=>[s(Rt).isPending.value?(i(),a(y,{key:0,class:`mr-2`})):t(``,!0),l[53]||=o(` 保存 `,-1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),r(sn,{open:s(D),"onUpdate:open":l[11]||=e=>u(D)?D.value=e:null},{default:p(()=>[r(on,{class:`max-w-sm`},{default:p(()=>[r(A,null,{default:p(()=>[r(C,null,{default:p(()=>[o(`调整价格 - `+e(s(Ht)),1)]),_:1})]),_:1}),h(`div`,nt,[s(Ut)==null?(i(),m(`div`,ot,` 首次调价后,当前价格将被锁定为初始价格,之后只能调整当前价格 `)):(i(),m(`div`,rt,[h(`div`,null,[l[54]||=h(`span`,{class:`text-muted-foreground`},`初始价格`,-1),h(`div`,it,e($(s(Ut)))+` USDT `,1)]),h(`div`,null,[l[55]||=h(`span`,{class:`text-muted-foreground`},`当前价格`,-1),h(`div`,at,e($(s(Wt)))+` USDT `,1)])])),h(`div`,st,[r(H,null,{default:p(()=>[...l[56]||=[o(`新价格 (USDT)`,-1)]]),_:1}),r(U,{modelValue:s(O),"onUpdate:modelValue":l[9]||=e=>u(O)?O.value=e:null,modelModifiers:{number:!0},type:`number`,step:`0.000001`,placeholder:`0.00`,autofocus:``},null,8,[`modelValue`])])]),r(an,null,{default:p(()=>[r(d,{variant:`outline`,onClick:l[10]||=e=>D.value=!1},{default:p(()=>[...l[57]||=[o(` 取消 `,-1)]]),_:1}),r(d,{disabled:s(zt).isPending.value,onClick:$t},{default:p(()=>[s(zt).isPending.value?(i(),a(y,{key:0,class:`mr-2`})):t(``,!0),l[58]||=o(` 确认 `,-1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),r(sn,{open:s(k),"onUpdate:open":l[28]||=e=>u(k)?k.value=e:null},{default:p(()=>[r(on,{class:`max-w-md`},{default:p(()=>[r(A,null,{default:p(()=>[r(C,null,{default:p(()=>[o(`模拟配置 - `+e(s(Gt)),1)]),_:1})]),_:1}),h(`div`,ct,[h(`div`,lt,[r(H,null,{default:p(()=>[...l[59]||=[o(`模拟引擎`,-1)]]),_:1}),r(rn,{modelValue:s(N),"onUpdate:modelValue":l[12]||=e=>u(N)?N.value=e:null},{default:p(()=>[r(X,null,{default:p(()=>[r(Y)]),_:1}),r(Yt,null,{default:p(()=>[r(Z,{value:1},{default:p(()=>[...l[60]||=[o(` 启用 `,-1)]]),_:1}),r(Z,{value:0},{default:p(()=>[...l[61]||=[o(` 禁用 `,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),h(`div`,ut,[r(H,null,{default:p(()=>[...l[62]||=[o(`最小波动率每次tick`,-1)]]),_:1}),r(U,{modelValue:s(j),"onUpdate:modelValue":l[13]||=e=>u(j)?j.value=e:null,modelModifiers:{number:!0},type:`number`,step:`0.000001`,placeholder:`0.0001`},null,8,[`modelValue`]),h(`p`,dt,` 当前: `+e((s(j)*100).toFixed(2))+`% `,1)]),h(`div`,ft,[r(H,null,{default:p(()=>[...l[63]||=[o(`最大波动率每次tick`,-1)]]),_:1}),r(U,{modelValue:s(M),"onUpdate:modelValue":l[14]||=e=>u(M)?M.value=e:null,modelModifiers:{number:!0},type:`number`,step:`0.000001`,placeholder:`0.003`},null,8,[`modelValue`]),h(`p`,pt,` 当前: `+e((s(M)*100).toFixed(2))+`% `,1)]),h(`div`,mt,[l[68]||=h(`p`,{class:`text-sm font-medium mb-3`},`交易时段`,-1),h(`div`,ht,[h(`div`,gt,[r(H,{class:`text-xs text-muted-foreground`},{default:p(()=>[...l[64]||=[o(`上午开盘`,-1)]]),_:1}),r(U,{modelValue:s(P),"onUpdate:modelValue":l[15]||=e=>u(P)?P.value=e:null,type:`time`},null,8,[`modelValue`])]),h(`div`,_t,[r(H,{class:`text-xs text-muted-foreground`},{default:p(()=>[...l[65]||=[o(`上午收盘`,-1)]]),_:1}),r(U,{modelValue:s(F),"onUpdate:modelValue":l[16]||=e=>u(F)?F.value=e:null,type:`time`},null,8,[`modelValue`])]),h(`div`,vt,[r(H,{class:`text-xs text-muted-foreground`},{default:p(()=>[...l[66]||=[o(`下午开盘`,-1)]]),_:1}),r(U,{modelValue:s(I),"onUpdate:modelValue":l[17]||=e=>u(I)?I.value=e:null,type:`time`},null,8,[`modelValue`])]),h(`div`,yt,[r(H,{class:`text-xs text-muted-foreground`},{default:p(()=>[...l[67]||=[o(`下午收盘`,-1)]]),_:1}),r(U,{modelValue:s(L),"onUpdate:modelValue":l[18]||=e=>u(L)?L.value=e:null,type:`time`},null,8,[`modelValue`])])])]),h(`div`,bt,[l[72]||=h(`p`,{class:`text-sm font-medium mb-3`},`今日目标价格`,-1),h(`div`,xt,[h(`div`,St,[r(H,{class:`text-xs text-muted-foreground`},{default:p(()=>[...l[69]||=[o(`最低价`,-1)]]),_:1}),r(U,{modelValue:s(R),"onUpdate:modelValue":l[19]||=e=>u(R)?R.value=e:null,modelModifiers:{number:!0},type:`number`,step:`0.0001`,placeholder:`可选`},null,8,[`modelValue`])]),h(`div`,Ct,[r(H,{class:`text-xs text-muted-foreground`},{default:p(()=>[...l[70]||=[o(`最高价`,-1)]]),_:1}),r(U,{modelValue:s(z),"onUpdate:modelValue":l[20]||=e=>u(z)?z.value=e:null,modelModifiers:{number:!0},type:`number`,step:`0.0001`,placeholder:`可选`},null,8,[`modelValue`])]),h(`div`,wt,[r(H,{class:`text-xs text-muted-foreground`},{default:p(()=>[...l[71]||=[o(`收盘价`,-1)]]),_:1}),r(U,{modelValue:s(B),"onUpdate:modelValue":l[21]||=e=>u(B)?B.value=e:null,modelModifiers:{number:!0},type:`number`,step:`0.0001`,placeholder:`可选`},null,8,[`modelValue`])])]),l[73]||=h(`p`,{class:`text-xs text-muted-foreground mt-2`},` 设置后价格在 [最低, 最高] 范围内波动,临近收盘时趋向目标收盘价。留空则不限制。 `,-1)]),h(`div`,Tt,[l[93]||=h(`p`,{class:`text-sm font-medium mb-3`},`平台代币设置`,-1),h(`div`,Et,[r(H,null,{default:p(()=>[...l[74]||=[o(`是否平台代币`,-1)]]),_:1}),r(rn,{modelValue:s(V),"onUpdate:modelValue":l[22]||=e=>u(V)?V.value=e:null},{default:p(()=>[r(X,null,{default:p(()=>[r(Y)]),_:1}),r(Yt,null,{default:p(()=>[r(Z,{value:1},{default:p(()=>[...l[75]||=[o(` 是(固定盈利模式) `,-1)]]),_:1}),r(Z,{value:0},{default:p(()=>[...l[76]||=[o(` 否(模拟价格交易) `,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),s(V)===1?(i(),m(`div`,Dt,[h(`div`,Ot,[h(`div`,kt,[r(H,{class:`text-xs text-muted-foreground`},{default:p(()=>[...l[77]||=[o(`日期`,-1)]]),_:1}),r(U,{modelValue:s(W),"onUpdate:modelValue":l[23]||=e=>u(W)?W.value=e:null,type:`date`,class:`h-8 text-xs`},null,8,[`modelValue`])]),h(`div`,At,[r(H,{class:`text-xs text-muted-foreground`},{default:p(()=>[...l[78]||=[o(`盈利/千U`,-1)]]),_:1}),r(U,{modelValue:s(G),"onUpdate:modelValue":l[24]||=e=>u(G)?G.value=e:null,modelModifiers:{number:!0},type:`number`,step:`0.5`,placeholder:`5.00`,class:`h-8 text-xs`},null,8,[`modelValue`])]),r(d,{size:`sm`,class:`h-8 text-xs`,onClick:qt},{default:p(()=>[r(s(c),{icon:`lucide:plus`,class:`size-3 mr-1`}),l[79]||=o(` 添加 `,-1)]),_:1})]),s(K).length>0?(i(),m(`div`,jt,[l[82]||=h(`p`,{class:`text-xs font-medium text-muted-foreground mb-2`},`待执行计划`,-1),h(`div`,Mt,[r(_e,null,{default:p(()=>[r(v,null,{default:p(()=>[r(_,null,{default:p(()=>[r(g,{class:`text-xs h-8`},{default:p(()=>[...l[80]||=[o(`日期`,-1)]]),_:1}),r(g,{class:`text-xs h-8`},{default:p(()=>[...l[81]||=[o(`盈利/千U`,-1)]]),_:1}),r(g,{class:`text-xs h-8 w-[50px]`})]),_:1})]),_:1}),r(ge,null,{default:p(()=>[(i(!0),m(f,null,te(s(K),(t,n)=>(i(),a(_,{key:t.date},{default:p(()=>[r(b,{class:`text-xs py-1.5 font-mono`},{default:p(()=>[o(e(t.date),1)]),_:2},1024),r(b,{class:`py-1.5`},{default:p(()=>[r(U,{"model-value":t.profitPerThousand??void 0,type:`number`,step:`0.5`,class:`h-7 w-[90px] text-xs`,"onUpdate:modelValue":e=>t.profitPerThousand=e===``||e===void 0?null:Number(e)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:2},1024),r(b,{class:`py-1.5`},{default:p(()=>[r(d,{size:`sm`,variant:`ghost`,class:`h-7 w-7 p-0`,onClick:e=>Jt(n)},{default:p(()=>[r(s(c),{icon:`lucide:x`,class:`size-3 text-muted-foreground`})]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})])])):t(``,!0),h(`div`,Nt,[s(J)?t(``,!0):(i(),a(d,{key:0,size:`sm`,variant:`outline`,class:`text-xs`,onClick:l[25]||=e=>{J.value=!0,Kt()}},{default:p(()=>[r(s(c),{icon:`lucide:history`,class:`size-3 mr-1`}),l[83]||=o(` 查看历史记录 `,-1)]),_:1})),s(J)?(i(),m(f,{key:1},[h(`div`,Pt,[l[85]||=h(`p`,{class:`text-xs font-medium text-muted-foreground`},`历史记录`,-1),r(d,{size:`sm`,variant:`ghost`,class:`h-6 text-xs`,onClick:l[26]||=e=>J.value=!1},{default:p(()=>[...l[84]||=[o(` 收起 `,-1)]]),_:1})]),s(q).length>0?(i(),m(`div`,Ft,[r(_e,null,{default:p(()=>[r(v,null,{default:p(()=>[r(_,null,{default:p(()=>[r(g,{class:`text-xs h-8`},{default:p(()=>[...l[86]||=[o(`日期`,-1)]]),_:1}),r(g,{class:`text-xs h-8`},{default:p(()=>[...l[87]||=[o(`计划盈利`,-1)]]),_:1}),r(g,{class:`text-xs h-8`},{default:p(()=>[...l[88]||=[o(`实际比率`,-1)]]),_:1}),r(g,{class:`text-xs h-8 w-[60px]`},{default:p(()=>[...l[89]||=[o(`状态`,-1)]]),_:1})]),_:1})]),_:1}),r(ge,null,{default:p(()=>[(i(!0),m(f,null,te(s(q),t=>(i(),a(_,{key:t.date},{default:p(()=>[r(b,{class:`text-xs py-1.5 font-mono`},{default:p(()=>[o(e(t.date),1)]),_:2},1024),r(b,{class:`text-xs py-1.5`},{default:p(()=>[o(e(t.profitPerThousand)+` U `,1)]),_:2},1024),r(b,{class:`text-xs py-1.5 text-muted-foreground`},{default:p(()=>[o(e(t.actualProfitRate==null?`--`:`${(t.actualProfitRate*100).toFixed(2)}%`),1)]),_:2},1024),r(b,{class:`py-1.5`},{default:p(()=>[t.status===1?(i(),a(x,{key:0,variant:`default`,class:`text-[10px]`},{default:p(()=>[...l[90]||=[o(`已执行`,-1)]]),_:1})):t.status===2?(i(),a(x,{key:1,variant:`destructive`,class:`text-[10px]`},{default:p(()=>[...l[91]||=[o(`已取消`,-1)]]),_:1})):(i(),a(x,{key:2,variant:`secondary`,class:`text-[10px]`},{default:p(()=>[...l[92]||=[o(`待执行`,-1)]]),_:1}))]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})])):(i(),m(`p`,It,`暂无历史数据`))],64)):t(``,!0)])])):t(``,!0)]),l[94]||=h(`div`,{class:`text-sm bg-muted/50 rounded-md p-3 text-muted-foreground`},` 非「交易时段」内价格不变动12:00-13:00 显示"午休中"17:00 后显示"已收盘"。 `,-1)]),r(an,null,{default:p(()=>[r(d,{variant:`outline`,onClick:l[27]||=e=>k.value=!1},{default:p(()=>[...l[95]||=[o(` 取消 `,-1)]]),_:1}),r(d,{disabled:s(Vt).isPending.value,onClick:nn},{default:p(()=>[s(Vt).isPending.value?(i(),a(y,{key:0,class:`mr-2`})):t(``,!0),l[96]||=o(` 保存 `,-1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]),_:1})}}});export{S as default};