|
@@ -1,5 +1,5 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <el-drawer v-model="isDrawer" :size="width" :title="title" @close="handleReset">
|
|
|
|
|
|
|
+ <el-drawer v-model="isDrawer" :size="width" :title="props.title" @close="handleReset">
|
|
|
<el-form
|
|
<el-form
|
|
|
:model="formParams"
|
|
:model="formParams"
|
|
|
:rules="rules"
|
|
:rules="rules"
|
|
@@ -8,22 +8,19 @@
|
|
|
:label-width="80"
|
|
:label-width="80"
|
|
|
>
|
|
>
|
|
|
<el-form-item label="登录账号" prop="username">
|
|
<el-form-item label="登录账号" prop="username">
|
|
|
- <el-input
|
|
|
|
|
- placeholder="请输入登录账号"
|
|
|
|
|
- v-model="formParams.username"
|
|
|
|
|
- :disabled="formParams.userId ? true : false"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <el-input placeholder="请输入登录账号" v-model="formParams.username" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="所属部门" prop="deptId">
|
|
<el-form-item label="所属部门" prop="deptId">
|
|
|
- <el-tree-select
|
|
|
|
|
- :data="deptList"
|
|
|
|
|
- clearable
|
|
|
|
|
- check-strictly
|
|
|
|
|
- v-model="formParams.deptId"
|
|
|
|
|
- placeholder="请选择部门"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <el-select v-model="formParams.deptId" placeholder="请选择组织" class="protocal-select">
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in departmentList"
|
|
|
|
|
+ :key="item.deptId"
|
|
|
|
|
+ :label="item.deptName"
|
|
|
|
|
+ :value="item.deptId"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="密码" :prop="!formParams.userId ? 'password' : ''">
|
|
|
|
|
|
|
+ <el-form-item label="密码" prop="password">
|
|
|
<el-input
|
|
<el-input
|
|
|
type="password"
|
|
type="password"
|
|
|
show-password-on="mousedown"
|
|
show-password-on="mousedown"
|
|
@@ -31,7 +28,7 @@
|
|
|
v-model="formParams.password"
|
|
v-model="formParams.password"
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="确认密码" :prop="!formParams.userId ? 'passwordRe' : ''">
|
|
|
|
|
|
|
+ <el-form-item label="确认密码" :prop="!formParams.username ? 'passwordRe' : ''">
|
|
|
<el-input
|
|
<el-input
|
|
|
type="password"
|
|
type="password"
|
|
|
show-password-on="mousedown"
|
|
show-password-on="mousedown"
|
|
@@ -43,10 +40,10 @@
|
|
|
<el-form-item label="角色" prop="roleIds">
|
|
<el-form-item label="角色" prop="roleIds">
|
|
|
<el-select clearable v-model="formParams.roleIds" multiple>
|
|
<el-select clearable v-model="formParams.roleIds" multiple>
|
|
|
<el-option
|
|
<el-option
|
|
|
- v-for="(item, index) in getRoleList"
|
|
|
|
|
- :key="index"
|
|
|
|
|
- :label="item.label"
|
|
|
|
|
- :value="item.value"
|
|
|
|
|
|
|
+ v-for="item in roleList!"
|
|
|
|
|
+ :key="item.roleId"
|
|
|
|
|
+ :label="item.roleName"
|
|
|
|
|
+ :value="item.roleId"
|
|
|
/>
|
|
/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -56,17 +53,20 @@
|
|
|
<el-form-item label="手机" prop="mobile">
|
|
<el-form-item label="手机" prop="mobile">
|
|
|
<el-input placeholder="请输入手机" v-model="formParams.mobile" />
|
|
<el-input placeholder="请输入手机" v-model="formParams.mobile" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="邮箱" prop="email">
|
|
|
|
|
- <el-input placeholder="请输入邮箱" v-model="formParams.email" />
|
|
|
|
|
|
|
+ <el-form-item label="工号" prop="staffNo">
|
|
|
|
|
+ <el-input placeholder="请输入工号" v-model="formParams.staffNo" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
- <el-form-item label="性别" prop="sex">
|
|
|
|
|
|
|
+ <!-- <el-form-item label="邮箱" prop="email">
|
|
|
|
|
+ <el-input placeholder="请输入邮箱" v-model="formParams.email" />
|
|
|
|
|
+ </el-form-item> -->
|
|
|
|
|
+ <!-- <el-form-item label="性别" prop="sex">
|
|
|
<el-radio-group v-model="formParams.sex" name="sexGroup">
|
|
<el-radio-group v-model="formParams.sex" name="sexGroup">
|
|
|
<el-radio v-for="item in sexList" :key="item.dictValue" :label="item.dictLabel">
|
|
<el-radio v-for="item in sexList" :key="item.dictValue" :label="item.dictLabel">
|
|
|
{{ item.dictLabel }}
|
|
{{ item.dictLabel }}
|
|
|
</el-radio>
|
|
</el-radio>
|
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="所在岗位" prop="postId">
|
|
|
|
|
|
|
+ </el-form-item> -->
|
|
|
|
|
+ <!-- <el-form-item label="所在岗位" prop="postId">
|
|
|
<el-select clearable multiple v-model="formParams.postId" placeholder="请选择所在岗位">
|
|
<el-select clearable multiple v-model="formParams.postId" placeholder="请选择所在岗位">
|
|
|
<el-option
|
|
<el-option
|
|
|
v-for="(item, index) in postDataList"
|
|
v-for="(item, index) in postDataList"
|
|
@@ -75,10 +75,10 @@
|
|
|
:value="item.postId"
|
|
:value="item.postId"
|
|
|
/>
|
|
/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
- </el-form-item>
|
|
|
|
|
- <el-form-item label="个人介绍" prop="remark">
|
|
|
|
|
|
|
+ </el-form-item> -->
|
|
|
|
|
+ <!-- <el-form-item label="个人介绍" prop="remark">
|
|
|
<el-input type="textarea" placeholder="请输入个人介绍" v-model="formParams.remark" />
|
|
<el-input type="textarea" placeholder="请输入个人介绍" v-model="formParams.remark" />
|
|
|
- </el-form-item>
|
|
|
|
|
|
|
+ </el-form-item> -->
|
|
|
<el-form-item label="是否启用" prop="isEnable">
|
|
<el-form-item label="是否启用" prop="isEnable">
|
|
|
<el-switch v-model="formParams.isEnable" />
|
|
<el-switch v-model="formParams.isEnable" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -94,16 +94,21 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script lang="ts" setup>
|
|
<script lang="ts" setup>
|
|
|
- import { ref, onMounted, computed } from 'vue';
|
|
|
|
|
|
|
+ import { ref, onMounted } from 'vue';
|
|
|
import { FormRules, ElMessage } from 'element-plus';
|
|
import { FormRules, ElMessage } from 'element-plus';
|
|
|
- import type { formParamsType } from './types';
|
|
|
|
|
|
|
+ // import type { formParamsType } from './types';
|
|
|
import { useDictionary } from '@/hooks/web/useDictionary';
|
|
import { useDictionary } from '@/hooks/web/useDictionary';
|
|
|
|
|
|
|
|
import { addUsur, editUsur, userInfo } from '@/api/system/user';
|
|
import { addUsur, editUsur, userInfo } from '@/api/system/user';
|
|
|
import { postList } from '@/api/common/index';
|
|
import { postList } from '@/api/common/index';
|
|
|
- import { deptTreeList } from '@/api/auth/dept';
|
|
|
|
|
|
|
+ // import { deptTreeList } from '@/api/auth/dept';
|
|
|
import { cloneDeep } from 'lodash-es';
|
|
import { cloneDeep } from 'lodash-es';
|
|
|
- import { replaceParams } from '@/utils/helper/treeHelper';
|
|
|
|
|
|
|
+ // import { replaceParams } from '@/utils/helper/treeHelper';
|
|
|
|
|
+ import { UserType } from '@/api/system/user-operate';
|
|
|
|
|
+ import useSelectContent from './hooks/use-user-para';
|
|
|
|
|
+
|
|
|
|
|
+ const selectContent = useSelectContent();
|
|
|
|
|
+ const { roleList, departmentList } = selectContent;
|
|
|
|
|
|
|
|
const rules: FormRules = {
|
|
const rules: FormRules = {
|
|
|
username: {
|
|
username: {
|
|
@@ -146,54 +151,46 @@
|
|
|
const props = defineProps({
|
|
const props = defineProps({
|
|
|
title: {
|
|
title: {
|
|
|
type: String,
|
|
type: String,
|
|
|
- default: '添加会员',
|
|
|
|
|
|
|
+ default: '添加用户',
|
|
|
},
|
|
},
|
|
|
width: {
|
|
width: {
|
|
|
type: Number,
|
|
type: Number,
|
|
|
default: 450,
|
|
default: 450,
|
|
|
},
|
|
},
|
|
|
- roleList: {
|
|
|
|
|
- type: Array,
|
|
|
|
|
- },
|
|
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
const sexList = ref<any[]>();
|
|
const sexList = ref<any[]>();
|
|
|
- const deptList = ref<any[]>();
|
|
|
|
|
|
|
+ // const deptList = ref<any[]>();
|
|
|
const postDataList = ref<PostOption[]>([]);
|
|
const postDataList = ref<PostOption[]>([]);
|
|
|
const defaultValueRef = () => ({
|
|
const defaultValueRef = () => ({
|
|
|
- userId: null,
|
|
|
|
|
- roleIds: [],
|
|
|
|
|
- isEnable: true,
|
|
|
|
|
- deptId: null,
|
|
|
|
|
- email: '',
|
|
|
|
|
- mobile: '',
|
|
|
|
|
- nickname: '',
|
|
|
|
|
password: '',
|
|
password: '',
|
|
|
- passwordRe: '',
|
|
|
|
|
- remark: '',
|
|
|
|
|
- sex: '',
|
|
|
|
|
|
|
+ deptId: -1,
|
|
|
username: '',
|
|
username: '',
|
|
|
- postId: [],
|
|
|
|
|
|
|
+ staffNo: '',
|
|
|
|
|
+ mobile: '',
|
|
|
|
|
+ isEnable: true,
|
|
|
|
|
+ nickname: '',
|
|
|
|
|
+ roleIds: [],
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
- const getRoleList = computed(() => {
|
|
|
|
|
- return props.roleList as SelectOption[];
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ // const getRoleList = computed(() => {
|
|
|
|
|
+ // return props.roleList as SelectOption[];
|
|
|
|
|
+ // });
|
|
|
|
|
|
|
|
const message = ElMessage;
|
|
const message = ElMessage;
|
|
|
const formRef: any = ref(null);
|
|
const formRef: any = ref(null);
|
|
|
const isDrawer = ref(false);
|
|
const isDrawer = ref(false);
|
|
|
const subLoading = ref(false);
|
|
const subLoading = ref(false);
|
|
|
|
|
|
|
|
- const formParams = ref<formParamsType>(defaultValueRef());
|
|
|
|
|
|
|
+ const formParams = ref<UserType>(defaultValueRef());
|
|
|
|
|
|
|
|
- async function openDrawer(userId?) {
|
|
|
|
|
- const deptResList = await deptTreeList();
|
|
|
|
|
- deptList.value = replaceParams(deptResList, 'deptName', 'deptId');
|
|
|
|
|
|
|
+ async function openDrawer(username?) {
|
|
|
|
|
+ // const deptResList = await deptTreeList();
|
|
|
|
|
+ // deptList.value = replaceParams(deptResList, 'deptName', 'deptId');
|
|
|
const postListRes = await postList();
|
|
const postListRes = await postList();
|
|
|
postDataList.value = postListRes;
|
|
postDataList.value = postListRes;
|
|
|
- if (userId) {
|
|
|
|
|
- formParams.value.userId = userId;
|
|
|
|
|
|
|
+ if (username) {
|
|
|
|
|
+ formParams.value.username = username;
|
|
|
getInfo();
|
|
getInfo();
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
@@ -212,20 +209,20 @@
|
|
|
// 克隆
|
|
// 克隆
|
|
|
const params = cloneDeep(formParams.value);
|
|
const params = cloneDeep(formParams.value);
|
|
|
// 处理岗位
|
|
// 处理岗位
|
|
|
- if (params.postId && params.postId.length) {
|
|
|
|
|
- params.postId = params.postId.join(',');
|
|
|
|
|
- } else {
|
|
|
|
|
- params.postId = '';
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // if (params.postId && params.postId.length) {
|
|
|
|
|
+ // params.postId = params.postId.join(',');
|
|
|
|
|
+ // } else {
|
|
|
|
|
+ // params.postId = '';
|
|
|
|
|
+ // }
|
|
|
// 处理部门
|
|
// 处理部门
|
|
|
if (params.deptId) {
|
|
if (params.deptId) {
|
|
|
- params.deptId = params.deptId + '';
|
|
|
|
|
|
|
+ params.deptId = params.deptId;
|
|
|
}
|
|
}
|
|
|
if (params.password != params.passwordRe) {
|
|
if (params.password != params.passwordRe) {
|
|
|
return message.error('两次密码不一致');
|
|
return message.error('两次密码不一致');
|
|
|
}
|
|
}
|
|
|
- const msg = params.userId ? '编辑成功' : '添加成功';
|
|
|
|
|
- if (params.userId) {
|
|
|
|
|
|
|
+ const msg = params.username ? '编辑成功' : '添加成功';
|
|
|
|
|
+ if (params.username) {
|
|
|
editUsur(params).then((_) => {
|
|
editUsur(params).then((_) => {
|
|
|
message.success(msg);
|
|
message.success(msg);
|
|
|
emit('change');
|
|
emit('change');
|
|
@@ -249,9 +246,9 @@
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
function getInfo() {
|
|
function getInfo() {
|
|
|
- userInfo({ userId: formParams.value.userId }).then((res) => {
|
|
|
|
|
|
|
+ userInfo({ userId: formParams.value.username }).then((res) => {
|
|
|
const params = {
|
|
const params = {
|
|
|
- userId: formParams.value.userId,
|
|
|
|
|
|
|
+ userId: formParams.value.username,
|
|
|
deleteStatus: parseInt(res.deleteStatus),
|
|
deleteStatus: parseInt(res.deleteStatus),
|
|
|
email: res.email,
|
|
email: res.email,
|
|
|
mobile: res.mobile,
|
|
mobile: res.mobile,
|