chainlesschain 0.162.0 → 0.162.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/assets/web-panel/.build-hash +1 -1
- package/src/assets/web-panel/assets/{AIOps-Dn8q-Cu4.js → AIOps-D69_XwQf.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-BePEVs4O.js → ActionButton-COVVHNnK.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-CKp-5Gi0.js → Analytics-m0Cuoraq.js} +2 -2
- package/src/assets/web-panel/assets/{AppLayout-DBgtkmP7.css → AppLayout-BEZq_CS0.css} +1 -1
- package/src/assets/web-panel/assets/{AppLayout-BSudqld0.js → AppLayout-BzzvYjpq.js} +3 -3
- package/src/assets/web-panel/assets/{Audit-iefpSeRG.js → Audit-DB5RNs9K.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-Ce43ZIhD.js → Backup-DD9SgVtq.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-BvGiwRav.js → BaseInput-CS2Y4V0O.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-BAaQg-Oc.js → Chat-Cvw48zqw.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-Dvn8uxKO.js → Checkbox-DElRJpAL.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-CTcZCayj.js → Codegen-CHdMYssy.js} +1 -1
- package/src/assets/web-panel/assets/{Col-CBFpGgb5.js → Col-BDk4BXjN.js} +1 -1
- package/src/assets/web-panel/assets/{Community-DmCYaV9M.js → Community-ByDrN94M.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DnOD5uMF.js → Compact-D4E0roed.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-u53e9lg-.js → Compliance-DCkF4hfd.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-CL5ohuXH.js → Cowork-CMn6mzHv.js} +1 -1
- package/src/assets/web-panel/assets/{Cron-DubcmRgt.js → Cron-CARdrrMM.js} +1 -1
- package/src/assets/web-panel/assets/{Crosschain-BWXcUXc3.js → Crosschain-2pnRIGVn.js} +1 -1
- package/src/assets/web-panel/assets/{DID-Cw0i8WjE.js → DID-BRo55XlY.js} +1 -1
- package/src/assets/web-panel/assets/{Dashboard-BbofvIWH.js → Dashboard-DfNjjw7V.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-DN6ur5xV.js → Dropdown-BDTTlG70.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-CA-rIdkY.js → Federation-CKkeJ169.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-D_HGU4aA.js → FormItemContext-C6DJ0oHT.js} +1 -1
- package/src/assets/web-panel/assets/{Git-CBWFs6Uk.js → Git-DDQd8pDl.js} +1 -1
- package/src/assets/web-panel/assets/{Governance-Cx6PTC43.js → Governance-DZTuAASB.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-Ubk1VstS.js → Inference-CIbj0XmL.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-DTB10MYO.js → KnowledgeGraph-nTHxy0Fw.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-Tfk4FBVC.js → Logs-BrLBwq1m.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-BAsztG4O.js → Marketplace-q9X5VK92.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-DliPfvuK.js → McpTools-DfxuLN57.js} +1 -1
- package/src/assets/web-panel/assets/{Memory-hkw6Xwyv.js → Memory-DND9vjBx.js} +1 -1
- package/src/assets/web-panel/assets/{MobileBridge-eeNMFGj6.js → MobileBridge-Ba2jSFl0.js} +1 -1
- package/src/assets/web-panel/assets/MobileProjects-CdclN769.js +1 -0
- package/src/assets/web-panel/assets/MobileProjects-Ceaxrqzc.css +1 -0
- package/src/assets/web-panel/assets/{Mtc-BP3Riowm.js → Mtc-BNKpFjlY.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-DvD7pE7V.js → MtcAudit-BlZJm1Tf.js} +1 -1
- package/src/assets/web-panel/assets/{Multisig-CPtc-fVL.js → Multisig-DcX0uBmT.js} +1 -1
- package/src/assets/web-panel/assets/{NLProgramming-1y__Epjg.js → NLProgramming-dDIA3V_a.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-CEvJqMP8.js → Notes-BDsTuZ5O.js} +1 -1
- package/src/assets/web-panel/assets/{NotificationSettings-wmCYm99r.js → NotificationSettings-DzGuAAKt.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-CSoz8gGr.js → Organization-DFfncYaU.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-kf1mnFrM.js → Overflow-O5JDtvyx.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-C4GfXJ8Z.js → P2P-BTLl5rnf.js} +1 -1
- package/src/assets/web-panel/assets/{Permissions-CW1Mn95X.js → Permissions-M-jmJa1X.js} +1 -1
- package/src/assets/web-panel/assets/{Pipeline-CM1ppddn.js → Pipeline-DyXoKp_J.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-DuAY5fEm.js → Privacy-Cvv_9eBQ.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-C72779b6.js → ProjectInit-BS2s_sxy.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectSettings-CAilXWam.js → ProjectSettings-CGfEpOL1.js} +1 -1
- package/src/assets/web-panel/assets/Projects-BX-SG9R4.css +1 -0
- package/src/assets/web-panel/assets/Projects-BkuTxL3o.js +1 -0
- package/src/assets/web-panel/assets/{Providers-Cf6Yv8bu.js → Providers-CkhZ5eii.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-CK1_VVzw.js → QuickAsk-CvGT4zj2.js} +1 -1
- package/src/assets/web-panel/assets/Recommend-C-gDvXw6.js +1 -0
- package/src/assets/web-panel/assets/{Reputation-ju6lWzMM.js → Reputation-5zAdCzHT.js} +1 -1
- package/src/assets/web-panel/assets/{Row-DQwipGEm.js → Row-BsuDvMpO.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-DkLGmeLW.js → RssFeed-2QQb8p5X.js} +3 -3
- package/src/assets/web-panel/assets/{Search-YYhitzkt.js → Search-CFT_6Ljj.js} +1 -1
- package/src/assets/web-panel/assets/{Security-DEllaBqe.js → Security-BrK_KNJK.js} +1 -1
- package/src/assets/web-panel/assets/{Services-BgPHBq9S.js → Services-DAmjLm-1.js} +1 -1
- package/src/assets/web-panel/assets/{Skeleton-DHEyJI7c.js → Skeleton--WjfL2Ay.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-c212vgf3.js → Skills-1GWFYMGg.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-COqhw_no.js → Sla-508cBkmT.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-Bmds06su.js → SpeechSettings-DIeNRX6V.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-Bx1_A34Y.js → SyncSettings-BQDW6gsX.js} +1 -1
- package/src/assets/web-panel/assets/{Tasks-B0Lo_9aN.js → Tasks-D39SBKyi.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-D0RcpfuW.js → Templates-tsObCBe6.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-G0yVctLy.js → Tenant-Ccpw-S6R.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-DqgLtK3c.js → Terminal-CgFg09NA.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-Cdt0aqCc.js → Tokens-BBWOiqLq.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-DFbfZFuJ.js → Trigger-D4yonKuU.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-BQXsWPz6.js → Trust-DHDcLjma.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-DBem5Xkj.js → UkeySign-DBpW0j1p.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-B1yipKKv.js → VideoEditing-BPr_46Py.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-iPJtU5QZ.js → Wallet-4lfplIJV.js} +1 -1
- package/src/assets/web-panel/assets/{WebAuthn-HLb9srUL.js → WebAuthn-DI13wkez.js} +4 -4
- package/src/assets/web-panel/assets/{WorkflowEditor-BSqXL8GD.js → WorkflowEditor-CYbHpkQy.js} +1 -1
- package/src/assets/web-panel/assets/{chat-D_J-ZVBh.js → chat-BOH4vNJ7.js} +1 -1
- package/src/assets/web-panel/assets/{colors-B126JcB4.js → colors-qxXJ45GU.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-Bw5EEKw4.js → compact-item-Cjb446yk.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-xLJXI46O.js → createContext-CulBut34.js} +1 -1
- package/src/assets/web-panel/assets/{hasIn-K8QCNlyy.js → hasIn-DCnwRrNq.js} +1 -1
- package/src/assets/web-panel/assets/{icons-NT6gy8Ee.js → icons-DY9VpXfa.js} +4 -4
- package/src/assets/web-panel/assets/{index-zEr6BW9X.js → index-6xtj6SRQ.js} +1 -1
- package/src/assets/web-panel/assets/index-B0YFQoW_.js +1 -0
- package/src/assets/web-panel/assets/{index-DFPVNSby.js → index-BA8bUOYK.js} +1 -1
- package/src/assets/web-panel/assets/{index-DY5Oc3z6.js → index-BAy0ks7N.js} +4 -4
- package/src/assets/web-panel/assets/{index-DlX09aXr.js → index-BBWR20mC.js} +1 -1
- package/src/assets/web-panel/assets/{index-B9ztiTnX.js → index-BCr0xH2Q.js} +1 -1
- package/src/assets/web-panel/assets/{index-CWBajOcE.js → index-BKNbteyC.js} +1 -1
- package/src/assets/web-panel/assets/{index-BaXXyyT0.js → index-BO-vFfxc.js} +1 -1
- package/src/assets/web-panel/assets/{index-DrfiELFa.js → index-BOFep_rA.js} +1 -1
- package/src/assets/web-panel/assets/index-BX7snsTz.js +1 -0
- package/src/assets/web-panel/assets/{index-yhA-qP4Y.js → index-Bb1KdW4J.js} +1 -1
- package/src/assets/web-panel/assets/{index-xJkPbv0L.js → index-Bp4_7Kow.js} +1 -1
- package/src/assets/web-panel/assets/{index-Da7bZewp.js → index-C3ImsNgP.js} +1 -1
- package/src/assets/web-panel/assets/{index-sAfwWh0R.js → index-C7reeGYU.js} +1 -1
- package/src/assets/web-panel/assets/{index-CvAey6iD.js → index-CFw2RtQ_.js} +1 -1
- package/src/assets/web-panel/assets/{index-DdMzLeDn.js → index-CRsnuDGC.js} +1 -1
- package/src/assets/web-panel/assets/{index-CVeuzjxG.js → index-CV_vlbaU.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dj8BNg-z.js → index-CW7a8O5w.js} +1 -1
- package/src/assets/web-panel/assets/{index-C2CgD7TN.js → index-C_029Hie.js} +1 -1
- package/src/assets/web-panel/assets/{index-DFwF_JeQ.js → index-Civlun-X.js} +1 -1
- package/src/assets/web-panel/assets/{index-BSgvvXgq.js → index-CjJUQvIU.js} +1 -1
- package/src/assets/web-panel/assets/{index-DZcij18m.js → index-Clxp_Rc0.js} +1 -1
- package/src/assets/web-panel/assets/{index-DLZZi1Km.js → index-Cv2hQG7c.js} +1 -1
- package/src/assets/web-panel/assets/{index-B_PqXUkT.js → index-D3bXm2aZ.js} +1 -1
- package/src/assets/web-panel/assets/{index-COCq6xuZ.js → index-D6-3yvOU.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dt0Tp8TS.js → index-D80IlXq1.js} +1 -1
- package/src/assets/web-panel/assets/{index-fMwtau_-.js → index-DC38ymaH.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bv9odL87.js → index-DG1F9RZd.js} +1 -1
- package/src/assets/web-panel/assets/{index-mzNWO8Yy.js → index-DK5iJriy.js} +1 -1
- package/src/assets/web-panel/assets/{index-DvNCyE3A.js → index-DNooejFX.js} +1 -1
- package/src/assets/web-panel/assets/{index-85lab9HJ.js → index-DQXojJvN.js} +1 -1
- package/src/assets/web-panel/assets/{index-qJbfToeQ.js → index-DkYY9W4x.js} +1 -1
- package/src/assets/web-panel/assets/{index-mqHxeING.js → index-DpzjQM4w.js} +1 -1
- package/src/assets/web-panel/assets/{index-p3d5_s7V.js → index-PP5MLidC.js} +1 -1
- package/src/assets/web-panel/assets/{index-BQ_NIMQS.js → index-SHmkRPZ_.js} +1 -1
- package/src/assets/web-panel/assets/{index-BsbKjK1o.js → index-XMsNvoaz.js} +1 -1
- package/src/assets/web-panel/assets/{index-BWUG9yVI.js → index-cP5FNe0q.js} +1 -1
- package/src/assets/web-panel/assets/{index-LZYGhjVr.js → index-hca2ku7U.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bptjq-wQ.js → index-oGqObYfs.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-CacwmJft.js → initDefaultProps-Dp93Vlbv.js} +1 -1
- package/src/assets/web-panel/assets/{motion-BWrP7Lz6.js → motion-yBy7l6Td.js} +1 -1
- package/src/assets/web-panel/assets/{move-imnbiy1n.js → move-P6GgC8ZU.js} +1 -1
- package/src/assets/web-panel/assets/{omit-BlaOv91I.js → omit-BMF4_2X_.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-DUGKp0ro.js → pickAttrs-C1bUV-iL.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-P0ZA4yAK.js → placementArrow-CpNGMWxW.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-CZz-M9cI.js → responsiveObserve-Bt3UzGUn.js} +1 -1
- package/src/assets/web-panel/assets/{slide-BEnICwoX.js → slide-B5t0Lgse.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-DdYKRSiH.js → statusUtils-nHmUS8yg.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-DgUxvOQt.js → styleChecker-DgazP1mu.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-BUEmeWdR.js → useFlexGapSupport-BQ4jJS_s.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-BXsj6Z5e.js → useFs-C8aeIQfU.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-B3Pp583L.js → vnode-DMH0ymoP.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-D-LYfiQh.js → zoom-DRmMxFNC.js} +1 -1
- package/src/assets/web-panel/index.html +2 -2
- package/src/assets/web-panel/assets/Projects-0OrfK90x.css +0 -1
- package/src/assets/web-panel/assets/Projects-DTIlVTkF.js +0 -1
- package/src/assets/web-panel/assets/Recommend-QBC7KgvR.js +0 -1
- package/src/assets/web-panel/assets/index-BEYypR_d.js +0 -1
- package/src/assets/web-panel/assets/index-DZWfmuM2.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{w as Z,K as s,L as v,Q as I,N as n,M as U,c as a,S as N,r as c,a as pe,f as ee,u as A,R as L,O as k,P as B,o as we,H as ye,F as ce,Y as de}from"./vendor-M5lGV-wr.js";import{u as ie,d as $,_ as ve}from"./index-DY5Oc3z6.js";import{u as _e}from"./useFs-BXsj6Z5e.js";import{u as fe}from"./useShellMode-CgR0wCYM.js";import{au as me,av as he,aq as ke,aw as xe,R as be,l as Se,ax as $e}from"./icons-NT6gy8Ee.js";function Ce(d){if(d&&d.ok===!1)throw new Error(d.error||"knowledge handler failed");return d?.result??d}function re(d){return String(d).replace(/(["\\])/g,"\\$1")}function ge(){const d=ie();async function q({title:C,content:x,tags:b=[],type:f="note"}={}){if(typeof C!="string"||!C.trim())throw new Error("title is required");if(typeof x!="string")throw new Error("content is required");const i=Array.isArray(b)?b.filter(Boolean):[];if(fe().isEmbedded){const y=await d.sendRaw({type:"knowledge.add-item",item:{title:C.trim(),content:x,tags:i,type:f}},2e4),S=Ce(y);if(S?.success===!1)throw new Error(S.error||"knowledge.add-item failed");return S?.item??null}let r=`note add "${re(C.trim())}" -c "${re(x)}"`;i.length&&(r+=` -t "${re(i.join(","))}"`);const{output:l}=await d.execute(r,15e3);if(l&&/^[\s\S]*✖|error/i.test(l))throw new Error(l.slice(0,200));return{title:C.trim(),content:x,tags:i,type:f}}return{addItem:q}}const Re={key:0,style:{"margin-bottom":"16px"}},Ve={__name:"ClipboardImportDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","saved"],setup(d,{emit:q}){const C=d,x=q,b=ge(),f=ee({get:()=>C.modelValue,set:p=>x("update:modelValue",p)}),i=c(!1),r=c(""),l=pe({title:"",content:"",tagsRaw:""}),y=()=>`剪贴板导入 - ${new Date().toLocaleString()}`;function S(){l.title=y(),l.content="",l.tagsRaw="",r.value=""}async function z(){if(r.value="",!navigator.clipboard?.readText){r.value="当前环境不支持剪贴板读取 API";return}try{const p=await navigator.clipboard.readText();l.content=p||"",p||(r.value="剪贴板为空")}catch(p){r.value="读取剪贴板失败:"+(p?.message||String(p))}}Z(()=>C.modelValue,async p=>{p&&(S(),await z())},{immediate:!0});async function E(){if(!l.content.trim()){$.warning("内容为空,无法保存");return}i.value=!0;try{const p=l.tagsRaw.split(/[,,]/).map(g=>g.trim()).filter(Boolean),m=await b.addItem({title:l.title.trim()||y(),content:l.content,tags:p,type:"note"});$.success("已保存到知识库"),x("saved",m),f.value=!1}catch(p){$.error("保存失败:"+(p?.message||String(p)))}finally{i.value=!1}}function T(){f.value=!1}return(p,m)=>{const g=s("a-alert"),u=s("a-input"),_=s("a-form-item"),P=s("a-textarea"),W=s("a-form"),F=s("a-modal");return v(),I(F,{open:f.value,"onUpdate:open":m[3]||(m[3]=O=>f.value=O),title:"剪贴板导入",width:640,"ok-text":i.value?"保存中…":"保存到知识库","cancel-text":"取消","ok-button-props":{loading:i.value,disabled:!l.content.trim()},onOk:E,onCancel:T},{default:n(()=>[r.value?(v(),U("div",Re,[a(g,{type:"warning","show-icon":"",message:r.value,description:"请确认浏览器/系统已授予剪贴板读取权限,或手动粘贴到下方输入框。"},null,8,["message"])])):N("",!0),a(W,{layout:"vertical",model:l},{default:n(()=>[a(_,{label:"标题"},{default:n(()=>[a(u,{value:l.title,"onUpdate:value":m[0]||(m[0]=O=>l.title=O),placeholder:"导入条目的标题","allow-clear":""},null,8,["value"])]),_:1}),a(_,{label:"内容"},{default:n(()=>[a(P,{value:l.content,"onUpdate:value":m[1]||(m[1]=O=>l.content=O),placeholder:"粘贴或编辑要保存的内容…","auto-size":{minRows:10,maxRows:20},"show-count":""},null,8,["value"])]),_:1}),a(_,{label:"标签(逗号分隔,可选)"},{default:n(()=>[a(u,{value:l.tagsRaw,"onUpdate:value":m[2]||(m[2]=O=>l.tagsRaw=O),placeholder:"例如:素材, 链接","allow-clear":""},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["open","ok-text","ok-button-props"])}}};function ue(d){if(d&&d.ok===!1)throw new Error(d.error||"screenshot handler failed");return d?.result??d}function Ee(){const d=ie();if(!fe().isEmbedded)return{unsupported:!0,capture:async()=>{throw new Error("截图需要桌面壳;浏览器模式不支持")},ocr:async()=>{throw new Error("OCR 仅在桌面壳可用")},cleanup:async()=>{}};async function C({screenIndex:f}={}){const i=await d.sendRaw({type:"screenshot.capture",screenIndex:f},3e4),r=ue(i);if(r?.success===!1)throw new Error(r.error||"screenshot.capture failed");return r}async function x(f,i,r){if(!f)throw new Error("path is required");const l=await d.sendRaw({type:"screenshot.ocr",path:f,lang:i,engine:r},9e4),y=ue(l);if(y?.success===!1)throw new Error(y.error||"screenshot.ocr failed");return y}async function b(f){if(f)try{const i=await d.sendRaw({type:"screenshot.cleanup",path:f},1e4),r=ue(i);r?.success===!1&&console.warn("[useScreenshot] cleanup failed:",r.error)}catch(i){console.warn("[useScreenshot] cleanup error:",i?.message||i)}}return{unsupported:!1,capture:C,ocr:x,cleanup:b}}const Oe={key:0,style:{"margin-bottom":"16px"}},Ue={key:1,class:"ss-error"},Ne={key:2},Ie={class:"ss-actions"},ze={key:0,class:"ss-preview"},Te=["src"],Le={__name:"ScreenshotImportDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","saved"],setup(d,{emit:q}){const C=d,x=q,b=Ee(),f=ge(),i=ee({get:()=>C.modelValue,set:w=>x("update:modelValue",w)}),r=c(!1),l=c(!1),y=c(!1),S=c(""),z=c(null),E=c("auto"),T=c(null),p=c(""),m=c(""),g=c(null),u=pe({title:"",content:"",tagsRaw:""}),_=ee(()=>!!g.value&&(u.content.trim()||"").length>0),P=()=>`截图识别 - ${new Date().toLocaleString()}`;function W(){u.title=P(),u.content="",u.tagsRaw="",S.value="",z.value=null,T.value=null,p.value="",m.value="",g.value=null}async function F(){g.value?.path&&await b.cleanup(g.value.path)}async function O(){if(b.unsupported)return S.value="浏览器模式不支持截图,请用桌面壳",null;l.value=!0;try{return await b.capture({})}catch(w){return S.value=w?.message||String(w),null}finally{l.value=!1}}async function M(w){if(w){y.value=!0;try{const e=await b.ocr(w,void 0,E.value);u.content=e.text||"",z.value=typeof e.confidence=="number"?e.confidence:null,T.value=e.engine||null,p.value=e.model||"",m.value=e.fallbackReason||"",e.text||$.info("OCR 未识别到文本,可手动输入")}catch(e){$.warning("OCR 失败: "+(e?.message||String(e)))}finally{y.value=!1}}}async function Y(){m.value=""}async function te(){await F(),W();const w=await O();w&&(g.value=w,await M(w.path))}async function Q(){g.value?.path&&await M(g.value.path)}Z(()=>C.modelValue,async w=>{if(w){W();const e=await O();e&&(g.value=e,await M(e.path))}else await F(),g.value=null},{immediate:!0});async function ae(){if(!_.value){$.warning("识别文本为空,无法保存");return}r.value=!0;try{const w=u.tagsRaw.split(/[,,]/).map(t=>t.trim()).filter(Boolean),e=await f.addItem({title:u.title.trim()||P(),content:u.content,tags:w,type:"note"});$.success("已保存到知识库"),x("saved",e),await F(),i.value=!1}catch(w){$.error("保存失败: "+(w?.message||String(w)))}finally{r.value=!1}}async function ne(){await F(),i.value=!1}return(w,e)=>{const t=s("a-alert"),V=s("a-button"),D=s("a-select-option"),h=s("a-select"),R=s("a-tag"),K=s("a-tooltip"),G=s("a-input"),j=s("a-form-item"),H=s("a-spin"),oe=s("a-textarea"),le=s("a-form"),J=s("a-modal");return v(),I(J,{open:i.value,"onUpdate:open":e[4]||(e[4]=o=>i.value=o),title:"截图识别",width:780,"ok-text":r.value?"保存中…":"保存到知识库","cancel-text":"取消","ok-button-props":{loading:r.value,disabled:!_.value},onOk:ae,onCancel:ne},{default:n(()=>[A(b).unsupported?(v(),U("div",Oe,[a(t,{type:"warning","show-icon":"",message:"浏览器模式不支持截图",description:"screenshot-desktop 需要 OS 原生 API,请用桌面壳 (cc desktop) 打开本面板。"})])):S.value?(v(),U("div",Ue,[a(t,{type:"error","show-icon":"",message:S.value},null,8,["message"])])):(v(),U("div",Ne,[L("div",Ie,[a(V,{size:"small",loading:l.value,onClick:te},{icon:n(()=>[a(A(me))]),default:n(()=>[e[5]||(e[5]=k(" 重新截图 ",-1))]),_:1},8,["loading"]),a(V,{size:"small",loading:y.value,disabled:!g.value||y.value,onClick:Q},{icon:n(()=>[a(A(he))]),default:n(()=>[e[6]||(e[6]=k(" 重跑 OCR ",-1))]),_:1},8,["loading","disabled"]),a(h,{value:E.value,"onUpdate:value":e[0]||(e[0]=o=>E.value=o),size:"small",style:{width:"140px"},disabled:y.value,onChange:Y},{default:n(()=>[a(D,{value:"auto"},{default:n(()=>[...e[7]||(e[7]=[k("自动 (推荐)",-1)])]),_:1}),a(D,{value:"llm"},{default:n(()=>[...e[8]||(e[8]=[k("视觉 LLM",-1)])]),_:1}),a(D,{value:"tesseract"},{default:n(()=>[...e[9]||(e[9]=[k("本地 Tesseract",-1)])]),_:1})]),_:1},8,["value","disabled"]),T.value==="llm"?(v(),I(R,{key:0,color:"blue"},{default:n(()=>[k(B(p.value||"豆包视觉"),1)]),_:1})):T.value==="tesseract"&&z.value!==null?(v(),I(R,{key:1},{default:n(()=>[k(" Tesseract · "+B(z.value)+"% ",1)]),_:1})):N("",!0),m.value?(v(),I(K,{key:2,title:`LLM 识别失败已回落 Tesseract: ${m.value}`},{default:n(()=>[a(R,{color:"orange"},{default:n(()=>[...e[10]||(e[10]=[k("回落 Tesseract",-1)])]),_:1})]),_:1},8,["title"])):N("",!0)]),g.value?.dataUrl?(v(),U("div",ze,[L("img",{src:g.value.dataUrl,alt:"screenshot"},null,8,Te)])):N("",!0),a(le,{layout:"vertical",model:u},{default:n(()=>[a(j,{label:"标题"},{default:n(()=>[a(G,{value:u.title,"onUpdate:value":e[1]||(e[1]=o=>u.title=o),placeholder:"导入条目的标题","allow-clear":""},null,8,["value"])]),_:1}),a(j,null,{label:n(()=>[e[11]||(e[11]=L("span",null,"识别文本",-1)),y.value?(v(),I(H,{key:0,size:"small",style:{"margin-left":"8px"}})):N("",!0)]),default:n(()=>[a(oe,{value:u.content,"onUpdate:value":e[2]||(e[2]=o=>u.content=o),placeholder:y.value?"正在识别…":"识别结果,可手动编辑","auto-size":{minRows:8,maxRows:16},"show-count":""},null,8,["value","placeholder"])]),_:1}),a(j,{label:"标签 (逗号分隔, 可选)"},{default:n(()=>[a(G,{value:u.tagsRaw,"onUpdate:value":e[3]||(e[3]=o=>u.tagsRaw=o),placeholder:"例如: 截图, 参考","allow-clear":""},null,8,["value"])]),_:1})]),_:1},8,["model"])]))]),_:1},8,["open","ok-text","ok-button-props"])}}},qe=ve(Le,[["__scopeId","data-v-d65e43c0"]]),Be={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Me={class:"page-sub"},De={style:{"margin-bottom":"16px",display:"flex",gap:"10px"}},Ae={key:0,style:{"text-align":"center",padding:"60px"}},Fe={key:0,style:{color:"#e0e0e0","font-weight":"500"}},Pe={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},We={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},je={key:0,style:{"max-height":"60vh","overflow-y":"auto"}},Qe={style:{"margin-bottom":"10px"}},Ke={style:{"white-space":"pre-wrap",color:"#ccc","font-family":"inherit","line-height":"1.7",background:"var(--bg-base)",padding:"16px","border-radius":"6px",border:"1px solid var(--border-color)"}},He={__name:"Notes",setup(d){const q=ie(),C=_e(),x=ye(),b=c(!1),f=c(!1),i=c(!1),r=c(!1),l=c(""),y=c([]),S=c([]),z=c(!1),E=c(""),T=c(!1),p=c(!1),m=c(!1),g=c(!1),u=c(null),_=c({title:"",content:"",tags:""});async function P(){$.success("剪贴板内容已保存到知识库"),await M()}async function W(){$.success("截图内容已保存到知识库"),await M()}const F=ee(()=>z.value?S.value:y.value),O=[{title:"标题",dataIndex:"title",key:"title",width:"30%"},{title:"预览",key:"content",ellipsis:!0},{title:"标签",key:"tags",width:"20%"},{title:"操作",key:"actions",width:"80px"}];async function M(){f.value=!0,l.value="";try{const{output:e}=await q.execute("note list",2e4);y.value=Y(e)}catch(e){l.value=`加载失败: ${e.message}`}finally{f.value=!1}}function Y(e){const t=[],V=e.split(`
|
|
1
|
+
import{w as Z,K as s,L as v,Q as I,N as n,M as U,c as a,S as N,r as c,a as pe,f as ee,u as A,R as L,O as k,P as B,o as we,H as ye,F as ce,Y as de}from"./vendor-M5lGV-wr.js";import{u as ie,d as $,_ as ve}from"./index-BAy0ks7N.js";import{u as _e}from"./useFs-C8aeIQfU.js";import{u as fe}from"./useShellMode-CgR0wCYM.js";import{au as me,av as he,aq as ke,aw as xe,R as be,l as Se,ax as $e}from"./icons-DY9VpXfa.js";function Ce(d){if(d&&d.ok===!1)throw new Error(d.error||"knowledge handler failed");return d?.result??d}function re(d){return String(d).replace(/(["\\])/g,"\\$1")}function ge(){const d=ie();async function q({title:C,content:x,tags:b=[],type:f="note"}={}){if(typeof C!="string"||!C.trim())throw new Error("title is required");if(typeof x!="string")throw new Error("content is required");const i=Array.isArray(b)?b.filter(Boolean):[];if(fe().isEmbedded){const y=await d.sendRaw({type:"knowledge.add-item",item:{title:C.trim(),content:x,tags:i,type:f}},2e4),S=Ce(y);if(S?.success===!1)throw new Error(S.error||"knowledge.add-item failed");return S?.item??null}let r=`note add "${re(C.trim())}" -c "${re(x)}"`;i.length&&(r+=` -t "${re(i.join(","))}"`);const{output:l}=await d.execute(r,15e3);if(l&&/^[\s\S]*✖|error/i.test(l))throw new Error(l.slice(0,200));return{title:C.trim(),content:x,tags:i,type:f}}return{addItem:q}}const Re={key:0,style:{"margin-bottom":"16px"}},Ve={__name:"ClipboardImportDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","saved"],setup(d,{emit:q}){const C=d,x=q,b=ge(),f=ee({get:()=>C.modelValue,set:p=>x("update:modelValue",p)}),i=c(!1),r=c(""),l=pe({title:"",content:"",tagsRaw:""}),y=()=>`剪贴板导入 - ${new Date().toLocaleString()}`;function S(){l.title=y(),l.content="",l.tagsRaw="",r.value=""}async function z(){if(r.value="",!navigator.clipboard?.readText){r.value="当前环境不支持剪贴板读取 API";return}try{const p=await navigator.clipboard.readText();l.content=p||"",p||(r.value="剪贴板为空")}catch(p){r.value="读取剪贴板失败:"+(p?.message||String(p))}}Z(()=>C.modelValue,async p=>{p&&(S(),await z())},{immediate:!0});async function E(){if(!l.content.trim()){$.warning("内容为空,无法保存");return}i.value=!0;try{const p=l.tagsRaw.split(/[,,]/).map(g=>g.trim()).filter(Boolean),m=await b.addItem({title:l.title.trim()||y(),content:l.content,tags:p,type:"note"});$.success("已保存到知识库"),x("saved",m),f.value=!1}catch(p){$.error("保存失败:"+(p?.message||String(p)))}finally{i.value=!1}}function T(){f.value=!1}return(p,m)=>{const g=s("a-alert"),u=s("a-input"),_=s("a-form-item"),P=s("a-textarea"),W=s("a-form"),F=s("a-modal");return v(),I(F,{open:f.value,"onUpdate:open":m[3]||(m[3]=O=>f.value=O),title:"剪贴板导入",width:640,"ok-text":i.value?"保存中…":"保存到知识库","cancel-text":"取消","ok-button-props":{loading:i.value,disabled:!l.content.trim()},onOk:E,onCancel:T},{default:n(()=>[r.value?(v(),U("div",Re,[a(g,{type:"warning","show-icon":"",message:r.value,description:"请确认浏览器/系统已授予剪贴板读取权限,或手动粘贴到下方输入框。"},null,8,["message"])])):N("",!0),a(W,{layout:"vertical",model:l},{default:n(()=>[a(_,{label:"标题"},{default:n(()=>[a(u,{value:l.title,"onUpdate:value":m[0]||(m[0]=O=>l.title=O),placeholder:"导入条目的标题","allow-clear":""},null,8,["value"])]),_:1}),a(_,{label:"内容"},{default:n(()=>[a(P,{value:l.content,"onUpdate:value":m[1]||(m[1]=O=>l.content=O),placeholder:"粘贴或编辑要保存的内容…","auto-size":{minRows:10,maxRows:20},"show-count":""},null,8,["value"])]),_:1}),a(_,{label:"标签(逗号分隔,可选)"},{default:n(()=>[a(u,{value:l.tagsRaw,"onUpdate:value":m[2]||(m[2]=O=>l.tagsRaw=O),placeholder:"例如:素材, 链接","allow-clear":""},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["open","ok-text","ok-button-props"])}}};function ue(d){if(d&&d.ok===!1)throw new Error(d.error||"screenshot handler failed");return d?.result??d}function Ee(){const d=ie();if(!fe().isEmbedded)return{unsupported:!0,capture:async()=>{throw new Error("截图需要桌面壳;浏览器模式不支持")},ocr:async()=>{throw new Error("OCR 仅在桌面壳可用")},cleanup:async()=>{}};async function C({screenIndex:f}={}){const i=await d.sendRaw({type:"screenshot.capture",screenIndex:f},3e4),r=ue(i);if(r?.success===!1)throw new Error(r.error||"screenshot.capture failed");return r}async function x(f,i,r){if(!f)throw new Error("path is required");const l=await d.sendRaw({type:"screenshot.ocr",path:f,lang:i,engine:r},9e4),y=ue(l);if(y?.success===!1)throw new Error(y.error||"screenshot.ocr failed");return y}async function b(f){if(f)try{const i=await d.sendRaw({type:"screenshot.cleanup",path:f},1e4),r=ue(i);r?.success===!1&&console.warn("[useScreenshot] cleanup failed:",r.error)}catch(i){console.warn("[useScreenshot] cleanup error:",i?.message||i)}}return{unsupported:!1,capture:C,ocr:x,cleanup:b}}const Oe={key:0,style:{"margin-bottom":"16px"}},Ue={key:1,class:"ss-error"},Ne={key:2},Ie={class:"ss-actions"},ze={key:0,class:"ss-preview"},Te=["src"],Le={__name:"ScreenshotImportDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","saved"],setup(d,{emit:q}){const C=d,x=q,b=Ee(),f=ge(),i=ee({get:()=>C.modelValue,set:w=>x("update:modelValue",w)}),r=c(!1),l=c(!1),y=c(!1),S=c(""),z=c(null),E=c("auto"),T=c(null),p=c(""),m=c(""),g=c(null),u=pe({title:"",content:"",tagsRaw:""}),_=ee(()=>!!g.value&&(u.content.trim()||"").length>0),P=()=>`截图识别 - ${new Date().toLocaleString()}`;function W(){u.title=P(),u.content="",u.tagsRaw="",S.value="",z.value=null,T.value=null,p.value="",m.value="",g.value=null}async function F(){g.value?.path&&await b.cleanup(g.value.path)}async function O(){if(b.unsupported)return S.value="浏览器模式不支持截图,请用桌面壳",null;l.value=!0;try{return await b.capture({})}catch(w){return S.value=w?.message||String(w),null}finally{l.value=!1}}async function M(w){if(w){y.value=!0;try{const e=await b.ocr(w,void 0,E.value);u.content=e.text||"",z.value=typeof e.confidence=="number"?e.confidence:null,T.value=e.engine||null,p.value=e.model||"",m.value=e.fallbackReason||"",e.text||$.info("OCR 未识别到文本,可手动输入")}catch(e){$.warning("OCR 失败: "+(e?.message||String(e)))}finally{y.value=!1}}}async function Y(){m.value=""}async function te(){await F(),W();const w=await O();w&&(g.value=w,await M(w.path))}async function Q(){g.value?.path&&await M(g.value.path)}Z(()=>C.modelValue,async w=>{if(w){W();const e=await O();e&&(g.value=e,await M(e.path))}else await F(),g.value=null},{immediate:!0});async function ae(){if(!_.value){$.warning("识别文本为空,无法保存");return}r.value=!0;try{const w=u.tagsRaw.split(/[,,]/).map(t=>t.trim()).filter(Boolean),e=await f.addItem({title:u.title.trim()||P(),content:u.content,tags:w,type:"note"});$.success("已保存到知识库"),x("saved",e),await F(),i.value=!1}catch(w){$.error("保存失败: "+(w?.message||String(w)))}finally{r.value=!1}}async function ne(){await F(),i.value=!1}return(w,e)=>{const t=s("a-alert"),V=s("a-button"),D=s("a-select-option"),h=s("a-select"),R=s("a-tag"),K=s("a-tooltip"),G=s("a-input"),j=s("a-form-item"),H=s("a-spin"),oe=s("a-textarea"),le=s("a-form"),J=s("a-modal");return v(),I(J,{open:i.value,"onUpdate:open":e[4]||(e[4]=o=>i.value=o),title:"截图识别",width:780,"ok-text":r.value?"保存中…":"保存到知识库","cancel-text":"取消","ok-button-props":{loading:r.value,disabled:!_.value},onOk:ae,onCancel:ne},{default:n(()=>[A(b).unsupported?(v(),U("div",Oe,[a(t,{type:"warning","show-icon":"",message:"浏览器模式不支持截图",description:"screenshot-desktop 需要 OS 原生 API,请用桌面壳 (cc desktop) 打开本面板。"})])):S.value?(v(),U("div",Ue,[a(t,{type:"error","show-icon":"",message:S.value},null,8,["message"])])):(v(),U("div",Ne,[L("div",Ie,[a(V,{size:"small",loading:l.value,onClick:te},{icon:n(()=>[a(A(me))]),default:n(()=>[e[5]||(e[5]=k(" 重新截图 ",-1))]),_:1},8,["loading"]),a(V,{size:"small",loading:y.value,disabled:!g.value||y.value,onClick:Q},{icon:n(()=>[a(A(he))]),default:n(()=>[e[6]||(e[6]=k(" 重跑 OCR ",-1))]),_:1},8,["loading","disabled"]),a(h,{value:E.value,"onUpdate:value":e[0]||(e[0]=o=>E.value=o),size:"small",style:{width:"140px"},disabled:y.value,onChange:Y},{default:n(()=>[a(D,{value:"auto"},{default:n(()=>[...e[7]||(e[7]=[k("自动 (推荐)",-1)])]),_:1}),a(D,{value:"llm"},{default:n(()=>[...e[8]||(e[8]=[k("视觉 LLM",-1)])]),_:1}),a(D,{value:"tesseract"},{default:n(()=>[...e[9]||(e[9]=[k("本地 Tesseract",-1)])]),_:1})]),_:1},8,["value","disabled"]),T.value==="llm"?(v(),I(R,{key:0,color:"blue"},{default:n(()=>[k(B(p.value||"豆包视觉"),1)]),_:1})):T.value==="tesseract"&&z.value!==null?(v(),I(R,{key:1},{default:n(()=>[k(" Tesseract · "+B(z.value)+"% ",1)]),_:1})):N("",!0),m.value?(v(),I(K,{key:2,title:`LLM 识别失败已回落 Tesseract: ${m.value}`},{default:n(()=>[a(R,{color:"orange"},{default:n(()=>[...e[10]||(e[10]=[k("回落 Tesseract",-1)])]),_:1})]),_:1},8,["title"])):N("",!0)]),g.value?.dataUrl?(v(),U("div",ze,[L("img",{src:g.value.dataUrl,alt:"screenshot"},null,8,Te)])):N("",!0),a(le,{layout:"vertical",model:u},{default:n(()=>[a(j,{label:"标题"},{default:n(()=>[a(G,{value:u.title,"onUpdate:value":e[1]||(e[1]=o=>u.title=o),placeholder:"导入条目的标题","allow-clear":""},null,8,["value"])]),_:1}),a(j,null,{label:n(()=>[e[11]||(e[11]=L("span",null,"识别文本",-1)),y.value?(v(),I(H,{key:0,size:"small",style:{"margin-left":"8px"}})):N("",!0)]),default:n(()=>[a(oe,{value:u.content,"onUpdate:value":e[2]||(e[2]=o=>u.content=o),placeholder:y.value?"正在识别…":"识别结果,可手动编辑","auto-size":{minRows:8,maxRows:16},"show-count":""},null,8,["value","placeholder"])]),_:1}),a(j,{label:"标签 (逗号分隔, 可选)"},{default:n(()=>[a(G,{value:u.tagsRaw,"onUpdate:value":e[3]||(e[3]=o=>u.tagsRaw=o),placeholder:"例如: 截图, 参考","allow-clear":""},null,8,["value"])]),_:1})]),_:1},8,["model"])]))]),_:1},8,["open","ok-text","ok-button-props"])}}},qe=ve(Le,[["__scopeId","data-v-d65e43c0"]]),Be={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Me={class:"page-sub"},De={style:{"margin-bottom":"16px",display:"flex",gap:"10px"}},Ae={key:0,style:{"text-align":"center",padding:"60px"}},Fe={key:0,style:{color:"#e0e0e0","font-weight":"500"}},Pe={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},We={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},je={key:0,style:{"max-height":"60vh","overflow-y":"auto"}},Qe={style:{"margin-bottom":"10px"}},Ke={style:{"white-space":"pre-wrap",color:"#ccc","font-family":"inherit","line-height":"1.7",background:"var(--bg-base)",padding:"16px","border-radius":"6px",border:"1px solid var(--border-color)"}},He={__name:"Notes",setup(d){const q=ie(),C=_e(),x=ye(),b=c(!1),f=c(!1),i=c(!1),r=c(!1),l=c(""),y=c([]),S=c([]),z=c(!1),E=c(""),T=c(!1),p=c(!1),m=c(!1),g=c(!1),u=c(null),_=c({title:"",content:"",tags:""});async function P(){$.success("剪贴板内容已保存到知识库"),await M()}async function W(){$.success("截图内容已保存到知识库"),await M()}const F=ee(()=>z.value?S.value:y.value),O=[{title:"标题",dataIndex:"title",key:"title",width:"30%"},{title:"预览",key:"content",ellipsis:!0},{title:"标签",key:"tags",width:"20%"},{title:"操作",key:"actions",width:"80px"}];async function M(){f.value=!0,l.value="";try{const{output:e}=await q.execute("note list",2e4);y.value=Y(e)}catch(e){l.value=`加载失败: ${e.message}`}finally{f.value=!1}}function Y(e){const t=[],V=e.split(`
|
|
2
2
|
`);for(const D of V){const h=D.trim();if(!h||h.startsWith("─")||h.startsWith("Note")||h.match(/^\d+ note/i))continue;const R=h.match(/^(\d+)\.\s+(.+?)(?:\s+\[([^\]]+)\])?\s*(?:-\s*(.*))?$/);R?t.push({key:R[1],id:R[1],title:R[2].trim(),tags:R[3]?R[3].split(",").map(K=>K.trim()):[],preview:(R[4]||"").trim().slice(0,100),content:""}):h.length>2&&!h.startsWith("✖")&&!h.startsWith("[")&&t.push({key:t.length,id:String(t.length),title:h,tags:[],preview:"",content:""})}return t}async function te(){if(!E.value.trim()){Q();return}i.value=!0,z.value=!0;try{const{output:e}=await q.execute(`note search "${E.value}"`,15e3);S.value=Y(e)}catch{S.value=[]}finally{i.value=!1}}function Q(){E.value="",z.value=!1,S.value=[]}async function ae(){if(!_.value.title.trim()){$.warning("请输入标题");return}r.value=!0;try{let e=`note add "${_.value.title}"`;_.value.content&&(e+=` -c "${_.value.content.replace(/"/g,'\\"')}"`),_.value.tags&&(e+=` -t "${_.value.tags}"`);const{output:t}=await q.execute(e,15e3);t.includes("✖")||t.toLowerCase().includes("error")?$.error("添加失败: "+t.slice(0,100)):($.success("笔记已添加"),T.value=!1,_.value={title:"",content:"",tags:""},await M())}catch(e){$.error("添加失败: "+e.message)}finally{r.value=!1}}function ne(e){u.value=e,p.value=!0}async function w(){if(!u.value)return;const e=u.value,t=e.tags?.length?`tags: [${e.tags.join(", ")}]
|
|
3
3
|
|
|
4
4
|
`:"",V=`# ${e.title}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as D,_ as F,d as E}from"./index-
|
|
1
|
+
import{u as D,_ as F,d as E}from"./index-BAy0ks7N.js";import{u as M}from"./useShellMode-CgR0wCYM.js";import{r as h,o as O,M as C,R as r,u as s,Q as A,S as N,c as t,N as d,K as f,L as y,F as W,O as j,P as q}from"./vendor-M5lGV-wr.js";import{R as z}from"./icons-DY9VpXfa.js";const m={enabled:!0,sound:!0,badge:!0,desktop:!0};function V(n){if(n&&n.ok===!1)throw new Error(n.error||"notification-settings handler failed");return n?.result??n}const g={settings:h({...m})};function I(){const n=D(),o=M().isEmbedded;async function l(){if(!o)return g.settings.value={...m},g.settings.value;const u=await n.sendRaw({type:"notification-settings.get"},1e4),i=V(u);if(i?.success===!1)throw new Error(i.error||"notification-settings.get failed");return g.settings.value={...m,...i?.settings||{}},g.settings.value}async function b(u){if(!u||typeof u!="object")throw new Error("patch is required");if(!o)throw new Error("通知设置仅在嵌入式 web-shell 中可写");const i=await n.sendRaw({type:"notification-settings.update",settings:u},1e4),a=V(i);if(a?.success===!1)throw new Error(a.error||"notification-settings.update failed");return g.settings.value={...m,...a?.settings||{}},g.settings.value}return{settings:g.settings,isEmbedded:o,load:l,update:b,DEFAULTS:m}}const K={class:"footer-row"},P={key:0,class:"last-saved"},Q={__name:"NotificationSettings",setup(n){const{settings:o,isEmbedded:l,load:b,update:u}=I(),i=h(!1),a=h(!1),S=h("");async function x(){i.value=!0;try{await b()}catch(p){E.error("加载失败: "+(p?.message||String(p)))}finally{i.value=!1}}async function v(p,e){if(l){a.value=!0;try{await u({[p]:e}),S.value=new Date().toLocaleTimeString(),E.success("已保存")}catch(w){E.error("保存失败: "+(w?.message||String(w))),await b().catch(()=>{})}finally{a.value=!1}}}return O(x),(p,e)=>{const w=f("a-alert"),_=f("a-switch"),k=f("a-form-item"),R=f("a-form"),B=f("a-divider"),L=f("a-button"),T=f("a-card");return y(),C("div",null,[e[9]||(e[9]=r("div",{class:"page-head"},[r("div",null,[r("h2",{class:"page-title"},"通知设置"),r("p",{class:"page-sub"},"控制应用通知行为 · 与桌面 V5/V6 设置同源")])],-1)),s(l)?N("",!0):(y(),A(w,{key:0,type:"info","show-icon":"",style:{"margin-bottom":"16px"},message:"浏览器模式只读",description:"纯浏览器没有 Electron AppConfig 后端,本页只能展示默认值。请使用桌面壳 (cc desktop) 写入。"})),t(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:d(()=>[t(R,{layout:"horizontal","label-col":{span:6},"wrapper-col":{span:18}},{default:d(()=>[t(k,{label:"启用通知"},{default:d(()=>[t(_,{checked:s(o).enabled,disabled:!s(l)||a.value,onChange:e[0]||(e[0]=c=>v("enabled",c))},null,8,["checked","disabled"]),e[4]||(e[4]=r("span",{class:"hint"},"关闭后所有通知静默",-1))]),_:1}),s(o).enabled?(y(),C(W,{key:0},[t(k,{label:"通知声音"},{default:d(()=>[t(_,{checked:s(o).sound,disabled:!s(l)||a.value,onChange:e[1]||(e[1]=c=>v("sound",c))},null,8,["checked","disabled"]),e[5]||(e[5]=r("span",{class:"hint"},"桌面通知伴随系统提示音",-1))]),_:1}),t(k,{label:"角标提示"},{default:d(()=>[t(_,{checked:s(o).badge,disabled:!s(l)||a.value,onChange:e[2]||(e[2]=c=>v("badge",c))},null,8,["checked","disabled"]),e[6]||(e[6]=r("span",{class:"hint"},"在应用图标 / 任务栏角标显示未读数",-1))]),_:1}),t(k,{label:"桌面通知"},{default:d(()=>[t(_,{checked:s(o).desktop,disabled:!s(l)||a.value,onChange:e[3]||(e[3]=c=>v("desktop",c))},null,8,["checked","disabled"]),e[7]||(e[7]=r("span",{class:"hint"},"系统级 toast (Windows / macOS / Linux 原生通知)",-1))]),_:1})],64)):N("",!0)]),_:1}),t(B),r("div",K,[t(L,{loading:i.value,onClick:x},{icon:d(()=>[t(s(z))]),default:d(()=>[e[8]||(e[8]=j(" 重新加载 ",-1))]),_:1},8,["loading"]),S.value?(y(),C("span",P,"最近保存: "+q(S.value),1)):N("",!0)])]),_:1})])}}},X=F(Q,[["__scopeId","data-v-63dfa730"]]);export{X as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as
|
|
2
|
-
`);for(const r of t){const c=r.trim();if(!c||c.startsWith("─")||c.match(/^\d+ org/i))continue;const v=c.split(/\s*[|│]\s*/);v.length>=3&&a.push({key:a.length,id:v[0]||"-",name:v[1]||"-",owner:v[2]||"-",description:v[3]||"",memberCount:parseInt(v[4],10)||0})}return a}async function Le(){if(!
|
|
3
|
-
`);for(const r of t){const c=r.trim();if(!c||c.startsWith("─")||c.match(/^\d+ member/i))continue;const v=c.split(/\s*[|│]\s*/);v.length>=3&&a.push({key:a.length,userId:v[0]||"-",name:v[1]||"-",role:v[2]||"member",joinedAt:v[3]||"-"})}return a}async function ge(){if(z.value){ue.value=!0;try{const{output:l}=await k.execute(`org teams ${z.value} --json`,15e3),a=
|
|
4
|
-
`);for(const r of t){const c=r.trim();if(!c||c.startsWith("─")||c.match(/^\d+ approval/i))continue;const v=c.split(/\s*[|│]\s*/);v.length>=4&&a.push({key:a.length,id:v[0]||"-",title:v[1]||"-",type:v[2]||"-",requester:v[3]||"-",status:v[4]||"pending",_approving:!1,_rejecting:!1})}return a}async function Be(l){l._approving=!0;try{const{output:a}=await k.execute(`org approve ${l.id}`,15e3);a.includes("error")||a.includes("失败")?g.error(e("organization.messages.approveFailed",{err:a.slice(0,120)})):(g.success(e("organization.messages.approveOk")),await S())}catch(a){g.error(e("organization.messages.approveFailed",{err:a.message}))}finally{l._approving=!1}}async function De(l){l._rejecting=!0;try{const{output:a}=await k.execute(`org reject ${l.id}`,15e3);a.includes("error")||a.includes("失败")?g.error(e("organization.messages.rejectFailed",{err:a.slice(0,120)})):(g.success(e("organization.messages.rejectOk")),await S())}catch(a){g.error(e("organization.messages.rejectFailed",{err:a.message}))}finally{l._rejecting=!1}}async function Ve(){if(!N.value){g.warning(e("organization.messages.orgRequired"));return}if(!M.value.trim()){g.warning(e("organization.messages.approvalTitleRequired"));return}ye.value=!0;try{const l=M.value.trim().replace(/"/g,'\\"'),a=Y.value.trim().replace(/"/g,'\\"'),t=Z.value.trim().replace(/"/g,'\\"');let r=`org approve --submit --org ${N.value} --title "${l}"`;a&&(r+=` --type "${a}"`),t&&(r+=` --description "${t}"`);const{output:c}=await k.execute(r,2e4);c.includes("error")||c.includes("失败")?g.error(e("organization.messages.submitFailed",{err:c.slice(0,120)})):(g.success(e("organization.messages.submitOk")),X.value=!1,N.value=null,M.value="",Y.value="",Z.value="",await S())}catch(l){g.error(e("organization.messages.submitFailed",{err:l.message}))}finally{ye.value=!1}}return Qe(()=>{T()}),(l,a)=>{const t=_("a-button"),r=_("a-space"),c=_("a-spin"),v=_("a-tag"),R=_("a-empty"),ee=_("a-table"),j=_("a-descriptions-item"),Ke=_("a-descriptions"),B=_("a-modal"),C=_("a-input"),x=_("a-form-item"),ae=_("a-form"),fe=_("a-tab-pane"),be=_("a-select"),We=_("a-textarea"),Je=_("a-tabs");return p(),y("div",null,[O("div",oa,[O("div",null,[O("h2",na,u(o(e)("organization.title")),1),O("p",la,u(o(e)("organization.subtitle")),1)]),n(t,{type:"primary",ghost:"",loading:te.value,onClick:he},{icon:s(()=>[n(o(Ye))]),default:s(()=>[b(" "+u(o(e)("organization.refresh")),1)]),_:1},8,["loading"])]),n(Je,{activeKey:$.value,"onUpdate:activeKey":a[22]||(a[22]=i=>$.value=i),type:"card",onChange:Ce},{default:s(()=>[n(fe,{key:"orgs"},{tab:s(()=>[n(o(Ze)),b(" "+u(o(e)("organization.tabs.orgs")),1)]),default:s(()=>[n(r,{style:{"margin-bottom":"16px"}},{default:s(()=>[n(t,{type:"primary",onClick:a[0]||(a[0]=i=>D.value=!0)},{icon:s(()=>[n(o(_e))]),default:s(()=>[b(" "+u(o(e)("organization.orgs.createButton")),1)]),_:1})]),_:1}),oe.value?(p(),y("div",ia,[n(c,{size:"large"})])):(p(),w(ee,{key:1,columns:Oe.value,"data-source":I.value,pagination:{pageSize:20,showTotal:i=>o(e)("organization.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row","custom-row":i=>({onClick:()=>Te(i)})},{bodyCell:s(({column:i,record:m})=>[i.key==="id"?(p(),y("span",sa,u(m.id),1)):f("",!0),i.key==="name"?(p(),y("a",ra,u(m.name),1)):f("",!0),i.key==="owner"?(p(),y("span",ua,u(m.owner),1)):f("",!0),i.key==="description"?(p(),y("span",da,u(m.description),1)):f("",!0),i.key==="memberCount"?(p(),w(v,{key:4,color:"blue"},{default:s(()=>[b(u(m.memberCount),1)]),_:2},1024)):f("",!0)]),emptyText:s(()=>[n(R,{description:o(e)("organization.orgs.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination","custom-row"])),n(B,{open:le.value,"onUpdate:open":a[1]||(a[1]=i=>le.value=i),title:o(e)("organization.orgs.detailTitle",{name:h.value.name||""}),footer:null,width:"640px"},{default:s(()=>[ie.value?(p(),y("div",pa,[n(c)])):(p(),y("div",ca,[n(Ke,{column:1,bordered:"",size:"small",style:{"margin-bottom":"16px"}},{default:s(()=>[n(j,{label:o(e)("organization.orgs.detailLabels.id")},{default:s(()=>[O("span",ma,u(h.value.id),1)]),_:1},8,["label"]),n(j,{label:o(e)("organization.orgs.detailLabels.name")},{default:s(()=>[b(u(h.value.name),1)]),_:1},8,["label"]),n(j,{label:o(e)("organization.orgs.detailLabels.owner")},{default:s(()=>[b(u(h.value.owner),1)]),_:1},8,["label"]),n(j,{label:o(e)("organization.orgs.detailLabels.description")},{default:s(()=>[b(u(h.value.description||"-"),1)]),_:1},8,["label"]),n(j,{label:o(e)("organization.orgs.detailLabels.memberCount")},{default:s(()=>[b(u(h.value.memberCount),1)]),_:1},8,["label"]),h.value.createdAt?(p(),w(j,{key:0,label:o(e)("organization.orgs.detailLabels.createdAt")},{default:s(()=>[b(u(h.value.createdAt),1)]),_:1},8,["label"])):f("",!0)]),_:1}),L.value?(p(),y("pre",ga,u(L.value),1)):f("",!0)]))]),_:1},8,["open","title"]),n(B,{open:D.value,"onUpdate:open":a[4]||(a[4]=i=>D.value=i),title:o(e)("organization.orgs.createTitle"),"confirm-loading":ne.value,onOk:Le,"ok-text":o(e)("organization.orgs.createOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[n(ae,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:s(()=>[n(x,{label:o(e)("organization.orgs.nameLabel"),required:""},{default:s(()=>[n(C,{value:U.value,"onUpdate:value":a[2]||(a[2]=i=>U.value=i),placeholder:o(e)("organization.orgs.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.orgs.descriptionLabel")},{default:s(()=>[n(C,{value:V.value,"onUpdate:value":a[3]||(a[3]=i=>V.value=i),placeholder:o(e)("organization.orgs.descriptionPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),n(fe,{key:"members"},{tab:s(()=>[n(o(we)),b(" "+u(o(e)("organization.tabs.members")),1)]),default:s(()=>[O("div",va,[n(be,{value:z.value,"onUpdate:value":a[5]||(a[5]=i=>z.value=i),placeholder:o(e)("organization.members.selectPlaceholder"),style:{width:"280px"},options:ze.value,onChange:Ue},null,8,["value","placeholder","options"]),n(t,{type:"primary",disabled:!z.value,onClick:a[6]||(a[6]=i=>K.value=!0)},{icon:s(()=>[n(o(we))]),default:s(()=>[b(" "+u(o(e)("organization.members.inviteButton")),1)]),_:1},8,["disabled"])]),se.value?(p(),y("div",ya,[n(c,{size:"large"})])):z.value?(p(),w(ee,{key:1,columns:Ae.value,"data-source":re.value,pagination:{pageSize:20,showTotal:i=>o(e)("organization.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)","margin-bottom":"24px"},"row-class-name":()=>"org-row"},{bodyCell:s(({column:i,record:m})=>[i.key==="userId"?(p(),y("span",fa,u(m.userId),1)):f("",!0),i.key==="name"?(p(),y("span",ba,u(m.name),1)):f("",!0),i.key==="role"?(p(),w(v,{key:2,color:Fe(m.role)},{default:s(()=>[b(u(m.role),1)]),_:2},1032,["color"])):f("",!0),i.key==="joinedAt"?(p(),y("span",_a,u(m.joinedAt),1)):f("",!0)]),emptyText:s(()=>[n(R,{description:o(e)("organization.members.emptyMembers")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])):(p(),w(R,{key:2,description:o(e)("organization.members.selectFirst"),style:{padding:"60px 0"}},null,8,["description"])),z.value?(p(),y(xe,{key:3},[O("div",za,[O("h3",xa,u(o(e)("organization.members.teamsTitle")),1),n(t,{size:"small",onClick:a[7]||(a[7]=i=>E.value=!0)},{icon:s(()=>[n(o(_e))]),default:s(()=>[b(" "+u(o(e)("organization.members.createTeamButton")),1)]),_:1})]),ue.value?(p(),y("div",ka,[n(c)])):(p(),w(ee,{key:1,columns:$e.value,"data-source":de.value,pagination:!1,size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:s(({column:i,record:m})=>[i.key==="name"?(p(),y("span",wa,u(m.name),1)):f("",!0),i.key==="description"?(p(),y("span",ha,u(m.description),1)):f("",!0),i.key==="lead"?(p(),y("span",Ca,u(m.lead),1)):f("",!0)]),emptyText:s(()=>[n(R,{description:o(e)("organization.members.emptyTeams")},null,8,["description"])]),_:1},8,["columns","data-source"]))],64)):f("",!0),n(B,{open:K.value,"onUpdate:open":a[11]||(a[11]=i=>K.value=i),title:o(e)("organization.members.inviteTitle"),"confirm-loading":pe.value,onOk:Pe,"ok-text":o(e)("organization.members.inviteOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[n(ae,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:s(()=>[n(x,{label:o(e)("organization.members.userIdLabel"),required:""},{default:s(()=>[n(C,{value:q.value,"onUpdate:value":a[8]||(a[8]=i=>q.value=i),placeholder:o(e)("organization.members.userIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.members.nameLabel")},{default:s(()=>[n(C,{value:W.value,"onUpdate:value":a[9]||(a[9]=i=>W.value=i),placeholder:o(e)("organization.members.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.members.roleLabel")},{default:s(()=>[n(be,{value:J.value,"onUpdate:value":a[10]||(a[10]=i=>J.value=i),options:je.value},null,8,["value","options"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),n(B,{open:E.value,"onUpdate:open":a[15]||(a[15]=i=>E.value=i),title:o(e)("organization.members.createTeamTitle"),"confirm-loading":ce.value,onOk:Ne,"ok-text":o(e)("organization.members.createTeamOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[n(ae,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:s(()=>[n(x,{label:o(e)("organization.members.teamNameLabel"),required:""},{default:s(()=>[n(C,{value:P.value,"onUpdate:value":a[12]||(a[12]=i=>P.value=i),placeholder:o(e)("organization.members.teamNamePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.members.teamDescLabel")},{default:s(()=>[n(C,{value:Q.value,"onUpdate:value":a[13]||(a[13]=i=>Q.value=i),placeholder:o(e)("organization.members.teamDescPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.members.teamLeadLabel")},{default:s(()=>[n(C,{value:G.value,"onUpdate:value":a[14]||(a[14]=i=>G.value=i),placeholder:o(e)("organization.members.teamLeadPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),n(fe,{key:"approvals"},{tab:s(()=>[n(o(ta)),b(" "+u(o(e)("organization.tabs.approvals")),1)]),default:s(()=>[n(r,{style:{"margin-bottom":"16px"}},{default:s(()=>[n(t,{type:"primary",onClick:a[16]||(a[16]=i=>X.value=!0)},{icon:s(()=>[n(o(_e))]),default:s(()=>[b(" "+u(o(e)("organization.approvals.submitButton")),1)]),_:1})]),_:1}),ve.value?(p(),y("div",Oa,[n(c,{size:"large"})])):(p(),w(ee,{key:1,columns:Me.value,"data-source":H.value,pagination:{pageSize:20,showTotal:i=>o(e)("organization.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:s(({column:i,record:m})=>[i.key==="id"?(p(),y("span",Ia,u(m.id),1)):f("",!0),i.key==="title"?(p(),y("span",La,u(m.title),1)):f("",!0),i.key==="type"?(p(),w(v,{key:2,color:"blue"},{default:s(()=>[b(u(m.type),1)]),_:2},1024)):f("",!0),i.key==="requester"?(p(),y("span",Ta,u(m.requester),1)):f("",!0),i.key==="status"?(p(),w(v,{key:4,color:Se(m.status)},{default:s(()=>[b(u(m.status),1)]),_:2},1032,["color"])):f("",!0),i.key==="actions"?(p(),y(xe,{key:5},[(m.status||"").toLowerCase()==="pending"?(p(),w(r,{key:0},{default:s(()=>[n(t,{type:"primary",size:"small",loading:m._approving,onClick:ke(Ee=>Be(m),["stop"])},{icon:s(()=>[n(o(ea))]),default:s(()=>[b(" "+u(o(e)("organization.approvals.approve")),1)]),_:1},8,["loading","onClick"]),n(t,{danger:"",size:"small",loading:m._rejecting,onClick:ke(Ee=>De(m),["stop"])},{icon:s(()=>[n(o(aa))]),default:s(()=>[b(" "+u(o(e)("organization.approvals.reject")),1)]),_:1},8,["loading","onClick"])]),_:2},1024)):(p(),y("span",ja,"-"))],64)):f("",!0)]),emptyText:s(()=>[n(R,{description:o(e)("organization.approvals.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),n(B,{open:X.value,"onUpdate:open":a[21]||(a[21]=i=>X.value=i),title:o(e)("organization.approvals.submitTitle"),"confirm-loading":ye.value,onOk:Ve,"ok-text":o(e)("organization.approvals.submitOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[n(ae,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:s(()=>[n(x,{label:o(e)("organization.approvals.orgLabel"),required:""},{default:s(()=>[n(be,{value:N.value,"onUpdate:value":a[17]||(a[17]=i=>N.value=i),placeholder:o(e)("organization.approvals.orgPlaceholder"),options:ze.value},null,8,["value","placeholder","options"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.approvals.titleLabel"),required:""},{default:s(()=>[n(C,{value:M.value,"onUpdate:value":a[18]||(a[18]=i=>M.value=i),placeholder:o(e)("organization.approvals.titlePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.approvals.typeLabel")},{default:s(()=>[n(C,{value:Y.value,"onUpdate:value":a[19]||(a[19]=i=>Y.value=i),placeholder:o(e)("organization.approvals.typePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.approvals.descLabel")},{default:s(()=>[n(We,{value:Z.value,"onUpdate:value":a[20]||(a[20]=i=>Z.value=i),placeholder:o(e)("organization.approvals.descPlaceholder"),rows:3},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1})]),_:1},8,["activeKey"])])}}},Pa=Ge(Aa,[["__scopeId","data-v-5c758732"]]);export{Pa as default};
|
|
1
|
+
import{o as He,M as y,R as O,P as u,u as o,c as n,N as s,r as d,K as _,L as p,O as b,Q as w,S as f,F as xe,a1 as ke,f as A}from"./vendor-M5lGV-wr.js";import{_ as Qe,b as Ge,u as Xe,d as g}from"./index-BAy0ks7N.js";import{R as Ye,aq as _e,O as Ze,aH as we,ag as ea,b as aa,a6 as ta}from"./icons-DY9VpXfa.js";const oa={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},na={class:"page-title"},la={class:"page-sub"},ia={key:0,style:{"text-align":"center",padding:"60px"}},sa={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},ra={key:1,style:{color:"#1677ff"}},ua={key:2,style:{color:"var(--text-secondary)"}},da={key:3,style:{color:"var(--text-muted)","font-size":"12px"}},pa={key:0,style:{"text-align":"center",padding:"40px"}},ca={key:1},ma={style:{"font-family":"monospace",color:"#ccc"}},ga={key:0,style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-secondary)","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)","max-height":"300px","overflow-y":"auto"}},va={style:{"margin-bottom":"16px",display:"flex","align-items":"center",gap:"12px"}},ya={key:0,style:{"text-align":"center",padding:"60px"}},fa={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},ba={key:1,style:{color:"#e0e0e0"}},_a={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},za={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"12px"}},xa={style:{color:"var(--text-primary)",margin:"0","font-size":"15px"}},ka={key:0,style:{"text-align":"center",padding:"40px"}},wa={key:0,style:{color:"#e0e0e0"}},ha={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},Ca={key:2,style:{color:"var(--text-secondary)"}},Oa={key:0,style:{"text-align":"center",padding:"60px"}},Ia={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},La={key:1,style:{color:"#e0e0e0"}},Ta={key:3,style:{color:"var(--text-secondary)"}},ja={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},Aa={__name:"Organization",setup($a){const{t:e}=Ge(),k=Xe(),$=d("orgs"),te=d(!1);async function he(){te.value=!0;try{$.value==="orgs"?await T():$.value==="members"?(await T(),z.value&&(await me(),await ge())):$.value==="approvals"&&await S()}finally{te.value=!1}}function Ce(l){l==="orgs"&&I.value.length===0&&T(),l==="members"&&I.value.length===0&&T(),l==="approvals"&&G.value.length===0&&S()}function U(l){try{const a=l.trim(),t=a.indexOf("["),r=a.indexOf("{"),c=t>=0&&(r<0||t<r)?t:r;return c>=0?JSON.parse(a.slice(c)):null}catch{return null}}const oe=d(!1),I=d([]),D=d(!1),ne=d(!1),q=d(""),V=d(""),le=d(!1),ie=d(!1),h=d({}),L=d(""),Oe=A(()=>[{title:e("organization.orgColumns.id"),key:"id",dataIndex:"id",width:"100px"},{title:e("organization.orgColumns.name"),key:"name",dataIndex:"name",width:"180px"},{title:e("organization.orgColumns.owner"),key:"owner",dataIndex:"owner",width:"140px"},{title:e("organization.orgColumns.description"),key:"description",dataIndex:"description",ellipsis:!0},{title:e("organization.orgColumns.memberCount"),key:"memberCount",dataIndex:"memberCount",width:"90px"}]),ze=A(()=>I.value.map(l=>({label:l.name,value:l.id})));async function T(){oe.value=!0;try{const{output:l}=await k.execute("org list --json",15e3),a=U(l);Array.isArray(a)?I.value=a.map((t,r)=>({key:t.id||r,id:t.id||"-",name:t.name||"-",owner:t.owner||"-",description:t.description||"",memberCount:t.memberCount??t.members??0})):I.value=Ie(l)}catch(l){g.error(e("organization.messages.loadOrgsFailed",{err:l.message}))}finally{oe.value=!1}}function Ie(l){const a=[],t=l.split(`
|
|
2
|
+
`);for(const r of t){const c=r.trim();if(!c||c.startsWith("─")||c.match(/^\d+ org/i))continue;const v=c.split(/\s*[|│]\s*/);v.length>=3&&a.push({key:a.length,id:v[0]||"-",name:v[1]||"-",owner:v[2]||"-",description:v[3]||"",memberCount:parseInt(v[4],10)||0})}return a}async function Le(){if(!q.value.trim()){g.warning(e("organization.messages.orgNameRequired"));return}ne.value=!0;try{const l=q.value.trim().replace(/"/g,'\\"'),a=V.value.trim().replace(/"/g,'\\"');let t=`org create "${l}" --json`;a&&(t=`org create "${l}" --description "${a}" --json`);const{output:r}=await k.execute(t,2e4);r.includes("error")||r.includes("失败")?g.error(e("organization.messages.orgCreateFailed",{err:r.slice(0,120)})):(g.success(e("organization.messages.orgCreateOk")),D.value=!1,q.value="",V.value="",await T())}catch(l){g.error(e("organization.messages.orgCreateFailed",{err:l.message}))}finally{ne.value=!1}}async function Te(l){h.value={...l},L.value="",le.value=!0,ie.value=!0;try{const{output:a}=await k.execute(`org show ${l.id} --json`,15e3),t=U(a);t&&typeof t=="object"?(h.value={id:t.id||l.id,name:t.name||l.name,owner:t.owner||l.owner,description:t.description||l.description,memberCount:t.memberCount??t.members??l.memberCount,createdAt:t.createdAt||t.created||""},L.value=JSON.stringify(t,null,2)):L.value=a}catch(a){L.value=e("organization.messages.loadDetailFailed",{err:a.message})}finally{ie.value=!1}}const z=d(null),se=d(!1),re=d([]),ue=d(!1),de=d([]),K=d(!1),pe=d(!1),F=d(""),W=d(""),J=d("member"),E=d(!1),ce=d(!1),P=d(""),H=d(""),Q=d(""),je=A(()=>[{label:e("organization.members.roleAdmin"),value:"admin"},{label:e("organization.members.roleMember"),value:"member"},{label:e("organization.members.roleViewer"),value:"viewer"}]),Ae=A(()=>[{title:e("organization.memberColumns.userId"),key:"userId",dataIndex:"userId",width:"160px"},{title:e("organization.memberColumns.name"),key:"name",dataIndex:"name",width:"140px"},{title:e("organization.memberColumns.role"),key:"role",dataIndex:"role",width:"100px"},{title:e("organization.memberColumns.joinedAt"),key:"joinedAt",dataIndex:"joinedAt",width:"180px"}]),$e=A(()=>[{title:e("organization.teamColumns.name"),key:"name",dataIndex:"name",width:"180px"},{title:e("organization.teamColumns.description"),key:"description",dataIndex:"description",ellipsis:!0},{title:e("organization.teamColumns.lead"),key:"lead",dataIndex:"lead",width:"140px"}]);function Ue(l){return{admin:"gold",member:"blue",viewer:"default",owner:"purple"}[(l||"").toLowerCase()]||"default"}async function qe(){z.value&&await Promise.all([me(),ge()])}async function me(){if(z.value){se.value=!0;try{const{output:l}=await k.execute(`org members ${z.value} --json`,15e3),a=U(l);Array.isArray(a)?re.value=a.map((t,r)=>({key:t.userId||t.id||r,userId:t.userId||t.id||"-",name:t.name||t.displayName||"-",role:t.role||"member",joinedAt:t.joinedAt||t.joined||"-"})):re.value=Fe(l)}catch(l){g.error(e("organization.messages.loadMembersFailed",{err:l.message}))}finally{se.value=!1}}}function Fe(l){const a=[],t=l.split(`
|
|
3
|
+
`);for(const r of t){const c=r.trim();if(!c||c.startsWith("─")||c.match(/^\d+ member/i))continue;const v=c.split(/\s*[|│]\s*/);v.length>=3&&a.push({key:a.length,userId:v[0]||"-",name:v[1]||"-",role:v[2]||"member",joinedAt:v[3]||"-"})}return a}async function ge(){if(z.value){ue.value=!0;try{const{output:l}=await k.execute(`org teams ${z.value} --json`,15e3),a=U(l);Array.isArray(a)?de.value=a.map((t,r)=>({key:t.id||t.name||r,name:t.name||"-",description:t.description||"",lead:t.lead||t.leader||"-"})):de.value=[]}catch(l){g.error(e("organization.messages.loadTeamsFailed",{err:l.message}))}finally{ue.value=!1}}}async function Pe(){if(!F.value.trim()){g.warning(e("organization.messages.userIdRequired"));return}pe.value=!0;try{const l=F.value.trim().replace(/"/g,'\\"'),a=W.value.trim().replace(/"/g,'\\"');let t=`org invite ${z.value} ${l} --role ${J.value}`;a&&(t+=` --name "${a}"`);const{output:r}=await k.execute(t,2e4);r.includes("error")||r.includes("失败")?g.error(e("organization.messages.inviteFailed",{err:r.slice(0,120)})):(g.success(e("organization.messages.inviteOk")),K.value=!1,F.value="",W.value="",J.value="member",await me())}catch(l){g.error(e("organization.messages.inviteFailed",{err:l.message}))}finally{pe.value=!1}}async function Ne(){if(!P.value.trim()){g.warning(e("organization.messages.teamNameRequired"));return}ce.value=!0;try{const l=P.value.trim().replace(/"/g,'\\"'),a=H.value.trim().replace(/"/g,'\\"'),t=Q.value.trim().replace(/"/g,'\\"');let r=`org teams ${z.value} create "${l}"`;a&&(r+=` --description "${a}"`),t&&(r+=` --lead "${t}"`);const{output:c}=await k.execute(r,2e4);c.includes("error")||c.includes("失败")?g.error(e("organization.messages.teamCreateFailed",{err:c.slice(0,120)})):(g.success(e("organization.messages.teamCreateOk")),E.value=!1,P.value="",H.value="",Q.value="",await ge())}catch(l){g.error(e("organization.messages.teamCreateFailed",{err:l.message}))}finally{ce.value=!1}}const ve=d(!1),G=d([]),X=d(!1),ye=d(!1),N=d(null),M=d(""),Y=d(""),Z=d(""),Me=A(()=>[{title:e("organization.approvalColumns.id"),key:"id",dataIndex:"id",width:"100px"},{title:e("organization.approvalColumns.title"),key:"title",dataIndex:"title",width:"200px"},{title:e("organization.approvalColumns.type"),key:"type",dataIndex:"type",width:"120px"},{title:e("organization.approvalColumns.requester"),key:"requester",dataIndex:"requester",width:"140px"},{title:e("organization.approvalColumns.status"),key:"status",dataIndex:"status",width:"100px"},{title:e("organization.approvalColumns.actions"),key:"actions",width:"180px"}]);function Se(l){return{pending:"orange",approved:"green",rejected:"red"}[(l||"").toLowerCase()]||"default"}async function S(){ve.value=!0;try{const{output:l}=await k.execute("org approvals --json",15e3),a=U(l);Array.isArray(a)?G.value=a.map((t,r)=>({key:t.id||r,id:t.id||"-",title:t.title||"-",type:t.type||"-",requester:t.requester||t.requestedBy||"-",status:t.status||"pending",_approving:!1,_rejecting:!1})):G.value=Re(l)}catch(l){g.error(e("organization.messages.loadApprovalsFailed",{err:l.message}))}finally{ve.value=!1}}function Re(l){const a=[],t=l.split(`
|
|
4
|
+
`);for(const r of t){const c=r.trim();if(!c||c.startsWith("─")||c.match(/^\d+ approval/i))continue;const v=c.split(/\s*[|│]\s*/);v.length>=4&&a.push({key:a.length,id:v[0]||"-",title:v[1]||"-",type:v[2]||"-",requester:v[3]||"-",status:v[4]||"pending",_approving:!1,_rejecting:!1})}return a}async function Be(l){l._approving=!0;try{const{output:a}=await k.execute(`org approve ${l.id}`,15e3);a.includes("error")||a.includes("失败")?g.error(e("organization.messages.approveFailed",{err:a.slice(0,120)})):(g.success(e("organization.messages.approveOk")),await S())}catch(a){g.error(e("organization.messages.approveFailed",{err:a.message}))}finally{l._approving=!1}}async function De(l){l._rejecting=!0;try{const{output:a}=await k.execute(`org reject ${l.id}`,15e3);a.includes("error")||a.includes("失败")?g.error(e("organization.messages.rejectFailed",{err:a.slice(0,120)})):(g.success(e("organization.messages.rejectOk")),await S())}catch(a){g.error(e("organization.messages.rejectFailed",{err:a.message}))}finally{l._rejecting=!1}}async function Ve(){if(!N.value){g.warning(e("organization.messages.orgRequired"));return}if(!M.value.trim()){g.warning(e("organization.messages.approvalTitleRequired"));return}ye.value=!0;try{const l=M.value.trim().replace(/"/g,'\\"'),a=Y.value.trim().replace(/"/g,'\\"'),t=Z.value.trim().replace(/"/g,'\\"');let r=`org approve --submit --org ${N.value} --title "${l}"`;a&&(r+=` --type "${a}"`),t&&(r+=` --description "${t}"`);const{output:c}=await k.execute(r,2e4);c.includes("error")||c.includes("失败")?g.error(e("organization.messages.submitFailed",{err:c.slice(0,120)})):(g.success(e("organization.messages.submitOk")),X.value=!1,N.value=null,M.value="",Y.value="",Z.value="",await S())}catch(l){g.error(e("organization.messages.submitFailed",{err:l.message}))}finally{ye.value=!1}}return He(()=>{T()}),(l,a)=>{const t=_("a-button"),r=_("a-space"),c=_("a-spin"),v=_("a-tag"),R=_("a-empty"),ee=_("a-table"),j=_("a-descriptions-item"),Ke=_("a-descriptions"),B=_("a-modal"),C=_("a-input"),x=_("a-form-item"),ae=_("a-form"),fe=_("a-tab-pane"),be=_("a-select"),We=_("a-textarea"),Je=_("a-tabs");return p(),y("div",null,[O("div",oa,[O("div",null,[O("h2",na,u(o(e)("organization.title")),1),O("p",la,u(o(e)("organization.subtitle")),1)]),n(t,{type:"primary",ghost:"",loading:te.value,onClick:he},{icon:s(()=>[n(o(Ye))]),default:s(()=>[b(" "+u(o(e)("organization.refresh")),1)]),_:1},8,["loading"])]),n(Je,{activeKey:$.value,"onUpdate:activeKey":a[22]||(a[22]=i=>$.value=i),type:"card",onChange:Ce},{default:s(()=>[n(fe,{key:"orgs"},{tab:s(()=>[n(o(Ze)),b(" "+u(o(e)("organization.tabs.orgs")),1)]),default:s(()=>[n(r,{style:{"margin-bottom":"16px"}},{default:s(()=>[n(t,{type:"primary",onClick:a[0]||(a[0]=i=>D.value=!0)},{icon:s(()=>[n(o(_e))]),default:s(()=>[b(" "+u(o(e)("organization.orgs.createButton")),1)]),_:1})]),_:1}),oe.value?(p(),y("div",ia,[n(c,{size:"large"})])):(p(),w(ee,{key:1,columns:Oe.value,"data-source":I.value,pagination:{pageSize:20,showTotal:i=>o(e)("organization.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row","custom-row":i=>({onClick:()=>Te(i)})},{bodyCell:s(({column:i,record:m})=>[i.key==="id"?(p(),y("span",sa,u(m.id),1)):f("",!0),i.key==="name"?(p(),y("a",ra,u(m.name),1)):f("",!0),i.key==="owner"?(p(),y("span",ua,u(m.owner),1)):f("",!0),i.key==="description"?(p(),y("span",da,u(m.description),1)):f("",!0),i.key==="memberCount"?(p(),w(v,{key:4,color:"blue"},{default:s(()=>[b(u(m.memberCount),1)]),_:2},1024)):f("",!0)]),emptyText:s(()=>[n(R,{description:o(e)("organization.orgs.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination","custom-row"])),n(B,{open:le.value,"onUpdate:open":a[1]||(a[1]=i=>le.value=i),title:o(e)("organization.orgs.detailTitle",{name:h.value.name||""}),footer:null,width:"640px"},{default:s(()=>[ie.value?(p(),y("div",pa,[n(c)])):(p(),y("div",ca,[n(Ke,{column:1,bordered:"",size:"small",style:{"margin-bottom":"16px"}},{default:s(()=>[n(j,{label:o(e)("organization.orgs.detailLabels.id")},{default:s(()=>[O("span",ma,u(h.value.id),1)]),_:1},8,["label"]),n(j,{label:o(e)("organization.orgs.detailLabels.name")},{default:s(()=>[b(u(h.value.name),1)]),_:1},8,["label"]),n(j,{label:o(e)("organization.orgs.detailLabels.owner")},{default:s(()=>[b(u(h.value.owner),1)]),_:1},8,["label"]),n(j,{label:o(e)("organization.orgs.detailLabels.description")},{default:s(()=>[b(u(h.value.description||"-"),1)]),_:1},8,["label"]),n(j,{label:o(e)("organization.orgs.detailLabels.memberCount")},{default:s(()=>[b(u(h.value.memberCount),1)]),_:1},8,["label"]),h.value.createdAt?(p(),w(j,{key:0,label:o(e)("organization.orgs.detailLabels.createdAt")},{default:s(()=>[b(u(h.value.createdAt),1)]),_:1},8,["label"])):f("",!0)]),_:1}),L.value?(p(),y("pre",ga,u(L.value),1)):f("",!0)]))]),_:1},8,["open","title"]),n(B,{open:D.value,"onUpdate:open":a[4]||(a[4]=i=>D.value=i),title:o(e)("organization.orgs.createTitle"),"confirm-loading":ne.value,onOk:Le,"ok-text":o(e)("organization.orgs.createOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[n(ae,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:s(()=>[n(x,{label:o(e)("organization.orgs.nameLabel"),required:""},{default:s(()=>[n(C,{value:q.value,"onUpdate:value":a[2]||(a[2]=i=>q.value=i),placeholder:o(e)("organization.orgs.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.orgs.descriptionLabel")},{default:s(()=>[n(C,{value:V.value,"onUpdate:value":a[3]||(a[3]=i=>V.value=i),placeholder:o(e)("organization.orgs.descriptionPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),n(fe,{key:"members"},{tab:s(()=>[n(o(we)),b(" "+u(o(e)("organization.tabs.members")),1)]),default:s(()=>[O("div",va,[n(be,{value:z.value,"onUpdate:value":a[5]||(a[5]=i=>z.value=i),placeholder:o(e)("organization.members.selectPlaceholder"),style:{width:"280px"},options:ze.value,onChange:qe},null,8,["value","placeholder","options"]),n(t,{type:"primary",disabled:!z.value,onClick:a[6]||(a[6]=i=>K.value=!0)},{icon:s(()=>[n(o(we))]),default:s(()=>[b(" "+u(o(e)("organization.members.inviteButton")),1)]),_:1},8,["disabled"])]),se.value?(p(),y("div",ya,[n(c,{size:"large"})])):z.value?(p(),w(ee,{key:1,columns:Ae.value,"data-source":re.value,pagination:{pageSize:20,showTotal:i=>o(e)("organization.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)","margin-bottom":"24px"},"row-class-name":()=>"org-row"},{bodyCell:s(({column:i,record:m})=>[i.key==="userId"?(p(),y("span",fa,u(m.userId),1)):f("",!0),i.key==="name"?(p(),y("span",ba,u(m.name),1)):f("",!0),i.key==="role"?(p(),w(v,{key:2,color:Ue(m.role)},{default:s(()=>[b(u(m.role),1)]),_:2},1032,["color"])):f("",!0),i.key==="joinedAt"?(p(),y("span",_a,u(m.joinedAt),1)):f("",!0)]),emptyText:s(()=>[n(R,{description:o(e)("organization.members.emptyMembers")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])):(p(),w(R,{key:2,description:o(e)("organization.members.selectFirst"),style:{padding:"60px 0"}},null,8,["description"])),z.value?(p(),y(xe,{key:3},[O("div",za,[O("h3",xa,u(o(e)("organization.members.teamsTitle")),1),n(t,{size:"small",onClick:a[7]||(a[7]=i=>E.value=!0)},{icon:s(()=>[n(o(_e))]),default:s(()=>[b(" "+u(o(e)("organization.members.createTeamButton")),1)]),_:1})]),ue.value?(p(),y("div",ka,[n(c)])):(p(),w(ee,{key:1,columns:$e.value,"data-source":de.value,pagination:!1,size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:s(({column:i,record:m})=>[i.key==="name"?(p(),y("span",wa,u(m.name),1)):f("",!0),i.key==="description"?(p(),y("span",ha,u(m.description),1)):f("",!0),i.key==="lead"?(p(),y("span",Ca,u(m.lead),1)):f("",!0)]),emptyText:s(()=>[n(R,{description:o(e)("organization.members.emptyTeams")},null,8,["description"])]),_:1},8,["columns","data-source"]))],64)):f("",!0),n(B,{open:K.value,"onUpdate:open":a[11]||(a[11]=i=>K.value=i),title:o(e)("organization.members.inviteTitle"),"confirm-loading":pe.value,onOk:Pe,"ok-text":o(e)("organization.members.inviteOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[n(ae,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:s(()=>[n(x,{label:o(e)("organization.members.userIdLabel"),required:""},{default:s(()=>[n(C,{value:F.value,"onUpdate:value":a[8]||(a[8]=i=>F.value=i),placeholder:o(e)("organization.members.userIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.members.nameLabel")},{default:s(()=>[n(C,{value:W.value,"onUpdate:value":a[9]||(a[9]=i=>W.value=i),placeholder:o(e)("organization.members.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.members.roleLabel")},{default:s(()=>[n(be,{value:J.value,"onUpdate:value":a[10]||(a[10]=i=>J.value=i),options:je.value},null,8,["value","options"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),n(B,{open:E.value,"onUpdate:open":a[15]||(a[15]=i=>E.value=i),title:o(e)("organization.members.createTeamTitle"),"confirm-loading":ce.value,onOk:Ne,"ok-text":o(e)("organization.members.createTeamOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[n(ae,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:s(()=>[n(x,{label:o(e)("organization.members.teamNameLabel"),required:""},{default:s(()=>[n(C,{value:P.value,"onUpdate:value":a[12]||(a[12]=i=>P.value=i),placeholder:o(e)("organization.members.teamNamePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.members.teamDescLabel")},{default:s(()=>[n(C,{value:H.value,"onUpdate:value":a[13]||(a[13]=i=>H.value=i),placeholder:o(e)("organization.members.teamDescPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.members.teamLeadLabel")},{default:s(()=>[n(C,{value:Q.value,"onUpdate:value":a[14]||(a[14]=i=>Q.value=i),placeholder:o(e)("organization.members.teamLeadPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),n(fe,{key:"approvals"},{tab:s(()=>[n(o(ta)),b(" "+u(o(e)("organization.tabs.approvals")),1)]),default:s(()=>[n(r,{style:{"margin-bottom":"16px"}},{default:s(()=>[n(t,{type:"primary",onClick:a[16]||(a[16]=i=>X.value=!0)},{icon:s(()=>[n(o(_e))]),default:s(()=>[b(" "+u(o(e)("organization.approvals.submitButton")),1)]),_:1})]),_:1}),ve.value?(p(),y("div",Oa,[n(c,{size:"large"})])):(p(),w(ee,{key:1,columns:Me.value,"data-source":G.value,pagination:{pageSize:20,showTotal:i=>o(e)("organization.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:s(({column:i,record:m})=>[i.key==="id"?(p(),y("span",Ia,u(m.id),1)):f("",!0),i.key==="title"?(p(),y("span",La,u(m.title),1)):f("",!0),i.key==="type"?(p(),w(v,{key:2,color:"blue"},{default:s(()=>[b(u(m.type),1)]),_:2},1024)):f("",!0),i.key==="requester"?(p(),y("span",Ta,u(m.requester),1)):f("",!0),i.key==="status"?(p(),w(v,{key:4,color:Se(m.status)},{default:s(()=>[b(u(m.status),1)]),_:2},1032,["color"])):f("",!0),i.key==="actions"?(p(),y(xe,{key:5},[(m.status||"").toLowerCase()==="pending"?(p(),w(r,{key:0},{default:s(()=>[n(t,{type:"primary",size:"small",loading:m._approving,onClick:ke(Ee=>Be(m),["stop"])},{icon:s(()=>[n(o(ea))]),default:s(()=>[b(" "+u(o(e)("organization.approvals.approve")),1)]),_:1},8,["loading","onClick"]),n(t,{danger:"",size:"small",loading:m._rejecting,onClick:ke(Ee=>De(m),["stop"])},{icon:s(()=>[n(o(aa))]),default:s(()=>[b(" "+u(o(e)("organization.approvals.reject")),1)]),_:1},8,["loading","onClick"])]),_:2},1024)):(p(),y("span",ja,"-"))],64)):f("",!0)]),emptyText:s(()=>[n(R,{description:o(e)("organization.approvals.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),n(B,{open:X.value,"onUpdate:open":a[21]||(a[21]=i=>X.value=i),title:o(e)("organization.approvals.submitTitle"),"confirm-loading":ye.value,onOk:Ve,"ok-text":o(e)("organization.approvals.submitOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[n(ae,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:s(()=>[n(x,{label:o(e)("organization.approvals.orgLabel"),required:""},{default:s(()=>[n(be,{value:N.value,"onUpdate:value":a[17]||(a[17]=i=>N.value=i),placeholder:o(e)("organization.approvals.orgPlaceholder"),options:ze.value},null,8,["value","placeholder","options"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.approvals.titleLabel"),required:""},{default:s(()=>[n(C,{value:M.value,"onUpdate:value":a[18]||(a[18]=i=>M.value=i),placeholder:o(e)("organization.approvals.titlePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.approvals.typeLabel")},{default:s(()=>[n(C,{value:Y.value,"onUpdate:value":a[19]||(a[19]=i=>Y.value=i),placeholder:o(e)("organization.approvals.typePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.approvals.descLabel")},{default:s(()=>[n(We,{value:Z.value,"onUpdate:value":a[20]||(a[20]=i=>Z.value=i),placeholder:o(e)("organization.approvals.descPlaceholder"),rows:3},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1})]),_:1},8,["activeKey"])])}}},Pa=Qe(Aa,[["__scopeId","data-v-5c758732"]]);export{Pa as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{P,f as u,i as H,h as D}from"./index-
|
|
1
|
+
import{P,f as u,i as H,h as D}from"./index-BAy0ks7N.js";import{R as ee}from"./index-Bb1KdW4J.js";import{i as ge,f as c,d as k,p as pe,x as be,c as v,r as he,w as Oe,s as C}from"./vendor-M5lGV-wr.js";const te=Symbol("OverflowContextProviderKey"),X=k({compatConfig:{MODE:3},name:"OverflowContextProvider",inheritAttrs:!1,props:{value:{type:Object}},setup(e,o){let{slots:a}=o;return pe(te,c(()=>e.value)),()=>{var t;return(t=a.default)===null||t===void 0?void 0:t.call(a)}}}),Se=()=>ge(te,c(()=>null));var xe=function(e,o){var a={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(a[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(a[t[n]]=e[t[n]]);return a};const _=void 0,$=k({compatConfig:{MODE:3},name:"Item",props:{prefixCls:String,item:P.any,renderItem:Function,responsive:Boolean,itemKey:{type:[String,Number]},registerSize:Function,display:Boolean,order:Number,component:P.any,invalidate:Boolean},setup(e,o){let{slots:a,expose:t}=o;const n=c(()=>e.responsive&&!e.display),p=he();t({itemNodeRef:p});function b(i){e.registerSize(e.itemKey,i)}return be(()=>{b(null)}),()=>{var i;const{prefixCls:O,invalidate:w,item:m,renderItem:y,responsive:f,registerSize:z,itemKey:R,display:V,order:I,component:M="div"}=e,S=xe(e,["prefixCls","invalidate","item","renderItem","responsive","registerSize","itemKey","display","order","component"]),W=(i=a.default)===null||i===void 0?void 0:i.call(a),T=y&&m!==_?y(m):W;let h;w||(h={opacity:n.value?0:1,height:n.value?0:_,overflowY:n.value?"hidden":_,order:f?I:_,pointerEvents:n.value?"none":_,position:n.value?"absolute":_});const N={};return n.value&&(N["aria-hidden"]=!0),v(ee,{disabled:!f,onResize:E=>{let{offsetWidth:B}=E;b(B)}},{default:()=>v(M,u(u(u({class:H(!w&&O),style:h},N),S),{},{ref:p}),{default:()=>[T]})})}}});var U=function(e,o){var a={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(a[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(a[t[n]]=e[t[n]]);return a};const Ce=k({compatConfig:{MODE:3},name:"RawItem",inheritAttrs:!1,props:{component:P.any,title:P.any,id:String,onMouseenter:{type:Function},onMouseleave:{type:Function},onClick:{type:Function},onKeydown:{type:Function},onFocus:{type:Function},role:String,tabindex:Number},setup(e,o){let{slots:a,attrs:t}=o;const n=Se();return()=>{var p;if(!n.value){const{component:y="div"}=e,f=U(e,["component"]);return v(y,u(u({},f),t),{default:()=>[(p=a.default)===null||p===void 0?void 0:p.call(a)]})}const b=n.value,{className:i}=b,O=U(b,["className"]),{class:w}=t,m=U(t,["class"]);return v(X,{value:null},{default:()=>[v($,u(u(u({class:H(i,w)},O),m),e),a)]})}}});var we=function(e,o){var a={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.indexOf(t)<0&&(a[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)o.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(a[t[n]]=e[t[n]]);return a};const ne="responsive",le="invalidate";function Re(e){return`+ ${e.length} ...`}const Ie=()=>({id:String,prefixCls:String,data:Array,itemKey:[String,Number,Function],itemWidth:{type:Number,default:10},renderItem:Function,renderRawItem:Function,maxCount:[Number,String],renderRest:Function,renderRawRest:Function,suffix:P.any,component:String,itemComponent:P.any,onVisibleChange:Function,ssr:String,onMousedown:Function,role:String}),Y=k({name:"Overflow",inheritAttrs:!1,props:Ie(),emits:["visibleChange"],setup(e,o){let{attrs:a,emit:t,slots:n}=o;const p=c(()=>e.ssr==="full"),b=C(null),i=c(()=>b.value||0),O=C(new Map),w=C(0),m=C(0),y=C(0),f=C(null),z=C(null),R=c(()=>z.value===null&&p.value?Number.MAX_SAFE_INTEGER:z.value||0),V=C(!1),I=c(()=>`${e.prefixCls}-item`),M=c(()=>Math.max(w.value,m.value)),S=c(()=>!!(e.data.length&&e.maxCount===ne)),W=c(()=>e.maxCount===le),T=c(()=>S.value||typeof e.maxCount=="number"&&e.data.length>e.maxCount),h=c(()=>{let l=e.data;return S.value?b.value===null&&p.value?l=e.data:l=e.data.slice(0,Math.min(e.data.length,i.value/e.itemWidth)):typeof e.maxCount=="number"&&(l=e.data.slice(0,e.maxCount)),l}),N=c(()=>S.value?e.data.slice(R.value+1):e.data.slice(h.value.length)),E=(l,r)=>{var s;return typeof e.itemKey=="function"?e.itemKey(l):(s=e.itemKey&&l?.[e.itemKey])!==null&&s!==void 0?s:r},B=c(()=>e.renderItem||(l=>l)),A=(l,r)=>{z.value=l,r||(V.value=l<e.data.length-1,t("visibleChange",l))},ae=(l,r)=>{b.value=r.clientWidth},q=(l,r)=>{const s=new Map(O.value);r===null?s.delete(l):s.set(l,r),O.value=s},re=(l,r)=>{w.value=m.value,m.value=r},oe=(l,r)=>{y.value=r},G=l=>O.value.get(E(h.value[l],l));return Oe([i,O,m,y,()=>e.itemKey,h],()=>{if(i.value&&M.value&&h.value){let l=y.value;const r=h.value.length,s=r-1;if(!r){A(0),f.value=null;return}for(let g=0;g<r;g+=1){const F=G(g);if(F===void 0){A(g-1,!0);break}if(l+=F,s===0&&l<=i.value||g===s-1&&l+G(s)<=i.value){A(s),f.value=null;break}else if(l+M.value>i.value){A(g-1),f.value=l-F-y.value+m.value;break}}e.suffix&&G(0)+y.value>i.value&&(f.value=null)}}),()=>{const l=V.value&&!!N.value.length,{itemComponent:r,renderRawItem:s,renderRawRest:g,renderRest:F,prefixCls:ie="rc-overflow",suffix:J,component:se="div",id:ue,onMousedown:de}=e,{class:ce,style:ve}=a,fe=we(a,["class","style"]);let Q={};f.value!==null&&S.value&&(Q={position:"absolute",left:`${f.value}px`,top:0});const j={prefixCls:I.value,responsive:S.value,component:r,invalidate:W.value},me=s?(d,x)=>{const K=E(d,x);return v(X,{key:K,value:D(D({},j),{order:x,item:d,itemKey:K,registerSize:q,display:x<=R.value})},{default:()=>[s(d,x)]})}:(d,x)=>{const K=E(d,x);return v($,u(u({},j),{},{order:x,key:K,item:d,renderItem:B.value,itemKey:K,registerSize:q,display:x<=R.value}),null)};let L=()=>null;const Z={order:l?R.value:Number.MAX_SAFE_INTEGER,className:`${I.value} ${I.value}-rest`,registerSize:re,display:l};if(g)g&&(L=()=>v(X,{value:D(D({},j),Z)},{default:()=>[g(N.value)]}));else{const d=F||Re;L=()=>v($,u(u({},j),Z),{default:()=>typeof d=="function"?d(N.value):d})}const ye=()=>{var d;return v(se,u({id:ue,class:H(!W.value&&ie,ce),style:ve,onMousedown:de,role:e.role},fe),{default:()=>[h.value.map(me),T.value?L():null,J&&v($,u(u({},j),{},{order:R.value,class:`${I.value}-suffix`,registerSize:oe,display:!0,style:Q}),{default:()=>J}),(d=n.default)===null||d===void 0?void 0:d.call(n)]})};return v(ee,{disabled:!S.value,onResize:ae},{default:ye})}}});Y.Item=Ce;Y.RESPONSIVE=ne;Y.INVALIDATE=le;export{Y as O};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as ve,b as ye,u as me}from"./index-
|
|
1
|
+
import{_ as ve,b as ye,u as me}from"./index-BAy0ks7N.js";import{R as fe,M as _e,aj as te,aq as ge,p as B}from"./icons-DY9VpXfa.js";import{o as be,M as v,R as d,P as l,u as t,c as a,N as n,r,K as p,L as i,O as y,Q as w,S as m,F as ae,Y as xe,f as he}from"./vendor-M5lGV-wr.js";const ke={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},we={class:"page-title"},Se={class:"page-sub"},Pe={key:0,style:{"text-align":"center",padding:"30px"}},Ce={key:2,style:{"font-family":"monospace",color:"var(--text-muted)","font-size":"12px"}},Le={key:3,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},ze={key:0,style:{"text-align":"center",padding:"30px"}},Oe={key:0,style:{"margin-top":"16px"}},Me={style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},Be={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"200px","overflow-y":"auto","white-space":"pre-wrap"}},Fe={key:2,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},Te={style:{"margin-bottom":"12px",color:"var(--text-secondary)"}},$e={key:0,style:{"margin-top":"12px"}},Ne={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}},De={style:{"margin-bottom":"8px",color:"var(--text-secondary)"}},Ee={style:{"margin-bottom":"8px",color:"var(--text-secondary)"}},Re={key:0,style:{"margin-top":"12px"}},Ue={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}},Ve={__name:"P2P",setup(Ie){const{t:e}=ye(),x=me(),F=r(!1),T=r(""),S=r([]),oe=he(()=>[{title:e("p2p.peerColumns.name"),key:"name"},{title:e("p2p.peerColumns.id"),key:"id"},{title:e("p2p.peerColumns.status"),key:"status"},{title:e("p2p.peerColumns.action"),key:"action",width:100}]);async function Y(){F.value=!0,T.value="";try{const{output:o}=await x.execute("p2p peers",15e3);S.value=ne(o)}catch(o){T.value=e("p2p.messages.loadPeersFailed",{err:o.message})}finally{F.value=!1}}function ne(o){if(!o||o.includes("No peers")||o.includes("no peers"))return[];const c=o.split(`
|
|
2
2
|
`).filter(_=>_.trim()),u=[];for(const _ of c){const b=_.match(/^\s*(\S+)\s+(.+?)\s+(connected|online|offline|disconnected)\s*$/i);if(b){u.push({id:b[1],name:b[2].trim(),connected:/connected|online/i.test(b[3])});continue}const k=_.match(/^\s*((?:12D3|Qm)\S{10,})\s*(.*)$/);if(k){const O=k[2].trim();u.push({id:k[1],name:O||k[1].slice(0,12),connected:/connected|online/i.test(O)})}}return u}const E=r(!1),R=r(!1),$=r(""),P=r("");async function G(){if($.value.trim()){R.value=!0,P.value="";try{const{output:o}=await x.execute(`p2p pair "${$.value.trim()}"`,3e4);P.value=o,await Y()}catch(o){P.value=e("p2p.messages.pairFailed",{err:o.message})}finally{R.value=!1}}}const N=r(!1),U=r(!1),C=r(void 0),L=r(""),h=r("");function le(o){C.value=o.id,L.value="",h.value="",N.value=!0}async function H(){if(!(!C.value||!L.value.trim())){U.value=!0,h.value="";try{const{output:o}=await x.execute(`p2p send ${C.value} "${L.value.trim()}"`,15e3);h.value=o||e("p2p.send.messageDefault")}catch(o){h.value=e("p2p.messages.sendFailed",{err:o.message})}finally{U.value=!1}}}const V=r(!1),D=r(""),z=r(!1),I=r(""),j=r(0),J=r(""),f=r(""),Q=r(!1),q=r(!1);async function A(){V.value=!0,D.value="";try{const{output:o}=await x.execute("sync status",15e3);se(o)}catch(o){D.value=e("p2p.messages.loadSyncFailed",{err:o.message})}finally{V.value=!1}}function se(o){if(!o){I.value=e("p2p.sync.unknown");return}z.value=/synced|online|up.to.date/i.test(o),I.value=z.value?e("p2p.sync.synced"):e("p2p.sync.notSynced");const c=o.match(/pending[:\s]+(\d+)/i);j.value=c?parseInt(c[1]):0;const u=o.match(/last[:\s]+(.+)/i);u&&(J.value=u[1].trim())}async function re(){Q.value=!0,f.value="";try{const{output:o}=await x.execute("sync push",3e4);f.value=o||e("p2p.sync.pushDefault"),await A()}catch(o){f.value=e("p2p.messages.pushFailed",{err:o.message})}finally{Q.value=!1}}async function ce(){q.value=!0,f.value="";try{const{output:o}=await x.execute("sync pull",3e4);f.value=o||e("p2p.sync.pullDefault"),await A()}catch(o){f.value=e("p2p.messages.pullFailed",{err:o.message})}finally{q.value=!1}}async function X(){await Promise.all([Y(),A()])}return be(X),(o,c)=>{const u=p("a-button"),_=p("a-space"),b=p("a-spin"),k=p("a-empty"),O=p("a-tag"),ie=p("a-table"),M=p("a-card"),K=p("a-statistic"),W=p("a-col"),pe=p("a-row"),Z=p("a-input"),ee=p("a-modal"),ue=p("a-select-option"),de=p("a-select");return i(),v("div",null,[d("div",ke,[d("div",null,[d("h2",we,l(t(e)("p2p.title")),1),d("p",Se,l(t(e)("p2p.subtitle")),1)]),a(u,{type:"primary",ghost:"",loading:F.value,onClick:X},{icon:n(()=>[a(t(fe))]),default:n(()=>[y(" "+l(t(e)("p2p.refresh")),1)]),_:1},8,["loading"])]),a(M,{title:t(e)("p2p.peers.cardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:n(()=>[a(_,null,{default:n(()=>[a(u,{size:"small",onClick:c[0]||(c[0]=s=>E.value=!0),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:n(()=>[a(t(ge))]),default:n(()=>[y(" "+l(t(e)("p2p.peers.pairButton")),1)]),_:1}),a(u,{size:"small",onClick:c[1]||(c[1]=s=>N.value=!0),disabled:S.value.length===0,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:n(()=>[a(t(te))]),default:n(()=>[y(" "+l(t(e)("p2p.peers.sendButton")),1)]),_:1},8,["disabled"])]),_:1})]),default:n(()=>[F.value?(i(),v("div",Pe,[a(b)])):S.value.length===0?(i(),w(k,{key:1,description:t(e)("p2p.peers.emptyText")},null,8,["description"])):(i(),w(ie,{key:2,columns:oe.value,"data-source":S.value,pagination:!1,size:"small","row-key":"id"},{bodyCell:n(({column:s,record:g})=>[s.key==="status"?(i(),w(O,{key:0,color:g.connected?"green":"default"},{default:n(()=>[y(l(g.connected?t(e)("p2p.peers.online"):t(e)("p2p.peers.offline")),1)]),_:2},1032,["color"])):m("",!0),s.key==="name"?(i(),w(_,{key:1},{default:n(()=>[a(t(_e),{style:{color:"var(--text-muted)"}}),d("span",null,l(g.name||g.id),1)]),_:2},1024)):m("",!0),s.key==="id"?(i(),v("span",Ce,l(g.id.length>16?g.id.slice(0,16)+"...":g.id),1)):m("",!0),s.key==="action"?(i(),w(u,{key:3,size:"small",type:"link",onClick:je=>le(g)},{default:n(()=>[a(t(te)),y(" "+l(t(e)("p2p.peers.rowSend")),1)]),_:1},8,["onClick"])):m("",!0)]),_:1},8,["columns","data-source"])),T.value?(i(),v("div",Le,l(T.value),1)):m("",!0)]),_:1},8,["title"]),a(M,{title:t(e)("p2p.sync.cardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:n(()=>[a(O,{color:z.value?"green":"default"},{default:n(()=>[y(l(z.value?t(e)("p2p.sync.synced"):t(e)("p2p.sync.notSynced")),1)]),_:1},8,["color"])]),default:n(()=>[V.value?(i(),v("div",ze,[a(b)])):(i(),v(ae,{key:1},[a(pe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[a(W,{xs:24,sm:8},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(K,{title:t(e)("p2p.sync.statusLabel"),value:I.value,"value-style":{color:z.value?"#52c41a":"#888",fontSize:"16px"}},{prefix:n(()=>[a(t(B))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(W,{xs:24,sm:8},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(K,{title:t(e)("p2p.sync.pendingLabel"),value:j.value,"value-style":{color:j.value>0?"#faad14":"#52c41a",fontSize:"16px"}},{prefix:n(()=>[a(t(B))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(W,{xs:24,sm:8},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(K,{title:t(e)("p2p.sync.lastSyncLabel"),value:J.value||t(e)("p2p.sync.noLastSync"),"value-style":{color:"var(--text-secondary)",fontSize:"16px"}},{prefix:n(()=>[a(t(B))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),a(_,null,{default:n(()=>[a(u,{loading:Q.value,onClick:re,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:n(()=>[a(t(B))]),default:n(()=>[y(" "+l(t(e)("p2p.sync.pushButton")),1)]),_:1},8,["loading"]),a(u,{loading:q.value,onClick:ce,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:n(()=>[a(t(B))]),default:n(()=>[y(" "+l(t(e)("p2p.sync.pullButton")),1)]),_:1},8,["loading"])]),_:1}),f.value?(i(),v("div",Oe,[d("div",Me,l(t(e)("p2p.sync.outputLabel")),1),d("pre",Be,l(f.value),1)])):m("",!0)],64)),D.value?(i(),v("div",Fe,l(D.value),1)):m("",!0)]),_:1},8,["title"]),a(ee,{open:E.value,"onUpdate:open":c[3]||(c[3]=s=>E.value=s),title:t(e)("p2p.pair.title"),"confirm-loading":R.value,onOk:G,"ok-text":t(e)("p2p.pair.ok"),"cancel-text":t(e)("common.cancel")},{default:n(()=>[d("div",Te,l(t(e)("p2p.pair.intro")),1),a(Z,{value:$.value,"onUpdate:value":c[2]||(c[2]=s=>$.value=s),placeholder:t(e)("p2p.pair.placeholder"),onPressEnter:G},null,8,["value","placeholder"]),P.value?(i(),v("div",$e,[d("pre",Ne,l(P.value),1)])):m("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:N.value,"onUpdate:open":c[6]||(c[6]=s=>N.value=s),title:t(e)("p2p.send.title"),"confirm-loading":U.value,onOk:H,"ok-text":t(e)("p2p.send.ok"),"cancel-text":t(e)("common.cancel")},{default:n(()=>[d("div",De,l(t(e)("p2p.send.targetLabel")),1),a(de,{value:C.value,"onUpdate:value":c[4]||(c[4]=s=>C.value=s),style:{width:"100%","margin-bottom":"16px"},placeholder:t(e)("p2p.send.targetPlaceholder")},{default:n(()=>[(i(!0),v(ae,null,xe(S.value,s=>(i(),w(ue,{key:s.id,value:s.id},{default:n(()=>[y(l(s.name||s.id),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"]),d("div",Ee,l(t(e)("p2p.send.messageLabel")),1),a(Z,{value:L.value,"onUpdate:value":c[5]||(c[5]=s=>L.value=s),placeholder:t(e)("p2p.send.messagePlaceholder"),onPressEnter:H},null,8,["value","placeholder"]),h.value?(i(),v("div",Re,[d("pre",Ue,l(h.value),1)])):m("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},Ke=ve(Ve,[["__scopeId","data-v-832d025d"]]);export{Ke as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as ue,u as ce,d as J}from"./index-
|
|
1
|
+
import{_ as ue,u as ce,d as J}from"./index-BAy0ks7N.js";import{R as de,U as pe,f as G,a6 as me}from"./icons-DY9VpXfa.js";import{o as fe,M as d,R as j,c as l,N as s,r as v,K as u,L as i,O as h,u as I,Q as b,P as _,S as g,F as L,Y as B}from"./vendor-M5lGV-wr.js";const ye={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ve={key:0,style:{"text-align":"center",padding:"60px"}},_e={key:0,style:{color:"#e0e0e0","font-weight":"500"}},ge={key:1,style:{color:"var(--text-secondary)"}},he={key:0,style:{"margin-top":"16px"}},ke={key:0,style:{"text-align":"center",padding:"60px"}},xe={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},be={key:1,style:{color:"#e0e0e0"}},we={key:2,style:{color:"var(--text-secondary)"}},Ce={key:4,style:{color:"var(--text-muted)","font-size":"12px"}},Ie={__name:"Permissions",setup(Re){const R=ce(),O=v("roles"),z=v(!1);async function q(){z.value=!0;try{O.value==="roles"?await P():O.value==="audit"&&await U()}finally{z.value=!1}}function Q(t){t==="roles"&&W.value.length===0&&P(),t==="audit"&&A.value.length===0&&U()}const S=v(!1),W=v([]),Y=[{title:"角色名",key:"name",dataIndex:"name",width:"160px"},{title:"描述",key:"description",dataIndex:"description",width:"240px"},{title:"权限",key:"permissions",dataIndex:"permissions"},{title:"用户数",key:"userCount",dataIndex:"userCount",width:"100px"}];async function P(){S.value=!0;try{const{output:t}=await R.execute("auth roles --json",15e3);W.value=F(t,H)}catch(t){J.error("加载角色列表失败: "+t.message)}finally{S.value=!1}}function H(t){const e=[],o=t.split(`
|
|
2
2
|
`);for(const p of o){const n=p.trim();if(!n||n.startsWith("─")||n.match(/^Role/i))continue;const r=n.split(/\s*[|│]\s*/);r.length>=2?e.push({key:e.length,name:r[0]||"-",description:r[1]||"",permissions:r[2]?r[2].split(/[,;\s]+/).filter(Boolean):[],userCount:r[3]&&parseInt(r[3],10)||0}):n.length>2&&e.push({key:e.length,name:n.slice(0,60),description:"",permissions:[],userCount:0})}return e}const C=v(""),w=v(""),M=v(!1),k=v(null),X=["note:read","note:write","admin:*","skill:execute"];async function Z(){if(!(!C.value.trim()||!w.value.trim())){M.value=!0,k.value=null;try{const t=`auth check ${C.value.trim()} "${w.value.trim()}"`,{output:e}=await R.execute(t,15e3),o=e.toLowerCase(),p=o.includes("allow")||o.includes("granted")||o.includes("true")||o.includes("yes"),n=o.includes("denied")||o.includes("reject")||o.includes("false")||o.includes("no permission");k.value={allowed:p&&!n,detail:e.trim()||(p?"用户拥有该权限":"用户没有该权限")}}catch(t){k.value={allowed:!1,detail:"检查失败: "+t.message}}finally{M.value=!1}}}const $=v(!1),A=v([]),E=v([]),ee=[{title:"时间",key:"timestamp",dataIndex:"timestamp",width:"180px"},{title:"事件",key:"event",dataIndex:"event",width:"200px"},{title:"用户",key:"user",dataIndex:"user",width:"120px"},{title:"级别",key:"level",dataIndex:"level",width:"80px"},{title:"详情",key:"detail",dataIndex:"detail",ellipsis:!0}];function te(t){return{info:"blue",warn:"orange",warning:"orange",error:"red",critical:"red"}[(t||"").toLowerCase()]||"default"}async function U(){$.value=!0;try{const[t,e]=await Promise.all([R.execute("audit log --json",15e3),R.execute("audit stats --json",15e3)]);A.value=F(t.output,ae),E.value=se(e.output)}catch(t){J.error("加载审计日志失败: "+t.message)}finally{$.value=!1}}function ae(t){const e=[],o=t.split(`
|
|
3
3
|
`);for(const p of o){const n=p.trim();if(!n||n.startsWith("─")||n.startsWith("Audit")||n.startsWith("Recent"))continue;const r=n.split(/\s*[|│]\s*/);if(r.length>=3){e.push({key:e.length,timestamp:r[0]||"-",event:r[1]||"-",user:r[2]||"-",level:r[3]||"info",detail:r.slice(4).join(" ")||""});continue}const y=n.match(/^(\d{4}-\d{2}-\d{2}[\sT]\d{2}:\d{2}(?::\d{2})?)\s+(.+)/);if(y){const m=y[2],f=m.match(/\b(INFO|WARN|WARNING|ERROR|CRITICAL)\b/i);e.push({key:e.length,timestamp:y[1],event:m.replace(/\b(INFO|WARN|WARNING|ERROR|CRITICAL)\b/i,"").trim().slice(0,80),user:"-",level:f?f[1].toLowerCase():"info",detail:""})}else n.length>3&&!n.match(/^\d+ event/i)&&e.push({key:e.length,timestamp:"-",event:n.slice(0,80),user:"-",level:"info",detail:""})}return e}function se(t){const e=V(t);if(e&&typeof e=="object"&&!Array.isArray(e)){const y=["#1677ff","#52c41a","#faad14","#ff4d4f"];return Object.entries(e).slice(0,4).map(([m,f],x)=>({label:m,value:typeof f=="number"?f:String(f),color:y[x%y.length]}))}const o=[],p=t.split(`
|
|
4
4
|
`),n=["#1677ff","#52c41a","#faad14","#ff4d4f"];let r=0;for(const y of p){const m=y.trim();if(!m||m.startsWith("─")||m.startsWith("Audit"))continue;const f=m.match(/^(.+?)\s*[:=]\s*(.+)$/);if(f){const x=f[1].trim(),N=f[2].trim(),T=N.match(/^(\d+)/);o.push({label:x,value:T?parseInt(T[1],10):N,color:n[r%n.length]}),r++}}return o.length===0&&o.push({label:"总事件数",value:A.value.length,color:"#1677ff"},{label:"状态",value:"就绪",color:"#52c41a"}),o}function V(t){try{const e=t.indexOf("[")!==-1?t.indexOf("["):t.indexOf("{");if(e===-1)return null;const o=t.lastIndexOf("]")!==-1?t.lastIndexOf("]")+1:t.lastIndexOf("}")+1;return JSON.parse(t.slice(e,o))}catch{return null}}function F(t,e){const o=V(t);return Array.isArray(o)?o.map((p,n)=>({key:n,...p})):e(t)}return fe(()=>{P()}),(t,e)=>{const o=u("a-button"),p=u("a-spin"),n=u("a-tag"),r=u("a-empty"),y=u("a-table"),m=u("a-tab-pane"),f=u("a-input"),x=u("a-form-item"),N=u("a-space"),T=u("a-form"),ne=u("a-alert"),K=u("a-card"),le=u("a-statistic"),oe=u("a-col"),ie=u("a-row"),re=u("a-tabs");return i(),d("div",null,[j("div",ye,[e[4]||(e[4]=j("div",null,[j("h2",{class:"page-title"},"权限管理"),j("p",{class:"page-sub"},"角色 / 权限检查 / 审计")],-1)),l(o,{type:"primary",ghost:"",loading:z.value,onClick:q},{icon:s(()=>[l(I(de))]),default:s(()=>[e[3]||(e[3]=h(" 刷新 ",-1))]),_:1},8,["loading"])]),l(re,{activeKey:O.value,"onUpdate:activeKey":e[2]||(e[2]=a=>O.value=a),type:"card",onChange:Q},{default:s(()=>[l(m,{key:"roles"},{tab:s(()=>[l(I(pe)),e[5]||(e[5]=h(" 角色列表 ",-1))]),default:s(()=>[S.value?(i(),d("div",ve,[l(p,{size:"large"})])):(i(),b(y,{key:1,columns:Y,"data-source":W.value,pagination:{pageSize:20,showTotal:a=>`共 ${a} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"perm-row"},{bodyCell:s(({column:a,record:c})=>[a.key==="name"?(i(),d("span",_e,_(c.name),1)):g("",!0),a.key==="description"?(i(),d("span",ge,_(c.description),1)):g("",!0),a.key==="permissions"?(i(),d(L,{key:2},[(i(!0),d(L,null,B((c.permissions||[]).slice(0,5),D=>(i(),b(n,{key:D,color:"blue",style:{"margin-bottom":"2px"}},{default:s(()=>[h(_(D),1)]),_:2},1024))),128)),(c.permissions||[]).length>5?(i(),b(n,{key:0,color:"default"},{default:s(()=>[h(" +"+_(c.permissions.length-5),1)]),_:2},1024)):g("",!0)],64)):g("",!0),a.key==="userCount"?(i(),b(n,{key:3,color:c.userCount>0?"green":"default"},{default:s(()=>[h(_(c.userCount??0),1)]),_:2},1032,["color"])):g("",!0)]),emptyText:s(()=>[l(r,{description:"暂无角色数据"})]),_:1},8,["data-source","pagination"]))]),_:1}),l(m,{key:"check"},{tab:s(()=>[l(I(G)),e[6]||(e[6]=h(" 权限检查 ",-1))]),default:s(()=>[l(K,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","max-width":"640px"}},{default:s(()=>[l(T,{"label-col":{span:5},"wrapper-col":{span:19}},{default:s(()=>[l(x,{label:"用户 ID",required:""},{default:s(()=>[l(f,{value:C.value,"onUpdate:value":e[0]||(e[0]=a=>C.value=a),placeholder:"输入用户 ID"},null,8,["value"])]),_:1}),l(x,{label:"权限",required:""},{default:s(()=>[l(f,{value:w.value,"onUpdate:value":e[1]||(e[1]=a=>w.value=a),placeholder:"note:read"},null,8,["value"])]),_:1}),l(x,{"wrapper-col":{offset:5,span:19}},{default:s(()=>[l(N,{wrap:""},{default:s(()=>[l(o,{type:"primary",loading:M.value,disabled:!C.value.trim()||!w.value.trim(),onClick:Z},{icon:s(()=>[l(I(G))]),default:s(()=>[e[7]||(e[7]=h(" 检查权限 ",-1))]),_:1},8,["loading","disabled"]),(i(),d(L,null,B(X,a=>l(o,{key:a,size:"small",onClick:c=>w.value=a},{default:s(()=>[h(_(a),1)]),_:2},1032,["onClick"])),64))]),_:1})]),_:1})]),_:1}),k.value!==null?(i(),d("div",he,[l(ne,{message:k.value.allowed?"权限允许":"权限拒绝",description:k.value.detail,type:k.value.allowed?"success":"error","show-icon":""},null,8,["message","description","type"])])):g("",!0)]),_:1})]),_:1}),l(m,{key:"audit"},{tab:s(()=>[l(I(me)),e[8]||(e[8]=h(" 审计日志 ",-1))]),default:s(()=>[l(ie,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:s(()=>[(i(!0),d(L,null,B(E.value,a=>(i(),b(oe,{xs:12,sm:6,key:a.label},{default:s(()=>[l(K,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:s(()=>[l(le,{title:a.label,value:a.value,"value-style":{color:a.color,fontSize:"20px"}},null,8,["title","value","value-style"])]),_:2},1024)]),_:2},1024))),128))]),_:1}),$.value?(i(),d("div",ke,[l(p,{size:"large"})])):(i(),b(y,{key:1,columns:ee,"data-source":A.value,pagination:{pageSize:20,showTotal:a=>`共 ${a} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"perm-row"},{bodyCell:s(({column:a,record:c})=>[a.key==="timestamp"?(i(),d("span",xe,_(c.timestamp),1)):g("",!0),a.key==="event"?(i(),d("span",be,_(c.event),1)):g("",!0),a.key==="user"?(i(),d("span",we,_(c.user),1)):g("",!0),a.key==="level"?(i(),b(n,{key:3,color:te(c.level)},{default:s(()=>[h(_(c.level),1)]),_:2},1032,["color"])):g("",!0),a.key==="detail"?(i(),d("span",Ce,_(c.detail),1)):g("",!0)]),emptyText:s(()=>[l(r,{description:"暂无审计日志"})]),_:1},8,["data-source","pagination"]))]),_:1})]),_:1},8,["activeKey"])])}}},Te=ue(Ie,[["__scopeId","data-v-71782e36"]]);export{Te as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as Qe,u as We,b as Xe,d as z}from"./index-DY5Oc3z6.js";import{s as Se}from"./community-parser-CO25nZFt.js";import{R as Ze,aq as et,y as me,ao as tt,a4 as lt,l as at,X as ve,U as V,aN as nt,f as it,L as st,d as ot,x as rt}from"./icons-NT6gy8Ee.js";import{o as pt,M as b,R as S,P as p,c as i,N as a,Q as y,S as m,K as v,r as $,L as r,O as f,u as c,F as C,Y as L,Z as ut,f as te,a as ct}from"./vendor-M5lGV-wr.js";function Y(t){const o=Se(t);if(!o)return null;try{return JSON.parse(o)}catch{}const n=o.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!n)return null;try{return JSON.parse(n[0])}catch{return null}}const Ae=Object.freeze(["pending","running","paused","completed","failed","cancelled"]),dt=Object.freeze(["pending","running","gate-waiting","completed","failed","skipped"]),be=Object.freeze(["requirement","architecture","code-generation","testing","code-review","deploy","monitoring"]),le=Object.freeze(["feature","bugfix","refactor","security-audit"]),ft=Object.freeze(["git-pr","docker","npm-publish","local","staging","custom"]),_e=Object.freeze(["code-review","deploy"]);function j(t,o=0){return typeof t=="number"&&Number.isFinite(t)?t:o}function ke(t){if(!t)return{noDb:!1,error:""};const o=Se(t),n=/No database/i.test(o);return{noDb:n,error:n?"No database":""}}function gt(t,o=0){if(!t||typeof t!="object")return null;const n=t.id||"";return n?{key:n,id:n,pipelineId:String(t.pipelineId||""),stageIndex:j(t.stageIndex,o),name:String(t.name||""),status:String(t.status||"pending").toLowerCase(),gateRequired:!!t.gateRequired,gateApproved:!!t.gateApproved,gateRejectReason:t.gateRejectReason||"",input:t.input??null,output:t.output??null,errorMessage:t.errorMessage||"",startedAt:t.startedAt??null,completedAt:t.completedAt??null,_idx:o}:null}function yt(t,o=0){if(!t||typeof t!="object")return null;const n=t.id||"";if(!n)return null;const g=Array.isArray(t.stages)?t.stages.map(gt).filter(Boolean):[];return{key:n,id:n,name:t.name||"",template:String(t.template||""),config:t.config??null,status:String(t.status||"pending").toLowerCase(),currentStage:j(t.currentStage,0),result:t.result??null,errorMessage:t.errorMessage||"",createdAt:t.createdAt??null,updatedAt:t.updatedAt??null,startedAt:t.startedAt??null,completedAt:t.completedAt??null,stages:g,_idx:o}}function mt(t){const o=Y(t);return Array.isArray(o)?o.map(yt).filter(Boolean):[]}function vt(t,o=0){if(!t||typeof t!="object")return null;const n=t.id||"";return n?{key:n,id:n,pipelineId:String(t.pipelineId||""),strategy:String(t.strategy||"").toLowerCase(),config:t.config??null,status:String(t.status||"pending").toLowerCase(),result:t.result??null,errorMessage:t.errorMessage||"",rolledBackAt:t.rolledBackAt??null,rollbackReason:t.rollbackReason||"",createdAt:t.createdAt??null,completedAt:t.completedAt??null,_idx:o}:null}function bt(t){const o=Y(t);return Array.isArray(o)?o.map(vt).filter(Boolean):[]}function _t(t,o=0){if(!t||typeof t!="object")return null;const n=t.name||"";return n?{key:n,name:n,description:String(t.description||""),stages:Array.isArray(t.stages)?t.stages.filter(g=>typeof g=="string"):[],gateStages:Array.isArray(t.gateStages)?t.gateStages.filter(g=>typeof g=="string"):[],_idx:o}:null}function kt(t){const o=Y(t);return Array.isArray(o)?o.map(_t).filter(Boolean):[]}const St={totalPipelines:0,pipelinesByTemplate:{},pipelinesByStatus:{},totalStages:0,stagesByStatus:{},totalArtifacts:0,totalDeploys:0,deploysByStrategy:{}};function At(t){const o=JSON.parse(JSON.stringify(St));for(const g of le)o.pipelinesByTemplate[g]=0;for(const g of Ae)o.pipelinesByStatus[g]=0;for(const g of dt)o.stagesByStatus[g]=0;for(const g of ft)o.deploysByStrategy[g]=0;const n=Y(t);if(!n||typeof n!="object"||Array.isArray(n))return o;if(o.totalPipelines=j(n.totalPipelines,0),o.totalStages=j(n.totalStages,0),o.totalArtifacts=j(n.totalArtifacts,0),o.totalDeploys=j(n.totalDeploys,0),n.pipelinesByTemplate&&typeof n.pipelinesByTemplate=="object")for(const[g,_]of Object.entries(n.pipelinesByTemplate))typeof _=="number"&&Number.isFinite(_)&&(o.pipelinesByTemplate[g]=_);if(n.pipelinesByStatus&&typeof n.pipelinesByStatus=="object")for(const[g,_]of Object.entries(n.pipelinesByStatus))typeof _=="number"&&Number.isFinite(_)&&(o.pipelinesByStatus[g]=_);if(n.stagesByStatus&&typeof n.stagesByStatus=="object")for(const[g,_]of Object.entries(n.stagesByStatus))typeof _=="number"&&Number.isFinite(_)&&(o.stagesByStatus[g]=_);if(n.deploysByStrategy&&typeof n.deploysByStrategy=="object")for(const[g,_]of Object.entries(n.deploysByStrategy))typeof _=="number"&&Number.isFinite(_)&&(o.deploysByStrategy[g]=_);return o}function N(t){if(t==null||t==="")return"—";const o=typeof t=="number"?new Date(t):new Date(String(t));return isNaN(o.getTime())?String(t):o.toLocaleString("zh-CN",{hour12:!1})}const $t={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},xt={class:"page-title"},ht={class:"page-sub"},Ct={class:"stage-flow"},zt={class:"stage-idx"},Bt={class:"filter-bar"},Tt={style:{color:"var(--text-primary)","font-weight":"500"}},Pt={style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},Ot={key:1,style:{color:"var(--text-muted)"}},Lt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Dt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Nt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},jt={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},Rt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Et={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0 0 10px"}},Ft={class:"tpl-stages"},Mt={key:0,style:{"padding-top":"8px"}},Jt={style:{color:"var(--text-primary)","font-size":"13px",margin:"20px 0 10px"}},It={style:{display:"flex","align-items":"center",gap:"8px","flex-wrap":"wrap"}},Ut={style:{color:"var(--text-primary)","font-weight":"500"}},wt={key:0,style:{color:"#52c41a","margin-left":"4px"}},qt={key:0,style:{color:"#ff4d4f","font-size":"11px","margin-top":"4px"}},Gt={key:1,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},Kt={key:0},Vt={__name:"Pipeline",setup(t){const o=We(),{t:n}=Xe(),g=$(!1),_=$(!1),ae=$([]),ne=$([]),ie=$([]),T=$({totalPipelines:0,pipelinesByTemplate:{},pipelinesByStatus:{},totalStages:0,stagesByStatus:{},totalArtifacts:0,totalDeploys:0,deploysByStrategy:{}}),H=$({noDb:!1,error:""}),se=$("pipelines"),R=$(""),E=$(""),I=$(!1),Q=$(!1),k=ct({template:"feature",name:"",configJson:""}),A=$(null),$e=te(()=>[{title:n("pipeline.cols.name"),key:"name"},{title:n("pipeline.cols.template"),key:"template",width:"110px"},{title:n("pipeline.cols.progress"),key:"progress",width:"160px"},{title:n("pipeline.cols.currentStage"),key:"currentStage",width:"140px"},{title:n("pipeline.cols.status"),key:"status",width:"110px"},{title:n("pipeline.cols.createdAt"),key:"createdAt",width:"160px"},{title:n("pipeline.cols.action"),key:"action",width:"260px"}]),xe=te(()=>[{title:n("pipeline.cols.pipeline"),key:"pipeline",width:"180px"},{title:n("pipeline.cols.strategy"),key:"strategy",width:"120px"},{title:n("pipeline.cols.status"),key:"status",width:"110px"},{title:n("pipeline.cols.createdAt"),key:"createdAt"}]),he=te(()=>{let e=ae.value;return R.value&&(e=e.filter(s=>s.template===R.value)),E.value&&(e=e.filter(s=>s.status===E.value)),e});function F(e){const s=`pipeline.templateLabels.${e}`,d=n(s);return d===s?e:d}function W(e){return{feature:"green",bugfix:"red",refactor:"purple","security-audit":"volcano"}[e]||"default"}function U(e){const s=`pipeline.stageLabels.${e}`,d=n(s);return d===s?e:d}function X(e){const s=`pipeline.pipelineStatusLabels.${e}`,d=n(s);return d===s?e:d}function oe(e){return{pending:"default",running:"processing",paused:"orange",completed:"green",failed:"red",cancelled:"default"}[e]||"default"}function Ce(e){const s=`pipeline.stageStatusLabels.${e}`,d=n(s);return d===s?e:d}function re(e){return{pending:"default",running:"processing","gate-waiting":"gold",completed:"green",failed:"red",skipped:"default"}[e]||"default"}function ze(e){const s=`pipeline.deployStatusLabels.${e}`,d=n(s);return d===s?e:d}function Be(e){return{pending:"default",running:"processing",succeeded:"green",failed:"red","rolled-back":"orange"}[e]||"default"}function Te(e){return{"git-pr":"blue",docker:"cyan","npm-publish":"magenta",local:"default",staging:"orange",custom:"purple"}[e]||"default"}function Pe(e){return{pending:"gray",running:"blue","gate-waiting":"gold",completed:"green",failed:"red",skipped:"gray"}[e]||"gray"}function pe(e){if(!e.stages.length)return 0;const s=e.stages.filter(d=>d.status==="completed").length;return Math.round(100*s/e.stages.length)}function w(e){if(!e.stages.length)return null;const s=Math.min(e.currentStage,e.stages.length-1);return e.stages[s]||null}function Oe(e){if(e.status!=="running")return!1;const s=w(e);return s&&s.status==="gate-waiting"&&s.gateRequired&&!s.gateApproved}function Le(e){return e.status==="pending"||e.status==="running"||e.status==="paused"}async function q(){g.value=!0,H.value={noDb:!1,error:""};try{const[e,s,d,x]=await Promise.all([o.execute("pipeline list",1e4).catch(()=>({output:""})),o.execute("pipeline deploys",1e4).catch(()=>({output:""})),o.execute("pipeline templates",8e3).catch(()=>({output:""})),o.execute("pipeline stats",8e3).catch(()=>({output:""}))]),G=[e,s,x].map(B=>ke(B.output)).find(B=>B.noDb);G&&(H.value=G),ae.value=mt(e.output),ne.value=bt(s.output),ie.value=kt(d.output),T.value=At(x.output)}catch(e){z.error(n("pipeline.msg.loadFailed")+": "+(e?.message||e))}finally{g.value=!1}}async function De(){if(!k.template){z.warning(n("pipeline.msg.selectTemplate"));return}if(k.configJson.trim())try{JSON.parse(k.configJson)}catch{z.warning(n("pipeline.msg.badConfigJson"));return}_.value=!0;try{const e=[`pipeline create --template ${k.template}`];k.name.trim()&&e.push(`--name "${k.name.trim().replace(/"/g,'\\"')}"`),k.configJson.trim()&&e.push(`--config '${k.configJson.trim().replace(/'/g,"'\\''")}'`);const{output:s}=await o.execute(e.join(" "),1e4);if(ke(s).noDb){z.error(n("pipeline.msg.needCcInit"));return}if(/error|Error|失败/i.test(s)&&!/"id"/.test(s)){z.error(n("pipeline.msg.createFailed")+": "+s.slice(0,120));return}z.success(n("pipeline.msg.createSuccess")),I.value=!1,ue(),await q()}catch(e){z.error(n("pipeline.msg.createFailed")+": "+(e?.message||e))}finally{_.value=!1}}async function Ne(e){await M(e,`pipeline start ${e.id}`,n("pipeline.msg.started"))}async function je(e){await M(e,`pipeline pause ${e.id}`,n("pipeline.msg.paused"))}async function Re(e){await M(e,`pipeline resume ${e.id}`,n("pipeline.msg.resumed"))}async function Ee(e){await M(e,`pipeline approve ${e.id}`,n("pipeline.msg.gateApproved"))}async function Fe(e){await M(e,`pipeline cancel ${e.id}`,n("pipeline.msg.cancelled"))}async function M(e,s,d){try{const{output:x}=await o.execute(s,8e3);if(/error|Error|失败/i.test(x)&&!/"id"/.test(x)){z.error(n("pipeline.msg.actionFailed")+": "+x.slice(0,120));return}z.success(d),await q()}catch(x){z.error(n("pipeline.msg.actionFailed")+": "+(x?.message||x))}}function Me(e){A.value=e,Q.value=!0}function ue(){k.template="feature",k.name="",k.configJson=""}return pt(q),(e,s)=>{const d=v("a-button"),x=v("a-space"),G=v("a-alert"),B=v("a-statistic"),P=v("a-card"),D=v("a-col"),ce=v("a-row"),K=v("a-radio-button"),de=v("a-radio-group"),h=v("a-tag"),fe=v("a-progress"),Je=v("a-popconfirm"),ge=v("a-table"),Z=v("a-tab-pane"),Ie=v("a-tabs"),Ue=v("a-select-option"),we=v("a-select"),ee=v("a-form-item"),qe=v("a-input"),Ge=v("a-textarea"),Ke=v("a-form"),ye=v("a-modal"),J=v("a-descriptions-item"),Ve=v("a-descriptions"),Ye=v("a-timeline-item"),He=v("a-timeline");return r(),b("div",null,[S("div",$t,[S("div",null,[S("h2",xt,p(e.$t("pipeline.title")),1),S("p",ht,p(e.$t("pipeline.subtitle")),1)]),i(x,null,{default:a(()=>[i(d,{loading:g.value,onClick:q},{icon:a(()=>[i(c(Ze))]),default:a(()=>[f(" "+p(e.$t("pipeline.refresh")),1)]),_:1},8,["loading"]),i(d,{type:"primary",onClick:s[0]||(s[0]=l=>I.value=!0)},{icon:a(()=>[i(c(et))]),default:a(()=>[f(" "+p(e.$t("pipeline.create")),1)]),_:1})]),_:1})]),H.value.noDb?(r(),y(G,{key:0,type:"info","show-icon":"",message:e.$t("pipeline.noDb.message"),description:e.$t("pipeline.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):m("",!0),i(ce,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[i(D,{xs:12,sm:8,lg:5},{default:a(()=>[i(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[i(B,{title:e.$t("pipeline.stats.totalPipelines"),value:T.value.totalPipelines,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[i(c(me))]),_:1},8,["title","value"])]),_:1})]),_:1}),i(D,{xs:12,sm:8,lg:5},{default:a(()=>[i(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[i(B,{title:e.$t("pipeline.stats.running"),value:T.value.pipelinesByStatus.running||0,"value-style":{color:(T.value.pipelinesByStatus.running||0)>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:a(()=>[i(c(tt))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),i(D,{xs:12,sm:8,lg:5},{default:a(()=>[i(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[i(B,{title:e.$t("pipeline.stats.totalStages"),value:T.value.totalStages,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:a(()=>[i(c(lt))]),_:1},8,["title","value"])]),_:1})]),_:1}),i(D,{xs:12,sm:8,lg:5},{default:a(()=>[i(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[i(B,{title:e.$t("pipeline.stats.totalArtifacts"),value:T.value.totalArtifacts,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:a(()=>[i(c(at))]),_:1},8,["title","value"])]),_:1})]),_:1}),i(D,{xs:24,sm:8,lg:4},{default:a(()=>[i(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[i(B,{title:e.$t("pipeline.stats.totalDeploys"),value:T.value.totalDeploys,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:a(()=>[i(c(ve))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),i(P,{title:e.$t("pipeline.stagesCardTitle"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:a(()=>[S("div",Ct,[(r(!0),b(C,null,L(c(be),(l,u)=>(r(),b(C,{key:l},[S("span",{class:ut(["stage-pill",{"is-gate":c(_e).includes(l)}])},[S("span",zt,p(u+1),1),f(" "+p(U(l))+" ",1),c(_e).includes(l)?(r(),y(c(V),{key:0,class:"gate-icon"})):m("",!0)],2),u<c(be).length-1?(r(),y(c(nt),{key:0,class:"stage-arrow"})):m("",!0)],64))),128))])]),_:1},8,["title"]),i(Ie,{activeKey:se.value,"onUpdate:activeKey":s[3]||(s[3]=l=>se.value=l),class:"pipeline-tabs"},{default:a(()=>[i(Z,{key:"pipelines",tab:e.$t("pipeline.tabs.pipelines")},{default:a(()=>[S("div",Bt,[i(de,{value:R.value,"onUpdate:value":s[1]||(s[1]=l=>R.value=l),size:"small","button-style":"solid"},{default:a(()=>[i(K,{value:""},{default:a(()=>[f(p(e.$t("pipeline.filters.allTemplates")),1)]),_:1}),(r(!0),b(C,null,L(c(le),l=>(r(),y(K,{key:l,value:l},{default:a(()=>[f(p(F(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),i(de,{value:E.value,"onUpdate:value":s[2]||(s[2]=l=>E.value=l),size:"small"},{default:a(()=>[i(K,{value:""},{default:a(()=>[f(p(e.$t("pipeline.filters.allStatuses")),1)]),_:1}),(r(!0),b(C,null,L(c(Ae),l=>(r(),y(K,{key:l,value:l},{default:a(()=>[f(p(X(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),i(ge,{columns:$e.value,"data-source":he.value,pagination:{pageSize:20,showTotal:l=>e.$t("pipeline.table.totalSuffix",{n:l})},size:"small",loading:g.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:l,record:u})=>[l.key==="name"?(r(),b(C,{key:0},[S("span",Tt,p(u.name||e.$t("pipeline.table.unnamed")),1),S("div",Pt,p(u.id.slice(0,16)),1)],64)):m("",!0),l.key==="template"?(r(),y(h,{key:1,color:W(u.template)},{default:a(()=>[f(p(F(u.template)),1)]),_:2},1032,["color"])):m("",!0),l.key==="progress"?(r(),y(fe,{key:2,percent:pe(u),size:"small",status:u.status==="failed"?"exception":u.status==="completed"?"success":"active",format:()=>`${u.currentStage}/${u.stages.length}`},null,8,["percent","status","format"])):m("",!0),l.key==="currentStage"?(r(),b(C,{key:3},[w(u)?(r(),y(h,{key:0,color:re(w(u).status)},{default:a(()=>[f(p(U(w(u).name)),1)]),_:2},1032,["color"])):(r(),b("span",Ot,"—"))],64)):m("",!0),l.key==="status"?(r(),y(h,{key:4,color:oe(u.status)},{default:a(()=>[f(p(X(u.status)),1)]),_:2},1032,["color"])):m("",!0),l.key==="createdAt"?(r(),b("span",Lt,p(c(N)(u.createdAt)),1)):m("",!0),l.key==="action"?(r(),b(C,{key:6},[i(d,{size:"small",type:"link",onClick:O=>Me(u)},{default:a(()=>[f(p(e.$t("pipeline.table.actions.details")),1)]),_:1},8,["onClick"]),u.status==="pending"?(r(),y(d,{key:0,size:"small",type:"link",onClick:O=>Ne(u)},{default:a(()=>[f(p(e.$t("pipeline.table.actions.start")),1)]),_:1},8,["onClick"])):m("",!0),u.status==="running"?(r(),y(d,{key:1,size:"small",type:"link",onClick:O=>je(u)},{default:a(()=>[f(p(e.$t("pipeline.table.actions.pause")),1)]),_:1},8,["onClick"])):m("",!0),u.status==="paused"?(r(),y(d,{key:2,size:"small",type:"link",onClick:O=>Re(u)},{default:a(()=>[f(p(e.$t("pipeline.table.actions.resume")),1)]),_:1},8,["onClick"])):m("",!0),Oe(u)?(r(),y(d,{key:3,size:"small",type:"link",style:{color:"#52c41a"},onClick:O=>Ee(u)},{default:a(()=>[f(p(e.$t("pipeline.table.actions.approveGate")),1)]),_:1},8,["onClick"])):m("",!0),Le(u)?(r(),y(Je,{key:4,title:e.$t("pipeline.table.cancelConfirm"),"ok-text":e.$t("pipeline.table.cancelOk"),"cancel-text":e.$t("pipeline.table.cancelBack"),onConfirm:O=>Fe(u)},{default:a(()=>[i(d,{size:"small",type:"link",danger:""},{default:a(()=>[f(p(e.$t("pipeline.table.actions.cancel")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):m("",!0)],64)):m("",!0)]),emptyText:a(()=>[S("div",Dt,[i(c(me),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+p(R.value||E.value?e.$t("pipeline.table.emptyFiltered"):e.$t("pipeline.table.empty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),i(Z,{key:"deploys",tab:e.$t("pipeline.tabs.deploys")},{default:a(()=>[i(ge,{columns:xe.value,"data-source":ne.value,pagination:{pageSize:20,showTotal:l=>e.$t("pipeline.table.totalSuffix",{n:l})},size:"small",loading:g.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:l,record:u})=>[l.key==="pipeline"?(r(),b("span",Nt,p(u.pipelineId.slice(0,12)),1)):m("",!0),l.key==="strategy"?(r(),y(h,{key:1,color:Te(u.strategy),style:{"font-family":"monospace"}},{default:a(()=>[f(p(u.strategy),1)]),_:2},1032,["color"])):m("",!0),l.key==="status"?(r(),y(h,{key:2,color:Be(u.status)},{default:a(()=>[f(p(ze(u.status)),1)]),_:2},1032,["color"])):m("",!0),l.key==="createdAt"?(r(),b("span",jt,p(c(N)(u.createdAt)),1)):m("",!0)]),emptyText:a(()=>[S("div",Rt,[i(c(ve),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+p(e.$t("pipeline.table.emptyDeploys")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),i(Z,{key:"templates",tab:e.$t("pipeline.tabs.templates")},{default:a(()=>[i(ce,{gutter:[16,16]},{default:a(()=>[(r(!0),b(C,null,L(ie.value,l=>(r(),y(D,{key:l.name,xs:24,sm:12,lg:12},{default:a(()=>[i(P,{title:F(l.name),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:a(()=>[i(h,{color:W(l.name)},{default:a(()=>[f(p(l.name),1)]),_:2},1032,["color"])]),default:a(()=>[S("p",Et,p(l.description),1),S("div",Ft,[(r(!0),b(C,null,L(l.stages,(u,O)=>(r(),y(h,{key:u,color:l.gateStages.includes(u)?"gold":"blue",style:{"font-size":"11px"}},{default:a(()=>[f(p(O+1)+". "+p(U(u))+" ",1),l.gateStages.includes(u)?(r(),y(c(V),{key:0,style:{"font-size":"10px","margin-left":"2px"}})):m("",!0)]),_:2},1032,["color"]))),128))])]),_:2},1032,["title"])]),_:2},1024))),128))]),_:1})]),_:1},8,["tab"])]),_:1},8,["activeKey"]),i(ye,{open:I.value,"onUpdate:open":s[7]||(s[7]=l=>I.value=l),title:e.$t("pipeline.create_modal.title"),"confirm-loading":_.value,width:540,"ok-text":e.$t("pipeline.create_modal.ok"),"cancel-text":e.$t("pipeline.create_modal.cancel"),onOk:De,onCancel:ue},{default:a(()=>[i(Ke,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[i(ee,{label:e.$t("pipeline.create_modal.templateLabel"),required:""},{default:a(()=>[i(we,{value:k.template,"onUpdate:value":s[4]||(s[4]=l=>k.template=l)},{default:a(()=>[(r(!0),b(C,null,L(c(le),l=>(r(),y(Ue,{key:l,value:l},{default:a(()=>[f(p(F(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),i(ee,{label:e.$t("pipeline.create_modal.nameLabel")},{default:a(()=>[i(qe,{value:k.name,"onUpdate:value":s[5]||(s[5]=l=>k.name=l),placeholder:e.$t("pipeline.create_modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),i(ee,{label:e.$t("pipeline.create_modal.configLabel")},{default:a(()=>[i(Ge,{value:k.configJson,"onUpdate:value":s[6]||(s[6]=l=>k.configJson=l),placeholder:e.$t("pipeline.create_modal.configPlaceholder"),"auto-size":{minRows:2,maxRows:5}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),i(ye,{open:Q.value,"onUpdate:open":s[8]||(s[8]=l=>Q.value=l),title:e.$t("pipeline.details.title",{label:A.value?.name||A.value?.id?.slice(0,12)||""}),width:780,footer:null},{default:a(()=>[A.value?(r(),b("div",Mt,[i(Ve,{column:2,size:"small",bordered:""},{default:a(()=>[i(J,{label:e.$t("pipeline.details.template")},{default:a(()=>[i(h,{color:W(A.value.template)},{default:a(()=>[f(p(F(A.value.template)),1)]),_:1},8,["color"])]),_:1},8,["label"]),i(J,{label:e.$t("pipeline.details.status")},{default:a(()=>[i(h,{color:oe(A.value.status)},{default:a(()=>[f(p(X(A.value.status)),1)]),_:1},8,["color"])]),_:1},8,["label"]),i(J,{label:e.$t("pipeline.details.progress"),span:2},{default:a(()=>[i(fe,{percent:pe(A.value),status:A.value.status==="failed"?"exception":A.value.status==="completed"?"success":"active",size:"small"},null,8,["percent","status"])]),_:1},8,["label"]),i(J,{label:e.$t("pipeline.details.createdAt")},{default:a(()=>[f(p(c(N)(A.value.createdAt)),1)]),_:1},8,["label"]),i(J,{label:e.$t("pipeline.details.startedAt")},{default:a(()=>[f(p(c(N)(A.value.startedAt)),1)]),_:1},8,["label"])]),_:1}),S("h4",Jt,p(e.$t("pipeline.details.stagesHeader")),1),i(He,{mode:"left"},{default:a(()=>[(r(!0),b(C,null,L(A.value.stages,l=>(r(),y(Ye,{key:l.id,color:Pe(l.status)},{dot:a(()=>[l.status==="completed"?(r(),y(c(it),{key:0,style:{color:"#52c41a"}})):l.status==="running"?(r(),y(c(st),{key:1,style:{color:"#1677ff"}})):l.status==="failed"?(r(),y(c(ot),{key:2,style:{color:"#ff4d4f"}})):l.status==="gate-waiting"?(r(),y(c(V),{key:3,style:{color:"#faad14"}})):(r(),y(c(rt),{key:4,style:{color:"var(--text-muted)"}}))]),default:a(()=>[S("div",It,[S("span",Ut,p(l.stageIndex+1)+". "+p(U(l.name)),1),i(h,{color:re(l.status),style:{"font-size":"11px"}},{default:a(()=>[f(p(Ce(l.status)),1)]),_:2},1032,["color"]),l.gateRequired?(r(),y(h,{key:0,color:"gold",style:{"font-size":"10px"}},{default:a(()=>[i(c(V)),f(" "+p(e.$t("pipeline.details.needsApproval"))+" ",1),l.gateApproved?(r(),b("span",wt,p(e.$t("pipeline.details.approved")),1)):m("",!0)]),_:2},1024)):m("",!0)]),l.errorMessage?(r(),b("div",qt,p(e.$t("pipeline.details.errorPrefix"))+" "+p(l.errorMessage),1)):m("",!0),l.startedAt?(r(),b("div",Gt,[f(p(c(N)(l.startedAt))+" ",1),l.completedAt?(r(),b("span",Kt," → "+p(c(N)(l.completedAt)),1)):m("",!0)])):m("",!0)]),_:2},1032,["color"]))),128))]),_:1})])):m("",!0)]),_:1},8,["open","title"])])}}},Xt=Qe(Vt,[["__scopeId","data-v-8e02619c"]]);export{Xt as default};
|
|
1
|
+
import{_ as Qe,u as We,b as Xe,d as z}from"./index-BAy0ks7N.js";import{s as Se}from"./community-parser-CO25nZFt.js";import{R as Ze,aq as et,y as me,ao as tt,a4 as lt,l as at,X as ve,U as V,aP as nt,f as it,L as st,d as ot,x as rt}from"./icons-DY9VpXfa.js";import{o as pt,M as b,R as S,P as p,c as i,N as a,Q as y,S as m,K as v,r as $,L as r,O as f,u as c,F as C,Y as L,Z as ut,f as te,a as ct}from"./vendor-M5lGV-wr.js";function Y(t){const o=Se(t);if(!o)return null;try{return JSON.parse(o)}catch{}const n=o.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!n)return null;try{return JSON.parse(n[0])}catch{return null}}const Ae=Object.freeze(["pending","running","paused","completed","failed","cancelled"]),dt=Object.freeze(["pending","running","gate-waiting","completed","failed","skipped"]),be=Object.freeze(["requirement","architecture","code-generation","testing","code-review","deploy","monitoring"]),le=Object.freeze(["feature","bugfix","refactor","security-audit"]),ft=Object.freeze(["git-pr","docker","npm-publish","local","staging","custom"]),_e=Object.freeze(["code-review","deploy"]);function N(t,o=0){return typeof t=="number"&&Number.isFinite(t)?t:o}function ke(t){if(!t)return{noDb:!1,error:""};const o=Se(t),n=/No database/i.test(o);return{noDb:n,error:n?"No database":""}}function gt(t,o=0){if(!t||typeof t!="object")return null;const n=t.id||"";return n?{key:n,id:n,pipelineId:String(t.pipelineId||""),stageIndex:N(t.stageIndex,o),name:String(t.name||""),status:String(t.status||"pending").toLowerCase(),gateRequired:!!t.gateRequired,gateApproved:!!t.gateApproved,gateRejectReason:t.gateRejectReason||"",input:t.input??null,output:t.output??null,errorMessage:t.errorMessage||"",startedAt:t.startedAt??null,completedAt:t.completedAt??null,_idx:o}:null}function yt(t,o=0){if(!t||typeof t!="object")return null;const n=t.id||"";if(!n)return null;const g=Array.isArray(t.stages)?t.stages.map(gt).filter(Boolean):[];return{key:n,id:n,name:t.name||"",template:String(t.template||""),config:t.config??null,status:String(t.status||"pending").toLowerCase(),currentStage:N(t.currentStage,0),result:t.result??null,errorMessage:t.errorMessage||"",createdAt:t.createdAt??null,updatedAt:t.updatedAt??null,startedAt:t.startedAt??null,completedAt:t.completedAt??null,stages:g,_idx:o}}function mt(t){const o=Y(t);return Array.isArray(o)?o.map(yt).filter(Boolean):[]}function vt(t,o=0){if(!t||typeof t!="object")return null;const n=t.id||"";return n?{key:n,id:n,pipelineId:String(t.pipelineId||""),strategy:String(t.strategy||"").toLowerCase(),config:t.config??null,status:String(t.status||"pending").toLowerCase(),result:t.result??null,errorMessage:t.errorMessage||"",rolledBackAt:t.rolledBackAt??null,rollbackReason:t.rollbackReason||"",createdAt:t.createdAt??null,completedAt:t.completedAt??null,_idx:o}:null}function bt(t){const o=Y(t);return Array.isArray(o)?o.map(vt).filter(Boolean):[]}function _t(t,o=0){if(!t||typeof t!="object")return null;const n=t.name||"";return n?{key:n,name:n,description:String(t.description||""),stages:Array.isArray(t.stages)?t.stages.filter(g=>typeof g=="string"):[],gateStages:Array.isArray(t.gateStages)?t.gateStages.filter(g=>typeof g=="string"):[],_idx:o}:null}function kt(t){const o=Y(t);return Array.isArray(o)?o.map(_t).filter(Boolean):[]}const St={totalPipelines:0,pipelinesByTemplate:{},pipelinesByStatus:{},totalStages:0,stagesByStatus:{},totalArtifacts:0,totalDeploys:0,deploysByStrategy:{}};function At(t){const o=JSON.parse(JSON.stringify(St));for(const g of le)o.pipelinesByTemplate[g]=0;for(const g of Ae)o.pipelinesByStatus[g]=0;for(const g of dt)o.stagesByStatus[g]=0;for(const g of ft)o.deploysByStrategy[g]=0;const n=Y(t);if(!n||typeof n!="object"||Array.isArray(n))return o;if(o.totalPipelines=N(n.totalPipelines,0),o.totalStages=N(n.totalStages,0),o.totalArtifacts=N(n.totalArtifacts,0),o.totalDeploys=N(n.totalDeploys,0),n.pipelinesByTemplate&&typeof n.pipelinesByTemplate=="object")for(const[g,_]of Object.entries(n.pipelinesByTemplate))typeof _=="number"&&Number.isFinite(_)&&(o.pipelinesByTemplate[g]=_);if(n.pipelinesByStatus&&typeof n.pipelinesByStatus=="object")for(const[g,_]of Object.entries(n.pipelinesByStatus))typeof _=="number"&&Number.isFinite(_)&&(o.pipelinesByStatus[g]=_);if(n.stagesByStatus&&typeof n.stagesByStatus=="object")for(const[g,_]of Object.entries(n.stagesByStatus))typeof _=="number"&&Number.isFinite(_)&&(o.stagesByStatus[g]=_);if(n.deploysByStrategy&&typeof n.deploysByStrategy=="object")for(const[g,_]of Object.entries(n.deploysByStrategy))typeof _=="number"&&Number.isFinite(_)&&(o.deploysByStrategy[g]=_);return o}function j(t){if(t==null||t==="")return"—";const o=typeof t=="number"?new Date(t):new Date(String(t));return isNaN(o.getTime())?String(t):o.toLocaleString("zh-CN",{hour12:!1})}const $t={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},xt={class:"page-title"},ht={class:"page-sub"},Ct={class:"stage-flow"},zt={class:"stage-idx"},Bt={class:"filter-bar"},Tt={style:{color:"var(--text-primary)","font-weight":"500"}},Pt={style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},Ot={key:1,style:{color:"var(--text-muted)"}},Lt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Dt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},jt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Nt={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},Rt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Et={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0 0 10px"}},Ft={class:"tpl-stages"},Mt={key:0,style:{"padding-top":"8px"}},Jt={style:{color:"var(--text-primary)","font-size":"13px",margin:"20px 0 10px"}},It={style:{display:"flex","align-items":"center",gap:"8px","flex-wrap":"wrap"}},Ut={style:{color:"var(--text-primary)","font-weight":"500"}},wt={key:0,style:{color:"#52c41a","margin-left":"4px"}},qt={key:0,style:{color:"#ff4d4f","font-size":"11px","margin-top":"4px"}},Gt={key:1,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},Kt={key:0},Vt={__name:"Pipeline",setup(t){const o=We(),{t:n}=Xe(),g=$(!1),_=$(!1),ae=$([]),ne=$([]),ie=$([]),T=$({totalPipelines:0,pipelinesByTemplate:{},pipelinesByStatus:{},totalStages:0,stagesByStatus:{},totalArtifacts:0,totalDeploys:0,deploysByStrategy:{}}),H=$({noDb:!1,error:""}),se=$("pipelines"),R=$(""),E=$(""),I=$(!1),Q=$(!1),k=ct({template:"feature",name:"",configJson:""}),A=$(null),$e=te(()=>[{title:n("pipeline.cols.name"),key:"name"},{title:n("pipeline.cols.template"),key:"template",width:"110px"},{title:n("pipeline.cols.progress"),key:"progress",width:"160px"},{title:n("pipeline.cols.currentStage"),key:"currentStage",width:"140px"},{title:n("pipeline.cols.status"),key:"status",width:"110px"},{title:n("pipeline.cols.createdAt"),key:"createdAt",width:"160px"},{title:n("pipeline.cols.action"),key:"action",width:"260px"}]),xe=te(()=>[{title:n("pipeline.cols.pipeline"),key:"pipeline",width:"180px"},{title:n("pipeline.cols.strategy"),key:"strategy",width:"120px"},{title:n("pipeline.cols.status"),key:"status",width:"110px"},{title:n("pipeline.cols.createdAt"),key:"createdAt"}]),he=te(()=>{let e=ae.value;return R.value&&(e=e.filter(s=>s.template===R.value)),E.value&&(e=e.filter(s=>s.status===E.value)),e});function F(e){const s=`pipeline.templateLabels.${e}`,d=n(s);return d===s?e:d}function W(e){return{feature:"green",bugfix:"red",refactor:"purple","security-audit":"volcano"}[e]||"default"}function U(e){const s=`pipeline.stageLabels.${e}`,d=n(s);return d===s?e:d}function X(e){const s=`pipeline.pipelineStatusLabels.${e}`,d=n(s);return d===s?e:d}function oe(e){return{pending:"default",running:"processing",paused:"orange",completed:"green",failed:"red",cancelled:"default"}[e]||"default"}function Ce(e){const s=`pipeline.stageStatusLabels.${e}`,d=n(s);return d===s?e:d}function re(e){return{pending:"default",running:"processing","gate-waiting":"gold",completed:"green",failed:"red",skipped:"default"}[e]||"default"}function ze(e){const s=`pipeline.deployStatusLabels.${e}`,d=n(s);return d===s?e:d}function Be(e){return{pending:"default",running:"processing",succeeded:"green",failed:"red","rolled-back":"orange"}[e]||"default"}function Te(e){return{"git-pr":"blue",docker:"cyan","npm-publish":"magenta",local:"default",staging:"orange",custom:"purple"}[e]||"default"}function Pe(e){return{pending:"gray",running:"blue","gate-waiting":"gold",completed:"green",failed:"red",skipped:"gray"}[e]||"gray"}function pe(e){if(!e.stages.length)return 0;const s=e.stages.filter(d=>d.status==="completed").length;return Math.round(100*s/e.stages.length)}function w(e){if(!e.stages.length)return null;const s=Math.min(e.currentStage,e.stages.length-1);return e.stages[s]||null}function Oe(e){if(e.status!=="running")return!1;const s=w(e);return s&&s.status==="gate-waiting"&&s.gateRequired&&!s.gateApproved}function Le(e){return e.status==="pending"||e.status==="running"||e.status==="paused"}async function q(){g.value=!0,H.value={noDb:!1,error:""};try{const[e,s,d,x]=await Promise.all([o.execute("pipeline list",1e4).catch(()=>({output:""})),o.execute("pipeline deploys",1e4).catch(()=>({output:""})),o.execute("pipeline templates",8e3).catch(()=>({output:""})),o.execute("pipeline stats",8e3).catch(()=>({output:""}))]),G=[e,s,x].map(B=>ke(B.output)).find(B=>B.noDb);G&&(H.value=G),ae.value=mt(e.output),ne.value=bt(s.output),ie.value=kt(d.output),T.value=At(x.output)}catch(e){z.error(n("pipeline.msg.loadFailed")+": "+(e?.message||e))}finally{g.value=!1}}async function De(){if(!k.template){z.warning(n("pipeline.msg.selectTemplate"));return}if(k.configJson.trim())try{JSON.parse(k.configJson)}catch{z.warning(n("pipeline.msg.badConfigJson"));return}_.value=!0;try{const e=[`pipeline create --template ${k.template}`];k.name.trim()&&e.push(`--name "${k.name.trim().replace(/"/g,'\\"')}"`),k.configJson.trim()&&e.push(`--config '${k.configJson.trim().replace(/'/g,"'\\''")}'`);const{output:s}=await o.execute(e.join(" "),1e4);if(ke(s).noDb){z.error(n("pipeline.msg.needCcInit"));return}if(/error|Error|失败/i.test(s)&&!/"id"/.test(s)){z.error(n("pipeline.msg.createFailed")+": "+s.slice(0,120));return}z.success(n("pipeline.msg.createSuccess")),I.value=!1,ue(),await q()}catch(e){z.error(n("pipeline.msg.createFailed")+": "+(e?.message||e))}finally{_.value=!1}}async function je(e){await M(e,`pipeline start ${e.id}`,n("pipeline.msg.started"))}async function Ne(e){await M(e,`pipeline pause ${e.id}`,n("pipeline.msg.paused"))}async function Re(e){await M(e,`pipeline resume ${e.id}`,n("pipeline.msg.resumed"))}async function Ee(e){await M(e,`pipeline approve ${e.id}`,n("pipeline.msg.gateApproved"))}async function Fe(e){await M(e,`pipeline cancel ${e.id}`,n("pipeline.msg.cancelled"))}async function M(e,s,d){try{const{output:x}=await o.execute(s,8e3);if(/error|Error|失败/i.test(x)&&!/"id"/.test(x)){z.error(n("pipeline.msg.actionFailed")+": "+x.slice(0,120));return}z.success(d),await q()}catch(x){z.error(n("pipeline.msg.actionFailed")+": "+(x?.message||x))}}function Me(e){A.value=e,Q.value=!0}function ue(){k.template="feature",k.name="",k.configJson=""}return pt(q),(e,s)=>{const d=v("a-button"),x=v("a-space"),G=v("a-alert"),B=v("a-statistic"),P=v("a-card"),D=v("a-col"),ce=v("a-row"),K=v("a-radio-button"),de=v("a-radio-group"),h=v("a-tag"),fe=v("a-progress"),Je=v("a-popconfirm"),ge=v("a-table"),Z=v("a-tab-pane"),Ie=v("a-tabs"),Ue=v("a-select-option"),we=v("a-select"),ee=v("a-form-item"),qe=v("a-input"),Ge=v("a-textarea"),Ke=v("a-form"),ye=v("a-modal"),J=v("a-descriptions-item"),Ve=v("a-descriptions"),Ye=v("a-timeline-item"),He=v("a-timeline");return r(),b("div",null,[S("div",$t,[S("div",null,[S("h2",xt,p(e.$t("pipeline.title")),1),S("p",ht,p(e.$t("pipeline.subtitle")),1)]),i(x,null,{default:a(()=>[i(d,{loading:g.value,onClick:q},{icon:a(()=>[i(c(Ze))]),default:a(()=>[f(" "+p(e.$t("pipeline.refresh")),1)]),_:1},8,["loading"]),i(d,{type:"primary",onClick:s[0]||(s[0]=l=>I.value=!0)},{icon:a(()=>[i(c(et))]),default:a(()=>[f(" "+p(e.$t("pipeline.create")),1)]),_:1})]),_:1})]),H.value.noDb?(r(),y(G,{key:0,type:"info","show-icon":"",message:e.$t("pipeline.noDb.message"),description:e.$t("pipeline.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):m("",!0),i(ce,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[i(D,{xs:12,sm:8,lg:5},{default:a(()=>[i(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[i(B,{title:e.$t("pipeline.stats.totalPipelines"),value:T.value.totalPipelines,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[i(c(me))]),_:1},8,["title","value"])]),_:1})]),_:1}),i(D,{xs:12,sm:8,lg:5},{default:a(()=>[i(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[i(B,{title:e.$t("pipeline.stats.running"),value:T.value.pipelinesByStatus.running||0,"value-style":{color:(T.value.pipelinesByStatus.running||0)>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:a(()=>[i(c(tt))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),i(D,{xs:12,sm:8,lg:5},{default:a(()=>[i(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[i(B,{title:e.$t("pipeline.stats.totalStages"),value:T.value.totalStages,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:a(()=>[i(c(lt))]),_:1},8,["title","value"])]),_:1})]),_:1}),i(D,{xs:12,sm:8,lg:5},{default:a(()=>[i(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[i(B,{title:e.$t("pipeline.stats.totalArtifacts"),value:T.value.totalArtifacts,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:a(()=>[i(c(at))]),_:1},8,["title","value"])]),_:1})]),_:1}),i(D,{xs:24,sm:8,lg:4},{default:a(()=>[i(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[i(B,{title:e.$t("pipeline.stats.totalDeploys"),value:T.value.totalDeploys,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:a(()=>[i(c(ve))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),i(P,{title:e.$t("pipeline.stagesCardTitle"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:a(()=>[S("div",Ct,[(r(!0),b(C,null,L(c(be),(l,u)=>(r(),b(C,{key:l},[S("span",{class:ut(["stage-pill",{"is-gate":c(_e).includes(l)}])},[S("span",zt,p(u+1),1),f(" "+p(U(l))+" ",1),c(_e).includes(l)?(r(),y(c(V),{key:0,class:"gate-icon"})):m("",!0)],2),u<c(be).length-1?(r(),y(c(nt),{key:0,class:"stage-arrow"})):m("",!0)],64))),128))])]),_:1},8,["title"]),i(Ie,{activeKey:se.value,"onUpdate:activeKey":s[3]||(s[3]=l=>se.value=l),class:"pipeline-tabs"},{default:a(()=>[i(Z,{key:"pipelines",tab:e.$t("pipeline.tabs.pipelines")},{default:a(()=>[S("div",Bt,[i(de,{value:R.value,"onUpdate:value":s[1]||(s[1]=l=>R.value=l),size:"small","button-style":"solid"},{default:a(()=>[i(K,{value:""},{default:a(()=>[f(p(e.$t("pipeline.filters.allTemplates")),1)]),_:1}),(r(!0),b(C,null,L(c(le),l=>(r(),y(K,{key:l,value:l},{default:a(()=>[f(p(F(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),i(de,{value:E.value,"onUpdate:value":s[2]||(s[2]=l=>E.value=l),size:"small"},{default:a(()=>[i(K,{value:""},{default:a(()=>[f(p(e.$t("pipeline.filters.allStatuses")),1)]),_:1}),(r(!0),b(C,null,L(c(Ae),l=>(r(),y(K,{key:l,value:l},{default:a(()=>[f(p(X(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),i(ge,{columns:$e.value,"data-source":he.value,pagination:{pageSize:20,showTotal:l=>e.$t("pipeline.table.totalSuffix",{n:l})},size:"small",loading:g.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:l,record:u})=>[l.key==="name"?(r(),b(C,{key:0},[S("span",Tt,p(u.name||e.$t("pipeline.table.unnamed")),1),S("div",Pt,p(u.id.slice(0,16)),1)],64)):m("",!0),l.key==="template"?(r(),y(h,{key:1,color:W(u.template)},{default:a(()=>[f(p(F(u.template)),1)]),_:2},1032,["color"])):m("",!0),l.key==="progress"?(r(),y(fe,{key:2,percent:pe(u),size:"small",status:u.status==="failed"?"exception":u.status==="completed"?"success":"active",format:()=>`${u.currentStage}/${u.stages.length}`},null,8,["percent","status","format"])):m("",!0),l.key==="currentStage"?(r(),b(C,{key:3},[w(u)?(r(),y(h,{key:0,color:re(w(u).status)},{default:a(()=>[f(p(U(w(u).name)),1)]),_:2},1032,["color"])):(r(),b("span",Ot,"—"))],64)):m("",!0),l.key==="status"?(r(),y(h,{key:4,color:oe(u.status)},{default:a(()=>[f(p(X(u.status)),1)]),_:2},1032,["color"])):m("",!0),l.key==="createdAt"?(r(),b("span",Lt,p(c(j)(u.createdAt)),1)):m("",!0),l.key==="action"?(r(),b(C,{key:6},[i(d,{size:"small",type:"link",onClick:O=>Me(u)},{default:a(()=>[f(p(e.$t("pipeline.table.actions.details")),1)]),_:1},8,["onClick"]),u.status==="pending"?(r(),y(d,{key:0,size:"small",type:"link",onClick:O=>je(u)},{default:a(()=>[f(p(e.$t("pipeline.table.actions.start")),1)]),_:1},8,["onClick"])):m("",!0),u.status==="running"?(r(),y(d,{key:1,size:"small",type:"link",onClick:O=>Ne(u)},{default:a(()=>[f(p(e.$t("pipeline.table.actions.pause")),1)]),_:1},8,["onClick"])):m("",!0),u.status==="paused"?(r(),y(d,{key:2,size:"small",type:"link",onClick:O=>Re(u)},{default:a(()=>[f(p(e.$t("pipeline.table.actions.resume")),1)]),_:1},8,["onClick"])):m("",!0),Oe(u)?(r(),y(d,{key:3,size:"small",type:"link",style:{color:"#52c41a"},onClick:O=>Ee(u)},{default:a(()=>[f(p(e.$t("pipeline.table.actions.approveGate")),1)]),_:1},8,["onClick"])):m("",!0),Le(u)?(r(),y(Je,{key:4,title:e.$t("pipeline.table.cancelConfirm"),"ok-text":e.$t("pipeline.table.cancelOk"),"cancel-text":e.$t("pipeline.table.cancelBack"),onConfirm:O=>Fe(u)},{default:a(()=>[i(d,{size:"small",type:"link",danger:""},{default:a(()=>[f(p(e.$t("pipeline.table.actions.cancel")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):m("",!0)],64)):m("",!0)]),emptyText:a(()=>[S("div",Dt,[i(c(me),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+p(R.value||E.value?e.$t("pipeline.table.emptyFiltered"):e.$t("pipeline.table.empty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),i(Z,{key:"deploys",tab:e.$t("pipeline.tabs.deploys")},{default:a(()=>[i(ge,{columns:xe.value,"data-source":ne.value,pagination:{pageSize:20,showTotal:l=>e.$t("pipeline.table.totalSuffix",{n:l})},size:"small",loading:g.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:l,record:u})=>[l.key==="pipeline"?(r(),b("span",jt,p(u.pipelineId.slice(0,12)),1)):m("",!0),l.key==="strategy"?(r(),y(h,{key:1,color:Te(u.strategy),style:{"font-family":"monospace"}},{default:a(()=>[f(p(u.strategy),1)]),_:2},1032,["color"])):m("",!0),l.key==="status"?(r(),y(h,{key:2,color:Be(u.status)},{default:a(()=>[f(p(ze(u.status)),1)]),_:2},1032,["color"])):m("",!0),l.key==="createdAt"?(r(),b("span",Nt,p(c(j)(u.createdAt)),1)):m("",!0)]),emptyText:a(()=>[S("div",Rt,[i(c(ve),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+p(e.$t("pipeline.table.emptyDeploys")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),i(Z,{key:"templates",tab:e.$t("pipeline.tabs.templates")},{default:a(()=>[i(ce,{gutter:[16,16]},{default:a(()=>[(r(!0),b(C,null,L(ie.value,l=>(r(),y(D,{key:l.name,xs:24,sm:12,lg:12},{default:a(()=>[i(P,{title:F(l.name),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:a(()=>[i(h,{color:W(l.name)},{default:a(()=>[f(p(l.name),1)]),_:2},1032,["color"])]),default:a(()=>[S("p",Et,p(l.description),1),S("div",Ft,[(r(!0),b(C,null,L(l.stages,(u,O)=>(r(),y(h,{key:u,color:l.gateStages.includes(u)?"gold":"blue",style:{"font-size":"11px"}},{default:a(()=>[f(p(O+1)+". "+p(U(u))+" ",1),l.gateStages.includes(u)?(r(),y(c(V),{key:0,style:{"font-size":"10px","margin-left":"2px"}})):m("",!0)]),_:2},1032,["color"]))),128))])]),_:2},1032,["title"])]),_:2},1024))),128))]),_:1})]),_:1},8,["tab"])]),_:1},8,["activeKey"]),i(ye,{open:I.value,"onUpdate:open":s[7]||(s[7]=l=>I.value=l),title:e.$t("pipeline.create_modal.title"),"confirm-loading":_.value,width:540,"ok-text":e.$t("pipeline.create_modal.ok"),"cancel-text":e.$t("pipeline.create_modal.cancel"),onOk:De,onCancel:ue},{default:a(()=>[i(Ke,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[i(ee,{label:e.$t("pipeline.create_modal.templateLabel"),required:""},{default:a(()=>[i(we,{value:k.template,"onUpdate:value":s[4]||(s[4]=l=>k.template=l)},{default:a(()=>[(r(!0),b(C,null,L(c(le),l=>(r(),y(Ue,{key:l,value:l},{default:a(()=>[f(p(F(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),i(ee,{label:e.$t("pipeline.create_modal.nameLabel")},{default:a(()=>[i(qe,{value:k.name,"onUpdate:value":s[5]||(s[5]=l=>k.name=l),placeholder:e.$t("pipeline.create_modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),i(ee,{label:e.$t("pipeline.create_modal.configLabel")},{default:a(()=>[i(Ge,{value:k.configJson,"onUpdate:value":s[6]||(s[6]=l=>k.configJson=l),placeholder:e.$t("pipeline.create_modal.configPlaceholder"),"auto-size":{minRows:2,maxRows:5}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),i(ye,{open:Q.value,"onUpdate:open":s[8]||(s[8]=l=>Q.value=l),title:e.$t("pipeline.details.title",{label:A.value?.name||A.value?.id?.slice(0,12)||""}),width:780,footer:null},{default:a(()=>[A.value?(r(),b("div",Mt,[i(Ve,{column:2,size:"small",bordered:""},{default:a(()=>[i(J,{label:e.$t("pipeline.details.template")},{default:a(()=>[i(h,{color:W(A.value.template)},{default:a(()=>[f(p(F(A.value.template)),1)]),_:1},8,["color"])]),_:1},8,["label"]),i(J,{label:e.$t("pipeline.details.status")},{default:a(()=>[i(h,{color:oe(A.value.status)},{default:a(()=>[f(p(X(A.value.status)),1)]),_:1},8,["color"])]),_:1},8,["label"]),i(J,{label:e.$t("pipeline.details.progress"),span:2},{default:a(()=>[i(fe,{percent:pe(A.value),status:A.value.status==="failed"?"exception":A.value.status==="completed"?"success":"active",size:"small"},null,8,["percent","status"])]),_:1},8,["label"]),i(J,{label:e.$t("pipeline.details.createdAt")},{default:a(()=>[f(p(c(j)(A.value.createdAt)),1)]),_:1},8,["label"]),i(J,{label:e.$t("pipeline.details.startedAt")},{default:a(()=>[f(p(c(j)(A.value.startedAt)),1)]),_:1},8,["label"])]),_:1}),S("h4",Jt,p(e.$t("pipeline.details.stagesHeader")),1),i(He,{mode:"left"},{default:a(()=>[(r(!0),b(C,null,L(A.value.stages,l=>(r(),y(Ye,{key:l.id,color:Pe(l.status)},{dot:a(()=>[l.status==="completed"?(r(),y(c(it),{key:0,style:{color:"#52c41a"}})):l.status==="running"?(r(),y(c(st),{key:1,style:{color:"#1677ff"}})):l.status==="failed"?(r(),y(c(ot),{key:2,style:{color:"#ff4d4f"}})):l.status==="gate-waiting"?(r(),y(c(V),{key:3,style:{color:"#faad14"}})):(r(),y(c(rt),{key:4,style:{color:"var(--text-muted)"}}))]),default:a(()=>[S("div",It,[S("span",Ut,p(l.stageIndex+1)+". "+p(U(l.name)),1),i(h,{color:re(l.status),style:{"font-size":"11px"}},{default:a(()=>[f(p(Ce(l.status)),1)]),_:2},1032,["color"]),l.gateRequired?(r(),y(h,{key:0,color:"gold",style:{"font-size":"10px"}},{default:a(()=>[i(c(V)),f(" "+p(e.$t("pipeline.details.needsApproval"))+" ",1),l.gateApproved?(r(),b("span",wt,p(e.$t("pipeline.details.approved")),1)):m("",!0)]),_:2},1024)):m("",!0)]),l.errorMessage?(r(),b("div",qt,p(e.$t("pipeline.details.errorPrefix"))+" "+p(l.errorMessage),1)):m("",!0),l.startedAt?(r(),b("div",Gt,[f(p(c(j)(l.startedAt))+" ",1),l.completedAt?(r(),b("span",Kt," → "+p(c(j)(l.completedAt)),1)):m("",!0)])):m("",!0)]),_:2},1032,["color"]))),128))]),_:1})])):m("",!0)]),_:1},8,["open","title"])])}}},Xt=Qe(Vt,[["__scopeId","data-v-8e02619c"]]);export{Xt as default};
|