|
@@ -1,4 +1,4 @@
|
|
|
-import React, { useEffect, useRef } from 'react'
|
|
|
+import React, { useEffect, useMemo, useRef } from 'react'
|
|
|
import { message, Button } from 'antd'
|
|
|
import { connect, Link, useRequest } from 'umi'
|
|
|
import { addAccount, updateAccount } from '@/services/api/institution'
|
|
@@ -10,7 +10,7 @@ import { ModalType } from '@/utils/enum'
|
|
|
import type { ProFormInstance } from '@ant-design/pro-form'
|
|
|
import { ModalForm, ProFormText } from '@ant-design/pro-form'
|
|
|
import { changeAccountPsw } from '@/services/api/user'
|
|
|
-import { createForm, onFieldMount, onFieldReact, onFieldValueChange } from '@formily/core'
|
|
|
+import { createForm, onFieldMount, onFieldReact } from '@formily/core'
|
|
|
import { createSchemaField } from '@formily/react'
|
|
|
import { loadOrganizationalStructureList } from '@/utils/schema'
|
|
|
import {
|
|
@@ -101,59 +101,63 @@ const StaffDrawer: React.FC<StaffModalProps> = ({
|
|
|
message.error(error)
|
|
|
}
|
|
|
}
|
|
|
- const normalForm = createForm({
|
|
|
- validateFirst: true,
|
|
|
- readPretty: type === ModalType.PREVIEW,
|
|
|
- initialValues: { ...otherValues, institutionID: institution.ID },
|
|
|
- effects(form) {
|
|
|
- onFieldMount('password', field => {
|
|
|
- type !== ModalType.ADD && field.setDisplay('none')
|
|
|
- })
|
|
|
- onFieldMount('account', field => {
|
|
|
- type !== ModalType.ADD && (field.disabled = true)
|
|
|
- })
|
|
|
- onFieldReact('isCreated', field => {
|
|
|
- if (defaultFormData.ID) {
|
|
|
- field.disabled = true
|
|
|
- field.value &&
|
|
|
- field.setDecoratorProps({
|
|
|
- addonAfter: (
|
|
|
- <div>
|
|
|
- <span className="text-red-500 mr-2">需要移除请进入</span>
|
|
|
- <Link to="/project/created" className="text-primary">
|
|
|
- 项目创建人
|
|
|
- </Link>
|
|
|
- </div>
|
|
|
- )
|
|
|
- })
|
|
|
- } else {
|
|
|
- return generateFieldIsCreated(field)
|
|
|
- }
|
|
|
- })
|
|
|
- onFieldMount('institutionID', field => {
|
|
|
- field.dataSource = [{ label: institution?.name, value: institution?.ID }]
|
|
|
- })
|
|
|
- onFieldMount('accountType', field => {
|
|
|
- field.dataSource = accountTypeList
|
|
|
- })
|
|
|
- onFieldReact('organizationalStructureID', async field => {
|
|
|
- if (type === ModalType.PREVIEW) {
|
|
|
- defaultFormData.organizationalStructure &&
|
|
|
- (field.dataSource = [
|
|
|
- {
|
|
|
- label: defaultFormData.organizationalStructure.name,
|
|
|
- value: defaultFormData.organizationalStructure.ID
|
|
|
- }
|
|
|
- ])
|
|
|
- } else {
|
|
|
- const institutionID = form.values.institutionID
|
|
|
- const dataSource = await loadOrganizationalStructureList({ dataID: institutionID })
|
|
|
+ const normalForm = useMemo(
|
|
|
+ () =>
|
|
|
+ createForm({
|
|
|
+ validateFirst: true,
|
|
|
+ readPretty: type === ModalType.PREVIEW,
|
|
|
+ initialValues: { ...otherValues, institutionID: institution.ID },
|
|
|
+ effects(form) {
|
|
|
+ onFieldMount('password', field => {
|
|
|
+ type !== ModalType.ADD && field.setDisplay('none')
|
|
|
+ })
|
|
|
+ onFieldMount('account', field => {
|
|
|
+ type !== ModalType.ADD && (field.disabled = true)
|
|
|
+ })
|
|
|
+ onFieldReact('isCreated', field => {
|
|
|
+ if (defaultFormData.ID) {
|
|
|
+ field.disabled = true
|
|
|
+ field.value &&
|
|
|
+ field.setDecoratorProps({
|
|
|
+ addonAfter: (
|
|
|
+ <div>
|
|
|
+ <span className="text-red-500 mr-2">需要移除请进入</span>
|
|
|
+ <Link to="/project/created" className="text-primary">
|
|
|
+ 项目创建人
|
|
|
+ </Link>
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ return generateFieldIsCreated(field)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ onFieldMount('institutionID', field => {
|
|
|
+ field.dataSource = [{ label: institution?.name, value: institution?.ID }]
|
|
|
+ })
|
|
|
+ onFieldMount('accountType', field => {
|
|
|
+ field.dataSource = accountTypeList
|
|
|
+ })
|
|
|
+ onFieldReact('organizationalStructureID', async field => {
|
|
|
+ if (type === ModalType.PREVIEW) {
|
|
|
+ defaultFormData.organizationalStructure &&
|
|
|
+ (field.dataSource = [
|
|
|
+ {
|
|
|
+ label: defaultFormData.organizationalStructure.name,
|
|
|
+ value: defaultFormData.organizationalStructure.ID
|
|
|
+ }
|
|
|
+ ])
|
|
|
+ } else {
|
|
|
+ const institutionID = form.values.institutionID
|
|
|
+ const dataSource = await loadOrganizationalStructureList({ dataID: institutionID })
|
|
|
|
|
|
- field.dataSource = dataSource
|
|
|
+ field.dataSource = dataSource
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
- })
|
|
|
- }
|
|
|
- })
|
|
|
+ }),
|
|
|
+ []
|
|
|
+ )
|
|
|
const SchemaField = createSchemaField({
|
|
|
components: {
|
|
|
FormLayout,
|
|
@@ -186,7 +190,7 @@ const StaffDrawer: React.FC<StaffModalProps> = ({
|
|
|
trigger={<Button>重置密码</Button>}
|
|
|
onFinish={async values => {
|
|
|
try {
|
|
|
- await tryChangePsw({ ...values, ID: defaultFormData?.dataID })
|
|
|
+ await tryChangePsw({ ...values, ID: defaultFormData?.ID })
|
|
|
return true
|
|
|
} catch (error) {
|
|
|
return false
|