【同步】前端项目源码

【修复】工作流兼容问题
This commit is contained in:
chudong
2025-05-10 11:53:11 +08:00
parent c514471adc
commit f1a75afaba
584 changed files with 55714 additions and 110 deletions

BIN
build/.DS_Store vendored Normal file

Binary file not shown.

View File

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 66 KiB

View File

@@ -5,8 +5,8 @@
<link rel="icon" href="./favicon.ico" /> <link rel="icon" href="./favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>ALLinSSL</title> <title>ALLinSSL</title>
<script type="module" crossorigin src="./static/js/main-D8Z-8iPZ.js"></script> <script type="module" crossorigin src="./static/js/main-B314ly27.js"></script>
<link rel="stylesheet" crossorigin href="./static/css/style-CZclU6lr.css"> <link rel="stylesheet" crossorigin href="./static/css/style-C77exc-U.css">
</head> </head>
<body> <body>
<div id="app"></div> <div id="app"></div>

File diff suppressed because one or more lines are too long

View File

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

View File

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 98 KiB

View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

Before

Width:  |  Height:  |  Size: 364 KiB

After

Width:  |  Height:  |  Size: 364 KiB

View File

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{d as e,aO as r,aQ as a,z as l,U as t,A as n,bR as s,aD as i,l as o,aE as f,bS as p,b6 as u}from"./main-B314ly27.js";const c=e({name:"Flex",props:Object.assign(Object.assign({},n.props),{align:String,justify:{type:String,default:"start"},inline:Boolean,vertical:Boolean,reverse:Boolean,size:{type:[String,Number,Array],default:"medium"},wrap:{type:Boolean,default:!0}}),setup(e){const{mergedClsPrefixRef:r,mergedRtlRef:a}=t(e),l=n("Flex","-flex",void 0,s,e,r);return{rtlEnabled:i("Flex",a,r),mergedClsPrefix:r,margin:o((()=>{const{size:r}=e;if(Array.isArray(r))return{horizontal:r[0],vertical:r[1]};if("number"==typeof r)return{horizontal:r,vertical:r};const{self:{[f("gap",r)]:a}}=l.value,{row:t,col:n}=p(a);return{horizontal:u(n),vertical:u(t)}}))}},render(){const{vertical:e,reverse:t,align:n,inline:s,justify:i,margin:o,wrap:f,mergedClsPrefix:p,rtlEnabled:u}=this,c=r(a(this),!1);return c.length?l("div",{role:"none",class:[`${p}-flex`,u&&`${p}-flex--rtl`],style:{display:s?"inline-flex":"flex",flexDirection:e&&!t?"column":e&&t?"column-reverse":!e&&t?"row-reverse":"row",justifyContent:i,flexWrap:!f||e?"nowrap":"wrap",alignItems:n,gap:`${o.vertical}px ${o.horizontal}px`}},c):null}});export{c as N};

View File

@@ -1 +1 @@
import{d as a,c as l,o as n,a as r}from"./main-D8Z-8iPZ.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,E as l,F as n,G as r}from"./main-B314ly27.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

