【新增】在翻译文件中添加多吉云AccessKey和SecretKey的相关翻译,更新阿里云ESA的配置接口,优化CA管理功能,增强表单验证逻辑,提升用户体验。

This commit is contained in:
chudong
2025-06-20 10:07:56 +08:00
parent cc5b8aada4
commit eb6172436c
107 changed files with 1008 additions and 406 deletions

View File

@@ -5,8 +5,8 @@
<link rel="icon" href="./favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>AllinSSL</title>
<script type="module" crossorigin src="./static/js/main-1hvBaRBq.js"></script>
<link rel="stylesheet" crossorigin href="./static/css/style-DheXHEEu.css">
<script type="module" crossorigin src="./static/js/main-thcxfg9X.js"></script>
<link rel="stylesheet" crossorigin href="./static/css/style-mmW5PsI5.css">
</head>
<body>
<div id="app"></div>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{u as t}from"./index-D8gPQypV.js";import{d as s,c as e}from"./main-1hvBaRBq.js";import"./useStore-CwtMfADJ.js";import"./index-Dqr-yrfj.js";import"./access-CP5jwCxg.js";import"./index-ho-ygheC.js";import"./throttle-pRoLBB-q.js";import"./index-JPx0dibF.js";import"./data-BwFlQLCu.js";import"./index-DwpZTRQL.js";import"./business-D-vb9IBC.js";import"./index-DH4HpLFQ.js";const o=s({name:"CAManageForm",props:{isEdit:{type:Boolean,default:!1},editId:{type:String,default:""}},setup(s){const{CAForm:o}=t(s);return()=>e(o,{labelPlacement:"top"},null)}});export{o as default};

View File

@@ -0,0 +1 @@
import{u as t}from"./index-Dyfc6bM_.js";import{d as s,c as e}from"./main-thcxfg9X.js";import"./useStore-DVX3-8Ff.js";import"./index-BsOnqgcH.js";import"./access-BUuUnTSu.js";import"./index-B5TNz8PD.js";import"./index-T5IvGubh.js";import"./throttle-CP7_Hnch.js";import"./data-Di-Orkvg.js";import"./index-CQqPnXBD.js";import"./business-B3585fkI.js";import"./index-BTvqzqFK.js";const o=s({name:"CAManageForm",props:{isEdit:{type:Boolean,default:!1},editId:{type:String,default:""}},setup(s){const{CAForm:o}=t(s);return()=>e(o,{labelPlacement:"top"},null)}});export{o as default};

View File

