Files
machartaa_admin_dist/dist/assets/index-a130c1c6.js
T

2 lines
8.7 KiB
JavaScript

import{_ as U}from"./BasicMainCard-4c879cc2.js";import{u as w,_ as N}from"./useBaseTable-e35ecaa9.js";import{t as v,a as x}from"./useDataTime-c7be2668.js";import{R as E,O as $,_ 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 c,w as p,b,t as H,n as G,L as g,l as h}from"./index-90ac1a44.js";import{fetchMatchingUserIds as D,formatTableResult as Q}from"./supabaseTableQuery-19bc7c1f.js";import{_ as X,T as Y}from"./index-4d938e91.js";import"./Grid-839ef6d1.js";import"./index-109c99be.js";import"./Col-fddaa6b7.js";import"./styleChecker-1445806f.js";import"./isPlainObject-aab367ce.js";import"./vnode-b0455438.js";import"./_plugin-vue_export-helper-8ee86600.js";import"./button.vue_vue_type_style_index_0_lang-b32e1136.js";import"./Icon-85823aa3.js";import"./index-cfa536c5.js";import"./updateLocale-cec40f3d.js";import"./isSymbol-9094e8b7.js";import"./shallowequal-36516cfd.js";import"./useState-64f2823f.js";import"./useMemo-9928f29b.js";import"./FormItemContext-64f846db.js";import"./omit-84d71e15.js";import"./lodash-07b825be.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-fb5041dc.js";import"./index-a413fea1.js";import"./DialogWrap-6616a498.js";import"./pickAttrs-ba13e92c.js";import"./BasicModal.vue_vue_type_style_index_0_lang-c3b69d02.js";import"./index-93d9312f.js";import"./index-027c2128.js";import"./SearchOutlined-0eaaa97a.js";import"./index-c0eeee91.js";import"./index-95b42b3e.js";import"./Badge-54a9cc4e.js";import"./isNumeric-3f69e2aa.js";import"./index-5f5223b4.js";import"./index-788f312f.js";import"./index-90f5ddad.js";import"./index-9869a66e.js";import"./css-aae66f86.js";import"./index-a2503c07.js";import"./toArray-3936b2d5.js";import"./isMobile-e2e89480.js";import"./index-bb804fdd.js";import"./useRefs-2a883b79.js";import"./_flatRest-f2577aae.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`${L(a.week_start)} تا ${L(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 L(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 D(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 $("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 D(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 $("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-c046d1a6.js"),["assets/buildSupabaseQuery-c046d1a6.js","assets/index-90ac1a44.js","assets/index-0643191e.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=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=U;return T(),F("div",null,[c(B,null,{default:p(()=>[b("div",de,[ce,a.value==="weekly"&&u.value?(T(),F("div",pe," هفته جاری: "+H(u.value),1)):G("",!0)]),c(A,{activeKey:a.value,"onUpdate:activeKey":m[0]||(m[0]=O=>a.value=O)},{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};