Files
machartaa_admin_dist/dist/assets/index-297d4e50.js
T
2026-08-09 13:07:17 +03:30

2 lines
19 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{_ as xe}from"./BasicMainCard-4b9ba85b.js";import{_ as ge}from"./BasicModal.vue_vue_type_style_index_0_lang-661b0a06.js";import{_ as he}from"./BasicInput.vue_vue_type_style_index_0_lang-17ae6919.js";import{_ as ye}from"./button.vue_vue_type_style_index_0_lang-f6f5b6a0.js";import{u as V,_ as Se}from"./useBaseTable-3c30fe12.js";import{I as U}from"./Icon-889d6eab.js";import{_ as we}from"./InputDatePicker.vue_vue_type_script_setup_true_lang-f3808e6a.js";import{t as Te,a as qe}from"./useDataTime-5a269444.js";import{G as v,_ as Ie,d as ke,g as x,E as N,O as Ee,h as J,v as Oe,o as K,c as W,b as l,w as d,j as b,H as z,a as s,e as C,t as Re,k as Pe,D as f}from"./index-f8ee37b9.js";import{f as G,a as Ue,b as Ne,c as Ce,d as Ae,e as Be}from"./supabaseTableQuery-95762ff3.js";import{a as X}from"./index-6e8a4b4f.js";import{M as H}from"./index-ef1f8a61.js";import{a as Y}from"./index-f923b666.js";import{T as A}from"./isSymbol-cdcd460d.js";import"./Grid-30a17a21.js";import"./index-ee1b3469.js";import"./Col-97627e24.js";import"./styleChecker-c1fc9f39.js";import"./isPlainObject-6382de01.js";import"./vnode-b0e810ae.js";import"./_plugin-vue_export-helper-775bc553.js";import"./index-0e72b27c.js";import"./usePrice-bc935b83.js";import"./index-1ab617ae.js";import"./FormItemContext-5821e8c8.js";import"./omit-bdd3cea5.js";import"./updateLocale-d5a764a4.js";import"./index-bc659f42.js";import"./index-b8cc71e2.js";import"./useState-f5985d90.js";import"./lodash-7c51d08d.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-2e892f80.js";import"./index-78e4e5e0.js";import"./Badge-47d7b0bb.js";import"./isNumeric-3f69e2aa.js";import"./index-89210322.js";import"./index-8bcedf66.js";import"./index-0441c4fc.js";import"./DialogWrap-192ddaf7.js";import"./pickAttrs-69f29e9c.js";import"./css-aae66f86.js";import"./toArray-53a55fc4.js";import"./index-bf59f845.js";import"./useRefs-bff35432.js";import"./_flatRest-6305d35d.js";const De=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:e=>e.record.index+1},{title:"ارسال‌کننده",dataIndex:"submitter_name",key:"submitter_name",filterField:"submitter_name",width:120},{title:"سوال",dataIndex:"question_text",key:"question_text",filterField:"question_text",customRender:e=>{var o;const i=e.record;return(o=i.question_text)!=null&&o.trim()?i.question_text:i.template_source?`${i.template_source} ...؟`:"-"}},{title:"گزینه ۱",dataIndex:"option1_text",key:"option1_text",filterField:"option1_text",width:120},{title:"گزینه ۲",dataIndex:"option2_text",key:"option2_text",filterField:"option2_text",width:120},{title:"تاریخ ارسال",dataIndex:"created_at",key:"created_at",type:"DateTime",filterField:"created_at",width:130,customRender:e=>Te(e.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center",width:120}],Fe=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:e=>e.record.index+1},{title:"سوال",dataIndex:"question_text",key:"question_text",filterField:"question_text"},{title:"گزینه ۱",dataIndex:"option1_text",key:"option1_text",filterField:"option1_text",width:110},{title:"گزینه ۲",dataIndex:"option2_text",key:"option2_text",filterField:"option2_text",width:110},{title:"پاسخ صحیح",dataIndex:"correct_option",key:"correct_option",type:"Number",filterField:"correct_option",width:90,align:"center",customRender:e=>`گزینه ${e.record.correct_option}`},{title:"ترتیب",dataIndex:"sort_order",key:"sort_order",type:"Number",filterField:"sort_order",width:70,align:"center",customRender:e=>(e.record.sort_order??0)+1},{title:"تاریخ انتشار",dataIndex:"publish_date",key:"publish_date",type:"Date",filterField:"publish_date",width:120,customRender:e=>qe(e.record.publish_date)},{title:"طراح",dataIndex:"designer_name",key:"designer_name",filterField:"designer_name",width:110,customRender:e=>e.record.designer_user_id?e.record.designer_name||"کاربر":"-"},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center",width:100}];function Z(e){var a;if(console.log(e,"error"),!e)return"خطا در ذخیره سوال";const i=e;return String(i.message??((a=i.error)==null?void 0:a.message)??"")||"خطا در ذخیره سوال"}function $(e){throw new Error(Z(e))}const g={BASE_POINTS:"daily_question_base_points",SUBSCRIPTION_BONUS:"daily_question_subscription_bonus",SUBMISSION_REWARD:"daily_question_submission_reward",TEMPLATE_PREFIX:"daily_question_template_prefix",TEMPLATE_SOURCES:"daily_question_template_sources"};function Me(e){if(!e)return[];try{const i=JSON.parse(e);return Array.isArray(i)?i.map(String):[]}catch{return e.split(",").map(i=>i.trim()).filter(Boolean)}}async function $e(){const{data:e,error:i}=await v.from("configs").select("key, value").in("key",Object.values(g));if(i)throw i;const o=Object.fromEntries((e||[]).map(a=>[a.key,a.value]));return{base_points:Number(o[g.BASE_POINTS]??10),subscription_bonus:Number(o[g.SUBSCRIPTION_BONUS]??5),submission_reward:Number(o[g.SUBMISSION_REWARD]??20),template_prefix:o[g.TEMPLATE_PREFIX]??"کدوم رو ترجیح میدی از",template_sources:Me(o[g.TEMPLATE_SOURCES])}}async function O(e,i){const{data:o}=await v.from("configs").select("id").eq("key",e).maybeSingle();if(o!=null&&o.id){const{error:a}=await v.from("configs").update({value:i}).eq("key",e);if(a)throw a}else{const{error:a}=await v.from("configs").insert([{key:e,value:i}]);if(a)throw a}}async function Le(e){await O(g.BASE_POINTS,String(e.base_points)),await O(g.SUBSCRIPTION_BONUS,String(e.subscription_bonus)),await O(g.SUBMISSION_REWARD,String(e.submission_reward)),await O(g.TEMPLATE_PREFIX,e.template_prefix),await O(g.TEMPLATE_SOURCES,JSON.stringify(e.template_sources))}function je(e){if(!e)return"نامشخص";if(e.name)return e.name;const i=`${e.first_name||""} ${e.last_name||""}`.trim();return i||e.phone||"نامشخص"}const Qe=new Set(["template_source","question_text","option1_text","option2_text","status","created_at"]),Ve=["question_text","template_source","option1_text","option2_text"];async function Je(e){const i=ee(e),{limit:o=20,page:a=1,search:_,filters:w}=i;let m=v.from("daily_question_submissions").select("*, users(name, first_name, last_name, phone)",{count:"exact"}).eq("status","pending");if(_!=null&&_.trim()){const c=await G(v,_);m=Ue(m,_,Ve,c)}if(w!=null&&w.length){for(const c of w)if(!(c.hidden||!c.field)){if(c.field==="submitter_name"){if(["eq","has","like"].includes(c.op)){const y=await G(v,String(c.value));y.length?m=m.in("user_id",y):m=m.eq("user_id","00000000-0000-0000-0000-000000000000")}continue}Qe.has(c.field)&&(m=Ne(m,c))}}m=Ce(m,i,"-created_at",["created_at","template_source","question_text","status"]),m=Ae(m,a,o);const{data:T,error:h,count:q}=await m;if(h)throw h;return Be(T,q,i,c=>{const y=Array.isArray(c.users)?c.users[0]:c.users;return{...c,submitter_name:je(y)}})}function ee(e){var a;if(!((a=e.filters)!=null&&a.length))return e;const i=new Set(["publish_date","created_at"]),o=e.filters.map(_=>{if(!i.has(_.field)||_.value==null||_.value==="")return _;const w=typeof _.value=="string"?_.value.replace(/\//g,"-").split("T")[0]:_.value;return{..._,value:w}});return{...e,filters:o}}async function Ke(e){const{TableEngineRequest:i}=await Ie(()=>import("./buildSupabaseQuery-6dd7a8c2.js"),["assets/buildSupabaseQuery-6dd7a8c2.js","assets/index-f8ee37b9.js","assets/index-8e1e8848.css","assets/supabaseTableQuery-95762ff3.js"]),o=ee({...e});return!o.sort&&!o.order&&(o.order="-publish_date"),i(o,"daily_questions")}async function te(e){var _;const{data:i,error:o}=await v.from("daily_questions").select("sort_order").eq("publish_date",e).order("sort_order",{ascending:!1}).limit(1);if(o)throw o;return(((_=i==null?void 0:i[0])==null?void 0:_.sort_order)??-1)+1}async function We(e){const i=e.sort_order??await te(e.publish_date),{data:o,error:a}=await v.from("daily_questions").insert([{question_text:e.question_text,option1_text:e.option1_text,option2_text:e.option2_text,correct_option:e.correct_option,publish_date:e.publish_date,sort_order:i,designer_user_id:e.designer_user_id||null,designer_name:e.designer_name||null,submission_id:e.submission_id||null}]).select().single();return a&&$(a),e.submission_id&&e.designer_user_id&&(await v.from("daily_question_submissions").update({status:"published"}).eq("id",e.submission_id),await v.rpc("dq_award_submission_reward",{p_user_id:e.designer_user_id})),o}async function ze(e){const i=e.sort_order??await te(e.publish_date),{data:o,error:a}=await v.from("daily_questions").insert([{question_text:e.question_text,option1_text:e.option1_text,option2_text:e.option2_text,correct_option:e.correct_option,publish_date:e.publish_date,sort_order:i,designer_name:e.designer_name||"ادمین",designer_user_id:null,submission_id:null}]).select().single();return a&&$(a),o}async function Ge(e,i){const{data:o,error:a}=await v.from("daily_questions").update({...i,updated_at:new Date().toISOString()}).eq("id",e).select();return a&&$(a),o}async function Xe(e){const{error:i}=await v.from("daily_questions").delete().eq("id",e);if(i)throw i}async function He(e){const{error:i}=await v.from("daily_question_submissions").update({status:"rejected"}).eq("id",e);if(i)throw i}function Ye(e,i){const o=e.trim(),a=i.trim();return`${o} ${a}؟`}function Ze(e,i){const o=e.trim();return i.find(a=>o.startsWith(a.trim()))}const et={class:"gap-2 flex justify-center"},tt=s("span",null,"انتشار",-1),it=s("span",null,"رد",-1),st={class:"flex justify-between items-center mb-4"},nt=s("h2",null,"سوالات منتشر شده",-1),ot={class:"gap-2 flex justify-center"},at=s("span",null,"ویرایش",-1),rt=s("span",null,"حذف",-1),lt={class:"p-4 border rounded-lg bg-gray-50"},ut={class:"flex justify-between items-center mb-3"},dt=s("h3",{class:"font-bold"},"تنظیمات سوال روز",-1),_t={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4"},ct=s("div",{class:"mb-1 text-sm text-gray-600"},"امتیاز پاسخ صحیح",-1),mt=s("div",{class:"mb-1 text-sm text-gray-600"},"امتیاز اضافه اشتراک",-1),pt=s("div",{class:"mb-1 text-sm text-gray-600"},"پاداش انتشار سوال کاربر",-1),ft=s("div",{class:"mb-1 text-sm text-gray-600"},"پیشوند فرم کاربر",-1),vt={class:"sm:col-span-2"},bt=s("div",{class:"mb-1 text-sm text-gray-600"},"گزینه‌های منبع (با کاما جدا کنید)",-1),xt={class:"space-y-4"},gt=s("div",{class:"mb-1 text-sm text-gray-600"},"متن سوال",-1),ht={class:"text-sm text-gray-700 flex items-center flex-wrap gap-1"},yt=s("span",null,"؟",-1),St={class:"grid grid-cols-2 gap-4"},wt=s("div",{class:"mb-1 text-sm text-gray-600"},"متن گزینه ۱",-1),Tt=s("div",{class:"mb-1 text-sm text-gray-600"},"متن گزینه ۲",-1),qt={class:"grid grid-cols-2 gap-4"},It=s("div",{class:"mb-1 text-sm text-gray-600"},"گزینه صحیح",-1),kt=s("div",{class:"mb-1 text-sm text-gray-600"},"تاریخ انتشار",-1),Et=s("div",{class:"mb-1 text-sm text-gray-600"},"ترتیب نمایش در همان روز (اختیاری)",-1),Ot=s("div",{class:"text-xs text-gray-500 mt-1"},"می‌توانید چند سوال برای یک تاریخ منتشر کنید.",-1),Rt={key:0},Pt=s("div",{class:"mb-1 text-sm text-gray-600"},"طراح سوال",-1),wi=ke({__name:"index",setup(e){const i=X,o=X.TabPane,a=Y,_=Y.Option;function w(t){return t?t.replace(/-/g,"/"):""}function m(t){return t?t.replace(/\//g,"-"):""}const T=x("submissions"),h=x(!1),q=x(!1),c=x(!1),y=x(!1),R=x(null),I=x(!1),[ie,B]=V(),[se,D]=V();N(T,async t=>{await Ee(),t==="submissions"?B():t==="published"&&D()});const p=x({base_points:10,subscription_bonus:5,submission_reward:20,template_prefix:"کدوم رو ترجیح میدی از",template_sources:[]}),P=x("");N(P,t=>{p.value.template_sources=t.split(",").map(n=>n.trim()).filter(Boolean)});const ne=J(()=>p.value.template_sources.map(t=>({label:t,value:t}))),u=x({template_source:"",question_text:"",option1_text:"",option2_text:"",correct_option:null,publish_date:"",sort_order:void 0,designer_name:null,designer_user_id:null,submission_id:null}),k=x(""),E=x("");N(k,t=>{u.value.publish_date=m(t||"")}),N(E,t=>{const n=t.trim();u.value.sort_order=n===""?void 0:Number(n)});const oe=J(()=>y.value?"ویرایش سوال":I.value?"انتشار سوال کاربر":"افزودن سوال جدید"),ae={columns:De,api:Je,defaultPageLimit:20},re={columns:Fe,api:Ke,defaultPageLimit:20};function F(){u.value={template_source:"",question_text:"",option1_text:"",option2_text:"",correct_option:null,publish_date:"",sort_order:void 0,designer_name:null,designer_user_id:null,submission_id:null},k.value="",E.value="",y.value=!1,R.value=null,I.value=!1}function le(){F(),h.value=!0}function ue(t){F(),I.value=!0,u.value={template_source:t.template_source,question_text:t.question_text,option1_text:t.option1_text,option2_text:t.option2_text,correct_option:null,publish_date:"",designer_name:t.submitter_name,designer_user_id:t.user_id,submission_id:t.id},h.value=!0}function de(t){y.value=!0,R.value=t.id,I.value=!1,u.value={template_source:Ze(t.question_text,p.value.template_sources)||"",question_text:t.question_text,option1_text:t.option1_text,option2_text:t.option2_text,correct_option:t.correct_option,publish_date:t.publish_date,sort_order:t.sort_order,designer_name:t.designer_name,designer_user_id:t.designer_user_id,submission_id:t.submission_id},k.value=w(t.publish_date),E.value=t.sort_order!=null?String(t.sort_order):"",h.value=!0}function L(){h.value=!1,F()}async function _e(){if(!u.value.template_source){f.warning("لطفاً منبع سوال را انتخاب کنید");return}if(u.value.question_text=Ye(u.value.template_source,p.value.template_prefix),!u.value.option1_text.trim()||!u.value.option2_text.trim()){f.warning("هر دو گزینه را وارد کنید");return}if(!u.value.correct_option){f.warning("لطفاً گزینه صحیح را انتخاب کنید");return}if(!u.value.publish_date){f.warning("تاریخ انتشار را انتخاب کنید");return}q.value=!0;try{y.value&&R.value?(await Ge(R.value,u.value),f.success("سوال با موفقیت ویرایش شد")):I.value?(await We(u.value),f.success("سوال کاربر با موفقیت منتشر شد"),B()):(await ze(u.value),f.success("سوال با موفقیت اضافه شد")),D(),L()}catch(t){f.error(Z(t))}finally{q.value=!1}}function ce(t){H.confirm({title:"حذف سوال",content:"آیا از حذف این سوال مطمئن هستید؟",okText:"بله",cancelText:"خیر",onOk:async()=>{try{await Xe(t.id),f.success("سوال حذف شد"),D()}catch(n){f.error((n==null?void 0:n.message)||"خطا در حذف")}}})}function me(t){H.confirm({title:"رد سوال",content:"آیا از رد این سوال مطمئن هستید؟",okText:"بله",cancelText:"خیر",onOk:async()=>{try{await He(t.id),f.success("سوال رد شد"),B()}catch(n){f.error((n==null?void 0:n.message)||"خطا در رد سوال")}}})}async function pe(){try{const t=await $e();p.value=t,P.value=t.template_sources.join(", ")}catch(t){f.error((t==null?void 0:t.message)||"خطا در بارگذاری تنظیمات")}}async function fe(){c.value=!0;try{await Le(p.value),f.success("تنظیمات ذخیره شد")}catch(t){f.error((t==null?void 0:t.message)||"خطا در ذخیره تنظیمات")}finally{c.value=!1}}return Oe(pe),(t,n)=>{const j=Se,Q=ye,S=he,ve=ge,be=xe;return K(),W("div",null,[l(be,null,{default:d(()=>[l(b(i),{activeKey:T.value,"onUpdate:activeKey":n[5]||(n[5]=r=>T.value=r)},{default:d(()=>[l(b(o),{key:"submissions",tab:"سوالات کاربران"},{default:d(()=>[l(j,z(ae,{onRegister:b(ie)}),{action:d(({record:r})=>[s("div",et,[l(b(A),{class:"cursor-pointer"},{title:d(()=>[tt]),default:d(()=>[l(U,{icon:"vuesax-linear:tick-circle",color:"#16A34A",onClick:M=>ue(r)},null,8,["onClick"])]),_:2},1024),l(b(A),{class:"cursor-pointer"},{title:d(()=>[it]),default:d(()=>[l(U,{icon:"vuesax-linear:close-circle",color:"#DC2626",onClick:M=>me(r)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"])]),_:1}),l(b(o),{key:"published",tab:"سوالات روز"},{default:d(()=>[s("div",st,[nt,l(Q,{type:"primary",onClick:le},{default:d(()=>[C("افزودن سوال")]),_:1})]),l(j,z(re,{onRegister:b(se)}),{action:d(({record:r})=>[s("div",ot,[l(b(A),{class:"cursor-pointer"},{title:d(()=>[at]),default:d(()=>[l(U,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:M=>de(r)},null,8,["onClick"])]),_:2},1024),l(b(A),{class:"cursor-pointer"},{title:d(()=>[rt]),default:d(()=>[l(U,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:M=>ce(r)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"])]),_:1}),l(b(o),{key:"settings",tab:"تنظیمات"},{default:d(()=>[s("div",lt,[s("div",ut,[dt,l(Q,{type:"primary",size:"small",loading:c.value,onClick:fe},{default:d(()=>[C(" ذخیره تنظیمات ")]),_:1},8,["loading"])]),s("div",_t,[s("div",null,[ct,l(S,{value:p.value.base_points,"onUpdate:value":n[0]||(n[0]=r=>p.value.base_points=r),type:"number"},null,8,["value"])]),s("div",null,[mt,l(S,{value:p.value.subscription_bonus,"onUpdate:value":n[1]||(n[1]=r=>p.value.subscription_bonus=r),type:"number"},null,8,["value"])]),s("div",null,[pt,l(S,{value:p.value.submission_reward,"onUpdate:value":n[2]||(n[2]=r=>p.value.submission_reward=r),type:"number"},null,8,["value"])]),s("div",null,[ft,l(S,{value:p.value.template_prefix,"onUpdate:value":n[3]||(n[3]=r=>p.value.template_prefix=r),placeholder:"کدوم رو ترجیح میدی از"},null,8,["value"])]),s("div",vt,[bt,l(S,{value:P.value,"onUpdate:value":n[4]||(n[4]=r=>P.value=r),placeholder:"علی, رضا, سارا, مریم"},null,8,["value"])])])])]),_:1})]),_:1},8,["activeKey"]),l(ve,{visible:h.value,"onUpdate:visible":n[13]||(n[13]=r=>h.value=r),title:oe.value,onOk:_e,onCancel:L,width:"70%",confirmLoading:q.value},{default:d(()=>[s("div",xt,[s("div",null,[gt,s("div",ht,[l(b(a),{value:u.value.template_source,"onUpdate:value":n[6]||(n[6]=r=>u.value.template_source=r),options:ne.value,placeholder:"انتخاب منبع",class:"min-w-[120px]"},null,8,["value","options"]),s("span",null,Re(p.value.template_prefix),1),yt])]),s("div",St,[s("div",null,[wt,l(S,{value:u.value.option1_text,"onUpdate:value":n[7]||(n[7]=r=>u.value.option1_text=r),placeholder:"گزینه ۱"},null,8,["value"])]),s("div",null,[Tt,l(S,{value:u.value.option2_text,"onUpdate:value":n[8]||(n[8]=r=>u.value.option2_text=r),placeholder:"گزینه ۲"},null,8,["value"])])]),s("div",qt,[s("div",null,[It,l(b(a),{value:u.value.correct_option,"onUpdate:value":n[9]||(n[9]=r=>u.value.correct_option=r),class:"w-full",placeholder:"انتخاب گزینه صحیح","allow-clear":""},{default:d(()=>[l(b(_),{value:1},{default:d(()=>[C("گزینه ۱")]),_:1}),l(b(_),{value:2},{default:d(()=>[C("گزینه ۲")]),_:1})]),_:1},8,["value"])]),s("div",null,[kt,l(we,{value:k.value,"onUpdate:value":n[10]||(n[10]=r=>k.value=r)},null,8,["value"])])]),s("div",null,[Et,l(S,{value:E.value,"onUpdate:value":n[11]||(n[11]=r=>E.value=r),type:"number",placeholder:"خالی = آخر لیست"},null,8,["value"]),Ot]),u.value.designer_user_id&&u.value.designer_name?(K(),W("div",Rt,[Pt,l(S,{value:u.value.designer_name,"onUpdate:value":n[12]||(n[12]=r=>u.value.designer_name=r),disabled:""},null,8,["value"])])):Pe("",!0)])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{wi as default};