From bdfb757219d73a04c86ec78acefede5bc644d654 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Mon, 16 Dec 2024 16:48:18 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20leave=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/workflow/leave/data.tsx | 18 +++++-- .../src/views/workflow/leave/index.vue | 11 +---- .../src/views/workflow/leave/leave-form.vue | 49 ++++++++++++++----- 3 files changed, 52 insertions(+), 26 deletions(-) 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 @@