1import{Q as f}from"./vue-quill.esm-bundler-gjvVnzDx.js";import{_ as v,c as n,o as u,a as t,j as c,h as l,l as b,p as g,b as h,t as i,F as p,g as T,f as m,k as w,d as D,r as y}from"./app-BwCYh1gI.js";const C={name:"AdminTickets",components:{QuillEditor:f},data(){return{tickets:[],loading:!1,error:null,theme:typeof window<"u"&&localStorage.getItem("sistema_admin_theme")||"light",showModal:!1,selectedTicket:null,saving:!1,filters:{status:"",tipo:""},formData:{status:"aguardando_analise",resposta:""},editorOptions:{toolbar:[[{header:[1,2,3,!1]}],["bold","italic","underline","strike"],[{list:"ordered"},{list:"bullet"}],["link","image"],[{color:[]},{background:[]}],["clean"]]}}},computed:{isDarkTheme(){return this.theme==="dark"}},mounted(){window.addEventListener("admin-theme-changed",this.handleThemeChange),this.loadTickets()},beforeUnmount(){window.removeEventListener("admin-theme-changed",this.handleThemeChange)},methods:{handleThemeChange(a){const e=a?.detail?.theme;if(e==="dark"||e==="light"){this.theme=e;return}typeof window<"u"&&(this.theme=localStorage.getItem("sistema_admin_theme")||"light")},async loadTickets(){this.loading=!0,this.error=null;try{const a={};this.filters.status&&(a.status=this.filters.status),this.filters.tipo&&(a.tipo=this.filters.tipo);const e=await window.axios.get("/api/tickets",{params:a});e.data&&e.data.success?this.tickets=e.data.data:this.error=e.data?.message||"Erro ao carregar tickets"}catch(a){console.error("Erro ao carregar tickets:",a),this.error=a.response?.data?.message||"Não foi possÃvel carregar os tickets. Tente novamente."}finally{this.loading=!1}},openTicketModal(a){this.selectedTicket={...a},this.formData.status=a.status||"aguardando_analise",this.formData.resposta=a.resposta||"",this.showModal=!0},closeModal(){this.showModal=!1,this.selectedTicket=null,this.formData.status="aguardando_analise",this.formData.resposta=""},async saveTicket(){if(this.selectedTicket){this.saving=!0,this.error=null;try{const a={};if(this.formData.status!==this.selectedTicket.status&&(a.status=this.formData.status),this.formData.resposta!==(this.selectedTicket.resposta||"")&&(a.resposta=this.formData.resposta),Object.keys(a).length===0){this.closeModal();return}const e=await window.axios.put(`/api/tickets/${this.selectedTicket.id}`,a);if(e.data&&e.data.success){const d=this.tickets.findIndex(x=>x.id===this.selectedTicket.id);d!==-1&&(this.tickets[d]={...this.tickets[d],status:e.data.data.status,resposta:e.data.data.resposta}),this.closeModal(),alert("Ticket atualizado com sucesso!")}else this.error=e.data?.message||"Erro ao atualizar ticket"}catch(a){console.error("Erro ao salvar ticket:",a),this.error=a.response?.data?.message||"Não foi possÃvel salvar as alterações. Tente novamente."}finally{this.saving=!1}}},resetFilters(){this.filters.status="",this.filters.tipo="",this.loadTickets()},getStatusLabel(a){return{aguardando_analise:"Aguardando Análise",na_fila:"Na Fila",em_andamento:"Em Andamento",resolvido:"Resolvido",cancelado:"Cancelado"}[a]||a},getStatusBadgeClass(a){const e="px-3 py-1 rounded-full text-xs font-semibold",d=this.isDarkTheme;return a==="aguardando_analise"?d?`${e} bg-orange-900/30 text-orange-400 border border-orange-800/50`:`${e} bg-orange-100 text-orange-800`:a==="na_fila"?d?`${e} bg-yellow-900/30 text-yellow-400 border border-yellow-800/50`:`${e} bg-yellow-100 text-yellow-800`:a==="em_andamento"?d?`${e} bg-blue-900/30 text-blue-400 border border-blue-800/50`:`${e} bg-blue-100 text-blue-800`:a==="resolvido"?d?`${e} bg-emerald-900/30 text-emerald-400 border border-emerald-800/50`:`${e} bg-emerald-100 text-emerald-800`:a==="cancelado"?d?`${e} bg-red-900/30 text-red-400 border border-red-800/50`:`${e} bg-red-100 text-red-800`:e},getTypeLabel(a){return{demanda:"Demanda",chat:"Chat",comandas:"Comandas",curriculum:"CurrÃculo"}[a]||a},getTypeBadgeClass(a){const e="px-3 py-1 rounded-full text-xs font-semibold",d=this.isDarkTheme;return a==="demanda"?d?`${e} bg-purple-900/30 text-purple-400 border border-purple-800/50`:`${e} bg-purple-100 text-purple-800`:a==="chat"?d?`${e} bg-cyan-900/30 text-cyan-400 border border-cyan-800/50`:`${e} bg-cyan-100 text-cyan-800`:a==="comandas"?d?`${e} bg-orange-900/30 text-orange-400 border border-orange-800/50`:`${e} bg-orange-100 text-orange-800`:a==="curriculum"?d?`${e} bg-pink-900/30 text-pink-400 border border-pink-800/50`:`${e} bg-pink-100 text-pink-800`:e},formatDate(a){return a?new Date(a).toLocaleDateString("pt-BR",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"}):"N/A"},truncateHtml(a,e){return a?a.replace(/<[^>]*>/g,"").length<=e?a:a.substring(0,e)+"...":""}}},_={class:"admin-tickets p-6"},M={class:"max-w-7xl mx-auto"},L={class:"mb-8"},S={class:"grid grid-cols-1 md:grid-cols-3 gap-4"},A={class:"flex items-end"},E={key:0,class:"text-center py-12"},N={class:"flex items-center"},B={key:2,class:"space-y-4"},R=["onClick"],j={class:"flex items-start justify-between"},F={class:"flex-1"},V={class:"flex items-center gap-3 mb-2"},H=["innerHTML"],z={key:0},U={key:1},I={class:"ml-4"},Q={class:"flex items-start justify-between mb-4"},O={class:"flex-1"},G={class:"flex items-center gap-2 flex-wrap"},q={key:0},J={class:"flex-1 overflow-y-auto p-6"},K={class:"mb-6"},P=["innerHTML"],W={key:0,class:"mb-6"},X=["innerHTML"],Y={class:"mb-4"},Z={class:"mb-4"},$={class:"flex justify-end gap-3"},ee=["disabled"];
1function te(a,e,d,x,r,s){const k=y("QuillEditor");return u(),n("div",_,[t("div",M,[t("div",L,[t("h1",{class:l(["text-3xl font-bold mb-2",s.isDarkTheme?"text-slate-100":"text-slate-900"])}," Gerenciamento de Tickets ",2),t("p",{class:l(s.isDarkTheme?"text-slate-300":"text-slate-600")}," Responda e atualize o status dos tickets do sistema ",2)]),t("div",{class:l(["rounded-xl shadow-lg border p-6 mb-6",s.isDarkTheme?"bg-slate-800 border-slate-700":"bg-white border-slate-200"])},[t("div",S,[t("div",null,[t("label",{class:l(["block text-sm font-medium mb-2",s.isDarkTheme?"text-slate-300":"text-slate-700"])}," Filtrar por Status ",2),b(t("select",{"onUpdate:modelValue":e[0]||(e[0]=o=>r.filters.status=o),onChange:e[1]||(e[1]=(...o)=>s.loadTickets&&s.loadTickets(...o)),class:l(["w-full px-4 py-2 rounded-lg border focus:outline-none focus:ring-2 focus:ring-blue-500",s.isDarkTheme?"bg-slate-700 border-slate-600 text-white":"bg-white border-slate-300 text-slate-900"])},[...e[11]||(e[11]=[h('<option value="" data-v-91117231>Todos os status</option><option value="aguardando_analise" data-v-91117231>Aguardando Análise</option><option value="na_fila" data-v-91117231>Na Fila</option><option value="em_andamento" data-v-91117231>Em Andamento</option><option value="resolvido" data-v-91117231>Resolvido</option><option value="cancelado" data-v-91117231>Cancelado</option>',6)])],34),[[g,r.filters.status]])]),t("div",null,[t("label",{class:l(["block text-sm font-medium mb-2",s.isDarkTheme?"text-slate-300":"text-slate-700"])}," Filtrar por Tipo ",2),b(t("select",{"onUpdate:modelValue":e[2]||(e[2]=o=>r.filters.tipo=o),onChange:e[3]||(e[3]=(...o)=>s.loadTickets&&s.loadTickets(...o)),class:l(["w-full px-4 py-2 rounded-lg border focus:outline-none focus:ring-2 focus:ring-blue-500",s.isDarkTheme?"bg-slate-700 border-slate-600 text-white":"bg-white border-slate-300 text-slate-900"])},[...e[12]||(e[12]=[h('<option value="" data-v-91117231>Todos os tipos</option><option value="demanda" data-v-91117231>Demanda</option><option value="chat" data-v-91117231>Chat</option><option value="comandas" data-v-91117231>Comandas</option><option value="curriculum" data-v-91117231>CurrÃculo</option>',5)])],34),[[g,r.filters.tipo]])]),t("div",A,[t("button",{onClick:e[4]||(e[4]=(...o)=>s.resetFilters&&s.resetFilters(...o)),class:l(["w-full px-4 py-2 rounded-lg font-medium transition-colors",s.isDarkTheme?"bg-slate-700 text-white hover:bg-slate-600":"bg-slate-200 text-slate-700 hover:bg-slate-300"])}," Limpar Filtros ",2)])])],2),r.loading?(u(),n("div",E,[t("div",{class:l(["inline-block animate-spin rounded-full h-12 w-12 border-b-2",s.isDarkTheme?"border-blue-400":"border-blue-600"])},null,2),t("p",{class:l(["mt-4",s.isDarkTheme?"text-slate-300":"text-slate-600"])},"Carregando tickets...",2)])):c("",!0),r.error?(u(),n("div",{key:1,class:l(["rounded-xl p-6 border mb-6",s.isDarkTheme?"bg-red-900/20 border-red-800":"bg-red-50 border-red-200"])},[t("div",N,[(u(),n("svg",{class:l(["w-6 h-6 mr-3",s.isDarkTheme?"text-red-400":"text-red-600"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...e[13]||(e[13]=[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1)])],2)),t("div",null,[t("h3",{class:l(["text-lg font-semibold",s.isDarkTheme?"text-red-400":"text-red-800"])},"Erro ao carregar tickets",2),t("p",{class:l(["mt-1",s.isDarkTheme?"text-red-300":"text-red-600"])},i(r.error),3)])])],2)):c("",!0),!r.loading&&!r.error?(u(),n("div",B,[(u(!0),n(p,null,T(r.tickets,o=>(u(),n("div",{key:o.id,class:l(["rounded-xl shadow-lg border p-6 cursor-pointer transition-all hover:shadow-xl",s.isDarkTheme?"bg-slate-800 border-slate-700 hover:border-slate-600":"bg-white border-slate-200 hover:border-slate-300"]),onClick:se=>s.openTicketModal(o)},[t("div",j,[t("div",F,[t("div",V,[t("h3",{class:l(["text-lg font-semibold",s.isDarkTheme?"text-white":"text-slate-900"])},i(o.titulo),3),t("span",{class:l(s.getStatusBadgeClass(o.status))},i(s.getStatusLabel(o.status)),3),t("span",{class:l(s.getTypeBadgeClass(o.tipo))},i(s.getTypeLabel(o.tipo)),3)]),t("div",{class:l(["text-sm mb-3 line-clamp-2",s.isDarkTheme?"text-slate-300":"text-slate-600"]),innerHTML:s.truncateHtml(o.descricao,150)},null,10,H),t("div",{class:l(["flex items-center gap-4 text-xs",s.isDarkTheme?"text-slate-400":"text-slate-500"])},[o.usuario?(u(),n("span",z,[e[14]||(e[14]=t("strong",null,"Criado por:",-1)),m(" "+i(o.usuario.name),1)])):c("",!0),o.responsavel?(u(),n("span",U,[e[15]||(e[15]=t("strong",null,"Responsável:",-1)),m(" "+i(o.responsavel.name),1)])):c("",!0),t("span",null,[e[16]||(e[16]=t("strong",null,"Criado em:",-1)),m(" "+i(s.formatDate(o.created_at)),1)])],2)]),t("div",I,[(u(),n("svg",{class:l(["w-6 h-6",s.isDarkTheme?"text-slate-400":"text-slate-500"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...e[17]||(e[17]=[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"},null,-1)])],2))])])],10,R))),128)),r.tickets.length===0?(u(),n("div",{key:0,class:l(["rounded-xl p-12 text-center border",s.isDarkTheme?"bg-slate-800 border-slate-700":"bg-white border-slate-200"])},[(u(),n("svg",{class:l(["w-16 h-16 mx-auto mb-4",s.isDarkTheme?"text-slate-500":"text-slate-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...e[18]||(e[18]=[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"},null,-1)])],2)),t("p",{class:l(["text-lg font-medium",s.isDarkTheme?"text-slate-300":"text-slate-600"])}," Nenhum ticket encontrado ",2),t("p",{class:l(["text-sm mt-2",s.isDarkTheme?"text-slate-400":"text-slate-500"])}," Tente ajustar os filtros ou aguarde novos tickets ",2)],2)):c("",!0)])):c("",!0),r.showModal&&r.selectedTicket?(u(),n("div",{key:3,class:"fixed inset-0 flex items-center justify-center p-4 z-50",style:{"background-color":"rgba(0, 0, 0, 0.5)"},onClick:e[10]||(e[10]=w((...o)=>s.closeModal&&s.closeModal(...o),["self"]))},[t("div",{class:l(["rounded-xl shadow-2xl max-w-4xl w-full max-h-[90vh] overflow-hidden flex flex-col",s.isDarkTheme?"bg-slate-800 border border-slate-700":"bg-white border border-slate-200"])},[t("div",{class:l(["p-6 border-b",s.isDarkTheme?"border-slate-700":"border-slate-200"])},[t("div",Q,[t("div",O,[t("h2",{class:l(["text-2xl font-bold mb-2",s.isDarkTheme?"text-white":"text-slate-900"])},i(r.selectedTicket.titulo),3),t("div",G,[t("span",{class:l(s.getStatusBadgeClass(r.selectedTicket.status))}
1,i(s.getStatusLabel(r.selectedTicket.status)),3),t("span",{class:l(s.getTypeBadgeClass(r.selectedTicket.tipo))},i(s.getTypeLabel(r.selectedTicket.tipo)),3),r.selectedTicket.categoria?(u(),n("span",{key:0,class:l(["px-2 py-1 rounded text-xs font-medium",s.isDarkTheme?"bg-slate-700 text-slate-300":"bg-slate-100 text-slate-700"])},i(r.selectedTicket.categoria),3)):c("",!0)])]),t("button",{onClick:e[5]||(e[5]=(...o)=>s.closeModal&&s.closeModal(...o)),class:l(["p-2 rounded-lg transition-colors",s.isDarkTheme?"text-slate-400 hover:text-white hover:bg-slate-700":"text-slate-500 hover:text-slate-700 hover:bg-slate-100"])},[...e[19]||(e[19]=[t("svg",{class:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],2)]),t("div",{class:l(["grid grid-cols-2 gap-4 text-sm",s.isDarkTheme?"text-slate-300":"text-slate-600"])},[t("div",null,[e[20]||(e[20]=t("strong",null,"Criado por:",-1)),m(" "+i(r.selectedTicket.usuario?.name||"N/A"),1)]),t("div",null,[e[21]||(e[21]=t("strong",null,"Email:",-1)),m(" "+i(r.selectedTicket.usuario?.email||"N/A"),1)]),t("div",null,[e[22]||(e[22]=t("strong",null,"Responsável:",-1)),m(" "+i(r.selectedTicket.responsavel?.name||"Não atribuÃdo"),1)]),t("div",null,[e[23]||(e[23]=t("strong",null,"Criado em:",-1)),m(" "+i(s.formatDate(r.selectedTicket.created_at)),1)]),r.selectedTicket.resolvido_em?(u(),n("div",q,[e[24]||(e[24]=t("strong",null,"Resolvido em:",-1)),m(" "+i(s.formatDate(r.selectedTicket.resolvido_em)),1)])):c("",!0)],2)],2),t("div",J,[t("div",K,[t("h3",{class:l(["text-lg font-semibold mb-3",s.isDarkTheme?"text-white":"text-slate-900"])}," Descrição ",2),t("div",{class:l(["prose prose-sm max-w-none rounded-lg p-4",s.isDarkTheme?"bg-slate-900/50 text-slate-300 prose-invert":"bg-slate-50 text-slate-900"]),innerHTML:r.selectedTicket.descricao},null,10,P)]),r.selectedTicket.resposta?(u(),n("div",W,[t("h3",{class:l(["text-lg font-semibold mb-3",s.isDarkTheme?"text-white":"text-slate-900"])}," Resposta ",2),t("div",{class:l(["prose prose-sm max-w-none rounded-lg p-4",s.isDarkTheme?"bg-slate-900/50 text-slate-300 prose-invert":"bg-slate-50 text-slate-900"]),innerHTML:r.selectedTicket.resposta},null,10,X)])):c("",!0),t("div",{class:l(["rounded-lg p-4 border",s.isDarkTheme?"bg-slate-900/50 border-slate-700":"bg-slate-50 border-slate-200"])},[t("h3",{class:l(["text-lg font-semibold mb-4",s.isDarkTheme?"text-white":"text-slate-900"])}," Responder e Atualizar Status ",2),t("div",Y,[t("label",{class:l(["block text-sm font-medium mb-2",s.isDarkTheme?"text-slate-300":"text-slate-700"])}," Status do Ticket ",2),b(t("select",{"onUpdate:modelValue":e[6]||(e[6]=o=>r.formData.status=o),class:l(["w-full px-4 py-2 rounded-lg border focus:outline-none focus:ring-2 focus:ring-blue-500",s.isDarkTheme?"bg-slate-700 border-slate-600 text-white":"bg-white border-slate-300 text-slate-900"])},[...e[25]||(e[25]=[h('<option value="aguardando_analise" data-v-91117231>Aguardando Análise</option><option value="na_fila" data-v-91117231>Na Fila</option><option value="em_andamento" data-v-91117231>Em Andamento</option><option value="resolvido" data-v-91117231>Resolvido</option><option value="cancelado" data-v-91117231>Cancelado</option>',5)])],2),[[g,r.formData.status]])]),t("div",Z,[t("label",{class:l(["block text-sm font-medium mb-2",s.isDarkTheme?"text-slate-300":"text-slate-700"])}," Resposta ",2),t("div",{class:l(["border rounded-lg overflow-hidden",s.isDarkTheme?"border-slate-600":"border-slate-300"])},[D(k,{ref:"editorRef",content:r.formData.resposta,"onUpdate:content":e[7]||(e[7]=o=>r.formData.resposta=o),"content-type":"html",theme:"snow",toolbar:r.editorOptions.toolbar,class:l(["ticket-editor",s.isDarkTheme?"bg-slate-800":"bg-white"])},null,8,["content","toolbar","class"])],2)]),t("div",$,[t("button",{onClick:e[8]||(e[8]=(...o)=>s.closeModal&&s.closeModal(...o)),class:l(["px-4 py-2 rounded-lg font-medium transition-colors",s.isDarkTheme?"bg-slate-700 text-white hover:bg-slate-600":"bg-slate-200 text-slate-700 hover:bg-slate-300"])}," Cancelar ",2),t("button",{onClick:e[9]||(e[9]=(...o)=>s.saveTicket&&s.saveTicket(...o)),disabled:r.saving,class:l(["px-4 py-2 rounded-lg font-medium transition-colors disabled:opacity-50 disabled:cursor-not-allowed",s.isDarkTheme?"bg-blue-600 text-white hover:bg-blue-700":"bg-blue-500 text-white hover:bg-blue-600"])},i(r.saving?"Salvando...":"Salvar Alterações"),11,ee)])],2)])],2)])):c("",!0)])])}const re=v(C,[["render",te],["__scopeId","data-v-91117231"]]);export{re 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.