You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

201 lines
6.9 KiB

<template>
<div class="v-list" v-loading="loading" element-loading-text="加载中">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span class="title">
管理员列表
</span>
</div>
<!-- 搜索 -->
<div class="form-search">
<el-form @submit.prevent.stop :inline="true" size="mini">
<el-form-item label="帐号">
<el-input v-model="search.username"></el-input>
</el-form-item> <el-form-item>
<el-button type="primary" @click="searchSubmit" icon="el-icon-search">查询</el-button>
</el-form-item>
</el-form>
</div>
<el-table border :data="list" style="width: 100%" highlight-current-row
>
<el-table-column type="index" label="#"></el-table-column> <!-- 序号 -->
<el-table-column label="帐号"width="130">
<template slot-scope="{row}">
{{ row.username }} </template>
</el-table-column>
<el-table-column label="密码">
<template slot-scope="{row}">
{{ row.pwd }} </template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="{row}">
<el-button-group>
<el-tooltip content="编辑" placement="top">
<el-button icon="el-icon-edit" @click="$goto({path:'/admin/adminsupdt',query:{id:row.id } })"
type="warning" size="mini"></el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button icon="el-icon-delete" type="danger" size="mini" @click="deleteItem(row)">
</el-button>
</el-tooltip>
</el-button-group>
</template>
</el-table-column>
</el-table>
<div class="e-pages" style="margin-top: 10px;text-align: center">
<el-pagination
@current-change="loadList"
:current-page="page"
:page-size="pagesize"
@size-change="sizeChange"
layout="total, sizes, prev, pager, next, jumper"
:total="totalCount">
</el-pagination>
</div>
</el-card>
</div>
</template>
<style type="text/scss" scoped lang="scss">
</style>
<script>
import api from '@/api';
import { remove , checkIssh } from '@/utils/utils';
import { extend } from '@/utils/extend';
import objectDiff from 'objectdiff';
/**
* 后台列表页面
*/
export default {
data() {
return {
loading:false,
list:[],
search:{
username:'',
},
total:{},
page:1, // 当前页
pagesize:10, // 页大小
totalCount:0, // 总行数
}
},
watch: {},
computed: {},
methods: {
searchSubmit(){
this.loadList(1);
},
sizeChange(e){
this.pagesize = e;
this.loadList(1);
},
checkIssh,
loadList( page ){
// 防止重新点加载列表
if(this.loading)return;
this.loading = true;
this.page = page;
// 筛选条件
var filter = extend(true, {}, this.search, {page:page+"", pagesize: this.pagesize+""});
var diff = objectDiff.diff(filter, this.$route.query);
if (diff.changed != 'equal') { // 筛选的条件不一致则更新链接
this.$router.push({ // 更新query
path: this.$route.path,
query: filter
});
}
this.$post(api.admins.list , filter).then(res=>{
this.loading = false;
if(res.code == api.code.OK)
{
extend(this , res.data);
}else{
this.$message.error(res.msg);
}
}).catch(err=>{
this.loading = false;
this.$message.error(err.message);
});
},
// 删除某行方法
deleteItem( row ){
this.$confirm('确定删除数据?' , '提示',{ // 弹出 确认框提示是否要删除
type: 'warning'
}).then(()=>{// 确定操作
this.loading = true; // 滚动条
this.$post(api.admins.delete , {// 提交后台
id:row.id
}).then(res=>{
this.loading = false;
if(res.code != api.code.OK){
this.$message.error(res.msg);
}else{
remove(this.list , row);
}
}).catch(err=>{ // 访问网络错误
this.loading = false;
this.$message.error(err.message)
})
}).catch(()=>{
// 取消操作
})
},
},
beforeRouteUpdate(to,form,next){
extend(this.search , to.query)
this.loadList(1);
next();
},
created() {
var search = extend(this.search , this.$route.query)
if(search.page)
{
this.page = Math.floor(this.$route.query.page)
delete search.page
}
if(search.pagesize)
{
this.pagesize = Math.floor(this.$route.query.pagesize)
delete search.pagesize
}
this.loadList(1);
},
mounted() {
},
destroyed() {
}
}
</script>