3 lines
16 KiB
JavaScript
3 lines
16 KiB
JavaScript
import{_ as _e}from"./BasicMainCard-ffb2dbb7.js";import{_ as ce}from"./BasicModal.vue_vue_type_style_index_0_lang-19f7e884.js";import{_ as de}from"./button.vue_vue_type_style_index_0_lang-573c8178.js";import{_ as pe}from"./BaseSwitch.vue_vue_type_script_setup_true_lang-9242d002.js";import{_ as ve}from"./BasicTextArea.vue_vue_type_style_index_0_lang-4cd303c4.js";import{_ as me}from"./BasicInput.vue_vue_type_style_index_0_lang-f42b6616.js";import{_ as fe,u as ge}from"./useBaseTable-b54f1011.js";import{I as ye}from"./Icon-51292ba8.js";import{t as he}from"./useDataTime-ba303e4c.js";import{_ as xe,W as z,I as J,d as be,i as d,h as we,j as ke,x as Se,o as p,c as v,e as o,w as m,l as u,b as t,K as Ie,f as x,t as _,n as R,F as G,q,G as w}from"./index-85b0a871.js";import{g as Ae}from"./convert-2ad76038.js";import{T as K}from"./index-bc0fc67e.js";import{S as Ce}from"./index-0bc12b2b.js";import{T as Te}from"./updateLocale-e1269d0e.js";import{a as A}from"./index-1e0c5a9f.js";import{T as Re}from"./isSymbol-f096d1f3.js";import{D as Ue}from"./index-f07edbcd.js";import"./Grid-d7acf630.js";import"./index-7c9a6ce2.js";import"./Col-2fd15786.js";import"./styleChecker-700d5c9b.js";import"./isPlainObject-3b96d88c.js";import"./vnode-67298ed6.js";import"./_plugin-vue_export-helper-7166b54f.js";import"./index-8e461858.js";import"./DialogWrap-31c1c17a.js";import"./shallowequal-f73ccac4.js";import"./omit-6e71f361.js";import"./pickAttrs-b5c2621e.js";import"./index-0ad3a6e0.js";import"./FormItemContext-c3e7c21a.js";import"./index-a4749a4e.js";import"./SearchOutlined-2119418f.js";import"./index-d729d8f3.js";import"./usePrice-bc935b83.js";import"./useState-dca0eb62.js";import"./useMemo-2d8f0e33.js";import"./lodash-a94f6ca6.js";import"./index-a4228ed0.js";import"./Badge-6e22b582.js";import"./isNumeric-3f69e2aa.js";import"./index-f833d7e1.js";import"./index-378e150b.js";import"./index-13a23e48.js";import"./index-4f2f7002.js";import"./css-aae66f86.js";import"./toArray-ede1f933.js";import"./useRefs-77023e0a.js";import"./_flatRest-11159c04.js";import"./isMobile-e2e89480.js";const N={new:"جدید",reviewing:"در حال بررسی",accepted:"پذیرفته",rejected:"رد شده",archived:"بایگانی"};async function Be(){return await z("local_guide_call_config",1)}async function Le(n){return await J("local_guide_call_config",1,{...n,updated_at:new Date().toISOString()})}async function Ee(n){const{TableEngineRequest:i}=await xe(()=>import("./buildSupabaseQuery-892fb39b.js"),["assets/buildSupabaseQuery-892fb39b.js","assets/index-85b0a871.js","assets/index-82ea5f16.css"]),g={...n};!g.sort&&!g.order&&(g.order="-created_at");const f=await i(g,"local_guide_call_submissions");try{if(Array.isArray(f==null?void 0:f.rows)){const y=g.page||1,b=g.limit||20,P=(y-1)*b,U=f.rows.map((c,B)=>({...c,photo_urls:Array.isArray(c.photo_urls)?c.photo_urls:[],tags:Array.isArray(c.tags)?c.tags:[],answers:c.answers&&typeof c.answers=="object"?c.answers:{},status_label:c.status==="submitted"?"ارسالشده":"پیشنویس",review_status_label:N[c.review_status]||c.review_status,index:P+B}));return{...f,rows:U}}}catch(y){console.error("[getLocalGuideCallSubmissionsTable]",y)}return f}async function Oe(n,i){return await J("local_guide_call_submissions",n,{...i,updated_at:new Date().toISOString()})}async function je(n){const i=await z("local_guide_call_submissions",n);return{...i,photo_urls:Array.isArray(i==null?void 0:i.photo_urls)?i.photo_urls:[],tags:Array.isArray(i==null?void 0:i.tags)?i.tags:[],answers:i!=null&&i.answers&&typeof i.answers=="object"?i.answers:{}}}const De=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:n=>n.record.index+1},{title:"نام",dataIndex:"full_name",key:"full_name"},{title:"موبایل",dataIndex:"phone",key:"phone"},{title:"استان",dataIndex:"province",key:"province"},{title:"شهر",dataIndex:"city",key:"city",filterable:!1},{title:"وضعیت",dataIndex:"status",key:"status",width:110,customRender:n=>n.record.status==="submitted"?"ارسالشده":"پیشنویس"},{title:"بررسی",dataIndex:"review_status",key:"review_status",width:130,customRender:n=>N[n.record.review_status]||n.record.review_status},{title:"تگها",dataIndex:"tags",key:"tags",filterable:!1,customRender:n=>{const i=Array.isArray(n.record.tags)?n.record.tags:[];return i.length?i.slice(0,3).join("، ")+(i.length>3?"…":""):"—"}},{title:"زمان ارسال",dataIndex:"submitted_at",key:"submitted_at",filterable:!1,customRender:n=>n.record.submitted_at?he(n.record.submitted_at):"—"},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],Ne={class:"mb-4 flex flex-wrap gap-3 items-end"},Pe=t("h2",{class:"m-0 flex-1"},"لیست فراخوان راهبر محلی",-1),$e=t("div",{class:"mb-1 text-xs text-gray-500"},"فیلتر استان",-1),Ve=t("div",{class:"mb-1 text-xs text-gray-500"},"وضعیت بررسی",-1),Fe=t("div",{class:"mb-1 text-xs text-gray-500"},"وضعیت فرم",-1),Ge=t("span",null,"جزئیات",-1),qe={class:"max-w-2xl space-y-4 py-2"},Ke=t("div",{class:"mb-1 text-sm text-gray-600"},"عنوان",-1),ze=t("div",{class:"mb-1 text-sm text-gray-600"},"متن مقدمه",-1),Je=t("div",{class:"mb-1 text-sm text-gray-600"},"یادداشت میزبان",-1),Me={class:"flex items-center gap-2"},We=t("span",null,"فرم باز است",-1),He={key:0,class:"space-y-4 max-h-[75vh] overflow-y-auto pe-1"},Qe={class:"flex flex-wrap gap-2 items-center justify-between"},Xe={class:"text-lg font-700"},Ye={class:"text-sm text-gray-500"},Ze={key:0},et={class:"grid grid-cols-1 md:grid-cols-2 gap-3"},tt=t("div",{class:"mb-1 text-sm text-gray-600"},"وضعیت بررسی",-1),at=t("div",{class:"mb-1 text-sm text-gray-600"},"تگها",-1),st=t("div",{class:"mb-1 text-sm text-gray-600"},"یادداشت ادمین",-1),lt={class:"space-y-2 text-sm"},it=t("h3",{class:"font-700 text-base"},"اطلاعات پایه",-1),ot=["href"],nt={key:1},rt=["href"],ut={key:2},_t={key:0},ct=["href"],dt={key:1,class:"flex flex-wrap gap-2"},pt=["href"],vt={class:"space-y-2 text-sm"},mt=t("h3",{class:"font-700 text-base"},"پاسخهای فرم",-1),ft={class:"text-gray-500 text-xs mb-0.5"},gt={class:"whitespace-pre-wrap"},va=be({__name:"index",setup(n){const i=K.TabPane,g=d("list"),f=d(),y=d(),b=d("submitted"),U=["آذربایجان شرقی","آذربایجان غربی","اردبیل","اصفهان","البرز","ایلام","بوشهر","تهران","چهارمحال و بختیاری","خراسان جنوبی","خراسان رضوی","خراسان شمالی","خوزستان","زنجان","سمنان","سیستان و بلوچستان","فارس","قزوین","قم","کردستان","کرمان","کرمانشاه","کهگیلویه و بویراحمد","گلستان","گیلان","لرستان","مازندران","مرکزی","هرمزگان","همدان","یزد"].map(e=>({label:e,value:e})),c=Object.entries(N).map(([e,a])=>({value:e,label:a})),B=[{value:"submitted",label:"ارسالشده"},{value:"draft",label:"پیشنویس"}],M=["خانواده دارای کودک","جلوی دوربین","راهنمای پشت صحنه","غذای خاص","طبیعت","صنعت محلی","کشاورزی","حیوانات","شخصیت خاص","دسترسی ویژه","مراسم فصلی","هنر","تاریخ","تجربه کودکپسند","تجربه ماجراجویانه","لوکیشن خاص","روستا"].map(e=>({label:e,value:e}));function W(){const e=[];return f.value&&e.push({field:"province",op:"eq",value:f.value}),y.value&&e.push({field:"review_status",op:"eq",value:y.value}),b.value&&e.push({field:"status",op:"eq",value:b.value}),e}const[H,Q]=ge(),X=d({columns:De,api:e=>Ee({...e,filters:[...e.filters||[],...W()]}),defaultPageLimit:20});function C(){Q()}const r=we({title:"",intro_text:"",host_note_text:"",is_open:!0}),L=d(!1);async function Y(){try{const e=await Be();r.title=e.title||"",r.intro_text=e.intro_text,r.host_note_text=e.host_note_text,r.is_open=e.is_open!==!1}catch(e){w.error((e==null?void 0:e.message)||"خطا در بارگذاری تنظیمات")}}async function Z(){L.value=!0;try{await Le({title:r.title,intro_text:r.intro_text,host_note_text:r.host_note_text,is_open:r.is_open}),w.success("تنظیمات ذخیره شد")}catch(e){w.error((e==null?void 0:e.message)||"خطا در ذخیره تنظیمات")}finally{L.value=!1}}const T=d(!1),E=d(!1),s=d(null),k=d("new"),S=d([]),I=d(""),O=d(!1);function ee(e){return e===!0?"بله":e===!1?"خیر":"—"}function $(e){return e?/^https?:\/\//i.test(e)?e:Ae(e):"#"}function te(e){return e==null||e===""?"—":Array.isArray(e)?e.length?typeof e[0]=="object"?e.map((a,h)=>(a==null?void 0:a.name)!=null?`${h+1}. ${a.name}: ${a.why||""}`:JSON.stringify(a)).join(`
|
|
`):e.filter(Boolean).join("، ")||"—":"—":typeof e=="object"?JSON.stringify(e,null,2):String(e)}const ae={family_origin:"اصالت خانوادگی",family_intro:"معرفی خانواده",children_ages:"سن فرزندان",family_members_present:"اعضای حاضر در برنامه",first_place:"اولین مکان",worth_places:"سه مکان ارزشمند",hidden_place:"مکان کمترشناخته",unknown_fact:"نکته کمتردانسته",surprise_idea:"ایده غافلگیری",hands_on_activity:"فعالیت تجربهای",experiences:"تجربههای پیشنهادی",local_skills:"مهارت محلی",local_skills_detail:"توضیح مهارت",famous_food:"غذای معروف",hidden_food:"غذای کمترشناخته",can_cook_with:"امکان پخت مشترک",cook_with_detail:"جزئیات پخت",knows_special_person:"فرد خاص",special_person_who:"چه کسی",special_person_trait:"ویژگی",special_person_relation:"ارتباط",can_arrange_meeting:"هماهنگی ملاقات",one_person_to_meet:"یک نفر معرفیشده",has_special_access:"دسترسی ویژه",special_access_detail:"توضیح دسترسی",can_coordinate_access:"هماهنگی فیلمبرداری",best_season:"بهترین فصل",has_annual_event:"مراسم سالانه",event_name:"نام مراسم",event_time:"زمان مراسم",event_detail:"توضیح مراسم",best_visit_time:"بهترین زمان سفر",family_three_words:"سه کلمه خانواده",family_traits:"صفات خانواده",funniest_person:"بامزهترین فرد",family_attractive:"جذابیت خانواده",had_camera_experience:"تجربه دوربین",area_knowledge:"آشنایی با مسیرها",has_vehicle:"وسیله نقلیه",desired_roles:"نقشهای مطلوب",free_note:"یادداشت آزاد"},se=ke(()=>{var a;const e=((a=s.value)==null?void 0:a.answers)||{};return Object.entries(ae).map(([h,j])=>({label:j,value:te(e[h])})).filter(h=>h.value!=="—")});async function le(e){T.value=!0,E.value=!0;try{s.value=await je(e.id),k.value=s.value.review_status||"new",S.value=[...s.value.tags||[]],I.value=s.value.admin_notes||""}catch(a){w.error((a==null?void 0:a.message)||"خطا در بارگذاری جزئیات"),T.value=!1}finally{E.value=!1}}async function ie(){if(s.value){O.value=!0;try{await Oe(s.value.id,{review_status:k.value,tags:S.value,admin_notes:I.value||null}),w.success("ذخیره شد"),s.value.review_status=k.value,s.value.tags=[...S.value],s.value.admin_notes=I.value,C()}catch(e){w.error((e==null?void 0:e.message)||"خطا در ذخیره")}finally{O.value=!1}}}return Se(()=>{Y()}),(e,a)=>{const h=fe,j=me,D=ve,oe=pe,V=de,ne=Ce,re=ce,ue=_e;return p(),v("div",null,[o(ue,null,{default:m(()=>[o(u(K),{activeKey:g.value,"onUpdate:activeKey":a[7]||(a[7]=l=>g.value=l)},{default:m(()=>[o(u(i),{key:"list",tab:"پاسخها"},{default:m(()=>[t("div",Ne,[Pe,t("div",null,[$e,o(u(A),{value:f.value,"onUpdate:value":a[0]||(a[0]=l=>f.value=l),"allow-clear":"","show-search":"",placeholder:"همه استانها",style:{"min-width":"180px"},options:u(U),onChange:C},null,8,["value","options"])]),t("div",null,[Ve,o(u(A),{value:y.value,"onUpdate:value":a[1]||(a[1]=l=>y.value=l),"allow-clear":"",placeholder:"همه",style:{"min-width":"160px"},options:u(c),onChange:C},null,8,["value","options"])]),t("div",null,[Fe,o(u(A),{value:b.value,"onUpdate:value":a[2]||(a[2]=l=>b.value=l),"allow-clear":"",placeholder:"همه",style:{"min-width":"140px"},options:B,onChange:C},null,8,["value"])])]),o(h,Ie(X.value,{onRegister:u(H)}),{action:m(({record:l})=>[o(u(Re),{class:"cursor-pointer"},{title:m(()=>[Ge]),default:m(()=>[o(ye,{icon:"vuesax-linear:eye",color:"#1D4ED8",onClick:F=>le(l)},null,8,["onClick"])]),_:2},1024)]),_:1},16,["onRegister"])]),_:1}),o(u(i),{key:"settings",tab:"تنظیمات فرم"},{default:m(()=>[t("div",qe,[t("div",null,[Ke,o(j,{value:r.title,"onUpdate:value":a[3]||(a[3]=l=>r.title=l),placeholder:"عنوان فراخوان"},null,8,["value"])]),t("div",null,[ze,o(D,{value:r.intro_text,"onUpdate:value":a[4]||(a[4]=l=>r.intro_text=l),rows:8},null,8,["value"])]),t("div",null,[Je,o(D,{value:r.host_note_text,"onUpdate:value":a[5]||(a[5]=l=>r.host_note_text=l),rows:3},null,8,["value"])]),t("div",Me,[o(oe,{value:r.is_open,"onUpdate:value":a[6]||(a[6]=l=>r.is_open=l)},null,8,["value"]),We]),o(V,{type:"primary",loading:L.value,onClick:Z},{default:m(()=>[x(" ذخیره تنظیمات ")]),_:1},8,["loading"])])]),_:1})]),_:1},8,["activeKey"]),o(re,{visible:T.value,"onUpdate:visible":a[11]||(a[11]=l=>T.value=l),title:"جزئیات پاسخ فراخوان",width:"920px",footer:null},{default:m(()=>[o(ne,{spinning:E.value},{default:m(()=>[s.value?(p(),v("div",He,[t("div",Qe,[t("div",null,[t("div",Xe,_(s.value.full_name||"—"),1),t("div",Ye,[x(_(s.value.province)+" / "+_(s.value.city)+" ",1),s.value.village?(p(),v("span",Ze," / "+_(s.value.village),1)):R("",!0),x(" · "+_(s.value.phone),1)])]),o(u(Te),null,{default:m(()=>[x(_(s.value.status==="submitted"?"ارسالشده":"پیشنویس"),1)]),_:1})]),t("div",et,[t("div",null,[tt,o(u(A),{value:k.value,"onUpdate:value":a[8]||(a[8]=l=>k.value=l),class:"w-full",options:u(c)},null,8,["value","options"])]),t("div",null,[at,o(u(A),{value:S.value,"onUpdate:value":a[9]||(a[9]=l=>S.value=l),mode:"tags",class:"w-full",options:u(M),placeholder:"افزودن تگ"},null,8,["value","options"])])]),t("div",null,[st,o(D,{value:I.value,"onUpdate:value":a[10]||(a[10]=l=>I.value=l),rows:3},null,8,["value"])]),o(V,{type:"primary",loading:O.value,onClick:ie},{default:m(()=>[x(" ذخیره وضعیت و تگها ")]),_:1},8,["loading"]),o(u(Ue)),t("section",lt,[it,t("div",null,"مدت سکونت: "+_(s.value.years_in_area||"—"),1),t("div",null,"تعداد خانواده: "+_(s.value.family_size??"—"),1),t("div",null,"فرزند زیر ۱۸: "+_(ee(s.value.has_children_under_18)),1),t("div",null,"دوربین: "+_(s.value.camera_comfort||"—"),1),t("div",null,"همراهی: "+_(s.value.availability||"—"),1),t("div",null,[x(" ویدئو: "),s.value.video_url?(p(),v("a",{key:0,href:$(s.value.video_url),target:"_blank",rel:"noopener"},"فایل",8,ot)):s.value.video_link?(p(),v("span",nt,[t("a",{href:s.value.video_link,target:"_blank",rel:"noopener"},_(s.value.video_link),9,rt)])):(p(),v("span",ut,"—"))]),s.value.social_link?(p(),v("div",_t,[x(" شبکه اجتماعی: "),t("a",{href:s.value.social_link,target:"_blank",rel:"noopener"},_(s.value.social_link),9,ct)])):R("",!0),(s.value.photo_urls||[]).length?(p(),v("div",dt,[(p(!0),v(G,null,q(s.value.photo_urls,(l,F)=>(p(),v("a",{key:l,href:$(l),target:"_blank",rel:"noopener",class:"text-blue-600"}," عکس "+_(F+1),9,pt))),128))])):R("",!0)]),t("section",vt,[mt,(p(!0),v(G,null,q(se.value,l=>(p(),v("div",{key:l.label,class:"border-b border-gray-100 py-2"},[t("div",ft,_(l.label),1),t("div",gt,_(l.value),1)]))),128))])])):R("",!0)]),_:1},8,["spinning"])]),_:1},8,["visible"])]),_:1})])}}});export{va as default};
|