【同步】前端项目源码
【修复】工作流兼容问题
BIN
build/.DS_Store
vendored
Normal file
|
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
@@ -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>
|
||||||
BIN
frontend/static/.DS_Store → build/static/.DS_Store
vendored
1
build/static/css/style-C77exc-U.css
Normal file
|
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 364 KiB After Width: | Height: | Size: 364 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
1
build/static/js/Badge-DXqNfZIn.js
Normal file
1
build/static/js/Flex-DGUi9d1R.js
Normal 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};
|
||||||
@@ -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};
|
||||||
1
build/static/js/LockOutlined-B-Xv9QaR.js
Normal 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};
|
||||||
@@ -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};
|
||||||
1
build/static/js/Tabs-BHhZugfe.js
Normal 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};
|
||||||
1
build/static/js/arDZ-DBThBLyd.js
Normal 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};
|
||||||
1
build/static/js/drawer-BQ3tyvr5.js
Normal 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};
|
||||||
1
build/static/js/drawer-Bz830Gv7.js
Normal 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};
|
||||||
1
build/static/js/drawer-C_NLXvuT.js
Normal file
1
build/static/js/drawer-DGIdH1Ty.js
Normal file
1
build/static/js/drawer-thyph6uw.js
Normal 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};
|
||||||
1
build/static/js/esAR-mdpbCtxo.js
Normal file
1
build/static/js/frFR-BZSkg_UV.js
Normal file
1
build/static/js/index-4UwdEH-y.js
Normal file
1
build/static/js/index-7EWMV5k_.js
Normal file
1
build/static/js/index-BBXf7Mq_.js
Normal 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};
|
||||||
1
build/static/js/index-BK07zJJ4.js
Normal 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};
|
||||||
1
build/static/js/index-BLs5ik22.js
Normal file
1
build/static/js/index-BXuU4VQs.js
Normal 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};
|
||||||
1
build/static/js/index-Bk7ZLlM1.js
Normal file
1
build/static/js/index-C7vTqLv6.js
Normal 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};
|
||||||
1
build/static/js/index-CEgqi-bP.js
Normal file
1
build/static/js/index-CGwbFRdP.js
Normal 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};
|
||||||
@@ -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};
|
||||||
1
build/static/js/index-COzp_aiU.js
Normal file
1
build/static/js/index-CPYMtIAq.js
Normal file
1
build/static/js/index-CcyyJ-qU.js
Normal 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};
|
||||||
1
build/static/js/index-CkV_MGQJ.js
Normal 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};
|
||||||
1
build/static/js/index-Cp4VVOXU.js
Normal file
1
build/static/js/index-CvEgYnFX.js
Normal 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};
|
||||||
1
build/static/js/index-D530xIZS.js
Normal file
1
build/static/js/index-DRdOtCKN.js
Normal file
1
build/static/js/index-DZC6Yupn.js
Normal 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};
|
||||||
1
build/static/js/index-DfDnzPHH.js
Normal 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};
|
||||||
1
build/static/js/index-d8atpwNr.js
Normal 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};
|
||||||
1
build/static/js/index-r5goNA0Y.js
Normal 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};
|
||||||
1
build/static/js/jaJP-Cl81xBfD.js
Normal file
1
build/static/js/koKR-DzSNMRZs.js
Normal file
51
build/static/js/main-B314ly27.js
Normal file
1
build/static/js/ptBR-B9vlM-40.js
Normal 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};
|
||||||
1
build/static/js/ruRU-DiV6DTRb.js
Normal 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};
|
||||||
@@ -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};
|
||||||
1
build/static/js/text-BFHLoHa1.js
Normal 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};
|
||||||
1
build/static/js/useStore--US7DZf4.js
Normal 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};
|
||||||
@@ -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};
|
||||||
@@ -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};
|
||||||
@@ -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};
|
||||||
@@ -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};
|
||||||
1
build/static/js/verify-Dn31Klc9.js
Normal 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};
|
||||||
@@ -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};
|
||||||
1
build/static/js/zhTW-CQu7gxio.js
Normal file
BIN
frontend/.DS_Store
vendored
BIN
frontend/apps/.DS_Store
vendored
Normal file
BIN
frontend/apps/allin-ssl/.DS_Store
vendored
Normal file
5
frontend/apps/allin-ssl/README.md
Normal 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).
|
||||||
8365
frontend/apps/allin-ssl/cache/translation_cache.json
vendored
Normal file
22
frontend/apps/allin-ssl/eslint.config.js
Normal 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
|
||||||
13
frontend/apps/allin-ssl/index.html
Normal 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>
|
||||||
28
frontend/apps/allin-ssl/mardown/api.md
Normal 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)
|
||||||
|
```
|
||||||
273
frontend/apps/allin-ssl/mardown/base.md
Normal 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('中文内容') 包裹起来,如果存在则引入 $t,import { $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
|
||||||
|
* 服务器IP(input)
|
||||||
|
* SSH端口(input,默认填充22)
|
||||||
|
* 用户名(input,默认填充root)
|
||||||
|
* 验证类型(radio-button)
|
||||||
|
1. 密码
|
||||||
|
2. SSH密钥
|
||||||
|
1. SSH密钥口令
|
||||||
|
* 宝塔
|
||||||
|
* 地址(input,包含协议和端口)
|
||||||
|
* api 密钥(input)
|
||||||
|
* 1panel
|
||||||
|
* 地址(input,包含协议和端口)
|
||||||
|
* api 密钥(input)
|
||||||
|
* 阿里云
|
||||||
|
* AccessKeyId(input)
|
||||||
|
* AccessKeySecret(input)
|
||||||
|
* 腾讯云
|
||||||
|
* SecretId(input)
|
||||||
|
* SecretKey(input)
|
||||||
|
|
||||||
|
2、接口设计包含
|
||||||
|
* 获取授权 api 列表
|
||||||
|
* 新建授权 api 信息
|
||||||
|
* 编辑指定授权 aai 信息
|
||||||
|
* 删除指定授权 api 信息
|
||||||
|
|
||||||
|
|
||||||
|
监控管理列表模块设计
|
||||||
|
1、界面设计
|
||||||
|
采用基础视图组件设计该页面,传入相关内容,
|
||||||
|
* 添加按钮文本:添加监控
|
||||||
|
* 搜索框提示内容:请输入监控名称和域名
|
||||||
|
* 表格包含字段:
|
||||||
|
* 名称
|
||||||
|
* 授权API类型(提供商,如腾讯云,宝塔面板)
|
||||||
|
* 创建时间
|
||||||
|
* 操作(编辑、删除)
|
||||||
|
* 上传证书按钮触发弹窗内容
|
||||||
|
* 弹窗界面包含表单
|
||||||
|
* 监控名称(input)
|
||||||
|
* 域名/IP(input)
|
||||||
|
* 检查周期(select,5/10/15/30/60分钟)
|
||||||
|
* 告警渠道(多选,右侧支持添加渠道)
|
||||||
|
2、接口设计包含
|
||||||
|
* 获取监控管理列表
|
||||||
|
* 设置指定监控启动状态
|
||||||
|
* 添加监控信息
|
||||||
|
* 编辑指定监控信息
|
||||||
|
* 删除指定监控信息
|
||||||
|
|
||||||
|
|
||||||
|
设置管理模块设置
|
||||||
|
1、界面设置
|
||||||
|
采用 tab 页面切换,分为三个界面常用设置、告警通知、更新版本,内容部分采用卡片设计
|
||||||
|
* 常用设置(采用1:1 分栏设计,支持表单元素行显示),包含一下具体模块,采用统一保存的方式,保存按钮固定在顶部,避免设置过长的导致问题
|
||||||
|
* 超时时间(input)
|
||||||
|
* 管理员账号(input)
|
||||||
|
* 管理员密码(input)
|
||||||
|
* SSL 配置(switch,关闭,提供粘贴 key,pem 文本域输入,默认折叠隐藏)
|
||||||
|
* 告警通知(采用上下结构),包含全局通知模块和通知渠道配置两个模块
|
||||||
|
* 全局通知模块(表单)
|
||||||
|
* 通知主题(input,默认文字)
|
||||||
|
* 通知内容(textarea,默认文字)
|
||||||
|
* 通知渠道(卡片列表,参考面板的设计)
|
||||||
|
* 左侧图标名称(包含已配置数量,点击可查看)+右侧操作
|
||||||
|
* 关于我们
|
||||||
|
* 版本信息,支持更新版本
|
||||||
|
* 客服二维码
|
||||||
|
* 微信公众好
|
||||||
|
* 关于产品介绍
|
||||||
|
|
||||||
|
2、接口设计包含
|
||||||
|
* 获取基础设置信息
|
||||||
|
* 保存基础设置信息
|
||||||
|
* 获取告警通用模板配置
|
||||||
|
* 设置告警通用模板配置
|
||||||
|
* 获取告警渠道列表
|
||||||
|
* 设置告警渠道
|
||||||
|
* 获取更新信息
|
||||||
|
* 更新版本版本
|
||||||
70
frontend/apps/allin-ssl/mardown/flowChart.md
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
流程/工作流图拆封设计
|
||||||
|
|
||||||
|
- 基础节点
|
||||||
|
- 初始化节点(不支持上传)
|
||||||
|
- 并行节点
|
||||||
|
- 执行结果节点(删除整个条件判断)
|
||||||
|
|
||||||
|
- 任务节点
|
||||||
|
- 申请节点(支持执行结果判断)
|
||||||
|
- 上传节点(不支持执行结果判断)
|
||||||
|
- 部署节点(支持执行结果判断)
|
||||||
|
- 通知节点(支持执行结果判断)
|
||||||
|
|
||||||
|
- 节点操作
|
||||||
|
- 重命名
|
||||||
|
- 删除
|
||||||
|
|
||||||
|
- 节点下一步配置
|
||||||
|
- 申请
|
||||||
|
- 上传
|
||||||
|
- 部署
|
||||||
|
- 通知
|
||||||
|
- 执行结果判断(上传节点不支持)
|
||||||
|
- 并行
|
||||||
|
|
||||||
|
- 节点辅助功能
|
||||||
|
- 拖拽
|
||||||
|
- 放大、缩小、还原
|
||||||
|
|
||||||
|
- 节点验证
|
||||||
|
- 验证任务节点
|
||||||
|
|
||||||
|
结构规划
|
||||||
|
- 状态存储(包含节点默认配置数据)
|
||||||
|
- 基础节点
|
||||||
|
- 任务节点(可以根据外部的机构自由的构建任务节点,主要有节点条件,节点操作方法)
|
||||||
|
- 节点渲染器
|
||||||
|
- 工具方法
|
||||||
|
- 入口文件
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
工作流图组件
|
||||||
|
├─ 状态存储
|
||||||
|
│ └─ 节点默认配置数据
|
||||||
|
├─ 基础节点
|
||||||
|
│ ├─ 初始化节点
|
||||||
|
│ ├─ 并行节点
|
||||||
|
│ └─ 执行结果节点
|
||||||
|
├─ 任务节点
|
||||||
|
│ ├─ 申请节点
|
||||||
|
│ ├─ 上传节点
|
||||||
|
│ ├─ 部署节点
|
||||||
|
│ └─ 通知节点
|
||||||
|
├─ 节点渲染器
|
||||||
|
│ └─ 渲染节点到界面
|
||||||
|
├─ 工具方法
|
||||||
|
│ ├─ 创建节点
|
||||||
|
│ ├─ 重命名节点
|
||||||
|
│ ├─ 删除节点
|
||||||
|
│ ├─ 配置节点下一步
|
||||||
|
│ ├─ 视图缩放
|
||||||
|
│ └─ 流程验证
|
||||||
|
└─ 入口文件
|
||||||
|
└─ 初始化工作流图组件
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
95
frontend/apps/allin-ssl/mardown/view.md
Normal 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
|
||||||
96
frontend/apps/allin-ssl/mock/access.ts
Normal 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,
|
||||||
|
}
|
||||||
|
})
|
||||||
70
frontend/apps/allin-ssl/mock/cert.ts
Normal 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,
|
||||||
|
}
|
||||||
|
})
|
||||||
9
frontend/apps/allin-ssl/mock/index.ts
Normal 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'
|
||||||
14
frontend/apps/allin-ssl/mock/login.ts
Normal 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,
|
||||||
|
}))
|
||||||
58
frontend/apps/allin-ssl/mock/overview.ts
Normal 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,
|
||||||
|
}))
|
||||||
87
frontend/apps/allin-ssl/mock/setting.ts
Normal 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,
|
||||||
|
}))
|
||||||
68
frontend/apps/allin-ssl/mock/siteMonitor.ts
Normal 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,
|
||||||
|
}))
|
||||||
24
frontend/apps/allin-ssl/mock/template.ts
Normal 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 为失败
|
||||||
|
})
|
||||||
26
frontend/apps/allin-ssl/mock/userInfo.ts
Normal 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))
|
||||||
|
|
||||||
90
frontend/apps/allin-ssl/mock/workflow.ts
Normal 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,
|
||||||
|
}))
|
||||||
|
|
||||||
87
frontend/apps/allin-ssl/package.json
Normal 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"
|
||||||
|
}
|
||||||
|
}
|
||||||
6
frontend/apps/allin-ssl/postcss.config.js
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
export default {
|
||||||
|
plugins: {
|
||||||
|
tailwindcss: {},
|
||||||
|
autoprefixer: {},
|
||||||
|
},
|
||||||
|
}
|
||||||
3
frontend/apps/allin-ssl/prettier.config.js
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
import prettierConfig from '@baota/prettier'
|
||||||
|
|
||||||
|
export default prettierConfig
|
||||||
BIN
frontend/apps/allin-ssl/public/.DS_Store
vendored
Normal file
BIN
frontend/apps/allin-ssl/public/favicon.ico
Normal file
|
After Width: | Height: | Size: 66 KiB |