Browse Source

账号管理修改了需求。

soft5566 3 năm trước cách đây
mục cha
commit
55c36692bd
5 tập tin đã thay đổi với 145 bổ sung120 xóa
  1. 20 19
      src/api/accountMgr.js
  2. 1 0
      src/store/getters.js
  3. 3 1
      src/store/modules/user.js
  4. 5 0
      src/utils/auth.js
  5. 116 100
      src/views/accountMgr/index.vue

+ 20 - 19
src/api/accountMgr.js

@@ -1,16 +1,16 @@
-import request from '@/utils/request'
+import request from '@/utils/request';
 
 // 获取账号列表数据
 export function getTableData(forData) {
-	let data = new FormData()
-	data.append('page', forData.page)
-	data.append('rows', forData.rows)
+	let data = new FormData();
+	data.append('page', forData.page);
+	data.append('rows', forData.rows);
 	return request({
 		url: '/airManage/adminlist.action',
 		method: 'post',
 		data
-	})
-}
+	});
+};
 
 // 新增管理员
 export function addAccount(param) {
@@ -18,16 +18,17 @@ export function addAccount(param) {
 		admin_name: param.username,
 		phone: param.phone,
 		password: param.password,
-		user_name: param.fullname,
 		level: param.checkedRole[0] == '超级管理员' ? 2 : 1,
-		remark: param.comment
-	}
+		user_name: param.fullname,
+		remark: param.comment,
+		card_number: param.cardNumber
+	};
 	return request({
 		url: '/airManage/admininsert.action',
 		method: 'post',
 		data
-	})
-}
+	});
+};
 
 // 修改管理员
 export function modifyAccount(param) {
@@ -36,25 +37,25 @@ export function modifyAccount(param) {
 		admin_name: param.username,
 		phone: param.phone,
 		password: param.password,
+		card_number: param.cardNumber,
 		user_name: param.fullname,
 		level: param.checkedRole[0] == '超级管理员' ? 2 : 1,
 		remark: param.comment
-	}
-	console.log(data);
+	};
 	return request({
 		url: '/airManage/adminupdate.action',
 		method: 'post',
 		data
-	})
-}
+	});
+};
 
 // 删除管理员
 export function deleteAccount(param) {
-	let data = new FormData()
-	data.append('id', param)
+	let data = new FormData();
+	data.append('id', param);
 	return request({
 		url: '/airManage/admindel.action',
 		method: 'post',
 		data
-	})
-}
+	});
+};

+ 1 - 0
src/store/getters.js

@@ -4,6 +4,7 @@ const getters = {
 	token: state => state.user.token,
 	avatar: state => state.user.avatar,
 	name: state => state.user.name,
+	level: state => state.user.level,
 	user_name: state => state.user.user_name,
 	phone: state => state.user.phone
 }

+ 3 - 1
src/store/modules/user.js

