koishi-plugin-oni-sync-bot 0.6.2 → 0.7.0

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 CHANGED
@@ -1 +1 @@
1
- import{defineComponent as P,ref as D,watch as G,onMounted as H,resolveComponent as p,openBlock as _,createBlock as L,withCtx as d,createVNode as a,createElementBlock as v,Fragment as S,renderList as I,createElementVNode as t,toDisplayString as g,computed as X,reactive as j,createCommentVNode as C,normalizeClass as O,createTextVNode as x,unref as K}from"vue";import{store as Q,Time as J,message as q}from"@koishijs/client";const Z="yyyy-MM-dd hh:mm:ss",ee=P({__name:"page",setup(l){const n=D(),s=D([]);function o(c){const r=J.template(Z,new Date(c.timestamp)),e=c.type.toUpperCase(),i=c.content.replace(/\u001b\[[0-9;]*m/g,"");return`[${r}] [${e}] ${i}`}G(()=>Q.onilogs,c=>{c&&(s.value=c.map(o))},{deep:true,immediate:true});const m=()=>{n.value&&(n.value.scrollTop=n.value.scrollHeight)};return G(()=>s.value.length,()=>{setTimeout(m,0)}),H(()=>{m()}),(c,r)=>{const e=p("k-card"),i=p("k-layout");return _(),L(i,null,{default:d(()=>[a(e,{class:"log-container",ref_key:"scrollRef",ref:n},{default:d(()=>[(_(true),v(S,null,I(s.value,(f,u)=>(_(),v("div",{key:u,class:"log-line"},[t("pre",null,g(f),1)]))),128))]),_:1},512)]),_:1})}}}),F=(l,n)=>{const s=l.__vccOpts||l;for(const[o,m]of n)s[o]=m;return s},te=F(ee,[["__scopeId","data-v-361e99da"]]),A=10,se=2e4,oe=1.33,k={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},V={steam:20,oil:40,hydrogen:60,biodiesel:50,booster:12e3},W={steam:900,fuel:900,oxygen:2700},le={steam:"steamEngine",oil:"oilEngine",hydrogen:"hydrogenEngine",biodiesel:"biodieselEngine"},ae={ResearchModule:"研究舱",CargoBay:"固体货舱",GasCargoBay:"气体货舱",LiquidCargoBay:"液体货舱",SpecialCargoBay:"生物货舱",TouristModule:"观光舱",RoboPilotCommandModule:"机器驾驶舱"};function U(l){return Math.ceil(Math.max(l,Math.pow(l/300,3.2)))}function ne(l){const n={};for(const[s,o]of Object.entries(l))typeof o=="number"&&o>=0&&(n[s]=o);return n}function ie(l){let n=k.CommandModule;for(const s in l)Object.prototype.hasOwnProperty.call(l,s)&&(n+=(k[s]||0)*l[s]);return n}function z(l){return l.length===0?[]:(l.sort((n,s)=>n.weight-s.weight),[l[0]])}function re(l,n){l+=k.steamEngine;const s=[];for(let o=0;o<=A;o++){const m=l+k.SolidBooster*o,c=V.booster*o;for(let r=0;r<=W.steam;r++){const e=m+r,i=c+V.steam*r,f=U(e),u=i-f;if(u>=n){s.push({capacity:r,booster:o,weight:e,mergedDistance:i,punish:f,finalDistance:u});break}}}return z(s)}function de(l,n,s,o,m,c,r,e){const i=Math.ceil(l/W.fuel),f=Math.ceil(l/W.oxygen),u=e==="liquid"?k.OxidizerTankLiquid:k.OxidizerTank,y=s+k.LiquidFuelTank*i+u*f,h=l*2,B=y+h,M=Math.floor(o+m*l*c),R=U(B),E=M-R;return E<r?{isValid:false}:{isValid:true,solution:{capacity:l,booster:n,fuelCount:i,oxygenCount:f,dryWeight:y,wetWeight:h,weight:B,mergedDistance:M,punish:R,finalDistance:E}}}function ce(l,n,s,o,m){const c=V[l],r=o==="liquid"?oe:1;n+=k[le[l]];const e=[];for(let i=0;i<=A;i++){const f=n+k.SolidBooster*i,u=V.booster*i;for(let y=0;y<=se;y+=10){const h=de(y,i,f,u,c,r,s,o);if(h.isValid){e.push(h.solution);break}}}if(e.length===0)return[];if(!m){const i=new Map;for(const f of e){const u=f.fuelCount;(!i.has(u)||i.get(u).weight>f.weight)&&i.set(u,f)}return z(Array.from(i.values()))}return z(e)}function ue(l){const{type:n,distance:s,oxygenType:o,allowWaste:m,...c}=l,r=ne(c),e=ie(r);return n==="steam"?re(e,s):ce(n,e,s,o,m)}const pe={class:"rocket-calculator sci-fi-bg"},me={class:"content-layout"},fe={class:"config-section"},_e={class:"distance-control"},ge={class:"distance-step-selector"},ve={class:"distance-input-wrapper"},ye={class:"distance-value"},be={class:"oxidizer-hint"},Ce={class:"config-section"},ke={class:"modules-grid"},he={class:"module-header"},xe={class:"module-name"},Ee={key:0,class:"empty-state"},Me={key:1,class:"empty-state"},Te={class:"key-stats"},Be={class:"stat-item primary"},Re={class:"stat-value"},we={class:"stat-item success"},Se={class:"stat-value"},Le={class:"stat-item warning"},Ve={class:"stat-value"},Oe={class:"detail-stats"},qe={class:"detail-grid"},De={class:"detail-item"},Ie={class:"detail-label"},We={class:"detail-value"},ze={class:"detail-item"},Fe={class:"detail-value"},Ne={key:0,class:"detail-item"},Ge={class:"detail-value"},Pe={key:1,class:"detail-item"},Ae={class:"detail-value"},Ue={class:"data-table-section"},$e={class:"table-wrapper"},Ye=P({__name:"calculator",setup(l){const n=X(()=>{const r=[];for(let e=1e4;e<=19e4;e+=1e4)r.push(e);return r}),s=j({type:"steam",distance:1e4,oxygenType:"solid",allowWaste:false,ResearchModule:0,CargoBay:0,GasCargoBay:0,LiquidCargoBay:0,SpecialCargoBay:0,TouristModule:0,RoboPilotCommandModule:0}),o=D(null),m=()=>{try{const r=ue(s);o.value=r,r.length>0?q.success("解算完成!已收敛到最优解"):q.warning("解算失败,无解空间")}catch(r){q.error("解算器异常"),console.error(r)}},c=()=>{s.type="steam",s.distance=1e4,s.oxygenType="solid",s.ResearchModule=0,s.CargoBay=0,s.GasCargoBay=0,s.LiquidCargoBay=0,s.SpecialCargoBay=0,s.TouristModule=0,s.RoboPilotCommandModule=0,o.value=null};return(r,e)=>{const i=p("el-option"),f=p("el-select"),u=p("el-form-item"),y=p("el-button"),h=p("el-radio-button"),B=p("el-radio-group"),M=p("el-form"),R=p("el-input-number"),E=p("k-card"),N=p("el-divider"),T=p("el-table-column"),$=p("el-table");return _(),v("div",pe,[C(" 背景装饰网格 "),e[32]||(e[32]=t("div",{class:"grid-overlay"},null,-1)),a(E,{class:"header-card sci-fi-card"},{default:d(()=>[e[29]||(e[29]=t("div",{class:"header-glow"},null,-1)),e[30]||(e[30]=t("h1",{class:"sci-fi-title"},"ONI ROCKET CALCULATOR",-1)),e[31]||(e[31]=t("p",{class:"sci-fi-subtitle"},"缺氧火箭最优配置解算系统 · 基于官方物理引擎",-1)),t("div",me,[C(" 输入控制台 "),a(E,{class:"form-card sci-fi-card"},{default:d(()=>[e[9]||(e[9]=t("div",{class:"card-header-line"},null,-1)),C(" 主配置 "),t("div",fe,[e[6]||(e[6]=t("h3",{class:"section-title"},"【核心参数】",-1)),a(M,{model:s,size:"large",class:"sci-fi-form","label-position":"top"},{default:d(()=>[a(u,{label:"引擎类型"},{default:d(()=>[a(f,{modelValue:s.type,"onUpdate:modelValue":e[0]||(e[0]=b=>s.type=b),style:{width:"100%"},class:"sci-fi-select"},{default:d(()=>[a(i,{label:"蒸汽引擎",value:"steam"}),a(i,{label:"石油引擎",value:"oil"}),a(i,{label:"液氢引擎",value:"hydrogen"}),a(i,{label:"生物柴油引擎",value:"biodiesel"})]),_:1},8,["modelValue"])]),_:1}),a(u,{label:"目标轨道"},{default:d(()=>[t("div",_e,[C(" 10000km 一档的步进选择器 "),t("div",ge,[(_(true),v(S,null,I(n.value,b=>(_(),L(y,{key:b,class:O(["step-btn",{active:s.distance===b}]),onClick:w=>s.distance=b},{default:d(()=>[x(g(b/1e3)+"k ",1)]),_:2},1032,["class","onClick"]))),128))]),t("div",ve,[e[2]||(e[2]=t("span",{class:"distance-label"},"当前:",-1)),t("span",ye,g(s.distance.toLocaleString()),1),e[3]||(e[3]=t("span",{class:"unit"},"km",-1))])])]),_:1}),s.type!=="steam"?(_(),L(u,{key:0,label:"氧化剂"},{default:d(()=>[a(B,{modelValue:s.oxygenType,"onUpdate:modelValue":e[1]||(e[1]=b=>s.oxygenType=b),class:"sci-fi-radio-group"},{default:d(()=>[a(h,{label:"solid"},{default:d(()=>[...e[4]||(e[4]=[x("氧石",-1)])]),_:1}),a(h,{label:"liquid"},{default:d(()=>[...e[5]||(e[5]=[x("液氧",-1)])]),_:1})]),_:1},8,["modelValue"]),t("div",be,[t("span",{class:O(["hint-item",{active:s.oxygenType==="solid"}])},"1.0x 效率",2),t("span",{class:O(["hint-item",{active:s.oxygenType==="liquid"}])},"1.33x 效率",2)])]),_:1})):C("v-if",true)]),_:1},8,["model"])]),e[10]||(e[10]=t("div",{class:"divider-line"},null,-1)),C(" 可选模块 "),t("div",Ce,[e[8]||(e[8]=t("h3",{class:"section-title"},"【载荷配置】",-1)),a(M,{model:s,size:"large",class:"modules-form","label-position":"top"},{default:d(()=>[t("div",ke,[(_(true),v(S,null,I(K(ae),(b,w)=>(_(),v("div",{key:w,class:"module-item"},[t("div",he,[t("span",xe,g(b),1)]),a(R,{modelValue:s[w],"onUpdate:modelValue":Y=>s[w]=Y,min:0,max:20,class:"module-input"},null,8,["modelValue","onUpdate:modelValue"])]))),128))]),a(u,{class:"calculate-btn-wrapper"},{default:d(()=>[a(y,{onClick:m,class:"sci-fi-calculate-btn"},{default:d(()=>[...e[7]||(e[7]=[t("span",{class:"btn-text"},"▶ 执行解算",-1),t("span",{class:"btn-glow"},null,-1)])]),_:1})]),_:1})]),_:1},8,["model"])])]),_:1}),C(" 结果显示面板 "),a(E,{class:"result-card sci-fi-card"},{default:d(()=>[e[28]||(e[28]=t("div",{class:"card-header-line"},null,-1)),o.value?o.value.length===0?(_(),v("div",Me,[e[13]||(e[13]=t("div",{class:"empty-icon"},"⚠️",-1)),e[14]||(e[14]=t("p",{class:"empty-text error"},"解算失败",-1)),e[15]||(e[15]=t("p",{class:"empty-hint"},"无法找到满足条件的配置,请尝试减少载荷",-1)),a(y,{onClick:c,class:"sci-fi-reset-btn"},{default:d(()=>[...e[12]||(e[12]=[x("重置参数",-1)])]),_:1})])):(_(),v(S,{key:2},[e[27]||(e[27]=t("div",{class:"result-header"},[t("h3",{class:"result-title"},"✅ 最优解算结果"),t("div",{class:"result-status"},[t("span",{class:"status-dot"}),t("span",null,"CONVERGED")])],-1)),t("div",Te,[t("div",Be,[e[17]||(e[17]=t("div",{class:"stat-label"},"总起飞重量",-1)),t("div",Re,[x(g(o.value[0].weight.toLocaleString())+" ",1),e[16]||(e[16]=t("span",{class:"stat-unit"},"kg",-1))])]),t("div",we,[e[19]||(e[19]=t("div",{class:"stat-label"},"预计射程",-1)),t("div",Se,[x(g(o.value[0].finalDistance.toLocaleString())+" ",1),e[18]||(e[18]=t("span",{class:"stat-unit"},"km",-1))])]),t("div",Le,[e[21]||(e[21]=t("div",{class:"stat-label"},"质量惩罚",-1)),t("div",Ve,[x(g(o.value[0].punish.toLocaleString())+" ",1),e[20]||(e[20]=t("span",{class:"stat-unit"},"km",-1))])])]),a(N,{class:"sci-fi-divider"}),t("div",Oe,[e[25]||(e[25]=t("h4",{class:"detail-title"},"【配置详情】",-1)),t("div",qe,[t("div",De,[t("span",Ie,g(s.type==="steam"?"蒸汽填充量":"燃料填充量"),1),t("span",We,g(o.value[0].capacity.toLocaleString())+" kg",1)]),t("div",ze,[e[22]||(e[22]=t("span",{class:"detail-label"},"助推器数量",-1)),t("span",Fe,g(o.value[0].booster)+" 个",1)]),o.value[0].fuelCount!==void 0?(_(),v("div",Ne,[e[23]||(e[23]=t("span",{class:"detail-label"},"燃料舱数量",-1)),t("span",Ge,g(o.value[0].fuelCount)+" 个",1)])):C("v-if",true),o.value[0].oxygenCount!==void 0?(_(),v("div",Pe,[e[24]||(e[24]=t("span",{class:"detail-label"},"氧化剂舱数量",-1)),t("span",Ae,g(o.value[0].oxygenCount)+" 个",1)])):C("v-if",true)])]),a(N,{class:"sci-fi-divider"}),t("div",Ue,[e[26]||(e[26]=t("h4",{class:"detail-title"},"【原始数据】",-1)),t("div",$e,[a($,{data:o.value,stripe:"",class:"sci-fi-table"},{default:d(()=>[a(T,{prop:"weight",label:"总重(kg)",sortable:""}),a(T,{prop:"finalDistance",label:"射程(km)",sortable:""}),a(T,{prop:"booster",label:"助推器"}),a(T,{prop:"fuelCount",label:"燃料舱"}),a(T,{prop:"oxygenCount",label:"氧化剂舱"})]),_:1},8,["data"])])])],64)):(_(),v("div",Ee,[...e[11]||(e[11]=[t("div",{class:"scan-line"},null,-1),t("div",{class:"empty-icon"},"📡",-1),t("p",{class:"empty-text"},"等待输入参数...",-1),t("p",{class:"empty-hint"},"请配置核心参数与载荷",-1)])]))]),_:1})])]),_:1})])}}}),He=F(Ye,[["__scopeId","data-v-3e8f9409"]]),Xe={};function je(l,n){const s=p("k-slot"),o=p("el-scrollbar"),m=p("k-layout");return _(),L(m,null,{default:d(()=>[a(o,{class:"scrollbar"},{default:d(()=>[a(s,{name:"calculator"})]),_:1})]),_:1})}const Ke=F(Xe,[["render",je],["__scopeId","data-v-e3ac158b"]]),Ze=l=>{l.page({name:"同步机器人",path:"/onilogs",component:te,fields:["onilogs"]}),l.page({name:"火箭计算器",path:"/calculator",component:Ke}),l.slot({type:"calculator",component:He})};export{Ze as default};
1
+ import{defineComponent as z,openBlock as _,createElementBlock as g,createElementVNode as t,ref as B,computed as V,watch as Y,onMounted as j,resolveComponent as d,createBlock as D,withCtx as i,createVNode as o,unref as F,createTextVNode as T,Fragment as W,renderList as $,normalizeClass as q,toDisplayString as k,createCommentVNode as E,reactive as K}from"vue";import{store as Q,Time as J,message as A}from"@koishijs/client";/*! Element Plus Icons Vue v2.3.2 */var Z=z({name:"Bottom",__name:"bottom",setup(a){return(n,l)=>(_(),g("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[t("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"})]))}}),ee=Z,te=z({name:"Top",__name:"top",setup(a){return(n,l)=>(_(),g("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[t("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"})]))}}),le=te;const se={class:"filter-container"},oe={class:"filter-row"},ae={class:"button-group"},ne={key:0,class:"empty-state"},ie="yyyy-MM-dd hh:mm:ss",re=z({__name:"page",setup(a){const n=B(),l=B("all"),s=B(""),m=B([]);function h(u){const p=J.template(ie,new Date(u.timestamp)),x=u.type.toUpperCase(),R=u.content.replace(/\u001b\[[0-9;]*m/g,"");return`[${p}] [${x}] ${R}`}const c=V(()=>m.value.filter(u=>!u.includes("[ERROR]")&&!u.includes("[WARN]"))),e=V(()=>m.value.filter(u=>u.includes("[ERROR]")||u.includes("[WARN]"))),r=V(()=>{switch(l.value){case"normal":return c.value;case"error":return e.value;default:return m.value}}),v=V(()=>{if(!s.value.trim())return r.value;const u=s.value.toLowerCase();return r.value.filter(p=>p.toLowerCase().includes(u))});function f(u){return u.includes("[ERROR]")?"log-error":u.includes("[WARN]")?"log-warn":u.includes("[INFO]")?"log-info":""}const y=()=>{n.value&&(n.value.scrollTop=0)},b=()=>{n.value&&(n.value.scrollTop=n.value.scrollHeight)};return Y(()=>Q.onilogs,u=>{u&&(m.value=u.map(h))},{deep:true,immediate:true}),Y(()=>m.value.length,()=>{setTimeout(b,0)}),j(()=>{b()}),(u,p)=>{const x=d("el-tab-pane"),R=d("el-tabs"),S=d("el-input"),M=d("el-icon"),O=d("el-button"),C=d("k-layout");return _(),D(C,null,{default:i(()=>[t("div",se,[o(R,{modelValue:l.value,"onUpdate:modelValue":p[0]||(p[0]=w=>l.value=w),class:"log-tabs"},{default:i(()=>[o(x,{name:"all",label:"全部日志"}),o(x,{name:"normal",label:"正常日志"}),o(x,{name:"error",label:"错误/警告"})]),_:1},8,["modelValue"]),t("div",oe,[o(S,{modelValue:s.value,"onUpdate:modelValue":p[1]||(p[1]=w=>s.value=w),placeholder:"搜索日志内容...",clearable:"",class:"filter-input"},null,8,["modelValue"]),t("div",ae,[o(O,{size:"small",onClick:y},{default:i(()=>[o(M,null,{default:i(()=>[o(F(le))]),_:1}),p[2]||(p[2]=T(" 顶部 ",-1))]),_:1}),o(O,{size:"small",onClick:b},{default:i(()=>[o(M,null,{default:i(()=>[o(F(ee))]),_:1}),p[3]||(p[3]=T(" 底部 ",-1))]),_:1})])])]),t("div",{class:"log-container",ref_key:"scrollRef",ref:n},[(_(true),g(W,null,$(v.value,(w,N)=>(_(),g("div",{key:N,class:"log-line"},[t("pre",{class:q(f(w))},k(w),3)]))),128)),v.value.length===0?(_(),g("div",ne,[...p[4]||(p[4]=[t("p",null,"暂无日志",-1)])])):E("v-if",true)],512)]),_:1})}}}),P=(a,n)=>{const l=a.__vccOpts||a;for(const[s,m]of n)l[s]=m;return l},ue=P(re,[["__scopeId","data-v-62639236"]]),H=10,ce=2e4,de=1.33,L={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},I={steam:20,oil:40,hydrogen:60,biodiesel:50,booster:12e3},U={steam:900,fuel:900,oxygen:2700},pe={steam:"steamEngine",oil:"oilEngine",hydrogen:"hydrogenEngine",biodiesel:"biodieselEngine"},me={ResearchModule:"研究舱",CargoBay:"固体货舱",GasCargoBay:"气体货舱",LiquidCargoBay:"液体货舱",SpecialCargoBay:"生物货舱",TouristModule:"观光舱",RoboPilotCommandModule:"机器驾驶舱"};function X(a){return Math.ceil(Math.max(a,Math.pow(a/300,3.2)))}function _e(a){const n={};for(const[l,s]of Object.entries(a))typeof s=="number"&&s>=0&&(n[l]=s);return n}function fe(a){let n=L.CommandModule;for(const l in a)Object.prototype.hasOwnProperty.call(a,l)&&(n+=(L[l]||0)*a[l]);return n}function G(a){return a.length===0?[]:(a.sort((n,l)=>n.weight-l.weight),[a[0]])}function ve(a,n){a+=L.steamEngine;const l=[];for(let s=0;s<=H;s++){const m=a+L.SolidBooster*s,h=I.booster*s;for(let c=0;c<=U.steam;c++){const e=m+c,r=h+I.steam*c,v=X(e),f=r-v;if(f>=n){l.push({capacity:c,booster:s,weight:e,mergedDistance:r,punish:v,finalDistance:f});break}}}return G(l)}function ge(a,n,l,s,m,h,c,e){const r=Math.ceil(a/U.fuel),v=Math.ceil(a/U.oxygen),f=e==="liquid"?L.OxidizerTankLiquid:L.OxidizerTank,y=l+L.LiquidFuelTank*r+f*v,b=a*2,u=y+b,p=Math.floor(s+m*a*h),x=X(u),R=p-x;return R<c?{isValid:false}:{isValid:true,solution:{capacity:a,booster:n,fuelCount:r,oxygenCount:v,dryWeight:y,wetWeight:b,weight:u,mergedDistance:p,punish:x,finalDistance:R}}}function ye(a,n,l,s,m){const h=I[a],c=s==="liquid"?de:1;n+=L[pe[a]];const e=[];for(let r=0;r<=H;r++){const v=n+L.SolidBooster*r,f=I.booster*r;for(let y=0;y<=ce;y+=10){const b=ge(y,r,v,f,h,c,l,s);if(b.isValid){e.push(b.solution);break}}}if(e.length===0)return[];if(!m){const r=new Map;for(const v of e){const f=v.fuelCount;(!r.has(f)||r.get(f).weight>v.weight)&&r.set(f,v)}return G(Array.from(r.values()))}return G(e)}function be(a){const{type:n,distance:l,oxygenType:s,allowWaste:m,...h}=a,c=_e(h),e=fe(c);return n==="steam"?ve(e,l):ye(n,e,l,s,m)}const Ce={class:"rocket-calculator sci-fi-bg"},ke={class:"content-layout"},he={class:"config-section"},we={class:"distance-control"},xe={class:"distance-step-selector"},Re={class:"distance-input-wrapper"},Ee={class:"distance-value"},Te={class:"oxidizer-hint"},Le={class:"config-section"},Me={class:"modules-grid"},Be={class:"module-header"},Ve={class:"module-name"},Se={key:0,class:"empty-state"},Oe={key:1,class:"empty-state"},We={class:"key-stats"},qe={class:"stat-item primary"},De={class:"stat-value"},Ie={class:"stat-item success"},ze={class:"stat-value"},Ne={class:"stat-item warning"},Ae={class:"stat-value"},Fe={class:"detail-stats"},$e={class:"detail-grid"},Ue={class:"detail-item"},Ge={class:"detail-label"},Pe={class:"detail-value"},Ye={class:"detail-item"},He={class:"detail-value"},Xe={key:0,class:"detail-item"},je={class:"detail-value"},Ke={key:1,class:"detail-item"},Qe={class:"detail-value"},Je={class:"data-table-section"},Ze={class:"table-wrapper"},et=z({__name:"calculator",setup(a){const n=V(()=>{const c=[];for(let e=1e4;e<=19e4;e+=1e4)c.push(e);return c}),l=K({type:"steam",distance:1e4,oxygenType:"solid",allowWaste:false,ResearchModule:0,CargoBay:0,GasCargoBay:0,LiquidCargoBay:0,SpecialCargoBay:0,TouristModule:0,RoboPilotCommandModule:0}),s=B(null),m=()=>{try{const c=be(l);s.value=c,c.length>0?A.success("解算完成!已收敛到最优解"):A.warning("解算失败,无解空间")}catch(c){A.error("解算器异常"),console.error(c)}},h=()=>{l.type="steam",l.distance=1e4,l.oxygenType="solid",l.ResearchModule=0,l.CargoBay=0,l.GasCargoBay=0,l.LiquidCargoBay=0,l.SpecialCargoBay=0,l.TouristModule=0,l.RoboPilotCommandModule=0,s.value=null};return(c,e)=>{const r=d("el-option"),v=d("el-select"),f=d("el-form-item"),y=d("el-button"),b=d("el-radio-button"),u=d("el-radio-group"),p=d("el-form"),x=d("el-input-number"),R=d("k-card"),S=d("el-divider"),M=d("el-table-column"),O=d("el-table");return _(),g("div",Ce,[E(" 背景装饰网格 "),e[32]||(e[32]=t("div",{class:"grid-overlay"},null,-1)),o(R,{class:"header-card sci-fi-card"},{default:i(()=>[e[29]||(e[29]=t("div",{class:"header-glow"},null,-1)),e[30]||(e[30]=t("h1",{class:"sci-fi-title"},"ONI ROCKET CALCULATOR",-1)),e[31]||(e[31]=t("p",{class:"sci-fi-subtitle"},"缺氧火箭最优配置解算系统 · 基于官方物理引擎",-1)),t("div",ke,[E(" 输入控制台 "),o(R,{class:"form-card sci-fi-card"},{default:i(()=>[e[9]||(e[9]=t("div",{class:"card-header-line"},null,-1)),E(" 主配置 "),t("div",he,[e[6]||(e[6]=t("h3",{class:"section-title"},"【核心参数】",-1)),o(p,{model:l,size:"large",class:"sci-fi-form","label-position":"top"},{default:i(()=>[o(f,{label:"引擎类型"},{default:i(()=>[o(v,{modelValue:l.type,"onUpdate:modelValue":e[0]||(e[0]=C=>l.type=C),style:{width:"100%"},class:"sci-fi-select"},{default:i(()=>[o(r,{label:"蒸汽引擎",value:"steam"}),o(r,{label:"石油引擎",value:"oil"}),o(r,{label:"液氢引擎",value:"hydrogen"}),o(r,{label:"生物柴油引擎",value:"biodiesel"})]),_:1},8,["modelValue"])]),_:1}),o(f,{label:"目标轨道"},{default:i(()=>[t("div",we,[E(" 10000km 一档的步进选择器 "),t("div",xe,[(_(true),g(W,null,$(n.value,C=>(_(),D(y,{key:C,class:q(["step-btn",{active:l.distance===C}]),onClick:w=>l.distance=C},{default:i(()=>[T(k(C/1e3)+"k ",1)]),_:2},1032,["class","onClick"]))),128))]),t("div",Re,[e[2]||(e[2]=t("span",{class:"distance-label"},"当前:",-1)),t("span",Ee,k(l.distance.toLocaleString()),1),e[3]||(e[3]=t("span",{class:"unit"},"km",-1))])])]),_:1}),l.type!=="steam"?(_(),D(f,{key:0,label:"氧化剂"},{default:i(()=>[o(u,{modelValue:l.oxygenType,"onUpdate:modelValue":e[1]||(e[1]=C=>l.oxygenType=C),class:"sci-fi-radio-group"},{default:i(()=>[o(b,{label:"solid"},{default:i(()=>[...e[4]||(e[4]=[T("氧石",-1)])]),_:1}),o(b,{label:"liquid"},{default:i(()=>[...e[5]||(e[5]=[T("液氧",-1)])]),_:1})]),_:1},8,["modelValue"]),t("div",Te,[t("span",{class:q(["hint-item",{active:l.oxygenType==="solid"}])},"1.0x 效率",2),t("span",{class:q(["hint-item",{active:l.oxygenType==="liquid"}])},"1.33x 效率",2)])]),_:1})):E("v-if",true)]),_:1},8,["model"])]),e[10]||(e[10]=t("div",{class:"divider-line"},null,-1)),E(" 可选模块 "),t("div",Le,[e[8]||(e[8]=t("h3",{class:"section-title"},"【载荷配置】",-1)),o(p,{model:l,size:"large",class:"modules-form","label-position":"top"},{default:i(()=>[t("div",Me,[(_(true),g(W,null,$(F(me),(C,w)=>(_(),g("div",{key:w,class:"module-item"},[t("div",Be,[t("span",Ve,k(C),1)]),o(x,{modelValue:l[w],"onUpdate:modelValue":N=>l[w]=N,min:0,max:20,class:"module-input"},null,8,["modelValue","onUpdate:modelValue"])]))),128))]),o(f,{class:"calculate-btn-wrapper"},{default:i(()=>[o(y,{onClick:m,class:"sci-fi-calculate-btn"},{default:i(()=>[...e[7]||(e[7]=[t("span",{class:"btn-text"},"▶ 执行解算",-1),t("span",{class:"btn-glow"},null,-1)])]),_:1})]),_:1})]),_:1},8,["model"])])]),_:1}),E(" 结果显示面板 "),o(R,{class:"result-card sci-fi-card"},{default:i(()=>[e[28]||(e[28]=t("div",{class:"card-header-line"},null,-1)),s.value?s.value.length===0?(_(),g("div",Oe,[e[13]||(e[13]=t("div",{class:"empty-icon"},"⚠️",-1)),e[14]||(e[14]=t("p",{class:"empty-text error"},"解算失败",-1)),e[15]||(e[15]=t("p",{class:"empty-hint"},"无法找到满足条件的配置,请尝试减少载荷",-1)),o(y,{onClick:h,class:"sci-fi-reset-btn"},{default:i(()=>[...e[12]||(e[12]=[T("重置参数",-1)])]),_:1})])):(_(),g(W,{key:2},[e[27]||(e[27]=t("div",{class:"result-header"},[t("h3",{class:"result-title"},"✅ 最优解算结果"),t("div",{class:"result-status"},[t("span",{class:"status-dot"}),t("span",null,"CONVERGED")])],-1)),t("div",We,[t("div",qe,[e[17]||(e[17]=t("div",{class:"stat-label"},"总起飞重量",-1)),t("div",De,[T(k(s.value[0].weight.toLocaleString())+" ",1),e[16]||(e[16]=t("span",{class:"stat-unit"},"kg",-1))])]),t("div",Ie,[e[19]||(e[19]=t("div",{class:"stat-label"},"预计射程",-1)),t("div",ze,[T(k(s.value[0].finalDistance.toLocaleString())+" ",1),e[18]||(e[18]=t("span",{class:"stat-unit"},"km",-1))])]),t("div",Ne,[e[21]||(e[21]=t("div",{class:"stat-label"},"质量惩罚",-1)),t("div",Ae,[T(k(s.value[0].punish.toLocaleString())+" ",1),e[20]||(e[20]=t("span",{class:"stat-unit"},"km",-1))])])]),o(S,{class:"sci-fi-divider"}),t("div",Fe,[e[25]||(e[25]=t("h4",{class:"detail-title"},"【配置详情】",-1)),t("div",$e,[t("div",Ue,[t("span",Ge,k(l.type==="steam"?"蒸汽填充量":"燃料填充量"),1),t("span",Pe,k(s.value[0].capacity.toLocaleString())+" kg",1)]),t("div",Ye,[e[22]||(e[22]=t("span",{class:"detail-label"},"助推器数量",-1)),t("span",He,k(s.value[0].booster)+" 个",1)]),s.value[0].fuelCount!==void 0?(_(),g("div",Xe,[e[23]||(e[23]=t("span",{class:"detail-label"},"燃料舱数量",-1)),t("span",je,k(s.value[0].fuelCount)+" 个",1)])):E("v-if",true),s.value[0].oxygenCount!==void 0?(_(),g("div",Ke,[e[24]||(e[24]=t("span",{class:"detail-label"},"氧化剂舱数量",-1)),t("span",Qe,k(s.value[0].oxygenCount)+" 个",1)])):E("v-if",true)])]),o(S,{class:"sci-fi-divider"}),t("div",Je,[e[26]||(e[26]=t("h4",{class:"detail-title"},"【原始数据】",-1)),t("div",Ze,[o(O,{data:s.value,stripe:"",class:"sci-fi-table"},{default:i(()=>[o(M,{prop:"weight",label:"总重(kg)",sortable:""}),o(M,{prop:"finalDistance",label:"射程(km)",sortable:""}),o(M,{prop:"booster",label:"助推器"}),o(M,{prop:"fuelCount",label:"燃料舱"}),o(M,{prop:"oxygenCount",label:"氧化剂舱"})]),_:1},8,["data"])])])],64)):(_(),g("div",Se,[...e[11]||(e[11]=[t("div",{class:"scan-line"},null,-1),t("div",{class:"empty-icon"},"📡",-1),t("p",{class:"empty-text"},"等待输入参数...",-1),t("p",{class:"empty-hint"},"请配置核心参数与载荷",-1)])]))]),_:1})])]),_:1})])}}}),tt=P(et,[["__scopeId","data-v-3e8f9409"]]),lt={};function st(a,n){const l=d("k-slot"),s=d("el-scrollbar"),m=d("k-layout");return _(),D(m,null,{default:i(()=>[o(s,{class:"scrollbar"},{default:i(()=>[o(l,{name:"calculator"})]),_:1})]),_:1})}const ot=P(lt,[["render",st],["__scopeId","data-v-7f2607d9"]]),it=a=>{a.page({name:"同步机器人",path:"/onilogs",component:ue,fields:["onilogs"]}),a.page({name:"火箭计算器",path:"/calculator",component:ot}),a.slot({type:"calculator",component:tt})};export{it as default};
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .log-container[data-v-361e99da]{width:100%;height:100%;overflow-y:auto;padding:12px;font-family:monospace;background:#1e1e1e;color:#d4d4d4}.log-line[data-v-361e99da]{line-height:1.5;font-size:13px}pre[data-v-361e99da]{margin:0;font-family:inherit;white-space:pre-wrap;word-break:break-all}[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-e3ac158b]{background:linear-gradient(135deg,#0a0e27,#1a1f3a,#0f172a);color:#e0e7ff}
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}
package/lib/index.d.ts CHANGED
@@ -1,33 +1,11 @@
1
- import { Context, Logger, Schema } from "koishi";
1
+ import { Context, Schema } from "koishi";
2
+ import { WikiBotServiceConfig } from "./services/wikiBotService";
3
+ import { RouteRedirectConfig } from "./plugins/routeRedirect";
4
+ import { SyncCommandsConfig } from "./plugins/syncCommands";
5
+ import { QueryCommandsConfig } from "./plugins/queryCommands";
6
+ import { UpdateCommandsConfig } from "./plugins/updateCommands";
2
7
  export declare const name = "oni-sync-bot";
3
- export declare const inject: string[];
4
- declare module "@koishijs/console" {
5
- namespace Console {
6
- interface Services {
7
- onilogs: DataService<Logger.Record[]>;
8
- }
9
- }
10
- }
11
- declare module "koishi" {
12
- interface Tables {
13
- wikipages: WikiPages;
14
- }
15
- }
16
- export interface WikiPages {
17
- id: number;
18
- title: string;
19
- pinyin_full: string;
20
- pinyin_first: string;
21
- }
22
- export interface Config {
23
- ggUsername: string;
24
- ggPassword: string;
25
- bwikiusername: string;
26
- bwikipassword: string;
27
- domain: string;
28
- main_site: string;
29
- bwiki_site: string;
30
- logsUrl: string;
8
+ export interface Config extends WikiBotServiceConfig, RouteRedirectConfig, SyncCommandsConfig, QueryCommandsConfig, UpdateCommandsConfig {
31
9
  }
32
10
  export declare const Config: Schema<Config>;
33
11
  export declare function apply(ctx: Context, config: Config): void;