|
@@ -1,5 +1,5 @@
|
|
|
import useModal from '@/components/Modal'
|
|
|
-import { startTransition, useState } from 'react'
|
|
|
+import { startTransition, useMemo, useState } from 'react'
|
|
|
import { PageContainer } from '@ant-design/pro-layout'
|
|
|
import { BusinessType, ExecutorSetType } from '@/enums/gc'
|
|
|
import useScripts from './hooks/useScripts'
|
|
@@ -7,19 +7,28 @@ import { Button } from 'antd'
|
|
|
import ProTable, { ProColumnType } from '@ant-design/pro-table'
|
|
|
import LeftMenu from '../RuleCode/components/LeftMenu'
|
|
|
import { connect } from '@umijs/max'
|
|
|
+import { BusinessModelState } from '../model'
|
|
|
|
|
|
export const menuOptions = [{ label: '预算业务审批', value: BusinessType.BUDGET }]
|
|
|
|
|
|
-type iProcessProps = {
|
|
|
- activeKey: BusinessType
|
|
|
+type ProcessProps = {
|
|
|
+ processMap: {
|
|
|
+ [key: string]: API.ExecutorItem[]
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-const Process = ({ dispatch, processList }) => {
|
|
|
- const [state, setState] = useState<iProcessProps>({
|
|
|
- activeKey: null
|
|
|
+const Process: React.FC<ProcessProps> = ({ processMap }) => {
|
|
|
+ const [state, setState] = useState({
|
|
|
+ activeKey: ''
|
|
|
})
|
|
|
+
|
|
|
const [modal, ModalDOM] = useModal()
|
|
|
- const { data, loading, addOrEdit, del } = useScripts(modal)
|
|
|
+ const { total, query, loading, addOrEdit, del } = useScripts(modal)
|
|
|
+
|
|
|
+ const list = useMemo(() => {
|
|
|
+ if (!state.activeKey) return []
|
|
|
+ return processMap?.[state.activeKey] || []
|
|
|
+ }, [state.activeKey, processMap])
|
|
|
|
|
|
const columns: ProColumnType<API.ExecutorItem>[] = [
|
|
|
{
|
|
@@ -78,10 +87,7 @@ const Process = ({ dispatch, processList }) => {
|
|
|
const [subjectID, businessType] = key.split('_')
|
|
|
setState({ ...state, activeKey: key })
|
|
|
startTransition(() => {
|
|
|
- dispatch({
|
|
|
- type: 'business/queryExecutor',
|
|
|
- payload: { subjectID, businessType }
|
|
|
- })
|
|
|
+ !processMap?.[state.activeKey] && query({ subjectID, businessType, pageSize: 214000 })
|
|
|
})
|
|
|
}
|
|
|
return (
|
|
@@ -100,9 +106,9 @@ const Process = ({ dispatch, processList }) => {
|
|
|
rowKey="ID"
|
|
|
search={false}
|
|
|
columns={columns}
|
|
|
- dataSource={processList}
|
|
|
+ dataSource={list}
|
|
|
loading={loading}
|
|
|
- pagination={{ total: data.total }}
|
|
|
+ pagination={{ total }}
|
|
|
/>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -111,6 +117,6 @@ const Process = ({ dispatch, processList }) => {
|
|
|
)
|
|
|
}
|
|
|
|
|
|
-export default connect(({ business }: { processList: BusinessModelState }) => ({
|
|
|
- processList: business.processList
|
|
|
+export default connect(({ business }: { business: BusinessModelState }) => ({
|
|
|
+ processMap: business.processMap
|
|
|
}))(Process)
|