@@ -7,7 +7,8 @@ import {
 	getToken,
 	setToken,
 	removeToken,
-	setName
+	setName,
+	setLevel
 } from '@/utils/auth'
 import {
 	resetRouter
@@ -73,6 +74,7 @@ const actions = {
 					commit('SET_TOKEN', token)
 					setToken(token)
 					setName(response.data[0].admin_name)
+					setLevel(response.data[0].level)
 					// 添加:
 					commit('SET_LEVEL', response.data[0].level)
 					commit('SET_NAME', response.data[0].admin_name)

+ 5 - 0
src/utils/auth.js

@@ -2,6 +2,7 @@ import Cookies from 'js-cookie'
 
 const TokenKey = 'admin_token'
 const AdminName = 'admin_name'
+const AdminLevel = 'admin_level'
 
 export function getToken() {
   return Cookies.get(TokenKey)
@@ -19,6 +20,10 @@ export function setName(name) {
   return Cookies.set(AdminName, name)
 }
 
+export function setLevel(level) {
+  return Cookies.set(AdminLevel, level)
+}
+
 export function getName() {
 	return Cookies.get(AdminName)
 }

+ 116 - 100
src/views/accountMgr/index.vue

@@ -12,8 +12,8 @@
 						</div>
 					</div>
 					<div class="cell-body">
-						<el-table :data="tableData" height="560" style="width: 100%" :cell-style="cell_style"
-							v-loading="loading" :header-cell-style="header_cell_style">
+						<el-table :data="tableData" height="560" style="width: 100%" :cell-style="cell_style" v-loading="loading"
+							:header-cell-style="header_cell_style">
 							<el-table-column label="序号" align="center" width="100">
 								<template slot-scope="scope">
 									<span>{{(pagination.currentPage - 1) * pagination.pageSize + scope.$index + 1}}</span>
@@ -34,6 +34,11 @@
 									<span>{{ scope.row.user_name }}</span>
 								</template>
 							</el-table-column>
+							<el-table-column label="学工号" align="center">
+								<template slot-scope="scope">
+									<span>{{ scope.row.card_number }}</span>
+								</template>
+							</el-table-column>
 							<el-table-column label="角色" align="center">
 								<template slot-scope="scope">
 									<span v-if="scope.row.level == 1">管理员</span>
@@ -48,25 +53,18 @@
 							<el-table-column label="操作" align="center">
 								<template slot-scope="scope">
 									<div v-if="currentUserLevel == 1 && scope.row.admin_name == currentUserName">
-										<el-button size="mini" class="btn-table"
-											@click="edit_amount(scope.$index, scope.row)">修改</el-button>
-										<el-button size="mini" class="btn-table" type="danger"
-											@click="delete_amount(scope.$index, scope.row)">
-											删除</el-button>
+										<el-button size="mini" round plain type="primary" @click="edit_amount(scope.$index, scope.row)">修改</el-button>
 									</div>
 									<div v-else-if="currentUserLevel == 2">
-										<el-button size="mini" class="btn-table"
-											@click="edit_amount(scope.$index, scope.row)">修改</el-button>
-										<el-button size="mini" class="btn-table" type="danger"
-											@click="delete_amount(scope.$index, scope.row)">
+										<el-button size="mini" round plain type="primary" @click="edit_amount(scope.$index, scope.row)">修改</el-button>
+										<el-button size="mini" round plain type="danger" @click="delete_amount(scope.$index, scope.row)">
 											删除</el-button>
 									</div>
 								</template>
 							</el-table-column>
 						</el-table>
 						<div class="pagination-table">
-							<el-pagination @current-change="currentPageChange"
-								:current-page.sync="pagination.currentPage" :page-size="pagination.pageSize"
+							<el-pagination @current-change="currentPageChange" :current-page.sync="pagination.currentPage" :page-size="pagination.pageSize"
 								layout="prev, pager, next, jumper" :total="pagination.total">
 							</el-pagination>
 						</div>
@@ -75,8 +73,8 @@
 			</el-col>
 		</el-row>
 		<!-- 添加账号对话框 -->
-		<el-dialog title="添加账号" custom-class="add-account-class" :visible.sync="dialogAddAcountFormVisible"
-			:close-on-click-modal="false" :close-on-press-escape="false" @close="add_account_dialog_close">
+		<el-dialog title="添加账号" custom-class="add-account-class" :visible.sync="dialogAddAcountFormVisible" :close-on-click-modal="false"
+			:close-on-press-escape="false" @close="add_account_dialog_close">
 			<el-form :model="formAddAcount" ref="addAccountForm" :rules="addAccountFormRules">
 				<el-form-item label="用户名:" :label-width="formLabelWidth" :required="true" prop="username">
 					<el-input v-model="formAddAcount.username" autocomplete="off" placeholder="请输入用户名" maxlength="16">
@@ -86,18 +84,20 @@
 					<el-input v-model="formAddAcount.fullname" autocomplete="off" placeholder="请输入姓名" maxlength="6">
 					</el-input>
 				</el-form-item>
+				<el-form-item label="卡号:" :label-width="formLabelWidth" :required="true" prop="cardNumber">
+					<el-input v-model="formAddAcount.cardNumber" autocomplete="off" placeholder="请输入卡号" maxlength="16">
+					</el-input>
+				</el-form-item>
 				<el-form-item label="手机号:" :label-width="formLabelWidth" :required="true" prop="phone">
 					<el-input v-model="formAddAcount.phone" autocomplete="off" placeholder="请输入手机号" maxlength="11">
 					</el-input>
 				</el-form-item>
 				<el-form-item label="密 码:" :label-width="formLabelWidth" :required="true" prop="password">
-					<el-input v-model="formAddAcount.password" type="password" autocomplete="off" placeholder="请输入密码"
-						maxlength="16">
+					<el-input v-model="formAddAcount.password" type="password" autocomplete="off" placeholder="请输入密码" maxlength="16">
 					</el-input>
 				</el-form-item>
 				<el-form-item label="确认密码:" :label-width="formLabelWidth" :required="true" prop="confirmPassword">
-					<el-input v-model="formAddAcount.confirmPassword" type="password" autocomplete="off"
-						placeholder="请输入确认密码" maxlength="16">
+					<el-input v-model="formAddAcount.confirmPassword" type="password" autocomplete="off" placeholder="请输入确认密码" maxlength="16">
 					</el-input>
 				</el-form-item>
 				<el-form-item label="角 色:" :label-width="formLabelWidth" :required="true" prop="checkedRole">
@@ -107,8 +107,7 @@
 					</el-checkbox-group>
 				</el-form-item>
 				<el-form-item label="备 注:" :label-width="formLabelWidth">
-					<el-input type="textarea" v-model="formAddAcount.comment" placeholder="请输入备注信息" resize="none"
-						maxlength="100" show-word-limit></el-input>
+					<el-input type="textarea" v-model="formAddAcount.comment" placeholder="请输入备注信息" resize="none" maxlength="100" show-word-limit></el-input>
 				</el-form-item>
 			</el-form>
 			<div slot="footer" class="dialog-footer">
@@ -117,12 +116,11 @@
 			</div>
 		</el-dialog>
 		<!-- 修改账号对话框 -->
-		<el-dialog title="修改账号" custom-class="modify-account-class" :visible.sync="dialogModifyAcountFormVisible"
-			:close-on-click-modal="false" :close-on-press-escape="false" @close="modify_account_dialog_close">
+		<el-dialog title="修改账号" custom-class="modify-account-class" :visible.sync="dialogModifyAcountFormVisible" :close-on-click-modal="false"
+			:close-on-press-escape="false" @close="modify_account_dialog_close">
 			<el-form :model="formModifyAcount" ref="modifyAccountForm" :rules="modifyAccountFormRules">
 				<el-form-item label="用户名:" :label-width="formLabelWidth" :required="true" prop="username">
-					<el-input v-model="formModifyAcount.username" autocomplete="off" placeholder="请输入用户名" readonly
-						maxlength="16"></el-input>
+					<el-input v-model="formModifyAcount.username" autocomplete="off" placeholder="请输入用户名" readonly maxlength="16"></el-input>
 				</el-form-item>
 				<el-form-item label="姓名:" :label-width="formLabelWidth" :required="true" prop="fullname">
 					<el-input v-model="formModifyAcount.fullname" autocomplete="off" placeholder="请输入姓名" maxlength="6">
@@ -133,13 +131,11 @@
 					</el-input>
 				</el-form-item>
 				<el-form-item label="密 码:" :label-width="formLabelWidth" prop="password">
-					<el-input v-model="formModifyAcount.password" type="password" autocomplete="off" placeholder="请输入密码"
-						maxlength="16">
+					<el-input v-model="formModifyAcount.password" type="password" autocomplete="off" placeholder="请输入密码" maxlength="16">
 					</el-input>
 				</el-form-item>
 				<el-form-item label="确认密码:" :label-width="formLabelWidth" prop="confirmPassword">
-					<el-input v-model="formModifyAcount.confirmPassword" type="password" autocomplete="off"
-						placeholder="请输入确认密码" maxlength="16">
+					<el-input v-model="formModifyAcount.confirmPassword" type="password" autocomplete="off" placeholder="请输入确认密码" maxlength="16">
 					</el-input>
 				</el-form-item>
 				<el-form-item label="角 色:" :label-width="formLabelWidth" :required="true" prop="checkedRole">
@@ -149,8 +145,7 @@
 					</el-checkbox-group>
 				</el-form-item>
 				<el-form-item label="备 注:" :label-width="formLabelWidth">
-					<el-input type="textarea" v-model="formModifyAcount.comment" placeholder="请输入备注信息" resize="none"
-						maxlength="100" show-word-limit></el-input>
+					<el-input type="textarea" v-model="formModifyAcount.comment" placeholder="请输入备注信息" resize="none" maxlength="100" show-word-limit></el-input>
 				</el-form-item>
 			</el-form>
 			<div slot="footer" class="dialog-footer">
@@ -159,8 +154,8 @@
 			</div>
 		</el-dialog>
 		<!-- 删除确认对话框 -->
-		<el-dialog custom-class="el-dialog-delete-account" :visible.sync="dialog_delete_account"
-			:close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
+		<el-dialog custom-class="el-dialog-delete-account" :visible.sync="dialog_delete_account" :close-on-click-modal="false" :close-on-press-escape="false"
+			:show-close="false">
 			<div slot="" class="del-account-body">
 				<img src="../../icons/serveAC/del_warning.png" alt="">
 				<div class="del-account-body-txt">是否确定将该【{{deleteAccountData.delete_account}}】从列表中移除?</div>
@@ -184,7 +179,7 @@
 		deleteAccount
 	} from '@/api/accountMgr';
 	// const roleOptions = ['管理员', '超级管理员']
-	const roleOptions = ['管理员']
+	const roleOptions = ['超级管理员', '管理员']
 	export default {
 		data() {
 			var checkUserName = (rule, value, callback) => {
@@ -192,14 +187,14 @@
 					return callback(new Error('请输入用户名)'));
 				}
 				setTimeout(() => {
-					var reg = /^[a-zA-Z0-9\u4e00-\u9fa5]{6,16}$/
+					var reg = /^[a-zA-Z0-9]{6,16}$/
 					if (!reg.test(value)) {
-						callback(new Error('必须为6-16个汉字、数字或字母!'));
+						callback(new Error('必须为6-16个数字或字母!'));
 					} else {
 						callback();
 					}
 				}, 100);
-			}
+			};
 			var checkFullName = (rule, value, callback) => {
 				if (!value) {
 					return callback(new Error('请输入姓名'));
@@ -212,7 +207,20 @@
 						callback();
 					}
 				}, 100);
-			}
+			};
+			var checkCardNumber = (rule, value, callback) => {
+				if (!value) {
+					return callback(new Error('请输入学工号'));
+				}
+				setTimeout(() => {
+					var reg = /^[a-zA-Z0-9]{5,16}$/
+					if (!reg.test(value)) {
+						callback(new Error('必须为5-16个字字符的学工号!'));
+					} else {
+						callback();
+					}
+				}, 100);
+			};
 			var checkPhone = (rule, value, callback) => {
 				if (!value) {
 					return callback(new Error('请输入手机号'));
@@ -225,7 +233,7 @@
 						callback();
 					}
 				}, 100);
