Files
wecom_it_smart_desk/frontend-agent/dist.bak/assets/SessionWorkbench-Caqy0KdE.js
T

2 lines
12 KiB
JavaScript
Raw Normal View History

import{v as oe,r as S,x as g,d as M,b as v,n as V,w as u,f as t,t as d,g as p,h as b,c as x,e as j,i as f,m as E,o as le,a as re,u as B,Y as ie,y as ue,F as J,z as Y,E as L,j as ce,q as de}from"./index-B1u3nieA.js";import{a as U}from"./index-ChNUjLLo.js";import{u as pe}from"./agent-WRYR5BAs.js";import"./conversation-C4tqOoff.js";async function ve(a){return await U.post("/itportal/automation/sessions",a)}async function fe(a){return await U.get("/itportal/automation/sessions",{params:a})}async function _e(a){return await U.get(`/itportal/automation/sessions/${a}`)}async function me(a,c){return await U.post(`/itportal/automation/sessions/${a}/approve`,c)}async function ye(a,c){return await U.post(`/itportal/automation/sessions/${a}/takeover`,c)}function G(){return localStorage.getItem("agent_token")||""}function ge(a){const c=G(),l=window.location.protocol==="https:"?"wss:":"ws:",w=window.location.host;return`${l}//${w}/ws/automation/${a}?token=${encodeURIComponent(c)}`}const we=oe("automation",()=>{const a=S([]),c=S(null),l=S(!1),w=S(null),n=S(null),s=S(!1),r=g(()=>a.value.filter(i=>["created","running","paused"].includes(i.status)));async function $(){l.value=!0;try{a.value=await fe()}finally{l.value=!1}}async function A(i){l.value=!0;try{c.value=await _e(i)}finally{l.value=!1}}async function y(i){const _=await ve(i);return c.value=_,await $(),_}async function W(i,_,I){const k={decision:_,note:I};c.value=await me(i,k)}async function C(i,_,I){const k={agent_id:_,note:I};c.value=await ye(i,k)}function z(i){m();const _=ge(i),I=G(),k=new WebSocket(_,[`bearer.${I}`]);w.value=k,n.value=i,k.onopen=()=>{s.value=!0},k.onmessage=R=>{try{const N=JSON.parse(R.data);T(N)}catch(N){console.error("[automation WS] 消息解析失败",N)}},k.onclose=()=>{s.value=!1},k.onerror=()=>{s.value=!1}}function m(){w.value&&(w.value.close(),w.value=null),s.value=!1,n.value=null}function T(i){if(!(i.session_id&&n.value&&i.session_id!==n.value))switch(i.type){case"automation.progress":case"automation.action_required":case"automation.resolved":case"automation.takeover":case"automation.error":n.value&&A(n.value);break}}return{sessions:a,currentSession:c,loading:l,wsConnected:s,pendingSessions:r,fetchSessions:$,fetchSession:A,createSession:y,approve:W,takeover:C,connectWs:z,disconnectWs:m}}),ke={class:"card-header"},he={class:"title-row"},be={class:"action-title"},Se={class:"action-desc"},xe={key:0,class:"action-type"},Ie={key:0,class:"payload-block"},$e={class:"payload-pre"},Ae={key:1,class:"ticket-block"},Ce={class:"ticket-status"},Te={class:"action-buttons"},Ve=M({__name:"ActionApprovalCard",props:{action:{},ticket:{}},emits:["approve","reject"],setup(a,{emit:c}){const l=a,w=c,n=S(""),s=S(!1),r=g(()=>{switch(l.action.risk_level){case"read":return"只读";case"low":return"低风险";case"high":return"高危";default:return l.action.risk_level}}),$=g(()=>{switch(l.action.risk_level){case"read":return"info";case"low":return"success";case"high":return"danger";default:return"info"}}),A=g(()=>{if(!l.ticket)return"无";switch(l.ticket.status){case"pending":return"待审批";case"approved":return"已通过";case"rejected":return"已驳回";default:return l.ticket.status}}),y=g(()=>{try{return JSON.stringify(l.action.payload,null,2)}catch{return String(l.action.payload)}});async function W(){s.value=!0;try{w("approve",{actionId:l.action.id,note:n.value||void 0})}finally{s.value=!1}}async function C(){s.value=!0;try{w("reject",{actionId:l.action.id,note:n.value||void 0})}finally{s.value=!1}}return(z,m)=>{const T=f("el-tag"),i=f("el-button"),_=f("el-input"),I=f("el-card");return v(),V(I,{class:"action-approval-card",shadow:"hover","body-style":{padding:"14px"}},{default:u(()=>[t("div",ke,[t("div",he,[t("span",be,d(a.action.title),1),p(T,{type:$.value,size:"small",effect:"dark"},{default:u(()=>[b(d(r.value),1)]),_:1},8,["type"])]),t("div",Se,d(a.action.description),1),a.action.action_type?(v(),x("div",xe,"类型:"+d(a.action.action_type),1)):j("",!0)]),a.action.payload?(v(),x("div",Ie,[m[1]||(m[1]=t("div",{class:"block-label"},"动作参数",-1)),t("pre",$e,d(