Files
monibuca/plugin/console/web/assets/index-eabbb46f.js
2024-10-07 14:14:00 +08:00

2 lines
1.4 KiB
JavaScript

import{i as V}from"./index-c14b60e2.js";import{O as _}from"./vendor-ec30964e.js";const f={class:"page"},b={class:"btn"},S=Vue.defineComponent({props:{esURL:String},emits:["tick"],setup(c,{emit:l}){const v=c,{t:d}=V.global,u=localStorage.getItem("interval"),t=Vue.ref(Math.min(4,u?Number(u):4)),s=Vue.ref(!0);let e;Vue.ref([{label:d("关闭"),value:0},{label:"1s",value:1},{label:"2s",value:2},{label:"5s",value:5},{label:"10s",value:10}]);let r;const o=()=>clearInterval(r);return Vue.watchEffect(()=>{s.value?(o(),localStorage.setItem("interval",String(t.value)),t.value&&(r=setInterval(()=>l("tick"),[0,1,2,5,10][t.value]*1e3)),e==null||e.close()):(o(),e=new EventSource(v.esURL),e.onmessage=n=>{l("tick",JSON.parse(n.data))})}),Vue.onMounted(()=>{l("tick"),Vue.onUnmounted(o)}),_(()=>{e==null||e.close()}),(n,a)=>{const m=Vue.resolveComponent("n-slider"),p=Vue.resolveComponent("n-button");return Vue.openBlock(),Vue.createElementBlock("div",f,[Vue.createVNode(m,{value:t.value,"onUpdate:value":a[0]||(a[0]=i=>t.value=i),min:0,max:4,marks:{0:n.$t("关闭"),1:"1s",2:"2s",3:"5s",4:"10s"},step:"mark",style:{width:"150px"}},null,8,["value","marks"]),Vue.createElementVNode("div",b,[Vue.createVNode(p,{disabled:!s.value,size:"small",onClick:a[1]||(a[1]=i=>l("tick"))},{default:Vue.withCtx(()=>[Vue.createTextVNode(Vue.toDisplayString(n.$t("立即刷新")),1)]),_:1},8,["disabled"])])])}}});export{S as _};