1import{d as A,a as I,p as Y,k as G,Y as H,o as W,c as o,e as t,h as m,f as i,F as _,r as w,z as y,B as h,A as $,g as v,i as U,t as u,L as J,j as f,l as K,m as Q,b as r,_ as X}from"./B_m38SBB.js";import{u as Z}from"./CFt8bk2q.js";import{s as ee}from"./c4tBL0at.js";const te={class:"page-inner"},se={class:"page-header"},le={key:0,class:"card",style:{"text-align":"center",padding:"40px",color:"var(--muted)"}},ie={key:1,class:"card"},ae={class:"empty-state"},oe={key:2,class:"ticket-list"},re=["onClick"],ne={class:"ticket-content"},de={class:"ticket-title-txt"},ue={class:"ticket-preview"},pe={class:"ticket-meta"},ce={class:"ticket-date"},me={class:"modal"},ve={class:"form-group"},fe=["value"],be={class:"form-group"},ge=["value"],ye={class:"form-group"},ke={key:0,class:"form-error"},_e={class:"form-group"},we={key:0,class:"form-error"},Ue={class:"form-group"},xe={key:0,class:"form-error"},Ce={class:"form-group"},Te={key:0,class:"ticket-preview-list"},$e=["src","alt"],Le={key:1,class:"ticket-preview-file"},Ne=["disabled","onClick"],Se=["disabled"],Oe=["disabled"],he=A({__name:"tickets",setup(Ee){const L=[{value:"bug",label:"Bug"},{value:"feature_request",label:"åè½è¯·æ±"},{value:"question",label:"é®é¢å¨è¯¢"},{value:"complaint",label:"æè¯"},{value:"illegal_content",label:"è¿æ³ä¸è¯ä¿¡æ¯ä¸¾æ¥"},{value:"other",label:"å
¶ä»"}],E=[{value:"low",label:"ä½"},{value:"medium",label:"ä¸"},{value:"high",label:"é«"},{value:"urgent",label:"ç´§æ¥"}],B=Object.fromEntries(L.map(l=>[l.value,l.label])),N=I(),b=Q(),M=Y(),k=f([]),x=f(!1),c=f(!1),g=f(!1);Z(g);const a=G({type:"bug",priority:"medium",title:"",description:"",email:M.user?.email||""}),p=f(!1),C=K(()=>/^\S+@\S+\.\S+$/.test(a.email.trim())),d=f([]);function R(l){const e=l.target,s=Array.from(e.files||[]);for(const n of s){if(d.value.length>=5){b.error("æå¤ 5 个éä»¶");break}if(n.size>5*1024*1024){b.error(`${n.name} è¶
è¿ 5MB`);continue}if(!["image/jpeg","image/png","application/pdf"].includes(n.type)){b.error(`${n.name} 䏿¯æçç±»å`);continue}const D=n.type.startsWith("image/")?URL.createObjectURL(n):null;d.value.push({file:n,previewUrl:D})}e.value=""}function F(l){const e=d.value[l];e?.previewUrl&&URL.revokeObjectURL(e.previewUrl),d.value.splice(l,1)}H(()=>{d.value.forEach(l=>{l.previewUrl&&URL.revokeObjectURL(l.previewUrl)})});function S(l){if(!l)return"";const e=new Date(l);if(Number.isNaN(e.getTime()))return l;const s=n=>String(n).padStart(2,"0");return`${e.getFullYear()}-${s(e.getMonth()+1)}-${s(e.getDate())} ${s(e.getHours())}:${s(e.getMinutes())}`}function P(l,e){return l==="closed"?"å·²å
³é":l==="resolved"?"已解å³":l==="in_progress"?e?"å·²åå¤":"å¤çä¸":"å¾
å¤ç"}function V(l){return l==="closed"?"badge-gray":l==="resolved"?"badge-green":l==="in_progress"?"badge-amber":"badge-gray"}async function O(){x.value=!0;try{const e=(await N("/feedback/my-feedbacks/",{method:"GET",query:{page_size:200}}))?.results||[];k.value=e.map(s=>({...s,created_at:S(s.created_at),updated_at:S(s.updated_at),type_label:B[s.type]||s.type}))}catch{k.value=[]}finally{x.value=!1}}function j(){d.value.forEach(l=>{l.previewUrl&&URL.revokeObjectURL(l.previewUrl)}),d.value=[]}function T(){g.value=!1,p.value=!1}async function z(){if(p.value=!0,!(!a.title.trim()||!a.description.trim()||!C.value)){c.value=!0;try{const l=new FormData;l.append("title",a.title.trim()),l.append("description",a.description.trim()),l.append("email",a.email.trim()),l.append("type",a.type),l.append("priority",a.priority);for(const e of d.value)l.append("attachments",e.file);await N("/feedback/feedbacks/",{method:"POST",body:l}),b.success("å·¥åå·²æäº¤ï¼æä»¬å°å¨ 1 ä¸ªå·¥ä½æ¥å
åå¤"),T(),a.title="",a.description="",a.type="bug",a.priority="medium",j(),await O()}catch(l){b.error(l instanceof Error?l.message:"æäº¤å¤±è´¥")}finally{c.value=!1}}}return W(O),ee({title:"æçå·¥å â è¶
ç®GEO",description:"åé¦ãå¨è¯¢ä¸é®é¢å¤çè¿åº¦é䏿¥çã",noindex:!0}),(l,e)=>(r(),o("div",te,[t("div",se,[e[8]||(e[8]=t("div",{class:"sec-title"},"æçå·¥å",-1)),t("button",{class:"btn btn-primary btn-sm",onClick:e[0]||(e[0]=s=>g.value=!0)},[...e[7]||(e[7]=[t("i",{class:"ri-add-line"},null,-1),m("æäº¤å·¥å ",-1)])])]),i(x)?(r(),o("div",le,[...e[9]||(e[9]=[t("i",{class:"ri-loader-4-line spin",style:{"font-size":"24px"}},null,-1),t("div",{style:{"margin-top":"8px"}},"å è½½ä¸...",-1)])])):i(k).length===0?(r(),o("div",ie,[t("div",ae,[e[11
1]||(e[11]=t("i",{class:"ri-customer-service-2-line"},null,-1)),e[12]||(e[12]=t("p",null,"ææ å·¥åè®°å½",-1)),t("button",{class:"btn btn-primary btn-sm",onClick:e[1]||(e[1]=s=>g.value=!0)},[...e[10]||(e[10]=[t("i",{class:"ri-add-line"},null,-1),m("æäº¤å·¥å",-1)])])])])):(r(),o("div",oe,[(r(!0),o(_,null,w(i(k),s=>(r(),o("div",{key:s.id,class:"ticket-item",onClick:n=>l.$router.push(`/ticket/${s.id}`)},[e[13]||(e[13]=t("div",{class:"ticket-icon"},[t("span",{class:"icon"},[t("i",{class:"ri-customer-service-2-line"})])],-1)),t("div",ne,[t("div",de,u(s.title),1),t("div",ue,u(s.type_label)+" · "+u(s.response_count)+" æ¡å¯¹è¯",1)]),t("div",pe,[t("span",{class:v(["badge",V(s.status)])},u(P(s.status,s.has_admin_reply)),3),t("span",ce,u(s.updated_at),1)])],8,re))),128))])),t("div",{class:v(["modal-overlay",{open:i(g)}]),role:"dialog","aria-modal":"true",onClick:J(T,["self"])},[t("div",me,[t("button",{class:"modal-close","aria-label":"å
³é",onClick:T},[...e[14]||(e[14]=[t("span",{class:"icon"},[t("i",{class:"ri-close-line"})],-1)])]),e[26]||(e[26]=t("div",{class:"modal-title",style:{"text-align":"left","font-size":"16px","margin-bottom":"20px"}},"æäº¤å·¥å",-1)),t("div",ve,[e[15]||(e[15]=t("label",{class:"form-label"},"é®é¢ç±»å",-1)),y(t("select",{"onUpdate:modelValue":e[2]||(e[2]=s=>i(a).type=s),class:"form-select"},[(r(),o(_,null,w(L,s=>t("option",{key:s.value,value:s.value},u(s.label),9,fe)),64))],512),[[h,i(a).type]])]),t("div",be,[e[16]||(e[16]=t("label",{class:"form-label"},"ä¼å
级",-1)),y(t("select",{"onUpdate:modelValue":e[3]||(e[3]=s=>i(a).priority=s),class:"form-select"},[(r(),o(_,null,w(E,s=>t("option",{key:s.value,value:s.value},u(s.label),9,ge)),64))],512),[[h,i(a).priority]])]),t("div",ye,[e[17]||(e[17]=t("label",{class:"form-label"},[m("é®é¢æ é¢ "),t("span",{class:"required"},"*")],-1)),y(t("input",{"onUpdate:modelValue":e[4]||(e[4]=s=>i(a).title=s),class:v(["form-input",{error:i(p)&&!i(a).title.trim()}]),placeholder:"ç®çæè¿°é®é¢..."},null,2),[[$,i(a).title]]),i(p)&&!i(a).title.trim()?(r(),o("div",ke,"请è¾å
¥é®é¢æ é¢")):U("",!0)]),t("div",_e,[e[18]||(e[18]=t("label",{class:"form-label"},[m("è¯¦ç»æè¿° "),t("span",{class:"required"},"*")],-1)),y(t("textarea",{"onUpdate:modelValue":e[5]||(e[5]=s=>i(a).description=s),class:v(["form-textarea",{error:i(p)&&!i(a).description.trim()}]),placeholder:"è¯·è¯¦ç»æè¿°ä½ éå°çé®é¢..."},null,2),[[$,i(a).description]]),i(p)&&!i(a).description.trim()?(r(),o("div",we,"请è¾å
¥é®é¢æè¿°")):U("",!0)]),t("div",Ue,[e[19]||(e[19]=t("label",{class:"form-label"},[m("èç³»é®ç®± "),t("span",{class:"required"},"*")],-1)),y(t("input",{"onUpdate:modelValue":e[6]||(e[6]=s=>i(a).email=s),class:v(["form-input",{error:i(p)&&!i(C)}]),placeholder:"ç¨äºæ¥æ¶åå¤éç¥"},null,2),[[$,i(a).email]]),i(p)&&!i(C)?(r(),o("div",xe,"请è¾å
¥ææçé®ç®±å°å")):U("",!0)]),t("div",Ce,[e[24]||(e[24]=t("label",{class:"form-label"},"éä»¶ï¼å¯éï¼",-1)),i(d).length?(r(),o("div",Te,[(r(!0),o(_,null,w(i(d),(s,n)=>(r(),o("div",{key:n,class:"ticket-preview"},[s.previewUrl?(r(),o("img",{key:0,src:s.previewUrl,alt:s.file.name},null,8,$e)):(r(),o("span",Le,[e[20]||(e[20]=t("i",{class:"ri-file-text-line"},null,-1)),m(u(s.file.name),1)])),t("button",{type:"button",class:"ticket-preview-del",disabled:i(c),onClick:q=>F(n),title:"ç§»é¤"},[...e[21]||(e[21]=[t("i",{class:"ri-close-line"},null,-1)])],8,Ne)]))),128))])):U("",!0),t("label",{class:v(["btn btn-ghost btn-sm",{disabled:i(c)||i(d).length>=5}]),style:{margin:"0"}},[e[22]||(e[22]=t("i",{class:"ri-attachment-2"},null,-1)),e[23]||(e[23]=m("æ·»å éä»¶ ",-1)),t("input",{type:"file",accept:"image/jpeg,image/png,application/pdf",multiple:"",style:{display:"none"},disabled:i(c)||i(d).length>=5,onChange:R},null,40,Se)],2),e[25]||(e[25]=t("div",{style:{"font-size":"12px",color:"var(--muted)","margin-top":"6px"}},"å¾ç / PDF · æå¤ 5 个 · å个 â¤5MB",-1))]),t("button",{class:"btn btn-primary",style:{width:"100%"},disabled:i(c),onClick:z},u(i(c)?"æäº¤ä¸...":"æäº¤å·¥å"),9,Oe)])],2)]))}}),Fe=X(he,[["__scopeId","data-v-8e620d7c"]]);export{Fe 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.