PageSourceSearch

https://detroitdancecityfestival.com/static/js/merchant-BPev3AJk.js

js detroitdancecityfestival.com collected 2026-10-07 06:28:25 UTC 15,643 bytes, 1 lines download raw bytes

1import{A as t,At as _,C as o,Ct as Ra,E as f,L as Ua,O as $a,Ot as Oa,Q as p,S as sa,T as h,Y as Ma,Yt as Ta,_ as Y,_n as i,_t as l,it as d,k as n,nt as q,pt as Ba,w as c}from"./vue.runtime.esm-bundler-BXOQDxND.js";import{i as ha}from"./vue-router-CA12YVzF.js";import{t as Aa}from"./_plugin-vue_export-helper-K9rsuiWd.js";import{t as k}from"./message-BWqmnC5I.js";import{t as v}from"./p2p-DiP5uCQa.js";Ua(),Ta();Ra();var Na={class:"p2p-admin"},Ea={class:"hero"},Da={class:"metrics"},Ia={class:"panel"},ja={class:"identity"},La={class:"muted"},Ya={key:1,class:"muted"},qa={class:"identity"},Pa={class:"muted"},Fa={key:0,class:"muted"},Ka={key:2,class:"muted"},Qa={key:0,class:"muted"},Ga={class:"form-grid"},Ha=Object.assign({name:"appConfig:merchant"},{__name:"merchant",setup(Ja){const P=ha(),C=_("applications"),y=_(!1),b=_({}),F=_([]),K=_([]),Q=_([]),r=Oa({enabled:1,currency_ids:[],fiat_codes:["CNY","USD"],payment_types:[1,2,3],merchant_deposit:0,merchant_deposit_currency_id:0,maker_fee_bps:0,payment_window_minutes:15}),A=_([]),N=_(!1),S=_(!1),G=_(null),z=_(""),E=_(!1),R=_(!1),U=_(null),$=_(""),na=sa(()=>[{label:"待审核申请",value:b.value.pending_applications||0,note:"需要人工核验"},{label:"正常商家",value:b.value.active_merchants||0,note:`${b.value.online_merchants||0} 家在线`},{label:"展示中广告",value:b.value.online_ads||0,note:"用户可见报价"},{label:"进行中订单",value:b.value.active_orders||0,note:`${b.value.pending_appeals||0} 个申诉`}]),D=sa(()=>`${"".replace(/\/$/,"")||`${window.location.protocol}//${window.location.hostname}:8080`}/#/pages/contract/quickly/merchants/merchants`);function ia(){window.open(D.value,"_blank","noopener,noreferrer")}async function oa(){try{await navigator.clipboard.writeText(D.value),k.success("商家入驻链接已复制")}catch{k.warning(`请复制:${D.value}`)}}function H(s){const e=s.split("/").filter(Boolean).pop();return["applications","merchants","ads","settings"].includes(e)?e:"applications"}Ma(()=>{C.value=H(P.path),V()}),Ba(()=>P.path,s=>{const e=H(s);e!==C.value&&(C.value=e,O(e))});async function V(){y.value=!0;try{const s=await v.dashboard();b.value=s.data||{},await O(C.value)}finally{y.value=!1}}async function O(s){y.value=!0;try{if(s==="applications"){const e=await v.applications({page:1,pageSize:100});F.value=e.data?.items||[]}if(s==="merchants"){const e=await v.merchants({page:1,pageSize:100});K.value=e.data?.items||[]}if(s==="ads"){const e=await v.ads({page:1,pageSize:100});Q.value=e.data?.items||[]}if(s==="settings"){const e=await v.settings();Object.assign(r,e.data?.settings||{}),A.value=e.data?.currencies||[]}}finally{y.value=!1}}function J(s,e){G.value=s,S.value=e,z.value="",N.value=!0}async function ua(s){try{const e=await v.reviewApplication({id:G.value.id,approved:S.value,remark:z.value});e.code===200||e.success?(k.success("审核已完成"),await V(),s(!0)):s(!1)}catch{s(!1)}}function W(s,e){U.value=s,R.value=e,$.value="",E.value=!0}async function da(s){try{const e=await v.reviewMerchantCancellation({id:U.value.id,approved:R.value,remark:$.value});e.code===200||e.success?(k.success(R.value?"商家已注销,保证金已退回":"注销申请已驳回"),await V(),s(!0)):s(!1)}catch{s(!1)}}async function pa(s){const e=await v.merchantStatus({id:s.id,status:s.status===1?2:1});(e.code===200||e.success)&&(k.success("商家状态已更新"),V())}async function ra(s){const e=await v.adStatus({id:s.id,status:s.status===1?4:1});(e.code===200||e.success)&&(k.success("广告状态已更新"),O("ads"))}async function _a(){const s=await v.saveSettings({...r});(s.code===200||s.success)&&k.success("C2C 设置已保存")}const X=s=>(s||"商").slice(0,1),ma=s=>["待审核","已通过","已驳回","已撤回"][s]||"未知",ca=s=>["orange","green","red","gray"][s]||"gray",va=s=>({0:"无需冻结",1:"申请中冻结",2:"商家保证金",3:"已退回"})[s]||"未知",ba=s=>({0:"待启用",1:"正常",2:"停用",3:"注销审核中",4:"已注销"})[s]||"未知",fa=s=>({0:"orange",1:"green",2:"red",3:"orange",4:"gray"})[s]||"gray",ya=s=>({0:"草稿",1:"展示中",2:"已下架",3:"已售罄",4:"后台停用"})[s]||"未知",ga=s=>s.total_reviews?Math.round(s.positive_reviews/s.total_reviews*1e4)/100:100;return(s,e)=>{const m=d("a-button"),wa=d("icon-refresh"),M=d("a-space"),T=d("a-alert"),Z=d("a-avatar"),g=d("a-tag"),u=d("a-table-column"),I=d("a-table"),B=d("a-tab-pane"),ka=d("a-badge"),Ca=d("a-popconfirm"),Va=d("a-switch"),w=d("a-form-item"),j=d("a-input-number"),aa=d("a-option"),ea=d("a-select"),L=d("a-checkbox"),xa=d("a-checkbox-group"),Sa=d("a-form"),za=d("a-tabs"),ta=d("a-textarea"),la=d("a-modal");return p(),f("div",Na,[o("section",Ea,[e[15]||(e[15]=o("div",null,[o("span",{class:"eyebrow"},"BITMEET P2P CONTROL"),o("h2",null,"C2C 商家与广告管理"),o("p",null,"审核商家资质、管理公开报价与平台交易规则")],-1)),t(M,null,{default:l(()=>[t(m,{type:"outline",onClick:oa},{default:l(()=>[...e[12]||(e[12]=[n("复制入驻链接",-1)])]),_:1}),t(m,{type:"primary",onClick:ia},{default:l(()=>[...e[13]||(e[13]=[n("打开前端商家入口",-1)])]),_:1}),t(m,{onClick:V},{icon:l(()=>[t(wa)]),default:l(()=>[e[14]||(e[14]=n("刷新数据",-1))]),_:1})]),_:1})]),o("div",Da,[(p(!0),f(Y,null,q(na.value,a=>(p(),f("div",{key:a.label,class:"metric"},[o("span",null,i(a.label),1),o("strong",null,i(a.value),1),o("small",null,i(a.note),1)]))),128))]),e[34]||(e[34]=$a('<section class="journey" data-v-c74baba8><div data-v-c74baba8><span data-v-c74baba8>1</span>
1<p data-v-c74baba8><b data-v-c74baba8>用户提交申请</b><small data-v-c74baba8>前端商家中心填写资料</small></p></div><i data-v-c74baba8></i><div data-v-c74baba8><span data-v-c74baba8>2</span><p data-v-c74baba8><b data-v-c74baba8>后台人工审核</b><small data-v-c74baba8>C2C 管理 → 商家申请</small></p></div><i data-v-c74baba8></i><div data-v-c74baba8><span data-v-c74baba8>3</span><p data-v-c74baba8><b data-v-c74baba8>切换商家身份</b><small data-v-c74baba8>审核通过后进入经营中心</small></p></div><i data-v-c74baba8></i><div data-v-c74baba8><span data-v-c74baba8>4</span><p data-v-c74baba8><b data-v-c74baba8>发布买卖广告</b><small data-v-c74baba8>设置报价、数量与收款方式</small></p></div></section>',1)),o("section",Ia,[t(za,{"active-key":C.value,"onUpdate:activeKey":e[7]||(e[7]=a=>C.value=a),"lazy-load":"",onChange:O},{default:l(()=>[t(B,{key:"applications",title:"入驻审核"},{default:l(()=>[t(T,{type:"info",class:"tab-note"},{default:l(()=>[...e[16]||(e[16]=[n("用户提交申请时已从资金账户冻结保证金;通过后继续锁定,驳回会自动原路退回。带“演示”标记的记录不可审核。",-1)])]),_:1}),t(I,{data:F.value,loading:y.value,"row-key":"id",pagination:!1,stripe:""},{columns:l(()=>[t(u,{title:"申请人"},{cell:l(({record:a})=>[o("div",ja,[t(Z,{size:34},{default:l(()=>[n(i(X(a.display_name)),1)]),_:2},1024),o("div",null,[o("b",null,[n(i(a.display_name)+" ",1),a.is_demo?(p(),c(g,{key:0,size:"small"},{default:l(()=>[...e[17]||(e[17]=[n("演示",-1)])]),_:1})):h("",!0)]),o("span",null,i(a.is_demo?"不可登录的预览记录":`UID ${a.user_id} · ${a.user?.phone||a.user?.email||"未绑定"}`),1)])])]),_:1}),t(u,{title:"地区","data-index":"region"}),t(u,{title:"资金来源","data-index":"source_of_funds",ellipsis:!0,tooltip:!0}),t(u,{title:"保证金"},{cell:l(({record:a})=>[o("b",null,i(a.deposit_locked||0)+" "+i(a.deposit_currency?.symbol||"-"),1),e[18]||(e[18]=o("br",null,null,-1)),o("span",La,i(va(a.deposit_status)),1)]),_:1}),t(u,{title:"申请时间","data-index":"created_at"}),t(u,{title:"状态"},{cell:l(({record:a})=>[t(g,{color:ca(a.status)},{default:l(()=>[n(i(ma(a.status)),1)]),_:2},1032,["color"])]),_:1}),t(u,{title:"操作",width:180},{cell:l(({record:a})=>[a.status===0&&!a.is_demo?(p(),c(M,{key:0},{default:l(()=>[t(m,{size:"small",type:"primary",onClick:x=>J(a,!0)},{default:l(()=>[...e[19]||(e[19]=[n("通过",-1)])]),_:1},8,["onClick"]),t(m,{size:"small",status:"danger",type:"outline",onClick:x=>J(a,!1)},{default:l(()=>[...e[20]||(e[20]=[n("驳回",-1)])]),_:1},8,["onClick"])]),_:2},1024)):(p(),f("span",Ya,i(a.is_demo?"仅供预览":"已处理"),1))]),_:1})]),_:1},8,["data","loading"])]),_:1}),t(B,{key:"merchants",title:"认证商家"},{default:l(()=>[b.value.pending_cancellations?(p(),c(T,{key:0,type:"warning",class:"tab-note"},{default:l(()=>[n("有 "+i(b.value.pending_cancellations)+" 个商家注销申请待审核。通过前请确认没有进行中订单或申诉。",1)]),_:1})):h("",!0),t(I,{data:K.value,loading:y.value,"row-key":"id",pagination:!1},{columns:l(()=>[t(u,{title:"商家"},{cell:l(({record:a})=>[o("div",qa,[t(Z,{size:34},{default:l(()=>[n(i(X(a.display_name)),1)]),_:2},1024),o("div",null,[o("b",null,[n(i(a.display_name)+" ",1),a.is_demo?(p(),c(g,{key:0,size:"small"},{default:l(()=>[...e[21]||(e[21]=[n("演示",-1)])]),_:1})):h("",!0)]),o("span",null,i(a.is_demo?"预览商户 · 不关联登录账号":`UID ${a.user_id} · ${a.user?.phone||"-"}`),1)])])]),_:1}),t(u,{title:"在线"},{cell:l(({record:a})=>[t(ka,{status:a.is_online?"success":"normal",text:a.is_online?"在线":"离线"},null,8,["status","text"])]),_:1}),t(u,{title:"完成订单","data-index":"completed_orders"}),t(u,{title:"总成交额","data-index":"total_volume"}),t(u,{title:"好评"},{cell:l(({record:a})=>[n(i(ga(a))+"%",1)]),_:1}),t(u,{title:"保证金"},{cell:l(({record:a})=>[o("b",null,"已锁定 "+i(a.deposit_locked)+" "+i(a.deposit_currency?.symbol||""),1),e[22]||(e[22]=o("br",null,null,-1)),o("span",Pa,"应缴 "+i(a.deposit_amount),1)]),_:1}),t(u,{title:"状态"},{cell:l(({record:a})=>[t(g,{color:fa(a.status)},{default:l(()=>[n(i(ba(a.status)),1)]),_:2},1032,["color"])]),_:1}),t(u,{title:"操作",width:190},{cell:l(({record:a})=>[a.is_demo?(p(),f("span",Fa,"仅供预览")):a.status===3?(p(),c(M,{key:1},{default:l(()=>[t(m,{size:"small",type:"primary",onClick:x=>W(a,!0)},{default:l(()=>[...e[23]||(e[23]=[n("同意注销",-1)])]),_:1},8,["onClick"]),t(m,{size:"small",type:"outline",onClick:x=>W(a,!1)},{default:l(()=>[...e[24]||(e[24]=[n("驳回",-1)])]),_:1},8,["onClick"])]),_:2}
1,1024)):a.status===4?(p(),f("span",Ka,"保证金已退回")):(p(),c(Ca,{key:3,content:a.status===1?"停用后将同步下架其广告,确定?":"恢复该商家?",onOk:x=>pa(a)},{default:l(()=>[t(m,{size:"small",status:a.status===1?"danger":"success",type:"outline"},{default:l(()=>[n(i(a.status===1?"停用":"恢复"),1)]),_:2},1032,["status"])]),_:2},1032,["content","onOk"]))]),_:1})]),_:1},8,["data","loading"])]),_:1}),t(B,{key:"ads",title:"广告管理"},{default:l(()=>[t(I,{data:Q.value,loading:y.value,"row-key":"id",pagination:!1},{columns:l(()=>[t(u,{title:"广告",width:120},{cell:l(({record:a})=>[t(M,null,{default:l(()=>[t(g,{color:a.side===1?"red":"green"},{default:l(()=>[n(i(a.side===1?"商家卖":"商家买"),1)]),_:2},1032,["color"]),a.is_demo?(p(),c(g,{key:0,size:"small"},{default:l(()=>[...e[25]||(e[25]=[n("演示",-1)])]),_:1})):h("",!0)]),_:2},1024)]),_:1}),t(u,{title:"商家"},{cell:l(({record:a})=>[n(i(a.merchant?.display_name||a.merchant_id),1)]),_:1}),t(u,{title:"交易对"},{cell:l(({record:a})=>[n(i(a.currency?.symbol)+" / "+i(a.fiat_code),1)]),_:1}),t(u,{title:"报价","data-index":"fixed_price"}),t(u,{title:"可用数量","data-index":"available_quantity"}),t(u,{title:"单笔限额"},{cell:l(({record:a})=>[n(i(a.min_fiat)+" – "+i(a.max_fiat),1)]),_:1}),t(u,{title:"状态"},{cell:l(({record:a})=>[t(g,{color:a.status===1?"green":"gray"},{default:l(()=>[n(i(ya(a.status)),1)]),_:2},1032,["color"])]),_:1}),t(u,{title:"操作",width:150},{cell:l(({record:a})=>[a.is_demo?(p(),f("span",Qa,"禁止真实下单")):(p(),c(m,{key:1,size:"small",type:"outline",onClick:x=>ra(a)},{default:l(()=>[n(i(a.status===1?"后台停用":"恢复展示"),1)]),_:2},1032,["onClick"]))]),_:1})]),_:1},8,["data","loading"])]),_:1}),t(B,{key:"settings",title:"交易设置"},{default:l(()=>[t(Sa,{model:r,layout:"vertical",class:"settings-form"},{default:l(()=>[o("div",Ga,[t(w,{label:"开放 C2C"},{default:l(()=>[t(Va,{modelValue:r.enabled,"onUpdate:modelValue":e[0]||(e[0]=a=>r.enabled=a),"checked-value":1,"unchecked-value":0},null,8,["modelValue"])]),_:1}),t(w,{label:"默认付款时限(分钟)"},{default:l(()=>[t(j,{modelValue:r.payment_window_minutes,"onUpdate:modelValue":e[1]||(e[1]=a=>r.payment_window_minutes=a),min:5,max:60},null,8,["modelValue"])]),_:1}),t(w,{label:"商户手续费(基点)"},{extra:l(()=>[...e[26]||(e[26]=[n("100 基点 = 1%",-1)])]),default:l(()=>[t(j,{modelValue:r.maker_fee_bps,"onUpdate:modelValue":e[2]||(e[2]=a=>r.maker_fee_bps=a),min:0,max:1e3},null,8,["modelValue"])]),_:1}),t(w,{label:"申请冻结保证金"},{extra:l(()=>[...e[27]||(e[27]=[n("用户提交申请时从资金账户冻结,仅影响新申请",-1)])]),default:l(()=>[t(j,{modelValue:r.merchant_deposit,"onUpdate:modelValue":e[3]||(e[3]=a=>r.merchant_deposit=a),min:0},null,8,["modelValue"])]),_:1}),t(w,{label:"保证金币种"},{extra:l(()=>[...e[28]||(e[28]=[n("建议固定为 USDT,已冻结记录不会随设置变化",-1)])]),default:l(()=>[t(ea,{modelValue:r.merchant_deposit_currency_id,"onUpdate:modelValue":e[4]||(e[4]=a=>r.merchant_deposit_currency_id=a)},{default:l(()=>[(p(!0),f(Y,null,q(A.value,a=>(p(),c(aa,{key:a.id,value:a.id},{default:l(()=>[n(i(a.symbol),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(w,{label:"支持币种"},{default:l(()=>[t(ea,{modelValue:r.currency_ids,"onUpdate:modelValue":e[5]||(e[5]=a=>r.currency_ids=a),multiple:""},{default:l(()=>[(p(!0),f(Y,null,q(A.value,a=>(p(),c(aa,{key:a.id,value:a.id},{default:l(()=>[n(i(a.symbol),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1}),t(w,{label:"支付方式"},{default:l(()=>[t(xa,{modelValue:r.payment_types,"onUpdate:modelValue":e[6]||(e[6]=a=>r.payment_types=a)},{default:l(()=>[t(L,{value:1},{default:l(()=>[...e[29]||(e[29]=[n("微信",-1)])]),_:1}),t(L,{value:2},{default:l(()=>[...e[30]||(e[30]=[n("支付宝",-1)])]),_:1}),t(L,{value:3},{default:l(()=>[...e[31]||(e[31]=[n("银行卡",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1})]),t(T,{type:"warning"},{default:l(()=>[...e[32]||(e[32]=[n("平台只托管数字资产,不经手用户法币。修改保证金或支持币种前,请先确认运营与合规规则。",-1)])]),_:1}),t(m,{type:"primary",class:"save",onClick:_a},{default:l(()=>[...e[33]||(e[33]=[n("保存设置",-1)])]),_:1})]),_:1},8,["model"])]),_:1})]),_:1},8,["active-key"])]),t(la,{visible:N.value,"onUpdate:visible":e[9]||(e[9]=a=>N.value=a),title:S.value?"通过商家申请":"驳回商家申请",onBeforeOk:ua},{default:l(()=>[t(ta,{modelValue:z.value,"onUpdate:modelValue":e[8]||(e[8]=a=>z.value=a),placeholder:S.value?"可填写审核备注":"请填写驳回原因","auto-size":{minRows:3,maxRows:6}},null,8,["modelValue","placeholder"])]),_:1}
1,8,["visible","title"]),t(la,{visible:E.value,"onUpdate:visible":e[11]||(e[11]=a=>E.value=a),title:R.value?"同意商家注销":"驳回商家注销",onBeforeOk:da},{default:l(()=>[t(T,{type:"warning",class:"tab-note"},{default:l(()=>[n("同意后会解冻并退回 "+i(U.value?.deposit_locked||0)+" "+i(U.value?.deposit_currency?.symbol||"")+" 到用户资金账户,此操作必须在无进行中订单和申诉时执行。",1)]),_:1}),t(ta,{modelValue:$.value,"onUpdate:modelValue":e[10]||(e[10]=a=>$.value=a),placeholder:"填写审核备注","auto-size":{minRows:3,maxRows:6}},null,8,["modelValue"])]),_:1},8,["visible","title"])])}}}),te=Aa(Ha,[["__scopeId","data-v-c74baba8"]]);export{te as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.