2 lines
24 KiB
JavaScript
2 lines
24 KiB
JavaScript
import{I as J,d as Me,g as q,Q as ee,x as Le,_ as re,X as ne,o as W,c as E,b,w as D,a,e as se,G as ue,j as R,t as K,i as Ie,k as O,z as ce,D as L,H as X}from"./index-69112d2d.js";import{_ as Ne}from"./BasicMainCard-116dd373.js";import{M as Ae,_ as Ue}from"./BasicModal.vue_vue_type_style_index_0_lang-0138fcce.js";import{_ as Be}from"./BasicInput.vue_vue_type_style_index_0_lang-24c81742.js";import{d as te,_ as Ve,l as Pe}from"./index-65f4ae30.js";import{_ as Fe}from"./button.vue_vue_type_style_index_0_lang-cb9bab68.js";import{I as j}from"./Icon-14389e7e.js";import{_ as de}from"./BasicSelect.vue_vue_type_style_index_0_lang-9b38459a.js";import{u as me}from"./useBaseTable-3aeb2499.js";import{t as he}from"./useDataTime-9dd670d7.js";import{S as _e}from"./index-fe404104.js";import{D as Re}from"./dayjs-38467f9e.js";import{T as Z}from"./styleChecker-3dd17850.js";import{U as ve}from"./index-bb4bae6e.js";import"./_plugin-vue_export-helper-58457e60.js";import"./index-a892ffea.js";import"./index-d31f2800.js";import"./useState-508680d6.js";import"./vnode-48e303b0.js";import"./Col-3b3cdac3.js";import"./index-c567b779.js";import"./usePrice-7afab779.js";import"./index-3c2c722d.js";const ze=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:c=>c.record.index+1},{title:"عنوان",dataIndex:"title",key:"title"},{title:"زیرعنوان",dataIndex:"sub_title",key:"sub_title"},{title:"کتاب مرتبط",dataIndex:"book_id",key:"book_id",align:"center",customRender:c=>{const o=c.record.book_title,h=c.record.book_id;return o||(h?`کتاب #${h}`:"-")}},{title:"زمان",dataIndex:"time",key:"time",customRender:c=>{const o=c.record.time||{minutes:0,seconds:0},h=Number(o.minutes||0),g=Number(o.seconds||0),U=k=>String(k).padStart(2,"0");return`${U(h)}:${U(g)}`}},{title:"صوت",dataIndex:"src",key:"src",customRender:c=>c.record.src?"دارد":"-"},{title:"زمان ایجاد",dataIndex:"created_at",key:"created_at",customRender:c=>he(c.record.created_at)},{title:"عملیات",dataIndex:"action",key:"action",slot:"action",filterable:!1,align:"center"}],We=[{title:"ردیف",dataIndex:"id",key:"id",filterable:!1,width:70,align:"center",customRender:c=>c.record.index+1},{title:"نام کاربر",dataIndex:"user_name",key:"user_name",filterable:!0,filterField:"user_name"},{title:"شماره همراه",dataIndex:"user_phone",key:"user_phone",filterable:!0,filterField:"user_phone"},{title:"تاریخ بازدید",dataIndex:"viewed_at",key:"viewed_at",filterable:!0,filterField:"viewed_at",customRender:c=>he(c.record.viewed_at)}];async function Ye(c){const{data:o,error:h}=await J.from("storys").insert([{title:c.title,sub_title:c.sub_title,cover:c.cover,src:c.src,time:c.time,book_id:c.book_id||null,show_time:c.show_time||null}]).select();if(h)throw h;return o}async function fe(c,o){const{data:h,error:g}=await J.from("storys").update({title:o.title,sub_title:o.sub_title,cover:o.cover,src:o.src,time:o.time,book_id:o.book_id||null,show_time:o.show_time||null}).eq("id",c).select();if(g)throw g;return h}async function Ee(c,o){const{data:h,error:g}=await J.from("storys").update({show:o}).eq("id",c).select();if(g)throw g;return h}async function He(c){const{error:o}=await J.from("storys").delete().eq("id",c);if(o)throw o}async function Oe(c){try{const{limit:o,filters:h,page:g,sort:U,order:k,search:I}=c;let d=J.from("storys").select("*, books!book_id(id, title, sub_title, cover)",{count:"exact"});if(I&&I.trim()){const r=`%${I.trim()}%`;d=d.or(`title.ilike.${r},sub_title.ilike.${r}`)}if(h&&Array.isArray(h)&&h.forEach(r=>{const{field:x,op:V,value:T,hidden:y}=r;if(!y)switch(V){case"eq":d=d.eq(x,T);break;case"neq":d=d.neq(x,T);break;case"gt":d=d.gt(x,T);break;case"lt":d=d.lt(x,T);break;case"gte":d=d.gte(x,T);break;case"lte":d=d.lte(x,T);break;case"has":d=d.ilike(x,`%${T}%`);break;case"like":d=d.like(x,`%${T}%`);break}}),U&&U.key){const r=U.order==="asc";d=d.order(U.key,{ascending:r})}else if(k){const r=!k.startsWith("-"),x=k.replace(/^[-+]/,"");d=d.order(x,{ascending:r})}else d=d.order("id",{ascending:!1});if(o&&g){const r=(g-1)*o,x=r+o-1;d=d.range(r,x)}const{data:n,error:N,count:B}=await d;if(N)return console.error("[getStorysTable] Supabase query error:",N),{query:{...c,limit:o||10,page:g||1,total:0},rows:[]};if(!n||n.length===0)return{query:{...c,limit:o||10,page:g||1,total:0},rows:[]};const p=g||1,_=o||20,C=(p-1)*_,z=n.map((r,x)=>{const T=(Array.isArray(r.books)?r.books[0]:r.books)||{};return{...r,id:r.id,title:r.title??"",sub_title:r.sub_title??"",cover:r.cover??null,src:r.src??null,time:r.time??{minutes:0,seconds:0},book_id:r.book_id??null,book_title:T.title||null,book_sub_title:T.sub_title||null,book_cover:T.cover||null,created_at:r.created_at??"",show:r.show!==void 0?r.show:!0,index:C+x}});return{query:{...c,limit:_,page:p,total:B||0},rows:z}}catch(o){throw console.error("[getStorysTable] Error:",o),o}}async function je(c){try{const{data:o,error:h}=await J.from("user_views").select("*, users!user_id(id, first_name, last_name, phone, name, email, username)").eq("item_id",c).order("viewed_at",{ascending:!1});if(h)throw console.error("[getStoryViews] Error fetching views:",h),h;const g=(o==null?void 0:o.length)||0,k=new Set((o==null?void 0:o.map(n=>n.user_id).filter(Boolean))||[]).size,I=new Map;(o||[]).forEach(n=>{const N=n.user_id;if(N&&!I.has(N)){const p=(Array.isArray(n.users)?n.users[0]:n.users)||{};let _="نامشخص";p&&Object.keys(p).length>0&&(p.name?_=p.name:p.first_name||p.last_name?_=`${p.first_name||""} ${p.last_name||""}`.trim():p.phone?_=p.phone:p.email?_=p.email:p.username&&(_=p.username)),I.set(N,{id:n.id,user_id:n.user_id,user_name:_,user_phone:(p==null?void 0:p.phone)||"",user_email:(p==null?void 0:p.email)||"",viewed_at:n.viewed_at||""})}});const d=Array.from(I.values());return{total_views:g,unique_viewers:k,viewers:d}}catch(o){throw console.error("[getStoryViews] Error:",o),o}}async function pe(c,o){try{const{limit:h,filters:g,page:U,sort:k,order:I,search:d}=c;let n=J.from("user_views").select("*, users!user_id(id, first_name, last_name, phone, name, email, username)",{count:"exact"}).eq("item_id",o);if(g&&Array.isArray(g)&&g.forEach(_=>{const{field:C,op:z,value:r,hidden:x}=_;if(!(x||!["id","user_id","item_id","viewed_at"].includes(C)))switch(z){case"eq":n=n.eq(C,r);break;case"neq":n=n.neq(C,r);break;case"gt":n=n.gt(C,r);break;case"lt":n=n.lt(C,r);break;case"gte":n=n.gte(C,r);break;case"lte":n=n.lte(C,r);break;case"has":n=n.ilike(C,`%${r}%`);break;case"like":n=n.like(C,`%${r}%`);break}}),k&&k.key){const _=k.order==="asc";["id","user_id","item_id","viewed_at"].includes(k.key)&&(n=n.order(k.key,{ascending:_}))}else if(I){const _=!I.startsWith("-"),C=I.replace(/^[-+]/,"");["id","user_id","item_id","viewed_at"].includes(C)&&(n=n.order(C,{ascending:_}))}else n=n.order("viewed_at",{ascending:!1});const{data:N,error:B,count:p}=await n;if(B)return console.error("[getStoryViewersTable] Supabase query error:",B),{query:{...c,limit:h||10,page:U||1,total:0},rows:[]};if(!N||N.length===0)return{query:{...c,limit:h||10,page:U||1,total:0},rows:[]};try{let _=N.map((y,S)=>{const m=(Array.isArray(y.users)?y.users[0]:y.users)||{};let l="نامشخص";return m&&Object.keys(m).length>0&&(m.name?l=m.name:m.first_name||m.last_name?l=`${m.first_name||""} ${m.last_name||""}`.trim():m.phone?l=m.phone:m.email?l=m.email:m.username&&(l=m.username)),{id:y.id,user_id:y.user_id,user_name:l,user_phone:(m==null?void 0:m.phone)||"",user_email:(m==null?void 0:m.email)||"",viewed_at:y.viewed_at??"",index:S,...y}});if(d&&d.trim()){const y=d.toLowerCase();_=_.filter(S=>S.user_name&&S.user_name.toLowerCase().includes(y)||S.user_phone&&S.user_phone.toLowerCase().includes(y)||S.viewed_at&&S.viewed_at.toLowerCase().includes(y))}if(g&&Array.isArray(g)&&g.length>0){const y=g.filter(S=>!S.field||S.hidden?!1:["user_name","user_phone","viewed_at","id","user_id"].includes(S.field));y.length>0&&(_=_.filter(S=>y.every(F=>{const m=S[F.field],l=F.value;if(l==null||l==="")return!0;switch(F.op){case"eq":return String(m)===String(l);case"neq":return String(m)!==String(l);case"gt":return Number(m)>Number(l);case"gte":return Number(m)>=Number(l);case"lt":return Number(m)<Number(l);case"lte":return Number(m)<=Number(l);case"has":case"like":return String(m||"").toLowerCase().includes(String(l).toLowerCase());case"sw":return String(m||"").toLowerCase().startsWith(String(l).toLowerCase());case"ew":return String(m||"").toLowerCase().endsWith(String(l).toLowerCase());default:return!0}})))}!k&&!I?_.sort((y,S)=>{const F=y.viewed_at?new Date(y.viewed_at).getTime():0;return(S.viewed_at?new Date(S.viewed_at).getTime():0)-F}):k&&k.key&&_.sort((y,S)=>{const F=y[k.key],m=S[k.key],l=k.order==="asc";return F<m?l?-1:1:F>m?l?1:-1:0});const C=U||1,z=h||20,r=(C-1)*z,x=r+z,T=_.slice(r,x).map((y,S)=>({...y,index:r+S}));return{query:{...c,limit:h||10,page:U||1,total:_.length},rows:T}}catch(_){console.log("[getStoryViewersTable] normalize error:",_)}return{query:{...c,limit:h||10,page:U||1,total:0},rows:[]}}catch(h){throw console.error("[getStoryViewersTable] Error:",h),h}}const Je={class:"flex justify-between items-center mb-4"},Xe=a("h2",null,"قصه ها",-1),Ge={class:"gap-2 flex justify-center"},Qe=a("span",null,"بازدیدها",-1),Ke=a("span",null,"حذف",-1),Ze=a("span",null,"ویرایش",-1),et=a("span",null,"مرتبط کردن کتاب",-1),tt={class:"space-y-4 relative"},st={key:0,class:"absolute inset-0 bg-white/60 z-10 flex items-center justify-center"},at=a("div",{class:"mb-1 text-sm text-gray-600"},"عنوان",-1),lt=a("div",{class:"mb-1 text-sm text-gray-600"},"زیرعنوان",-1),it=a("div",{class:"mb-1 text-sm text-gray-600"},"کتاب مرتبط",-1),ot=a("div",{class:"mb-1 text-sm text-gray-600"},[se(" زمان انتشار "),a("span",{class:"text-xs text-gray-500"},"(در صورت خالی گذاشتن این فیلد زمان حال ثبت می شود)")],-1),rt={class:"flex gap-4"},nt={class:"flex-1"},ut=a("div",{class:"mb-1 text-sm text-gray-600"},"زمان",-1),ct={class:"space-y-2"},dt=a("div",{class:"mb-1 text-xs text-gray-500"},"دقیقه",-1),mt=a("div",{class:"mb-1 text-xs text-gray-500"},"ثانیه",-1),_t={class:"flex-1 flex justify-center gap-4"},vt=a("div",{class:"mb-1 text-sm text-gray-600"},"آپلود تصویر کاور",-1),ft={key:0},pt=a("div",null,"آپلود کاور",-1),ht={key:0,class:"mt-1"},bt={class:"h-2 rounded bg-gray-200 overflow-hidden"},gt={class:"text-xs text-gray-700 font-semibold text-center mt-1"},yt=a("div",{class:"mb-1 text-sm text-gray-600"},"آپلود صوت (src)",-1),wt={key:0},kt=a("div",null,"آپلود صوت",-1),xt={key:0,class:"text-xs text-gray-500 mt-1 text-center"},St={class:"h-2 rounded bg-gray-200 overflow-hidden"},Ct={class:"text-xs text-gray-700 font-semibold text-center mt-1"},$t={class:"space-y-4"},qt=a("div",{class:"mb-1 text-sm text-gray-600"},"کتاب مرتبط",-1),Dt={class:"flex justify-end"},Tt={key:0,class:"space-y-4"},Mt={class:"grid grid-cols-2 gap-4"},Lt={class:"bg-blue-50 p-4 rounded-lg"},It=a("div",{class:"text-sm text-gray-600 mb-1"},"تعداد بازدید",-1),Nt={class:"text-2xl font-bold text-blue-600"},At={class:"bg-purple-50 p-4 rounded-lg"},Ut=a("div",{class:"text-sm text-gray-600 mb-1"},"تعداد بازدیدکننده",-1),Bt={class:"text-2xl font-bold text-purple-600"},Vt=a("div",{class:"text-sm font-semibold text-gray-700 mb-2"},"لیست بازدیدکنندهها",-1),Pt={key:0},Ft={key:1,class:"text-center py-8 text-gray-500"},Rt={key:1,class:"flex justify-center items-center py-8"},cs=Me({__name:"index",setup(c){const o=Re,[h,g]=me(),U=q({columns:ze,api:Oe,defaultPageLimit:20}),k=q(!1),I=q(!1),d=q(null),n=q([]),N=q([]),B=q(0),p=q(0),_=q(0),C=q([]),z=q(!1),r=q(null),x=q(!1),V=q(null),T=q(!1),y=q(null),[S,F]=me(),m=q({columns:We,api:e=>pe(e,y.value),defaultPageLimit:20}),l=q({title:"",sub_title:"",cover:null,src:null,time:{minutes:0,seconds:0},book_id:null,show_time:null}),G=q({book_id:null}),H=q(null);ee(()=>l.value.show_time,e=>{e?H.value=te(e):H.value=null},{immediate:!0}),ee(H,e=>{e?l.value.show_time=e.format("YYYY-MM-DD HH:mm:ss"):l.value.show_time=null});function be(){n.value=[],N.value=[],I.value=!1,d.value=null,l.value={title:"",sub_title:"",cover:null,src:null,time:{minutes:0,seconds:0},book_id:null,show_time:null},H.value=null,k.value=!0}function ae(){k.value=!1}function ge(e){return e.type.startsWith("audio/")?e.size/1024/1024<61?!0:(L.error("حجم فایل باید کمتر از 60MB باشد"),!1):(L.error("فقط فایلهای صوتی مجاز است"),!1)}async function ye(e){const{file:t,onSuccess:f,onError:u,onProgress:w}=e,P=new FormData;P.append("file",t);const Y=`${X}/upload/machartaa-audio`;p.value=0,B.value++,await new Promise((i,A)=>{const v=new XMLHttpRequest;v.open("POST",Y),v.setRequestHeader("Authorization",`Bearer ${localStorage.getItem("tamin_token")||""}`),v.timeout=15*60*1e3,v.upload.onprogress=s=>{if(s.lengthComputable){const $=Math.round(s.loaded/s.total*100);p.value=$,w==null||w({percent:$})}},v.onload=()=>{if(p.value=100,v.status>=200&&v.status<300)try{const s=JSON.parse(v.responseText||"{}"),$=s.full_src||s.url||s.src||s.path||s.data&&(s.data.full_src||s.data.url||s.data.src||s.data.path)||"";let M=$;$!=null&&$.startsWith("http")&&(M=$.replace(/^https?:\/\/[^\/]+/,""));const Q=M.startsWith("http")?M:`${X}${M}`;l.value.src=M,n.value=Q?[{uid:`${Date.now()}`,name:"audio.mp3",status:"done",url:Q,response:{path:M}}]:[],f==null||f(s,v),L.success("صوت با موفقیت آپلود شد!"),i()}catch(s){u==null||u(s,v),A(s)}else if(v.status===413){const s=new Error("حجم فایل خیلی بزرگ است. لطفاً فایل کوچکتری انتخاب کنید.");L.error("حجم فایل خیلی بزرگ است. لطفاً فایل کوچکتری انتخاب کنید."),u==null||u(s,v),A(s)}else{let s="خطا در آپلود فایل";try{const M=JSON.parse(v.responseText||"{}");M.message?s=M.message:M.error&&(s=M.error)}catch{}const $=new Error(s);L.error(s),u==null||u($,v),A($)}},v.onerror=()=>{const s=new Error("خطا در آپلود صوت");u==null||u(s,v),A(s)},v.ontimeout=()=>{const s=new Error("آپلود timeout شد - فایل خیلی بزرگ است");u==null||u(s,v),A(s)},v.onloadend=()=>{B.value=Math.max(0,B.value-1),p.value=0},v.send(P)})}function le(e){return{width:`${Math.max(0,Math.min(100,e))}%`}}function we(e){return e.type.startsWith("image/")?e.size/1024/1024<5?!0:(L.error("حجم تصویر باید کمتر از 5MB باشد"),!1):(L.error("فقط فایلهای تصویری مجاز است"),!1)}async function ke(e){const{file:t,onSuccess:f,onError:u,onProgress:w}=e,P=new FormData;P.append("file",t);const Y=`${X}/upload/machartaa-img`;_.value=0,B.value++,await new Promise((i,A)=>{const v=new XMLHttpRequest;v.open("POST",Y),v.setRequestHeader("Authorization",`Bearer ${localStorage.getItem("token")||""}`),v.upload.onprogress=s=>{if(s.lengthComputable){const $=Math.round(s.loaded/s.total*100);_.value=$,w==null||w({percent:$})}},v.onload=()=>{if(_.value=100,v.status>=200&&v.status<300)try{const s=JSON.parse(v.responseText||"{}"),$=s.full_src||s.url||s.src||s.path||s.data&&(s.data.full_src||s.data.url||s.data.src||s.data.path)||"";let M=$;$!=null&&$.startsWith("http")&&(M=$.replace(/^https?:\/\/[^\/]+/,""));const Q=M.startsWith("http")?M:`${X}${M}`;l.value.cover=M,N.value=Q?[{uid:`${Date.now()}`,name:"cover.jpg",status:"done",url:Q,response:{path:M}}]:[],f==null||f(s,v),L.success("کاور با موفقیت آپلود شد!"),i()}catch(s){u==null||u(s,v),A(s)}else{const s=new Error("خطا در آپلود تصویر");u==null||u(s,v),A(s)}},v.onerror=()=>{const s=new Error("خطا در آپلود کاور");u==null||u(s,v),A(s)},v.onloadend=()=>{B.value=Math.max(0,B.value-1),_.value=0},v.send(P)})}async function xe(){var f,u,w,P,Y,i;if(!((f=l.value.title)!=null&&f.trim()))return;if(B.value>0){L.warning("لطفاً تا پایان آپلود صبر کنید");return}let e=l.value.show_time;(!e||e.trim()==="")&&(e=te().format("YYYY-MM-DD HH:mm:ss"));const t={title:l.value.title.trim(),sub_title:((u=l.value.sub_title)==null?void 0:u.trim())||"",cover:((w=l.value.cover)==null?void 0:w.trim())||null,src:((P=l.value.src)==null?void 0:P.trim())||null,time:{minutes:Number((Y=l.value.time)==null?void 0:Y.minutes)||0,seconds:Number((i=l.value.time)==null?void 0:i.seconds)||0},book_id:l.value.book_id||null,show_time:e};try{I.value&&d.value?(await fe(d.value,t),L.success("قصه با موفقیت ویرایش شد")):(await Ye(t),L.success("قصه با موفقیت افزوده شد")),ae(),await g()}catch(A){console.error("Error saving story:",A),L.error("خطا در ذخیره قصه: "+(A.message||"خطای ناشناخته"))}}function Se(e){I.value=!0,d.value=e.id;let t=e.cover||null;t&&t.startsWith("http")&&(t=t.replace(/^https?:\/\/[^\/]+/,""));let f=e.src||null;f&&f.startsWith("http")&&(f=f.replace(/^https?:\/\/[^\/]+/,"")),l.value={title:e.title||"",sub_title:e.sub_title||"",cover:t,src:f,time:e.time&&typeof e.time=="object"?{minutes:Number(e.time.minutes)||0,seconds:Number(e.time.seconds)||0}:{minutes:0,seconds:0},book_id:e.book_id||null,show_time:e.show_time||null},e.show_time?H.value=te(e.show_time):H.value=null;const u=f?f.startsWith("http")?f:`${X}${f}`:null,w=t?t.startsWith("http")?t:`${X}${t}`:null;n.value=u?[{uid:"-1",name:"audio.mp3",status:"done",url:u,response:{path:f}}]:[],N.value=w?[{uid:"-2",name:"cover.jpg",status:"done",url:w,response:{path:t}}]:[],k.value=!0}function Ce(e){r.value=e.id,G.value={book_id:e.book_id||null},z.value=!0}function ie(){z.value=!1,r.value=null,G.value={book_id:null}}async function $e(){if(r.value)try{const{supabase:e}=await re(()=>import("./index-69112d2d.js").then(Y=>Y.bL),["assets/index-69112d2d.js","assets/index-44d4db91.css"]),{data:t,error:f}=await e.from("storys").select("*").eq("id",r.value).single();if(f||!t){L.error("قصه یافت نشد");return}let u=t.cover||null;u&&u.startsWith("http")&&(u=u.replace(/^https?:\/\/[^\/]+/,""));let w=t.src||null;w&&w.startsWith("http")&&(w=w.replace(/^https?:\/\/[^\/]+/,""));const P={title:t.title||"",sub_title:t.sub_title||"",cover:u,src:w,time:t.time&&typeof t.time=="object"?{minutes:Number(t.time.minutes)||0,seconds:Number(t.time.seconds)||0}:{minutes:0,seconds:0},book_id:G.value.book_id||null};await fe(r.value,P),L.success("کتاب با موفقیت مرتبط شد"),ie(),await g()}catch(e){console.error("Error linking book:",e),L.error("خطا در مرتبط کردن کتاب: "+(e.message||"خطای ناشناخته"))}}Le(async()=>{try{const{getBooks:e}=await re(()=>import("./books-0fda219c.js"),["assets/books-0fda219c.js","assets/index-69112d2d.js","assets/index-44d4db91.css"]),t=await e();C.value=t||[]}catch(e){console.error("Error loading books:",e)}});async function qe(e){const f=(e==null?void 0:e.show)===!1,u=!!f;try{await Ee(e.id,u),L.success(f?"قصه با موفقیت نمایش داده شد":"قصه با موفقیت مخفی شد"),await g()}catch(w){console.error("Error toggling show:",w),L.error("خطا در تغییر وضعیت قصه: "+(w.message||"خطای ناشناخته"))}}function De(e){Ae.confirm({title:"حذف قصه",content:`آیا مطمئن هستید که میخواهید قصه "${e.title}" را حذف کنید؟`,okText:"بله، حذف کن",cancelText:"انصراف",okType:"danger",centered:!0,onOk:async()=>{await He(e.id),await g()}})}async function Te(e){y.value=e.id,x.value=!0,T.value=!0,V.value=null;try{const t=await je(e.id);V.value=t,m.value.api=f=>pe(f,e.id)}catch(t){console.error("Error loading views:",t),L.error("خطا در بارگذاری اطلاعات بازدیدها: "+(t.message||"خطای ناشناخته"))}finally{T.value=!1}}ee([x,V],async([e,t])=>{if(e&&t&&t.total_views>0){await ne(),await ne();try{await F()}catch{setTimeout(async()=>{try{await F()}catch(u){console.warn("Could not reload viewers table:",u)}},200)}}},{immediate:!1});function oe(){x.value=!1,V.value=null,y.value=null}return(e,t)=>{const f=Fe,u=Ve,w=Be,P=Ue,Y=Ne;return W(),E("div",null,[b(Y,null,{default:D(()=>[a("div",Je,[Xe,b(f,{type:"primary",onClick:be},{default:D(()=>[se("افزودن قصه")]),_:1})]),b(u,ue(U.value,{ref:"table",onRegister:R(h)}),{action:D(({record:i})=>[a("div",Ge,[b(R(Z),{class:"cursor-pointer"},{title:D(()=>[Qe]),default:D(()=>[b(j,{icon:"vuesax-linear:monitor",color:"#8B5CF6",onClick:A=>Te(i)},null,8,["onClick"])]),_:2},1024),b(R(Z),{class:"cursor-pointer"},{title:D(()=>[a("span",null,K((i==null?void 0:i.show)===!1?"نمایش دادن":"مخفی کردن"),1)]),default:D(()=>[b(j,{icon:(i==null?void 0:i.show)===!1?"vuesax-linear:eye":"vuesax-linear:eye-slash",color:(i==null?void 0:i.show)===!1?"#10B981":"#F59E0B",onClick:A=>qe(i)},null,8,["icon","color","onClick"])]),_:2},1024),b(R(Z),{class:"cursor-pointer"},{title:D(()=>[Ke]),default:D(()=>[b(j,{icon:"vuesax-linear:trash",color:"#DC2626",onClick:A=>De(i)},null,8,["onClick"])]),_:2},1024),b(R(Z),{class:"cursor-pointer"},{title:D(()=>[Ze]),default:D(()=>[b(j,{icon:"vuesax-linear:edit",color:"#1D4ED8",onClick:A=>Se(i)},null,8,["onClick"])]),_:2},1024),i!=null&&i.book_id?O("",!0):(W(),Ie(R(Z),{key:0,class:"cursor-pointer"},{title:D(()=>[et]),default:D(()=>[b(j,{icon:"vuesax-linear:book",color:"#217346",onClick:A=>Ce(i)},null,8,["onClick"])]),_:2},1024))])]),_:1},16,["onRegister"]),b(P,{visible:k.value,"onUpdate:visible":t[8]||(t[8]=i=>k.value=i),title:I.value?"ویرایش قصه":"افزودن قصه",onOk:xe,onCancel:ae,width:"80%",confirmLoading:B.value>0},{default:D(()=>[a("div",tt,[B.value>0?(W(),E("div",st,[b(R(_e),{size:"large"})])):O("",!0),a("div",null,[at,b(w,{value:l.value.title,"onUpdate:value":t[0]||(t[0]=i=>l.value.title=i),placeholder:"عنوان"},null,8,["value"])]),a("div",null,[lt,b(w,{value:l.value.sub_title,"onUpdate:value":t[1]||(t[1]=i=>l.value.sub_title=i),placeholder:"زیرعنوان"},null,8,["value"])]),a("div",null,[it,b(de,{value:l.value.book_id??void 0,"onUpdate:value":t[2]||(t[2]=i=>l.value.book_id=i??null),items:C.value,keyName:"id",valueName:"title",placeholder:"انتخاب کتاب",allowClear:!0},null,8,["value","items"])]),a("div",null,[ot,b(R(o),{value:H.value,"onUpdate:value":t[3]||(t[3]=i=>H.value=i),locale:R(Pe),"show-time":"",format:"YYYY-MM-DD HH:mm:ss","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:"انتخاب تاریخ و زمان انتشار",class:"w-full"},null,8,["value","locale"])]),a("div",rt,[a("div",nt,[ut,a("div",ct,[a("div",null,[dt,b(w,{value:l.value.time.minutes,"onUpdate:value":t[4]||(t[4]=i=>l.value.time.minutes=i),type:"number",placeholder:"0"},null,8,["value"])]),a("div",null,[mt,b(w,{value:l.value.time.seconds,"onUpdate:value":t[5]||(t[5]=i=>l.value.time.seconds=i),type:"number",placeholder:"0"},null,8,["value"])])])]),a("div",_t,[a("div",null,[vt,b(R(ve),{"file-list":N.value,"onUpdate:fileList":t[6]||(t[6]=i=>N.value=i),"before-upload":we,"custom-request":ke,accept:"image/*","max-count":1,"list-type":"picture-card"},{default:D(()=>[N.value.length<1?(W(),E("div",ft,[b(j,{icon:"vuesax-linear:image",class:"text-2xl mb-2"}),pt])):O("",!0)]),_:1},8,["file-list"]),_.value>0&&_.value<100?(W(),E("div",ht,[a("div",bt,[a("div",{class:"h-2 bg-blue-500 transition-all",style:ce(le(_.value))},null,4)]),a("div",gt,K(_.value)+"%",1)])):O("",!0)]),a("div",null,[yt,b(R(ve),{"file-list":n.value,"onUpdate:fileList":t[7]||(t[7]=i=>n.value=i),"before-upload":ge,"custom-request":ye,accept:"audio/*","max-count":1,"list-type":"picture-card"},{default:D(()=>[n.value.length<1?(W(),E("div",wt,[b(j,{icon:"vuesax-linear:music",class:"text-2xl mb-2"}),kt])):O("",!0)]),_:1},8,["file-list"]),p.value>0&&p.value<100?(W(),E("div",xt,[a("div",St,[a("div",{class:"h-2 bg-blue-500 transition-all",style:ce(le(p.value))},null,4)]),a("div",Ct,K(p.value)+"%",1)])):O("",!0)])])])])]),_:1},8,["visible","title","confirmLoading"]),b(P,{visible:z.value,"onUpdate:visible":t[10]||(t[10]=i=>z.value=i),title:"مرتبط کردن کتاب",onOk:$e,onCancel:ie,width:"500px"},{default:D(()=>[a("div",$t,[a("div",null,[qt,b(de,{value:G.value.book_id??void 0,"onUpdate:value":t[9]||(t[9]=i=>G.value.book_id=i??null),items:C.value,keyName:"id",valueName:"title",placeholder:"انتخاب کتاب",allowClear:!0},null,8,["value","items"])])])]),_:1},8,["visible"]),b(P,{visible:x.value,"onUpdate:visible":t[11]||(t[11]=i=>x.value=i),title:"اطلاعات بازدیدها",onCancel:oe,width:"800px",customFooter:!0,okText:""},{footer:D(()=>[a("div",Dt,[b(f,{onClick:oe},{default:D(()=>[se("بستن")]),_:1})])]),default:D(()=>[V.value?(W(),E("div",Tt,[a("div",Mt,[a("div",Lt,[It,a("div",Nt,K(V.value.total_views),1)]),a("div",At,[Ut,a("div",Bt,K(V.value.unique_viewers),1)])]),a("div",null,[Vt,V.value&&V.value.total_views>0?(W(),E("div",Pt,[b(u,ue(m.value,{onRegister:R(S)}),null,16,["onRegister"])])):(W(),E("div",Ft," هنوز بازدیدی ثبت نشده است "))])])):T.value?(W(),E("div",Rt,[b(R(_e),{size:"large"})])):O("",!0)]),_:1},8,["visible"])]),_:1})])}}});export{cs as default};
|