This commit is contained in:
曹辉 2023-04-18 15:51:44 +08:00
parent 1448296be0
commit 0b3f31a23f
2 changed files with 131 additions and 163 deletions

View File

@ -111,12 +111,8 @@ export default {
},
methods: {
onshow() {
// this.kindergartenId = localStorage.getItem("kindergarId");
if (localStorage.getItem("kindergarName") == null) {
this.kindergartenName = "请选择幼儿园";
} else {
// this.kindergartenName = localStorage.getItem("kindergarName");
}
this.kindergartenName = "请选择幼儿园";
this.kindergartenId = "";
this.$emit("kinbatlist", this.kindergartenId);
},
//
@ -124,7 +120,6 @@ export default {
this.kindergartenName = row.kindergartenName;
this.kindergartenId = row.id;
this.kindergartenshow = false;
localStorage.setItem("kindergarName", this.kindergartenName);
// localStorage.setItem("kindergarId", this.kindergartenId);
this.$emit("kinbatlist", this.kindergartenId, 1);
},

View File

@ -25,7 +25,7 @@
@node-click="handleNodeClick"
/>
</div>
</el-col> -->
</el-col>-->
<!--用户数据-->
<el-col :span="20" :xs="24">
<el-form
@ -81,16 +81,8 @@
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button
type="primary"
icon="el-icon-search"
size="mini"
@click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
>重置</el-button
>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
@ -103,8 +95,7 @@
size="mini"
@click="handleAdd"
v-hasPermi="['system:user:add']"
>新增</el-button
>
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -115,8 +106,7 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:user:edit']"
>修改</el-button
>
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -127,8 +117,7 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:user:remove']"
>删除</el-button
>
>删除</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-button
@ -151,20 +140,12 @@
v-hasPermi="['system:user:export']"
>导出</el-button
>
</el-col> -->
</el-col>-->
</el-row>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
:columns="columns"
></right-toolbar>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="userList"
@selection-change="handleSelectionChange"
>
<el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center" />
<el-table-column
label="用户编号"
@ -196,7 +177,7 @@
prop="dept.deptName"
v-if="columns[3].visible"
:show-overflow-tooltip="true"
/> -->
/>-->
<el-table-column
label="区域"
align="center"
@ -213,12 +194,7 @@
v-if="columns[4].visible"
width="120"
/>
<el-table-column
label="状态"
align="center"
key="status"
v-if="columns[5].visible"
>
<el-table-column label="状态" align="center" key="status" v-if="columns[5].visible">
<template slot-scope="scope">
<el-switch
v-model="scope.row.status"
@ -239,12 +215,7 @@
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column
label="操作"
align="center"
width="160"
class-name="small-padding fixed-width"
>
<el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width">
<template slot-scope="scope" v-if="scope.row.userId !== 1">
<el-button
size="mini"
@ -252,16 +223,14 @@
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:user:edit']"
>修改</el-button
>
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:user:remove']"
>删除</el-button
>
>删除</el-button>
<el-dropdown
size="mini"
@command="(command) => handleCommand(command, scope.row)"
@ -275,20 +244,17 @@
command="handleResetPwd"
icon="el-icon-key"
v-hasPermi="['system:user:resetPwd']"
>重置密码</el-dropdown-item
>
>重置密码</el-dropdown-item>
<el-dropdown-item
command="handleAuthRole"
icon="el-icon-circle-check"
v-hasPermi="['system:user:edit']"
>分配角色</el-dropdown-item
>
>分配角色</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
@ -296,18 +262,13 @@
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改用户配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="12">
<el-form-item label="用户昵称" prop="nickName">
<el-input
v-model="form.nickName"
placeholder="请输入用户昵称"
maxlength="30"
/>
<el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
</el-form-item>
</el-col>
<!-- <el-col :span="12">
@ -319,7 +280,7 @@
placeholder="请选择归属部门"
/>
</el-form-item>
</el-col> -->
</el-col>-->
<el-col :span="12">
<el-form-item label="所属区域" prop="areaId">
<treeselect
@ -334,43 +295,23 @@
<el-row>
<el-col :span="12">
<el-form-item label="手机号码" prop="phonenumber">
<el-input
v-model="form.phonenumber"
placeholder="请输入手机号码"
maxlength="11"
/>
<el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="邮箱" prop="email">
<el-input
v-model="form.email"
placeholder="请输入邮箱"
maxlength="50"
/>
<el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item
v-if="form.userId == undefined"
label="用户名称"
prop="userName"
>
<el-input
v-model="form.userName"
placeholder="请输入用户名称"
maxlength="30"
/>
<el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
<el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
v-if="form.userId == undefined"
label="用户密码"
prop="password"
>
<el-form-item v-if="form.userId == undefined" label="用户密码" prop="password">
<el-input
v-model="form.password"
placeholder="请输入用户密码"
@ -401,8 +342,7 @@
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}</el-radio
>
>{{ dict.label }}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
@ -410,11 +350,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="用户类型" prop="memberGrade">
<el-select
clearable
v-model="form.memberGrade"
placeholder="请选择用户类型"
>
<el-select clearable v-model="form.memberGrade" placeholder="请选择用户类型">
<el-option
v-for="item in memberGrades"
:key="item.memberGrade"
@ -424,7 +360,6 @@
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="岗位">
<el-select
@ -441,13 +376,14 @@
></el-option>
</el-select>
</el-form-item>
</el-col> -->
</el-col>-->
<el-col :span="12">
<el-form-item label="角色">
<el-select
v-model="form.roleIds"
multiple
placeholder="请选择角色"
@change="changeroleIds"
>
<el-option
v-for="item in roleOptions"
@ -459,15 +395,19 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<kindergarlog
v-if="kinshow"
@kinbatlist="kinbatlist"
style="width: 500px; display: inline;"
ref="kinresets"
></kindergarlog>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
></el-input>
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"></el-input>
</el-form-item>
</el-col>
</el-row>
@ -479,12 +419,7 @@
</el-dialog>
<!-- 用户导入对话框 -->
<el-dialog
:title="upload.title"
:visible.sync="upload.open"
width="400px"
append-to-body
>
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload
ref="upload"
:limit="1"
@ -498,11 +433,13 @@
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<div class="el-upload__text">
将文件拖到此处
<em>点击上传</em>
</div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" />
是否更新已经存在的用户数据
<el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
</div>
<span>仅允许导入xlsxlsx格式文件</span>
<el-link
@ -510,8 +447,7 @@
:underline="false"
style="font-size: 12px; vertical-align: baseline"
@click="importTemplate"
>下载模板</el-link
>
>下载模板</el-link>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
@ -524,6 +460,7 @@
<script>
import { listArea } from "@/api/system/area.js";
import kindergarlog from "../../assembly/kindergarlog.vue";
import {
listUser,
getUser,
@ -531,7 +468,7 @@ import {
addUser,
updateUser,
resetUserPwd,
changeUserStatus,
changeUserStatus
} from "@/api/system/user";
import { tKindergartenInfo } from "@/api/system/kindergartenInfo";
import { getToken } from "@/utils/auth";
@ -542,7 +479,7 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "User",
dicts: ["sys_normal_disable", "sys_user_sex"],
components: { Treeselect },
components: { Treeselect, kindergarlog },
data() {
return {
//
@ -550,7 +487,7 @@ export default {
//
memberGrades: [
{ memberGrade: "COMMON", name: "普通" },
{ memberGrade: "MEMBER", name: "会员" },
{ memberGrade: "MEMBER", name: "会员" }
],
//
ids: [],
@ -586,7 +523,7 @@ export default {
form: {},
defaultProps: {
children: "children",
label: "label",
label: "label"
},
//
upload: {
@ -601,13 +538,13 @@ export default {
//
headers: { Authorization: "Bearer " + getToken() },
//
url: process.env.VUE_APP_BASE_API + "/system/user/importData",
url: process.env.VUE_APP_BASE_API + "/system/user/importData"
},
//
//chaxuncanshu
queryParams2: {
name: "",
code: "",
code: ""
},
queryParams: {
pageNum: 1,
@ -615,7 +552,7 @@ export default {
userName: undefined,
phonenumber: undefined,
status: undefined,
deptId: undefined,
deptId: undefined
},
//
columns: [
@ -625,12 +562,12 @@ export default {
{ key: 3, label: `部门`, visible: true },
{ key: 4, label: `手机号码`, visible: true },
{ key: 5, label: `状态`, visible: true },
{ key: 6, label: `创建时间`, visible: true },
{ key: 6, label: `创建时间`, visible: true }
],
//
rules: {
memberGrade: [
{ required: true, message: "用户类型不能为空", trigger: "blur" },
{ required: true, message: "用户类型不能为空", trigger: "blur" }
],
userName: [
{ required: true, message: "用户名称不能为空", trigger: "blur" },
@ -638,11 +575,11 @@ export default {
min: 2,
max: 20,
message: "用户名称长度必须介于 2 和 20 之间",
trigger: "blur",
},
trigger: "blur"
}
],
nickName: [
{ required: true, message: "用户昵称不能为空", trigger: "blur" },
{ required: true, message: "用户昵称不能为空", trigger: "blur" }
],
password: [
{ required: true, message: "用户密码不能为空", trigger: "blur" },
@ -650,46 +587,65 @@ export default {
min: 5,
max: 20,
message: "用户密码长度必须介于 5 和 20 之间",
trigger: "blur",
},
trigger: "blur"
}
],
email: [
{
type: "email",
message: "请输入正确的邮箱地址",
trigger: ["blur", "change"],
},
trigger: ["blur", "change"]
}
],
phonenumber: [
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码",
trigger: "blur",
},
],
trigger: "blur"
}
]
},
kinshow: false
};
},
watch: {
//
deptName(val) {
this.$refs.tree.filter(val);
},
}
},
created() {
this.getList();
this.getTreeselect();
this.usermemberGrade();
this.getArea();
this.getConfigKey("sys.user.initPassword").then((response) => {
this.getConfigKey("sys.user.initPassword").then(response => {
this.initPassword = response.msg;
});
},
methods: {
changeroleIds(row) {
this.kinshow = false;
var obj = {};
this.roleOptions.forEach(el => {
if (el.roleKey == "garden") {
obj = el;
}
});
row.forEach(e => {
if (e == obj.roleId) {
this.kinshow = true;
}
});
},
//
kinbatlist(e) {
this.kindergartenId = e;
this.form.kindergartenId = e;
},
//
usermemberGrade() {
tKindergartenInfo("user_type").then((res) => {
});
tKindergartenInfo("user_type").then(res => {});
},
//
normalizer(node) {
@ -699,14 +655,14 @@ export default {
return {
areaId: node.id,
label: node.name,
children: node.children,
children: node.children
};
},
/** 查询用户列表 */
getList() {
this.loading = true;
listUser(this.addDateRange(this.queryParams, this.dateRange)).then(
(response) => {
response => {
this.userList = response.rows;
this.total = response.total;
this.loading = false;
@ -715,7 +671,7 @@ export default {
},
//
getArea() {
listArea(this.queryParams2).then((response) => {
listArea(this.queryParams2).then(response => {
// this.areaList = response.data.forEach((e) => {
// e.code = Number(e.code);
// });
@ -725,9 +681,9 @@ export default {
},
/** 查询部门下拉树结构 */
getTreeselect() {
treeselect().then((response) => {
this.deptOptions = response.data;
});
// treeselect().then(response => {
// this.deptOptions = response.data;
// });
},
//
filterNode(value, data) {
@ -744,13 +700,13 @@ export default {
let text = row.status === "0" ? "启用" : "停用";
this.$modal
.confirm('确认要"' + text + '""' + row.userName + '"用户吗?')
.then(function () {
.then(function() {
return changeUserStatus(row.userId, row.status);
})
.then(() => {
this.$modal.msgSuccess(text + "成功");
})
.catch(function () {
.catch(function() {
row.status = row.status === "0" ? "1" : "0";
});
},
@ -762,6 +718,7 @@ export default {
//
reset() {
this.form = {
kindergartenId: undefined,
userId: undefined,
areaId: undefined,
deptId: undefined,
@ -775,7 +732,7 @@ export default {
status: "0",
remark: undefined,
postIds: [],
roleIds: [],
roleIds: []
};
this.resetForm("form");
},
@ -792,7 +749,7 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map((item) => item.userId);
this.ids = selection.map(item => item.userId);
this.single = selection.length != 1;
this.multiple = !selection.length;
},
@ -813,7 +770,7 @@ export default {
handleAdd() {
this.reset();
this.getTreeselect();
getUser().then((response) => {
getUser().then(response => {
this.postOptions = response.posts;
this.roleOptions = response.roles;
this.open = true;
@ -826,7 +783,7 @@ export default {
this.reset();
this.getTreeselect();
const userId = row.userId || this.ids;
getUser(userId).then((response) => {
getUser(userId).then(response => {
this.form = response.data;
this.postOptions = response.posts;
this.roleOptions = response.roles;
@ -844,32 +801,32 @@ export default {
cancelButtonText: "取消",
closeOnClickModal: false,
inputPattern: /^.{5,20}$/,
inputErrorMessage: "用户密码长度必须介于 5 和 20 之间",
inputErrorMessage: "用户密码长度必须介于 5 和 20 之间"
})
.then(({ value }) => {
resetUserPwd(row.userId, value).then((response) => {
resetUserPwd(row.userId, value).then(response => {
this.$modal.msgSuccess("修改成功,新密码是:" + value);
});
})
.catch(() => {});
},
/** 分配角色操作 */
handleAuthRole: function (row) {
handleAuthRole: function(row) {
const userId = row.userId;
this.$router.push("/system/user-auth/role/" + userId);
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate((valid) => {
submitForm: function() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.userId != undefined) {
updateUser(this.form).then((response) => {
updateUser(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addUser(this.form).then((response) => {
addUser(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
@ -883,7 +840,7 @@ export default {
const userIds = row.userId || this.ids;
this.$modal
.confirm('是否确认删除用户编号为"' + userIds + '"的数据项?')
.then(function () {
.then(function() {
return delUser(userIds);
})
.then(() => {
@ -897,7 +854,7 @@ export default {
this.download(
"system/user/export",
{
...this.queryParams,
...this.queryParams
},
`user_${new Date().getTime()}.xlsx`
);
@ -936,7 +893,23 @@ export default {
//
submitFileForm() {
this.$refs.upload.submit();
},
},
}
}
};
</script>
</script>
<style lang='scss' scoped>
.app-container {
padding: 20px 0 20px 10px;
}
::v-deep .el-card__header {
border: none;
}
::v-deep .el-form {
display: inline;
}
::v-deep .btn {
width: 223px !important;
height: 36px !important;
}
</style>