@@ -1 +1 @@
import{d as a,Y as l,Z as n,_ as r}from"./main-1hvBaRBq.js";const t={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 20 20"},o=a({name:"Certificate20Regular",render:function(a,o){return n(),l("svg",t,o[0]||(o[0]=[r("g",{fill:"none"},[r("path",{d:"M2 5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v3.146a4.508 4.508 0 0 0-1-.678V5a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h7.258c.076.113.157.223.242.329V15H4a2 2 0 0 1-2-2V5zm16.5 6.5c0 .954-.381 1.818-1 2.45V18a.5.5 0 0 1-.8.4l-1.4-1.05a.5.5 0 0 0-.6 0l-1.4 1.05a.5.5 0 0 1-.8-.4v-4.05a3.5 3.5 0 1 1 6-2.45zM15 15c-.537 0-1.045-.12-1.5-.337v2.087l1.243-.746a.5.5 0 0 1 .514 0l1.243.746v-2.087A3.486 3.486 0 0 1 15 15zm0-1a2.5 2.5 0 1 0 0-5a2.5 2.5 0 0 0 0 5zM5 6.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5zm.5 4.5a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1h-4z",fill:"currentColor"})],-1)]))}}),h={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 32 32"},w=a({name:"CloudMonitoring",render:function(a,t){return n(),l("svg",h,t[0]||(t[0]=[r("path",{d:"M28 16v6H4V6h7V4H4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8v4H8v2h16v-2h-4v-4h8a2 2 0 0 0 2-2v-6zM18 28h-4v-4h4z",fill:"currentColor"},null,-1),r("path",{d:"M18 18h-.01a1 1 0 0 1-.951-.725L15.246 11H11V9h5a1 1 0 0 1 .962.725l1.074 3.76l3.009-9.78A1.014 1.014 0 0 1 22 3a.98.98 0 0 1 .949.684L24.72 9H30v2h-6a1 1 0 0 1-.949-.684l-1.013-3.04l-3.082 10.018A1 1 0 0 1 18 18z",fill:"currentColor"},null,-1)]))}}),v={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 32 32"},e=a({name:"Flow",render:function(a,t){return n(),l("svg",v,t[0]||(t[0]=[r("path",{d:"M27 22.14V17a2 2 0 0 0-2-2h-8V9.86a4 4 0 1 0-2 0V15H7a2 2 0 0 0-2 2v5.14a4 4 0 1 0 2 0V17h18v5.14a4 4 0 1 0 2 0zM8 26a2 2 0 1 1-2-2a2 2 0 0 1 2 2zm6-20a2 2 0 1 1 2 2a2 2 0 0 1-2-2zm12 22a2 2 0 1 1 2-2a2 2 0 0 1-2 2z",fill:"currentColor"},null,-1)]))}});export{o as C,e as F,w as a};
import{d as a,Y as l,Z as n,_ as r}from"./main-thcxfg9X.js";const t={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 20 20"},o=a({name:"Certificate20Regular",render:function(a,o){return n(),l("svg",t,o[0]||(o[0]=[r("g",{fill:"none"},[r("path",{d:"M2 5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v3.146a4.508 4.508 0 0 0-1-.678V5a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h7.258c.076.113.157.223.242.329V15H4a2 2 0 0 1-2-2V5zm16.5 6.5c0 .954-.381 1.818-1 2.45V18a.5.5 0 0 1-.8.4l-1.4-1.05a.5.5 0 0 0-.6 0l-1.4 1.05a.5.5 0 0 1-.8-.4v-4.05a3.5 3.5 0 1 1 6-2.45zM15 15c-.537 0-1.045-.12-1.5-.337v2.087l1.243-.746a.5.5 0 0 1 .514 0l1.243.746v-2.087A3.486 3.486 0 0 1 15 15zm0-1a2.5 2.5 0 1 0 0-5a2.5 2.5 0 0 0 0 5zM5 6.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5zm.5 4.5a.5.5 0 0 0 0 1h4a.5.5 0 0 0 0-1h-4z",fill:"currentColor"})],-1)]))}}),h={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 32 32"},w=a({name:"CloudMonitoring",render:function(a,t){return n(),l("svg",h,t[0]||(t[0]=[r("path",{d:"M28 16v6H4V6h7V4H4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8v4H8v2h16v-2h-4v-4h8a2 2 0 0 0 2-2v-6zM18 28h-4v-4h4z",fill:"currentColor"},null,-1),r("path",{d:"M18 18h-.01a1 1 0 0 1-.951-.725L15.246 11H11V9h5a1 1 0 0 1 .962.725l1.074 3.76l3.009-9.78A1.014 1.014 0 0 1 22 3a.98.98 0 0 1 .949.684L24.72 9H30v2h-6a1 1 0 0 1-.949-.684l-1.013-3.04l-3.082 10.018A1 1 0 0 1 18 18z",fill:"currentColor"},null,-1)]))}}),v={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 32 32"},e=a({name:"Flow",render:function(a,t){return n(),l("svg",v,t[0]||(t[0]=[r("path",{d:"M27 22.14V17a2 2 0 0 0-2-2h-8V9.86a4 4 0 1 0-2 0V15H7a2 2 0 0 0-2 2v5.14a4 4 0 1 0 2 0V17h18v5.14a4 4 0 1 0 2 0zM8 26a2 2 0 1 1-2-2a2 2 0 0 1 2 2zm6-20a2 2 0 1 1 2 2a2 2 0 0 1-2-2zm12 22a2 2 0 1 1 2-2a2 2 0 0 1-2 2z",fill:"currentColor"},null,-1)]))}});export{o as C,e as F,w as a};

View File

@@ -1 +1 @@
import{d as c,Y as n,Z as r,_ as t}from"./main-1hvBaRBq.js";const o={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 1024 1024"},s=c({name:"LockOutlined",render:function(c,s){return r(),n("svg",o,s[0]||(s[0]=[t("path",{d:"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z",fill:"currentColor"},null,-1)]))}});export{s as L};
import{d as c,Y as n,Z as r,_ as t}from"./main-thcxfg9X.js";const o={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 1024 1024"},s=c({name:"LockOutlined",render:function(c,s){return r(),n("svg",o,s[0]||(s[0]=[t("path",{d:"M832 464h-68V240c0-70.7-57.3-128-128-128H388c-70.7 0-128 57.3-128 128v224h-68c-17.7 0-32 14.3-32 32v384c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V496c0-17.7-14.3-32-32-32zM332 240c0-30.9 25.1-56 56-56h248c30.9 0 56 25.1 56 56v224H332V240zm460 600H232V536h560v304zM484 701v53c0 4.4 3.6 8 8 8h40c4.4 0 8-3.6 8-8v-53a48.01 48.01 0 1 0-56 0z",fill:"currentColor"},null,-1)]))}});export{s as L};

View File

@@ -1 +1 @@
import{d as c,Y as a,Z as n,_ as o}from"./main-1hvBaRBq.js";const r={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},t=c({name:"LogoGithub",render:function(c,t){return n(),a("svg",r,t[0]||(t[0]=[o("path",{d:"M256 32C132.3 32 32 134.9 32 261.7c0 101.5 64.2 187.5 153.2 217.9a17.56 17.56 0 0 0 3.8.4c8.3 0 11.5-6.1 11.5-11.4c0-5.5-.2-19.9-.3-39.1a102.4 102.4 0 0 1-22.6 2.7c-43.1 0-52.9-33.5-52.9-33.5c-10.2-26.5-24.9-33.6-24.9-33.6c-19.5-13.7-.1-14.1 1.4-14.1h.1c22.5 2 34.3 23.8 34.3 23.8c11.2 19.6 26.2 25.1 39.6 25.1a63 63 0 0 0 25.6-6c2-14.8 7.8-24.9 14.2-30.7c-49.7-5.8-102-25.5-102-113.5c0-25.1 8.7-45.6 23-61.6c-2.3-5.8-10-29.2 2.2-60.8a18.64 18.64 0 0 1 5-.5c8.1 0 26.4 3.1 56.6 24.1a208.21 208.21 0 0 1 112.2 0c30.2-21 48.5-24.1 56.6-24.1a18.64 18.64 0 0 1 5 .5c12.2 31.6 4.5 55 2.2 60.8c14.3 16.1 23 36.6 23 61.6c0 88.2-52.4 107.6-102.3 113.3c8 7.1 15.2 21.1 15.2 42.5c0 30.7-.3 55.5-.3 63c0 5.4 3.1 11.5 11.4 11.5a19.35 19.35 0 0 0 4-.4C415.9 449.2 480 363.1 480 261.7C480 134.9 379.7 32 256 32z",fill:"currentColor"},null,-1)]))}});export{t as L};
import{d as c,Y as a,Z as n,_ as o}from"./main-thcxfg9X.js";const r={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},t=c({name:"LogoGithub",render:function(c,t){return n(),a("svg",r,t[0]||(t[0]=[o("path",{d:"M256 32C132.3 32 32 134.9 32 261.7c0 101.5 64.2 187.5 153.2 217.9a17.56 17.56 0 0 0 3.8.4c8.3 0 11.5-6.1 11.5-11.4c0-5.5-.2-19.9-.3-39.1a102.4 102.4 0 0 1-22.6 2.7c-43.1 0-52.9-33.5-52.9-33.5c-10.2-26.5-24.9-33.6-24.9-33.6c-19.5-13.7-.1-14.1 1.4-14.1h.1c22.5 2 34.3 23.8 34.3 23.8c11.2 19.6 26.2 25.1 39.6 25.1a63 63 0 0 0 25.6-6c2-14.8 7.8-24.9 14.2-30.7c-49.7-5.8-102-25.5-102-113.5c0-25.1 8.7-45.6 23-61.6c-2.3-5.8-10-29.2 2.2-60.8a18.64 18.64 0 0 1 5-.5c8.1 0 26.4 3.1 56.6 24.1a208.21 208.21 0 0 1 112.2 0c30.2-21 48.5-24.1 56.6-24.1a18.64 18.64 0 0 1 5 .5c12.2 31.6 4.5 55 2.2 60.8c14.3 16.1 23 36.6 23 61.6c0 88.2-52.4 107.6-102.3 113.3c8 7.1 15.2 21.1 15.2 42.5c0 30.7-.3 55.5-.3 63c0 5.4 3.1 11.5 11.4 11.5a19.35 19.35 0 0 0 4-.4C415.9 449.2 480 363.1 480 261.7C480 134.9 379.7 32 256 32z",fill:"currentColor"},null,-1)]))}});export{t as L};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{c}from"./index-BsOnqgcH.js";const s=s=>c("/v1/access/get_list",s),a=s=>c("/v1/access/add_access",s),e=s=>c("/v1/access/upd_access",s),t=s=>c("/v1/access/del_access",s),_=s=>c("/v1/access/get_all",s),v=s=>c("/v1/acme_account/get_list",s),o=s=>c("/v1/acme_account/add_account",s),u=s=>c("/v1/acme_account/upd_account",s),d=s=>c("/v1/acme_account/del_account",s),n=s=>c("/v1/access/test_access",s),g=s=>c("/v1/access/get_sites",s),i=()=>c("/v1/access/get_plugins");export{a,i as b,v as c,t as d,o as e,u as f,s as g,d as h,g as i,_ as j,n as t,e as u};

View File

@@ -1 +0,0 @@
import{c as s}from"./index-Dqr-yrfj.js";const c=c=>s("/v1/access/get_list",c),a=c=>s("/v1/access/add_access",c),e=c=>s("/v1/access/upd_access",c),t=c=>s("/v1/access/del_access",c),_=c=>s("/v1/access/get_all",c),v=c=>s("/v1/acme_account/get_list",c),o=c=>s("/v1/acme_account/add_account",c),u=c=>s("/v1/acme_account/upd_account",c),d=c=>s("/v1/acme_account/del_account",c),n=c=>s("/v1/access/get_all_eab",c),l=c=>s("/v1/access/test_access",c),g=c=>s("/v1/access/get_sites",c),i=()=>s("/v1/access/get_plugins");export{a,i as b,v as c,t as d,o as e,u as f,c as g,d as h,n as i,g as j,_ as k,l as t,e as u};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{c as t}from"./index-Dqr-yrfj.js";const e=e=>t("/v1/cert/get_list",e),r=e=>t("/v1/cert/upload_cert",e),c=e=>t("/v1/cert/del_cert",e);export{c as d,e as g,r as u};
import{c as t}from"./index-BsOnqgcH.js";const e=e=>t("/v1/cert/get_list",e),r=e=>t("/v1/cert/upload_cert",e),c=e=>t("/v1/cert/del_cert",e);export{c as d,e as g,r as u};

View File

@@ -1 +0,0 @@
import{$ as e}from"./main-1hvBaRBq.js";const t={mail:{name:e("t_68_1745289354676"),type:"mail"},workwx:{name:e("t_33_1746773350932"),type:"workwx"},dingtalk:{name:e("t_32_1746773348993"),type:"dingtalk"},feishu:{name:e("t_34_1746773350153"),type:"feishu"},webhook:{name:"WebHook",type:"webhook"}},n={zerossl:{name:"ZeroSSL",type:"zerossl"},google:{name:"Google",type:"google"},sslcom:{name:"SSL.COM",type:"sslcom"},buypass:{name:"Buypass",type:"buypass"},letsencrypt:{name:"Let's Encrypt",type:"letsencrypt"},custom:{name:"自定义",type:"custom"}},o={localhost:{name:e("t_4_1744958838951"),icon:"ssh",type:["host"],notApi:!1,hostRelated:{default:{name:e("t_4_1744958838951")}},sort:1},ssh:{name:"SSH",icon:"ssh",type:["host"],hostRelated:{default:{name:"SSH"}},sort:2},btpanel:{name:e("t_10_1745735765165"),icon:"btpanel",hostRelated:{default:{name:e("t_10_1745735765165")},site:{name:e("t_1_1747886307276")},dockersite:{name:e("t_0_1747994891459")},singlesite:{name:e("t_1_1747886307276")+"\r\nWin/Linux 9.4前)"}},type:["host"],sort:3},btwaf:{name:e("t_3_1747886302848"),icon:"btwaf",hostRelated:{site:{name:e("t_4_1747886303229")}},type:["host"],sort:4},"1panel":{name:"1Panel",icon:"1panel",hostRelated:{default:{name:"1Panel"},site:{name:e("t_2_1747886302053")}},type:["host"],sort:5},aliyun:{name:e("t_2_1747019616224"),icon:"aliyun",type:["host","dns"],hostRelated:{cdn:{name:e("t_16_1745735766712")},oss:{name:e("t_2_1746697487164")},waf:{name:e("t_10_1744958860078")}},sort:6},tencentcloud:{name:e("t_3_1747019616129"),icon:"tencentcloud",type:["host","dns"],hostRelated:{cdn:{name:e("t_14_1745735766121")},cos:{name:e("t_15_1745735768976")},waf:{name:e("t_9_1744958840634")},teo:{name:e("t_5_1747886301427")}},sort:7},huaweicloud:{name:e("t_9_1747886301128"),icon:"huaweicloud",type:["host","dns"],hostRelated:{cdn:{name:e("t_9_1747886301128")+"CDN"}},sort:10},baidu:{name:e("t_10_1747886300958"),icon:"baidu",type:["host","dns"],hostRelated:{cdn:{name:"百度云CDN"}},sort:11},volcengine:{name:e("t_13_1747886301689"),icon:"volcengine",type:["host","dns"],hostRelated:{cdn:{name:e("t_13_1747886301689")+"CDN"},dcdn:{name:e("t_13_1747886301689")+"DCDN"}},sort:13},safeline:{name:e("t_11_1747886301986"),icon:"safeline",type:["host"],hostRelated:{panel:{name:e("t_1_1747298114192")},site:{name:e("t_12_1747886302725")}},sort:8},qiniu:{name:e("t_6_1747886301844"),icon:"qiniu",type:["host"],hostRelated:{cdn:{name:e("t_7_1747886302395")},oss:{name:e("t_8_1747886304014")}},sort:9},cloudflare:{name:"Cloudflare",icon:"cloudflare",type:["dns"],sort:12},westcn:{name:e("t_14_1747886301884"),icon:"westcn",type:["dns"],sort:14},godaddy:{name:"GoDaddy",icon:"godaddy",type:["dns"],sort:15},namecheap:{name:"Namecheap",icon:"namecheap",type:["dns"],sort:16},ns1:{name:"NS1",icon:"ns1",type:["dns"],sort:17},cloudns:{name:"ClouDNS",icon:"cloudns",type:["dns"],sort:18},aws:{name:"AWS",icon:"aws",type:["dns"],sort:19},azure:{name:"Azure",icon:"azure",type:["dns"],sort:20},namesilo:{name:"Namesilo",icon:"namesilo",type:["dns"],sort:21},namedotcom:{name:"Name.com",icon:"namedotcom",type:["dns"],sort:22},bunny:{name:"Bunny",icon:"bunny",type:["dns"],sort:23},gcore:{name:"Gcore",icon:"gcore",type:["dns"],sort:24},jdcloud:{name:"京东云",icon:"jdcloud",type:["dns"],sort:25},doge:{name:e("t_0_1750129254226"),icon:"doge",type:["host"],hostRelated:{cdn:{name:e("t_0_1750129254226")+"CDN"}},sort:26},plugin:{name:"插件",icon:"plugin",type:["host"],hostRelated:{default:{name:"插件"}},sort:27}};export{o as A,n as C,t as M};

View File

@@ -0,0 +1 @@
import{$ as e}from"./main-thcxfg9X.js";const t={mail:{name:e("t_68_1745289354676"),type:"mail"},workwx:{name:e("t_33_1746773350932"),type:"workwx"},dingtalk:{name:e("t_32_1746773348993"),type:"dingtalk"},feishu:{name:e("t_34_1746773350153"),type:"feishu"},webhook:{name:"WebHook",type:"webhook"}},n={zerossl:{name:"ZeroSSL",type:"zerossl"},google:{name:"Google",type:"google"},sslcom:{name:"SSL.COM",type:"sslcom"},buypass:{name:"Buypass",type:"buypass"},letsencrypt:{name:"Let's Encrypt",type:"letsencrypt"},custom:{name:"自定义",type:"custom"}},o={localhost:{name:e("t_4_1744958838951"),icon:"ssh",type:["host"],notApi:!1,hostRelated:{default:{name:e("t_4_1744958838951")}},sort:1},ssh:{name:"SSH",icon:"ssh",type:["host"],hostRelated:{default:{name:"SSH"}},sort:2},btpanel:{name:e("t_10_1745735765165"),icon:"btpanel",hostRelated:{default:{name:e("t_10_1745735765165")},site:{name:e("t_1_1747886307276")},dockersite:{name:e("t_0_1747994891459")},singlesite:{name:e("t_1_1747886307276")+"\r\nWin/Linux 9.4前)"}},type:["host"],sort:3},btwaf:{name:e("t_3_1747886302848"),icon:"btwaf",hostRelated:{site:{name:e("t_4_1747886303229")}},type:["host"],sort:4},"1panel":{name:"1Panel",icon:"1panel",hostRelated:{default:{name:"1Panel"},site:{name:e("t_2_1747886302053")}},type:["host"],sort:5},aliyun:{name:e("t_2_1747019616224"),icon:"aliyun",type:["host","dns"],hostRelated:{cdn:{name:e("t_16_1745735766712")},oss:{name:e("t_2_1746697487164")},waf:{name:e("t_10_1744958860078")},esa:{name:"阿里云ESA"}},sort:6},tencentcloud:{name:e("t_3_1747019616129"),icon:"tencentcloud",type:["host","dns"],hostRelated:{cdn:{name:e("t_14_1745735766121")},cos:{name:e("t_15_1745735768976")},waf:{name:e("t_9_1744958840634")},teo:{name:e("t_5_1747886301427")}},sort:7},huaweicloud:{name:e("t_9_1747886301128"),icon:"huaweicloud",type:["host","dns"],hostRelated:{cdn:{name:e("t_9_1747886301128")+"CDN"}},sort:10},baidu:{name:e("t_10_1747886300958"),icon:"baidu",type:["host","dns"],hostRelated:{cdn:{name:"百度云CDN"}},sort:11},volcengine:{name:e("t_13_1747886301689"),icon:"volcengine",type:["host","dns"],hostRelated:{cdn:{name:e("t_13_1747886301689")+"CDN"},dcdn:{name:e("t_13_1747886301689")+"DCDN"}},sort:13},safeline:{name:e("t_11_1747886301986"),icon:"safeline",type:["host"],hostRelated:{panel:{name:e("t_1_1747298114192")},site:{name:e("t_12_1747886302725")}},sort:8},qiniu:{name:e("t_6_1747886301844"),icon:"qiniu",type:["host"],hostRelated:{cdn:{name:e("t_7_1747886302395")},oss:{name:e("t_8_1747886304014")}},sort:9},cloudflare:{name:"Cloudflare",icon:"cloudflare",type:["dns"],sort:12},westcn:{name:e("t_14_1747886301884"),icon:"westcn",type:["dns"],sort:14},godaddy:{name:"GoDaddy",icon:"godaddy",type:["dns"],sort:15},namecheap:{name:"Namecheap",icon:"namecheap",type:["dns"],sort:16},ns1:{name:"NS1",icon:"ns1",type:["dns"],sort:17},cloudns:{name:"ClouDNS",icon:"cloudns",type:["dns"],sort:18},aws:{name:"AWS",icon:"aws",type:["dns"],sort:19},azure:{name:"Azure",icon:"azure",type:["dns"],sort:20},namesilo:{name:"Namesilo",icon:"namesilo",type:["dns"],sort:21},namedotcom:{name:"Name.com",icon:"namedotcom",type:["dns"],sort:22},bunny:{name:"Bunny",icon:"bunny",type:["dns"],sort:23},gcore:{name:"Gcore",icon:"gcore",type:["dns"],sort:24},jdcloud:{name:"京东云",icon:"jdcloud",type:["dns"],sort:25},doge:{name:e("t_0_1750129254226"),icon:"doge",type:["host"],hostRelated:{cdn:{name:e("t_0_1750129254226")+"CDN"}},sort:26},plugin:{name:"插件",icon:"plugin",type:["host"],hostRelated:{default:{name:"插件"}},sort:27}};export{o as A,n as C,t as M};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
var t;import{S as e}from"./index-CQqPnXBD.js";import{A as o,M as a}from"./data-Di-Orkvg.js";import{k as n,d as s,c as i,N as l}from"./main-thcxfg9X.js";const r={},p={},c=new Set;for(const d in o)if(Object.prototype.hasOwnProperty.call(o,d)){const e=o[d];if(r[d]=e.name,p[d]=e.icon,null==e?void 0:e.hostRelated)for(const o in e.hostRelated)if(Object.prototype.hasOwnProperty.call(e.hostRelated,o)){const a=e.hostRelated[o],n=`${d}-${o}`;n&&(r[n]=(null==(t=null==a?void 0:a.name)?void 0:t.toString())??"",p[n]=e.icon)}}for(const d in a)if(Object.prototype.hasOwnProperty.call(a,d)){const t=a[d];r[d]=t.name,p[d]=t.type,c.add(d)}o.btwaf&&(p.btwaf="btpanel");const u=s({name:"AuthApiTypeIcon",props:{icon:{type:String,required:!0},type:{type:String,default:"default"},text:{type:Boolean,default:!0}},setup(t){const{iconPath:o,typeName:a}=function(t){return{iconPath:n((()=>(c.has(t.icon)?"notify-":"resources-")+(p[t.icon]||"default"))),typeName:n((()=>r[t.icon]||t.icon))}}(t);return()=>i(l,{type:t.type,size:"small",class:"w-auto text-ellipsis overflow-hidden whitespace-normal p-[.6rem] h-auto"},{default:()=>[i(e,{icon:o.value,size:"1.2rem",class:"mr-[0.4rem]"},null),i("span",null,[t.text&&i("span",{class:"text-[12px]"},[a.value])])]})}});export{u as T};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{d as e,Y as a,Z as l,_ as t,aJ as s,r,k as n,x as i,aK as o,aL as c,c as u,a3 as d,q as m,aa as p,$ as h,b as v,B as x}from"./main-thcxfg9X.js";const f={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 512 512"},y=e({name:"Search",render:function(e,s){return l(),a("svg",f,s[0]||(s[0]=[t("path",{d:"M456.69 421.39L362.6 327.3a173.81 173.81 0 0 0 34.84-104.58C397.44 126.38 319.06 48 222.72 48S48 126.38 48 222.72s78.38 174.72 174.72 174.72A173.81 173.81 0 0 0 327.3 362.6l94.09 94.09a25 25 0 0 0 35.3-35.3zM97.92 222.72a124.8 124.8 0 1 1 124.8 124.8a124.95 124.95 0 0 1-124.8-124.8z",fill:"currentColor"},null,-1)]))}});function b(e={}){const{onSearch:a,value:l="",placeholder:t="请输入搜索内容",clearDelay:p=100,size:h="large",clearable:v=!0,className:x="min-w-[300px]",disabled:f=!1,trim:b=!0,immediate:g=!1,debounceDelay:w=300}=e,k=s(l)?l:r(l),_=n((()=>(b?k.value.trim():k.value).length>0)),C=(e=!1)=>{if(a){const l=b?k.value.trim():k.value;a(l,e)}},S=o((()=>{C()}),w);g&&a&&i(k,(()=>{S()}));const z=e=>{"Enter"===e.key&&C()},B=()=>{k.value="",c((()=>{C(!0)}),p)},q=()=>{C(!0)};return{value:k,hasSearchValue:_,handleKeydown:z,handleClear:B,handleSearchClick:q,search:C,debouncedSearch:S,clear:()=>{k.value=""},setValue:e=>{k.value=e},SearchComponent:(e={})=>{const a={value:k.value,"onUpdate:value":e=>{k.value=e},onKeydown:z,onClear:B,placeholder:t,clearable:v,size:h,disabled:f,class:x,...e};return u(m,a,{suffix:()=>u("div",{class:"flex items-center cursor-pointer",onClick:q},[u(d,{component:y,class:"text-[var(--text-color-3)] w-[1.6rem] font-bold"},null)])})}}}const g=e({name:"TableEmptyState",props:{addButtonText:{type:String,required:!0},onAddClick:{type:Function,required:!0}},setup:e=>()=>u("div",{class:"flex justify-center items-center h-full"},[u(p,{class:"px-[4rem]"},{default:()=>[h("t_1_1747754231838"),u(x,{text:!0,type:"primary",size:"small",onClick:e.onAddClick},{default:()=>[e.addButtonText]}),v(""),h("t_2_1747754234999"),u(x,{text:!0,tag:"a",target:"_blank",type:"primary",href:"https://github.com/allinssl/allinssl/issues"},{default:()=>[v("Issues")]}),v(""),h("t_3_1747754232000"),u(x,{text:!0,tag:"a",target:"_blank",type:"primary",href:"https://github.com/allinssl/allinssl"},{default:()=>[v("Star")]}),v(""),h("t_4_1747754235407")]})])});export{g as E,b as u};

View File

@@ -0,0 +1 @@
import{bS as e,bX as t,aJ as n,bV as a,bU as i,A as o,x as r,bY as s,aF as u,bT as c,o as l,V as f,J as m,r as p,bZ as v}from"./main-thcxfg9X.js";function b(e){return!!s()&&(u(e),!0)}const d=new WeakMap,w=(...e)=>{var t;const n=e[0],r=null==(t=a())?void 0:t.proxy;if(null==r&&!i())throw new Error("injectLocal must be called in setup");return r&&d.has(r)&&n in d.get(r)?d.get(r)[n]:o(...e)},g="undefined"!=typeof window&&"undefined"!=typeof document;"undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope);const h=Object.prototype.toString,y=e=>"[object Object]"===h.call(e),F=()=>{};function j(e,t){return function(...n){return new Promise(((a,i)=>{Promise.resolve(e((()=>t.apply(this,n)),{fn:t,thisArg:this,args:n})).then(a).catch(i)}))}}const A=e=>e();function S(e=A,n={}){const{initialState:a="active"}=n,i=function(...e){if(1!==e.length)return m(...e);const n=e[0];return"function"==typeof n?t(v((()=>({get:n,set:F})))):p(n)}("active"===a);return{isActive:t(i),pause:function(){i.value=!1},resume:function(){i.value=!0},eventFilter:(...t)=>{i.value&&e(...t)}}}function T(e){return e.endsWith("rem")?16*Number.parseFloat(e):Number.parseFloat(e)}function k(e){return Array.isArray(e)?e:[e]}function x(e,t=200,a=!1,i=!0,o=!1){return j(function(...e){let t,a,i,o,r,s,u=0,l=!0,f=F;n(e[0])||"object"!=typeof e[0]?[i,o=!0,r=!0,s=!1]=e:({delay:i,trailing:o=!0,leading:r=!0,rejectOnCancel:s=!1}=e[0]);const m=()=>{t&&(clearTimeout(t),t=void 0,f(),f=F)};return e=>{const n=c(i),p=Date.now()-u,v=()=>a=e();return m(),n<=0?(u=Date.now(),v()):(p>n&&(r||!l)?(u=Date.now(),v()):o&&(a=new Promise(((e,a)=>{f=s?a:e,t=setTimeout((()=>{u=Date.now(),l=!0,e(v()),m()}),Math.max(0,n-p))}))),r||t||(t=setTimeout((()=>l=!0),n)),l=!1,a)}}(t,a,i,o),e)}function D(e,t,n={}){const{eventFilter:a,initialState:i="active",...o}=n,{eventFilter:s,pause:u,resume:c,isActive:l}=S(a,{initialState:i}),f=function(e,t,n={}){const{eventFilter:a=A,...i}=n;return r(e,j(a,t),i)}(e,t,{...o,eventFilter:s});return{stop:f,pause:u,resume:c,isActive:l}}function P(e,t=!0,n){a()?l(e,n):t?e():f(e)}function W(n,a,i={}){const{immediate:o=!0,immediateCallback:r=!1}=i,s=e(!1);let u=null;function l(){u&&(clearTimeout(u),u=null)}function f(){s.value=!1,l()}function m(...e){r&&n(),l(),s.value=!0,u=setTimeout((()=>{s.value=!1,u=null,n(...e)}),c(a))}return o&&(s.value=!0,g&&m()),b(f),{isPending:t(s),start:m,stop:f}}function O(e,t,n){return r(e,t,{...n,immediate:!0})}export{W as a,g as b,b as c,y as d,D as e,P as f,w as i,T as p,k as t,x as u,O as w};

View File

@@ -1 +1 @@
import{p as e,i as t,b as n,t as a,w as r,c as o,d as l,e as s,f as i}from"./index-DH4HpLFQ.js";import{bO as u,aw as f,bP as c,k as d,bQ as v,o as g,bR as p,bS as w,r as m,x as y,V as h}from"./main-1hvBaRBq.js";const b=n?window:void 0;function S(...e){const t=[],n=()=>{t.forEach((e=>e())),t.length=0},s=d((()=>{const t=a(c(e[0])).filter((e=>null!=e));return t.every((e=>"string"!=typeof e))?t:void 0})),i=r((()=>{var t,n;return[null!=(n=null==(t=s.value)?void 0:t.map((e=>function(e){var t;const n=c(e);return null!=(t=null==n?void 0:n.$el)?t:n}(e))))?n:[b].filter((e=>null!=e)),a(c(s.value?e[1]:e[0])),a(w(s.value?e[2]:e[1])),c(s.value?e[3]:e[2])]}),(([e,a,r,o])=>{if(n(),!(null==e?void 0:e.length)||!(null==a?void 0:a.length)||!(null==r?void 0:r.length))return;const s=l(o)?{...o}:o;t.push(...e.flatMap((e=>a.flatMap((t=>r.map((n=>((e,t,n,a)=>(e.addEventListener(t,n,a),()=>e.removeEventListener(t,n,a)))(e,t,n,s))))))))}),{flush:"post"});return o(n),()=>{i(),n()}}function N(e){const t=function(){const e=u(!1),t=p();return t&&g((()=>{e.value=!0}),t),e}();return d((()=>(t.value,Boolean(e()))))}const O=Symbol("vueuse-ssr-width");function M(){const e=v()?t(O,null):null;return"number"==typeof e?e:void 0}function E(t,n={}){const{window:a=b,ssrWidth:r=M()}=n,o=N((()=>a&&"matchMedia"in a&&"function"==typeof a.matchMedia)),l=u("number"==typeof r),s=u(),i=u(!1);return f((()=>{if(l.value){l.value=!o.value;const n=c(t).split(",");i.value=n.some((t=>{const n=t.includes("not all"),a=t.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),o=t.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let l=Boolean(a||o);return a&&l&&(l=r>=e(a[1])),o&&l&&(l=r<=e(o[1])),n?!l:l}))}else o.value&&(s.value=a.matchMedia(c(t)),i.value=s.value.matches)})),S(s,"change",(e=>{i.value=e.matches}),{passive:!0}),d((()=>i.value))}const j="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},A="__vueuse_ssr_handlers__",I=J();function J(){return A in j||(j[A]=j[A]||{}),j[A]}const _={boolean:{read:e=>"true"===e,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},x="vueuse-storage";function D(e,t,n,a={}){var r;const{flush:o="pre",deep:l=!0,listenToStorageChanges:f=!0,writeDefaults:v=!0,mergeDefaults:g=!1,shallow:p,window:w=b,eventFilter:N,onError:O=e=>{},initOnMounted:M}=a,E=(p?u:m)("function"==typeof t?t():t),j=d((()=>c(e)));if(!n)try{n=function(e,t){return I[e]||t}("getDefaultStorage",(()=>{var e;return null==(e=b)?void 0:e.localStorage}))()}catch(B){O(B)}if(!n)return E;const A=c(t),J=function(e){return null==e?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":"boolean"==typeof e?"boolean":"string"==typeof e?"string":"object"==typeof e?"object":Number.isNaN(e)?"any":"number"}(A),D=null!=(r=a.serializer)?r:_[J],{pause:V,resume:k}=s(E,(()=>function(e){try{const t=n.getItem(j.value);if(null==e)z(t,null),n.removeItem(j.value);else{const a=D.write(e);t!==a&&(n.setItem(j.value,a),z(t,a))}}catch(B){O(B)}}(E.value)),{flush:o,deep:l,eventFilter:N});function z(e,t){if(w){const a={key:j.value,oldValue:e,newValue:t,storageArea:n};w.dispatchEvent(n instanceof Storage?new StorageEvent("storage",a):new CustomEvent(x,{detail:a}))}}function F(e){if(!e||e.storageArea===n)if(e&&null==e.key)E.value=A;else if(!e||e.key===j.value){V();try{(null==e?void 0:e.newValue)!==D.write(E.value)&&(E.value=function(e){const t=e?e.newValue:n.getItem(j.value);if(null==t)return v&&null!=A&&n.setItem(j.value,D.write(A)),A;if(!e&&g){const e=D.read(t);return"function"==typeof g?g(e,A):"object"!==J||Array.isArray(e)?e:{...A,...e}}return"string"!=typeof t?t:D.read(t)}(e))}catch(B){O(B)}finally{e?h(k):k()}}}function T(e){F(e.detail)}return y(j,(()=>F()),{flush:o}),w&&f&&i((()=>{n instanceof Storage?S(w,"storage",F,{passive:!0}):S(w,x,T),M&&F()})),M||F(),E}function V(e,t,n={}){const{window:a=b}=n;return D(e,t,null==a?void 0:a.localStorage,n)}function k(e,t,n={}){const{window:a=b}=n;return D(e,t,null==a?void 0:a.sessionStorage,n)}export{V as a,k as b,E as u};
import{p as e,i as t,b as n,t as a,w as r,c as o,d as l,e as s,f as i}from"./index-BTvqzqFK.js";import{bS as u,av as f,bT as c,k as d,bU as v,o as g,bV as p,bW as w,r as m,x as y,V as h}from"./main-thcxfg9X.js";const b=n?window:void 0;function S(...e){const t=[],n=()=>{t.forEach((e=>e())),t.length=0},s=d((()=>{const t=a(c(e[0])).filter((e=>null!=e));return t.every((e=>"string"!=typeof e))?t:void 0})),i=r((()=>{var t,n;return[null!=(n=null==(t=s.value)?void 0:t.map((e=>function(e){var t;const n=c(e);return null!=(t=null==n?void 0:n.$el)?t:n}(e))))?n:[b].filter((e=>null!=e)),a(c(s.value?e[1]:e[0])),a(w(s.value?e[2]:e[1])),c(s.value?e[3]:e[2])]}),(([e,a,r,o])=>{if(n(),!(null==e?void 0:e.length)||!(null==a?void 0:a.length)||!(null==r?void 0:r.length))return;const s=l(o)?{...o}:o;t.push(...e.flatMap((e=>a.flatMap((t=>r.map((n=>((e,t,n,a)=>(e.addEventListener(t,n,a),()=>e.removeEventListener(t,n,a)))(e,t,n,s))))))))}),{flush:"post"});return o(n),()=>{i(),n()}}function N(e){const t=function(){const e=u(!1),t=p();return t&&g((()=>{e.value=!0}),t),e}();return d((()=>(t.value,Boolean(e()))))}const M=Symbol("vueuse-ssr-width");function O(){const e=v()?t(M,null):null;return"number"==typeof e?e:void 0}function A(t,n={}){const{window:a=b,ssrWidth:r=O()}=n,o=N((()=>a&&"matchMedia"in a&&"function"==typeof a.matchMedia)),l=u("number"==typeof r),s=u(),i=u(!1);return f((()=>{if(l.value){l.value=!o.value;const n=c(t).split(",");i.value=n.some((t=>{const n=t.includes("not all"),a=t.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),o=t.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);let l=Boolean(a||o);return a&&l&&(l=r>=e(a[1])),o&&l&&(l=r<=e(o[1])),n?!l:l}))}else o.value&&(s.value=a.matchMedia(c(t)),i.value=s.value.matches)})),S(s,"change",(e=>{i.value=e.matches}),{passive:!0}),d((()=>i.value))}const E="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},j="__vueuse_ssr_handlers__",I=J();function J(){return j in E||(E[j]=E[j]||{}),E[j]}const V={boolean:{read:e=>"true"===e,write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},_="vueuse-storage";function D(e,t,n,a={}){var r;const{flush:o="pre",deep:l=!0,listenToStorageChanges:f=!0,writeDefaults:v=!0,mergeDefaults:g=!1,shallow:p,window:w=b,eventFilter:N,onError:M=e=>{},initOnMounted:O}=a,A=(p?u:m)("function"==typeof t?t():t),E=d((()=>c(e)));if(!n)try{n=function(e,t){return I[e]||t}("getDefaultStorage",(()=>{var e;return null==(e=b)?void 0:e.localStorage}))()}catch(B){M(B)}if(!n)return A;const j=c(t),J=function(e){return null==e?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":"boolean"==typeof e?"boolean":"string"==typeof e?"string":"object"==typeof e?"object":Number.isNaN(e)?"any":"number"}(j),D=null!=(r=a.serializer)?r:V[J],{pause:k,resume:x}=s(A,(()=>function(e){try{const t=n.getItem(E.value);if(null==e)T(t,null),n.removeItem(E.value);else{const a=D.write(e);t!==a&&(n.setItem(E.value,a),T(t,a))}}catch(B){M(B)}}(A.value)),{flush:o,deep:l,eventFilter:N});function T(e,t){if(w){const a={key:E.value,oldValue:e,newValue:t,storageArea:n};w.dispatchEvent(n instanceof Storage?new StorageEvent("storage",a):new CustomEvent(_,{detail:a}))}}function z(e){if(!e||e.storageArea===n)if(e&&null==e.key)A.value=j;else if(!e||e.key===E.value){k();try{(null==e?void 0:e.newValue)!==D.write(A.value)&&(A.value=function(e){const t=e?e.newValue:n.getItem(E.value);if(null==t)return v&&null!=j&&n.setItem(E.value,D.write(j)),j;if(!e&&g){const e=D.read(t);return"function"==typeof g?g(e,j):"object"!==J||Array.isArray(e)?e:{...j,...e}}return"string"!=typeof t?t:D.read(t)}(e))}catch(B){M(B)}finally{e?h(x):x()}}}function F(e){z(e.detail)}return y(E,(()=>z()),{flush:o}),w&&f&&i((()=>{n instanceof Storage?S(w,"storage",z,{passive:!0}):S(w,_,F),O&&z()})),O||z(),A}function k(e,t,n={}){const{window:a=b}=n;return D(e,t,null==a?void 0:a.localStorage,n)}function x(e,t,n={}){const{window:a=b}=n;return D(e,t,null==a?void 0:a.sessionStorage,n)}export{k as a,x as b,A as u};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{S as e}from"./index-DwpZTRQL.js";import{r as t,k as l,x as a,d as u,c as i,w as n,t as o,$ as s,m as r,b0 as d,bA as p,B as v,i as f}from"./main-1hvBaRBq.js";import{u as c}from"./useStore-k5jc-4LK.js";import{M as y}from"./data-BwFlQLCu.js";import{N as m,a as b}from"./business-D-vb9IBC.js";function h(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!f(e)}const g=u({name:"NotifyProviderSelect",props:{path:{type:String,default:""},value:{type:String,default:""},valueType:{type:String,default:"value",validator:e=>["value","type"].includes(e)},isAddMode:{type:Boolean,default:!1}},emits:{"update:value":e=>"object"==typeof e&&null!==e&&"label"in e&&"value"in e&&"type"in e},setup(u,{emit:f}){const{selectOptions:g,goToAddNotifyProvider:_,handleSelectUpdate:j,fetchNotifyProviderData:x}=function(e,u){const{fetchNotifyProvider:i,notifyProvider:n}=c(),o=t({label:"",value:"",type:""}),s=t([]),r=l((()=>Object.entries(y).map((([t,l])=>({label:l.name,value:"value"===e.valueType?t:l.type,type:l.type}))))),d=e=>{if(!e)return void(o.value={label:"",value:"",type:""});const t=s.value.find((t=>t.value===e));if(t)return void(o.value={...t});const l=r.value.find((t=>t.value===e));o.value=l?{...l}:{label:e,value:e,type:""}},p=()=>{i()};return a((()=>e.value),(e=>{0===s.value.length&&e&&p(),d(e)}),{immediate:!0}),a((()=>n.value),(t=>{t&&t.length>0?s.value=t.map((t=>({label:t.label,value:"value"===e.valueType?t.value:t.type,type:t.type}))):s.value=r.value,d(e.value)}),{immediate:!0,deep:!0}),n.value&&0!==n.value.length||(s.value=r.value,p()),{selectedOptionFull:o,selectOptions:s,goToAddNotifyProvider:()=>{window.open("/settings?tab=notification","_blank")},handleSelectUpdate:e=>{d(e),u("update:value",{...o.value})},fetchNotifyProviderData:p}}(u,f),S=({option:t})=>{let l;const a=t;return i("div",{class:"flex items-center"},[a.label?i(b,{align:"center",size:"small"},{default:()=>[i(e,{icon:`notify-${a.type||""}`,size:"1.6rem"},null),i(m,null,{default:()=>[a.label]})]}):i(m,{depth:"3"},h(l=s("t_0_1745887835267"))?l:{default:()=>[l]})])},N=t=>{const l=t;return i(b,{align:"center",size:"small"},{default:()=>[i(e,{icon:`notify-${l.type||""}`,size:"1.6rem"},null),i(m,null,{default:()=>[l.label]})]})},P=l((()=>g.value.map((e=>({...e})))));return()=>{let e,t;return i(n,{cols:24},{default:()=>[i(o,{span:u.isAddMode?13:24,label:s("t_1_1745887832941"),path:u.path},{default:()=>[i(r,{class:"flex-1 w-full",options:P.value,renderLabel:N,renderTag:S,filterable:!0,clearable:!0,placeholder:s("t_0_1745887835267"),value:u.value,onUpdateValue:j},{empty:()=>i("div",{class:"text-center py-4"},[i(m,{depth:"3",class:"text-[1.4rem]"},{default:()=>[0===g.value.length?s("t_0_1745887835267"):"暂无匹配的通知渠道"]})])})]}),u.isAddMode&&i(d,{span:11},{default:()=>[i("div",{class:"flex items-center h-full"},[i(p,{vertical:!0},null),i(v,{class:"mx-[8px]",onClick:_,ghost:!0},h(e=s("t_2_1745887834248"))?e:{default:()=>[e]}),i(v,{onClick:x,ghost:!0},h(t=s("t_0_1746497662220"))?t:{default:()=>[t]})])]})]})}}});export{g as N};
import{S as e}from"./index-CQqPnXBD.js";import{r as t,k as l,x as a,d as u,c as i,w as n,t as o,$ as s,m as r,b3 as d,bD as p,B as v,i as f}from"./main-thcxfg9X.js";import{u as c}from"./useStore-BVollqBX.js";import{M as y}from"./data-Di-Orkvg.js";import{N as m,a as b}from"./business-B3585fkI.js";function h(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!f(e)}const g=u({name:"NotifyProviderSelect",props:{path:{type:String,default:""},value:{type:String,default:""},valueType:{type:String,default:"value",validator:e=>["value","type"].includes(e)},isAddMode:{type:Boolean,default:!1}},emits:{"update:value":e=>"object"==typeof e&&null!==e&&"label"in e&&"value"in e&&"type"in e},setup(u,{emit:f}){const{selectOptions:g,goToAddNotifyProvider:_,handleSelectUpdate:j,fetchNotifyProviderData:x}=function(e,u){const{fetchNotifyProvider:i,notifyProvider:n}=c(),o=t({label:"",value:"",type:""}),s=t([]),r=l((()=>Object.entries(y).map((([t,l])=>({label:l.name,value:"value"===e.valueType?t:l.type,type:l.type}))))),d=e=>{if(!e)return void(o.value={label:"",value:"",type:""});const t=s.value.find((t=>t.value===e));if(t)return void(o.value={...t});const l=r.value.find((t=>t.value===e));o.value=l?{...l}:{label:e,value:e,type:""}},p=()=>{i()};return a((()=>e.value),(e=>{0===s.value.length&&e&&p(),d(e)}),{immediate:!0}),a((()=>n.value),(t=>{t&&t.length>0?s.value=t.map((t=>({label:t.label,value:"value"===e.valueType?t.value:t.type,type:t.type}))):s.value=r.value,d(e.value)}),{immediate:!0,deep:!0}),n.value&&0!==n.value.length||(s.value=r.value,p()),{selectedOptionFull:o,selectOptions:s,goToAddNotifyProvider:()=>{window.open("/settings?tab=notification","_blank")},handleSelectUpdate:e=>{d(e),u("update:value",{...o.value})},fetchNotifyProviderData:p}}(u,f),S=({option:t})=>{let l;const a=t;return i("div",{class:"flex items-center"},[a.label?i(b,{align:"center",size:"small"},{default:()=>[i(e,{icon:`notify-${a.type||""}`,size:"1.6rem"},null),i(m,null,{default:()=>[a.label]})]}):i(m,{depth:"3"},h(l=s("t_0_1745887835267"))?l:{default:()=>[l]})])},N=t=>{const l=t;return i(b,{align:"center",size:"small"},{default:()=>[i(e,{icon:`notify-${l.type||""}`,size:"1.6rem"},null),i(m,null,{default:()=>[l.label]})]})},P=l((()=>g.value.map((e=>({...e})))));return()=>{let e,t;return i(n,{cols:24},{default:()=>[i(o,{span:u.isAddMode?13:24,label:s("t_1_1745887832941"),path:u.path},{default:()=>[i(r,{class:"flex-1 w-full",options:P.value,renderLabel:N,renderTag:S,filterable:!0,clearable:!0,placeholder:s("t_0_1745887835267"),value:u.value,onUpdateValue:j},{empty:()=>i("div",{class:"text-center py-4"},[i(m,{depth:"3",class:"text-[1.4rem]"},{default:()=>[0===g.value.length?s("t_0_1745887835267"):"暂无匹配的通知渠道"]})])})]}),u.isAddMode&&i(d,{span:11},{default:()=>[i("div",{class:"flex items-center h-full"},[i(p,{vertical:!0},null),i(v,{class:"mx-[8px]",onClick:_,ghost:!0},h(e=s("t_2_1745887834248"))?e:{default:()=>[e]}),i(v,{onClick:x,ghost:!0},h(t=s("t_0_1746497662220"))?t:{default:()=>[t]})])]})]})}}});export{g as N};

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{u as e}from"./useStore-k5jc-4LK.js";import{u as a,N as l}from"./index-Dqr-yrfj.js";import{r as t,x as u,o as s,aE as v,$ as d,d as o,c as r,w as n,t as i,m as p,B as y,i as c}from"./main-1hvBaRBq.js";import{S as f}from"./index-DwpZTRQL.js";import{N as m,a as b}from"./business-D-vb9IBC.js";const _=o({name:"DnsProviderSelect",props:{type:{type:String,required:!0},path:{type:String,required:!0},value:{type:String,required:!0},valueType:{type:String,default:"value"},isAddMode:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},customClass:{type:String,default:""}},emits:["update:value"],setup(o,{emit:_}){const g=function(l,o){const{handleError:r}=a(),{fetchDnsProvider:n,resetDnsProvider:i,dnsProvider:p}=e(),y=t({label:"",value:"",type:"",data:{}}),c=t([]),f=t(!1),m=t(""),b=()=>{var e,a,t,u,s;const v=p.value.find((e=>("value"===l.valueType?e.value:e.type)===y.value.value));v?(y.value={label:v.label,value:"value"===l.valueType?v.value:v.type,type:"value"===l.valueType?v.type:v.value,data:v},o("update:value",{...y.value})):""===y.value.value&&p.value.length>0&&(y.value={label:(null==(e=p.value[0])?void 0:e.label)||"",value:"value"===l.valueType?(null==(a=p.value[0])?void 0:a.value)||"":(null==(t=p.value[0])?void 0:t.type)||"",type:"value"===l.valueType?(null==(u=p.value[0])?void 0:u.type)||"":(null==(s=p.value[0])?void 0:s.value)||"",data:p.value[0]||{}},o("update:value",{...y.value}))},_=e=>{y.value.value=e,b()},g=async(e=l.type)=>{f.value=!0,m.value="";try{await n(e),l.value?(y.value.value=l.value,b()):b()}catch(a){m.value="string"==typeof a?a:d("t_0_1746760933542"),r(a)}finally{f.value=!1}};return u((()=>p.value),(e=>{var a;c.value=e.map((e=>({label:e.label,value:"value"===l.valueType?e.value:e.type,type:"value"===l.valueType?e.type:e.value,data:e})))||[],c.value.some((e=>e.value===y.value.value))?b():l.value&&c.value.some((e=>e.value===l.value))?(y.value.value=l.value,b()):""===y.value.value&&c.value.length>0&&(y.value.value=(null==(a=c.value[0])?void 0:a.value)||"",b())}),{deep:!0}),u((()=>l.value),(e=>{e!==y.value.value&&_(e)}),{immediate:!0}),u((()=>l.type),(e=>{g(e)})),s((async()=>{await g(l.type)})),v((()=>{i()})),{param:y,dnsProviderRef:c,isLoading:f,errorMessage:m,goToAddDnsProvider:()=>{window.open("/auth-api-manage","_blank")},handleUpdateValue:_,loadDnsProviders:g,handleFilter:(e,a)=>a.label.toLowerCase().includes(e.toLowerCase())}}(o,_),h=e=>r(b,{align:"center"},{default:()=>[r(f,{icon:`resources-${e.type}`,size:"2rem"},null),r(m,null,{default:()=>[e.label]})]});return()=>{let e;return r(l,{show:g.isLoading.value},{default:()=>[r(n,{cols:24,class:o.customClass},{default:()=>[r(i,{span:o.isAddMode?13:24,label:"dns"===o.type?d("t_3_1745735765112"):d("t_0_1746754500246"),path:o.path},{default:()=>[r(p,{class:"flex-1 w-full",filterable:!0,options:g.dnsProviderRef.value,renderLabel:h,renderTag:({option:e})=>(({option:e})=>r("div",{class:"flex items-center"},[e.label?h(e):r(m,{class:"text-[#aaa]"},{default:()=>["dns"===o.type?d("t_0_1747019621052"):d("t_0_1746858920894")]})]))({option:e}),filter:(e,a)=>g.handleFilter(e,a),placeholder:"dns"===o.type?d("t_3_1745490735059"):d("t_0_1746858920894"),value:g.param.value.value,onUpdateValue:g.handleUpdateValue,disabled:o.disabled},{empty:()=>r("span",{class:"text-[1.4rem]"},[g.errorMessage.value||("dns"===o.type?d("t_1_1746858922914"):d("t_2_1746858923964"))])})]}),o.isAddMode&&r(i,{span:11},{default:()=>{return[r(y,{class:"mx-[8px]",onClick:g.goToAddDnsProvider,disabled:o.disabled},{default:()=>["dns"===o.type?d("t_1_1746004861166"):d("t_3_1746858920060")]}),r(y,{onClick:()=>g.loadDnsProviders(o.type),loading:g.isLoading.value,disabled:o.disabled},(a=e=d("t_0_1746497662220"),"function"==typeof a||"[object Object]"===Object.prototype.toString.call(a)&&!c(a)?e:{default:()=>[e]}))];var a}})]})]})}}});export{_ as D};

