后台壳
侧边菜单、顶部通栏、混合导航、双列菜单共用一套页面,切换布局只改一个参数。
- 页签、面包屑、用户菜单、皮肤面板
- 侧栏配色分跟随、浅色、深色、品牌色四档
- 宽度小于 960px 时菜单收进抽屉
包里只有结构和样式,没有演示数据,也没有内部接口。api 里没实现的方法会抛错,不会返回空列表。
侧边菜单、顶部通栏、混合导航、双列菜单共用一套页面,切换布局只改一个参数。
登录、个人中心、修改密码、账号设置,加上 403 / 404 / 500 / 维护四个异常页。
api.auth.login用户页是列表页范式:筛选、表格、分页、增删改都在。工作台是统计卡片范式:四个 KPI 加一张待办表。
装包,把后端接口包成 api 对象注入,再放上壳。壳不管路由,只把选中的 key 传出来。
import { createApp } from 'vue'
import { initTheme } from 'djm-ui'
import 'djm-ui/styles'
import 'djm-ui-admin/styles'
import { ADMIN_API } from 'djm-ui-admin'
import App from './App.vue'
import api from './api.js'
initTheme()
createApp(App)
.provide(ADMIN_API, api)
.mount('#app')
<AdminLayout
:menus="menus"
:active-key="active"
:tabs="tabs"
:user="user"
title="我的后台"
@select="go"
@tab-close="closeTab"
@logout="logout"
>
<component :is="pages[active]" :key="active" />
</AdminLayout>
// 用 vue-router 时,选中后 push 一次
function go (key) {
router.push({ name: key })
}
export default defineConfig({
base: '/followup/'
})
// 模板里没有写死根路径;/followup 下跑过登录、页签和表格
示例应用的数据是写死的,用来演示效果。模板包不带数据,壳和页面结构跟示例应用一样。
带演示数据和演示账号,不接后端,用来评估效果。
没有演示数据,壳和页面结构都在,数据从你注入的 api 取。
模板依赖组件库。只要组件、自己搭壳的话,装 djm-ui 就行。
不包含。演示数据放在仓库的 admin/demo 里,npm 包里没有。页面调用到的接口都要你在 api 对象里实现。
不必须。壳通过 select 事件回传菜单 key,用 hash、自研路由或 vue-router 都行,切换逻辑写在你的容器里。
不能。djm-ui 和 vue 都是 peer 依赖,两个包要一起装,版本保持一致。
可以。Vite 里配 base,静态资源和路由都按子路径生成。
MIT 许可,可商用、修改、随产品分发,LICENSE 随包提供。版本跟 djm-ui 同步,升级时两个包一起升,破坏性变更写在 CHANGELOG 里。