@@ -0,0 +1 @@
import{d as c,E as n,F as r,G as t}from"./main-B314ly27.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 l,c as n,o as r,a as t}from"./main-D8Z-8iPZ.js";const o={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 1024 1024"},s=l({name:"PlusOutlined",render:function(l,s){return r(),n("svg",o,s[0]||(s[0]=[t("defs",null,null,-1),t("path",{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z",fill:"currentColor"},null,-1),t("path",{d:"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z",fill:"currentColor"},null,-1)]))}}),w={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 32 32"},a=l({name:"Search",render:function(l,o){return r(),n("svg",w,o[0]||(o[0]=[t("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)]))}});export{s as P,a as S}; import{d as l,E as n,F as r,G as t}from"./main-B314ly27.js";const o={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 1024 1024"},s=l({name:"PlusOutlined",render:function(l,s){return r(),n("svg",o,s[0]||(s[0]=[t("defs",null,null,-1),t("path",{d:"M482 152h60q8 0 8 8v704q0 8-8 8h-60q-8 0-8-8V160q0-8 8-8z",fill:"currentColor"},null,-1),t("path",{d:"M176 474h672q8 0 8 8v60q0 8-8 8H176q-8 0-8-8v-60q0-8 8-8z",fill:"currentColor"},null,-1)]))}}),w={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",viewBox:"0 0 32 32"},e=l({name:"Search",render:function(l,o){return r(),n("svg",w,o[0]||(o[0]=[t("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)]))}});export{s as P,e as S};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{c as s}from"./index-yiIyVSv0.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),d=c=>s("/v1/access/del_access",c),t=c=>s("/v1/access/get_all",c);export{a,t as b,d,c as g,e as u}; import{c as s}from"./index-4UwdEH-y.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),d=c=>s("/v1/access/del_access",c),t=c=>s("/v1/access/get_all",c);export{a,t as b,d,c as g,e as u};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{be as $,bp as a,b_ as t,br as n,by as r,bt as s}from"./main-D8Z-8iPZ.js";import{d as e,t as o,c as f}from"./test-DbYqM2ZR.js";var A=$((function($,n){return a($+1,(function(){var a=arguments[$];if(null!=a&&t(a[n]))return a[n].apply(a,Array.prototype.slice.call(arguments,0,$));throw new TypeError(e(a)+' does not have a method named "'+n+'"')}))}))(1,"split");const p="(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[1-9])",z=new RegExp(`^${p}\\.${p}\\.${p}\\.${p}$`),Z="[0-9A-Fa-f]{1,4}",u=new RegExp([`^(${Z}:){7}${Z}$`,`^(${Z}:){1,7}:$`,"^:((:[0-9A-Fa-f]{1,4}){1,7}|:)$",`^(${Z}:){1,6}:${Z}$`,`^(${Z}:){1,5}(:${Z}){1,2}$`,`^(${Z}:){1,4}(:${Z}){1,3}$`,`^(${Z}:){1,3}(:${Z}){1,4}$`,`^(${Z}:){1,2}(:${Z}){1,5}$`,`^${Z}:(:${Z}){1,6}$`,"^fe80:(:[0-9A-Fa-f]{1,4}){0,4}%[0-9A-Za-z]{1,}$",`^::((ffff(:0{1,4})?:)?${p}\\.${p}\\.${p}\\.${p})$`,`^(${Z}:){1,4}:${p}\\.${p}\\.${p}\\.${p}$`].join("|")),d=new RegExp(`^${p}\\.${p}\\.${p}\\.${p}(\\/([1-2][0-9]|3[0-2]|[1-9]))?$`),i=o(/^[^\s@]+@[^\s@]+\.[^\s@]+$/);o(/^1[3-9]\d{9}$/),o(/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/);const c=o(/^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/),m=o(z),l=o(u),h=$=>m($)||l($);o(d);const x=o(/^([1-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/);o(/^([0-9A-Fa-f]{2}-){5}[0-9A-Fa-f]{2}$/),o(/^[\u4e00-\u9fa5]+$/);const b=o(/^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),w=o(/^(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)|(?:\*))\.)+(?:[a-zA-Z\u00a1-\uffff]{2,}|xn--[a-zA-Z0-9]+)$/),B=o(/^\*\.(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),F=($,a=",")=>f(r(!0),s(($=>b($)||B($)||w($)),A(a,$)));n((($,a=2,t=!0,n="")=>{if(0===$)return t?"0 B":"0";const r=["B","KB","MB","GB","TB"],s=($,e)=>{const o=r[e],f=0===e||0===a?Math.round($).toString():$.toFixed(a);return n&&o===n||$<1024||e>=r.length-1?t?`${f} ${o}`:f:s($/1024,e+1)};return s($,0)}));export{x as H,b as N,h as O,c as T,F as W,i as w}; import{bb as $,bm as a,bY as t,bo as n,bv as s,bq as r}from"./main-B314ly27.js";import{d as e,t as o,c as f}from"./test-BoDPkCFc.js";var A=$((function($,n){return a($+1,(function(){var a=arguments[$];if(null!=a&&t(a[n]))return a[n].apply(a,Array.prototype.slice.call(arguments,0,$));throw new TypeError(e(a)+' does not have a method named "'+n+'"')}))}))(1,"split");const p="(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])",z=new RegExp(`^${p}\\.${p}\\.${p}\\.${p}$`),Z="[0-9A-Fa-f]{1,4}",u=new RegExp([`^(${Z}:){7}${Z}$`,`^(${Z}:){1,7}:$`,"^:((:[0-9A-Fa-f]{1,4}){1,7}|:)$",`^(${Z}:){1,6}:${Z}$`,`^(${Z}:){1,5}(:${Z}){1,2}$`,`^(${Z}:){1,4}(:${Z}){1,3}$`,`^(${Z}:){1,3}(:${Z}){1,4}$`,`^(${Z}:){1,2}(:${Z}){1,5}$`,`^${Z}:(:${Z}){1,6}$`,"^fe80:(:[0-9A-Fa-f]{1,4}){0,4}%[0-9A-Za-z]{1,}$",`^::((ffff(:0{1,4})?:)?${p}\\.${p}\\.${p}\\.${p})$`,`^(${Z}:){1,4}:${p}\\.${p}\\.${p}\\.${p}$`].join("|")),d=new RegExp(`^${p}\\.${p}\\.${p}\\.${p}(\\/([1-2][0-9]|3[0-2]|[1-9]))?$`),i=o(/^[^\s@]+@[^\s@]+\.[^\s@]+$/);o(/^1[3-9]\d{9}$/),o(/^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/);const c=o(/^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+/),m=o(z),l=o(u),b=$=>m($)||l($);o(d);const h=o(/^([1-9]|[1-9][0-9]{1,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/);o(/^([0-9A-Fa-f]{2}-){5}[0-9A-Fa-f]{2}$/),o(/^[\u4e00-\u9fa5]+$/);const x=o(/^(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),B=o(/^(?:(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)|(?:\*))\.)+(?:[a-zA-Z\u00a1-\uffff]{2,}|xn--[a-zA-Z0-9]+)$/),F=o(/^\*\.(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}$/),g=($,a=",")=>f(s(!0),r(($=>x($)||F($)||B($)),A(a,$)));n((($,a=2,t=!0,n="")=>{if(0===$)return t?"0 B":"0";const s=["B","KB","MB","GB","TB"],r=($,e)=>{const o=s[e],f=0===e||0===a?Math.round($).toString():$.toFixed(a);return n&&o===n||$<1024||e>=s.length-1?t?`${f} ${o}`:f:r($/1024,e+1)};return r($,0)}));export{h as H,x as N,b as O,c as T,g as W,i as w};

View File

@@ -0,0 +1 @@
import{d as e,bW as a,m as o,$ as r,x as t,y as s,c as d}from"./main-B314ly27.js";import{u as i}from"./index-BLs5ik22.js";import{u as l}from"./index-4UwdEH-y.js";import{r as n}from"./verify-B9e1eJYi.js";import"./index-BK07zJJ4.js";import"./test-BoDPkCFc.js";import"./useStore--US7DZf4.js";const p=e({name:"UploadNodeDrawer",props:{node:{type:Object,default:()=>({id:"",config:{cert:"",key:""}})}},setup(e){const{updateNodeConfig:p,isRefreshNode:m}=i(),{useFormTextarea:c}=o(),{config:u}=a(e.node),{confirm:f}=s(),{handleError:j}=l(),v=[c(r("t_34_1745735771147"),"cert",{placeholder:r("t_35_1745735781545"),rows:6}),c(r("t_36_1745735769443"),"key",{placeholder:r("t_37_1745735779980"),rows:6})],{component:y,data:_,example:x}=t({defaultValue:u,config:v,rules:n});return f((async a=>{var o;try{await(null==(o=x.value)?void 0:o.validate()),p(e.node.id,_.value),m.value=e.node.id,a()}catch(r){j(r)}})),()=>d("div",{class:"upload-node-drawer"},[d(y,{labelPlacement:"top"},null)])}});export{p as default};

View File

@@ -0,0 +1 @@
import{d as e,r as a,l as t,m as o,$ as s,c as r,bJ as d,p as i,x as l,y as p}from"./main-B314ly27.js";import{u as n}from"./index-BLs5ik22.js";import{r as m}from"./verify-Dn31Klc9.js";import{D as u}from"./index-BXuU4VQs.js";import"./index-BK07zJJ4.js";import"./index-4UwdEH-y.js";import"./test-BoDPkCFc.js";import"./useStore--US7DZf4.js";import"./business-IbhWuk4D.js";import"./useStore-CV1u1a79.js";import"./setting-DTfi4FsX.js";import"./index-D38oPCl9.js";import"./index-CGwbFRdP.js";import"./access-Xfq3ZYcU.js";import"./Flex-DGUi9d1R.js";import"./text-BFHLoHa1.js";const c=e({name:"ApplyNodeDrawer",props:{node:{type:Object,default:()=>({id:"",config:{}})}},setup(e){const{updateNodeConfig:c,isRefreshNode:v}=n(),{confirm:_}=p(),{useFormInput:j}=o(),y=a(Object.keys(e.node.config).length>0?e.node.config:{domains:"",email:"",provider_id:"",provider:"",end_day:30}),f=t((()=>[j(s("t_17_1745227838561"),"domains",{placeholder:s("t_0_1745735774005")}),j(s("t_1_1745735764953"),"email",{placeholder:s("t_2_1745735773668")}),{type:"custom",render:()=>r(u,{type:"dns",path:"provider_id",value:y.value.provider_id,"onUpdate:value":e=>{y.value.provider_id=e.value,y.value.provider=e.type}},null)},{type:"custom",render:()=>r(i,{label:s("t_5_1745735769112"),path:"end_day"},{default:()=>[r(d,{value:y.value.end_day,"onUpdate:value":e=>y.value.end_day=e,showButton:!1,min:1,class:"w-[180px]",placeholder:s("t_6_1745735765205")},null),r("span",{class:"text-[1.4rem] ml-[1.2rem]"},[s("t_7_1745735768326")])]})}])),{component:x,data:h,example:g}=l({defaultValue:y,config:f,rules:m});return _((async a=>{var t;try{await(null==(t=g.value)?void 0:t.validate()),c(e.node.id,h.value),v.value=e.node.id,a()}catch(o){}})),()=>r("div",{class:"apply-node-drawer"},[r(x,{labelPlacement:"top"},null)])}});export{c as default};

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 @@
import{d as e,r as o,m as r,$ as t,c as i,x as s,y as a}from"./main-B314ly27.js";import{u as d}from"./index-BLs5ik22.js";import{u as p}from"./index-4UwdEH-y.js";import{N as n}from"./index-CcyyJ-qU.js";import{r as l}from"./verify-D5iDiGwg.js";import"./index-BK07zJJ4.js";import"./test-BoDPkCFc.js";import"./useStore--US7DZf4.js";import"./useStore-CV1u1a79.js";import"./setting-DTfi4FsX.js";import"./index-D38oPCl9.js";import"./index-CGwbFRdP.js";import"./access-Xfq3ZYcU.js";import"./Flex-DGUi9d1R.js";import"./text-BFHLoHa1.js";const u=e({name:"NotifyNodeDrawer",props:{node:{type:Object,default:()=>({id:"",config:{provider:"",provider_id:"",subject:"",body:""}})}},setup(e){const{updateNodeConfig:u,isRefreshNode:m}=d(),{useFormInput:c,useFormTextarea:v,useFormCustom:j}=r(),{confirm:f}=a(),{handleError:y}=p(),_=o(Object.keys(e.node.config).length>0?e.node.config:{provider:"",provider_id:"",subject:"",body:""}),x=[c(t("t_0_1745920566646"),"subject",{placeholder:t("t_3_1745887835089")}),v(t("t_1_1745920567200"),"body",{placeholder:t("t_4_1745887835265"),rows:4}),j((()=>i(n,{path:"provider_id",value:_.value.provider_id,isAddMode:!0,"onUpdate:value":e=>{_.value.provider_id=e.value,_.value.provider=e.type}},null)))],{component:b,data:g,example:h}=s({defaultValue:_,config:x,rules:l});return f((async o=>{var r;try{await(null==(r=h.value)?void 0:r.validate()),u(e.node.id,g.value),m.value=e.node.id,o()}catch(t){y(t)}})),()=>i("div",{class:"notify-node-drawer"},[i(b,{labelPlacement:"top"},null)])}});export{u 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

View File

@@ -0,0 +1 @@
import{S as e}from"./index-BK07zJJ4.js";import{N as n}from"./text-BFHLoHa1.js";import{d as t,l,w as a,c as o,N as i}from"./main-B314ly27.js";const s={ssh:"SSH",aliyun:"阿里云",tencentcloud:"腾讯云",btpanel:"宝塔面板","1panel":"1Panel",mail:"邮件",dingtalk:"钉钉",wecom:"企业微信",feishu:"飞书",webhook:"WebHook","tencentcloud-cdn":"腾讯云CDN","tencentcloud-cos":"腾讯云COS","aliyun-cdn":"阿里云CDN","aliyun-oss":"阿里云OSS","1panel-site":"1Panel网站","btpanel-site":"宝塔面板网站"},c=t({name:"TypeIcon",props:{icon:{type:String,required:!0},type:{type:String,default:"default"},align:{type:String,default:"left"},text:{type:Boolean,default:!0}},setup(t){const c=l((()=>(["mail","dingtalk","wecom","feishu","webhook"].includes(t.icon)?"notify-":"resources-")+({ssh:"ssh",aliyun:"aliyun",tencentcloud:"tencentcloud",btpanel:"btpanel","1panel":"1panel",mail:"mail",dingtalk:"dingtalk",wecom:"wecom",feishu:"feishu",webhook:"webhook","tencentcloud-cdn":"tencentcloud","tencentcloud-cos":"tencentcloud","aliyun-cdn":"aliyun","aliyun-oss":"aliyun","1panel-site":"1panel","btpanel-site":"btpanel"}[t.icon]||"default"))),u=l((()=>s[t.icon]||t.icon));return a((()=>t.icon),(e=>{})),a((()=>t.type),(e=>{})),()=>o(i,{bordered:!1,class:"cursor-pointer",type:t.type},{default:()=>[o(n,{class:"text-[12px]"},{default:()=>[t.text&&o("span",null,[u.value])]})],avatar:()=>o(e,{icon:c.value,size:"1.4rem"},null)})}});export{c as A};

View File

@@ -0,0 +1 @@
import{d as e,l as i,c as r}from"./main-B314ly27.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

@@ -0,0 +1 @@
import{u as e,N as l}from"./index-4UwdEH-y.js";import{d as a,r as t,w as u,c as s,v as d,q as n,$ as o,n as p,B as r,i as v}from"./main-B314ly27.js";import{u as i}from"./useStore-CV1u1a79.js";import{S as y}from"./index-BK07zJJ4.js";import{N as f}from"./Flex-DGUi9d1R.js";import{N as c}from"./text-BFHLoHa1.js";const m=a({name:"DnsProviderSelect",props:{type:{type:String,default:""},path:{type:String,default:""},value:{type:String,default:""},valueType:{type:String,default:"value"},isAddMode:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},customClass:{type:String,default:""}},emits:["update:value"],setup(a,{emit:m}){const{handleError:b}=e(),{fetchDnsProvider:_,dnsProvider:g}=i(),h=t({label:"",value:"",type:""}),x=t([]),j=t(!1),S=t(""),w=()=>{window.open("/auth-api-manage","_blank")},C=({option:e})=>s("div",{class:"flex items-center"},[e.label?s(f,null,{default:()=>[s(y,{icon:`resources-${e.type}`,size:"2rem"},null),s(c,null,{default:()=>[e.label]})]}):s(c,null,{default:()=>["dns"===a.type?o("t_3_1745490735059"):o("t_19_1745735766810")]})]),T=e=>s(f,null,{default:()=>[s(y,{icon:`resources-${e.type}`,size:"2rem"},null),s(c,null,{default:()=>[e.label]})]}),k=async()=>{var e,l,a;const t=g.value.find((e=>e.value===h.value.value));t&&(h.value={label:t.label,value:t.value,type:t.type}),g.value.length>0&&""===h.value.value&&(h.value={label:(null==(e=g.value[0])?void 0:e.label)||"",value:(null==(l=g.value[0])?void 0:l.value)||"",type:(null==(a=g.value[0])?void 0:a.type)||""}),m("update:value",h.value)},A=e=>{h.value.value=e,k()},B=async(e="")=>{j.value=!0,S.value="";try{await _(e)}catch(l){S.value="string"==typeof l?l:o("t_0_1746760933542"),b(l)}finally{j.value=!1}},D=(e,l)=>l.label.toLowerCase().includes(e.toLowerCase());return u((()=>g.value),(e=>{x.value=e.map((e=>({label:e.label,value:"value"===a.valueType?e.value:e.type,type:"value"===a.valueType?e.type:e.value})))||[],k()})),u((()=>a.value),(()=>{B(a.type),A(a.value)}),{immediate:!0}),()=>{let e;return s(l,{show:j.value},{default:()=>[s(d,{cols:24,class:a.customClass},{default:()=>[s(n,{span:a.isAddMode?13:24,label:"dns"===a.type?o("t_3_1745735765112"):o("t_0_1745744902975"),path:a.path},{default:()=>[s(p,{class:"flex-1 w-full",options:x.value,renderLabel:T,renderTag:C,filterable:!0,filter:D,placeholder:"dns"===a.type?o("t_3_1745490735059"):o("t_1_1745744905566"),value:h.value.value,"onUpdate:value":e=>h.value.value=e,onUpdateValue:A,disabled:a.disabled},{empty:()=>s("span",{class:"text-[1.4rem]"},[S.value||("dns"===a.type?o("t_3_1745490735059"):o("t_1_1745744905566"))])})]}),a.isAddMode&&s(n,{span:11},{default:()=>{return[s(r,{class:"mx-[8px]",onClick:w,disabled:a.disabled},{default:()=>["dns"===a.type?o("t_1_1746004861166"):o("t_0_1745748292337")]}),s(r,{onClick:()=>B(a.type),loading:j.value,disabled:a.disabled},(l=e=o("t_0_1746497662220"),"function"==typeof l||"[object Object]"===Object.prototype.toString.call(l)&&!v(l)?e:{default:()=>[e]}))];var l}})]})]})}}});export{m as D};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{u as a,a as o}from"./index-BLs5ik22.js";import{d as e,a as r,l as i,w as s,aL as t,c as n,$ as d}from"./main-B314ly27.js";import{r as l}from"./verify-Dn31Klc9.js";import{u as m}from"./index-CGwbFRdP.js";import"./index-BK07zJJ4.js";import"./index-4UwdEH-y.js";import"./test-BoDPkCFc.js";import"./useStore--US7DZf4.js";import"./business-IbhWuk4D.js";const p=e({name:"ApplyNode",props:{node:{type:Object,default:()=>({id:"",config:{}})}},setup(e){const{isRefreshNode:p}=a(),{registerCompatValidator:u,validate:v,validationResult:c,unregisterValidator:f}=o(),j=r(["warningColor","primaryColor"]),y=i((()=>c.value.valid?"var(--n-primary-color)":"var(--n-warning-color)"));return s((()=>p.value),(a=>{m((()=>{u(e.node.id,l,e.node.config),v(e.node.id),p.value=null}),500)}),{immediate:!0}),t((()=>f(e.node.id))),()=>{var a;return n("div",{style:j.value,class:"text-[12px]"},[n("div",{style:{color:y.value}},[c.value.valid?"域名:"+(null==(a=e.node.config)?void 0:a.domains):d("t_9_1745735765287")])])}}});export{p as default};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{bs as t,bZ as e,b_ as n,bT as i,b$ as a,aH as o,o as s,as as r,w as u,a5 as c,r as l,c0 as f,bG as m}from"./main-B314ly27.js";function v(t){return!!a()&&(o(t),!0)}const p="undefined"!=typeof window&&"undefined"!=typeof document;"undefined"!=typeof WorkerGlobalScope&&(globalThis,WorkerGlobalScope);const d=Object.prototype.toString,b=t=>"[object Object]"===d.call(t),w=()=>{};function y(t,e){return function(...n){return new Promise(((i,a)=>{Promise.resolve(t((()=>e.apply(this,n)),{fn:e,thisArg:this,args:n})).then(i).catch(a)}))}}const g=t=>t();function h(t=g,n={}){const{initialState:i="active"}=n,a=function(...t){if(1!==t.length)return c(...t);const n=t[0];return"function"==typeof n?e(f((()=>({get:n,set:w})))):l(n)}("active"===i);return{isActive:e(a),pause:function(){a.value=!1},resume:function(){a.value=!0},eventFilter:(...e)=>{a.value&&t(...e)}}}function T(t){return Array.isArray(t)?t:[t]}function j(t,e=200,a=!1,o=!0,s=!1){return y(function(...t){let e,a,o,s,r,u,c=0,l=!0,f=w;n(t[0])||"object"!=typeof t[0]?[o,s=!0,r=!0,u=!1]=t:({delay:o,trailing:s=!0,leading:r=!0,rejectOnCancel:u=!1}=t[0]);const m=()=>{e&&(clearTimeout(e),e=void 0,f(),f=w)};return t=>{const n=i(o),v=Date.now()-c,p=()=>a=t();return m(),n<=0?(c=Date.now(),p()):(v>n&&(r||!l)?(c=Date.now(),p()):s&&(a=new Promise(((t,i)=>{f=u?i:t,e=setTimeout((()=>{c=Date.now(),l=!0,t(p()),m()}),Math.max(0,n-v))}))),r||e||(e=setTimeout((()=>l=!0),n)),l=!1,a)}}(e,a,o,s),t)}function A(t,e,n={}){const{eventFilter:i,initialState:a="active",...o}=n,{eventFilter:s,pause:r,resume:c,isActive:l}=h(i,{initialState:a}),f=function(t,e,n={}){const{eventFilter:i=g,...a}=n;return u(t,y(i,e),a)}(t,e,{...o,eventFilter:s});return{stop:f,pause:r,resume:c,isActive:l}}function S(t,e=!0,n){m()?s(t,n):e?t():r(t)}function F(n,a,o={}){const{immediate:s=!0,immediateCallback:r=!1}=o,u=t(!1);let c=null;function l(){c&&(clearTimeout(c),c=null)}function f(){u.value=!1,l()}function m(...t){r&&n(),l(),u.value=!0,c=setTimeout((()=>{u.value=!1,c=null,n(...t)}),i(a))}return s&&(u.value=!0,p&&m()),v(f),{isPending:e(u),start:m,stop:f}}function D(t,e,n){return u(t,e,{...n,immediate:!0})}export{j as a,T as b,D as c,v as d,b as e,p as i,S as t,F as u,A as w};

View File

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

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 @@
import{d as e,r as l,w as a,c as t,v as u,q as n,$ as o,n as i,B as s,i as p}from"./main-B314ly27.js";import{u as r}from"./useStore-CV1u1a79.js";import{S as v}from"./index-BK07zJJ4.js";import{N as d}from"./Flex-DGUi9d1R.js";import{N as f}from"./text-BFHLoHa1.js";function y(e){return"function"==typeof e||"[object Object]"===Object.prototype.toString.call(e)&&!p(e)}const c=e({name:"NotifyProviderSelect",props:{path:{type:String,default:""},value:{type:String,default:""},valueType:{type:String,default:"value"},isAddMode:{type:Boolean,default:!1}},emits:["update:value"],setup(e,{emit:p}){const{fetchNotifyProvider:c,notifyProvider:m}=r(),b=l({label:"",value:"",type:""}),_=l([]),x=()=>{window.open("/settings?tab=notification","_blank")},j=({option:l})=>{let a;return t("div",{class:"flex items-center"},[l.label?t(d,null,{default:()=>[t(v,{icon:`notify-${"value"===e.valueType?l.type:l.value}`,size:"2rem"},null),t(f,null,{default:()=>[l.label]})]}):t(f,null,y(a=o("t_0_1745887835267"))?a:{default:()=>[a]})])},S=l=>t(d,null,{default:()=>[t(v,{icon:`notify-${"value"===e.valueType?l.type:l.value}`,size:"2rem"},null),t(f,null,{default:()=>[l.label]})]}),g=e=>{if(!e)return;const l=_.value.find((l=>l.value===e));b.value={label:(null==l?void 0:l.label)||"",value:(null==l?void 0:l.value)||"",type:(null==l?void 0:l.type)||""}},T=e=>{g(e),p("update:value",b.value)};return a((()=>e.value),(e=>{c(),g(e)}),{immediate:!0}),a((()=>m.value),(l=>{_.value=l.map((l=>({label:l.label,value:"value"===e.valueType?l.value:l.type,type:"value"===e.valueType?l.type:l.value})))||[],g(e.value)})),()=>{let l,a;return t(u,{cols:24},{default:()=>[t(n,{span:e.isAddMode?13:24,label:o("t_1_1745887832941"),path:e.path},{default:()=>[t(i,{class:"flex-1 w-full ",options:_.value,renderLabel:S,renderTag:j,filterable:!0,placeholder:o("t_0_1745887835267"),value:b.value.value,"onUpdate:value":e=>b.value.value=e,onUpdateValue:T},{empty:()=>t("span",{class:"text-[1.4rem]"},[o("t_0_1745887835267")])})]}),e.isAddMode&&t(n,{span:11},{default:()=>[t(s,{class:"mx-[8px]",onClick:x},y(l=o("t_2_1745887834248"))?l:{default:()=>[l]}),t(s,{onClick:c},y(a=o("t_0_1746497662220"))?a:{default:()=>[a]})]})]})}}});export{c as N};

View File

@@ -0,0 +1 @@
import{d as o,a as e,l as i,c as r,$ as a,w as s,aL as t}from"./main-B314ly27.js";import{u as d,a as n}from"./index-BLs5ik22.js";import{r as l}from"./verify-D5iDiGwg.js";import{A as p}from"./index-BBXf7Mq_.js";import{u as m}from"./index-CGwbFRdP.js";import"./index-BK07zJJ4.js";import"./index-4UwdEH-y.js";import"./test-BoDPkCFc.js";import"./useStore--US7DZf4.js";import"./text-BFHLoHa1.js";const u=o({name:"NotifyNode",props:{node:{type:Object,default:()=>({id:"",config:{}})}},setup(o){const{isRefreshNode:u}=d(),{validate:v,validationResult:c,registerCompatValidator:f,unregisterValidator:j}=n(),g=e(["warningColor","primaryColor"]),x=i((()=>c.value.valid&&o.node.config.provider?"var(--n-primary-color)":"var(--n-warning-color)")),y=i((()=>c.value.valid&&o.node.config.provider?r(p,{icon:o.node.config.provider,type:"success"},null):a("t_9_1745735765287")));return s((()=>u.value),(e=>{m((()=>{f(o.node.id,l,o.node.config),v(o.node.id),u.value=null}),500)}),{immediate:!0}),t((()=>j(o.node.id))),()=>r("div",{style:g.value,class:"text-[12px]"},[r("div",{style:{color:x.value}},[y.value])])}});export{u as default};

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{i as e,w as t,t as n,a as r,b as a,c as o,d as l}from"./index-BMspkLA9.js";import{bv as i,r as u,w as s,bV as f,E as c,aw as d,bW as v}from"./main-D8Z-8iPZ.js";const g=e?window:void 0;function p(...e){const t=[],n=()=>{t.forEach((e=>e())),t.length=0},i=s((()=>{const t=r(f(e[0])).filter((e=>null!=e));return t.every((e=>"string"!=typeof e))?t:void 0})),u=a((()=>{var t,n;return[null!=(n=null==(t=i.value)?void 0:t.map((e=>function(e){var t;const n=f(e);return null!=(t=null==n?void 0:n.$el)?t:n}(e))))?n:[g].filter((e=>null!=e)),r(f(i.value?e[1]:e[0])),r(v(i.value?e[2]:e[1])),f(i.value?e[3]:e[2])]}),(([e,r,a,o])=>{if(n(),!(null==e?void 0:e.length)||!(null==r?void 0:r.length)||!(null==a?void 0:a.length))return;const i=l(o)?{...o}:o;t.push(...e.flatMap((e=>r.flatMap((t=>a.map((n=>((e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)))(e,t,n,i))))))))}),{flush:"post"});return o(n),()=>{u(),n()}}const w="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},y="__vueuse_ssr_handlers__",m=S();function S(){return y in w||(w[y]=w[y]||{}),w[y]}const b={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()}},h="vueuse-storage";function N(e,r,a,o={}){var l;const{flush:v="pre",deep:w=!0,listenToStorageChanges:y=!0,writeDefaults:S=!0,mergeDefaults:N=!1,shallow:E,window:O=g,eventFilter:j,onError:A=e=>{},initOnMounted:I}=o,J=(E?i:u)("function"==typeof r?r():r),_=s((()=>f(e)));if(!a)try{a=function(e,t){return m[e]||t}("getDefaultStorage",(()=>{var e;return null==(e=g)?void 0:e.localStorage}))()}catch(L){A(L)}if(!a)return J;const D=f(r),M=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"}(D),V=null!=(l=o.serializer)?l:b[M],{pause:F,resume:k}=t(J,(()=>function(e){try{const t=a.getItem(_.value);if(null==e)T(t,null),a.removeItem(_.value);else{const n=V.write(e);t!==n&&(a.setItem(_.value,n),T(t,n))}}catch(L){A(L)}}(J.value)),{flush:v,deep:w,eventFilter:j});function T(e,t){if(O){const n={key:_.value,oldValue:e,newValue:t,storageArea:a};O.dispatchEvent(a instanceof Storage?new StorageEvent("storage",n):new CustomEvent(h,{detail:n}))}}function x(e){if(!e||e.storageArea===a)if(e&&null==e.key)J.value=D;else if(!e||e.key===_.value){F();try{(null==e?void 0:e.newValue)!==V.write(J.value)&&(J.value=function(e){const t=e?e.newValue:a.getItem(_.value);if(null==t)return S&&null!=D&&a.setItem(_.value,V.write(D)),D;if(!e&&N){const e=V.read(t);return"function"==typeof N?N(e,D):"object"!==M||Array.isArray(e)?e:{...D,...e}}return"string"!=typeof t?t:V.read(t)}(e))}catch(L){A(L)}finally{e?d(k):k()}}}function C(e){x(e.detail)}return c(_,(()=>x()),{flush:v}),O&&y&&n((()=>{a instanceof Storage?p(O,"storage",x,{passive:!0}):p(O,h,C),I&&x()})),I||x(),J}function E(e,t,n={}){const{window:r=g}=n;return N(e,t,null==r?void 0:r.localStorage,n)}export{E as u}; import{i as e,w as t,t as n,b as r,c as a,d as o,e as l}from"./index-CGwbFRdP.js";import{bs as i,r as s,l as u,bT as f,w as c,as as d,bU as v}from"./main-B314ly27.js";const g=e?window:void 0;function p(...e){const t=[],n=()=>{t.forEach((e=>e())),t.length=0},i=u((()=>{const t=r(f(e[0])).filter((e=>null!=e));return t.every((e=>"string"!=typeof e))?t:void 0})),s=a((()=>{var t,n;return[null!=(n=null==(t=i.value)?void 0:t.map((e=>function(e){var t;const n=f(e);return null!=(t=null==n?void 0:n.$el)?t:n}(e))))?n:[g].filter((e=>null!=e)),r(f(i.value?e[1]:e[0])),r(v(i.value?e[2]:e[1])),f(i.value?e[3]:e[2])]}),(([e,r,a,o])=>{if(n(),!(null==e?void 0:e.length)||!(null==r?void 0:r.length)||!(null==a?void 0:a.length))return;const i=l(o)?{...o}:o;t.push(...e.flatMap((e=>r.flatMap((t=>a.map((n=>((e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)))(e,t,n,i))))))))}),{flush:"post"});return o(n),()=>{s(),n()}}const w="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},y="__vueuse_ssr_handlers__",m=S();function S(){return y in w||(w[y]=w[y]||{}),w[y]}const b={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()}},h="vueuse-storage";function N(e,r,a,o={}){var l;const{flush:v="pre",deep:w=!0,listenToStorageChanges:y=!0,writeDefaults:S=!0,mergeDefaults:N=!1,shallow:O,window:E=g,eventFilter:j,onError:A=e=>{},initOnMounted:I}=o,J=(O?i:s)("function"==typeof r?r():r),_=u((()=>f(e)));if(!a)try{a=function(e,t){return m[e]||t}("getDefaultStorage",(()=>{var e;return null==(e=g)?void 0:e.localStorage}))()}catch(L){A(L)}if(!a)return J;const D=f(r),M=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"}(D),T=null!=(l=o.serializer)?l:b[M],{pause:V,resume:k}=t(J,(()=>function(e){try{const t=a.getItem(_.value);if(null==e)F(t,null),a.removeItem(_.value);else{const n=T.write(e);t!==n&&(a.setItem(_.value,n),F(t,n))}}catch(L){A(L)}}(J.value)),{flush:v,deep:w,eventFilter:j});function F(e,t){if(E){const n={key:_.value,oldValue:e,newValue:t,storageArea:a};E.dispatchEvent(a instanceof Storage?new StorageEvent("storage",n):new CustomEvent(h,{detail:n}))}}function x(e){if(!e||e.storageArea===a)if(e&&null==e.key)J.value=D;else if(!e||e.key===_.value){V();try{(null==e?void 0:e.newValue)!==T.write(J.value)&&(J.value=function(e){const t=e?e.newValue:a.getItem(_.value);if(null==t)return S&&null!=D&&a.setItem(_.value,T.write(D)),D;if(!e&&N){const e=T.read(t);return"function"==typeof N?N(e,D):"object"!==M||Array.isArray(e)?e:{...D,...e}}return"string"!=typeof t?t:T.read(t)}(e))}catch(L){A(L)}finally{e?d(k):k()}}}function C(e){x(e.detail)}return c(_,(()=>x()),{flush:v}),E&&y&&n((()=>{a instanceof Storage?p(E,"storage",x,{passive:!0}):p(E,h,C),I&&x()})),I||x(),J}function O(e,t,n={}){const{window:r=g}=n;return N(e,t,null==r?void 0:r.localStorage,n)}export{O 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

@@ -0,0 +1 @@
import{u as e,a as o}from"./index-BLs5ik22.js";import{d as i,a as s,l as a,c as r,$ as t,w as n,aL as d}from"./main-B314ly27.js";import{A as l}from"./index-BBXf7Mq_.js";import{r as p}from"./verify-KyRPu5mD.js";import{u as m}from"./index-CGwbFRdP.js";import"./index-BK07zJJ4.js";import"./index-4UwdEH-y.js";import"./test-BoDPkCFc.js";import"./useStore--US7DZf4.js";import"./text-BFHLoHa1.js";import"./business-IbhWuk4D.js";const u=i({name:"DeployNode",props:{node:{type:Object,default:()=>({id:"",inputs:{},config:{}})}},setup(i){const{isRefreshNode:u}=e(),{registerCompatValidator:v,validate:c,validationResult:f,unregisterValidator:j}=o(),x=s(["warningColor","primaryColor"]),y=a((()=>f.value.valid?"var(--n-primary-color)":"var(--n-warning-color)")),g=a((()=>f.value.valid?r(l,{icon:i.node.config.provider,type:"success"},null):t("t_9_1745735765287")));return n((()=>u.value),(e=>{m((()=>{v(i.node.id,p,i.node.config),c(i.node.id),u.value=null}),500)}),{immediate:!0}),d((()=>j(i.node.id))),()=>r("div",{style:x.value,class:"text-[12px]"},[r("div",{style:{color:y.value}},[g.value])])}});export{u as default};

View File

@@ -0,0 +1 @@
import{u as a,a as e}from"./index-BLs5ik22.js";import{r as o}from"./verify-B9e1eJYi.js";import{d as r,a as i,l as s,w as t,aL as d,c as l}from"./main-B314ly27.js";import{u as n}from"./index-CGwbFRdP.js";import"./index-BK07zJJ4.js";import"./index-4UwdEH-y.js";import"./test-BoDPkCFc.js";import"./useStore--US7DZf4.js";const m=r({name:"UploadNode",props:{node:{type:Object,default:()=>({id:"",config:{}})}},setup(r){const{isRefreshNode:m}=a(),{validate:p,validationResult:u,registerCompatValidator:v,unregisterValidator:c}=e(),f=i(["warningColor","primaryColor"]),j=s((()=>u.value.valid?"var(--n-primary-color)":"var(--n-warning-color)")),x=s((()=>u.value.valid?"已配置":"未配置"));return t((()=>m.value),(a=>{n((()=>{v(r.node.id,o,r.node.config),p(r.node.id),m.value=null}),500)}),{immediate:!0}),d((()=>c(r.node.id))),()=>l("div",{style:f.value,class:"text-[12px]"},[l("div",{style:{color:j.value}},[x.value])])}});export{m as default};

View File

@@ -0,0 +1 @@
import{d as e,u as t,a as o,c as r,b as l,$ as a,B as s,i as n}from"./main-B314ly27.js";const c=(e=16,t="var(--n-warning-color)")=>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)]),i=e({setup(){const e=t(),i=o(["cardColor","warningColor","textColorSecondary","textColorDisabled","textColorInverse","warningColorHover"]);return()=>{let t;return r("div",{class:"flex flex-col items-center justify-center min-h-screen",style:i.value},[r("div",{class:"text-center px-8 max-w-[60rem] mx-auto"},[r("div",{class:"text-[8rem] font-bold leading-none mb-4",style:{color:"var(--n-warning-color)",textShadow:"2px 2px 4px rgba(0, 0, 0, 0.1)"}},[l("404")]),r("div",{class:"flex items-center justify-center mb-8"},[c(60)]),r("div",{class:"text-[1.8rem] mb-8",style:{color:"var(--n-text-color-secondary)"}},[a("t_0_1744098811152")]),r(s,{type:"warning",onClick:()=>e.push("/")},(o=t=a("t_1_1744098801860"),"function"==typeof o||"[object Object]"===Object.prototype.toString.call(o)&&!n(o)?t:{default:()=>[t]})),r("div",{class:"mt-8 text-[1.3rem]",style:{color:"var(--n-text-color-disabled)"}},[a("t_2_1744098804908")])])]);var o}}});export{i as default};

View File

@@ -0,0 +1 @@
import{u as a,a as e}from"./index-BLs5ik22.js";import{d as o,a as r,l as i,$ as t,w as s,aL as d,c as l}from"./main-B314ly27.js";import{r as n}from"./verify-CrOns3QW.js";import{u as m}from"./index-CGwbFRdP.js";import"./index-BK07zJJ4.js";import"./index-4UwdEH-y.js";import"./test-BoDPkCFc.js";import"./useStore--US7DZf4.js";const p=o({name:"StartNode",props:{node:{type:Object,default:()=>({id:"",config:{}})}},setup(o){const{isRefreshNode:p}=a(),{validate:u,validationResult:v,registerCompatValidator:c,unregisterValidator:f}=e(),j=r(["warningColor","primaryColor"]),x=i((()=>v.value.valid?"var(--n-primary-color)":"var(--n-warning-color)")),y=i((()=>v.value.valid?"auto"===o.node.config.exec_type?t("t_4_1744875940750"):t("t_5_1744875940010"):"未配置"));return s((()=>p.value),(a=>{m((()=>{c(o.node.id,n,o.node.config),u(o.node.id),p.value=null}),500)}),{immediate:!0}),d((()=>f(o.node.id))),()=>l("div",{style:j.value,class:"text-[12px]"},[l("div",{style:{color:x.value}},[y.value])])}});export{p 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

View File

@@ -1 +1 @@
import{c as o,d as s}from"./index-yiIyVSv0.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}; import{c as o,d as s}from"./index-4UwdEH-y.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};

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{c as t}from"./index-yiIyVSv0.js";const e=e=>t("/v1/setting/get_setting",e),r=e=>t("/v1/setting/save_setting",e),s=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);export{i as a,s as b,a as d,e as g,r as s,p as t,o as u}; import{c as t}from"./index-4UwdEH-y.js";const e=e=>t("/v1/setting/get_setting",e),r=e=>t("/v1/setting/save_setting",e),s=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);export{i as a,s as b,a as d,e as g,r as s,p as t,o as u};

