| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316 | <!DOCTYPE html><html>	<head>		<title>管理员列表</title>		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">		<meta name="viewport"			content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />		<!-- 所有的 css & js 资源 -->		<link rel="stylesheet" href="../../static/kj/element-ui/theme-chalk/index.css">		<link rel="stylesheet" href="../../static/sa.css">		<script src="../../static/kj/vue.min.js"></script>		<script src="../../static/kj/element-ui/index.js"></script>		<script src="../../static/kj/httpVueLoader.js"></script>		<script src="../../static/kj/jquery.min.js"></script>		<script src="../../static/kj/layer/layer.js"></script>		<script src="../../static/sa.js"></script>		<script src="../../static/kj/upload-util.js"></script>		<style type="text/css">			.el-radio {				margin-right: 10px;			}		</style>	</head>	<body>		<div class="vue-box" style="display: none;" :style="'display: block;'">			<div class="c-panel">				<!-- ------------- 检索参数 ------------- -->				<h4 class="c-title">检索参数</h4>				<el-form>					<sa-item type="text" name="用户名" v-model="p.name"></sa-item>					<el-button type="primary" icon="el-icon-search" @click="p.pageNo = 1; f5()">查询</el-button>					<br>				</el-form>				<!-- ------------- 快捷按钮 ------------- -->				<el-button type="primary" icon="el-icon-plus" @click="add()" v-if="sa.isAuth('tb-costomer-user-add')">新增				</el-button>				<el-button type="danger" icon="el-icon-delete" @click="deleteByIds()"					v-if="sa.isAuth('tb-costomer-maintain-user-del')">删除				</el-button>				<el-button type="info" icon="el-icon-refresh" @click="sa.f5()">重置</el-button>				<!-- ------------- 数据列表 ------------- -->				<el-table class="data-table" ref="data-table" :data="dataList">					<sa-td type="selection"></sa-td>					<sa-td type="text" name="用户名" prop="name" min-width="120px"></sa-td>					<sa-td type="datetime" name="创建时间" prop="createTime" width="150px"></sa-td>					<sa-td type="datetime" name="最后登录" prop="loginTime" width="150px"></sa-td>					<sa-td type="text" name="登录次数" prop="loginCount" not="0" width="100px"></sa-td>					<sa-td type="switch" name="账号状态" prop="status" :jv="{1: '正常', 2: '禁用[#ff4949]'}"						@change="s => updateStatus(s.row)" width="120px"></sa-td>					<el-table-column label="操作" fixed="right" width="450px">						<template slot-scope="s">							<span @click="getInfo(s.row)">								<el-button type="success" class="c-btn" icon="el-icon-view">查看</el-button>							</span>							<span @click="updateName(s.row)" v-if="sa.isAuth('tb-costomer-user-edit')">								<el-button type="primary" class="c-btn" icon="el-icon-edit">改名称</el-button>							</span>							<span @click="updateAvatar(s.row)" v-if="sa.isAuth('tb-costomer-user-edit')">								<el-button type="primary" class="c-btn" icon="el-icon-edit">改头像</el-button>							</span>							<span @click="updatePassword(s.row)" v-if="sa.isAuth('tb-costomer-user-edit')">								<el-button type="primary" class="c-btn" icon="el-icon-edit">改密码</el-button>							</span>							<span @click="roleFn(s.row)" v-if="sa.isAuth('tb-costomer-user-edit')">								<el-button type="primary" class="c-btn" icon="el-icon-edit">角色</el-button>							</span>							<span @click="del(s.row)" v-if="sa.isAuth('tb-costomer-user-del')">								<el-button type="danger" class="c-btn" icon="el-icon-delete">删除</el-button>							</span>						</template>					</el-table-column>				</el-table>				<!-- 分页 -->				<sa-item type="page" :curr.sync="p.pageNo" :size.sync="p.pageSize" :total="dataCount" @change="f5()">				</sa-item>			</div>			<el-dialog :title="roleDialog.title" :visible.sync="roleDialog.visible" width="60%">				<div>					<el-checkbox @change="handleCheckAllChange">全选</el-checkbox>					<div style="margin: 15px 0;"></div>					<el-checkbox-group v-model="roleDialog.form.roleId">						<el-checkbox v-for="role in roleList" :label="role.id+''" :key="role.id">{{role.name}}						</el-checkbox>					</el-checkbox-group>				</div>				<span slot="footer" class="dialog-footer">					<el-button @click="roleDialog.visible = false">取 消</el-button>					<el-button type="primary" @click="confirmSetRole">确 定</el-button>				</span>			</el-dialog>		</div>		<script>			var app = new Vue({				components: {					"sa-item": httpVueLoader('../../sa-frame/com/sa-item.vue'),					"sa-td": httpVueLoader('../../sa-frame/com/sa-td.vue')				},				el: '.vue-box',				data: {					roleDialog: {						visible: false,						title: '',						form: {							id: '',							roleId: [],						}					},					sa: sa, // 超级对象					p: { // 查询参数						name: '',						customerId: sa.p('customerId', ''),						sort_type: 0,						pageNo: 1,						pageSize: 10,					},					dataCount: 0,					dataList: [], // 数据集合					roleList: [], // 角色集合 				},				methods: {					roleFn(data) {						Object.assign(this.roleDialog, {							visible: true,							title: '设置[' + data.name + ']角色属性',							form: {								id: data.id,								roleId: data.roleId.split(',')							}						})					},					handleCheckAllChange() {						let roleId = this.roleDialog.form.roleId;						let allIds = this.roleList.map(obj => obj.id + '');						this.roleDialog.form.roleId = roleId.length != allIds.length ? allIds : [];					},					confirmSetRole() {						let roleId = this.roleDialog.form.roleId;						if (roleId.length == 0) {							return sa.msg('请选择一个角色')						}						let o = {							id: this.roleDialog.form.id,							roleId: this.roleDialog.form.roleId.join(',')						}						sa.ajax('/admin/setRole', o, function(resp) {							this.f5();							this.roleDialog.visible = false;						}.bind(this))					},					// 刷新					f5: function(isPage) {						sa.ajax('/admin/getCustomerAdminList', this.p, function(res) {							this.dataList = res.data; // 数据							this.dataCount = res.dataCount;							sa.f5TableHeight(); // 刷新表格高度 						}.bind(this));					},					// 新增					add: function() {						sa.showIframe('新增用户', 'customer-admin-add.html?customerId=' + this.p.customerId, '550px',							'75%');					},					// 查看详情					getInfo: function(data) {						sa.showIframe('账号详情', '../../sa-view-sp/sp-admin/admin-info.html?id=' + data.id, '700px',							'80%');						//sa.$page.openAdminInfo(data.id, data.name);					},					// 查看 - 根据选中的					getBySelect: function(data) {						var selection = this.$refs['data-table'].selection;						if (selection.length == 0) {							return sa.msg('请选择一条数据')						}						this.getInfo(selection[0]);					},					// 修改名称 					updateName: function(data) {						layer.prompt({							title: '修改账号名称'						}, function(pass, index) {							layer.close(index);							sa.ajax('/admin/update', {								id: data.id,								name: pass							}, function(res) {								data.name = pass;								layer.msg('修改成功');							})						});					},					// 修改头像 					updateAvatar: function(data) {						sa.uploadImage(function(src) {							var p = {								id: data.id,								avatar: src							};							sa.ajax('/admin/updateAvatar', p, function(res) {								sa.msg('上传成功');								data.avatar = src;							}.bind(this));						})					},					// 修改密码					updatePassword: function(data) {						layer.prompt({							title: '修改密码'						}, function(pass, index) {							layer.close(index);							if (pass.length < 4) {								return layer.msg('新密码长度请不要低于4位');							}							sa.ajax('/admin/updatePassword', {								id: data.id,								password: pass							}, function(res) {								layer.msg('修改成功');							})						});					},					// 修改角色 					updateRoleId: function(data, roleId, roleName) {						if (data.id == sa.$sys.getCurrUser().id) {							return sa.alert('不能自己修改自己的角色');						}						if (data.roleId == roleId) {							return sa.alert('该用户已经是' + roleName + '了');						}						var str = '将此账号修改为 [' + roleName + '], 请确认?';						layer.confirm(str, {							title: '请确认'						}, function() {							sa.ajax('/admin/updateRole', {								id: data.id,								roleId: roleId							}, function(res) {								sa.msg('修改成功');								data.roleId = roleId;								data.roleName = roleName;							}.bind(this));						}.bind(this));					},					// 修改用户的状态					updateStatus: function(data) {						if (data.id == sa.$sys.getCurrUser().id) {							data.status = 3 - data.status;							return sa.alert('不能自己封禁自己');						}						var is_ok = false; // 记录是否成功 						var ajax = sa.ajax('/admin/updateStatus', {							adminId: data.id,							status: data.status						}, function(res) {							sa.msg('修改成功');							is_ok = true;						}.bind(this));						// 如果未能修改成功, 则回滚 						$.when(ajax).done(function() {							if (is_ok == false) {								data.status = 3 - data.status;							}						})					},					// 删除 					del: function(data) {						sa.confirm('是否删除,此操作不可撤销', function() {							sa.ajax('/admin/delete', {								id: data.id							}, function(res) {								sa.arrayDelete(app.dataList, data);								sa.ok('删除成功');								sa.f5TableHeight(); // 刷新表格高度 							})						});					},					// 批量删除					deleteByIds: function() {						// 获取选中元素的id列表						let selection = this.$refs['data-table'].selection;						let ids = sa.getArrayField(selection, 'id');						if (selection.length == 0) {							return sa.msg('请至少选择一条数据')						}						// 提交删除 						sa.confirm('是否批量删除选中数据?此操作不可撤销', function() {							sa.ajax('/admin/deleteByIds', {								ids: ids.join(',')							}, function(res) {								sa.arrayDelete(this.dataList, selection);								sa.ok('删除成功');								sa.f5TableHeight(); // 刷新表格高度 							}.bind(this))						}.bind(this));					},					getRoleList() {						// 加载角色						sa.ajax('/role/getCustomerRoleList', {							customerId: this.p.customerId						}, function(res) {							this.roleList = res.data; // 数据  						}.bind(this), {							msg: null						});					}				},				created: function() {					this.f5();					sa.onInputEnter(); // 监听回车执行查询 					this.getRoleList();				}			})		</script>	</body></html>
 |