View File

@@ -1 +1 @@
import{d as e,k as i,c as r}from"./main-1hvBaRBq.js";const t=e({name:"SvgIcon",props:{icon:{type:String,required:!0},color:{type:String,default:""},size:{type:String,default:"1.8rem"}},setup(e){const t=i((()=>`#icon-${e.icon}`));return()=>r("svg",{class:"relative inline-block align-[-0.2rem]",style:{width:e.size,height:e.size},"aria-hidden":"true"},[r("use",{"xlink:href":t.value,fill:e.color},null)])}});export{t as S};
import{d as e,k as i,c as r}from"./main-thcxfg9X.js";const t=e({name:"SvgIcon",props:{icon:{type:String,required:!0},color:{type:String,default:""},size:{type:String,default:"1.8rem"}},setup(e){const t=i((()=>`#icon-${e.icon}`));return()=>r("svg",{class:"relative inline-block align-[-0.2rem]",style:{width:e.size,height:e.size},"aria-hidden":"true"},[r("use",{"xlink:href":t.value,fill:e.color},null)])}});export{t as S};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{d as e,u as t,a as o,c as r,b as s,$ as l,B as a,i as c}from"./main-1hvBaRBq.js";const m=(e=16,t)=>r("svg",{width:e,height:e,viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",fill:t},[r("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M8.6 1c1.6.1 3.1.9 4.2 2 1.3 1.4 2 3.1 2 5.1 0 1.6-.6 3.1-1.6 4.4-1 1.2-2.4 2.1-4 2.4-1.6.3-3.2.1-4.6-.7-1.4-.8-2.5-2-3.1-3.5C.9 9.2.8 7.5 1.3 6c.5-1.6 1.4-2.9 2.8-3.8C5.4 1.3 7 .9 8.6 1zm.5 12.9c1.3-.3 2.5-1 3.4-2.1.8-1.1 1.3-2.4 1.2-3.8 0-1.6-.6-3.2-1.7-4.3-1-1-2.2-1.6-3.6-1.7-1.3-.1-2.7.2-3.8 1-1.1.8-1.9 1.9-2.3 3.3-.4 1.3-.4 2.7.2 4 .6 1.3 1.5 2.3 2.7 3 1.2.7 2.6.9 3.9.6zM7.9 7.5L10.3 5l.7.7-2.4 2.5 2.4 2.5-.7.7-2.4-2.5-2.4 2.5-.7-.7 2.4-2.5-2.4-2.5.7-.7 2.4 2.5z"},null)]),n=e({setup(){const e=t(),n=o(["baseColor","textColorBase","textColorSecondary","textColorDisabled"]);return()=>{let t;return r("div",{class:"flex flex-col items-center justify-center min-h-screen p-4",style:n.value},[r("div",{class:"text-center px-4 sm:px-8 max-w-[60rem] mx-auto"},[r("div",{class:"text-[4.5rem] sm:text-[6rem] md:text-[8rem] font-bold leading-none mb-2 sm:mb-4",style:{color:"var(--n-text-color-base)",textShadow:"2px 2px 8px rgba(0,0,0,0.25)"}},[s("404")]),r("div",{class:"flex items-center justify-center mb-4 sm:mb-8"},[m(60,"var(--n-text-color-base)")]),r("div",{class:"text-[1.2rem] sm:text-[1.5rem] md:text-[1.8rem] mb-4 sm:mb-8",style:{color:"var(--n-text-color-secondary)"}},[l("t_0_1744098811152")]),r(a,{style:{backgroundColor:"var(--n-text-color-base)",color:"var(--n-base-color)",border:"none"},onClick:()=>e.push("/")},(o=t=l("t_1_1744098801860"),"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!c(o)?t:{default:()=>[t]})),r("div",{class:"mt-4 sm:mt-8 text-[1rem] sm:text-[1.1rem] md:text-[1.3rem]",style:{color:"var(--n-text-color-disabled)"}},[l("t_2_1744098804908")])])]);var o}}});export{n as default};
import{d as e,u as t,a as o,c as r,b as s,$ as l,B as a,i as c}from"./main-thcxfg9X.js";const m=(e=16,t)=>r("svg",{width:e,height:e,viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",fill:t},[r("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M8.6 1c1.6.1 3.1.9 4.2 2 1.3 1.4 2 3.1 2 5.1 0 1.6-.6 3.1-1.6 4.4-1 1.2-2.4 2.1-4 2.4-1.6.3-3.2.1-4.6-.7-1.4-.8-2.5-2-3.1-3.5C.9 9.2.8 7.5 1.3 6c.5-1.6 1.4-2.9 2.8-3.8C5.4 1.3 7 .9 8.6 1zm.5 12.9c1.3-.3 2.5-1 3.4-2.1.8-1.1 1.3-2.4 1.2-3.8 0-1.6-.6-3.2-1.7-4.3-1-1-2.2-1.6-3.6-1.7-1.3-.1-2.7.2-3.8 1-1.1.8-1.9 1.9-2.3 3.3-.4 1.3-.4 2.7.2 4 .6 1.3 1.5 2.3 2.7 3 1.2.7 2.6.9 3.9.6zM7.9 7.5L10.3 5l.7.7-2.4 2.5 2.4 2.5-.7.7-2.4-2.5-2.4 2.5-.7-.7 2.4-2.5-2.4-2.5.7-.7 2.4 2.5z"},null)]),n=e({setup(){const e=t(),n=o(["baseColor","textColorBase","textColorSecondary","textColorDisabled"]);return()=>{let t;return r("div",{class:"flex flex-col items-center justify-center min-h-screen p-4",style:n.value},[r("div",{class:"text-center px-4 sm:px-8 max-w-[60rem] mx-auto"},[r("div",{class:"text-[4.5rem] sm:text-[6rem] md:text-[8rem] font-bold leading-none mb-2 sm:mb-4",style:{color:"var(--n-text-color-base)",textShadow:"2px 2px 8px rgba(0,0,0,0.25)"}},[s("404")]),r("div",{class:"flex items-center justify-center mb-4 sm:mb-8"},[m(60,"var(--n-text-color-base)")]),r("div",{class:"text-[1.2rem] sm:text-[1.5rem] md:text-[1.8rem] mb-4 sm:mb-8",style:{color:"var(--n-text-color-secondary)"}},[l("t_0_1744098811152")]),r(a,{style:{backgroundColor:"var(--n-text-color-base)",color:"var(--n-base-color)",border:"none"},onClick:()=>e.push("/")},(o=t=l("t_1_1744098801860"),"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!c(o)?t:{default:()=>[t]})),r("div",{class:"mt-4 sm:mt-8 text-[1rem] sm:text-[1.1rem] md:text-[1.3rem]",style:{color:"var(--n-text-color-disabled)"}},[l("t_2_1744098804908")])])]);var o}}});export{n as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
var t;import{S as e}from"./index-DwpZTRQL.js";import{A as o,M as a}from"./data-BwFlQLCu.js";import{k as n,d as s,c as r,N as i}from"./main-1hvBaRBq.js";const l={},p={},c=new Set;for(const d in o)if(Object.prototype.hasOwnProperty.call(o,d)){const e=o[d];if(l[d]=e.name,p[d]=e.icon,null==e?void 0:e.hostRelated)for(const o in e.hostRelated)if(Object.prototype.hasOwnProperty.call(e.hostRelated,o)){const a=e.hostRelated[o],n=`${d}-${o}`;n&&(l[n]=(null==(t=null==a?void 0:a.name)?void 0:t.toString())??"",p[n]=e.icon)}}for(const d in a)if(Object.prototype.hasOwnProperty.call(a,d)){const t=a[d];l[d]=t.name,p[d]=t.type,c.add(d)}o.btwaf&&(p.btwaf="btpanel");const u=s({name:"AuthApiTypeIcon",props:{icon:{type:String,required:!0},type:{type:String,default:"default"},text:{type:Boolean,default:!0}},setup(t){const{iconPath:o,typeName:a}=function(t){return{iconPath:n((()=>(c.has(t.icon)?"notify-":"resources-")+(p[t.icon]||"default"))),typeName:n((()=>l[t.icon]||t.icon))}}(t);return()=>r(i,{type:t.type,size:"small",class:"w-auto text-ellipsis overflow-hidden whitespace-normal p-[.6rem] h-auto"},{default:()=>[r(e,{icon:o.value,size:"1.2rem",class:"mr-[0.4rem]"},null),r("span",null,[t.text&&r("span",{class:"text-[12px]"},[a.value])])]})}});export{u as T};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{bO as e,bT as t,bU as n,bP as a,bV as i,aG as o,bR as r,bQ as s,A as u,x as c,o as l,V as f,J as m,r as p,bW as v}from"./main-1hvBaRBq.js";function b(e){return!!i()&&(o(e),!0)}const d=new WeakMap,w=(...e)=>{var t;const n=e[0],a=null==(t=r())?void 0:t.proxy;if(null==a&&!s())throw new Error("injectLocal must be called in setup");return a&&d.has(a)&&n in d.get(a)?d.get(a)[n]:u(...e)},g="undefined"!=typeof window&&"undefined"!=typeof document;"undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope);const h=Object.prototype.toString,y=e=>"[object Object]"===h.call(e),j=()=>{};function A(e,t){return function(...n){return new Promise(((a,i)=>{Promise.resolve(e((()=>t.apply(this,n)),{fn:t,thisArg:this,args:n})).then(a).catch(i)}))}}const F=e=>e();function T(e=F,n={}){const{initialState:a="active"}=n,i=function(...e){if(1!==e.length)return m(...e);const n=e[0];return"function"==typeof n?t(v((()=>({get:n,set:j})))):p(n)}("active"===a);return{isActive:t(i),pause:function(){i.value=!1},resume:function(){i.value=!0},eventFilter:(...t)=>{i.value&&e(...t)}}}function S(e){return e.endsWith("rem")?16*Number.parseFloat(e):Number.parseFloat(e)}function P(e){return Array.isArray(e)?e:[e]}function W(e,t=200,i=!1,o=!0,r=!1){return A(function(...e){let t,i,o,r,s,u,c=0,l=!0,f=j;n(e[0])||"object"!=typeof e[0]?[o,r=!0,s=!0,u=!1]=e:({delay:o,trailing:r=!0,leading:s=!0,rejectOnCancel:u=!1}=e[0]);const m=()=>{t&&(clearTimeout(t),t=void 0,f(),f=j)};return e=>{const n=a(o),p=Date.now()-c,v=()=>i=e();return m(),n<=0?(c=Date.now(),v()):(p>n&&(s||!l)?(c=Date.now(),v()):r&&(i=new Promise(((e,a)=>{f=u?a:e,t=setTimeout((()=>{c=Date.now(),l=!0,e(v()),m()}),Math.max(0,n-p))}))),s||t||(t=setTimeout((()=>l=!0),n)),l=!1,i)}}(t,i,o,r),e)}function k(e,t,n={}){const{eventFilter:a,initialState:i="active",...o}=n,{eventFilter:r,pause:s,resume:u,isActive:l}=T(a,{initialState:i}),f=function(e,t,n={}){const{eventFilter:a=F,...i}=n;return c(e,A(a,t),i)}(e,t,{...o,eventFilter:r});return{stop:f,pause:s,resume:u,isActive:l}}function x(e,t=!0,n){r()?l(e,n):t?e():f(e)}function D(n,i,o={}){const{immediate:r=!0,immediateCallback:s=!1}=o,u=e(!1);let c=null;function l(){c&&(clearTimeout(c),c=null)}function f(){u.value=!1,l()}function m(...e){s&&n(),l(),u.value=!0,c=setTimeout((()=>{u.value=!1,c=null,n(...e)}),a(i))}return r&&(u.value=!0,g&&m()),b(f),{isPending:t(u),start:m,stop:f}}function O(e,t,n){return c(e,t,{...n,immediate:!0})}export{W as a,g as b,b as c,y as d,k as e,x as f,w as i,S as p,P as t,D as u,O as w};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{d as t,Y as a,Z as e,_ as s,c as l,aa as r,$ as n,b as i,B as p}from"./main-1hvBaRBq.js";const u={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 32 32"},o=t({name:"Search",render:function(t,l){return e(),a("svg",u,l[0]||(l[0]=[s("path",{d:"M29 27.586l-7.552-7.552a11.018 11.018 0 1 0-1.414 1.414L27.586 29zM4 13a9 9 0 1 1 9 9a9.01 9.01 0 0 1-9-9z",fill:"currentColor"},null,-1)]))}}),d=t({name:"TableEmptyState",props:{addButtonText:{type:String,required:!0},onAddClick:{type:Function,required:!0}},setup:t=>()=>l("div",{class:"flex justify-center items-center h-full"},[l(r,{class:"px-[4rem]"},{default:()=>[n("t_1_1747754231838"),l(p,{text:!0,type:"primary",size:"small",onClick:t.onAddClick},{default:()=>[t.addButtonText]}),i(""),n("t_2_1747754234999"),l(p,{text:!0,tag:"a",target:"_blank",type:"primary",href:"https://github.com/allinssl/allinssl/issues"},{default:()=>[i("Issues")]}),i(""),n("t_3_1747754232000"),l(p,{text:!0,tag:"a",target:"_blank",type:"primary",href:"https://github.com/allinssl/allinssl"},{default:()=>[i("Star")]}),i(""),n("t_4_1747754235407")]})])});export{d as E,o as S};

