import{d as W,b as f,c as m,a5 as le,e as y,f as t,w as n,n as P,a3 as ie,a2 as oe,t as k,g as b,ab as ue,V as L,h as I,U as H,i as A,o as re,W as ce,r as $,j as de,ac as fe,v as D,E as p}from"./index-CXRNRwY6.js";import{_ as j}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{q as ge,t as S,v as ve,w as ye,x as pe}from"./admin-WeuzXR_q.js";import"./index-BYeSIZFz.js";const me={class:"integration-name"},_e={class:"integration-status"},be={class:"integration-detail"},ke={key:0,class:"config-info"},we={class:"config-info"},Ue={key:0,class:"config-info"},Ie={class:"config-info"},Ve={key:0,class:"config-info"},Ke={class:"config-info"},Ae={class:"integration-actions"},Ce=W({__name:"IntegrationCard",props:{integration:{},icon:{},iconBg:{},iconColor:{}},emits:["configure","test","view"],setup(u){const x=u,g=H(()=>{switch(x.integration.status){case"connected":return"success";case"partial":return"warning";case"disconnected":return"info";case"pending":return"info";default:return"info"}}),_=H(()=>{switch(x.integration.status){case"connected":return"已连接";case"partial":return"部分集成";case"disconnected":return"未连接";case"pending":return"待确认";default:return x.integration.status}});return(c,d)=>{const r=A("el-icon"),l=A("el-tag"),w=A("el-button");return f(),m("div",{class:le(["integration-card",{"is-configurable":u.integration.configurable}])},[y("div",{class:"integration-icon",style:oe({background:u.iconBg,color:u.iconColor})},[t(r,{size:22},{default:n(()=>[(f(),P(ie(u.icon)))]),_:1})],4),y("div",me,k(u.integration.name),1),y("div",_e,[t(l,{type:g.value,size:"small",effect:"dark"},{default:n(()=>[b(k(_.value),1)]),_:1},8,["type"])]),y("div",be,[ue(c.$slots,"detail",{},()=>[u.integration.configurable&&u.integration.config?(f(),m(L,{key:0},[u.integration.config_type==="url_key"||!u.integration.config_type?(f(),m(L,{key:0},[u.integration.config.api_url?(f(),m("div",ke,"API: "+k(u.integration.config.api_url),1)):I("",!0),y("div",we,k(u.integration.config.api_key_set?"密钥已配置":"密钥未配置"),1)],64)):u.integration.config_type==="access_key"?(f(),m(L,{key:1},[u.integration.config.base_url?(f(),m("div",Ue,"URL: "+k(u.integration.config.base_url),1)):I("",!0),y("div",Ie,k(u.integration.config.access_key_id_set?"AccessKey 已配置":"AccessKey 未配置"),1)],64)):u.integration.config_type==="account_password"?(f(),m(L,{key:2},[u.integration.config.base_url?(f(),m("div",Ve,"URL: "+k(u.integration.config.base_url),1)):I("",!0),y("div",Ke,k(u.integration.config.api_account_set?"账号已配置":"账号未配置"),1)],64)):I("",!0)],64)):I("",!0)],!0)]),y("div",Ae,[u.integration.configurable?(f(),P(w,{key:0,size:"small",type:"primary",onClick:d[0]||(d[0]=V=>c.$emit("configure",u.integration))},{default:n(()=>[...d[3]||(d[3]=[b(" 配置 ",-1)])]),_:1})):I("",!0),u.integration.configurable?(f(),P(w,{key:1,size:"small",onClick:d[1]||(d[1]=V=>c.$emit("test",u.integration))},{default:n(()=>[...d[4]||(d[4]=[b(" 测试 ",-1)])]),_:1})):(f(),P(w,{key:2,size:"small",onClick:d[2]||(d[2]=V=>c.$emit("view",u.integration))},{default:n(()=>[...d[5]||(d[5]=[b(" 查看 ",-1)])]),_:1}))])],2)}}}),Pe=j(Ce,[["__scopeId","data-v-468027ce"]]),xe={class:"integrations-page"},$e={key:0,class:"loading-state"},Se={key:1,class:"integration-grid"},Le={key:0,class:"test-result"},Re={key:0,class:"test-detail"},Be={key:1,class:"test-debug-hint"},De={key:2,class:"test-debug-info"},Te=W({__name:"Integrations",setup(u){const x=$(!1),g=$([]),_=$(!1),c=$(null),d=D({apiUrl:"",apiKey:""}),r=D({baseUrl:"",accessKeyId:"",accessKeySecret:""}),l=D({baseUrl:"",apiAccount:"",apiPassword:"",validateKey:""}),w=$(!1),V=$(!1),v=$(null);re(async()=>{x.value=!0;try{const a=await ge();g.value=a.items}catch{g.value=q()}finally{x.value=!1}});function q(){return[{id:"dify",name:"Dify AI",status:"connected",configurable:!0,config_type:"url_key",config:{api_url:"https://api.dify.ai/v1",api_key_set:!0}},{id:"ragflow",name:"RAGFlow",status:"partial",configurable:!0,config_type:"url_key",config:{api_url:"",api_key_set:!1}},{id:"data_platform",name:"数据平台",status:"disconnected",configurable:!1,config:null},{id:"beisen",name:"北森 eHR",status:"disconnected",configurable:!1,config:null},{id:"huorong",name:"火绒安全",status:"disconnected",configurable:!0,config_type:"access_key",config:{api_url:"",api_key_set:!1,access_key_id_set:!1,access_key_secret_set:!1,base_url:null}},{id:"lianruan",name:"联软LV7000",status:"disconnected",configurable:!0,config_type:"account_password",config:{api_url:"",api_account_set:!1,api_password_set:!1,base_url:null}}]}const B={dify:{icon:"Cpu",bg:"var(--accent-light)",color:"var(--accent)"},ragflow:{icon:"Coin",bg:"var(--success-bg)",color:"var(--success)"},data_platform:{icon:"TrendCharts",bg:"var(--warning-bg)",color:"var(--warning)"},beisen:{icon:"Avatar",bg:"rgba(139,92,246,0.12)",color:"#8b5cf6"},huorong:{icon:"WarningFilled",bg:"var(--danger-bg)",color:"var(--danger)"},lianruan:{icon:"Monitor",bg:"rgba(236,72,153,0.12)",color:"#ec4899"}};function G(a){var e;return((e=B[a])==null?void 0:e.icon)||"Setting"}function J(a){var e;return((e=B[a])==null?void 0:e.bg)||"var(--accent-light)"}function O(a){var e;return((e=B[a])==null?void 0:e.color)||"var(--accent)"}function Q(a){c.value=a;const e=a.config;a.config_type==="access_key"?(r.baseUrl=(e==null?void 0:e.base_url)||(e==null?void 0:e.api_url)||"",r.accessKeyId="",r.accessKeySecret=""):a.config_type==="account_password"?(l.baseUrl=(e==null?void 0:e.base_url)||(e==null?void 0:e.api_url)||"",l.apiAccount="",l.apiPassword="",l.validateKey=""):(d.apiUrl=(e==null?void 0:e.api_url)||"",d.apiKey=""),_.value=!0}async function X(){if(c.value)try{await S(c.value.id,{api_url:d.apiUrl,api_key:d.apiKey||void 0}),p.success("配置已保存");const a=g.value.findIndex(e=>e.id===c.value.id);a>=0&&(g.value[a]={...g.value[a],status:d.apiUrl?"connected":"partial",config:{api_url:d.apiUrl,api_key_set:!!d.apiKey}}),_.value=!1}catch{p.error("保存配置失败")}}async function Y(){if(c.value){if(!r.baseUrl){p.warning("请填写 Base URL");return}if(!r.accessKeyId){p.warning("请填写 AccessKey ID");return}if(!r.accessKeySecret){p.warning("请填写 AccessKey Secret");return}try{await S(c.value.id,{access_key_id:r.accessKeyId,access_key_secret:r.accessKeySecret,base_url:r.baseUrl}),p.success("配置已保存");const a=g.value.findIndex(e=>e.id===c.value.id);a>=0&&(g.value[a]={...g.value[a],status:"partial",config:{api_url:r.baseUrl,api_key_set:!0,access_key_id_set:!0,access_key_secret_set:!0,base_url:r.baseUrl}}),_.value=!1,p.info('请在集成管理页点击"测试连接"验证凭据是否正确')}catch{p.error("保存配置失败")}}}async function Z(){if(c.value){if(!l.baseUrl){p.warning("请填写 Base URL");return}if(!l.apiAccount){p.warning("请填写 API 账号");return}if(!l.apiPassword){p.warning("请填写 API 密码");return}try{await S(c.value.id,{api_account:l.apiAccount,api_password:l.apiPassword,base_url:l.baseUrl,validate_key:l.validateKey||void 0}),p.success("配置已保存");const a=g.value.findIndex(e=>e.id===c.value.id);a>=0&&(g.value[a]={...g.value[a],status:"connected",config:{api_url:l.baseUrl,api_account_set:!0,api_password_set:!0,base_url:l.baseUrl}}),_.value=!1}catch{p.error("保存配置失败")}}}async function h(){var a,e,C;if(!l.baseUrl||!l.apiAccount||!l.apiPassword){p.warning("请先填写完整配置");return}w.value=!0;try{await S(c.value.id,{api_account:l.apiAccount,api_password:l.apiPassword,base_url:l.baseUrl,validate_key:l.validateKey||void 0});const i=await ve();if(v.value=i,V.value=!0,(a=v.value)!=null&&a.success){const o=g.value.findIndex(U=>U.id===c.value.id);o>=0&&(g.value[o]={...g.value[o],status:"connected",config:{api_url:l.baseUrl,api_account_set:!0,api_password_set:!0,base_url:l.baseUrl}})}}catch(i){const o=(i==null?void 0:i.message)||((C=(e=i==null?void 0:i.response)==null?void 0:e.data)==null?void 0:C.message)||"请求失败,请检查网络连接";v.value={success:!1,message:o},V.value=!0}finally{w.value=!1}}async function ee(){var a,e,C;if(!r.baseUrl||!r.accessKeyId||!r.accessKeySecret){p.warning("请先填写完整配置");return}w.value=!0;try{await S(c.value.id,{access_key_id:r.accessKeyId,access_key_secret:r.accessKeySecret,base_url:r.baseUrl});const i=await ye();if(v.value=i,V.value=!0,(a=v.value)!=null&&a.success){const o=g.value.findIndex(U=>U.id===c.value.id);o>=0&&(g.value[o]={...g.value[o],status:"connected",config:{api_url:r.baseUrl,api_key_set:!0,access_key_id_set:!0,access_key_secret_set:!0,base_url:r.baseUrl}})}}catch(i){const o=(i==null?void 0:i.message)||((C=(e=i==null?void 0:i.response)==null?void 0:e.data)==null?void 0:C.message)||"请求失败,请检查网络连接";v.value={success:!1,message:o},V.value=!0}finally{w.value=!1}}async function ae(a){var e,C,i;if(!(a.id==="huorong"||a.id==="lianruan")){if(a.id==="ragflow"){w.value=!0;try{const o=await pe();if(v.value=o,V.value=!0,(e=v.value)!=null&&e.success){const U=g.value.findIndex(K=>K.id===a.id);U>=0&&(g.value[U]={...g.value[U],status:"connected"})}}catch(o){const U=(o==null?void 0:o.message)||((i=(C=o==null?void 0:o.response)==null?void 0:C.data)==null?void 0:i.message)||"请求失败,请检查网络连接";v.value={success:!1,message:U},V.value=!0}finally{w.value=!1}return}p.info(`正在测试 ${a.name} 连接...`)}}function te(a){p.info(`${a.name} — 暂无更多配置信息`)}return(a,e)=>{var T,z,F,M,N,E;const C=A("el-skeleton"),i=A("el-input"),o=A("el-form-item"),U=A("el-form"),K=A("el-button"),R=A("el-dialog"),se=A("el-result"),ne=A("el-icon");return f(),m("div",xe,[e[33]||(e[33]=y("div",{class:"page-title"},"外部系统集成",-1)),e[34]||(e[34]=y("div",{class:"page-desc"},"管理后台管「配置和参数」,Dify 网页管「Workflow 逻辑」,两者边界明确。",-1)),x.value?(f(),m("div",$e,[t(C,{rows:6,animated:""})])):(f(),m("div",Se,[(f(!0),m(L,null,ce(g.value,s=>(f(),P(Pe,{key:s.id,integration:s,icon:G(s.id),"icon-bg":J(s.id),"icon-color":O(s.id),onConfigure:Q,onTest:ae,onView:te},null,8,["integration","icon","icon-bg","icon-color"]))),128))])),((T=c.value)==null?void 0:T.config_type)==="url_key"?(f(),P(R,{key:2,modelValue:_.value,"onUpdate:modelValue":e[3]||(e[3]=s=>_.value=s),title:"配置集成 — "+((z=c.value)==null?void 0:z.name),width:"480px","destroy-on-close":""},{footer:n(()=>[t(K,{onClick:e[2]||(e[2]=s=>_.value=!1)},{default:n(()=>[...e[17]||(e[17]=[b("取消",-1)])]),_:1}),t(K,{type:"primary",onClick:X},{default:n(()=>[...e[18]||(e[18]=[b("保存配置",-1)])]),_:1})]),default:n(()=>[t(U,{"label-position":"top"},{default:n(()=>[t(o,{label:"API URL"},{default:n(()=>[t(i,{modelValue:d.apiUrl,"onUpdate:modelValue":e[0]||(e[0]=s=>d.apiUrl=s),placeholder:"https://api.dify.ai/v1"},null,8,["modelValue"])]),_:1}),t(o,{label:"API Key"},{default:n(()=>[t(i,{modelValue:d.apiKey,"onUpdate:modelValue":e[1]||(e[1]=s=>d.apiKey=s),type:"password",placeholder:"输入 API Key","show-password":""},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue","title"])):I("",!0),((F=c.value)==null?void 0:F.config_type)==="access_key"?(f(),P(R,{key:3,modelValue:_.value,"onUpdate:modelValue":e[8]||(e[8]=s=>_.value=s),title:"配置集成 — "+((M=c.value)==null?void 0:M.name),width:"520px","destroy-on-close":""},{footer:n(()=>[t(K,{onClick:e[7]||(e[7]=s=>_.value=!1)},{default:n(()=>[...e[22]||(e[22]=[b("取消",-1)])]),_:1}),t(K,{loading:w.value,onClick:ee},{default:n(()=>[b(k(w.value?"测试中...":"测试连接"),1)]),_:1},8,["loading"]),t(K,{type:"primary",onClick:Y},{default:n(()=>[...e[23]||(e[23]=[b("保存配置",-1)])]),_:1})]),default:n(()=>[t(U,{"label-position":"top"},{default:n(()=>[t(o,{label:"Base URL(内网地址)"},{default:n(()=>[t(i,{modelValue:r.baseUrl,"onUpdate:modelValue":e[4]||(e[4]=s=>r.baseUrl=s),placeholder:"http://huorong.oa.servyou-it.com:8080"},null,8,["modelValue"]),e[19]||(e[19]=y("div",{class:"form-hint"},"火绒终端安全管理系统的内网API地址",-1))]),_:1}),t(o,{label:"AccessKey ID"},{default:n(()=>[t(i,{modelValue:r.accessKeyId,"onUpdate:modelValue":e[5]||(e[5]=s=>r.accessKeyId=s),placeholder:"输入 AccessKey ID"},null,8,["modelValue"]),e[20]||(e[20]=y("div",{class:"form-hint"},"在火绒管理后台 → 系统设置 → API管理 中创建",-1))]),_:1}),t(o,{label:"AccessKey Secret"},{default:n(()=>[t(i,{modelValue:r.accessKeySecret,"onUpdate:modelValue":e[6]||(e[6]=s=>r.accessKeySecret=s),type:"password",placeholder:"输入 AccessKey Secret","show-password":""},null,8,["modelValue"]),e[21]||(e[21]=y("div",{class:"form-hint"},"Secret 仅在创建时显示一次,请妥善保管",-1))]),_:1})]),_:1})]),_:1},8,["modelValue","title"])):I("",!0),((N=c.value)==null?void 0:N.config_type)==="account_password"?(f(),P(R,{key:4,modelValue:_.value,"onUpdate:modelValue":e[14]||(e[14]=s=>_.value=s),title:"配置集成 — "+((E=c.value)==null?void 0:E.name),width:"520px","destroy-on-close":""},{footer:n(()=>[t(K,{onClick:e[13]||(e[13]=s=>_.value=!1)},{default:n(()=>[...e[28]||(e[28]=[b("取消",-1)])]),_:1}),t(K,{loading:w.value,onClick:h},{default:n(()=>[b(k(w.value?"测试中...":"测试连接"),1)]),_:1},8,["loading"]),t(K,{type:"primary",onClick:Z},{default:n(()=>[...e[29]||(e[29]=[b("保存配置",-1)])]),_:1})]),default:n(()=>[t(U,{"label-position":"top"},{default:n(()=>[t(o,{label:"Base URL(内网地址)"},{default:n(()=>[t(i,{modelValue:l.baseUrl,"onUpdate:modelValue":e[9]||(e[9]=s=>l.baseUrl=s),placeholder:"http://192.168.x.x:30098"},null,8,["modelValue"]),e[24]||(e[24]=y("div",{class:"form-hint"},"联软LV7000终端安全管理系统的内网API地址,默认端口30098",-1))]),_:1}),t(o,{label:"API 账号"},{default:n(()=>[t(i,{modelValue:l.apiAccount,"onUpdate:modelValue":e[10]||(e[10]=s=>l.apiAccount=s),placeholder:"输入API账号"},null,8,["modelValue"]),e[25]||(e[25]=y("div",{class:"form-hint"},"在联软管理后台 → 系统设置 → API管理 中创建",-1))]),_:1}),t(o,{label:"API 密码"},{default:n(()=>[t(i,{modelValue:l.apiPassword,"onUpdate:modelValue":e[11]||(e[11]=s=>l.apiPassword=s),type:"password",placeholder:"输入API密码","show-password":""},null,8,["modelValue"]),e[26]||(e[26]=y("div",{class:"form-hint"},"与API账号配套的密码,仅在创建时显示",-1))]),_:1}),t(o,{label:"验证密钥(可选)"},{default:n(()=>[t(i,{modelValue:l.validateKey,"onUpdate:modelValue":e[12]||(e[12]=s=>l.validateKey=s),placeholder:"输入验证密钥(如需要)"},null,8,["modelValue"]),e[27]||(e[27]=y("div",{class:"form-hint"},"部分联软版本需要额外的验证密钥,无则留空",-1))]),_:1})]),_:1})]),_:1},8,["modelValue","title"])):I("",!0),t(R,{modelValue:V.value,"onUpdate:modelValue":e[16]||(e[16]=s=>V.value=s),title:"连接测试结果",width:"420px"},{footer:n(()=>[t(K,{type:"primary",onClick:e[15]||(e[15]=s=>V.value=!1)},{default:n(()=>[...e[32]||(e[32]=[b("确定",-1)])]),_:1})]),default:n(()=>[v.value?(f(),m("div",Le,[t(se,{icon:v.value.success?"success":"error",title:v.value.success?"连接成功":"连接失败","sub-title":v.value.message},null,8,["icon","title","sub-title"]),v.value.success&&v.value.total_terminals?(f(),m("div",Re,[e[30]||(e[30]=b(" 检测到 ",-1)),y("strong",null,k(v.value.total_terminals),1),e[31]||(e[31]=b(" 个终端 ",-1))])):I("",!0),!v.value.success&&v.value.debug_hint?(f(),m("div",Be,[t(ne,null,{default:n(()=>[t(de(fe))]),_:1}),y("span",null,k(v.value.debug_hint),1)])):I("",!0),v.value.debug?(f(),m("div",De,[y("div",null,"Base URL: "+k(v.value.debug.base_url),1),y("div",null,"AccessKey ID: "+k(v.value.debug.access_key_id),1),y("div",null,"Secret 长度: "+k(v.value.debug.key_length)+" 字符",1)])):I("",!0)])):I("",!0)]),_:1},8,["modelValue"])])}}}),Ee=j(Te,[["__scopeId","data-v-2e402f21"]]);export{Ee as default};