fix: plugin-approval, trigger data (#861)
Reviewed-on: daoyoucloud/tachybase#861 Co-authored-by: bai.zixv <bai.zixv@foxmail.com> Co-committed-by: bai.zixv <bai.zixv@foxmail.com>
This commit is contained in:
		
							parent
							
								
									d05ea72fb7
								
							
						
					
					
						commit
						748cfc56bc
					
				| @ -1,5 +1,6 @@ | |||||||
| import { useCollectionManager_deprecated, useCompile } from '@nocobase/client'; | import { SchemaInitializerItemType, useCollectionManager_deprecated, useCompile } from '@nocobase/client'; | ||||||
| import { | import { | ||||||
|  |   CollectionBlockInitializer, | ||||||
|   RadioWithTooltip, |   RadioWithTooltip, | ||||||
|   Trigger, |   Trigger, | ||||||
|   getCollectionFieldOptions, |   getCollectionFieldOptions, | ||||||
| @ -7,7 +8,7 @@ import { | |||||||
| } from '@nocobase/plugin-workflow/client'; | } from '@nocobase/plugin-workflow/client'; | ||||||
| import { useForm } from '@nocobase/schema'; | import { useForm } from '@nocobase/schema'; | ||||||
| import { SchemaConfigButton } from './VC.ConfigButton'; | import { SchemaConfigButton } from './VC.ConfigButton'; | ||||||
| import { NAMESPACE, usePluginTranslation } from '../../locale'; | import { NAMESPACE, tval, usePluginTranslation } from '../../locale'; | ||||||
| import { LauncherInterface } from './launcher-interface/VC.LauncherInterface'; | import { LauncherInterface } from './launcher-interface/VC.LauncherInterface'; | ||||||
| 
 | 
 | ||||||
| // 工作流节点-审批触发器节点
 | // 工作流节点-审批触发器节点
 | ||||||
| @ -143,4 +144,20 @@ export class ApprovalTrigger extends Trigger { | |||||||
|       getCollectionFields, |       getCollectionFields, | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  | 
 | ||||||
|  |   useInitializers(config): SchemaInitializerItemType | null { | ||||||
|  |     if (!config.collection) { | ||||||
|  |       return null; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     return { | ||||||
|  |       name: 'triggerData', | ||||||
|  |       type: 'item', | ||||||
|  |       key: 'triggerData', | ||||||
|  |       title: tval('Trigger data'), | ||||||
|  |       Component: CollectionBlockInitializer, | ||||||
|  |       collection: config.collection, | ||||||
|  |       dataPath: '$context.data', | ||||||
|  |     }; | ||||||
|  |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -20,12 +20,13 @@ export function useSubmit() { | |||||||
|   const { workflow } = useFlowContext(); |   const { workflow } = useFlowContext(); | ||||||
| 
 | 
 | ||||||
|   return { |   return { | ||||||
|     run() { |     async run() { | ||||||
|       return () => { |  | ||||||
|       try { |       try { | ||||||
|           from.submit(), (field.data = field.data || {}); |         from.submit(); | ||||||
|  |         field.data = field.data || {}; | ||||||
|         field.data.loading = true; |         field.data.loading = true; | ||||||
|           apiClient.resource('approvals').create({ | 
 | ||||||
|  |         await apiClient.resource('approvals').create({ | ||||||
|           values: { |           values: { | ||||||
|             collectionName: joinCollectionName(collection.dataSource, collection.name), |             collectionName: joinCollectionName(collection.dataSource, collection.name), | ||||||
|             data: from.values, |             data: from.values, | ||||||
| @ -33,6 +34,7 @@ export function useSubmit() { | |||||||
|             workflowId: workflow.id, |             workflowId: workflow.id, | ||||||
|           }, |           }, | ||||||
|         }); |         }); | ||||||
|  | 
 | ||||||
|         setVisible(false); |         setVisible(false); | ||||||
|         from.reset(); |         from.reset(); | ||||||
|         field.data.loading = false; |         field.data.loading = false; | ||||||
| @ -43,7 +45,6 @@ export function useSubmit() { | |||||||
|       } catch (h) { |       } catch (h) { | ||||||
|         field.data && (field.data.loading = false); |         field.data && (field.data.loading = false); | ||||||
|       } |       } | ||||||
|       }; |  | ||||||
|     }, |     }, | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  | |||||||
| @ -9,12 +9,12 @@ export function useDestroyAction() { | |||||||
|   const approval = useApproval(); |   const approval = useApproval(); | ||||||
|   const apiClient = useAPIClient(); |   const apiClient = useAPIClient(); | ||||||
| 
 | 
 | ||||||
|   const run = () => { |   return { | ||||||
|     return () => { |     async run() { | ||||||
|       try { |       try { | ||||||
|         _.set(field, ['data', 'loading'], true); |         _.set(field, ['data', 'loading'], true); | ||||||
| 
 | 
 | ||||||
|         apiClient.resource('approvals').destroy({ |         await apiClient.resource('approvals').destroy({ | ||||||
|           filterByTk: approval.id, |           filterByTk: approval.id, | ||||||
|         }); |         }); | ||||||
| 
 | 
 | ||||||
| @ -23,9 +23,6 @@ export function useDestroyAction() { | |||||||
|       } catch (err) { |       } catch (err) { | ||||||
|         _.set(field, ['data', 'loading'], false); |         _.set(field, ['data', 'loading'], false); | ||||||
|       } |       } | ||||||
|     }; |     }, | ||||||
|   }; |  | ||||||
|   return { |  | ||||||
|     run, |  | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  | |||||||
| @ -14,8 +14,8 @@ export function useSubmit() { | |||||||
|   const contextApprovalStatus = useContextApprovalStatus(); |   const contextApprovalStatus = useContextApprovalStatus(); | ||||||
|   const apiClient = useAPIClient(); |   const apiClient = useAPIClient(); | ||||||
| 
 | 
 | ||||||
|   const run = () => { |   return { | ||||||
|     return () => { |     async run() { | ||||||
|       try { |       try { | ||||||
|         from.submit(); |         from.submit(); | ||||||
| 
 | 
 | ||||||
| @ -36,10 +36,6 @@ export function useSubmit() { | |||||||
|       } catch (m) { |       } catch (m) { | ||||||
|         _.set(field, ['data', 'loading'], false); |         _.set(field, ['data', 'loading'], false); | ||||||
|       } |       } | ||||||
|     }; |     }, | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   return { |  | ||||||
|     run, |  | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  | |||||||
| @ -2,29 +2,32 @@ import { useAPIClient, useActionContext } from '@nocobase/client'; | |||||||
| import { useField } from '@nocobase/schema'; | import { useField } from '@nocobase/schema'; | ||||||
| import { useApproval } from '../../../approval-common/Pd.ApprovalData'; | import { useApproval } from '../../../approval-common/Pd.ApprovalData'; | ||||||
| 
 | 
 | ||||||
|  | // 撤回
 | ||||||
| export function useWithdrawAction() { | export function useWithdrawAction() { | ||||||
|   const field = useField(); |   const field = useField(); | ||||||
|   const { setVisible, setSubmitted } = useActionContext() as any; |   const { setVisible, setSubmitted } = useActionContext() as any; | ||||||
|   const approval = useApproval(); |   const approval = useApproval(); | ||||||
|   const api = useAPIClient(); |   const api = useAPIClient(); | ||||||
|   return { |   return { | ||||||
|     run() { |     async run() { | ||||||
|       return async () => { |  | ||||||
|       try { |       try { | ||||||
|         field.data = field.data ?? {}; |         field.data = field.data ?? {}; | ||||||
|         field.data.loading = true; |         field.data.loading = true; | ||||||
|  | 
 | ||||||
|         await api.resource('approvals').withdraw({ |         await api.resource('approvals').withdraw({ | ||||||
|           filterByTk: approval.id, |           filterByTk: approval.id, | ||||||
|         }); |         }); | ||||||
|           setSubmitted(true); | 
 | ||||||
|         setVisible(false); |         setVisible(false); | ||||||
|  | 
 | ||||||
|  |         setSubmitted(true); | ||||||
|  | 
 | ||||||
|         field.data.loading = false; |         field.data.loading = false; | ||||||
|       } catch (v) { |       } catch (v) { | ||||||
|         if (field.data) { |         if (field.data) { | ||||||
|           field.data.loading = false; |           field.data.loading = false; | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|       }; |  | ||||||
|     }, |     }, | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  | |||||||
| @ -60,5 +60,6 @@ | |||||||
|   "Could run different branch based on result.": "Could run different branch based on result.", |   "Could run different branch based on result.": "Could run different branch based on result.", | ||||||
|   "End on reject": "End on reject", |   "End on reject": "End on reject", | ||||||
|   "If checked, the workflow will be terminated after rejection branch processed.": "If checked, the workflow will be terminated after rejection branch processed.", |   "If checked, the workflow will be terminated after rejection branch processed.": "If checked, the workflow will be terminated after rejection branch processed.", | ||||||
|   "Disabled": "Disabled" |   "Disabled": "Disabled", | ||||||
|  |   "Trigger data": "Trigger data" | ||||||
| } | } | ||||||
|  | |||||||
| @ -75,5 +75,6 @@ | |||||||
|   "End the workflow after rejection branch": "否决后终止流程", |   "End the workflow after rejection branch": "否决后终止流程", | ||||||
|   "When checked, the workflow will terminate when the rejection branch ends.": "勾选后,否决分支结束后工作流将终止。", |   "When checked, the workflow will terminate when the rejection branch ends.": "勾选后,否决分支结束后工作流将终止。", | ||||||
|   "Disabled": "已失效", |   "Disabled": "已失效", | ||||||
|   "Submission may be withdrawn, please try refresh the list.": "提交可能已被撤回,请尝试刷新列表。" |   "Submission may be withdrawn, please try refresh the list.": "提交可能已被撤回,请尝试刷新列表。", | ||||||
|  |   "Trigger data": "触发器数据" | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user