<div id="app">
    <div class="place">
        <span>位置:</span>
        <ul class="placeul">
            <li><a href="#">首页</a></li>
            <li><a href="#">管理员管理</a></li>
        </ul>
    </div>
    <div class="rightinfo">
        <form method="post">
            <ul class="forminfo">
                <li style="display:inline-block;"><label>账户名</label><input name="username" type="text" class="dfinput" v-model="formQuery.username"/></li>
                <li style="display:inline-block;"><label>姓名</label><input name="name" type="text" class="dfinput" v-model="formQuery.name"/></li>
                <li style="display:inline-block;"><label>&nbsp;</label><input name="" type="button" class="btn" value="查询" @click="readAdmins"/></li>
            </ul>
        </form>
        <div class="tools">
            <ul class="toolbar">
                <li class="click">
                    <a href="#">
                        <span><img src="../images/t01.png"/></span>添加管理账户
                    </a>
                </li>
                <li class="click" @click="removes">
                        <span><img src="../images/t03.png"/></span>批量删除
                </li>
            </ul>
        </div>
        <table class="tablelist">
            <thead>
            <tr>
                <th><input name="" type="checkbox" value="" checked="checked" v-model="allChecked"/></th>
                <th>账户名</th>
                <th>姓名</th>
                <th>性别</th>
                <th>是否锁定</th>
                <th>发布时间</th>
                <th>操作</th>
            </tr>
            </thead>
            <tbody>
            <tr v-for="admin in table.data" :key="admin.id">
                <td><input name="" type="checkbox" :value="admin.id" v-model="multipleSelection"/></td>
                <td>{{admin.username}}</td>
                <td>{{admin.name}}</td>
                <td>
                    <template v-if="admin.sex==1">男</template>
                    <template v-else>女</template>
                </td>
                <td>
                    <span :style="admin.unLocked?'color: green;':' color:red;'">{{unLockedMap[admin.unLocked]}}</span>
                </td>
                <td>
                    {{admin.createTime}}
                </td>
                <td>
                    <a href="<%=basePath%>backstage/adminmanage/toUpdateAdmin?id=${admin.id}" class="tablelink">编辑</a>
                    <a name="deleteAdmin" href="#" class="tablelink" @click="remove(admin.id)"> 删除</a></td>
            </tr>
            </tbody>
        </table>
        <div class="pagin">
            <div class="message">共<i class="blue">{{table.totalRecords}}</i>条记录,当前显示的是第{{table.page}}页</div>
            <ul class="paginList">
                <li class="paginItem"><a href="javascript:;"
                        @click="pageChange(1)">首页</a></li>
                <li class="paginItem"><a href="javascript:;"
                        @click="pageChange(table.page-1)"><span class="pagepre"></span></a></li>
                <li class="paginItem"><a href="javascript:;"
                        @click="pageChange(table.page+1)"><span class="pagenxt"></span></a></li>
                <li class="paginItem"><a href="javascript:;"
                        @click="pageChange(table.maxPage)">末页</a></li>
            </ul>
        </div>
    </div>
</div>
<script type="text/javascript">
    $('.tablelist tbody tr:odd').addClass('odd');
    new Vue({
        el: '#app',
        data: {
            table: {//记录表格的数据
                data: [],//表格当前页的数据
                page: 1,//表格当前页,为分页预留
                pageSize: 20,//每页的最大记录数
                totalRecords: 0,//总记录数
            },
            unLockedMap: {true: '未锁定', false: '已锁定'}, //字典值
            formQuery:{},//查询条件
            multipleSelection:[],//选中的账户对象
            allChecked:false,//全选按钮的显示状态,false表示没有勾选,true表示勾选
        },
        methods: {
            readAdmins() {
                //从服务端读取管理员列表
                //把这个表单参数和分页参数合并传递
                const query=Object.assign(this.formQuery,{query:this.table.page,pageSize:this.table.pageSize});
                axios
                    .get("/backstage/adminmanage",{params:query})
                    .then(response => {
                        const responseData = response.data;
                        if (responseData.success) {
                            this.table = responseData.data;//获取当前页的数
                        }
                    })
            },
            pageChange(page){//传要跳转的页面参数
                this.table.page=page;
                this.readAdmins();
            },
            remove(id){//删除指定账户
                if(confirm("是否确认要删除选中的记录?删除后无法恢复")) {//如果在对话框点击确认
                    axios.delete("/backstage/adminmanage", {
                        params: {
                            ids: id
                        }
                    }).then(response => {
                        const responseData = response.data;
                        if (responseData.success) {
                            this.readAdmins();//重新加载表格数据
                        }
                    })
                }
            },
            removes(){//批量移除账户
                if(this.multipleSelection.length>0){//
                    if(confirm("是否确认要删除选中的记录?删除后无法恢复")){//如果在对话框点击确认
                        axios.delete("/backstage/adminmanage",{params:{ids:this.multipleSelection.toString()}})
                        .then(response => {
                            const responseData = response.data;
                            if (responseData.success) {
                                this.readAdmins();//重新加载表格数据
                            }
                        })
                    }
                }
            }
        },
        mounted() {
            this.readAdmins();
        },
        watch:{
            multipleSelection:{
                handler(newValue,oldValue){if (newValue.length==this.table.data.length){//如果已经选中了当前页的所有记录
                        this.allChecked=true;
                    }else{
                        this.allChecked=false;
                    }
                }
            }
        }
    });
</script>
后台管理系统HTML模板 - 模板之家

原文地址: https://www.cveoy.top/t/topic/pcTz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录