2025-05-29 15:03:59 +08:00

2 lines
5.0 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{l as U}from"./notice-Be3PUons.js";import{C as b,r as _,b as j,D as A,c as f,e as o,w as s,j as r,F as G,f as e,k as a,G as J,B as d,H as K,h,I as T,J as S,i as Y,m as M,K as $,L as q,a as O,o as c,M as Q,N as W,_ as X}from"./index-CrAWI0wi.js";function V(y){if(y==null||y=="")return"";var t=new Date(y),D=t.getFullYear(),m=t.getMonth()+1<10?"0"+(t.getMonth()+1):t.getMonth()+1,p=t.getDate()<10?"0"+t.getDate():t.getDate(),v=t.getHours()<10?"0"+t.getHours():t.getHours(),g=t.getMinutes()<10?"0"+t.getMinutes():t.getMinutes(),i=t.getSeconds()<10?"0"+t.getSeconds():t.getSeconds();return D+"-"+m+"-"+p+" "+v+":"+g+":"+i}const Z={class:"app-container home"},ee={class:"user-profile"},te={class:"welcome-text"},se={class:"user-role"},oe={class:"user-stats"},ae={class:"stat-item"},ne=["title"],le={class:"stat-item"},ie=["title"],ce={class:"card-header"},re={class:"header-title"},de={key:0,class:"notice-list"},ue=["onClick"],_e={class:"notice-title"},me={class:"notice-time"},pe={class:"feature-item"},ve={class:"feature-icon"},ge=["innerHTML"],fe=b({name:"Index"}),he=b({...fe,setup(y){const t=O(),D=_([{icon:"Monitor",title:"技术先进",description:"采用Vue3、TypeScript等最新技术栈保持与时俱进"},{icon:"SetUp",title:"简单易用",description:"开箱即用的后台解决方案,内置完整的权限验证系统"},{icon:"Document",title:"规范开发",description:"遵循最佳实践,统一的编码规范,让项目更易维护"}]);_([{name:"Auth 权限验证",description:"提供了权限验证相关方法包括hasPermi、hasRole等功能用于控制按钮和功能的访问权限"},{name:"Cache 缓存",description:"提供了浏览器缓存操作方法支持session和local存储的设置与获取"},{name:"Modal 弹窗",description:"封装了Element Plus的弹窗组件提供了更便捷的调用方式"}]),_([{name:"hasPermi",description:"用于控制按钮级别的权限",usage:`v-hasPermi="['system:user:add']"`},{name:"hasRole",description:"用于控制角色级别的权限",usage:`v-hasRole="['admin']"`},{name:"auth",description:"通用权限验证指令",usage:`v-auth="'system:user:edit'"`}]);const m=_([]),p=_(!1),v=_(!1),g=_({}),i=j(),L=async()=>{p.value=!0;try{const u=await U({pageNum:1,pageSize:5});m.value=u.rows}catch(u){console.error("获取公告列表失败:",u)}finally{p.value=!1}},H=u=>{g.value=u,v.value=!0},I=()=>{const u={path:"/system/notice"};t.push(u)};return A(()=>{i.getInfo(),L()}),(u,n)=>{const B=r("el-avatar"),N=r("el-card"),k=r("el-icon"),P=r("el-button"),R=r("el-tag"),z=r("el-empty"),w=r("el-col"),x=r("el-row"),E=r("el-dialog"),F=K("loading");return c(),f("div",Z,[o(x,{gutter:20},{default:s(()=>[o(w,{lg:6,md:8,sm:24,xs:24},{default:s(()=>[o(N,{class:"user-info-card"},{default:s(()=>[e("div",ee,[o(B,{size:80,src:a(i).avatar||a(J)},null,8,["src"]),e("h2",te,"欢迎回来,"+d(a(i).name),1),e("p",se,d(a(i).roleName),1)]),e("div",oe,[e("div",ae,[e("div",{class:"stat-value text-ellipsis",title:a(V)(a(i).loginDate)||"暂无"},d(a(V)(a(i).loginDate)||"暂无"),9,ne),n[1]||(n[1]=e("p",{class:"stat-label"},"上次登录",-1))]),e("div",le,[e("div",{class:"stat-value text-ellipsis",title:a(i).deptName||"暂无"},d(a(i).deptName||"暂无"),9,ie),n[2]||(n[2]=e("p",{class:"stat-label"},"所属部门",-1))])])]),_:1}),G((c(),h(N,{class:"notice-card hide-on-small"},{header:s(()=>[e("div",ce,[e("span",re,[o(k,null,{default:s(()=>[o(a($))]),_:1}),n[3]||(n[3]=M(" 系统公告 "))]),m.value.length?(c(),h(P,{key:0,link:"",onClick:I},{default:s(()=>[n[4]||(n[4]=M(" 查看更多")),o(k,null,{default:s(()=>[o(a(q))]),_:1})]),_:1})):Y("",!0)])]),default:s(()=>[m.value.length?(c(),f("div",de,[(c(!0),f(T,null,S(m.value,l=>(c(),f("div",{key:l.noticeId,class:"notice-item",onClick:C=>H(l)},[o(R,{size:"small",type:l.noticeType==="1"?"danger":"success"},{default:s(()=>[M(d(l.noticeType==="1"?"通知":"公告"),1)]),_:2},1032,["type"]),e("span",_e,d(l.noticeTitle),1),e("span",me,d(a(Q)(l.createTime)),1)],8,ue))),128))])):(c(),h(z,{key:1,description:"暂无公告"}))]),_:1})),[[F,p.value]])]),_:1}),o(w,{lg:18,md:16,sm:24,xs:24},{default:s(()=>[o(x,{gutter:20},{default:s(()=>[o(w,{span:24},{default:s(()=>[o(N,{class:"welcome-card"},{default:s(()=>[n[5]||(n[5]=e("div",{class:"welcome-container"},[e("h1",{class:"welcome-title"},"欢迎使用 博越 二开框架"),e("p",{class:"welcome-desc"},"基于 Vue3、TypeScript、Vite、Element-Plus 的后台管理系统")],-1)),o(x,{gutter:20,class:"feature-section"},{default:s(()=>[(c(!0),f(T,null,S(D.value,(l,C)=>(c(),h(w,{lg:8,md:12,sm:24,xs:24,key:C},{default:s(()=>[e("div",pe,[e("div",ve,[o(k,null,{default:s(()=>[(c(),h(W(l.icon)))]),_:2},1024)]),e("h3",null,d(l.title),1),e("p",null,d(l.description),1)])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),o(E,{modelValue:v.value,"onUpdate:modelValue":n[0]||(n[0]=l=>v.value=l),title:g.value.noticeTitle,width:"50%","destroy-on-close":""},{default:s(()=>[e("div",{innerHTML:g.value.noticeContent},null,8,ge)]),_:1},8,["modelValue","title"])])}}}),De=X(he,[["__scopeId","data-v-ca658960"]]);export{De as default};