1import{j as e,r as t,h as s,b as a}from"./vendor-react-DejgYtBM.js";import{A as i,u as n,S as l,a5 as r,$ as o,am as d,s as c,w as u,a3 as p,an as h,ao as g,ap as m}from"./index-BeIIFw6E.js";import{f as x,Z as y,_ as f,l as _,p as j,r as k,B as b,M as v,y as w,G as S,i as C,O as z,H as I,F as $,k as T,E as W,J as N,K as O,Q as R,q as E,$ as D,c as M,o as B,a0 as P,a1 as U,T as A,u as F}from"./vendor-semi-D8d7bTtM.js";import{u as L}from"./useIsMobile-D_kfVI0u.js";import{ay as H,S as q,x as K,b9 as J,X as Y,U as G,t as V,a1 as X,I as Q,d as Z,e as ee,ba as te,bb as se}from"./vendor-icons-EJvJ5X-w.js";import"./vendor-motion-Chfy_MiU.js";const{Text:ae}=x,ie=/\[\[tickets3:([^\]]+)\]\]/g,ne=new Map;function le(e,t,s){return`${s?"m":"u"}:${e}:${t}`}function re({ticketId:s,storageKey:a,isManage:n,t:l}){const[r,o]=t.useState(""),[d,c]=t.useState(!1),[u,p]=t.useState(0),[h,g]=t.useState(!1),m=t.useRef(""),x=t.useRef(0);return t.useEffect(()=>{x.current=0,c(!1),o(""),g(!1)},[s,a,n]),t.useEffect(()=>{let e=!1;return m.current&&(URL.revokeObjectURL(m.current),m.current=""),(async()=>{try{const t=await async function(e,t,s){const a=le(e,t,s),n=ne.get(a),l=Date.now();if(n&&l-n.t<3e6)return n.url;const r=s?"/api/ticket/manage":"/api/ticket",o=await i.get(`${r}/${e}/attachments/presign`,{params:{key:t},skipErrorHandler:!0});if(!o.data?.success)throw new Error(o.data?.message||"presign failed");const d=o.data.data?.url;if(!d)throw new Error("empty url");return ne.set(a,{url:d,t:l}),d}(s,a,n);let l=t;try{const e=await fetch(t,{mode:"cors",credentials:"omit"});if(e.ok){const t=await e.blob(),s=URL.createObjectURL(t);m.current=s,l=s}}catch{}e||o(l)}catch{e||c(!0)}})(),()=>{e=!0,m.current&&(URL.revokeObjectURL(m.current),m.current="")}},[s,a,n,u]),d?e.jsx(ae,{type:"danger",size:"small",style:{display:"block",marginTop:8},children:l("ticket_image_load_failed")}):r?e.jsxs(e.Fragment,{children:[e.jsx("img",{src:r,alt:"",style:{maxWidth:"100%",borderRadius:8,marginTop:8,display:"block",cursor:"zoom-in"},loading:"lazy",onError:()=>{g(!1),function(e,t,s){ne.delete(le(e,t,s))}(s,a,n),m.current&&(URL.revokeObjectURL(m.current),m.current=""),x.current+=1,x.current>2?c(!0):p(e=>e+1)},onClick:()=>g(!0)}),e.jsx(y,{src:r,visible:h,onVisibleChange:g})]}):null}function oe({content:t,ticketId:s,isManage:a,t:i}){if(null==t||""===t)return null;if(!/\[\[tickets3:/.test(t))return t;const n=[];let l,r=0;ie.lastIndex=0;let o=0;for(;null!==(l=ie.exec(t));){l.index>r&&n.push(e.jsx("span",{children:t.slice(r,l.index)},"tm-"+o++));const d=(l[1]||"").trim();d&&n.push(e.jsx(re,{ticketId:s,storageKey:d,isManage:a,t:i},`ti-${o++}-${d}`)),r=l.index+l[0].length}return r<t.length&&n.push(e.jsx("span",{children:t.slice(r)},"tm-"+o++)),e.jsx(e.Fragment,{children:n})}const{Text:de,Title:ce}=x,ue=["general","technical","billing","feature","feedback","other"],pe={general:"ticket_category_general",technical:"ticket_category_technical",billing:"ticket_category_billing",feature:"ticket_category_feature",feedback:"ticket_category_feedback",other:"ticket_category_other"},he=[{value:"low",label:"ä½"},{value:"normal",label:"æ®é"},{value:"high",label:"é«"},{value:"urgent",label:"ç´§æ¥"}],ge={pending:"orange",replied:"green",closed:"grey",assign:"blue",processing:"blue",pending_review:"cyan",rejected:"red",dept_assigned:"indigo",person_assigned:"teal",reassign_dept:"purple"},me={pending:"å¾
å¤ç",replied:"å·²åå¤",closed:"å·²å
³é",assign:"ææ´¾",processing:"å¤çä¸",pending_review:"å¾
å®¡æ ¸",rejected:"已驳å",dept_assigned:"ææ´¾é¨é¨",person_assigned:"ææ´¾å¤ç人",reassign_dept:"转派é¨é¨"},xe={low:"blue",normal:"green",high:"orange",urgent:"red"},ye={low:"ä½",normal:"æ®é",high:"é«",urgent:"ç´§æ¥"},fe=3e4,_e="ticket_desktop_notification",je="ticket_manage_last_sel",ke="ticket_manage_dashboard_enabled",be="ticket_manage_dashboard_support_enabled";function ve(e){const t=Math.max(0,Number(e)||0);return Math.min(500*2**t,5e3)}function we(){try{const e=r();if(null!=e&&e>0)return`${je}_${e}`}catch{}return je}function Se(){if("undefined"==typeof window)return null;try{const e=localStorage.getItem(we());if(null==e||""===e)return null;const t=Number.parseInt(e,10);return Number.isFinite(t)&&t>0?t:null}catch{return null}}function Ce(e){try{const t=we();if(null==e||e<=0)return void localStorage.removeItem(t);localStorage.setItem(t,String(e))}catch{}}function ze(e){if(null==e||""===e)return null;const t=Number(e);return Number.isFinite(t)&&t>0?t:null}
1function Ie(){return"undefined"!=typeof window&&"Notification"in window}function $e(e,t,s,a){return e&&e.length,e}function Te(e){return e?.assigned_to?(e.assigned_display_name||e.assigned_username||"").trim():""}function We(e){if(!e?.assigned_to)return"";const t=Te(e);return t?`${t} (ID ${e.assigned_to})`:`ID ${e.assigned_to}`}function Ne(e){return e?.assigned_to?(e.assigned_display_name||e.assigned_username||"").trim()||`ID ${e.assigned_to}`:""}function Oe(e,t){if(!e||!t)return!1;if("replied"!==t.status)return!1;const s=Number(t.assigned_to);return!Number.isFinite(s)||s<=0}function Re(e,t,s){const a=Math.max(0,Math.floor(t-e));if(a<60)return`${a}${s("ç§")}`;if(a<3600){const e=Math.floor(a/60),t=a%60;return t>0?`${e}${s("åé")}${t}${s("ç§")}`:`${e}${s("åé")}`}if(a<86400){const e=Math.floor(a/3600),t=Math.floor(a%3600/60);return t>0?`${e}${s("å°æ¶")}${t}${s("åé")}`:`${e}${s("å°æ¶")}`}const i=Math.floor(a/86400),n=Math.floor(a%86400/3600);return n>0?`${i}${s("天")}${n}${s("å°æ¶")}`:`${i}${s("天")}`}function Ee(e){if(Array.isArray(e))return{staff:e,defaultSupportTicketCap:10,autoCloseDays:7,supportAssignUsedToday:0,supportAssignDailyCap:10};const t=Array.isArray(e?.staff)?e.staff:[],s=e?.default_support_ticket_cap,a=parseInt(String(s??10),10),i=Number.isFinite(a)&&a>=1?a:10,n=e?.auto_close_days,l=parseInt(String(n??7),10),r=Number.isFinite(l)&&l>=0?l:7,o=e?.support_assign_used_today,d=parseInt(String(o??0),10),c=Number.isFinite(d)&&d>=0?d:0,u=e?.support_assign_daily_cap,p=parseInt(String(u??10),10);return{staff:t,defaultSupportTicketCap:i,autoCloseDays:r,supportAssignUsedToday:c,supportAssignDailyCap:Number.isFinite(p)&&p>=1?p:10}}const De=()=>{const{t:x}=n(),y=s(),[ae]=t.useContext(l),ie=y.pathname.includes("/ticket/manage"),ne=!1!==ae?.status?.ticket_enabled,le=L(),[re,je]=t.useState("list"),we=le&&"detail"===re,[De,Me]=t.useState(!1),[Be,Pe]=t.useState([]),[Ue,Ae]=t.useState(0),[Fe,Le]=t.useState(1),[He,qe]=t.useState(20),[Ke,Je]=t.useState(!1),[Ye,Ge]=t.useState("not_closed"),[Ve,Xe]=t.useState("all"),[Qe,Ze]=t.useState("all"),[et,tt]=t.useState(""),[st,at]=t.useState("all"),[it,nt]=t.useState([]),[lt,rt]=t.useState(!1),[ot,dt]=t.useState(""),[ct,ut]=t.useState(!1),[pt,ht]=t.useState(null),[gt,mt]=t.useState(0),[xt,yt]=t.useState(!1),[ft,_t]=t.useState(null),[jt,kt]=t.useState(""),[bt,vt]=t.useState(!1),[wt,St]=t.useState(null),[Ct,zt]=t.useState(""),[It,$t]=t.useState(!1),[Tt,Wt]=t.useState(!1),[Nt,Ot]=t.useState(!1),[Rt,Et]=t.useState(!1),[Dt,Mt]=t.useState(!1),[Bt,Pt]=t.useState(!1),[Ut,At]=t.useState(!1),[Ft,Lt]=t.useState(!1),[Ht,qt]=t.useState(!1),[Kt,Jt]=t.useState(5),[Yt,Gt]=t.useState(""),[Vt,Xt]=t.useState([]),[Qt,Zt]=t.useState([]),[es,ts]=t.useState(!1),[ss,as]=t.useState(null),[is,ns]=t.useState(()=>{if("undefined"==typeof window)return null;try{return window.location.pathname.includes("/ticket/manage")?Se():null}catch{return null}}),[ls,rs]=t.useState(!1),[os,ds]=t.useState(null),[cs,us]=t.useState(!1),[ps,hs]=t.useState(""),[gs,ms]=t.useState(!1),[xs,ys]=t.useState(!1),[fs,_s]=t.useState({}),[js,ks]=t.useState(!1),[bs,vs]=t.useState(!1),[ws,Ss]=t.useState(null),[Cs,zs]=t.useState(null),[Is,$s]=t.useState(!1),[Ts,Ws]=t.useState([]),[Ns,Os]=t.useState(1),[Rs,Es]=t.useState([]),[Ds,Ms]=t.useState(1),[Bs,Ps]=t.useState(!1),[Us,As]=t.useState(!1),[Fs,Ls]=t.useState(null),[Hs,qs]=t.useState(null),[Ks,Js]=t.useState(!1),[Ys,Gs]=t.useState(0),[Vs,Xs]=t.useState(10),[Qs,Zs]=t.useState(!1),[ea,ta]=t.useState(null),[sa,aa]=t.useState(0),[ia,na]=t.useState(10),[la,ra]=t.useState(10),[oa,da]=t.useState(!1),[ca,ua]=t.useState(7),[pa,ha]=t.useState(7),[ga,ma]=t.useState(!1),[xa,ya]=t.useState(10),[fa,_a]=t.useState(!1),[ja,ka]=t.useState(null),[ba,va]=t.useState(0),[wa,Sa]=t.useState(null),[Ca,za]=t.useState(null),[Ia,$a]=t.useState(1),[Ta,Wa]=t.useState(!1),[Na,Oa]=t.useState(!1),[Ra,Ea]=t.useState([]),Da=t.useRef(null),[Ma,Ba]=t.useState(!0),[Pa,Ua]=t.useState(()=>Math.floor(Date.now()/1e3)),[Aa,Fa]=t.useState(1),[La,Ha]=t.useState(null),[qa,Ka]=t.useState(!1),[Ja,Ya]=t.useState(()=>{try{return"1"===localStorage.getItem(_e)}catch{return!1}}),[Ga,Va]=t.useState(()=>{try{const e=localStorage.getItem(ke);return null==e||""===e||"0"!==e}catch{return!0}}),[Xa,Qa]=t.useState(()=>{try{const e=localStorage.getItem(be);return null==e||""===e||"0"!==e}catch{return!0}}),Za=t.useRef(null),ei=t.useRef(!1),ti=t.useRef(Se()),si=t.useRef(null),ai=t.useRef(null),ii=t.useRef(null),ni=t.useRef([]),li=t.useRef(null),ri=t.useRef(null),oi=t.useRef(!1),di=t.useRef({}),ci=t.useRef(!0),ui=t.useRef(""),pi=t.useRef(new Set),hi=t.useRef(!0),gi=t.useRef(!1),mi=t.useRef(null),xi=t.useMemo(()=>{const e=10*(Ds-1);return Rs.slice(e,e+10)},[Rs,Ds]);t.useEffect(()=>{const e=Math.max(1,Math.ceil(Rs.length/10));Ms(t=>t>e?e:t)},[Rs.length]);const yi=t.useMemo(()=>[...Array.isArray(wa?.support_staff)?wa.support_staff:[]].sort((e,t)=>
1{const s=e.support_online?1:0,a=t.support_online?1:0;if(a!==s)return a-s;const i=Number(e.open_ticket_count)||0,n=Number(t.open_ticket_count)||0;return n!==i?n-i:Number(e.id)-Number(t.id)}),[wa?.support_staff]),fi=t.useMemo(()=>Array.isArray(wa?.support_staff)&&0!==wa.support_staff.length?[...wa.support_staff].sort((e,t)=>{const s=Number(e.open_ticket_count)||0,a=Number(t.open_ticket_count)||0;return a!==s?a-s:Number(e.id)-Number(t.id)}):[],[wa?.support_staff]),_i=t.useMemo(()=>{const e=wa?.counts;return e?(Number(e.unassigned)||0)+(Number(e.pending)||0)+(Number(e.replied)||0):null},[wa?.counts]),ji=t.useMemo(()=>{const e=10*(Ia-1);return fi.slice(e,e+10)},[fi,Ia]);t.useEffect(()=>{const e=Math.max(1,Math.ceil(fi.length/10));$a(t=>t>e?e:t)},[fi.length]);const ki=t.useMemo(()=>{const e=9*(Aa-1);return yi.slice(e,e+9)},[yi,Aa]);t.useEffect(()=>{const e=Math.max(1,Math.ceil(yi.length/9));Fa(t=>t>e?e:t)},[yi.length]);const bi=t.useMemo(()=>{const e=10*(Ns-1);return Ts.slice(e,e+10)},[Ts,Ns]);t.useEffect(()=>{const e=Math.max(1,Math.ceil(Ts.length/10));Os(t=>t>e?e:t)},[Ts.length]);const vi=ie?"/api/ticket/manage":"/api/ticket";t.useEffect(()=>{Ea(e=>(e.forEach(e=>{try{URL.revokeObjectURL(e.previewUrl)}catch{}}),[]))},[is]),t.useEffect(()=>{Me(!1)},[is,re]),t.useEffect(()=>{if(!we)return;const e=document.documentElement,t=document.body,s=document.getElementById("main-content"),a=document.getElementById("app-outer-layout"),i=e.style.overflow,n=t.style.overflow,l=s?.style.overflow,r=a?.style.overflow;return e.style.overflow="hidden",t.style.overflow="hidden",s&&(s.style.overflow="hidden"),a&&(a.style.overflow="hidden"),()=>{e.style.overflow=i,t.style.overflow=n,s&&(s.style.overflow=l??""),a&&(a.style.overflow=r??"")}},[we]),t.useEffect(()=>{const e=mi.current;if(mi.current=ie,ie&&!1===e){const e=Se();null!=e&&(gi.current=!0,Le(1),li.current=e,ns(e))}ie||!0!==e||(ns(null),li.current=null)},[ie]);const wi=t.useMemo(()=>{const e=r();if(null==e||-1===e)return null;const t=Number(e);return Number.isFinite(t)?t:null},[]),Si=t.useCallback(async()=>{try{const e=await i.get("/api/ticket/manage/dashboard_summary");e?.data?.success&&e.data.data&&Sa(e.data.data)}catch{}},[]),Ci=t.useCallback(async()=>{try{const e=await i.get("/api/ticket/manage/today_stats");e?.data?.success&&e.data.data&&za(e.data.data)}catch{}},[]),zi=t.useCallback(async()=>{if(ie)try{const e=await i.get("/api/ticket/manage/groups");e?.data?.success&&Array.isArray(e.data.data)&&nt(e.data.data)}catch{}},[ie]);t.useEffect(()=>{ie&&o()&&ne&&Si()},[ie,ne,Si]),t.useEffect(()=>{if(!ie||!ne)return;const e=o()&&Ga,t=d()&&Xa;(e||t)&&Ci()},[ie,ne,Ga,Xa,Ci]),t.useEffect(()=>{if(!ie||!o())return;const e=setInterval(()=>Ua(Math.floor(Date.now()/1e3)),1e3);return()=>clearInterval(e)},[ie]),t.useEffect(()=>{ie&&ne&&zi()},[ie,ne,zi]),t.useEffect(()=>{if(!pt)return;const e=pt.staff_group_id,t=null!=e&&Number.isFinite(Number(e))?Number(e):null;mt(null!=t&&t>0?t:0)},[pt]),t.useEffect(()=>{lt&&dt("")},[lt]),t.useEffect(()=>{if(!wt)return;const e=e=>{"Escape"===e.key&&St(null)},t=()=>St(null);return window.addEventListener("keydown",e),window.addEventListener("scroll",t,!0),()=>{window.removeEventListener("keydown",e),window.removeEventListener("scroll",t,!0)}},[wt]),t.useEffect(()=>{oi.current=Ja},[Ja]);const Ii=t.useCallback(e=>!!(oi.current&&Ie()&&"granted"===f.permission&&("undefined"!=typeof document&&document.hidden||e&&e!==li.current)),[]),$i=t.useCallback((e,t,s)=>{try{if("granted"!==f.permission)return;const a=new f(e,{body:t||"",tag:s||"ticket"});a.onclick=()=>{try{window.focus()}catch{}a.close()}}catch{}},[]),Ti=t.useCallback(async e=>{if(!e||0===e.length)return _s({}),di.current={},void(ci.current=!0);const t=e.map(e=>e.id).join(",");if(t)try{const s=await i.get(`${vi}/unread-counts?ids=${encodeURIComponent(t)}`);if(s.data.success&&s.data.data){const t=s.data.data,a={};if(Object.keys(t).forEach(e=>{a[Number(e)]=t[e]}),oi.current&&"granted"===f.permission){if(!ci.current){const t=di.current;Object.keys(a).forEach(s=>{const i=Number(s);if((Number(a[i])||0)>(Number(t[i])||0)&&Ii(i)){const t=e.find(e=>e.id===i);$i(x("å·¥åæ°æ¶æ¯"),t?.title?`${t.title}`:`#${i}`,`ticket-unread-${i}`)}})}ci.current=!1,di.current={...a}}_s(a)}}catch{}},[vi,Ii,$i,x]),Wi=t.useCallback(async e=>{try{let e=`${vi}/?page=${Fe}&page_size=${He}`;Ye&&"all"!==Ye&&(e+=`&status=${encodeURIComponent(Ye)}`),ie&&Ct&&(e+=`&keyword=${encodeURIComponent(Ct)}`),ie&&Ve&&"all"!==Ve&&(e+=`&priority=${Ve}`),ie&&!d()&&Qe&&"all"!==Qe&&(e+=`&assignment=${encodeURIComponent(Qe)}`),ie&&"unread"===et?e+="&read_filter=unread":ie&&"read"===et&&(e+="&read_filter=read"),ie&&"ungrouped"===st?e+="&group_id=0":ie&&"internal"===st?e+="&is_internal=true":ie&&"all"!==st&&"ungrouped"!==st&&(e+=`&group_id=${encodeURIComponent(st)}`);const t=ze(ie&&1===Fe?ti.current:null),s=[],a=await i.get(e);if(a.data.success){let e=Array.isArray(a.data.data)?[...a.data.data]:[];if(ie&&1===Fe&&"all"===st){const s=[];null!=t&&(e=>{const t=ze(e);null==t||s.includes(t)||s.push(t)})(t);const a=[];for(const t of s)if(!e.some(e=>ze(e.id)===t))try{const e=await i.get(`${vi}/${t}`);e.data.success&&e.data.data&&a.push(e.data.data)}catch{}if(a.length>0){const t=new Set(a.map(e=>ze(e.id)));e=[...a,...e.filter(e=>!t.has(ze(e.id)))],e.length>He&&(e=e.slice(0,He))}}const n=`${Fe}|${He}|${Ye}|${Ve}|${d()?"":Qe}|${et}|${st}|${Ct}|${ie}|${s.join(",")}`,l=new Set(e.map(e=>e.id));ie&&oi.current&&"granted"===f.permission?ui.current!==n?(ui.current=n,pi.current=l,hi.current=!0):hi.current?(hi.current=!1,pi.current=l):(e.forEach(e
1=>{!pi.current.has(e.id)&&Ii(e.id)&&$i(x("æ°å·¥å"),e.title||`#${e.id}`,`ticket-new-${e.id}`)}),pi.current=l):(ui.current=n,pi.current=l);const r=$e(e,li.current,ri.current);Pe(r),Ae(a.data.total||0),await Ti(r)}else c(a.data.message)}catch(t){c(x("å 载工åå表失败"))}},[vi,Fe,He,Ye,Ve,Qe,et,st,Ct,is,os?.id,ie,Ti,Ii,$i,x]),Ni=t.useCallback(async()=>{const e=ot.trim();if(e){ut(!0);try{const t=await i.post("/api/ticket/manage/groups",{name:e});t.data.success?(u(x("ticket_staff_group_create_ok")),dt(""),rt(!1),await zi()):c(t.data.message)}catch(t){c(t?.response?.data?.message||x("æ´æ°å¤±è´¥"))}finally{ut(!1)}}else c(x("ticket_staff_group_name_required"))},[ot,zi,x]),Oi=t.useCallback(async e=>{try{const t=await i.delete(`/api/ticket/manage/groups/${e}`);t.data.success?(u(x("ticket_staff_group_delete_ok")),String(e)===st&&(at("all"),Le(1)),await zi(),Wi(!0)):c(t.data.message)}catch(t){c(t?.response?.data?.message||x("æ´æ°å¤±è´¥"))}},[st,zi,Wi,x]),Ri=t.useCallback(async()=>{if(!ft?.id)return;const e=jt.trim();if(e){vt(!0);try{const t=await i.put(`/api/ticket/manage/groups/${ft.id}`,{name:e});t.data.success?(u(x("ticket_staff_group_rename_ok")),_t(null),await zi(),Wi(!0)):c(t.data.message)}catch(t){c(t?.response?.data?.message||x("æ´æ°å¤±è´¥"))}finally{vt(!1)}}else c(x("ticket_staff_group_name_required"))},[ft,jt,zi,Wi,x]),Ei=t.useCallback(async()=>{if(pt?.id){yt(!0);try{const e=await i.put(`/api/ticket/manage/${pt.id}/staff_group`,{group_id:gt});e.data.success?(u(x("ticket_staff_group_set_ok")),ht(null),Wi(!0)):c(e.data.message)}catch(e){c(e?.response?.data?.message||x("æ´æ°å¤±è´¥"))}finally{yt(!1)}}},[pt,gt,Wi,x]),Di=t.useCallback(async e=>{Ha(e);try{const t=await i.put("/api/ticket/manage/support_staff_offline",{support_user_id:e});t.data.success?(u(x("客æå·²è®¾ä¸ºç¦»çº¿")),await Si(),Wi(!0)):c(t.data.message)}catch(t){c(t?.response?.data?.message||x("æ´æ°å¤±è´¥"))}finally{Ha(null)}},[Wi,Si,x]),Mi=t.useCallback(async()=>{Ka(!0);try{const e=await i.put("/api/ticket/manage/support_staff_offline_all",{});e.data.success?(u(x("å·²å
¨é¨è®¾ä¸ºç¦»çº¿")),await Si(),Wi(!0)):c(e.data.message)}catch(e){c(e?.response?.data?.message||x("æ´æ°å¤±è´¥"))}finally{Ka(!1)}},[Wi,Si,x]);t.useEffect(()=>{const e=gi.current;gi.current=!1,Wi(e)},[Wi]),t.useEffect(()=>{ni.current=Be},[Be]),t.useEffect(()=>{li.current=is},[is]),t.useEffect(()=>{ri.current=os?.id??null},[os]),t.useEffect(()=>{(is||os?.id)&&Pe(e=>{if(!e||0===e.length)return e;const t=$e(e);return e.length===t.length&&e.every((e,s)=>e.id===t[s].id)?e:t})},[is,os?.id]),t.useEffect(()=>{if(ie||!ne)return;let e=null,t=!1,s=0,a=null;const i=()=>{null!=ai.current&&(clearTimeout(ai.current),ai.current=null)},n=()=>{null!=a&&(clearInterval(a),a=null)},l=()=>{if(t)return;const e=ve(s);s+=1,ai.current=setTimeout(r,e)},r=()=>{if(t)return;i();const r=h();if(!r)return;let o;try{o=new WebSocket(r)}catch{return void l()}e=o,o.onopen=()=>{s=0,n(),a=setInterval(()=>{if(o.readyState===WebSocket.OPEN)try{o.send(JSON.stringify({type:"ping"}))}catch{}},fe)},o.onmessage=e=>{if(!t)try{const t=JSON.parse(e.data);if(!t?.success||!t.data)return;"desk_refresh"===t.data.type?Wi(!0):"assignment_notify"===t.data.type&&(f.info({title:t.data.title||x("å·¥åéç¥"),content:t.data.message||x("æ¨ææ°çå·¥åå¾
å¤ç"),duration:6,position:"bottomRight"}),Wi(!0))}catch{}},o.onerror=()=>{n();try{o.close()}catch{}},o.onclose=()=>{n(),e===o&&(e=null),t||l()}};return r(),()=>{if(t=!0,i(),n(),e&&(e.readyState===WebSocket.OPEN||e.readyState===WebSocket.CONNECTING))try{e.close()}catch{}}},[ie,ne,Wi]),t.useEffect(()=>{if(!ie||!ne)return;let e=null,t=!1,s=0,a=null;const i=()=>{null!=ii.current&&(clearTimeout(ii.current),ii.current=null)},n=()=>{null!=a&&(clearInterval(a),a=null)},l=()=>{if(t)return;const e=ve(s);s+=1,ii.current=setTimeout(r,e)},r=()=>{if(t)return;i();const r=g();if(!r)return;let c;try{c=new WebSocket(r)}catch{return void l()}e=c,c.onopen=()=>{s=0,n(),a=setInterval(()=>{if(c.readyState===WebSocket.OPEN)try{c.send(JSON.stringify({type:"ping"}))}catch{}},fe)},c.onmessage=e=>{if(!t)try{const t=JSON.parse(e.data);if(!t?.success||!t.data)return;"desk_refresh"===t.data.type?(Wi(!0),(o()&&Ga||d()&&Xa)&&Ci(),o()&&Si()):"assignment_notify"===t.data.type&&(f.info({title:t.data.title||x("å·¥åéç¥"),content:t.data.message||x("æ¨ææ°çå·¥åå¾
å¤ç"),duration:6,position:"bottomRight"}),Wi(!0))}catch{}},c.onerror=()=>{n();try{c.close()}catch{}}
1,c.onclose=()=>{n(),e===c&&(e=null),t||l()}};return r(),()=>{if(t=!0,i(),n(),e&&(e.readyState===WebSocket.OPEN||e.readyState===WebSocket.CONNECTING))try{e.close()}catch{}}},[ie,ne,Wi,Ci,Si,Ga,Xa]);const Bi=t.useCallback(async e=>{try{const t=await i.get(`${vi}/${e}`);if(li.current!==e)return;t.data.success?ds(t.data.data):c(t.data.message)}catch(t){li.current===e&&c(x("å 载工å详æ
失败"))}li.current===e&&(rs(!1),us(!1))},[vi,x]);t.useEffect(()=>{is?(ei.current=!0,Bi(is)):(rs(!1),ds(null),us(!1))},[is,Bi]),t.useEffect(()=>{ei.current&&os&&Za.current&&(ei.current=!1,setTimeout(()=>{const e=Za.current;e&&(e.scrollTop=e.scrollHeight)},50))},[os]);const Pi=t.useCallback((e,t)=>{if(!e)return;const s=e.messages&&e.messages.length>0;(s||null!=e.status||null!=e.updated_at)&&ds(a=>{if(!a||Number(a.id)!==Number(t))return a;const i=new Set((a.messages||[]).map(e=>Number(e.id))),n=[...a.messages||[]];if(s){for(const t of e.messages){const e=Number(t.id);Number.isFinite(e)&&i.has(e)||(Number.isFinite(e)&&i.add(e),n.push(t))}n.sort((e,t)=>(e.created_at||0)-(t.created_at||0))}return{...a,messages:n,status:e.status??a.status,updated_at:e.updated_at??a.updated_at,updated_time:e.updated_time??a.updated_time}})},[]);t.useEffect(()=>{if(!is||cs)return;let e=null,t=!1,s=0,a=null;const i=()=>{null!=si.current&&(clearTimeout(si.current),si.current=null)},n=()=>{null!=a&&(clearInterval(a),a=null)},l=()=>{if(t)return;const e=ve(s);s+=1,si.current=setTimeout(r,e)},r=()=>{if(t)return;i();const r=li.current;if(!r)return;const o=m(r,ie);if(!o)return;let d;try{d=new WebSocket(o)}catch{return void l()}e=d,d.onopen=()=>{s=0,n(),a=setInterval(()=>{if(d.readyState===WebSocket.OPEN)try{d.send(JSON.stringify({type:"ping"}))}catch{}},fe)},d.onmessage=e=>{const s=li.current;if(s&&!t)try{const t=JSON.parse(e.data);if(!t?.success||!t.data)return;if(li.current!==s)return;((e,t)=>{const s=e?.messages;if(s&&s.length>0&&oi.current&&"granted"===f.permission&&"undefined"!=typeof document&&document.hidden){const e=function(e){if(!e||"string"!=typeof e)return"";try{const t=document.createElement("div");return t.innerHTML=e,(t.textContent||"").replace(/\s+/g," ").trim().slice(0,160)}catch{return e.replace(/<[^>]+>/g," ").replace(/\s+/g," ").trim().slice(0,160)}}(s[s.length-1].content)||x("å·¥åæ°æ¶æ¯");$i(x("å·¥åæ°æ¶æ¯"),e,`ticket-open-${t}`)}Pi(e,t)})(t.data,s)}catch{}},d.onerror=()=>{n();try{d.close()}catch{}},d.onclose=()=>{n(),e===d&&(e=null),t||li.current===r&&l()}};return r(),()=>{if(t=!0,i(),n(),e&&(e.readyState===WebSocket.OPEN||e.readyState===WebSocket.CONNECTING))try{e.close()}catch{}}},[is,cs,ie,Pi,$i,x]),t.useEffect(()=>{ie&&d()?(Zs(!1),(async()=>{try{const[e,t]=await Promise.all([i.get("/api/user/self"),i.get("/api/ticket/manage/support_staff_status")]);if(e.data.success&&e.data.data){const t=e.data.data;ks(!!t.support_online);const s=t.support_ticket_cap,a=t.effective_support_ticket_cap;Ss(null!=s&&""!==s?Number(s):null),zs(null!=a&&""!==a?Number(a):null)}if(t.data.success){const e=Ee(t.data.data);Ws(e.staff),Gs(e.supportAssignUsedToday),Xs(e.supportAssignDailyCap)}}catch{}finally{Zs(!0)}})()):Zs(!0)},[ie]);const Ui=async()=>{try{const e=await i.get("/api/ticket/manage/support_staff_status");if(e.data.success){const t=Ee(e.data.data);Ws(t.staff),na(t.defaultSupportTicketCap),ra(t.defaultSupportTicketCap),ua(t.autoCloseDays),ha(t.autoCloseDays),Xs(t.supportAssignDailyCap),d()&&Gs(t.supportAssignUsedToday),o()&&ya(t.supportAssignDailyCap)}}catch{}},Ai=500,Fi=t.useCallback(async()=>{try{const e=await i.get("/api/internal-ticket/org/departments");e.data.success&&Xt(e.data.data||[])}catch{}},[]),Li=t.useCallback(async e=>{if(e)try{const t=await i.get(`/api/internal-ticket/dept/${e}/members`);t.data.success&&Zt(t.data.data||[])}catch{}},[]),Hi=t.useCallback(async(e,t={})=>{ts(!0);let s=!1;try{const a=await i.put(e,t);a.data.success?(u(x("æä½æå")),Bi(os?.id),Wi(),s=!0):c(a.data.message||x("æä½å¤±è´¥"))}catch(a){c(a.message||x("æä½å¤±è´¥"))}return ts(!1),s},[os?.id,Wi,Bi,x]),qi=async()=>{const e=[ps.trim(),Ra.map(e=>`[[tickets3:${e.key}
1]]`).join("\n")].filter(Boolean).join("\n");if(!e)return;const t=Ra.map(e=>e.previewUrl);ms(!0);try{const s=`${vi}/${is}/message`,a=await i.post(s,{content:e});if(a.data.success){const e=a.data.data,s=is;e&&null!=e.id&&s&&ds(t=>{if(!t||Number(t.id)!==Number(s))return t;const a=t.messages||[],i=Number(e.id);if(a.some(e=>Number(e.id)===i))return t;const n=[...a,e].sort((e,t)=>(e.created_at||0)-(t.created_at||0));return{...t,messages:n}}),hs(""),Ea([]),t.forEach(e=>{try{URL.revokeObjectURL(e)}catch{}}),ei.current=!0,Pe(e=>e&&0!==e.length&&s?$e(e):e),Wi(!0)}else c(a.data.message)}catch(s){c(x("åéæ¶æ¯å¤±è´¥"))}ms(!1)},Ki=t.useCallback(e=>{Ea(t=>{const s=t.find(t=>t.id===e);if(s?.previewUrl)try{URL.revokeObjectURL(s.previewUrl)}catch{}return t.filter(t=>t.id!==e)})},[]),Ji=t.useCallback(async e=>{if(!e||!is)return;const t=is;if(!String(e.type||"").startsWith("image/"))return void c(x("ticket_image_invalid_type"));const s=URL.createObjectURL(e),a=`${Date.now()}_${Math.random().toString(36).slice(2,11)}`;Oa(!0);try{const n=new FormData;n.append("file",e);const l=await i.post(`${vi}/${t}/attachments/upload`,n,{skipErrorHandler:!0});if(l.data.success&&l.data.data?.key){if(li.current!==t)return void URL.revokeObjectURL(s);Ea(e=>[...e,{id:a,key:l.data.data.key,previewUrl:s}])}else URL.revokeObjectURL(s),c(l.data.message||x("ticket_image_upload_failed"))}catch(n){URL.revokeObjectURL(s),c(n?.response?.data?.message||x("ticket_image_upload_failed"))}finally{Oa(!1)}},[vi,is,x]),Yi=async e=>{const t=e.target,s=t.files&&t.files[0];t.value="",await Ji(s)},Gi=e=>{if(Na||gs||!is)return;if("closed"===os?.status)return;const t=e.clipboardData;if(!t)return;const s=t=>!(!t||"string"!=typeof t.type||!t.type.startsWith("image/")||(e.preventDefault(),e.stopPropagation(),Ji(t),0));if(t.files&&t.files.length>0)for(let i=0;i<t.files.length;i++)if(s(t.files[i]))return;const a=t.items;if(a&&0!==a.length)for(let i=0;i<a.length;i++){const e=a[i];if("file"===e.kind&&"string"==typeof e.type&&e.type.startsWith("image/")&&s(e.getAsFile()))return}},Vi=()=>{v.confirm({title:x("å
³éå·¥å"),content:x("å
³éå·¥å确认说æ"),okText:x("ç¡®å®"),cancelText:x("åæ¶"),onOk:async()=>{try{const e=await i.put(`/api/ticket/${is}/close`);e.data.success?(u(x("å·¥åå·²å
³é")),Bi(is),Wi()):c(e.data.message)}catch(e){c(x("å
³éå·¥å失败"))}}})},Xi=async e=>{try{const t=await i.put(`/api/ticket/manage/${is}/status`,{status:e});t.data.success?(u(x("ç¶ææ´æ°æå")),Bi(is),Wi()):c(t.data.message)}catch(t){c(x("æ´æ°ç¶æå¤±è´¥"))}};t.useEffect(()=>{Us&&(o()||d())&&(async()=>{try{const e=await i.get("/api/ticket/manage/support_staff_status");if(e.data.success){const t=Ee(e.data.data);Ws(t.staff),na(t.defaultSupportTicketCap),Xs(t.supportAssignDailyCap),d()&&Gs(t.supportAssignUsedToday)}}catch{}})()},[Us]);const Qi=t.useMemo(()=>{const e=(Ts||[]).filter(e=>e.support_online),t=[{value:0,label:x("æªåé
æ± ")},...e.map(e=>({value:e.id,label:`${e.username||e.id}${e.display_name?` (${e.display_name})`:""}`}))],s=null==Hs?0:Number(Hs);if(s>0&&!e.some(e=>e.id===s)){const e=Ts.find(e=>e.id===s);t.push({value:s,label:e?`${e.username||s}${e.display_name?` (${e.display_name})`:""} · ${x("离线")}`:`${x("客æ")} ID ${s} · ${x("离线")}`,disabled:!0})}return t},[Ts,Hs,x]),Zi=t.useCallback((e,t)=>{St(null),t&&"function"==typeof t.stopPropagation&&t.stopPropagation(),Boolean(e?.is_internal)||!e&&Boolean(os?.is_internal)?c(x("å
é¨å·¥å请使ç¨ãææ´¾é¨é¨ / ææ´¾å¤ç人ãï¼ä¸è½ä½¿ç¨å®¢æææ´¾")):(e&&e.id?(Ls(e.id),qs(e.assigned_to??0)):is&&os?(Ls(is),qs(os.assigned_to??0)):is&&(Ls(is),qs(0)),As(!0))},[is,os,c,x]),en=t=>{const s=ge[t]||"default",a=me[t]||t;return e.jsx(C,{color:s,size:"small",children:x(a)})},tn=t=>{const s=xe[t]||"default",a=ye[t]||t;return e.jsx(C,{color:s,size:"small",children:x(a)})},sn=(t={})=>{const{mergeManageSummary:s=!1,summaryOnlyHeader:a=!1,extraTodayRowCards:i=null}=t,n=ne&&!a,l=s&&ne||a,r=a?x("æ±æ»æ°æ®"):d()?x("å·¥å仿¥ç»è®¡èå´æ¬äºº"):x("å·¥å仿¥ç»è®¡èå´å
¨ç«");return e.jsxs(e.Fragment,{children:[e.jsxs("div",{role:"button",tabIndex:0,onClick:()=>Ba(e=>!e),onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),Ba(e=>!e))},style:{display:"flex",justifyContent:"space-between",alignItems:"center",userSelect:"none",gap:8,cursor:"pointer"},children:[e.jsx(de,{type:"tertiary",size:14,style:{flex:1,minWidth:0},children:r}),Ma?e.jsx(Z,{size:14}):e.jsx(ee,{size:14})]}),e.jsx(E,{isOpen:Ma,children:e.jsxs("div",{style:{display:"flex",flexWrap:"nowrap",gap:10,overflowX:"auto",overflowY:"hidden",WebkitOverflowScrolling:"touch",paddingBottom:2},children:[n?[{key:"accept",field:"accept_today",label:x("仿¥æ¥åæ°é")},{key:"unreplied",field:"unreplied_today",label:x("仿¥æªåå¤å·¥åæ°é")},{key:"closed",field:"closed_today",label:x("仿¥å·²å
³é工忰é")},{key:"replied",field:"replied_today",label:x("仿¥å·²åå¤å·¥åæ°é")},{key:"notclosed",field:"not_closed_today",label:x("仿¥æªå
³é工忰é")}].map(t=>{const s=Ca?Ca[t.field]:null,a=null==s?"â":String(s);return e.jsxs("div",{style:{minWidth:108,flexShrink:0,padding:"10px 14px",borderRadius:8,border:"1px solid hsl(var(--border))",background:"hsl(var(--card))"},children:[e.jsx(de,{type:"secondary",size:"small",style:{display:"block",marginBottom:4},children:t.label}),e.jsx(de,{strong:!0,style:{fontSize:18},children:a})]},t.key)}):null,n&&l?e.jsx("div",{"aria-hidden":!0,style:{width:1,flexShrink:0,alignSelf:"stretch",minHeight:44,margin:"4px 4px 4px 0",background:"hsl(var(--border))"}}):null,l?[{key:"unassigned",label:x("æªåé
å·¥å"),value:wa?.counts?.unassigned},{key:"pending",label:x("å¾
å¤çå·¥å"),value:wa?.counts?.pending},{key:"replied",label:x("å·²åå¤å·¥å"),value:wa?.counts?.replied},{key:"closed",label:x("å·²å
³éå·¥å"),value:wa?.counts?.closed}].map(t=>e.jsxs("div",{style:{minWidth:100,flexShrink:0,padding:"10px 14px",borderRadius:8,border:"1px solid hsl(var(--border))",background:"hsl(var(--card))"},children:[e.jsx(de,{type:"secondary",size:"small",style:{display:"block",marginBottom:4},children:t.label}),e.jsx(de,{strong:!0,style:{fontSize:18},children:void 0===t.value||null===t.value?"â":t.value})]},t.key)):null,i]})})]})},an=e.jsxs("div",{role:wa?"button":void 0,tabIndex:wa?0:void 0,onClick:()=>{wa&&Wa(!0)},onKeyDown:e=>{!wa||"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),Wa(!0))},style:{minWidth:164,flexShrink:0,padding:"10px 14px",borderRadius:8,border:"1px solid hsl(var(--border))",background:"hsl(var(--card))",cursor:wa?"pointer":"default",display:"flex",alignItems:"flex-start",ga
1p:10},children:[e.jsx(H,{size:22,style:{flexShrink:0,marginTop:2,opacity:wa?1:.45}}),e.jsxs("div",{style:{minWidth:0},children:[e.jsx(de,{strong:!0,style:{fontSize:14,display:"block",marginBottom:4},children:x("ticket_dashboard_insights_card_title")}),wa?e.jsxs(de,{type:"tertiary",size:"small",children:[x("æªå
³éå计"),": ",_i??"â"," ·"," ",yi.length>0?`${x("å
±")} ${yi.length} ${x("人")}`:x("ææ å®¢æè´¦å·")]}):e.jsx(_,{size:14}),e.jsx(de,{type:"tertiary",size:"small",style:{display:"block",marginTop:4},children:x("ticket_dashboard_insights_card_hint")})]})]});return ie||ne?e.jsxs("div",{className:we?void 0:"px-2",style:{height:"calc(100vh - var(--app-header-offset, 80px))",display:"flex",flexDirection:"column",overflow:"hidden"},children:[!we&&e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:le?"8px 0":"16px 0",flexWrap:"wrap",gap:8,flexShrink:0},children:[e.jsx(ce,{heading:5,style:{margin:0},children:x(ie?"å·¥å管ç":"管çåè·è¸ªæ¨çå·¥å")}),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,flexWrap:"wrap"},children:[ie&&d()&&e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,flexWrap:"wrap"},children:[e.jsx(de,{type:"secondary",size:14,children:x("å¨çº¿æ¥å")}),e.jsx(k,{checked:js,loading:bs,onChange:async e=>{vs(!0);try{const t=await i.put("/api/user/self/support_online",{online:e});t.data.success?(ks(e),u(x("å·²æ´æ°å¨çº¿ç¶æ")),ie&&Wi()):c(t.data.message)}catch{c(x("æ´æ°å¤±è´¥"))}vs(!1)}}),null!=Cs&&Number.isFinite(Cs)&&Cs>0&&e.jsx(de,{type:"secondary",size:14,children:Number(ws)>0?x("å·¥åå®¢ææ¥åä¸é_èªè®¾",{cap:ws}):x("å·¥åå®¢ææ¥åä¸é_é»è®¤",{cap:Cs})})]}),ie&&d()&&e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[e.jsx(de,{type:"secondary",size:14,children:x("仪表ç")}),e.jsx(k,{checked:Xa,onChange:e=>{try{localStorage.setItem(be,e?"1":"0")}catch{}Qa(!!e)}})]}),ie&&o()&&e.jsx(b,{icon:e.jsx(q,{size:16}),onClick:async()=>{$s(!0),Ms(1),Os(1),Ps(!0);try{const[e,t]=await Promise.all([i.get("/api/ticket/manage/support_staff_status"),i.get("/api/ticket/manage/agent_ticket_status")]);if(e.data.success){const t=Ee(e.data.data);Ws(t.staff),na(t.defaultSupportTicketCap),ra(t.defaultSupportTicketCap),ua(t.autoCloseDays),ha(t.autoCloseDays),Xs(t.supportAssignDailyCap),ya(t.supportAssignDailyCap)}t.data.success&&Es(t.data.data||[])}catch{c(x("å 载失败"))}Ps(!1)},children:x("客æä¸åç«")}),ie&&o()&&e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[e.jsx(de,{type:"secondary",size:14,children:x("仪表ç")}),e.jsx(k,{checked:Ga,onChange:e=>{try{localStorage.setItem(ke,e?"1":"0")}catch{}Va(!!e)}})]}),!ie&&e.jsx(b,{theme:"solid",icon:e.jsx(K,{size:16}),onClick:()=>$t(!0),children:x("æ°å»ºå·¥å")}),ie&&(o()||d()||p())&&e.jsx(b,{icon:e.jsx(K,{size:16}),onClick:()=>Ot(!0),children:x("æ°å»ºå
é¨å·¥å")}),Ie()&&e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8},children:[e.jsx(de,{type:"secondary",size:14,children:x("工忡颿é")}),e.jsx(k,{checked:Ja,onChange:async e=>{if(e){if(!Ie())return void c(x("æµè§å¨ä¸æ¯ææ¡é¢æé"));let e=f.permission;if("default"===e&&(e=await f.requestPermission()),"granted"!==e)return void c(x("æªæäºéç¥æé"));try{localStorage.setItem(_e,"1")}catch{}Ya(!0),ci.current=!0,hi.current=!0,u(x("å·²å¼å¯æ¡é¢æé"))}else{try{localStorage.removeItem(_e)}catch{}Ya(!1)}}})]})]})]}),ie&&o()&&Ga&&!le&&e.jsxs("div",{style:{marginBottom:12,display:"flex",flexDirection:"column",gap:10,flexShrink:0},children:[e.jsx("div",{style:{borderRadius:8,border:"1px solid hsl(var(--border))",background:"hsl(var(--background))",padding:12,display:"flex",flexDirection:"column",gap:12},children:sn(ne?{mergeManageSummary:!0,extraTodayRowCards:an}:{summaryOnlyHeader:!0,extraTodayRowCards:an})}),e.jsxs(v,{visible:Ta,title:x("ticket_dashboard_insights_modal_title"),onCancel:()=>Wa(!1),footer:null,width:920,style:{top:36},bodyStyle:{maxHeight:"calc(100vh - 160px)",overflowY:"auto"},children:[e.jsxs("div",{style:{marginBottom:20},children:[e.jsx(de,{strong:!0,size:14,style:{display:"block",marginBottom:8},children:x("æªå
³éå·¥åæè¡æ¦")}),wa?0===fi.length?e.jsx(de,{type:"tertiary",size:14,children:x("ææ æè¡æ°æ®")}):e.jsx(w,{size:"small",rowKey:"id",dataSource:ji,pagination:{currentPage:Ia,pageSize:10,total:fi.length,showSizeChanger:!1,showTotal:!0,onPageChange:e=>$a(e)},columns:[{title:x("æå"),width:56,render:(e,t,s)=>10*(Ia-1)+s+1},{title:x("客æ"),render:(e,t)=>(t.display_name||t.username||"").trim()||`${x("客æ")} ID ${t.id}`},{title:x("æªå
³éæ°"),dataIndex:"open_ticket_count",width:88}]}):e.jsx(_,{})]}),e.jsxs("div",{children:[e.jsx(de,{strong:!0,size:14,style:{display:"block",marginBottom:8},children:x("客æç¶æä¸æªå
³éå·¥å")}),wa?0===yi.length?e.jsx(de,{type:"tertiary",size:14,children:x("ææ å®¢æè´¦å·")}):e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:8},children:[yi.some(e=>e.support_online)?e.jsx("div",{style:{display:"flex",justifyContent:"flex-end",marginBottom:2},children:e.jsx(S,{title:x("å
¨é¨å®¢æä¸çº¿ç¡®è®¤"),onConfirm:Mi,children:e.jsx(b,{type:"danger",theme:"borderless",size:"small",loading:qa,disabled:null!=La,children:x("å
¨é¨å®¢æä¸çº¿")})})}):null,e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(248px, 1fr))",gap:12},children:ki.map(t=>{const s=(t.display_name||t.username||"").trim()||`${x("客æ")} ID ${t.id}`,a=Number(t.support_online_at),i=t.support_online&&a>0?a:null;return e.jsxs("div",{style:{borderRadius:8,border:"1px solid hsl(var(--border))",background:"hsl(var(--background))",padding:"12px 14px",display:"flex",flexDirection:"column",gap:10,minWidth:0},children:[e.jsxs("div",{style:{display:"flex",alignItems:"flex-start",ga
1p:10,minWidth:0},children:[e.jsx("span",{"aria-hidden":!0,style:{width:8,height:8,borderRadius:"50%",marginTop:6,flexShrink:0,background:t.support_online?"hsl(var(--success))":"hsl(var(--muted-foreground) / 0.60)"}}),e.jsxs("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",gap:4},children:[e.jsxs("div",{style:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:8,rowGap:4},children:[e.jsx(de,{strong:!0,ellipsis:{showTooltip:!0},style:{maxWidth:"100%"},children:s}),e.jsx(C,{color:t.support_online?"green":"grey",size:"small",style:{margin:0,flexShrink:0},children:t.support_online?x("å¨çº¿"):x("离线")})]}),t.support_online?e.jsx(de,{type:"tertiary",size:14,children:null!=i?`${x("å·²å¨çº¿")}${Re(i,Pa,x)}`:x("ä¸çº¿æ¶é´æªè®°å½")}):e.jsx("div",{style:{minHeight:22}})]})]}),e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:8,flexWrap:"wrap",paddingTop:8,borderTop:"1px solid hsl(var(--border))"},children:[e.jsxs("div",{style:{display:"flex",alignItems:"baseline",gap:6},children:[e.jsx(de,{type:"secondary",size:14,children:x("æªå
³éå·¥å")}),e.jsx(de,{strong:!0,style:{fontSize:20},children:t.open_ticket_count??0})]}),t.support_online?e.jsx(S,{title:x("ä¸çº¿è¯¥å®¢æç¡®è®¤"),onConfirm:()=>Di(t.id),children:e.jsx(b,{type:"danger",size:"small",loading:La===t.id,disabled:qa||null!=La&&La!==t.id,children:x("ä¸çº¿è¯¥å®¢æ")})}):null]})]},t.id)})}),yi.length>9?e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",gap:8,flexWrap:"wrap"},children:[e.jsx(de,{type:"tertiary",size:14,children:(()=>{const e=yi.length,t=9*(Aa-1)+1,s=Math.min(9*Aa,e);return`${x("æ¾ç¤ºç¬¬")} ${t} ${x("æ¡ - 第")} ${s} ${x("æ¡ï¼å
±")} ${e} ${x("æ¡")}`})()}),e.jsxs("div",{style:{display:"inline-flex",alignItems:"center",gap:8},children:[e.jsxs(de,{type:"tertiary",size:14,children:[x("æ»é¡µæ°"),":"," ",Math.max(1,Math.ceil(yi.length/9))]}),e.jsx(z,{total:yi.length,pageSize:9,currentPage:Aa,onChange:Fa,size:"small",showSizeChanger:!1,showTotal:!1})]})]}):null]}):e.jsx(_,{})]})]})]}),ie&&d()&&Xa&&ne&&!le&&e.jsx("div",{style:{marginBottom:12,display:"flex",flexDirection:"column",gap:10,flexShrink:0},children:sn()}),e.jsxs("div",{style:{display:"flex",flex:1,gap:le?0:16,minHeight:0,paddingBottom:we?0:16},children:[e.jsxs("div",{style:{width:le?"100%":ie?500:360,minWidth:le?0:ie?440:300,display:le&&"detail"===re?"none":"flex",flexDirection:"row",flexShrink:0,background:"hsl(var(--card))",borderRadius:le?0:12,border:le?"none":"1px solid hsl(var(--border))",overflow:"hidden"},children:[ie?e.jsxs("div",{style:{width:le?88:140,flexShrink:0,alignSelf:"stretch",minHeight:0,display:"flex",flexDirection:"column",borderRight:"1px solid hsl(var(--border))",background:"hsl(var(--background))",boxSizing:"border-box"},children:[e.jsxs("div",{style:{flex:1,minHeight:0,overflowY:"auto",padding:"6px 0"},children:[e.jsx(de,{strong:!0,size:"small",style:{display:"block",padding:le?"4px 8px 6px":"4px 16px 8px",color:"hsl(var(--muted-foreground))",fontSize:le?11:void 0},children:x("ticket_staff_group_sidebar_title")}),[{key:"all",label:x("ticket_staff_group_filter_all")},{key:"ungrouped",label:x("ticket_staff_group_filter_ungrouped")}].map(t=>{const s=st===t.key;return e.jsx("div",{role:"button",tabIndex:0,onClick:()=>{at(t.key),Le(1)},onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),at(t.key),Le(1))},style:{padding:le?"6px 4px":"7px 10px",margin:le?"0 4px 3px":"0 6px 4px",borderRadius:6,cursor:"pointer",fontSize:le?12:13,lineHeight:le?"16px":"18px",color:"hsl(var(--foreground))",background:s?"hsl(var(--primary) / 0.12)":"transparent",fontWeight:s?600:400},children:e.jsx(de,{size:"small",ellipsis:{showTooltip:!0},style:{display:"block",color:"inherit",fontWeight:"inherit",fontSize:le?12:void 0},children:t.label})},t.key)}),it.map(t=>{const s=String(t.id),a=st===s;return e.jsxs("div",{style:{display:"flex",alignItems:"center",margin:le?"0 4px 3px":"0 6px 4px",borderRadius:6,background:a?"hsl(var(--primary) / 0.12)":"transparent",minWidth:0},children:[e.jsx("div",{role:"button",tabIndex:0,onClick:()=>{at(s),Le(1)},onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),at(s),Le(1))},style:{flex:1,minWidth:0,padding:le?"6px 2px 6px 6px":"7px 4px 7px 10px",cursor:"pointer"},children:e.jsx(de,{size:"small",ellipsis:{showTooltip:!0},style:{display:"block",color:"inherit",fontWeight:a?600:400,fontSize:le?12:void 0},children:t.name})}),!le&&e.jsx(I,{trigger:"click",position:"bottomRight",getPopupContainer:()=>document.body,menu:[{node:"item",name:x("ticket_staff_group_rename"),onClick:()=>
1{_t({id:t.id,name:t.name}),kt(t.name)}},{node:"item",name:x("ticket_staff_group_delete"),onClick:()=>{v.confirm({title:x("ticket_staff_group_delete_modal_title"),content:x("ticket_staff_group_delete_confirm"),onOk:()=>Oi(t.id)})}}],children:e.jsx(b,{type:"tertiary",theme:"borderless",size:"small",icon:e.jsx(J,{size:16}),onClick:e=>e.stopPropagation(),style:{flexShrink:0,marginRight:2}})})]},t.id)}),(o()||d()||p())&&e.jsxs(e.Fragment,{children:[e.jsx("div",{style:{height:1,margin:"10px 12px 4px",background:"hsl(var(--border))"}}),e.jsx("div",{role:"button",tabIndex:0,onClick:()=>{at("internal"),Le(1)},onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),at("internal"),Le(1))},style:{padding:"7px 10px",margin:"0 6px 4px",borderRadius:6,cursor:"pointer",fontSize:13,lineHeight:"18px",color:"hsl(var(--foreground))",background:"internal"===st?"hsl(var(--primary) / 0.12)":"transparent",fontWeight:"internal"===st?600:400},children:e.jsx(de,{size:"small",ellipsis:{showTooltip:!0},style:{display:"block",color:"internal"===st?"hsl(245, 50%, 55%)":"inherit",fontWeight:"inherit"},children:x("å
é¨å·¥å")})})]}),e.jsx("div",{style:{height:1,margin:"10px 12px 8px",background:"hsl(var(--border))"}}),e.jsx(de,{size:"small",style:{display:"block",padding:"0 16px 6px",color:"hsl(var(--muted-foreground))"},children:x("ticket_sidebar_read_filter_title")}),[{key:"unread",label:x("ticket_list_filter_unread")},{key:"read",label:x("ticket_list_filter_read")}].map(t=>{const s=et===t.key;return e.jsx("div",{role:"button",tabIndex:0,onClick:()=>{tt(t.key),Le(1)},onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),tt(t.key),Le(1))},style:{padding:"7px 10px",margin:"0 6px 4px",borderRadius:6,cursor:"pointer",fontSize:13,lineHeight:"18px",color:"hsl(var(--foreground))",background:s?"hsl(var(--primary) / 0.12)":"transparent",fontWeight:s?600:400},children:e.jsx(de,{size:"small",ellipsis:{showTooltip:!0},style:{display:"block",color:"inherit",fontWeight:"inherit"},children:t.label})},t.key)})]}),e.jsx("div",{style:{flexShrink:0,padding:8,borderTop:"1px solid hsl(var(--border))"},children:e.jsx(b,{theme:"solid",size:"small",block:!0,onClick:()=>rt(!0),children:x("ticket_staff_group_create")})})]}):null,e.jsxs("div",{style:{flex:1,minWidth:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:[e.jsx("div",{style:{padding:"12px",borderBottom:"1px solid hsl(var(--border))",display:"flex",gap:8,flexWrap:"wrap",alignItems:"center"},children:ie?e.jsxs(e.Fragment,{children:[e.jsx($,{prefix:e.jsx(Y,{size:16}),placeholder:x("æç´¢å·¥å..."),size:"small",value:Ct,onChange:zt,onEnterPress:Wi,style:{flex:"1 1 120px",minWidth:100}}),e.jsxs(T,{size:"small",value:Ye,onChange:Ge,style:{width:90},children:[e.jsx(T.Option,{value:"not_closed",children:x("å·¥åçéä¸å«å·²å
³é")}),e.jsx(T.Option,{value:"all",children:x("å
¨é¨ç¶æ")}),e.jsx(T.Option,{value:"pending",children:x("å¾
å¤ç")}),e.jsx(T.Option,{value:"replied",children:x("å·²åå¤")}),e.jsx(T.Option,{value:"closed",children:x("å·²å
³é")})]}),!le&&e.jsxs(T,{size:"small",value:""===et?"all":et,onChange:e=>{tt("all"===e?"":e),Le(1)},style:{width:104},children:[e.jsx(T.Option,{value:"all",children:x("ticket_list_read_filter_all")}),e.jsx(T.Option,{value:"unread",children:x("ticket_list_filter_unread")}),e.jsx(T.Option,{value:"read",children:x("ticket_list_filter_read")})]}),e.jsxs(T,{size:"small",value:Ve,onChange:Xe,style:{width:90},children:[e.jsx(T.Option,{value:"all",children:x("å
¨é¨ä¼å
级")}),e.jsx(T.Option,{value:"low",children:x("ä½")}),e.jsx(T.Option,{value:"normal",children:x("æ®é")}),e.jsx(T.Option,{value:"high",children:x("é«")}),e.jsx(T.Option,{value:"urgent",children:x("ç´§æ¥")})]}),!d()&&e.jsxs(T,{size:"small",value:Qe,onChange:Ze,style:{width:108},children:[e.jsx(T.Option,{value:"all",children:x("å
¨é¨ææ´¾ç¶æ")}),e.jsx(T.Option,{value:"assigned",children:x("å·²ææ´¾")}),e.jsx(T.Option,{value:"unassigned",children:x("æªææ´¾")})]})]}):e.jsx(e.Fragment,{children:e.jsxs(T,{size:"small",value:Ye,onChange:Ge,style:{width:"100%"},children:[e.jsx(T.Option,{value:"not_closed",children:x("å·¥åçéä¸å«å·²å
³é")}),e.jsx(T.Option,{value:"all",children:x("å
¨é¨ç¶æ")}),e.jsx(T.Option,{value:"pending",children:x("å¾
å¤ç")}),e.jsx(T.Option,{value:"replied",children:x("å·²åå¤")}),e.jsx(T.Option,{value:"closed",children:x("å·²å
³é")})]})})}),e.jsx("div",{style:{flex:1,overflowY:"auto"},children:Ke?e.jsx("div",{style:{textAlign:"center",padding:40},children:e.jsx(_,{})}):0===Be.length?e.jsx(W,{image:e.jsx(O,{style:{width:120,height:120}}),darkModeImage:e.jsx(N,{style:{width:120,height:120}}),description:x("ææ å·¥å"),style:{padding:40}}):Be.map(s=>{const a=is===s.id?0:Number(fs[s.id]||0),i=ie?e.jsxs("div",{style:{padding:"4px 2px",maxWidth:320},children:[e.jsx(de,{type:"secondary",size:"small",style:{display:"block",marginBottom:6},children:x("å·¥å详æ
")}),e.jsxs(de,{type:"quaternary",size:"small",style:{display:"block",marginBottom:8,fontSize:11},children:["#",s.id]}),e.jsxs(de,{type:"tertiary",size:"small",style:{display:"block"},children:[x("ç¨æ·"),":"," ",s.username||s.display_name||s.user_id]}),e.jsxs(de,{type:"tertiary",size:"small",style:{display:"block",marginTop:6},children:[x("ticket_staff_group_hover_title"),":"," ",s.staff_group_name?.trim()?s.staff_group_name:x("ticket_staff_group_none")]}),e.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:8,marginTop:8,alignItems:"center"},children:[s.parent_id?e.jsx(C,{size:"small",color:"violet",children:x("åç«")}):e.jsx(C,{size:"small",color:"cyan",children:x("主ç«")}),s.parent_id&&s.agent_domain&&e.jsx(de,{type:"tertiary",size:"small",ellipsis:{showTooltip:!0},style:{maxWidth:260},children:s.agent_domain}),!1===s.ticket_enabled&&e.jsx(C,{size:"small",color:"grey",children:x("åç«å·¥åå·²å
³")})]}),s.assigned_to&&!d()?e.jsxs(de,{type:"tertiary",size:"small",style:{display:"block",marginTop:8},children:[x("å¤ç客æ"),":"," ",Te(s)||"â"]}
1):null]}):null,n=!d()||Qs&&Ys<Vs,l=ie&&!s.is_internal&&(o()||d())&&n&&"closed"!==s.status,r=wt?.ticket?.id===s.id,c=ss===s.id||r,u=is!==s.id&&c,p=ie?e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,minWidth:0,maxWidth:148},children:[e.jsx(G,{size:14,style:{color:"hsl(var(--muted-foreground))",flexShrink:0}}),e.jsx(de,{type:"secondary",size:"small",ellipsis:{showTooltip:!0},style:{minWidth:0},children:s.username||s.display_name||s.user_id})]}):null,h=e.jsxs("div",{onContextMenu:e=>{if(!ie)return;e.preventDefault(),e.stopPropagation();const{x:t,y:a}=function(e,t,s=168,a=40){if("undefined"==typeof window)return{x:e,y:t};let i=Math.max(6,e),n=Math.max(6,t);return i+s+6>window.innerWidth&&(i=Math.max(6,window.innerWidth-s-6)),n+a+6>window.innerHeight&&(n=Math.max(6,window.innerHeight-a-6)),{x:i,y:n}}(e.clientX,e.clientY,168,l?76:40);St({x:t,y:a,ticket:s,showAssign:l})},onClick:()=>{St(null),ls||li.current===s.id||(rs(!0),li.current=s.id,ie&&(Pe(e=>$e(e,s.id,s.id)),Ce(s.id)),ns(s.id),le&&je("detail"))},onMouseEnter:()=>{as(s.id)},onMouseLeave:()=>{as(e=>e===s.id?null:e)},style:{padding:"12px 16px",cursor:ls?"not-allowed":"pointer",borderBottom:"1px solid hsl(var(--border))",transition:"background 180ms ease, border-left-color 180ms ease, box-shadow 180ms ease",borderLeft:is===s.id?"3px solid hsl(var(--primary))":c?"3px solid hsl(var(--primary) / 0.24)":"3px solid transparent",background:is===s.id?"hsl(var(--primary) / 0.12)":u?"linear-gradient(135deg, rgba(255,255,255,0.38), rgba(255,255,255,0.16))":"transparent",backdropFilter:u?"blur(10px) saturate(145%)":"none",WebkitBackdropFilter:u?"blur(10px) saturate(145%)":"none",boxShadow:u?"inset 0 0 0 1px rgba(255,255,255,0.35), 0 4px 12px rgba(31,35,41,0.08)":"none",opacity:ls?.72:1},children:[e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:4,gap:8},children:[e.jsx(de,{strong:!0,ellipsis:{showTooltip:!0},style:{maxWidth:160,minWidth:0,flex:1},children:s.title}),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",justifyContent:"flex-end",flexShrink:0},children:[s.is_internal&&e.jsx(C,{color:"violet",size:"small",children:x("å
é¨å·¥å")}),a>0&&e.jsx(C,{color:"red",size:"small",children:a}),en(s.status),tn(s.priority),Oe(ie,s)?e.jsx(de,{size:"small",strong:!0,style:{color:"hsl(var(--destructive))",flexShrink:0},children:x("å¼å¸¸å·¥å")}):null]})]}),(!ie||!l)&&e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:ie?4:0},children:[e.jsx("div",{style:{display:"flex",alignItems:"center",gap:6},children:!ie&&e.jsxs(de,{type:"quaternary",size:"small",style:{fontSize:11},children:["#",s.id]})}),ie?e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,minWidth:0},children:[p,e.jsx(de,{type:"tertiary",size:"small",style:{flexShrink:0},children:s.created_time||""})]}):e.jsx(de,{type:"tertiary",size:14,children:s.created_time||""})]}),l&&e.jsxs("div",{style:{marginTop:8,display:"flex",justifyContent:"space-between",alignItems:"center",gap:8},children:[e.jsx("div",{style:{maxWidth:100,minWidth:0,overflow:"hidden",flexShrink:0},children:e.jsx(b,{size:"small",theme:"light",icon:e.jsx(V,{size:16}),onClick:e=>Zi(s,e),style:{width:"100%",maxWidth:"100%",minWidth:0,paddingLeft:4,paddingRight:4},title:s.assigned_to?We(s):x("ææ´¾"),children:e.jsx("span",{style:{display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:s.assigned_to?Ne(s):x("ææ´¾")})})}),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,flexShrink:0,minWidth:0},children:[p,e.jsx(de,{type:"tertiary",size:"small",style:{flexShrink:0},children:s.created_time||""})]})]})]});return ie?e.jsx(R,{content:i,trigger:"hover",position:"right",mouseEnterDelay:200,showArrow:!0,getPopupContainer:()=>document.body,children:h},s.id):e.jsx(t.Fragment,{children:h},s.id)})}),Ue>0&&e.jsx("div",{style:{padding:"8px 12px",borderTop:"1px solid hsl(var(--border))"},children:e.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:12,flexWrap:"wrap"}
1,children:[e.jsx(z,{total:Ue,pageSize:He,currentPage:Fe,onChange:Le,size:"small",showTotal:!0}),e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[e.jsx(de,{type:"tertiary",size:14,children:x("æ¯é¡µ")}),e.jsxs(T,{size:"small",value:He,onChange:e=>{Le(1),qe(e)},style:{width:90},children:[e.jsx(T.Option,{value:8,children:"8"}),e.jsx(T.Option,{value:10,children:"10"}),e.jsx(T.Option,{value:20,children:"20"}),e.jsx(T.Option,{value:50,children:"50"}),e.jsx(T.Option,{value:100,children:"100"})]})]})]})})]})]}),(()=>{const t=e.jsx("div",{style:{flex:1,minWidth:0,minHeight:0,display:le&&"list"===re?"none":"flex",flexDirection:"column",background:we?"hsl(var(--background))":"hsl(var(--card))",borderRadius:we?0:12,border:we?"none":"1px solid hsl(var(--border))",overflow:"hidden",...we?{position:"fixed",top:"var(--app-header-offset, 80px)",left:0,right:0,bottom:0,zIndex:90}:{}},children:is?cs?e.jsx("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(_,{size:20})}):os?e.jsxs("div",{style:{flex:1,minHeight:0,display:"flex",flexDirection:"column",overflow:"hidden"},children:[we&&(()=>{const t=[];if(ie&&!os.is_internal&&(o()||d())&&(!d()||Qs&&Ys<Vs)&&"closed"!==os.status&&t.push({node:"item",name:x("ææ´¾"),onClick:()=>Zi()}),ie&&!os.is_internal&&"closed"!==os.status&&t.push({node:"item",name:x("å¾
å¤ç"),onClick:()=>Xi("pending")},{node:"item",name:x("å·²åå¤"),onClick:()=>Xi("replied")},{node:"item",name:x("å
³é"),type:"danger",onClick:()=>{v.confirm({title:x("å
³éå·¥å"),content:x("å
³éå·¥å确认说æ"),okText:x("ç¡®å®"),cancelText:x("åæ¶"),okButtonProps:{type:"danger"},onOk:()=>Xi("closed")})}}),ie&&os.is_internal&&"closed"!==os.status){const e=parseInt(r())||0,s=os.user_id===e,a=os.assigned_to===e&&os.assigned_to>0;(o()||s||a)&&(!o()&&!s||"pending"!==os.status&&"processing"!==os.status||os.internal_dept_id>0||t.push({node:"item",name:x("ææ´¾é¨é¨"),onClick:()=>{Fi(),Mt(!0)}}),(o()||s||a&&os.internal_dept_id>0)&&"processing"===os.status&&os.internal_dept_id>0&&t.push({node:"item",name:x("ææ´¾å¤ç人"),onClick:()=>{Li(os.internal_dept_id),Pt(!0)}}),!a||"processing"!==os.status&&"rejected"!==os.status||t.push({node:"item",name:x("æ è®°å®æ"),onClick:()=>{v.confirm({title:x("æ è®°å®æ"),content:x("确认æ è®°æ¤å·¥åä¸ºå·²å®æï¼å°æäº¤ç»åèµ·äººå®¡æ ¸ã"),onOk:()=>Hi(`/api/ticket/manage/${os.id}/internal/complete`)})}}),s&&"pending_review"===os.status&&t.push({node:"item",name:x("å®¡æ ¸éè¿"),onClick:()=>{Jt(5),Gt(""),qt(!0)}},{node:"item",name:x("驳å"),type:"danger",onClick:()=>Lt(!0)}),(o()||s||a)&&os.internal_dept_id>0&&("processing"===os.status||"rejected"===os.status)&&t.push({node:"item",name:x("转派é¨é¨"),onClick:()=>{Fi(),At(!0)}}))}return ie||"closed"===os.status||t.push({node:"item",name:x("å
³éå·¥å"),type:"danger",onClick:Vi}),ie&&os.logs&&os.logs.length>0&&t.unshift({node:"item",name:`${x("æä½æ¥å¿")} (${os.logs.length})`,onClick:()=>ys(!0)}),e.jsxs(e.Fragment,{children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:4,padding:"8px 8px 8px 4px",borderBottom:"1px solid hsl(var(--border))",flexShrink:0,background:"hsl(var(--background))"},children:[e.jsx(b,{theme:"borderless",icon:e.jsx(X,{size:22}),onClick:()=>je("list"),"aria-label":x("è¿åå·¥åå表")}),e.jsxs("div",{style:{flex:1,minWidth:0,margin:"0 2px"},children:[e.jsx(de,{strong:!0,ellipsis:{showTooltip:!0},style:{display:"block",lineHeight:"20px"},children:os.title}),e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,marginTop:2,flexWrap:"wrap"},children:[e.jsxs(de,{type:"tertiary",size:"small",children:["#",os.id]}),en(os.status),os.is_internal&&e.jsx(C,{color:"violet",size:"small",children:x("å
é¨å·¥å")})]})]}),e.jsx(b,{theme:"borderless",type:De?"primary":"tertiary",icon:e.jsx(Q,{size:20}),onClick:()=>Me(e=>!e),"aria-label":x("å·¥å详æ
")}),t.length>0&&e.jsx(I,{trigger:"click",position:"bottomRight",getPopupContainer:()=>document.body,menu:t,children:e.jsx(b,{theme:"borderless",icon:e.jsx(J,{size:20}),"aria-label":x("æ´å¤æä½")})})]}),e.jsx(E,{isOpen:De,children:e.jsxs("div",{style:{padding:"10px 14px",borderBottom:"1px solid hsl(var(--border))",background:"hsl(var(--muted) / 0.2)",display:"flex",flexDirection:"column",gap:6,fontSize:13},children:[e.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:6,alignItems:"center"},children:[e.jsx(de,{type:"tertiary",size:"small",children:x(pe[os.category]||os.category)}),tn(os.priority),ie&&os.parent_id?e.jsx(C,{color:"violet",size:"small",children:x("åç«ç¨æ·")}):ie?e.jsx(C,{color:"cyan",size:"small",children:x("主ç«ç¨æ·")}):null]}),ie&&!os.is_internal&&e.jsxs(de,{type:"tertiary",size:"small",children:[x("å¤ç客æ"),":"," ",os.assigned_to?Te(os)||"â":x("æªåé
")]}),ie&&os.is_internal&&e.jsxs(de,{type:"tertiary",size:"small",children:[x("å¤ç人"),":"," ",os.assigned_to?Te(os)||"â":x("æªææ´¾")]}),ie&&e.jsxs(de,{type:"tertiary",size:"small",children:[x("æäº¤ç¨æ·"),":"," ",os.display_name||os.username||"â"," ","(ID ",os.user_id,")"]}),os.is_internal&&os.participants&&os.participants.length>0&&e.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:4,alignItems:"center"},children:[e.jsxs(de,{type:"tertiary",size:"small",children:[x("å
1ä¸è
"),":"]}),os.participants.map(t=>e.jsx(C,{size:"small",color:"light-blue",children:t.display_name||t.username},t.user_id))]})]})})]})})(),!we&&e.jsx("div",{style:{padding:"16px 20px",borderBottom:"1px solid hsl(var(--border))",flexShrink:0},children:e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",gap:12},children:[e.jsxs("div",{style:{display:"flex",gap:12,alignItems:"flex-start"},children:[e.jsx("div",{style:{width:40,height:40,borderRadius:"50%",background:"hsl(var(--primary))",display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontSize:14,fontWeight:600,flexShrink:0},children:(os.title||"").slice(0,2)}),e.jsxs("div",{style:{flex:1,minWidth:0},children:[e.jsxs("div",{style:{display:"flex",alignItems:"baseline",gap:10,flexWrap:"wrap",marginBottom:8},children:[e.jsx(ce,{heading:6,style:{margin:0},children:os.title}),e.jsxs(de,{type:"quaternary",size:"small",style:{fontSize:11},children:["#",os.id]})]}),e.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:"6px 12px",alignItems:"center",rowGap:6},children:[e.jsx(de,{type:"tertiary",size:14,children:x(pe[os.category]||os.category)}),e.jsx(de,{type:"tertiary",size:14,children:"·"}),tn(os.priority),Oe(ie,os)?e.jsx(de,{size:"small",strong:!0,style:{color:"hsl(var(--destructive))"},children:x("å¼å¸¸å·¥å")}):null,os.is_internal&&e.jsx(C,{color:"violet",size:"small",children:x("å
é¨å·¥å")}),en(os.status),os.phone&&e.jsxs(de,{type:"tertiary",size:14,children:[x("èç³»çµè¯"),": ",os.phone]}),ie&&e.jsxs(e.Fragment,{children:[e.jsx(de,{type:"tertiary",size:14,children:"·"}),os.parent_id?e.jsx(C,{color:"violet",children:x("åç«ç¨æ·")}):e.jsx(C,{color:"cyan",children:x("主ç«ç¨æ·")}),os.agent_site_name&&e.jsxs(de,{type:"tertiary",size:14,children:[x("ç«ç¹åç§°"),": ",os.agent_site_name]}),os.agent_domain&&e.jsxs(de,{type:"tertiary",size:14,children:[x("åç«åå"),": ",os.agent_domain]}),!1===os.ticket_enabled&&e.jsx(C,{color:"grey",children:x("åç«å·¥åå·²å
³")}),!os.is_internal&&e.jsxs(de,{type:"tertiary",size:14,children:[x("å¤ç客æ"),":"," ",os.assigned_to?Te(os)||"â":x("æªåé
")]}),os.is_internal&&e.jsxs(e.Fragment,{children:[os.internal_dept_name&&e.jsxs(de,{type:"tertiary",size:14,children:[x("å½åé¨é¨"),":"," ",os.internal_dept_name]}),e.jsxs(de,{type:"tertiary",size:14,children:[x("å¤ç人"),":"," ",os.assigned_to?Te(os)||"â":x("æªææ´¾")]})]}),e.jsxs(de,{type:"tertiary",size:14,children:[x("æäº¤ç¨æ·"),":"," ",os.display_name||os.username||"â","ï¼ID"," ",os.user_id,"ï¼"]})]}),os.is_internal&&os.participants&&os.participants.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(de,{type:"tertiary",size:14,children:"·"}),e.jsxs(de,{type:"tertiary",size:"small",children:[x("åä¸è
"),"ï¼"]}),os.participants.map(t=>e.jsx(C,{size:"small",color:"light-blue",style:{fontSize:12},children:t.display_name||t.username},t.user_id))]})]})]})]}),e.jsxs("div",{style:{display:"flex",gap:8,flexWrap:"wrap",justifyContent:"flex-end"},children:[ie&&!os.is_internal&&(o()||d())&&(!d()||Qs&&Ys<Vs)&&"closed"!==os.status&&e.jsx(b,{size:"small",icon:e.jsx(V,{size:16}),onClick:()=>Zi(),children:x("ææ´¾")}),ie&&!os.is_internal&&"closed"!==os.status&&e.jsxs(e.Fragment,{children:[e.jsx(b,{size:"small",onClick:()=>Xi("pending"),children:x("å¾
å¤ç")}),e.jsx(b,{size:"small",onClick:()=>Xi("replied"),children:x("å·²åå¤")}),e.jsx(b,{size:"small",type:"danger",onClick:()=>{v.confirm({title:x("å
³éå·¥å"),content:x("å
³éå·¥å确认说æ"),okText:x("ç¡®å®"),cancelText:x("åæ¶"),okButtonProps:{type:"danger"},onOk:()=>Xi("closed")})},children:x("å
³é")})]}),ie&&os.is_internal&&"closed"!==os.status&&(()=>{const t=parseInt(r())||0,s=os.user_id===t,a=os.assigned_to===t&&os.assigned_to>0;return o()||s||a?e.jsxs(e.Fragment,{children:[(o()||s)&&("pending"===os.status||"processing"===os.status)&&!(os.internal_dept_id>0)&&e.jsx(b,{size:"small",loading:es,onClick:()=>{Fi(),Mt(!0)},children:x("ææ´¾é¨é¨")}),(o()||s||a&&os.internal_dept_id>0)&&"processing"===os.status&&os.internal_dept_id>0&&e.jsx(b,{size:"small",loading:es,onClick:()=>{Li(os.internal_dept_id),Pt(!0)},children:x("ææ´¾å¤ç人")}),a&&("processing"===os.status||"rejected"===os.status)&&e.jsx(b,{size:"small",loading:es,onClick:()=>{v.confirm({title:x("æ è®°å®æ"),content:x("确认æ è®°æ¤å·¥åä¸ºå·²å®æï¼å°æäº¤ç»åèµ·äººå®¡æ ¸ã"),onOk:()=>Hi(`/api/ticket/manage/${os.id}/internal/complete`)})},children:x("æ è®°å®æ")}),s&&"pending_review"===os.status&&e.jsxs(e.Fragment,{children:[e.jsx(b,{size:"small",type:"primary",loading:es,onClick:()=>{Jt(5),Gt(""),qt(!0)},children:x("å®¡æ ¸éè¿")}),e.jsx(b,{size:"small",type:"danger",loading:es,onClick:()=>Lt(!0),children:x("驳å")})]}),(o()||s||a)&&os.internal_dept_id>0&&("processing"===os.status||"rejected"===os.status)&&e.jsx(b,{size:"small",loading:es,onClick:()=>{Fi(),At(!0)},children:x("转派é¨é¨")})]}):null})(),!ie&&"closed"!==os.status&&e.jsx(b,{size:"small",type:"danger",onClick:Vi,children:x("å
³éå·¥å")})]})]})}),!os.is_internal&&e.jsx("div",{style:{padding:we?"8px 14px":"16px 20px",borderBottom:"1px solid hsl(var(--border))",flexShrink:0},children:e.jsxs(D,{type:"basic",size:"small",current:"closed"===os.status?3:"replied"===os.status?2:1,status:"closed"===os.status?"finish":"process",
1style:{width:"100%"},children:[e.jsx(D.Step,{title:x("å·²å建"),description:we?void 0:os.created_time||""}),e.jsx(D.Step,{title:x("å¾
å¤ç"),description:we?void 0:"pending"===os.status?x("çå¾
客æååº"):""}),e.jsx(D.Step,{title:x("å·²åå¤"),description:we?void 0:"replied"===os.status?x("客æå·²åå¤"):""}),e.jsx(D.Step,{title:x("å·²å
³é"),description:we?void 0:"closed"===os.status&&os.updated_time||""})]})}),ie&&os.logs&&os.logs.length>0&&e.jsxs("div",{style:{borderBottom:"1px solid hsl(var(--border))",flexShrink:0},children:[e.jsxs("div",{onClick:()=>ys(!xs),style:{padding:we?"10px 14px":"10px 20px",cursor:"pointer",display:"flex",justifyContent:"space-between",alignItems:"center",userSelect:"none"},children:[e.jsxs(de,{strong:!0,size:14,children:[x("æä½æ¥å¿")," (",os.logs.length,")"]}),xs?e.jsx(Z,{size:14}):e.jsx(ee,{size:14})]}),e.jsx(E,{isOpen:xs,children:e.jsx("div",{style:{padding:we?"0 14px 10px":"0 20px 12px",maxHeight:we?200:360,overflowY:"auto",overflowX:"hidden"},children:e.jsx(M,{children:os.logs.map(t=>e.jsx(M.Item,{color:ge[t.status]||"grey",children:"assign"===t.status?e.jsxs("div",{children:[e.jsxs(de,{size:14,children:[x("ææ´¾è®°å½"),":"," ",t.assign_from_username||x("æªåé
")," â"," ",t.assign_to_username||x("æªåé
æ± ")]}),e.jsx(de,{type:"tertiary",size:"small",style:{display:"block"},children:t.created_time||""})]}):e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[e.jsx(C,{color:ge[t.status]||"default",size:"small",children:x(me[t.status]||t.status)}),e.jsx(de,{size:14,children:"system"===t.role&&t.detail?t.detail:"admin"===t.role||"support"===t.role?t.username||t.display_name||x("客æ"):t.username||t.display_name||x("ç¨æ·")}),e.jsx(de,{type:"tertiary",size:14,children:t.created_time||""})]})},t.id))})})})]}),e.jsx("div",{ref:Za,style:{flex:1,minHeight:0,overflowY:"auto",padding:we?"12px 14px":"16px 20px",background:we?"hsl(var(--muted) / 0.25)":void 0},children:os.messages&&os.messages.length>0?os.messages.map(t=>{const s=null!=wi&&Number(t.user_id)===wi,a="admin"===t.role?t.username||t.display_name||x("客æ"):t.username||t.display_name||x("ç¨æ·"),i=s?"hsl(var(--primary))":"#f5a623";return e.jsxs("div",{style:{display:"flex",flexDirection:"column",alignItems:s?"flex-end":"flex-start",marginBottom:20},children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,marginBottom:4,flexDirection:s?"row-reverse":"row"},children:[e.jsx("div",{style:{width:28,height:28,borderRadius:"50%",background:i,display:"flex",alignItems:"center",justifyContent:"center",color:"#fff",fontSize:12,fontWeight:600,flexShrink:0},children:a.slice(0,1)}),e.jsx(de,{strong:!0,size:14,children:a})]}),e.jsx("div",{style:{maxWidth:we?"85%":"70%",padding:"10px 14px",borderRadius:s?"12px 2px 12px 12px":"2px 12px 12px 12px",background:s?"#e8f0fe":"#fff5eb",color:"hsl(var(--foreground))"},children:e.jsx("div",{style:{whiteSpace:"pre-wrap",wordBreak:"break-word",lineHeight:1.6},children:e.jsx(oe,{content:t.content,ticketId:os.id,isManage:ie,t:x})})}),e.jsx(de,{type:"tertiary",size:"small",style:{marginTop:4},children:t.created_time||""})]},t.id)}):e.jsx(W,{description:x("ææ æ¶æ¯")})}),"closed"!==os.status&&e.jsxs("div",{style:{padding:we?"8px 12px calc(8px + env(safe-area-inset-bottom))":"12px 20px",borderTop:"1px solid hsl(var(--border))",display:"flex",flexDirection:"column",gap:8,flexShrink:0,background:we?"hsl(var(--background))":void 0},onPaste:Gi,children:[Ra.length>0?e.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"flex-start"},children:Ra.map(t=>e.jsxs("div",{style:{position:"relative",width:56,height:56,flexShrink:0,borderRadius:8,overflow:"hidden",border:"1px solid hsl(var(--border))"},children:[e.jsx("img",{src:t.previewUrl,alt:"",style:{width:"100%",height:"100%",objectFit:"cover",display:"block"}}),e.jsx("button",{type:"button","aria-label":x("ticket_pending_image_remove"),onClick:()=>Ki(t.id),onMouseDown:e=>e.stopPropagation(),style:{position:"absolute",top:1,right:1,width:24,height:24,padding:0,border:"none",borderRadius:"50%",background:"hsl(var(--background) / 0.92)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"var(--app-sha
1dow-md)",color:"hsl(var(--foreground))",zIndex:2},children:e.jsx(te,{size:14,strokeWidth:2.5,style:{pointerEvents:"none"}})})]},t.id))}):null,e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center",width:"100%"},children:[e.jsx("input",{ref:Da,type:"file",accept:"image/*",style:{display:"none"},onChange:Yi}),e.jsx(b,{icon:e.jsx(se,{size:18}),disabled:Na||gs,loading:Na,onClick:()=>Da.current?.click()}),e.jsx($,{placeholder:x("è¾å
¥æ¶æ¯..."),value:ps,onChange:hs,onEnterPress:qi,style:{flex:1}}),e.jsx(b,{theme:"solid",loading:gs,onClick:qi,disabled:!ps.trim()&&0===Ra.length||gs,children:x("åé")})]})]}),"closed"===os.status&&e.jsx(j,{type:"info",description:x("æ¤å·¥åå·²å
³éï¼æ æ³ç»§ç»åéæ¶æ¯"),style:{margin:we?"0 12px 8px":"0 20px 12px",flexShrink:0}})]}):null:e.jsx("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center"},children:e.jsx(W,{image:e.jsx(O,{style:{width:150,height:150}}),darkModeImage:e.jsx(N,{style:{width:150,height:150}}),description:x("éæ©ä¸ä¸ªå·¥åæ¥ç详æ
")})})});return we&&"undefined"!=typeof document?a.createPortal(t,document.body):t})()]}),e.jsx(v,{title:x("æ°å»ºå·¥å"),visible:It,onCancel:()=>$t(!1),footer:null,width:520,children:e.jsxs(B,{onSubmit:async e=>{Wt(!0);try{const t=await i.post("/api/ticket/",e);t.data.success?(u(x("å·¥åå建æå")),$t(!1),Wi(),ns(t.data.data.id),ie&&Ce(t.data.data.id)):c(t.data.message)}catch(t){c(x("å建工å失败"))}Wt(!1)},labelPosition:"top",children:[e.jsx(B.Select,{field:"category",label:x("é®é¢åç±»"),initValue:"general",rules:[{required:!0,message:x("è¯·éæ©é®é¢åç±»")}],style:{width:"100%"},children:ue.map(t=>e.jsx(T.Option,{value:t,children:x(pe[t])},t))}),e.jsx(B.Select,{field:"priority",label:x("ä¼å
级"),initValue:"normal",rules:[{required:!0,message:x("è¯·éæ©ä¼å
级")}],style:{width:"100%"},children:he.map(t=>e.jsx(T.Option,{value:t.value,children:x(t.label)},t.value))}),e.jsx(B.Input,{field:"title",label:x("æ é¢"),placeholder:x("请ç®è¦æè¿°æ¨çé®é¢"),rules:[{required:!0,message:x("请è¾å
¥æ é¢")}]}),e.jsx(B.Input,{field:"phone",label:x("èç³»çµè¯"),placeholder:x("éå¡«")}),e.jsx(B.TextArea,{field:"content",label:x("è¯¦ç»æè¿°"),placeholder:x("è¯·è¯¦ç»æè¿°æ¨éå°çé®é¢..."),rows:5,rules:[{required:!0,message:x("请è¾å
¥è¯¦ç»æè¿°")}]}),e.jsx(b,{htmlType:"submit",theme:"solid",style:{width:"100%",marginTop:8,marginBottom:15},loading:Tt,children:x("ç«å³æäº¤")})]})}),e.jsx(v,{title:x("æ°å»ºå
é¨å·¥å"),visible:Nt,onCancel:()=>Ot(!1),footer:null,width:520,children:e.jsxs(B,{onSubmit:async e=>{Et(!0);try{const t=await i.post("/api/ticket/",{...e,is_internal:!0,category:"general"});t.data.success?(u(x("å
é¨å·¥åå建æå")),Ot(!1),"internal"!==st&&at("internal"),Wi(),ns(t.data.data.id),ie&&Ce(t.data.data.id)):c(t.data.message)}catch(t){c(x("å建å
é¨å·¥å失败"))}Et(!1)},labelPosition:"top",children:[e.jsx(B.Input,{field:"title",label:x("æ é¢"),placeholder:x("请ç®è¦æè¿°é®é¢"),rules:[{required:!0,message:x("请è¾å
¥æ é¢")}]}),e.jsx(B.Select,{field:"priority",label:x("ç´§æ¥ç¨åº¦"),initValue:"normal",rules:[{required:!0,message:x("è¯·éæ©ç´§æ¥ç¨åº¦")}],style:{width:"100%"},children:he.map(t=>e.jsx(T.Option,{value:t.value,children:x(t.label)},t.value))}),e.jsx(B.TextArea,{field:"content",label:x("è¯¦ç»æè¿°"),placeholder:x("è¯·è¯¦ç»æè¿°é®é¢..."),rows:5,rules:[{required:!0,message:x("请è¾å
¥è¯¦ç»æè¿°")}]}),e.jsx(b,{htmlType:"submit",theme:"solid",style:{width:"100%",marginTop:8,marginBottom:15},loading:Rt,children:x("ç«å³æäº¤")})]})}),e.jsx(v,{title:x("ææ´¾é¨é¨"),visible:Dt,onCancel:()=>Mt(!1),footer:null,width:420,children:e.jsxs(B,{onSubmit:async e=>{await Hi(`/api/ticket/manage/${os?.id}/internal/assign-dept`,{department_id:e.department_id})&&Mt(!1)},labelPosition:"top",children:[e.jsx(B.Select,{field:"department_id",label:x("éæ©é¨é¨"),placeholder:x("è¯·éæ©ç®æ é¨é¨"),rules:[{required:!0,message:x("è¯·éæ©é¨é¨")}],style:{width:"100%"},optionList:Vt.map(e=>({value:e.id,label:e.name}))}),e.jsx(b,{htmlType:"submit",theme:"solid",loading:es,style:{width:"100%",marginTop:8,marginBottom:15},children:x("ç¡®è®¤ææ´¾")})]})}),e.jsx(v,{title:x("ææ´¾å¤ç人"),visible:Bt,onCancel:()=>Pt(!1),footer:null,width:420,children:e.jsxs(B,{onSubmit:async e=>{await Hi(`/api/ticket/manage/${os?.id}/internal/assign-person`,{assignee_id:e.assignee_id})&&Pt(!1)},labelPosition:"top",children:[e.jsx(B.Select,{field:"assignee_id",label:x("éæ©å¤ç人"),placeholder:x("è¯·éæ©é¨é¨æå"),rules:[{required:!0,message:x("è¯·éæ©å¤ç人")}],style:{width:"100%"},optionList:Qt.map(e=>({value:e.user_id,label:e.display_name||e.username}))}),e.jsx(b,{htmlType:"submit",theme:"solid",loading:es,style:{width:"100%",marginTop:8,marginBottom:15},children:x("ç¡®è®¤ææ´¾")})]})}),e.jsxs(v,{title:x("å®¡æ ¸éè¿"),visible:Ht,onCancel:()=>qt(!1),onOk:async()=>{await Hi(`/api/ticket/manage/${os?.id}/internal/review-pass`,{rating:Kt,rating_comment:Yt})&&qt(!1)},okButtonProps:{loading:es},width:420,children:[e.jsxs("div",{style:{marginBottom:16},children:[e.jsx("div",{style:{marginBottom:8,fontWeight:500},children:x("è¯å")}),e.jsx(P,{value:Kt,onChange:Jt,size:"default"})]}),e.jsxs("div",{children:[e.jsx("div",{style:{marginBottom:8,fontWeight:500},children:x("è¯ä»·ï¼éå¡«ï¼")}),e.jsx(U,{value:Yt,onChange:Gt,placeholder:x("请è¾å
¥è¯ä»·å
容ï¼å¯éï¼"),rows:3})]})]}),e.jsx(v,{title:x("驳åå·¥å"),visible:Ft,onCancel:()=>Lt(!1),footer:null,width:420,children:e.jsxs(B,{onSubmit:async e=>{await Hi(`/api/ticket/manage/${os?.id}/internal/review-reject`,{reason:e.reason||""})&&Lt(!1)},labelPosition:"top",children:[e.jsx(B.TextArea,{field:"reason",label:x("驳ååå "),placeholder:x("请è¾å
¥é©³ååå ï¼å¯éï¼"),rows:3}),e.jsx(b,{htmlType:"submit",theme:"solid",type:"danger",loading:es,style:{width:"100%",marginTop:8,marginBottom:15},children:x("确认驳å")})]})}),e.jsx(v,{title:x("转派é¨é¨"),visible:Ut,onCancel:()=>At(!1),footer:null,width:420,children:e.jsxs(B,{onSubmit:async e=>{await Hi(`/api/ticket/manage/${os?.id}/internal/reassign-dept`,{department_id:e.department_id,comment:e.comment||""})&&At(!1)},labelPosition:"top",children:[e.jsx(B.Select,{field:"department_id",label:x("ç®æ é¨é¨"),placeholder:x("è¯·éæ©ç®æ é¨é¨"),rules:[{required:!0,message:x("è¯·éæ©é¨é¨")}],style:{width:"100%"},optionList:Vt.filter(e=>e.id!==os?.internal_dept_id).map(e=>({value:e.id,label:e.name}))}),e.jsx(B.TextArea,{field:"comment",label:x("转派åå "),placeholder:x("请è¾å
¥è½¬æ´¾åå ï¼å¯éï¼"),rows:2}),e.jsx(b,{htmlType:"submit",theme:"solid",loading:es,style:{width:"100%",marginTop:8,marginBottom:15},children:x("确认转派")})]})}),e.jsxs(v,{title:Fs?`${x("ææ´¾å·¥å")} #${Fs}`:x("ææ´¾å·¥å"),visible:Us,onCancel:()=>{As(!1),Ls(null)},onOk:async()=>{const e=Fs??is;if(!e)return;const t=Hs??0;Js(!0);try{const s=await i.put(`/api/ticket/manage/${e}/assign`,{assigned_to:t});if(s.data.success){if(u(x("ææ´¾æå")),As(!1),Ls(null),d()&&ie)try{const e=await i.get("/api/ticket/manage/support_staff_status");if(e.data.success){const t=Ee(e.data.data);Gs(t.supportAssignUsedToday),Xs(t.supportAssignDailyCap)}}catch{}is===e&&Bi(is),Wi()}else c(s.data.message)}catch{c(x("ææ´¾å¤±è´¥"))}Js(!1)},okButtonProps:{loading:Ks},width:420,children:[e.jsx(de,{type:"secondary",size:"small",style:{display:"block",marginBottom:4},children:x("éæ©å¨çº¿å®¢æ")}),e.jsx(T,{style:{width:"100%"},placeholder:x("æªåé
æ± "),value:Hs,onChange:e=>qs(e),allowClear:!0,filter:!0,optionList:Qi}),e.jsx(de,{type:"tertiary",size:"small",style:{display:"block",marginTop:8},children:x("ææ´¾ä»
å¨çº¿å®¢æè¯´æ")})]}),e.jsx(v,{title:x("ticket_staff_group_create"),visible:lt,onCancel:()=>rt(!1),footer:null,width:400,children:e.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:12},children:[e.jsx($,{value:ot,onChange:dt,placeholder:x("ticket_staff_group_name_placeholder"),onEnterPress:Ni}),e.jsxs("div",{style:{display:"flex",justifyContent:"flex-end",gap:8},children:[e.jsx(b,{onClick:()=>rt(!1),children:x("åæ¶")}),e.jsx(b,{theme:"solid",loading:ct,onClick:Ni,children:x("ticket_staff_group_create")})]})]})}),e.jsx(v,{title:x("ticket_staff_group_rename_title"),visible:!!ft,onCancel:()=>_t(null),onOk:Ri,okButtonProps:{loading:bt},width:400,children:e.jsx($,{value:jt,onChange:kt,placeholder:x("ticket_staff_group_name_placeholder")})}),e.jsxs(v,{title:x("ticket_staff_group_picker_title"),visible:!!pt,onCancel:()=>ht(null),onOk:Ei,okButtonProps:{loading:xt},width:400,children:[e.jsxs(de,{type:"secondary",size:"small",style:{display:"block",marginBottom:8},children:["#",pt?.id," ",pt?.title?`· ${pt.title}`:""]}),e.jsxs(T,{style:{width:"100%"}
1,value:gt,onChange:e=>mt(Number(e)),children:[e.jsx(T.Option,{value:0,children:x("ticket_staff_group_filter_ungrouped")}),it.map(t=>e.jsx(T.Option,{value:t.id,children:t.name},t.id))]})]}),e.jsx(v,{title:x("客æä¸åç«"),visible:Is,onCancel:()=>$s(!1),footer:null,width:800,style:{top:40},children:Bs?e.jsx("div",{style:{textAlign:"center",padding:40},children:e.jsx(_,{})}):e.jsxs(A,{type:"line",defaultActiveKey:"defaultCap",children:[e.jsx(A.TabPane,{tab:x("é»è®¤æå¤§æ¥åæ°é"),itemKey:"defaultCap",children:e.jsxs("div",{style:{padding:"12px 16px 16px"},children:[e.jsx(de,{type:"secondary",size:"small",style:{display:"block",marginBottom:16},children:x("å·¥åé»è®¤æ¥åä¸é说æ")}),e.jsxs("div",{style:{display:"flex",gap:12,alignItems:"center",flexWrap:"wrap"},children:[e.jsx(de,{children:x("æ¥åä¸é")}),e.jsx(F,{min:1,step:1,value:la,onChange:e=>ra(e),style:{width:120}}),e.jsx(b,{theme:"solid",loading:oa,onClick:async()=>{const e=Number(la);if(!Number.isFinite(e)||e<1)c(x("å·¥åé»è®¤ä¸éé¡»ä¸ºæ£æ´æ°"));else{da(!0);try{const t=await i.put("/api/ticket/manage/default_support_ticket_cap",{default_support_ticket_cap:e});t.data.success?(u(x("å·²ä¿å")),na(e),await Ui()):c(t.data.message)}catch{c(x("ä¿å失败"))}da(!1)}},children:x("ä¿å")})]}),e.jsxs("div",{style:{marginTop:16,display:"flex",gap:12,alignItems:"center",flexWrap:"wrap"},children:[e.jsx(de,{children:x("å¤å°å¤©æªåå¤èªå¨å
³é")}),e.jsx(F,{min:0,step:1,value:pa,onChange:e=>ha(e),style:{width:120}}),e.jsx(de,{type:"tertiary",size:14,children:x("0 表示å
³éèªå¨å
³åï¼é»è®¤ 7 天")}),e.jsx(b,{theme:"solid",loading:ga,onClick:async()=>{const e=Number(pa);if(!Number.isFinite(e)||e<0||e>3650)c(x("èªå¨å
³é天æ°é为 0-3650 çæ´æ°"));else{ma(!0);try{const t=await i.put("/api/ticket/manage/auto_close_days",{auto_close_days:e});t.data.success?(u(x("å·²ä¿å")),ua(e),await Ui()):c(t.data.message)}catch{c(x("ä¿å失败"))}ma(!1)}},children:x("ä¿å")}),e.jsxs(de,{type:"tertiary",size:14,children:[x("å½å"),": ",ca]})]}),e.jsxs("div",{style:{marginTop:16,display:"flex",gap:12,alignItems:"center",flexWrap:"wrap"},children:[e.jsx(de,{children:x("å®¢ææ¯æ¥ææ´¾éé¢")}),e.jsx(F,{min:1,max:Ai,step:1,value:xa,onChange:e=>ya(e),style:{width:120}}),e.jsx(de,{type:"tertiary",size:14,children:x("å®¢ææ¯æ¥ææ´¾éé¢è¯´æ",{max:Ai})}),e.jsx(b,{theme:"solid",loading:fa,onClick:async()=>{const e=Number(xa);if(!Number.isFinite(e)||e<1||e>Ai)c(x("å®¢æææ´¾éé¢é¡»ä¸ºèå´å
æ´æ°",{max:Ai}));else{_a(!0);try{const t=await i.put("/api/ticket/manage/support_assign_daily_cap",{support_assign_daily_cap:e});t.data.success?(u(x("å·²ä¿å")),Xs(e),ya(e),await Ui()):c(t.data.message)}catch{c(x("ä¿å失败"))}_a(!1)}},children:x("ä¿å")}),e.jsxs(de,{type:"tertiary",size:14,children:[x("å½å"),": ",Vs]})]})]})}),e.jsxs(A.TabPane,{tab:x("客æå¨çº¿ä¸æ¥åä¸é"),itemKey:"staff",children:[e.jsx(de,{type:"tertiary",size:"small",style:{display:"block",marginBottom:8},children:x("工忥åä¸é0说æ")}),e.jsx(w,{size:"small",rowKey:"id",dataSource:bi,pagination:{currentPage:Ns,pageSize:10,total:Ts.length,showSizeChanger:!1,onPageChange:e=>Os(e)},columns:[{title:"ID",dataIndex:"id",width:64},{title:x("ç¨æ·å"),dataIndex:"username"},{title:x("æ¾ç¤ºåç§°"),dataIndex:"display_name"},{title:x("å¨çº¿"),dataIndex:"support_online",render:e=>x(e?"æ¯":"å¦")},{title:x("æ¥åä¸é"),dataIndex:"support_ticket_cap",render:(t,s)=>ea===s.id?e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[e.jsx(F,{min:0,value:sa,onChange:e=>aa(e),style:{width:100}}),e.jsx(b,{size:"small",onClick:()=>(async(e,t)=>{try{const s=await i.put("/api/ticket/manage/support_staff_cap",{support_user_id:e,support_ticket_cap:t});s.data.success?(u(x("å·²ä¿å")),ta(null),await Ui()):c(s.data.message)}catch{c(x("ä¿å失败"))}})(s.id,sa),children:x("ä¿å")})]}):e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center"},children:[e.jsx("span",{children:Number(s.support_ticket_cap)>0?s.support_ticket_cap:`${x("é»è®¤")}(${s.effective_support_ticket_cap??ia})`}),e.jsx(b,{size:"small",onClick:()=>{ta(s.id),aa(s.support_ticket_cap)},children:x("ç¼è¾")})]})}]})]}),e.jsx(A.TabPane,{tab:x("åç«å·¥åæ¦åµ"),itemKey:"agent",children:e.jsx(w,{size:"small",dataSource:xi,pagination:{currentPage:Ds,pageSize:10,total:Rs.length,showSizeChanger:!1,onPageChange:e=>Ms(e)},columns:[{title:x("ç«ç¹åç§°"),dataIndex:"system_name"},{title:x("åå"),dataIndex:"agent_domain",ellipsis:!0},{title:x("å·¥åå
¥å£"),dataIndex:"ticket_enabled",render:(t,s)=>e.jsx(k,{checked:t,onChange:e=>(async(e,t)=>{try{const s=await i.put("/api/ticket/manage/agent_ticket_toggle",{agent_user_id:e,enabled:t});if(s.data.success){u(x("æä½æå"));const e=await i.get("/api/ticket/manage/agent_ticket_status");e.data.success&&Es(e.data.data||[])}else c(s.data.message)}catch{c(x("æä½å¤±è´¥"))}})(s.user_id,e)})},{title:x("åç«é»è®¤æ¥åä¸é"),dataIndex:"support_ticket_default_cap",width:200,render:(t,s)=>ja===s.user_id?e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[e.jsx(F,{min:0,value:ba,onChange:e=>va(e),style:{width:100}}),e.jsx(b,{size:"small",onClick:()=>(async(e,t)=>{try{const s=await i.put("/api/ticket/manage/agent_support_ticket_default",{agent_user_id:e,default_cap:t});if(s.data.success){u(x("å·²ä¿å")),ka(null);const e=await i.get("/api/ticket/manage/agent_ticket_status");e.data.success&&Es(e.data.data||[]),await Ui()}else c(s.data.message)}catch{c(x("ä¿å失败"))}})(s.user_id,ba??0),children:x("ä¿å")})]}):e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},children:[e.jsx("span",{children:Number(s.support_ticket_default_cap)>0?s.support_ticket_default_cap:`${x("è·éæ»ç«")} (${ia})`}),e.jsx(b,{size:"small",onClick:()=>
1{ka(s.user_id),va(Number(s.support_ticket_default_cap)||0)},children:x("ç¼è¾")})]})},{title:x("å¾
å¤ç"),dataIndex:"pending_count"},{title:x("æ»ç«å"),dataIndex:"total_count"}]})})]})}),wt?e.jsxs(e.Fragment,{children:[e.jsx("div",{role:"presentation",style:{position:"fixed",inset:0,zIndex:1e4},onClick:()=>St(null),onContextMenu:e=>{e.preventDefault(),St(null)}}),e.jsxs("div",{role:"menu",style:{position:"fixed",left:wt.x,top:wt.y,zIndex:10001,minWidth:132,padding:"4px 0",background:"hsl(var(--accent))",borderRadius:"var(--radius)",boxShadow:"var(--app-shadow-md)",border:"1px solid hsl(var(--border))"},onClick:e=>e.stopPropagation(),children:[wt.showAssign?e.jsx("div",{role:"menuitem",tabIndex:0,style:{padding:"8px 16px",cursor:"pointer",fontSize:14,color:"hsl(var(--foreground))",lineHeight:"20px"},onMouseEnter:e=>{e.currentTarget.style.background="hsl(var(--foreground) / 0.02)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},onClick:()=>{Zi(wt.ticket)},onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),Zi(wt.ticket))},children:x("ææ´¾")}):null,e.jsx("div",{role:"menuitem",tabIndex:0,style:{padding:"8px 16px",cursor:"pointer",fontSize:14,color:"hsl(var(--foreground))",lineHeight:"20px"},onMouseEnter:e=>{e.currentTarget.style.background="hsl(var(--foreground) / 0.02)"},onMouseLeave:e=>{e.currentTarget.style.background="transparent"},onClick:()=>{ht(wt.ticket),St(null)},onKeyDown:e=>{"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),ht(wt.ticket),St(null))},children:x("ticket_staff_group_change")})]})]}):null]}):e.jsx("div",{className:"px-2",style:{minHeight:"calc(100vh - var(--app-header-offset, 80px))"},children:e.jsx("div",{style:{padding:24},children:e.jsx(j,{type:"warning",fullMode:!1,description:x("å½åç«ç¹å·²å
³éå·¥ååè½ï¼å¦æé®é¢è¯·èç³»ç«é¿æå®¢æ"),bordered:!0})})})};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.