import{x as e,y as a,aq as l,ar as t,h as s,t as i,i as o,w as d,T as r,ae as n,aA as u,C as p,aB as c,q as m,ao as f,u as _,l as v,P as g,Q as y,L as h,E as b,D as w}from"./element-plus.BfMFfVUv.js";import{_ as V}from"./index.VE_2SVnZ.js";import{_ as k}from"./UserTableSelect.vue_vue_type_script_setup_true_lang.uyeqKcee.js";import{J as C,dY as U,t as x,aO as A,aP as $,S as z,_ as j,a1 as q,$ as D,a0 as I,o as M,T as P,a8 as R,a6 as S,a9 as T,aa as Y,aw as F,H as O,ay as B,a3 as E,z as H,r as L,ak as N,j as Q,n as J}from"./.pnpm.BudmgPu7.js";import{l as K,u as G,g as W,D as X}from"./index.CjKO7M_A.js";import{f as Z}from"./dateUtil.f5zninan.js";import{_ as ee}from"./_plugin-vue_export-helper.BCo6x5W8.js";import"./codemirror.BdleaLZh.js";const ae="/application/myapp",le={ /** * 获取应用详情 * @param id 应用ID */ detailApp:e=>K({url:`${ae}/detail/${e}`,method:"get"}), /** * 查询应用列表 * @param query 查询参数 */ listApp:e=>K({url:`${ae}/list`,method:"get",params:e}), /** * 创建应用 * @param body 应用信息 */ createApp:e=>K({url:`${ae}/create`,method:"post",data:e}), /** * 修改应用 * @param id 应用ID * @param body 应用信息 */ updateApp:(e,a)=>K({url:`${ae}/update/${e}`,method:"put",data:a}), /** * 删除应用 * @param body 应用ID数组 */ deleteApp:e=>K({url:`${ae}/delete`,method:"delete",data:e}), /** * 批量修改应用状态 * @param body 批量操作参数 */ batchApp:e=>K({url:`${ae}/available/setting`,method:"patch",data:e})},te={class:"app-container"},se={class:"search-container"},ie={class:"card-header"},oe={class:"app-grid-container"},de={class:"grid-wrapper"},re=["onMouseenter","onClick"],ne={class:"app-info-header"},ue={class:"app-title-wrap"},pe=["title"],ce={class:"app-content"},me=["title"],fe={class:"card-footer"},_e={class:"footer-item"},ve={class:"footer-text"},ge={class:"footer-item"},ye={class:"footer-text"},he={key:0},be={class:"dialog-footer"},we=ee(C({name:"MyApplication",inheritAttrs:!1,__name:"index",setup(C){const K=G(),ee=W(),ae=U(),we=L(),Ve=L(),ke=L(!1),Ce=L(0),Ue=L(!1),xe=L("create"),Ae=L(null),$e=L(!1),ze=L(!0),je=L(null),qe=N({page_no:1,page_size:12,name:void 0,status:void 0,created_id:void 0}),De=L([]),Ie=N({name:"",access_url:"",icon_url:"",status:"0",description:""}),Me=N({name:[{required:!0,message:"请输入应用名称",trigger:"blur"},{min:2,max:30,message:"长度在 2 到 30 个字符",trigger:"blur"}],access_url:[{required:!0,message:"请输入访问地址",trigger:"blur"},{type:"url",message:"请输入正确的URL格式",trigger:"blur"}],icon_url:[{required:!0,message:"请输入图标地址",trigger:"blur"},{type:"url",message:"请输入正确的URL格式",trigger:"blur"}],status:[{required:!0,message:"请选择应用状态",trigger:"change"}]}),Pe=Q(()=>K.device===X.DESKTOP?"500px":"90%"),Re=Q(()=>"create"===xe.value?"创建应用":"编辑应用");async function Se(){ke.value=!0;try{const e=await le.listApp(qe);De.value=e.data.data.items,Ce.value=e.data.data.total}catch(e){}finally{ke.value=!1}}async function Te(){qe.page_no=1,await Se()}function Ye(){Te()}async function Fe(){var e;null==(e=we.value)||e.resetFields(),qe.page_no=1,await Se()}function Oe(){xe.value="create",Ee(),Ue.value=!0}async function Be(e,a){switch(e){case"edit":!function(e){xe.value="edit",Ae.value=e,Object.assign(Ie,e),Ue.value=!0}(a);break;case"delete":await async function(e){try{await w.confirm("确认删除该应用?","警告",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),await le.deleteApp([e.id]),await Se()}catch(a){}}(a)}}function Ee(){var e;Object.assign(Ie,{name:"",access_url:"",icon_url:"",status:"0",description:""}),null==(e=Ve.value)||e.resetFields()}function He(){Ue.value=!1,Ee()}async function Le(){var e;try{await(null==(e=Ve.value)?void 0:e.validate()),"create"===xe.value?await le.createApp(Ie):await le.updateApp(Ae.value.id,Ie),Ue.value=!1,Ee(),await Se()}catch(a){}}return x(()=>{Se()}),(w,C)=>{const U=a,x=e,L=t,N=l,Q=k,K=s,G=A("ArrowUp"),W=A("ArrowDown"),X=o,le=i,xe=d,Ae=A("QuestionFilled"),Ee=v,Ne=p,Qe=m,Je=r,Ke=_,Ge=V,We=y,Xe=g,Ze=h,ea=$("hasPerm"),aa=f;return z(),j("div",te,[q("div",se,[D(xe,{ref_key:"queryFormRef",ref:we,model:M(qe),inline:!0,"label-suffix":":",onSubmit:F(Te,["prevent"])},{default:I(()=>[D(x,{prop:"name",label:"应用名称"},{default:I(()=>[D(U,{modelValue:M(qe).name,"onUpdate:modelValue":C[0]||(C[0]=e=>M(qe).name=e),placeholder:"请输入应用名称",clearable:""},null,8,["modelValue"])]),_:1}),D(x,{prop:"status",label:"状态"},{default:I(()=>[D(N,{modelValue:M(qe).status,"onUpdate:modelValue":C[1]||(C[1]=e=>M(qe).status=e),placeholder:"请选择状态",clearable:"",style:{width:"170px"}},{default:I(()=>[D(L,{label:"启用",value:!0}),D(L,{label:"停用",value:!1})]),_:1},8,["modelValue"])]),_:1}),M($e)?(z(),P(x,{key:0,prop:"created_id",label:"创建人"},{default:I(()=>[D(Q,{modelValue:M(qe).created_id,"onUpdate:modelValue":C[2]||(C[2]=e=>M(qe).created_id=e),onConfirmClick:Ye,onClearClick:Te},null,8,["modelValue"])]),_:1})):R("",!0),M($e)?(z(),P(x,{key:1,prop:"updated_id",label:"更新人"},{default:I(()=>[D(Q,{modelValue:M(qe).updated_id,"onUpdate:modelValue":C[3]||(C[3]=e=>M(qe).updated_id=e),onConfirmClick:Ye,onClearClick:Te},null,8,["modelValue"])]),_:1})):R("",!0),D(x,{class:"search-buttons"},{default:I(()=>[S((z(),P(K,{type:"primary",icon:"search","native-type":"submit"},{default:I(()=>[...C[16]||(C[16]=[T(" 查询 ",-1)])]),_:1})),[[ea,["module_module_application:myapp:query"]]]),S((z(),P(K,{icon:"refresh",onClick:Fe},{default:I(()=>[...C[17]||(C[17]=[T(" 重置 ",-1)])]),_:1})),[[ea,["module_application:myapp:query"]]]),M(ze)?(z(),P(le,{key:0,class:"ml-3",type:"primary",underline:"never",onClick:C[4]||(C[4]=e=>$e.value=!M($e))},{default:I(()=>[T(Y(M($e)?"收起":"展开")+" ",1),D(X,null,{default:I(()=>[M($e)?(z(),P(G,{key:0})):(z(),P(W,{key:1}))]),_:1})]),_:1})):R("",!0)]),_:1})]),_:1},8,["model"])]),D(Je,{shadow:"hover",class:"app-grid-card"},{header:I(()=>[q("div",ie,[q("span",null,[D(Ee,{content:"点击卡片,打开应用"},{default:I(()=>[D(Ae,{class:"w-4 h-4 mx-1"})]),_:1}),C[18]||(C[18]=T(" 应用市场 ",-1))]),S((z(),P(K,{type:"primary",icon:"plus",onClick:Oe},{default:I(()=>[...C[19]||(C[19]=[T(" 创建应用 ",-1)])]),_:1})),[[ea,["module_application:myapp:create"]]])])]),footer:I(()=>[D(Ge,{total:M(Ce),"onUpdate:total":C[7]||(C[7]=e=>H(Ce)?Ce.value=e:null),page:M(qe).page_no,"onUpdate:page":C[8]||(C[8]=e=>M(qe).page_no=e),limit:M(qe).page_size,"onUpdate:limit":C[9]||(C[9]=e=>M(qe).page_size=e),"page-sizes":[12,24,48],onPagination:Se},null,8,["total","page","limit"])]),default:I(()=>[S((z(),j("div",oe,[q("div",de,[(z(!0),j(O,null,B(M(De),e=>(z(),j("div",{key:e.id,onMouseenter:a=>e.id&&(je.value=e.id),onMouseleave:C[6]||(C[6]=e=>je.value=null),onClick:a=>e.status&&e.id&&function(e){if(!e.status||!e.id)return void(e.status?b.warning("应用ID不存在,无法打开"):b.warning("应用已停用,无法打开"));if(!e.access_url)return void b.warning("应用访问地址不存在");const a=`/internal-app/${e.id}`,l=`InternalApp${e.id}`,t=e.name||"未命名应用";ae.push({path:a,query:{url:e.access_url,appId:e.id.toString(),appName:t}}).then(()=>{J(()=>{var s;const i=ee.visitedViews.find(e=>e.path===a);i?ee.updateVisitedView({...i,title:t}):ee.addView({name:l,title:t,path:a,fullPath:a+`?url=${encodeURIComponent(e.access_url||"")}&appId=${e.id}&appName=${encodeURIComponent(t)}`,icon:"Monitor",affix:!1,keepAlive:!1,query:{url:e.access_url,appId:null==(s=null==e?void 0:e.id)?void 0:s.toString(),appName:t}})})})}(e)},[D(Je,{shadow:"hover",class:E(["app-card",{"card-disabled":!e.status}])},{header:I(()=>[q("div",ne,[D(Ne,{size:42,src:e.icon_url,class:"app-avatar"},{default:I(()=>[D(X,{size:"20"},{default:I(()=>[D(M(c))]),_:1})]),_:1},8,["src"]),q("div",ue,[q("h3",{class:"app-name",title:e.name},Y(e.name),9,pe),D(Qe,{type:e.status?"success":"info",size:"small",effect:"plain",class:"status-tag"},{default:I(()=>[T(Y(e.status?"启用":"停用"),1)]),_:2},1032,["type"])]),M(je)===e.id?(z(),j("div",{key:0,class:"card-actions",onClick:C[5]||(C[5]=F(()=>{},["stop"]))},[S(D(K,{type:"primary",link:"",icon:"Edit",onClick:a=>Be("edit",e)},null,8,["onClick"]),[[ea,["module_application:myapp:update"]]]),S(D(K,{type:"danger",link:"",icon:"Delete",onClick:a=>Be("delete",e)},null,8,["onClick"]),[[ea,["module_application:myapp:delete"]]])])):R("",!0)])]),default:I(()=>[q("div",ce,[q("p",{class:"app-description",title:e.description},Y(e.description||"暂无描述"),9,me)])]),footer:I(()=>{var a,l;return[q("div",fe,[q("div",_e,[D(X,{size:"14",class:"footer-icon"},{default:I(()=>[D(M(n))]),_:1}),q("span",ve,Y((null==(a=e.created_by)?void 0:a.name)||"未知"),1)]),q("div",ge,[D(X,{size:"14",class:"footer-icon"},{default:I(()=>[D(M(u))]),_:1}),q("span",ye,Y((l=e.created_time,l?Z(l,"YYYY-MM-DD HH:mm:ss"):"未知")),1)])])]}),_:2},1032,["class"])],40,re))),128))])])),[[aa,M(ke)]]),0!==M(De).length||M(ke)?R("",!0):(z(),j("div",he,[D(Ke,{"image-size":80,description:"暂无数据"})]))]),_:1}),D(Ze,{modelValue:M(Ue),"onUpdate:modelValue":C[15]||(C[15]=e=>H(Ue)?Ue.value=e:null),title:M(Re),size:M(Pe),direction:"rtl",onClose:He},{footer:I(()=>[q("div",be,[D(K,{onClick:He},{default:I(()=>[...C[22]||(C[22]=[T("取消",-1)])]),_:1}),D(K,{type:"primary",onClick:Le},{default:I(()=>[...C[23]||(C[23]=[T("确定",-1)])]),_:1})])]),default:I(()=>[D(xe,{ref_key:"formRef",ref:Ve,model:M(Ie),rules:M(Me),"label-width":"100px","label-position":"right"},{default:I(()=>[D(x,{label:"应用名称",prop:"name"},{default:I(()=>[D(U,{modelValue:M(Ie).name,"onUpdate:modelValue":C[10]||(C[10]=e=>M(Ie).name=e),placeholder:"请输入应用名称"},null,8,["modelValue"])]),_:1}),D(x,{label:"访问地址",prop:"access_url"},{default:I(()=>[D(U,{modelValue:M(Ie).access_url,"onUpdate:modelValue":C[11]||(C[11]=e=>M(Ie).access_url=e),placeholder:"请输入访问地址"},null,8,["modelValue"])]),_:1}),D(x,{label:"图标地址",prop:"icon_url"},{default:I(()=>[D(U,{modelValue:M(Ie).icon_url,"onUpdate:modelValue":C[12]||(C[12]=e=>M(Ie).icon_url=e),placeholder:"请输入图标地址"},null,8,["modelValue"])]),_:1}),D(x,{label:"应用状态",prop:"status"},{default:I(()=>[D(Xe,{modelValue:M(Ie).status,"onUpdate:modelValue":C[13]||(C[13]=e=>M(Ie).status=e)},{default:I(()=>[D(We,{value:"0"},{default:I(()=>[...C[20]||(C[20]=[T("启用",-1)])]),_:1}),D(We,{value:"1"},{default:I(()=>[...C[21]||(C[21]=[T("停用",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),D(x,{label:"应用描述",prop:"description"},{default:I(()=>[D(U,{modelValue:M(Ie).description,"onUpdate:modelValue":C[14]||(C[14]=e=>M(Ie).description=e),type:"textarea",rows:4,placeholder:"请输入应用描述",maxlength:"200","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["modelValue","title","size"])])}}}),[["__scopeId","data-v-343310bd"]]);export{we as default};