2 lines
8.7 KiB
JavaScript
2 lines
8.7 KiB
JavaScript
import{_ as O}from"./BasicMainCard-f06c4dad.js";import{u as w,_ as U}from"./useBaseTable-01dc558f.js";import{t as v,a as x}from"./useDataTime-5a09f654.js";import{N as E,S,_ as V,d as Z,g as I,h as J,E as K,T as M,D as j,v as z,o as T,c as D,b as c,w as p,a as b,t as G,k as H,J as g,j as h}from"./index-d718011e.js";import{fetchMatchingUserIds as $,formatTableResult as Q}from"./supabaseTableQuery-bada93b0.js";import{_ as X,T as Y}from"./index-68cba126.js";import"./Grid-162208a5.js";import"./index-44f8c87e.js";import"./Col-7aad654b.js";import"./styleChecker-351d08aa.js";import"./isPlainObject-63126d02.js";import"./vnode-0b482026.js";import"./_plugin-vue_export-helper-0ed48b96.js";import"./button.vue_vue_type_style_index_0_lang-86273660.js";import"./Icon-cc126d0d.js";import"./index-12b8b726.js";import"./updateLocale-dac04afb.js";import"./isSymbol-e219d64b.js";import"./shallowequal-c9e151d3.js";import"./useState-d226846a.js";import"./useMemo-9e09b0c8.js";import"./FormItemContext-6bb05345.js";import"./omit-86fc1094.js";import"./lodash-02d12c59.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-e23cf95b.js";import"./index-eb860757.js";import"./DialogWrap-944b6cdf.js";import"./pickAttrs-49bc9c67.js";import"./BasicModal.vue_vue_type_style_index_0_lang-7cc4ab5d.js";import"./index-5ade1644.js";import"./index-ba4d9879.js";import"./SearchOutlined-31f9ef0b.js";import"./index-7eae579c.js";import"./index-cbb71dc1.js";import"./Badge-bf61afe1.js";import"./isNumeric-3f69e2aa.js";import"./index-9747fd4d.js";import"./index-6fc61bbd.js";import"./index-59898946.js";import"./index-5b828516.js";import"./css-aae66f86.js";import"./index-4e5c2990.js";import"./toArray-02b8a08a.js";import"./isMobile-e2e89480.js";import"./index-7a44352f.js";import"./useRefs-373e2aeb.js";import"./_flatRest-e8ea393e.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`${F(a.week_start)} تا ${F(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 F(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 L(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 $(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 S("daily_question_user_points",n);return q(o.rows||[],o.total??0,e,L)}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 $(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 S("daily_question_user_weekly_points",o);return q(s.rows||[],s.total??0,e,L,{week_start:a,week_end:C(a,6)})}async function le(e){var n;const{TableEngineRequest:a}=await V(()=>import("./buildSupabaseQuery-ad024d1e.js"),["assets/buildSupabaseQuery-ad024d1e.js","assets/index-d718011e.js","assets/index-a54d32f7.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=Z({__name:"index",setup(e){const a=I("overall"),t=I(null),[i,n]=w(),[o,s]=w(),[r,l]=w(),u=J(()=>{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};K(a,async d=>{await M(),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=U,k=X,A=Y,B=O;return T(),D("div",null,[c(B,null,{default:p(()=>[b("div",de,[ce,a.value==="weekly"&&u.value?(T(),D("div",pe," هفته جاری: "+G(u.value),1)):H("",!0)]),c(A,{activeKey:a.value,"onUpdate:activeKey":m[0]||(m[0]=N=>a.value=N)},{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};
|