Files
monisuo/monisuo-admin/dist/assets/coins-DEYoPkJY.js
2026-04-05 19:44:40 +08:00

1 line
11 KiB
JavaScript

import{I as e,Q as t,R as n,_ as r,at as i,b as a,g as o,h as s,l as c,m as ee,ut as l,v as u,wt as d,x as f,xt as p,y as m,yt as h}from"./vue.runtime.esm-bundler-DS0mm12S.js";import{a as te,i as ne,n as re,r as g,t as ie}from"./SelectValue-BbKWf16W.js";import{n as _}from"./lib-CC9cpJ8Y.js";import{L as ae,U as v}from"./index-axPHP3AB.js";import"./Teleport-f0-_cFyq.js";import{n as oe}from"./button-xrpYa8G4.js";import{i as se,n as ce,r as le,t as ue}from"./DialogTitle-vfkBik3a.js";import{t as de}from"./Label-BVKK717i.js";import{t as fe}from"./Input-BTEnOeoJ.js";import{_ as y,b,c as x,x as S}from"./monisuo-admin.api-D_Mn0eGz.js";import{t as pe}from"./DialogFooter-DJzdKo6n.js";import{t as me}from"./Card-C4ypPl9R.js";import{r as he}from"./global-layout-DVspC3_O.js";import{t as ge}from"./Badge-mM7tiz9P.js";import{a as _e,i as ve,n as ye,o as be,r as xe,t as Se}from"./TableHead-jcYh_hA1.js";var Ce={class:`space-y-4`},we={class:`flex justify-end`},Te={class:`flex justify-end gap-1`},Ee={class:`md:hidden space-y-3`},De={key:0,class:`text-center py-8`},Oe={class:`flex items-start justify-between`},ke={class:`space-y-1`},C={class:`flex items-center gap-2`},w={class:`font-mono font-bold`},Ae={class:`text-sm text-muted-foreground`},je={class:`mt-3 pt-3 border-t`},Me={class:`text-xl font-mono font-bold text-green-600 dark:text-green-400`},Ne={key:0,class:`text-xs text-muted-foreground mt-1`},Pe={class:`mt-3 flex gap-2`},Fe={key:2,class:`text-center py-8 text-muted-foreground`},Ie={class:`grid gap-4 py-4`},Le={class:`grid gap-2`},Re={key:0,class:`text-sm text-red-500`},ze={class:`grid gap-2`},Be={key:0,class:`text-sm text-red-500`},Ve={class:`grid gap-2`},He={key:0,class:`grid gap-2`},Ue={key:0,class:`grid grid-cols-2 gap-4 text-sm`},We={class:`font-mono mt-1`},Ge={class:`font-mono mt-1 text-green-600 dark:text-green-400`},Ke={key:1,class:`text-sm text-muted-foreground bg-muted/50 rounded-md p-3`},qe={class:`grid gap-4 py-4`},Je={key:0,class:`grid grid-cols-2 gap-4 text-sm`},Ye={class:`font-mono mt-1`},Xe={class:`font-mono mt-1 text-green-600 dark:text-green-400`},Ze={key:1,class:`text-sm text-muted-foreground bg-muted/50 rounded-md p-3`},Qe={class:`grid gap-2`},T=f({__name:`coins`,setup(f){let{data:T,isLoading:E,refetch:D}=x(),O=y(),k=b(),A=S(),j=ee(()=>T.value?.data?.list||[]),M=l({}),N=l(!1),P=l(!1),F=l(0),I=l(``),L=l(null),R=l(0),z=l({});function B(){return z.value={},M.value.code?.trim()?M.value.name?.trim()?!0:(z.value.name=`请输入币种名称`,!1):(z.value.code=`请输入币种代码`,!1)}function V(e){e?M.value={...e}:M.value={priceType:2,status:1,price:0},z.value={},N.value=!0}async function $e(){if(B())try{await O.mutateAsync(M.value),_.success(M.value.id?`币种已更新`:`币种已添加`),N.value=!1,D()}catch(e){_.error(e.response?.data?.msg||`操作失败`)}}function H(e){I.value=e.code,L.value=e.initialPrice??null,R.value=e.price,F.value=e.price,P.value=!0}async function et(){if(F.value<=0){_.error(`请输入有效价格`);return}try{await k.mutateAsync({code:I.value,price:F.value}),_.success(`价格已更新`),P.value=!1,D()}catch(e){_.error(e.response?.data?.msg||`操作失败`)}}async function U(e){let t=e.status===1?0:1,n=t===1?`上架`:`下架`;try{await A.mutateAsync({coinId:e.id,status:t}),_.success(`${n} ${e.code}`)}catch(e){_.error(e.response?.data?.msg||`${n}失败`)}}function W(e){return e?e>=1?e.toLocaleString(void 0,{maximumFractionDigits:2}):e.toFixed(6):`0.00`}return(ee,l)=>{let f=oe,_=Se,y=ye,b=xe,x=ae,S=ve,T=ge,D=_e,B=be,G=me,K=ue,q=ce,J=de,Y=fe,tt=ie,nt=re,X=g,rt=ne,it=te,Z=pe,Q=le,$=se;return e(),o(h(he),{title:`币种管理`,description:`管理交易币种`},{default:t(()=>[s(`div`,Ce,[s(`div`,we,[a(f,{onClick:l[0]||=e=>V()},{default:t(()=>[a(h(v),{icon:`lucide:plus`,class:`size-4 mr-2`}),l[12]||=m(` 新增币种 `,-1)]),_:1})]),a(G,{class:`hidden md:block overflow-x-auto p-4`},{default:t(()=>[a(B,null,{default:t(()=>[a(b,null,{default:t(()=>[a(y,null,{default:t(()=>[a(_,{class:`w-[80px]`},{default:t(()=>[...l[13]||=[m(` ID `,-1)]]),_:1}),a(_,null,{default:t(()=>[...l[14]||=[m(`代码`,-1)]]),_:1}),a(_,null,{default:t(()=>[...l[15]||=[m(`名称`,-1)]]),_:1}),a(_,{class:`text-right`},{default:t(()=>[...l[16]||=[m(` 初始价格 `,-1)]]),_:1}),a(_,{class:`text-right`},{default:t(()=>[...l[17]||=[m(` 当前价格 `,-1)]]),_:1}),a(_,null,{default:t(()=>[...l[18]||=[m(`价格类型`,-1)]]),_:1}),a(_,null,{default:t(()=>[...l[19]||=[m(`状态`,-1)]]),_:1}),a(_,{class:`text-right`},{default:t(()=>[...l[20]||=[m(` 操作 `,-1)]]),_:1})]),_:1})]),_:1}),a(D,null,{default:t(()=>[h(E)?(e(),o(y,{key:0},{default:t(()=>[a(S,{"col-span":8,class:`text-center py-8`},{default:t(()=>[a(x,{class:`mx-auto`})]),_:1})]),_:1})):h(j).length===0?(e(),o(y,{key:1},{default:t(()=>[a(S,{"col-span":8,class:`text-center py-8 text-muted-foreground`},{default:t(()=>[...l[21]||=[m(` 暂无数据 `,-1)]]),_:1})]),_:1})):r(``,!0),(e(!0),u(c,null,n(h(j),n=>(e(),o(y,{key:n.id},{default:t(()=>[a(S,null,{default:t(()=>[m(d(n.id),1)]),_:2},1024),a(S,{class:`font-mono font-medium`},{default:t(()=>[m(d(n.code),1)]),_:2},1024),a(S,null,{default:t(()=>[m(d(n.name),1)]),_:2},1024),a(S,{class:`text-right font-mono text-muted-foreground`},{default:t(()=>[m(d(n.initialPrice==null?`--`:`$${W(n.initialPrice)}`),1)]),_:2},1024),a(S,{class:`text-right font-mono font-semibold text-green-600 dark:text-green-400`},{default:t(()=>[m(` $`+d(W(n.price)),1)]),_:2},1024),a(S,null,{default:t(()=>[a(T,{variant:`outline`},{default:t(()=>[n.priceType===1?(e(),o(h(v),{key:0,icon:`lucide:zap`,class:`size-3 mr-1`})):r(``,!0),m(` `+d(n.priceType===1?`实时`:`手动`),1)]),_:2},1024)]),_:2},1024),a(S,null,{default:t(()=>[a(T,{variant:n.status===1?`default`:`secondary`},{default:t(()=>[m(d(n.status===1?`上架`:`下架`),1)]),_:2},1032,[`variant`])]),_:2},1024),a(S,{class:`text-right`},{default:t(()=>[s(`div`,Te,[a(f,{size:`sm`,variant:`ghost`,onClick:e=>V(n)},{default:t(()=>[a(h(v),{icon:`lucide:pencil`,class:`size-4`})]),_:1},8,[`onClick`]),a(f,{size:`sm`,variant:`ghost`,disabled:n.priceType===1,title:n.priceType===1?`实时价格不支持手动调整`:`调整价格`,onClick:e=>H(n)},{default:t(()=>[a(h(v),{icon:`lucide:dollar-sign`,class:`size-4`})]),_:1},8,[`disabled`,`title`,`onClick`]),a(f,{size:`sm`,variant:`ghost`,disabled:h(A).isPending.value,onClick:e=>U(n)},{default:t(()=>[a(h(v),{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}),s(`div`,Ee,[h(E)?(e(),u(`div`,De,[a(x,{class:`mx-auto`})])):h(j).length>0?(e(!0),u(c,{key:1},n(h(j),n=>(e(),o(G,{key:n.id,class:`p-4`},{default:t(()=>[s(`div`,Oe,[s(`div`,ke,[s(`div`,C,[s(`span`,w,d(n.code),1),a(T,{variant:`outline`,class:`text-xs`},{default:t(()=>[m(d(n.priceType===1?`实时`:`手动`),1)]),_:2},1024)]),s(`div`,Ae,d(n.name),1)]),a(T,{variant:n.status===1?`default`:`secondary`},{default:t(()=>[m(d(n.status===1?`上架`:`下架`),1)]),_:2},1032,[`variant`])]),s(`div`,je,[s(`div`,Me,` $`+d(W(n.price)),1),n.initialPrice==null?r(``,!0):(e(),u(`div`,Ne,` 初始价格: $`+d(W(n.initialPrice)),1))]),s(`div`,Pe,[a(f,{size:`sm`,variant:`outline`,class:`flex-1`,onClick:e=>V(n)},{default:t(()=>[...l[22]||=[m(` 编辑 `,-1)]]),_:1},8,[`onClick`]),a(f,{size:`sm`,variant:`outline`,class:`flex-1`,disabled:n.priceType===1,onClick:e=>H(n)},{default:t(()=>[...l[23]||=[m(` 调价 `,-1)]]),_:1},8,[`disabled`,`onClick`]),a(f,{size:`sm`,variant:`outline`,class:`flex-1`,disabled:h(A).isPending.value,onClick:e=>U(n)},{default:t(()=>[m(d(n.status===1?`下架`:`上架`),1)]),_:2},1032,[`disabled`,`onClick`])])]),_:2},1024))),128)):(e(),u(`div`,Fe,` 暂无数据 `))])]),a($,{open:h(N),"onUpdate:open":l[8]||=e=>i(N)?N.value=e:null},{default:t(()=>[a(Q,{class:`max-w-md`},{default:t(()=>[a(q,null,{default:t(()=>[a(K,null,{default:t(()=>[m(d(h(M).id?`编辑币种`:`新增币种`),1)]),_:1})]),_:1}),s(`div`,Ie,[s(`div`,Le,[a(J,null,{default:t(()=>[...l[24]||=[m(`代码 `,-1),s(`span`,{class:`text-red-500`},`*`,-1)]]),_:1}),a(Y,{modelValue:h(M).code,"onUpdate:modelValue":l[1]||=e=>h(M).code=e,placeholder:`BTC`,disabled:!!h(M).id,class:p({"border-red-500":h(z).code}),onInput:l[2]||=e=>h(z).code=void 0},null,8,[`modelValue`,`disabled`,`class`]),h(z).code?(e(),u(`p`,Re,d(h(z).code),1)):r(``,!0)]),s(`div`,ze,[a(J,null,{default:t(()=>[...l[25]||=[m(`名称 `,-1),s(`span`,{class:`text-red-500`},`*`,-1)]]),_:1}),a(Y,{modelValue:h(M).name,"onUpdate:modelValue":l[3]||=e=>h(M).name=e,placeholder:`比特币`,class:p({"border-red-500":h(z).name}),onInput:l[4]||=e=>h(z).name=void 0},null,8,[`modelValue`,`class`]),h(z).name?(e(),u(`p`,Be,d(h(z).name),1)):r(``,!0)]),s(`div`,Ve,[a(J,null,{default:t(()=>[...l[26]||=[m(`价格类型`,-1)]]),_:1}),a(it,{modelValue:h(M).priceType,"onUpdate:modelValue":l[5]||=e=>h(M).priceType=e,disabled:!!h(M).id},{default:t(()=>[a(nt,null,{default:t(()=>[a(tt)]),_:1}),a(rt,null,{default:t(()=>[a(X,{value:1},{default:t(()=>[...l[27]||=[m(` 实时(从市场获取) `,-1)]]),_:1}),a(X,{value:2},{default:t(()=>[...l[28]||=[m(` 手动(自定义价格) `,-1)]]),_:1})]),_:1})]),_:1},8,[`modelValue`,`disabled`])]),h(M).priceType===2&&!h(M).id?(e(),u(`div`,He,[a(J,null,{default:t(()=>[...l[29]||=[m(`初始价格 ($)`,-1)]]),_:1}),a(Y,{modelValue:h(M).price,"onUpdate:modelValue":l[6]||=e=>h(M).price=e,modelModifiers:{number:!0},type:`number`,step:`0.000001`,placeholder:`0.00`},null,8,[`modelValue`])])):r(``,!0),h(M).priceType===2&&h(M).id?(e(),u(c,{key:1},[h(M).initialPrice==null?(e(),u(`div`,Ke,` 尚未调价,初始价格将在首次调价时锁定 `)):(e(),u(`div`,Ue,[s(`div`,null,[l[30]||=s(`span`,{class:`text-muted-foreground`},`初始价格`,-1),s(`div`,We,` $`+d(W(h(M).initialPrice)),1)]),s(`div`,null,[l[31]||=s(`span`,{class:`text-muted-foreground`},`当前价格`,-1),s(`div`,Ge,` $`+d(W(h(M).price)),1)])]))],64)):r(``,!0)]),a(Z,null,{default:t(()=>[a(f,{variant:`outline`,onClick:l[7]||=e=>N.value=!1},{default:t(()=>[...l[32]||=[m(` 取消 `,-1)]]),_:1}),a(f,{disabled:h(O).isPending.value,onClick:$e},{default:t(()=>[h(O).isPending.value?(e(),o(x,{key:0,class:`mr-2`})):r(``,!0),l[33]||=m(` 保存 `,-1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`]),a($,{open:h(P),"onUpdate:open":l[11]||=e=>i(P)?P.value=e:null},{default:t(()=>[a(Q,{class:`max-w-sm`},{default:t(()=>[a(q,null,{default:t(()=>[a(K,null,{default:t(()=>[m(`调整价格 - `+d(h(I)),1)]),_:1})]),_:1}),s(`div`,qe,[h(L)==null?(e(),u(`div`,Ze,` 首次调价后,当前价格将被锁定为初始价格,之后只能调整当前价格 `)):(e(),u(`div`,Je,[s(`div`,null,[l[34]||=s(`span`,{class:`text-muted-foreground`},`初始价格`,-1),s(`div`,Ye,` $`+d(W(h(L))),1)]),s(`div`,null,[l[35]||=s(`span`,{class:`text-muted-foreground`},`当前价格`,-1),s(`div`,Xe,` $`+d(W(h(R))),1)])])),s(`div`,Qe,[a(J,null,{default:t(()=>[...l[36]||=[m(`新价格 ($)`,-1)]]),_:1}),a(Y,{modelValue:h(F),"onUpdate:modelValue":l[9]||=e=>i(F)?F.value=e:null,modelModifiers:{number:!0},type:`number`,step:`0.000001`,placeholder:`0.00`,autofocus:``},null,8,[`modelValue`])])]),a(Z,null,{default:t(()=>[a(f,{variant:`outline`,onClick:l[10]||=e=>P.value=!1},{default:t(()=>[...l[37]||=[m(` 取消 `,-1)]]),_:1}),a(f,{disabled:h(k).isPending.value,onClick:et},{default:t(()=>[h(k).isPending.value?(e(),o(x,{key:0,class:`mr-2`})):r(``,!0),l[38]||=m(` 确认 `,-1)]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`open`])]),_:1})}}});export{T as default};