You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
haoliang-net/deploy-web/admin/assets/SimulatorDetailPage-DeC_D--...

1 line
7.7 KiB
JavaScript

import{A as e,E as t,F as n,I as r,M as i,N as ee,T as a,_ as o,b as s,c,f as l,g as u,h as d,k as f,m as p,n as m,o as h,r as g,u as _,w as v,x as y,y as b,z as x}from"./index-yNQwsZKK.js";import{t as S}from"./useMockMode-CGiTg8lx.js";import{c as C,g as w,l as T,n as E,p as D,r as O,s as k,t as A,u as j}from"./simulator-BI0WXqne.js";var M={class:`mb-16`,style:{display:`flex`,"justify-content":`space-between`,"align-items":`center`}},N={style:{display:`flex`,"align-items":`center`,gap:`12px`}},P={style:{"font-size":`16px`,"font-weight":`600`}},F={key:0,style:{height:`200px`}},I={style:{"font-size":`24px`,"font-weight":`700`,color:`#303133`}},L={style:{"font-size":`24px`,"font-weight":`700`,color:`#67c23a`}},te={style:{"font-size":`24px`,"font-weight":`700`,color:`#409eff`}},ne={style:{"font-size":`24px`,"font-weight":`700`,color:`#e6a23c`}},R={class:`mb-16`},z={style:{padding:`12px`,"font-size":`12px`,"max-height":`300px`,overflow:`auto`,"white-space":`pre-wrap`}},B=y({__name:`SimulatorDetailPage`,setup(y){let B=m(),V=g(),{isMock:H}=S(),U=Number(B.params.port),W=n(null),G=n(null),K=n([]),q=n(10),J=null;async function Y(){try{W.value=(await O(U)).data??null,W.value&&(q.value=W.value.dataChangeInterval)}catch{h.error(`获取地址状态失败`)}}async function X(){try{G.value=(await E(U)).data??null}catch{}}async function re(){try{K.value=(await A(U)).data??[]}catch{}}function ie(){let e=H.value?`/mock`:``;V.push(`${e}/simulator`)}async function Z(e){try{e===`start`?(await j(U),h.success(`已启动`)):(await D(U),h.success(`已停止`)),await Y()}catch(e){h.error(e?.message??`操作失败`)}}async function Q(e,t){try{await w(U,{deviceId:e,eventType:t}),h.success(`事件已触发`),await Y()}catch(e){h.error(e?.message??`触发失败`)}}async function ae(e){try{await k(U,{value:e}),h.success(`频率已修改`)}catch(e){h.error(e?.message??`修改失败`)}}async function oe(e){try{await T(U,{mode:e}),h.success(`模式已切换`),await Y()}catch(e){h.error(e?.message??`切换失败`)}}async function se(e){try{await C(U,{type:e}),h.success(`网络模拟已设置`),await Y()}catch(e){h.error(e?.message??`设置失败`)}}function ce(){$(),J=setInterval(()=>{document.visibilityState===`visible`&&(Y(),X())},5e3)}function $(){J&&=(clearInterval(J),null)}return v(async()=>{await Y(),await X(),await re(),ce()}),a(()=>{$()}),(n,a)=>{let m=f(`el-button`),h=f(`el-tag`),g=f(`el-popconfirm`),v=f(`el-card`),y=f(`el-col`),S=f(`el-row`),C=f(`el-table-column`),w=f(`el-table`),T=f(`el-slider`),E=f(`el-radio-button`),D=f(`el-radio-group`),O=f(`el-option`),k=f(`el-select`),A=f(`el-collapse-item`),j=f(`el-collapse`),B=e(`loading`);return t(),o(`div`,null,[p(`div`,M,[p(`div`,N,[s(m,{icon:r(c),onClick:ie},{default:i(()=>[...a[3]||=[b(`返回`,-1)]]),_:1},8,[`icon`]),p(`span`,P,x(W.value?.name??`加载中...`),1),W.value?(t(),d(h,{key:0,type:W.value.isRunning?`success`:`danger`,size:`small`},{default:i(()=>[b(x(W.value.isRunning?`运行中`:`已停止`),1)]),_:1},8,[`type`])):u(``,!0)]),p(`div`,null,[W.value&&!W.value.isRunning?(t(),d(m,{key:0,type:`success`,onClick:a[0]||=e=>Z(`start`)},{default:i(()=>[...a[4]||=[b(`启动`,-1)]]),_:1})):u(``,!0),W.value&&W.value.isRunning?(t(),d(g,{key:1,title:`确定停止数据模拟?`,onConfirm:a[1]||=e=>Z(`stop`)},{reference:i(()=>[s(m,{type:`danger`},{default:i(()=>[...a[5]||=[b(`停止`,-1)]]),_:1})]),_:1})):u(``,!0),s(m,{icon:r(_),circle:``,onClick:Y,style:{"margin-left":`8px`}},null,8,[`icon`])])]),W.value?(t(),o(l,{key:1},[s(S,{gutter:16,class:`mb-16`},{default:i(()=>[s(y,{span:6},{default:i(()=>[s(v,{shadow:`hover`,"body-style":`padding:16px`},{default:i(()=>[a[6]||=p(`div`,{style:{color:`#909399`,"font-size":`13px`,"margin-bottom":`4px`}},`设备总数`,-1),p(`div`,I,x(W.value.totalDevices),1)]),_:1})]),_:1}),s(y,{span:6},{default:i(()=>[s(v,{shadow:`hover`,"body-style":`padding:16px`},{default:i(()=>[a[7]||=p(`div`,{style:{color:`#909399`,"font-size":`13px`,"margin-bottom":`4px`}},`在线设备`,-1),p(`div`,L,x(W.value.onlineDevices),1)]),_:1})]),_:1}),s(y,{span:6},{default:i(()=>[s(v,{shadow:`hover`,"body-style":`padding:16px`},{default:i(()=>[a[8]||=p(`div`,{style:{color:`#909399`,"font-size":`13px`,"margin-bottom":`4px`}},`总零件数`,-1),p(`div`,te,x(G.value?.totalParts??`-`),1)]),_:1})]),_:1}),s(y,{span:6},{default:i(()=>[s(v,{shadow:`hover`,"body-style":`padding:16px`},{default:i(()=>[a[9]||=p(`div`,{style:{color:`#909399`,"font-size":`13px`,"margin-bottom":`4px`}},`请求次数`,-1),p(`div`,ne,x(W.value.requestCount),1)]),_:1})]),_:1})]),_:1}),p(`div`,R,[a[14]||=p(`h3`,{style:{margin:`0 0 12px`,"font-size":`15px`}},`设备状态`,-1),s(w,{data:W.value.devices,border:``,stripe:``,style:{width:`100%`},"max-height":`400`},{default:i(()=>[s(C,{prop:`deviceCode`,label:`编码`,width:`130`}),s(C,{prop:`desc`,label:`描述`,"min-width":`100`}),s(C,{prop:`scenario`,label:`场景`,width:`90`,align:`center`}),s(C,{prop:`programName`,label:`程序`,width:`90`,align:`center`}),s(C,{prop:`partCount`,label:`零件`,width:`70`,align:`center`}),s(C,{label:`状态`,width:`70`,align:`center`},{default:i(({row:e})=>[s(h,{type:e.isOnline?`success`:`danger`,size:`small`},{default:i(()=>[b(x(e.isOnline?`在线`:`离线`),1)]),_:2},1032,[`type`])]),_:1}),s(C,{label:`操作`,width:`200`,align:`center`},{default:i(({row:e})=>[s(m,{link:``,size:`small`,onClick:t=>Q(e.deviceCode,`change_program`)},{default:i(()=>[...a[10]||=[b(`换程序`,-1)]]),_:1},8,[`onClick`]),s(m,{link:``,size:`small`,onClick:t=>Q(e.deviceCode,`reset_parts`)},{default:i(()=>[...a[11]||=[b(`清零`,-1)]]),_:1},8,[`onClick`]),s(m,{link:``,size:`small`,onClick:t=>Q(e.deviceCode,`pause`)},{default:i(()=>[...a[12]||=[b(`暂停`,-1)]]),_:1},8,[`onClick`]),s(m,{link:``,size:`small`,onClick:t=>Q(e.deviceCode,`resume`)},{default:i(()=>[...a[13]||=[b(`恢复`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])]),s(j,{class:`mb-16`},{default:i(()=>[s(A,{title:`模拟设置`,name:`settings`},{default:i(()=>[s(S,{gutter:24},{default:i(()=>[s(y,{span:8},{default:i(()=>[a[15]||=p(`div`,{style:{"margin-bottom":`8px`,"font-size":`13px`,color:`#606266`}},`数据频率(秒)`,-1),s(T,{modelValue:q.value,"onUpdate:modelValue":a[2]||=e=>q.value=e,min:1,max:60,"show-input":``,onChange:ae},null,8,[`modelValue`])]),_:1}),s(y,{span:8},{default:i(()=>[a[18]||=p(`div`,{style:{"margin-bottom":`8px`,"font-size":`13px`,color:`#606266`}},`场景模式`,-1),s(D,{"model-value":W.value.scenarioMode,onChange:oe},{default:i(()=>[s(E,{value:`auto`},{default:i(()=>[...a[16]||=[b(`自动`,-1)]]),_:1}),s(E,{value:`manual`},{default:i(()=>[...a[17]||=[b(`手动`,-1)]]),_:1})]),_:1},8,[`model-value`])]),_:1}),s(y,{span:8},{default:i(()=>[a[19]||=p(`div`,{style:{"margin-bottom":`8px`,"font-size":`13px`,color:`#606266`}},`网络模拟`,-1),s(k,{"model-value":W.value.networkError,onChange:se,style:{width:`100%`}},{default:i(()=>[s(O,{label:`正常`,value:`normal`}),s(O,{label:`HTTP 500`,value:`http500`}),s(O,{label:`超时`,value:`timeout`}),s(O,{label:`空数据`,value:`empty`}),s(O,{label:`畸形JSON`,value:`malformed`}),s(O,{label:`拒绝连接`,value:`refuse`})]),_:1},8,[`model-value`])]),_:1})]),_:1})]),_:1})]),_:1}),p(`div`,null,[a[20]||=p(`h3`,{style:{margin:`0 0 12px`,"font-size":`15px`}},`最近请求日志`,-1),s(w,{data:K.value,border:``,stripe:``,style:{width:`100%`},"max-height":`300`},{default:i(()=>[s(C,{prop:`index`,label:`#`,width:`50`,align:`center`}),s(C,{prop:`timestamp`,label:`时间`,width:`100`}),s(C,{prop:`deviceCount`,label:`设备数`,width:`70`,align:`center`}),s(C,{prop:`keyData`,label:`关键数据`,"min-width":`200`,"show-overflow-tooltip":``}),s(C,{prop:`duration`,label:`耗时(ms)`,width:`80`,align:`center`}),s(C,{type:`expand`},{default:i(({row:e})=>[p(`pre`,z,x(e.fullJson),1)]),_:1})]),_:1},8,[`data`])])],64)):ee((t(),o(`div`,F,null,512)),[[B,!0]])])}}});export{B as default};