OKadmin是一个基于Vue.js和Element-ui的全能后台管理系统,提供了丰富的组件和功能,可快速构建管理应用程序。此外,OKadmin的使用方法非常简单,只需按照步骤进行配置和安装即可使用。
OKadminFinder
OKadminFinder是OKadmin的一个重要组件,通过OKadminFinder可以快速找到需要的页面和模块。它的操作方法和使用方法与Windows的搜索类似。只需在搜索框中输入关键字即可找到相关的页面和模块。此外,如果您有多个应用,OKadminFinder可以通过搜索规则过滤出相关应用程序中的页面和模块。
一、使用OKadminFinder进行搜索
下面是使用OKadminFinder进行搜索的示例代码:
<template>
<div>
<el-input
v-model="value"
placeholder="请输入关键字"
prefix-icon="el-icon-search"
style="width: 200px;"
@keyup.enter.native="onSearch"
>
<el-button slot="append" icon="el-icon-search" @click="onSearch"></el-button>
</el-input>
<el-dropdown
class="okadmin-nav-dropdown"
v-model="appIndex"
trigger="click"
:split-button="false"
:hide-on-click="false"
>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item
v-for="(app, index) in filteredApps"
:key="app.appId"
:command="index"
:disabled="app.pages.length === 0"
>
{{app.appName}}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</template>
<script>
export default {
data() {
return {
value: '',
appIndex: 0,
apps: []
};
},
computed: {
filteredApps() {
return this.apps.filter(app => {
return app.pages.some(page => {
return page.label.includes(this.value) || page.name.includes(this.value);
});
});
}
},
created() {
// load apps and pages here
},
methods: {
onSearch() {
// handle search here
}
}
};
</script>
以上代码中,我们可以看到OKadminFinder的搜索框和应用筛选框都是使用Element-ui的组件实现的。在created方法中我们可以提交请求来加载您的应用程序的页面和模块列表。data属性中的value用于存储搜索框中的值,appIndex用于存储当前选中的应用程序。filteredApps是应用程序过滤结果。
二、使用OKAdmin实现权限管理
OKadmin可以与接口进行集成,实现前后端分离以及权限管理。要使用OKadmin进行权限管理,必须首先定义页面和菜单。然后,您可以将菜单视为权限,并将其分配给用户。最后,您需要在前端增加逻辑来根据用户权限隐藏无权访问的页面和菜单。
下面是一个将组件映射到路由的代码示例:
import router from '@/router';
import { flatRoutes } from '@/utils/routes';
// pages
const Global = () => import('@/views/global');
const Demo = () => import('@/views/demo');
const Hello = () => import('@/views/hello');
// routes
const routes = [
{
path: '/',
meta: { hidden: true },
redirect: { name: 'global' }
},
{
path: '/global',
name: 'global',
component: Global,
meta: {
title: 'Global',
icon: 'fa fa-dashboard'
}
},
{
path: '/demo',
name: 'demo',
component: Demo,
meta: {
title: 'Demo',
icon: 'fa fa-cubes'
},
children: [
{
path: 'hello',
name: 'hello',
component: Hello,
meta: {
title: 'Hello',
icon: 'fa fa-hand-spock-o'
}
}
]
}
];
const flat = flatRoutes(routes);
const idMap = flat.reduce((acc, route) => {
acc[route.id] = route;
return acc;
}, {});
router.addRoutes(routes);
以上代码中我们可以看到定义路由的方法,它可以将菜单映射到Vue.js的路由中。在meta属性中,我们提供页面的名称、图标等信息。可以通过设置meta属性中的hidden来实现在不同的用户权限级别下隐藏不同的页面。
三、使用OKadmin实现数据管理
OKadmin可以与数据管理包进行集成,实现数据的快速展示和编辑。您可以使用自定义组件(例如Table)和组合组件(例如Form)来展示数据。此外,您可以使用Element-ui中的表格组件来处理分页和排序的相关功能。
以下代码展示了如何使用OKadmin来展示表格数据:
<template>
<div>
<el-table v-loading="loading" :data="tableData" @sort-change="sortChange">
<el-table-column prop="date" label="日期"></el-table-column>
<el-table-column prop="name" label="姓名"></el-table-column>
<el-table-column prop="address" label="地址"></el-table-column>
</el-table>
<el-pagination :current-page="currentPage" :page-size="20" :total="total" @current-change="currentChange"></el-pagination>
</div>
</template>
<script>
import { fetchData } from '@/api/demo';
export default {
data() {
return {
tableData: [],
loading: false,
sort: { prop: '', order: '' },
currentPage: 1,
total: 0
};
},
created() {
this.fetchData();
},
methods: {
fetchData() {
this.loading = true;
fetchData({ page: this.currentPage, orderProp: this.sort.prop, orderType: this.sort.order }).then(data => {
this.tableData = data.list;
this.total = data.total;
this.loading = false;
});
},
currentChange(page) {
this.currentPage = page;
this.fetchData();
},
sortChange(sort) {
this.sort = sort;
this.fetchData();
}
}
};
</script>
在使用OKadmin进行数据管理时,可以使用Element-ui中的表格组件来好的表格数据。我们可以通过fetchData方法从服务器获取数据。currentPage是当前页码,使得我们可以对分页进行调整。sortChange方法用于更新表头的排序信息。HTML中的分页组件使得我们可以在表格底部快速方便的进行查找操作。