View File

@@ -1 +1 @@
import{d as e,c as s}from"./main-1hvBaRBq.js";const l=e({name:"BaseComponent",setup(e,{slots:l}){const t=l["header-left"]||l.headerLeft,f=l["header-right"]||l.headerRight,r=l.header,o=l["footer-left"]||l.footerLeft,a=l["footer-right"]||l.footerRight,i=l.footer;return()=>s("div",{class:"flex flex-col"},[r?s("div",{class:"flex justify-between flex-wrap w-full"},[r()]):(t||f)&&s("div",{class:"flex justify-between flex-wrap",style:{rowGap:"0.8rem"}},[s("div",{class:"flex flex-shrink-0"},[t&&t()]),s("div",{class:"flex flex-shrink-0"},[f&&f()])]),s("div",{class:`w-full content ${r||t||f?"mt-[1.2rem]":""} ${i||o||a?"mb-[1.2rem]":""}`},[l.content&&l.content()]),i?s("div",{class:"flex justify-between w-full"},[i()]):(o||a)&&s("div",{class:"flex justify-between"},[s("div",{class:"flex flex-shrink-0"},[o&&o()]),s("div",{class:"flex flex-shrink-0"},[a&&a()])]),l.popup&&l.popup()])}});export{l as B};
import{d as e,c as s}from"./main-thcxfg9X.js";const l=e({name:"BaseComponent",setup(e,{slots:l}){const t=l["header-left"]||l.headerLeft,f=l["header-right"]||l.headerRight,r=l.header,o=l["footer-left"]||l.footerLeft,a=l["footer-right"]||l.footerRight,i=l.footer;return()=>s("div",{class:"flex flex-col"},[r?s("div",{class:"flex justify-between flex-wrap w-full"},[r()]):(t||f)&&s("div",{class:"flex justify-between flex-wrap",style:{rowGap:"0.8rem"}},[s("div",{class:"flex flex-shrink-0"},[t&&t()]),s("div",{class:"flex flex-shrink-0"},[f&&f()])]),s("div",{class:`w-full content ${r||t||f?"mt-[1.2rem]":""} ${i||o||a?"mb-[1.2rem]":""}`},[l.content&&l.content()]),i?s("div",{class:"flex justify-between w-full"},[i()]):(o||a)&&s("div",{class:"flex justify-between"},[s("div",{class:"flex flex-shrink-0"},[o&&o()]),s("div",{class:"flex flex-shrink-0"},[a&&a()])]),l.popup&&l.popup()])}});export{l as B};

View File

