1import{r as e,j as s}from"./vendor-react-DejgYtBM.js";import{u as t,Y as r,Z as a,A as i,s as l,w as n}from"./index-BeIIFw6E.js";import{i as o,j as d,B as c,m as u,y as p,E as h,J as x,K as g,W as f,l as m,o as y,f as b,T as j,a as v,z as k,M as w,v as _,D as S}from"./vendor-semi-D8d7bTtM.js";import{m as K}from"./marked.esm-B28mcIGu.js";import{p as N}from"./purify.es-Bm-lHtoJ.js";import{H as C}from"./vendor-highlight-CaHTjBxz.js";import{be as T,bf as I,aT as L,bg as z,bh as D,bi as O,bj as R,al as q,bk as A,bl as M,b as H,bm as P,aa as $,aL as B,bn as E,bo as F,bp as W,bq as G,e as V,aj as Z,I as J,k as U,br as X,E as Y,X as Q}from"./vendor-icons-EJvJ5X-w.js";import"./vendor-motion-Chfy_MiU.js";function ee(e){return[{icon:T,title:e("ç²ä½"),prefix:"**",suffix:"**",placeholder:e("ç²ä½ææ¬")},{icon:I,title:e("æä½"),prefix:"*",suffix:"*",placeholder:e("æä½ææ¬")},{icon:L,title:e("å é¤çº¿"),prefix:"~~",suffix:"~~",placeholder:e("å é¤çº¿ææ¬")},{icon:z,title:e("é«äº®"),prefix:"<mark>",suffix:"</mark>",placeholder:e("é«äº®ææ¬")},{type:"divider"},{icon:D,title:e("ä¸çº§æ é¢"),prefix:"# ",suffix:"",placeholder:e("æ é¢"),isLine:!0},{icon:O,title:e("äºçº§æ é¢"),prefix:"## ",suffix:"",placeholder:e("æ é¢"),isLine:!0},{icon:R,title:e("ä¸çº§æ é¢"),prefix:"### ",suffix:"",placeholder:e("æ é¢"),isLine:!0},{type:"divider"},{icon:q,title:e("æ åºå表"),prefix:"- ",suffix:"",placeholder:e("å表项"),isLine:!0},{icon:A,title:e("æåºå表"),prefix:"1. ",suffix:"",placeholder:e("å表项"),isLine:!0},{icon:M,title:e("å¼ç¨"),prefix:"> ",suffix:"",placeholder:e("å¼ç¨ææ¬"),isLine:!0},{icon:H,title:e("代ç å"),prefix:"```\n",suffix:"\n```",placeholder:e("代ç "),isBlock:!0},{type:"divider"},{icon:P,title:e("龿¥"),prefix:"[",suffix:"](url)",placeholder:e("龿¥ææ¬")},{icon:$,title:e("å¾ç"),prefix:"",placeholder:e("å¾çæè¿°")},{icon:B,title:e("åå²çº¿"),prefix:"\n---\n",suffix:"",placeholder:"",isInsert:!0},{icon:E,title:e("è¡¨æ ¼"),prefix:"\n| å1 | å2 | å3 |\n| --- | --- | --- |\n| ",suffix:" | å
容 | å
容 |\n",placeholder:e("å
容"),isInsert:!0},{type:"divider"},{icon:F,title:e("䏿 "),prefix:"<sup>",suffix:"</sup>",placeholder:e("䏿 ")},{icon:W,title:e("䏿 "),prefix:"<sub>",suffix:"</sub>",placeholder:e("䏿 ")},{icon:G,title:e("é®çé®"),prefix:"<kbd>",suffix:"</kbd>",placeholder:"Ctrl"},{icon:V,title:e("æå åºå"),prefix:"<details>\n<summary>ç¹å»å±å¼</summary>\n\n",suffix:"\n\n</details>",placeholder:e("æå å
容")},{type:"divider"},{icon:Z,title:e("è¦åæç¤º"),prefix:"\n> â ï¸ **è¦åï¼** ",suffix:"",placeholder:e("è¦åå
容"),isLine:!0},{icon:J,title:e("ä¿¡æ¯æç¤º"),prefix:"\n> â¹ï¸ **æç¤ºï¼** ",suffix:"",placeholder:e("æç¤ºå
容"),isLine:!0},{icon:U,title:e("æåæç¤º"),prefix:"\n> â
**æåï¼** ",suffix:"",placeholder:e("æåå
容"),isLine:!0}]}K.setOptions({gfm:!0,breaks:!0,smartypants:!1,highlight(e,s){if(s&&C.getLanguage(s))try{return C.highlight(e,{language:s}).value}catch{}try{return C.highlightAuto(e).value}catch{}return e}});const se={ADD_TAGS:["iframe","video","audio","source","details","summary","mark","kbd","abbr","sup","sub","dl","dt","dd","ins","ruby","rt","rp"],ADD_ATTR:["target","allowfullscreen","frameborder","scrolling","controls","autoplay","loop","muted","poster","preload","open","title","start","type","media"]},{Text:te,Title:re}=b,ae=[{value:"quota_push",labelKey:"ä½é¢ä¸è¶³é¢è¦"},{value:"sale_push",labelKey:"ä¿éæ´»å¨éç¥"},{value:"back_push",labelKey:"é²å¤±è-宿éç¥"},{value:"system_push",labelKey:"ç³»ç»å
¬åéç¥"},{value:"price_push",labelKey:"模åè°ä»·éç¥"},{value:"token_warning_push",labelKey:"令çä½é¢ä¸è¶³é¢è¦"},{value:"token_exhaust_push",labelKey:"令çä½é¢ä¸è¶³"}],ie=[{value:"email",labelKey:"é®ä»¶éç¥"},{value:"webhook",labelKey:"Webhookéç¥"},{value:"wxpusher",labelKey:"WxPusheréç¥"},{value:"dingtalk",labelKey:"éé群æºå¨äººéç¥"},{value:"wecom",labelKey:"ä¼ä¸å¾®ä¿¡ç¾¤æºå¨äººéç¥"},{value:"telegram",labelKey:"Telegramæºå¨äººéç¥"},{value:"feishu",labelKey:"é£ä¹¦æºå¨äººéç¥"}],le={pending:"amber",pushing:"blue",done:"green",failed:"red"},ne=()=>{const{t:b}=t(),C=e=>{const s=ae.find(s=>
1s.value===e);return s?b(s.labelKey):e},[T,I]=e.useState(!1),[L,z]=e.useState([]),[D,O]=e.useState(0),[R,q]=e.useState(1),[A,M]=e.useState({keyword:"",status:""}),[H,P]=e.useState(!1),[$,B]=e.useState(null),[E,F]=e.useState(null),[W,G]=e.useState(""),[V,Z]=e.useState("edit"),J=e.useRef(),U=e.useRef(),ne=e.useRef(),[oe,de]=e.useState(null),[ce,ue]=e.useState([]),[pe,he]=e.useState(!1),xe=async(e,s,t)=>{I(!0);try{const r=new URLSearchParams({p:String(e),page_size:String(s)});t.keyword?.trim()&&r.set("keyword",t.keyword.trim()),""!==t.status&&void 0!==t.status&&null!==t.status&&r.set("status",t.status);const a=await i.get(`/api/push-message?${r.toString()}`),{success:n,data:o,total:d,message:c}=a.data;n?(z(o||[]),O(d||0),q(e)):l(c||b("å 载失败"))}catch(r){l(r.message)}finally{I(!1)}};e.useEffect(()=>{xe(1,a,{keyword:"",status:""})},[]);const ge=()=>{xe(R,a,A)},fe=e.useCallback(e=>{const s=ne.current;if(!s)return;const t=s.selectionStart,r=s.selectionEnd,a=W.substring(t,r);let i,l;if(e.isInsert)i=W.substring(0,t)+e.prefix+e.suffix+W.substring(r),l=t+e.prefix.length+e.suffix.length;else{if(!a)return i=W.substring(0,t)+e.prefix+e.placeholder+e.suffix+W.substring(r),l=t+e.prefix.length,setTimeout(()=>{s.focus(),s.setSelectionRange(t+e.prefix.length,t+e.prefix.length+e.placeholder.length)},0),void G(i);i=W.substring(0,t)+e.prefix+a+e.suffix+W.substring(r),l=t+e.prefix.length+a.length+e.suffix.length}G(i),setTimeout(()=>{s.focus(),s.setSelectionRange(l,l)},0)},[W]),me=e.useCallback(e=>{if("Tab"===e.key){e.preventDefault();const s=ne.current,t=s.selectionStart,r=s.selectionEnd,a=W.substring(0,t)+" "+W.substring(r);G(a),setTimeout(()=>{s.setSelectionRange(t+2,t+2)},0)}},[W]),ye=e=>{if(!e)return s.jsx("div",{className:"text-center text-gray-400 py-20",children:b("ææ å
容ï¼è¯·å¨ç¼è¾å¨ä¸è¾å
¥ Markdown ææ¬")});try{const t=N.sanitize(K.parse(e),se);return s.jsx("div",{className:"article-markdown-body prose prose-slate dark:prose-invert max-w-none\n prose-headings:font-semibold\n prose-h1:text-2xl prose-h2:text-xl prose-h3:text-lg\n prose-p:text-base prose-p:leading-7\n prose-a:text-blue-600 prose-a:no-underline hover:prose-a:underline\n prose-img:rounded-lg prose-img:shadow-md\n prose-code:bg-gray-100 dark:prose-code:bg-gray-800 prose-code:px-1.5 prose-code:py-0.5 prose-code:rounded\n prose-pre:bg-gray-900 prose-pre:text-gray-100\n prose-blockquote:border-l-blue-500 prose-blockquote:bg-blue-50 dark:prose-blockquote:bg-blue-900/20 prose-blockquote:py-1\n prose-table:border-collapse\n prose-th:border prose-th:border-gray-300 prose-th:px-3 prose-th:py-2 prose-th:bg-gray-50\n prose-td:border prose-td:border-gray-300 prose-td:px-3 prose-td:py-2",dangerouslySetInnerHTML:{__html:t}})}catch{return s.jsx("div",{className:"text-red-500",children:b("Markdown è§£æé误")})}},be=async()=>{try{const e=await i.post(`/api/push-message/${oe.id}/execute`,{channels:ce});202===e.status||e.data?.success?(n(e.data?.message||b("å·²å¼å§åå°æ¨é")),he(!1),ge()):l(e.data?.message||b("æä½å¤±è´¥"))}catch(e){const s=e.response?.data?.message||e.message;l(s)}},je=[{title:"ID",dataIndex:"id",width:80},{title:b("æ é¢"),dataIndex:"title",ellipsis:!0},{title:b("äºä»¶ç±»å"),dataIndex:"event_type",width:160,render:e=>C(e)},{title:b("ç¶æ"),dataIndex:"status",width:120,render:e=>s.jsx(o,{color:le[e]||"grey",children:b(`push_status_${e}`)})},{title:b("å建æ¶é´"),dataIndex:"created_at",width:180,render:e=>r(e)},{title:b("æä½"),key:"action",fixed:"right",width:220,render:(e,t)=>s.jsxs(d,{children:[s.jsx(c,{theme:"borderless",type:"primary",onClick:()=>(e=>{F(e)})(t),children:b("详æ
")}),"pending"===t.status&&s.jsxs(s.Fragment,{children:[s.jsx(c,{theme:"borderless",type:"primary",onClick:()=>(e=>{B(e),G(e.content||""),Z("edit"),P(!0),setTimeout(()=>{J.current?.setValues({title:e.title,event_type:e.event_type})},0)})(t),children:b("ç¼è¾")}),s.jsx(c,{theme:"borderless",type:"primary",onClick:()=>(e=>{de(e),ue([]),he(!0)})(t),children:b("æ¨é")}),s.jsx(c,{theme:"borderless",type:"danger",onClick:()=>(e=>{w.confirm({title:b("确认å é¤"),content:b("ç¡®å®å é¤è¯¥æ¨éè稿åï¼
1"),onOk:async()=>{try{const s=await i.delete(`/api/push-message/${e.id}`);s.data.success?(n(b("å 餿å")),ge()):l(s.data.message)}catch(s){l(s.message)}}})})(t),children:b("å é¤")})]})]})}];return s.jsxs("div",{className:"px-2",children:[s.jsx(u,{className:"!rounded-2xl",title:s.jsxs("div",{className:"flex flex-col w-full",children:[s.jsxs("div",{className:"flex items-center justify-between mb-4",children:[s.jsx(re,{heading:3,children:b("æ¨é管ç")}),s.jsx(c,{theme:"solid",type:"primary",onClick:()=>{B(null),G(""),Z("edit"),P(!0),setTimeout(()=>{J.current?.setValues({title:"",event_type:"system_push"})},0)},children:b("æ°å»ºæ¨é")})]}),s.jsx(S,{margin:"12px"}),s.jsx("div",{className:"mb-4",children:s.jsx(y,{ref:U,layout:"horizontal",labelPosition:"left",onSubmit:e=>{const s={keyword:e.keyword||"",status:void 0===e.status||null===e.status?"":e.status};M(s),xe(1,a,s)},className:"w-full",children:s.jsxs("div",{className:"flex flex-col md:flex-row items-center gap-3 w-full",children:[s.jsx("div",{className:"w-full md:w-48",children:s.jsx(y.Input,{field:"keyword",placeholder:b("æç´¢æ¨éæ é¢"),showClear:!0,pure:!0,prefix:s.jsx(Q,{size:16})})}),s.jsx("div",{className:"w-full md:w-48",children:s.jsxs(y.Select,{field:"status",placeholder:b("éæ©ç¶æ"),style:{width:"100%"},pure:!0,children:[s.jsx(y.Select.Option,{value:"",children:b("å
¨é¨ç¶æ")}),s.jsx(y.Select.Option,{value:"pending",children:b("push_status_pending")}),s.jsx(y.Select.Option,{value:"pushing",children:b("push_status_pushing")}),s.jsx(y.Select.Option,{value:"done",children:b("push_status_done")}),s.jsx(y.Select.Option,{value:"failed",children:b("push_status_failed")})]})}),s.jsxs("div",{className:"flex gap-2",children:[s.jsx(c,{type:"primary",htmlType:"submit",children:b("æç´¢")}),s.jsx(c,{type:"tertiary",onClick:()=>{U.current?.formApi?.reset();const e={keyword:"",status:""};M(e),xe(1,a,e)},children:b("éç½®")})]})]})})})]}),shadows:"always",bordered:!1,children:s.jsx(p,{columns:je,dataSource:L,scroll:{x:"max-content"},pagination:{currentPage:R,pageSize:a,total:D,onPageChange:e=>{xe(e,a,A)}},loading:T,empty:s.jsx(h,{image:s.jsx(g,{style:{width:150,height:150}}),darkModeImage:s.jsx(x,{style:{width:150,height:150}}),description:b("ææ æ¨é"),style:{padding:30}})})}),s.jsx(f,{title:b($?"ç¼è¾æ¨é":"æ°å»ºæ¨é"),visible:H,onCancel:()=>P(!1),width:900,footer:s.jsxs("div",{style:{display:"flex",justifyContent:"flex-end"},children:[s.jsx(c,{style:{marginRight:8},onClick:()=>P(!1),children:b("åæ¶")}),s.jsx(c,{theme:"solid",onClick:()=>J.current?.submitForm(),loading:T,children:b("ä¿å")})]}),children:s.jsx(m,{spinning:T,children:s.jsxs(y,{getFormApi:e=>{J.current=e},onSubmit:async e=>{I(!0);try{const s={title:e.title,content:W,event_type:e.event_type};let t;t=$?await i.put(`/api/push-message/${$.id}`,s):await i.post("/api/push-message",s);const{success:r,message:a}=t.data;r?(n(b($?"æ´æ°æå":"å建æå")),P(!1),ge()):l(a||b("æä½å¤±è´¥"))}catch(s){l(s.message)}finally{I(!1)}},labelPosition:"top",children:[s.jsx(y.Input,{field:"title",label:b("æ é¢"),rules:[{required:!0,message:b("请è¾å
¥æ é¢")}]}),s.jsx(y.Select,{field:"event_type",label:b("订é
äºä»¶"),rules:[{required:!0}],optionList:ae.map(e=>({value:e.value,label:b(e.labelKey)}))}),s.jsxs("div",{style:{marginBottom:16},children:[s.jsxs(te,{strong:!0,style:{display:"block",marginBottom:8},children:[b("å
容")," ",s.jsxs(te,{type:"tertiary",size:14,children:["ï¼",b("æ¯æ Markdown æ ¼å¼"),"ï¼"]})]}),s.jsxs(j,{activeKey:V,onChange:Z,size:14,style:{marginBottom:0},children:[s.jsxs(v,{tab:s.jsxs("span",{className:"flex items-center gap-1",children:[s.jsx(X,{size:14})," ",b("ç¼è¾")]}),itemKey:"edit",children:[s.jsx("div",{className:"flex items-center gap-0.5 p-1.5 bg-gray-50 dark:bg-gray-800 border border-b-0 border-gray-200 dark:border-gray-600 rounded-t-lg flex-wrap",children:ee(b).map((e,t)=>{if("divider"===e.type)return s.jsx("div",{className:"w-px h-5 bg-gray-300 dark:bg-gray-600 mx-1"},t);const r=e.icon;return s.jsx(k,{content:e.title,position:"top",children:s.jsx("button",{type:"button",onClick:()=>fe(e),className:"p-1.5 rounded hover:bg-gray-200 dark:hover:bg-gray-700 text-gray-600 dark:text-gray-300 transition-colors",children:s.jsx(r,{size:16})})},t)})}),s.jsx("textarea",{ref:ne,value:W,onChange:e=>G(e.target.value),onKeyDown:me,placeholder:b("请è¾å
¥ Markdown æ ¼å¼çæç« å
容...\n\n# æ é¢\n\næ£æå
容...\n\n## äºçº§æ é¢\n\n- å表项1\n- å表项2"),className:"w-full border border-gray-200 dark:border-gray-600 rounded-b-lg p-4 font-mono text-sm leading-relaxed resize-none bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent",style:{height:420,minHeight:300}})]}),s.jsx(v,{tab:s.jsxs("span",{className:"flex items-center gap-1",children:[s.jsx(Y,{size:14})," ",b("é¢è§")]}),itemKey:"preview",children:s.jsx("div",{className:"border border-gray-200 dark:border-gray-600 rounded-lg p-6 bg-white dark:bg-gray-900 overflow-auto",style:{height:460,minHeight:300},children:ye(W)})})]})]})]})})}),s.jsx(f,{title:b("æ¨é详æ
"),visible:!!E,onCancel:()=>F(null),width:720,children:E&&s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{children:[s.jsx(te,{type:"secondary",children:"ID"})," ",E.id]}),s.jsxs("div",{children:[s.jsx(te,{type:"secondary",children:b("æ é¢")})," ",E.title]}),s.jsxs("div",{children:[s.jsx(te,{type:"secondary",children:b("äºä»¶ç±»å")})," ",C(E.event_type)]}),s.jsxs("div",{children:[s.jsx(te,{type:"secondary",children:b("ç¶æ")})," ",s.jsx(o,{color:le[E.status],children:b(`push_status_${E.status}`)})]}),E.error_message?s.jsxs("div",{children:[s.jsx(te,{type:"secondary",children:b("é误")})," ",E.error_message]}
1):null,s.jsx("div",{children:s.jsx(te,{type:"secondary",children:b("æ£æ")})}),s.jsx("div",{className:"border border-gray-200 dark:border-gray-600 rounded-lg p-6 bg-white dark:bg-gray-900 overflow-auto",style:{minHeight:200,maxHeight:460},children:ye(E.content)})]})}),s.jsx(w,{title:b("éæ©æ¨éæ¸ é"),visible:pe,onCancel:()=>he(!1),onOk:()=>{ce.length?(he(!1),w.confirm({title:b("确认æ¨é"),content:b("å°å已订é
该äºä»¶ä¸éç¥æ¹å¼å¹é
ç主ç«ç¨æ·åéï¼æ¯å¦ç»§ç»ï¼"),onOk:be})):l(b("请è³å°éæ©ä¸ç§æ¨éæ¸ é"))},okText:b("确认æ¨é"),children:s.jsx(_.Group,{value:ce,onChange:e=>ue(e),direction:"vertical","aria-label":"channels",children:ie.map(e=>s.jsx(_,{value:e.value,children:b(e.labelKey)},e.value))})})]})};export{ne 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.