diff --git a/src/components/custom/workflow/flow-drawer.vue b/src/components/custom/workflow/flow-drawer.vue index d173b697..5536135c 100644 --- a/src/components/custom/workflow/flow-drawer.vue +++ b/src/components/custom/workflow/flow-drawer.vue @@ -11,18 +11,15 @@ interface Props { loading?: boolean; /** 抽屉宽度 */ width?: number; - /** 是否为只读模式 */ - readonly?: boolean; - /** 是否显示暂存按钮 */ - showDraft?: boolean; + operateType: CommonType.WorkflowTableOperateType; + status?: string | null; } const props = withDefaults(defineProps(), { visible: false, loading: false, width: 1200, - readonly: false, - showDraft: true + status: null }); interface Emits { @@ -30,6 +27,7 @@ interface Emits { (e: 'close'): void; (e: 'saveDraft'): void; (e: 'submit'): void; + (e: 'approval'): void; } const emit = defineEmits(); @@ -41,6 +39,15 @@ const visibleValue = computed({ } }); +const showSubmit = computed( + () => + props.operateType === 'add' || + (props.operateType === 'edit' && + props.status && + (props.status === 'draft' || props.status === 'cancel' || props.status === 'back')) +); +const showApproval = computed(() => props.operateType === 'approval' && props.status && props.status === 'waiting'); + function handleClose() { emit('close'); } @@ -52,11 +59,15 @@ function handleSaveDraft() { function handleSubmit() { emit('submit'); } +function handleApproval() { + emit('approval'); +} defineExpose({ handleClose, handleSaveDraft, - handleSubmit + handleSubmit, + handleApproval }); @@ -68,11 +79,12 @@ defineExpose({