效果预览
使用技术
Vue+Element UI
整体布局
整体上,用户管理页面位于整个显示区域的主要部分(头部和侧边栏之外),具体包含以下的元素:
1 面包屑导航
2 输入框组
3 按钮组
4 表格
5 分页
代码部分
- 新建用户管理vue文件
- Main.vue 主页面添加主视图区域,然后在index.js中配置Users的组件即可在el-main区域进行显示了
<el-main>
<!-- 路由视图每次点击将新视图放在这个位置 有点像 iframe -->
<router-view></router-view>
</el-main>
3. Users.vue页面代码
页面整体使用 Element UI组件进行组合,可以在Element UI 官网进行查看进入
3.1 template部分
<template>
<div>
<!-- 面包屑导航 -->
<el-breadcrumb separator="/" style="padding-left: 10px;padding-bottom: 10px;font-size: 12px">
<el-breadcrumb-item :to="{ path: '/main' }">首页</el-breadcrumb-item>
<el-breadcrumb-item><a href="/">系统管理</a></el-breadcrumb-item>
<el-breadcrumb-item>用户管理</el-breadcrumb-item>
</el-breadcrumb>
<!-- 用户列表卡片 -->
<el-card class="box-card">
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="部门" label-width="70px">
<el-select clearable v-model="formInline.city" placeholder="请选择">
<el-option
v-for="item in cities"
:key="item.value"
:label="item.label"
:value="item.value">
<span style="float: left">{{ item.label }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.value }}</span>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="用户名" label-width="70px">
<el-input clearable v-model="formInline.user" placeholder="请输入用户名"></el-input>
</el-form-item>
<el-form-item label="邮箱" label-width="70px">
<el-input clearable v-model="formInline.email" placeholder="请输入用户名"></el-input>
</el-form-item>
<el-form-item label-width="70px">
<el-radio v-model="formInline.radio" label="1">备选项</el-radio>
<el-radio v-model="formInline.radio" label="2">备选项</el-radio>
<el-radio v-model="formInline.radio" label="3">备选项</el-radio>
<!-- <el-button type="primary" @click="onSubmit">查询</el-button>-->
</el-form-item>
<el-form-item label="昵称" label-width="70px">
<el-input clearable v-model="formInline.nikeName" placeholder="请输入昵称"></el-input>
</el-form-item>
<el-form-item style="margin-left: 10px">
<el-button icon="el-icon-refresh">重置</el-button>
<el-button type="primary" icon="el-icon-search">查询</el-button>
<el-button type="success" icon="el-icon-plus">添加</el-button>
<el-button type="warning" icon="el-icon-download">导出</el-button>
</el-form-item>
</el-form>
<!-- 表格内容显示区域 -->
<el-table
:data="tableData"
border
style="width: 100%; height: 400px">
<el-table-column
prop="date"
label="日期"
width="180">
</el-table-column>
<el-table-column
prop="name"
label="姓名"
width="180">
</el-table-column>
<el-table-column
prop="address"
label="地址">
</el-table-column>
</el-table>
<!-- 分页 -->
<el-pagination
style="padding-top: 15px"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage4"
:page-sizes="[100, 200, 300, 400]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="400">
</el-pagination>
</el-card>
</div>
</template>
3.2 script部分
<script>
export default {
name: 'Users',
data () {
return {
formInline: {
user: '',
email: '',
city: '',
radio: '1',
nikeName: '',
},
currentPage4: 4,
cities: [{
value: 'Beijing',
label: '北京'
}, {
value: 'Shanghai',
label: '上海'
}, {
value: 'Nanjing',
label: '南京'
}, {
value: 'Chengdu',
label: '成都'
}, {
value: 'Shenzhen',
label: '深圳'
}, {
value: 'Guangzhou',
label: '广州'
}],
value: '',
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1517 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1519 弄'
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1516 弄'
}],
}
},
methods: {
onSubmit () {
console.log('submit!')
},
handleSizeChange (val) {
console.log(`每页 ${val} 条`)
},
handleCurrentChange (val) {
console.log(`当前页: ${val}`)
}
}
}
</script>
3.3 css 部分当前不需要,按照以上的过程,即可构造出文章开头的页面效果了。