用vue2,element-ui生成包含序号,菜单名称,菜单代码,菜单类型,创建时间的分页查询,新增,修改,删除代码
时间: 2024-03-03 07:48:14 浏览: 92
好的,下面是Vue2和Element UI生成的代码示例:
Menu.vue
```html
<template>
<div class="menu">
<el-table :data="menuList" style="width: 100%">
<el-table-column type="index" width="60"></el-table-column>
<el-table-column prop="name" label="菜单名称"></el-table-column>
<el-table-column prop="code" label="菜单代码"></el-table-column>
<el-table-column prop="type" label="菜单类型"></el-table-column>
<el-table-column prop="createTime" label="创建时间"></el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="handleEdit(scope.row)">编辑</el-button>
<el-button type="danger" size="small" @click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:page-sizes="[10, 20, 50, 100]"
:page-size="pageSize"
:total="total">
</el-pagination>
<el-dialog :visible.sync="dialogVisible" title="编辑菜单">
<el-form :model="menu" ref="menuForm" :rules="menuRules" label-width="80px">
<el-form-item label="菜单名称" prop="name">
<el-input v-model="menu.name"></el-input>
</el-form-item>
<el-form-item label="菜单代码" prop="code">
<el-input v-model="menu.code"></el-input>
</el-form-item>
<el-form-item label="菜单类型" prop="type">
<el-select v-model="menu.type">
<el-option label="菜单" value="menu"></el-option>
<el-option label="按钮" value="button"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="handleSave">确 定</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
menuList: [],
total: 0,
pageSize: 10,
dialogVisible: false,
menu: {
name: '',
code: '',
type: 'menu',
},
menuRules: {
name: [
{ required: true, message: '请输入菜单名称', trigger: 'blur' },
],
code: [
{ required: true, message: '请输入菜单代码', trigger: 'blur' },
],
type: [
{ required: true, message: '请选择菜单类型', trigger: 'change' },
],
},
};
},
mounted() {
this.handleSearch();
},
methods: {
handleSearch() {
// 发送分页查询请求
this.menuList = [
{ id: 1, name: '菜单1', code: 'menu1', type: 'menu', createTime: '2021-01-01 10:00:00' },
{ id: 2, name: '菜单2', code: 'menu2', type: 'menu', createTime: '2021-01-02 10:00:00' },
{ id: 3, name: '按钮1', code: 'button1', type: 'button', createTime: '2021-01-03 10:00:00' },
{ id: 4, name: '按钮2', code: 'button2', type: 'button', createTime: '2021-01-04 10:00:00' },
{ id: 5, name: '菜单3', code: 'menu3', type: 'menu', createTime: '2021-01-05 10:00:00' },
];
this.total = 5;
},
handleSizeChange(pageSize) {
this.pageSize = pageSize;
this.handleSearch();
},
handleCurrentChange(currentPage) {
// 计算分页参数
const offset = (currentPage - 1) * this.pageSize;
const limit = this.pageSize;
// 发送分页查询请求
this.handleSearch();
},
handleEdit(row) {
this.menu = Object.assign({}, row);
this.dialogVisible = true;
},
handleDelete(row) {
// 发送删除请求
this.handleSearch();
},
handleSave() {
this.$refs.menuForm.validate((valid) => {
if (valid) {
// 发送保存请求
this.dialogVisible = false;
this.handleSearch();
} else {
return false;
}
});
},
},
};
</script>
```
这里使用了Element UI中的el-table、el-pagination、el-dialog、el-form、el-button和el-select等组件。其中,el-table用于展示分页查询结果,el-pagination用于分页显示,el-dialog用于编辑和新增菜单,el-form用于表单校验。代码中的handleSearch、handleSizeChange、handleCurrentChange、handleEdit、handleDelete和handleSave等方法分别对应分页查询、分页变更、编辑、删除和保存操作。
阅读全文