完成用户的添加和修改的逻辑

This commit is contained in:
YunaiV
2021-01-10 22:51:13 +08:00
parent 855327de1a
commit e3884ee57f
22 changed files with 479 additions and 449 deletions

View File

@ -188,7 +188,9 @@
</el-col>
<el-col :span="12">
<el-form-item label="归属部门" prop="deptId">
<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
<treeselect v-model="form.deptId" :options="deptOptions" :show-count="true"
placeholder="请选择归属部门" :normalizer="normalizer"
/>
</el-form-item>
</el-col>
</el-row>
@ -221,49 +223,22 @@
<el-form-item label="用户性别">
<el-select v-model="form.sex" placeholder="请选择">
<el-option
v-for="dict in sexOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
v-for="dict in sexDictDatas"
:key="parseInt(dict.value)"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="状态">
<el-radio-group v-model="form.status">
<el-radio
v-for="dict in statusOptions"
:key="dict.dictValue"
:label="dict.dictValue"
>{{dict.dictLabel}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="岗位">
<el-select v-model="form.postIds" multiple placeholder="请选择">
<el-option
v-for="item in postOptions"
:key="item.postId"
:label="item.postName"
:value="item.postId"
:disabled="item.status == 1"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="角色">
<el-select v-model="form.roleIds" multiple placeholder="请选择">
<el-option
v-for="item in roleOptions"
:key="item.roleId"
:label="item.roleName"
:value="item.roleId"
:disabled="item.status == 1"
v-for="item in postOptions"
:key="item.id"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
@ -313,17 +288,45 @@
<el-button @click="upload.open = false"> </el-button>
</div>
</el-dialog>
<!-- 分配角色 -->
<!-- <el-dialog title="分配角色" :visible.sync="openMenu" width="500px" append-to-body>-->
<!-- <el-form :model="form" label-width="80px">-->
<!-- <el-form-item label="用户名称">-->
<!-- <el-input v-model="form.username" :disabled="true" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="用户昵称">-->
<!-- <el-input v-model="form.nickname" :disabled="true" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="角色">-->
<!-- <el-select v-model="form.roleIds" multiple placeholder="请选择">-->
<!-- <el-option-->
<!-- v-for="item in roleOptions"-->
<!-- :key="item.roleId"-->
<!-- :label="item.roleName"-->
<!-- :value="item.roleId"-->
<!-- :disabled="item.status == 1"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<!-- <div slot="footer" class="dialog-footer">-->
<!-- <el-button type="primary" @click="submitMenu"> </el-button>-->
<!-- <el-button @click="cancelMenu"> </el-button>-->
<!-- </div>-->
<!-- </el-dialog>-->
</div>
</template>
<script>
import { listUser, getUser, delUser, addUser, updateUser, exportUser, resetUserPwd, changeUserStatus, importTemplate } from "@/api/system/user";
import { getToken } from "@/utils/auth";
import { treeselect } from "@/api/system/dept";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import {listSimpleDepts} from "@/api/system/dept";
import {listSimplePosts} from "@/api/system/post";
import {SysCommonStatusEnum} from "@/utils/constants";
import {DICT_TYPE, getDictDatas} from "@/utils/dict";
@ -422,6 +425,7 @@ export default {
SysCommonStatusEnum: SysCommonStatusEnum,
// 数据字典
statusDictDatas: getDictDatas(DICT_TYPE.SYS_COMMON_STATUS),
sexDictDatas: getDictDatas(DICT_TYPE.SYS_USER_SEX),
};
},
watch: {
@ -446,18 +450,23 @@ export default {
this.dateRange[1] ? this.dateRange[1] + ' 23:59:59' : undefined,
])).then(response => {
this.userList = response.data.list;
this.total = response.data.list;
this.total = response.data.total;
this.loading = false;
}
);
},
/** 查询部门下拉树结构 */
/** 查询部门下拉树结构 + 岗位下拉 */
getTreeselect() {
listSimpleDepts().then(response => {
// 处理 menuOptions 参数
// 处理 deptOptions 参数
this.deptOptions = [];
this.deptOptions.push(...this.handleTree(response.data, "id"));
});
listSimplePosts().then(response => {
// 处理 postOptions 参数
this.postOptions = [];
this.postOptions.push(...response.data);
});
},
// 筛选节点
filterNode(value, data) {
@ -521,14 +530,12 @@ export default {
/** 新增按钮操作 */
handleAdd() {
this.reset();
// 获得下拉数据
this.getTreeselect();
getUser().then(response => {
this.postOptions = response.posts;
this.roleOptions = response.roles;
this.open = true;
this.title = "添加用户";
this.form.password = this.initPassword;
});
// 打开表单,并设置初始化
this.open = true;
this.title = "添加用户";
this.form.password = this.initPassword;
},
/** 修改按钮操作 */
handleUpdate(row) {
@ -537,10 +544,6 @@ export default {
const id = row.id;
getUser(id).then(response => {
this.form = response.data;
this.postOptions = response.posts;
this.roleOptions = response.roles;
this.form.postIds = response.postIds;
this.form.roleIds = response.roleIds;
this.open = true;
this.title = "修改用户";
this.form.password = "";
@ -561,7 +564,7 @@ export default {
submitForm: function() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != undefined) {
if (this.form.id !== undefined) {
updateUser(this.form).then(response => {
this.msgSuccess("修改成功");
this.open = false;
@ -630,6 +633,14 @@ export default {
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
// 格式化部门的下拉框
normalizer(node) {
return {
id: node.id,
label: node.name,
children: node.children
}
}
}
};