2 lines
19 KiB
JavaScript
2 lines
19 KiB
JavaScript
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};
|