1import{r as e,j as t}from"./vendor-react-DejgYtBM.js";import{f as a,B as r,m as s,y as l,E as d,J as i,K as n,M as c,o,j as h,i as y,G as x}from"./vendor-semi-D8d7bTtM.js";import{u as p,A as j,s as u,w as m}from"./index-BeIIFw6E.js";import"./vendor-icons-EJvJ5X-w.js";import"./vendor-motion-Chfy_MiU.js";const{Title:g,Text:w,Paragraph:b}=a,f={0:{label:"å¾
å®¡æ ¸",color:"light-blue"},1:{label:"å·²éè¿",color:"green"},2:{label:"å·²æç»",color:"red"}},k=()=>{const{t:a}=p(),[k,I]=e.useState([]),[_,v]=e.useState(!1),[A,C]=e.useState(!1),[S,N]=e.useState(!1),P=e.useRef(null),T=async()=>{v(!0);try{const e=await j.get("/api/app_code/");e.data.success?I(e.data.data||[]):u(e.data.message||"è·ååºç¨ç 失败")}catch(e){u("ç½ç»é误")}finally{v(!1)}};e.useEffect(()=>{T()},[]);const K=[{title:"åºç¨åç§°",dataIndex:"name",key:"name",width:160},{title:"åºç¨ç ",dataIndex:"code",key:"code",width:200,render:(e,a)=>1===a.status?t.jsx(w,{code:!0,copyable:!0,children:e}):t.jsx(w,{type:"tertiary",children:"å®¡æ ¸éè¿åå¯è§"})},{title:"项ç®é¾æ¥",dataIndex:"project_link",key:"project_link",render:e=>e?t.jsx("a",{href:e,target:"_blank",rel:"noopener noreferrer",style:{wordBreak:"break-all"},children:e}):t.jsx(w,{type:"tertiary",children:"-"})},{title:"ç¶æ",dataIndex:"status",key:"status",width:100,render:e=>{const a=f[e]||{label:"æªç¥",color:"grey"};return t.jsx(y,{color:a.color,children:a.label})}},{title:"ææ£ç",dataIndex:"discount_rate",key:"discount_rate",width:100,render:(e,a)=>1===a.status?t.jsxs(y,{color:"cyan",children:[(100*e).toFixed(0),"% 伿 "]}):t.jsx(w,{type:"tertiary",children:"-"})},{title:"ç³è¯·æ¶é´",dataIndex:"created_at",key:"created_at",width:180,render:e=>e?t.jsx(w,{type:"secondary",children:new Date(1e3*e).toLocaleString()}):"-"},{title:"æä½",key:"action",width:80,render:(e,a)=>1!==a.status?t.jsx(x,{title:"确认å 餿¤åºç¨ç ç³è¯·ï¼",onConfirm:()=>(async e=>{try{const t=await j.delete(`/api/app_code/${e}`);t.data.success?(m("å 餿å"),T()):u(t.data.message||"å é¤å¤±è´¥")}catch(t){u("ç½ç»é误")}})(a.id),okText:"确认",cancelText:"åæ¶",children:t.jsx(r,{type:"danger",size:"small",theme:"borderless",children:"å é¤"})}):null}];return t.jsxs("div",{className:"px-2 pb-4",children:[t.jsxs("div",{className:"flex items-center justify-between mb-4",children:[t.jsx(g,{heading:3,children:a("åºç¨ç ")}),t.jsx(r,{theme:"solid",type:"primary",onClick:()=>C(!0),children:a("ç³è¯·åºç¨ç ")})]}),t.jsx(s,{className:"mb-4 !rounded-2xl",shadows:"always",bordered:!1,children:t.jsxs("div",{className:"space-y-1",children:[t.jsx(b,{type:"tertiary",children:"1. æäº¤åºç¨ç ç³è¯·å¹¶å¡«åæ¨ç项ç®ä¿¡æ¯ï¼çå¾
管çåå®¡æ ¸ã"}),t.jsxs(b,{type:"tertiary",children:["2. å®¡æ ¸éè¿åï¼å¨æ¯æ¬¡ API 请æ±ç请æ±å¤´ä¸æºå¸¦ ",t.jsx(w,{code:!0,children:"APP-Code: <æ¨çåºç¨ç >"}),"ã"]}),t.jsx(b,{type:"tertiary",children:"3. åºç¨ç å¿
é¡»ä¸å½å使ç¨ç API Key å±äºåä¸è´¦å·ï¼å¦åææ£ä¸çæã"}),t.jsx(b,{type:"tertiary",children:"4. ææ£ä»
å¯¹å®¡æ ¸éè¿çåºç¨ç ææï¼æ¯ä¸ªè´¦å·æå¤å¯ç³è¯· 5 个åºç¨ç ã"})]})}),t.jsx(s,{className:"!rounded-2xl",title:t.jsx(g,{heading:5,style:{margin:0},children:a("æçåºç¨ç ")}),shadows:"always",bordered:!1,children:t.jsx(l,{columns:K,dataSource:k,rowKey:"id",style:{width:"100%"},pagination:!1,loading:_,empty:t.jsx(d,{image:t.jsx(n,{style:{width:150,height:150}}),darkModeImage:t.jsx(i,{style:{width:150,height:150}}),description:a("ææ åºç¨ç ï¼ç¹å»å³ä¸è§å³ä¸è§ãç³è¯·åºç¨ç ãæäº¤ç³è¯·"),style:{padding:30}})})}),t.jsx(c,{title:a("ç³è¯·åºç¨ç "),visible:A,onCancel:()=>{C(!1),P.current?.reset()},footer:t.jsxs(h,{children:[t.jsx(r,{onClick:()=>{C(!1),P.current?.reset()},children:a("åæ¶")}),t.jsx(r,{type:"primary",loading:S,onClick:async()=>{let e;try{e=await P.current.validate()}catch{return}N(!0);try{const t=await j.post("/api/app_code/",e);t.data.success?(m(t.data.message||"ç³è¯·å·²æäº¤"),C(!1),P.current?.reset(),T()):u(t.data.message||"ç³è¯·å¤±è´¥")}catch(t){u("ç½ç»é误")}finally{N(!1)}},children:a("æäº¤ç³è¯·")})]}),width:560,children:t.jsxs(o,{getFormApi:e=>P.current=e,layout:"vertical",children:[t.jsx(o.Input,{field:"name",label:a("åºç¨åç§°"),placeholder:a("请è¾å
¥æ¨çåºç¨/项ç®åç§°"),rules:[{required:!0,message:a("请填ååºç¨åç§°")}]}),t.jsx(o.Input,{field:"project_link",label:a("项ç®é¾æ¥ï¼å¯éï¼"),placeholder:"https://github.com/your/project"}),t.jsx(o.TextArea,{field:"description",label:a("é¡¹ç®æè¿°ï¼å¯éï¼"),placeholder:a("ç®è¦æè¿°æ¨ç项ç®ç¨éååºæ¯"),rows:4})]})})]})};export{k 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.