koishi-plugin-oni-sync-bot 0.8.1 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +2 -10
- package/dist/style.css +1 -1
- package/lib/index.js +251 -7
- package/lib/plugins/todoList.d.ts +8 -5
- package/package.json +1 -1
- package/readme.md +98 -19
package/dist/index.js
CHANGED
|
@@ -1,13 +1,5 @@
|
|
|
1
|
-
import{defineComponent as z,openBlock as y,createElementBlock as k,createElementVNode as c,ref as I,computed as b,watch as J,onMounted as Ee,resolveComponent as $,createBlock as N,withCtx as _,createVNode as v,unref as i,createTextVNode as U,Fragment as we,renderList as Yt,normalizeClass as T,toDisplayString as H,createCommentVNode as O,reactive as an,warn as oa,getCurrentInstance as Se,watchEffect as aa,onBeforeUnmount as lt,inject as ee,isRef as oo,onScopeDispose as sa,shallowRef as yt,provide as sn,renderSlot as Z,mergeProps as Je,toRef as wt,onUnmounted as ra,useAttrs as la,useSlots as ao,nextTick as ae,resolveDynamicComponent as ue,withModifiers as Ue,normalizeStyle as tt,Transition as rn,withDirectives as Ke,vShow as Qe,Text as ia,h as ua,shallowReactive as ca,isVNode as $t,render as Ct,toRefs as da,withKeys as dt,resolveDirective as fa}from"vue";import{store as pa,Time as va,message as Dt,send as De}from"@koishijs/client";import{isClient as me,useEventListener as so,useResizeObserver as ro,useTimeoutFn as ma}from"@vueuse/core";/*! Element Plus Icons Vue v2.3.2 */var ga=z({name:"Bottom",__name:"bottom",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M544 805.888V168a32 32 0 1 0-64 0v637.888L246.656 557.952a30.72 30.72 0 0 0-45.312 0 35.52 35.52 0 0 0 0 48.064l288 306.048a30.72 30.72 0 0 0 45.312 0l288-306.048a35.52 35.52 0 0 0 0-48 30.72 30.72 0 0 0-45.312 0L544 805.824z"})]))}}),ha=ga,ya=z({name:"CircleCheck",__name:"circle-check",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),c("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752z"})]))}}),ba=ya,_a=z({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),lo=_a,wa=z({name:"CircleClose",__name:"circle-close",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),c("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}}),io=wa,Ca=z({name:"Close",__name:"close",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),Sa=Ca,Ea=z({name:"Hide",__name:"hide",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4s-12.8-9.6-22.4-9.6-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176S0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4m-646.4 528Q115.2 579.2 76.8 512q43.2-72 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4m140.8-96Q352 555.2 352 512c0-44.8 16-83.2 48-112s67.2-48 112-48c28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6q-43.2 72-153.6 172.8c-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176S1024 528 1024 512s-48.001-73.6-134.401-176"}),c("path",{fill:"currentColor",d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112s-67.2 48-112 48"})]))}}),Ta=Ea,xa=z({name:"InfoFilled",__name:"info-filled",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),uo=xa,ka=z({name:"Loading",__name:"loading",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248M828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0"})]))}}),St=ka,Ma=z({name:"Plus",__name:"plus",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}}),Ia=Ma,Ba=z({name:"Refresh",__name:"refresh",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z"})]))}}),$a=Ba,La=z({name:"SuccessFilled",__name:"success-filled",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),co=La,Oa=z({name:"Top",__name:"top",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M572.235 205.282v600.365a30.118 30.118 0 1 1-60.235 0V205.282L292.382 438.633a28.913 28.913 0 0 1-42.646 0 33.43 33.43 0 0 1 0-45.236l271.058-288.045a28.913 28.913 0 0 1 42.647 0L834.5 393.397a33.43 33.43 0 0 1 0 45.176 28.913 28.913 0 0 1-42.647 0l-219.618-233.23z"})]))}}),Aa=Oa,Na=z({name:"View",__name:"view",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))}}),Ra=Na,Pa=z({name:"WarningFilled",__name:"warning-filled",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),fo=Pa;const za={class:"filter-container"},Fa={class:"filter-row"},Va={class:"button-group"},Da={key:0,class:"empty-state"},Ha="yyyy-MM-dd hh:mm:ss",Ua=z({__name:"page",setup(e){const t=I(),n=I("all"),o=I(""),a=I([]);function s(M){const p=va.template(Ha,new Date(M.timestamp)),u=M.type.toUpperCase(),S=M.content.replace(/\u001b\[[0-9;]*m/g,"");return`[${p}] [${u}] ${S}`}const l=b(()=>a.value.filter(M=>!M.includes("[ERROR]")&&!M.includes("[WARN]"))),r=b(()=>a.value.filter(M=>M.includes("[ERROR]")||M.includes("[WARN]"))),d=b(()=>{switch(n.value){case"normal":return l.value;case"error":return r.value;default:return a.value}}),f=b(()=>{if(!o.value.trim())return d.value;const M=o.value.toLowerCase();return d.value.filter(p=>p.toLowerCase().includes(M))});function w(M){return M.includes("[ERROR]")?"log-error":M.includes("[WARN]")?"log-warn":M.includes("[INFO]")?"log-info":""}const h=()=>{t.value&&(t.value.scrollTop=0)},C=()=>{t.value&&(t.value.scrollTop=t.value.scrollHeight)};return J(()=>pa.onilogs,M=>{M&&(a.value=M.map(s))},{deep:true,immediate:true}),J(()=>a.value.length,()=>{setTimeout(C,0)}),Ee(()=>{C()}),(M,p)=>{const u=$("el-tab-pane"),S=$("el-tabs"),x=$("el-input"),A=$("el-icon"),K=$("el-button"),R=$("k-layout");return y(),N(R,null,{default:_(()=>[c("div",za,[v(S,{modelValue:n.value,"onUpdate:modelValue":p[0]||(p[0]=F=>n.value=F),class:"log-tabs"},{default:_(()=>[v(u,{name:"all",label:"全部日志"}),v(u,{name:"normal",label:"正常日志"}),v(u,{name:"error",label:"错误/警告"})]),_:1},8,["modelValue"]),c("div",Fa,[v(x,{modelValue:o.value,"onUpdate:modelValue":p[1]||(p[1]=F=>o.value=F),placeholder:"搜索日志内容...",clearable:"",class:"filter-input"},null,8,["modelValue"]),c("div",Va,[v(K,{size:"small",onClick:h},{default:_(()=>[v(A,null,{default:_(()=>[v(i(Aa))]),_:1}),p[2]||(p[2]=U(" 顶部 ",-1))]),_:1}),v(K,{size:"small",onClick:C},{default:_(()=>[v(A,null,{default:_(()=>[v(i(ha))]),_:1}),p[3]||(p[3]=U(" 底部 ",-1))]),_:1})])])]),c("div",{class:"log-container",ref_key:"scrollRef",ref:t},[(y(true),k(we,null,Yt(f.value,(F,q)=>(y(),k("div",{key:q,class:"log-line"},[c("pre",{class:T(w(F))},H(F),3)]))),128)),f.value.length===0?(y(),k("div",Da,[...p[4]||(p[4]=[c("p",null,"暂无日志",-1)])])):O("v-if",true)],512)]),_:1})}}}),it=(e,t)=>{const n=e.__vccOpts||e;for(const[o,a]of t)n[o]=a;return n},Ka=it(Ua,[["__scopeId","data-v-62639236"]]),po=10,ja=2e4,Wa=1.33,Ce={steamEngine:2e3,oilEngine:200,hydrogenEngine:500,biodieselEngine:200,CommandModule:200,RoboPilotCommandModule:200,SolidBooster:1e3,LiquidFuelTank:100,OxidizerTank:100,OxidizerTankLiquid:100,CargoBay:2e3,GasCargoBay:2e3,LiquidCargoBay:2e3,SpecialCargoBay:2e3,TouristModule:200,ResearchModule:200,person:30},Et={steam:20,oil:40,hydrogen:60,biodiesel:50,booster:12e3},qt={steam:900,fuel:900,oxygen:2700},Ga={steam:"steamEngine",oil:"oilEngine",hydrogen:"hydrogenEngine",biodiesel:"biodieselEngine"},Ya={ResearchModule:"研究舱",CargoBay:"固体货舱",GasCargoBay:"气体货舱",LiquidCargoBay:"液体货舱",SpecialCargoBay:"生物货舱",TouristModule:"观光舱",RoboPilotCommandModule:"机器驾驶舱"};function vo(e){return Math.ceil(Math.max(e,Math.pow(e/300,3.2)))}function qa(e){const t={};for(const[n,o]of Object.entries(e))typeof o=="number"&&o>=0&&(t[n]=o);return t}function Xa(e){let t=Ce.CommandModule;for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t+=(Ce[n]||0)*e[n]);return t}function Xt(e){return e.length===0?[]:(e.sort((t,n)=>t.weight-n.weight),[e[0]])}function Za(e,t){e+=Ce.steamEngine;const n=[];for(let o=0;o<=po;o++){const a=e+Ce.SolidBooster*o,s=Et.booster*o;for(let l=0;l<=qt.steam;l++){const r=a+l,d=s+Et.steam*l,f=vo(r),w=d-f;if(w>=t){n.push({capacity:l,booster:o,weight:r,mergedDistance:d,punish:f,finalDistance:w});break}}}return Xt(n)}function Ja(e,t,n,o,a,s,l,r){const d=Math.ceil(e/qt.fuel),f=Math.ceil(e/qt.oxygen),w=r==="liquid"?Ce.OxidizerTankLiquid:Ce.OxidizerTank,h=n+Ce.LiquidFuelTank*d+w*f,C=e*2,M=h+C,p=Math.floor(o+a*e*s),u=vo(M),S=p-u;return S<l?{isValid:false}:{isValid:true,solution:{capacity:e,booster:t,fuelCount:d,oxygenCount:f,dryWeight:h,wetWeight:C,weight:M,mergedDistance:p,punish:u,finalDistance:S}}}function Qa(e,t,n,o,a){const s=Et[e],l=o==="liquid"?Wa:1;t+=Ce[Ga[e]];const r=[];for(let d=0;d<=po;d++){const f=t+Ce.SolidBooster*d,w=Et.booster*d;for(let h=0;h<=ja;h+=10){const C=Ja(h,d,f,w,s,l,n,o);if(C.isValid){r.push(C.solution);break}}}if(r.length===0)return[];if(!a){const d=new Map;for(const f of r){const w=f.fuelCount;(!d.has(w)||d.get(w).weight>f.weight)&&d.set(w,f)}return Xt(Array.from(d.values()))}return Xt(r)}function es(e){const{type:t,distance:n,oxygenType:o,allowWaste:a,...s}=e,l=qa(s),r=Xa(l);return t==="steam"?Za(r,n):Qa(t,r,n,o,a)}const ts={class:"rocket-calculator sci-fi-bg"},ns={class:"content-layout"},os={class:"config-section"},as={class:"distance-control"},ss={class:"distance-step-selector"},rs={class:"distance-input-wrapper"},ls={class:"distance-value"},is={class:"oxidizer-hint"},us={class:"config-section"},cs={class:"modules-grid"},ds={class:"module-header"},fs={class:"module-name"},ps={key:0,class:"empty-state"},vs={key:1,class:"empty-state"},ms={class:"key-stats"},gs={class:"stat-item primary"},hs={class:"stat-value"},ys={class:"stat-item success"},bs={class:"stat-value"},_s={class:"stat-item warning"},ws={class:"stat-value"},Cs={class:"detail-stats"},Ss={class:"detail-grid"},Es={class:"detail-item"},Ts={class:"detail-label"},xs={class:"detail-value"},ks={class:"detail-item"},Ms={class:"detail-value"},Is={key:0,class:"detail-item"},Bs={class:"detail-value"},$s={key:1,class:"detail-item"},Ls={class:"detail-value"},Os={class:"data-table-section"},As={class:"table-wrapper"},Ns=z({__name:"calculator",setup(e){const t=b(()=>{const l=[];for(let r=1e4;r<=19e4;r+=1e4)l.push(r);return l}),n=an({type:"steam",distance:1e4,oxygenType:"solid",allowWaste:false,ResearchModule:0,CargoBay:0,GasCargoBay:0,LiquidCargoBay:0,SpecialCargoBay:0,TouristModule:0,RoboPilotCommandModule:0}),o=I(null),a=()=>{try{const l=es(n);o.value=l,l.length>0?Dt.success("解算完成!已收敛到最优解"):Dt.warning("解算失败,无解空间")}catch(l){Dt.error("解算器异常"),console.error(l)}},s=()=>{n.type="steam",n.distance=1e4,n.oxygenType="solid",n.ResearchModule=0,n.CargoBay=0,n.GasCargoBay=0,n.LiquidCargoBay=0,n.SpecialCargoBay=0,n.TouristModule=0,n.RoboPilotCommandModule=0,o.value=null};return(l,r)=>{const d=$("el-option"),f=$("el-select"),w=$("el-form-item"),h=$("el-button"),C=$("el-radio-button"),M=$("el-radio-group"),p=$("el-form"),u=$("el-input-number"),S=$("k-card"),x=$("el-divider"),A=$("el-table-column"),K=$("el-table");return y(),k("div",ts,[O(" 背景装饰网格 "),r[32]||(r[32]=c("div",{class:"grid-overlay"},null,-1)),v(S,{class:"header-card sci-fi-card"},{default:_(()=>[r[29]||(r[29]=c("div",{class:"header-glow"},null,-1)),r[30]||(r[30]=c("h1",{class:"sci-fi-title"},"ONI ROCKET CALCULATOR",-1)),r[31]||(r[31]=c("p",{class:"sci-fi-subtitle"},"缺氧火箭最优配置解算系统 · 基于官方物理引擎",-1)),c("div",ns,[O(" 输入控制台 "),v(S,{class:"form-card sci-fi-card"},{default:_(()=>[r[9]||(r[9]=c("div",{class:"card-header-line"},null,-1)),O(" 主配置 "),c("div",os,[r[6]||(r[6]=c("h3",{class:"section-title"},"【核心参数】",-1)),v(p,{model:n,size:"large",class:"sci-fi-form","label-position":"top"},{default:_(()=>[v(w,{label:"引擎类型"},{default:_(()=>[v(f,{modelValue:n.type,"onUpdate:modelValue":r[0]||(r[0]=R=>n.type=R),style:{width:"100%"},class:"sci-fi-select"},{default:_(()=>[v(d,{label:"蒸汽引擎",value:"steam"}),v(d,{label:"石油引擎",value:"oil"}),v(d,{label:"液氢引擎",value:"hydrogen"}),v(d,{label:"生物柴油引擎",value:"biodiesel"})]),_:1},8,["modelValue"])]),_:1}),v(w,{label:"目标轨道"},{default:_(()=>[c("div",as,[O(" 10000km 一档的步进选择器 "),c("div",ss,[(y(true),k(we,null,Yt(t.value,R=>(y(),N(h,{key:R,class:T(["step-btn",{active:n.distance===R}]),onClick:F=>n.distance=R},{default:_(()=>[U(H(R/1e3)+"k ",1)]),_:2},1032,["class","onClick"]))),128))]),c("div",rs,[r[2]||(r[2]=c("span",{class:"distance-label"},"当前:",-1)),c("span",ls,H(n.distance.toLocaleString()),1),r[3]||(r[3]=c("span",{class:"unit"},"km",-1))])])]),_:1}),n.type!=="steam"?(y(),N(w,{key:0,label:"氧化剂"},{default:_(()=>[v(M,{modelValue:n.oxygenType,"onUpdate:modelValue":r[1]||(r[1]=R=>n.oxygenType=R),class:"sci-fi-radio-group"},{default:_(()=>[v(C,{label:"solid"},{default:_(()=>[...r[4]||(r[4]=[U("氧石",-1)])]),_:1}),v(C,{label:"liquid"},{default:_(()=>[...r[5]||(r[5]=[U("液氧",-1)])]),_:1})]),_:1},8,["modelValue"]),c("div",is,[c("span",{class:T(["hint-item",{active:n.oxygenType==="solid"}])},"1.0x 效率",2),c("span",{class:T(["hint-item",{active:n.oxygenType==="liquid"}])},"1.33x 效率",2)])]),_:1})):O("v-if",true)]),_:1},8,["model"])]),r[10]||(r[10]=c("div",{class:"divider-line"},null,-1)),O(" 可选模块 "),c("div",us,[r[8]||(r[8]=c("h3",{class:"section-title"},"【载荷配置】",-1)),v(p,{model:n,size:"large",class:"modules-form","label-position":"top"},{default:_(()=>[c("div",cs,[(y(true),k(we,null,Yt(i(Ya),(R,F)=>(y(),k("div",{key:F,class:"module-item"},[c("div",ds,[c("span",fs,H(R),1)]),v(u,{modelValue:n[F],"onUpdate:modelValue":q=>n[F]=q,min:0,max:20,class:"module-input"},null,8,["modelValue","onUpdate:modelValue"])]))),128))]),v(w,{class:"calculate-btn-wrapper"},{default:_(()=>[v(h,{onClick:a,class:"sci-fi-calculate-btn"},{default:_(()=>[...r[7]||(r[7]=[c("span",{class:"btn-text"},"▶ 执行解算",-1),c("span",{class:"btn-glow"},null,-1)])]),_:1})]),_:1})]),_:1},8,["model"])])]),_:1}),O(" 结果显示面板 "),v(S,{class:"result-card sci-fi-card"},{default:_(()=>[r[28]||(r[28]=c("div",{class:"card-header-line"},null,-1)),o.value?o.value.length===0?(y(),k("div",vs,[r[13]||(r[13]=c("div",{class:"empty-icon"},"⚠️",-1)),r[14]||(r[14]=c("p",{class:"empty-text error"},"解算失败",-1)),r[15]||(r[15]=c("p",{class:"empty-hint"},"无法找到满足条件的配置,请尝试减少载荷",-1)),v(h,{onClick:s,class:"sci-fi-reset-btn"},{default:_(()=>[...r[12]||(r[12]=[U("重置参数",-1)])]),_:1})])):(y(),k(we,{key:2},[r[27]||(r[27]=c("div",{class:"result-header"},[c("h3",{class:"result-title"},"✅ 最优解算结果"),c("div",{class:"result-status"},[c("span",{class:"status-dot"}),c("span",null,"CONVERGED")])],-1)),c("div",ms,[c("div",gs,[r[17]||(r[17]=c("div",{class:"stat-label"},"总起飞重量",-1)),c("div",hs,[U(H(o.value[0].weight.toLocaleString())+" ",1),r[16]||(r[16]=c("span",{class:"stat-unit"},"kg",-1))])]),c("div",ys,[r[19]||(r[19]=c("div",{class:"stat-label"},"预计射程",-1)),c("div",bs,[U(H(o.value[0].finalDistance.toLocaleString())+" ",1),r[18]||(r[18]=c("span",{class:"stat-unit"},"km",-1))])]),c("div",_s,[r[21]||(r[21]=c("div",{class:"stat-label"},"质量惩罚",-1)),c("div",ws,[U(H(o.value[0].punish.toLocaleString())+" ",1),r[20]||(r[20]=c("span",{class:"stat-unit"},"km",-1))])])]),v(x,{class:"sci-fi-divider"}),c("div",Cs,[r[25]||(r[25]=c("h4",{class:"detail-title"},"【配置详情】",-1)),c("div",Ss,[c("div",Es,[c("span",Ts,H(n.type==="steam"?"蒸汽填充量":"燃料填充量"),1),c("span",xs,H(o.value[0].capacity.toLocaleString())+" kg",1)]),c("div",ks,[r[22]||(r[22]=c("span",{class:"detail-label"},"助推器数量",-1)),c("span",Ms,H(o.value[0].booster)+" 个",1)]),o.value[0].fuelCount!==void 0?(y(),k("div",Is,[r[23]||(r[23]=c("span",{class:"detail-label"},"燃料舱数量",-1)),c("span",Bs,H(o.value[0].fuelCount)+" 个",1)])):O("v-if",true),o.value[0].oxygenCount!==void 0?(y(),k("div",$s,[r[24]||(r[24]=c("span",{class:"detail-label"},"氧化剂舱数量",-1)),c("span",Ls,H(o.value[0].oxygenCount)+" 个",1)])):O("v-if",true)])]),v(x,{class:"sci-fi-divider"}),c("div",Os,[r[26]||(r[26]=c("h4",{class:"detail-title"},"【原始数据】",-1)),c("div",As,[v(K,{data:o.value,stripe:"",class:"sci-fi-table"},{default:_(()=>[v(A,{prop:"weight",label:"总重(kg)",sortable:""}),v(A,{prop:"finalDistance",label:"射程(km)",sortable:""}),v(A,{prop:"booster",label:"助推器"}),v(A,{prop:"fuelCount",label:"燃料舱"}),v(A,{prop:"oxygenCount",label:"氧化剂舱"})]),_:1},8,["data"])])])],64)):(y(),k("div",ps,[...r[11]||(r[11]=[c("div",{class:"scan-line"},null,-1),c("div",{class:"empty-icon"},"📡",-1),c("p",{class:"empty-text"},"等待输入参数...",-1),c("p",{class:"empty-hint"},"请配置核心参数与载荷",-1)])]))]),_:1})])]),_:1})])}}}),Rs=it(Ns,[["__scopeId","data-v-3e8f9409"]]),Ps={};function zs(e,t){const n=$("k-slot"),o=$("el-scrollbar"),a=$("k-layout");return y(),N(a,null,{default:_(()=>[v(o,{class:"scrollbar"},{default:_(()=>[v(n,{name:"calculator"})]),_:1})]),_:1})}const Fs=it(Ps,[["render",zs],["__scopeId","data-v-7f2607d9"]]),Vs={};function Ds(e,t){const n=$("k-slot"),o=$("el-scrollbar"),a=$("k-layout");return y(),N(a,null,{default:_(()=>[v(o,{class:"scrollbar"},{default:_(()=>[v(n,{name:"onitodos"})]),_:1})]),_:1})}const Hs=it(Vs,[["render",Ds],["__scopeId","data-v-4a10404d"]]),Us='a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])',Ks=e=>getComputedStyle(e).position==="fixed"?false:e.offsetParent!==null,In=e=>Array.from(e.querySelectorAll(Us)).filter(t=>js(t)&&Ks(t)),js=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return true;if(e.disabled)return false;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return!(e.type==="hidden"||e.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return true;default:return false}},Ws=()=>me&&/firefox/i.test(window.navigator.userAgent);/**
|
|
1
|
+
import{defineComponent as I,openBlock as g,createElementBlock as $,createElementVNode as a,ref as O,computed as w,watch as ue,onMounted as tt,resolveComponent as C,createBlock as R,withCtx as c,createVNode as r,unref as m,createTextVNode as N,Fragment as ie,renderList as $e,normalizeClass as D,toDisplayString as B,createCommentVNode as L,reactive as Vt,warn as It,inject as te,isRef as Mt,getCurrentInstance as ce,provide as Bt,renderSlot as be,mergeProps as Pt,Transition as nt,withDirectives as Ne,normalizeStyle as ot,vShow as lt,shallowReactive as Lt,resolveDynamicComponent as Dt,withModifiers as Rt,isVNode as at,render as Ae,resolveDirective as jt}from"vue";import{store as Ft,Time as At,message as Se,send as se}from"@koishijs/client";import{isClient as Ve,useEventListener as Ut,useResizeObserver as Kt,useTimeoutFn as Gt}from"@vueuse/core";/*! Element Plus Icons Vue v2.3.2 */var Ht=I({name:"Bottom",__name:"bottom",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M544 805.888V168a32 32 0 1 0-64 0v637.888L246.656 557.952a30.72 30.72 0 0 0-45.312 0 35.52 35.52 0 0 0 0 48.064l288 306.048a30.72 30.72 0 0 0 45.312 0l288-306.048a35.52 35.52 0 0 0 0-48 30.72 30.72 0 0 0-45.312 0L544 805.824z"})]))}}),qt=Ht,Wt=I({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),Zt=Wt,Jt=I({name:"Close",__name:"close",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),Yt=Jt,Xt=I({name:"InfoFilled",__name:"info-filled",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),Qt=Xt,en=I({name:"Plus",__name:"plus",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}}),tn=en,nn=I({name:"Refresh",__name:"refresh",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z"})]))}}),on=nn,ln=I({name:"SuccessFilled",__name:"success-filled",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),an=ln,sn=I({name:"Top",__name:"top",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M572.235 205.282v600.365a30.118 30.118 0 1 1-60.235 0V205.282L292.382 438.633a28.913 28.913 0 0 1-42.646 0 33.43 33.43 0 0 1 0-45.236l271.058-288.045a28.913 28.913 0 0 1 42.647 0L834.5 393.397a33.43 33.43 0 0 1 0 45.176 28.913 28.913 0 0 1-42.647 0l-219.618-233.23z"})]))}}),rn=sn,un=I({name:"WarningFilled",__name:"warning-filled",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),cn=un;const dn={class:"filter-container"},pn={class:"filter-row"},fn={class:"button-group"},mn={key:0,class:"empty-state"},vn="yyyy-MM-dd hh:mm:ss",gn=I({__name:"page",setup(e){const n=O(),t=O("all"),o=O(""),s=O([]);function d(T){const k=At.template(vn,new Date(T.timestamp)),p=T.type.toUpperCase(),x=T.content.replace(/\u001b\[[0-9;]*m/g,"");return`[${k}] [${p}] ${x}`}const i=w(()=>s.value.filter(T=>!T.includes("[ERROR]")&&!T.includes("[WARN]"))),l=w(()=>s.value.filter(T=>T.includes("[ERROR]")||T.includes("[WARN]"))),f=w(()=>{switch(t.value){case"normal":return i.value;case"error":return l.value;default:return s.value}}),b=w(()=>{if(!o.value.trim())return f.value;const T=o.value.toLowerCase();return f.value.filter(k=>k.toLowerCase().includes(T))});function _(T){return T.includes("[ERROR]")?"log-error":T.includes("[WARN]")?"log-warn":T.includes("[INFO]")?"log-info":""}const h=()=>{n.value&&(n.value.scrollTop=0)},S=()=>{n.value&&(n.value.scrollTop=n.value.scrollHeight)};return ue(()=>Ft.onilogs,T=>{T&&(s.value=T.map(d))},{deep:true,immediate:true}),ue(()=>s.value.length,()=>{setTimeout(S,0)}),tt(()=>{S()}),(T,k)=>{const p=C("el-tab-pane"),x=C("el-tabs"),z=C("el-input"),j=C("el-icon"),U=C("el-button"),V=C("k-layout");return g(),R(V,null,{default:c(()=>[a("div",dn,[r(x,{modelValue:t.value,"onUpdate:modelValue":k[0]||(k[0]=M=>t.value=M),class:"log-tabs"},{default:c(()=>[r(p,{name:"all",label:"全部日志"}),r(p,{name:"normal",label:"正常日志"}),r(p,{name:"error",label:"错误/警告"})]),_:1},8,["modelValue"]),a("div",pn,[r(z,{modelValue:o.value,"onUpdate:modelValue":k[1]||(k[1]=M=>o.value=M),placeholder:"搜索日志内容...",clearable:"",class:"filter-input"},null,8,["modelValue"]),a("div",fn,[r(U,{size:"small",onClick:h},{default:c(()=>[r(j,null,{default:c(()=>[r(m(rn))]),_:1}),k[2]||(k[2]=N(" 顶部 ",-1))]),_:1}),r(U,{size:"small",onClick:S},{default:c(()=>[r(j,null,{default:c(()=>[r(m(qt))]),_:1}),k[3]||(k[3]=N(" 底部 ",-1))]),_:1})])])]),a("div",{class:"log-container",ref_key:"scrollRef",ref:n},[(g(true),$(ie,null,$e(b.value,(M,q)=>(g(),$("div",{key:q,class:"log-line"},[a("pre",{class:D(_(M))},B(M),3)]))),128)),b.value.length===0?(g(),$("div",mn,[...k[4]||(k[4]=[a("p",null,"暂无日志",-1)])])):L("v-if",true)],512)]),_:1})}}}),fe=(e,n)=>{const t=e.__vccOpts||e;for(const[o,s]of n)t[o]=s;return t},_n=fe(gn,[["__scopeId","data-v-62639236"]]),st=10,yn=2e4,hn=1.33,H={steamEngine:2e3,oilEngine:200,hydrogenEngine:500,biodieselEngine:200,CommandModule:200,RoboPilotCommandModule:200,SolidBooster:1e3,LiquidFuelTank:100,OxidizerTank:100,OxidizerTankLiquid:100,CargoBay:2e3,GasCargoBay:2e3,LiquidCargoBay:2e3,SpecialCargoBay:2e3,TouristModule:200,ResearchModule:200,person:30},ge={steam:20,oil:40,hydrogen:60,biodiesel:50,booster:12e3},ke={steam:900,fuel:900,oxygen:2700},bn={steam:"steamEngine",oil:"oilEngine",hydrogen:"hydrogenEngine",biodiesel:"biodieselEngine"},Cn={ResearchModule:"研究舱",CargoBay:"固体货舱",GasCargoBay:"气体货舱",LiquidCargoBay:"液体货舱",SpecialCargoBay:"生物货舱",TouristModule:"观光舱",RoboPilotCommandModule:"机器驾驶舱"};function rt(e){return Math.ceil(Math.max(e,Math.pow(e/300,3.2)))}function wn(e){const n={};for(const[t,o]of Object.entries(e))typeof o=="number"&&o>=0&&(n[t]=o);return n}function xn(e){let n=H.CommandModule;for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n+=(H[t]||0)*e[t]);return n}function Oe(e){return e.length===0?[]:(e.sort((n,t)=>n.weight-t.weight),[e[0]])}function Sn(e,n){e+=H.steamEngine;const t=[];for(let o=0;o<=st;o++){const s=e+H.SolidBooster*o,d=ge.booster*o;for(let i=0;i<=ke.steam;i++){const l=s+i,f=d+ge.steam*i,b=rt(l),_=f-b;if(_>=n){t.push({capacity:i,booster:o,weight:l,mergedDistance:f,punish:b,finalDistance:_});break}}}return Oe(t)}function Tn(e,n,t,o,s,d,i,l){const f=Math.ceil(e/ke.fuel),b=Math.ceil(e/ke.oxygen),_=l==="liquid"?H.OxidizerTankLiquid:H.OxidizerTank,h=t+H.LiquidFuelTank*f+_*b,S=e*2,T=h+S,k=Math.floor(o+s*e*d),p=rt(T),x=k-p;return x<i?{isValid:false}:{isValid:true,solution:{capacity:e,booster:n,fuelCount:f,oxygenCount:b,dryWeight:h,wetWeight:S,weight:T,mergedDistance:k,punish:p,finalDistance:x}}}function $n(e,n,t,o,s){const d=ge[e],i=o==="liquid"?hn:1;n+=H[bn[e]];const l=[];for(let f=0;f<=st;f++){const b=n+H.SolidBooster*f,_=ge.booster*f;for(let h=0;h<=yn;h+=10){const S=Tn(h,f,b,_,d,i,t,o);if(S.isValid){l.push(S.solution);break}}}if(l.length===0)return[];if(!s){const f=new Map;for(const b of l){const _=b.fuelCount;(!f.has(_)||f.get(_).weight>b.weight)&&f.set(_,b)}return Oe(Array.from(f.values()))}return Oe(l)}function kn(e){const{type:n,distance:t,oxygenType:o,allowWaste:s,...d}=e,i=wn(d),l=xn(i);return n==="steam"?Sn(l,t):$n(n,l,t,o,s)}const On={class:"rocket-calculator sci-fi-bg"},En={class:"content-layout"},zn={class:"config-section"},Nn={class:"distance-control"},Vn={class:"distance-step-selector"},In={class:"distance-input-wrapper"},Mn={class:"distance-value"},Bn={class:"oxidizer-hint"},Pn={class:"config-section"},Ln={class:"modules-grid"},Dn={class:"module-header"},Rn={class:"module-name"},jn={key:0,class:"empty-state"},Fn={key:1,class:"empty-state"},An={class:"key-stats"},Un={class:"stat-item primary"},Kn={class:"stat-value"},Gn={class:"stat-item success"},Hn={class:"stat-value"},qn={class:"stat-item warning"},Wn={class:"stat-value"},Zn={class:"detail-stats"},Jn={class:"detail-grid"},Yn={class:"detail-item"},Xn={class:"detail-label"},Qn={class:"detail-value"},eo={class:"detail-item"},to={class:"detail-value"},no={key:0,class:"detail-item"},oo={class:"detail-value"},lo={key:1,class:"detail-item"},ao={class:"detail-value"},so={class:"data-table-section"},ro={class:"table-wrapper"},io=I({__name:"calculator",setup(e){const n=w(()=>{const i=[];for(let l=1e4;l<=19e4;l+=1e4)i.push(l);return i}),t=Vt({type:"steam",distance:1e4,oxygenType:"solid",allowWaste:false,ResearchModule:0,CargoBay:0,GasCargoBay:0,LiquidCargoBay:0,SpecialCargoBay:0,TouristModule:0,RoboPilotCommandModule:0}),o=O(null),s=()=>{try{const i=kn(t);o.value=i,i.length>0?Se.success("解算完成!已收敛到最优解"):Se.warning("解算失败,无解空间")}catch(i){Se.error("解算器异常"),console.error(i)}},d=()=>{t.type="steam",t.distance=1e4,t.oxygenType="solid",t.ResearchModule=0,t.CargoBay=0,t.GasCargoBay=0,t.LiquidCargoBay=0,t.SpecialCargoBay=0,t.TouristModule=0,t.RoboPilotCommandModule=0,o.value=null};return(i,l)=>{const f=C("el-option"),b=C("el-select"),_=C("el-form-item"),h=C("el-button"),S=C("el-radio-button"),T=C("el-radio-group"),k=C("el-form"),p=C("el-input-number"),x=C("k-card"),z=C("el-divider"),j=C("el-table-column"),U=C("el-table");return g(),$("div",On,[L(" 背景装饰网格 "),l[32]||(l[32]=a("div",{class:"grid-overlay"},null,-1)),r(x,{class:"header-card sci-fi-card"},{default:c(()=>[l[29]||(l[29]=a("div",{class:"header-glow"},null,-1)),l[30]||(l[30]=a("h1",{class:"sci-fi-title"},"ONI ROCKET CALCULATOR",-1)),l[31]||(l[31]=a("p",{class:"sci-fi-subtitle"},"缺氧火箭最优配置解算系统 · 基于官方物理引擎",-1)),a("div",En,[L(" 输入控制台 "),r(x,{class:"form-card sci-fi-card"},{default:c(()=>[l[9]||(l[9]=a("div",{class:"card-header-line"},null,-1)),L(" 主配置 "),a("div",zn,[l[6]||(l[6]=a("h3",{class:"section-title"},"【核心参数】",-1)),r(k,{model:t,size:"large",class:"sci-fi-form","label-position":"top"},{default:c(()=>[r(_,{label:"引擎类型"},{default:c(()=>[r(b,{modelValue:t.type,"onUpdate:modelValue":l[0]||(l[0]=V=>t.type=V),style:{width:"100%"},class:"sci-fi-select"},{default:c(()=>[r(f,{label:"蒸汽引擎",value:"steam"}),r(f,{label:"石油引擎",value:"oil"}),r(f,{label:"液氢引擎",value:"hydrogen"}),r(f,{label:"生物柴油引擎",value:"biodiesel"})]),_:1},8,["modelValue"])]),_:1}),r(_,{label:"目标轨道"},{default:c(()=>[a("div",Nn,[L(" 10000km 一档的步进选择器 "),a("div",Vn,[(g(true),$(ie,null,$e(n.value,V=>(g(),R(h,{key:V,class:D(["step-btn",{active:t.distance===V}]),onClick:M=>t.distance=V},{default:c(()=>[N(B(V/1e3)+"k ",1)]),_:2},1032,["class","onClick"]))),128))]),a("div",In,[l[2]||(l[2]=a("span",{class:"distance-label"},"当前:",-1)),a("span",Mn,B(t.distance.toLocaleString()),1),l[3]||(l[3]=a("span",{class:"unit"},"km",-1))])])]),_:1}),t.type!=="steam"?(g(),R(_,{key:0,label:"氧化剂"},{default:c(()=>[r(T,{modelValue:t.oxygenType,"onUpdate:modelValue":l[1]||(l[1]=V=>t.oxygenType=V),class:"sci-fi-radio-group"},{default:c(()=>[r(S,{label:"solid"},{default:c(()=>[...l[4]||(l[4]=[N("氧石",-1)])]),_:1}),r(S,{label:"liquid"},{default:c(()=>[...l[5]||(l[5]=[N("液氧",-1)])]),_:1})]),_:1},8,["modelValue"]),a("div",Bn,[a("span",{class:D(["hint-item",{active:t.oxygenType==="solid"}])},"1.0x 效率",2),a("span",{class:D(["hint-item",{active:t.oxygenType==="liquid"}])},"1.33x 效率",2)])]),_:1})):L("v-if",true)]),_:1},8,["model"])]),l[10]||(l[10]=a("div",{class:"divider-line"},null,-1)),L(" 可选模块 "),a("div",Pn,[l[8]||(l[8]=a("h3",{class:"section-title"},"【载荷配置】",-1)),r(k,{model:t,size:"large",class:"modules-form","label-position":"top"},{default:c(()=>[a("div",Ln,[(g(true),$(ie,null,$e(m(Cn),(V,M)=>(g(),$("div",{key:M,class:"module-item"},[a("div",Dn,[a("span",Rn,B(V),1)]),r(p,{modelValue:t[M],"onUpdate:modelValue":q=>t[M]=q,min:0,max:20,class:"module-input"},null,8,["modelValue","onUpdate:modelValue"])]))),128))]),r(_,{class:"calculate-btn-wrapper"},{default:c(()=>[r(h,{onClick:s,class:"sci-fi-calculate-btn"},{default:c(()=>[...l[7]||(l[7]=[a("span",{class:"btn-text"},"▶ 执行解算",-1),a("span",{class:"btn-glow"},null,-1)])]),_:1})]),_:1})]),_:1},8,["model"])])]),_:1}),L(" 结果显示面板 "),r(x,{class:"result-card sci-fi-card"},{default:c(()=>[l[28]||(l[28]=a("div",{class:"card-header-line"},null,-1)),o.value?o.value.length===0?(g(),$("div",Fn,[l[13]||(l[13]=a("div",{class:"empty-icon"},"⚠️",-1)),l[14]||(l[14]=a("p",{class:"empty-text error"},"解算失败",-1)),l[15]||(l[15]=a("p",{class:"empty-hint"},"无法找到满足条件的配置,请尝试减少载荷",-1)),r(h,{onClick:d,class:"sci-fi-reset-btn"},{default:c(()=>[...l[12]||(l[12]=[N("重置参数",-1)])]),_:1})])):(g(),$(ie,{key:2},[l[27]||(l[27]=a("div",{class:"result-header"},[a("h3",{class:"result-title"},"✅ 最优解算结果"),a("div",{class:"result-status"},[a("span",{class:"status-dot"}),a("span",null,"CONVERGED")])],-1)),a("div",An,[a("div",Un,[l[17]||(l[17]=a("div",{class:"stat-label"},"总起飞重量",-1)),a("div",Kn,[N(B(o.value[0].weight.toLocaleString())+" ",1),l[16]||(l[16]=a("span",{class:"stat-unit"},"kg",-1))])]),a("div",Gn,[l[19]||(l[19]=a("div",{class:"stat-label"},"预计射程",-1)),a("div",Hn,[N(B(o.value[0].finalDistance.toLocaleString())+" ",1),l[18]||(l[18]=a("span",{class:"stat-unit"},"km",-1))])]),a("div",qn,[l[21]||(l[21]=a("div",{class:"stat-label"},"质量惩罚",-1)),a("div",Wn,[N(B(o.value[0].punish.toLocaleString())+" ",1),l[20]||(l[20]=a("span",{class:"stat-unit"},"km",-1))])])]),r(z,{class:"sci-fi-divider"}),a("div",Zn,[l[25]||(l[25]=a("h4",{class:"detail-title"},"【配置详情】",-1)),a("div",Jn,[a("div",Yn,[a("span",Xn,B(t.type==="steam"?"蒸汽填充量":"燃料填充量"),1),a("span",Qn,B(o.value[0].capacity.toLocaleString())+" kg",1)]),a("div",eo,[l[22]||(l[22]=a("span",{class:"detail-label"},"助推器数量",-1)),a("span",to,B(o.value[0].booster)+" 个",1)]),o.value[0].fuelCount!==void 0?(g(),$("div",no,[l[23]||(l[23]=a("span",{class:"detail-label"},"燃料舱数量",-1)),a("span",oo,B(o.value[0].fuelCount)+" 个",1)])):L("v-if",true),o.value[0].oxygenCount!==void 0?(g(),$("div",lo,[l[24]||(l[24]=a("span",{class:"detail-label"},"氧化剂舱数量",-1)),a("span",ao,B(o.value[0].oxygenCount)+" 个",1)])):L("v-if",true)])]),r(z,{class:"sci-fi-divider"}),a("div",so,[l[26]||(l[26]=a("h4",{class:"detail-title"},"【原始数据】",-1)),a("div",ro,[r(U,{data:o.value,stripe:"",class:"sci-fi-table"},{default:c(()=>[r(j,{prop:"weight",label:"总重(kg)",sortable:""}),r(j,{prop:"finalDistance",label:"射程(km)",sortable:""}),r(j,{prop:"booster",label:"助推器"}),r(j,{prop:"fuelCount",label:"燃料舱"}),r(j,{prop:"oxygenCount",label:"氧化剂舱"})]),_:1},8,["data"])])])],64)):(g(),$("div",jn,[...l[11]||(l[11]=[a("div",{class:"scan-line"},null,-1),a("div",{class:"empty-icon"},"📡",-1),a("p",{class:"empty-text"},"等待输入参数...",-1),a("p",{class:"empty-hint"},"请配置核心参数与载荷",-1)])]))]),_:1})])]),_:1})])}}}),uo=fe(io,[["__scopeId","data-v-3e8f9409"]]),co={};function po(e,n){const t=C("k-slot"),o=C("el-scrollbar"),s=C("k-layout");return g(),R(s,null,{default:c(()=>[r(o,{class:"scrollbar"},{default:c(()=>[r(t,{name:"calculator"})]),_:1})]),_:1})}const fo=fe(co,[["render",po],["__scopeId","data-v-7f2607d9"]]),mo={};function vo(e,n){const t=C("k-slot"),o=C("el-scrollbar"),s=C("k-layout");return g(),R(s,null,{default:c(()=>[r(o,{class:"scrollbar"},{default:c(()=>[r(t,{name:"onitodos"})]),_:1})]),_:1})}const go=fe(mo,[["render",vo],["__scopeId","data-v-4a10404d"]]);/**
|
|
2
2
|
* @vue/shared v3.5.29
|
|
3
3
|
* (c) 2018-present Yuxi (Evan) You and Vue contributors
|
|
4
4
|
* @license MIT
|
|
5
|
-
**/const et=()=>{},Gs=Object.prototype.hasOwnProperty,Tt=(e,t)=>Gs.call(e,t),Ne=e=>typeof e=="function",he=e=>typeof e=="string",nt=e=>e!==null&&typeof e=="object",Ys=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},qs=/-\w/g,Xs=Ys(e=>e.replace(qs,t=>t.slice(1).toUpperCase()));var Zs=typeof global=="object"&&global&&global.Object===Object&&global,Js=typeof self=="object"&&self&&self.Object===Object&&self,ln=Zs||Js||Function("return this")(),Be=ln.Symbol,mo=Object.prototype,Qs=mo.hasOwnProperty,er=mo.toString,Ze=Be?Be.toStringTag:void 0;function tr(e){var t=Qs.call(e,Ze),n=e[Ze];try{e[Ze]=void 0;var o=true}catch{}var a=er.call(e);return o&&(t?e[Ze]=n:delete e[Ze]),a}var nr=Object.prototype,or=nr.toString;function ar(e){return or.call(e)}var sr="[object Null]",rr="[object Undefined]",Bn=Be?Be.toStringTag:void 0;function un(e){return e==null?e===void 0?rr:sr:Bn&&Bn in Object(e)?tr(e):ar(e)}function cn(e){return e!=null&&typeof e=="object"}var lr="[object Symbol]";function dn(e){return typeof e=="symbol"||cn(e)&&un(e)==lr}function ir(e,t){for(var n=-1,o=e==null?0:e.length,a=Array(o);++n<o;)a[n]=t(e[n],n,e);return a}var ut=Array.isArray,$n=Be?Be.prototype:void 0,Ln=$n?$n.toString:void 0;function go(e){if(typeof e=="string")return e;if(ut(e))return ir(e,go)+"";if(dn(e))return Ln?Ln.call(e):"";var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function xt(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function ur(e){return e}var cr="[object AsyncFunction]",dr="[object Function]",fr="[object GeneratorFunction]",pr="[object Proxy]";function vr(e){if(!xt(e))return false;var t=un(e);return t==dr||t==fr||t==cr||t==pr}var Ht=ln["__core-js_shared__"],On=function(){var e=/[^.]+$/.exec(Ht&&Ht.keys&&Ht.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function mr(e){return!!On&&On in e}var gr=Function.prototype,hr=gr.toString;function yr(e){if(e!=null){try{return hr.call(e)}catch{}try{return e+""}catch{}}return""}var br=/[\\^$.*+?()[\]{}|]/g,_r=/^\[object .+?Constructor\]$/,wr=Function.prototype,Cr=Object.prototype,Sr=wr.toString,Er=Cr.hasOwnProperty,Tr=RegExp("^"+Sr.call(Er).replace(br,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function xr(e){if(!xt(e)||mr(e))return false;var t=vr(e)?Tr:_r;return t.test(yr(e))}function kr(e,t){return e==null?void 0:e[t]}function fn(e,t){var n=kr(e,t);return xr(n)?n:void 0}function Mr(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var Ir=800,Br=16,$r=Date.now;function Lr(e){var t=0,n=0;return function(){var o=$r(),a=Br-(o-n);if(n=o,a>0){if(++t>=Ir)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Or(e){return function(){return e}}var kt=function(){try{var e=fn(Object,"defineProperty");return e({},"",{}),e}catch{}}(),Ar=kt?function(e,t){return kt(e,"toString",{configurable:true,enumerable:false,value:Or(t),writable:true})}:ur,Nr=Lr(Ar),Rr=9007199254740991,Pr=/^(?:0|[1-9]\d*)$/;function ho(e,t){var n=typeof e;return t=t??Rr,!!t&&(n=="number"||n!="symbol"&&Pr.test(e))&&e>-1&&e%1==0&&e<t}function zr(e,t,n){t=="__proto__"&&kt?kt(e,t,{configurable:true,enumerable:true,value:n,writable:true}):e[t]=n}function yo(e,t){return e===t||e!==e&&t!==t}var Fr=Object.prototype,Vr=Fr.hasOwnProperty;function Dr(e,t,n){var o=e[t];(!(Vr.call(e,t)&&yo(o,n))||n===void 0&&!(t in e))&&zr(e,t,n)}var An=Math.max;function Hr(e,t,n){return t=An(t===void 0?e.length-1:t,0),function(){for(var o=arguments,a=-1,s=An(o.length-t,0),l=Array(s);++a<s;)l[a]=o[t+a];a=-1;for(var r=Array(t+1);++a<t;)r[a]=o[a];return r[t]=n(l),Mr(e,this,r)}}var Ur=9007199254740991;function Kr(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Ur}var jr="[object Arguments]";function Nn(e){return cn(e)&&un(e)==jr}var bo=Object.prototype,Wr=bo.hasOwnProperty,Gr=bo.propertyIsEnumerable,_o=Nn(function(){return arguments}())?Nn:function(e){return cn(e)&&Wr.call(e,"callee")&&!Gr.call(e,"callee")},Yr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,qr=/^\w*$/;function Xr(e,t){if(ut(e))return false;var n=typeof e;return n=="number"||n=="symbol"||n=="boolean"||e==null||dn(e)?true:qr.test(e)||!Yr.test(e)||t!=null&&e in Object(t)}var ot=fn(Object,"create");function Zr(){this.__data__=ot?ot(null):{},this.size=0}function Jr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Qr="__lodash_hash_undefined__",el=Object.prototype,tl=el.hasOwnProperty;function nl(e){var t=this.__data__;if(ot){var n=t[e];return n===Qr?void 0:n}return tl.call(t,e)?t[e]:void 0}var ol=Object.prototype,al=ol.hasOwnProperty;function sl(e){var t=this.__data__;return ot?t[e]!==void 0:al.call(t,e)}var rl="__lodash_hash_undefined__";function ll(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ot&&t===void 0?rl:t,this}function Re(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}Re.prototype.clear=Zr;Re.prototype.delete=Jr;Re.prototype.get=nl;Re.prototype.has=sl;Re.prototype.set=ll;function il(){this.__data__=[],this.size=0}function Lt(e,t){for(var n=e.length;n--;)if(yo(e[n][0],t))return n;return-1}var ul=Array.prototype,cl=ul.splice;function dl(e){var t=this.__data__,n=Lt(t,e);if(n<0)return false;var o=t.length-1;return n==o?t.pop():cl.call(t,n,1),--this.size,true}function fl(e){var t=this.__data__,n=Lt(t,e);return n<0?void 0:t[n][1]}function pl(e){return Lt(this.__data__,e)>-1}function vl(e,t){var n=this.__data__,o=Lt(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}function We(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}We.prototype.clear=il;We.prototype.delete=dl;We.prototype.get=fl;We.prototype.has=pl;We.prototype.set=vl;var ml=fn(ln,"Map");function gl(){this.size=0,this.__data__={hash:new Re,map:new(ml||We),string:new Re}}function hl(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function Ot(e,t){var n=e.__data__;return hl(t)?n[typeof t=="string"?"string":"hash"]:n.map}function yl(e){var t=Ot(this,e).delete(e);return this.size-=t?1:0,t}function bl(e){return Ot(this,e).get(e)}function _l(e){return Ot(this,e).has(e)}function wl(e,t){var n=Ot(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}function ze(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}ze.prototype.clear=gl;ze.prototype.delete=yl;ze.prototype.get=bl;ze.prototype.has=_l;ze.prototype.set=wl;var Cl="Expected a function";function pn(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Cl);var n=function(){var o=arguments,a=t?t.apply(this,o):o[0],s=n.cache;if(s.has(a))return s.get(a);var l=e.apply(this,o);return n.cache=s.set(a,l)||s,l};return n.cache=new(pn.Cache||ze),n}pn.Cache=ze;var Sl=500;function El(e){var t=pn(e,function(o){return n.size===Sl&&n.clear(),o}),n=t.cache;return t}var Tl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,xl=/\\(\\)?/g,kl=El(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Tl,function(n,o,a,s){t.push(a?s.replace(xl,"$1"):o||n)}),t});function Ml(e){return e==null?"":go(e)}function At(e,t){return ut(e)?e:Xr(e,t)?[e]:kl(Ml(e))}function vn(e){if(typeof e=="string"||dn(e))return e;var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function wo(e,t){t=At(t,e);for(var n=0,o=t.length;e!=null&&n<o;)e=e[vn(t[n++])];return n&&n==o?e:void 0}function Il(e,t,n){var o=e==null?void 0:wo(e,t);return o===void 0?n:o}function Bl(e,t){for(var n=-1,o=t.length,a=e.length;++n<o;)e[a+n]=t[n];return e}var Rn=Be?Be.isConcatSpreadable:void 0;function $l(e){return ut(e)||_o(e)||!!(Rn&&e&&e[Rn])}function Ll(e,t,n,o,a){var s=-1,l=e.length;for(n||(n=$l),a||(a=[]);++s<l;){var r=e[s];n(r)?Bl(a,r):a[a.length]=r}return a}function Ol(e){var t=e==null?0:e.length;return t?Ll(e):[]}function Al(e){return Nr(Hr(e,void 0,Ol),e+"")}function Nl(e,t){return e!=null&&t in Object(e)}function Rl(e,t,n){t=At(t,e);for(var o=-1,a=t.length,s=false;++o<a;){var l=vn(t[o]);if(!(s=e!=null&&n(e,l)))break;e=e[l]}return s||++o!=a?s:(a=e==null?0:e.length,!!a&&Kr(a)&&ho(l,a)&&(ut(e)||_o(e)))}function Pl(e,t){return e!=null&&Rl(e,t,Nl)}function Co(e){for(var t=-1,n=e==null?0:e.length,o={};++t<n;){var a=e[t];o[a[0]]=a[1]}return o}function So(e){return e==null}function zl(e,t,n,o){if(!xt(e))return e;t=At(t,e);for(var a=-1,s=t.length,l=s-1,r=e;r!=null&&++a<s;){var d=vn(t[a]),f=n;if(d==="__proto__"||d==="constructor"||d==="prototype")return e;if(a!=l){var w=r[d];f=void 0,f===void 0&&(f=xt(w)?w:ho(t[a+1])?[]:{})}Dr(r,d,f),r=r[d]}return e}function Fl(e,t,n){for(var o=-1,a=t.length,s={};++o<a;){var l=t[o],r=wo(e,l);n(r,l)&&zl(s,At(l,e),r)}return s}function Vl(e,t){return Fl(e,t,function(n,o){return Pl(e,o)})}var Dl=Al(function(e,t){return e==null?{}:Vl(e,t)});const Eo=e=>e===void 0,Pe=e=>typeof e=="number",Zt=e=>typeof Element>"u"?false:e instanceof Element,Hl=e=>he(e)?!Number.isNaN(Number(e)):false,Pn=e=>Object.keys(e);class Ul extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function Kl(e,t){throw new Ul(`[${e}] ${t}`)}const To=(e="")=>e.split(" ").filter(t=>!!t.trim()),zn=(e,t)=>{if(!e||!t)return false;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},jl=(e,t)=>{!e||!t.trim()||e.classList.add(...To(t))},Wl=(e,t)=>{!e||!t.trim()||e.classList.remove(...To(t))},Gl=(e,t)=>{var n;if(!me||!e||!t)return"";let o=Xs(t);o==="float"&&(o="cssFloat");try{const a=e.style[o];if(a)return a;const s=(n=document.defaultView)==null?void 0:n.getComputedStyle(e,"");return s?s[o]:""}catch{return e.style[o]}};function at(e,t="px"){if(!e)return"";if(Pe(e)||Hl(e))return`${e}${t}`;if(he(e))return e}let ft;const Yl=e=>{var t;if(!me)return 0;if(ft!==void 0)return ft;const n=document.createElement("div");n.className=`${e}-scrollbar__wrap`,n.style.visibility="hidden",n.style.width="100px",n.style.position="absolute",n.style.top="-9999px",document.body.appendChild(n);const o=n.offsetWidth;n.style.overflow="scroll";const a=document.createElement("div");a.style.width="100%",n.appendChild(a);const s=a.offsetWidth;return(t=n.parentNode)==null||t.removeChild(n),ft=o-s,ft},xo="__epPropKey",G=e=>e,ql=e=>nt(e)&&!!e[xo],ko=(e,t)=>{if(!nt(e)||ql(e))return e;const{values:n,required:o,default:a,type:s,validator:l}=e,d={type:s,required:!!o,validator:n||l?f=>{let w=false,h=[];if(n&&(h=Array.from(n),Tt(e,"default")&&h.push(a),w||(w=h.includes(f))),l&&(w||(w=l(f))),!w&&h.length>0){const C=[...new Set(h)].map(M=>JSON.stringify(M)).join(", ");oa(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${C}], got value ${JSON.stringify(f)}.`)}return w}:void 0,[xo]:true};return Tt(e,"default")&&(d.default=a),d},Te=e=>Co(Object.entries(e).map(([t,n])=>[t,ko(n,t)])),st=G([String,Object,Function]),Mo={Close:Sa,SuccessFilled:co,InfoFilled:uo,WarningFilled:fo,CircleCloseFilled:lo},Mt={success:co,warning:fo,error:lo,info:uo},Xl={validating:St,success:ba,error:io},Nt=(e,t)=>{if(e.install=n=>{for(const o of[e,...Object.values(t??{})])n.component(o.name,o)},t)for(const[n,o]of Object.entries(t))e[n]=o;return e},Zl=(e,t)=>(e.install=n=>{e._context=n._context,n.config.globalProperties[t]=e},e),Jl=e=>(e.install=et,e),Rt={tab:"Tab",esc:"Escape"},Jt="update:modelValue",Io=["","default","small","large"],Ql=e=>["",...Io].includes(e);var bt=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(bt||{});const ei=e=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e),Bo=e=>e,ti=["class","style"],ni=/^on[A-Z]/,oi=(e={})=>{const{excludeListeners:t=false,excludeKeys:n}=e,o=b(()=>((n==null?void 0:n.value)||[]).concat(ti)),a=Se();return a?b(()=>{var s;return Co(Object.entries((s=a.proxy)==null?void 0:s.$attrs).filter(([l])=>!o.value.includes(l)&&!(t&&ni.test(l))))}):b(()=>({}))},It=({from:e,replacement:t,scope:n,version:o,ref:a,type:s="API"},l)=>{J(()=>i(l),r=>{},{immediate:true})},ai=(e,t,n,o)=>{let a={offsetX:0,offsetY:0};const s=d=>{const f=d.clientX,w=d.clientY,{offsetX:h,offsetY:C}=a,M=e.value.getBoundingClientRect(),p=M.left,u=M.top,S=M.width,x=M.height,A=document.documentElement.clientWidth,K=document.documentElement.clientHeight,R=-p+h,F=-u+C,q=A-p-S+h,L=K-u-x+C,j=E=>{let m=h+E.clientX-f,D=C+E.clientY-w;o!=null&&o.value||(m=Math.min(Math.max(m,R),q),D=Math.min(Math.max(D,F),L)),a={offsetX:m,offsetY:D},e.value&&(e.value.style.transform=`translate(${at(m)}, ${at(D)})`)},te=()=>{document.removeEventListener("mousemove",j),document.removeEventListener("mouseup",te)};document.addEventListener("mousemove",j),document.addEventListener("mouseup",te)},l=()=>{t.value&&e.value&&t.value.addEventListener("mousedown",s)},r=()=>{t.value&&e.value&&t.value.removeEventListener("mousedown",s)};Ee(()=>{aa(()=>{n.value?l():r()})}),lt(()=>{r()})};var si={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const ri=e=>(t,n)=>li(t,n,i(e)),li=(e,t,n)=>Il(n,e,e).replace(/\{(\w+)\}/g,(o,a)=>{var s;return`${(s=t==null?void 0:t[a])!=null?s:`{${a}}`}`}),ii=e=>{const t=b(()=>i(e).name),n=oo(e)?e:I(e);return{lang:t,locale:n,t:ri(e)}},$o=Symbol("localeContextKey"),ui=e=>{const t=e||ee($o,I());return ii(b(()=>t.value||si))},_t="el",ci="is-",Le=(e,t,n,o,a)=>{let s=`${e}-${t}`;return n&&(s+=`-${n}`),o&&(s+=`__${o}`),a&&(s+=`--${a}`),s},Lo=Symbol("namespaceContextKey"),Oo=e=>{const t=e||(Se()?ee(Lo,I(_t)):I(_t));return b(()=>i(t)||_t)},ye=(e,t)=>{const n=Oo(t);return{namespace:n,b:(u="")=>Le(n.value,e,u,"",""),e:u=>u?Le(n.value,e,"",u,""):"",m:u=>u?Le(n.value,e,"","",u):"",be:(u,S)=>u&&S?Le(n.value,e,u,S,""):"",em:(u,S)=>u&&S?Le(n.value,e,"",u,S):"",bm:(u,S)=>u&&S?Le(n.value,e,u,"",S):"",bem:(u,S,x)=>u&&S&&x?Le(n.value,e,u,S,x):"",is:(u,...S)=>{const x=S.length>=1?S[0]:true;return u&&x?`${ci}${u}`:""},cssVar:u=>{const S={};for(const x in u)u[x]&&(S[`--${n.value}-${x}`]=u[x]);return S},cssVarName:u=>`--${n.value}-${u}`,cssVarBlock:u=>{const S={};for(const x in u)u[x]&&(S[`--${n.value}-${e}-${x}`]=u[x]);return S},cssVarBlockName:u=>`--${n.value}-${e}-${u}`}},di=(e,t={})=>{oo(e)||Kl("[useLockscreen]","You need to pass a ref param to this function");const n=t.ns||ye("popup"),o=b(()=>n.bm("parent","hidden"));if(!me||zn(document.body,o.value))return;let a=0,s=false,l="0";const r=()=>{setTimeout(()=>{Wl(document==null?void 0:document.body,o.value),s&&document&&(document.body.style.width=l)},200)};J(e,d=>{if(!d){r();return}s=!zn(document.body,o.value),s&&(l=document.body.style.width),a=Yl(n.namespace.value);const f=document.documentElement.clientHeight<document.body.scrollHeight,w=Gl(document.body,"overflowY");a>0&&(f||w==="scroll")&&s&&(document.body.style.width=`calc(100% - ${a}px)`),jl(document.body,o.value)}),sa(()=>r())},Ao=e=>{const t=Se();return b(()=>{var n,o;return(o=(n=t==null?void 0:t.proxy)==null?void 0:n.$props)==null?void 0:o[e]})},No=e=>{if(!e)return{onClick:et,onMousedown:et,onMouseup:et};let t=false,n=false;return{onClick:l=>{t&&n&&e(l),t=n=false},onMousedown:l=>{t=l.target===l.currentTarget},onMouseup:l=>{n=l.target===l.currentTarget}}},Fn={prefix:Math.floor(Math.random()*1e4),current:0},fi=Symbol("elIdInjection"),pi=()=>Se()?ee(fi,Fn):Fn,Qt=e=>{const t=pi(),n=Oo();return b(()=>i(e)||`${n.value}-id-${t.prefix}-${t.current++}`)};let He=[];const Vn=e=>{const t=e;t.key===Rt.esc&&He.forEach(n=>n(t))},vi=e=>{Ee(()=>{He.length===0&&document.addEventListener("keydown",Vn),me&&He.push(e)}),lt(()=>{He=He.filter(t=>t!==e),He.length===0&&me&&document.removeEventListener("keydown",Vn)})},Dn={current:0},Hn=I(0),Ro=2e3,Un=Symbol("elZIndexContextKey"),Po=Symbol("zIndexContextKey"),mi=e=>{const t=Se()?ee(Un,Dn):Dn,n=e||(Se()?ee(Po,void 0):void 0),o=b(()=>{const l=i(n);return Pe(l)?l:Ro}),a=b(()=>o.value+Hn.value),s=()=>(t.current++,Hn.value=t.current,a.value);return!me&&ee(Un),{initialZIndex:o,currentZIndex:a,nextZIndex:s}};function gi(e){const t=I();function n(){if(e.value==null)return;const{selectionStart:a,selectionEnd:s,value:l}=e.value;if(a==null||s==null)return;const r=l.slice(0,Math.max(0,a)),d=l.slice(Math.max(0,s));t.value={selectionStart:a,selectionEnd:s,value:l,beforeTxt:r,afterTxt:d}}function o(){if(e.value==null||t.value==null)return;const{value:a}=e.value,{beforeTxt:s,afterTxt:l,selectionStart:r}=t.value;if(s==null||l==null||r==null)return;let d=a.length;if(a.endsWith(l))d=a.length-l.length;else if(a.startsWith(s))d=s.length;else{const f=s[r-1],w=a.indexOf(f,r-1);w!==-1&&(d=w+1)}e.value.setSelectionRange(d,d)}return[n,o]}const mn=ko({type:String,values:Io,required:false}),zo=Symbol("size"),hi=()=>{const e=ee(zo,{});return b(()=>i(e.size)||"")};function yi(e,{afterFocus:t,beforeBlur:n,afterBlur:o}={}){const a=Se(),{emit:s}=a,l=yt(),r=I(false),d=h=>{r.value||(r.value=true,s("focus",h),t==null||t())},f=h=>{var C;Ne(n)&&n(h)||h.relatedTarget&&((C=l.value)!=null&&C.contains(h.relatedTarget))||(r.value=false,s("blur",h),o==null||o())},w=()=>{var h;(h=e.value)==null||h.focus()};return J(l,h=>{h&&h.setAttribute("tabindex","-1")}),so(l,"click",w),{wrapperRef:l,isFocused:r,handleFocus:d,handleBlur:f}}const bi=Symbol("emptyValuesContextKey"),_i=Te({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>Ne(e)?!e():!e}}),wi=Te({ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical","undefined"]},ariaControls:String}),Ci=e=>Dl(wi,e),Fo=Symbol(),Bt=I();function gn(e,t=void 0){const n=Se()?ee(Fo,Bt):Bt;return e?b(()=>{var o,a;return(a=(o=n.value)==null?void 0:o[e])!=null?a:t}):n}function Vo(e,t){const n=gn(),o=ye(e,b(()=>{var r;return((r=n.value)==null?void 0:r.namespace)||_t})),a=ui(b(()=>{var r;return(r=n.value)==null?void 0:r.locale})),s=mi(b(()=>{var r;return((r=n.value)==null?void 0:r.zIndex)||Ro})),l=b(()=>{var r;return i(t)||((r=n.value)==null?void 0:r.size)||""});return Do(b(()=>i(n)||{})),{ns:o,locale:a,zIndex:s,size:l}}const Do=(e,t,n=false)=>{var o;const a=!!Se(),s=a?gn():void 0,l=(o=void 0)!=null?o:a?sn:void 0;if(!l)return;const r=b(()=>{const d=i(e);return s!=null&&s.value?Si(s.value,d):d});return l(Fo,r),l($o,b(()=>r.value.locale)),l(Lo,b(()=>r.value.namespace)),l(Po,b(()=>r.value.zIndex)),l(zo,{size:b(()=>r.value.size||"")}),l(bi,b(()=>({emptyValues:r.value.emptyValues,valueOnClear:r.value.valueOnClear}))),(n||!Bt.value)&&(Bt.value=r.value),r},Si=(e,t)=>{const n=[...new Set([...Pn(e),...Pn(t)])],o={};for(const a of n)o[a]=t[a]!==void 0?t[a]:e[a];return o},Ei=Te({a11y:{type:Boolean,default:true},locale:{type:G(Object)},size:mn,button:{type:G(Object)},experimentalFeatures:{type:G(Object)},keyboardNavigation:{type:Boolean,default:true},message:{type:G(Object)},zIndex:Number,namespace:{type:String,default:"el"},..._i}),en={};z({name:"ElConfigProvider",props:Ei,setup(e,{slots:t}){J(()=>e.message,o=>{Object.assign(en,o??{})},{immediate:true,deep:true});const n=Do(e);return()=>Z(t,"default",{config:n==null?void 0:n.value})}});var $e=(e,t)=>{const n=e.__vccOpts||e;for(const[o,a]of t)n[o]=a;return n};const Ti=Te({size:{type:G([Number,String])},color:{type:String}}),xi=z({name:"ElIcon",inheritAttrs:false}),ki=z({...xi,props:Ti,setup(e){const t=e,n=ye("icon"),o=b(()=>{const{size:a,color:s}=t;return!a&&!s?{}:{fontSize:Eo(a)?void 0:at(a),"--color":s}});return(a,s)=>(y(),k("i",Je({class:i(n).b(),style:i(o)},a.$attrs),[Z(a.$slots,"default")],16))}});var Mi=$e(ki,[["__file","icon.vue"]]);const ge=Nt(Mi),hn=Symbol("formContextKey"),Ho=Symbol("formItemContextKey"),Uo=(e,t={})=>{const n=I(void 0),o=t.prop?n:Ao("size"),a=t.global?n:hi(),s=t.form?{size:void 0}:ee(hn,void 0),l=t.formItem?{size:void 0}:ee(Ho,void 0);return b(()=>o.value||i(e)||(l==null?void 0:l.size)||(s==null?void 0:s.size)||a.value||"")},yn=e=>{const t=Ao("disabled"),n=ee(hn,void 0);return b(()=>t.value||i(e)||(n==null?void 0:n.disabled)||false)},Ko=()=>{const e=ee(hn,void 0),t=ee(Ho,void 0);return{form:e,formItem:t}},Ii=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:o})=>{n||(n=I(false)),o||(o=I(false));const a=I();let s;const l=b(()=>{var r;return!!(!(e.label||e.ariaLabel)&&t&&t.inputIds&&((r=t.inputIds)==null?void 0:r.length)<=1)});return Ee(()=>{s=J([wt(e,"id"),n],([r,d])=>{const f=r??(d?void 0:Qt().value);f!==a.value&&(t!=null&&t.removeInputId&&(a.value&&t.removeInputId(a.value),!(o!=null&&o.value)&&!d&&f&&t.addInputId(f)),a.value=f)},{immediate:true})}),ra(()=>{s&&s(),t!=null&&t.removeInputId&&a.value&&t.removeInputId(a.value)}),{isLabeledByFormItem:l,inputId:a}};let fe;const Bi=`
|
|
6
|
-
height:0 !important;
|
|
7
|
-
visibility:hidden !important;
|
|
8
|
-
${Ws()?"":"overflow:hidden !important;"}
|
|
9
|
-
position:absolute !important;
|
|
10
|
-
z-index:-1000 !important;
|
|
11
|
-
top:0 !important;
|
|
12
|
-
right:0 !important;
|
|
13
|
-
`,$i=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function Li(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),o=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),a=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:$i.map(l=>`${l}:${t.getPropertyValue(l)}`).join(";"),paddingSize:o,borderSize:a,boxSizing:n}}function Kn(e,t=1,n){var o;fe||(fe=document.createElement("textarea"),document.body.appendChild(fe));const{paddingSize:a,borderSize:s,boxSizing:l,contextStyle:r}=Li(e);fe.setAttribute("style",`${r};${Bi}`),fe.value=e.value||e.placeholder||"";let d=fe.scrollHeight;const f={};l==="border-box"?d=d+s:l==="content-box"&&(d=d-a),fe.value="";const w=fe.scrollHeight-a;if(Pe(t)){let h=w*t;l==="border-box"&&(h=h+a+s),d=Math.max(h,d),f.minHeight=`${h}px`}if(Pe(n)){let h=w*n;l==="border-box"&&(h=h+a+s),d=Math.min(h,d)}return f.height=`${d}px`,(o=fe.parentNode)==null||o.removeChild(fe),fe=void 0,f}const Oi=Te({id:{type:String,default:void 0},size:mn,disabled:Boolean,modelValue:{type:G([String,Number,Object]),default:""},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:G([Boolean,Object]),default:false},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:{type:Boolean,default:false},clearable:{type:Boolean,default:false},showPassword:{type:Boolean,default:false},showWordLimit:{type:Boolean,default:false},suffixIcon:{type:st},prefixIcon:{type:st},containerRole:{type:String,default:void 0},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:true},inputStyle:{type:G([Object,Array,String]),default:()=>Bo({})},autofocus:{type:Boolean,default:false},...Ci(["ariaLabel"])}),Ai={[Jt]:e=>he(e),input:e=>he(e),change:e=>he(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>true,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},Ni=["role"],Ri=["id","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus"],Pi=["id","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus"],zi=z({name:"ElInput",inheritAttrs:false}),Fi=z({...zi,props:Oi,emits:Ai,setup(e,{expose:t,emit:n}){const o=e,a=la(),s=ao(),l=b(()=>{const g={};return o.containerRole==="combobox"&&(g["aria-haspopup"]=a["aria-haspopup"],g["aria-owns"]=a["aria-owns"],g["aria-expanded"]=a["aria-expanded"]),g}),r=b(()=>[o.type==="textarea"?S.b():u.b(),u.m(M.value),u.is("disabled",p.value),u.is("exceed",zt.value),{[u.b("group")]:s.prepend||s.append,[u.m("prefix")]:s.prefix||o.prefixIcon,[u.m("suffix")]:s.suffix||o.suffixIcon||o.clearable||o.showPassword,[u.bm("suffix","password-clear")]:Fe.value&&de.value,[u.b("hidden")]:o.type==="hidden"},a.class]),d=b(()=>[u.e("wrapper"),u.is("focus",E.value)]),f=oi({excludeKeys:b(()=>Object.keys(l.value))}),{form:w,formItem:h}=Ko(),{inputId:C}=Ii(o,{formItemContext:h}),M=Uo(),p=yn(),u=ye("input"),S=ye("textarea"),x=yt(),A=yt(),K=I(false),R=I(false),F=I(false),q=I(),L=yt(o.inputStyle),j=b(()=>x.value||A.value),{wrapperRef:te,isFocused:E,handleFocus:m,handleBlur:D}=yi(j,{afterBlur(){var g;o.validateEvent&&((g=h==null?void 0:h.validate)==null||g.call(h,"blur").catch(P=>void 0))}}),Q=b(()=>{var g;return(g=w==null?void 0:w.statusIcon)!=null?g:false}),se=b(()=>(h==null?void 0:h.validateState)||""),re=b(()=>se.value&&Xl[se.value]),V=b(()=>F.value?Ra:Ta),le=b(()=>[a.style]),ce=b(()=>[o.inputStyle,L.value,{resize:o.resize}]),ne=b(()=>So(o.modelValue)?"":String(o.modelValue)),Fe=b(()=>o.clearable&&!p.value&&!o.readonly&&!!ne.value&&(E.value||K.value)),de=b(()=>o.showPassword&&!p.value&&!o.readonly&&!!ne.value&&(!!ne.value||E.value)),be=b(()=>o.showWordLimit&&!!o.maxlength&&(o.type==="text"||o.type==="textarea")&&!p.value&&!o.readonly&&!o.showPassword),Ve=b(()=>ne.value.length),zt=b(()=>!!be.value&&Ve.value>Number(o.maxlength)),Ft=b(()=>!!s.suffix||!!o.suffixIcon||Fe.value||o.showPassword||be.value||!!se.value&&Q.value),[B,Ye]=gi(x);ro(A,g=>{if(Zo(),!be.value||o.resize!=="both")return;const P=g[0],{width:W}=P.contentRect;q.value={right:`calc(100% - ${W+15+6}px)`}});const qe=()=>{const{type:g,autosize:P}=o;if(!(!me||g!=="textarea"||!A.value))if(P){const W=nt(P)?P.minRows:void 0,ct=nt(P)?P.maxRows:void 0,Mn=Kn(A.value,W,ct);L.value={overflowY:"hidden",...Mn},ae(()=>{A.value.offsetHeight,L.value=Mn})}else L.value={minHeight:Kn(A.value).minHeight}},Zo=(g=>{let P=false;return()=>{var W;if(P||!o.autosize)return;((W=A.value)==null?void 0:W.offsetParent)===null||(g(),P=true)}})(qe),Xe=()=>{const g=j.value,P=o.formatter?o.formatter(ne.value):ne.value;!g||g.value===P||(g.value=P)},Vt=async g=>{B();let{value:P}=g.target;if(o.formatter&&(P=o.parser?o.parser(P):P),!R.value){if(P===ne.value){Xe();return}n(Jt,P),n("input",P),await ae(),Xe(),Ye()}},wn=g=>{n("change",g.target.value)},Cn=g=>{n("compositionstart",g),R.value=true},Sn=g=>{var P;n("compositionupdate",g);const W=(P=g.target)==null?void 0:P.value,ct=W[W.length-1]||"";R.value=!ei(ct)},En=g=>{n("compositionend",g),R.value&&(R.value=false,Vt(g))},Jo=()=>{F.value=!F.value,Tn()},Tn=async()=>{var g;await ae(),(g=j.value)==null||g.focus()},Qo=()=>{var g;return(g=j.value)==null?void 0:g.blur()},ea=g=>{K.value=false,n("mouseleave",g)},ta=g=>{K.value=true,n("mouseenter",g)},xn=g=>{n("keydown",g)},na=()=>{var g;(g=j.value)==null||g.select()},kn=()=>{n(Jt,""),n("change",""),n("clear"),n("input","")};return J(()=>o.modelValue,()=>{var g;ae(()=>qe()),o.validateEvent&&((g=h==null?void 0:h.validate)==null||g.call(h,"change").catch(P=>void 0))}),J(ne,()=>Xe()),J(()=>o.type,async()=>{await ae(),Xe(),qe()}),Ee(()=>{!o.formatter&&o.parser,Xe(),ae(qe)}),It({from:"label",replacement:"aria-label",version:"2.8.0",scope:"el-input",ref:"https://element-plus.org/en-US/component/input.html"},b(()=>!!o.label)),t({input:x,textarea:A,ref:j,textareaStyle:ce,autosize:wt(o,"autosize"),focus:Tn,blur:Qo,select:na,clear:kn,resizeTextarea:qe}),(g,P)=>(y(),k("div",Je(i(l),{class:[i(r),{[i(u).bm("group","append")]:g.$slots.append,[i(u).bm("group","prepend")]:g.$slots.prepend}],style:i(le),role:g.containerRole,onMouseenter:ta,onMouseleave:ea}),[O(" input "),g.type!=="textarea"?(y(),k(we,{key:0},[O(" prepend slot "),g.$slots.prepend?(y(),k("div",{key:0,class:T(i(u).be("group","prepend"))},[Z(g.$slots,"prepend")],2)):O("v-if",true),c("div",{ref_key:"wrapperRef",ref:te,class:T(i(d))},[O(" prefix slot "),g.$slots.prefix||g.prefixIcon?(y(),k("span",{key:0,class:T(i(u).e("prefix"))},[c("span",{class:T(i(u).e("prefix-inner"))},[Z(g.$slots,"prefix"),g.prefixIcon?(y(),N(i(ge),{key:0,class:T(i(u).e("icon"))},{default:_(()=>[(y(),N(ue(g.prefixIcon)))]),_:1},8,["class"])):O("v-if",true)],2)],2)):O("v-if",true),c("input",Je({id:i(C),ref_key:"input",ref:x,class:i(u).e("inner")},i(f),{minlength:g.minlength,maxlength:g.maxlength,type:g.showPassword?F.value?"text":"password":g.type,disabled:i(p),readonly:g.readonly,autocomplete:g.autocomplete,tabindex:g.tabindex,"aria-label":g.label||g.ariaLabel,placeholder:g.placeholder,style:g.inputStyle,form:g.form,autofocus:g.autofocus,onCompositionstart:Cn,onCompositionupdate:Sn,onCompositionend:En,onInput:Vt,onFocus:P[0]||(P[0]=(...W)=>i(m)&&i(m)(...W)),onBlur:P[1]||(P[1]=(...W)=>i(D)&&i(D)(...W)),onChange:wn,onKeydown:xn}),null,16,Ri),O(" suffix slot "),i(Ft)?(y(),k("span",{key:1,class:T(i(u).e("suffix"))},[c("span",{class:T(i(u).e("suffix-inner"))},[!i(Fe)||!i(de)||!i(be)?(y(),k(we,{key:0},[Z(g.$slots,"suffix"),g.suffixIcon?(y(),N(i(ge),{key:0,class:T(i(u).e("icon"))},{default:_(()=>[(y(),N(ue(g.suffixIcon)))]),_:1},8,["class"])):O("v-if",true)],64)):O("v-if",true),i(Fe)?(y(),N(i(ge),{key:1,class:T([i(u).e("icon"),i(u).e("clear")]),onMousedown:Ue(i(et),["prevent"]),onClick:kn},{default:_(()=>[v(i(io))]),_:1},8,["class","onMousedown"])):O("v-if",true),i(de)?(y(),N(i(ge),{key:2,class:T([i(u).e("icon"),i(u).e("password")]),onClick:Jo},{default:_(()=>[(y(),N(ue(i(V))))]),_:1},8,["class"])):O("v-if",true),i(be)?(y(),k("span",{key:3,class:T(i(u).e("count"))},[c("span",{class:T(i(u).e("count-inner"))},H(i(Ve))+" / "+H(g.maxlength),3)],2)):O("v-if",true),i(se)&&i(re)&&i(Q)?(y(),N(i(ge),{key:4,class:T([i(u).e("icon"),i(u).e("validateIcon"),i(u).is("loading",i(se)==="validating")])},{default:_(()=>[(y(),N(ue(i(re))))]),_:1},8,["class"])):O("v-if",true)],2)],2)):O("v-if",true)],2),O(" append slot "),g.$slots.append?(y(),k("div",{key:1,class:T(i(u).be("group","append"))},[Z(g.$slots,"append")],2)):O("v-if",true)],64)):(y(),k(we,{key:1},[O(" textarea "),c("textarea",Je({id:i(C),ref_key:"textarea",ref:A,class:[i(S).e("inner"),i(u).is("focus",i(E))]},i(f),{minlength:g.minlength,maxlength:g.maxlength,tabindex:g.tabindex,disabled:i(p),readonly:g.readonly,autocomplete:g.autocomplete,style:i(ce),"aria-label":g.label||g.ariaLabel,placeholder:g.placeholder,form:g.form,autofocus:g.autofocus,onCompositionstart:Cn,onCompositionupdate:Sn,onCompositionend:En,onInput:Vt,onFocus:P[2]||(P[2]=(...W)=>i(m)&&i(m)(...W)),onBlur:P[3]||(P[3]=(...W)=>i(D)&&i(D)(...W)),onChange:wn,onKeydown:xn}),null,16,Pi),i(be)?(y(),k("span",{key:0,style:tt(q.value),class:T(i(u).e("count"))},H(i(Ve))+" / "+H(g.maxlength),7)):O("v-if",true)],64))],16,Ni))}});var Vi=$e(Fi,[["__file","input.vue"]]);const Di=Nt(Vi),Ut="focus-trap.focus-after-trapped",Kt="focus-trap.focus-after-released",Hi="focus-trap.focusout-prevented",jn={cancelable:true,bubbles:false},Ui={cancelable:true,bubbles:false},Wn="focusAfterTrapped",Gn="focusAfterReleased",Ki=Symbol("elFocusTrap"),bn=I(),Pt=I(0),_n=I(0);let pt=0;const jo=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const a=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||a?NodeFilter.FILTER_SKIP:o.tabIndex>=0||o===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},Yn=(e,t)=>{for(const n of e)if(!ji(n,t))return n},ji=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return true;for(;e;){if(t&&e===t)return false;if(getComputedStyle(e).display==="none")return true;e=e.parentElement}return false},Wi=e=>{const t=jo(e),n=Yn(t,e),o=Yn(t.reverse(),e);return[n,o]},Gi=e=>e instanceof HTMLInputElement&&"select"in e,ke=(e,t)=>{if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:true}),_n.value=window.performance.now(),e!==n&&Gi(e)&&t&&e.select()}};function qn(e,t){const n=[...e],o=e.indexOf(t);return o!==-1&&n.splice(o,1),n}const Yi=()=>{let e=[];return{push:o=>{const a=e[0];a&&o!==a&&a.pause(),e=qn(e,o),e.unshift(o)},remove:o=>{var a,s;e=qn(e,o),(s=(a=e[0])==null?void 0:a.resume)==null||s.call(a)}}},qi=(e,t=false)=>{const n=document.activeElement;for(const o of e)if(ke(o,t),document.activeElement!==n)return},Xn=Yi(),Xi=()=>Pt.value>_n.value,vt=()=>{bn.value="pointer",Pt.value=window.performance.now()},Zn=()=>{bn.value="keyboard",Pt.value=window.performance.now()},Zi=()=>(Ee(()=>{pt===0&&(document.addEventListener("mousedown",vt),document.addEventListener("touchstart",vt),document.addEventListener("keydown",Zn)),pt++}),lt(()=>{pt--,pt<=0&&(document.removeEventListener("mousedown",vt),document.removeEventListener("touchstart",vt),document.removeEventListener("keydown",Zn))}),{focusReason:bn,lastUserFocusTimestamp:Pt,lastAutomatedFocusTimestamp:_n}),mt=e=>new CustomEvent(Hi,{...Ui,detail:e}),Ji=z({name:"ElFocusTrap",inheritAttrs:false,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Wn,Gn,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=I();let o,a;const{focusReason:s}=Zi();vi(p=>{e.trapped&&!l.paused&&t("release-requested",p)});const l={paused:false,pause(){this.paused=true},resume(){this.paused=false}},r=p=>{if(!e.loop&&!e.trapped||l.paused)return;const{key:u,altKey:S,ctrlKey:x,metaKey:A,currentTarget:K,shiftKey:R}=p,{loop:F}=e,q=u===Rt.tab&&!S&&!x&&!A,L=document.activeElement;if(q&&L){const j=K,[te,E]=Wi(j);if(te&&E){if(!R&&L===E){const D=mt({focusReason:s.value});t("focusout-prevented",D),D.defaultPrevented||(p.preventDefault(),F&&ke(te,true))}else if(R&&[te,j].includes(L)){const D=mt({focusReason:s.value});t("focusout-prevented",D),D.defaultPrevented||(p.preventDefault(),F&&ke(E,true))}}else if(L===j){const D=mt({focusReason:s.value});t("focusout-prevented",D),D.defaultPrevented||p.preventDefault()}}};sn(Ki,{focusTrapRef:n,onKeydown:r}),J(()=>e.focusTrapEl,p=>{p&&(n.value=p)},{immediate:true}),J([n],([p],[u])=>{p&&(p.addEventListener("keydown",r),p.addEventListener("focusin",w),p.addEventListener("focusout",h)),u&&(u.removeEventListener("keydown",r),u.removeEventListener("focusin",w),u.removeEventListener("focusout",h))});const d=p=>{t(Wn,p)},f=p=>t(Gn,p),w=p=>{const u=i(n);if(!u)return;const S=p.target,x=p.relatedTarget,A=S&&u.contains(S);e.trapped||x&&u.contains(x)||(o=x),A&&t("focusin",p),!l.paused&&e.trapped&&(A?a=S:ke(a,true))},h=p=>{const u=i(n);if(!(l.paused||!u))if(e.trapped){const S=p.relatedTarget;!So(S)&&!u.contains(S)&&setTimeout(()=>{if(!l.paused&&e.trapped){const x=mt({focusReason:s.value});t("focusout-prevented",x),x.defaultPrevented||ke(a,true)}},0)}else{const S=p.target;S&&u.contains(S)||t("focusout",p)}};async function C(){await ae();const p=i(n);if(p){Xn.push(l);const u=p.contains(document.activeElement)?o:document.activeElement;if(o=u,!p.contains(u)){const x=new Event(Ut,jn);p.addEventListener(Ut,d),p.dispatchEvent(x),x.defaultPrevented||ae(()=>{let A=e.focusStartEl;he(A)||(ke(A),document.activeElement!==A&&(A="first")),A==="first"&&qi(jo(p),true),(document.activeElement===u||A==="container")&&ke(p)})}}}function M(){const p=i(n);if(p){p.removeEventListener(Ut,d);const u=new CustomEvent(Kt,{...jn,detail:{focusReason:s.value}});p.addEventListener(Kt,f),p.dispatchEvent(u),!u.defaultPrevented&&(s.value=="keyboard"||!Xi()||p.contains(document.activeElement))&&ke(o??document.body),p.removeEventListener(Kt,f),Xn.remove(l)}}return Ee(()=>{e.trapped&&C(),J(()=>e.trapped,p=>{p?C():M()})}),lt(()=>{e.trapped&&M()}),{onKeydown:r}}});function Qi(e,t,n,o,a,s){return Z(e.$slots,"default",{handleKeydown:e.onKeydown})}var eu=$e(Ji,[["render",Qi],["__file","focus-trap.vue"]]);const tu=Te({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:true},color:String,dotStyle:{type:G([String,Object,Array])},badgeStyle:{type:G([String,Object,Array])},offset:{type:G(Array),default:[0,0]},dotClass:{type:String},badgeClass:{type:String}}),nu=["textContent"],ou=z({name:"ElBadge"}),au=z({...ou,props:tu,setup(e,{expose:t}){const n=e,o=ye("badge"),a=b(()=>n.isDot?"":Pe(n.value)&&Pe(n.max)?n.max<n.value?`${n.max}+`:n.value===0&&!n.showZero?"":`${n.value}`:`${n.value}`),s=b(()=>{var l,r,d,f,w,h;return[{backgroundColor:n.color,marginRight:at(-((r=(l=n.offset)==null?void 0:l[0])!=null?r:0)),marginTop:at((f=(d=n.offset)==null?void 0:d[1])!=null?f:0)},(w=n.dotStyle)!=null?w:{},(h=n.badgeStyle)!=null?h:{}]});return It({from:"dot-style",replacement:"badge-style",version:"2.8.0",scope:"el-badge",ref:"https://element-plus.org/en-US/component/badge.html"},b(()=>!!n.dotStyle)),It({from:"dot-class",replacement:"badge-class",version:"2.8.0",scope:"el-badge",ref:"https://element-plus.org/en-US/component/badge.html"},b(()=>!!n.dotClass)),t({content:a}),(l,r)=>(y(),k("div",{class:T(i(o).b())},[Z(l.$slots,"default"),v(rn,{name:`${i(o).namespace.value}-zoom-in-center`,persisted:""},{default:_(()=>[Ke(c("sup",{class:T([i(o).e("content"),i(o).em("content",l.type),i(o).is("fixed",!!l.$slots.default),i(o).is("dot",l.isDot),l.dotClass,l.badgeClass]),style:tt(i(s)),textContent:H(i(a))},null,14,nu),[[Qe,!l.hidden&&(i(a)||l.isDot)]])]),_:1},8,["name"])],2))}});var su=$e(au,[["__file","badge.vue"]]);const ru=Nt(su),Wo=Symbol("buttonGroupContextKey"),lu=(e,t)=>{It({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},b(()=>e.type==="text"));const n=ee(Wo,void 0),o=gn("button"),{form:a}=Ko(),s=Uo(b(()=>n==null?void 0:n.size)),l=yn(),r=I(),d=ao(),f=b(()=>e.type||(n==null?void 0:n.type)||""),w=b(()=>{var p,u,S;return(S=(u=e.autoInsertSpace)!=null?u:(p=o.value)==null?void 0:p.autoInsertSpace)!=null?S:false}),h=b(()=>e.tag==="button"?{ariaDisabled:l.value||e.loading,disabled:l.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),C=b(()=>{var p;const u=(p=d.default)==null?void 0:p.call(d);if(w.value&&(u==null?void 0:u.length)===1){const S=u[0];if((S==null?void 0:S.type)===ia){const x=S.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(x.trim())}}return false});return{_disabled:l,_size:s,_type:f,_ref:r,_props:h,shouldAddSpace:C,handleClick:p=>{e.nativeType==="reset"&&(a==null||a.resetFields()),t("click",p)}}},iu=["default","primary","success","warning","info","danger","text",""],uu=["button","submit","reset"],tn=Te({size:mn,disabled:Boolean,type:{type:String,values:iu,default:""},icon:{type:st},nativeType:{type:String,values:uu,default:"button"},loading:Boolean,loadingIcon:{type:st,default:()=>St},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:G([String,Object]),default:"button"}}),cu={click:e=>e instanceof MouseEvent};function Y(e,t){du(e)&&(e="100%");var n=fu(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function gt(e){return Math.min(1,Math.max(0,e))}function du(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function fu(e){return typeof e=="string"&&e.indexOf("%")!==-1}function Go(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function ht(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Oe(e){return e.length===1?"0"+e:String(e)}function pu(e,t,n){return{r:Y(e,255)*255,g:Y(t,255)*255,b:Y(n,255)*255}}function Jn(e,t,n){e=Y(e,255),t=Y(t,255),n=Y(n,255);var o=Math.max(e,t,n),a=Math.min(e,t,n),s=0,l=0,r=(o+a)/2;if(o===a)l=0,s=0;else{var d=o-a;switch(l=r>.5?d/(2-o-a):d/(o+a),o){case e:s=(t-n)/d+(t<n?6:0);break;case t:s=(n-e)/d+2;break;case n:s=(e-t)/d+4;break}s/=6}return{h:s,s:l,l:r}}function jt(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function vu(e,t,n){var o,a,s;if(e=Y(e,360),t=Y(t,100),n=Y(n,100),t===0)a=n,s=n,o=n;else{var l=n<.5?n*(1+t):n+t-n*t,r=2*n-l;o=jt(r,l,e+1/3),a=jt(r,l,e),s=jt(r,l,e-1/3)}return{r:o*255,g:a*255,b:s*255}}function Qn(e,t,n){e=Y(e,255),t=Y(t,255),n=Y(n,255);var o=Math.max(e,t,n),a=Math.min(e,t,n),s=0,l=o,r=o-a,d=o===0?0:r/o;if(o===a)s=0;else{switch(o){case e:s=(t-n)/r+(t<n?6:0);break;case t:s=(n-e)/r+2;break;case n:s=(e-t)/r+4;break}s/=6}return{h:s,s:d,v:l}}function mu(e,t,n){e=Y(e,360)*6,t=Y(t,100),n=Y(n,100);var o=Math.floor(e),a=e-o,s=n*(1-t),l=n*(1-a*t),r=n*(1-(1-a)*t),d=o%6,f=[n,l,s,s,r,n][d],w=[r,n,n,l,s,s][d],h=[s,s,r,n,n,l][d];return{r:f*255,g:w*255,b:h*255}}function eo(e,t,n,o){var a=[Oe(Math.round(e).toString(16)),Oe(Math.round(t).toString(16)),Oe(Math.round(n).toString(16))];return o&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0):a.join("")}function gu(e,t,n,o,a){var s=[Oe(Math.round(e).toString(16)),Oe(Math.round(t).toString(16)),Oe(Math.round(n).toString(16)),Oe(hu(o))];return a&&s[0].startsWith(s[0].charAt(1))&&s[1].startsWith(s[1].charAt(1))&&s[2].startsWith(s[2].charAt(1))&&s[3].startsWith(s[3].charAt(1))?s[0].charAt(0)+s[1].charAt(0)+s[2].charAt(0)+s[3].charAt(0):s.join("")}function hu(e){return Math.round(parseFloat(e)*255).toString(16)}function to(e){return oe(e)/255}function oe(e){return parseInt(e,16)}function yu(e){return{r:e>>16,g:(e&65280)>>8,b:e&255}}var nn={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function bu(e){var t={r:0,g:0,b:0},n=1,o=null,a=null,s=null,l=false,r=false;return typeof e=="string"&&(e=Cu(e)),typeof e=="object"&&(_e(e.r)&&_e(e.g)&&_e(e.b)?(t=pu(e.r,e.g,e.b),l=true,r=String(e.r).substr(-1)==="%"?"prgb":"rgb"):_e(e.h)&&_e(e.s)&&_e(e.v)?(o=ht(e.s),a=ht(e.v),t=mu(e.h,o,a),l=true,r="hsv"):_e(e.h)&&_e(e.s)&&_e(e.l)&&(o=ht(e.s),s=ht(e.l),t=vu(e.h,o,s),l=true,r="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(n=e.a)),n=Go(n),{ok:l,format:e.format||r,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var _u="[-\\+]?\\d+%?",wu="[-\\+]?\\d*\\.\\d+%?",Ie="(?:".concat(wu,")|(?:").concat(_u,")"),Wt="[\\s|\\(]+(".concat(Ie,")[,|\\s]+(").concat(Ie,")[,|\\s]+(").concat(Ie,")\\s*\\)?"),Gt="[\\s|\\(]+(".concat(Ie,")[,|\\s]+(").concat(Ie,")[,|\\s]+(").concat(Ie,")[,|\\s]+(").concat(Ie,")\\s*\\)?"),pe={CSS_UNIT:new RegExp(Ie),rgb:new RegExp("rgb"+Wt),rgba:new RegExp("rgba"+Gt),hsl:new RegExp("hsl"+Wt),hsla:new RegExp("hsla"+Gt),hsv:new RegExp("hsv"+Wt),hsva:new RegExp("hsva"+Gt),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function Cu(e){if(e=e.trim().toLowerCase(),e.length===0)return false;var t=false;if(nn[e])e=nn[e],t=true;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n=pe.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=pe.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=pe.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=pe.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=pe.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=pe.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=pe.hex8.exec(e),n?{r:oe(n[1]),g:oe(n[2]),b:oe(n[3]),a:to(n[4]),format:t?"name":"hex8"}:(n=pe.hex6.exec(e),n?{r:oe(n[1]),g:oe(n[2]),b:oe(n[3]),format:t?"name":"hex"}:(n=pe.hex4.exec(e),n?{r:oe(n[1]+n[1]),g:oe(n[2]+n[2]),b:oe(n[3]+n[3]),a:to(n[4]+n[4]),format:t?"name":"hex8"}:(n=pe.hex3.exec(e),n?{r:oe(n[1]+n[1]),g:oe(n[2]+n[2]),b:oe(n[3]+n[3]),format:t?"name":"hex"}:false)))))))))}function _e(e){return!!pe.CSS_UNIT.exec(String(e))}var Su=function(){function e(t,n){t===void 0&&(t=""),n===void 0&&(n={});var o;if(t instanceof e)return t;typeof t=="number"&&(t=yu(t)),this.originalInput=t;var a=bu(t);this.originalInput=t,this.r=a.r,this.g=a.g,this.b=a.b,this.a=a.a,this.roundA=Math.round(100*this.a)/100,this.format=(o=n.format)!==null&&o!==void 0?o:a.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=a.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,o,a,s=t.r/255,l=t.g/255,r=t.b/255;return s<=.03928?n=s/12.92:n=Math.pow((s+.055)/1.055,2.4),l<=.03928?o=l/12.92:o=Math.pow((l+.055)/1.055,2.4),r<=.03928?a=r/12.92:a=Math.pow((r+.055)/1.055,2.4),.2126*n+.7152*o+.0722*a},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=Go(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=Qn(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=Qn(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),a=Math.round(t.v*100);return this.a===1?"hsv(".concat(n,", ").concat(o,"%, ").concat(a,"%)"):"hsva(".concat(n,", ").concat(o,"%, ").concat(a,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=Jn(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=Jn(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),a=Math.round(t.l*100);return this.a===1?"hsl(".concat(n,", ").concat(o,"%, ").concat(a,"%)"):"hsla(".concat(n,", ").concat(o,"%, ").concat(a,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=false),eo(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=false),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=false),gu(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=false),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=false),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),o=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(n,", ").concat(o,")"):"rgba(".concat(t,", ").concat(n,", ").concat(o,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(n){return"".concat(Math.round(Y(n,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(Y(n,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return false;for(var t="#"+eo(this.r,this.g,this.b,false),n=0,o=Object.entries(nn);n<o.length;n++){var a=o[n],s=a[0],l=a[1];if(t===l)return s}return false},e.prototype.toString=function(t){var n=!!t;t=t??this.format;var o=false,a=this.a<1&&this.a>=0,s=!n&&a&&(t.startsWith("hex")||t==="name");return s?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(o=this.toRgbString()),t==="prgb"&&(o=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(o=this.toHexString()),t==="hex3"&&(o=this.toHexString(true)),t==="hex4"&&(o=this.toHex8String(true)),t==="hex8"&&(o=this.toHex8String()),t==="name"&&(o=this.toName()),t==="hsl"&&(o=this.toHslString()),t==="hsv"&&(o=this.toHsvString()),o||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=gt(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=gt(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=gt(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=gt(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),o=(n.h+t)%360;return n.h=o<0?360+o:o,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var o=this.toRgb(),a=new e(t).toRgb(),s=n/100,l={r:(a.r-o.r)*s+o.r,g:(a.g-o.g)*s+o.g,b:(a.b-o.b)*s+o.b,a:(a.a-o.a)*s+o.a};return new e(l)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var o=this.toHsl(),a=360/n,s=[this];for(o.h=(o.h-(a*t>>1)+720)%360;--t;)o.h=(o.h+a)%360,s.push(new e(o));return s},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),o=n.h,a=n.s,s=n.v,l=[],r=1/t;t--;)l.push(new e({h:o,s:a,v:s})),s=(s+r)%1;return l},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),o=new e(t).toRgb(),a=n.a+o.a*(1-n.a);return new e({r:(n.r*n.a+o.r*o.a*(1-n.a))/a,g:(n.g*n.a+o.g*o.a*(1-n.a))/a,b:(n.b*n.a+o.b*o.a*(1-n.a))/a,a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),o=n.h,a=[this],s=360/t,l=1;l<t;l++)a.push(new e({h:(o+l*s)%360,s:n.s,l:n.l}));return a},e.prototype.equals=function(t){return this.toRgbString()===new e(t).toRgbString()},e}();function xe(e,t=20){return e.mix("#141414",t).toString()}function Eu(e){const t=yn(),n=ye("button");return b(()=>{let o={},a=e.color;if(a){const s=a.match(/var\((.*?)\)/);s&&(a=window.getComputedStyle(window.document.documentElement).getPropertyValue(s[1]));const l=new Su(a),r=e.dark?l.tint(20).toString():xe(l,20);if(e.plain)o=n.cssVarBlock({"bg-color":e.dark?xe(l,90):l.tint(90).toString(),"text-color":a,"border-color":e.dark?xe(l,50):l.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":a,"hover-border-color":a,"active-bg-color":r,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":r}),t.value&&(o[n.cssVarBlockName("disabled-bg-color")]=e.dark?xe(l,90):l.tint(90).toString(),o[n.cssVarBlockName("disabled-text-color")]=e.dark?xe(l,50):l.tint(50).toString(),o[n.cssVarBlockName("disabled-border-color")]=e.dark?xe(l,80):l.tint(80).toString());else{const d=e.dark?xe(l,30):l.tint(30).toString(),f=l.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(o=n.cssVarBlock({"bg-color":a,"text-color":f,"border-color":a,"hover-bg-color":d,"hover-text-color":f,"hover-border-color":d,"active-bg-color":r,"active-border-color":r}),t.value){const w=e.dark?xe(l,50):l.tint(50).toString();o[n.cssVarBlockName("disabled-bg-color")]=w,o[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,o[n.cssVarBlockName("disabled-border-color")]=w}}}return o})}const Tu=z({name:"ElButton"}),xu=z({...Tu,props:tn,emits:cu,setup(e,{expose:t,emit:n}){const o=e,a=Eu(o),s=ye("button"),{_ref:l,_size:r,_type:d,_disabled:f,_props:w,shouldAddSpace:h,handleClick:C}=lu(o,n),M=b(()=>[s.b(),s.m(d.value),s.m(r.value),s.is("disabled",f.value),s.is("loading",o.loading),s.is("plain",o.plain),s.is("round",o.round),s.is("circle",o.circle),s.is("text",o.text),s.is("link",o.link),s.is("has-bg",o.bg)]);return t({ref:l,size:r,type:d,disabled:f,shouldAddSpace:h}),(p,u)=>(y(),N(ue(p.tag),Je({ref_key:"_ref",ref:l},i(w),{class:i(M),style:i(a),onClick:i(C)}),{default:_(()=>[p.loading?(y(),k(we,{key:0},[p.$slots.loading?Z(p.$slots,"loading",{key:0}):(y(),N(i(ge),{key:1,class:T(i(s).is("loading"))},{default:_(()=>[(y(),N(ue(p.loadingIcon)))]),_:1},8,["class"]))],64)):p.icon||p.$slots.icon?(y(),N(i(ge),{key:1},{default:_(()=>[p.icon?(y(),N(ue(p.icon),{key:0})):Z(p.$slots,"icon",{key:1})]),_:3})):O("v-if",true),p.$slots.default?(y(),k("span",{key:2,class:T({[i(s).em("text","expand")]:i(h)})},[Z(p.$slots,"default")],2)):O("v-if",true)]),_:3},16,["class","style","onClick"]))}});var ku=$e(xu,[["__file","button.vue"]]);const Mu={size:tn.size,type:tn.type},Iu=z({name:"ElButtonGroup"}),Bu=z({...Iu,props:Mu,setup(e){const t=e;sn(Wo,an({size:wt(t,"size"),type:wt(t,"type")}));const n=ye("button");return(o,a)=>(y(),k("div",{class:T(`${i(n).b("group")}`)},[Z(o.$slots,"default")],2))}});var Yo=$e(Bu,[["__file","button-group.vue"]]);const $u=Nt(ku,{ButtonGroup:Yo});Jl(Yo);const on="_trap-focus-children",Ae=[],no=e=>{if(Ae.length===0)return;const t=Ae[Ae.length-1][on];if(t.length>0&&e.code===Rt.tab){if(t.length===1){e.preventDefault(),document.activeElement!==t[0]&&t[0].focus();return}const n=e.shiftKey,o=e.target===t[0],a=e.target===t[t.length-1];o&&n&&(e.preventDefault(),t[t.length-1].focus()),a&&!n&&(e.preventDefault(),t[0].focus())}},Lu={beforeMount(e){e[on]=In(e),Ae.push(e),Ae.length<=1&&document.addEventListener("keydown",no)},updated(e){ae(()=>{e[on]=In(e)})},unmounted(){Ae.shift(),Ae.length===0&&document.removeEventListener("keydown",no)}},Ou=Te({mask:{type:Boolean,default:true},customMaskEvent:{type:Boolean,default:false},overlayClass:{type:G([String,Array,Object])},zIndex:{type:G([String,Number])}}),Au={click:e=>e instanceof MouseEvent},Nu="overlay";var Ru=z({name:"ElOverlay",props:Ou,emits:Au,setup(e,{slots:t,emit:n}){const o=ye(Nu),a=d=>{n("click",d)},{onClick:s,onMousedown:l,onMouseup:r}=No(e.customMaskEvent?void 0:a);return()=>e.mask?v("div",{class:[o.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:s,onMousedown:l,onMouseup:r},[Z(t,"default")],bt.STYLE|bt.CLASS|bt.PROPS,["onClick","onMouseup","onMousedown"]):ua("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Z(t,"default")])}});const Pu=Ru,qo=["success","info","warning","error"],X=Bo({customClass:"",center:false,dangerouslyUseHTMLString:false,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:false,type:"info",plain:false,offset:16,zIndex:0,grouping:false,repeatNum:1,appendTo:me?document.body:void 0}),zu=Te({customClass:{type:String,default:X.customClass},center:{type:Boolean,default:X.center},dangerouslyUseHTMLString:{type:Boolean,default:X.dangerouslyUseHTMLString},duration:{type:Number,default:X.duration},icon:{type:st,default:X.icon},id:{type:String,default:X.id},message:{type:G([String,Object,Function]),default:X.message},onClose:{type:G(Function),default:X.onClose},showClose:{type:Boolean,default:X.showClose},type:{type:String,values:qo,default:X.type},plain:{type:Boolean,default:X.plain},offset:{type:Number,default:X.offset},zIndex:{type:Number,default:X.zIndex},grouping:{type:Boolean,default:X.grouping},repeatNum:{type:Number,default:X.repeatNum}}),Fu={destroy:()=>true},ve=ca([]),Vu=e=>{const t=ve.findIndex(a=>a.id===e),n=ve[t];let o;return t>0&&(o=ve[t-1]),{current:n,prev:o}},Du=e=>{const{prev:t}=Vu(e);return t?t.vm.exposed.bottom.value:0},Hu=(e,t)=>ve.findIndex(o=>o.id===e)>0?16:t,Uu=["id"],Ku=["innerHTML"],ju=z({name:"ElMessage"}),Wu=z({...ju,props:zu,emits:Fu,setup(e,{expose:t}){const n=e,{Close:o}=Mo,{ns:a,zIndex:s}=Vo("message"),{currentZIndex:l,nextZIndex:r}=s,d=I(),f=I(false),w=I(0);let h;const C=b(()=>n.type?n.type==="error"?"danger":n.type:"info"),M=b(()=>{const L=n.type;return{[a.bm("icon",L)]:L&&Mt[L]}}),p=b(()=>n.icon||Mt[n.type]||""),u=b(()=>Du(n.id)),S=b(()=>Hu(n.id,n.offset)+u.value),x=b(()=>w.value+S.value),A=b(()=>({top:`${S.value}px`,zIndex:l.value}));function K(){n.duration!==0&&({stop:h}=ma(()=>{F()},n.duration))}function R(){h==null||h()}function F(){f.value=false}function q({code:L}){L===Rt.esc&&F()}return Ee(()=>{K(),r(),f.value=true}),J(()=>n.repeatNum,()=>{R(),K()}),so(document,"keydown",q),ro(d,()=>{w.value=d.value.getBoundingClientRect().height}),t({visible:f,bottom:x,close:F}),(L,j)=>(y(),N(rn,{name:i(a).b("fade"),onBeforeLeave:L.onClose,onAfterLeave:j[0]||(j[0]=te=>L.$emit("destroy")),persisted:""},{default:_(()=>[Ke(c("div",{id:L.id,ref_key:"messageRef",ref:d,class:T([i(a).b(),{[i(a).m(L.type)]:L.type},i(a).is("center",L.center),i(a).is("closable",L.showClose),i(a).is("plain",L.plain),L.customClass]),style:tt(i(A)),role:"alert",onMouseenter:R,onMouseleave:K},[L.repeatNum>1?(y(),N(i(ru),{key:0,value:L.repeatNum,type:i(C),class:T(i(a).e("badge"))},null,8,["value","type","class"])):O("v-if",true),i(p)?(y(),N(i(ge),{key:1,class:T([i(a).e("icon"),i(M)])},{default:_(()=>[(y(),N(ue(i(p))))]),_:1},8,["class"])):O("v-if",true),Z(L.$slots,"default",{},()=>[L.dangerouslyUseHTMLString?(y(),k(we,{key:1},[O(" Caution here, message could've been compromised, never use user's input as message "),c("p",{class:T(i(a).e("content")),innerHTML:L.message},null,10,Ku)],2112)):(y(),k("p",{key:0,class:T(i(a).e("content"))},H(L.message),3))]),L.showClose?(y(),N(i(ge),{key:2,class:T(i(a).e("closeBtn")),onClick:Ue(F,["stop"])},{default:_(()=>[v(i(o))]),_:1},8,["class","onClick"])):O("v-if",true)],46,Uu),[[Qe,f.value]])]),_:3},8,["name","onBeforeLeave"]))}});var Gu=$e(Wu,[["__file","message.vue"]]);let Yu=1;const Xo=e=>{const t=!e||he(e)||$t(e)||Ne(e)?{message:e}:e,n={...X,...t};if(!n.appendTo)n.appendTo=document.body;else if(he(n.appendTo)){let o=document.querySelector(n.appendTo);Zt(o)||(o=document.body),n.appendTo=o}return n},qu=e=>{const t=ve.indexOf(e);if(t===-1)return;ve.splice(t,1);const{handler:n}=e;n.close()},Xu=({appendTo:e,...t},n)=>{const o=`message_${Yu++}`,a=t.onClose,s=document.createElement("div"),l={...t,id:o,onClose:()=>{a==null||a(),qu(w)},onDestroy:()=>{Ct(null,s)}},r=v(Gu,l,Ne(l.message)||$t(l.message)?{default:Ne(l.message)?l.message:()=>l.message}:null);r.appContext=n||je._context,Ct(r,s),e.appendChild(s.firstElementChild);const d=r.component,w={id:o,vnode:r,vm:d,handler:{close:()=>{d.exposed.visible.value=false}},props:r.component.props};return w},je=(e={},t)=>{if(!me)return{close:()=>{}};if(Pe(en.max)&&ve.length>=en.max)return{close:()=>{}};const n=Xo(e);if(n.grouping&&ve.length){const a=ve.find(({vnode:s})=>{var l;return((l=s.props)==null?void 0:l.message)===n.message});if(a)return a.props.repeatNum+=1,a.props.type=n.type,a.handler}const o=Xu(n,t);return ve.push(o),o.handler};qo.forEach(e=>{je[e]=(t={},n)=>{const o=Xo(t);return je({...o,type:e},n)}});function Zu(e){for(const t of ve)(!e||e===t.props.type)&&t.handler.close()}je.closeAll=Zu;je._context=null;const ie=Zl(je,"$message"),Ju=z({name:"ElMessageBox",directives:{TrapFocus:Lu},components:{ElButton:$u,ElFocusTrap:eu,ElInput:Di,ElOverlay:Pu,ElIcon:ge,...Mo},inheritAttrs:false,props:{buttonSize:{type:String,validator:Ql},modal:{type:Boolean,default:true},lockScroll:{type:Boolean,default:true},showClose:{type:Boolean,default:true},closeOnClickModal:{type:Boolean,default:true},closeOnPressEscape:{type:Boolean,default:true},closeOnHashChange:{type:Boolean,default:true},center:Boolean,draggable:Boolean,overflow:Boolean,roundButton:{default:false,type:Boolean},container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:t}){const{locale:n,zIndex:o,ns:a,size:s}=Vo("message-box",b(()=>e.buttonSize)),{t:l}=n,{nextZIndex:r}=o,d=I(false),f=an({autofocus:true,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",customStyle:{},dangerouslyUseHTMLString:false,distinguishCancelAndClose:false,icon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:null,inputValidator:null,inputErrorMessage:"",message:null,modalFade:true,modalClass:"",showCancelButton:false,showConfirmButton:true,type:"",title:void 0,showInput:false,action:"",confirmButtonLoading:false,cancelButtonLoading:false,confirmButtonLoadingIcon:St,cancelButtonLoadingIcon:St,confirmButtonDisabled:false,editorErrorMessage:"",validateError:false,zIndex:r()}),w=b(()=>{const V=f.type;return{[a.bm("icon",V)]:V&&Mt[V]}}),h=Qt(),C=Qt(),M=b(()=>f.icon||Mt[f.type]||""),p=b(()=>!!f.message),u=I(),S=I(),x=I(),A=I(),K=I(),R=b(()=>f.confirmButtonClass);J(()=>f.inputValue,async V=>{await ae(),e.boxType==="prompt"&&V!==null&&D()},{immediate:true}),J(()=>d.value,V=>{var le,ce;V&&(e.boxType!=="prompt"&&(f.autofocus?x.value=(ce=(le=K.value)==null?void 0:le.$el)!=null?ce:u.value:x.value=u.value),f.zIndex=r()),e.boxType==="prompt"&&(V?ae().then(()=>{var ne;A.value&&A.value.$el&&(f.autofocus?x.value=(ne=Q())!=null?ne:u.value:x.value=u.value)}):(f.editorErrorMessage="",f.validateError=false))});const F=b(()=>e.draggable),q=b(()=>e.overflow);ai(u,S,F,q),Ee(async()=>{await ae(),e.closeOnHashChange&&window.addEventListener("hashchange",L)}),lt(()=>{e.closeOnHashChange&&window.removeEventListener("hashchange",L)});function L(){d.value&&(d.value=false,ae(()=>{f.action&&t("action",f.action)}))}const j=()=>{e.closeOnClickModal&&m(f.distinguishCancelAndClose?"close":"cancel")},te=No(j),E=V=>{if(f.inputType!=="textarea")return V.preventDefault(),m("confirm")},m=V=>{var le;e.boxType==="prompt"&&V==="confirm"&&!D()||(f.action=V,f.beforeClose?(le=f.beforeClose)==null||le.call(f,V,f,L):L())},D=()=>{if(e.boxType==="prompt"){const V=f.inputPattern;if(V&&!V.test(f.inputValue||""))return f.editorErrorMessage=f.inputErrorMessage||l("el.messagebox.error"),f.validateError=true,false;const le=f.inputValidator;if(typeof le=="function"){const ce=le(f.inputValue);if(ce===false)return f.editorErrorMessage=f.inputErrorMessage||l("el.messagebox.error"),f.validateError=true,false;if(typeof ce=="string")return f.editorErrorMessage=ce,f.validateError=true,false}}return f.editorErrorMessage="",f.validateError=false,true},Q=()=>{const V=A.value.$refs;return V.input||V.textarea},se=()=>{m("close")},re=()=>{e.closeOnPressEscape&&se()};return e.lockScroll&&di(d),{...da(f),ns:a,overlayEvent:te,visible:d,hasMessage:p,typeClass:w,contentId:h,inputId:C,btnSize:s,iconComponent:M,confirmButtonClasses:R,rootRef:u,focusStartRef:x,headerRef:S,inputRef:A,confirmRef:K,doClose:L,handleClose:se,onCloseRequested:re,handleWrapperClick:j,handleInputEnter:E,handleAction:m,t:l}}}),Qu=["aria-label","aria-describedby"],ec=["aria-label"],tc=["id"];function nc(e,t,n,o,a,s){const l=$("el-icon"),r=$("close"),d=$("el-input"),f=$("el-button"),w=$("el-focus-trap"),h=$("el-overlay");return y(),N(rn,{name:"fade-in-linear",onAfterLeave:t[11]||(t[11]=C=>e.$emit("vanish")),persisted:""},{default:_(()=>[Ke(v(h,{"z-index":e.zIndex,"overlay-class":[e.ns.is("message-box"),e.modalClass],mask:e.modal},{default:_(()=>[c("div",{role:"dialog","aria-label":e.title,"aria-modal":"true","aria-describedby":e.showInput?void 0:e.contentId,class:T(`${e.ns.namespace.value}-overlay-message-box`),onClick:t[8]||(t[8]=(...C)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...C)),onMousedown:t[9]||(t[9]=(...C)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...C)),onMouseup:t[10]||(t[10]=(...C)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...C))},[v(w,{loop:"",trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:_(()=>[c("div",{ref:"rootRef",class:T([e.ns.b(),e.customClass,e.ns.is("draggable",e.draggable),{[e.ns.m("center")]:e.center}]),style:tt(e.customStyle),tabindex:"-1",onClick:t[7]||(t[7]=Ue(()=>{},["stop"]))},[e.title!==null&&e.title!==void 0?(y(),k("div",{key:0,ref:"headerRef",class:T([e.ns.e("header"),{"show-close":e.showClose}])},[c("div",{class:T(e.ns.e("title"))},[e.iconComponent&&e.center?(y(),N(l,{key:0,class:T([e.ns.e("status"),e.typeClass])},{default:_(()=>[(y(),N(ue(e.iconComponent)))]),_:1},8,["class"])):O("v-if",true),c("span",null,H(e.title),1)],2),e.showClose?(y(),k("button",{key:0,type:"button",class:T(e.ns.e("headerbtn")),"aria-label":e.t("el.messagebox.close"),onClick:t[0]||(t[0]=C=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:t[1]||(t[1]=dt(Ue(C=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[v(l,{class:T(e.ns.e("close"))},{default:_(()=>[v(r)]),_:1},8,["class"])],42,ec)):O("v-if",true)],2)):O("v-if",true),c("div",{id:e.contentId,class:T(e.ns.e("content"))},[c("div",{class:T(e.ns.e("container"))},[e.iconComponent&&!e.center&&e.hasMessage?(y(),N(l,{key:0,class:T([e.ns.e("status"),e.typeClass])},{default:_(()=>[(y(),N(ue(e.iconComponent)))]),_:1},8,["class"])):O("v-if",true),e.hasMessage?(y(),k("div",{key:1,class:T(e.ns.e("message"))},[Z(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(y(),N(ue(e.showInput?"label":"p"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,["for","innerHTML"])):(y(),N(ue(e.showInput?"label":"p"),{key:0,for:e.showInput?e.inputId:void 0},{default:_(()=>[U(H(e.dangerouslyUseHTMLString?"":e.message),1)]),_:1},8,["for"]))])],2)):O("v-if",true)],2),Ke(c("div",{class:T(e.ns.e("input"))},[v(d,{id:e.inputId,ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":t[2]||(t[2]=C=>e.inputValue=C),type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:T({invalid:e.validateError}),onKeydown:dt(e.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),c("div",{class:T(e.ns.e("errormsg")),style:tt({visibility:e.editorErrorMessage?"visible":"hidden"})},H(e.editorErrorMessage),7)],2),[[Qe,e.showInput]])],10,tc),c("div",{class:T(e.ns.e("btns"))},[e.showCancelButton?(y(),N(f,{key:0,loading:e.cancelButtonLoading,"loading-icon":e.cancelButtonLoadingIcon,class:T([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:t[3]||(t[3]=C=>e.handleAction("cancel")),onKeydown:t[4]||(t[4]=dt(Ue(C=>e.handleAction("cancel"),["prevent"]),["enter"]))},{default:_(()=>[U(H(e.cancelButtonText||e.t("el.messagebox.cancel")),1)]),_:1},8,["loading","loading-icon","class","round","size"])):O("v-if",true),Ke(v(f,{ref:"confirmRef",type:"primary",loading:e.confirmButtonLoading,"loading-icon":e.confirmButtonLoadingIcon,class:T([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:t[5]||(t[5]=C=>e.handleAction("confirm")),onKeydown:t[6]||(t[6]=dt(Ue(C=>e.handleAction("confirm"),["prevent"]),["enter"]))},{default:_(()=>[U(H(e.confirmButtonText||e.t("el.messagebox.confirm")),1)]),_:1},8,["loading","loading-icon","class","round","disabled","size"]),[[Qe,e.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,Qu)]),_:3},8,["z-index","overlay-class","mask"]),[[Qe,e.visible]])]),_:3})}var oc=$e(Ju,[["render",nc],["__file","index.vue"]]);const rt=new Map,ac=e=>{let t=document.body;return e.appendTo&&(he(e.appendTo)&&(t=document.querySelector(e.appendTo)),Zt(e.appendTo)&&(t=e.appendTo),Zt(t)||(t=document.body)),t},sc=(e,t,n=null)=>{const o=v(oc,e,Ne(e.message)||$t(e.message)?{default:Ne(e.message)?e.message:()=>e.message}:null);return o.appContext=n,Ct(o,t),ac(e).appendChild(t.firstElementChild),o.component},rc=()=>document.createElement("div"),lc=(e,t)=>{const n=rc();e.onVanish=()=>{Ct(null,n),rt.delete(a)},e.onAction=s=>{const l=rt.get(a);let r;e.showInput?r={value:a.inputValue,action:s}:r=s,e.callback?e.callback(r,o.proxy):s==="cancel"||s==="close"?e.distinguishCancelAndClose&&s!=="cancel"?l.reject("close"):l.reject("cancel"):l.resolve(r)};const o=sc(e,n,t),a=o.proxy;for(const s in e)Tt(e,s)&&!Tt(a.$props,s)&&(a[s]=e[s]);return a.visible=true,a};function Ge(e,t=null){if(!me)return Promise.reject();let n;return he(e)||$t(e)?e={message:e}:n=e.callback,new Promise((o,a)=>{const s=lc(e,t??Ge._context);rt.set(s,{options:e,callback:n,resolve:o,reject:a})})}const ic=["alert","confirm","prompt"],uc={alert:{closeOnPressEscape:false,closeOnClickModal:false},confirm:{showCancelButton:true},prompt:{showCancelButton:true,showInput:true}};ic.forEach(e=>{Ge[e]=cc(e)});function cc(e){return(t,n,o,a)=>{let s="";return nt(n)?(o=n,s=""):Eo(n)?s="":s=n,Ge(Object.assign({title:s,message:t,type:"",...uc[e]},o,{boxType:e}),a)}}Ge.close=()=>{rt.forEach((e,t)=>{t.doClose()}),rt.clear()};Ge._context=null;const Me=Ge;Me.install=e=>{Me._context=e._context,e.config.globalProperties.$msgbox=Me,e.config.globalProperties.$messageBox=Me,e.config.globalProperties.$alert=Me.alert,e.config.globalProperties.$confirm=Me.confirm,e.config.globalProperties.$prompt=Me.prompt};const dc=Me,fc={class:"todo-app"},pc={class:"todo-container"},vc={class:"todo-header"},mc={class:"button-group"},gc={class:"todo-stats"},hc={class:"search-filter-section"},yc={class:"filter-buttons"},bc={class:"todo-table-card"},_c={key:1,class:"pagination-section"},wc=z({__name:"todolist",setup(e){const t=I([]),n=I(false),o=I(false),a=I(false),s=I(false),l=I(false),r=I(""),d=I("all"),f=I(1),w=I(8),h=I({title:"",content:"",createdBy:""}),C=I({id:0,title:"",content:"",createdBy:"",completed:false}),M=b(()=>t.value.filter(E=>E.completed).length),p=b(()=>t.value.filter(E=>!E.completed).length),u=b(()=>{let E=t.value;if(d.value==="active"?E=E.filter(m=>!m.completed):d.value==="completed"&&(E=E.filter(m=>m.completed)),r.value.trim()){const m=r.value.toLowerCase().trim();E=E.filter(D=>D.title.toLowerCase().includes(m)||D.content.toLowerCase().includes(m))}return f.value=1,E}),S=b(()=>{const E=(f.value-1)*w.value,m=E+w.value;return u.value.slice(E,m)});function x(E){w.value=E,f.value=1}function A(E){f.value=E}function K(E){return new Date(E).toLocaleString("zh-CN")}function R(){a.value=true,De("onitodos/list").then(E=>{t.value=E,a.value=false,ie.success("刷新成功")}).catch(E=>{a.value=false,ie.error("刷新失败"),console.error(E)})}De("onitodos/list").then(E=>{t.value=E});async function F(){if(!h.value.title.trim()){ie.warning("请输入标题");return}o.value=true;try{await De("onitodos/add",{title:h.value.title,content:h.value.content,createdBy:h.value.createdBy}),ie.success("添加成功"),s.value=false,h.value={title:"",content:"",createdBy:""},R()}catch(E){ie.error("添加失败"),console.error(E)}finally{o.value=false}}function q(E){C.value={id:E.id,title:E.title,content:E.content,createdBy:E.createdBy,completed:E.completed},l.value=true}async function L(){if(!C.value.title.trim()){ie.warning("请输入标题");return}o.value=true;try{await De("onitodos/update",{id:C.value.id,title:C.value.title,content:C.value.content,createdBy:C.value.createdBy,completed:C.value.completed}),ie.success("更新成功"),l.value=false,R()}catch(E){ie.error("更新失败"),console.error(E)}finally{o.value=false}}async function j(E,m){try{await De("onitodos/update",{id:E.id,completed:m}),ie.success(m?"标记完成成功":"取消完成成功"),R()}catch(D){ie.error("操作失败"),console.error(D)}}async function te(E){try{await dc.confirm(`确定要删除待办事项 "${E.title}" 吗?`,"确认删除",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),await De("onitodos/delete",{id:E.id}),ie.success("删除成功"),R()}catch(m){m!=="cancel"&&(ie.error("删除失败"),console.error(m))}}return(E,m)=>{const D=$("el-icon"),Q=$("el-button"),se=$("el-statistic"),re=$("el-input"),V=$("el-table-column"),le=$("el-tag"),ce=$("el-table"),ne=$("el-empty"),Fe=$("el-pagination"),de=$("el-form-item"),be=$("el-form"),Ve=$("el-dialog"),zt=$("el-checkbox"),Ft=fa("loading");return y(),k("div",fc,[m[30]||(m[30]=c("div",{class:"bg-pattern"},null,-1)),c("div",pc,[c("div",vc,[m[20]||(m[20]=c("h2",{class:"todo-title"},[c("span",{class:"title-dot"},"♦"),c("span",{class:"title-text"},"ONITODO"),c("span",{class:"title-dot"},"♦")],-1)),c("div",mc,[v(Q,{type:"default",class:"cute-btn",onClick:R,loading:a.value},{default:_(()=>[v(D,null,{default:_(()=>[v(i($a))]),_:1}),m[18]||(m[18]=U(" 刷新 ",-1))]),_:1},8,["loading"]),v(Q,{type:"primary",class:"cute-btn primary",onClick:m[0]||(m[0]=B=>s.value=true)},{default:_(()=>[v(D,null,{default:_(()=>[v(i(Ia))]),_:1}),m[19]||(m[19]=U(" 新增待办 ",-1))]),_:1})])]),c("div",gc,[v(se,{title:"总计",value:t.value.length},null,8,["value"]),v(se,{title:"已完成",value:M.value},null,8,["value"]),v(se,{title:"未完成",value:p.value},null,8,["value"])]),c("div",hc,[v(re,{modelValue:r.value,"onUpdate:modelValue":m[1]||(m[1]=B=>r.value=B),placeholder:"🔍 搜索标题或内容...",class:"search-input cute-input",clearable:""},null,8,["modelValue"]),c("div",yc,[c("button",{class:T(["filter-btn",{active:d.value==="all"}]),onClick:m[2]||(m[2]=B=>d.value="all")}," 全部 ",2),c("button",{class:T(["filter-btn",{active:d.value==="active"}]),onClick:m[3]||(m[3]=B=>d.value="active")}," 未完成 ",2),c("button",{class:T(["filter-btn",{active:d.value==="completed"}]),onClick:m[4]||(m[4]=B=>d.value="completed")}," 已完成 ",2)])]),c("div",bc,[Ke((y(),N(ce,{data:S.value,stripe:"",style:{width:"100%"},class:"cute-table"},{default:_(()=>[v(V,{type:"index",label:"id",width:"80"}),v(V,{prop:"title",label:"标题","min-width":"150","show-overflow-tooltip":""},{default:_(({row:B})=>[c("span",{class:T({"completed-text":B.completed})},H(B.title),3)]),_:1}),v(V,{prop:"content",label:"内容","min-width":"150","show-overflow-tooltip":""}),v(V,{prop:"createdBy",label:"创建人",width:"80","show-overflow-tooltip":""}),v(V,{prop:"completed",label:"状态",width:"80"},{default:_(({row:B})=>[v(le,{type:B.completed?"success":"warning",size:"small",class:"cute-tag"},{default:_(()=>[U(H(B.completed?"已完成":"未完成"),1)]),_:2},1032,["type"])]),_:1}),v(V,{prop:"createdAt",label:"创建时间",width:"180"},{default:_(({row:B})=>[U(H(K(B.createdAt)),1)]),_:1}),v(V,{label:"操作",width:"200",fixed:"right"},{default:_(({row:B})=>[B.completed?(y(),N(Q,{key:1,size:"small",type:"warning",class:"cute-btn",onClick:Ye=>j(B,false)},{default:_(()=>[...m[22]||(m[22]=[U(" 取消 ",-1)])]),_:1},8,["onClick"])):(y(),N(Q,{key:0,size:"small",type:"success",class:"cute-btn",onClick:Ye=>j(B,true)},{default:_(()=>[...m[21]||(m[21]=[U(" 完成 ",-1)])]),_:1},8,["onClick"])),v(Q,{size:"small",type:"primary",class:"cute-btn",onClick:Ye=>q(B)},{default:_(()=>[...m[23]||(m[23]=[U(" 编辑 ",-1)])]),_:1},8,["onClick"]),v(Q,{size:"small",type:"danger",class:"cute-btn",onClick:Ye=>te(B)},{default:_(()=>[...m[24]||(m[24]=[U(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[Ft,n.value]]),u.value.length===0&&!n.value?(y(),N(ne,{key:0,description:"暂无待办事项"})):O("v-if",true),u.value.length>8?(y(),k("div",_c,[v(Fe,{"current-page":f.value,"onUpdate:currentPage":m[5]||(m[5]=B=>f.value=B),"page-size":w.value,"onUpdate:pageSize":m[6]||(m[6]=B=>w.value=B),"page-sizes":[8,16,32,64],total:u.value.length,layout:"total, sizes, prev, pager, next, jumper",background:"",onSizeChange:x,onCurrentChange:A},null,8,["current-page","page-size","total"])])):O("v-if",true)])]),v(Ve,{modelValue:s.value,"onUpdate:modelValue":m[11]||(m[11]=B=>s.value=B),title:"新增待办事项",width:"500px",class:"cute-dialog"},{footer:_(()=>[v(Q,{onClick:m[10]||(m[10]=B=>s.value=false),class:"cute-btn"},{default:_(()=>[...m[25]||(m[25]=[U("取消",-1)])]),_:1}),v(Q,{type:"primary",onClick:F,loading:o.value,class:"cute-btn primary"},{default:_(()=>[...m[26]||(m[26]=[U(" 保存 ",-1)])]),_:1},8,["loading"])]),default:_(()=>[v(be,{model:h.value,"label-width":"80px"},{default:_(()=>[v(de,{label:"标题"},{default:_(()=>[v(re,{modelValue:h.value.title,"onUpdate:modelValue":m[7]||(m[7]=B=>h.value.title=B),placeholder:"请输入标题",class:"cute-input"},null,8,["modelValue"])]),_:1}),v(de,{label:"内容"},{default:_(()=>[v(re,{modelValue:h.value.content,"onUpdate:modelValue":m[8]||(m[8]=B=>h.value.content=B),type:"textarea",rows:4,placeholder:"请输入具体内容",class:"cute-input"},null,8,["modelValue"])]),_:1}),v(de,{label:"创建人"},{default:_(()=>[v(re,{modelValue:h.value.createdBy,"onUpdate:modelValue":m[9]||(m[9]=B=>h.value.createdBy=B),placeholder:"默认为:默认创建人",class:"cute-input"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),v(Ve,{modelValue:l.value,"onUpdate:modelValue":m[17]||(m[17]=B=>l.value=B),title:"编辑待办事项",width:"500px",class:"cute-dialog"},{footer:_(()=>[v(Q,{onClick:m[16]||(m[16]=B=>l.value=false),class:"cute-btn"},{default:_(()=>[...m[28]||(m[28]=[U("取消",-1)])]),_:1}),v(Q,{type:"primary",onClick:L,loading:o.value,class:"cute-btn primary"},{default:_(()=>[...m[29]||(m[29]=[U(" 保存 ",-1)])]),_:1},8,["loading"])]),default:_(()=>[v(be,{model:C.value,"label-width":"80px"},{default:_(()=>[v(de,{label:"标题"},{default:_(()=>[v(re,{modelValue:C.value.title,"onUpdate:modelValue":m[12]||(m[12]=B=>C.value.title=B),placeholder:"请输入标题",class:"cute-input"},null,8,["modelValue"])]),_:1}),v(de,{label:"内容"},{default:_(()=>[v(re,{modelValue:C.value.content,"onUpdate:modelValue":m[13]||(m[13]=B=>C.value.content=B),type:"textarea",rows:4,placeholder:"请输入具体内容",class:"cute-input"},null,8,["modelValue"])]),_:1}),v(de,{label:"创建人"},{default:_(()=>[v(re,{modelValue:C.value.createdBy,"onUpdate:modelValue":m[14]||(m[14]=B=>C.value.createdBy=B),placeholder:"请输入创建人",class:"cute-input"},null,8,["modelValue"])]),_:1}),v(de,{label:"状态"},{default:_(()=>[v(zt,{modelValue:C.value.completed,"onUpdate:modelValue":m[15]||(m[15]=B=>C.value.completed=B),class:"cute-checkbox"},{default:_(()=>[...m[27]||(m[27]=[U(" 已完成 ",-1)])]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),Cc=it(wc,[["__scopeId","data-v-497a4f32"]]),kc=e=>{e.page({name:"同步机器人",path:"/onilogs",component:Ka,fields:["onilogs"]}),e.page({name:"火箭计算器",path:"/calculator",component:Fs}),e.page({name:"缺氧 TodoList",path:"/onitodos",component:Hs}),e.slot({type:"calculator",component:Rs}),e.slot({type:"onitodos",component:Cc})};export{kc as default};
|
|
5
|
+
**/const _o=Object.prototype.hasOwnProperty,Ue=(e,n)=>_o.call(e,n),_e=e=>typeof e=="function",ye=e=>typeof e=="string",it=e=>e!==null&&typeof e=="object";var yo=typeof global=="object"&&global&&global.Object===Object&&global,ho=typeof self=="object"&&self&&self.Object===Object&&self,Ie=yo||ho||Function("return this")(),ne=Ie.Symbol,ut=Object.prototype,bo=ut.hasOwnProperty,Co=ut.toString,re=ne?ne.toStringTag:void 0;function wo(e){var n=bo.call(e,re),t=e[re];try{e[re]=void 0;var o=true}catch{}var s=Co.call(e);return o&&(n?e[re]=t:delete e[re]),s}var xo=Object.prototype,So=xo.toString;function To(e){return So.call(e)}var $o="[object Null]",ko="[object Undefined]",Ke=ne?ne.toStringTag:void 0;function ct(e){return e==null?e===void 0?ko:$o:Ke&&Ke in Object(e)?wo(e):To(e)}function Oo(e){return e!=null&&typeof e=="object"}var Eo="[object Symbol]";function Me(e){return typeof e=="symbol"||Oo(e)&&ct(e)==Eo}function zo(e,n){for(var t=-1,o=e==null?0:e.length,s=Array(o);++t<o;)s[t]=n(e[t],t,e);return s}var Be=Array.isArray,Ge=ne?ne.prototype:void 0,He=Ge?Ge.toString:void 0;function dt(e){if(typeof e=="string")return e;if(Be(e))return zo(e,dt)+"";if(Me(e))return He?He.call(e):"";var n=e+"";return n=="0"&&1/e==-1/0?"-0":n}function pt(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}var No="[object AsyncFunction]",Vo="[object Function]",Io="[object GeneratorFunction]",Mo="[object Proxy]";function Bo(e){if(!pt(e))return false;var n=ct(e);return n==Vo||n==Io||n==No||n==Mo}var Te=Ie["__core-js_shared__"],qe=function(){var e=/[^.]+$/.exec(Te&&Te.keys&&Te.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Po(e){return!!qe&&qe in e}var Lo=Function.prototype,Do=Lo.toString;function Ro(e){if(e!=null){try{return Do.call(e)}catch{}try{return e+""}catch{}}return""}var jo=/[\\^$.*+?()[\]{}|]/g,Fo=/^\[object .+?Constructor\]$/,Ao=Function.prototype,Uo=Object.prototype,Ko=Ao.toString,Go=Uo.hasOwnProperty,Ho=RegExp("^"+Ko.call(Go).replace(jo,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qo(e){if(!pt(e)||Po(e))return false;var n=Bo(e)?Ho:Fo;return n.test(Ro(e))}function Wo(e,n){return e==null?void 0:e[n]}function ft(e,n){var t=Wo(e,n);return qo(t)?t:void 0}function Zo(e,n){return e===n||e!==e&&n!==n}var Jo=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Yo=/^\w*$/;function Xo(e,n){if(Be(e))return false;var t=typeof e;return t=="number"||t=="symbol"||t=="boolean"||e==null||Me(e)?true:Yo.test(e)||!Jo.test(e)||n!=null&&e in Object(n)}var de=ft(Object,"create");function Qo(){this.__data__=de?de(null):{},this.size=0}function el(e){var n=this.has(e)&&delete this.__data__[e];return this.size-=n?1:0,n}var tl="__lodash_hash_undefined__",nl=Object.prototype,ol=nl.hasOwnProperty;function ll(e){var n=this.__data__;if(de){var t=n[e];return t===tl?void 0:t}return ol.call(n,e)?n[e]:void 0}var al=Object.prototype,sl=al.hasOwnProperty;function rl(e){var n=this.__data__;return de?n[e]!==void 0:sl.call(n,e)}var il="__lodash_hash_undefined__";function ul(e,n){var t=this.__data__;return this.size+=this.has(e)?0:1,t[e]=de&&n===void 0?il:n,this}function Q(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var o=e[n];this.set(o[0],o[1])}}Q.prototype.clear=Qo;Q.prototype.delete=el;Q.prototype.get=ll;Q.prototype.has=rl;Q.prototype.set=ul;function cl(){this.__data__=[],this.size=0}function Ce(e,n){for(var t=e.length;t--;)if(Zo(e[t][0],n))return t;return-1}var dl=Array.prototype,pl=dl.splice;function fl(e){var n=this.__data__,t=Ce(n,e);if(t<0)return false;var o=n.length-1;return t==o?n.pop():pl.call(n,t,1),--this.size,true}function ml(e){var n=this.__data__,t=Ce(n,e);return t<0?void 0:n[t][1]}function vl(e){return Ce(this.__data__,e)>-1}function gl(e,n){var t=this.__data__,o=Ce(t,e);return o<0?(++this.size,t.push([e,n])):t[o][1]=n,this}function le(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var o=e[n];this.set(o[0],o[1])}}le.prototype.clear=cl;le.prototype.delete=fl;le.prototype.get=ml;le.prototype.has=vl;le.prototype.set=gl;var _l=ft(Ie,"Map");function yl(){this.size=0,this.__data__={hash:new Q,map:new(_l||le),string:new Q}}function hl(e){var n=typeof e;return n=="string"||n=="number"||n=="symbol"||n=="boolean"?e!=="__proto__":e===null}function we(e,n){var t=e.__data__;return hl(n)?t[typeof n=="string"?"string":"hash"]:t.map}function bl(e){var n=we(this,e).delete(e);return this.size-=n?1:0,n}function Cl(e){return we(this,e).get(e)}function wl(e){return we(this,e).has(e)}function xl(e,n){var t=we(this,e),o=t.size;return t.set(e,n),this.size+=t.size==o?0:1,this}function ee(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var o=e[n];this.set(o[0],o[1])}}ee.prototype.clear=yl;ee.prototype.delete=bl;ee.prototype.get=Cl;ee.prototype.has=wl;ee.prototype.set=xl;var Sl="Expected a function";function Pe(e,n){if(typeof e!="function"||n!=null&&typeof n!="function")throw new TypeError(Sl);var t=function(){var o=arguments,s=n?n.apply(this,o):o[0],d=t.cache;if(d.has(s))return d.get(s);var i=e.apply(this,o);return t.cache=d.set(s,i)||d,i};return t.cache=new(Pe.Cache||ee),t}Pe.Cache=ee;var Tl=500;function $l(e){var n=Pe(e,function(o){return t.size===Tl&&t.clear(),o}),t=n.cache;return n}var kl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ol=/\\(\\)?/g,El=$l(function(e){var n=[];return e.charCodeAt(0)===46&&n.push(""),e.replace(kl,function(t,o,s,d){n.push(s?d.replace(Ol,"$1"):o||t)}),n});function zl(e){return e==null?"":dt(e)}function Nl(e,n){return Be(e)?e:Xo(e,n)?[e]:El(zl(e))}function Vl(e){if(typeof e=="string"||Me(e))return e;var n=e+"";return n=="0"&&1/e==-1/0?"-0":n}function Il(e,n){n=Nl(n,e);for(var t=0,o=n.length;e!=null&&t<o;)e=e[Vl(n[t++])];return t&&t==o?e:void 0}function Ml(e,n,t){var o=e==null?void 0:Il(e,n);return o===void 0?t:o}function Bl(e){for(var n=-1,t=e==null?0:e.length,o={};++n<t;){var s=e[n];o[s[0]]=s[1]}return o}const Pl=e=>e===void 0,pe=e=>typeof e=="number",Ll=e=>typeof Element>"u"?false:e instanceof Element,Dl=e=>ye(e)?!Number.isNaN(Number(e)):false,We=e=>Object.keys(e);function Ee(e,n="px"){if(!e)return"";if(pe(e)||Dl(e))return`${e}${n}`;if(ye(e))return e}const mt="__epPropKey",F=e=>e,Rl=e=>it(e)&&!!e[mt],vt=(e,n)=>{if(!it(e)||Rl(e))return e;const{values:t,required:o,default:s,type:d,validator:i}=e,f={type:d,required:!!o,validator:t||i?b=>{let _=false,h=[];if(t&&(h=Array.from(t),Ue(e,"default")&&h.push(s),_||(_=h.includes(b))),i&&(_||(_=i(b))),!_&&h.length>0){const S=[...new Set(h)].map(T=>JSON.stringify(T)).join(", ");It(`Invalid prop: validation failed${n?` for prop "${n}"`:""}. Expected one of [${S}], got value ${JSON.stringify(b)}.`)}return _}:void 0,[mt]:true};return Ue(e,"default")&&(f.default=s),f},me=e=>Bl(Object.entries(e).map(([n,t])=>[n,vt(t,n)])),jl=F([String,Object,Function]),Fl={Close:Yt},Ze={success:an,warning:cn,error:Zt,info:Qt},gt=(e,n)=>(e.install=t=>{for(const o of[e,...Object.values({})])t.component(o.name,o)},e),Al=(e,n)=>(e.install=t=>{e._context=t._context,t.config.globalProperties[n]=e},e),Ul={esc:"Escape"},Kl=["","default","small","large"],Gl=e=>e,Je=({from:e,replacement:n,scope:t,version:o,ref:s,type:d="API"},i)=>{ue(()=>m(i),l=>{},{immediate:true})};var Hl={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const ql=e=>(n,t)=>Wl(n,t,m(e)),Wl=(e,n,t)=>Ml(t,e,e).replace(/\{(\w+)\}/g,(o,s)=>{var d;return`${(d=n==null?void 0:n[s])!=null?d:`{${s}}`}`}),Zl=e=>{const n=w(()=>m(e).name),t=Mt(e)?e:O(e);return{lang:n,locale:t,t:ql(e)}},_t=Symbol("localeContextKey"),Jl=e=>{const n=e||te(_t,O());return Zl(w(()=>n.value||Hl))},ve="el",Yl="is-",X=(e,n,t,o,s)=>{let d=`${e}-${n}`;return t&&(d+=`-${t}`),o&&(d+=`__${o}`),s&&(d+=`--${s}`),d},yt=Symbol("namespaceContextKey"),Xl=e=>{const n=e||(ce()?te(yt,O(ve)):O(ve));return w(()=>m(n)||ve)},Le=(e,n)=>{const t=Xl(n);return{namespace:t,b:(p="")=>X(t.value,e,p,"",""),e:p=>p?X(t.value,e,"",p,""):"",m:p=>p?X(t.value,e,"","",p):"",be:(p,x)=>p&&x?X(t.value,e,p,x,""):"",em:(p,x)=>p&&x?X(t.value,e,"",p,x):"",bm:(p,x)=>p&&x?X(t.value,e,p,"",x):"",bem:(p,x,z)=>p&&x&&z?X(t.value,e,p,x,z):"",is:(p,...x)=>{const z=x.length>=1?x[0]:true;return p&&z?`${Yl}${p}`:""},cssVar:p=>{const x={};for(const z in p)p[z]&&(x[`--${t.value}-${z}`]=p[z]);return x},cssVarName:p=>`--${t.value}-${p}`,cssVarBlock:p=>{const x={};for(const z in p)p[z]&&(x[`--${t.value}-${e}-${z}`]=p[z]);return x},cssVarBlockName:p=>`--${t.value}-${e}-${p}`}},Ye={current:0},Xe=O(0),ht=2e3,Qe=Symbol("elZIndexContextKey"),bt=Symbol("zIndexContextKey"),Ql=e=>{const n=ce()?te(Qe,Ye):Ye,t=e||(ce()?te(bt,void 0):void 0),o=w(()=>{const i=m(t);return pe(i)?i:ht}),s=w(()=>o.value+Xe.value),d=()=>(n.current++,Xe.value=n.current,s.value);return!Ve&&te(Qe),{initialZIndex:o,currentZIndex:s,nextZIndex:d}},ea=vt({type:String,values:Kl,required:false}),ta=Symbol("size"),na=Symbol("emptyValuesContextKey"),oa=me({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>_e(e)?!e():!e}}),Ct=Symbol(),he=O();function wt(e,n=void 0){return ce()?te(Ct,he):he}function la(e,n){const t=wt(),o=Le(e,w(()=>{var l;return((l=t.value)==null?void 0:l.namespace)||ve})),s=Jl(w(()=>{var l;return(l=t.value)==null?void 0:l.locale})),d=Ql(w(()=>{var l;return((l=t.value)==null?void 0:l.zIndex)||ht})),i=w(()=>{var l;return m(n)||((l=t.value)==null?void 0:l.size)||""});return xt(w(()=>m(t)||{})),{ns:o,locale:s,zIndex:d,size:i}}const xt=(e,n,t=false)=>{var o;const s=!!ce(),d=s?wt():void 0,i=(o=void 0)!=null?o:s?Bt:void 0;if(!i)return;const l=w(()=>{const f=m(e);return d!=null&&d.value?aa(d.value,f):f});return i(Ct,l),i(_t,w(()=>l.value.locale)),i(yt,w(()=>l.value.namespace)),i(bt,w(()=>l.value.zIndex)),i(ta,{size:w(()=>l.value.size||"")}),i(na,w(()=>({emptyValues:l.value.emptyValues,valueOnClear:l.value.valueOnClear}))),(t||!he.value)&&(he.value=l.value),l},aa=(e,n)=>{const t=[...new Set([...We(e),...We(n)])],o={};for(const s of t)o[s]=n[s]!==void 0?n[s]:e[s];return o},sa=me({a11y:{type:Boolean,default:true},locale:{type:F(Object)},size:ea,button:{type:F(Object)},experimentalFeatures:{type:F(Object)},keyboardNavigation:{type:Boolean,default:true},message:{type:F(Object)},zIndex:Number,namespace:{type:String,default:"el"},...oa}),ze={};I({name:"ElConfigProvider",props:sa,setup(e,{slots:n}){ue(()=>e.message,o=>{Object.assign(ze,o??{})},{immediate:true,deep:true});const t=xt(e);return()=>be(n,"default",{config:t==null?void 0:t.value})}});var De=(e,n)=>{const t=e.__vccOpts||e;for(const[o,s]of n)t[o]=s;return t};const ra=me({size:{type:F([Number,String])},color:{type:String}}),ia=I({name:"ElIcon",inheritAttrs:false}),ua=I({...ia,props:ra,setup(e){const n=e,t=Le("icon"),o=w(()=>{const{size:s,color:d}=n;return!s&&!d?{}:{fontSize:Pl(s)?void 0:Ee(s),"--color":d}});return(s,d)=>(g(),$("i",Pt({class:m(t).b(),style:m(o)},s.$attrs),[be(s.$slots,"default")],16))}});var ca=De(ua,[["__file","icon.vue"]]);const et=gt(ca),da=me({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:true},color:String,dotStyle:{type:F([String,Object,Array])},badgeStyle:{type:F([String,Object,Array])},offset:{type:F(Array),default:[0,0]},dotClass:{type:String},badgeClass:{type:String}}),pa=["textContent"],fa=I({name:"ElBadge"}),ma=I({...fa,props:da,setup(e,{expose:n}){const t=e,o=Le("badge"),s=w(()=>t.isDot?"":pe(t.value)&&pe(t.max)?t.max<t.value?`${t.max}+`:t.value===0&&!t.showZero?"":`${t.value}`:`${t.value}`),d=w(()=>{var i,l,f,b,_,h;return[{backgroundColor:t.color,marginRight:Ee(-((l=(i=t.offset)==null?void 0:i[0])!=null?l:0)),marginTop:Ee((b=(f=t.offset)==null?void 0:f[1])!=null?b:0)},(_=t.dotStyle)!=null?_:{},(h=t.badgeStyle)!=null?h:{}]});return Je({from:"dot-style",replacement:"badge-style",version:"2.8.0",scope:"el-badge",ref:"https://element-plus.org/en-US/component/badge.html"},w(()=>!!t.dotStyle)),Je({from:"dot-class",replacement:"badge-class",version:"2.8.0",scope:"el-badge",ref:"https://element-plus.org/en-US/component/badge.html"},w(()=>!!t.dotClass)),n({content:s}),(i,l)=>(g(),$("div",{class:D(m(o).b())},[be(i.$slots,"default"),r(nt,{name:`${m(o).namespace.value}-zoom-in-center`,persisted:""},{default:c(()=>[Ne(a("sup",{class:D([m(o).e("content"),m(o).em("content",i.type),m(o).is("fixed",!!i.$slots.default),m(o).is("dot",i.isDot),i.dotClass,i.badgeClass]),style:ot(m(d)),textContent:B(m(s))},null,14,pa),[[lt,!i.hidden&&(m(s)||i.isDot)]])]),_:1},8,["name"])],2))}});var va=De(ma,[["__file","badge.vue"]]);const ga=gt(va),St=["success","info","warning","error"],P=Gl({customClass:"",center:false,dangerouslyUseHTMLString:false,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:false,type:"info",plain:false,offset:16,zIndex:0,grouping:false,repeatNum:1,appendTo:Ve?document.body:void 0}),_a=me({customClass:{type:String,default:P.customClass},center:{type:Boolean,default:P.center},dangerouslyUseHTMLString:{type:Boolean,default:P.dangerouslyUseHTMLString},duration:{type:Number,default:P.duration},icon:{type:jl,default:P.icon},id:{type:String,default:P.id},message:{type:F([String,Object,Function]),default:P.message},onClose:{type:F(Function),default:P.onClose},showClose:{type:Boolean,default:P.showClose},type:{type:String,values:St,default:P.type},plain:{type:Boolean,default:P.plain},offset:{type:Number,default:P.offset},zIndex:{type:Number,default:P.zIndex},grouping:{type:Boolean,default:P.grouping},repeatNum:{type:Number,default:P.repeatNum}}),ya={destroy:()=>true},A=Lt([]),ha=e=>{const n=A.findIndex(s=>s.id===e),t=A[n];let o;return n>0&&(o=A[n-1]),{current:t,prev:o}},ba=e=>{const{prev:n}=ha(e);return n?n.vm.exposed.bottom.value:0},Ca=(e,n)=>A.findIndex(o=>o.id===e)>0?16:n,wa=["id"],xa=["innerHTML"],Sa=I({name:"ElMessage"}),Ta=I({...Sa,props:_a,emits:ya,setup(e,{expose:n}){const t=e,{Close:o}=Fl,{ns:s,zIndex:d}=la("message"),{currentZIndex:i,nextZIndex:l}=d,f=O(),b=O(false),_=O(0);let h;const S=w(()=>t.type?t.type==="error"?"danger":t.type:"info"),T=w(()=>{const E=t.type;return{[s.bm("icon",E)]:E&&Ze[E]}}),k=w(()=>t.icon||Ze[t.type]||""),p=w(()=>ba(t.id)),x=w(()=>Ca(t.id,t.offset)+p.value),z=w(()=>_.value+x.value),j=w(()=>({top:`${x.value}px`,zIndex:i.value}));function U(){t.duration!==0&&({stop:h}=Gt(()=>{M()},t.duration))}function V(){h==null||h()}function M(){b.value=false}function q({code:E}){E===Ul.esc&&M()}return tt(()=>{U(),l(),b.value=true}),ue(()=>t.repeatNum,()=>{V(),U()}),Ut(document,"keydown",q),Kt(f,()=>{_.value=f.value.getBoundingClientRect().height}),n({visible:b,bottom:z,close:M}),(E,ae)=>(g(),R(nt,{name:m(s).b("fade"),onBeforeLeave:E.onClose,onAfterLeave:ae[0]||(ae[0]=y=>E.$emit("destroy")),persisted:""},{default:c(()=>[Ne(a("div",{id:E.id,ref_key:"messageRef",ref:f,class:D([m(s).b(),{[m(s).m(E.type)]:E.type},m(s).is("center",E.center),m(s).is("closable",E.showClose),m(s).is("plain",E.plain),E.customClass]),style:ot(m(j)),role:"alert",onMouseenter:V,onMouseleave:U},[E.repeatNum>1?(g(),R(m(ga),{key:0,value:E.repeatNum,type:m(S),class:D(m(s).e("badge"))},null,8,["value","type","class"])):L("v-if",true),m(k)?(g(),R(m(et),{key:1,class:D([m(s).e("icon"),m(T)])},{default:c(()=>[(g(),R(Dt(m(k))))]),_:1},8,["class"])):L("v-if",true),be(E.$slots,"default",{},()=>[E.dangerouslyUseHTMLString?(g(),$(ie,{key:1},[L(" Caution here, message could've been compromised, never use user's input as message "),a("p",{class:D(m(s).e("content")),innerHTML:E.message},null,10,xa)],2112)):(g(),$("p",{key:0,class:D(m(s).e("content"))},B(E.message),3))]),E.showClose?(g(),R(m(et),{key:2,class:D(m(s).e("closeBtn")),onClick:Rt(M,["stop"])},{default:c(()=>[r(m(o))]),_:1},8,["class","onClick"])):L("v-if",true)],46,wa),[[lt,b.value]])]),_:3},8,["name","onBeforeLeave"]))}});var $a=De(Ta,[["__file","message.vue"]]);let ka=1;const Tt=e=>{const n=!e||ye(e)||at(e)||_e(e)?{message:e}:e,t={...P,...n};if(!t.appendTo)t.appendTo=document.body;else if(ye(t.appendTo)){let o=document.querySelector(t.appendTo);Ll(o)||(o=document.body),t.appendTo=o}return t},Oa=e=>{const n=A.indexOf(e);if(n===-1)return;A.splice(n,1);const{handler:t}=e;t.close()},Ea=({appendTo:e,...n},t)=>{const o=`message_${ka++}`,s=n.onClose,d=document.createElement("div"),i={...n,id:o,onClose:()=>{s==null||s(),Oa(_)},onDestroy:()=>{Ae(null,d)}},l=r($a,i,_e(i.message)||at(i.message)?{default:_e(i.message)?i.message:()=>i.message}:null);l.appContext=t||oe._context,Ae(l,d),e.appendChild(d.firstElementChild);const f=l.component,_={id:o,vnode:l,vm:f,handler:{close:()=>{f.exposed.visible.value=false}},props:l.component.props};return _},oe=(e={},n)=>{if(!Ve)return{close:()=>{}};if(pe(ze.max)&&A.length>=ze.max)return{close:()=>{}};const t=Tt(e);if(t.grouping&&A.length){const s=A.find(({vnode:d})=>{var i;return((i=d.props)==null?void 0:i.message)===t.message});if(s)return s.props.repeatNum+=1,s.props.type=t.type,s.handler}const o=Ea(t,n);return A.push(o),o.handler};St.forEach(e=>{oe[e]=(n={},t)=>{const o=Tt(n);return oe({...o,type:e},t)}});function za(e){for(const n of A)(!e||e===n.props.type)&&n.handler.close()}oe.closeAll=za;oe._context=null;const K=Al(oe,"$message"),Na={class:"todo-app"},Va={class:"todo-container"},Ia={class:"todo-header"},Ma={class:"button-group"},Ba={class:"todo-stats"},Pa={class:"search-filter-section"},La={class:"filter-buttons"},Da={class:"todo-table-card"},Ra={key:1,class:"pagination-section"},ja=I({__name:"todolist",setup(e){const n=O([]),t=O(false),o=O(false),s=O(false),d=O(false),i=O(false),l=O(""),f=O("all"),b=O(1),_=O(8),h=O({title:"",content:"",createdBy:""}),S=O({id:0,title:"",content:"",createdBy:"",completed:false}),T=w(()=>n.value.filter(y=>y.completed).length),k=w(()=>n.value.filter(y=>!y.completed).length),p=w(()=>{let y=n.value;if(f.value==="active"?y=y.filter(u=>!u.completed):f.value==="completed"&&(y=y.filter(u=>u.completed)),l.value.trim()){const u=l.value.toLowerCase().trim();y=y.filter(W=>W.title.toLowerCase().includes(u)||W.content.toLowerCase().includes(u))}return b.value=1,y}),x=w(()=>{const y=(b.value-1)*_.value,u=y+_.value;return p.value.slice(y,u)});function z(y){_.value=y,b.value=1}function j(y){b.value=y}function U(y){return new Date(y).toLocaleString("zh-CN")}function V(){s.value=true,se("onitodos/list").then(y=>{n.value=y,s.value=false,K.success("刷新成功")}).catch(y=>{s.value=false,K.error("刷新失败"),console.error(y)})}se("onitodos/list").then(y=>{n.value=y});async function M(){if(!h.value.title.trim()){K.warning("请输入标题");return}o.value=true;try{await se("onitodos/add",{title:h.value.title,content:h.value.content,createdBy:h.value.createdBy}),K.success("添加成功"),d.value=false,h.value={title:"",content:"",createdBy:""},V()}catch(y){K.error("添加失败"),console.error(y)}finally{o.value=false}}function q(y){S.value={id:y.id,title:y.title,content:y.content,createdBy:y.createdBy,completed:y.completed},i.value=true}async function E(){if(!S.value.title.trim()){K.warning("请输入标题");return}o.value=true;try{await se("onitodos/update",{id:S.value.id,title:S.value.title,content:S.value.content,createdBy:S.value.createdBy,completed:S.value.completed}),K.success("更新成功"),i.value=false,V()}catch(y){K.error("更新失败"),console.error(y)}finally{o.value=false}}async function ae(y,u){try{await se("onitodos/update",{id:y.id,completed:u}),K.success(u?"标记完成成功":"取消完成成功"),V()}catch(W){K.error("操作失败"),console.error(W)}}return(y,u)=>{const W=C("el-icon"),G=C("el-button"),xe=C("el-statistic"),Z=C("el-input"),J=C("el-table-column"),$t=C("el-tag"),kt=C("el-table"),Ot=C("el-empty"),Et=C("el-pagination"),Y=C("el-form-item"),Re=C("el-form"),je=C("el-dialog"),zt=C("el-checkbox"),Nt=jt("loading");return g(),$("div",Na,[u[29]||(u[29]=a("div",{class:"bg-pattern"},null,-1)),a("div",Va,[a("div",Ia,[u[20]||(u[20]=a("h2",{class:"todo-title"},[a("span",{class:"title-dot"},"♦"),a("span",{class:"title-text"},"ONITODO"),a("span",{class:"title-dot"},"♦")],-1)),a("div",Ma,[r(G,{type:"default",class:"cute-btn",onClick:V,loading:s.value},{default:c(()=>[r(W,null,{default:c(()=>[r(m(on))]),_:1}),u[18]||(u[18]=N(" 刷新 ",-1))]),_:1},8,["loading"]),r(G,{type:"primary",class:"cute-btn primary",onClick:u[0]||(u[0]=v=>d.value=true)},{default:c(()=>[r(W,null,{default:c(()=>[r(m(tn))]),_:1}),u[19]||(u[19]=N(" 新增待办 ",-1))]),_:1})])]),a("div",Ba,[r(xe,{title:"总计",value:n.value.length},null,8,["value"]),r(xe,{title:"已完成",value:T.value},null,8,["value"]),r(xe,{title:"未完成",value:k.value},null,8,["value"])]),a("div",Pa,[r(Z,{modelValue:l.value,"onUpdate:modelValue":u[1]||(u[1]=v=>l.value=v),placeholder:"🔍 搜索标题或内容...",class:"search-input cute-input",clearable:""},null,8,["modelValue"]),a("div",La,[a("button",{class:D(["filter-btn",{active:f.value==="all"}]),onClick:u[2]||(u[2]=v=>f.value="all")}," 全部 ",2),a("button",{class:D(["filter-btn",{active:f.value==="active"}]),onClick:u[3]||(u[3]=v=>f.value="active")}," 未完成 ",2),a("button",{class:D(["filter-btn",{active:f.value==="completed"}]),onClick:u[4]||(u[4]=v=>f.value="completed")}," 已完成 ",2)])]),a("div",Da,[Ne((g(),R(kt,{data:x.value,stripe:"",style:{width:"100%"},class:"cute-table"},{default:c(()=>[r(J,{type:"index",label:"id",width:"80"}),r(J,{prop:"title",label:"标题","min-width":"150","show-overflow-tooltip":""},{default:c(({row:v})=>[a("span",{class:D({"completed-text":v.completed})},B(v.title),3)]),_:1}),r(J,{prop:"content",label:"内容","min-width":"150","show-overflow-tooltip":""}),r(J,{prop:"createdBy",label:"创建人",width:"80","show-overflow-tooltip":""}),r(J,{prop:"completed",label:"状态",width:"80"},{default:c(({row:v})=>[r($t,{type:v.completed?"success":"warning",size:"small",class:"cute-tag"},{default:c(()=>[N(B(v.completed?"已完成":"未完成"),1)]),_:2},1032,["type"])]),_:1}),r(J,{prop:"createdAt",label:"创建时间",width:"180"},{default:c(({row:v})=>[N(B(U(v.createdAt)),1)]),_:1}),r(J,{label:"操作",width:"150",fixed:"right"},{default:c(({row:v})=>[v.completed?(g(),R(G,{key:1,size:"small",type:"warning",class:"cute-btn",onClick:Fe=>ae(v,false)},{default:c(()=>[...u[22]||(u[22]=[N(" 取消 ",-1)])]),_:1},8,["onClick"])):(g(),R(G,{key:0,size:"small",type:"success",class:"cute-btn",onClick:Fe=>ae(v,true)},{default:c(()=>[...u[21]||(u[21]=[N(" 完成 ",-1)])]),_:1},8,["onClick"])),r(G,{size:"small",type:"primary",class:"cute-btn",onClick:Fe=>q(v)},{default:c(()=>[...u[23]||(u[23]=[N(" 编辑 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[Nt,t.value]]),p.value.length===0&&!t.value?(g(),R(Ot,{key:0,description:"暂无待办事项"})):L("v-if",true),p.value.length>8?(g(),$("div",Ra,[r(Et,{"current-page":b.value,"onUpdate:currentPage":u[5]||(u[5]=v=>b.value=v),"page-size":_.value,"onUpdate:pageSize":u[6]||(u[6]=v=>_.value=v),"page-sizes":[8,16,32,64],total:p.value.length,layout:"total, sizes, prev, pager, next, jumper",background:"",onSizeChange:z,onCurrentChange:j},null,8,["current-page","page-size","total"])])):L("v-if",true)])]),r(je,{modelValue:d.value,"onUpdate:modelValue":u[11]||(u[11]=v=>d.value=v),title:"新增待办事项",width:"500px",class:"cute-dialog"},{footer:c(()=>[r(G,{onClick:u[10]||(u[10]=v=>d.value=false),class:"cute-btn"},{default:c(()=>[...u[24]||(u[24]=[N("取消",-1)])]),_:1}),r(G,{type:"primary",onClick:M,loading:o.value,class:"cute-btn primary"},{default:c(()=>[...u[25]||(u[25]=[N(" 保存 ",-1)])]),_:1},8,["loading"])]),default:c(()=>[r(Re,{model:h.value,"label-width":"80px"},{default:c(()=>[r(Y,{label:"标题"},{default:c(()=>[r(Z,{modelValue:h.value.title,"onUpdate:modelValue":u[7]||(u[7]=v=>h.value.title=v),placeholder:"请输入标题",class:"cute-input"},null,8,["modelValue"])]),_:1}),r(Y,{label:"内容"},{default:c(()=>[r(Z,{modelValue:h.value.content,"onUpdate:modelValue":u[8]||(u[8]=v=>h.value.content=v),type:"textarea",rows:4,placeholder:"请输入具体内容",class:"cute-input"},null,8,["modelValue"])]),_:1}),r(Y,{label:"创建人"},{default:c(()=>[r(Z,{modelValue:h.value.createdBy,"onUpdate:modelValue":u[9]||(u[9]=v=>h.value.createdBy=v),placeholder:"默认为:默认创建人",class:"cute-input"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),r(je,{modelValue:i.value,"onUpdate:modelValue":u[17]||(u[17]=v=>i.value=v),title:"编辑待办事项",width:"500px",class:"cute-dialog"},{footer:c(()=>[r(G,{onClick:u[16]||(u[16]=v=>i.value=false),class:"cute-btn"},{default:c(()=>[...u[27]||(u[27]=[N("取消",-1)])]),_:1}),r(G,{type:"primary",onClick:E,loading:o.value,class:"cute-btn primary"},{default:c(()=>[...u[28]||(u[28]=[N(" 保存 ",-1)])]),_:1},8,["loading"])]),default:c(()=>[r(Re,{model:S.value,"label-width":"80px"},{default:c(()=>[r(Y,{label:"标题"},{default:c(()=>[r(Z,{modelValue:S.value.title,"onUpdate:modelValue":u[12]||(u[12]=v=>S.value.title=v),placeholder:"请输入标题",class:"cute-input"},null,8,["modelValue"])]),_:1}),r(Y,{label:"内容"},{default:c(()=>[r(Z,{modelValue:S.value.content,"onUpdate:modelValue":u[13]||(u[13]=v=>S.value.content=v),type:"textarea",rows:4,placeholder:"请输入具体内容",class:"cute-input"},null,8,["modelValue"])]),_:1}),r(Y,{label:"创建人"},{default:c(()=>[r(Z,{modelValue:S.value.createdBy,"onUpdate:modelValue":u[14]||(u[14]=v=>S.value.createdBy=v),placeholder:"请输入创建人",class:"cute-input"},null,8,["modelValue"])]),_:1}),r(Y,{label:"状态"},{default:c(()=>[r(zt,{modelValue:S.value.completed,"onUpdate:modelValue":u[15]||(u[15]=v=>S.value.completed=v),class:"cute-checkbox"},{default:c(()=>[...u[26]||(u[26]=[N(" 已完成 ",-1)])]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),Fa=fe(ja,[["__scopeId","data-v-1d6d47ce"]]),Ga=e=>{e.page({name:"同步机器人",path:"/onilogs",component:_n,fields:["onilogs"]}),e.page({name:"火箭计算器",path:"/calculator",component:fo}),e.page({name:"缺氧 TodoList",path:"/onitodos",component:go}),e.slot({type:"calculator",component:uo}),e.slot({type:"onitodos",component:Fa})};export{Ga as default};
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.filter-container[data-v-62639236]{background:#fff;padding:16px;margin-bottom:12px;border-radius:4px;box-shadow:0 2px 4px #0000001a}.log-tabs[data-v-62639236]{margin-bottom:16px}.filter-row[data-v-62639236]{display:flex;gap:12px;align-items:center}.filter-input[data-v-62639236]{flex:1}.button-group[data-v-62639236]{display:flex;gap:8px}.log-container[data-v-62639236]{width:100%;height:calc(100vh - 220px);overflow-y:auto;padding:12px;font-family:monospace;background:#1e1e1e;color:#d4d4d4;border-radius:4px}.log-line[data-v-62639236]{line-height:1.5;font-size:13px}pre[data-v-62639236]{margin:0;font-family:inherit;white-space:pre-wrap;word-break:break-all}.log-error[data-v-62639236]{color:#f44747}.log-warn[data-v-62639236]{color:#dcdcaa}.log-info[data-v-62639236]{color:#4fc1ff}.empty-state[data-v-62639236]{display:flex;justify-content:center;align-items:center;height:100%;color:gray;font-size:14px}[data-v-3e8f9409]{box-sizing:border-box}.rocket-calculator[data-v-3e8f9409]{max-width:800px;margin:0 auto;padding:20px;box-sizing:border-box;position:relative;min-height:100vh;overflow-x:hidden}.sci-fi-bg[data-v-3e8f9409]{background:linear-gradient(135deg,#0a0e27,#1a1f3a,#0f172a);color:#e0e7ff}.grid-overlay[data-v-3e8f9409]{position:fixed;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(rgba(0,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,255,255,.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:0}.sci-fi-card[data-v-3e8f9409]{background:#0f172af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,255,255,.2);box-shadow:0 0 20px #00ffff1a,inset 0 0 20px #00000080;position:relative;overflow:visible;z-index:1}.sci-fi-card[data-v-3e8f9409] .k-card__body{padding:24px}.card-header-line[data-v-3e8f9409]{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#00ffff,#8b5cf6,transparent);animation:lineGlow-3e8f9409 3s ease-in-out infinite;z-index:1}@keyframes lineGlow-3e8f9409{0%,to{opacity:.5}50%{opacity:1}}.header-card[data-v-3e8f9409]{margin-bottom:24px;text-align:center;position:relative;z-index:10;margin-top:8px}.header-glow[data-v-3e8f9409]{position:absolute;top:-50%;left:50%;transform:translate(-50%);width:200%;height:100%;background:radial-gradient(ellipse,rgba(139,92,246,.15) 0%,transparent 70%);pointer-events:none;z-index:-1}.sci-fi-title[data-v-3e8f9409]{margin:0 0 8px;font-size:28px;font-weight:800;letter-spacing:4px;color:#0ff;background:linear-gradient(90deg,#0ff,#8b5cf6,#0ff);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:titleShine-3e8f9409 4s linear infinite;position:relative;z-index:2;text-shadow:0 0 30px rgba(0,255,255,.3);line-height:1.4}@keyframes titleShine-3e8f9409{0%{background-position:0% center}to{background-position:200% center}}.sci-fi-subtitle[data-v-3e8f9409]{margin:0;color:#64748b;font-size:13px;letter-spacing:2px;text-transform:uppercase;position:relative;z-index:2;line-height:1.5}.content-layout[data-v-3e8f9409]{display:flex;flex-direction:column;gap:24px;position:relative;z-index:1}.config-section[data-v-3e8f9409]{margin-bottom:20px;position:relative;z-index:1}.section-title[data-v-3e8f9409]{margin:0 0 20px;font-size:14px;color:#0ff;letter-spacing:2px;font-weight:600}.distance-control[data-v-3e8f9409]{width:100%}.distance-step-selector[data-v-3e8f9409]{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:16px}.step-btn[data-v-3e8f9409]{margin:0;background:#0000004d;border:1px solid rgba(0,255,255,.2);color:#94a3b8;padding:8px 4px;font-size:12px;font-weight:600;transition:all .2s ease;white-space:nowrap}.step-btn[data-v-3e8f9409]:hover{border-color:#00ffff80;color:#0ff;transform:translateY(-1px)}.step-btn.active[data-v-3e8f9409]{background:#00ffff26;border-color:#0ff;color:#0ff;box-shadow:0 0 15px #00ffff4d}.distance-input-wrapper[data-v-3e8f9409]{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:#0000004d;border:1px solid rgba(139,92,246,.3);border-radius:4px}.distance-label[data-v-3e8f9409]{color:#64748b;font-size:13px}.distance-value[data-v-3e8f9409]{font-size:20px;font-weight:800;color:#8b5cf6}.unit[data-v-3e8f9409]{color:#8b5cf6;font-weight:600;font-size:14px}.modules-grid[data-v-3e8f9409]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.module-item[data-v-3e8f9409]{background:#00ffff0d;border:1px solid rgba(0,255,255,.1);padding:12px;border-radius:4px;transition:all .3s ease;display:flex;flex-direction:column;gap:8px}.module-item[data-v-3e8f9409]:hover{border-color:#00ffff4d;background:#00ffff14}.module-name[data-v-3e8f9409]{font-size:13px;color:#94a3b8}.module-input[data-v-3e8f9409]{width:100%}.module-input[data-v-3e8f9409] .el-input__wrapper{background:#0000004d;border:1px solid rgba(0,255,255,.2);box-shadow:none;padding:4px 6px}.module-input[data-v-3e8f9409] .el-input__inner{text-align:center;color:#0ff;font-weight:700;font-size:16px}.module-input[data-v-3e8f9409] .el-input-number__decrease,.module-input[data-v-3e8f9409] .el-input-number__increase{background:#0ff3;color:#0ff;border-color:#00ffff4d;font-weight:800;font-size:16px;transition:all .2s ease}.module-input[data-v-3e8f9409] .el-input-number__decrease:hover,.module-input[data-v-3e8f9409] .el-input-number__increase:hover{background:#0ff6;color:#fff}.module-input[data-v-3e8f9409] .el-input-number__decrease.is-disabled,.module-input[data-v-3e8f9409] .el-input-number__increase.is-disabled{background:#0003;color:#475569;border-color:#ffffff1a}.calculate-btn-wrapper[data-v-3e8f9409]{margin-top:24px;margin-bottom:0}.sci-fi-calculate-btn[data-v-3e8f9409]{width:100%;height:50px;background:linear-gradient(135deg,#0ff,#8b5cf6);border:none;color:#0a0e27;font-weight:800;font-size:16px;letter-spacing:2px;position:relative;overflow:hidden;transition:all .3s ease}.sci-fi-calculate-btn[data-v-3e8f9409]:hover{transform:translateY(-2px);box-shadow:0 10px 30px #00ffff4d}.btn-text[data-v-3e8f9409]{position:relative;z-index:1}.btn-glow[data-v-3e8f9409]{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:btnScan-3e8f9409 2s ease-in-out infinite}@keyframes btnScan-3e8f9409{0%{left:-100%}to{left:100%}}.sci-fi-radio-group[data-v-3e8f9409]{width:100%;display:flex}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button{flex:1}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button__inner{width:100%;background:#0000004d;border:1px solid rgba(0,255,255,.2);color:#94a3b8;font-weight:600;padding:12px 10px;transition:all .2s ease}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button__inner:hover{color:#0ff;border-color:#0ff6}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button__orig-radio:checked+.el-radio-button__inner{background:#00ffff26;border-color:#0ff;color:#0ff;box-shadow:0 0 15px #0ff3}.oxidizer-hint[data-v-3e8f9409]{display:flex;justify-content:space-around;margin-top:8px}.hint-item[data-v-3e8f9409]{font-size:12px;color:#64748b;transition:all .2s ease}.hint-item.active[data-v-3e8f9409]{color:#0ff;font-weight:600}.divider-line[data-v-3e8f9409]{height:1px;background:linear-gradient(90deg,transparent,rgba(0,255,255,.3),transparent);margin:24px 0}.result-header[data-v-3e8f9409]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:8px}.result-title[data-v-3e8f9409]{margin:0;font-size:18px;color:#0ff;letter-spacing:2px}.result-status[data-v-3e8f9409]{display:flex;align-items:center;gap:8px;font-size:12px;color:#67c23a;letter-spacing:1px}.status-dot[data-v-3e8f9409]{width:8px;height:8px;background:#67c23a;border-radius:50%;animation:statusPulse-3e8f9409 2s ease-in-out infinite}@keyframes statusPulse-3e8f9409{0%,to{box-shadow:0 0 #67c23a66}50%{box-shadow:0 0 0 8px #67c23a00}}.key-stats[data-v-3e8f9409]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.stat-item[data-v-3e8f9409]{background:#0000004d;border:1px solid rgba(255,255,255,.1);padding:16px;text-align:center;position:relative}.stat-item.primary[data-v-3e8f9409]{border-color:#0ff6;box-shadow:0 0 20px #00ffff1a}.stat-item.success[data-v-3e8f9409]{border-color:#67c23a66;box-shadow:0 0 20px #67c23a1a}.stat-item.warning[data-v-3e8f9409]{border-color:#e6a23c66;box-shadow:0 0 20px #e6a23c1a}.stat-label[data-v-3e8f9409]{font-size:12px;color:#64748b;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}.stat-value[data-v-3e8f9409]{font-size:24px;font-weight:800}.stat-item.primary .stat-value[data-v-3e8f9409]{color:#0ff}.stat-item.success .stat-value[data-v-3e8f9409]{color:#67c23a}.stat-item.warning .stat-value[data-v-3e8f9409]{color:#e6a23c}.stat-unit[data-v-3e8f9409]{font-size:14px;opacity:.7}.detail-title[data-v-3e8f9409]{margin:0 0 16px;font-size:14px;color:#8b5cf6;letter-spacing:2px}.detail-grid[data-v-3e8f9409]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.detail-item[data-v-3e8f9409]{display:flex;justify-content:space-between;align-items:center;background:#0003;padding:12px 16px;border-left:3px solid #8b5cf6;gap:8px}.detail-label[data-v-3e8f9409]{font-size:13px;color:#94a3b8}.detail-value[data-v-3e8f9409]{font-size:16px;font-weight:700;color:#e0e7ff;text-align:right}.sci-fi-divider[data-v-3e8f9409]{border-color:#00ffff1a;margin:24px 0}.table-wrapper[data-v-3e8f9409]{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.sci-fi-table[data-v-3e8f9409]{background:#0003;min-width:500px}.sci-fi-table[data-v-3e8f9409] .el-table__header-wrapper{background:#00ffff0d}.sci-fi-table[data-v-3e8f9409] .el-table th{background:transparent;color:#0ff;border-color:#00ffff1a}.sci-fi-table[data-v-3e8f9409] .el-table td{border-color:#ffffff0d}.sci-fi-table[data-v-3e8f9409] .el-table--striped .el-table__body tr.el-table__row--striped{background:#0000001a}.empty-state[data-v-3e8f9409]{text-align:center;padding:60px 20px;position:relative}.scan-line[data-v-3e8f9409]{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(0,255,255,.5),transparent);animation:scanMove-3e8f9409 3s linear infinite}@keyframes scanMove-3e8f9409{0%{top:0;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}.empty-icon[data-v-3e8f9409]{font-size:48px;margin-bottom:16px}.empty-text[data-v-3e8f9409]{font-size:16px;color:#64748b;margin:0 0 8px;letter-spacing:1px}.empty-text.error[data-v-3e8f9409]{color:#f87171}.empty-hint[data-v-3e8f9409]{font-size:13px;color:#475569;margin:0 0 24px;line-height:1.5}.sci-fi-reset-btn[data-v-3e8f9409]{background:#8b5cf633;border:1px solid #8b5cf6;color:#8b5cf6}.sci-fi-reset-btn[data-v-3e8f9409]:hover{background:#8b5cf64d;color:#a78bfa}.sci-fi-form[data-v-3e8f9409] .el-form-item__label{color:#94a3b8;font-weight:600;padding-bottom:6px;line-height:1.4}.sci-fi-select[data-v-3e8f9409] .el-input__wrapper{background:#0000004d;border:1px solid rgba(0,255,255,.2);box-shadow:none}.sci-fi-select[data-v-3e8f9409] .el-input__wrapper:hover{border-color:#0ff6}.sci-fi-select[data-v-3e8f9409] .el-input__wrapper.is-focus{border-color:#0ff;box-shadow:0 0 10px #0ff3}@media screen and (max-width: 600px){.rocket-calculator[data-v-3e8f9409]{padding:12px}.sci-fi-title[data-v-3e8f9409]{font-size:20px;letter-spacing:2px}.sci-fi-card[data-v-3e8f9409] .k-card__body{padding:16px}.key-stats[data-v-3e8f9409],.modules-grid[data-v-3e8f9409],.detail-grid[data-v-3e8f9409]{grid-template-columns:1fr}.distance-step-selector[data-v-3e8f9409]{grid-template-columns:repeat(3,1fr)}}.scrollbar[data-v-7f2607d9]{background:linear-gradient(135deg,#0a0e27,#1a1f3a,#0f172a);color:#e0e7ff}.todo-app[data-v-497a4f32]{min-height:100vh;position:relative;background:linear-gradient(135deg,#e0f4ff,#f0f8ff,#e8f5ff);padding:20px}.bg-pattern[data-v-497a4f32]{position:fixed;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle,#b8d4e8 1px,transparent 1px);background-size:25px 25px;opacity:.5;pointer-events:none;z-index:0}.todo-container[data-v-497a4f32]{position:relative;z-index:1;max-width:1000px;margin:0 auto}.todo-header[data-v-497a4f32]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.todo-title[data-v-497a4f32]{font-family:Comic Sans MS,cursive,sans-serif;font-size:48px;font-weight:700;color:#fff;text-shadow:2px 2px 0 #333,-2px -2px 0 #333,2px -2px 0 #333,-2px 2px 0 #333,0px 2px 0 #333,0px -2px 0 #333,2px 0px 0 #333,-2px 0px 0 #333,3px 3px 0 #ffd700,4px 4px 0 #333;letter-spacing:5px;display:inline-flex;align-items:center;gap:10px;margin:0}.title-dot[data-v-497a4f32]{color:#ff6b9d;font-size:16px;animation:bounce-497a4f32 .6s infinite alternate}@keyframes bounce-497a4f32{0%{transform:translateY(0)}to{transform:translateY(-6px)}}.title-text[data-v-497a4f32]{background:linear-gradient(180deg,#fff,#f0f0f0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.button-group[data-v-497a4f32]{display:flex;gap:10px}.cute-btn[data-v-497a4f32]{background:#fff;border:2px solid #333;color:#333;font-family:Comic Sans MS,cursive,sans-serif;border-radius:8px;box-shadow:3px 3px #333;transition:all .1s}.cute-btn[data-v-497a4f32]:hover{transform:translate(1px,1px);box-shadow:2px 2px #333}.cute-btn[data-v-497a4f32]:active{transform:translate(2px,2px);box-shadow:1px 1px #333}.cute-btn.primary[data-v-497a4f32]{background:linear-gradient(135deg,#ffb6c1,pink)}.todo-stats[data-v-497a4f32]{display:flex;gap:20px;margin-bottom:15px;padding:8px 15px;background:#fff;border:2px solid #333;border-radius:10px;box-shadow:4px 4px #333}.search-filter-section[data-v-497a4f32]{display:flex;gap:15px;margin-bottom:20px;align-items:center;flex-wrap:wrap}.search-input[data-v-497a4f32]{flex:1;min-width:250px}.filter-buttons[data-v-497a4f32]{display:flex;gap:10px}.filter-btn[data-v-497a4f32]{background:#fff;border:2px solid #333;color:#333;font-family:Comic Sans MS,cursive,sans-serif;padding:8px 20px;border-radius:8px;box-shadow:3px 3px #333;cursor:pointer;transition:all .1s}.filter-btn[data-v-497a4f32]:hover{transform:translate(1px,1px);box-shadow:2px 2px #333}.filter-btn[data-v-497a4f32]:active{transform:translate(2px,2px);box-shadow:1px 1px #333}.filter-btn.active[data-v-497a4f32]{background:linear-gradient(135deg,#87ceeb,#98d8c8)}.todo-table-card[data-v-497a4f32]{background:#fff;border:3px solid #333;border-radius:15px;box-shadow:8px 8px #333;overflow:hidden}.cute-table[data-v-497a4f32]{font-family:Comic Sans MS,cursive,sans-serif}.cute-table[data-v-497a4f32] .el-table__header th{background:linear-gradient(135deg,#87ceeb,#98d8c8);color:#333;font-weight:700}.completed-text[data-v-497a4f32]{text-decoration:line-through;color:#909399}.cute-tag[data-v-497a4f32]{font-family:Comic Sans MS,cursive,sans-serif;border:2px solid #333}[data-v-497a4f32] .el-dialog{border:3px solid #333;border-radius:15px;box-shadow:8px 8px #333}[data-v-497a4f32] .el-dialog__header{background:linear-gradient(135deg,#87ceeb,#98d8c8);border-bottom:3px solid #333;margin:0;padding:15px 20px}[data-v-497a4f32] .el-dialog__header .el-dialog__title{font-family:Comic Sans MS,cursive,sans-serif;font-weight:700;color:#333}.cute-input[data-v-497a4f32] .el-input__wrapper{border:2px solid #333;border-radius:8px;box-shadow:none}.cute-checkbox[data-v-497a4f32]{font-family:Comic Sans MS,cursive,sans-serif;color:#333}.cute-checkbox[data-v-497a4f32] .el-checkbox__input .el-checkbox__inner{border:2px solid #333;border-radius:4px;box-shadow:2px 2px #333}.cute-checkbox[data-v-497a4f32] .el-checkbox__input .el-checkbox__inner:hover{transform:translate(1px,1px);box-shadow:1px 1px #333}.cute-checkbox[data-v-497a4f32] .el-checkbox__input.is-checked .el-checkbox__inner{background:linear-gradient(135deg,#87ceeb,#98d8c8);border-color:#333}[data-v-497a4f32] .el-statistic__head{color:inherit;font-family:Comic Sans MS,cursive,sans-serif;font-size:14px}[data-v-497a4f32] .el-statistic__content{color:inherit;font-family:Comic Sans MS,cursive,sans-serif;font-size:20px}.pagination-section[data-v-497a4f32]{padding:20px;display:flex;justify-content:center;border-top:2px solid #333;background:linear-gradient(135deg,#f5f5f5,#fff)}[data-v-497a4f32] .el-pagination{font-family:Comic Sans MS,cursive,sans-serif}[data-v-497a4f32] .el-pagination button,[data-v-497a4f32] .el-pagination li{border:2px solid #333;border-radius:8px;box-shadow:2px 2px #333;transition:all .1s}[data-v-497a4f32] .el-pagination button:hover,[data-v-497a4f32] .el-pagination li:hover{transform:translate(1px,1px);box-shadow:1px 1px #333}[data-v-497a4f32] .el-pagination button.is-active,[data-v-497a4f32] .el-pagination li.is-active{background:linear-gradient(135deg,#87ceeb,#98d8c8);color:#333;font-weight:700}[data-v-497a4f32] .el-pagination .el-pager li{border-radius:8px}[data-v-497a4f32] .el-pagination .el-pagination__sizes .el-select .el-input__wrapper,[data-v-497a4f32] .el-pagination .el-pagination__jump .el-select .el-input__wrapper,[data-v-497a4f32] .el-pagination .el-pagination__sizes .el-input__wrapper,[data-v-497a4f32] .el-pagination .el-pagination__jump .el-input__wrapper{border:2px solid #333;border-radius:8px;box-shadow:2px 2px #333}@media (max-width: 768px){.todo-app[data-v-497a4f32]{padding:10px}.todo-header[data-v-497a4f32]{flex-direction:column;gap:15px;align-items:stretch}.todo-title[data-v-497a4f32]{font-size:32px;letter-spacing:2px;justify-content:center}.title-dot[data-v-497a4f32]{font-size:12px}.button-group[data-v-497a4f32]{justify-content:center;flex-wrap:wrap}.cute-btn[data-v-497a4f32]{font-size:14px;padding:8px 12px}.todo-stats[data-v-497a4f32]{flex-wrap:wrap;justify-content:center;gap:10px}[data-v-497a4f32] .el-statistic{text-align:center}[data-v-497a4f32] .el-statistic__content{font-size:18px}.search-filter-section[data-v-497a4f32]{flex-direction:column;align-items:stretch}.search-input[data-v-497a4f32]{min-width:auto;width:100%}.filter-buttons[data-v-497a4f32]{justify-content:center;flex-wrap:wrap}.filter-btn[data-v-497a4f32]{padding:6px 14px;font-size:14px}.todo-table-card[data-v-497a4f32]{border-radius:10px;box-shadow:4px 4px #333}[data-v-497a4f32] .el-dialog{width:95%!important;margin:5vh auto!important;max-width:400px}[data-v-497a4f32] .el-dialog__header{padding:12px 16px}[data-v-497a4f32] .el-dialog__body{padding:15px}.pagination-section[data-v-497a4f32]{padding:15px 10px}[data-v-497a4f32] .el-pagination{flex-wrap:wrap;justify-content:center;gap:8px}[data-v-497a4f32] .el-pagination .el-pagination__sizes,[data-v-497a4f32] .el-pagination .el-pagination__jump{margin:0}[data-v-497a4f32] .el-pagination button,[data-v-497a4f32] .el-pagination li{min-width:32px;height:32px;line-height:28px;padding:0 8px}}@media (max-width: 480px){.todo-title[data-v-497a4f32]{font-size:24px;letter-spacing:1px}.title-dot[data-v-497a4f32]{font-size:10px}.cute-btn[data-v-497a4f32]{font-size:13px;padding:7px 10px}.filter-btn[data-v-497a4f32]{padding:5px 12px;font-size:13px}[data-v-497a4f32] .el-dialog{width:92%!important}}
|
|
1
|
+
.filter-container[data-v-62639236]{background:#fff;padding:16px;margin-bottom:12px;border-radius:4px;box-shadow:0 2px 4px #0000001a}.log-tabs[data-v-62639236]{margin-bottom:16px}.filter-row[data-v-62639236]{display:flex;gap:12px;align-items:center}.filter-input[data-v-62639236]{flex:1}.button-group[data-v-62639236]{display:flex;gap:8px}.log-container[data-v-62639236]{width:100%;height:calc(100vh - 220px);overflow-y:auto;padding:12px;font-family:monospace;background:#1e1e1e;color:#d4d4d4;border-radius:4px}.log-line[data-v-62639236]{line-height:1.5;font-size:13px}pre[data-v-62639236]{margin:0;font-family:inherit;white-space:pre-wrap;word-break:break-all}.log-error[data-v-62639236]{color:#f44747}.log-warn[data-v-62639236]{color:#dcdcaa}.log-info[data-v-62639236]{color:#4fc1ff}.empty-state[data-v-62639236]{display:flex;justify-content:center;align-items:center;height:100%;color:gray;font-size:14px}[data-v-3e8f9409]{box-sizing:border-box}.rocket-calculator[data-v-3e8f9409]{max-width:800px;margin:0 auto;padding:20px;box-sizing:border-box;position:relative;min-height:100vh;overflow-x:hidden}.sci-fi-bg[data-v-3e8f9409]{background:linear-gradient(135deg,#0a0e27,#1a1f3a,#0f172a);color:#e0e7ff}.grid-overlay[data-v-3e8f9409]{position:fixed;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(rgba(0,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,255,255,.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:0}.sci-fi-card[data-v-3e8f9409]{background:#0f172af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,255,255,.2);box-shadow:0 0 20px #00ffff1a,inset 0 0 20px #00000080;position:relative;overflow:visible;z-index:1}.sci-fi-card[data-v-3e8f9409] .k-card__body{padding:24px}.card-header-line[data-v-3e8f9409]{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#00ffff,#8b5cf6,transparent);animation:lineGlow-3e8f9409 3s ease-in-out infinite;z-index:1}@keyframes lineGlow-3e8f9409{0%,to{opacity:.5}50%{opacity:1}}.header-card[data-v-3e8f9409]{margin-bottom:24px;text-align:center;position:relative;z-index:10;margin-top:8px}.header-glow[data-v-3e8f9409]{position:absolute;top:-50%;left:50%;transform:translate(-50%);width:200%;height:100%;background:radial-gradient(ellipse,rgba(139,92,246,.15) 0%,transparent 70%);pointer-events:none;z-index:-1}.sci-fi-title[data-v-3e8f9409]{margin:0 0 8px;font-size:28px;font-weight:800;letter-spacing:4px;color:#0ff;background:linear-gradient(90deg,#0ff,#8b5cf6,#0ff);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:titleShine-3e8f9409 4s linear infinite;position:relative;z-index:2;text-shadow:0 0 30px rgba(0,255,255,.3);line-height:1.4}@keyframes titleShine-3e8f9409{0%{background-position:0% center}to{background-position:200% center}}.sci-fi-subtitle[data-v-3e8f9409]{margin:0;color:#64748b;font-size:13px;letter-spacing:2px;text-transform:uppercase;position:relative;z-index:2;line-height:1.5}.content-layout[data-v-3e8f9409]{display:flex;flex-direction:column;gap:24px;position:relative;z-index:1}.config-section[data-v-3e8f9409]{margin-bottom:20px;position:relative;z-index:1}.section-title[data-v-3e8f9409]{margin:0 0 20px;font-size:14px;color:#0ff;letter-spacing:2px;font-weight:600}.distance-control[data-v-3e8f9409]{width:100%}.distance-step-selector[data-v-3e8f9409]{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:16px}.step-btn[data-v-3e8f9409]{margin:0;background:#0000004d;border:1px solid rgba(0,255,255,.2);color:#94a3b8;padding:8px 4px;font-size:12px;font-weight:600;transition:all .2s ease;white-space:nowrap}.step-btn[data-v-3e8f9409]:hover{border-color:#00ffff80;color:#0ff;transform:translateY(-1px)}.step-btn.active[data-v-3e8f9409]{background:#00ffff26;border-color:#0ff;color:#0ff;box-shadow:0 0 15px #00ffff4d}.distance-input-wrapper[data-v-3e8f9409]{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:#0000004d;border:1px solid rgba(139,92,246,.3);border-radius:4px}.distance-label[data-v-3e8f9409]{color:#64748b;font-size:13px}.distance-value[data-v-3e8f9409]{font-size:20px;font-weight:800;color:#8b5cf6}.unit[data-v-3e8f9409]{color:#8b5cf6;font-weight:600;font-size:14px}.modules-grid[data-v-3e8f9409]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.module-item[data-v-3e8f9409]{background:#00ffff0d;border:1px solid rgba(0,255,255,.1);padding:12px;border-radius:4px;transition:all .3s ease;display:flex;flex-direction:column;gap:8px}.module-item[data-v-3e8f9409]:hover{border-color:#00ffff4d;background:#00ffff14}.module-name[data-v-3e8f9409]{font-size:13px;color:#94a3b8}.module-input[data-v-3e8f9409]{width:100%}.module-input[data-v-3e8f9409] .el-input__wrapper{background:#0000004d;border:1px solid rgba(0,255,255,.2);box-shadow:none;padding:4px 6px}.module-input[data-v-3e8f9409] .el-input__inner{text-align:center;color:#0ff;font-weight:700;font-size:16px}.module-input[data-v-3e8f9409] .el-input-number__decrease,.module-input[data-v-3e8f9409] .el-input-number__increase{background:#0ff3;color:#0ff;border-color:#00ffff4d;font-weight:800;font-size:16px;transition:all .2s ease}.module-input[data-v-3e8f9409] .el-input-number__decrease:hover,.module-input[data-v-3e8f9409] .el-input-number__increase:hover{background:#0ff6;color:#fff}.module-input[data-v-3e8f9409] .el-input-number__decrease.is-disabled,.module-input[data-v-3e8f9409] .el-input-number__increase.is-disabled{background:#0003;color:#475569;border-color:#ffffff1a}.calculate-btn-wrapper[data-v-3e8f9409]{margin-top:24px;margin-bottom:0}.sci-fi-calculate-btn[data-v-3e8f9409]{width:100%;height:50px;background:linear-gradient(135deg,#0ff,#8b5cf6);border:none;color:#0a0e27;font-weight:800;font-size:16px;letter-spacing:2px;position:relative;overflow:hidden;transition:all .3s ease}.sci-fi-calculate-btn[data-v-3e8f9409]:hover{transform:translateY(-2px);box-shadow:0 10px 30px #00ffff4d}.btn-text[data-v-3e8f9409]{position:relative;z-index:1}.btn-glow[data-v-3e8f9409]{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:btnScan-3e8f9409 2s ease-in-out infinite}@keyframes btnScan-3e8f9409{0%{left:-100%}to{left:100%}}.sci-fi-radio-group[data-v-3e8f9409]{width:100%;display:flex}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button{flex:1}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button__inner{width:100%;background:#0000004d;border:1px solid rgba(0,255,255,.2);color:#94a3b8;font-weight:600;padding:12px 10px;transition:all .2s ease}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button__inner:hover{color:#0ff;border-color:#0ff6}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button__orig-radio:checked+.el-radio-button__inner{background:#00ffff26;border-color:#0ff;color:#0ff;box-shadow:0 0 15px #0ff3}.oxidizer-hint[data-v-3e8f9409]{display:flex;justify-content:space-around;margin-top:8px}.hint-item[data-v-3e8f9409]{font-size:12px;color:#64748b;transition:all .2s ease}.hint-item.active[data-v-3e8f9409]{color:#0ff;font-weight:600}.divider-line[data-v-3e8f9409]{height:1px;background:linear-gradient(90deg,transparent,rgba(0,255,255,.3),transparent);margin:24px 0}.result-header[data-v-3e8f9409]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:8px}.result-title[data-v-3e8f9409]{margin:0;font-size:18px;color:#0ff;letter-spacing:2px}.result-status[data-v-3e8f9409]{display:flex;align-items:center;gap:8px;font-size:12px;color:#67c23a;letter-spacing:1px}.status-dot[data-v-3e8f9409]{width:8px;height:8px;background:#67c23a;border-radius:50%;animation:statusPulse-3e8f9409 2s ease-in-out infinite}@keyframes statusPulse-3e8f9409{0%,to{box-shadow:0 0 #67c23a66}50%{box-shadow:0 0 0 8px #67c23a00}}.key-stats[data-v-3e8f9409]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.stat-item[data-v-3e8f9409]{background:#0000004d;border:1px solid rgba(255,255,255,.1);padding:16px;text-align:center;position:relative}.stat-item.primary[data-v-3e8f9409]{border-color:#0ff6;box-shadow:0 0 20px #00ffff1a}.stat-item.success[data-v-3e8f9409]{border-color:#67c23a66;box-shadow:0 0 20px #67c23a1a}.stat-item.warning[data-v-3e8f9409]{border-color:#e6a23c66;box-shadow:0 0 20px #e6a23c1a}.stat-label[data-v-3e8f9409]{font-size:12px;color:#64748b;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}.stat-value[data-v-3e8f9409]{font-size:24px;font-weight:800}.stat-item.primary .stat-value[data-v-3e8f9409]{color:#0ff}.stat-item.success .stat-value[data-v-3e8f9409]{color:#67c23a}.stat-item.warning .stat-value[data-v-3e8f9409]{color:#e6a23c}.stat-unit[data-v-3e8f9409]{font-size:14px;opacity:.7}.detail-title[data-v-3e8f9409]{margin:0 0 16px;font-size:14px;color:#8b5cf6;letter-spacing:2px}.detail-grid[data-v-3e8f9409]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.detail-item[data-v-3e8f9409]{display:flex;justify-content:space-between;align-items:center;background:#0003;padding:12px 16px;border-left:3px solid #8b5cf6;gap:8px}.detail-label[data-v-3e8f9409]{font-size:13px;color:#94a3b8}.detail-value[data-v-3e8f9409]{font-size:16px;font-weight:700;color:#e0e7ff;text-align:right}.sci-fi-divider[data-v-3e8f9409]{border-color:#00ffff1a;margin:24px 0}.table-wrapper[data-v-3e8f9409]{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.sci-fi-table[data-v-3e8f9409]{background:#0003;min-width:500px}.sci-fi-table[data-v-3e8f9409] .el-table__header-wrapper{background:#00ffff0d}.sci-fi-table[data-v-3e8f9409] .el-table th{background:transparent;color:#0ff;border-color:#00ffff1a}.sci-fi-table[data-v-3e8f9409] .el-table td{border-color:#ffffff0d}.sci-fi-table[data-v-3e8f9409] .el-table--striped .el-table__body tr.el-table__row--striped{background:#0000001a}.empty-state[data-v-3e8f9409]{text-align:center;padding:60px 20px;position:relative}.scan-line[data-v-3e8f9409]{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(0,255,255,.5),transparent);animation:scanMove-3e8f9409 3s linear infinite}@keyframes scanMove-3e8f9409{0%{top:0;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}.empty-icon[data-v-3e8f9409]{font-size:48px;margin-bottom:16px}.empty-text[data-v-3e8f9409]{font-size:16px;color:#64748b;margin:0 0 8px;letter-spacing:1px}.empty-text.error[data-v-3e8f9409]{color:#f87171}.empty-hint[data-v-3e8f9409]{font-size:13px;color:#475569;margin:0 0 24px;line-height:1.5}.sci-fi-reset-btn[data-v-3e8f9409]{background:#8b5cf633;border:1px solid #8b5cf6;color:#8b5cf6}.sci-fi-reset-btn[data-v-3e8f9409]:hover{background:#8b5cf64d;color:#a78bfa}.sci-fi-form[data-v-3e8f9409] .el-form-item__label{color:#94a3b8;font-weight:600;padding-bottom:6px;line-height:1.4}.sci-fi-select[data-v-3e8f9409] .el-input__wrapper{background:#0000004d;border:1px solid rgba(0,255,255,.2);box-shadow:none}.sci-fi-select[data-v-3e8f9409] .el-input__wrapper:hover{border-color:#0ff6}.sci-fi-select[data-v-3e8f9409] .el-input__wrapper.is-focus{border-color:#0ff;box-shadow:0 0 10px #0ff3}@media screen and (max-width: 600px){.rocket-calculator[data-v-3e8f9409]{padding:12px}.sci-fi-title[data-v-3e8f9409]{font-size:20px;letter-spacing:2px}.sci-fi-card[data-v-3e8f9409] .k-card__body{padding:16px}.key-stats[data-v-3e8f9409],.modules-grid[data-v-3e8f9409],.detail-grid[data-v-3e8f9409]{grid-template-columns:1fr}.distance-step-selector[data-v-3e8f9409]{grid-template-columns:repeat(3,1fr)}}.scrollbar[data-v-7f2607d9]{background:linear-gradient(135deg,#0a0e27,#1a1f3a,#0f172a);color:#e0e7ff}.todo-app[data-v-1d6d47ce]{min-height:100vh;position:relative;background:linear-gradient(135deg,#e0f4ff,#f0f8ff,#e8f5ff);padding:20px}.bg-pattern[data-v-1d6d47ce]{position:fixed;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle,#b8d4e8 1px,transparent 1px);background-size:25px 25px;opacity:.5;pointer-events:none;z-index:0}.todo-container[data-v-1d6d47ce]{position:relative;z-index:1;max-width:1000px;margin:0 auto}.todo-header[data-v-1d6d47ce]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.todo-title[data-v-1d6d47ce]{font-family:Comic Sans MS,cursive,sans-serif;font-size:48px;font-weight:700;color:#fff;text-shadow:2px 2px 0 #333,-2px -2px 0 #333,2px -2px 0 #333,-2px 2px 0 #333,0px 2px 0 #333,0px -2px 0 #333,2px 0px 0 #333,-2px 0px 0 #333,3px 3px 0 #ffd700,4px 4px 0 #333;letter-spacing:5px;display:inline-flex;align-items:center;gap:10px;margin:0}.title-dot[data-v-1d6d47ce]{color:#ff6b9d;font-size:16px;animation:bounce-1d6d47ce .6s infinite alternate}@keyframes bounce-1d6d47ce{0%{transform:translateY(0)}to{transform:translateY(-6px)}}.title-text[data-v-1d6d47ce]{background:linear-gradient(180deg,#fff,#f0f0f0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.button-group[data-v-1d6d47ce]{display:flex;gap:10px}.cute-btn[data-v-1d6d47ce]{background:#fff;border:2px solid #333;color:#333;font-family:Comic Sans MS,cursive,sans-serif;border-radius:8px;box-shadow:3px 3px #333;transition:all .1s}.cute-btn[data-v-1d6d47ce]:hover{transform:translate(1px,1px);box-shadow:2px 2px #333}.cute-btn[data-v-1d6d47ce]:active{transform:translate(2px,2px);box-shadow:1px 1px #333}.cute-btn.primary[data-v-1d6d47ce]{background:linear-gradient(135deg,#ffb6c1,pink)}.todo-stats[data-v-1d6d47ce]{display:flex;gap:20px;margin-bottom:15px;padding:8px 15px;background:#fff;border:2px solid #333;border-radius:10px;box-shadow:4px 4px #333}.search-filter-section[data-v-1d6d47ce]{display:flex;gap:15px;margin-bottom:20px;align-items:center;flex-wrap:wrap}.search-input[data-v-1d6d47ce]{flex:1;min-width:250px}.filter-buttons[data-v-1d6d47ce]{display:flex;gap:10px}.filter-btn[data-v-1d6d47ce]{background:#fff;border:2px solid #333;color:#333;font-family:Comic Sans MS,cursive,sans-serif;padding:8px 20px;border-radius:8px;box-shadow:3px 3px #333;cursor:pointer;transition:all .1s}.filter-btn[data-v-1d6d47ce]:hover{transform:translate(1px,1px);box-shadow:2px 2px #333}.filter-btn[data-v-1d6d47ce]:active{transform:translate(2px,2px);box-shadow:1px 1px #333}.filter-btn.active[data-v-1d6d47ce]{background:linear-gradient(135deg,#87ceeb,#98d8c8)}.todo-table-card[data-v-1d6d47ce]{background:#fff;border:3px solid #333;border-radius:15px;box-shadow:8px 8px #333;overflow:hidden}.cute-table[data-v-1d6d47ce]{font-family:Comic Sans MS,cursive,sans-serif}.cute-table[data-v-1d6d47ce] .el-table__header th{background:linear-gradient(135deg,#87ceeb,#98d8c8);color:#333;font-weight:700}.completed-text[data-v-1d6d47ce]{text-decoration:line-through;color:#909399}.cute-tag[data-v-1d6d47ce]{font-family:Comic Sans MS,cursive,sans-serif;border:2px solid #333}[data-v-1d6d47ce] .el-dialog{border:3px solid #333;border-radius:15px;box-shadow:8px 8px #333}[data-v-1d6d47ce] .el-dialog__header{background:linear-gradient(135deg,#87ceeb,#98d8c8);border-bottom:3px solid #333;margin:0;padding:15px 20px}[data-v-1d6d47ce] .el-dialog__header .el-dialog__title{font-family:Comic Sans MS,cursive,sans-serif;font-weight:700;color:#333}.cute-input[data-v-1d6d47ce] .el-input__wrapper{border:2px solid #333;border-radius:8px;box-shadow:none}.cute-checkbox[data-v-1d6d47ce]{font-family:Comic Sans MS,cursive,sans-serif;color:#333}.cute-checkbox[data-v-1d6d47ce] .el-checkbox__input .el-checkbox__inner{border:2px solid #333;border-radius:4px;box-shadow:2px 2px #333}.cute-checkbox[data-v-1d6d47ce] .el-checkbox__input .el-checkbox__inner:hover{transform:translate(1px,1px);box-shadow:1px 1px #333}.cute-checkbox[data-v-1d6d47ce] .el-checkbox__input.is-checked .el-checkbox__inner{background:linear-gradient(135deg,#87ceeb,#98d8c8);border-color:#333}[data-v-1d6d47ce] .el-statistic__head{color:inherit;font-family:Comic Sans MS,cursive,sans-serif;font-size:14px}[data-v-1d6d47ce] .el-statistic__content{color:inherit;font-family:Comic Sans MS,cursive,sans-serif;font-size:20px}.pagination-section[data-v-1d6d47ce]{padding:20px;display:flex;justify-content:center;border-top:2px solid #333;background:linear-gradient(135deg,#f5f5f5,#fff)}[data-v-1d6d47ce] .el-pagination{font-family:Comic Sans MS,cursive,sans-serif}[data-v-1d6d47ce] .el-pagination button,[data-v-1d6d47ce] .el-pagination li{border:2px solid #333;border-radius:8px;box-shadow:2px 2px #333;transition:all .1s}[data-v-1d6d47ce] .el-pagination button:hover,[data-v-1d6d47ce] .el-pagination li:hover{transform:translate(1px,1px);box-shadow:1px 1px #333}[data-v-1d6d47ce] .el-pagination button.is-active,[data-v-1d6d47ce] .el-pagination li.is-active{background:linear-gradient(135deg,#87ceeb,#98d8c8);color:#333;font-weight:700}[data-v-1d6d47ce] .el-pagination .el-pager li{border-radius:8px}[data-v-1d6d47ce] .el-pagination .el-pagination__sizes .el-select .el-input__wrapper,[data-v-1d6d47ce] .el-pagination .el-pagination__jump .el-select .el-input__wrapper,[data-v-1d6d47ce] .el-pagination .el-pagination__sizes .el-input__wrapper,[data-v-1d6d47ce] .el-pagination .el-pagination__jump .el-input__wrapper{border:2px solid #333;border-radius:8px;box-shadow:2px 2px #333}@media (max-width: 768px){.todo-app[data-v-1d6d47ce]{padding:10px}.todo-header[data-v-1d6d47ce]{flex-direction:column;gap:15px;align-items:stretch}.todo-title[data-v-1d6d47ce]{font-size:32px;letter-spacing:2px;justify-content:center}.title-dot[data-v-1d6d47ce]{font-size:12px}.button-group[data-v-1d6d47ce]{justify-content:center;flex-wrap:wrap}.cute-btn[data-v-1d6d47ce]{font-size:14px;padding:8px 12px}.todo-stats[data-v-1d6d47ce]{flex-wrap:wrap;justify-content:center;gap:10px}[data-v-1d6d47ce] .el-statistic{text-align:center}[data-v-1d6d47ce] .el-statistic__content{font-size:18px}.search-filter-section[data-v-1d6d47ce]{flex-direction:column;align-items:stretch}.search-input[data-v-1d6d47ce]{min-width:auto;width:100%}.filter-buttons[data-v-1d6d47ce]{justify-content:center;flex-wrap:wrap}.filter-btn[data-v-1d6d47ce]{padding:6px 14px;font-size:14px}.todo-table-card[data-v-1d6d47ce]{border-radius:10px;box-shadow:4px 4px #333}[data-v-1d6d47ce] .el-dialog{width:95%!important;margin:5vh auto!important;max-width:400px}[data-v-1d6d47ce] .el-dialog__header{padding:12px 16px}[data-v-1d6d47ce] .el-dialog__body{padding:15px}.pagination-section[data-v-1d6d47ce]{padding:15px 10px}[data-v-1d6d47ce] .el-pagination{flex-wrap:wrap;justify-content:center;gap:8px}[data-v-1d6d47ce] .el-pagination .el-pagination__sizes,[data-v-1d6d47ce] .el-pagination .el-pagination__jump{margin:0}[data-v-1d6d47ce] .el-pagination button,[data-v-1d6d47ce] .el-pagination li{min-width:32px;height:32px;line-height:28px;padding:0 8px}}@media (max-width: 480px){.todo-title[data-v-1d6d47ce]{font-size:24px;letter-spacing:1px}.title-dot[data-v-1d6d47ce]{font-size:10px}.cute-btn[data-v-1d6d47ce]{font-size:13px;padding:7px 10px}.filter-btn[data-v-1d6d47ce]{padding:5px 12px;font-size:13px}[data-v-1d6d47ce] .el-dialog{width:92%!important}}
|
package/lib/index.js
CHANGED
|
@@ -1734,12 +1734,237 @@ var TodoList = class {
|
|
|
1734
1734
|
);
|
|
1735
1735
|
this.registerCommands(ctx);
|
|
1736
1736
|
this.registerConsoleEvents(ctx);
|
|
1737
|
+
this.registerCronJobs(ctx);
|
|
1737
1738
|
}
|
|
1738
1739
|
static {
|
|
1739
1740
|
__name(this, "TodoList");
|
|
1740
1741
|
}
|
|
1741
|
-
static inject = ["database", "console"];
|
|
1742
|
+
static inject = ["database", "console", "wikiBot", "cron"];
|
|
1742
1743
|
log;
|
|
1744
|
+
registerCronJobs(ctx) {
|
|
1745
|
+
ctx.cron("0 0 * * 1", async () => {
|
|
1746
|
+
if (!this.ctx.wikiBot.isReady) {
|
|
1747
|
+
this.log.warn("定时任务:WikiBot 服务未就绪,跳过同步模块");
|
|
1748
|
+
return;
|
|
1749
|
+
}
|
|
1750
|
+
this.log.info("定时任务:每周一同步 wiki.gg 模块到 TodoList");
|
|
1751
|
+
try {
|
|
1752
|
+
const { added, updated } = await this.syncModulesToTodos();
|
|
1753
|
+
this.log.info(`定时任务完成:新增 ${added} 个,更新 ${updated} 个`);
|
|
1754
|
+
} catch (err) {
|
|
1755
|
+
this.log.error("定时任务失败:同步模块", err);
|
|
1756
|
+
}
|
|
1757
|
+
});
|
|
1758
|
+
ctx.cron("0 0 * * 2", async () => {
|
|
1759
|
+
if (!this.ctx.wikiBot.isReady) {
|
|
1760
|
+
this.log.warn("定时任务:WikiBot 服务未就绪,跳过检查同步状态");
|
|
1761
|
+
return;
|
|
1762
|
+
}
|
|
1763
|
+
this.log.info("定时任务:每周二检查模块同步状态");
|
|
1764
|
+
try {
|
|
1765
|
+
const { checked, synced } = await this.checkSyncStatus();
|
|
1766
|
+
this.log.info(`定时任务完成:检查 ${checked} 个,已同步 ${synced} 个`);
|
|
1767
|
+
} catch (err) {
|
|
1768
|
+
this.log.error("定时任务失败:检查同步状态", err);
|
|
1769
|
+
}
|
|
1770
|
+
});
|
|
1771
|
+
}
|
|
1772
|
+
async getAllModulesFromGG() {
|
|
1773
|
+
const modules = [];
|
|
1774
|
+
let apcontinue;
|
|
1775
|
+
try {
|
|
1776
|
+
do {
|
|
1777
|
+
const params = {
|
|
1778
|
+
action: "query",
|
|
1779
|
+
format: "json",
|
|
1780
|
+
list: "allpages",
|
|
1781
|
+
indexpageids: 1,
|
|
1782
|
+
redirects: 1,
|
|
1783
|
+
formatversion: "2",
|
|
1784
|
+
apnamespace: "828",
|
|
1785
|
+
aplimit: "max"
|
|
1786
|
+
};
|
|
1787
|
+
if (apcontinue) {
|
|
1788
|
+
params.apcontinue = apcontinue;
|
|
1789
|
+
params.continue = "-||";
|
|
1790
|
+
}
|
|
1791
|
+
const res = await this.apiCallWithRetry(
|
|
1792
|
+
() => this.ctx.wikiBot.ggbot.query(params)
|
|
1793
|
+
);
|
|
1794
|
+
if (res.query?.allpages) {
|
|
1795
|
+
modules.push(...res.query.allpages);
|
|
1796
|
+
}
|
|
1797
|
+
apcontinue = res.continue?.apcontinue;
|
|
1798
|
+
} while (apcontinue);
|
|
1799
|
+
this.log.info(`从 wiki.gg 获取到 ${modules.length} 个模块`);
|
|
1800
|
+
return modules;
|
|
1801
|
+
} catch (err) {
|
|
1802
|
+
this.log.error("从 wiki.gg 获取模块列表失败", err);
|
|
1803
|
+
throw err;
|
|
1804
|
+
}
|
|
1805
|
+
}
|
|
1806
|
+
sleep(ms) {
|
|
1807
|
+
return new Promise((resolve2) => setTimeout(resolve2, ms));
|
|
1808
|
+
}
|
|
1809
|
+
async apiCallWithRetry(apiCall, maxRetries = 3) {
|
|
1810
|
+
for (let i = 0; i < maxRetries; i++) {
|
|
1811
|
+
try {
|
|
1812
|
+
return await apiCall();
|
|
1813
|
+
} catch (err) {
|
|
1814
|
+
if (i === maxRetries - 1) {
|
|
1815
|
+
throw err;
|
|
1816
|
+
}
|
|
1817
|
+
this.log.warn(`API 调用失败,正在重试 (${i + 1}/${maxRetries})...`);
|
|
1818
|
+
await this.sleep(2e3);
|
|
1819
|
+
}
|
|
1820
|
+
}
|
|
1821
|
+
throw new Error("Max retries exceeded");
|
|
1822
|
+
}
|
|
1823
|
+
async getModuleRevisionFromGG(title) {
|
|
1824
|
+
try {
|
|
1825
|
+
await this.sleep(1e3);
|
|
1826
|
+
const res = await this.apiCallWithRetry(
|
|
1827
|
+
() => this.ctx.wikiBot.ggbot.query({
|
|
1828
|
+
action: "query",
|
|
1829
|
+
format: "json",
|
|
1830
|
+
prop: "revisions",
|
|
1831
|
+
titles: title,
|
|
1832
|
+
formatversion: "2",
|
|
1833
|
+
rvprop: "timestamp|user|comment",
|
|
1834
|
+
rvlimit: "1"
|
|
1835
|
+
})
|
|
1836
|
+
);
|
|
1837
|
+
if (res.query?.pages && res.query.pages.length > 0) {
|
|
1838
|
+
const page = res.query.pages[0];
|
|
1839
|
+
if (page.revisions && page.revisions.length > 0) {
|
|
1840
|
+
return {
|
|
1841
|
+
...page,
|
|
1842
|
+
revision: page.revisions[0]
|
|
1843
|
+
};
|
|
1844
|
+
}
|
|
1845
|
+
}
|
|
1846
|
+
return null;
|
|
1847
|
+
} catch (err) {
|
|
1848
|
+
this.log.error(`从 wiki.gg 获取模块 ${title} 的修订信息失败`, err);
|
|
1849
|
+
return null;
|
|
1850
|
+
}
|
|
1851
|
+
}
|
|
1852
|
+
async getModuleRevisionFromBWiki(title) {
|
|
1853
|
+
try {
|
|
1854
|
+
await this.sleep(1e3);
|
|
1855
|
+
const res = await this.apiCallWithRetry(
|
|
1856
|
+
() => this.ctx.wikiBot.bwikibot.query({
|
|
1857
|
+
action: "query",
|
|
1858
|
+
format: "json",
|
|
1859
|
+
prop: "revisions",
|
|
1860
|
+
titles: title,
|
|
1861
|
+
formatversion: "2",
|
|
1862
|
+
rvprop: "timestamp|user|comment",
|
|
1863
|
+
rvlimit: "1"
|
|
1864
|
+
})
|
|
1865
|
+
);
|
|
1866
|
+
if (res.query?.pages && res.query.pages.length > 0) {
|
|
1867
|
+
const page = res.query.pages[0];
|
|
1868
|
+
if (page.revisions && page.revisions.length > 0) {
|
|
1869
|
+
return {
|
|
1870
|
+
...page,
|
|
1871
|
+
revision: page.revisions[0]
|
|
1872
|
+
};
|
|
1873
|
+
}
|
|
1874
|
+
}
|
|
1875
|
+
return null;
|
|
1876
|
+
} catch (err) {
|
|
1877
|
+
this.log.error(`从 bwikia 获取模块 ${title} 的修订信息失败`, err);
|
|
1878
|
+
return null;
|
|
1879
|
+
}
|
|
1880
|
+
}
|
|
1881
|
+
async syncModulesToTodos() {
|
|
1882
|
+
if (!this.ctx.wikiBot.isReady) {
|
|
1883
|
+
this.log.warn("WikiBot 服务未就绪,无法同步模块");
|
|
1884
|
+
return { added: 0, updated: 0 };
|
|
1885
|
+
}
|
|
1886
|
+
const modules = await this.getAllModulesFromGG();
|
|
1887
|
+
const existingTodos = await this.ctx.database.get("onitodos", {});
|
|
1888
|
+
const existingTodoMap = new Map(existingTodos.map((t) => [t.title, t]));
|
|
1889
|
+
let added = 0;
|
|
1890
|
+
let updated = 0;
|
|
1891
|
+
for (const module2 of modules) {
|
|
1892
|
+
const moduleData = await this.getModuleRevisionFromGG(module2.title);
|
|
1893
|
+
if (!moduleData || !moduleData.revision) {
|
|
1894
|
+
continue;
|
|
1895
|
+
}
|
|
1896
|
+
const revision = moduleData.revision;
|
|
1897
|
+
const createdAt = new Date(revision.timestamp);
|
|
1898
|
+
const updatedAt = new Date(revision.timestamp);
|
|
1899
|
+
if (existingTodoMap.has(module2.title)) {
|
|
1900
|
+
const existingTodo = existingTodoMap.get(module2.title);
|
|
1901
|
+
await this.ctx.database.set(
|
|
1902
|
+
"onitodos",
|
|
1903
|
+
{ id: existingTodo.id },
|
|
1904
|
+
{
|
|
1905
|
+
content: revision.comment || "",
|
|
1906
|
+
createdBy: revision.user,
|
|
1907
|
+
createdAt,
|
|
1908
|
+
updatedAt
|
|
1909
|
+
}
|
|
1910
|
+
);
|
|
1911
|
+
updated++;
|
|
1912
|
+
} else {
|
|
1913
|
+
await this.ctx.database.create("onitodos", {
|
|
1914
|
+
title: module2.title,
|
|
1915
|
+
content: revision.comment || "",
|
|
1916
|
+
completed: false,
|
|
1917
|
+
createdBy: revision.user,
|
|
1918
|
+
createdAt,
|
|
1919
|
+
updatedAt
|
|
1920
|
+
});
|
|
1921
|
+
added++;
|
|
1922
|
+
}
|
|
1923
|
+
}
|
|
1924
|
+
this.log.info(`同步模块到待办事项完成:新增 ${added},更新 ${updated}`);
|
|
1925
|
+
return { added, updated };
|
|
1926
|
+
}
|
|
1927
|
+
async checkSyncStatus() {
|
|
1928
|
+
if (!this.ctx.wikiBot.isReady) {
|
|
1929
|
+
this.log.warn("WikiBot 服务未就绪,无法检查同步状态");
|
|
1930
|
+
return { checked: 0, synced: 0 };
|
|
1931
|
+
}
|
|
1932
|
+
const todos = await this.ctx.database.get("onitodos", {});
|
|
1933
|
+
let checked = 0;
|
|
1934
|
+
let synced = 0;
|
|
1935
|
+
for (const todo of todos) {
|
|
1936
|
+
checked++;
|
|
1937
|
+
const ggRevision = await this.getModuleRevisionFromGG(todo.title);
|
|
1938
|
+
const bwikiRevision = await this.getModuleRevisionFromBWiki(todo.title);
|
|
1939
|
+
if (!ggRevision || !ggRevision.revision) {
|
|
1940
|
+
continue;
|
|
1941
|
+
}
|
|
1942
|
+
if (bwikiRevision && bwikiRevision.revision) {
|
|
1943
|
+
const ggTime = new Date(ggRevision.revision.timestamp).getTime();
|
|
1944
|
+
const bwikiTime = new Date(bwikiRevision.revision.timestamp).getTime();
|
|
1945
|
+
if (bwikiTime >= ggTime) {
|
|
1946
|
+
if (!todo.completed) {
|
|
1947
|
+
await this.ctx.database.set(
|
|
1948
|
+
"onitodos",
|
|
1949
|
+
{ id: todo.id },
|
|
1950
|
+
{ completed: true }
|
|
1951
|
+
);
|
|
1952
|
+
}
|
|
1953
|
+
synced++;
|
|
1954
|
+
} else {
|
|
1955
|
+
if (todo.completed) {
|
|
1956
|
+
await this.ctx.database.set(
|
|
1957
|
+
"onitodos",
|
|
1958
|
+
{ id: todo.id },
|
|
1959
|
+
{ completed: false }
|
|
1960
|
+
);
|
|
1961
|
+
}
|
|
1962
|
+
}
|
|
1963
|
+
}
|
|
1964
|
+
}
|
|
1965
|
+
this.log.info(`检查同步状态完成:检查 ${checked},已同步 ${synced}`);
|
|
1966
|
+
return { checked, synced };
|
|
1967
|
+
}
|
|
1743
1968
|
getCreatedBy(session) {
|
|
1744
1969
|
return session?.userId || "默认创建人";
|
|
1745
1970
|
}
|
|
@@ -1840,7 +2065,7 @@ var TodoList = class {
|
|
|
1840
2065
|
return "❌ 标记待办事项未完成失败,请查看日志";
|
|
1841
2066
|
}
|
|
1842
2067
|
});
|
|
1843
|
-
ctx.command("todo.delete <id>", "删除待办事项").alias("todo.d").action(async ({ session }, idStr) => {
|
|
2068
|
+
ctx.command("todo.delete <id>", "删除待办事项", { authority: 2 }).alias("todo.d").action(async ({ session }, idStr) => {
|
|
1844
2069
|
const id = Number(idStr);
|
|
1845
2070
|
if (!id || isNaN(id)) {
|
|
1846
2071
|
return "❌ 请提供有效的 ID!";
|
|
@@ -1868,6 +2093,30 @@ var TodoList = class {
|
|
|
1868
2093
|
return "❌ 清空 TodoList 失败,请查看日志";
|
|
1869
2094
|
}
|
|
1870
2095
|
});
|
|
2096
|
+
ctx.command("todo.syncmodules", "同步 wiki.gg 模块到 TodoList").action(async ({ session }) => {
|
|
2097
|
+
if (!this.ctx.wikiBot.isReady) {
|
|
2098
|
+
return "❌ WikiBot 服务未就绪,请检查登录配置或查看日志";
|
|
2099
|
+
}
|
|
2100
|
+
try {
|
|
2101
|
+
const { added, updated } = await this.syncModulesToTodos();
|
|
2102
|
+
return `✅ 同步模块完成!新增 ${added} 个,更新 ${updated} 个,请访问 https://klei.vip/onitodos 查看`;
|
|
2103
|
+
} catch (err) {
|
|
2104
|
+
this.log.error("同步模块失败", err);
|
|
2105
|
+
return "❌ 同步模块失败,请查看日志";
|
|
2106
|
+
}
|
|
2107
|
+
});
|
|
2108
|
+
ctx.command("todo.checksync", "检查模块同步状态").action(async ({ session }) => {
|
|
2109
|
+
if (!this.ctx.wikiBot.isReady) {
|
|
2110
|
+
return "❌ WikiBot 服务未就绪,请检查登录配置或查看日志";
|
|
2111
|
+
}
|
|
2112
|
+
try {
|
|
2113
|
+
const { checked, synced } = await this.checkSyncStatus();
|
|
2114
|
+
return `✅ 检查同步状态完成!检查 ${checked} 个,已同步 ${synced} 个,请访问 https://klei.vip/onitodos 查看`;
|
|
2115
|
+
} catch (err) {
|
|
2116
|
+
this.log.error("检查同步状态失败", err);
|
|
2117
|
+
return "❌ 检查同步状态失败,请查看日志";
|
|
2118
|
+
}
|
|
2119
|
+
});
|
|
1871
2120
|
}
|
|
1872
2121
|
registerConsoleEvents(ctx) {
|
|
1873
2122
|
ctx.console.addListener("onitodos/list", async () => {
|
|
@@ -1898,11 +2147,6 @@ var TodoList = class {
|
|
|
1898
2147
|
this.log.info(`控制台更新待办事项成功: ID ${data.id}`);
|
|
1899
2148
|
return { success: true };
|
|
1900
2149
|
});
|
|
1901
|
-
ctx.console.addListener("onitodos/delete", async (data) => {
|
|
1902
|
-
await ctx.database.remove("onitodos", { id: data.id });
|
|
1903
|
-
this.log.info(`控制台删除待办事项成功: ID ${data.id}`);
|
|
1904
|
-
return { success: true };
|
|
1905
|
-
});
|
|
1906
2150
|
}
|
|
1907
2151
|
};
|
|
1908
2152
|
|
|
@@ -21,11 +21,6 @@ declare module "@koishijs/plugin-console" {
|
|
|
21
21
|
}): Promise<{
|
|
22
22
|
success: boolean;
|
|
23
23
|
}>;
|
|
24
|
-
"onitodos/delete"(data: {
|
|
25
|
-
id: number;
|
|
26
|
-
}): Promise<{
|
|
27
|
-
success: boolean;
|
|
28
|
-
}>;
|
|
29
24
|
}
|
|
30
25
|
}
|
|
31
26
|
export interface OniTodoItem {
|
|
@@ -42,6 +37,14 @@ export declare class TodoList {
|
|
|
42
37
|
static readonly inject: string[];
|
|
43
38
|
log: Logger;
|
|
44
39
|
constructor(ctx: Context);
|
|
40
|
+
private registerCronJobs;
|
|
41
|
+
private getAllModulesFromGG;
|
|
42
|
+
private sleep;
|
|
43
|
+
private apiCallWithRetry;
|
|
44
|
+
private getModuleRevisionFromGG;
|
|
45
|
+
private getModuleRevisionFromBWiki;
|
|
46
|
+
private syncModulesToTodos;
|
|
47
|
+
private checkSyncStatus;
|
|
45
48
|
private getCreatedBy;
|
|
46
49
|
private registerCommands;
|
|
47
50
|
private registerConsoleEvents;
|
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -3,19 +3,32 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/koishi-plugin-oni-sync-bot)
|
|
4
4
|
[](https://koishi.chat)
|
|
5
5
|
|
|
6
|
-
缺氧 Wiki 站镜像点同步插件 - 自动同步两个缺氧 Wiki
|
|
6
|
+
缺氧 Wiki 站镜像点同步插件 - 自动同步两个缺氧 Wiki 站点的内容,同时提供 TodoList 管理功能。
|
|
7
7
|
|
|
8
8
|
## 功能特性
|
|
9
9
|
|
|
10
|
+
### 核心功能
|
|
11
|
+
|
|
10
12
|
- 🚀 **自动登录** - 支持 WIKIGG 和 bwiki 双站点登录
|
|
11
13
|
- 🔄 **自动重连** - 登录过期时自动重新登录并重试
|
|
12
14
|
- 📄 **页面同步** - 单个页面同步到目标站点
|
|
13
15
|
- 📦 **模块同步** - 批量同步指定前缀的页面
|
|
14
16
|
- 🖼️ **图片同步** - 同步页面引用的图片文件
|
|
15
17
|
- 🔍 **页面查询** - 查询页面历史版本和当前版本
|
|
16
|
-
- 📊 **日志控制台** - 可视化日志查看和管理
|
|
17
18
|
- ⚡ **增量更新** - 定时检测并同步最近修改的内容
|
|
18
19
|
|
|
20
|
+
### TodoList 功能
|
|
21
|
+
|
|
22
|
+
- ✅ **待办事项管理** - 增删改查待办事项
|
|
23
|
+
- 📋 **控制台页面** - 可视化管理 TodoList
|
|
24
|
+
- 🔄 **模块同步** - 自动同步 wiki.gg 模块到 TodoList
|
|
25
|
+
- 📊 **同步状态检查** - 自动检查模块同步状态
|
|
26
|
+
- 🕐 **定时任务** - 每周一同步模块,每周二检查状态
|
|
27
|
+
- 🎨 **可爱风格** - 萌系风格的 UI 设计
|
|
28
|
+
- 🔍 **搜索筛选** - 支持关键词搜索和状态筛选
|
|
29
|
+
- 📄 **分页显示** - 支持分页和自定义每页条数
|
|
30
|
+
- 📱 **移动端适配** - 响应式设计,支持手机访问
|
|
31
|
+
|
|
19
32
|
## 安装
|
|
20
33
|
|
|
21
34
|
```bash
|
|
@@ -45,6 +58,21 @@ yarn add koishi-plugin-oni-sync-bot
|
|
|
45
58
|
| `sync.gg <标题>` | 同步单个页面到 WIKIGG |
|
|
46
59
|
| `sync.module <前缀>` | 同步指定前缀的所有页面 |
|
|
47
60
|
| `sync.img <标题>` | 同步页面引用的图片 |
|
|
61
|
+
| `sync.update` | 执行增量更新 |
|
|
62
|
+
|
|
63
|
+
### TodoList 命令
|
|
64
|
+
|
|
65
|
+
| 命令 | 说明 | 权限要求 |
|
|
66
|
+
| ---------------------- | ------------------------------------- | -------- |
|
|
67
|
+
| `todo.list` | 查看 TodoList(重定向到网页) | - |
|
|
68
|
+
| `todo.add <标题>` | 添加待办事项 | - |
|
|
69
|
+
| `todo.edit <id>` | 编辑待办事项 | - |
|
|
70
|
+
| `todo.complete <id>` | 标记待办事项为完成 | - |
|
|
71
|
+
| `todo.uncomplete <id>` | 标记待办事项为未完成 | - |
|
|
72
|
+
| `todo.delete <id>` | 删除待办事项 | 2 |
|
|
73
|
+
| `todo.clear` | 清空 TodoList | 2 |
|
|
74
|
+
| `todo.syncmodules` | 同步 wiki.gg 模块到 TodoList | - |
|
|
75
|
+
| `todo.checksync` | 检查模块同步状态 | - |
|
|
48
76
|
|
|
49
77
|
### 管理命令
|
|
50
78
|
|
|
@@ -52,49 +80,75 @@ yarn add koishi-plugin-oni-sync-bot
|
|
|
52
80
|
| --------- | ---------------------- |
|
|
53
81
|
| `relogin` | 手动重新登录两个机器人 |
|
|
54
82
|
|
|
55
|
-
##
|
|
83
|
+
## TodoList 命令示例
|
|
56
84
|
|
|
57
|
-
###
|
|
85
|
+
### 添加待办
|
|
58
86
|
|
|
59
87
|
```
|
|
60
|
-
/
|
|
88
|
+
/todo.add 同步模块 -c "同步 Module:Data" -u "管理员"
|
|
61
89
|
```
|
|
62
90
|
|
|
63
|
-
###
|
|
91
|
+
### 编辑待办
|
|
64
92
|
|
|
65
93
|
```
|
|
66
|
-
/
|
|
94
|
+
/todo.edit 1 -t "新标题" -c "新内容" -u "编辑者"
|
|
67
95
|
```
|
|
68
96
|
|
|
69
|
-
###
|
|
97
|
+
### 同步模块
|
|
70
98
|
|
|
71
99
|
```
|
|
72
|
-
/
|
|
100
|
+
/todo.syncmodules
|
|
73
101
|
```
|
|
74
102
|
|
|
75
|
-
###
|
|
103
|
+
### 检查同步状态
|
|
76
104
|
|
|
77
105
|
```
|
|
78
|
-
/
|
|
106
|
+
/todo.checksync
|
|
79
107
|
```
|
|
80
108
|
|
|
81
109
|
## 控制台功能
|
|
82
110
|
|
|
83
|
-
|
|
111
|
+
插件提供了两个可视化的控制台界面:
|
|
112
|
+
|
|
113
|
+
### 日志控制台
|
|
84
114
|
|
|
85
115
|
- 📋 **日志查看** - 按级别(全部/信息/警告/错误)筛选日志
|
|
86
116
|
- 🔍 **搜索功能** - 快速搜索日志内容
|
|
87
117
|
- ⏬ **自动滚动** - 新日志自动滚动到底部
|
|
88
118
|
- 🎯 **一键滚动** - 手动跳转到顶部或底部
|
|
89
119
|
|
|
120
|
+
### TodoList 控制台
|
|
121
|
+
|
|
122
|
+
- ✨ **可爱风格** - 萌系设计的 UI 界面
|
|
123
|
+
- ➕ **新增待办** - 弹窗表单添加待办
|
|
124
|
+
- ✏️ **编辑待办** - 修改待办内容和状态
|
|
125
|
+
- ✅ **完成标记** - 一键标记完成/未完成
|
|
126
|
+
- 🔍 **搜索筛选** - 支持按标题、内容搜索,按状态筛选
|
|
127
|
+
- 📄 **分页显示** - 超过 8 条自动分页,支持自定义每页条数
|
|
128
|
+
- 📊 **统计信息** - 显示总数、已完成、未完成数量
|
|
129
|
+
- 📱 **移动端适配** - 响应式布局,完美支持手机访问
|
|
130
|
+
|
|
131
|
+
**注意:控制台界面无法删除待办事项,删除操作仅可通过命令完成(需要权限 2)。**
|
|
132
|
+
|
|
133
|
+
## 定时任务
|
|
134
|
+
|
|
135
|
+
插件使用 `koishi-plugin-cron` 提供定时任务功能:
|
|
136
|
+
|
|
137
|
+
- **每周一 00:00** - 自动同步 wiki.gg 所有模块到 TodoList
|
|
138
|
+
- **每周二 00:00** - 自动检查模块同步状态,更新完成标记
|
|
139
|
+
|
|
90
140
|
## 技术特性
|
|
91
141
|
|
|
92
142
|
- ✅ **TypeScript** - 完整的类型支持
|
|
93
143
|
- 🎯 **面向对象** - 基于类的插件架构
|
|
94
144
|
- 🔌 **服务化设计** - 核心功能封装为独立服务
|
|
95
145
|
- 🧩 **模块化** - 功能拆分为独立子插件
|
|
96
|
-
- 🔄 **自动重试** -
|
|
146
|
+
- 🔄 **自动重试** - 登录失败自动重试(最多 3 次)
|
|
97
147
|
- 🔐 **自动重连** - 登录过期自动重新登录
|
|
148
|
+
- 🛡️ **错误处理** - 完善的错误处理和日志记录
|
|
149
|
+
- ⏱️ **API 限流** - 模块同步时请求间隔 1 秒
|
|
150
|
+
- 🔄 **API 重试** - API 调用失败自动重试(最多 3 次)
|
|
151
|
+
- 📦 **数据库持久化** - TodoList 数据存储在数据库中
|
|
98
152
|
|
|
99
153
|
## 项目结构
|
|
100
154
|
|
|
@@ -104,35 +158,60 @@ koishi-plugin-oni-sync-bot/
|
|
|
104
158
|
│ ├── services/ # 服务层
|
|
105
159
|
│ │ └── wikiBotService.ts # Wiki 机器人服务
|
|
106
160
|
│ ├── plugins/ # 插件层
|
|
107
|
-
│ │ ├── command.ts # 基础命令插件
|
|
108
161
|
│ │ ├── queryCommands.ts # 查询命令插件
|
|
109
162
|
│ │ ├── syncCommands.ts # 同步命令插件
|
|
110
163
|
│ │ ├── updateCommands.ts # 更新命令插件
|
|
111
|
-
│ │
|
|
164
|
+
│ │ ├── consoleLogProvider.ts # 日志控制台插件
|
|
165
|
+
│ │ ├── todoList.ts # TodoList 插件
|
|
166
|
+
│ │ ├── databaseExtension.ts # 数据库扩展
|
|
167
|
+
│ │ └── routeRedirect.ts # 路由重定向
|
|
112
168
|
│ ├── sync/ # 同步逻辑
|
|
113
169
|
│ │ ├── pageSync.ts # 页面同步
|
|
114
170
|
│ │ ├── moduleSync.ts # 模块同步
|
|
115
171
|
│ │ └── imgSync.ts # 图片同步
|
|
116
172
|
│ ├── utils/ # 工具函数
|
|
117
173
|
│ │ └── tools.ts # 通用工具
|
|
118
|
-
│ ├── config/ # 配置
|
|
119
|
-
│ │ └── index.ts # 配置定义
|
|
120
174
|
│ ├── client/ # 前端
|
|
121
175
|
│ │ ├── page.vue # 日志页面
|
|
176
|
+
│ │ ├── onitodolist/ # TodoList 页面
|
|
177
|
+
│ │ │ └── todolist.vue # TodoList 主组件
|
|
122
178
|
│ │ └── index.ts # 入口
|
|
123
179
|
│ └── index.ts # 主入口
|
|
124
180
|
├── package.json
|
|
125
181
|
└── tsconfig.json
|
|
126
182
|
```
|
|
127
183
|
|
|
184
|
+
## TodoList 模块同步逻辑
|
|
185
|
+
|
|
186
|
+
### 模块同步流程
|
|
187
|
+
|
|
188
|
+
1. 从 wiki.gg 获取命名空间 828(Module)的所有页面
|
|
189
|
+
2. 逐个获取每个模块的最新修订信息(用户、时间、注释)
|
|
190
|
+
3. 将模块信息存入 TodoList:
|
|
191
|
+
- `title` = 模块名称
|
|
192
|
+
- `content` = 修订注释
|
|
193
|
+
- `createdBy` = 修订用户
|
|
194
|
+
- `createdAt` / `updatedAt` = 修订时间
|
|
195
|
+
- `completed` = false(默认未完成)
|
|
196
|
+
|
|
197
|
+
### 同步状态检查
|
|
198
|
+
|
|
199
|
+
1. 获取所有 TodoList 中的待办事项
|
|
200
|
+
2. 对每个待办:
|
|
201
|
+
- 从 wiki.gg 获取最新修订时间
|
|
202
|
+
- 从 bwikia 获取最新修订时间
|
|
203
|
+
- 对比时间:
|
|
204
|
+
- 如果 bwikia 时间 ≥ wiki.gg 时间 → 标记为已完成
|
|
205
|
+
- 如果 bwikia 时间 < wiki.gg 时间 → 标记为未完成
|
|
206
|
+
|
|
128
207
|
## 开发
|
|
129
208
|
|
|
130
209
|
```bash
|
|
131
|
-
# 创建KOISHI项目
|
|
210
|
+
# 创建 KOISHI 项目
|
|
132
211
|
yarn create koishi
|
|
133
212
|
|
|
134
213
|
# 克隆项目
|
|
135
|
-
git clone
|
|
214
|
+
git clone https://github.com/Charles-LF/oni-sync-bot.git
|
|
136
215
|
|
|
137
216
|
# 安装依赖
|
|
138
217
|
yarn install
|