diff --git a/apps/web-antd/src/views/workflow/leave/data.tsx b/apps/web-antd/src/views/workflow/leave/data.tsx index 0dd220df..8da75a4c 100644 --- a/apps/web-antd/src/views/workflow/leave/data.tsx +++ b/apps/web-antd/src/views/workflow/leave/data.tsx @@ -110,10 +110,20 @@ export const modalSchema: FormSchemaGetter = () => [ label: '开始时间', fieldName: 'dateRange', component: 'RangePicker', - componentProps: { - showTime: true, - format: 'YYYY-MM-DD', - valueFormat: 'YYYY-MM-DD HH:mm:ss', + componentProps(model) { + return { + format: 'YYYY-MM-DD', + valueFormat: 'YYYY-MM-DD HH:mm:ss', + onChange: (dates: [string, string]) => { + if (!dates) { + model.leaveDays = null; + return; + } + const [start, end] = dates; + const leaveDays = dayjs(end).diff(dayjs(start), 'day') + 1; + model.leaveDays = leaveDays; + }, + }; }, rules: 'required', }, diff --git a/apps/web-antd/src/views/workflow/leave/index.vue b/apps/web-antd/src/views/workflow/leave/index.vue index aab9e37b..78d22cf6 100644 --- a/apps/web-antd/src/views/workflow/leave/index.vue +++ b/apps/web-antd/src/views/workflow/leave/index.vue @@ -3,7 +3,7 @@ import type { LeaveForm } from './api/model'; import { useRouter } from 'vue-router'; -import { Page, useVbenModal, type VbenFormProps } from '@vben/common-ui'; +import { Page, type VbenFormProps } from '@vben/common-ui'; import { getVxePopupContainer } from '@vben/utils'; import { Modal, Popconfirm, Space } from 'ant-design-vue'; @@ -17,7 +17,6 @@ import { commonDownloadExcel } from '#/utils/file/download'; import { leaveExport, leaveList, leaveRemove } from './api'; import { columns, querySchema } from './data'; -import leaveModal from './leave-modal.vue'; const formOptions: VbenFormProps = { commonConfig: { @@ -66,18 +65,13 @@ const [BasicTable, tableApi] = useVbenVxeGrid({ gridOptions, }); -const [LeaveModal, modalApi] = useVbenModal({ - connectedComponent: leaveModal, -}); - const router = useRouter(); function handleAdd() { router.push('/workflow/leaveEdit/index'); } async function handleEdit(row: Required) { - modalApi.setData({ id: row.id }); - modalApi.open(); + router.push({ path: '/workflow/leaveEdit/index', query: { id: row.id } }); } async function handleDelete(row: Required) { @@ -165,6 +159,5 @@ function handleDownloadExcel() { - diff --git a/apps/web-antd/src/views/workflow/leave/leave-form.vue b/apps/web-antd/src/views/workflow/leave/leave-form.vue index c03baa7d..06c49ee0 100644 --- a/apps/web-antd/src/views/workflow/leave/leave-form.vue +++ b/apps/web-antd/src/views/workflow/leave/leave-form.vue @@ -1,19 +1,27 @@