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

2 lines
17 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 fe}from"./BasicMainCard-3439e95d.js";import{_ as be}from"./BasicModal.vue_vue_type_style_index_0_lang-b202ccf4.js";import{_ as xe,u as V}from"./useBaseTable-0a9ca5c6.js";import{_ as ge}from"./BasicInput.vue_vue_type_style_index_0_lang-d31a14b4.js";import{_ as ye}from"./button.vue_vue_type_style_index_0_lang-c248f06f.js";import{I as P}from"./Icon-08f00b08.js";import{_ as he}from"./InputDatePicker.vue_vue_type_script_setup_true_lang-d9db54d1.js";import{t as we,a as Se}from"./useDataTime-b5b0c094.js";import{H as p,_ as Te,d as ke,g as v,K as D,h as K,v as qe,o as J,c as W,b as l,w as d,a as i,e as C,j as m,E as X,t as Ie,k as Ee,C as c}from"./index-65856697.js";import{T as G}from"./index-fa326b70.js";import{M as z}from"./index-2debd256.js";import{S as H}from"./fa_IR-9a5561fa.js";import{T as U}from"./shallowequal-e2999554.js";import"./_plugin-vue_export-helper-d18c65cd.js";import"./index-0560f4e9.js";import"./Col-9bf281e5.js";import"./vnode-9598f8b5.js";import"./isPlainObject-77557052.js";import"./index-3eb1fc79.js";import"./useState-74c053ae.js";import"./FormItemContext-75d7b3a2.js";import"./lodash-1b6d5368.js";import"./index-5b62301e.js";import"./index-c60120a9.js";import"./pickAttrs-5f523685.js";import"./toArray-c0948cf7.js";import"./usePrice-7afab779.js";import"./useRefs-320e6bbe.js";const Oe=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:e=>e.record.index+1},{title:"ارسال‌کننده",dataIndex:"submitter_name",key:"submitter_name",width:120},{title:"سوال",dataIndex:"question_text",key:"question_text",customRender:e=>{var o;const s=e.record;return(o=s.question_text)!=null&&o.trim()?s.question_text:s.template_source?`${s.template_source} ...؟`:"-"}},{title:"گزینه ۱",dataIndex:"option1_text",key:"option1_text",width:120},{title:"گزینه ۲",dataIndex:"option2_text",key:"option2_text",width:120},{title:"تاریخ ارسال",dataIndex:"created_at",key:"created_at",width:130,customRender:e=>we(e.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center",width:120}],Re=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:e=>e.record.index+1},{title:"سوال",dataIndex:"question_text",key:"question_text"},{title:"گزینه ۱",dataIndex:"option1_text",key:"option1_text",width:110},{title:"گزینه ۲",dataIndex:"option2_text",key:"option2_text",width:110},{title:"پاسخ صحیح",dataIndex:"correct_option",key:"correct_option",width:90,align:"center",customRender:e=>`گزینه ${e.record.correct_option}`},{title:"ترتیب",dataIndex:"sort_order",key:"sort_order",width:70,align:"center",customRender:e=>(e.record.sort_order??0)+1},{title:"تاریخ انتشار",dataIndex:"publish_date",key:"publish_date",width:120,customRender:e=>Se(e.record.publish_date)},{title:"طراح",dataIndex:"designer_name",key:"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 Y(e){var r;if(!e)return"خطا در ذخیره سوال";const s=e;return String(s.message??((r=s.error)==null?void 0:r.message)??"")||"خطا در ذخیره سوال"}function M(e){throw new Error(Y(e))}const f={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 Pe(e){if(!e)return[];try{const s=JSON.parse(e);return Array.isArray(s)?s.map(String):[]}catch{return e.split(",").map(s=>s.trim()).filter(Boolean)}}async function Ce(){const{data:e,error:s}=await p.from("configs").select("key, value").in("key",Object.values(f));if(s)throw s;const o=Object.fromEntries((e||[]).map(r=>[r.key,r.value]));return{base_points:Number(o[f.BASE_POINTS]??10),subscription_bonus:Number(o[f.SUBSCRIPTION_BONUS]??5),submission_reward:Number(o[f.SUBMISSION_REWARD]??20),template_prefix:o[f.TEMPLATE_PREFIX]??"کدوم رو ترجیح میدی از",template_sources:Pe(o[f.TEMPLATE_SOURCES])}}async function I(e,s){const{data:o}=await p.from("configs").select("id").eq("key",e).maybeSingle();if(o!=null&&o.id){const{error:r}=await p.from("configs").update({value:s}).eq("key",e);if(r)throw r}else{const{error:r}=await p.from("configs").insert([{key:e,value:s}]);if(r)throw r}}async function Ue(e){await I(f.BASE_POINTS,String(e.base_points)),await I(f.SUBSCRIPTION_BONUS,String(e.subscription_bonus)),await I(f.SUBMISSION_REWARD,String(e.submission_reward)),await I(f.TEMPLATE_PREFIX,e.template_prefix),await I(f.TEMPLATE_SOURCES,JSON.stringify(e.template_sources))}function Ne(e){if(!e)return"نامشخص";if(e.name)return e.name;const s=`${e.first_name||""} ${e.last_name||""}`.trim();return s||e.phone||"نامشخص"}async function Ae(e){const{limit:s=20,page:o=1}=e,r=(o-1)*s,g=r+s-1,{data:N,error:E,count:w}=await p.from("daily_question_submissions").select("*, users(name, first_name, last_name, phone)",{count:"exact"}).eq("status","pending").order("created_at",{ascending:!1}).range(r,g);if(E)throw E;return{rows:(N||[]).map((x,S)=>{const h=Array.isArray(x.users)?x.users[0]:x.users;return{...x,index:r+S,submitter_name:Ne(h)}}),total:w??0,query:{...e,total:w??0,page:o,limit:s}}}async function Be(e){const{TableEngineRequest:s}=await Te(()=>import("./buildSupabaseQuery-dbcbc796.js"),["assets/buildSupabaseQuery-dbcbc796.js","assets/index-65856697.js","assets/index-26d6f44b.css"]),o={...e};return!o.sort&&!o.order&&(o.order="-publish_date"),s(o,"daily_questions")}async function Z(e){var g;const{data:s,error:o}=await p.from("daily_questions").select("sort_order").eq("publish_date",e).order("sort_order",{ascending:!1}).limit(1);if(o)throw o;return(((g=s==null?void 0:s[0])==null?void 0:g.sort_order)??-1)+1}async function De(e){const s=e.sort_order??await Z(e.publish_date),{data:o,error:r}=await p.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:s,designer_user_id:e.designer_user_id||null,designer_name:e.designer_name||null,submission_id:e.submission_id||null}]).select().single();return r&&M(r),e.submission_id&&e.designer_user_id&&(await p.from("daily_question_submissions").update({status:"published"}).eq("id",e.submission_id),await p.rpc("dq_award_submission_reward",{p_user_id:e.designer_user_id})),o}async function Me(e){const s=e.sort_order??await Z(e.publish_date),{data:o,error:r}=await p.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:s,designer_name:e.designer_name||"ادمین",designer_user_id:null,submission_id:null}]).select().single();return r&&M(r),o}async function $e(e,s){const{data:o,error:r}=await p.from("daily_questions").update({...s,updated_at:new Date().toISOString()}).eq("id",e).select();return r&&M(r),o}async function je(e){const{error:s}=await p.from("daily_questions").delete().eq("id",e);if(s)throw s}async function Le(e){const{error:s}=await p.from("daily_question_submissions").update({status:"rejected"}).eq("id",e);if(s)throw s}function Qe(e,s){const o=e.trim(),r=s.trim();return`${o} ${r}؟`}function Fe(e,s){const o=e.trim();return s.find(r=>o.startsWith(r.trim()))}const Ve={class:"mb-6 p-4 border rounded-lg bg-gray-50"},Ke={class:"flex justify-between items-center mb-3"},Je=i("h3",{class:"font-bold"},"تنظیمات سوال روز",-1),We={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4"},Xe=i("div",{class:"mb-1 text-sm text-gray-600"},"امتیاز پاسخ صحیح",-1),Ge=i("div",{class:"mb-1 text-sm text-gray-600"},"امتیاز اضافه اشتراک",-1),ze=i("div",{class:"mb-1 text-sm text-gray-600"},"پاداش انتشار سوال کاربر",-1),He=i("div",{class:"mb-1 text-sm text-gray-600"},"پیشوند فرم کاربر",-1),Ye={class:"sm:col-span-2"},Ze=i("div",{class:"mb-1 text-sm text-gray-600"},"گزینه‌های منبع (با کاما جدا کنید)",-1),et={class:"gap-2 flex justify-center"},tt=i("span",null,"انتشار",-1),st=i("span",null,"رد",-1),it={class:"flex justify-between items-center mb-4"},nt=i("h2",null,"سوالات منتشر شده",-1),ot={class:"gap-2 flex justify-center"},at=i("span",null,"ویرایش",-1),rt=i("span",null,"حذف",-1),lt={class:"space-y-4"},ut=i("div",{class:"mb-1 text-sm text-gray-600"},"متن سوال",-1),dt={class:"text-sm text-gray-700 flex items-center flex-wrap gap-1"},_t=i("span",null,"؟",-1),ct={class:"grid grid-cols-2 gap-4"},mt=i("div",{class:"mb-1 text-sm text-gray-600"},"متن گزینه ۱",-1),pt=i("div",{class:"mb-1 text-sm text-gray-600"},"متن گزینه ۲",-1),vt={class:"grid grid-cols-2 gap-4"},ft=i("div",{class:"mb-1 text-sm text-gray-600"},"گزینه صحیح",-1),bt=i("div",{class:"mb-1 text-sm text-gray-600"},"تاریخ انتشار",-1),xt=i("div",{class:"mb-1 text-sm text-gray-600"},"ترتیب نمایش در همان روز (اختیاری)",-1),gt=i("div",{class:"text-xs text-gray-500 mt-1"},"می‌توانید چند سوال برای یک تاریخ منتشر کنید.",-1),yt={key:0},ht=i("div",{class:"mb-1 text-sm text-gray-600"},"طراح سوال",-1),zt=ke({__name:"index",setup(e){const s=G,o=G.TabPane,r=H,g=H.Option;function N(t){return t?t.replace(/-/g,"/"):""}function E(t){return t?t.replace(/\//g,"-"):""}const w=v("submissions"),y=v(!1),x=v(!1),S=v(!1),h=v(!1),O=v(null),T=v(!1),[ee,$]=V(),[te,j]=V(),_=v({base_points:10,subscription_bonus:5,submission_reward:20,template_prefix:"کدوم رو ترجیح میدی از",template_sources:[]}),R=v("");D(R,t=>{_.value.template_sources=t.split(",").map(n=>n.trim()).filter(Boolean)});const se=K(()=>_.value.template_sources.map(t=>({label:t,value:t}))),u=v({template_source:"",question_text:"",option1_text:"",option2_text:"",correct_option:1,publish_date:"",sort_order:void 0,designer_name:null,designer_user_id:null,submission_id:null}),k=v(""),q=v("");D(k,t=>{u.value.publish_date=E(t||"")}),D(q,t=>{const n=t.trim();u.value.sort_order=n===""?void 0:Number(n)});const ie=K(()=>h.value?"ویرایش سوال":T.value?"انتشار سوال کاربر":"افزودن سوال جدید"),ne={columns:Oe,api:Ae,defaultPageLimit:20},oe={columns:Re,api:Be,defaultPageLimit:20};function A(){u.value={template_source:"",question_text:"",option1_text:"",option2_text:"",correct_option:1,publish_date:"",sort_order:void 0,designer_name:null,designer_user_id:null,submission_id:null},k.value="",q.value="",h.value=!1,O.value=null,T.value=!1}function ae(){A(),y.value=!0}function re(t){A(),T.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:1,publish_date:"",designer_name:t.submitter_name,designer_user_id:t.user_id,submission_id:t.id},y.value=!0}function le(t){h.value=!0,O.value=t.id,T.value=!1,u.value={template_source:Fe(t.question_text,_.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=N(t.publish_date),q.value=t.sort_order!=null?String(t.sort_order):"",y.value=!0}function L(){y.value=!1,A()}async function ue(){if(!u.value.template_source){c.warning("لطفاً منبع سوال را انتخاب کنید");return}if(u.value.question_text=Qe(u.value.template_source,_.value.template_prefix),!u.value.option1_text.trim()||!u.value.option2_text.trim()){c.warning("هر دو گزینه را وارد کنید");return}if(!u.value.publish_date){c.warning("تاریخ انتشار را انتخاب کنید");return}x.value=!0;try{h.value&&O.value?(await $e(O.value,u.value),c.success("سوال با موفقیت ویرایش شد")):T.value?(await De(u.value),c.success("سوال کاربر با موفقیت منتشر شد"),$()):(await Me(u.value),c.success("سوال با موفقیت اضافه شد")),j(),L()}catch(t){c.error(Y(t))}finally{x.value=!1}}function de(t){z.confirm({title:"حذف سوال",content:"آیا از حذف این سوال مطمئن هستید؟",okText:"بله",cancelText:"خیر",onOk:async()=>{try{await je(t.id),c.success("سوال حذف شد"),j()}catch(n){c.error((n==null?void 0:n.message)||"خطا در حذف")}}})}function _e(t){z.confirm({title:"رد سوال",content:"آیا از رد این سوال مطمئن هستید؟",okText:"بله",cancelText:"خیر",onOk:async()=>{try{await Le(t.id),c.success("سوال رد شد"),$()}catch(n){c.error((n==null?void 0:n.message)||"خطا در رد سوال")}}})}async function ce(){try{const t=await Ce();_.value=t,R.value=t.template_sources.join(", ")}catch(t){c.error((t==null?void 0:t.message)||"خطا در بارگذاری تنظیمات")}}async function me(){S.value=!0;try{await Ue(_.value),c.success("تنظیمات ذخیره شد")}catch(t){c.error((t==null?void 0:t.message)||"خطا در ذخیره تنظیمات")}finally{S.value=!1}}return qe(ce),(t,n)=>{const Q=ye,b=ge,F=xe,pe=be,ve=fe;return J(),W("div",null,[l(ve,null,{default:d(()=>[i("div",Ve,[i("div",Ke,[Je,l(Q,{type:"primary",size:"small",loading:S.value,onClick:me},{default:d(()=>[C(" ذخیره تنظیمات ")]),_:1},8,["loading"])]),i("div",We,[i("div",null,[Xe,l(b,{value:_.value.base_points,"onUpdate:value":n[0]||(n[0]=a=>_.value.base_points=a),type:"number"},null,8,["value"])]),i("div",null,[Ge,l(b,{value:_.value.subscription_bonus,"onUpdate:value":n[1]||(n[1]=a=>_.value.subscription_bonus=a),type:"number"},null,8,["value"])]),i("div",null,[ze,l(b,{value:_.value.submission_reward,"onUpdate:value":n[2]||(n[2]=a=>_.value.submission_reward=a),type:"number"},null,8,["value"])]),i("div",null,[He,l(b,{value:_.value.template_prefix,"onUpdate:value":n[3]||(n[3]=a=>_.value.template_prefix=a),placeholder:"کدوم رو ترجیح میدی از"},null,8,["value"])]),i("div",Ye,[Ze,l(b,{value:R.value,"onUpdate:value":n[4]||(n[4]=a=>R.value=a),placeholder:"علی, رضا, سارا, مریم"},null,8,["value"])])])]),l(m(s),{activeKey:w.value,"onUpdate:activeKey":n[5]||(n[5]=a=>w.value=a)},{default:d(()=>[l(m(o),{key:"submissions",tab:"سوالات کاربران"},{default:d(()=>[l(F,X(ne,{onRegister:m(ee)}),{action:d(({record:a})=>[i("div",et,[l(m(U),{class:"cursor-pointer"},{title:d(()=>[tt]),default:d(()=>[l(P,{icon:"vuesax-linear:tick-circle",color:"#16A34A",onClick:B=>re(a)},null,8,["onClick"])]),_:2},1024),l(m(U),{class:"cursor-pointer"},{title:d(()=>[st]),default:d(()=>[l(P,{icon:"vuesax-linear:close-circle",color:"#DC2626",onClick:B=>_e(a)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"])]),_:1}),l(m(o),{key:"published",tab:"سوالات روز"},{default:d(()=>[i("div",it,[nt,l(Q,{type:"primary",onClick:ae},{default:d(()=>[C("افزودن سوال")]),_:1})]),l(F,X(oe,{onRegister:m(te)}),{action:d(({record:a})=>[i("div",ot,[l(m(U),{class:"cursor-pointer"},{title:d(()=>[at]),default:d(()=>[l(P,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:B=>le(a)},null,8,["onClick"])]),_:2},1024),l(m(U),{class:"cursor-pointer"},{title:d(()=>[rt]),default:d(()=>[l(P,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:B=>de(a)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"])]),_:1})]),_:1},8,["activeKey"]),l(pe,{visible:y.value,"onUpdate:visible":n[13]||(n[13]=a=>y.value=a),title:ie.value,onOk:ue,onCancel:L,width:"70%",confirmLoading:x.value},{default:d(()=>[i("div",lt,[i("div",null,[ut,i("div",dt,[l(m(r),{value:u.value.template_source,"onUpdate:value":n[6]||(n[6]=a=>u.value.template_source=a),options:se.value,placeholder:"انتخاب منبع",class:"min-w-[120px]"},null,8,["value","options"]),i("span",null,Ie(_.value.template_prefix),1),_t])]),i("div",ct,[i("div",null,[mt,l(b,{value:u.value.option1_text,"onUpdate:value":n[7]||(n[7]=a=>u.value.option1_text=a),placeholder:"گزینه ۱"},null,8,["value"])]),i("div",null,[pt,l(b,{value:u.value.option2_text,"onUpdate:value":n[8]||(n[8]=a=>u.value.option2_text=a),placeholder:"گزینه ۲"},null,8,["value"])])]),i("div",vt,[i("div",null,[ft,l(m(r),{value:u.value.correct_option,"onUpdate:value":n[9]||(n[9]=a=>u.value.correct_option=a),class:"w-full"},{default:d(()=>[l(m(g),{value:1},{default:d(()=>[C("گزینه ۱")]),_:1}),l(m(g),{value:2},{default:d(()=>[C("گزینه ۲")]),_:1})]),_:1},8,["value"])]),i("div",null,[bt,l(he,{value:k.value,"onUpdate:value":n[10]||(n[10]=a=>k.value=a)},null,8,["value"])])]),i("div",null,[xt,l(b,{value:q.value,"onUpdate:value":n[11]||(n[11]=a=>q.value=a),type:"number",placeholder:"خالی = آخر لیست"},null,8,["value"]),gt]),u.value.designer_user_id&&u.value.designer_name?(J(),W("div",yt,[ht,l(b,{value:u.value.designer_name,"onUpdate:value":n[12]||(n[12]=a=>u.value.designer_name=a),disabled:""},null,8,["value"])])):Ee("",!0)])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{zt as default};