|
|
|
@ -12,22 +12,29 @@
@@ -12,22 +12,29 @@
|
|
|
|
|
* Copyright © 2020-2022 <a href="http://www.entfrm.com/">entfrm</a> All rights reserved. |
|
|
|
|
* author entfrm开发团队-王翔 |
|
|
|
|
*/ |
|
|
|
|
import { defineComponent, ref, computed, unref, reactive } from 'vue'; |
|
|
|
|
import {defineComponent, reactive, ref, toRaw, unref} from 'vue'; |
|
|
|
|
import { BasicModal, useModalInner } from '/@/components/Modal'; |
|
|
|
|
import { BasicForm, FormSchema, useForm } from '/@/components/Form/index'; |
|
|
|
|
import { BasicForm, useForm } from '/@/components/Form/index'; |
|
|
|
|
import { userFormSchema } from './user.data'; |
|
|
|
|
import { deptList } from '/@/api/system/dept'; |
|
|
|
|
import { addUser, editUser, getUser } from '/@/api/system/user'; |
|
|
|
|
import { listToTree } from "/@/utils/helper/treeHelper"; |
|
|
|
|
import { addMenu, editMenu, getMenu, getRoleMenuIds, listMenu } from "/@/api/system/menu"; |
|
|
|
|
import { ModalProps } from "/@/components/Modal"; |
|
|
|
|
import { findListNameById } from '/@/utils'; |
|
|
|
|
import {TreeItem} from "/@/components/Tree"; |
|
|
|
|
|
|
|
|
|
export default defineComponent({ |
|
|
|
|
name: 'UserModal', |
|
|
|
|
components: { BasicModal, BasicForm }, |
|
|
|
|
emits: ['success', 'register'], |
|
|
|
|
setup(props, { emit }) { |
|
|
|
|
const tag = ref(''); |
|
|
|
|
|
|
|
|
|
const state = reactive({ |
|
|
|
|
// 操作标签 |
|
|
|
|
tag: '', |
|
|
|
|
// 部门树形数据 |
|
|
|
|
deptTree: [] as TreeItem[], |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const [registerForm, { resetFields, setFieldsValue, updateSchema, validate, clearValidate }] = useForm({ |
|
|
|
|
labelWidth: 100, |
|
|
|
@ -41,26 +48,28 @@
@@ -41,26 +48,28 @@
|
|
|
|
|
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => { |
|
|
|
|
await resetFields(); |
|
|
|
|
await clearValidate(); |
|
|
|
|
tag.value = data._tag; |
|
|
|
|
state.tag = data._tag; |
|
|
|
|
state.deptTree = listToTree(await deptList()); |
|
|
|
|
const userId = data.record?.id; |
|
|
|
|
const props: Partial<ModalProps> = { confirmLoading: false }; |
|
|
|
|
await updateSchema([ |
|
|
|
|
{ |
|
|
|
|
field: 'deptId', |
|
|
|
|
componentProps: { treeData: listToTree(await deptList()) } |
|
|
|
|
componentProps: { treeData: toRaw(state.deptTree) } |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
field: 'password', |
|
|
|
|
show: tag.value == 'add' |
|
|
|
|
show: state.tag == 'add' |
|
|
|
|
} |
|
|
|
|
]); |
|
|
|
|
switch (tag.value) { |
|
|
|
|
switch (state.tag) { |
|
|
|
|
case 'add': |
|
|
|
|
props.title = '新增用户'; |
|
|
|
|
break; |
|
|
|
|
case 'edit': |
|
|
|
|
props.title = '编辑用户'; |
|
|
|
|
await setFieldsValue(await getUser(userId) || {}); |
|
|
|
|
const result = await getUser(userId); |
|
|
|
|
await setFieldsValue(result.result); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
setModalProps(props); |
|
|
|
@ -70,12 +79,13 @@
@@ -70,12 +79,13 @@
|
|
|
|
|
try { |
|
|
|
|
const formData = await validate(); |
|
|
|
|
setModalProps({ confirmLoading: true }); |
|
|
|
|
switch (unref(tag)) { |
|
|
|
|
formData.deptName = findListNameById(formData.deptId, toRaw(state.deptTree), { idField: 'deptId' }); |
|
|
|
|
switch (state.tag) { |
|
|
|
|
case 'add': |
|
|
|
|
await addMenu(formData); |
|
|
|
|
await addUser(formData); |
|
|
|
|
break; |
|
|
|
|
case 'edit': |
|
|
|
|
await editMenu(formData); |
|
|
|
|
await editUser(formData); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
closeModal(); |
|
|
|
|