Files
machartaa_admin_dist/dist/assets/index-202c188a.js
T
2026-09-16 14:07:27 +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 ye}from"./BasicMainCard-2b216dd4.js";import{_ as he}from"./BasicModal.vue_vue_type_style_index_0_lang-39ca2ebd.js";import{_ as we}from"./BasicInput.vue_vue_type_style_index_0_lang-2d1bf661.js";import{_ as Se}from"./button.vue_vue_type_style_index_0_lang-307c41e8.js";import{u as K,_ as Te}from"./useBaseTable-4f4d8248.js";import{I as O}from"./Icon-daa4ada2.js";import{_ as Ie}from"./InputDatePicker.vue_vue_type_script_setup_true_lang-af24be34.js";import{t as ke,a as qe}from"./useDataTime-e3db50db.js";import{V as C,_ as Ee,H as Q,I as N,Q as Re,J as Oe,d as Pe,i as f,y as P,W as Ue,j as W,x as Ae,o as z,c as G,e as r,w as c,l as v,K as X,b as s,f as U,t as Ce,n as Ne,G as p}from"./index-f44a958f.js";import{fetchMatchingUserIds as H,formatTableResult as Be}from"./supabaseTableQuery-16ab1095.js";import{T as Y}from"./index-a485cd3f.js";import{M as Z}from"./index-234c79ba.js";import{_ as ee}from"./index-2a7e74b5.js";import{T as A}from"./isSymbol-9ca68d9f.js";import"./Grid-dfc25885.js";import"./index-ae092da9.js";import"./Col-4af7c3cd.js";import"./styleChecker-d7256a22.js";import"./isPlainObject-f85be752.js";import"./vnode-bcebd00a.js";import"./_plugin-vue_export-helper-9644f77d.js";import"./index-00d02541.js";import"./usePrice-bc935b83.js";import"./index-17909d47.js";import"./SearchOutlined-bf31e51b.js";import"./omit-555d0220.js";import"./FormItemContext-801d31a4.js";import"./index-6f0218fe.js";import"./index-120ad211.js";import"./updateLocale-4abe3bd4.js";import"./shallowequal-30316885.js";import"./useState-7cfb31a4.js";import"./useMemo-3af68d99.js";import"./lodash-ba2547f0.js";import"./BaseSwitch.vue_vue_type_script_setup_true_lang-9966573e.js";import"./index-5f6600aa.js";import"./Badge-daa269e5.js";import"./isNumeric-3f69e2aa.js";import"./index-432f8768.js";import"./index-7722f326.js";import"./index-5bb4f02b.js";import"./index-1399904b.js";import"./DialogWrap-ed1e42ab.js";import"./pickAttrs-6cecdc2a.js";import"./css-aae66f86.js";import"./toArray-c3886d9c.js";import"./index-a5608fae.js";import"./useRefs-b0f27066.js";import"./_flatRest-e4351155.js";import"./isMobile-e2e89480.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=>ke(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 te(e){var u;if(console.log(e,"error"),!e)return"خطا در ذخیره سوال";const i=e;return String(i.message??((u=i.error)==null?void 0:u.message)??"")||"خطا در ذخیره سوال"}function j(e){throw new Error(te(e))}const b={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 e=await C("configs",{includeIn:{field:"key",values:Object.values(b)},limit:50,page:1}),i=Object.fromEntries((e.rows||[]).map(o=>[o.key,o.value]));return{base_points:Number(i[b.BASE_POINTS]??10),subscription_bonus:Number(i[b.SUBSCRIPTION_BONUS]??5),submission_reward:Number(i[b.SUBMISSION_REWARD]??20),template_prefix:i[b.TEMPLATE_PREFIX]??"کدوم رو ترجیح میدی از",template_sources:Me(i[b.TEMPLATE_SOURCES])}}async function k(e,i){var u,d;const o=await C("configs",{filters:[{field:"key",op:"eq",value:e}],limit:1,page:1});(d=(u=o.rows)==null?void 0:u[0])!=null&&d.id?await N("configs",o.rows[0].id,{value:i}):await Q("configs",{key:e,value:i})}async function Qe(e){await k(b.BASE_POINTS,String(e.base_points)),await k(b.SUBSCRIPTION_BONUS,String(e.subscription_bonus)),await k(b.SUBMISSION_REWARD,String(e.submission_reward)),await k(b.TEMPLATE_PREFIX,e.template_prefix),await k(b.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||"نامشخص"}function ie(e){var u;if(!((u=e.filters)!=null&&u.length))return e;const i=new Set(["publish_date","created_at"]),o=e.filters.map(d=>{if(!i.has(d.field)||d.value==null||d.value==="")return d;const g=typeof d.value=="string"?d.value.replace(/\//g,"-").split("T")[0]:d.value;return{...d,value:g}});return{...e,filters:o}}async function Le(e){const i=ie(e),{limit:o=20,page:u=1,search:d,filters:g}=i,h={filters:[{field:"status",op:"eq",value:"pending"}],page:u,limit:o,order:i.order||"-created_at",sort:i.sort,select:["*","users(name, first_name, last_name, phone)"]};if(d!=null&&d.trim()){const _=await H(d);_.length&&(h.includeIn={field:"user_id",values:_})}if(g!=null&&g.length){for(const _ of g)if(!(_.hidden||!_.field)){if(_.field==="submitter_name"){if(["eq","has","like"].includes(_.op)){const y=await H(String(_.value));h.includeIn={field:"user_id",values:y.length?y:["00000000-0000-0000-0000-000000000000"]}}continue}h.filters.push(_)}}const w=await C("daily_question_submissions",h);return Be(w.rows||[],w.total??0,i,_=>{const y=Array.isArray(_.users)?_.users[0]:_.users;return{..._,submitter_name:je(y)}})}async function Ve(e){const{TableEngineRequest:i}=await Ee(()=>import("./buildSupabaseQuery-cbaa4453.js"),["assets/buildSupabaseQuery-cbaa4453.js","assets/index-f44a958f.js","assets/index-f80d3475.css"]),o=ie({...e});return!o.sort&&!o.order&&(o.order="-publish_date"),i(o,"daily_questions")}async function se(e){var u,d;return(((d=(u=(await C("daily_questions",{filters:[{field:"publish_date",op:"eq",value:e}],order:"-sort_order",limit:1,page:1,select:["sort_order"]})).rows)==null?void 0:u[0])==null?void 0:d.sort_order)??-1)+1}async function Je(e){const i=e.sort_order??await se(e.publish_date);let o;try{o=await Q("daily_questions",{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})}catch(u){j(u)}return e.submission_id&&e.designer_user_id&&(await N("daily_question_submissions",e.submission_id,{status:"published"}),await Re.post("/admin/rpc/dq_award_submission_reward",{p_user_id:e.designer_user_id})),o}async function Ke(e){const i=e.sort_order??await se(e.publish_date);try{return await Q("daily_questions",{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})}catch(o){j(o)}}async function We(e,i){try{const o=await N("daily_questions",e,{...i,updated_at:new Date().toISOString()});return Array.isArray(o)?o:[o]}catch(o){j(o)}}async function ze(e){await Oe("daily_questions",e)}async function Ge(e){await N("daily_question_submissions",e,{status:"rejected"})}function Xe(e,i){const o=e.trim(),u=i.trim();return`${o} ${u}؟`}function He(e,i){const o=e.trim();return i.find(u=>o.startsWith(u.trim()))}const Ye={class:"gap-2 flex justify-center"},Ze=s("span",null,"انتشار",-1),et=s("span",null,"رد",-1),tt={class:"flex justify-between items-center mb-4"},it=s("h2",null,"سوالات منتشر شده",-1),st={class:"gap-2 flex justify-center"},nt=s("span",null,"ویرایش",-1),ot=s("span",null,"حذف",-1),at={class:"p-4 border rounded-lg bg-gray-50"},rt={class:"flex justify-between items-center mb-3"},lt=s("h3",{class:"font-bold"},"تنظیمات سوال روز",-1),ut={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4"},dt=s("div",{class:"mb-1 text-sm text-gray-600"},"امتیاز پاسخ صحیح",-1),_t=s("div",{class:"mb-1 text-sm text-gray-600"},"امتیاز اضافه اشتراک",-1),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={class:"sm:col-span-2"},vt=s("div",{class:"mb-1 text-sm text-gray-600"},"گزینه‌های منبع (با کاما جدا کنید)",-1),ft={class:"space-y-4"},bt=s("div",{class:"mb-1 text-sm text-gray-600"},"متن سوال",-1),xt={class:"text-sm text-gray-700 flex items-center flex-wrap gap-1"},gt=s("span",null,"؟",-1),yt={class:"grid grid-cols-2 gap-4"},ht=s("div",{class:"mb-1 text-sm text-gray-600"},"متن گزینه ۱",-1),wt=s("div",{class:"mb-1 text-sm text-gray-600"},"متن گزینه ۲",-1),St={class:"grid grid-cols-2 gap-4"},Tt=s("div",{class:"mb-1 text-sm text-gray-600"},"گزینه صحیح",-1),It=s("div",{class:"mb-1 text-sm text-gray-600"},"تاریخ انتشار",-1),kt=s("div",{class:"mb-1 text-sm text-gray-600"},"ترتیب نمایش در همان روز (اختیاری)",-1),qt=s("div",{class:"text-xs text-gray-500 mt-1"},"می‌توانید چند سوال برای یک تاریخ منتشر کنید.",-1),Et={key:0},Rt=s("div",{class:"mb-1 text-sm text-gray-600"},"طراح سوال",-1),ki=Pe({__name:"index",setup(e){const i=Y,o=Y.TabPane,u=ee,d=ee.Option;function g(t){return t?t.replace(/-/g,"/"):""}function h(t){return t?t.replace(/\//g,"-"):""}const w=f("submissions"),_=f(!1),y=f(!1),B=f(!1),q=f(!1),E=f(null),S=f(!1),[ne,D]=K(),[oe,F]=K();P(w,async t=>{await Ue(),t==="submissions"?D():t==="published"&&F()});const m=f({base_points:10,subscription_bonus:5,submission_reward:20,template_prefix:"کدوم رو ترجیح میدی از",template_sources:[]}),R=f("");P(R,t=>{m.value.template_sources=t.split(",").map(n=>n.trim()).filter(Boolean)});const ae=W(()=>m.value.template_sources.map(t=>({label:t,value:t}))),l=f({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}),T=f(""),I=f("");P(T,t=>{l.value.publish_date=h(t||"")}),P(I,t=>{const n=t.trim();l.value.sort_order=n===""?void 0:Number(n)});const re=W(()=>q.value?"ویرایش سوال":S.value?"انتشار سوال کاربر":"افزودن سوال جدید"),le={columns:De,api:Le,defaultPageLimit:20},ue={columns:Fe,api:Ve,defaultPageLimit:20};function M(){l.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},T.value="",I.value="",q.value=!1,E.value=null,S.value=!1}function de(){M(),_.value=!0}function _e(t){M(),S.value=!0,l.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},_.value=!0}function ce(t){q.value=!0,E.value=t.id,S.value=!1,l.value={template_source:He(t.question_text,m.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},T.value=g(t.publish_date),I.value=t.sort_order!=null?String(t.sort_order):"",_.value=!0}function L(){_.value=!1,M()}async function me(){if(!l.value.template_source){p.warning("لطفاً منبع سوال را انتخاب کنید");return}if(l.value.question_text=Xe(l.value.template_source,m.value.template_prefix),!l.value.option1_text.trim()||!l.value.option2_text.trim()){p.warning("هر دو گزینه را وارد کنید");return}if(!l.value.correct_option){p.warning("لطفاً گزینه صحیح را انتخاب کنید");return}if(!l.value.publish_date){p.warning("تاریخ انتشار را انتخاب کنید");return}y.value=!0;try{q.value&&E.value?(await We(E.value,l.value),p.success("سوال با موفقیت ویرایش شد")):S.value?(await Je(l.value),p.success("سوال کاربر با موفقیت منتشر شد"),D()):(await Ke(l.value),p.success("سوال با موفقیت اضافه شد")),F(),L()}catch(t){p.error(te(t))}finally{y.value=!1}}function pe(t){Z.confirm({title:"حذف سوال",content:"آیا از حذف این سوال مطمئن هستید؟",okText:"بله",cancelText:"خیر",onOk:async()=>{try{await ze(t.id),p.success("سوال حذف شد"),F()}catch(n){p.error((n==null?void 0:n.message)||"خطا در حذف")}}})}function ve(t){Z.confirm({title:"رد سوال",content:"آیا از رد این سوال مطمئن هستید؟",okText:"بله",cancelText:"خیر",onOk:async()=>{try{await Ge(t.id),p.success("سوال رد شد"),D()}catch(n){p.error((n==null?void 0:n.message)||"خطا در رد سوال")}}})}async function fe(){try{const t=await $e();m.value=t,R.value=t.template_sources.join(", ")}catch(t){p.error((t==null?void 0:t.message)||"خطا در بارگذاری تنظیمات")}}async function be(){B.value=!0;try{await Qe(m.value),p.success("تنظیمات ذخیره شد")}catch(t){p.error((t==null?void 0:t.message)||"خطا در ذخیره تنظیمات")}finally{B.value=!1}}return Ae(fe),(t,n)=>{const V=Te,J=Se,x=we,xe=he,ge=ye;return z(),G("div",null,[r(ge,null,{default:c(()=>[r(v(i),{activeKey:w.value,"onUpdate:activeKey":n[5]||(n[5]=a=>w.value=a)},{default:c(()=>[r(v(o),{key:"submissions",tab:"سوالات کاربران"},{default:c(()=>[r(V,X(le,{onRegister:v(ne)}),{action:c(({record:a})=>[s("div",Ye,[r(v(A),{class:"cursor-pointer"},{title:c(()=>[Ze]),default:c(()=>[r(O,{icon:"vuesax-linear:tick-circle",color:"#16A34A",onClick:$=>_e(a)},null,8,["onClick"])]),_:2},1024),r(v(A),{class:"cursor-pointer"},{title:c(()=>[et]),default:c(()=>[r(O,{icon:"vuesax-linear:close-circle",color:"#DC2626",onClick:$=>ve(a)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"])]),_:1}),r(v(o),{key:"published",tab:"سوالات روز"},{default:c(()=>[s("div",tt,[it,r(J,{type:"primary",onClick:de},{default:c(()=>[U("افزودن سوال")]),_:1})]),r(V,X(ue,{onRegister:v(oe)}),{action:c(({record:a})=>[s("div",st,[r(v(A),{class:"cursor-pointer"},{title:c(()=>[nt]),default:c(()=>[r(O,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:$=>ce(a)},null,8,["onClick"])]),_:2},1024),r(v(A),{class:"cursor-pointer"},{title:c(()=>[ot]),default:c(()=>[r(O,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:$=>pe(a)},null,8,["onClick"])]),_:2},1024)])]),_:1},16,["onRegister"])]),_:1}),r(v(o),{key:"settings",tab:"تنظیمات"},{default:c(()=>[s("div",at,[s("div",rt,[lt,r(J,{type:"primary",size:"small",loading:B.value,onClick:be},{default:c(()=>[U(" ذخیره تنظیمات ")]),_:1},8,["loading"])]),s("div",ut,[s("div",null,[dt,r(x,{value:m.value.base_points,"onUpdate:value":n[0]||(n[0]=a=>m.value.base_points=a),type:"number"},null,8,["value"])]),s("div",null,[_t,r(x,{value:m.value.subscription_bonus,"onUpdate:value":n[1]||(n[1]=a=>m.value.subscription_bonus=a),type:"number"},null,8,["value"])]),s("div",null,[ct,r(x,{value:m.value.submission_reward,"onUpdate:value":n[2]||(n[2]=a=>m.value.submission_reward=a),type:"number"},null,8,["value"])]),s("div",null,[mt,r(x,{value:m.value.template_prefix,"onUpdate:value":n[3]||(n[3]=a=>m.value.template_prefix=a),placeholder:"کدوم رو ترجیح میدی از"},null,8,["value"])]),s("div",pt,[vt,r(x,{value:R.value,"onUpdate:value":n[4]||(n[4]=a=>R.value=a),placeholder:"علی, رضا, سارا, مریم"},null,8,["value"])])])])]),_:1})]),_:1},8,["activeKey"]),r(xe,{visible:_.value,"onUpdate:visible":n[13]||(n[13]=a=>_.value=a),title:re.value,onOk:me,onCancel:L,width:"70%",confirmLoading:y.value},{default:c(()=>[s("div",ft,[s("div",null,[bt,s("div",xt,[r(v(u),{value:l.value.template_source,"onUpdate:value":n[6]||(n[6]=a=>l.value.template_source=a),options:ae.value,placeholder:"انتخاب منبع",class:"min-w-[120px]"},null,8,["value","options"]),s("span",null,Ce(m.value.template_prefix),1),gt])]),s("div",yt,[s("div",null,[ht,r(x,{value:l.value.option1_text,"onUpdate:value":n[7]||(n[7]=a=>l.value.option1_text=a),placeholder:"گزینه ۱"},null,8,["value"])]),s("div",null,[wt,r(x,{value:l.value.option2_text,"onUpdate:value":n[8]||(n[8]=a=>l.value.option2_text=a),placeholder:"گزینه ۲"},null,8,["value"])])]),s("div",St,[s("div",null,[Tt,r(v(u),{value:l.value.correct_option,"onUpdate:value":n[9]||(n[9]=a=>l.value.correct_option=a),class:"w-full",placeholder:"انتخاب گزینه صحیح","allow-clear":""},{default:c(()=>[r(v(d),{value:1},{default:c(()=>[U("گزینه ۱")]),_:1}),r(v(d),{value:2},{default:c(()=>[U("گزینه ۲")]),_:1})]),_:1},8,["value"])]),s("div",null,[It,r(Ie,{value:T.value,"onUpdate:value":n[10]||(n[10]=a=>T.value=a)},null,8,["value"])])]),s("div",null,[kt,r(x,{value:I.value,"onUpdate:value":n[11]||(n[11]=a=>I.value=a),type:"number",placeholder:"خالی = آخر لیست"},null,8,["value"]),qt]),l.value.designer_user_id&&l.value.designer_name?(z(),G("div",Et,[Rt,r(x,{value:l.value.designer_name,"onUpdate:value":n[12]||(n[12]=a=>l.value.designer_name=a),disabled:""},null,8,["value"])])):Ne("",!0)])]),_:1},8,["visible","title","confirmLoading"])]),_:1})])}}});export{ki as default};