0
点赞
收藏
分享

微信扫一扫

Element常用组件—表格、表单、对话框和分页工具条


目录

​​一、Element表格​​

​​二、Element表单​​

​​三、Element对话框​​

​​四、Element分页工具条​​

​​五、 结合之后的组件代码​​

一、Element表格

由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据。

带状态表格:可将表格内容 highlight 显示,方便区分「成功、信息、警告、危险」等内bian

Element表格代码:

<div id="app">

<!--表格-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName">
<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>
</template>

</div>

css样式:

<style>
.el-table .warning-row {
background: oldlace;
}

.el-table .success-row {
background: #f0f9eb;
}
</style>


medhods及data对象:


<script>
new Vue({
el: "#app",
methods: {
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
}
},
data() {
return {
tableData: [{
date: '2016-05-02',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
}, {
date: '2016-05-04',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}, {
date: '2016-05-01',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄',
}, {
date: '2016-05-03',
name: '王小虎',
address: '上海市普陀区金沙江路 1518 弄'
}]
}
}
})

</script>

执行结果:

Element常用组件—表格、表单、对话框和分页工具条_elementui

 二、Element表单

由输入框、选择器、单选框、多选框等控件组成,用以收集、校验、提交数据

行内表单:当垂直方向空间受限且表单较简单时,可以在一行内放置表单。

Element表单代码:

<!--搜索表单-->
<el-form :inline="true" :model="brand" class="demo-form-inline">
<el-form-item label="当前状态">
<el-select v-model="brand.status" placeholder="当前状态">
<el-option label="启用" value="1"></el-option>
<el-option label="禁用" value="0"></el-option>
</el-select>
</el-form-item>

<el-form-item label="企业名称">
<el-input v-model="brand.companyName" placeholder="企业名称"></el-input>
</el-form-item>

<el-form-item label="品牌名称">
<el-input v-model="brand.brandName" placeholder="品牌名称"></el-input>
</el-form-item>

<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item>
</el-form>

方法:

 methods: {
onSubmit() {
console.log('submit!');
}
}

data:

data() {
return {
formInline: {
user: '',
region: ''
}
}
},

执行结果:

Element常用组件—表格、表单、对话框和分页工具条_json_02

三、Element对话框

在保留当前页面状态的情况下,告知用户并承载相关操作。

基本用法:Dialog 弹出一个对话框,适合需要定制性更大的场景。

Element代码:

<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose">
<span>这是一段信息</span>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
</span>
</el-dialog>

标记:

//添加数据对话框是否展示的标记
dialogVisible: false,

按钮:

<el-row>
<el-button type="danger" plain>批量删除</el-button>
<el-button type="primary" plain @click="dialogVisible = true">新增</el-button>
</el-row>

执行结果:

Element常用组件—表格、表单、对话框和分页工具条_elementui_03

四、Element分页工具条

Pagination 分页:当数据量过多时,使用分页分解数据。

附加功能:根据场景需要,可以添加其他功能模块。

 <!--分页工具条-->
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[5, 10, 15, 20]"
:page-size="5"
layout="total, sizes, prev, pager, next, jumper"
:total="400">
</el-pagination>

执行结果:

Element常用组件—表格、表单、对话框和分页工具条_vue.js_04

五、 结合之后的组件代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>

<style>
.el-table .warning-row {
background: oldlace;
}

.el-table .success-row {
background: #f0f9eb;
}
</style>

</head>
<body>
<div id="app">

<!--搜索表单-->
<el-form :inline="true" :model="brand" class="demo-form-inline">
<el-form-item label="当前状态">
<el-select v-model="brand.status" placeholder="当前状态">
<el-option label="启用" value="1"></el-option>
<el-option label="禁用" value="0"></el-option>
</el-select>
</el-form-item>

<el-form-item label="企业名称">
<el-input v-model="brand.companyName" placeholder="企业名称"></el-input>
</el-form-item>

<el-form-item label="品牌名称">
<el-input v-model="brand.brandName" placeholder="品牌名称"></el-input>
</el-form-item>

