|
@@ -1,23 +1,64 @@
|
|
|
<template>
|
|
<template>
|
|
|
<el-drawer v-model="isDrawer" :size="width" :title="props.title" @close="handleReset">
|
|
<el-drawer v-model="isDrawer" :size="width" :title="props.title" @close="handleReset">
|
|
|
<el-form :model="formParams" :rules="rules" ref="formRef" label-placement="left" :label-width="80">
|
|
<el-form :model="formParams" :rules="rules" ref="formRef" label-placement="left" :label-width="80">
|
|
|
- <el-form-item label="登录账号" prop="username">
|
|
|
|
|
- <el-input placeholder="请输入登录账号" v-model="formParams.username" :disabled="!isAddUser" />
|
|
|
|
|
|
|
+ <el-form-item label="工号" prop="staffNo">
|
|
|
|
|
+ <el-input placeholder="请输入工号" v-model="formParams.staffNo" v-if="staffNoHtmlType === 'INPUT'" />
|
|
|
|
|
+ <el-tree-select
|
|
|
|
|
+ v-model="formParams.staffNo"
|
|
|
|
|
+ v-debounce-tree-select="remoteMethod"
|
|
|
|
|
+ check-strictly
|
|
|
|
|
+ placeholder="请选择工号"
|
|
|
|
|
+ class="protocal-select"
|
|
|
|
|
+ filterable
|
|
|
|
|
+ remote
|
|
|
|
|
+ reserve-keyword
|
|
|
|
|
+ clearable
|
|
|
|
|
+ :loading="loading"
|
|
|
|
|
+ :data="staffNoOptions"
|
|
|
|
|
+ :render-after-expand="false"
|
|
|
|
|
+ :default-expand-all="true"
|
|
|
|
|
+ @clear="handleClear"
|
|
|
|
|
+ @change="handleChange"
|
|
|
|
|
+ v-else
|
|
|
|
|
+ />
|
|
|
|
|
+
|
|
|
|
|
+ <el-text class="mx-1 text-mode" type="primary" @click="handleChangeStaff">{{
|
|
|
|
|
+ `工号${staffNoHtmlType === 'INPUT' ? '选择' : '输入'}方式`
|
|
|
|
|
+ }}</el-text>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="姓名" prop="realname">
|
|
<el-form-item label="姓名" prop="realname">
|
|
|
<el-input placeholder="请输入姓名" v-model="formParams.realname" />
|
|
<el-input placeholder="请输入姓名" v-model="formParams.realname" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
+ <el-form-item label="所属部门" prop="deptId">
|
|
|
|
|
+ <el-tree-select
|
|
|
|
|
+ v-model="formParams.deptId"
|
|
|
|
|
+ :data="departmentArr"
|
|
|
|
|
+ :render-after-expand="false"
|
|
|
|
|
+ :default-expand-all="true"
|
|
|
|
|
+ check-strictly
|
|
|
|
|
+ placeholder="请选择所属组织"
|
|
|
|
|
+ class="protocal-select"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="角色" prop="roleIdList">
|
|
<el-form-item label="角色" prop="roleIdList">
|
|
|
<el-select clearable v-model="formParams.roleIdList" multiple v-if="isCanAddTenant && isSysTenant">
|
|
<el-select clearable v-model="formParams.roleIdList" multiple v-if="isCanAddTenant && isSysTenant">
|
|
|
<el-option v-for="item in roleData" :key="item.value" :label="item.label" :value="item.value" />
|
|
<el-option v-for="item in roleData" :key="item.value" :label="item.label" :value="item.value" />
|
|
|
</el-select>
|
|
</el-select>
|
|
|
<el-input v-else placeholder="租户管理员默认拥有全部角色权限" disabled />
|
|
<el-input v-else placeholder="租户管理员默认拥有全部角色权限" disabled />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
+ <el-form-item label="登录账号" prop="username">
|
|
|
|
|
+ <el-input placeholder="请输入登录账号" v-model="formParams.username" :disabled="!isAddUser" />
|
|
|
|
|
+ </el-form-item>
|
|
|
<el-form-item v-if="isAddUser" label="密码" prop="password">
|
|
<el-form-item v-if="isAddUser" label="密码" prop="password">
|
|
|
<el-input type="password" show-password-on="mousedown" placeholder="请输入密码" v-model="formParams.password" />
|
|
<el-input type="password" show-password-on="mousedown" placeholder="请输入密码" v-model="formParams.password" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item v-if="isAddUser" label="确认密码" :prop="!formParams.username ? 'passwordRe' : ''">
|
|
<el-form-item v-if="isAddUser" label="确认密码" :prop="!formParams.username ? 'passwordRe' : ''">
|
|
|
- <el-input type="password" show-password-on="mousedown" placeholder="请输入密码" v-model="formParams.passwordRe" />
|
|
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ type="password"
|
|
|
|
|
+ show-password-on="mousedown"
|
|
|
|
|
+ placeholder="请输入密码"
|
|
|
|
|
+ v-model="formParams.passwordRe"
|
|
|
|
|
+ />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item label="是否启用" prop="isDisabled">
|
|
<el-form-item label="是否启用" prop="isDisabled">
|
|
|
<el-switch v-model="formParams.isDisabled" />
|
|
<el-switch v-model="formParams.isDisabled" />
|
|
@@ -33,115 +74,200 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script lang="ts" setup>
|
|
<script lang="ts" setup>
|
|
|
-import { ref, computed, watch } from 'vue';
|
|
|
|
|
-import { FormRules, ElMessage } from 'element-plus';
|
|
|
|
|
-import { userInfo } from '@/api/system/user';
|
|
|
|
|
-import { cloneDeep } from 'lodash-es';
|
|
|
|
|
-import {
|
|
|
|
|
- addTenantAdmin,
|
|
|
|
|
- AddTenantAdminProps,
|
|
|
|
|
- updateUser,
|
|
|
|
|
- addSingleUser,
|
|
|
|
|
-} from '@/api/system/user-operate';
|
|
|
|
|
-import { EditType, OptionsProps, DisabledEnum } from './types';
|
|
|
|
|
-import { useTargetTenantIdSetting } from '@/utils/useTargetTenantIdSetting';
|
|
|
|
|
-import { ResultEnum } from '@/enums/httpEnum';
|
|
|
|
|
-
|
|
|
|
|
-const { isSysTenant } = useTargetTenantIdSetting();
|
|
|
|
|
-let rules: FormRules = {
|
|
|
|
|
- username: {
|
|
|
|
|
- required: true,
|
|
|
|
|
- message: '登录账号不能为空',
|
|
|
|
|
- trigger: 'blur',
|
|
|
|
|
- },
|
|
|
|
|
- realname: {
|
|
|
|
|
- required: true,
|
|
|
|
|
- message: '姓名不能为空',
|
|
|
|
|
- trigger: 'blur',
|
|
|
|
|
- },
|
|
|
|
|
- roleIdList: {
|
|
|
|
|
- required: true,
|
|
|
|
|
- message: '请选择角色',
|
|
|
|
|
- trigger: 'change',
|
|
|
|
|
- },
|
|
|
|
|
- password: {
|
|
|
|
|
- required: true,
|
|
|
|
|
- message: '密码不能为空',
|
|
|
|
|
- trigger: 'blur',
|
|
|
|
|
- },
|
|
|
|
|
- passwordRe: {
|
|
|
|
|
- required: true,
|
|
|
|
|
- message: '密码不能为空',
|
|
|
|
|
- trigger: 'blur',
|
|
|
|
|
- },
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
-const emit = defineEmits(['change']);
|
|
|
|
|
-const props = withDefaults(
|
|
|
|
|
- defineProps<{ title: string; width: number; editType: EditType; roleData: OptionsProps[], isCanAddTenant: boolean, isSysTenant: boolean }>(),
|
|
|
|
|
- {
|
|
|
|
|
- title: '添加用户',
|
|
|
|
|
- width: 450,
|
|
|
|
|
- },
|
|
|
|
|
-);
|
|
|
|
|
-
|
|
|
|
|
-const defaultValueRef = () => ({
|
|
|
|
|
- username: '',
|
|
|
|
|
- isDisabled: true,
|
|
|
|
|
- realname: '',
|
|
|
|
|
- roleIdList: [],
|
|
|
|
|
- password: '',
|
|
|
|
|
- passwordRe: '',
|
|
|
|
|
-});
|
|
|
|
|
-
|
|
|
|
|
-const message = ElMessage;
|
|
|
|
|
-const formRef: any = ref(null);
|
|
|
|
|
-const isDrawer = ref(false);
|
|
|
|
|
-const subLoading = ref(false);
|
|
|
|
|
-const formParams = ref<AddTenantAdminProps>(defaultValueRef());
|
|
|
|
|
-
|
|
|
|
|
-async function openDrawer(userId?) {
|
|
|
|
|
- if (userId) {
|
|
|
|
|
- formParams.value.userId = userId;
|
|
|
|
|
- getInfo();
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- isDrawer.value = true;
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ import { ref, computed, watch } from 'vue';
|
|
|
|
|
+ import { FormRules, ElMessage } from 'element-plus';
|
|
|
|
|
+ import { userInfo, queryOrganizationUserTree } from '@/api/system/user';
|
|
|
|
|
+ import { cloneDeep } from 'lodash-es';
|
|
|
|
|
+ import { addTenantAdmin, AddTenantAdminProps, updateUser, addSingleUser } from '@/api/system/user-operate';
|
|
|
|
|
+ import { EditType, OptionsProps, DisabledEnum, OrganizationUserTree } from './types';
|
|
|
|
|
+ import { useTargetTenantIdSetting } from '@/utils/useTargetTenantIdSetting';
|
|
|
|
|
+ import { ResultEnum } from '@/enums/httpEnum';
|
|
|
|
|
+ import vDebounceTreeSelect from '@/directives/debounceTreeSelect';
|
|
|
|
|
+ import {
|
|
|
|
|
+ findUserByWorkNo,
|
|
|
|
|
+ findOrgCodeByWorkNo,
|
|
|
|
|
+ transformTreeData,
|
|
|
|
|
+ TransformedTreeNode,
|
|
|
|
|
+ removeParentheses,
|
|
|
|
|
+ } from '@/utils/findUserByWorkNo';
|
|
|
|
|
|
|
|
-const isAddUser = computed(() => {
|
|
|
|
|
- return props.editType === EditType.create;
|
|
|
|
|
-});
|
|
|
|
|
|
|
+ const { isSysTenant } = useTargetTenantIdSetting();
|
|
|
|
|
+ let rules: FormRules = {
|
|
|
|
|
+ staffNo: {
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ message: '工号不能为空',
|
|
|
|
|
+ trigger: 'blur',
|
|
|
|
|
+ },
|
|
|
|
|
+ username: {
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ message: '登录账号不能为空',
|
|
|
|
|
+ trigger: 'blur',
|
|
|
|
|
+ },
|
|
|
|
|
+ realname: {
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ message: '姓名不能为空',
|
|
|
|
|
+ trigger: 'blur',
|
|
|
|
|
+ },
|
|
|
|
|
+ deptId: {
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ message: '部门不能为空',
|
|
|
|
|
+ trigger: 'blur',
|
|
|
|
|
+ },
|
|
|
|
|
|
|
|
-function closeDrawer() {
|
|
|
|
|
- isDrawer.value = false;
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ roleIdList: {
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ message: '请选择角色',
|
|
|
|
|
+ trigger: 'change',
|
|
|
|
|
+ },
|
|
|
|
|
+ password: {
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ message: '密码不能为空',
|
|
|
|
|
+ trigger: 'blur',
|
|
|
|
|
+ },
|
|
|
|
|
+ passwordRe: {
|
|
|
|
|
+ required: true,
|
|
|
|
|
+ message: '密码不能为空',
|
|
|
|
|
+ trigger: 'blur',
|
|
|
|
|
+ },
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
-function formSubmit() {
|
|
|
|
|
- formRef.value.validate((valid) => {
|
|
|
|
|
- if (!valid) {
|
|
|
|
|
- message.error('请填写完整信息');
|
|
|
|
|
- return;
|
|
|
|
|
|
|
+ const emit = defineEmits(['change']);
|
|
|
|
|
+ const props = withDefaults(
|
|
|
|
|
+ defineProps<{
|
|
|
|
|
+ title: string;
|
|
|
|
|
+ width: number;
|
|
|
|
|
+ editType: EditType;
|
|
|
|
|
+ roleData: OptionsProps[];
|
|
|
|
|
+ isCanAddTenant: boolean;
|
|
|
|
|
+ isSysTenant: boolean;
|
|
|
|
|
+ departmentList: OptionsProps[];
|
|
|
|
|
+ }>(),
|
|
|
|
|
+ {
|
|
|
|
|
+ title: '添加用户',
|
|
|
|
|
+ width: 450,
|
|
|
|
|
+ },
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ const defaultValueRef = () => ({
|
|
|
|
|
+ username: '',
|
|
|
|
|
+ isDisabled: true,
|
|
|
|
|
+ realname: '',
|
|
|
|
|
+ roleIdList: [],
|
|
|
|
|
+ password: '',
|
|
|
|
|
+ passwordRe: '',
|
|
|
|
|
+ deptId: null,
|
|
|
|
|
+ staffNo: '',
|
|
|
|
|
+ });
|
|
|
|
|
+ const message = ElMessage;
|
|
|
|
|
+ const formRef: any = ref(null);
|
|
|
|
|
+ const isDrawer = ref(false);
|
|
|
|
|
+ const subLoading = ref(false);
|
|
|
|
|
+ const formParams = ref<AddTenantAdminProps>(defaultValueRef());
|
|
|
|
|
+ const loading = ref(false);
|
|
|
|
|
+ const staffNoOptions = ref<TransformedTreeNode[]>([]);
|
|
|
|
|
+ const OrganizationSourceData = ref<OrganizationUserTree[]>([]);
|
|
|
|
|
+ const departmentArr = ref<OptionsProps[]>([]);
|
|
|
|
|
+
|
|
|
|
|
+ const remoteMethod = (query: string) => {
|
|
|
|
|
+ if (query) {
|
|
|
|
|
+ loading.value = true;
|
|
|
|
|
+ queryOrganizationUserTree(Number(query)).then((res) => {
|
|
|
|
|
+ if (res) {
|
|
|
|
|
+ loading.value = false;
|
|
|
|
|
+ staffNoOptions.value = transformTreeData(res, true);
|
|
|
|
|
+ }
|
|
|
|
|
+ /* 保存原始数据,用于选中后将数据返显到表单 */
|
|
|
|
|
+ OrganizationSourceData.value = res;
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ staffNoOptions.value = [];
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ type STAFFNO_HTML_TYPE = 'INPUT' | 'SELECT';
|
|
|
|
|
+ const staffNoHtmlType = ref<STAFFNO_HTML_TYPE>('SELECT');
|
|
|
|
|
+ const handleChangeStaff = () => {
|
|
|
|
|
+ staffNoHtmlType.value = staffNoHtmlType.value === 'INPUT' ? 'SELECT' : 'INPUT';
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ const handleClear = () => {
|
|
|
|
|
+ formRef.value.resetFields();
|
|
|
|
|
+ formParams.value = Object.assign(formParams.value, defaultValueRef());
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ const handleChange = (value) => {
|
|
|
|
|
+ /* 将选中的数据返显到表单 */
|
|
|
|
|
+ const findUser = findUserByWorkNo(OrganizationSourceData.value, value);
|
|
|
|
|
+ if (findUser) {
|
|
|
|
|
+ formParams.value.realname = findUser.appAccountAccountName;
|
|
|
|
|
+ formParams.value.staffNo = findUser.idtUserWorkNo;
|
|
|
|
|
+ formParams.value.username = findUser.idtUserWorkNo;
|
|
|
|
|
+ formParams.value.roleIdList = JSON.parse(findUser.useTypes);
|
|
|
|
|
+
|
|
|
|
|
+ /* 选中数据后将部门设置为当前数据的部门 */
|
|
|
|
|
+ departmentArr.value = transformTreeData(OrganizationSourceData.value, false);
|
|
|
|
|
+ formParams.value.deptId = findOrgCodeByWorkNo(OrganizationSourceData.value, value);
|
|
|
|
|
+ console.log(departmentArr.value);
|
|
|
}
|
|
}
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
- // 克隆
|
|
|
|
|
- const params = cloneDeep(formParams.value);
|
|
|
|
|
- if (params.password != params.passwordRe) {
|
|
|
|
|
- return message.error('两次密码不一致');
|
|
|
|
|
|
|
+ async function openDrawer(userId?) {
|
|
|
|
|
+ if (userId) {
|
|
|
|
|
+ formParams.value.userId = userId;
|
|
|
|
|
+ getInfo();
|
|
|
|
|
+ return;
|
|
|
}
|
|
}
|
|
|
- if (isAddUser.value) {
|
|
|
|
|
- formParams.value.isDisabled
|
|
|
|
|
- ? (params.isDisabled = DisabledEnum.NO)
|
|
|
|
|
- : (params.isDisabled = DisabledEnum.YES);
|
|
|
|
|
- if (!isSysTenant) {
|
|
|
|
|
- addTenantAdmin(params).then((res) => {
|
|
|
|
|
- message.success('添加管理员账户成功');
|
|
|
|
|
- emit('change');
|
|
|
|
|
- handleReset();
|
|
|
|
|
- closeDrawer();
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ isDrawer.value = true;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ const isAddUser = computed(() => {
|
|
|
|
|
+ return props.editType === EditType.create;
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ function closeDrawer() {
|
|
|
|
|
+ isDrawer.value = false;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ function formSubmit() {
|
|
|
|
|
+ formRef.value.validate((valid) => {
|
|
|
|
|
+ if (!valid) {
|
|
|
|
|
+ message.error('请填写完整信息');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 克隆
|
|
|
|
|
+ const params = cloneDeep(formParams.value);
|
|
|
|
|
+ if (params.password != params.passwordRe) {
|
|
|
|
|
+ return message.error('两次密码不一致');
|
|
|
|
|
+ }
|
|
|
|
|
+ params.staffNo = removeParentheses(params.staffNo);
|
|
|
|
|
+ if (isAddUser.value) {
|
|
|
|
|
+ formParams.value.isDisabled ? (params.isDisabled = DisabledEnum.NO) : (params.isDisabled = DisabledEnum.YES);
|
|
|
|
|
+ if (!isSysTenant) {
|
|
|
|
|
+ addTenantAdmin(params).then((res) => {
|
|
|
|
|
+ message.success('添加管理员账户成功');
|
|
|
|
|
+ emit('change');
|
|
|
|
|
+ handleReset();
|
|
|
|
|
+ closeDrawer();
|
|
|
|
|
+ });
|
|
|
|
|
+ } else {
|
|
|
|
|
+ addSingleUser(params)
|
|
|
|
|
+ .then((res) => {
|
|
|
|
|
+ if (res.code !== ResultEnum.SUCCESS) {
|
|
|
|
|
+ return Promise.reject(res.msg);
|
|
|
|
|
+ }
|
|
|
|
|
+ emit('change');
|
|
|
|
|
+ handleReset();
|
|
|
|
|
+ closeDrawer();
|
|
|
|
|
+ ElMessage.success('添加成功');
|
|
|
|
|
+ })
|
|
|
|
|
+ .catch((error) => {
|
|
|
|
|
+ ElMessage.error(error);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
} else {
|
|
} else {
|
|
|
- addSingleUser(params)
|
|
|
|
|
|
|
+ formParams.value.isDisabled ? (params.isDisabled = DisabledEnum.NO) : (params.isDisabled = DisabledEnum.YES);
|
|
|
|
|
+ updateUser(params)
|
|
|
.then((res) => {
|
|
.then((res) => {
|
|
|
if (res.code !== ResultEnum.SUCCESS) {
|
|
if (res.code !== ResultEnum.SUCCESS) {
|
|
|
return Promise.reject(res.msg);
|
|
return Promise.reject(res.msg);
|
|
@@ -149,64 +275,52 @@ function formSubmit() {
|
|
|
emit('change');
|
|
emit('change');
|
|
|
handleReset();
|
|
handleReset();
|
|
|
closeDrawer();
|
|
closeDrawer();
|
|
|
- ElMessage.success('添加成功');
|
|
|
|
|
|
|
+ ElMessage.success('修改成功');
|
|
|
})
|
|
})
|
|
|
.catch((error) => {
|
|
.catch((error) => {
|
|
|
ElMessage.error(error);
|
|
ElMessage.error(error);
|
|
|
});
|
|
});
|
|
|
}
|
|
}
|
|
|
- } else {
|
|
|
|
|
- formParams.value.isDisabled
|
|
|
|
|
- ? (params.isDisabled = DisabledEnum.NO)
|
|
|
|
|
- : (params.isDisabled = DisabledEnum.YES);
|
|
|
|
|
- updateUser(params)
|
|
|
|
|
- .then((res) => {
|
|
|
|
|
- if (res.code !== ResultEnum.SUCCESS) {
|
|
|
|
|
- return Promise.reject(res.msg);
|
|
|
|
|
- }
|
|
|
|
|
- emit('change');
|
|
|
|
|
- handleReset();
|
|
|
|
|
- closeDrawer();
|
|
|
|
|
- ElMessage.success('修改成功');
|
|
|
|
|
- })
|
|
|
|
|
- .catch((error) => {
|
|
|
|
|
- ElMessage.error(error);
|
|
|
|
|
- });
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
-function handleReset() {
|
|
|
|
|
- formRef.value.resetFields();
|
|
|
|
|
- formParams.value = Object.assign(formParams.value, defaultValueRef());
|
|
|
|
|
-}
|
|
|
|
|
|
|
+ function handleReset() {
|
|
|
|
|
+ formRef.value.resetFields();
|
|
|
|
|
+ formParams.value = Object.assign(formParams.value, defaultValueRef());
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
-function getInfo() {
|
|
|
|
|
- userInfo({ userId: Number(formParams.value.userId) }).then((res) => {
|
|
|
|
|
- Object.entries(res).forEach(([key, value]) => {
|
|
|
|
|
- formParams.value[key] = value;
|
|
|
|
|
|
|
+ function getInfo() {
|
|
|
|
|
+ userInfo({ userId: Number(formParams.value.userId) }).then((res) => {
|
|
|
|
|
+ Object.entries(res).forEach(([key, value]) => {
|
|
|
|
|
+ formParams.value[key] = value;
|
|
|
|
|
+ });
|
|
|
|
|
+ formParams.value.roleIdList = res.roleIds;
|
|
|
|
|
+ formParams.value.passwordRe = res.password;
|
|
|
|
|
+ formParams.value.isDisabled = res.isDisabled === DisabledEnum.NO ? true : false;
|
|
|
|
|
+ isDrawer.value = true;
|
|
|
});
|
|
});
|
|
|
- formParams.value.roleIdList = res.roleIds;
|
|
|
|
|
- formParams.value.passwordRe = res.password;
|
|
|
|
|
- formParams.value.isDisabled = res.isDisabled === DisabledEnum.NO ? true : false;
|
|
|
|
|
- isDrawer.value = true;
|
|
|
|
|
- });
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-watch(
|
|
|
|
|
- () => props,
|
|
|
|
|
- () => {
|
|
|
|
|
- if (props.isCanAddTenant && !props.isSysTenant) {
|
|
|
|
|
- rules!.roleIdList!.required = false
|
|
|
|
|
- }
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- immediate: true
|
|
|
|
|
}
|
|
}
|
|
|
-)
|
|
|
|
|
|
|
|
|
|
-defineExpose({
|
|
|
|
|
- openDrawer,
|
|
|
|
|
- closeDrawer,
|
|
|
|
|
-});
|
|
|
|
|
|
|
+ watch(
|
|
|
|
|
+ () => props,
|
|
|
|
|
+ () => {
|
|
|
|
|
+ if (props.isCanAddTenant && !props.isSysTenant) {
|
|
|
|
|
+ rules!.roleIdList!.required = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ departmentArr.value = props.departmentList;
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ immediate: true,
|
|
|
|
|
+ },
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ defineExpose({
|
|
|
|
|
+ openDrawer,
|
|
|
|
|
+ closeDrawer,
|
|
|
|
|
+ });
|
|
|
</script>
|
|
</script>
|
|
|
|
|
+<style scoped>
|
|
|
|
|
+ .text-mode {
|
|
|
|
|
+ cursor: pointer;
|
|
|
|
|
+ }
|
|
|
|
|
+</style>
|