2 lines
8.7 KiB
JavaScript
2 lines
8.7 KiB
JavaScript
import{_ as O}from"./BasicMainCard-33e38576.js";import{u as w,_ as N}from"./useBaseTable-e7a67916.js";import{t as v,a as x}from"./useDataTime-6e234adb.js";import{I as E,U as D,_ as V,d as Z,i as I,j as K,z as M,B as j,H as J,x as z,o as T,c as F,e as p,w as c,b,t as H,n as G,R as g,l as h}from"./index-1ba0f9ec.js";import{fetchMatchingUserIds as L,formatTableResult as Q}from"./supabaseTableQuery-e0472e9c.js";import{_ as X,T as Y}from"./index-f22a4554.js";import"./Grid-660f1a55.js";import"./index-c136a321.js";import"./Col-f8806a10.js";import"./styleChecker-19ce40ea.js";import"./isPlainObject-e945bc1f.js";import"./vnode-c4e67237.js";import"./_plugin-vue_export-helper-31e07528.js";import"./button.vue_vue_type_style_index_0_lang-f90e25b2.js";import"./Icon-29e38d16.js";import"./index-8f2b7e91.js";import"./updateLocale-a8654270.js";import"./isSymbol-355a1404.js";import"./shallowequal-e0d9eafb.js";import"./useState-dcd360f8.js";import"./useMemo-ee45fb46.js";import"./FormItemContext-33ef1221.js";import"./omit-f5d28cd3.js";import"./lodash-27f814e6.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-36a1ea6e.js";import"./index-ec322234.js";import"./DialogWrap-394d7eb0.js";import"./pickAttrs-0ddf9a54.js";import"./BasicModal.vue_vue_type_style_index_0_lang-aed8f5e4.js";import"./index-4bff02a6.js";import"./index-aafc0fe2.js";import"./SearchOutlined-95278fe5.js";import"./index-73cafb1e.js";import"./index-c8127d4e.js";import"./Badge-8a8eeb58.js";import"./isNumeric-3f69e2aa.js";import"./index-a8579634.js";import"./index-e22339b6.js";import"./index-876da578.js";import"./index-3f6d5caa.js";import"./LeftOutlined-93011b30.js";import"./css-aae66f86.js";import"./index-e0664925.js";import"./toArray-41940180.js";import"./isMobile-e2e89480.js";import"./index-175b83cf.js";import"./useRefs-5e33302c.js";import"./_flatRest-7877cdf8.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 E.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 V(()=>import("./buildSupabaseQuery-2323f568.js"),["assets/buildSupabaseQuery-2323f568.js","assets/index-1ba0f9ec.js","assets/index-cb402307.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"},pe=b("h2",null,"جدول امتیازات سوال روز",-1),ce={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),lt=Z({__name:"index",setup(e){const a=I("overall"),t=I(null),[i,n]=w(),[o,s]=w(),[r,l]=w(),u=K(()=>{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 z(R),(d,m)=>{const y=N,k=X,A=Y,B=O;return T(),F("div",null,[p(B,null,{default:c(()=>[b("div",de,[pe,a.value==="weekly"&&u.value?(T(),F("div",ce," هفته جاری: "+H(u.value),1)):G("",!0)]),p(A,{activeKey:a.value,"onUpdate:activeKey":m[0]||(m[0]=U=>a.value=U)},{default:c(()=>[p(k,{key:"overall",tab:"امتیازات کلی"},{default:c(()=>[p(y,g(f,{onRegister:h(i)}),null,16,["onRegister"])]),_:1}),p(k,{key:"weekly",tab:"امتیازات هفتگی"},{default:c(()=>[p(y,g(_,{onRegister:h(o)}),null,16,["onRegister"])]),_:1}),p(k,{key:"archive",tab:"بایگانی هفتگی"},{default:c(()=>[_e,p(y,g(W,{onRegister:h(r)}),null,16,["onRegister"])]),_:1})]),_:1},8,["activeKey"])]),_:1})])}}});export{lt as default};
|