-			}
+			};
 			var checkPwd = (rule, value, callback) => {
 				if (!value) {
 					return callback(new Error('请输入密码'));
@@ -238,7 +246,7 @@
 						callback();
 					}
 				}, 100);
-			}
+			};
 			var checkConfirmPwd = (rule, value, callback) => {
 				if (!value) {
 					return callback(new Error('请输入确认密码'));
@@ -253,7 +261,7 @@
 						callback();
 					}
 				}, 100);
-			}
+			};
 			var checkPwd_modify = (rule, value, callback) => {
 				if (value) {
 					setTimeout(() => {
@@ -267,7 +275,7 @@
 				} else {
 					callback();
 				}
-			}
+			};
 			var checkConfirmPwd_modify = (rule, value, callback) => {
 				if (value) {
 					setTimeout(() => {
@@ -283,14 +291,14 @@
 				} else {
 					callback();
 				}
-			}
+			};
 			var checkRole = (rule, value, callback) => {
 				if (!(value.length > 0)) {
 					callback(new Error('请选择角色'));
 				} else {
 					callback()
 				}
-			}
+			};
 			return {
 				// 当前用户名
 				currentUserName: this.$store.state.user.name,
@@ -303,6 +311,7 @@
 					fullname: '',
 					password: '',
 					confirmPassword: '',
+					cardNumber: '',
 					comment: '',
 					checkedRole: ['管理员'],
 					roles: roleOptions
@@ -314,6 +323,9 @@
 					fullname: [{
 						validator: checkFullName
 					}],
+					cardNumber: [{
+						validator: checkCardNumber
+					}],
 					phone: [{
 						validator: checkPhone
 					}],
@@ -334,6 +346,7 @@
 					username: '',
 					fullname: '',
 					password: '',
+					cardNumber: '',
 					confirmPassword: '',
 					comment: '',
 					checkedRole: [],
@@ -390,7 +403,7 @@
 		},
 		created() {
 			// 获取消费记录,表格数据
-			this.get_table_data()
+			this.get_table_data();
 		},
 		mounted() {
 			document.getElementsByClassName("el-pagination__jump")[0].childNodes[0].nodeValue = "跳至";
@@ -400,33 +413,33 @@
 			 * 获取账号列表数据
 			 */
 			get_table_data() {
-				this.loading = true
+				this.loading = true;
 				let data = {
 					page: this.pagination.currentPage,
 					rows: this.pagination.pageSize
-				}
+				};
 				// console.log(data);
 				getTableData(data).then((res) => {
 					// console.log(res);
 					if (typeof res.code == 'undefined' || res.code == '') {
-						this.$message.error('返回数据格式问题,code未获取到!')
-						return
+						this.$message.error('返回数据格式问题,code未获取到!');
+						return;
 					}
 					if (typeof res.rows !== 'undefined' && res.rows !== '') {
-						this.pagination.total = res.total
-						this.tableData = []
+						this.pagination.total = res.total;
+						this.tableData = [];
 						for (var i = 0; i < res.rows.length; i++) {
-							this.tableData.push(res.rows[i])
+							this.tableData.push(res.rows[i]);
 						}
 					} else {
-						this.tableData = []
-						this.$message.warning('没有符合条件的数据!')
+						this.tableData = [];
+						this.$message.warning('没有符合条件的数据!');
 					}
 				}).catch((err) => {
 					// console.log(err);
-					this.$message.error(err.message)
+					this.$message.error(err.message);
 				});
-				this.loading = false
+				this.loading = false;
 			},
 			/**
 			 * 删除账号
@@ -435,9 +448,9 @@
 			 */
 			delete_amount(index, row) {
 				// console.log(index, row);
-				this.deleteAccountData.id = row.id
-				this.deleteAccountData.delete_account = row.admin_name
-				this.dialog_delete_account = true
+				this.deleteAccountData.id = row.id;
+				this.deleteAccountData.delete_account = row.admin_name;
+				this.dialog_delete_account = true;
 			},
 			/**
 			 * 修改账号
@@ -446,23 +459,24 @@
 			 */
 			edit_amount(index, row) {
 				// console.log(index, row);
-				this.dialogModifyAcountFormVisible = true
-				this.formModifyAcount.id = row.id
-				this.formModifyAcount.username = row.admin_name
-				this.formModifyAcount.fullname = row.user_name
-				this.formModifyAcount.phone = row.phone
+				this.dialogModifyAcountFormVisible = true;
+				this.formModifyAcount.id = row.id;
+				this.formModifyAcount.username = row.admin_name;
+				this.formModifyAcount.fullname = row.user_name;
+				this.formModifyAcount.phone = row.phone;
+				this.formModifyAcount.cardNumber = row.card_number;
 				if (row.level == 1) {
-					this.formModifyAcount.checkedRole.push('管理员')
+					this.formModifyAcount.checkedRole.push('管理员');
 				} else {
-					this.formModifyAcount.checkedRole.push('超级管理员')
+					this.formModifyAcount.checkedRole.push('超级管理员');
 				}
-				this.formModifyAcount.comment = row.remark
+				this.formModifyAcount.comment = row.remark;
 			},
 			/**
 			 * 添加账号对话框弹出
 			 */
 			add_account() {
-				this.dialogAddAcountFormVisible = true
+				this.dialogAddAcountFormVisible = true;
 			},
 			/**
 			 * 添加账号对话框确定按钮事件
@@ -474,24 +488,24 @@
 						addAccount(this.formAddAcount).then((res) => {
 							// console.log(res);
 							if (typeof res.code == 'undefined' || res.code == '') {
-								this.$message.error('返回数据格式问题,code未获取到!')
-								return
+								this.$message.error('返回数据格式问题,code未获取到!');
+								return;
 							}
 
 							if (res.code == 200) {
-								this.get_table_data()
-								this.dialogAddAcountFormVisible = false
-								this.$message.success('添加成功!')
+								this.get_table_data();
+								this.dialogAddAcountFormVisible = false;
+								this.$message.success('添加成功!');
 							} else {
-								this.$message.error(res.message)
+								this.$message.error(res.message);
 							}
 						}).catch((err) => {
 							// console.log(err);
-							this.$message.error(err.message)
+							this.$message.error(err.message);
 						})
 					} else {
-						this.$message.error('验证不通过')
-						return false
+						this.$message.error('验证不通过');
+						return false;
 					}
 				})
 			},
@@ -505,24 +519,24 @@
 						modifyAccount(this.formModifyAcount).then((res) => {
 							// console.log(res);
 							if (typeof res.code == 'undefined' || res.code == '') {
-								this.$message.error('返回数据格式问题,code未获取到!')
-								return
+								this.$message.error('返回数据格式问题,code未获取到!');
+								return;
 							}
 
 							if (res.code == 200) {
-								this.get_table_data()
-								this.dialogModifyAcountFormVisible = false
-								this.$message.success('修改成功!')
+								this.get_table_data();
+								this.dialogModifyAcountFormVisible = false;
+								this.$message.success('修改成功!');
 							} else {
-								this.$message.error(res.message)
+								this.$message.error(res.message);
 							}
 						}).catch((err) => {
 							// console.log(err);
-							this.$message.error(err.message)
+							this.$message.error(err.message);
 						})
 					} else {
-						this.$message.error('验证不通过')
-						return false
+						this.$message.error('验证不通过');
+						return false;
 					}
 				})
 			},
@@ -533,20 +547,20 @@
 				deleteAccount(this.deleteAccountData.id).then((res) => {
 					// console.log(res);
 					if (typeof res.code == 'undefined' || res.code == '') {
-						this.$message.error('返回数据格式问题,code未获取到!')
-						return
+						this.$message.error('返回数据格式问题,code未获取到!');
+						return;
 					}
 
 					if (res.code == 200) {
-						this.get_table_data()
-						this.dialog_delete_account = false
-						this.$message.success('删除成功!')
+						this.get_table_data();
+						this.dialog_delete_account = false;
+						this.$message.success('删除成功!');
 					} else {
-						this.$message.error(res.message)
+						this.$message.error(res.message);
 					}
 				}).catch((err) => {
 					// console.log(err);
-					this.$message.error(err.message)
+					this.$message.error(err.message);
 				})
 			},
 			/**
@@ -559,10 +573,11 @@
 					fullname: '',
 					password: '',
 					confirmPassword: '',
+					card_number: '',
 					comment: '',
 					checkedRole: ['管理员'],
 					roles: roleOptions
-				}
+				};
 			},
 			/**
 			 * 修改账号对话框关闭时清理数据
@@ -573,19 +588,20 @@
 					username: '',
 					fullname: '',
 					password: '',
+					cardNumber: '',
 					confirmPassword: '',
 					comment: '',
 					checkedRole: [],
 					roles: roleOptions
-				}
+				};
 			},
 			/**
 			 * currentPage 改变时会触发
 			 * @param {Object} val
 			 */
 			currentPageChange(val) {
-				this.pagination.currentPage = val
-				this.get_table_data()
+				this.pagination.currentPage = val;
+				this.get_table_data();
 			}
 		}
 	}
@@ -814,15 +830,15 @@
 <style>
 	.add-account-class,
 	.modify-account-class {
-		height: 620px !important;
+		height: 690px !important;
 	}
 
 	.el-dialog-delete-account {
 		height: 300px !important;
-		width: 460px !important;
+		width: 500px !important;
 	}
 
 	.el-dialog-delete-account .el-dialog__header {
 		display: none !important;
 	}
-</style>
+</style>