View File

@@ -1 +1 @@
import{bl as t,be as e,bo as r,by as n,bz as u,bA as o,bs as i,bB as c,bk as a}from"./main-D8Z-8iPZ.js";function s(t){return t&&t["@@transducer/reduced"]?t:{"@@transducer/value":t,"@@transducer/reduced":!0}}var f=function(){function e(t,e){this.xf=e,this.f=t,this.all=!0}return e.prototype["@@transducer/init"]=t.init,e.prototype["@@transducer/result"]=function(t){return this.all&&(t=this.xf["@@transducer/step"](t,!0)),this.xf["@@transducer/result"](t)},e.prototype["@@transducer/step"]=function(t,e){return this.f(e)||(this.all=!1,t=s(this.xf["@@transducer/step"](t,!1))),t},e}();function l(t){return function(e){return new f(t,e)}}var p=e(r(["all"],l,(function(t,e){for(var r=0;r<e.length;){if(!t(e[r]))return!1;r+=1}return!0})));function g(t,e){return function(t,e,r){var u,o;if("function"==typeof t.indexOf)switch(typeof e){case"number":if(0===e){for(u=1/e;r<t.length;){if(0===(o=t[r])&&1/o===u)return r;r+=1}return-1}if(e!=e){for(;r<t.length;){if("number"==typeof(o=t[r])&&o!=o)return r;r+=1}return-1}return t.indexOf(e,r);case"string":case"boolean":case"function":case"undefined":return t.indexOf(e,r);case"object":if(null===e)return t.indexOf(e,r)}for(;r<t.length;){if(n(t[r],e))return r;r+=1}return-1}(e,t,0)>=0}function b(t){return'"'+t.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var d=function(t){return(t<10?"0":"")+t},y="function"==typeof Date.prototype.toISOString?function(t){return t.toISOString()}:function(t){return t.getUTCFullYear()+"-"+d(t.getUTCMonth()+1)+"-"+d(t.getUTCDate())+"T"+d(t.getUTCHours())+":"+d(t.getUTCMinutes())+":"+d(t.getUTCSeconds())+"."+(t.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};var h=function(){function e(t,e){this.xf=e,this.f=t}return e.prototype["@@transducer/init"]=t.init,e.prototype["@@transducer/result"]=t.result,e.prototype["@@transducer/step"]=function(t,e){return this.f(e)?this.xf["@@transducer/step"](t,e):t},e}();function v(t){return function(e){return new h(t,e)}}var j=e(r(["fantasy-land/filter","filter"],v,(function(t,e){return o(e)?u((function(r,n){return t(e[n])&&(r[n]=e[n]),r}),{},i(e)):function(t,e){for(var r=0,n=e.length,u=[];r<n;)t(e[r])&&(u[u.length]=e[r]),r+=1;return u}(t,e)}))),x=e((function(t,e){return j((r=t,function(){return!r.apply(this,arguments)}),e);var r}));function S(t,e){var r=function(r){var n=e.concat([t]);return g(r,n)?"<Circular>":S(r,n)},n=function(t,e){return c((function(e){return b(e)+": "+r(t[e])}),e.slice().sort())};switch(Object.prototype.toString.call(t)){case"[object Arguments]":return"(function() { return arguments; }("+c(r,t).join(", ")+"))";case"[object Array]":return"["+c(r,t).concat(n(t,x((function(t){return/^\d+$/.test(t)}),i(t)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof t?"new Boolean("+r(t.valueOf())+")":t.toString();case"[object Date]":return"new Date("+(isNaN(t.valueOf())?r(NaN):b(y(t)))+")";case"[object Map]":return"new Map("+r(Array.from(t))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof t?"new Number("+r(t.valueOf())+")":1/t==-1/0?"-0":t.toString(10);case"[object Set]":return"new Set("+r(Array.from(t).sort())+")";case"[object String]":return"object"==typeof t?"new String("+r(t.valueOf())+")":b(t);case"[object Undefined]":return"undefined";default:if("function"==typeof t.toString){var u=t.toString();if("[object Object]"!==u)return u}return"{"+n(t,i(t)).join(", ")+"}"}}var m=a((function(t){return S(t,[])}));function w(t){return new RegExp(t.source,t.flags?t.flags:(t.global?"g":"")+(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.sticky?"y":"")+(t.unicode?"u":"")+(t.dotAll?"s":""))}var O=e((function(t,e){if(r=t,"[object RegExp]"!==Object.prototype.toString.call(r))throw new TypeError("test requires a value of type RegExp as its first argument; received "+m(t));var r;return w(t).test(e)}));export{w as _,s as a,g as b,p as c,m as d,O as t}; import{bi as t,bb as e,bl as r,bv as n,bw as u,bx as o,bp as i,by as c,bh as a}from"./main-B314ly27.js";function s(t){return t&&t["@@transducer/reduced"]?t:{"@@transducer/value":t,"@@transducer/reduced":!0}}var f=function(){function e(t,e){this.xf=e,this.f=t,this.all=!0}return e.prototype["@@transducer/init"]=t.init,e.prototype["@@transducer/result"]=function(t){return this.all&&(t=this.xf["@@transducer/step"](t,!0)),this.xf["@@transducer/result"](t)},e.prototype["@@transducer/step"]=function(t,e){return this.f(e)||(this.all=!1,t=s(this.xf["@@transducer/step"](t,!1))),t},e}();function l(t){return function(e){return new f(t,e)}}var p=e(r(["all"],l,(function(t,e){for(var r=0;r<e.length;){if(!t(e[r]))return!1;r+=1}return!0})));function g(t,e){return function(t,e,r){var u,o;if("function"==typeof t.indexOf)switch(typeof e){case"number":if(0===e){for(u=1/e;r<t.length;){if(0===(o=t[r])&&1/o===u)return r;r+=1}return-1}if(e!=e){for(;r<t.length;){if("number"==typeof(o=t[r])&&o!=o)return r;r+=1}return-1}return t.indexOf(e,r);case"string":case"boolean":case"function":case"undefined":return t.indexOf(e,r);case"object":if(null===e)return t.indexOf(e,r)}for(;r<t.length;){if(n(t[r],e))return r;r+=1}return-1}(e,t,0)>=0}function b(t){return'"'+t.replace(/\\/g,"\\\\").replace(/[\b]/g,"\\b").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0").replace(/"/g,'\\"')+'"'}var d=function(t){return(t<10?"0":"")+t},y="function"==typeof Date.prototype.toISOString?function(t){return t.toISOString()}:function(t){return t.getUTCFullYear()+"-"+d(t.getUTCMonth()+1)+"-"+d(t.getUTCDate())+"T"+d(t.getUTCHours())+":"+d(t.getUTCMinutes())+":"+d(t.getUTCSeconds())+"."+(t.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"};var h=function(){function e(t,e){this.xf=e,this.f=t}return e.prototype["@@transducer/init"]=t.init,e.prototype["@@transducer/result"]=t.result,e.prototype["@@transducer/step"]=function(t,e){return this.f(e)?this.xf["@@transducer/step"](t,e):t},e}();function v(t){return function(e){return new h(t,e)}}var j=e(r(["fantasy-land/filter","filter"],v,(function(t,e){return o(e)?u((function(r,n){return t(e[n])&&(r[n]=e[n]),r}),{},i(e)):function(t,e){for(var r=0,n=e.length,u=[];r<n;)t(e[r])&&(u[u.length]=e[r]),r+=1;return u}(t,e)}))),x=e((function(t,e){return j((r=t,function(){return!r.apply(this,arguments)}),e);var r}));function S(t,e){var r=function(r){var n=e.concat([t]);return g(r,n)?"<Circular>":S(r,n)},n=function(t,e){return c((function(e){return b(e)+": "+r(t[e])}),e.slice().sort())};switch(Object.prototype.toString.call(t)){case"[object Arguments]":return"(function() { return arguments; }("+c(r,t).join(", ")+"))";case"[object Array]":return"["+c(r,t).concat(n(t,x((function(t){return/^\d+$/.test(t)}),i(t)))).join(", ")+"]";case"[object Boolean]":return"object"==typeof t?"new Boolean("+r(t.valueOf())+")":t.toString();case"[object Date]":return"new Date("+(isNaN(t.valueOf())?r(NaN):b(y(t)))+")";case"[object Map]":return"new Map("+r(Array.from(t))+")";case"[object Null]":return"null";case"[object Number]":return"object"==typeof t?"new Number("+r(t.valueOf())+")":1/t==-1/0?"-0":t.toString(10);case"[object Set]":return"new Set("+r(Array.from(t).sort())+")";case"[object String]":return"object"==typeof t?"new String("+r(t.valueOf())+")":b(t);case"[object Undefined]":return"undefined";default:if("function"==typeof t.toString){var u=t.toString();if("[object Object]"!==u)return u}return"{"+n(t,i(t)).join(", ")+"}"}}var m=a((function(t){return S(t,[])}));function w(t){return new RegExp(t.source,t.flags?t.flags:(t.global?"g":"")+(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.sticky?"y":"")+(t.unicode?"u":"")+(t.dotAll?"s":""))}var O=e((function(t,e){if(r=t,"[object RegExp]"!==Object.prototype.toString.call(r))throw new TypeError("test requires a value of type RegExp as its first argument; received "+m(t));var r;return w(t).test(e)}));export{w as _,s as a,g as b,p as c,m as d,O as t};

View File

@@ -0,0 +1 @@
import{Q as e,T as o,d as t,z as n,U as r,A as s,c1 as i,l,aE as a,X as d,al as c}from"./main-B314ly27.js";const h=e("text","\n transition: color .3s var(--n-bezier);\n color: var(--n-text-color);\n",[o("strong","\n font-weight: var(--n-font-weight-strong);\n "),o("italic",{fontStyle:"italic"}),o("underline",{textDecoration:"underline"}),o("code","\n line-height: 1.4;\n display: inline-block;\n font-family: var(--n-font-famliy-mono);\n transition: \n color .3s var(--n-bezier),\n border-color .3s var(--n-bezier),\n background-color .3s var(--n-bezier);\n box-sizing: border-box;\n padding: .05em .35em 0 .35em;\n border-radius: var(--n-code-border-radius);\n font-size: .9em;\n color: var(--n-code-text-color);\n background-color: var(--n-code-color);\n border: var(--n-code-border);\n ")]),g=t({name:"Text",props:Object.assign(Object.assign({},s.props),{code:Boolean,type:{type:String,default:"default"},delete:Boolean,strong:Boolean,italic:Boolean,underline:Boolean,depth:[String,Number],tag:String,as:{type:String,validator:()=>!0,default:void 0}}),setup(e){const{mergedClsPrefixRef:o,inlineThemeDisabled:t}=r(e),n=s("Typography","-text",h,i,e,o),g=l((()=>{const{depth:o,type:t}=e,r="default"===t?void 0===o?"textColor":`textColor${o}Depth`:a("textColor",t),{common:{fontWeightStrong:s,fontFamilyMono:i,cubicBezierEaseInOut:l},self:{codeTextColor:d,codeBorderRadius:c,codeColor:h,codeBorder:g,[r]:u}}=n.value;return{"--n-bezier":l,"--n-text-color":u,"--n-font-weight-strong":s,"--n-font-famliy-mono":i,"--n-code-border-radius":c,"--n-code-text-color":d,"--n-code-color":h,"--n-code-border":g}})),u=t?d("text",l((()=>`${e.type[0]}${e.depth||""}`)),g,e):void 0;return{mergedClsPrefix:o,compitableTag:c(e,["as","tag"]),cssVars:t?void 0:g,themeClass:null==u?void 0:u.themeClass,onRender:null==u?void 0:u.onRender}},render(){var e,o,t;const{mergedClsPrefix:r}=this;null===(e=this.onRender)||void 0===e||e.call(this);const s=[`${r}-text`,this.themeClass,{[`${r}-text--code`]:this.code,[`${r}-text--delete`]:this.delete,[`${r}-text--strong`]:this.strong,[`${r}-text--italic`]:this.italic,[`${r}-text--underline`]:this.underline}],i=null===(t=(o=this.$slots).default)||void 0===t?void 0:t.call(o);return this.code?n("code",{class:s,style:this.cssVars},this.delete?n("del",null,i):i):this.delete?n("del",{class:s,style:this.cssVars},i):n(this.compitableTag||"span",{class:s,style:this.cssVars},i)}});export{g as N};

View File

@@ -0,0 +1 @@
import{c as e,u as a}from"./index-4UwdEH-y.js";import{e as o,s as t,r as l,$ as r}from"./main-B314ly27.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),n=a=>e("/v1/workflow/get_exec_log",a),d=a=>e("/v1/workflow/execute_workflow",a),f=a=>e("/v1/workflow/exec_type",a),i=a=>e("/v1/workflow/active",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"),n=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:n,resetWorkflowData:()=>{s.value={id:"",name:"",content:"",active:"1",exec_type:"manual"},n.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"))}}}})),k=()=>{const e=u();return{...e,...t(e)}};export{c as a,d as b,n as c,s as d,i as e,k as f,w as g,f as u};

View File

@@ -1 +1 @@
import{u as e}from"./index-yiIyVSv0.js";import{a}from"./setting-BuW_WiRV.js";import{m as t,s as o,r as l,w as r}from"./main-D8Z-8iPZ.js";import{u as s}from"./index-Cc_zz0Ev.js";import{b as n}from"./access-DymwmDzp.js";const i=t("layout-store",(()=>{const{handleError:t}=e(),o=s("layout-collapsed",!1),i=l([]),u=l([]),c=s("menu-active","home"),v=r((()=>"home"!==c.value?"var(--n-content-padding)":"0"));return{locales:s("locales-active","zhCN"),notifyProvider:i,dnsProvider:u,isCollapsed:o,layoutPadding:v,menuActive:c,resetDataInfo:()=>{c.value="home",localStorage.removeItem("menu-active")},updateMenuActive:e=>{"logout"!==e&&(c.value=e)},toggleCollapse:()=>{o.value=!o.value},handleCollapse:()=>{o.value=!0},handleExpand:()=>{o.value=!1},fetchNotifyProvider:async()=>{try{const{data:e}=await a({p:1,search:"",limit:1e3}).fetch();i.value=[],i.value=null==e?void 0:e.map((e=>({label:e.name,value:e.id.toString(),type:e.type})))}catch(e){t(e)}},fetchDnsProvider:async(e="")=>{try{const{data:a}=await n({type:e}).fetch();u.value=(null==a?void 0:a.map((e=>({label:e.name,value:e.id.toString(),type:e.type}))))||[]}catch(a){u.value=[],t(a)}}}})),u=()=>{const e=i();return{...e,...o(e)}};export{u}; import{u as e}from"./index-4UwdEH-y.js";import{a}from"./setting-DTfi4FsX.js";import{e as t,s as o,r as l,l as r}from"./main-B314ly27.js";import{u as s}from"./index-D38oPCl9.js";import{b as n}from"./access-Xfq3ZYcU.js";const i=t("layout-store",(()=>{const{handleError:t}=e(),o=s("layout-collapsed",!1),i=l([]),u=l([]),c=s("menu-active","home"),v=r((()=>"home"!==c.value?"var(--n-content-padding)":"0"));return{locales:s("locales-active","zhCN"),notifyProvider:i,dnsProvider:u,isCollapsed:o,layoutPadding:v,menuActive:c,resetDataInfo:()=>{c.value="home",localStorage.removeItem("menu-active")},updateMenuActive:e=>{"logout"!==e&&(c.value=e)},toggleCollapse:()=>{o.value=!o.value},handleCollapse:()=>{o.value=!0},handleExpand:()=>{o.value=!1},fetchNotifyProvider:async()=>{try{i.value=[];const{data:e}=await a({p:1,search:"",limit:1e3}).fetch();i.value=null==e?void 0:e.map((e=>({label:e.name,value:e.id.toString(),type:e.type})))}catch(e){t(e)}},fetchDnsProvider:async(e="")=>{try{u.value=[];const{data:a}=await n({type:e}).fetch();u.value=(null==a?void 0:a.map((e=>({label:e.name,value:e.id.toString(),type:e.type}))))||[]}catch(a){t(a)}}}})),u=()=>{const e=i();return{...e,...o(e)}};export{u};

View File

@@ -1 +1 @@
import{$ as r}from"./main-D8Z-8iPZ.js";const e={key:{required:!0,trigger:"input",validator:(e,i)=>new Promise(((e,t)=>{i?e():t(new Error(r("t_38_1745735769521")))}))},cert:{required:!0,trigger:"input",validator:(e,i)=>new Promise(((e,t)=>{i?e():t(new Error(r("t_40_1745735815317")))}))}};export{e as r}; import{$ as r}from"./main-B314ly27.js";const e={key:{required:!0,trigger:"input",validator:(e,i)=>new Promise(((e,t)=>{i?e():t(new Error(r("t_38_1745735769521")))}))},cert:{required:!0,trigger:"input",validator:(e,i)=>new Promise(((e,t)=>{i?e():t(new Error(r("t_40_1745735815317")))}))}};export{e as r};

View File

@@ -1 +1 @@
import{$ as e}from"./main-D8Z-8iPZ.js";const r={exec_type:{required:!0,message:e("t_31_1745735767891"),trigger:"change"},type:{required:!0,message:e("t_32_1745735767156"),trigger:"change"},week:{required:!0,message:e("t_33_1745735766532"),trigger:"input",type:"number"},month:{required:!0,message:e("t_33_1745735766532"),trigger:"input",type:"number"},hour:{required:!0,message:e("t_33_1745735766532"),trigger:"input",type:"number"},minute:{required:!0,message:e("t_33_1745735766532"),trigger:"input",type:"number"}};export{r}; import{$ as e}from"./main-B314ly27.js";const r={exec_type:{required:!0,message:e("t_31_1745735767891"),trigger:"change"},type:{required:!0,message:e("t_32_1745735767156"),trigger:"change"},week:{required:!0,message:e("t_33_1745735766532"),trigger:"input",type:"number"},month:{required:!0,message:e("t_33_1745735766532"),trigger:"input",type:"number"},hour:{required:!0,message:e("t_33_1745735766532"),trigger:"input",type:"number"},minute:{required:!0,message:e("t_33_1745735766532"),trigger:"input",type:"number"}};export{r};

View File

@@ -1 +1 @@
import{$ as r}from"./main-D8Z-8iPZ.js";const e={subject:{trigger:"input",validator:(e,t)=>new Promise(((e,o)=>{t?t.length>100?o(new Error(r("t_3_1745887835089")+"长度不能超过100个字符")):e():o(new Error(r("t_3_1745887835089")))}))},body:{trigger:"input",validator:(e,t)=>new Promise(((e,o)=>{t?t.length>1e3?o(new Error(r("t_4_1745887835265")+"长度不能超过1000个字符")):e():o(new Error(r("t_4_1745887835265")))}))},provider_id:{trigger:"change",type:"string",validator:(e,t)=>new Promise(((e,o)=>{t?e():o(new Error(r("t_0_1745887835267")))}))}};export{e as r}; import{$ as r}from"./main-B314ly27.js";const e={subject:{trigger:"input",validator:(e,t)=>new Promise(((e,o)=>{t?t.length>100?o(new Error(r("t_3_1745887835089")+"长度不能超过100个字符")):e():o(new Error(r("t_3_1745887835089")))}))},body:{trigger:"input",validator:(e,t)=>new Promise(((e,o)=>{t?t.length>1e3?o(new Error(r("t_4_1745887835265")+"长度不能超过1000个字符")):e():o(new Error(r("t_4_1745887835265")))}))},provider_id:{trigger:"change",type:"string",validator:(e,t)=>new Promise(((e,o)=>{t?e():o(new Error(r("t_0_1745887835267")))}))}};export{e as r};

View File

@@ -0,0 +1 @@
import{w as r,W as e}from"./business-IbhWuk4D.js";import{$ as i}from"./main-B314ly27.js";const o={domains:{required:!0,trigger:"input",validator:(r,o)=>new Promise(((r,t)=>{e(o)?o?r():t(new Error(i("t_0_1746697487119"))):t(new Error(i("t_0_1745553910661")))}))},email:{required:!0,trigger:"input",validator:(e,o)=>new Promise(((e,t)=>{r(o)?o?e():t(new Error(i("t_1_1746697485188"))):t(new Error(i("t_1_1745553909483")))}))},provider_id:{required:!0,trigger:"change",validator:(r,e)=>new Promise(((r,o)=>{e?r():o(new Error(i("t_3_1745490735059")))}))},end_day:{required:!0,trigger:"input",validator:(r,e)=>new Promise(((r,o)=>{e?r():o(new Error(i("t_2_1745553907423")))}))}};export{o as r};

View File

@@ -1 +1 @@
import{$ as e}from"./main-D8Z-8iPZ.js";import{N as r}from"./business-DN2MKo6G.js";const i={provider:{required:!0,message:e("t_19_1745735766810"),type:"string",trigger:"change"},provider_id:{required:!0,trigger:"change",type:"string",validator:(r,i)=>{if(!i)return new Error(e("t_1_1745744905566"))}},"inputs.fromNodeId":{required:!0,message:e("t_3_1745748298161"),trigger:"change"},certPath:{required:!0,message:e("t_30_1746667591892"),trigger:"input"},keyPath:{required:!0,message:e("t_31_1746667593074"),trigger:"input"},siteName:{required:!0,message:e("t_23_1745735766455"),trigger:"input"},site_id:{required:!0,message:e("t_24_1745735766826"),trigger:"input"},domain:{required:!0,trigger:"input",validator:(i,t)=>{if(!r(t))return new Error(e("t_0_1744958839535"))}},region:{required:!0,message:e("t_25_1745735766651"),trigger:"input"},bucket:{required:!0,message:e("t_26_1745735767144"),trigger:"input"}};export{i as r}; import{$ as e}from"./main-B314ly27.js";import{N as r}from"./business-IbhWuk4D.js";const i={provider:{required:!0,message:e("t_19_1745735766810"),type:"string",trigger:"change"},provider_id:{required:!0,trigger:"change",type:"string",validator:(r,i)=>{if(!i)return new Error(e("t_1_1745744905566"))}},"inputs.fromNodeId":{required:!0,message:e("t_3_1745748298161"),trigger:"change"},certPath:{required:!0,message:e("t_30_1746667591892"),trigger:"input"},keyPath:{required:!0,message:e("t_31_1746667593074"),trigger:"input"},siteName:{required:!0,message:e("t_23_1745735766455"),trigger:"input"},site_id:{required:!0,message:e("t_24_1745735766826"),trigger:"input"},domain:{required:!0,trigger:"input",validator:(i,t)=>{if(!r(t))return new Error(e("t_0_1744958839535"))}},region:{required:!0,message:e("t_25_1745735766651"),trigger:"input"},bucket:{required:!0,message:e("t_26_1745735767144"),trigger:"input"}};export{i as r};

File diff suppressed because one or more lines are too long

BIN
frontend/.DS_Store vendored

Binary file not shown.

BIN
frontend/apps/.DS_Store vendored Normal file

Binary file not shown.

BIN
frontend/apps/allin-ssl/.DS_Store vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,5 @@
# Vue 3 + TypeScript + Vite
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 `<script setup>` SFCs, check out the [script setup docs](https://v3.vuejs.org/api/sfc-script-setup.html#sfc-script-setup) to learn more.
Learn more about the recommended Project Setup and IDE Support in the [Vue Docs TypeScript Guide](https://vuejs.org/guide/typescript/overview.html#project-setup).

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
import vueConfig from '@baota/eslint/vue'
import baseConfig from '@baota/eslint'
/** @type {import("eslint").Linter.Config[]} */
const config = [
// Vue 相关配置,包含 TypeScript 支持
...vueConfig,
// 基础配置,用于通用的 JavaScript/TypeScript 规则
...baseConfig,
// 项目特定的配置覆盖
{
files: ['**/*.{js,ts,tsx,jsx,vue}'],
rules: {
// 在此处添加项目特定的规则覆盖
'vue/multi-word-component-names': 'off', // 关闭组件名称必须由多个单词组成的规则
},
},
]
export default config

View File

@@ -0,0 +1,13 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>ALLinSSL</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>

View File

@@ -0,0 +1,28 @@
分别生成以下相关的类型文件,在 types/ 目录下,以及 api 文件,在 api/目录下
文件名称如下:
home
autoDeploy
certManage
certApply
authAPIManage
monitor
settings
1、types文件命名方式{视图名称}.d.ts
2、api文件命名方式{视图名称}.ts
3、api文件结构如下
```typescript
import { useApi } from './index'
import type { loginParams, loginResponse } from '@/types/public'
/**
* 登录
* @param params 登录参数
* @returns 登录
*/
export const loginCloudControl = (params?: loginParams) => useApi<loginResponse, loginParams>('/v1/user/login', params)
```

View File

@@ -0,0 +1,273 @@
目前接口返回格式
```ts
export interface AxiosResponseData<T = unknown> {
code: number
count: number
data: T
message: string
status: boolean
}
```
后端请求的协议方式formdata 还是 json
登录的方式使用那种方案jwt以及加密方式
接口文档需要包含一下内容
接口类型、接口返回值、以及其他需要处理的内容需要说清楚,例如登录失效,以及状态的判断
基础要求
1、基于vue3 的 tsx文件编写并将业务和数据、视图分离成 mvc 模式,如果代码中没有包含业务和数据,可以移除该文件,确保结构单一和可维护性。
2、视图文件文件入口为 index.tsx
3、业务代码文件入口为 useController.tsx
4、数据代码文件入口为 useStore.tsx
5、使用hooks编写如果存在表单、表格使用配置生成。参考如下
视图文件内容要求
1、所有的视图style使用css module 编写基于tailwind 的@apply 实现如果行内元素少可以省略创建css module。
2、如果视图使用naiveui tsx 开发内容,如果没有相应的组件,则使用原生样式实现
业务代码内容要求
1、包含 hooks 配置的生成方法,需要导出
2、事件逻辑处理、dom 操作、生命周期、监听函数等,
3、数据代码转发支持将 sotre 数据直接转发
数据代码内容要求
1、包含所有的数据内容例如请求方法、表单数据处理
2、响应式数据存储、持久化数据存储
国际化内容要求
1、将文件中的中文文本未使用 $t 包裹的内容,使用 $t('中文内容') 包裹起来,如果存在则引入 $timport { $t } from "@locales/index"
格式要求
1、注释采用jsdoc格式使用中文作为注释语言
2、注释内容清晰对同类的函数位置整理和功能使用注释分割线分
3、方法名称规范化根据类型和作用定义。
基础视图参考:/Users/chudong/project/tools-monorepo/apps/allin-ssl/src/components/baseComponent/index.tsx
首页模块设计
1、界面设计
包含三个模块,采用上下结构
* 概览模块包含工作流、证书、监控模块,每个模块,都具备所有数量、启用/到期/异常数量、失败/到期数量,以及对应产品图标
* 最近工作流执行列表,包含字段:
*   名称
*   执行状态
*   执行时间
* 快捷入口模块,提供常用的三个模块入口,工作流构建、申请证书、添加监控
2、接口设计包含
* 概览数据接口
* 最近工作流列表
工作流列表模块设计
1、界面设计
采用基础视图组件设计该页面,传入相关内容,
* 添加按钮文本:新增工作流
* 搜索框提示内容:请输入工作流名称
* 表格包含字段:
* 工作流名称
* 触发方式(自动执行或手动可切换)
* 启用状态(启用/停用)
* 最后一次执行时间
* 创建时间
* 操作(包含日志、执行、编辑、删除)
* 添加工作流按钮触发弹窗内容
* 弹窗界面包含多个具备概览图的单选项
* 常用SSL部署工作流
* 自定义工作流
2、接口设计包含
* 工作流列表
* 获取指定工作流程数据
* 新建自定义工作流程数据
* 获取指定工作流执行日志
* 执行指定工作流
* 保存指定工作流程数据
* 删除指定工作流程数据
工作流设计模块设计
1、界面设计
采用流程图构建组建,设计页面,需要设计一下节点设计,所有节点采用
* 申请SSL表单设计
* 域名信息input、必填
* 邮箱信息input、非必填
* DNS 提供商select支持添加添加调用 API 授权页面的添加表单)
* 高级选项折叠
* 数字证书算法select支持字段RSA2048\RSA3072\RSA4096\RSA8192\EC256\EC384默认使用RSA2048\
* 指定DNS解析服务器input非必填提示申请证书过程中优先使用它
* DNS超时时间(input、非必填)
* DNS解析TTL时间(input、非必填)
* 关闭CNAME跟随switch默认关闭
* 关闭ARI续期switch默认关闭
* 续签间隔input当上次签发的证书距离到期时间超过xx天后跳过续签使用
* 部署SSL到指定位置表单设计需要手动开发使用 AI 生成消耗时间,而且基本上可用性低)
*
* 通知告警
* 通知主题input、必填
* 通知内容textarea、必填
* 选择通知渠道select右侧支持添加渠道
*
* 并行分支
* 触发并行添加节点的功能
* 执行结果分支只有节点是申请SSL、部署SSL到指定位置、通知告警节点后面才出现此分支提供选择
* 触发条件判断分支,仅事件触发的节点支持添加该节点
* 节点执行成功后
* 节点执行失败后
2、接口设计包含
* 获取API服务商列表
* 获取证书列表
* 获取网站列表(宝塔面板)
* 获取 CDN 加速域名(仅腾讯、阿里相关密钥获取)
* 获取 WAF 包含域名(仅腾讯、阿里相关密钥获取)
证书管理列表模块设计
1、界面设计
采用基础视图组件设计该页面,传入相关内容,
* 添加按钮文本:上传证书
* 搜索框提示内容:请输入证书名称/类型
* 表格包含字段:
* 域名
* 品牌
* 剩余天数
* 到期时间
* 来源
* 添加时间
* 操作(下载、删除)
* 上传证书按钮触发弹窗内容
* 弹窗界面包含表单(支持证书压缩上传,识别腾讯、阿里下的证书压缩包文件)
* 证书名称
* 证书内容 (PEM 格式)
* 私钥内容 (KEY 格式)
2、接口设计包含
* 获取证书列表
* 下载指定证书
* 上传证书信息
* 删除指定证书信息
申请证书模块模块设计
1、界面设计
采用 tab 页面切换,分为商业证书页面和免费证书页面
* 商业证书采用iframe 内嵌官网页面,官网页面需要新增一个界面作为兼容页面。
* 免费证书采用,卡片式设计界面,以便于后期支持其他渠道
* 证书申请表单
* 手动申请和自动部署的选项卡片(包含 icon 和文件描述)
* 手动申请,采用 DNS 验证自动认证的方式,参考面板的统一设计
* 自动化部署,直接调用工作流的界面。
2、接口设计包含
* 申请证书信息
* 证书验证接口
授权API管理列表模块设计
1、界面设计
采用基础视图组件设计该页面,传入相关内容,
* 添加按钮文本:上传授权 API 管理
* 搜索框提示内容请输入授权api 名称或类型
* 表格包含字段:
*   名称
*   授权API类型提供商如腾讯云宝塔面板
*   创建时间
*   操作(编辑、删除)
* 上传证书按钮触发弹窗内容
* 弹窗界面包含表单
* 授权 API 类型select支持类型 SSH、宝塔、1panel、腾讯、阿里
* 不同的类型显示不同的东西
* SSH
* 服务器IPinput
* SSH端口input默认填充22
* 用户名input默认填充root
* 验证类型radio-button
1. 密码
2. SSH密钥
1. SSH密钥口令
* 宝塔
* 地址input包含协议和端口
* api 密钥input
* 1panel
* 地址input包含协议和端口
* api 密钥input
* 阿里云
* AccessKeyIdinput
* AccessKeySecretinput
* 腾讯云
* SecretIdinput
* SecretKeyinput
2、接口设计包含
* 获取授权 api 列表
* 新建授权 api 信息
* 编辑指定授权 aai 信息
* 删除指定授权 api 信息
监控管理列表模块设计
1、界面设计
采用基础视图组件设计该页面,传入相关内容,
* 添加按钮文本:添加监控
* 搜索框提示内容:请输入监控名称和域名
* 表格包含字段:
*   名称
*   授权API类型提供商如腾讯云宝塔面板
*   创建时间
*   操作(编辑、删除)
* 上传证书按钮触发弹窗内容
* 弹窗界面包含表单
* 监控名称input
* 域名/IPinput
* 检查周期select5/10/15/30/60分钟
* 告警渠道(多选,右侧支持添加渠道)
2、接口设计包含
* 获取监控管理列表
* 设置指定监控启动状态
* 添加监控信息
* 编辑指定监控信息
* 删除指定监控信息
设置管理模块设置
1、界面设置
采用 tab 页面切换,分为三个界面常用设置、告警通知、更新版本,内容部分采用卡片设计
* 常用设置采用1:1 分栏设计,支持表单元素行显示),包含一下具体模块,采用统一保存的方式,保存按钮固定在顶部,避免设置过长的导致问题
* 超时时间input
* 管理员账号input
* 管理员密码input
* SSL 配置switch关闭提供粘贴 keypem 文本域输入,默认折叠隐藏)
* 告警通知(采用上下结构),包含全局通知模块和通知渠道配置两个模块
* 全局通知模块(表单)
* 通知主题input默认文字
* 通知内容textarea默认文字
* 通知渠道(卡片列表,参考面板的设计)
* 左侧图标名称(包含已配置数量,点击可查看)+右侧操作
* 关于我们
* 版本信息,支持更新版本
* 客服二维码
* 微信公众好
* 关于产品介绍
2、接口设计包含
* 获取基础设置信息
* 保存基础设置信息
* 获取告警通用模板配置
* 设置告警通用模板配置
* 获取告警渠道列表
* 设置告警渠道
* 获取更新信息
* 更新版本版本

View File

@@ -0,0 +1,70 @@
流程/工作流图拆封设计
- 基础节点
- 初始化节点(不支持上传)
- 并行节点
- 执行结果节点(删除整个条件判断)
- 任务节点
- 申请节点(支持执行结果判断)
- 上传节点(不支持执行结果判断)
- 部署节点(支持执行结果判断)
- 通知节点(支持执行结果判断)
- 节点操作
- 重命名
- 删除
- 节点下一步配置
- 申请
- 上传
- 部署
- 通知
- 执行结果判断(上传节点不支持)
- 并行
- 节点辅助功能
- 拖拽
- 放大、缩小、还原
- 节点验证
- 验证任务节点
结构规划
- 状态存储(包含节点默认配置数据)
- 基础节点
- 任务节点(可以根据外部的机构自由的构建任务节点,主要有节点条件,节点操作方法)
- 节点渲染器
- 工具方法
- 入口文件
工作流图组件
├─ 状态存储
│ └─ 节点默认配置数据
├─ 基础节点
│ ├─ 初始化节点
│ ├─ 并行节点
│ └─ 执行结果节点
├─ 任务节点
│ ├─ 申请节点
│ ├─ 上传节点
│ ├─ 部署节点
│ └─ 通知节点
├─ 节点渲染器
│ └─ 渲染节点到界面
├─ 工具方法
│ ├─ 创建节点
│ ├─ 重命名节点
│ ├─ 删除节点
│ ├─ 配置节点下一步
│ ├─ 视图缩放
│ └─ 流程验证
└─ 入口文件
└─ 初始化工作流图组件

View File

@@ -0,0 +1,95 @@
以下是当前项目的视图结构,参考/src/view/test 的目录结构和内容,生成下述的文件和内容
src/
├── views/
│ ├── home/
│ │ ├── index.tsx
│ │ ├── index.model.css
│ │ ├── useController.tsx
│ │ ├── useStore.tsx
│ ├── autoDeploy/
│ │ ├── index.tsx
│ │ ├── index.model.css
│ │ ├── useController.tsx
│ │ ├── useStore.tsx
│ │ └── children/
│ │ └── pipeDesign/
│ │ ├── index.tsx
│ │ ├── index.model.css
│ │ ├── useController.tsx
│ │ └── useStore.tsx
│ ├── certManage/
│ │ ├── index.tsx
│ │ ├── index.model.css
│ │ ├── useController.tsx
│ │ ├── useStore.tsx
│ │ └── components/
│ │ └── uploadCert/
│ │ ├── index.tsx
│ │ ├── index.model.css
│ │ ├── useController.tsx
│ │ └── useStore.tsx
│ ├── certApply/
│ │ ├── index.tsx
│ │ ├── index.model.css
│ │ ├── useController.tsx
│ │ ├── useStore.tsx
│ │ ├── components/
│ │ │ └── certApplyForm/
│ │ │ ├── index.tsx
│ │ │ ├── index.model.css
│ │ │ ├── useController.tsx
│ │ │ └── useStore.tsx
│ │ └── children/
│ │ ├── commCert/
│ │ │ ├── index.tsx
│ │ │ ├── index.model.css
│ │ │ ├── useController.tsx
│ │ │ └── useStore.tsx
│ │ └── freeSslCert/
│ │ ├── index.tsx
│ │ ├── index.model.css
│ │ ├── useController.tsx
│ │ └── useStore.tsx
│ ├── authApiManage/
│ │ ├── index.tsx
│ │ ├── index.model.css
│ │ ├── useController.tsx
│ │ ├── useStore.tsx
│ │ └── components/
│ │ └── addAuthApi/
│ │ ├── index.tsx
│ │ ├── index.model.css
│ │ ├── useController.tsx
│ │ └── useStore.tsx
│ ├── monitor/
│ │ ├── index.tsx
│ │ ├── index.model.css
│ │ ├── useController.tsx
│ │ ├── useStore.tsx
│ │ └── components/
│ │ └── addMonitor/
│ │ ├── index.tsx
│ │ ├── index.model.css
│ │ ├── useController.tsx
│ │ └── useStore.tsx
│ └── settings/
│ ├── index.tsx
│ ├── index.model.css
│ ├── useController.tsx
│ ├── useStore.tsx
│ └── components/
│ ├── commSettings/
│ │ ├── index.tsx
│ │ ├── index.model.css
│ │ ├── useController.tsx
│ │ └── useStore.tsx
│ ├── notifySettings/
│ │ ├── index.tsx
│ │ ├── index.model.css
│ │ ├── useController.tsx
│ │ └── useStore.tsx
│ └── aboutUs/
│ ├── index.tsx
│ ├── index.model.css
│ ├── useController.tsx
│ └── useStore.tsx

View File

@@ -0,0 +1,96 @@
import Mock from 'mockjs'
import { listTemplate, messageTemplate } from './template'
// 授权列表
export const getAccessList = Mock.mock(/\/access\/get_list/, 'post', () => {
const list = []
for (let i = 0; i < 10; i++) {
list.push({
id: Mock.Random.id(),
name: `授权-${Mock.Random.ctitle(3, 5)}`,
type: Mock.Random.pick(['ssh', 'btpanel', '1panel', 'aliyun', 'tencent']),
status: Mock.Random.integer(0, 1),
created_at: Mock.Random.datetime('yyyy-MM-dd HH:mm:ss'),
})
}
return {
code: 0,
count: list.length,
data: {
list,
total: 18,
},
message: '获取成功',
status: true,
}
})
// 授权类型列表
export const getAccessTypes = Mock.mock(/\/access\/get_access_types/, 'post', () => ({
code: 0,
count: 3,
data: [
{ key: 'ssh', name: 'SSH验证' },
{ key: 'btpanel', name: '宝塔验证' },
{ key: '1panel', name: '1Panel验证' },
{ key: 'aliyun', name: '阿里云验证' },
{ key: 'tencentcloud', name: '腾讯云验证' },
],
message: '获取成功',
status: true,
}))
// 新增授权
export const addAccess = Mock.mock(/\/access\/add_access/, 'post', () => ({
code: 0,
count: 0,
data: {
id: Mock.Random.id(),
},
message: '添加成功',
status: true,
}))
// 修改授权
export const updateAccess = Mock.mock(/\/access\/upd_access/, 'post', () => ({
code: 0,
count: 0,
data: {
id: Mock.Random.id(),
},
message: '修改成功',
status: true,
}))
// 删除授权
export const deleteAccess = Mock.mock(/\/access\/del_access/, 'post', () => ({
code: 0,
count: 0,
data: null,
message: '删除成功',
status: true,
}))
// 获取工作流 dns 配置
export const getAccessAllList = Mock.mock(/\/access\/get_all/, 'post', () => {
const list: Array<{ id: string; name: string; type: string }> = []
for (let i = 0; i < 3; i++) {
const group = Mock.Random.pick([
{ name: '阿里云', type: 'aliyun' },
{ name: '腾讯云', type: 'tencentcloud' },
])
list.push({
id: Mock.Random.id(),
name: `${group.name} DNS 配置`,
type: group.type,
})
}
return {
code: 0,
count: list.length,
data: list,
message: '获取成功',
status: true,
}
})

View File

@@ -0,0 +1,70 @@
import Mock from 'mockjs'
import { listTemplate, messageTemplate } from './template'
// 证书列表
export const getCertList = Mock.mock(/\/cert\/get_list/, 'post', () => {
const list = []
for (let i = 0; i < 15; i++) {
list.push({
id: Mock.Random.id(),
name: `${Mock.Random.domain()}证书`,
domain: Mock.Random.domain(),
expire_time: Mock.Random.datetime('yyyy-MM-dd'),
status: Mock.Random.integer(0, 2),
created_at: Mock.Random.datetime('yyyy-MM-dd HH:mm:ss'),
})
}
return {
code: 0,
count: list.length,
data: {
list,
total: 32,
},
message: '获取成功',
status: true,
}
})
// 申请证书
export const applyCert = Mock.mock(/\/cert\/apply_cert/, 'post', () => ({
code: 0,
count: 0,
data: {
id: Mock.Random.id(),
},
message: '申请成功',
status: true,
}))
// 上传证书
export const uploadCert = Mock.mock(/\/cert\/upload_cert/, 'post', () => ({
code: 0,
count: 0,
data: {
id: Mock.Random.id(),
},
message: '上传成功',
status: true,
}))
// 删除证书
export const deleteCert = Mock.mock(/\/cert\/del_cert/, 'post', () => ({
code: 0,
count: 0,
data: null,
message: '删除成功',
status: true,
}))
// 下载证书
export const downloadCert = Mock.mock(/\/cert\/download_cert/, 'get', () => {
// 二进制文件流模拟,实际上应该是从服务器获取的二进制数据
return {
code: 0,
count: 0,
data: 'certificate-file-content',
message: '下载成功',
status: true,
}
})

View File

@@ -0,0 +1,9 @@
// 导出所有模块
export * from './userInfo' // 示例接口
export * from './overview'
export * from './workflow'
export * from './cert'
export * from './access'
export * from './siteMonitor'
export * from './setting'
export * from './login'

View File

@@ -0,0 +1,14 @@
import Mock from 'mockjs'
import { listTemplate, messageTemplate } from './template'
// 登录
export const login = Mock.mock(/\/login\/login/, 'post', () => ({
code: 0,
count: 0,
data: {
token:
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIiwiaWF0IjoxNjE0NjE5MDQ2LCJleHAiOjE2MTQ3MDU0NDZ9._QS2nQa2FRpqH7zJSnjYVBXCOp7-QR-zrXsHl6dTHaU',
},
message: '登录成功',
status: true,
}))

View File

@@ -0,0 +1,58 @@
import Mock from 'mockjs'
import { listTemplate, messageTemplate } from './template'
// 获取首页概览
export const getOverviews = Mock.mock(/\/overview\/get_overviews/, 'post', () => ({
code: 0,
count: 0,
data: {
workfolw: {
count: Mock.Random.integer(150, 250),
active: Mock.Random.integer(120, 200),
failure: Mock.Random.integer(0, 10),
},
cert: {
count: Mock.Random.integer(30, 80),
will: Mock.Random.integer(5, 15),
end: Mock.Random.integer(0, 5),
},
site_monitor: {
count: Mock.Random.integer(80, 150),
exception: Mock.Random.integer(0, 8),
},
workflow_history: [
{
name: '服务A部署流水线',
state: Mock.Random.integer(-1, 1),
mode: Mock.Random.pick(['定时触发', '手动触发']),
exec_time: Mock.Random.datetime('yyyy-MM-dd HH:mm'),
},
{
name: '1panel 面板证书部署流水线',
state: Mock.Random.integer(-1, 1),
mode: Mock.Random.pick(['定时触发', '手动触发']),
exec_time: Mock.Random.datetime('yyyy-MM-dd HH:mm'),
},
{
name: '网站证书申请流水线',
state: Mock.Random.integer(-1, 1),
mode: Mock.Random.pick(['定时触发', '手动触发']),
exec_time: Mock.Random.datetime('yyyy-MM-dd HH:mm'),
},
{
name: '网站证书申请流水线',
state: Mock.Random.integer(-1, 1),
mode: Mock.Random.pick(['定时触发', '手动触发']),
exec_time: Mock.Random.datetime('yyyy-MM-dd HH:mm'),
},
{
name: '网站证书申请流水线',
state: Mock.Random.integer(-1, 1),
mode: Mock.Random.pick(['定时触发', '手动触发']),
exec_time: Mock.Random.datetime('yyyy-MM-dd HH:mm'),
},
],
},
message: '获取成功',
status: true,
}))

View File

@@ -0,0 +1,87 @@
import Mock from 'mockjs'
import { listTemplate, messageTemplate } from './template'
// 获取系统设置
export const getSystemSetting = Mock.mock(/\/setting\/get_setting/, 'post', () => ({
code: 0,
count: 0,
data: {
auto_renew: true,
renew_days: 30,
notify_enable: true,
notify_days: 15,
},
message: '获取成功',
status: true,
}))
// 保存系统设置
export const saveSystemSetting = Mock.mock(/\/setting\/save_setting/, 'post', () => ({
code: 0,
count: 0,
data: null,
message: '保存成功',
status: true,
}))
// 获取告警类型列表
export const getReportTypes = Mock.mock(/\/setting\/get_report_types/, 'post', () => ({
code: 0,
count: 4,
data: [
{ key: 'email', name: '邮件通知' },
{ key: 'sms', name: '短信通知' },
{ key: 'webhook', name: 'Webhook' },
{ key: 'dingtalk', name: '钉钉通知' },
],
message: '获取成功',
status: true,
}))
// 配置告警
export const setReport = Mock.mock(/\/setting\/set_report/, 'post', () => ({
code: 0,
count: 0,
data: null,
message: '配置成功',
status: true,
}))
// 删除告警
export const deleteReport = Mock.mock(/\/setting\/del_report/, 'post', () => ({
code: 0,
count: 0,
data: null,
message: '删除成功',
status: true,
}))
// 获取证书过期通知模板
export const getCertEndNoticeTemplate = Mock.mock(/\/setting\/get_certend_notice_temp/, 'post', () => ({
code: 0,
count: 0,
data: {
title: '证书即将过期通知',
content: '您的证书 {{domain}} 将在 {{days}} 天后过期,请及时更新。',
},
message: '获取成功',
status: true,
}))
// 保存证书过期通知模板
export const saveCertEndNoticeTemplate = Mock.mock(/\/setting\/save_certend_notice_temp/, 'post', () => ({
code: 0,
count: 0,
data: null,
message: '保存成功',
status: true,
}))
// 系统更新
export const systemUpdate = Mock.mock(/\/setting\/update/, 'post', () => ({
code: 0,
count: 0,
data: null,
message: '更新成功',
status: true,
}))

View File

@@ -0,0 +1,68 @@
import Mock from 'mockjs'
import { listTemplate, messageTemplate } from './template'
// 站点监控列表
export const getSiteMonitorList = Mock.mock(/\/siteMonitor\/get_list/, 'post', () => {
const list = []
for (let i = 0; i < 12; i++) {
list.push({
id: Mock.Random.id(),
name: `${Mock.Random.ctitle(2, 5)}网站监控`,
url: `https://${Mock.Random.domain()}/api/${Mock.Random.word(3, 8)}`,
type: Mock.Random.pick(['HTTP', 'HTTPS', 'TCP', 'PING']),
status: Mock.Random.integer(0, 1),
check_result: Mock.Random.pick(['连接成功', '超时', '证书有效', '证书已过期']),
created_at: Mock.Random.datetime('yyyy-MM-dd HH:mm:ss'),
})
}
return {
code: 0,
count: list.length,
data: {
list,
total: 25,
},
message: '获取成功',
status: true,
}
})
// 新增站点监控
export const addSiteMonitor = Mock.mock(/\/siteMonitor\/add_site_monitor/, 'post', () => ({
code: 0,
count: 0,
data: {
id: Mock.Random.id(),
},
message: '添加成功',
status: true,
}))
// 修改站点监控
export const updateSiteMonitor = Mock.mock(/\/siteMonitor\/upd_site_monitor/, 'post', () => ({
code: 0,
count: 0,
data: {
id: Mock.Random.id(),
},
message: '修改成功',
status: true,
}))
// 删除站点监控
export const deleteSiteMonitor = Mock.mock(/\/siteMonitor\/del_site_monitor/, 'post', () => ({
code: 0,
count: 0,
data: null,
message: '删除成功',
status: true,
}))
// 启用/禁用站点监控
export const setSiteMonitor = Mock.mock(/\/siteMonitor\/set_site_monitor/, 'post', () => ({
code: 0,
count: 0,
data: null,
message: '设置成功',
status: true,
}))

View File

@@ -0,0 +1,24 @@
/**
* @description 成功模板
* @param {string} msg 消息
* @returns
*/
export const listTemplate = <T>(data: T, count: number) => ({
code: 200, // 状态码
count, // 总数仅data 为数组时有效
data, // 数据
message: '', // 消息
status: true, // 消息状态true 为成功false 为失败
})
/**
* @description 消息模板
* @param {object} data 数据
* @returns
*/
export const messageTemplate = (message: string, status: boolean) => ({
code: 200, // 状态码
count: 0, // 总数仅data 为数组时有效
message, // 消息
status, // 消息状态true 为成功false 为失败
})

View File

@@ -0,0 +1,26 @@
import Mock from 'mockjs'
import { listTemplate, messageTemplate } from './template'
// 用户列表 (案例接口)
export const listUser = Mock.mock(
/\/api\/user\/list/,
'post',
listTemplate(
{
id: '@id',
name: '@cname',
avatar: '@image',
'age|18-60': 18,
'gender|1': ['男', '女'],
phone: /^1[385][1-9]\d{8}/,
email: '@EMAIL',
address: '@county(true)',
'role|1': ['admin', 'user'],
},
100,
),
)
// 用户详情 (案例接口)
export const addUser = Mock.mock(/\/api\/user\/add/, 'post', messageTemplate('添加成功', true))

View File

@@ -0,0 +1,90 @@
import Mock from 'mockjs'
import { listTemplate, messageTemplate } from './template'
// 工作流列表
export const getWorkflowList = Mock.mock(/\/workflow\/get_list/, 'post', () => {
const list = []
for (let i = 0; i < 10; i++) {
list.push({
id: Mock.Random.id(),
name: `${Mock.Random.ctitle(3, 8)}部署流水线`,
type: Mock.Random.pick(['auto', 'manual']),
status: Mock.Random.integer(0, 1),
created_at: Mock.Random.datetime('yyyy-MM-dd HH:mm:ss'),
updated_at: Mock.Random.datetime('yyyy-MM-dd HH:mm:ss'),
})
}
return {
code: 0,
count: list.length,
data: {
list,
total: 28,
},
message: '获取成功',
status: true,
}
})
// 新增工作流
export const addWorkflow = Mock.mock(/\/workflow\/add_workflow/, 'post', () => ({
code: 0,
count: 0,
data: {
id: Mock.Random.id(),
},
message: '添加成功',
status: true,
}))
// 修改工作流
export const updateWorkflow = Mock.mock(/\/workflow\/upd_workflow/, 'post', () => ({
code: 0,
count: 0,
data: {
id: Mock.Random.id(),
},
message: '修改成功',
status: true,
}))
// 删除工作流
export const deleteWorkflow = Mock.mock(/\/workflow\/del_workflow/, 'post', () => ({
code: 0,
count: 0,
data: null,
message: '删除成功',
status: true,
}))
// 获取工作流执行历史
export const getWorkflowHistory = Mock.mock(/\/workflow\/get_workflow_history/, 'post', () => {
const list = []
for (let i = 0; i < 10; i++) {
list.push({
id: Mock.Random.id(),
workflow_id: Mock.Random.id(),
workflow_name: `${Mock.Random.ctitle(3, 8)}部署流水线`,
state: Mock.Random.integer(-1, 1),
mode: Mock.Random.pick(['定时触发', '手动触发']),
exec_time: Mock.Random.datetime('yyyy-MM-dd HH:mm:ss'),
})
}
return {
code: 0,
count: list.length,
data: list,
message: '获取成功',
status: true,
}
})
// 手动执行工作流
export const executeWorkflow = Mock.mock(/\/workflow\/execute_workflow/, 'post', () => ({
code: 0,
count: 0,
data: null,
message: '执行成功',
status: true,
}))

View File

@@ -0,0 +1,87 @@
{
"name": "allin-ssl",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite --host",
"build": "vite build --mode build",
"preview": "vite preview",
"test": "vitest",
"tsc": "vue-tsc -b --noEmit",
"lint:ts": "eslint --ext .ts,.js src --fix",
"lint:style": "stylelint --config .stylelintrc.cjs --fix",
"lint": "npm run lint:ts && npm run lint:style"
},
"dependencies": {
"@baota/hooks": "workspace:*",
"@baota/i18n": "workspace:*",
"@baota/naive-ui": "workspace:*",
"@baota/pinia": "workspace:*",
"@baota/router": "workspace:*",
"@baota/utils": "workspace:*",
"@vicons/antd": "^0.13.0",
"@vicons/carbon": "^0.13.0",
"@vicons/fa": "^0.13.0",
"@vicons/fluent": "^0.13.0",
"@vicons/ionicons5": "^0.13.0",
"@vicons/tabler": "^0.13.0",
"@vue-flow/background": "^1.3.2",
"@vue-flow/controls": "^1.1.2",
"@vue-flow/core": "^1.42.5",
"@vue-flow/minimap": "^1.5.3",
"@vue-flow/node-toolbar": "^1.1.1",
"@vueuse/core": "^12.4.0",
"@vueuse/integrations": "^12.4.0",
"axios": "^1.7.9",
"crypto-js": "^4.1.1",
"echarts": "^5.6.0",
"jsoneditor": "^10.2.0",
"naive-ui": "^2.41.0",
"normalize.css": "^8.0.1",
"nprogress": "^0.2.0",
"particlesjs": "^2.2.3",
"pinia": "^2.3.0",
"pinia-plugin-persistedstate": "^4.2.0",
"uuid": "^11.1.0",
"vue": "^3.5.13",
"vue-i18n": "^11.1.2",
"vue-router": "^4.5.0"
},
"devDependencies": {
"@baota/eslint": "workspace:*",
"@baota/plugin-i18n": "workspace:*",
"@baota/prettier": "workspace:*",
"@baota/stylelint": "workspace:*",
"@baota/typescript": "workspace:*",
"@baota/project-ftp-sync": "workspace:*",
"@types/crypto-js": "^4.1.1",
"@types/humps": "^2.0.6",
"@types/md5": "^2.3.5",
"@types/minimist": "^1.2.5",
"@types/mockjs": "^1.0.10",
"@types/node": "^22.10.7",
"@types/ramda": "^0.30.2",
"@vitejs/plugin-basic-ssl": "^1.2.0",
"@vitejs/plugin-legacy": "^6.0.0",
"@vitejs/plugin-vue": "^5.2.1",
"@vitejs/plugin-vue-jsx": "^4.1.1",
"@vue/tsconfig": "^0.7.0",
"autoprefixer": "^10.4.20",
"humps": "^2.0.1",
"minimist": "^1.2.8",
"mockjs": "^1.1.0",
"postcss": "^8.5.1",
"tailwindcss": "^3.4.17",
"typescript-plugin-css-modules": "^5.1.0",
"unplugin-auto-import": "^19.0.0",
"unplugin-vue-components": "^28.0.0",
"vite": "^6.0.5",
"vite-plugin-compression2": "^1.3.3",
"vite-plugin-svg-icons": "2.0.1",
"vite-plugin-vue-devtools": "^7.7.0",
"vite-plugin-vue-mcp": "^0.3.2",
"vitest": "^3.0.2",
"vue-tsc": "^2.2.0"
}
}

View File

@@ -0,0 +1,6 @@
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}

View File

@@ -0,0 +1,3 @@
import prettierConfig from '@baota/prettier'
export default prettierConfig

BIN
frontend/apps/allin-ssl/public/.DS_Store vendored Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

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