@@ -0,0 +1 @@
import{u as e}from"./useStore-BVollqBX.js";import{u as a,N as l}from"./index-BsOnqgcH.js";import{r as t,x as u,o as v,aD as s,$ as d,d as r,c as o,w as n,t as i,m as p,B as y,i as c}from"./main-thcxfg9X.js";import{S as f}from"./index-CQqPnXBD.js";import{N as m,a as b}from"./business-B3585fkI.js";const _=r({name:"DnsProviderSelect",props:{type:{type:String,required:!0},path:{type:String,required:!0},value:{type:String,required:!0},valueType:{type:String,default:"value"},isAddMode:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},customClass:{type:String,default:""}},emits:["update:value"],setup(r,{emit:_}){const g=function(l,r){const{handleError:o}=a(),{fetchDnsProvider:n,resetDnsProvider:i,dnsProvider:p}=e(),y=t({label:"",value:"",type:"",data:{}}),c=t([]),f=t(!1),m=t(""),b=()=>{var e,a,t,u,v;const s=p.value.find((e=>("value"===l.valueType?e.value:e.type)===y.value.value));s?(y.value={label:s.label,value:"value"===l.valueType?s.value:s.type,type:"value"===l.valueType?s.type:s.value,data:s},r("update:value",{...y.value})):""===y.value.value&&p.value.length>0&&(y.value={label:(null==(e=p.value[0])?void 0:e.label)||"",value:"value"===l.valueType?(null==(a=p.value[0])?void 0:a.value)||"":(null==(t=p.value[0])?void 0:t.type)||"",type:"value"===l.valueType?(null==(u=p.value[0])?void 0:u.type)||"":(null==(v=p.value[0])?void 0:v.value)||"",data:p.value[0]||{}},r("update:value",{...y.value}))},_=e=>{y.value.value=e,b()},g=async(e=l.type)=>{f.value=!0,m.value="";try{await n(e),l.value?(y.value.value=l.value,b()):b()}catch(a){m.value="string"==typeof a?a:d("t_0_1746760933542"),o(a)}finally{f.value=!1}};return u((()=>p.value),(e=>{var a;c.value=e.map((e=>({label:e.label,value:"value"===l.valueType?e.value:e.type,type:"value"===l.valueType?e.type:e.value,data:e})))||[],c.value.some((e=>e.value===y.value.value))?b():l.value&&c.value.some((e=>e.value===l.value))?(y.value.value=l.value,b()):""===y.value.value&&c.value.length>0&&(y.value.value=(null==(a=c.value[0])?void 0:a.value)||"",b())}),{deep:!0}),u((()=>l.value),(e=>{e!==y.value.value&&_(e)}),{immediate:!0}),u((()=>l.type),(e=>{g(e)})),v((async()=>{await g(l.type)})),s((()=>{i()})),{param:y,dnsProviderRef:c,isLoading:f,errorMessage:m,goToAddDnsProvider:()=>{window.open("/auth-api-manage","_blank")},handleUpdateValue:_,loadDnsProviders:g,handleFilter:(e,a)=>a.label.toLowerCase().includes(e.toLowerCase())}}(r,_),h=e=>o(b,{align:"center"},{default:()=>[o(f,{icon:`resources-${e.type}`,size:"2rem"},null),o(m,null,{default:()=>[e.label]})]});return()=>{let e;return o(l,{show:g.isLoading.value},{default:()=>[o(n,{cols:24,class:r.customClass},{default:()=>[o(i,{span:r.isAddMode?13:24,label:"dns"===r.type?d("t_3_1745735765112"):d("t_0_1746754500246"),path:r.path},{default:()=>[o(p,{class:"flex-1 w-full",filterable:!0,options:g.dnsProviderRef.value,renderLabel:h,renderTag:({option:e})=>(({option:e})=>o(b,{align:"center"},{default:()=>[e.label?h(e):o(m,{class:"text-[#aaa]"},{default:()=>["dns"===r.type?d("t_0_1747019621052"):d("t_0_1746858920894")]})]}))({option:e}),filter:(e,a)=>g.handleFilter(e,a),placeholder:"dns"===r.type?d("t_3_1745490735059"):d("t_0_1746858920894"),value:g.param.value.value,onUpdateValue:g.handleUpdateValue,disabled:r.disabled},{empty:()=>o("span",{class:"text-[1.4rem]"},[g.errorMessage.value||("dns"===r.type?d("t_1_1746858922914"):d("t_2_1746858923964"))])})]}),r.isAddMode&&o(i,{span:11},{default:()=>{return[o(y,{class:"mx-[8px]",onClick:g.goToAddDnsProvider,disabled:r.disabled},{default:()=>["dns"===r.type?d("t_1_1746004861166"):d("t_3_1746858920060")]}),o(y,{onClick:()=>g.loadDnsProviders(r.type),loading:g.isLoading.value,disabled:r.disabled},(a=e=d("t_0_1746497662220"),"function"==typeof a||"[object Object]"===Object.prototype.toString.call(a)&&!c(a)?e:{default:()=>[e]}))];var a}})]})]})}}});export{_ as D};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{c as o,d as s}from"./index-Dqr-yrfj.js";const e=s=>o("/v1/login/sign",s),g=()=>s.get("/v1/login/get_code"),i=()=>o("/v1/login/sign-out",{}),v=s=>o("/v1/overview/get_overviews",s);export{g as a,v as g,e as l,i as s};

View File

@@ -0,0 +1 @@
import{c as s,d as o}from"./index-BsOnqgcH.js";const e=o=>s("/v1/login/sign",o),g=()=>o.get("/v1/login/get_code"),i=()=>s("/v1/login/sign-out",{}),v=o=>s("/v1/overview/get_overviews",o);export{g as a,v as g,e as l,i as s};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{c as t}from"./index-Dqr-yrfj.js";const e=e=>t("/v1/setting/get_setting",e),s=e=>t("/v1/setting/save_setting",e),r=e=>t("/v1/report/add_report",e),o=e=>t("/v1/report/upd_report",e),a=e=>t("/v1/report/del_report",e),p=e=>t("/v1/report/notify_test",e),i=e=>t("/v1/report/get_list",e),v=e=>t("/v1/setting/get_version",e);export{e as a,i as b,r as c,a as d,v as g,s,p as t,o as u};
import{c as t}from"./index-BsOnqgcH.js";const e=e=>t("/v1/setting/get_setting",e),s=e=>t("/v1/setting/save_setting",e),r=e=>t("/v1/report/add_report",e),o=e=>t("/v1/report/upd_report",e),a=e=>t("/v1/report/del_report",e),p=e=>t("/v1/report/notify_test",e),i=e=>t("/v1/report/get_list",e),v=e=>t("/v1/setting/get_version",e);export{e as a,i as b,r as c,a as d,v as g,s,p as t,o as u};

View File

@@ -1 +1 @@
import{c5 as t,c6 as n,c7 as i}from"./main-1hvBaRBq.js";var r=/\s/;var e=/^\s+/;function a(t){return t?t.slice(0,function(t){for(var n=t.length;n--&&r.test(t.charAt(n)););return n}(t)+1).replace(e,""):t}var o=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,f=/^0o[0-7]+$/i,c=parseInt;function v(i){if("number"==typeof i)return i;if(t(i))return NaN;if(n(i)){var r="function"==typeof i.valueOf?i.valueOf():i;i=n(r)?r+"":r}if("string"!=typeof i)return 0===i?i:+i;i=a(i);var e=u.test(i);return e||f.test(i)?c(i.slice(2),e?2:8):o.test(i)?NaN:+i}var s=function(){return i.Date.now()},l=Math.max,d=Math.min;function m(t,i,r){var e,a,o,u,f,c,m=0,p=!1,g=!1,h=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function x(n){var i=e,r=a;return e=a=void 0,m=n,u=t.apply(r,i)}function y(t){var n=t-c;return void 0===c||n>=i||n<0||g&&t-m>=o}function T(){var t=s();if(y(t))return w(t);f=setTimeout(T,function(t){var n=i-(t-c);return g?d(n,o-(t-m)):n}(t))}function w(t){return f=void 0,h&&e?x(t):(e=a=void 0,u)}function E(){var t=s(),n=y(t);if(e=arguments,a=this,c=t,n){if(void 0===f)return function(t){return m=t,f=setTimeout(T,i),p?x(t):u}(c);if(g)return clearTimeout(f),f=setTimeout(T,i),x(c)}return void 0===f&&(f=setTimeout(T,i)),u}return i=v(i)||0,n(r)&&(p=!!r.leading,o=(g="maxWait"in r)?l(v(r.maxWait)||0,i):o,h="trailing"in r?!!r.trailing:h),E.cancel=function(){void 0!==f&&clearTimeout(f),m=0,e=c=a=f=void 0},E.flush=function(){return void 0===f?u:w(s())},E}function p(t,i,r){var e=!0,a=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return n(r)&&(e="leading"in r?!!r.leading:e,a="trailing"in r?!!r.trailing:a),m(t,i,{leading:e,maxWait:i,trailing:a})}export{p as t};
import{c8 as t,c9 as n,ca as i}from"./main-thcxfg9X.js";var r=/\s/;var e=/^\s+/;function a(t){return t?t.slice(0,function(t){for(var n=t.length;n--&&r.test(t.charAt(n)););return n}(t)+1).replace(e,""):t}var o=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,f=/^0o[0-7]+$/i,c=parseInt;function v(i){if("number"==typeof i)return i;if(t(i))return NaN;if(n(i)){var r="function"==typeof i.valueOf?i.valueOf():i;i=n(r)?r+"":r}if("string"!=typeof i)return 0===i?i:+i;i=a(i);var e=u.test(i);return e||f.test(i)?c(i.slice(2),e?2:8):o.test(i)?NaN:+i}var s=function(){return i.Date.now()},l=Math.max,d=Math.min;function m(t,i,r){var e,a,o,u,f,c,m=0,p=!1,g=!1,h=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function x(n){var i=e,r=a;return e=a=void 0,m=n,u=t.apply(r,i)}function y(t){var n=t-c;return void 0===c||n>=i||n<0||g&&t-m>=o}function T(){var t=s();if(y(t))return w(t);f=setTimeout(T,function(t){var n=i-(t-c);return g?d(n,o-(t-m)):n}(t))}function w(t){return f=void 0,h&&e?x(t):(e=a=void 0,u)}function E(){var t=s(),n=y(t);if(e=arguments,a=this,c=t,n){if(void 0===f)return function(t){return m=t,f=setTimeout(T,i),p?x(t):u}(c);if(g)return clearTimeout(f),f=setTimeout(T,i),x(c)}return void 0===f&&(f=setTimeout(T,i)),u}return i=v(i)||0,n(r)&&(p=!!r.leading,o=(g="maxWait"in r)?l(v(r.maxWait)||0,i):o,h="trailing"in r?!!r.trailing:h),E.cancel=function(){void 0!==f&&clearTimeout(f),m=0,e=c=a=f=void 0},E.flush=function(){return void 0===f?u:w(s())},E}function p(t,i,r){var e=!0,a=!0;if("function"!=typeof t)throw new TypeError("Expected a function");return n(r)&&(e="leading"in r?!!r.leading:e,a="trailing"in r?!!r.trailing:a),m(t,i,{leading:e,maxWait:i,trailing:a})}export{p as t};

View File

@@ -1 +1 @@
import{e,s as a,r as t,k as o,$ as l}from"./main-1hvBaRBq.js";import{a as s,b as n}from"./index-Dx_P7TL0.js";import{u as r}from"./index-Dqr-yrfj.js";import{b as i}from"./setting-u4pThbPF.js";import{k as u}from"./access-CP5jwCxg.js";const m=e("layout-store",(()=>{const{handleError:e}=r(),a=s("layout-collapsed",!1),m=t([]),c=t([]),v=n("menu-active","home"),d=o((()=>"home"!==v.value?"var(--n-content-padding)":"0")),p=s("locales-active","zhCN"),h=t({mail:{name:l("t_68_1745289354676")},dingtalk:{name:l("t_32_1746773348993")},wecom:{name:l("t_33_1746773350932")},feishu:{name:l("t_34_1746773350153")},webhook:{name:"WebHook"}});return{isCollapsed:a,notifyProvider:m,dnsProvider:c,menuActive:v,layoutPadding:d,locales:p,pushSourceType:h,toggleCollapse:()=>{a.value=!a.value},handleCollapse:()=>{a.value=!0},handleExpand:()=>{a.value=!1},updateMenuActive:e=>{"logout"!==e&&(v.value=e)},resetDataInfo:()=>{v.value="home",sessionStorage.removeItem("menu-active")},fetchNotifyProvider:async()=>{try{m.value=[];const{data:e}=await i({p:1,search:"",limit:1e3}).fetch();m.value=(null==e?void 0:e.map((e=>({label:e.name,value:e.id.toString(),type:e.type}))))||[]}catch(a){e(a)}},fetchDnsProvider:async(a="")=>{try{c.value=[];const{data:e}=await u({type:a}).fetch();c.value=(null==e?void 0:e.map((e=>({label:e.name,value:e.id.toString(),type:e.type,data:e}))))||[]}catch(t){c.value=[],e(t)}},resetDnsProvider:()=>{c.value=[]}}})),c=()=>{const e=m();return{...e,...a(e)}};export{c as u};
import{e,s as a,r as t,k as o,$ as l}from"./main-thcxfg9X.js";import{a as s,b as n}from"./index-Be-TPJhZ.js";import{u as r}from"./index-BsOnqgcH.js";import{b as i}from"./setting-Cj7IBqyr.js";import{j as u}from"./access-BUuUnTSu.js";const m=e("layout-store",(()=>{const{handleError:e}=r(),a=s("layout-collapsed",!1),m=t([]),c=t([]),v=n("menu-active","home"),d=o((()=>"home"!==v.value?"var(--n-content-padding)":"0")),p=s("locales-active","zhCN"),h=t({mail:{name:l("t_68_1745289354676")},dingtalk:{name:l("t_32_1746773348993")},wecom:{name:l("t_33_1746773350932")},feishu:{name:l("t_34_1746773350153")},webhook:{name:"WebHook"}});return{isCollapsed:a,notifyProvider:m,dnsProvider:c,menuActive:v,layoutPadding:d,locales:p,pushSourceType:h,toggleCollapse:()=>{a.value=!a.value},handleCollapse:()=>{a.value=!0},handleExpand:()=>{a.value=!1},updateMenuActive:e=>{"logout"!==e&&(v.value=e)},resetDataInfo:()=>{v.value="home",sessionStorage.removeItem("menu-active")},fetchNotifyProvider:async()=>{try{m.value=[];const{data:e}=await i({p:1,search:"",limit:1e3}).fetch();m.value=(null==e?void 0:e.map((e=>({label:e.name,value:e.id.toString(),type:e.type}))))||[]}catch(a){e(a)}},fetchDnsProvider:async(a="")=>{try{c.value=[];const{data:e}=await u({type:a}).fetch();c.value=(null==e?void 0:e.map((e=>({label:e.name,value:e.id.toString(),type:e.type,data:e}))))||[]}catch(t){c.value=[],e(t)}},resetDnsProvider:()=>{c.value=[]}}})),c=()=>{const e=m();return{...e,...a(e)}};export{c as u};

View File

@@ -1 +1 @@
import{c as e,u as a}from"./index-Dqr-yrfj.js";import{e as o,s as t,r as l,$ as r}from"./main-1hvBaRBq.js";const w=a=>e("/v1/workflow/get_list",a),s=a=>e("/v1/workflow/del_workflow",a),c=a=>e("/v1/workflow/get_workflow_history",a),f=a=>e("/v1/workflow/get_exec_log",a),n=a=>e("/v1/workflow/execute_workflow",a),d=a=>e("/v1/workflow/exec_type",a),i=a=>e("/v1/workflow/active",a),k=a=>e("/v1/workflow/stop",a),u=o("work-edit-view-store",(()=>{const{handleError:o}=a(),t=l(!1),w=l(!1),s=l({id:"",name:"",content:"",active:"1",exec_type:"manual"}),c=l("quick"),f=l({id:"",name:"",childNode:{id:"start-1",name:"开始",type:"start",config:{exec_type:"manual"},childNode:null}});return{isEdit:t,detectionRefresh:w,workflowData:s,workflowType:c,workDefalutNodeData:f,resetWorkflowData:()=>{s.value={id:"",name:"",content:"",active:"1",exec_type:"manual"},f.value={id:"",name:"",childNode:{id:"start-1",name:"开始",type:"start",config:{exec_type:"manual"},childNode:null}},c.value="quick",t.value=!1},addNewWorkflow:async a=>{try{const{message:o,fetch:t}=(a=>e("/v1/workflow/add_workflow",a))(a);o.value=!0,await t()}catch(t){o(t).default(r("t_10_1745457486451"))}},updateWorkflowData:async a=>{try{const{message:o,fetch:t}=e("/v1/workflow/upd_workflow",a);o.value=!0,await t()}catch(t){o(t).default(r("t_11_1745457488256"))}}}})),v=()=>{const e=u();return{...e,...t(e)}};export{c as a,n as b,f as c,s as d,i as e,v as f,w as g,k as s,d as u};
import{c as e,u as a}from"./index-BsOnqgcH.js";import{e as o,s as t,r as l,$ as r}from"./main-thcxfg9X.js";const w=a=>e("/v1/workflow/get_list",a),s=a=>e("/v1/workflow/del_workflow",a),c=a=>e("/v1/workflow/get_workflow_history",a),f=a=>e("/v1/workflow/get_exec_log",a),n=a=>e("/v1/workflow/execute_workflow",a),d=a=>e("/v1/workflow/exec_type",a),i=a=>e("/v1/workflow/active",a),k=a=>e("/v1/workflow/stop",a),u=o("work-edit-view-store",(()=>{const{handleError:o}=a(),t=l(!1),w=l(!1),s=l({id:"",name:"",content:"",active:"1",exec_type:"manual"}),c=l("quick"),f=l({id:"",name:"",childNode:{id:"start-1",name:"开始",type:"start",config:{exec_type:"manual"},childNode:null}});return{isEdit:t,detectionRefresh:w,workflowData:s,workflowType:c,workDefalutNodeData:f,resetWorkflowData:()=>{s.value={id:"",name:"",content:"",active:"1",exec_type:"manual"},f.value={id:"",name:"",childNode:{id:"start-1",name:"开始",type:"start",config:{exec_type:"manual"},childNode:null}},c.value="quick",t.value=!1},addNewWorkflow:async a=>{try{const{message:o,fetch:t}=(a=>e("/v1/workflow/add_workflow",a))(a);o.value=!0,await t()}catch(t){o(t).default(r("t_10_1745457486451"))}},updateWorkflowData:async a=>{try{const{message:o,fetch:t}=e("/v1/workflow/upd_workflow",a);o.value=!0,await t()}catch(t){o(t).default(r("t_11_1745457488256"))}}}})),v=()=>{const e=u();return{...e,...t(e)}};export{c as a,n as b,f as c,s as d,i as e,v as f,w as g,k as s,d as u};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -11217,5 +11217,73 @@
"arDZ": "الرجاء إدخال المعلمات بتنسيق JSON، على سبيل المثال:"
},
"timestamp": "2025-06-18T01:38:26.776Z"
},
"请输入多吉云AccessKey": {
"text": "请输入多吉云AccessKey",
"key": "t_0_1750320239265",
"translations": {
"zhCN": "请输入多吉云AccessKey",
"zhTW": "請輸入多吉雲AccessKey",
"enUS": "Please enter DogeCloud AccessKey",
"jaJP": "DogeCloudのAccessKeyを入力してください",
"koKR": "DogeCloud AccessKey를 입력하세요",
"ruRU": "Пожалуйста, введите DogeCloud AccessKey",
"ptBR": "Por favor, insira o AccessKey do DogeCloud",
"frFR": "Veuillez entrer la clé d'accès DogeCloud",
"esAR": "Por favor ingrese la AccessKey de DogeCloud",
"arDZ": "الرجاء إدخال مفتاح الوصول DogeCloud"
},
"timestamp": "2025-06-19T08:04:01.428Z"
},
"请输入多吉云SecretKey": {
"text": "请输入多吉云SecretKey",
"key": "t_1_1750320241427",
"translations": {
"zhCN": "请输入多吉云SecretKey",
"zhTW": "請輸入多吉雲SecretKey",
"enUS": "Please enter DogeCloud SecretKey",
"jaJP": "ドージークラウドのSecretKeyを入力してください",
"koKR": "도지클라우드 SecretKey를 입력하세요",
"ruRU": "Пожалуйста, введите SecretKey DogeCloud",
"ptBR": "Por favor, insira a SecretKey do DogeCloud",
"frFR": "Veuillez entrer la SecretKey de DogeCloud",
"esAR": "Por favor ingrese la SecretKey de DogeCloud",
"arDZ": "الرجاء إدخال مفتاح SecretKey الخاص بـ DogeCloud"
},
"timestamp": "2025-06-19T08:04:01.428Z"
},
"跳过发送通知": {
"text": "跳过发送通知",
"key": "t_2_1750320237611",
"translations": {
"zhCN": "跳过发送通知",
"zhTW": "跳過發送通知",
"enUS": "Skip sending notification",
"jaJP": "通知の送信をスキップ",
"koKR": "알림 보내기 건너뛰기",
"ruRU": "Пропустить отправку уведомления",
"ptBR": "Pular envio de notificação",
"frFR": "Ignorer l'envoi de notification",
"esAR": "Omitir el envío de notificación",
"arDZ": "تخطي إرسال الإشعار"
},
"timestamp": "2025-06-19T08:04:01.428Z"
},
"发送": {
"text": "发送",
"key": "t_3_1750320237991",
"translations": {
"zhCN": "发送",
"zhTW": "發送",
"enUS": "Send",
"jaJP": "送信",
"koKR": "보내기",
"ruRU": "Отправить",
"ptBR": "Enviar",
"frFR": "Envoyer",
"esAR": "Enviar",
"arDZ": "إرسال"
},
"timestamp": "2025-06-19T08:04:01.428Z"
}
}

