PageSourceSearch

https://amorev.ru/_nuxt/BB42VeIo.js

js amorev.ru collected 2026-10-02 05:35:04 UTC 8,998 bytes, 1 lines download raw bytes

1import{k as N,C as $,g as l,d as e,i as I,V as n,f as p,aj as T,ad as A,ab as E,F,O as U,N as o,b as O,G as d,x as R}from"./Bo5NI7es.js";import{g as S,u as z,c as G,d as H,r as J,t as L}from"./BVJQRTkF.js";import"./C88Jc1zx.js";const q={class:"space-y-6"},K={class:"flex items-center justify-between"},P={key:0,class:"rounded-xl border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700 dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-200"},Q={key:1,class:"surface-card p-6"},W={class:"text-lg font-semibold text-slate-900 dark:text-slate-100"},X={class:"mt-4 grid gap-4 sm:grid-cols-2"},Y={class:"mt-4 flex items-center gap-2"},Z={key:0,class:"mt-4 rounded-lg border border-red-200 bg-red-50 px-3 py-2 text-sm text-red-700 dark:border-red-900/50 dark:bg-red-950/40 dark:text-red-200"},ee={class:"mt-5 flex justify-end gap-3"},te=["disabled"],se={key:0,class:"mr-1 inline-block h-3 w-3 animate-spin rounded-full border-2 border-white/30 border-t-white"},ae={key:2,class:"surface-card p-4"},le={class:"mt-1 max-h-40 overflow-auto rounded-lg bg-slate-100 p-2 text-xs dark:bg-slate-900"},de={class:"surface-card overflow-hidden"},re={key:0,class:"flex min-h-[200px] items-center justify-center"},oe={key:1,class:"px-6 py-12 text-center text-sm text-slate-500 dark:text-slate-400"},ne={key:2,class:"w-full"},ie={class:"divide-y divide-slate-200 dark:divide-slate-800"},ue={class:"whitespace-nowrap px-6 py-4 text-sm text-slate-500 dark:text-slate-400"},ce={class:"px-6 py-4 text-sm font-medium text-slate-900 dark:text-white"},xe={class:"whitespace-nowrap px-6 py-4 text-sm text-slate-600 dark:text-slate-300"},pe={class:"whitespace-nowrap px-6 py-4 text-sm text-slate-600 dark:text-slate-300"},ve={class:"whitespace-nowrap px-6 py-4 text-sm"},me={class:"whitespace-nowrap px-6 py-4 text-right text-sm space-x-3"},ke=["onClick"],be=["disabled","onClick"],he={key:0,class:"inline-block h-4 w-4 animate-spin rounded-full border-2 border-purple-300 border-t-purple-600"},fe={key:1},ye=["disabled","onClick"],ge={key:0,class:"inline-block h-4 w-4 animate-spin rounded-full border-2 border-emerald-300 border-t-emerald-600"},_e={key:1},we=["disabled","onClick"],Ce={key:0,class:"inline-block h-4 w-4 animate-spin rounded-full border-2 border-red-300 border-t-red-600"},Te={key:1},De=N({__name:"telegram-channels",setup(Ie){const g=o([]),_=o(!0),i=o(null),c=o(!1),v=o(null),r=o({botToken:"",channelId:"",isActive:!0}),u=o(null),x=o(!1),m=o(null),k=o(null),b=o(null),h=o(null),f=O(()=>v.value!==null),y=async()=>{_.value=!0,i.value=null;try{g.value=await S()}catch(a){i.value=a.response?.data?.message||"Не удалось загрузить каналы"}finally{_.value=!1}},w=()=>{r.value={botToken:"",channelId:"",isActive:!0},v.value=null,u.value=null,c.value=!1},V=a=>{v.value=a.id,r.value={botToken:"",channelId:a.channelId,isActive:a.isActive},u.value=null,c.value=!0},B=async()=>{if(u.value=null,!r.value.botToken||!r.value.channelId){u.value="Заполните bot token и channel id";return}x.value=!0;try{if(f.value){const a={channelId:r.value.channelId,isActive:r.value.isActive};r.value.botToken&&(a.botToken=r.value.botToken),await z(v.value,a)}else await G(r.value);w(),await y()}catch(a){u.value=a.response?.data?.message||(f.value?"Ошибка обновления":"Ошибка создания канала")}finally{x.value=!1}},D=async a=>{if(confirm("Удалить этот канал?")){m.value=a;try{await H(a),await y()}catch(t){i.value=t.response?.data?.message||"Ошибка удаления канала"}finally{m.value=null}}},j=async a=>{b.value=a;try{await J(a),await y()}catch(t){i.value=t.response?.data?.message||"Ошибка обновления канала"}finally{b.value=null}},M=async a=>{k.value=a,h.value=null;try{h.value=await L(a)}catch(t){i.value=t.response?.data?.message||"Ошибка тестовой отправки"}finally{k.value=null}};return $(()=>{y()}),(a,t)=>(d(),l("div",q,[e("div",K,[t[5]||(t[5]=e("div",null,[e("h2",{class:"text-2xl font-semibold tracking-tight text-slate-950 dark:text-white"},"Telegram-каналы"),e("p",{class:"mt-1 text-sm text-slate-500 dark:text-slate-400"},"Управление публикациями в Telegram")],-1)),c.value?(d(),l("button",{key:1,onClick:w,class:"btn-secondary"},"Отмена")):(d(),l("button",{key:0,onClick:t[0]||(t[0]=s=>c.value=!0),class:"btn-primary"},[...t[4]||(t[4]=[e("svg",{class:"-ml-1 mr-2 h-4 w-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1),I(" Добавить канал ",-1)])]))]),i.value?(d(),l("div",P,n(i.value),1)):p("",!0),c.value?(d(),l("div",Q,[e("h3",W,n(f.value?"Редактировать канал":"Новый канал"),1),e("div",X,[e("div",null,[t[6]||(t[6]=e("label",{class:"mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300"},"Bot Token",-1)),T(e("input",{"onUpdate:modelValue":t[1]||(t[1]=s=>r.value.botToken=s),type:"password",class:"input-base",placeholder:"123456:ABC..."}
1,null,512),[[A,r.value.botToken]]),t[7]||(t[7]=e("p",{class:"mt-1 text-xs text-slate-500 dark:text-slate-400"},"При редактировании укажите токен повторно",-1))]),e("div",null,[t[8]||(t[8]=e("label",{class:"mb-1 block text-sm font-medium text-slate-700 dark:text-slate-300"},"Channel ID",-1)),T(e("input",{"onUpdate:modelValue":t[2]||(t[2]=s=>r.value.channelId=s),type:"text",class:"input-base",placeholder:"@channelname или -100123..."},null,512),[[A,r.value.channelId]])])]),e("div",Y,[T(e("input",{id:"isActive","onUpdate:modelValue":t[3]||(t[3]=s=>r.value.isActive=s),type:"checkbox"},null,512),[[E,r.value.isActive]]),t[9]||(t[9]=e("label",{for:"isActive",class:"text-sm text-slate-700 dark:text-slate-300"},"Активен",-1))]),u.value?(d(),l("div",Z,n(u.value),1)):p("",!0),e("div",ee,[e("button",{class:"btn-secondary",onClick:w},"Отмена"),e("button",{class:"btn-primary",disabled:x.value,onClick:B},[x.value?(d(),l("span",se)):p("",!0),I(" "+n(x.value?"Сохранение...":f.value?"Сохранить":"Добавить"),1)],8,te)])])):p("",!0),h.value?(d(),l("div",ae,[t[10]||(t[10]=e("p",{class:"text-xs font-semibold text-slate-500"},"Результат теста:",-1)),e("pre",le,n(JSON.stringify(h.value,null,2)),1)])):p("",!0),e("div",de,[_.value?(d(),l("div",re,[...t[11]||(t[11]=[e("div",{class:"h-10 w-10 animate-spin rounded-full border-b-2 border-brand-600"},null,-1)])])):g.value.length===0?(d(),l("div",oe," Каналов не найдено. ")):(d(),l("table",ne,[t[12]||(t[12]=e("thead",null,[e("tr",{class:"border-b border-slate-200 bg-slate-50/80 dark:border-slate-800 dark:bg-slate-900/50"},[e("th",{class:"px-6 py-3 text-left text-xs font-medium uppercase tracking-wider text-slate-500 dark:text-slate-400"},"ID"),e("th",{class:"px-6 py-3 text-left text-xs font-medium uppercase tracking-wider text-slate-500 dark:text-slate-400"},"Название"),e("th",{class:"px-6 py-3 text-left text-xs font-medium uppercase tracking-wider text-slate-500 dark:text-slate-400"},"Channel ID"),e("th",{class:"px-6 py-3 text-left text-xs font-medium uppercase tracking-wider text-slate-500 dark:text-slate-400"},"Подписчики"),e("th",{class:"px-6 py-3 text-left text-xs font-medium uppercase tracking-wider text-slate-500 dark:text-slate-400"},"Статус"),e("th",{class:"px-6 py-3 text-right text-xs font-medium uppercase tracking-wider text-slate-500 dark:text-slate-400"},"Действия")])],-1)),e("tbody",ie,[(d(!0),l(F,null,U(g.value,s=>(d(),l("tr",{key:s.id,class:"transition hover:bg-slate-50 dark:hover:bg-slate-900/60"},[e("td",ue,"#"+n(s.id),1),e("td",ce,n(s.title||"—"),1),e("td",xe,n(s.channelId),1),e("td",pe,n(s.subscriberCount??"—"),1),e("td",ve,[e("span",{class:R(["rounded-full px-2.5 py-1 text-xs font-medium",s.isActive?"bg-emerald-100 text-emerald-800 dark:bg-emerald-950/40 dark:text-emerald-200":"bg-slate-100 text-slate-800 dark:bg-slate-900 dark:text-slate-300"])},n(s.isActive?"Активен":"Неактивен"),3)]),e("td",me,[e("button",{class:"text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300",onClick:C=>V(s)},"Редактировать",8,ke),e("button",{class:"text-purple-600 hover:text-purple-800 dark:text-purple-400 dark:hover:text-purple-300",disabled:b.value===s.id,onClick:C=>j(s.id)},[b.value===s.id?(d(),l("span",he)):(d(),l("span",fe,"Обновить"))],8,be),e("button",{class:"text-emerald-600 hover:text-emerald-800 dark:text-emerald-400 dark:hover:text-emerald-300",disabled:k.value===s.id,onClick:C=>M(s.id)},[k.value===s.id?(d(),l("span",ge)):(d(),l("span",_e,"Тест"))],8,ye),e("button",{disabled:m.value===s.id,class:"text-red-600 hover:text-red-800 dark:text-red-400 dark:hover:text-red-300",onClick:C=>D(s.id)},[m.value===s.id?(d(),l("span",Ce)):(d(),l("span",Te,"Удалить"))],8,we)])]))),128))])]))])]))}});export{De as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.