2 lines
4.9 KiB
JavaScript
2 lines
4.9 KiB
JavaScript
|
|
import{d as j,o as q,b as u,c as V,e as i,j as x,f as a,T as D,U as F,w as n,r as C,i as s,n as J,t as p,g as r,h as H,v as I,E as f,u as L}from"./index-BCt9h3P8.js";import{u as R}from"./automation-BIwrmW3Y.js";import{_ as G}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./index-CTvVpU0T.js";const K={class:"automation-config"},P={key:0,class:"loading-state"},Q={key:1,class:"feature-grid"},W={class:"sc-header"},X={class:"sc-name"},Y={class:"sc-key"},Z={class:"sc-desc"},h={class:"sc-actions"},ee=j({__name:"ScenarioConfig",setup(te){const m=R(),O=L(),_=C(!1),b=C(!1),c=C(null),t=I({name:"",description:"",enabled:!0,trigger_conditions:"",actions:"",approval_strategy:""});q(()=>{m.loadScenarios()});async function U(l,e){try{await m.updateScenario(l.id,{enabled:e}),f.success(e?"已启用":"已停用")}catch{f.error("切换失败")}}function A(l){c.value=l,t.name=l.name,t.description=l.description,t.enabled=l.enabled,t.trigger_conditions=l.trigger_conditions?JSON.stringify(l.trigger_conditions,null,2):"",t.actions=l.actions?JSON.stringify(l.actions,null,2):"[]",t.approval_strategy=l.approval_strategy?JSON.stringify(l.approval_strategy,null,2):"",_.value=!0}async function B(){if(!c.value)return;let l,e,v;try{l=t.trigger_conditions?JSON.parse(t.trigger_conditions):void 0,e=t.actions?JSON.parse(t.actions):void 0,v=t.approval_strategy?JSON.parse(t.approval_strategy):void 0}catch{f.error("JSON 格式有误,请检查后重试");return}b.value=!0;try{await m.updateScenario(c.value.id,{name:t.name,description:t.description,enabled:t.enabled,trigger_conditions:l,actions:e,approval_strategy:v}),f.success("配置已保存"),_.value=!1}catch{f.error("保存失败")}finally{b.value=!1}}function E(l){O.push({name:"AutomationVersions",query:{scenario:l.scenario_key}})}return(l,e)=>{var w;const v=s("el-skeleton"),N=s("el-switch"),k=s("el-descriptions-item"),z=s("el-descriptions"),y=s("el-button"),T=s("el-card"),g=s("el-input"),d=s("el-form-item"),$=s("el-form"),M=s("el-dialog");return u(),V("div",K,[e[12]||(e[12]=i("div",{class:"page-title"},"自动化场景配置",-1)),e[13]||(e[13]=i("div",{class:"page-desc"}," 按场景控制自动化处置的开关与策略,运行时切换即时生效。高危动作需员工/H5 二次确认。 ",-1)),x(m).loading?(u(),V("div",P,[a(v,{rows:8,animated:""})])):(u(),V("div",Q,[(u(!0),V(D,null,F(x(m).scenarios,o=>(u(),J(T,{key:o.id,class:"scenario-card",shadow:"hover"},{default:n(()=>[i("div",W,[i("div",null,[i("div",X,p(o.name),1),i("div",Y,p(o.scenario_key),1)]),a(N,{"model-value":o.enabled,onChange:S=>U(o,S)},null,8,["model-value","onChange"])]),i("div",Z,p(o.description||"暂无描述"),1),a(z,{column:1,size:"small",class:"sc-meta",border:""},{default:n(()=>[a(k,{label:"触发条件"},{default:n(()=>[r(p(o.trigger_conditions?"已配置":"默认"),1)]),_:2},1024),a(k,{label:"动作数"},{default:n(()=>[r(p(Array.isArray(o.actions)?o.actions.length:0),1)]),_:2},1024),a(k,{label:"审批策略"},{default:n(()=>[r(p(o.approval_strategy?"已配置":"默认"),1)]),_:2},1024)]),_:2},1024),i("div",h,[a(y,{size:"small",onClick:S=>A(o)},{default:n(()=>[...e[8]||(e[8]=[r("编辑策略",-1)])]),_:1},8,["onClick"]),a(y,{size:"small",type:"primary",onClick:S=>E(o)},{default:n(()=>[...e[9]||(e[9]=[r("版本管理",-1)])]),_:1},8,["onClick"])])]),_:2},1024))),128))])),a(M,{modelValue:_.value,"onUpdate:modelValue":e[7]||(e[7]=o=>_.value=o),title:"编辑场景 — "+(((w=c.value)==null?void 0:w.name)||""),width:"640px","destroy-on-close":""},{footer:n(()=>[a(y,{onClick:e[6]||(e[6]=o=>_.value=!1)},{default:n(()=>[...e[10]||(e[10]=[r("取消",-1)])]),_:1}),a(y,{type:"primary",loading:b.value,onClick:B},{default:n(()=>[...e[11]||(e[11]=[r("保存",-1)])]),_:1},8,["loading"])]),default:n(()=>[c.value?(u(),J($,{key:0,"label-position":"top"},{default:n(()=>[a(d,{label:"场景名称"},{default:n(()=>[a(g,{modelValue:t.name,"onUpdate:modelValue":e[0]||(e[0]=o=>t.name=o)},null,8,["modelValue"])]),_:1}),a(d,{label:"描述"},{default:n(()=>[a(g,{modelValue:t.description,"onUpdate:modelValue":e[1]||(e[1]=o=>t.description=o),typ
|