2 lines
8.7 KiB
JavaScript
2 lines
8.7 KiB
JavaScript
import{_ as B}from"./BasicMainCard-774c1aa2.js";import{u as w,_ as E}from"./useBaseTable-6d1e031d.js";import{t as v,a as x}from"./useDataTime-4239bab9.js";import{O as N,T as D,_ as K,d as V,i as I,j as Z,G as M,U as j,E as J,x as G,o as T,c as F,e as c,w as p,b,t as z,n as H,K as g,l as h}from"./index-a28be152.js";import{fetchMatchingUserIds as L,formatTableResult as Q}from"./supabaseTableQuery-e3d032a9.js";import{_ as X,T as Y}from"./index-96443f0e.js";import"./Grid-442881e7.js";import"./index-51b737a4.js";import"./Col-86738adb.js";import"./styleChecker-8c6ff79a.js";import"./isPlainObject-450bf3c7.js";import"./vnode-4742fc96.js";import"./_plugin-vue_export-helper-f8ecc290.js";import"./button.vue_vue_type_style_index_0_lang-29638cb6.js";import"./Icon-c8a211f1.js";import"./index-3bdda65d.js";import"./updateLocale-619fe8a7.js";import"./isSymbol-25ca88cb.js";import"./shallowequal-4c00a664.js";import"./useState-277534ff.js";import"./useMemo-832cfde0.js";import"./FormItemContext-e50ee5a3.js";import"./omit-8084e33b.js";import"./lodash-5d3e4f7d.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-1d4fd99b.js";import"./index-8cc4eae2.js";import"./DialogWrap-617bda84.js";import"./pickAttrs-38902005.js";import"./BasicModal.vue_vue_type_style_index_0_lang-c3017354.js";import"./index-dd708aca.js";import"./index-f317ca53.js";import"./SearchOutlined-4a5562a8.js";import"./index-5222fc6e.js";import"./index-61ef5439.js";import"./Badge-7dd6b925.js";import"./isNumeric-3f69e2aa.js";import"./index-dbebb139.js";import"./index-1e365e2e.js";import"./index-12d303fc.js";import"./index-4a3fe357.js";import"./css-aae66f86.js";import"./index-2849b35f.js";import"./toArray-bdec6b87.js";import"./isMobile-e2e89480.js";import"./index-f3f71242.js";import"./useRefs-e22a3bf7.js";import"./_flatRest-08328244.js";const ee=[{title:"ردیف",dataIndex:"index",key:"index",filterable:!1,width:70,align:"center",customRender:e=>e.record.index+1},{title:"رتبه",dataIndex:"rank",key:"rank",filterable:!1,width:80,align:"center"},{title:"نام کاربر",dataIndex:"display_name",key:"display_name",filterField:"display_name"},{title:"شماره همراه",dataIndex:"phone",key:"phone",filterField:"phone",width:130},{title:"امتیاز",dataIndex:"total_points",key:"total_points",filterField:"total_points",align:"center",width:100,customRender:e=>(e.record.total_points??0).toLocaleString("fa-IR")},{title:"آخرین بروزرسانی",dataIndex:"updated_at",key:"updated_at",type:"DateTime",filterField:"updated_at",width:150,customRender:e=>v(e.record.updated_at)}],te=[{title:"ردیف",dataIndex:"index",key:"index",filterable:!1,width:70,align:"center",customRender:e=>e.record.index+1},{title:"رتبه",dataIndex:"rank",key:"rank",filterable:!1,width:80,align:"center"},{title:"نام کاربر",dataIndex:"display_name",key:"display_name",filterField:"display_name"},{title:"شماره همراه",dataIndex:"phone",key:"phone",filterField:"phone",width:130},{title:"امتیاز هفته",dataIndex:"total_points",key:"total_points",filterField:"total_points",align:"center",width:110,customRender:e=>(e.record.total_points??0).toLocaleString("fa-IR")},{title:"آخرین بروزرسانی",dataIndex:"updated_at",key:"updated_at",type:"DateTime",filterField:"updated_at",width:150,customRender:e=>v(e.record.updated_at)}],ae=[{title:"ردیف",dataIndex:"index",key:"index",filterable:!1,width:70,align:"center",customRender:e=>e.record.index+1},{title:"بازه هفته",dataIndex:"week_period",key:"week_period",filterField:"week_start",width:180,customRender:e=>{const a=e.record;return`${$(a.week_start)} تا ${$(a.week_end)}`}},{title:"رتبه",dataIndex:"rank",key:"rank",filterField:"rank",align:"center",width:80},{title:"نام کاربر",dataIndex:"display_name",key:"display_name",filterField:"display_name"},{title:"امتیاز",dataIndex:"total_points",key:"total_points",filterField:"total_points",align:"center",width:100,customRender:e=>(e.record.total_points??0).toLocaleString("fa-IR")},{title:"زمان آرشیو",dataIndex:"created_at",key:"created_at",type:"DateTime",filterField:"created_at",width:150,customRender:e=>v(e.record.created_at)}];function $(e){return e?x(`${e}T00:00:00Z`):"—"}function ie(e){var t;if(!e)return"نامشخص";if((t=e.name)!=null&&t.trim())return e.name.trim();const a=`${e.first_name||""} ${e.last_name||""}`.trim();return a||e.phone||"نامشخص"}function ne(e){return Array.isArray(e.users)?e.users[0]:e.users}function S(e,a){const t=ne(e);return{user_id:e.user_id,total_points:e.total_points,updated_at:e.updated_at,week_start:e.week_start,rank:a,display_name:ie(t),phone:(t==null?void 0:t.phone)||""}}function C(e,a){const t=new Date(`${e}T12:00:00Z`);return t.setUTCDate(t.getUTCDate()+a),t.toISOString().slice(0,10)}async function P(){var a,t,i;const e=await N.get("/daily-question/leaderboard",{params:{scope:"weekly",page:1,limit:1}});return(e==null?void 0:e.week_start)||((a=e==null?void 0:e.data)==null?void 0:a.week_start)||((i=(t=e==null?void 0:e.rows)==null?void 0:t[0])==null?void 0:i.week_start)||new Date().toISOString().slice(0,10)}function q(e,a,t,i,n={}){const o=t.page||1,s=t.limit||20,r=(o-1)*s,l=r;return{rows:(e||[]).map((f,_)=>({...i(f,r+_+1),index:l+_})),total:a??0,query:{...t,page:o,limit:s,total:a??0},...n}}async function oe(e){var s;const{limit:a=20,page:t=1,search:i}=e,n={filters:[{field:"total_points",op:"gt",value:0}],page:t,limit:a,order:e.order||"-total_points",sort:e.sort,select:["user_id","total_points","updated_at","users(name, first_name, last_name, phone)"]};if(i!=null&&i.trim()){const r=await L(i);n.includeIn={field:"user_id",values:r.length?r:["00000000-0000-0000-0000-000000000000"]}}(s=e.filters)!=null&&s.length&&n.filters.push(...e.filters.filter(r=>r.field&&!r.hidden&&r.field!=="display_name"&&r.field!=="phone"));const o=await D("daily_question_user_points",n);return q(o.rows||[],o.total??0,e,S)}async function re(e){var r;const a=await P(),{limit:t=20,page:i=1,search:n}=e,o={filters:[{field:"week_start",op:"eq",value:a},{field:"total_points",op:"gt",value:0}],page:i,limit:t,order:e.order||"-total_points",sort:e.sort,select:["user_id","total_points","updated_at","week_start","users(name, first_name, last_name, phone)"]};if(n!=null&&n.trim()){const l=await L(n);o.includeIn={field:"user_id",values:l.length?l:["00000000-0000-0000-0000-000000000000"]}}(r=e.filters)!=null&&r.length&&o.filters.push(...e.filters.filter(l=>l.field&&!l.hidden&&l.field!=="display_name"&&l.field!=="phone"));const s=await D("daily_question_user_weekly_points",o);return q(s.rows||[],s.total??0,e,S,{week_start:a,week_end:C(a,6)})}async function le(e){var n;const{TableEngineRequest:a}=await K(()=>import("./buildSupabaseQuery-7d0fcf16.js"),["assets/buildSupabaseQuery-7d0fcf16.js","assets/index-a28be152.js","assets/index-d7456b90.css"]),t={...e};!t.sort&&!t.order&&(t.order="-week_start");const i=await a(t,"daily_question_weekly_top10");return Q((i==null?void 0:i.rows)||[],((n=i==null?void 0:i.query)==null?void 0:n.total)??0,e,o=>({...o,week_period:`${o.week_start}..${o.week_end}`}))}async function se(){const e=await P();return{week_start:e,week_end:C(e,6)}}const de={class:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3 mb-4"},ce=b("h2",null,"جدول امتیازات سوال روز",-1),pe={key:0,class:"text-sm text-gray-600 bg-gray-50 border rounded-lg px-3 py-2"},_e=b("p",{class:"text-sm text-gray-500 mb-3"}," ۱۰ نفر برتر هر هفته پس از پایان هفته در این بخش ذخیره میشوند. ",-1),rt=V({__name:"index",setup(e){const a=I("overall"),t=I(null),[i,n]=w(),[o,s]=w(),[r,l]=w(),u=Z(()=>{if(!t.value)return"";const d=x(`${t.value.week_start}T00:00:00Z`),m=x(`${t.value.week_end}T00:00:00Z`);return`${d} تا ${m}`}),f={columns:ee,api:oe,defaultPageLimit:20},_={columns:te,api:re,defaultPageLimit:20},W={columns:ae,api:le,defaultPageLimit:20};M(a,async d=>{await j(),d==="overall"?n():d==="weekly"?(await R(),s()):d==="archive"&&l()});async function R(){try{t.value=await se()}catch(d){J.error((d==null?void 0:d.message)||"خطا در دریافت بازه هفته")}}return G(R),(d,m)=>{const y=E,k=X,A=Y,O=B;return T(),F("div",null,[c(O,null,{default:p(()=>[b("div",de,[ce,a.value==="weekly"&&u.value?(T(),F("div",pe," هفته جاری: "+z(u.value),1)):H("",!0)]),c(A,{activeKey:a.value,"onUpdate:activeKey":m[0]||(m[0]=U=>a.value=U)},{default:p(()=>[c(k,{key:"overall",tab:"امتیازات کلی"},{default:p(()=>[c(y,g(f,{onRegister:h(i)}),null,16,["onRegister"])]),_:1}),c(k,{key:"weekly",tab:"امتیازات هفتگی"},{default:p(()=>[c(y,g(_,{onRegister:h(o)}),null,16,["onRegister"])]),_:1}),c(k,{key:"archive",tab:"بایگانی هفتگی"},{default:p(()=>[_e,c(y,g(W,{onRegister:h(r)}),null,16,["onRegister"])]),_:1})]),_:1},8,["activeKey"])]),_:1})])}}});export{rt as default};
|