提供了前端分页mixin解决方案

This commit is contained in:
pixel
2019-09-21 17:38:51 +08:00
parent bbb6e00a95
commit 63200f5497
12 changed files with 198 additions and 62 deletions

View File

@@ -0,0 +1,20 @@
import service from '@/utils/request'
// @Tags api
// @Summary 分页获取角色列表
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body modelInterface.PageInfo true "分页获取用户列表"
// @Success 200 {string} json "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /api/getApiList [post]
// {
// page int
// pageSize int
// }
export const getApiList = (data) => {
return service({
url: "/api/getApiList",
method: 'post',
data
})
}

View File

@@ -1,14 +1,62 @@
<template>
<div>
新建api
<div>
<div class="button-box clearflex">
<el-button @click="addApi" type="primary">新增api</el-button>
</div>
<el-table :data="tableData" border stripe>
<el-table-column label="id" min-width="180" prop="ID"></el-table-column>
<el-table-column label="api路径" min-width="180" prop="path"></el-table-column>
<el-table-column label="api简介" min-width="180" prop="description"></el-table-column>
<el-table-column fixed="right" label="操作" width="200">
<template slot-scope="scope">
<el-button @click="editApi(scope.row)" size="small" type="text">编辑</el-button>
<el-button @click="deleteApi(scope.row)" size="small" type="text">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
:current-page="page"
:page-size="pageSize"
:page-sizes="[10, 30, 50, 100]"
:style="{float:'right',padding:'20px'}"
:total="total"
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
hide-on-single-page
layout="total, sizes, prev, pager, next, jumper"
></el-pagination>
</div>
</template>
<script>
import { getApiList } from '@/api/api'
import infoList from '@/view/superAdmin/mixins/infoList'
export default {
name:"Api",
name: 'Api',
mixins:[infoList],
data() {
return {
listApi: getApiList,
listKey:'list'
}
},
methods: {
addApi() {},
editApi() {},
deleteApi() {}
},
created() {
this.getTableData()
}
}
</script>
<style lang="scss">
<style scoped lang="scss">
.button-box {
padding: 10px 20px;
.el-button {
float: right;
}
}
</style>

View File

@@ -67,15 +67,15 @@ import {
createAuthority
} from '@/api/authority'
import { getBaseMenuTree, addMenuAuthority, getMenuAuthority } from '@/api/menu'
import infoList from '@/view/superAdmin/mixins/infoList'
export default {
name: 'Authority',
mixins:[infoList],
data() {
return {
listApi: getAuthorityList,
listKey:'list',
activeUserId: 0,
page: 1,
total: 10,
pageSize: 10,
tableData: [],
treeData: [],
treeIds: [],
defaultProps: {
@@ -91,16 +91,6 @@ export default {
}
},
methods: {
// 条数
handleSizeChange(val) {
this.pageSize = val
this.getAuthList()
},
// 页码
handleCurrentChange(val) {
this.page = val
this.getAuthList()
},
// 删除角色
deleteAuth(row) {
this.$confirm('此操作将永久删除该角色, 是否继续?', '提示', {
@@ -115,7 +105,7 @@ export default {
type: 'success',
message: '删除成功!'
})
this.getAuthList()
this.getTableData()
}
})
.catch(() => {
@@ -145,7 +135,7 @@ export default {
type: 'success',
message: '添加成功!'
})
this.getAuthList()
this.getTableData()
this.closeDialog()
}
this.initForm()
@@ -155,11 +145,7 @@ export default {
addAuthority() {
this.dialogFormVisible = true
},
// 获取用户列表
async getAuthList(page = this.page, pageSize = this.pageSize) {
const table = await getAuthorityList({ page, pageSize })
this.tableData = table.data.authList
},
// 关联用户列表关系
async addAuthMenu(row) {
const res1 = await getMenuAuthority({ authorityId: row.authorityId })
@@ -194,11 +180,11 @@ export default {
// 获取基础menu树
},
created() {
this.getAuthList()
this.getTableData()
}
}
</script>
<style lang="scss">
<style scoped lang="scss">
.button-box {
padding: 10px 20px;
.el-button {

View File

@@ -80,14 +80,14 @@
<script>
import { getMenuList, addBaseMenu, deleteBaseMenu } from '@/api/menu'
import infoList from '@/view/superAdmin/mixins/infoList'
export default {
name: 'Menus',
mixins:[infoList],
data() {
return {
page: 1,
total: 10,
pageSize: 10,
tableData: [],
listApi:getMenuList,
listKey:'list',
dialogFormVisible: false,
form: {
path: '',
@@ -103,14 +103,6 @@ export default {
}
},
methods: {
handleSizeChange(val) {
this.pageSize = val
this.getMenuList()
},
handleCurrentChange(val) {
this.page = val
this.getMenuList()
},
deleteMenu(ID) {
this.$confirm('此操作将永久删除所有角色下该菜单, 是否继续?', '提示', {
confirmButtonText: '确定',
@@ -124,7 +116,7 @@ export default {
type: 'success',
message: '删除成功!'
})
this.getMenuList()
this.getTableData()
}
})
.catch(() => {
@@ -158,7 +150,7 @@ export default {
type: 'success',
message: '添加成功!'
})
this.getAuthList()
this.getTableData()
this.closeDialog()
} else {
this.$message({
@@ -174,17 +166,11 @@ export default {
this.form.parentId = String(id)
this.dialogFormVisible = true
},
async getMenuList(page = this.page, pageSize = this.pageSize) {
const table = await getMenuList({ page, pageSize })
this.tableData = table.data.menuList
}
},
created() {
this.getMenuList()
}
}
</script>
<style lang="scss">
<style scoped lang="scss">
.button-box {
padding: 10px 20px;
.el-button {

View File

@@ -0,0 +1,28 @@
export default {
data() {
return {
page: 1,
total: 10,
pageSize: 10,
tableData: [],
}
},
methods: {
handleSizeChange(val) {
this.pageSize = val
this.getTableData()
},
handleCurrentChange(val) {
this.page = val
this.getTableData()
},
async getTableData(page = this.page, pageSize = this.pageSize) {
const table = await this.listApi({ page, pageSize })
this.tableData = table.data[this.listKey]
}
},
created() {
this.getTableData()
}
}