<el-form-item>
<el-button type="primary" @click="onSubmit">查询</el-button>
</el-form-item>
</el-form>

<!--按钮-->
<el-row>
<el-button type="danger" plain>批量删除</el-button>
<el-button type="primary" plain @click="dialogVisible = true">新增</el-button>
</el-row>
<!--添加数据的对话框表单-->
<el-dialog
title="编辑品牌"
:visible.sync="dialogVisible"
width="30%"
>

<el-form ref="form" :model="brand" label-width="80px">
<el-form-item label="品牌名称">
<el-input v-model="brand.brandName"></el-input>
</el-form-item>

<el-form-item label="企业名称">
<el-input v-model="brand.companyName"></el-input>
</el-form-item>

<el-form-item label="排序">
<el-input v-model="brand.ordered"></el-input>
</el-form-item>

<el-form-item label="备注">
<el-input type="textarea" v-model="brand.description"></el-input>
</el-form-item>

<el-form-item label="状态">
<el-switch v-model="brand.status"
active-value="1"
inactive-value="0"
></el-switch>
</el-form-item>

<el-form-item>
<el-button type="primary" @click="addBrand">提交</el-button>
<el-button @click="dialogVisible = false">取消</el-button>
</el-form-item>
</el-form>

</span>
</el-dialog>
<!--表格-->
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-class-name="tableRowClassName"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column
type="index"
width="50">
</el-table-column>

<el-table-column
prop="brandName"
label="品牌名称"
align="center"
>
</el-table-column>
<el-table-column
prop="companyName"
label="企业名称"
align="center"
>
</el-table-column>
<el-table-column
prop="ordered"
align="center"
label="排序">
</el-table-column>
<el-table-column
prop="status"
align="center"
label="当前状态">
</el-table-column>

<el-table-column
align="center"
label="操作">

<el-row>
<el-button type="primary">修改</el-button>
<el-button type="danger">删除</el-button>
</el-row>
</el-table-column>
</el-table>
</template>

<!--分页工具条-->
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[5, 10, 15, 20]"
:page-size="5"
layout="total, sizes, prev, pager, next, jumper"
:total="400">
</el-pagination>

</div>


<script src="js/vue.js"></script>
<script src="element-ui/lib/index.js"></script>
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">


<script>
new Vue({
el: "#app",
methods: {
tableRowClassName({row, rowIndex}) {
if (rowIndex === 1) {
return 'warning-row';
} else if (rowIndex === 3) {
return 'success-row';
}
return '';
},
//复选框选中后执行的方法
handleSelectionChange(val) {
this.multipleSelection = val;

console.log(this.multipleSelection)
},
//查询方法
onSubmit() {
console.log(this.brand);
},
//添加数据
addBrand() {
console.log(this.brand);
},
//分页方法
methods: {
handleSizeChange(val) {
console.log(`每页 ${val} 条`);
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
}
}
},
data() {
return {
//当前页码
currentPage: 4,

//添加数据对话框是否展示的标记
dialogVisible: false,
// 品牌模型数据
brand: {
status: '',
brandName: '',
companyName: '',
id: "",
ordered: "",
description: ""
},
//复选框选中数据集合
multipleSelection: [],
//表格数据
tableData: [{
brandName: '2016-05-02',
companyName: '华为科技有限公司',
ordered: '100',
status: "1"
}, {
brandName: '2016-05-02',
companyName: '华为科技有限公司',
ordered: '100',
status: "1"
}, {
brandName: '2016-05-02',
companyName: '华为科技有限公司',
ordered: '100',
status: "1"
}, {
brandName: '2016-05-02',
companyName: '华为科技有限公司',
ordered: '100',
status: "1"
}]
}
}
})

</script>

</body>
</html>

执行结果:

Element常用组件—表格、表单、对话框和分页工具条_javascript_05

Element常用组件—表格、表单、对话框和分页工具条_javascript_06

Element常用组件—表格、表单、对话框和分页工具条_vue.js_07

举报

相关推荐

0 条评论