Files
machartaa_admin_dist/dist/assets/index-5a2d2925.js
T
2026-08-25 16:12:17 +03:30

2 lines
8.7 KiB
JavaScript

import{_ as B}from"./BasicMainCard-9a9b0e82.js";import{u as w,_ as N}from"./useBaseTable-0fdb84ad.js";import{t as v,a as x}from"./useDataTime-234977eb.js";import{O as E,T as D,_ as K,d as V,i as I,j as Z,y as M,U as j,G 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-0ae7844c.js";import{fetchMatchingUserIds as L,formatTableResult as Q}from"./supabaseTableQuery-98b38f56.js";import{_ as X,T as Y}from"./index-33c0557e.js";import"./Grid-1b086c47.js";import"./index-3189b1a9.js";import"./Col-84747301.js";import"./styleChecker-918e9a0f.js";import"./isPlainObject-4659a577.js";import"./vnode-454b4aa7.js";import"./_plugin-vue_export-helper-277b1c3f.js";import"./button.vue_vue_type_style_index_0_lang-0b499337.js";import"./Icon-d1d29ca3.js";import"./index-c2bca1e0.js";import"./updateLocale-15cba891.js";import"./isSymbol-d0ec885c.js";import"./shallowequal-a089597b.js";import"./useState-80fd23c9.js";import"./useMemo-19000d17.js";import"./FormItemContext-e7b6ca96.js";import"./omit-e036f60c.js";import"./lodash-6746fa7b.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-630a739a.js";import"./index-6d32dcba.js";import"./DialogWrap-930ec585.js";import"./pickAttrs-2e870478.js";import"./BasicModal.vue_vue_type_style_index_0_lang-0db8aa6c.js";import"./index-0309284c.js";import"./index-81a07cb9.js";import"./SearchOutlined-8b990494.js";import"./index-c2776ddf.js";import"./index-ff77e42c.js";import"./Badge-3dfd39bb.js";import"./isNumeric-3f69e2aa.js";import"./index-6585bad2.js";import"./index-7d2db2fd.js";import"./index-0c08cf04.js";import"./index-02b92135.js";import"./css-aae66f86.js";import"./index-a2cfdf13.js";import"./toArray-592e82ea.js";import"./isMobile-e2e89480.js";import"./index-7090fbb0.js";import"./useRefs-0b121885.js";import"./_flatRest-5e9bcb10.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 K(()=>import("./buildSupabaseQuery-ef030906.js"),["assets/buildSupabaseQuery-ef030906.js","assets/index-0ae7844c.js","assets/index-71a80eb0.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=N,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};