|
@@ -51,7 +51,8 @@
|
|
|
icon="el-icon-plus"
|
|
|
size="mini"
|
|
|
@click="handleAdd"
|
|
|
- >新增</el-button>
|
|
|
+ >新增
|
|
|
+ </el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
|
<el-button
|
|
@@ -60,7 +61,8 @@
|
|
|
icon="el-icon-edit"
|
|
|
size="mini"
|
|
|
@click="handleUpdate"
|
|
|
- >修改</el-button>
|
|
|
+ >修改
|
|
|
+ </el-button>
|
|
|
</el-col>
|
|
|
<el-col :span="1.5">
|
|
|
<el-button
|
|
@@ -69,59 +71,62 @@
|
|
|
icon="el-icon-delete"
|
|
|
size="mini"
|
|
|
@click="handleDelete"
|
|
|
- >删除</el-button>
|
|
|
+ >删除
|
|
|
+ </el-button>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<div style="padding-top: 10px">
|
|
|
- <vxe-table
|
|
|
- ref="userTable"
|
|
|
- align="center"
|
|
|
- :loading="loading"
|
|
|
- class="mytable-style"
|
|
|
- auto-resize
|
|
|
- border
|
|
|
- resizable
|
|
|
- export-config
|
|
|
- highlight-current-row
|
|
|
- show-overflow
|
|
|
- max-height="700"
|
|
|
- :data="userList"
|
|
|
- :radio-config="{trigger: 'row'}"
|
|
|
- >
|
|
|
- <vxe-column type="radio" width="60"/>
|
|
|
- <vxe-table-column field="username" title="用户账号" />
|
|
|
- <vxe-table-column field="nickname" title="用户姓名" />
|
|
|
- <vxe-table-column field="mailbox" title="邮箱" />
|
|
|
- <vxe-table-column field="phonenumber" title="手机号码"/>
|
|
|
- <vxe-table-column field="status" title="状态" :formatter="statusFormat"/>
|
|
|
- <vxe-table-column title="操作" width="320">
|
|
|
- <template slot-scope="scope" v-if="scope.row.userId !== 1">
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- icon="el-icon-edit"
|
|
|
- @click="handleResetPwd(scope.row)"
|
|
|
- >初始/重置密码</el-button>
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- icon="el-icon-delete"
|
|
|
- @click="handleAuthRole(scope.row)"
|
|
|
- >分配角色</el-button>
|
|
|
- </template>
|
|
|
- </vxe-table-column>
|
|
|
- </vxe-table>
|
|
|
- <vxe-pager
|
|
|
- v-show="showTable"
|
|
|
- perfect
|
|
|
- :current-page.sync="currentPage"
|
|
|
- :page-size.sync="pageSize"
|
|
|
- :total="total"
|
|
|
- :page-sizes="[10,50,100]"
|
|
|
- :layouts="['PrevJump', 'PrevPage','JumpNumber', 'NextPage', 'NextJump', 'Sizes', 'FullJump', 'Total']"
|
|
|
- @page-change="handlePageChange"
|
|
|
- >
|
|
|
- </vxe-pager>
|
|
|
+ <vxe-table
|
|
|
+ ref="userTable"
|
|
|
+ align="center"
|
|
|
+ :loading="loading"
|
|
|
+ class="mytable-style"
|
|
|
+ auto-resize
|
|
|
+ border
|
|
|
+ resizable
|
|
|
+ export-config
|
|
|
+ highlight-current-row
|
|
|
+ show-overflow
|
|
|
+ max-height="700"
|
|
|
+ :data="userList"
|
|
|
+ :radio-config="{trigger: 'row'}"
|
|
|
+ >
|
|
|
+ <vxe-column type="radio" width="60"/>
|
|
|
+ <vxe-table-column field="username" title="用户账号"/>
|
|
|
+ <vxe-table-column field="nickname" title="用户姓名"/>
|
|
|
+ <vxe-table-column field="mailbox" title="邮箱"/>
|
|
|
+ <vxe-table-column field="phonenumber" title="手机号码"/>
|
|
|
+ <vxe-table-column field="status" title="状态" :formatter="statusFormat"/>
|
|
|
+ <vxe-table-column title="操作" width="320">
|
|
|
+ <template slot-scope="scope" v-if="scope.row.userId !== 1">
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-edit"
|
|
|
+ @click="handleResetPwd(scope.row)"
|
|
|
+ >初始/重置密码
|
|
|
+ </el-button>
|
|
|
+ <el-button
|
|
|
+ size="mini"
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="handleAuthRole(scope.row)"
|
|
|
+ >分配角色
|
|
|
+ </el-button>
|
|
|
+ </template>
|
|
|
+ </vxe-table-column>
|
|
|
+ </vxe-table>
|
|
|
+ <vxe-pager
|
|
|
+ v-show="showTable"
|
|
|
+ perfect
|
|
|
+ :current-page.sync="currentPage"
|
|
|
+ :page-size.sync="pageSize"
|
|
|
+ :total="total"
|
|
|
+ :page-sizes="[10,50,100]"
|
|
|
+ :layouts="['PrevJump', 'PrevPage','JumpNumber', 'NextPage', 'NextJump', 'Sizes', 'FullJump', 'Total']"
|
|
|
+ @page-change="handlePageChange"
|
|
|
+ >
|
|
|
+ </vxe-pager>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -132,24 +137,25 @@
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="用户账号" prop="username">
|
|
|
- <el-input style="width: 220px" v-model="form.username" placeholder="请输入用户账号" maxlength="20" />
|
|
|
+ <el-input id="un" ref="un" style="width: 220px" v-model="form.username" placeholder="请输入用户账号"
|
|
|
+ maxlength="20" :disabled="edit"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="用户姓名" prop="nickname">
|
|
|
- <el-input style="width: 220px" v-model="form.nickname" placeholder="请输入用户姓名" maxlength="30" />
|
|
|
+ <el-input style="width: 220px" v-model="form.nickname" placeholder="请输入用户姓名" maxlength="30"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="邮箱" prop="mailbox">
|
|
|
- <el-input style="width: 220px" v-model="form.mailbox" placeholder="请输入邮箱" maxlength="50" />
|
|
|
+ <el-input style="width: 220px" v-model="form.mailbox" placeholder="请输入邮箱" maxlength="50"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="手机号码" prop="phonenumber">
|
|
|
- <el-input style="width: 220px" v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
|
|
|
+ <el-input style="width: 220px" v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -197,9 +203,9 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
statusOptions: [
|
|
|
- { value: '0', label: '激活' },
|
|
|
- { value: '1', label: '休眠' },
|
|
|
- { value: '2', label: '注销' }
|
|
|
+ {value: '0', label: '激活'},
|
|
|
+ {value: '1', label: '休眠'},
|
|
|
+ {value: '2', label: '注销'}
|
|
|
],
|
|
|
// 遮罩层
|
|
|
loading: true,
|
|
@@ -232,29 +238,29 @@ export default {
|
|
|
phonenumber: undefined,
|
|
|
status: undefined
|
|
|
},
|
|
|
+ edit:false,
|
|
|
// 表单校验
|
|
|
rules: {
|
|
|
username: [
|
|
|
- { required: true, message: "用户账号不能为空", trigger: "blur" },
|
|
|
- { min: 5, max: 20, message: '用户名称长度必须介于 5 和 20 之间', trigger: 'blur' }
|
|
|
+ {required: true, message: "用户账号不能为空", trigger: "blur"},
|
|
|
+ {min: 5, max: 20, message: '用户账号长度必须介于 5 和 20 之间', trigger: 'blur'}
|
|
|
],
|
|
|
nickname: [
|
|
|
- { required: true, message: "用户姓名不能为空", trigger: "blur" },
|
|
|
- { min: 2, max: 20, message: '用户姓名长度必须介于 2 和 20 之间', trigger: 'blur' }
|
|
|
+ {required: true, message: "用户姓名不能为空", trigger: "blur"},
|
|
|
+ {min: 2, max: 20, message: '用户姓名长度必须介于 2 和 20 之间', trigger: 'blur'}
|
|
|
],
|
|
|
mailbox: [
|
|
|
- { required: true, message: "邮箱不能为空", trigger: "blur" },
|
|
|
- { type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"]}
|
|
|
+ {required: true, message: "邮箱不能为空", trigger: "blur"},
|
|
|
+ {type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"]}
|
|
|
],
|
|
|
phonenumber: [
|
|
|
- { required: true, message: "手机号码不能为空", trigger: "blur" },
|
|
|
- { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur"}
|
|
|
+ {required: true, message: "手机号码不能为空", trigger: "blur"},
|
|
|
+ {pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur"}
|
|
|
]
|
|
|
}
|
|
|
};
|
|
|
},
|
|
|
- watch: {
|
|
|
- },
|
|
|
+ watch: {},
|
|
|
created() {
|
|
|
this.getList()
|
|
|
},
|
|
@@ -268,14 +274,12 @@ export default {
|
|
|
statusFormat({cellValue}) {
|
|
|
let belongTo = '未知的类型'
|
|
|
for (let i = 0; i < this.statusOptions.length; i++) {
|
|
|
- if (cellValue =="0") {
|
|
|
- belongTo ="激活"
|
|
|
- }
|
|
|
- else if (cellValue =="1") {
|
|
|
- belongTo ="休眠"
|
|
|
- }
|
|
|
- else if (cellValue =="2") {
|
|
|
- belongTo ="注销"
|
|
|
+ if (cellValue == "0") {
|
|
|
+ belongTo = "激活"
|
|
|
+ } else if (cellValue == "1") {
|
|
|
+ belongTo = "休眠"
|
|
|
+ } else if (cellValue == "2") {
|
|
|
+ belongTo = "注销"
|
|
|
}
|
|
|
}
|
|
|
return belongTo
|
|
@@ -283,15 +287,15 @@ export default {
|
|
|
/** 查询用户列表 */
|
|
|
getList() {
|
|
|
this.loading = true;
|
|
|
- var searchParams={
|
|
|
- currentPage:this.currentPage,
|
|
|
- pageSize:this.pageSize,
|
|
|
- username:this.queryParams.username,
|
|
|
- phonenumber:this.queryParams.phonenumber,
|
|
|
- status:this.queryParams.status
|
|
|
+ var searchParams = {
|
|
|
+ currentPage: this.currentPage,
|
|
|
+ pageSize: this.pageSize,
|
|
|
+ username: this.queryParams.username,
|
|
|
+ phonenumber: this.queryParams.phonenumber,
|
|
|
+ status: this.queryParams.status
|
|
|
}
|
|
|
this.$axios.get('/sysUserController/getAll',
|
|
|
- {params:searchParams}).then((res) => {
|
|
|
+ {params: searchParams}).then((res) => {
|
|
|
this.userList = res.data.records
|
|
|
this.total = res.data.total
|
|
|
|
|
@@ -308,11 +312,11 @@ export default {
|
|
|
// 用户状态修改
|
|
|
handleStatusChange(row) {
|
|
|
let text = row.status === "0" ? "启用" : "停用";
|
|
|
- this.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function() {
|
|
|
+ this.$modal.confirm('确认要"' + text + '""' + row.userName + '"用户吗?').then(function () {
|
|
|
return changeUserStatus(row.userId, row.status);
|
|
|
}).then(() => {
|
|
|
this.$modal.msgSuccess(text + "成功");
|
|
|
- }).catch(function() {
|
|
|
+ }).catch(function () {
|
|
|
row.status = row.status === "0" ? "1" : "0";
|
|
|
});
|
|
|
},
|
|
@@ -323,6 +327,7 @@ export default {
|
|
|
},
|
|
|
// 表单重置
|
|
|
reset() {
|
|
|
+ this.edit = false;
|
|
|
this.form = {
|
|
|
id: undefined,
|
|
|
username: undefined,
|
|
@@ -345,21 +350,32 @@ export default {
|
|
|
/** 新增按钮操作 */
|
|
|
handleAdd() {
|
|
|
this.reset();
|
|
|
- this.open = true;
|
|
|
- this.title = "添加用户";
|
|
|
- this.form.password = this.initPassword;
|
|
|
+ this.edit=false;
|
|
|
+ this.open = true;
|
|
|
+ this.title = "添加用户";
|
|
|
+ this.form.password = this.initPassword;
|
|
|
},
|
|
|
/** 提交按钮 */
|
|
|
- submitForm: function() {
|
|
|
+ submitForm: function () {
|
|
|
this.$refs["form"].validate(valid => {
|
|
|
if (valid) {
|
|
|
- if (this.form.userId != undefined) {
|
|
|
+ if (this.form.id != undefined) {
|
|
|
// 更新操作
|
|
|
- updateUser(this.form).then(response => {
|
|
|
- this.$modal.msgSuccess("修改成功");
|
|
|
- this.open = false;
|
|
|
- this.getList();
|
|
|
- });
|
|
|
+ this.$axios.put('/sysUserController', this.form).then((res) => {
|
|
|
+ if (res.code == 0) {
|
|
|
+ this.$message.success('修改成功')
|
|
|
+ this.open = false;
|
|
|
+ this.reset();
|
|
|
+ this.getList();
|
|
|
+ }
|
|
|
+ if (res.code == 1) {
|
|
|
+ this.$message.error(res.data)
|
|
|
+ }
|
|
|
+ this.loading = false
|
|
|
+ }).catch((error) => {
|
|
|
+ this.$message.error(error)
|
|
|
+ this.loading = false
|
|
|
+ })
|
|
|
} else {
|
|
|
// const param = {
|
|
|
// username: this.form.username,
|
|
@@ -368,13 +384,13 @@ export default {
|
|
|
// mailbox: this.form.mailbox
|
|
|
// }
|
|
|
this.$axios.post('/sysUserController', this.form).then((res) => {
|
|
|
- if (res.code==0){
|
|
|
+ if (res.code == 0) {
|
|
|
this.$message.success('新增成功')
|
|
|
this.open = false;
|
|
|
this.reset();
|
|
|
this.getList();
|
|
|
}
|
|
|
- if (res.code==1){
|
|
|
+ if (res.code == 1) {
|
|
|
this.$message.error(res.data)
|
|
|
}
|
|
|
this.loading = false
|
|
@@ -388,22 +404,21 @@ export default {
|
|
|
},
|
|
|
/** 重置密码按钮操作 */
|
|
|
handleResetPwd(row) {
|
|
|
- this.$confirm('创建密码并发送到邮箱:'+row.mailbox, '提示', {
|
|
|
+ this.$confirm('创建密码并发送到邮箱:' + row.mailbox, '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
|
}).then(() => {
|
|
|
const param = {
|
|
|
- id: row.id
|
|
|
+ id: row.id
|
|
|
}
|
|
|
this.$axios.post('/sysUserController/resetPassword', param).then((res) => {
|
|
|
- if (res.code==0){
|
|
|
+ if (res.code == 0) {
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
|
message: '创建并发送成功!'
|
|
|
});
|
|
|
- }
|
|
|
- else{
|
|
|
+ } else {
|
|
|
this.$message({
|
|
|
type: 'error',
|
|
|
message: '创建密码失败!'
|
|
@@ -419,7 +434,7 @@ export default {
|
|
|
/** 删除按钮操作 */
|
|
|
handleDelete() {
|
|
|
const _selectData = this.$refs.userTable.getRadioRecord(true)
|
|
|
- if (_selectData == null){
|
|
|
+ if (_selectData == null) {
|
|
|
this.$message({
|
|
|
type: 'warning',
|
|
|
message: '请选择记录!'
|
|
@@ -435,14 +450,13 @@ export default {
|
|
|
id: _selectData.id
|
|
|
}
|
|
|
this.$axios.post('/sysUserController/delUser', param).then((res) => {
|
|
|
- if (res.code==0){
|
|
|
+ if (res.code == 0) {
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
|
message: '删除成功!'
|
|
|
});
|
|
|
this.getList();
|
|
|
- }
|
|
|
- else{
|
|
|
+ } else {
|
|
|
this.$message({
|
|
|
type: 'error',
|
|
|
message: '删除失败!'
|
|
@@ -456,22 +470,23 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
/** 修改按钮操作 */
|
|
|
- handleUpdate(row) {
|
|
|
+ handleUpdate() {
|
|
|
this.reset();
|
|
|
- const userId = row.userId || this.ids;
|
|
|
- getUser(userId).then(response => {
|
|
|
- this.form = response.data;
|
|
|
- this.postOptions = response.posts;
|
|
|
- this.roleOptions = response.roles;
|
|
|
- this.$set(this.form, "postIds", response.postIds);
|
|
|
- this.$set(this.form, "roleIds", response.roleIds);
|
|
|
- this.open = true;
|
|
|
- this.title = "修改用户";
|
|
|
- this.form.password = "";
|
|
|
- });
|
|
|
+ const _selectData = this.$refs.userTable.getRadioRecord(true)
|
|
|
+ if (_selectData == null) {
|
|
|
+ this.$message({
|
|
|
+ type: 'warning',
|
|
|
+ message: '请选择记录!'
|
|
|
+ });
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.form = _selectData;
|
|
|
+ this.open = true;
|
|
|
+ this.title = "修改用户";
|
|
|
+ this.edit=true;
|
|
|
},
|
|
|
/** 分配角色操作 */
|
|
|
- handleAuthRole: function(row) {
|
|
|
+ handleAuthRole: function (row) {
|
|
|
const userId = row.userId;
|
|
|
this.$router.push("/system/user-auth/role/" + userId);
|
|
|
}
|