2 lines
5.7 KiB
JavaScript
2 lines
5.7 KiB
JavaScript
import{R as S,G as T,F as K,K as M,L as O,A as D,i as U,M as $,N as j,O as z,P as Q,Q as q}from"./element-plus-DDINy080.js";import{_ as H}from"./index.vue_vue_type_script_setup_true_lang-9cmfzJ44.js";import{w as J}from"./@vue/runtime-dom-DDAG46FW.js";import{c as W,d as X}from"./ai_mcp-CyVWHL2y.js";import{u as Y}from"./usePaging-DofycyjW.js";import{j as h,_ as Z}from"./index-CucNzNKR.js";import{f as C,b as ee,ak as m,I as u,a as t,aN as a,G as g,H as x,O as p,J as n,aP as te,F as ae}from"./@vue/runtime-core-C6bnekPw.js";import{y as l,a as oe,r as le}from"./@vue/reactivity-DiY1c2vO.js";import{Q as s}from"./@vue/shared-mAAVTE9n.js";import"./@element-plus/icons-vue-CbYn5zW9.js";import"./lodash-es-C2A-Pj28.js";import"./@popperjs/core-C5az9QE8.js";import"./dayjs-DG77mNTn.js";import"./lodash-D3kF6u-c.js";import"./@ctrl/tinycolor-BuyEbX8F.js";import"./async-validator-CFA_igpM.js";import"./normalize-wheel-es-BQoi3Ox2.js";import"./jspdf-BsthCvR5.js";import"./@babel/runtime-BanGtE2-.js";import"./fflate-_ayOYiT1.js";import"./vue-router-QlpZ4wdW.js";import"./pinia-B8cvXbiZ.js";import"./axios-C80V62Fs.js";import"./@vueuse/core-1S4fJlii.js";import"./@vueuse/shared-Cl3lVqjz.js";import"./css-color-function-DI01JAaZ.js";import"./balanced-match-BdS7OldZ.js";import"./color-B2zxaWkI.js";import"./clone-DBZ6_OiU.js";import"./color-convert-OrFsTA_V.js";import"./color-name-Dju3oUBS.js";import"./color-string-pUQDDJII.js";import"./ms-CzQ2E3wO.js";import"./vue-clipboard3-DByT_rEQ.js";import"./clipboard-CHgxszqY.js";import"./echarts-CNLwa9wG.js";import"./tslib-BDyQ-Jie.js";import"./zrender-DRNXw7y3.js";import"./highlight.js-Bxt7hFFy.js";import"./@highlightjs/vue-plugin-C4onkBvW.js";const ne={class:"ai-grant-page"},se={class:"cell-sub"},ie={key:0},re={class:"cell-sub"},de={class:"cell-sub"},me={class:"cell-sub"},_e={key:1},pe={class:"flex justify-end mt-4"},ce=C({name:"aiMcpGrant"}),ue=C({...ce,setup(fe){const _=le({status:"",keyword:""}),{pager:r,getLists:f,resetPage:c,resetParams:E}=Y({fetchFun:W,params:_}),w={client_revoke:"客户端解绑",admin_revoke:"后台撤销",rebind:"重新绑定",expired:"到期/闲置失效",password_changed:"账号改密",admin_disabled:"账号停用",admin_deleted:"账号删除"},V=d=>w[d]||d||"",A=async d=>{await h.confirm(`确认撤销 ${d.admin_name||d.admin_account} 的这条 AI 授权?撤销后该客户端需要重新绑定。`),await X({id:d.id}),h.msgSuccess("已撤销"),f()};return ee(()=>f()),(d,o)=>{const I=S,b=O,N=M,v=K,P=D,k=U,B=T,y=$,i=z,F=Q,G=j,L=H,R=q;return m(),u("div",ne,[t(y,{class:"!border-none",shadow:"never"},{default:a(()=>[l(r).extend&&l(r).extend.enabled===!1?(m(),g(I,{key:0,type:"warning",closable:!1,"show-icon":"",class:"mb-3",title:"AI 助手接口未启用:服务器 .env 的 [AI_MCP] ENABLED 为 false,客户端暂时无法绑定和查询。"})):x("",!0),t(B,{inline:!0},{default:a(()=>[t(v,{label:"状态"},{default:a(()=>[t(N,{modelValue:_.status,"onUpdate:modelValue":o[0]||(o[0]=e=>_.status=e),clearable:"",placeholder:"全部",class:"w-[120px]",onChange:l(c)},{default:a(()=>[t(b,{label:"有效",value:"1"}),t(b,{label:"已撤销",value:"2"}),t(b,{label:"已过期",value:"3"})]),_:1},8,["modelValue","onChange"])]),_:1}),t(v,{label:"关键词"},{default:a(()=>[t(P,{modelValue:_.keyword,"onUpdate:modelValue":o[1]||(o[1]=e=>_.keyword=e),placeholder:"姓名 / 账号 / 备注",clearable:"",class:"w-[220px]",onKeyup:J(l(c),["enter"]),onClear:l(c)},null,8,["modelValue","onKeyup","onClear"])]),_:1}),t(v,null,{default:a(()=>[t(k,{type:"primary",onClick:l(c)},{default:a(()=>[...o[3]||(o[3]=[p("查询",-1)])]),_:1},8,["onClick"]),t(k,{onClick:l(E)},{default:a(()=>[...o[4]||(o[4]=[p("重置",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1}),o[5]||(o[5]=n("div",{class:"page-hint"}," 员工在行知等 AI 助手里用甄养堂账号密码绑定后,会在这里生成一条只读授权。AI 只能按该账号自己的权限和数据范围查询; 撤销后立即失效。账号改密、停用、失去“允许 AI 助手查询”权限时,授权也会自动失效。 ",-1))]),_:1}),t(y,{class:"!border-none mt-3",shadow:"never"},{default:a(()=>[te((m(),g(G,{data:l(r).lists,size:"default",stripe:""},{default:a(()=>[t(i,{label:"账号","min-width":"140"},{default:a(({row:e})=>[n("div",null,s(e.admin_name||"—"),1),n("div",se,s(e.admin_account),1)]),_:1}),t(i,{label:"客户端","min-width":"150"},{default:a(({row:e})=>[n("div",null,[p(s(e.client),1),e.client_instance?(m(),u("span",ie," · "+s(e.client_instance),1)):x("",!0)]),n("div",re,s(e.label),1)]),_:1}),t(i,{label:"令牌",width:"130",prop:"token_prefix"}),t(i,{label:"状态",width:"90",align:"center"},{default:a(({row:e})=>[t(F,{type:e.status_text==="有效"?"success":"info",size:"small"},{default:a(()=>[p(s(e.status_text),1)]),_:2},1032,["type"])]),_:1}),t(i,{label:"最近使用","min-width":"150"},{default:a(({row:e})=>[n("div",null,s(e.last_used_time_text||"—"),1),n("div",de,s(e.last_used_ip),1)]),_:1}),t(i,{label:"到期时间",width:"150",prop:"expire_time_text"}),t(i,{label:"签发时间",width:"150",prop:"create_time_text"}),t(i,{label:"撤销","min-width":"140"},{default:a(({row:e})=>[e.revoke_time_text?(m(),u(ae,{key:0},[n("div",null,s(e.revoke_time_text),1),n("div",me,s(V(e.revoke_reason)),1)],64)):(m(),u("span",_e,"—"))]),_:1}),t(i,{label:"操作",width:"90",fixed:"right"},{default:a(({row:e})=>[e.can_revoke?(m(),g(k,{key:0,type:"danger",link:"",onClick:be=>A(e)},{default:a(()=>[...o[6]||(o[6]=[p("撤销",-1)])]),_:1},8,["onClick"])):x("",!0)]),_:1})]),_:1},8,["data"])),[[R,l(r).loading]]),n("div",pe,[t(L,{modelValue:l(r),"onUpdate:modelValue":o[2]||(o[2]=e=>oe(r)?r.value=e:null),onChange:l(f)},null,8,["modelValue","onChange"])])]),_:1})])}}}),ot=Z(ue,[["__scopeId","data-v-e6d4ad25"]]);export{ot as default};
|