View File

@@ -2,6 +2,7 @@ import { Transition, type Component as ComponentType, h } from 'vue'
import { RouterView } from 'vue-router'
import CustomProvider from '@baota/naive-ui/components/customProvider'
export default defineComponent({
name: 'App',
setup() {

View File

@@ -93,7 +93,7 @@ export default defineComponent<DnsProviderSelectProps>({
*/
const renderSingleSelectTag = ({ option }: { option: DnsProviderOption }): VNode => {
return (
<div class="flex items-center">
<NFlex align="center">
{option.label ? (
renderLabel(option)
) : (
@@ -101,7 +101,7 @@ export default defineComponent<DnsProviderSelectProps>({
{props.type === 'dns' ? $t('t_0_1747019621052') : $t('t_0_1746858920894')}
</NText>
)}
</div>
</NFlex>
)
}

View File

@@ -180,6 +180,7 @@ nodeOptions[NOTIFY] = () =>
provider_id: '',
subject: '',
body: '',
skip: false,
},
childNode: null,
},

View File

@@ -246,6 +246,7 @@ export interface DeployConfig<
| 'aliyun-cdn'
| 'aliyun-oss'
| 'aliyun-waf'
| 'aliyun-esa'
| 'doge-cdn'
| 'baidu-cdn'
| 'qiniu-cdn'
@@ -308,6 +309,11 @@ export interface DeployStorageConfig {
bucket: string
}
// 部署阿里云ESA
export interface DeployAliyunESAConfig {
site_id: string
}
// 部署节点配置雷池WAF
export interface DeploySafelineConfig {
[key: string]: unknown
@@ -340,6 +346,7 @@ export type DeployNodeConfig = DeployConfig<
| DeployCDNConfig // 部署节点配置腾讯云CDN/阿里云CDN
| DeployWAFConfig // 部署节点配置阿里云WAF
| DeployStorageConfig // 部署节点配置腾讯云COS/阿里云OSS
| DeployAliyunESAConfig // 部署节点配置阿里云ESA
| DeploySafelineConfig // 部署节点配置雷池WAF
| DeploySafelineSiteConfig // 部署节点配置雷池WAF站点
| DeployBTPanelDockerSiteConfig // 部署节点配置宝塔docker站点
@@ -358,6 +365,7 @@ interface NotifyNodeConfig {
provider_id: string
subject: string
body: string
skip: boolean // 当结果来源为跳过状态时,跳过/继续发送通知true:跳过false:继续
}
// 定义上传节点配置类型

View File

@@ -87,6 +87,7 @@ export const ApiProjectConfig: Record<string, ApiProjectType> = {
cdn: { name: $t('t_16_1745735766712') },
oss: { name: $t('t_2_1746697487164') },
waf: { name: $t('t_10_1744958860078') },
esa: { name: '阿里云ESA' },
},
sort: 6,
},

View File

@@ -1,4 +1,9 @@
{
"t_11_1747280809178": "تخطي",
"t_0_1750320239265": "الرجاء إدخال مفتاح الوصول DogeCloud",
"t_1_1750320241427": "الرجاء إدخال مفتاح SecretKey الخاص بـ DogeCloud",
"t_2_1750320237611": "تخطي إرسال الإشعار",
"t_3_1750320237991": "إرسال",
"t_0_1744098811152": "تحذير: لقد دخلتم منطقة غير معروفة، الصفحة التي تحاول زيارتها غير موجودة، يرجى الضغط على الزر للعودة إلى الصفحة الرئيسية.",
"t_1_1744098801860": "رجوع إلى الصفحة الرئيسية",
"t_2_1744098804908": "نصيحة أمنية: إذا كنت تعتقد أن هذا خطأ، يرجى الاتصال بالمدير على الفور",
@@ -529,7 +534,6 @@
"t_8_1747280809382": "دلو",
"t_9_1747280810169": "نشر متكرر",
"t_10_1747280816952": "عندما يكون الشهادة هي نفسها كما في النشر الأخير وكان النشر الأخير ناجحًا",
"t_11_1747280809178": "تخطي",
"t_12_1747280809893": "لا تتخطى",
"t_13_1747280810369": "إعادة النشر",
"t_14_1747280811231": "بحث نوع النشر",

View File

@@ -1,4 +1,9 @@
{
"t_11_1747280809178": "Skip",
"t_0_1750320239265": "Please enter DogeCloud AccessKey",
"t_1_1750320241427": "Please enter DogeCloud SecretKey",
"t_2_1750320237611": "Skip sending notification",
"t_3_1750320237991": "Send",
"t_0_1744098811152": "Warning: You have entered an unknown area, the page you are visiting does not exist, please click the button to return to the homepage.",
"t_1_1744098801860": "Return Home",
"t_2_1744098804908": "Safety Tip: If you think this is an error, please contact the administrator immediately",
@@ -529,7 +534,6 @@
"t_8_1747280809382": "Bucket",
"t_9_1747280810169": "Repeated deployment",
"t_10_1747280816952": "When the certificate is the same as the last deployment and the last deployment was successful",
"t_11_1747280809178": "Skip",
"t_12_1747280809893": "Do not skip",
"t_13_1747280810369": "Re-deployment",
"t_14_1747280811231": "Search deployment type",

View File

@@ -1,4 +1,9 @@
{
"t_11_1747280809178": "Saltar",
"t_0_1750320239265": "Por favor ingrese la AccessKey de DogeCloud",
"t_1_1750320241427": "Por favor ingrese la SecretKey de DogeCloud",
"t_2_1750320237611": "Omitir el envío de notificación",
"t_3_1750320237991": "Enviar",
"t_0_1744098811152": "Advertencia: Ha ingresado a una zona desconocida, la página que intenta visitar no existe, por favor, haga clic en el botón para regresar a la página de inicio.",
"t_1_1744098801860": "Volver al inicio",
"t_2_1744098804908": "Consejo de seguridad: Si piensa que es un error, póngase en contacto con el administrador inmediatamente",
@@ -529,7 +534,6 @@
"t_8_1747280809382": "Cubo",
"t_9_1747280810169": "Implementación repetida",
"t_10_1747280816952": "Cuando el certificado es el mismo que el último despliegue y el último despliegue fue exitoso",
"t_11_1747280809178": "Saltar",
"t_12_1747280809893": "No omitir",
"t_13_1747280810369": "Redespliegue",
"t_14_1747280811231": "Buscar tipo de implementación",

View File

@@ -1,4 +1,9 @@
{
"t_11_1747280809178": "Passer",
"t_0_1750320239265": "Veuillez entrer la clé d'accès DogeCloud",
"t_1_1750320241427": "Veuillez entrer la SecretKey de DogeCloud",
"t_2_1750320237611": "Ignorer l'envoi de notification",
"t_3_1750320237991": "Envoyer",
"t_0_1744098811152": "Avertissement : Vous avez entré dans une zone inconnue, la page que vous visitez n'existe pas, veuillez cliquer sur le bouton pour revenir à la page d'accueil.",
"t_1_1744098801860": "Retour à l'accueil",
"t_2_1744098804908": "Avis de sécurité : Si vous pensez que c'est une erreur, veuillez contacter l'administrateur immédiatement",
@@ -529,7 +534,6 @@
"t_8_1747280809382": "Seau",
"t_9_1747280810169": "Déploiement répété",
"t_10_1747280816952": "Lorsque le certificat est identique au dernier déploiement et que le dernier déploiement a réussi",
"t_11_1747280809178": "Passer",
"t_12_1747280809893": "Ne pas sauter",
"t_13_1747280810369": "Redéploiement",
"t_14_1747280811231": "Rechercher le type de déploiement",

View File

@@ -1,4 +1,9 @@
{
"t_11_1747280809178": "スキップ",
"t_0_1750320239265": "DogeCloudのAccessKeyを入力してください",
"t_1_1750320241427": "ドージークラウドのSecretKeyを入力してください",
"t_2_1750320237611": "通知の送信をスキップ",
"t_3_1750320237991": "送信",
"t_0_1744098811152": "警告:未知のエリアに進入しました。アクセスしようとしたページは存在しません。ボタンをクリックしてホームページに戻ってください。",
"t_1_1744098801860": "ホームに戻る",
"t_2_1744098804908": "安全注意:これが誤りだと思われる場合は、すぐに管理者に連絡してください",
@@ -529,7 +534,6 @@
"t_8_1747280809382": "バケット",
"t_9_1747280810169": "重複デプロイ",
"t_10_1747280816952": "前回の展開と同じ証明書で、前回の展開が成功した場合",
"t_11_1747280809178": "スキップ",
"t_12_1747280809893": "スキップしない",
"t_13_1747280810369": "再展開",
"t_14_1747280811231": "展開タイプを検索",

View File

@@ -1,4 +1,9 @@
{
"t_11_1747280809178": "건너뛰기",
"t_0_1750320239265": "DogeCloud AccessKey를 입력하세요",
"t_1_1750320241427": "도지클라우드 SecretKey를 입력하세요",
"t_2_1750320237611": "알림 보내기 건너뛰기",
"t_3_1750320237991": "보내기",
"t_0_1744098811152": "경고: 알 수 없는 영역에 진입했습니다. 방문하려는 페이지가 존재하지 않습니다. 버튼을 클릭하여 홈페이지로 돌아가세요。",
"t_1_1744098801860": "홈으로 돌아가기",
"t_2_1744098804908": "안전 유의사항: 이가 오류라면 즉시 관리자에게 연락하십시오",
@@ -529,7 +534,6 @@
"t_8_1747280809382": "버킷",
"t_9_1747280810169": "반복 배포",
"t_10_1747280816952": "이전 배포와 동일한 인증서이며 이전 배포가 성공한 경우",
"t_11_1747280809178": "건너뛰기",
"t_12_1747280809893": "건너뛰지 않음",
"t_13_1747280810369": "재배치",
"t_14_1747280811231": "배포 유형 검색",

View File

@@ -1,4 +1,9 @@
{
"t_11_1747280809178": "Pular",
"t_0_1750320239265": "Por favor, insira o AccessKey do DogeCloud",
"t_1_1750320241427": "Por favor, insira a SecretKey do DogeCloud",
"t_2_1750320237611": "Pular envio de notificação",
"t_3_1750320237991": "Enviar",
"t_0_1744098811152": "Aviso: Você entrou em uma área desconhecida, a página que você está visitando não existe, por favor, clique no botão para voltar para a página inicial.",
"t_1_1744098801860": "Voltar para a homepage",
"t_2_1744098804908": "Dica de Segurança: Se você acha que isso é um erro, entre em contato com o administrador imediatamente",
@@ -529,7 +534,6 @@
"t_8_1747280809382": "Balde",
"t_9_1747280810169": "Implantações repetidas",
"t_10_1747280816952": "Quando o certificado é o mesmo da última implantação e a última implantação foi bem-sucedida",
"t_11_1747280809178": "Pular",
"t_12_1747280809893": "Não pular",
"t_13_1747280810369": "Reimplantação",
"t_14_1747280811231": "Pesquisar tipo de implantação",

View File

@@ -1,4 +1,9 @@
{
"t_11_1747280809178": "Пропустить",
"t_0_1750320239265": "Пожалуйста, введите DogeCloud AccessKey",
"t_1_1750320241427": "Пожалуйста, введите SecretKey DogeCloud",
"t_2_1750320237611": "Пропустить отправку уведомления",
"t_3_1750320237991": "Отправить",
"t_0_1744098811152": "Предупреждение: Вы вошли в неизвестную зону, посещаемая страница не существует, пожалуйста, нажмите кнопку, чтобы вернуться на главную страницу.",
"t_1_1744098801860": "Вернуться на главную",
"t_2_1744098804908": "Совет по безопасности: Если вы считаете, что это ошибка, немедленно свяжитесь с администратором",
@@ -529,7 +534,6 @@
"t_8_1747280809382": "Ведро",
"t_9_1747280810169": "Повторное развертывание",
"t_10_1747280816952": "Когда сертификат совпадает с последним развертыванием и последнее развертывание было успешным",
"t_11_1747280809178": "Пропустить",
"t_12_1747280809893": "Не пропускать",
"t_13_1747280810369": "Повторное развертывание",
"t_14_1747280811231": "Поиск типа развертывания",

View File

@@ -1,4 +1,9 @@
{
"t_11_1747280809178": "跳过",
"t_0_1750320239265": "请输入多吉云AccessKey",
"t_1_1750320241427": "请输入多吉云SecretKey",
"t_2_1750320237611": "跳过发送通知",
"t_3_1750320237991": "发送",
"t_0_1744098811152": "警告:您已进入未知区域,所访问的页面不存在,请点击按钮返回首页。",
"t_1_1744098801860": "返回首页",
"t_2_1744098804908": "安全提示:如果您认为这是个错误,请立即联系管理员",
@@ -529,7 +534,6 @@
"t_8_1747280809382": "存储桶",
"t_9_1747280810169": "重复部署",
"t_10_1747280816952": "当与上次部署的证书相同且上次部署成功时",
"t_11_1747280809178": "跳过",
"t_12_1747280809893": "不跳过",
"t_13_1747280810369": "重新部署",
"t_14_1747280811231": "搜索部署类型",

View File

@@ -1,4 +1,9 @@
{
"t_11_1747280809178": "跳過",
"t_0_1750320239265": "請輸入多吉雲AccessKey",
"t_1_1750320241427": "請輸入多吉雲SecretKey",
"t_2_1750320237611": "跳過發送通知",
"t_3_1750320237991": "發送",
"t_0_1744098811152": "警告:您已進入未知區域,所訪問的頁面不存在,請點擊按鈕返回首頁。",
"t_1_1744098801860": "返回首頁",
"t_2_1744098804908": "安全提示:如果您認為這是個錯誤,請立即聯繫管理員",
@@ -528,7 +533,6 @@
"t_8_1747280809382": "儲存桶",
"t_9_1747280810169": "重複部署",
"t_10_1747280816952": "當與上次部署的證書相同且上次部署成功時",
"t_11_1747280809178": "跳過",
"t_12_1747280809893": "不跳過",
"t_13_1747280810369": "重新部署",
"t_14_1747280811231": "搜尋部署類型",

View File

@@ -268,8 +268,8 @@ export interface JdcloudAccessConfig {
* 多吉云授权配置
*/
export interface DogeAccessConfig {
access_key_id: string
access_key_secret: string
access_key: string
secret_key: string
}
/**
@@ -361,6 +361,8 @@ export interface AcmeAccountDeleteParams {
// 保持向后兼容的类型别名
export interface EabListParams {
search?: string
ca?: string
p: number
limit: number
}

View File

@@ -15,7 +15,7 @@ import BaseComponent from '@components/BaseLayout'
export default defineComponent({
name: 'AuthApiManage',
setup() {
const { TableComponent, PageComponent, param, fetch, total, openAddForm } = useController()
const { TableComponent, PageComponent, SearchComponent, openAddForm } = useController()
const cssVar = useThemeCssVar(['contentPadding', 'borderColor', 'headerHeight', 'iconColorHover'])
return () => (
@@ -28,26 +28,7 @@ export default defineComponent({
{$t('t_0_1745289355714')}
</NButton>
),
headerRight: () => (
<NInput
v-model:value={param.value.search}
onKeydown={(e: KeyboardEvent) => {
if (e.key === 'Enter') fetch()
}}
onClear={() => useTimeoutFn(() => fetch(), 100)}
placeholder={$t('t_0_1745289808449')}
clearable
size="large"
class="min-w-[300px]"
v-slots={{
suffix: () => (
<div class="flex items-center cursor-pointer" onClick={fetch}>
<Search class="text-[var(--text-color-3)] w-[1.6rem] font-bold" />
</div>
),
}}
/>
),
headerRight: () => <SearchComponent placeholder={$t('t_0_1745289808449')} />,
content: () => (
<div class="rounded-lg">
<TableComponent
@@ -60,15 +41,7 @@ export default defineComponent({
),
footerRight: () => (
<div class="mt-4 flex justify-end">
<PageComponent
v-slots={{
prefix: () => (
<span>
{$t('t_15_1745227839354')} {total.value} {$t('t_16_1745227838930')}
</span>
),
}}
/>
<PageComponent />
</div>
),
}}

View File

@@ -20,6 +20,7 @@ import {
useModal,
useDialog,
useTable,
useSearch,
useModalHooks,
useFormHooks,
useForm,
@@ -64,11 +65,11 @@ import { JSX } from 'vue/jsx-runtime'
*/
interface AuthApiManageControllerExposes {
loading: Ref<boolean>
fetch: () => Promise<void>
fetch: (resetPage?: boolean) => Promise<void>
TableComponent: (props: Record<string, unknown>, context: Record<string, unknown>) => VNode
PageComponent: (props: Record<string, unknown>, context: Record<string, unknown>) => VNode
SearchComponent: (props: Record<string, unknown>, context: Record<string, unknown>) => VNode
param: Ref<AccessListParams>
total: Ref<number>
openAddForm: () => void
}
@@ -183,7 +184,7 @@ export const useController = (): AuthApiManageControllerExposes => {
]
// 表格实例
const { TableComponent, PageComponent, loading, param, total, fetch } = useTable<AccessItem, AccessListParams>({
const { TableComponent, PageComponent, loading, param, fetch } = useTable<AccessItem, AccessListParams>({
config: createColumns(),
request: fetchAccessList,
watchValue: ['p', 'limit'],
@@ -196,6 +197,14 @@ export const useController = (): AuthApiManageControllerExposes => {
},
})
// 搜索实例
const { SearchComponent, search } = useSearch({
onSearch: (value) => {
param.value.search = value
fetch()
},
})
/**
* 打开添加授权API弹窗
*/
@@ -255,8 +264,8 @@ export const useController = (): AuthApiManageControllerExposes => {
fetch,
TableComponent,
PageComponent,
SearchComponent,
param,
total,
openAddForm,
}
}
@@ -403,32 +412,32 @@ export const useApiFormController = (props: ApiFormControllerProps): ApiFormCont
message: $t('t_0_1747617113090'),
trigger: 'input',
},
access_key_id: {
trigger: 'input',
validator: (rule: FormItemRule, value: string, callback: (error?: Error) => void) => {
if (!value) {
const mapTips = {
aliyun: $t('t_4_1745317314054'),
doge: '请输入多吉云AccessKeyId',
}
return callback(new Error(mapTips[param.value.type as keyof typeof mapTips] || $t('t_4_1745317314054')))
}
callback()
},
},
access_key_secret: {
trigger: 'input',
validator: (rule: FormItemRule, value: string, callback: (error?: Error) => void) => {
if (!value) {
const mapTips = {
aliyun: $t('t_5_1745317315285'),
doge: '请输入多吉云AccessKeySecret',
}
return callback(new Error(mapTips[param.value.type as keyof typeof mapTips] || $t('t_5_1745317315285')))
}
callback()
},
},
// access_key_id: {
// trigger: 'input',
// validator: (rule: FormItemRule, value: string, callback: (error?: Error) => void) => {
// if (!value) {
// const mapTips = {
// aliyun: $t('t_4_1745317314054'),
// doge: '请输入多吉云AccessKeyId',
// }
// return callback(new Error(mapTips[param.value.type as keyof typeof mapTips] || $t('t_4_1745317314054')))
// }
// callback()
// },
// },
// access_key_secret: {
// trigger: 'input',
// validator: (rule: FormItemRule, value: string, callback: (error?: Error) => void) => {
// if (!value) {
// const mapTips = {
// aliyun: $t('t_5_1745317315285'),
// doge: '请输入多吉云AccessKeySecret',
// }
// return callback(new Error(mapTips[param.value.type as keyof typeof mapTips] || $t('t_5_1745317315285')))
// }
// callback()
// },
// },
secret_access_key: {
required: true,
message: '请输入Secret Access Key',
@@ -478,6 +487,7 @@ export const useApiFormController = (props: ApiFormControllerProps): ApiFormCont
baidu: $t('t_3_1747271294475'),
volcengine: $t('t_3_1747365600828'),
qiniu: $t('t_3_1747984134586'),
doge: $t('t_0_1750320239265'),
}
return callback(new Error(mapTips[param.value.type as keyof typeof mapTips]))
}
@@ -493,6 +503,7 @@ export const useApiFormController = (props: ApiFormControllerProps): ApiFormCont
huawei: $t('t_3_1747042967608'),
baidu: $t('t_4_1747271294621'),
volcengine: $t('t_4_1747365600137'),
doge: $t('t_1_1750320241427'),
}
return callback(new Error(mapTips[param.value.type as keyof typeof mapTips]))
}
@@ -632,6 +643,7 @@ export const useApiFormController = (props: ApiFormControllerProps): ApiFormCont
case 'huaweicloud':
case 'baidu':
case 'volcengine':
case 'doge':
items.push(
useFormInput('AccessKey', 'config.access_key', { allowInput: noSideSpace }),
useFormInput('SecretKey', 'config.secret_key', { allowInput: noSideSpace }),
@@ -711,12 +723,6 @@ export const useApiFormController = (props: ApiFormControllerProps): ApiFormCont
useFormInput('Secret Access Key', 'config.secret_access_key', { allowInput: noSideSpace }),
)
break
case 'doge':
items.push(
useFormInput('AccessKeyId', 'config.access_key_id', { allowInput: noSideSpace }),
useFormInput('AccessKeySecret', 'config.access_key_secret', { allowInput: noSideSpace }),
)
break
case 'plugin':
items.push(
useFormCustom(() => {
@@ -743,39 +749,39 @@ export const useApiFormController = (props: ApiFormControllerProps): ApiFormCont
</NFormItem>
)
}),
useFormCustom(() => {
const pluginConfig = param.value.config as PluginAccessConfig
const getConfigValue = () => {
return typeof pluginConfig.config === 'string'
? pluginConfig.config
: JSON.stringify(pluginConfig.config, null, 2)
}
return (
<NFormItem
path="config.params"
v-slots={{
label: () => (
<div>
<NText></NText>
<NTooltip
v-slots={{
trigger: () => (
<span class="inline-flex ml-2 -mt-1 cursor-pointer text-base rounded-full w-[14px] h-[14px] justify-center items-center text-orange-600 border border-orange-600">
?
</span>
),
}}
>
{pluginActionTips.value}
</NTooltip>
</div>
),
}}
>
<NInput type="textarea" value={getConfigValue()} placeholder={pluginActionTips.value} rows={4} />
</NFormItem>
)
}),
useFormCustom(() => {
const pluginConfig = param.value.config as PluginAccessConfig
const getConfigValue = () => {
return typeof pluginConfig.config === 'string'
? pluginConfig.config
: JSON.stringify(pluginConfig.config, null, 2)
}
return (
<NFormItem
path="config.params"
v-slots={{
label: () => (
<div>
<NText></NText>
<NTooltip
v-slots={{
trigger: () => (
<span class="inline-flex ml-2 -mt-1 cursor-pointer text-base rounded-full w-[14px] h-[14px] justify-center items-center text-orange-600 border border-orange-600">
?
</span>
),
}}
>
{pluginActionTips.value}
</NTooltip>
</div>
),
}}
>
<NInput type="textarea" value={getConfigValue()} placeholder={pluginActionTips.value} rows={4} />
</NFormItem>
)
}),
)
break
default:
@@ -904,8 +910,8 @@ export const useApiFormController = (props: ApiFormControllerProps): ApiFormCont
break
case 'doge':
param.value.config = {
access_key_id: '',
access_key_secret: '',
access_key: '',
secret_key: '',
} as DogeAccessConfig
break
case 'plugin':

View File

@@ -189,6 +189,13 @@ export function createNodeFormConfig() {
]
},
/**
* 创建阿里云ESA相关字段
*/
aliyunEsaDeploy() {
return [this.input('站点ID', 'site_id', { placeholder: '请输入ESA站点ID' })]
},
/**
* 创建跳过选项字段
* @param valueRef 值引用

View File

@@ -1,13 +1,29 @@
import { NFormItem, NInputNumber, NSwitch } from 'naive-ui'
import {
NFormItem,
NInputNumber,
NSwitch,
NSelect,
NAutoComplete,
NInput,
NFlex,
NText,
NButton,
NGrid,
NFormItemGi,
NSpin,
NDropdown,
} from 'naive-ui'
import { useForm, useFormHooks, useModalHooks } from '@baota/naive-ui/hooks'
import { useStore } from '@components/FlowChart/useStore'
import { $t } from '@locales/index'
import rules from './verify'
import DnsProviderSelect from '@components/DnsProviderSelect'
import CAProviderSelect from '@components/CAProviderSelect'
import type { ApplyNodeConfig } from '@components/FlowChart/types'
import { deepClone } from '@baota/utils/data'
import { noSideSpace } from '@lib/utils'
import { getEabList } from '@api/access'
import SvgIcon from '@components/SvgIcon'
import { CACertificateAuthorization } from '@config/data'
export default defineComponent({
name: 'ApplyNodeDrawer',
@@ -45,6 +61,150 @@ export default defineComponent({
// 表单参数
const param = ref(deepClone(props.node.config))
// CA选项状态
const caOptions = ref<Array<{ label: string; value: string; icon: string }>>([])
const emailOptions = ref<string[]>([])
const isLoadingCA = ref(false)
const isLoadingEmails = ref(false)
const showEmailDropdown = ref(false)
const emailInputRef = ref<any>(null)
// 加载CA选项
const loadCAOptions = async () => {
isLoadingCA.value = true
try {
const { data } = await getEabList({ ca: '', p: 1, limit: 1000 }).fetch()
const uniqueCATypes = new Set<string>()
const caList: Array<{ label: string; value: string; icon: string }> = []
// 优先添加重要的CA类型确保始终显示
const priorityCATypes = ['letsencrypt', 'buypass', 'zerossl']
priorityCATypes.forEach((caType) => {
if (!uniqueCATypes.has(caType)) {
uniqueCATypes.add(caType)
const predefinedCA = Object.values(CACertificateAuthorization).find((ca) => ca.type === caType)
caList.push({
label: predefinedCA ? predefinedCA.name : caType.toUpperCase(),
value: caType,
icon: `cert-${caType}`,
})
}
})
// 添加API返回的其他CA类型去重
data?.forEach((item) => {
if (item.ca && !uniqueCATypes.has(item.ca)) {
uniqueCATypes.add(item.ca)
// 查找预定义配置中对应的CA信息
const predefinedCA = Object.values(CACertificateAuthorization).find((ca) => ca.type === item.ca)
caList.push({
label: predefinedCA ? predefinedCA.name : item.ca.toUpperCase(),
value: item.ca,
icon: predefinedCA ? `cert-${item.ca}` : 'cert-custom', // 如果不在预定义配置中使用custom图标否则使用对应的cert图标
})
}
})
caOptions.value = caList
} catch (error) {
console.error('加载CA选项失败:', error)
} finally {
isLoadingCA.value = false
}
}
// 加载邮件选项
const loadEmailOptions = async (ca: string) => {
if (!ca) return
isLoadingEmails.value = true
try {
const { data } = await getEabList({ ca, p: 1, limit: 1000 }).fetch()
emailOptions.value = data?.map((item) => item.email).filter(Boolean) || []
if (!emailOptions.value.length) {
param.value.email = ''
}
// 如果邮箱数组有内容且当前邮箱为空,自动填充第一个邮箱地址
if (emailOptions.value.length > 0 && emailOptions.value[0]) {
param.value.email = emailOptions.value[0]
}
} catch (error) {
console.error('加载邮件选项失败:', error)
} finally {
isLoadingEmails.value = false
}
}
// 处理CA选择变化
const handleCAChange = (value: string) => {
param.value.ca = value
loadEmailOptions(value)
}
// 跳转到CA管理页面
const goToAddCAProvider = () => {
window.open('/auto-deploy?type=caManage', '_blank')
}
// 渲染CA选择器标签
const renderLabel = (option: { label: string; value: string; icon: string }) => {
return (
<NFlex align="center">
<SvgIcon icon={option.icon} size="2rem" />
<NText>{option.label}</NText>
</NFlex>
)
}
// 渲染CA选择器单选标签
const renderSingleSelectTag = ({ option }: { option: any }) => {
return (
<NFlex align="center">
{option.label ? renderLabel(option) : <NText class="text-[#aaa]">{$t('t_0_1747990228780')}</NText>}
</NFlex>
)
}
// 过滤函数
const handleFilter = (pattern: string, option: any): boolean => {
return option.label.toLowerCase().includes(pattern.toLowerCase())
}
// 处理邮箱输入框焦点
const handleEmailFocus = () => {
if (emailOptions.value.length > 0) {
showEmailDropdown.value = true
}
}
// 处理邮箱输入框失焦
const handleEmailBlur = () => {
// 延迟关闭下拉,确保点击选项有时间触发
setTimeout(() => {
showEmailDropdown.value = false
}, 200)
}
// 选择邮箱地址
const handleSelectEmail = (email: string) => {
param.value.email = email
showEmailDropdown.value = false
emailInputRef.value?.blur()
}
// 创建邮箱下拉选项
const emailDropdownOptions = computed(() => {
return emailOptions.value.map((email) => ({
label: email,
key: email,
}))
})
// 判断是否需要输入框letsencrypt、buypass、zerossl
const shouldUseInputForEmail = computed(() => {
return ['letsencrypt', 'buypass', 'zerossl'].includes(param.value.ca)
})
// 表单渲染配置
const config = computed(() => {
// 基本选项
@@ -80,27 +240,80 @@ export default defineComponent({
type: 'custom' as const,
render: () => {
return (
<CAProviderSelect
path="eabId"
value={param.value.eabId}
email={param.value.email}
ca={param.value.ca}
{...{
'onUpdate:value': (val: { value: string; ca: string; email: string }) => {
param.value.eabId = val.value
param.value.ca = val.ca
// 始终更新邮件,确保 Let's Encrypt 和 Buypass 的邮件能正确显示
param.value.email = val.email
},
}}
/>
<NSpin show={isLoadingCA.value}>
<NGrid cols={24}>
<NFormItemGi span={13} label={$t('证书CA')} path="ca" showRequireMark={true}>
<NSelect
value={param.value.ca}
options={caOptions.value}
renderLabel={renderLabel}
renderTag={renderSingleSelectTag}
filterable
filter={handleFilter}
loading={isLoadingCA.value}
placeholder={$t('t_0_1747990228780')}
onUpdateValue={handleCAChange}
class="flex-1 w-full"
v-slots={{
empty: () => {
return <span class="text-[1.4rem]">{$t('t_2_1747990228008')}</span>
},
}}
/>
</NFormItemGi>
<NFormItemGi span={11}>
<NButton class="mx-[8px]" onClick={goToAddCAProvider}>
{$t('添加CA授权')}
</NButton>
<NButton onClick={loadCAOptions} loading={isLoadingCA.value}>
{$t('t_0_1746497662220')}
</NButton>
</NFormItemGi>
</NGrid>
</NSpin>
)
},
},
{
type: 'custom' as const,
render: () => {
return (
<NFormItem label={$t('t_68_1745289354676')} path="email">
{shouldUseInputForEmail.value ? (
<NDropdown
trigger="manual"
show={showEmailDropdown.value}
options={emailDropdownOptions.value}
onSelect={handleSelectEmail}
placement="bottom-start"
style="width: 100%"
>
<NInput
ref={emailInputRef}
v-model:value={param.value.email}
placeholder={$t('t_2_1748052862259')}
clearable
loading={isLoadingEmails.value}
onFocus={handleEmailFocus}
onBlur={handleEmailBlur}
class="w-full"
/>
</NDropdown>
) : (
<NSelect
v-model:value={param.value.email}
options={emailOptions.value.map((email) => ({ label: email, value: email }))}
placeholder={$t('t_2_1748052862259')}
clearable
filterable
loading={isLoadingEmails.value}
class="w-full"
/>
)}
</NFormItem>
)
},
},
useFormInput($t('t_68_1745289354676'), 'email', {
placeholder: $t('t_2_1748052862259'),
allowInput: noSideSpace,
}),
{
type: 'custom' as const,
@@ -232,8 +445,37 @@ export default defineComponent({
// 创建表单实例
const { component: Form, data, example } = useForm<ApplyNodeConfig>({ defaultValue: param, config, rules })
onMounted(() => {
// 监听CA值变化自动加载邮箱选项
watch(
() => param.value.ca,
async (newCA) => {
if (newCA) {
await loadEmailOptions(newCA)
} else {
emailOptions.value = []
param.value.email = ''
showEmailDropdown.value = false
}
},
)
// 监听邮箱选项变化,如果当前下拉显示且没有选项了就关闭下拉
watch(
() => emailOptions.value,
(newOptions) => {
if (showEmailDropdown.value && newOptions.length === 0) {
showEmailDropdown.value = false
}
},
)
onMounted(async () => {
advancedOptions.value = false
await loadCAOptions()
// 如果初始化时已有CA值加载对应的邮箱选项
if (param.value.ca) {
await loadEmailOptions(param.value.ca)
}
})
// 确认事件触发

View File

@@ -225,6 +225,9 @@ export default defineComponent({
case 'aliyun-oss':
config.push(...formConfig.storageDeploy())
break
case 'aliyun-esa':
config.push(...formConfig.aliyunEsaDeploy())
break
case 'plugin':
// 插件部署配置
config.push(

View File

@@ -1,7 +1,7 @@
import { FormRules } from 'naive-ui'
import { $t } from '@locales/index'
import { createNodeValidator } from '@workflowView/lib/NodeValidator'
import { isDomain } from '@baota/utils/business'
import { isDomain, isWildcardDomain } from '@baota/utils/business'
// 创建部署节点验证器
const validator = createNodeValidator($t('t_11_1747817612051'))
@@ -51,7 +51,7 @@ export default {
if (!value) {
return new Error($t('t_0_1744958839535'))
}
if (!isDomain(value)) {
if (!isWildcardDomain(value)) {
return new Error($t('t_0_1744958839535'))
}
return true

View File

@@ -11,6 +11,7 @@ import verify from './verify'
import { NotifyNodeConfig } from '@components/FlowChart/types'
import { deepClone } from '@baota/utils/data'
import { noSideSpace } from '@lib/utils'
import { NSwitch, NFormItem, NText } from 'naive-ui'
export default defineComponent({
name: 'NotifyNodeDrawer',
@@ -25,6 +26,7 @@ export default defineComponent({
provider_id: '',
subject: '',
body: '',
skip: false,
},
}),
},
@@ -36,6 +38,14 @@ export default defineComponent({
const { handleError } = useError()
const param = ref(deepClone(props.node.config))
// 创建一个用于开关的响应式值(发送通知的状态)
const shouldSendNotify = computed({
get: () => !param.value.skip,
set: (value: boolean) => {
param.value.skip = !value
},
})
// 表单渲染配置
const formConfig: FormConfig = [
useFormInput($t('t_0_1745920566646'), 'subject', {
@@ -58,6 +68,21 @@ export default defineComponent({
}}
/>
)),
useFormCustom(() => (
<NFormItem label={$t('t_2_1750320237611')} path="skip">
<NText></NText>
<NSwitch
v-model:value={shouldSendNotify.value}
checkedValue={true}
uncheckedValue={false}
class="mx-[.5rem]"
v-slots={{
checked: () => $t('t_3_1750320237991'),
unchecked: () => $t('t_11_1747280809178'),
}}
/>
</NFormItem>
)),
]
// 创建表单实例

View File

@@ -11,6 +11,7 @@ import type { FormConfig } from '@baota/naive-ui/types/form'
import type { VNode } from 'vue'
import { useError } from '@baota/hooks/error'
import { deepClone } from '@baota/utils/data'
import { isUndefined } from '@baota/utils/type'
export default defineComponent({
name: 'StartNodeDrawer',
@@ -27,7 +28,7 @@ export default defineComponent({
},
},
setup(props) {
const { updateNodeConfig, isRefreshNode } = useStore()
const { updateNodeConfig, isRefreshNode, flowData } = useStore()
// 弹窗辅助
const { confirm } = useModalHooks()
// 错误处理
@@ -90,7 +91,17 @@ export default defineComponent({
return (
<NGrid cols={24} xGap={24}>
<NFormItemGi label={$t('t_2_1744879616413')} span={8} showRequireMark path="type">
<NSelect class="w-full" options={cycleTypeOptions} v-model:value={param.value.type} />
<NSelect
class="w-full"
options={cycleTypeOptions}
v-model:value={param.value.type}
onUpdateValue={(val: 'day' | 'week' | 'month') => {
if (val) {
param.value.type = val
updateParamValueByType(val)
}
}}
/>
</NFormItemGi>
{param.value.type !== 'day' && (
@@ -99,9 +110,7 @@ export default defineComponent({
<NSelect
value={param.value.week}
onUpdateValue={(val: number) => {
if (typeof val === 'number') {
param.value.week = val
}
param.value.week = val
}}
options={weekOptions}
/>
@@ -161,19 +170,24 @@ export default defineComponent({
// 更新参数的函数
const updateParamValue = (updates: StartNodeConfig) => {
console.log(updates)
let newParams = { ...updates }
if (newParams.exec_type === 'manual') {
// 小时随机 1-6
const randomHour = Math.floor(Math.random() * 6) + 1
// 分钟每5分钟随机0-55
const randomMinute = Math.floor(Math.random() * 12) * 5
newParams = {
...newParams,
hour: randomHour,
minute: randomMinute,
}
param.value = newParams
// if (newParams.exec_type === 'manual') {
// 小时随机 1-6
const randomHour = Math.floor(Math.random() * 4) + 1
// 分钟每5分钟随机0-55
const randomMinute = Math.floor(Math.random() * 12) * 5
newParams = {
...newParams,
hour: randomHour,
minute: randomMinute,
}
param.value = newParams
// }
}
const updateParamValueByType = (type: 'day' | 'week' | 'month') => {
updateParamValue(DEFAULT_AUTO_SETTINGS[type] as StartNodeConfig)
}
// 监听执行类型变化
@@ -210,6 +224,13 @@ export default defineComponent({
}
})
onMounted(() => {
if (isUndefined(flowData.value.id)) {
updateParamValueByType('day')
updateNodeConfig(props.node.id, param.value) // 更新节点配置
}
})
return () => (
<div class="apply-node-drawer">
<Form labelPlacement="top" />

View File

@@ -18,7 +18,7 @@ export default defineComponent({
},
},
setup(props) {
const { TableComponent, PageComponent, handleOpenAddForm, total } = useCAManageController(props)
const { TableComponent, PageComponent, handleOpenAddForm } = useCAManageController(props)
return () => (
<BaseComponent
v-slots={{
@@ -40,15 +40,7 @@ export default defineComponent({
),
footerRight: () => (
<div class="flex justify-end mt-4">
<PageComponent
v-slots={{
prefix: () => (
<span>
{$t('t_15_1745227839354')} {total.value} {$t('t_16_1745227838930')}
</span>
),
}}
/>
<PageComponent />
</div>
),
}}

View File

@@ -18,15 +18,14 @@ export default defineComponent({
const {
TableComponent,
PageComponent,
SearchComponent,
isDetectionAddWorkflow,
isDetectionOpenCAManage,
isDetectionOpenAddCAForm,
handleAddWorkflow,
handleOpenCAManage,
hasChildRoutes,
param,
fetch,
data,
} = useController()
const router = useRouter()
// 获取主题变量
@@ -65,26 +64,7 @@ export default defineComponent({
</NButton>
</NSpace>
),
headerRight: () => (
<NInput
v-model:value={param.value.search}
onKeydown={(e: KeyboardEvent) => {
if (e.key === 'Enter') fetch()
}}
onClear={() => useTimeoutFn(fetch, 100)}
placeholder={$t('t_1_1745227838776')}
clearable
size="large"
class="min-w-[300px]"
v-slots={{
suffix: () => (
<div class="flex items-center" onClick={fetch}>
<Search class="text-[var(--text-color-3)] w-[1.6rem] cursor-pointer font-bold" />
</div>
),
}}
></NInput>
),
headerRight: () => <SearchComponent placeholder={$t('t_1_1745227838776')} />,
content: () => (
<div class="rounded-lg ">
<TableComponent
@@ -99,11 +79,7 @@ export default defineComponent({
),
footerRight: () => (
<div class="mt-4 flex justify-end">
<PageComponent
v-slots={{
prefix: () => <span>{$t('t_0_1746773350551', [data.value.total])}</span>,
}}
/>
<PageComponent />
</div>
),
}}

View File

@@ -1,7 +1,16 @@
import { NSwitch, NTag, NButton, NSpace, NFlex, NText, NFormItem, NSelect } from 'naive-ui'
import { useRoute, useRouter } from 'vue-router'
import { useStore } from '@autoDeploy/useStore'
import { useDialog, useTable, useModal, useFormHooks, useForm, useModalHooks, useMessage } from '@baota/naive-ui/hooks'
import {
useDialog,
useTable,
useModal,
useFormHooks,
useForm,
useModalHooks,
useMessage,
useSearch,
} from '@baota/naive-ui/hooks'
import { useStore as useWorkflowViewStore } from '@autoDeploy/children/workflowView/useStore'
import { useError } from '@baota/hooks/error'
import AddWorkflowModal from './components/WorkflowModal'
@@ -152,7 +161,7 @@ export const useController = () => {
]
// 表格实例
const { TableComponent, PageComponent, loading, param, data, fetch } = useTable<WorkflowItem, WorkflowListParams>({
const { TableComponent, PageComponent, loading, param, fetch } = useTable<WorkflowItem, WorkflowListParams>({
config: createColumns(),
request: fetchWorkflowList,
storage: 'autoDeployPageSize',
@@ -161,6 +170,14 @@ export const useController = () => {
watchValue: ['p', 'limit'],
})
// 搜索实例
const { SearchComponent } = useSearch({
onSearch: (value) => {
param.value.search = value
fetch()
},
})
// 节流渲染
const throttleFn = useThrottleFn(() => {
setTimeout(() => {
@@ -229,7 +246,7 @@ export const useController = () => {
title: exec_type === 'manual' ? $t('t_2_1745457488661') : $t('t_3_1745457486983'),
content: exec_type === 'manual' ? $t('t_4_1745457497303') : $t('t_5_1745457494695'),
onPositiveClick: () => setWorkflowExecType({ id, exec_type }),
onNegativeClick: fetch,
onNegativeClick: () => fetch(),
onClose: fetch,
})
}
@@ -243,8 +260,8 @@ export const useController = () => {
title: !active ? $t('t_6_1745457487560') : $t('t_7_1745457487185'),
content: !active ? $t('t_8_1745457496621') : $t('t_9_1745457500045'),
onPositiveClick: () => setWorkflowActive({ id, active }),
onNegativeClick: fetch,
onClose: fetch,
onNegativeClick: () => fetch(),
onClose: () => fetch(),
})
}
@@ -335,6 +352,7 @@ export const useController = () => {
return {
TableComponent,
PageComponent,
SearchComponent,
isDetectionAddWorkflow, // 检测是否需要添加工作流
isDetectionOpenCAManage, // 检测是否需要打开CA授权管理弹窗
isDetectionOpenAddCAForm, // 检测是否需要打开添加CA授权弹窗
@@ -348,7 +366,6 @@ export const useController = () => {
handleOpenCAManage, // 打开CA授权管理弹窗
hasChildRoutes,
fetch,
data,
loading,
param,
}
@@ -504,8 +521,14 @@ export const useHistoryController = (id: string) => {
* @returns 返回CA授权类型名称
*/
const handleCertAuth = (type: string) => {
const name = type.replaceAll('.', '').replaceAll("'", '').replaceAll(' ', '').toLowerCase() // 处理类型中的特殊字符
return CACertificateAuthorization[name as keyof typeof CACertificateAuthorization].type
// console.log(type)
try {
const name = type.replaceAll('.', '').replaceAll("'", '').replaceAll(' ', '').toLowerCase() // 处理类型中的特殊字符
const caType = CACertificateAuthorization[name as keyof typeof CACertificateAuthorization].type
return { type: caType, icon: type }
} catch (error) {
return { type, icon: 'custom' }
}
}
/**
@@ -528,11 +551,11 @@ export const useCAManageController = (props: { type: string }) => {
key: 'ca',
width: 200,
render: (row: EabItem) => {
const name = handleCertAuth(row.ca)
const { type, icon } = handleCertAuth(row.ca)
return (
<NFlex align="center">
<SvgIcon icon={`cert-${name}`} size="2rem" />
<NText>{name}</NText>
<SvgIcon icon={`cert-${icon}`} size="2rem" />
<NText>{type}</NText>
</NFlex>
)
},
@@ -606,10 +629,14 @@ export const useCAManageController = (props: { type: string }) => {
* @param {EabItem} row - CA授权数据
*/
const handleEdit = (row: EabItem) => {
const caTypes = Object.values(CACertificateAuthorization).map((item) => item.type)
const isCustomCa = !caTypes.includes(row.ca)
// 填充表单数据 - 添加编辑模式标识
Object.assign(caFormData.value, {
email: row.email,
ca: row.ca,
ca: isCustomCa ? 'custom' : row.ca,
caName: isCustomCa ? row.ca : '',
Kid: row.Kid || '',
HmacEncoded: row.HmacEncoded || '',
CADirURL: row.CADirURL || '',
@@ -666,7 +693,6 @@ export const useCAManageController = (props: { type: string }) => {
*/
export const useCAFormController = (props?: { isEdit?: boolean; editId?: string }) => {
const { handleError } = useError()
const message = useMessage()
const { confirm } = useModalHooks()
const { useFormInput, useFormCustom } = useFormHooks()
@@ -710,10 +736,26 @@ export const useCAFormController = (props?: { isEdit?: boolean; editId?: string
// 自定义类型必填 CADirURL
if (currentCa === 'custom') {
rules.caName = {
required: true,
message: '请输入CA名称',
trigger: ['blur', 'input'],
}
rules.CADirURL = {
required: true,
message: $t('t_4_1750129259795'),
trigger: ['blur', 'input'],
validator: (rule: any, value: string) => {
if (!value) {
return new Error('请输入CA目录URL')
}
// Basic URL validation
try {
new URL(value)
return true
} catch (e) {
return new Error('请输入有效的URL地址')
}
},
}
}
@@ -769,9 +811,6 @@ export const useCAFormController = (props?: { isEdit?: boolean; editId?: string
// 表单配置
const formConfig = computed(() => [
useFormInput($t('t_1_1745735764953'), 'email', {
placeholder: $t('t_0_1747965909665'),
}),
useFormCustom(() => {
return (
<NFormItem label={$t('t_9_1747903669360')} path="ca">
@@ -792,11 +831,17 @@ export const useCAFormController = (props?: { isEdit?: boolean; editId?: string
</NFormItem>
)
}),
useFormInput($t('t_1_1745735764953'), 'email', {
placeholder: $t('t_0_1747965909665'),
}),
// 条件显示CADirURL字段
...(shouldShowCADirURL.value
? [
useFormInput($t('t_5_1750129253961'), 'CADirURL', {
placeholder: $t('t_6_1750129255766'),
useFormInput('CA名称', 'caName', {
placeholder: '请输入CA提供商名称',
}),
useFormInput($t('ACME服务URL地址'), 'CADirURL', {
placeholder: $t('请输入ACME服务URL地址'),
}),
]
: []),
@@ -828,12 +873,17 @@ export const useCAFormController = (props?: { isEdit?: boolean; editId?: string
// 提交表单
const submitForm = async (formData: any) => {
try {
const dataToSubmit = { ...formData }
if (dataToSubmit.ca === 'custom') {
dataToSubmit.ca = dataToSubmit.caName
}
delete dataToSubmit.caName // 删除临时字段
if (props?.isEdit && props?.editId) {
// 编辑模式
await updateExistingEab({ ...formData, id: props.editId })
await updateExistingEab({ ...dataToSubmit, id: props.editId })
} else {
// 新增模式
await addNewEab(formData)
await addNewEab(dataToSubmit)
}
return true
} catch (error) {
@@ -843,7 +893,7 @@ export const useCAFormController = (props?: { isEdit?: boolean; editId?: string
}
// 表单实例
const { component: CAForm } = useForm({
const { component: CAForm, fetch } = useForm({
config: formConfig,
rules: getFormRules(),
defaultValue: caFormData,
@@ -853,7 +903,7 @@ export const useCAFormController = (props?: { isEdit?: boolean; editId?: string
// 确认提交表单
confirm(async (close) => {
try {
await submitForm(caFormData.value)
await fetch()
close()
} catch (error) {
handleError(error)

View File

@@ -13,12 +13,10 @@ import EmptyState from '@components/TableEmptyState'
export default defineComponent({
name: 'CertManage',
setup() {
const { TableComponent, PageComponent, fetch, data, param, openUploadModal, getRowClassName } = useController()
const { TableComponent, PageComponent, SearchComponent, openUploadModal, getRowClassName } = useController()
const cssVar = useThemeCssVar(['contentPadding', 'borderColor', 'headerHeight', 'iconColorHover'])
// 挂载时请求数据
onMounted(() => fetch())
const { theme, themeOverrides } = useTheme()
console.log(theme.value, themeOverrides.value)
return () => (
<div class="h-full flex flex-col" style={cssVar.value}>
<div class="mx-auto max-w-[1600px] w-full p-6">
@@ -29,26 +27,7 @@ export default defineComponent({
{$t('t_13_1745227838275')}
</NButton>
),
headerRight: () => (
<NInput
v-model:value={param.value.search}
onKeydown={(e: KeyboardEvent) => {
if (e.key === 'Enter') fetch()
}}
onClear={() => useThrottleFn(fetch, 100)}
placeholder={$t('t_14_1745227840904')}
clearable
size="large"
class="min-w-[300px]"
v-slots={{
suffix: () => (
<div class="flex items-center" onClick={fetch}>
<Search class="text-[var(--text-color-3)] w-[1.6rem] cursor-pointer font-bold" />
</div>
),
}}
></NInput>
),
headerRight: () => <SearchComponent placeholder={$t('t_14_1745227840904')} />,
content: () => (
<div class="rounded-lg">
<TableComponent
@@ -62,15 +41,7 @@ export default defineComponent({
),
footerRight: () => (
<div class="mt-4 flex justify-end">
<PageComponent
v-slots={{
prefix: () => (
<span>
{$t('t_15_1745227839354')} {data.value.total} {$t('t_16_1745227838930')}
</span>
),
}}
/>
<PageComponent />
</div>
),
}}

View File

@@ -8,6 +8,7 @@ import {
useForm,
useLoadingMask,
useMessage,
useSearch,
} from '@baota/naive-ui/hooks'
import { useError } from '@baota/hooks/error'
import { $t } from '@locales/index'
@@ -135,6 +136,14 @@ export const useController = () => {
storage: 'certManagePageSize',
})
// 搜索实例
const { SearchComponent } = useSearch({
onSearch: (value) => {
param.value.search = value
fetch()
},
})
/**
* @description 打开上传证书弹窗
*/
@@ -189,14 +198,14 @@ export const useController = () => {
})
}
onMounted(() => fetch())
return {
loading,
fetch,
TableComponent,
PageComponent,
SearchComponent,
getRowClassName,
param,
data,
openUploadModal,
openViewModal,
}

View File

@@ -18,7 +18,8 @@ export default defineComponent({
name: 'MonitorManage',
setup() {
// 使用控制器获取数据和方法
const { TableComponent, PageComponent, param, fetch, data, openAddForm, isDetectionAddMonitor } = useController()
const { TableComponent, PageComponent, SearchComponent, fetch, openAddForm, isDetectionAddMonitor } =
useController()
// 获取主题CSS变量
const cssVar = useThemeCssVar(['contentPadding', 'borderColor', 'headerHeight', 'iconColorHover'])
@@ -44,26 +45,7 @@ export default defineComponent({
</NButton>
),
// 头部右侧区域 - 搜索框
headerRight: () => (
<NInput
v-model:value={param.value.search}
onKeydown={(e: KeyboardEvent) => {
if (e.key === 'Enter') fetch()
}}
onClear={() => fetch()}
placeholder={$t('t_12_1745289356974')}
clearable
size="large"
class="min-w-[300px]"
v-slots={{
suffix: () => (
<div class="flex items-center" onClick={fetch}>
<Search class="text-[var(--text-color-3)] w-[1.6rem] cursor-pointer font-bold" />
</div>
),
}}
></NInput>
),
headerRight: () => <SearchComponent placeholder={$t('t_12_1745289356974')} />,
// 内容区域 - 监控表格
content: () => (
<div class="rounded-lg">
@@ -78,15 +60,7 @@ export default defineComponent({
// 底部右侧区域 - 分页组件
footerRight: () => (
<div class="mt-4 flex justify-end">
<PageComponent
v-slots={{
prefix: () => (
<span>
{$t('t_15_1745227839354')} {data.value.total} {$t('t_16_1745227838930')}
</span>
),
}}
/>
<PageComponent />
</div>
),
}}

Some files were not shown because too many files have changed in this diff Show More