1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
| <script setup lang="ts">
| import { useVbenModal } from '@vben/common-ui';
|
| import { cloneDeep } from 'lodash-es';
|
| import { useVbenForm } from '#/adapter/form';
| import { workflowInstanceInvalid } from '#/api/workflow/instance';
|
| const emit = defineEmits<{ reload: [] }>();
|
| const [BasicModal, modalApi] = useVbenModal({
| onConfirm: handleSubmit,
| onCancel: handleCancel,
| fullscreenButton: false,
| title: '作废原因',
| });
|
| const [BasicForm, formApi] = useVbenForm({
| commonConfig: {
| formItemClass: 'col-span-2',
| componentProps: {
| class: 'w-full',
| },
| labelWidth: 80,
| },
| layout: 'vertical',
| schema: [
| {
| fieldName: 'comment',
| label: '作废原因',
| component: 'Textarea',
| },
| ],
| showDefaultActions: false,
| wrapperClass: 'grid-cols-2',
| });
|
| async function handleCancel() {
| modalApi.close();
| await formApi.resetForm();
| }
|
| async function handleSubmit() {
| try {
| modalApi.modalLoading(true);
| const { valid } = await formApi.validate();
| if (!valid) {
| return;
| }
| const data = cloneDeep(await formApi.getValues());
| data.id = modalApi.getData().id;
| await workflowInstanceInvalid(data as any);
| emit('reload');
| handleCancel();
| } catch (error) {
| console.error(error);
| } finally {
| modalApi.modalLoading(false);
| }
| }
| </script>
|
| <template>
| <BasicModal>
| <BasicForm />
| </BasicModal>
| </template>
|
|