Files
jurong_circle_frontdesk/dist/assets/TaskCenter-BOIbsjh-.js
2025-07-26 15:35:53 +08:00

2 lines
6.6 KiB
JavaScript

import{r as f,c as h,h as W,y as u,A as e,K as C,Q as o,I as n,al as m,O as i,P as A,a6 as B,aA as X,z as r,M as p,u as v,D,H as T}from"./vendor-C3mpOp0n.js";import{_ as Y,u as Z,a as y}from"./index-BlP3rxMf.js";import{C as ss,k as N,D as V,u as x,J as E,n as es,d as ts,G as as,H as os,F as I,A as ns,r as is,a as c}from"./elementPlus-DFx51bSH.js";const ls={class:"task-center"},rs={class:"navbar"},cs={class:"nav-left"},ds={class:"nav-right"},us={class:"task-stats"},ps={class:"stats-card"},_s={class:"stat-item"},vs={class:"stat-icon"},fs={class:"stat-info"},gs={class:"stat-value"},hs={class:"stat-item"},ms={class:"stat-icon"},ys={class:"stat-info"},ks={class:"stat-value"},ws={class:"stat-item"},bs={class:"stat-icon"},Cs={class:"stat-info"},Ts={class:"stat-value"},xs={class:"task-categories"},$s={class:"category-tabs"},zs=["onClick"],Ms={class:"task-list"},As={class:"task-icon"},Bs={class:"task-content"},Ds={class:"task-title"},Ns={class:"task-desc"},Vs={key:0,class:"task-progress"},Es={class:"progress-text"},Is={class:"task-reward"},Ps={class:"reward-points"},Rs={key:0,class:"empty-state"},Fs={__name:"TaskCenter",setup(Hs){const g=X();Z();const k=f(0),w=f("daily"),d=f([]),$=f(!1),P=f([{key:"daily",name:"每日任务",icon:ss},{key:"shopping",name:"购物任务",icon:N},{key:"social",name:"社交任务",icon:V},{key:"profile",name:"完善资料",icon:x},{key:"special",name:"特殊任务",icon:E}]),z=h(()=>d.value.filter(s=>s.category===w.value)),R=h(()=>d.value.filter(s=>s.status==="claimed").length),F=h(()=>d.value.filter(s=>s.status==="pending"||s.status==="completed").length),H=h(()=>d.value.filter(s=>s.status==="claimed").reduce((s,t)=>s+t.points,0)),S=s=>({purchase:N,share:V,profile:x,transfer:is,invite:x,review:I})[s]||E,U=s=>({purchase:"去购买",share:"去分享",profile:"去完善",transfer:"去转账",invite:"去邀请",review:"去评价"})[s.type]||"去完成",G=async s=>{s.loading=!0;try{switch(s.type){case"purchase":g.push("/shop");break;case"share":await J();break;case"profile":g.push("/profile");break;case"transfer":g.push("/transfers");break;case"invite":await K();break;case"review":g.push("/orders");break;default:await b(s.id);break}}catch{c.error("操作失败,请重试")}finally{s.loading=!1}},J=async()=>{if(navigator.share)try{await navigator.share({title:"融互通 - 资金互助平台",text:"发现一个很棒的资金互助平台,快来看看吧!",url:window.location.origin}),await b("share_app"),c.success("分享成功!")}catch(s){s.name!=="AbortError"&&c.error("分享失败")}else try{await navigator.clipboard.writeText(window.location.origin),await b("share_app"),c.success("链接已复制到剪贴板!")}catch{c.error("复制失败")}},K=async()=>{c.info("邀请功能开发中...")},b=async s=>{try{const t=await y.post(`/tasks/${s}/complete`),l=d.value.find(_=>_.id===s);l&&(l.status="completed"),c.success("任务完成!")}catch{c.error("任务完成失败")}},L=async s=>{s.loading=!0;try{const t=await y.post(`/tasks/${s.id}/claim`);s.status="claimed",k.value+=s.points,c.success(`获得 ${s.points} 积分!`)}catch{c.error("领取失败,请重试")}finally{s.loading=!1}},O=async()=>{$.value=!0;try{const s=await y.get("/tasks");d.value=s.data.map(t=>({...t,loading:!1}))}catch{d.value=[{id:"first_purchase",category:"shopping",type:"purchase",title:"首次购买",description:"在积分商城完成首次购买",points:50,status:"pending",loading:!1},{id:"share_app",category:"social",type:"share",title:"分享应用",description:"分享应用给朋友",points:20,status:"pending",loading:!1},{id:"complete_profile",category:"profile",type:"profile",title:"完善个人资料",description:"完善头像、姓名等个人信息",points:30,status:"pending",progress:2,target:5,loading:!1},{id:"first_transfer",category:"special",type:"transfer",title:"首次转账",description:"完成首次转账操作",points:100,status:"completed",loading:!1}]}finally{$.value=!1}},Q=async()=>{try{const s=await y.get("/user/points");k.value=s.data.points}catch(s){console.error("获取用户积分失败:",s)}};return W(()=>{O(),Q()}),(s,t)=>{const l=m("el-icon"),_=m("el-button"),j=m("el-progress"),q=m("el-tag");return r(),u("div",ls,[e("nav",rs,[e("div",cs,[o(_,{type:"text",onClick:t[0]||(t[0]=a=>s.$router.go(-1)),class:"back-btn"},{default:n(()=>[o(l,null,{default:n(()=>[o(v(es))]),_:1}),t[2]||(t[2]=p(" 返回 "))]),_:1,__:[2]})]),t[3]||(t[3]=e("div",{class:"nav-center"},[e("h1",{class:"nav-title"},"任务中心")],-1)),e("div",ds,[o(_,{type:"text",onClick:t[1]||(t[1]=a=>s.$router.push("/points-history")),class:"points-btn"},{default:n(()=>[o(l,null,{default:n(()=>[o(v(ts))]),_:1}),p(" "+i(k.value),1)]),_:1})])]),e("div",us,[e("div",ps,[e("div",_s,[e("div",vs,[o(l,null,{default:n(()=>[o(v(as))]),_:1})]),e("div",fs,[e("div",gs,i(R.value),1),t[4]||(t[4]=e("div",{class:"stat-label"},"已完成",-1))])]),e("div",hs,[e("div",ms,[o(l,null,{default:n(()=>[o(v(os))]),_:1})]),e("div",ys,[e("div",ks,i(F.value),1),t[5]||(t[5]=e("div",{class:"stat-label"},"进行中",-1))])]),e("div",ws,[e("div",bs,[o(l,null,{default:n(()=>[o(v(I))]),_:1})]),e("div",Cs,[e("div",Ts,i(H.value),1),t[6]||(t[6]=e("div",{class:"stat-label"},"总积分",-1))])])])]),e("div",xs,[e("div",$s,[(r(!0),u(A,null,B(P.value,a=>(r(),u("div",{key:a.key,class:D(["category-tab",{active:w.value===a.key}]),onClick:M=>w.value=a.key},[o(l,null,{default:n(()=>[p(i(a.icon),1)]),_:2},1024),e("span",null,i(a.name),1)],10,zs))),128))])]),e("div",Ms,[(r(!0),u(A,null,B(z.value,a=>(r(),u("div",{key:a.id,class:D(["task-item",{completed:a.status==="completed",claimed:a.status==="claimed"}])},[e("div",As,[o(l,{size:24},{default:n(()=>[p(i(S(a.type)),1)]),_:2},1024)]),e("div",Bs,[e("div",Ds,i(a.title),1),e("div",Ns,i(a.description),1),a.progress!==void 0?(r(),u("div",Vs,[o(j,{percentage:a.progress/a.target*100,"show-text":!1,"stroke-width":4},null,8,["percentage"]),e("span",Es,i(a.progress)+"/"+i(a.target),1)])):C("",!0)]),e("div",Is,[e("div",Ps,"+"+i(a.points),1),a.status==="pending"?(r(),T(_,{key:0,type:"primary",size:"small",onClick:M=>G(a),loading:a.loading},{default:n(()=>[p(i(U(a)),1)]),_:2},1032,["onClick","loading"])):a.status==="completed"?(r(),T(_,{key:1,type:"success",size:"small",onClick:M=>L(a),loading:a.loading},{default:n(()=>t[7]||(t[7]=[p(" 领取奖励 ")])),_:2,__:[7]},1032,["onClick","loading"])):a.status==="claimed"?(r(),T(q,{key:2,type:"success",size:"small"},{default:n(()=>t[8]||(t[8]=[p(" 已领取 ")])),_:1,__:[8]})):C("",!0)])],2))),128))]),z.value.length===0?(r(),u("div",Rs,[o(l,{size:60,color:"#c0c4cc"},{default:n(()=>[o(v(ns))]),_:1}),t[9]||(t[9]=e("p",null,"暂无任务",-1))])):C("",!0)])}}},Js=Y(Fs,[["__scopeId","data-v-9f05f885"]]);export{Js as default};